Cory McWilliams
df5dfa1539
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@3730 ed5197a5-7fde-0310-b194-c3ffbd925b24
1 line
7.7 MiB
1 line
7.7 MiB
{"version":3,"file":"controller_bundle.js","sources":["../../node_modules/tslib/tslib.js","../../node_modules/@protobufjs/aspromise/index.js","../../node_modules/@protobufjs/base64/index.js","../../node_modules/@protobufjs/eventemitter/index.js","../../node_modules/@protobufjs/float/index.js","../../node_modules/@protobufjs/inquire/index.js","../../node_modules/@protobufjs/utf8/index.js","../../node_modules/@protobufjs/pool/index.js","../../node_modules/protobufjs/src/util/longbits.js","../../node_modules/protobufjs/src/util/minimal.js","../../node_modules/protobufjs/src/writer.js","../../node_modules/protobufjs/src/writer_buffer.js","../../node_modules/protobufjs/src/reader.js","../../node_modules/protobufjs/src/reader_buffer.js","../../node_modules/protobufjs/src/rpc/service.js","../../node_modules/protobufjs/src/rpc.js","../../node_modules/protobufjs/src/roots.js","../../node_modules/protobufjs/src/index-minimal.js","../../node_modules/protobufjs/minimal.js","../../../out/ui/src/base/deferred.ts","../../../out/ui/src/gen/perfetto_version.ts","../../../out/ui/src/base/logging.ts","../../../out/ui/src/base/string_utils.ts","../../../out/ui/src/common/query_result.ts","../../../out/ui/src/common/time.ts","../../../out/ui/src/common/registry.ts","../../../out/ui/src/common/track_data.ts","../../node_modules/color-name/index.js","../../node_modules/color-convert/conversions.js","../../node_modules/color-convert/route.js","../../node_modules/color-convert/index.js","../../../out/ui/src/common/colorizer.ts","../../../out/ui/src/tracks/actual_frames/common.ts","../../../out/ui/src/tracks/async_slices/common.ts","../../../out/ui/src/tracks/counter/common.ts","../../../out/ui/src/tracks/debug_slices/common.ts","../../../out/ui/src/tracks/expected_frames/common.ts","../../../out/ui/src/tracks/heap_profile/common.ts","../../../out/ui/src/tracks/perf_samples_profile/common.ts","../../../out/ui/src/tracks/process_scheduling/common.ts","../../../out/ui/src/tracks/process_summary/common.ts","../../../out/ui/src/controller/validators.ts","../../../out/ui/src/controller/record_config_types.ts","../../../out/ui/src/common/state.ts","../../../out/ui/src/frontend/record_config.ts","../../../out/ui/src/common/feature_flags.ts","../../../out/ui/src/common/empty_state.ts","../../../out/ui/src/common/flamegraph_util.ts","../../../out/ui/src/common/actions.ts","../../../out/ui/src/common/logs.ts","../../../out/ui/src/common/conversion_jobs.ts","../../../out/ui/src/common/channels.ts","../../node_modules/mithril/render/vnode.js","../../node_modules/mithril/render/hyperscriptVnode.js","../../node_modules/mithril/render/hyperscript.js","../../node_modules/mithril/render/trust.js","../../node_modules/mithril/render/fragment.js","../../node_modules/mithril/hyperscript.js","../../node_modules/mithril/promise/polyfill.js","../../node_modules/mithril/promise/promise.js","../../node_modules/mithril/render/render.js","../../node_modules/mithril/render.js","../../node_modules/mithril/api/mount-redraw.js","../../node_modules/mithril/mount-redraw.js","../../node_modules/mithril/querystring/build.js","../../node_modules/mithril/pathname/assign.js","../../node_modules/mithril/pathname/build.js","../../node_modules/mithril/request/request.js","../../node_modules/mithril/request.js","../../node_modules/mithril/querystring/parse.js","../../node_modules/mithril/pathname/parse.js","../../node_modules/mithril/pathname/compileTemplate.js","../../node_modules/mithril/api/router.js","../../node_modules/mithril/route.js","../../node_modules/mithril/index.js","../../../out/ui/src/frontend/router.ts","../../../out/ui/src/frontend/analytics.ts","../../../out/ui/src/frontend/rate_limiters.ts","../../../out/ui/src/frontend/time_scale.ts","../../../out/ui/src/frontend/frontend_local_state.ts","../../../out/ui/src/frontend/perf.ts","../../../out/ui/src/frontend/raf_scheduler.ts","../../../out/ui/src/frontend/service_worker_controller.ts","../../../out/ui/src/frontend/globals.ts","../../../out/ui/src/frontend/publish.ts","../../../out/ui/src/controller/controller.ts","../../node_modules/immer/src/utils/errors.ts","../../node_modules/immer/src/utils/common.ts","../../node_modules/immer/src/utils/plugins.ts","../../node_modules/immer/src/core/scope.ts","../../node_modules/immer/src/core/finalize.ts","../../node_modules/immer/src/core/proxy.ts","../../node_modules/immer/src/core/immerClass.ts","../../node_modules/immer/src/core/current.ts","../../node_modules/immer/src/plugins/es5.ts","../../node_modules/immer/src/plugins/patches.ts","../../node_modules/immer/src/plugins/mapset.ts","../../node_modules/immer/src/utils/env.ts","../../node_modules/immer/src/immer.ts","../../node_modules/immer/src/plugins/all.ts","../../node_modules/immer/dist/index.js","../../../out/ui/src/controller/globals.ts","../../../out/ui/src/controller/track_controller.ts","../../../out/ui/src/tracks/actual_frames/controller.ts","../../../out/ui/src/frontend/track_registry.ts","../../node_modules/hsluv/hsluv.js","../../../out/ui/src/common/canvas_utils.ts","../../../out/ui/src/common/constants.ts","../../../out/ui/src/frontend/checkerboard.ts","../../../out/ui/src/frontend/track.ts","../../../out/ui/src/tracks/chrome_slices/common.ts","../../../out/ui/src/tracks/chrome_slices/frontend.ts","../../../out/ui/src/tracks/actual_frames/frontend.ts","../../../out/ui/src/tracks/actual_frames/index.ts","../../../out/ui/src/tracks/android_log/common.ts","../../../out/ui/src/tracks/android_log/controller.ts","../../../out/ui/src/tracks/android_log/frontend.ts","../../../out/ui/src/tracks/android_log/index.ts","../../../out/ui/src/tracks/async_slices/controller.ts","../../../out/ui/src/tracks/async_slices/frontend.ts","../../../out/ui/src/tracks/async_slices/index.ts","../../../out/ui/src/tracks/chrome_slices/controller.ts","../../../out/ui/src/tracks/chrome_slices/index.ts","../../../out/ui/src/tracks/counter/controller.ts","../../../out/ui/src/base/binary_search.ts","../../../out/ui/src/frontend/css_constants.ts","../../../out/ui/src/frontend/gridline_helper.ts","../../../out/ui/src/frontend/icons.ts","../../../out/ui/src/frontend/panel.ts","../../../out/ui/src/frontend/scroll_helper.ts","../../../out/ui/src/frontend/vertical_line_helper.ts","../../../out/ui/src/frontend/track_panel.ts","../../../out/ui/src/tracks/counter/frontend.ts","../../../out/ui/src/tracks/counter/index.ts","../../../out/ui/src/tracks/cpu_freq/common.ts","../../../out/ui/src/tracks/cpu_freq/controller.ts","../../../out/ui/src/tracks/cpu_freq/frontend.ts","../../../out/ui/src/tracks/cpu_freq/index.ts","../../../out/ui/src/tracks/cpu_profile/common.ts","../../../out/ui/src/tracks/cpu_profile/controller.ts","../../../out/ui/src/tracks/cpu_profile/frontend.ts","../../../out/ui/src/tracks/cpu_profile/index.ts","../../../out/ui/src/tracks/cpu_slices/common.ts","../../../out/ui/src/tracks/cpu_slices/controller.ts","../../../out/ui/src/tracks/cpu_slices/frontend.ts","../../../out/ui/src/tracks/cpu_slices/index.ts","../../../out/ui/src/tracks/debug_slices/controller.ts","../../../out/ui/src/tracks/debug_slices/frontend.ts","../../../out/ui/src/tracks/debug_slices/index.ts","../../../out/ui/src/tracks/expected_frames/controller.ts","../../../out/ui/src/tracks/expected_frames/frontend.ts","../../../out/ui/src/tracks/expected_frames/index.ts","../../../out/ui/src/frontend/slice_layout.ts","../../../out/ui/src/frontend/base_slice_track.ts","../../../out/ui/src/frontend/named_slice_track.ts","../../../out/ui/src/tracks/generic_slice_track/index.ts","../../../out/ui/src/tracks/heap_profile/controller.ts","../../../out/ui/src/frontend/flamegraph.ts","../../../out/ui/src/tracks/heap_profile/frontend.ts","../../../out/ui/src/tracks/heap_profile/index.ts","../../../out/ui/src/tracks/perf_samples_profile/controller.ts","../../../out/ui/src/tracks/perf_samples_profile/frontend.ts","../../../out/ui/src/tracks/perf_samples_profile/index.ts","../../../out/ui/src/tracks/process_scheduling/controller.ts","../../../out/ui/src/tracks/process_scheduling/frontend.ts","../../../out/ui/src/tracks/process_scheduling/index.ts","../../../out/ui/src/tracks/process_summary/controller.ts","../../../out/ui/src/tracks/process_summary/frontend.ts","../../../out/ui/src/tracks/process_summary/index.ts","../../../out/ui/src/common/thread_state.ts","../../../out/ui/src/tracks/thread_state/common.ts","../../../out/ui/src/tracks/thread_state/controller.ts","../../../out/ui/src/tracks/thread_state/frontend.ts","../../../out/ui/src/tracks/thread_state/index.ts","../../../out/ui/src/gen/all_tracks.ts","../../node_modules/uuid/lib/rng-browser.js","../../node_modules/uuid/lib/bytesToUuid.js","../../node_modules/uuid/v4.js","../../../out/ui/src/common/upload_utils.ts","../../../out/ui/src/controller/permalink_controller.ts","../../../out/ui/ui/tsc/gen/protos.js","../../../out/ui/src/common/protos.ts","../../src/base/utils/index-browser.js","../../../out/ui/src/controller/adb.ts","../../../out/ui/src/base/trace_config_utils.ts","../../../out/ui/src/controller/record_controller_interfaces.ts","../../../out/ui/src/controller/adb_base_controller.ts","../../../out/ui/src/controller/adb_shell_controller.ts","../../../out/ui/src/controller/consumer_port_types.ts","../../../out/ui/src/controller/adb_socket_controller.ts","../../../out/ui/src/controller/chrome_proxy_record_controller.ts","../../../out/ui/src/controller/record_controller.ts","../../../out/ui/src/common/cache_manager.ts","../../../out/ui/src/base/http_utils.ts","../../../out/ui/src/common/proto_ring_buffer.ts","../../../out/ui/src/common/engine.ts","../../../out/ui/src/common/http_rpc_engine.ts","../../../out/ui/src/common/wasm_engine_proxy.ts","../../../out/ui/src/common/pivot_table_query_generator.ts","../../../out/ui/src/common/pivot_table_common.ts","../../../out/ui/src/controller/area_selection_handler.ts","../../../out/ui/src/controller/aggregation/aggregation_controller.ts","../../../out/ui/src/controller/aggregation/counter_aggregation_controller.ts","../../../out/ui/src/controller/aggregation/cpu_aggregation_controller.ts","../../../out/ui/src/controller/aggregation/cpu_by_process_aggregation_controller.ts","../../../out/ui/src/controller/aggregation/frame_aggregation_controller.ts","../../node_modules/micromodal/dist/micromodal.js","../../../out/ui/src/frontend/modal.ts","../../../out/ui/src/frontend/help_modal.ts","../../../out/ui/src/frontend/search_handler.ts","../../../out/ui/src/frontend/keyboard_event_handler.ts","../../../out/ui/src/controller/aggregation/slice_aggregation_controller.ts","../../../out/ui/src/controller/aggregation/thread_aggregation_controller.ts","../../../out/ui/src/controller/cpu_profile_controller.ts","../../../out/ui/src/controller/flamegraph_controller.ts","../../../out/ui/src/controller/flow_events_controller.ts","../../../out/ui/src/controller/loading_manager.ts","../../../out/ui/src/controller/logs_controller.ts","../../../out/ui/src/controller/metrics_controller.ts","../../../out/ui/src/common/queries.ts","../../../out/ui/src/frontend/pivot_table_helper.ts","../../../out/ui/src/controller/pivot_table_controller.ts","../../../out/ui/src/controller/query_controller.ts","../../../out/ui/src/controller/search_controller.ts","../../../out/ui/src/common/arg_types.ts","../../../out/ui/src/controller/args_parser.ts","../../../out/ui/src/controller/selection_controller.ts","../../../out/ui/src/controller/trace_error_controller.ts","../../../out/ui/src/controller/trace_stream.ts","../../../out/ui/src/controller/track_decider.ts","../../../out/ui/src/controller/trace_controller.ts","../../../out/ui/src/controller/app_controller.ts","../../../out/ui/src/controller/index.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global global, define, System, Reflect, Promise */\r\nvar __extends;\r\nvar __assign;\r\nvar __rest;\r\nvar __decorate;\r\nvar __param;\r\nvar __metadata;\r\nvar __awaiter;\r\nvar __generator;\r\nvar __exportStar;\r\nvar __values;\r\nvar __read;\r\nvar __spread;\r\nvar __spreadArrays;\r\nvar __spreadArray;\r\nvar __await;\r\nvar __asyncGenerator;\r\nvar __asyncDelegator;\r\nvar __asyncValues;\r\nvar __makeTemplateObject;\r\nvar __importStar;\r\nvar __importDefault;\r\nvar __classPrivateFieldGet;\r\nvar __classPrivateFieldSet;\r\nvar __createBinding;\r\n(function (factory) {\r\n var root = typeof global === \"object\" ? global : typeof self === \"object\" ? self : typeof this === \"object\" ? this : {};\r\n if (typeof define === \"function\" && define.amd) {\r\n define(\"tslib\", [\"exports\"], function (exports) { factory(createExporter(root, createExporter(exports))); });\r\n }\r\n else if (typeof module === \"object\" && typeof module.exports === \"object\") {\r\n factory(createExporter(root, createExporter(module.exports)));\r\n }\r\n else {\r\n factory(createExporter(root));\r\n }\r\n function createExporter(exports, previous) {\r\n if (exports !== root) {\r\n if (typeof Object.create === \"function\") {\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n }\r\n else {\r\n exports.__esModule = true;\r\n }\r\n }\r\n return function (id, v) { return exports[id] = previous ? previous(id, v) : v; };\r\n }\r\n})\r\n(function (exporter) {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n\r\n __extends = function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n\r\n __assign = Object.assign || function (t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n\r\n __rest = function (s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n };\r\n\r\n __decorate = function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n };\r\n\r\n __param = function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n };\r\n\r\n __metadata = function (metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n };\r\n\r\n __awaiter = function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n };\r\n\r\n __generator = function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n };\r\n\r\n __exportStar = function(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n };\r\n\r\n __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n }) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n });\r\n\r\n __values = function (o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n };\r\n\r\n __read = function (o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n };\r\n\r\n /** @deprecated */\r\n __spread = function () {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n };\r\n\r\n /** @deprecated */\r\n __spreadArrays = function () {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n };\r\n\r\n __spreadArray = function (to, from) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\r\n to[j] = from[i];\r\n return to;\r\n };\r\n\r\n __await = function (v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n };\r\n\r\n __asyncGenerator = function (thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n };\r\n\r\n __asyncDelegator = function (o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n };\r\n\r\n __asyncValues = function (o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n };\r\n\r\n __makeTemplateObject = function (cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n };\r\n\r\n var __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n }) : function(o, v) {\r\n o[\"default\"] = v;\r\n };\r\n\r\n __importStar = function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n };\r\n\r\n __importDefault = function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n };\r\n\r\n __classPrivateFieldGet = function (receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n };\r\n\r\n __classPrivateFieldSet = function (receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n };\r\n\r\n exporter(\"__extends\", __extends);\r\n exporter(\"__assign\", __assign);\r\n exporter(\"__rest\", __rest);\r\n exporter(\"__decorate\", __decorate);\r\n exporter(\"__param\", __param);\r\n exporter(\"__metadata\", __metadata);\r\n exporter(\"__awaiter\", __awaiter);\r\n exporter(\"__generator\", __generator);\r\n exporter(\"__exportStar\", __exportStar);\r\n exporter(\"__createBinding\", __createBinding);\r\n exporter(\"__values\", __values);\r\n exporter(\"__read\", __read);\r\n exporter(\"__spread\", __spread);\r\n exporter(\"__spreadArrays\", __spreadArrays);\r\n exporter(\"__spreadArray\", __spreadArray);\r\n exporter(\"__await\", __await);\r\n exporter(\"__asyncGenerator\", __asyncGenerator);\r\n exporter(\"__asyncDelegator\", __asyncDelegator);\r\n exporter(\"__asyncValues\", __asyncValues);\r\n exporter(\"__makeTemplateObject\", __makeTemplateObject);\r\n exporter(\"__importStar\", __importStar);\r\n exporter(\"__importDefault\", __importDefault);\r\n exporter(\"__classPrivateFieldGet\", __classPrivateFieldGet);\r\n exporter(\"__classPrivateFieldSet\", __classPrivateFieldSet);\r\n});\r\n","\"use strict\";\r\nmodule.exports = asPromise;\r\n\r\n/**\r\n * Callback as used by {@link util.asPromise}.\r\n * @typedef asPromiseCallback\r\n * @type {function}\r\n * @param {Error|null} error Error, if any\r\n * @param {...*} params Additional arguments\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Returns a promise from a node-style callback function.\r\n * @memberof util\r\n * @param {asPromiseCallback} fn Function to call\r\n * @param {*} ctx Function context\r\n * @param {...*} params Function arguments\r\n * @returns {Promise<*>} Promisified function\r\n */\r\nfunction asPromise(fn, ctx/*, varargs */) {\r\n var params = new Array(arguments.length - 1),\r\n offset = 0,\r\n index = 2,\r\n pending = true;\r\n while (index < arguments.length)\r\n params[offset++] = arguments[index++];\r\n return new Promise(function executor(resolve, reject) {\r\n params[offset] = function callback(err/*, varargs */) {\r\n if (pending) {\r\n pending = false;\r\n if (err)\r\n reject(err);\r\n else {\r\n var params = new Array(arguments.length - 1),\r\n offset = 0;\r\n while (offset < params.length)\r\n params[offset++] = arguments[offset];\r\n resolve.apply(null, params);\r\n }\r\n }\r\n };\r\n try {\r\n fn.apply(ctx || null, params);\r\n } catch (err) {\r\n if (pending) {\r\n pending = false;\r\n reject(err);\r\n }\r\n }\r\n });\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal base64 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar base64 = exports;\r\n\r\n/**\r\n * Calculates the byte length of a base64 encoded string.\r\n * @param {string} string Base64 encoded string\r\n * @returns {number} Byte length\r\n */\r\nbase64.length = function length(string) {\r\n var p = string.length;\r\n if (!p)\r\n return 0;\r\n var n = 0;\r\n while (--p % 4 > 1 && string.charAt(p) === \"=\")\r\n ++n;\r\n return Math.ceil(string.length * 3) / 4 - n;\r\n};\r\n\r\n// Base64 encoding table\r\nvar b64 = new Array(64);\r\n\r\n// Base64 decoding table\r\nvar s64 = new Array(123);\r\n\r\n// 65..90, 97..122, 48..57, 43, 47\r\nfor (var i = 0; i < 64;)\r\n s64[b64[i] = i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i - 59 | 43] = i++;\r\n\r\n/**\r\n * Encodes a buffer to a base64 encoded string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} Base64 encoded string\r\n */\r\nbase64.encode = function encode(buffer, start, end) {\r\n var parts = null,\r\n chunk = [];\r\n var i = 0, // output index\r\n j = 0, // goto index\r\n t; // temporary\r\n while (start < end) {\r\n var b = buffer[start++];\r\n switch (j) {\r\n case 0:\r\n chunk[i++] = b64[b >> 2];\r\n t = (b & 3) << 4;\r\n j = 1;\r\n break;\r\n case 1:\r\n chunk[i++] = b64[t | b >> 4];\r\n t = (b & 15) << 2;\r\n j = 2;\r\n break;\r\n case 2:\r\n chunk[i++] = b64[t | b >> 6];\r\n chunk[i++] = b64[b & 63];\r\n j = 0;\r\n break;\r\n }\r\n if (i > 8191) {\r\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (j) {\r\n chunk[i++] = b64[t];\r\n chunk[i++] = 61;\r\n if (j === 1)\r\n chunk[i++] = 61;\r\n }\r\n if (parts) {\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n }\r\n return String.fromCharCode.apply(String, chunk.slice(0, i));\r\n};\r\n\r\nvar invalidEncoding = \"invalid encoding\";\r\n\r\n/**\r\n * Decodes a base64 encoded string to a buffer.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Number of bytes written\r\n * @throws {Error} If encoding is invalid\r\n */\r\nbase64.decode = function decode(string, buffer, offset) {\r\n var start = offset;\r\n var j = 0, // goto index\r\n t; // temporary\r\n for (var i = 0; i < string.length;) {\r\n var c = string.charCodeAt(i++);\r\n if (c === 61 && j > 1)\r\n break;\r\n if ((c = s64[c]) === undefined)\r\n throw Error(invalidEncoding);\r\n switch (j) {\r\n case 0:\r\n t = c;\r\n j = 1;\r\n break;\r\n case 1:\r\n buffer[offset++] = t << 2 | (c & 48) >> 4;\r\n t = c;\r\n j = 2;\r\n break;\r\n case 2:\r\n buffer[offset++] = (t & 15) << 4 | (c & 60) >> 2;\r\n t = c;\r\n j = 3;\r\n break;\r\n case 3:\r\n buffer[offset++] = (t & 3) << 6 | c;\r\n j = 0;\r\n break;\r\n }\r\n }\r\n if (j === 1)\r\n throw Error(invalidEncoding);\r\n return offset - start;\r\n};\r\n\r\n/**\r\n * Tests if the specified string appears to be base64 encoded.\r\n * @param {string} string String to test\r\n * @returns {boolean} `true` if probably base64 encoded, otherwise false\r\n */\r\nbase64.test = function test(string) {\r\n return /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(string);\r\n};\r\n","\"use strict\";\r\nmodule.exports = EventEmitter;\r\n\r\n/**\r\n * Constructs a new event emitter instance.\r\n * @classdesc A minimal event emitter.\r\n * @memberof util\r\n * @constructor\r\n */\r\nfunction EventEmitter() {\r\n\r\n /**\r\n * Registered listeners.\r\n * @type {Object.<string,*>}\r\n * @private\r\n */\r\n this._listeners = {};\r\n}\r\n\r\n/**\r\n * Registers an event listener.\r\n * @param {string} evt Event name\r\n * @param {function} fn Listener\r\n * @param {*} [ctx] Listener context\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.on = function on(evt, fn, ctx) {\r\n (this._listeners[evt] || (this._listeners[evt] = [])).push({\r\n fn : fn,\r\n ctx : ctx || this\r\n });\r\n return this;\r\n};\r\n\r\n/**\r\n * Removes an event listener or any matching listeners if arguments are omitted.\r\n * @param {string} [evt] Event name. Removes all listeners if omitted.\r\n * @param {function} [fn] Listener to remove. Removes all listeners of `evt` if omitted.\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.off = function off(evt, fn) {\r\n if (evt === undefined)\r\n this._listeners = {};\r\n else {\r\n if (fn === undefined)\r\n this._listeners[evt] = [];\r\n else {\r\n var listeners = this._listeners[evt];\r\n for (var i = 0; i < listeners.length;)\r\n if (listeners[i].fn === fn)\r\n listeners.splice(i, 1);\r\n else\r\n ++i;\r\n }\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Emits an event by calling its listeners with the specified arguments.\r\n * @param {string} evt Event name\r\n * @param {...*} args Arguments\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.emit = function emit(evt) {\r\n var listeners = this._listeners[evt];\r\n if (listeners) {\r\n var args = [],\r\n i = 1;\r\n for (; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n for (i = 0; i < listeners.length;)\r\n listeners[i].fn.apply(listeners[i++].ctx, args);\r\n }\r\n return this;\r\n};\r\n","\"use strict\";\r\n\r\nmodule.exports = factory(factory);\r\n\r\n/**\r\n * Reads / writes floats / doubles from / to buffers.\r\n * @name util.float\r\n * @namespace\r\n */\r\n\r\n/**\r\n * Writes a 32 bit float to a buffer using little endian byte order.\r\n * @name util.float.writeFloatLE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Writes a 32 bit float to a buffer using big endian byte order.\r\n * @name util.float.writeFloatBE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Reads a 32 bit float from a buffer using little endian byte order.\r\n * @name util.float.readFloatLE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Reads a 32 bit float from a buffer using big endian byte order.\r\n * @name util.float.readFloatBE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Writes a 64 bit double to a buffer using little endian byte order.\r\n * @name util.float.writeDoubleLE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Writes a 64 bit double to a buffer using big endian byte order.\r\n * @name util.float.writeDoubleBE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Reads a 64 bit double from a buffer using little endian byte order.\r\n * @name util.float.readDoubleLE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Reads a 64 bit double from a buffer using big endian byte order.\r\n * @name util.float.readDoubleBE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n// Factory function for the purpose of node-based testing in modified global environments\r\nfunction factory(exports) {\r\n\r\n // float: typed array\r\n if (typeof Float32Array !== \"undefined\") (function() {\r\n\r\n var f32 = new Float32Array([ -0 ]),\r\n f8b = new Uint8Array(f32.buffer),\r\n le = f8b[3] === 128;\r\n\r\n function writeFloat_f32_cpy(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos ] = f8b[0];\r\n buf[pos + 1] = f8b[1];\r\n buf[pos + 2] = f8b[2];\r\n buf[pos + 3] = f8b[3];\r\n }\r\n\r\n function writeFloat_f32_rev(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos ] = f8b[3];\r\n buf[pos + 1] = f8b[2];\r\n buf[pos + 2] = f8b[1];\r\n buf[pos + 3] = f8b[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.writeFloatLE = le ? writeFloat_f32_cpy : writeFloat_f32_rev;\r\n /* istanbul ignore next */\r\n exports.writeFloatBE = le ? writeFloat_f32_rev : writeFloat_f32_cpy;\r\n\r\n function readFloat_f32_cpy(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n\r\n function readFloat_f32_rev(buf, pos) {\r\n f8b[3] = buf[pos ];\r\n f8b[2] = buf[pos + 1];\r\n f8b[1] = buf[pos + 2];\r\n f8b[0] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.readFloatLE = le ? readFloat_f32_cpy : readFloat_f32_rev;\r\n /* istanbul ignore next */\r\n exports.readFloatBE = le ? readFloat_f32_rev : readFloat_f32_cpy;\r\n\r\n // float: ieee754\r\n })(); else (function() {\r\n\r\n function writeFloat_ieee754(writeUint, val, buf, pos) {\r\n var sign = val < 0 ? 1 : 0;\r\n if (sign)\r\n val = -val;\r\n if (val === 0)\r\n writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos);\r\n else if (isNaN(val))\r\n writeUint(2143289344, buf, pos);\r\n else if (val > 3.4028234663852886e+38) // +-Infinity\r\n writeUint((sign << 31 | 2139095040) >>> 0, buf, pos);\r\n else if (val < 1.1754943508222875e-38) // denormal\r\n writeUint((sign << 31 | Math.round(val / 1.401298464324817e-45)) >>> 0, buf, pos);\r\n else {\r\n var exponent = Math.floor(Math.log(val) / Math.LN2),\r\n mantissa = Math.round(val * Math.pow(2, -exponent) * 8388608) & 8388607;\r\n writeUint((sign << 31 | exponent + 127 << 23 | mantissa) >>> 0, buf, pos);\r\n }\r\n }\r\n\r\n exports.writeFloatLE = writeFloat_ieee754.bind(null, writeUintLE);\r\n exports.writeFloatBE = writeFloat_ieee754.bind(null, writeUintBE);\r\n\r\n function readFloat_ieee754(readUint, buf, pos) {\r\n var uint = readUint(buf, pos),\r\n sign = (uint >> 31) * 2 + 1,\r\n exponent = uint >>> 23 & 255,\r\n mantissa = uint & 8388607;\r\n return exponent === 255\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 1.401298464324817e-45 * mantissa\r\n : sign * Math.pow(2, exponent - 150) * (mantissa + 8388608);\r\n }\r\n\r\n exports.readFloatLE = readFloat_ieee754.bind(null, readUintLE);\r\n exports.readFloatBE = readFloat_ieee754.bind(null, readUintBE);\r\n\r\n })();\r\n\r\n // double: typed array\r\n if (typeof Float64Array !== \"undefined\") (function() {\r\n\r\n var f64 = new Float64Array([-0]),\r\n f8b = new Uint8Array(f64.buffer),\r\n le = f8b[7] === 128;\r\n\r\n function writeDouble_f64_cpy(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos ] = f8b[0];\r\n buf[pos + 1] = f8b[1];\r\n buf[pos + 2] = f8b[2];\r\n buf[pos + 3] = f8b[3];\r\n buf[pos + 4] = f8b[4];\r\n buf[pos + 5] = f8b[5];\r\n buf[pos + 6] = f8b[6];\r\n buf[pos + 7] = f8b[7];\r\n }\r\n\r\n function writeDouble_f64_rev(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos ] = f8b[7];\r\n buf[pos + 1] = f8b[6];\r\n buf[pos + 2] = f8b[5];\r\n buf[pos + 3] = f8b[4];\r\n buf[pos + 4] = f8b[3];\r\n buf[pos + 5] = f8b[2];\r\n buf[pos + 6] = f8b[1];\r\n buf[pos + 7] = f8b[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.writeDoubleLE = le ? writeDouble_f64_cpy : writeDouble_f64_rev;\r\n /* istanbul ignore next */\r\n exports.writeDoubleBE = le ? writeDouble_f64_rev : writeDouble_f64_cpy;\r\n\r\n function readDouble_f64_cpy(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n f8b[4] = buf[pos + 4];\r\n f8b[5] = buf[pos + 5];\r\n f8b[6] = buf[pos + 6];\r\n f8b[7] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n\r\n function readDouble_f64_rev(buf, pos) {\r\n f8b[7] = buf[pos ];\r\n f8b[6] = buf[pos + 1];\r\n f8b[5] = buf[pos + 2];\r\n f8b[4] = buf[pos + 3];\r\n f8b[3] = buf[pos + 4];\r\n f8b[2] = buf[pos + 5];\r\n f8b[1] = buf[pos + 6];\r\n f8b[0] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.readDoubleLE = le ? readDouble_f64_cpy : readDouble_f64_rev;\r\n /* istanbul ignore next */\r\n exports.readDoubleBE = le ? readDouble_f64_rev : readDouble_f64_cpy;\r\n\r\n // double: ieee754\r\n })(); else (function() {\r\n\r\n function writeDouble_ieee754(writeUint, off0, off1, val, buf, pos) {\r\n var sign = val < 0 ? 1 : 0;\r\n if (sign)\r\n val = -val;\r\n if (val === 0) {\r\n writeUint(0, buf, pos + off0);\r\n writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos + off1);\r\n } else if (isNaN(val)) {\r\n writeUint(0, buf, pos + off0);\r\n writeUint(2146959360, buf, pos + off1);\r\n } else if (val > 1.7976931348623157e+308) { // +-Infinity\r\n writeUint(0, buf, pos + off0);\r\n writeUint((sign << 31 | 2146435072) >>> 0, buf, pos + off1);\r\n } else {\r\n var mantissa;\r\n if (val < 2.2250738585072014e-308) { // denormal\r\n mantissa = val / 5e-324;\r\n writeUint(mantissa >>> 0, buf, pos + off0);\r\n writeUint((sign << 31 | mantissa / 4294967296) >>> 0, buf, pos + off1);\r\n } else {\r\n var exponent = Math.floor(Math.log(val) / Math.LN2);\r\n if (exponent === 1024)\r\n exponent = 1023;\r\n mantissa = val * Math.pow(2, -exponent);\r\n writeUint(mantissa * 4503599627370496 >>> 0, buf, pos + off0);\r\n writeUint((sign << 31 | exponent + 1023 << 20 | mantissa * 1048576 & 1048575) >>> 0, buf, pos + off1);\r\n }\r\n }\r\n }\r\n\r\n exports.writeDoubleLE = writeDouble_ieee754.bind(null, writeUintLE, 0, 4);\r\n exports.writeDoubleBE = writeDouble_ieee754.bind(null, writeUintBE, 4, 0);\r\n\r\n function readDouble_ieee754(readUint, off0, off1, buf, pos) {\r\n var lo = readUint(buf, pos + off0),\r\n hi = readUint(buf, pos + off1);\r\n var sign = (hi >> 31) * 2 + 1,\r\n exponent = hi >>> 20 & 2047,\r\n mantissa = 4294967296 * (hi & 1048575) + lo;\r\n return exponent === 2047\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 5e-324 * mantissa\r\n : sign * Math.pow(2, exponent - 1075) * (mantissa + 4503599627370496);\r\n }\r\n\r\n exports.readDoubleLE = readDouble_ieee754.bind(null, readUintLE, 0, 4);\r\n exports.readDoubleBE = readDouble_ieee754.bind(null, readUintBE, 4, 0);\r\n\r\n })();\r\n\r\n return exports;\r\n}\r\n\r\n// uint helpers\r\n\r\nfunction writeUintLE(val, buf, pos) {\r\n buf[pos ] = val & 255;\r\n buf[pos + 1] = val >>> 8 & 255;\r\n buf[pos + 2] = val >>> 16 & 255;\r\n buf[pos + 3] = val >>> 24;\r\n}\r\n\r\nfunction writeUintBE(val, buf, pos) {\r\n buf[pos ] = val >>> 24;\r\n buf[pos + 1] = val >>> 16 & 255;\r\n buf[pos + 2] = val >>> 8 & 255;\r\n buf[pos + 3] = val & 255;\r\n}\r\n\r\nfunction readUintLE(buf, pos) {\r\n return (buf[pos ]\r\n | buf[pos + 1] << 8\r\n | buf[pos + 2] << 16\r\n | buf[pos + 3] << 24) >>> 0;\r\n}\r\n\r\nfunction readUintBE(buf, pos) {\r\n return (buf[pos ] << 24\r\n | buf[pos + 1] << 16\r\n | buf[pos + 2] << 8\r\n | buf[pos + 3]) >>> 0;\r\n}\r\n","\"use strict\";\r\nmodule.exports = inquire;\r\n\r\n/**\r\n * Requires a module only if available.\r\n * @memberof util\r\n * @param {string} moduleName Module to require\r\n * @returns {?Object} Required module if available and not empty, otherwise `null`\r\n */\r\nfunction inquire(moduleName) {\r\n try {\r\n var mod = eval(\"quire\".replace(/^/,\"re\"))(moduleName); // eslint-disable-line no-eval\r\n if (mod && (mod.length || Object.keys(mod).length))\r\n return mod;\r\n } catch (e) {} // eslint-disable-line no-empty\r\n return null;\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal UTF8 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar utf8 = exports;\r\n\r\n/**\r\n * Calculates the UTF8 byte length of a string.\r\n * @param {string} string String\r\n * @returns {number} Byte length\r\n */\r\nutf8.length = function utf8_length(string) {\r\n var len = 0,\r\n c = 0;\r\n for (var i = 0; i < string.length; ++i) {\r\n c = string.charCodeAt(i);\r\n if (c < 128)\r\n len += 1;\r\n else if (c < 2048)\r\n len += 2;\r\n else if ((c & 0xFC00) === 0xD800 && (string.charCodeAt(i + 1) & 0xFC00) === 0xDC00) {\r\n ++i;\r\n len += 4;\r\n } else\r\n len += 3;\r\n }\r\n return len;\r\n};\r\n\r\n/**\r\n * Reads UTF8 bytes as a string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} String read\r\n */\r\nutf8.read = function utf8_read(buffer, start, end) {\r\n var len = end - start;\r\n if (len < 1)\r\n return \"\";\r\n var parts = null,\r\n chunk = [],\r\n i = 0, // char offset\r\n t; // temporary\r\n while (start < end) {\r\n t = buffer[start++];\r\n if (t < 128)\r\n chunk[i++] = t;\r\n else if (t > 191 && t < 224)\r\n chunk[i++] = (t & 31) << 6 | buffer[start++] & 63;\r\n else if (t > 239 && t < 365) {\r\n t = ((t & 7) << 18 | (buffer[start++] & 63) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63) - 0x10000;\r\n chunk[i++] = 0xD800 + (t >> 10);\r\n chunk[i++] = 0xDC00 + (t & 1023);\r\n } else\r\n chunk[i++] = (t & 15) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63;\r\n if (i > 8191) {\r\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (parts) {\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n }\r\n return String.fromCharCode.apply(String, chunk.slice(0, i));\r\n};\r\n\r\n/**\r\n * Writes a string as UTF8 bytes.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Bytes written\r\n */\r\nutf8.write = function utf8_write(string, buffer, offset) {\r\n var start = offset,\r\n c1, // character 1\r\n c2; // character 2\r\n for (var i = 0; i < string.length; ++i) {\r\n c1 = string.charCodeAt(i);\r\n if (c1 < 128) {\r\n buffer[offset++] = c1;\r\n } else if (c1 < 2048) {\r\n buffer[offset++] = c1 >> 6 | 192;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else if ((c1 & 0xFC00) === 0xD800 && ((c2 = string.charCodeAt(i + 1)) & 0xFC00) === 0xDC00) {\r\n c1 = 0x10000 + ((c1 & 0x03FF) << 10) + (c2 & 0x03FF);\r\n ++i;\r\n buffer[offset++] = c1 >> 18 | 240;\r\n buffer[offset++] = c1 >> 12 & 63 | 128;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else {\r\n buffer[offset++] = c1 >> 12 | 224;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n }\r\n }\r\n return offset - start;\r\n};\r\n","\"use strict\";\r\nmodule.exports = pool;\r\n\r\n/**\r\n * An allocator as used by {@link util.pool}.\r\n * @typedef PoolAllocator\r\n * @type {function}\r\n * @param {number} size Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\n\r\n/**\r\n * A slicer as used by {@link util.pool}.\r\n * @typedef PoolSlicer\r\n * @type {function}\r\n * @param {number} start Start offset\r\n * @param {number} end End offset\r\n * @returns {Uint8Array} Buffer slice\r\n * @this {Uint8Array}\r\n */\r\n\r\n/**\r\n * A general purpose buffer pool.\r\n * @memberof util\r\n * @function\r\n * @param {PoolAllocator} alloc Allocator\r\n * @param {PoolSlicer} slice Slicer\r\n * @param {number} [size=8192] Slab size\r\n * @returns {PoolAllocator} Pooled allocator\r\n */\r\nfunction pool(alloc, slice, size) {\r\n var SIZE = size || 8192;\r\n var MAX = SIZE >>> 1;\r\n var slab = null;\r\n var offset = SIZE;\r\n return function pool_alloc(size) {\r\n if (size < 1 || size > MAX)\r\n return alloc(size);\r\n if (offset + size > SIZE) {\r\n slab = alloc(SIZE);\r\n offset = 0;\r\n }\r\n var buf = slice.call(slab, offset, offset += size);\r\n if (offset & 7) // align to 32 bit\r\n offset = (offset | 7) + 1;\r\n return buf;\r\n };\r\n}\r\n","\"use strict\";\nmodule.exports = LongBits;\n\nvar util = require(\"../util/minimal\");\n\n/**\n * Constructs new long bits.\n * @classdesc Helper class for working with the low and high bits of a 64 bit value.\n * @memberof util\n * @constructor\n * @param {number} lo Low 32 bits, unsigned\n * @param {number} hi High 32 bits, unsigned\n */\nfunction LongBits(lo, hi) {\n\n // note that the casts below are theoretically unnecessary as of today, but older statically\n // generated converter code might still call the ctor with signed 32bits. kept for compat.\n\n /**\n * Low bits.\n * @type {number}\n */\n this.lo = lo >>> 0;\n\n /**\n * High bits.\n * @type {number}\n */\n this.hi = hi >>> 0;\n}\n\n/**\n * Zero bits.\n * @memberof util.LongBits\n * @type {util.LongBits}\n */\nvar zero = LongBits.zero = new LongBits(0, 0);\n\nzero.toNumber = function() { return 0; };\nzero.zzEncode = zero.zzDecode = function() { return this; };\nzero.length = function() { return 1; };\n\n/**\n * Zero hash.\n * @memberof util.LongBits\n * @type {string}\n */\nvar zeroHash = LongBits.zeroHash = \"\\0\\0\\0\\0\\0\\0\\0\\0\";\n\n/**\n * Constructs new long bits from the specified number.\n * @param {number} value Value\n * @returns {util.LongBits} Instance\n */\nLongBits.fromNumber = function fromNumber(value) {\n if (value === 0)\n return zero;\n var sign = value < 0;\n if (sign)\n value = -value;\n var lo = value >>> 0,\n hi = (value - lo) / 4294967296 >>> 0;\n if (sign) {\n hi = ~hi >>> 0;\n lo = ~lo >>> 0;\n if (++lo > 4294967295) {\n lo = 0;\n if (++hi > 4294967295)\n hi = 0;\n }\n }\n return new LongBits(lo, hi);\n};\n\n/**\n * Constructs new long bits from a number, long or string.\n * @param {Long|number|string} value Value\n * @returns {util.LongBits} Instance\n */\nLongBits.from = function from(value) {\n if (typeof value === \"number\")\n return LongBits.fromNumber(value);\n if (util.isString(value)) {\n /* istanbul ignore else */\n if (util.Long)\n value = util.Long.fromString(value);\n else\n return LongBits.fromNumber(parseInt(value, 10));\n }\n return value.low || value.high ? new LongBits(value.low >>> 0, value.high >>> 0) : zero;\n};\n\n/**\n * Converts this long bits to a possibly unsafe JavaScript number.\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {number} Possibly unsafe number\n */\nLongBits.prototype.toNumber = function toNumber(unsigned) {\n if (!unsigned && this.hi >>> 31) {\n var lo = ~this.lo + 1 >>> 0,\n hi = ~this.hi >>> 0;\n if (!lo)\n hi = hi + 1 >>> 0;\n return -(lo + hi * 4294967296);\n }\n return this.lo + this.hi * 4294967296;\n};\n\n/**\n * Converts this long bits to a long.\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {Long} Long\n */\nLongBits.prototype.toLong = function toLong(unsigned) {\n return util.Long\n ? new util.Long(this.lo | 0, this.hi | 0, Boolean(unsigned))\n /* istanbul ignore next */\n : { low: this.lo | 0, high: this.hi | 0, unsigned: Boolean(unsigned) };\n};\n\nvar charCodeAt = String.prototype.charCodeAt;\n\n/**\n * Constructs new long bits from the specified 8 characters long hash.\n * @param {string} hash Hash\n * @returns {util.LongBits} Bits\n */\nLongBits.fromHash = function fromHash(hash) {\n if (hash === zeroHash)\n return zero;\n return new LongBits(\n ( charCodeAt.call(hash, 0)\n | charCodeAt.call(hash, 1) << 8\n | charCodeAt.call(hash, 2) << 16\n | charCodeAt.call(hash, 3) << 24) >>> 0\n ,\n ( charCodeAt.call(hash, 4)\n | charCodeAt.call(hash, 5) << 8\n | charCodeAt.call(hash, 6) << 16\n | charCodeAt.call(hash, 7) << 24) >>> 0\n );\n};\n\n/**\n * Converts this long bits to a 8 characters long hash.\n * @returns {string} Hash\n */\nLongBits.prototype.toHash = function toHash() {\n return String.fromCharCode(\n this.lo & 255,\n this.lo >>> 8 & 255,\n this.lo >>> 16 & 255,\n this.lo >>> 24 ,\n this.hi & 255,\n this.hi >>> 8 & 255,\n this.hi >>> 16 & 255,\n this.hi >>> 24\n );\n};\n\n/**\n * Zig-zag encodes this long bits.\n * @returns {util.LongBits} `this`\n */\nLongBits.prototype.zzEncode = function zzEncode() {\n var mask = this.hi >> 31;\n this.hi = ((this.hi << 1 | this.lo >>> 31) ^ mask) >>> 0;\n this.lo = ( this.lo << 1 ^ mask) >>> 0;\n return this;\n};\n\n/**\n * Zig-zag decodes this long bits.\n * @returns {util.LongBits} `this`\n */\nLongBits.prototype.zzDecode = function zzDecode() {\n var mask = -(this.lo & 1);\n this.lo = ((this.lo >>> 1 | this.hi << 31) ^ mask) >>> 0;\n this.hi = ( this.hi >>> 1 ^ mask) >>> 0;\n return this;\n};\n\n/**\n * Calculates the length of this longbits when encoded as a varint.\n * @returns {number} Length\n */\nLongBits.prototype.length = function length() {\n var part0 = this.lo,\n part1 = (this.lo >>> 28 | this.hi << 4) >>> 0,\n part2 = this.hi >>> 24;\n return part2 === 0\n ? part1 === 0\n ? part0 < 16384\n ? part0 < 128 ? 1 : 2\n : part0 < 2097152 ? 3 : 4\n : part1 < 16384\n ? part1 < 128 ? 5 : 6\n : part1 < 2097152 ? 7 : 8\n : part2 < 128 ? 9 : 10;\n};\n","\"use strict\";\nvar util = exports;\n\n// used to return a Promise where callback is omitted\nutil.asPromise = require(\"@protobufjs/aspromise\");\n\n// converts to / from base64 encoded strings\nutil.base64 = require(\"@protobufjs/base64\");\n\n// base class of rpc.Service\nutil.EventEmitter = require(\"@protobufjs/eventemitter\");\n\n// float handling accross browsers\nutil.float = require(\"@protobufjs/float\");\n\n// requires modules optionally and hides the call from bundlers\nutil.inquire = require(\"@protobufjs/inquire\");\n\n// converts to / from utf8 encoded strings\nutil.utf8 = require(\"@protobufjs/utf8\");\n\n// provides a node-like buffer pool in the browser\nutil.pool = require(\"@protobufjs/pool\");\n\n// utility to work with the low and high bits of a 64 bit value\nutil.LongBits = require(\"./longbits\");\n\n/**\n * Whether running within node or not.\n * @memberof util\n * @type {boolean}\n */\nutil.isNode = Boolean(typeof global !== \"undefined\"\n && global\n && global.process\n && global.process.versions\n && global.process.versions.node);\n\n/**\n * Global object reference.\n * @memberof util\n * @type {Object}\n */\nutil.global = util.isNode && global\n || typeof window !== \"undefined\" && window\n || typeof self !== \"undefined\" && self\n || this; // eslint-disable-line no-invalid-this\n\n/**\n * An immuable empty array.\n * @memberof util\n * @type {Array.<*>}\n * @const\n */\nutil.emptyArray = Object.freeze ? Object.freeze([]) : /* istanbul ignore next */ []; // used on prototypes\n\n/**\n * An immutable empty object.\n * @type {Object}\n * @const\n */\nutil.emptyObject = Object.freeze ? Object.freeze({}) : /* istanbul ignore next */ {}; // used on prototypes\n\n/**\n * Tests if the specified value is an integer.\n * @function\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is an integer\n */\nutil.isInteger = Number.isInteger || /* istanbul ignore next */ function isInteger(value) {\n return typeof value === \"number\" && isFinite(value) && Math.floor(value) === value;\n};\n\n/**\n * Tests if the specified value is a string.\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is a string\n */\nutil.isString = function isString(value) {\n return typeof value === \"string\" || value instanceof String;\n};\n\n/**\n * Tests if the specified value is a non-null object.\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is a non-null object\n */\nutil.isObject = function isObject(value) {\n return value && typeof value === \"object\";\n};\n\n/**\n * Checks if a property on a message is considered to be present.\n * This is an alias of {@link util.isSet}.\n * @function\n * @param {Object} obj Plain object or message instance\n * @param {string} prop Property name\n * @returns {boolean} `true` if considered to be present, otherwise `false`\n */\nutil.isset =\n\n/**\n * Checks if a property on a message is considered to be present.\n * @param {Object} obj Plain object or message instance\n * @param {string} prop Property name\n * @returns {boolean} `true` if considered to be present, otherwise `false`\n */\nutil.isSet = function isSet(obj, prop) {\n var value = obj[prop];\n if (value != null && obj.hasOwnProperty(prop)) // eslint-disable-line eqeqeq, no-prototype-builtins\n return typeof value !== \"object\" || (Array.isArray(value) ? value.length : Object.keys(value).length) > 0;\n return false;\n};\n\n/**\n * Any compatible Buffer instance.\n * This is a minimal stand-alone definition of a Buffer instance. The actual type is that exported by node's typings.\n * @interface Buffer\n * @extends Uint8Array\n */\n\n/**\n * Node's Buffer class if available.\n * @type {Constructor<Buffer>}\n */\nutil.Buffer = (function() {\n try {\n var Buffer = util.inquire(\"buffer\").Buffer;\n // refuse to use non-node buffers if not explicitly assigned (perf reasons):\n return Buffer.prototype.utf8Write ? Buffer : /* istanbul ignore next */ null;\n } catch (e) {\n /* istanbul ignore next */\n return null;\n }\n})();\n\n// Internal alias of or polyfull for Buffer.from.\nutil._Buffer_from = null;\n\n// Internal alias of or polyfill for Buffer.allocUnsafe.\nutil._Buffer_allocUnsafe = null;\n\n/**\n * Creates a new buffer of whatever type supported by the environment.\n * @param {number|number[]} [sizeOrArray=0] Buffer size or number array\n * @returns {Uint8Array|Buffer} Buffer\n */\nutil.newBuffer = function newBuffer(sizeOrArray) {\n /* istanbul ignore next */\n return typeof sizeOrArray === \"number\"\n ? util.Buffer\n ? util._Buffer_allocUnsafe(sizeOrArray)\n : new util.Array(sizeOrArray)\n : util.Buffer\n ? util._Buffer_from(sizeOrArray)\n : typeof Uint8Array === \"undefined\"\n ? sizeOrArray\n : new Uint8Array(sizeOrArray);\n};\n\n/**\n * Array implementation used in the browser. `Uint8Array` if supported, otherwise `Array`.\n * @type {Constructor<Uint8Array>}\n */\nutil.Array = typeof Uint8Array !== \"undefined\" ? Uint8Array /* istanbul ignore next */ : Array;\n\n/**\n * Any compatible Long instance.\n * This is a minimal stand-alone definition of a Long instance. The actual type is that exported by long.js.\n * @interface Long\n * @property {number} low Low bits\n * @property {number} high High bits\n * @property {boolean} unsigned Whether unsigned or not\n */\n\n/**\n * Long.js's Long class if available.\n * @type {Constructor<Long>}\n */\nutil.Long = /* istanbul ignore next */ util.global.dcodeIO && /* istanbul ignore next */ util.global.dcodeIO.Long\n || /* istanbul ignore next */ util.global.Long\n || util.inquire(\"long\");\n\n/**\n * Regular expression used to verify 2 bit (`bool`) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key2Re = /^true|false|0|1$/;\n\n/**\n * Regular expression used to verify 32 bit (`int32` etc.) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key32Re = /^-?(?:0|[1-9][0-9]*)$/;\n\n/**\n * Regular expression used to verify 64 bit (`int64` etc.) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key64Re = /^(?:[\\\\x00-\\\\xff]{8}|-?(?:0|[1-9][0-9]*))$/;\n\n/**\n * Converts a number or long to an 8 characters long hash string.\n * @param {Long|number} value Value to convert\n * @returns {string} Hash\n */\nutil.longToHash = function longToHash(value) {\n return value\n ? util.LongBits.from(value).toHash()\n : util.LongBits.zeroHash;\n};\n\n/**\n * Converts an 8 characters long hash string to a long or number.\n * @param {string} hash Hash\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {Long|number} Original value\n */\nutil.longFromHash = function longFromHash(hash, unsigned) {\n var bits = util.LongBits.fromHash(hash);\n if (util.Long)\n return util.Long.fromBits(bits.lo, bits.hi, unsigned);\n return bits.toNumber(Boolean(unsigned));\n};\n\n/**\n * Merges the properties of the source object into the destination object.\n * @memberof util\n * @param {Object.<string,*>} dst Destination object\n * @param {Object.<string,*>} src Source object\n * @param {boolean} [ifNotSet=false] Merges only if the key is not already set\n * @returns {Object.<string,*>} Destination object\n */\nfunction merge(dst, src, ifNotSet) { // used by converters\n for (var keys = Object.keys(src), i = 0; i < keys.length; ++i)\n if (dst[keys[i]] === undefined || !ifNotSet)\n dst[keys[i]] = src[keys[i]];\n return dst;\n}\n\nutil.merge = merge;\n\n/**\n * Converts the first character of a string to lower case.\n * @param {string} str String to convert\n * @returns {string} Converted string\n */\nutil.lcFirst = function lcFirst(str) {\n return str.charAt(0).toLowerCase() + str.substring(1);\n};\n\n/**\n * Creates a custom error constructor.\n * @memberof util\n * @param {string} name Error name\n * @returns {Constructor<Error>} Custom error constructor\n */\nfunction newError(name) {\n\n function CustomError(message, properties) {\n\n if (!(this instanceof CustomError))\n return new CustomError(message, properties);\n\n // Error.call(this, message);\n // ^ just returns a new error instance because the ctor can be called as a function\n\n Object.defineProperty(this, \"message\", { get: function() { return message; } });\n\n /* istanbul ignore next */\n if (Error.captureStackTrace) // node\n Error.captureStackTrace(this, CustomError);\n else\n Object.defineProperty(this, \"stack\", { value: new Error().stack || \"\" });\n\n if (properties)\n merge(this, properties);\n }\n\n (CustomError.prototype = Object.create(Error.prototype)).constructor = CustomError;\n\n Object.defineProperty(CustomError.prototype, \"name\", { get: function() { return name; } });\n\n CustomError.prototype.toString = function toString() {\n return this.name + \": \" + this.message;\n };\n\n return CustomError;\n}\n\nutil.newError = newError;\n\n/**\n * Constructs a new protocol error.\n * @classdesc Error subclass indicating a protocol specifc error.\n * @memberof util\n * @extends Error\n * @template T extends Message<T>\n * @constructor\n * @param {string} message Error message\n * @param {Object.<string,*>} [properties] Additional properties\n * @example\n * try {\n * MyMessage.decode(someBuffer); // throws if required fields are missing\n * } catch (e) {\n * if (e instanceof ProtocolError && e.instance)\n * console.log(\"decoded so far: \" + JSON.stringify(e.instance));\n * }\n */\nutil.ProtocolError = newError(\"ProtocolError\");\n\n/**\n * So far decoded message instance.\n * @name util.ProtocolError#instance\n * @type {Message<T>}\n */\n\n/**\n * A OneOf getter as returned by {@link util.oneOfGetter}.\n * @typedef OneOfGetter\n * @type {function}\n * @returns {string|undefined} Set field name, if any\n */\n\n/**\n * Builds a getter for a oneof's present field name.\n * @param {string[]} fieldNames Field names\n * @returns {OneOfGetter} Unbound getter\n */\nutil.oneOfGetter = function getOneOf(fieldNames) {\n var fieldMap = {};\n for (var i = 0; i < fieldNames.length; ++i)\n fieldMap[fieldNames[i]] = 1;\n\n /**\n * @returns {string|undefined} Set field name, if any\n * @this Object\n * @ignore\n */\n return function() { // eslint-disable-line consistent-return\n for (var keys = Object.keys(this), i = keys.length - 1; i > -1; --i)\n if (fieldMap[keys[i]] === 1 && this[keys[i]] !== undefined && this[keys[i]] !== null)\n return keys[i];\n };\n};\n\n/**\n * A OneOf setter as returned by {@link util.oneOfSetter}.\n * @typedef OneOfSetter\n * @type {function}\n * @param {string|undefined} value Field name\n * @returns {undefined}\n */\n\n/**\n * Builds a setter for a oneof's present field name.\n * @param {string[]} fieldNames Field names\n * @returns {OneOfSetter} Unbound setter\n */\nutil.oneOfSetter = function setOneOf(fieldNames) {\n\n /**\n * @param {string} name Field name\n * @returns {undefined}\n * @this Object\n * @ignore\n */\n return function(name) {\n for (var i = 0; i < fieldNames.length; ++i)\n if (fieldNames[i] !== name)\n delete this[fieldNames[i]];\n };\n};\n\n/**\n * Default conversion options used for {@link Message#toJSON} implementations.\n *\n * These options are close to proto3's JSON mapping with the exception that internal types like Any are handled just like messages. More precisely:\n *\n * - Longs become strings\n * - Enums become string keys\n * - Bytes become base64 encoded strings\n * - (Sub-)Messages become plain objects\n * - Maps become plain objects with all string keys\n * - Repeated fields become arrays\n * - NaN and Infinity for float and double fields become strings\n *\n * @type {IConversionOptions}\n * @see https://developers.google.com/protocol-buffers/docs/proto3?hl=en#json\n */\nutil.toJSONOptions = {\n longs: String,\n enums: String,\n bytes: String,\n json: true\n};\n\n// Sets up buffer utility according to the environment (called in index-minimal)\nutil._configure = function() {\n var Buffer = util.Buffer;\n /* istanbul ignore if */\n if (!Buffer) {\n util._Buffer_from = util._Buffer_allocUnsafe = null;\n return;\n }\n // because node 4.x buffers are incompatible & immutable\n // see: https://github.com/dcodeIO/protobuf.js/pull/665\n util._Buffer_from = Buffer.from !== Uint8Array.from && Buffer.from ||\n /* istanbul ignore next */\n function Buffer_from(value, encoding) {\n return new Buffer(value, encoding);\n };\n util._Buffer_allocUnsafe = Buffer.allocUnsafe ||\n /* istanbul ignore next */\n function Buffer_allocUnsafe(size) {\n return new Buffer(size);\n };\n};\n","\"use strict\";\nmodule.exports = Writer;\n\nvar util = require(\"./util/minimal\");\n\nvar BufferWriter; // cyclic\n\nvar LongBits = util.LongBits,\n base64 = util.base64,\n utf8 = util.utf8;\n\n/**\n * Constructs a new writer operation instance.\n * @classdesc Scheduled writer operation.\n * @constructor\n * @param {function(*, Uint8Array, number)} fn Function to call\n * @param {number} len Value byte length\n * @param {*} val Value to write\n * @ignore\n */\nfunction Op(fn, len, val) {\n\n /**\n * Function to call.\n * @type {function(Uint8Array, number, *)}\n */\n this.fn = fn;\n\n /**\n * Value byte length.\n * @type {number}\n */\n this.len = len;\n\n /**\n * Next operation.\n * @type {Writer.Op|undefined}\n */\n this.next = undefined;\n\n /**\n * Value to write.\n * @type {*}\n */\n this.val = val; // type varies\n}\n\n/* istanbul ignore next */\nfunction noop() {} // eslint-disable-line no-empty-function\n\n/**\n * Constructs a new writer state instance.\n * @classdesc Copied writer state.\n * @memberof Writer\n * @constructor\n * @param {Writer} writer Writer to copy state from\n * @ignore\n */\nfunction State(writer) {\n\n /**\n * Current head.\n * @type {Writer.Op}\n */\n this.head = writer.head;\n\n /**\n * Current tail.\n * @type {Writer.Op}\n */\n this.tail = writer.tail;\n\n /**\n * Current buffer length.\n * @type {number}\n */\n this.len = writer.len;\n\n /**\n * Next state.\n * @type {State|null}\n */\n this.next = writer.states;\n}\n\n/**\n * Constructs a new writer instance.\n * @classdesc Wire format writer using `Uint8Array` if available, otherwise `Array`.\n * @constructor\n */\nfunction Writer() {\n\n /**\n * Current length.\n * @type {number}\n */\n this.len = 0;\n\n /**\n * Operations head.\n * @type {Object}\n */\n this.head = new Op(noop, 0, 0);\n\n /**\n * Operations tail\n * @type {Object}\n */\n this.tail = this.head;\n\n /**\n * Linked forked states.\n * @type {Object|null}\n */\n this.states = null;\n\n // When a value is written, the writer calculates its byte length and puts it into a linked\n // list of operations to perform when finish() is called. This both allows us to allocate\n // buffers of the exact required size and reduces the amount of work we have to do compared\n // to first calculating over objects and then encoding over objects. In our case, the encoding\n // part is just a linked list walk calling operations with already prepared values.\n}\n\nvar create = function create() {\n return util.Buffer\n ? function create_buffer_setup() {\n return (Writer.create = function create_buffer() {\n return new BufferWriter();\n })();\n }\n /* istanbul ignore next */\n : function create_array() {\n return new Writer();\n };\n};\n\n/**\n * Creates a new writer.\n * @function\n * @returns {BufferWriter|Writer} A {@link BufferWriter} when Buffers are supported, otherwise a {@link Writer}\n */\nWriter.create = create();\n\n/**\n * Allocates a buffer of the specified size.\n * @param {number} size Buffer size\n * @returns {Uint8Array} Buffer\n */\nWriter.alloc = function alloc(size) {\n return new util.Array(size);\n};\n\n// Use Uint8Array buffer pool in the browser, just like node does with buffers\n/* istanbul ignore else */\nif (util.Array !== Array)\n Writer.alloc = util.pool(Writer.alloc, util.Array.prototype.subarray);\n\n/**\n * Pushes a new operation to the queue.\n * @param {function(Uint8Array, number, *)} fn Function to call\n * @param {number} len Value byte length\n * @param {number} val Value to write\n * @returns {Writer} `this`\n * @private\n */\nWriter.prototype._push = function push(fn, len, val) {\n this.tail = this.tail.next = new Op(fn, len, val);\n this.len += len;\n return this;\n};\n\nfunction writeByte(val, buf, pos) {\n buf[pos] = val & 255;\n}\n\nfunction writeVarint32(val, buf, pos) {\n while (val > 127) {\n buf[pos++] = val & 127 | 128;\n val >>>= 7;\n }\n buf[pos] = val;\n}\n\n/**\n * Constructs a new varint writer operation instance.\n * @classdesc Scheduled varint writer operation.\n * @extends Op\n * @constructor\n * @param {number} len Value byte length\n * @param {number} val Value to write\n * @ignore\n */\nfunction VarintOp(len, val) {\n this.len = len;\n this.next = undefined;\n this.val = val;\n}\n\nVarintOp.prototype = Object.create(Op.prototype);\nVarintOp.prototype.fn = writeVarint32;\n\n/**\n * Writes an unsigned 32 bit value as a varint.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.uint32 = function write_uint32(value) {\n // here, the call to this.push has been inlined and a varint specific Op subclass is used.\n // uint32 is by far the most frequently used operation and benefits significantly from this.\n this.len += (this.tail = this.tail.next = new VarintOp(\n (value = value >>> 0)\n < 128 ? 1\n : value < 16384 ? 2\n : value < 2097152 ? 3\n : value < 268435456 ? 4\n : 5,\n value)).len;\n return this;\n};\n\n/**\n * Writes a signed 32 bit value as a varint.\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.int32 = function write_int32(value) {\n return value < 0\n ? this._push(writeVarint64, 10, LongBits.fromNumber(value)) // 10 bytes per spec\n : this.uint32(value);\n};\n\n/**\n * Writes a 32 bit value as a varint, zig-zag encoded.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.sint32 = function write_sint32(value) {\n return this.uint32((value << 1 ^ value >> 31) >>> 0);\n};\n\nfunction writeVarint64(val, buf, pos) {\n while (val.hi) {\n buf[pos++] = val.lo & 127 | 128;\n val.lo = (val.lo >>> 7 | val.hi << 25) >>> 0;\n val.hi >>>= 7;\n }\n while (val.lo > 127) {\n buf[pos++] = val.lo & 127 | 128;\n val.lo = val.lo >>> 7;\n }\n buf[pos++] = val.lo;\n}\n\n/**\n * Writes an unsigned 64 bit value as a varint.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.uint64 = function write_uint64(value) {\n var bits = LongBits.from(value);\n return this._push(writeVarint64, bits.length(), bits);\n};\n\n/**\n * Writes a signed 64 bit value as a varint.\n * @function\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.int64 = Writer.prototype.uint64;\n\n/**\n * Writes a signed 64 bit value as a varint, zig-zag encoded.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.sint64 = function write_sint64(value) {\n var bits = LongBits.from(value).zzEncode();\n return this._push(writeVarint64, bits.length(), bits);\n};\n\n/**\n * Writes a boolish value as a varint.\n * @param {boolean} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.bool = function write_bool(value) {\n return this._push(writeByte, 1, value ? 1 : 0);\n};\n\nfunction writeFixed32(val, buf, pos) {\n buf[pos ] = val & 255;\n buf[pos + 1] = val >>> 8 & 255;\n buf[pos + 2] = val >>> 16 & 255;\n buf[pos + 3] = val >>> 24;\n}\n\n/**\n * Writes an unsigned 32 bit value as fixed 32 bits.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.fixed32 = function write_fixed32(value) {\n return this._push(writeFixed32, 4, value >>> 0);\n};\n\n/**\n * Writes a signed 32 bit value as fixed 32 bits.\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.sfixed32 = Writer.prototype.fixed32;\n\n/**\n * Writes an unsigned 64 bit value as fixed 64 bits.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.fixed64 = function write_fixed64(value) {\n var bits = LongBits.from(value);\n return this._push(writeFixed32, 4, bits.lo)._push(writeFixed32, 4, bits.hi);\n};\n\n/**\n * Writes a signed 64 bit value as fixed 64 bits.\n * @function\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.sfixed64 = Writer.prototype.fixed64;\n\n/**\n * Writes a float (32 bit).\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.float = function write_float(value) {\n return this._push(util.float.writeFloatLE, 4, value);\n};\n\n/**\n * Writes a double (64 bit float).\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.double = function write_double(value) {\n return this._push(util.float.writeDoubleLE, 8, value);\n};\n\nvar writeBytes = util.Array.prototype.set\n ? function writeBytes_set(val, buf, pos) {\n buf.set(val, pos); // also works for plain array values\n }\n /* istanbul ignore next */\n : function writeBytes_for(val, buf, pos) {\n for (var i = 0; i < val.length; ++i)\n buf[pos + i] = val[i];\n };\n\n/**\n * Writes a sequence of bytes.\n * @param {Uint8Array|string} value Buffer or base64 encoded string to write\n * @returns {Writer} `this`\n */\nWriter.prototype.bytes = function write_bytes(value) {\n var len = value.length >>> 0;\n if (!len)\n return this._push(writeByte, 1, 0);\n if (util.isString(value)) {\n var buf = Writer.alloc(len = base64.length(value));\n base64.decode(value, buf, 0);\n value = buf;\n }\n return this.uint32(len)._push(writeBytes, len, value);\n};\n\n/**\n * Writes a string.\n * @param {string} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.string = function write_string(value) {\n var len = utf8.length(value);\n return len\n ? this.uint32(len)._push(utf8.write, len, value)\n : this._push(writeByte, 1, 0);\n};\n\n/**\n * Forks this writer's state by pushing it to a stack.\n * Calling {@link Writer#reset|reset} or {@link Writer#ldelim|ldelim} resets the writer to the previous state.\n * @returns {Writer} `this`\n */\nWriter.prototype.fork = function fork() {\n this.states = new State(this);\n this.head = this.tail = new Op(noop, 0, 0);\n this.len = 0;\n return this;\n};\n\n/**\n * Resets this instance to the last state.\n * @returns {Writer} `this`\n */\nWriter.prototype.reset = function reset() {\n if (this.states) {\n this.head = this.states.head;\n this.tail = this.states.tail;\n this.len = this.states.len;\n this.states = this.states.next;\n } else {\n this.head = this.tail = new Op(noop, 0, 0);\n this.len = 0;\n }\n return this;\n};\n\n/**\n * Resets to the last state and appends the fork state's current write length as a varint followed by its operations.\n * @returns {Writer} `this`\n */\nWriter.prototype.ldelim = function ldelim() {\n var head = this.head,\n tail = this.tail,\n len = this.len;\n this.reset().uint32(len);\n if (len) {\n this.tail.next = head.next; // skip noop\n this.tail = tail;\n this.len += len;\n }\n return this;\n};\n\n/**\n * Finishes the write operation.\n * @returns {Uint8Array} Finished buffer\n */\nWriter.prototype.finish = function finish() {\n var head = this.head.next, // skip noop\n buf = this.constructor.alloc(this.len),\n pos = 0;\n while (head) {\n head.fn(head.val, buf, pos);\n pos += head.len;\n head = head.next;\n }\n // this.head = this.tail = null;\n return buf;\n};\n\nWriter._configure = function(BufferWriter_) {\n BufferWriter = BufferWriter_;\n Writer.create = create();\n BufferWriter._configure();\n};\n","\"use strict\";\nmodule.exports = BufferWriter;\n\n// extends Writer\nvar Writer = require(\"./writer\");\n(BufferWriter.prototype = Object.create(Writer.prototype)).constructor = BufferWriter;\n\nvar util = require(\"./util/minimal\");\n\n/**\n * Constructs a new buffer writer instance.\n * @classdesc Wire format writer using node buffers.\n * @extends Writer\n * @constructor\n */\nfunction BufferWriter() {\n Writer.call(this);\n}\n\nBufferWriter._configure = function () {\n /**\n * Allocates a buffer of the specified size.\n * @function\n * @param {number} size Buffer size\n * @returns {Buffer} Buffer\n */\n BufferWriter.alloc = util._Buffer_allocUnsafe;\n\n BufferWriter.writeBytesBuffer = util.Buffer && util.Buffer.prototype instanceof Uint8Array && util.Buffer.prototype.set.name === \"set\"\n ? function writeBytesBuffer_set(val, buf, pos) {\n buf.set(val, pos); // faster than copy (requires node >= 4 where Buffers extend Uint8Array and set is properly inherited)\n // also works for plain array values\n }\n /* istanbul ignore next */\n : function writeBytesBuffer_copy(val, buf, pos) {\n if (val.copy) // Buffer values\n val.copy(buf, pos, 0, val.length);\n else for (var i = 0; i < val.length;) // plain array values\n buf[pos++] = val[i++];\n };\n};\n\n\n/**\n * @override\n */\nBufferWriter.prototype.bytes = function write_bytes_buffer(value) {\n if (util.isString(value))\n value = util._Buffer_from(value, \"base64\");\n var len = value.length >>> 0;\n this.uint32(len);\n if (len)\n this._push(BufferWriter.writeBytesBuffer, len, value);\n return this;\n};\n\nfunction writeStringBuffer(val, buf, pos) {\n if (val.length < 40) // plain js is faster for short strings (probably due to redundant assertions)\n util.utf8.write(val, buf, pos);\n else if (buf.utf8Write)\n buf.utf8Write(val, pos);\n else\n buf.write(val, pos);\n}\n\n/**\n * @override\n */\nBufferWriter.prototype.string = function write_string_buffer(value) {\n var len = util.Buffer.byteLength(value);\n this.uint32(len);\n if (len)\n this._push(writeStringBuffer, len, value);\n return this;\n};\n\n\n/**\n * Finishes the write operation.\n * @name BufferWriter#finish\n * @function\n * @returns {Buffer} Finished buffer\n */\n\nBufferWriter._configure();\n","\"use strict\";\nmodule.exports = Reader;\n\nvar util = require(\"./util/minimal\");\n\nvar BufferReader; // cyclic\n\nvar LongBits = util.LongBits,\n utf8 = util.utf8;\n\n/* istanbul ignore next */\nfunction indexOutOfRange(reader, writeLength) {\n return RangeError(\"index out of range: \" + reader.pos + \" + \" + (writeLength || 1) + \" > \" + reader.len);\n}\n\n/**\n * Constructs a new reader instance using the specified buffer.\n * @classdesc Wire format reader using `Uint8Array` if available, otherwise `Array`.\n * @constructor\n * @param {Uint8Array} buffer Buffer to read from\n */\nfunction Reader(buffer) {\n\n /**\n * Read buffer.\n * @type {Uint8Array}\n */\n this.buf = buffer;\n\n /**\n * Read buffer position.\n * @type {number}\n */\n this.pos = 0;\n\n /**\n * Read buffer length.\n * @type {number}\n */\n this.len = buffer.length;\n}\n\nvar create_array = typeof Uint8Array !== \"undefined\"\n ? function create_typed_array(buffer) {\n if (buffer instanceof Uint8Array || Array.isArray(buffer))\n return new Reader(buffer);\n throw Error(\"illegal buffer\");\n }\n /* istanbul ignore next */\n : function create_array(buffer) {\n if (Array.isArray(buffer))\n return new Reader(buffer);\n throw Error(\"illegal buffer\");\n };\n\nvar create = function create() {\n return util.Buffer\n ? function create_buffer_setup(buffer) {\n return (Reader.create = function create_buffer(buffer) {\n return util.Buffer.isBuffer(buffer)\n ? new BufferReader(buffer)\n /* istanbul ignore next */\n : create_array(buffer);\n })(buffer);\n }\n /* istanbul ignore next */\n : create_array;\n};\n\n/**\n * Creates a new reader using the specified buffer.\n * @function\n * @param {Uint8Array|Buffer} buffer Buffer to read from\n * @returns {Reader|BufferReader} A {@link BufferReader} if `buffer` is a Buffer, otherwise a {@link Reader}\n * @throws {Error} If `buffer` is not a valid buffer\n */\nReader.create = create();\n\nReader.prototype._slice = util.Array.prototype.subarray || /* istanbul ignore next */ util.Array.prototype.slice;\n\n/**\n * Reads a varint as an unsigned 32 bit value.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.uint32 = (function read_uint32_setup() {\n var value = 4294967295; // optimizer type-hint, tends to deopt otherwise (?!)\n return function read_uint32() {\n value = ( this.buf[this.pos] & 127 ) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 7) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 14) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 21) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 15) << 28) >>> 0; if (this.buf[this.pos++] < 128) return value;\n\n /* istanbul ignore if */\n if ((this.pos += 5) > this.len) {\n this.pos = this.len;\n throw indexOutOfRange(this, 10);\n }\n return value;\n };\n})();\n\n/**\n * Reads a varint as a signed 32 bit value.\n * @returns {number} Value read\n */\nReader.prototype.int32 = function read_int32() {\n return this.uint32() | 0;\n};\n\n/**\n * Reads a zig-zag encoded varint as a signed 32 bit value.\n * @returns {number} Value read\n */\nReader.prototype.sint32 = function read_sint32() {\n var value = this.uint32();\n return value >>> 1 ^ -(value & 1) | 0;\n};\n\n/* eslint-disable no-invalid-this */\n\nfunction readLongVarint() {\n // tends to deopt with local vars for octet etc.\n var bits = new LongBits(0, 0);\n var i = 0;\n if (this.len - this.pos > 4) { // fast route (lo)\n for (; i < 4; ++i) {\n // 1st..4th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n // 5th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << 28) >>> 0;\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) >> 4) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n i = 0;\n } else {\n for (; i < 3; ++i) {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n // 1st..3th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n // 4th\n bits.lo = (bits.lo | (this.buf[this.pos++] & 127) << i * 7) >>> 0;\n return bits;\n }\n if (this.len - this.pos > 4) { // fast route (hi)\n for (; i < 5; ++i) {\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n } else {\n for (; i < 5; ++i) {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n }\n /* istanbul ignore next */\n throw Error(\"invalid varint encoding\");\n}\n\n/* eslint-enable no-invalid-this */\n\n/**\n * Reads a varint as a signed 64 bit value.\n * @name Reader#int64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a varint as an unsigned 64 bit value.\n * @name Reader#uint64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a zig-zag encoded varint as a signed 64 bit value.\n * @name Reader#sint64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a varint as a boolean.\n * @returns {boolean} Value read\n */\nReader.prototype.bool = function read_bool() {\n return this.uint32() !== 0;\n};\n\nfunction readFixed32_end(buf, end) { // note that this uses `end`, not `pos`\n return (buf[end - 4]\n | buf[end - 3] << 8\n | buf[end - 2] << 16\n | buf[end - 1] << 24) >>> 0;\n}\n\n/**\n * Reads fixed 32 bits as an unsigned 32 bit integer.\n * @returns {number} Value read\n */\nReader.prototype.fixed32 = function read_fixed32() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n return readFixed32_end(this.buf, this.pos += 4);\n};\n\n/**\n * Reads fixed 32 bits as a signed 32 bit integer.\n * @returns {number} Value read\n */\nReader.prototype.sfixed32 = function read_sfixed32() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n return readFixed32_end(this.buf, this.pos += 4) | 0;\n};\n\n/* eslint-disable no-invalid-this */\n\nfunction readFixed64(/* this: Reader */) {\n\n /* istanbul ignore if */\n if (this.pos + 8 > this.len)\n throw indexOutOfRange(this, 8);\n\n return new LongBits(readFixed32_end(this.buf, this.pos += 4), readFixed32_end(this.buf, this.pos += 4));\n}\n\n/* eslint-enable no-invalid-this */\n\n/**\n * Reads fixed 64 bits.\n * @name Reader#fixed64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads zig-zag encoded fixed 64 bits.\n * @name Reader#sfixed64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a float (32 bit) as a number.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.float = function read_float() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n var value = util.float.readFloatLE(this.buf, this.pos);\n this.pos += 4;\n return value;\n};\n\n/**\n * Reads a double (64 bit float) as a number.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.double = function read_double() {\n\n /* istanbul ignore if */\n if (this.pos + 8 > this.len)\n throw indexOutOfRange(this, 4);\n\n var value = util.float.readDoubleLE(this.buf, this.pos);\n this.pos += 8;\n return value;\n};\n\n/**\n * Reads a sequence of bytes preceeded by its length as a varint.\n * @returns {Uint8Array} Value read\n */\nReader.prototype.bytes = function read_bytes() {\n var length = this.uint32(),\n start = this.pos,\n end = this.pos + length;\n\n /* istanbul ignore if */\n if (end > this.len)\n throw indexOutOfRange(this, length);\n\n this.pos += length;\n if (Array.isArray(this.buf)) // plain array\n return this.buf.slice(start, end);\n return start === end // fix for IE 10/Win8 and others' subarray returning array of size 1\n ? new this.buf.constructor(0)\n : this._slice.call(this.buf, start, end);\n};\n\n/**\n * Reads a string preceeded by its byte length as a varint.\n * @returns {string} Value read\n */\nReader.prototype.string = function read_string() {\n var bytes = this.bytes();\n return utf8.read(bytes, 0, bytes.length);\n};\n\n/**\n * Skips the specified number of bytes if specified, otherwise skips a varint.\n * @param {number} [length] Length if known, otherwise a varint is assumed\n * @returns {Reader} `this`\n */\nReader.prototype.skip = function skip(length) {\n if (typeof length === \"number\") {\n /* istanbul ignore if */\n if (this.pos + length > this.len)\n throw indexOutOfRange(this, length);\n this.pos += length;\n } else {\n do {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n } while (this.buf[this.pos++] & 128);\n }\n return this;\n};\n\n/**\n * Skips the next element of the specified wire type.\n * @param {number} wireType Wire type received\n * @returns {Reader} `this`\n */\nReader.prototype.skipType = function(wireType) {\n switch (wireType) {\n case 0:\n this.skip();\n break;\n case 1:\n this.skip(8);\n break;\n case 2:\n this.skip(this.uint32());\n break;\n case 3:\n while ((wireType = this.uint32() & 7) !== 4) {\n this.skipType(wireType);\n }\n break;\n case 5:\n this.skip(4);\n break;\n\n /* istanbul ignore next */\n default:\n throw Error(\"invalid wire type \" + wireType + \" at offset \" + this.pos);\n }\n return this;\n};\n\nReader._configure = function(BufferReader_) {\n BufferReader = BufferReader_;\n Reader.create = create();\n BufferReader._configure();\n\n var fn = util.Long ? \"toLong\" : /* istanbul ignore next */ \"toNumber\";\n util.merge(Reader.prototype, {\n\n int64: function read_int64() {\n return readLongVarint.call(this)[fn](false);\n },\n\n uint64: function read_uint64() {\n return readLongVarint.call(this)[fn](true);\n },\n\n sint64: function read_sint64() {\n return readLongVarint.call(this).zzDecode()[fn](false);\n },\n\n fixed64: function read_fixed64() {\n return readFixed64.call(this)[fn](true);\n },\n\n sfixed64: function read_sfixed64() {\n return readFixed64.call(this)[fn](false);\n }\n\n });\n};\n","\"use strict\";\nmodule.exports = BufferReader;\n\n// extends Reader\nvar Reader = require(\"./reader\");\n(BufferReader.prototype = Object.create(Reader.prototype)).constructor = BufferReader;\n\nvar util = require(\"./util/minimal\");\n\n/**\n * Constructs a new buffer reader instance.\n * @classdesc Wire format reader using node buffers.\n * @extends Reader\n * @constructor\n * @param {Buffer} buffer Buffer to read from\n */\nfunction BufferReader(buffer) {\n Reader.call(this, buffer);\n\n /**\n * Read buffer.\n * @name BufferReader#buf\n * @type {Buffer}\n */\n}\n\nBufferReader._configure = function () {\n /* istanbul ignore else */\n if (util.Buffer)\n BufferReader.prototype._slice = util.Buffer.prototype.slice;\n};\n\n\n/**\n * @override\n */\nBufferReader.prototype.string = function read_string_buffer() {\n var len = this.uint32(); // modifies pos\n return this.buf.utf8Slice\n ? this.buf.utf8Slice(this.pos, this.pos = Math.min(this.pos + len, this.len))\n : this.buf.toString(\"utf-8\", this.pos, this.pos = Math.min(this.pos + len, this.len));\n};\n\n/**\n * Reads a sequence of bytes preceeded by its length as a varint.\n * @name BufferReader#bytes\n * @function\n * @returns {Buffer} Value read\n */\n\nBufferReader._configure();\n","\"use strict\";\nmodule.exports = Service;\n\nvar util = require(\"../util/minimal\");\n\n// Extends EventEmitter\n(Service.prototype = Object.create(util.EventEmitter.prototype)).constructor = Service;\n\n/**\n * A service method callback as used by {@link rpc.ServiceMethod|ServiceMethod}.\n *\n * Differs from {@link RPCImplCallback} in that it is an actual callback of a service method which may not return `response = null`.\n * @typedef rpc.ServiceMethodCallback\n * @template TRes extends Message<TRes>\n * @type {function}\n * @param {Error|null} error Error, if any\n * @param {TRes} [response] Response message\n * @returns {undefined}\n */\n\n/**\n * A service method part of a {@link rpc.Service} as created by {@link Service.create}.\n * @typedef rpc.ServiceMethod\n * @template TReq extends Message<TReq>\n * @template TRes extends Message<TRes>\n * @type {function}\n * @param {TReq|Properties<TReq>} request Request message or plain object\n * @param {rpc.ServiceMethodCallback<TRes>} [callback] Node-style callback called with the error, if any, and the response message\n * @returns {Promise<Message<TRes>>} Promise if `callback` has been omitted, otherwise `undefined`\n */\n\n/**\n * Constructs a new RPC service instance.\n * @classdesc An RPC service as returned by {@link Service#create}.\n * @exports rpc.Service\n * @extends util.EventEmitter\n * @constructor\n * @param {RPCImpl} rpcImpl RPC implementation\n * @param {boolean} [requestDelimited=false] Whether requests are length-delimited\n * @param {boolean} [responseDelimited=false] Whether responses are length-delimited\n */\nfunction Service(rpcImpl, requestDelimited, responseDelimited) {\n\n if (typeof rpcImpl !== \"function\")\n throw TypeError(\"rpcImpl must be a function\");\n\n util.EventEmitter.call(this);\n\n /**\n * RPC implementation. Becomes `null` once the service is ended.\n * @type {RPCImpl|null}\n */\n this.rpcImpl = rpcImpl;\n\n /**\n * Whether requests are length-delimited.\n * @type {boolean}\n */\n this.requestDelimited = Boolean(requestDelimited);\n\n /**\n * Whether responses are length-delimited.\n * @type {boolean}\n */\n this.responseDelimited = Boolean(responseDelimited);\n}\n\n/**\n * Calls a service method through {@link rpc.Service#rpcImpl|rpcImpl}.\n * @param {Method|rpc.ServiceMethod<TReq,TRes>} method Reflected or static method\n * @param {Constructor<TReq>} requestCtor Request constructor\n * @param {Constructor<TRes>} responseCtor Response constructor\n * @param {TReq|Properties<TReq>} request Request message or plain object\n * @param {rpc.ServiceMethodCallback<TRes>} callback Service callback\n * @returns {undefined}\n * @template TReq extends Message<TReq>\n * @template TRes extends Message<TRes>\n */\nService.prototype.rpcCall = function rpcCall(method, requestCtor, responseCtor, request, callback) {\n\n if (!request)\n throw TypeError(\"request must be specified\");\n\n var self = this;\n if (!callback)\n return util.asPromise(rpcCall, self, method, requestCtor, responseCtor, request);\n\n if (!self.rpcImpl) {\n setTimeout(function() { callback(Error(\"already ended\")); }, 0);\n return undefined;\n }\n\n try {\n return self.rpcImpl(\n method,\n requestCtor[self.requestDelimited ? \"encodeDelimited\" : \"encode\"](request).finish(),\n function rpcCallback(err, response) {\n\n if (err) {\n self.emit(\"error\", err, method);\n return callback(err);\n }\n\n if (response === null) {\n self.end(/* endedByRPC */ true);\n return undefined;\n }\n\n if (!(response instanceof responseCtor)) {\n try {\n response = responseCtor[self.responseDelimited ? \"decodeDelimited\" : \"decode\"](response);\n } catch (err) {\n self.emit(\"error\", err, method);\n return callback(err);\n }\n }\n\n self.emit(\"data\", response, method);\n return callback(null, response);\n }\n );\n } catch (err) {\n self.emit(\"error\", err, method);\n setTimeout(function() { callback(err); }, 0);\n return undefined;\n }\n};\n\n/**\n * Ends this service and emits the `end` event.\n * @param {boolean} [endedByRPC=false] Whether the service has been ended by the RPC implementation.\n * @returns {rpc.Service} `this`\n */\nService.prototype.end = function end(endedByRPC) {\n if (this.rpcImpl) {\n if (!endedByRPC) // signal end to rpcImpl\n this.rpcImpl(null, null, null);\n this.rpcImpl = null;\n this.emit(\"end\").off();\n }\n return this;\n};\n","\"use strict\";\n\n/**\n * Streaming RPC helpers.\n * @namespace\n */\nvar rpc = exports;\n\n/**\n * RPC implementation passed to {@link Service#create} performing a service request on network level, i.e. by utilizing http requests or websockets.\n * @typedef RPCImpl\n * @type {function}\n * @param {Method|rpc.ServiceMethod<Message<{}>,Message<{}>>} method Reflected or static method being called\n * @param {Uint8Array} requestData Request data\n * @param {RPCImplCallback} callback Callback function\n * @returns {undefined}\n * @example\n * function rpcImpl(method, requestData, callback) {\n * if (protobuf.util.lcFirst(method.name) !== \"myMethod\") // compatible with static code\n * throw Error(\"no such method\");\n * asynchronouslyObtainAResponse(requestData, function(err, responseData) {\n * callback(err, responseData);\n * });\n * }\n */\n\n/**\n * Node-style callback as used by {@link RPCImpl}.\n * @typedef RPCImplCallback\n * @type {function}\n * @param {Error|null} error Error, if any, otherwise `null`\n * @param {Uint8Array|null} [response] Response data or `null` to signal end of stream, if there hasn't been an error\n * @returns {undefined}\n */\n\nrpc.Service = require(\"./rpc/service\");\n","\"use strict\";\nmodule.exports = {};\n\n/**\n * Named roots.\n * This is where pbjs stores generated structures (the option `-r, --root` specifies a name).\n * Can also be used manually to make roots available accross modules.\n * @name roots\n * @type {Object.<string,Root>}\n * @example\n * // pbjs -r myroot -o compiled.js ...\n *\n * // in another module:\n * require(\"./compiled.js\");\n *\n * // in any subsequent module:\n * var root = protobuf.roots[\"myroot\"];\n */\n","\"use strict\";\nvar protobuf = exports;\n\n/**\n * Build type, one of `\"full\"`, `\"light\"` or `\"minimal\"`.\n * @name build\n * @type {string}\n * @const\n */\nprotobuf.build = \"minimal\";\n\n// Serialization\nprotobuf.Writer = require(\"./writer\");\nprotobuf.BufferWriter = require(\"./writer_buffer\");\nprotobuf.Reader = require(\"./reader\");\nprotobuf.BufferReader = require(\"./reader_buffer\");\n\n// Utility\nprotobuf.util = require(\"./util/minimal\");\nprotobuf.rpc = require(\"./rpc\");\nprotobuf.roots = require(\"./roots\");\nprotobuf.configure = configure;\n\n/* istanbul ignore next */\n/**\n * Reconfigures the library according to the environment.\n * @returns {undefined}\n */\nfunction configure() {\n protobuf.util._configure();\n protobuf.Writer._configure(protobuf.BufferWriter);\n protobuf.Reader._configure(protobuf.BufferReader);\n}\n\n// Set up buffer utility according to the environment\nconfigure();\n","// minimal library entry point.\n\n\"use strict\";\nmodule.exports = require(\"./src/index-minimal\");\n","// Copyright (C) 2018 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// tslint:disable:no-any\n\n/**\n * Promise wrapper with exposed resolve and reject callbacks.\n */\nexport interface Deferred<T> extends Promise<T> {\n readonly resolve: (value?: T|PromiseLike<T>) => void;\n readonly reject: (reason?: any) => void;\n}\n\n/**\n * Create a promise with exposed resolve and reject callbacks.\n */\nexport function defer<T>(): Deferred<T> {\n let resolve = null as any;\n let reject = null as any;\n const p = new Promise((res, rej) => [resolve, reject] = [res, rej]);\n return Object.assign(p, {resolve, reject}) as any;\n}\n","export const VERSION = \"v22.1-e780c370b\";\nexport const SCM_REVISION = \"e780c370b9272c36eab718bacaa100537fd8d215\";","// Copyright (C) 2018 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as version from '../gen/perfetto_version';\n\nexport type ErrorHandler = (err: string) => void;\n\nlet errorHandler: ErrorHandler = (_: string) => {};\n\nexport function assertExists<A>(value: A | null | undefined): A {\n if (value === null || value === undefined) {\n throw new Error('Value doesn\\'t exist');\n }\n return value;\n}\n\nexport function assertTrue(value: boolean, optMsg?: string) {\n if (value !== true) {\n throw new Error(optMsg ? optMsg : 'Failed assertion');\n }\n}\n\nexport function assertFalse(value: boolean, optMsg?: string) {\n assertTrue(!value, optMsg);\n}\n\nexport function setErrorHandler(handler: ErrorHandler) {\n errorHandler = handler;\n}\n\nexport function reportError(err: ErrorEvent|PromiseRejectionEvent|{}) {\n let errLog = '';\n let errorObj = undefined;\n\n if (err instanceof ErrorEvent) {\n errLog = err.message;\n errorObj = err.error;\n } else if (err instanceof PromiseRejectionEvent) {\n errLog = `${err.reason}`;\n errorObj = err.reason;\n } else {\n errLog = `${err}`;\n }\n if (errorObj !== undefined && errorObj !== null) {\n const errStack = (errorObj as {stack?: string}).stack;\n errLog += '\\n';\n errLog += errStack !== undefined ? errStack : JSON.stringify(errorObj);\n }\n errLog += '\\n\\n';\n errLog += `${version.VERSION} ${version.SCM_REVISION}\\n`;\n errLog += `UA: ${navigator.userAgent}\\n`;\n\n console.error(errLog, err);\n errorHandler(errLog);\n}\n","// Copyright (C) 2019 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {\n decode as b64Decode,\n encode as b64Encode,\n length as b64Len\n} from '@protobufjs/base64';\nimport {\n length as utf8Len,\n read as utf8Read,\n write as utf8Write\n} from '@protobufjs/utf8';\n\nimport {assertTrue} from './logging';\n\n// TextDecoder/Decoder requires the full DOM and isn't available in all types\n// of tests. Use fallback implementation from protbufjs.\nlet Utf8Decoder: {decode: (buf: Uint8Array) => string;};\nlet Utf8Encoder: {encode: (str: string) => Uint8Array;};\ntry {\n Utf8Decoder = new TextDecoder('utf-8');\n Utf8Encoder = new TextEncoder();\n} catch (_) {\n if (typeof process === 'undefined') {\n // Silence the warning when we know we are running under NodeJS.\n console.warn(\n 'Using fallback UTF8 Encoder/Decoder, This should happen only in ' +\n 'tests and NodeJS-based environments, not in browsers.');\n }\n Utf8Decoder = {decode: (buf: Uint8Array) => utf8Read(buf, 0, buf.length)};\n Utf8Encoder = {\n encode: (str: string) => {\n const arr = new Uint8Array(utf8Len(str));\n const written = utf8Write(str, arr, 0);\n assertTrue(written === arr.length);\n return arr;\n }\n };\n}\n\nexport function base64Encode(buffer: Uint8Array): string {\n return b64Encode(buffer, 0, buffer.length);\n}\n\nexport function base64Decode(str: string): Uint8Array {\n const arr = new Uint8Array(b64Len(str));\n const written = b64Decode(str, arr, 0);\n assertTrue(written === arr.length);\n return arr;\n}\n\nexport function utf8Encode(str: string): Uint8Array {\n return Utf8Encoder.encode(str);\n}\n\n// Note: not all byte sequences can be converted to<>from UTF8. This can be\n// used only with valid unicode strings, not arbitrary byte buffers.\nexport function utf8Decode(buffer: Uint8Array): string {\n return Utf8Decoder.decode(buffer);\n}\n\n// The binaryEncode/Decode functions below allow to encode an arbitrary binary\n// buffer into a string that can be JSON-encoded. binaryEncode() applies\n// UTF-16 encoding to each byte individually.\n// Unlike utf8Encode/Decode, any arbitrary byte sequence can be converted into a\n// valid string, and viceversa.\n// This should be only used when a byte array needs to be transmitted over an\n// interface that supports only JSON serialization (e.g., postmessage to a\n// chrome extension).\n\nexport function binaryEncode(buf: Uint8Array): string {\n let str = '';\n for (let i = 0; i < buf.length; i++) {\n str += String.fromCharCode(buf[i]);\n }\n return str;\n}\n\nexport function binaryDecode(str: string): Uint8Array {\n const buf = new Uint8Array(str.length);\n const strLen = str.length;\n for (let i = 0; i < strLen; i++) {\n buf[i] = str.charCodeAt(i);\n }\n return buf;\n}\n","// Copyright (C) 2021 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// This file deals with deserialization and iteration of the proto-encoded\n// byte buffer that is returned by TraceProcessor when invoking the\n// TPM_QUERY_STREAMING method. The returned |query_result| buffer is optimized\n// for being moved cheaply across workers and decoded on-the-flight as we step\n// through the iterator.\n// See comments around QueryResult in trace_processor.proto for more details.\n\n// The classes in this file are organized as follows:\n//\n// QueryResultImpl:\n// The object returned by the Engine.query(sql) method.\n// This object is a holder of row data. Batches of raw get appended\n// incrementally as they are received by the remote TraceProcessor instance.\n// QueryResultImpl also deals with asynchronicity of queries and allows callers\n// to obtain a promise that waits for more (or all) rows.\n// At any point in time the following objects hold a reference to QueryResult:\n// - The Engine: for appending row batches.\n// - UI code, typically controllers, who make queries.\n//\n// ResultBatch:\n// Hold the data, returned by the remote TraceProcessor instance, for a number\n// of rows (TP typically chunks the results in batches of 128KB).\n// A QueryResultImpl holds exclusively ResultBatches for a given query.\n// ResultBatch is not exposed externally, it's just an internal representation\n// that helps with proto decoding. ResultBatch is immutable after it gets\n// appended and decoded. The iteration state is held by the RowIteratorImpl.\n//\n// RowIteratorImpl:\n// Decouples the data owned by QueryResultImpl (and its ResultBatch(es)) from\n// the iteration state. The iterator effectively is the union of a ResultBatch\n// and the row number in it. Rows within the batch are decoded as the user calls\n// next(). When getting at the end of the batch, it takes care of switching to\n// the next batch (if any) within the QueryResultImpl.\n// This object is part of the API exposed to tracks / controllers.\n\nimport * as protobuf from 'protobufjs/minimal';\n\nimport {defer, Deferred} from '../base/deferred';\nimport {assertExists, assertFalse, assertTrue} from '../base/logging';\nimport {utf8Decode} from '../base/string_utils';\n\nexport const NUM = 0;\nexport const STR = 'str';\nexport const NUM_NULL: number|null = 1;\nexport const STR_NULL: string|null = 'str_null';\n\nexport type ColumnType = string|number|null;\n\n// Info that could help debug a query error. For example the query\n// in question, the stack where the query was issued, the active\n// plugin etc.\nexport interface QueryErrorInfo {\n query: string;\n}\n\nexport class QueryError extends Error {\n readonly query: string;\n\n constructor(message: string, info: QueryErrorInfo) {\n super(message);\n this.query = info.query;\n }\n\n toString() {\n return `Query: ${this.query}\\n` + super.toString();\n }\n}\n\n// One row extracted from an SQL result:\nexport interface Row {\n [key: string]: ColumnType;\n}\n\n// The methods that any iterator has to implement.\nexport interface RowIteratorBase {\n valid(): boolean;\n next(): void;\n\n // Reflection support for cases where the column names are not known upfront\n // (e.g. the query result table for user-provided SQL queries).\n // It throws if the passed column name doesn't exist.\n // Example usage:\n // for (const it = queryResult.iter({}); it.valid(); it.next()) {\n // for (const columnName : queryResult.columns()) {\n // console.log(it.get(columnName));\n get(columnName: string): ColumnType;\n}\n\n// A RowIterator is a type that has all the fields defined in the query spec\n// plus the valid() and next() operators. This is to ultimately allow the\n// clients to do:\n// const result = await engine.query(\"select name, surname, id from people;\");\n// const iter = queryResult.iter({name: STR, surname: STR, id: NUM});\n// for (; iter.valid(); iter.next())\n// console.log(iter.name, iter.surname);\nexport type RowIterator<T extends Row> = RowIteratorBase&T;\n\nfunction columnTypeToString(t: ColumnType): string {\n switch (t) {\n case NUM:\n return 'NUM';\n case NUM_NULL:\n return 'NUM_NULL';\n case STR:\n return 'STR';\n case STR_NULL:\n return 'STR_NULL';\n default:\n return `INVALID(${t})`;\n }\n}\n\n// Disable Long.js support in protobuf. This seems to be enabled only in tests\n// but not in production code. In any case, for now we want casting to number\n// accepting the 2**53 limitation. This is consistent with passing\n// --force-number in the protobuf.js codegen invocation in //ui/BUILD.gn .\n// See also https://github.com/protobufjs/protobuf.js/issues/1253 .\n(protobuf.util as {} as {Long: undefined}).Long = undefined;\nprotobuf.configure();\n\n// This has to match CellType in trace_processor.proto.\nenum CellType {\n CELL_NULL = 1,\n CELL_VARINT = 2,\n CELL_FLOAT64 = 3,\n CELL_STRING = 4,\n CELL_BLOB = 5,\n}\n\nconst CELL_TYPE_NAMES =\n ['UNKNOWN', 'NULL', 'VARINT', 'FLOAT64', 'STRING', 'BLOB'];\n\nconst TAG_LEN_DELIM = 2;\n\n// This is the interface exposed to readers (e.g. tracks). The underlying object\n// (QueryResultImpl) owns the result data. This allows to obtain iterators on\n// that. In future it will allow to wait for incremental updates (new rows being\n// fetched) for streaming queries.\nexport interface QueryResult {\n // Obtains an iterator.\n // TODO(primiano): this should have an option to destruct data as we read. In\n // the case of a long query (e.g. `SELECT * FROM sched` in the query prompt)\n // we don't want to accumulate everything in memory. OTOH UI tracks want to\n // keep the data around so they can redraw them on each animation frame. For\n // now we keep everything in memory in the QueryResultImpl object.\n // iter<T extends Row>(spec: T): RowIterator<T>;\n iter<T extends Row>(spec: T): RowIterator<T>;\n\n // Like iter() for queries that expect only one row. It embeds the valid()\n // check (i.e. throws if no rows are available) and returns directly the\n // first result.\n firstRow<T extends Row>(spec: T): T;\n\n // If != undefined the query errored out and error() contains the message.\n error(): string|undefined;\n\n // Returns the number of rows accumulated so far. Note that this number can\n // change over time as more batches are received. It becomes stable only\n // when isComplete() returns true or after waitAllRows() is resolved.\n numRows(): number;\n\n // If true all rows have been fetched. Calling iter() will iterate through the\n // last row. If false, iter() will return an iterator which might iterate\n // through some rows (or none) but will surely not reach the end.\n\n isComplete(): boolean;\n\n // Returns a promise that is resolved only when all rows (i.e. all batches)\n // have been fetched. The promise return value is always the object iself.\n waitAllRows(): Promise<QueryResult>;\n\n // Can return an empty array if called before the first batch is resolved.\n // This should be called only after having awaited for at least one batch.\n columns(): string[];\n\n // TODO(primiano): next CLs will introduce a waitMoreRows() to allow tracks\n // to await until some more data (but not necessarily all) is available. For\n // now everything uses waitAllRows().\n}\n\n// Interface exposed to engine.ts to pump in the data as new row batches arrive.\nexport interface WritableQueryResult extends QueryResult {\n // |resBytes| is a proto-encoded trace_processor.QueryResult message.\n // The overall flow looks as follows:\n // - The user calls engine.query('select ...') and gets a QueryResult back.\n // - The query call posts a message to the worker that runs the SQL engine (\n // or sends a HTTP request in case of the RPC+HTTP interface).\n // - The returned QueryResult object is initially empty.\n // - Over time, the sql engine will postMessage() back results in batches.\n // - Each bach will end up calling this appendResultBatch() method.\n // - If there is any pending promise (e.g. the caller called\n // queryResult.waitAllRows()), this call will awake them (if this is the\n // last batch).\n appendResultBatch(resBytes: Uint8Array): void;\n}\n\n// The actual implementation, which bridges together the reader side and the\n// writer side (the one exposed to the Engine). This is the same object so that\n// when the engine pumps new row batches we can resolve pending promises that\n// readers (e.g. track code) are waiting for.\nclass QueryResultImpl implements QueryResult, WritableQueryResult {\n columnNames: string[] = [];\n private _error?: string;\n private _numRows = 0;\n private _isComplete = false;\n private _errorInfo: QueryErrorInfo;\n\n constructor(errorInfo: QueryErrorInfo) {\n this._errorInfo = errorInfo;\n }\n\n // --- QueryResult implementation.\n\n // TODO(primiano): for the moment new batches are appended but old batches\n // are never removed. This won't work with abnormally large result sets, as\n // it will stash all rows in memory. We could switch to a model where the\n // iterator is destructive and deletes batch objects once iterating past the\n // end of each batch. If we do that, than we need to assign monotonic IDs to\n // batches. Also if we do that, we should prevent creating more than one\n // iterator for a QueryResult.\n batches: ResultBatch[] = [];\n\n // Promise awaiting on waitAllRows(). This should be resolved only when the\n // last result batch has been been retrieved.\n private allRowsPromise?: Deferred<QueryResult>;\n\n isComplete(): boolean {\n return this._isComplete;\n }\n numRows(): number {\n return this._numRows;\n }\n error(): string|undefined {\n return this._error;\n }\n columns(): string[] {\n return this.columnNames;\n }\n\n iter<T extends Row>(spec: T): RowIterator<T> {\n const impl = new RowIteratorImplWithRowData(spec, this);\n return impl as {} as RowIterator<T>;\n }\n\n firstRow<T extends Row>(spec: T): T {\n const impl = new RowIteratorImplWithRowData(spec, this);\n assertTrue(impl.valid());\n return impl as {} as RowIterator<T>as T;\n }\n\n // Can be called only once.\n waitAllRows(): Promise<QueryResult> {\n assertTrue(this.allRowsPromise === undefined);\n this.allRowsPromise = defer<QueryResult>();\n if (this._isComplete) {\n this.resolveOrReject(this.allRowsPromise, this);\n }\n return this.allRowsPromise;\n }\n\n // --- WritableQueryResult implementation.\n\n // Called by the engine when a new QueryResult is available. Note that a\n // single Query() call can yield >1 QueryResult due to result batching\n // if more than ~64K of data are returned, e.g. when returning O(M) rows.\n // |resBytes| is a proto-encoded trace_processor.QueryResult message.\n // It is fine to retain the resBytes without slicing a copy, because\n // ProtoRingBuffer does the slice() for us (or passes through the buffer\n // coming from postMessage() (Wasm case) of fetch() (HTTP+RPC case).\n appendResultBatch(resBytes: Uint8Array) {\n const reader = protobuf.Reader.create(resBytes);\n assertTrue(reader.pos === 0);\n const columnNamesEmptyAtStartOfBatch = this.columnNames.length === 0;\n const columnNamesSet = new Set<string>();\n while (reader.pos < reader.len) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: // column_names\n // Only the first batch should contain the column names. If this fires\n // something is going wrong in the handling of the batch stream.\n assertTrue(columnNamesEmptyAtStartOfBatch);\n const origColName = reader.string();\n let colName = origColName;\n // In some rare cases two columns can have the same name (b/194891824)\n // e.g. `select 1 as x, 2 as x`. These queries don't happen in the\n // UI code, but they can happen when the user types a query (e.g.\n // with a join). The most practical thing we can do here is renaming\n // the columns with a suffix. Keeping the same name will break when\n // iterating, because column names become iterator object keys.\n for (let i = 1; columnNamesSet.has(colName); ++i) {\n colName = `${origColName}_${i}`;\n assertTrue(i < 100); // Give up at some point;\n }\n columnNamesSet.add(colName);\n this.columnNames.push(colName);\n break;\n case 2: // error\n // The query has errored only if the |error| field is non-empty.\n // In protos, we don't distinguish between non-present and empty.\n // Make sure we don't propagate ambiguous empty strings to JS.\n const err = reader.string();\n this._error = (err !== undefined && err.length) ? err : undefined;\n break;\n case 3: // batch\n const batchLen = reader.uint32();\n const batchRaw = resBytes.subarray(reader.pos, reader.pos + batchLen);\n reader.pos += batchLen;\n\n // The ResultBatch ctor parses the CellsBatch submessage.\n const parsedBatch = new ResultBatch(batchRaw);\n this.batches.push(parsedBatch);\n this._isComplete = parsedBatch.isLastBatch;\n\n // In theory one could construct a valid proto serializing the column\n // names after the cell batches. In practice the QueryResultSerializer\n // doesn't do that so it's not worth complicating the code.\n const numColumns = this.columnNames.length;\n if (numColumns !== 0) {\n assertTrue(parsedBatch.numCells % numColumns === 0);\n this._numRows += parsedBatch.numCells / numColumns;\n } else {\n // numColumns == 0 is plausible for queries like CREATE TABLE ... .\n assertTrue(parsedBatch.numCells === 0);\n }\n break;\n default:\n console.warn(`Unexpected QueryResult field ${tag >>> 3}`);\n reader.skipType(tag & 7);\n break;\n } // switch (tag)\n } // while (pos < end)\n\n if (this._isComplete && this.allRowsPromise !== undefined) {\n this.resolveOrReject(this.allRowsPromise, this);\n }\n }\n\n ensureAllRowsPromise(): Promise<QueryResult> {\n if (this.allRowsPromise === undefined) {\n this.waitAllRows(); // Will populate |this.allRowsPromise|.\n }\n return assertExists(this.allRowsPromise);\n }\n\n private resolveOrReject(promise: Deferred<QueryResult>, arg: QueryResult) {\n if (this._error === undefined) {\n promise.resolve(arg);\n } else {\n promise.reject(new QueryError(this._error, this._errorInfo));\n }\n }\n}\n\n// This class holds onto a received result batch (a Uint8Array) and does some\n// partial parsing to tokenize the various cell groups. This parsing mainly\n// consists of identifying and caching the offsets of each cell group and\n// initializing the varint decoders. This half parsing is done to keep the\n// iterator's next() fast, without decoding everything into memory.\n// This is an internal implementation detail and is not exposed outside. The\n// RowIteratorImpl uses this class to iterate through batches (this class takes\n// care of iterating within a batch, RowIteratorImpl takes care of switching\n// batches when needed).\n// Note: at any point in time there can be more than one ResultIterator\n// referencing the same batch. The batch must be immutable.\nclass ResultBatch {\n readonly isLastBatch: boolean = false;\n readonly batchBytes: Uint8Array;\n readonly cellTypesOff: number = 0;\n readonly cellTypesLen: number = 0;\n readonly varintOff: number = 0;\n readonly varintLen: number = 0;\n readonly float64Cells = new Float64Array();\n readonly blobCells: Uint8Array[] = [];\n readonly stringCells: string[] = [];\n\n // batchBytes is a trace_processor.QueryResult.CellsBatch proto.\n constructor(batchBytes: Uint8Array) {\n this.batchBytes = batchBytes;\n const reader = protobuf.Reader.create(batchBytes);\n assertTrue(reader.pos === 0);\n const end = reader.len;\n\n // Here we deconstruct the proto by hand. The CellsBatch is carefully\n // designed to allow a very fast parsing from the TS side. We pack all cells\n // of the same types together, so we can do only one call (per batch) to\n // TextDecoder.decode(), we can overlay a memory-aligned typedarray for\n // float values and can quickly tell and type-check the cell types.\n // One row = N cells (we know the number upfront from the outer message).\n // Each bach contains always an integer multiple of N cells (i.e. rows are\n // never fragmented across different batches).\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: // cell types, a packed array containing one CellType per cell.\n assertTrue((tag & 7) === TAG_LEN_DELIM); // Must be packed varint.\n this.cellTypesLen = reader.uint32();\n this.cellTypesOff = reader.pos;\n reader.pos += this.cellTypesLen;\n break;\n\n case 2: // varint_cells, a packed varint buffer.\n assertTrue((tag & 7) === TAG_LEN_DELIM); // Must be packed varint.\n const packLen = reader.uint32();\n this.varintOff = reader.pos;\n this.varintLen = packLen;\n assertTrue(reader.buf === batchBytes);\n assertTrue(\n this.varintOff + this.varintLen <=\n batchBytes.byteOffset + batchBytes.byteLength);\n reader.pos += packLen;\n break;\n\n case 3: // float64_cells, a 64-bit aligned packed fixed64 buffer.\n assertTrue((tag & 7) === TAG_LEN_DELIM); // Must be packed varint.\n const f64Len = reader.uint32();\n assertTrue(f64Len % 8 === 0);\n // Float64Array's constructor is evil: the offset is in bytes but the\n // length is in 8-byte words.\n const f64Words = f64Len / 8;\n const f64Off = batchBytes.byteOffset + reader.pos;\n if (f64Off % 8 === 0) {\n this.float64Cells =\n new Float64Array(batchBytes.buffer, f64Off, f64Words);\n } else {\n // When using the production code in trace_processor's rpc.cc, the\n // float64 should be 8-bytes aligned. The slow-path case is only for\n // tests.\n const slice = batchBytes.buffer.slice(f64Off, f64Off + f64Len);\n this.float64Cells = new Float64Array(slice);\n }\n reader.pos += f64Len;\n break;\n\n case 4: // blob_cells: one entry per blob.\n assertTrue((tag & 7) === TAG_LEN_DELIM);\n // protobufjs's bytes() under the hoods calls slice() and creates\n // a copy. Fine here as blobs are rare and not a fastpath.\n this.blobCells.push(new Uint8Array(reader.bytes()));\n break;\n\n case 5: // string_cells: all the string cells concatenated with \\0s.\n assertTrue((tag & 7) === TAG_LEN_DELIM);\n const strLen = reader.uint32();\n assertTrue(reader.pos + strLen <= end);\n const subArr = batchBytes.subarray(reader.pos, reader.pos + strLen);\n assertTrue(subArr.length === strLen);\n // The reason why we do this split rather than creating one string\n // per entry is that utf8 decoding has some non-negligible cost. See\n // go/postmessage-benchmark .\n this.stringCells = utf8Decode(subArr).split('\\0');\n reader.pos += strLen;\n break;\n\n case 6: // is_last_batch (boolean).\n this.isLastBatch = !!reader.bool();\n break;\n\n case 7: // padding for realignment, skip silently.\n reader.skipType(tag & 7);\n break;\n\n default:\n console.warn(`Unexpected QueryResult.CellsBatch field ${tag >>> 3}`);\n reader.skipType(tag & 7);\n break;\n } // switch(tag)\n } // while (pos < end)\n }\n\n get numCells() {\n return this.cellTypesLen;\n }\n}\n\nclass RowIteratorImpl implements RowIteratorBase {\n // The spec passed to the iter call containing the expected types, e.g.:\n // {'colA': NUM, 'colB': NUM_NULL, 'colC': STRING}.\n // This doesn't ever change.\n readonly rowSpec: Row;\n\n // The object that holds the current row. This points to the parent\n // RowIteratorImplWithRowData instance that created this class.\n rowData: Row;\n\n // The QueryResult object we are reading data from. The engine will pump\n // batches over time into this object.\n private resultObj: QueryResultImpl;\n\n // All the member variables in the group below point to the identically-named\n // members in result.batch[batchIdx]. This is to avoid indirection layers in\n // the next() hotpath, so we can do this.float64Cells vs\n // this.resultObj.batch[this.batchIdx].float64Cells.\n // These are re-set every time tryMoveToNextBatch() is called (and succeeds).\n private batchIdx = -1; // The batch index within |result.batches[]|.\n private batchBytes = new Uint8Array();\n private columnNames: string[] = [];\n private numColumns = 0;\n private cellTypesEnd = -1; // -1 so the 1st next() hits tryMoveToNextBatch().\n private float64Cells = new Float64Array();\n private varIntReader = protobuf.Reader.create(this.batchBytes);\n private blobCells: Uint8Array[] = [];\n private stringCells: string[] = [];\n\n // These members instead are incremented as we read cells from next(). They\n // are the mutable state of the iterator.\n private nextCellTypeOff = 0;\n private nextFloat64Cell = 0;\n private nextStringCell = 0;\n private nextBlobCell = 0;\n private isValid = false;\n\n constructor(querySpec: Row, rowData: Row, res: QueryResultImpl) {\n Object.assign(this, querySpec);\n this.rowData = rowData;\n this.rowSpec = {...querySpec}; // ... -> Copy all the key/value pairs.\n this.resultObj = res;\n this.next();\n }\n\n valid(): boolean {\n return this.isValid;\n }\n\n\n get(columnName: string): ColumnType {\n const res = this.rowData[columnName];\n if (res === undefined) {\n throw new Error(\n `Column '${columnName}' doesn't exist. ` +\n `Actual columns: [${this.columnNames.join(',')}]`);\n }\n return res;\n }\n\n // Moves the cursor next by one row and updates |isValid|.\n // When this fails to move, two cases are possible:\n // 1. We reached the end of the result set (this is the case if\n // QueryResult.isComplete() == true when this fails).\n // 2. We reached the end of the current batch, but more rows might come later\n // (if QueryResult.isComplete() == false).\n next() {\n // At some point we might reach the end of the current batch, but the next\n // batch might be available already. In this case we want next() to\n // transparently move on to the next batch.\n while (this.nextCellTypeOff + this.numColumns > this.cellTypesEnd) {\n // If TraceProcessor is behaving well, we should never end up in a\n // situation where we have leftover cells. TP is expected to serialize\n // whole rows in each QueryResult batch and NOT truncate them midway.\n // If this assert fires the TP RPC logic has a bug.\n assertTrue(\n this.nextCellTypeOff === this.cellTypesEnd ||\n this.cellTypesEnd === -1);\n if (!this.tryMoveToNextBatch()) {\n this.isValid = false;\n return;\n }\n }\n\n const rowData = this.rowData;\n const numColumns = this.numColumns;\n\n // Read the current row.\n for (let i = 0; i < numColumns; i++) {\n const cellType = this.batchBytes[this.nextCellTypeOff++];\n const colName = this.columnNames[i];\n\n switch (cellType) {\n case CellType.CELL_NULL:\n rowData[colName] = null;\n break;\n\n case CellType.CELL_VARINT:\n const val = this.varIntReader.int64();\n // This is very subtle. The return type of int64 can be either a\n // number or a Long.js {high:number, low:number} if Long.js support is\n // enabled. The default state seems different in node and browser.\n // We force-disable Long.js support in the top of this source file.\n rowData[colName] = val as {} as number;\n break;\n\n case CellType.CELL_FLOAT64:\n rowData[colName] = this.float64Cells[this.nextFloat64Cell++];\n break;\n\n case CellType.CELL_STRING:\n rowData[colName] = this.stringCells[this.nextStringCell++];\n break;\n\n case CellType.CELL_BLOB:\n const blob = this.blobCells[this.nextBlobCell++];\n throw new Error(`TODO implement BLOB support (${blob})`);\n // outRow[colName] = blob;\n break;\n\n default:\n throw new Error(`Invalid cell type ${cellType}`);\n }\n } // For (cells)\n this.isValid = true;\n }\n\n private tryMoveToNextBatch(): boolean {\n const nextBatchIdx = this.batchIdx + 1;\n if (nextBatchIdx >= this.resultObj.batches.length) {\n return false;\n }\n\n this.columnNames = this.resultObj.columnNames;\n this.numColumns = this.columnNames.length;\n\n this.batchIdx = nextBatchIdx;\n const batch = assertExists(this.resultObj.batches[nextBatchIdx]);\n this.batchBytes = batch.batchBytes;\n this.nextCellTypeOff = batch.cellTypesOff;\n this.cellTypesEnd = batch.cellTypesOff + batch.cellTypesLen;\n this.float64Cells = batch.float64Cells;\n this.blobCells = batch.blobCells;\n this.stringCells = batch.stringCells;\n this.varIntReader = protobuf.Reader.create(batch.batchBytes);\n this.varIntReader.pos = batch.varintOff;\n this.varIntReader.len = batch.varintOff + batch.varintLen;\n this.nextFloat64Cell = 0;\n this.nextStringCell = 0;\n this.nextBlobCell = 0;\n\n // Check that all the expected columns are present.\n for (const expectedCol of Object.keys(this.rowSpec)) {\n if (this.columnNames.indexOf(expectedCol) < 0) {\n throw new Error(\n `Column ${expectedCol} not found in the SQL result ` +\n `set {${this.columnNames.join(' ')}}`);\n }\n }\n\n // Check that the cells types are consistent.\n const numColumns = this.numColumns;\n if (batch.numCells === 0) {\n // This can happen if the query result contains just an error. In this\n // an empty batch with isLastBatch=true is appended as an EOF marker.\n // In theory TraceProcessor could return an empty batch in the middle and\n // that would be fine from a protocol viewpoint. In practice, no code path\n // does that today so it doesn't make sense trying supporting it with a\n // recursive call to tryMoveToNextBatch().\n assertTrue(batch.isLastBatch);\n return false;\n }\n\n assertTrue(numColumns > 0);\n for (let i = this.nextCellTypeOff; i < this.cellTypesEnd; i++) {\n const col = (i - this.nextCellTypeOff) % numColumns;\n const colName = this.columnNames[col];\n const actualType = this.batchBytes[i] as CellType;\n const expType = this.rowSpec[colName];\n\n // If undefined, the caller doesn't want to read this column at all, so\n // it can be whatever.\n if (expType === undefined) continue;\n\n let err = '';\n if (actualType === CellType.CELL_NULL &&\n (expType !== STR_NULL && expType !== NUM_NULL)) {\n err = 'SQL value is NULL but that was not expected' +\n ` (expected type: ${columnTypeToString(expType)}). ` +\n 'Did you intend to use NUM_NULL or STR_NULL?';\n } else if (\n ((actualType === CellType.CELL_VARINT ||\n actualType === CellType.CELL_FLOAT64) &&\n (expType !== NUM && expType !== NUM_NULL)) ||\n ((actualType === CellType.CELL_STRING) &&\n (expType !== STR && expType !== STR_NULL))) {\n err = `Incompatible cell type. Expected: ${\n columnTypeToString(\n expType)} actual: ${CELL_TYPE_NAMES[actualType]}`;\n }\n if (err.length > 0) {\n throw new Error(\n `Error @ row: ${Math.floor(i / numColumns)} col: '` +\n `${colName}': ${err}`);\n }\n }\n return true;\n }\n}\n\n// This is the object ultimately returned to the client when calling\n// QueryResult.iter(...).\n// The only reason why this is disjoint from RowIteratorImpl is to avoid\n// naming collisions between the members variables required by RowIteratorImpl\n// and the column names returned by the iterator.\nclass RowIteratorImplWithRowData implements RowIteratorBase {\n private _impl: RowIteratorImpl;\n\n next: () => void;\n valid: () => boolean;\n get: (columnName: string) => ColumnType;\n\n constructor(querySpec: Row, res: QueryResultImpl) {\n const thisAsRow = this as {} as Row;\n Object.assign(thisAsRow, querySpec);\n this._impl = new RowIteratorImpl(querySpec, thisAsRow, res);\n this.next = this._impl.next.bind(this._impl);\n this.valid = this._impl.valid.bind(this._impl);\n this.get = this._impl.get.bind(this._impl);\n }\n}\n\n// This is a proxy object that wraps QueryResultImpl, adding await-ability.\n// This is so that:\n// 1. Clients that just want to await for the full result set can just call\n// await engine.query('...') and will get a QueryResult that is guaranteed\n// to be complete.\n// 2. Clients that know how to handle the streaming can use it straight away.\nclass WaitableQueryResultImpl implements QueryResult, WritableQueryResult,\n PromiseLike<QueryResult> {\n private impl: QueryResultImpl;\n private thenCalled = false;\n\n constructor(errorInfo: QueryErrorInfo) {\n this.impl = new QueryResultImpl(errorInfo);\n }\n\n // QueryResult implementation. Proxies all calls to the impl object.\n iter<T extends Row>(spec: T) {\n return this.impl.iter(spec);\n }\n firstRow<T extends Row>(spec: T) {\n return this.impl.firstRow(spec);\n }\n waitAllRows() {\n return this.impl.waitAllRows();\n }\n isComplete() {\n return this.impl.isComplete();\n }\n numRows() {\n return this.impl.numRows();\n }\n columns() {\n return this.impl.columns();\n }\n error() {\n return this.impl.error();\n }\n\n // WritableQueryResult implementation.\n appendResultBatch(resBytes: Uint8Array) {\n return this.impl.appendResultBatch(resBytes);\n }\n\n // PromiseLike<QueryResult> implementaton.\n\n // tslint:disable-next-line no-any\n then(onfulfilled: any, onrejected: any): any {\n assertFalse(this.thenCalled);\n this.thenCalled = true;\n return this.impl.ensureAllRowsPromise().then(onfulfilled, onrejected);\n }\n\n // tslint:disable-next-line no-any\n catch(error: any): any {\n return this.impl.ensureAllRowsPromise().catch(error);\n }\n\n // tslint:disable-next-line no-any\n finally(callback: () => void): any {\n return this.impl.ensureAllRowsPromise().finally(callback);\n }\n\n get[Symbol.toStringTag](): string {\n return 'Promise<WaitableQueryResult>';\n }\n}\n\nexport function createQueryResult(errorInfo: QueryErrorInfo): QueryResult&\n Promise<QueryResult>&WritableQueryResult {\n return new WaitableQueryResultImpl(errorInfo);\n}\n","// Copyright (C) 2018 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {assertTrue} from '../base/logging';\n\nconst EPSILON = 0.0000000001;\n\n// TODO(hjd): Combine with timeToCode.\nexport function timeToString(sec: number) {\n const units = ['s', 'ms', 'us', 'ns'];\n const sign = Math.sign(sec);\n let n = Math.abs(sec);\n let u = 0;\n while (n < 1 && n !== 0 && u < units.length - 1) {\n n *= 1000;\n u++;\n }\n return `${sign < 0 ? '-' : ''}${Math.round(n * 10) / 10} ${units[u]}`;\n}\n\nexport function fromNs(ns: number) {\n return ns / 1e9;\n}\n\nexport function toNsFloor(seconds: number) {\n return Math.floor(seconds * 1e9);\n}\n\nexport function toNsCeil(seconds: number) {\n return Math.ceil(seconds * 1e9);\n}\n\nexport function toNs(seconds: number) {\n return Math.round(seconds * 1e9);\n}\n\n// 1000000023ns -> \"1.000 000 023\"\nexport function formatTimestamp(sec: number) {\n const parts = sec.toFixed(9).split('.');\n parts[1] = parts[1].replace(/\\B(?=(\\d{3})+(?!\\d))/g, ' ');\n return parts.join('.');\n}\n\n// TODO(hjd): Rename to formatTimestampWithUnits\n// 1000000023ns -> \"1s 23ns\"\nexport function timeToCode(sec: number): string {\n let result = '';\n let ns = Math.round(sec * 1e9);\n if (ns < 1) return '0s';\n const unitAndValue = [\n ['m', 60000000000],\n ['s', 1000000000],\n ['ms', 1000000],\n ['us', 1000],\n ['ns', 1]\n ];\n unitAndValue.forEach(pair => {\n const unit = pair[0] as string;\n const val = pair[1] as number;\n if (ns >= val) {\n const i = Math.floor(ns / val);\n ns -= i * val;\n result += i.toLocaleString() + unit + ' ';\n }\n });\n return result.slice(0, -1);\n}\n\nexport class TimeSpan {\n readonly start: number;\n readonly end: number;\n\n constructor(start: number, end: number) {\n assertTrue(start <= end);\n this.start = start;\n this.end = end;\n }\n\n clone() {\n return new TimeSpan(this.start, this.end);\n }\n\n equals(other: TimeSpan): boolean {\n return Math.abs(this.start - other.start) < EPSILON &&\n Math.abs(this.end - other.end) < EPSILON;\n }\n\n get duration() {\n return this.end - this.start;\n }\n\n isInBounds(sec: number) {\n return this.start <= sec && sec <= this.end;\n }\n\n add(sec: number): TimeSpan {\n return new TimeSpan(this.start + sec, this.end + sec);\n }\n\n contains(other: TimeSpan) {\n return this.start <= other.start && other.end <= this.end;\n }\n}\n","// Copyright (C) 2018 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nexport interface HasKind { kind: string; }\n\nexport class Registry<T extends HasKind> {\n private registry: Map<string, T>;\n\n constructor() {\n this.registry = new Map<string, T>();\n }\n\n register(registrant: T) {\n const kind = registrant.kind;\n if (this.registry.has(kind)) {\n throw new Error(`Registrant ${kind} already exists in the registry`);\n }\n this.registry.set(kind, registrant);\n }\n\n has(kind: string): boolean {\n return this.registry.has(kind);\n }\n\n get(kind: string): T {\n const registrant = this.registry.get(kind);\n if (registrant === undefined) {\n throw new Error(`${kind} has not been registered.`);\n }\n return registrant;\n }\n\n unregisterAllForTesting(): void {\n this.registry.clear();\n }\n}\n","// Copyright (C) 2018 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// TODO(hjd): Refactor into method on TrackController\nexport const LIMIT = 10000;\n\nexport interface TrackData {\n start: number;\n end: number;\n resolution: number;\n length: number;\n}\n","'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n","/* MIT license */\n/* eslint-disable no-mixed-operators */\nconst cssKeywords = require('color-name');\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nconst reverseKeywords = {};\nfor (const key of Object.keys(cssKeywords)) {\n\treverseKeywords[cssKeywords[key]] = key;\n}\n\nconst convert = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\nmodule.exports = convert;\n\n// Hide .channels and .labels properties\nfor (const model of Object.keys(convert)) {\n\tif (!('channels' in convert[model])) {\n\t\tthrow new Error('missing channels property: ' + model);\n\t}\n\n\tif (!('labels' in convert[model])) {\n\t\tthrow new Error('missing channel labels property: ' + model);\n\t}\n\n\tif (convert[model].labels.length !== convert[model].channels) {\n\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t}\n\n\tconst {channels, labels} = convert[model];\n\tdelete convert[model].channels;\n\tdelete convert[model].labels;\n\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\tObject.defineProperty(convert[model], 'labels', {value: labels});\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst min = Math.min(r, g, b);\n\tconst max = Math.max(r, g, b);\n\tconst delta = max - min;\n\tlet h;\n\tlet s;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst l = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tlet rdif;\n\tlet gdif;\n\tlet bdif;\n\tlet h;\n\tlet s;\n\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst v = Math.max(r, g, b);\n\tconst diff = v - Math.min(r, g, b);\n\tconst diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = 0;\n\t\ts = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tconst r = rgb[0];\n\tconst g = rgb[1];\n\tlet b = rgb[2];\n\tconst h = convert.rgb.hsl(rgb)[0];\n\tconst w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\n\tconst k = Math.min(1 - r, 1 - g, 1 - b);\n\tconst c = (1 - r - k) / (1 - k) || 0;\n\tconst m = (1 - g - k) / (1 - k) || 0;\n\tconst y = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\nfunction comparativeDistance(x, y) {\n\t/*\n\t\tSee https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n\t*/\n\treturn (\n\t\t((x[0] - y[0]) ** 2) +\n\t\t((x[1] - y[1]) ** 2) +\n\t\t((x[2] - y[2]) ** 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tconst reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tlet currentClosestDistance = Infinity;\n\tlet currentClosestKeyword;\n\n\tfor (const keyword of Object.keys(cssKeywords)) {\n\t\tconst value = cssKeywords[keyword];\n\n\t\t// Compute comparative distance\n\t\tconst distance = comparativeDistance(rgb, value);\n\n\t\t// Check if its less, if so set as closest\n\t\tif (distance < currentClosestDistance) {\n\t\t\tcurrentClosestDistance = distance;\n\t\t\tcurrentClosestKeyword = keyword;\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn cssKeywords[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tlet r = rgb[0] / 255;\n\tlet g = rgb[1] / 255;\n\tlet b = rgb[2] / 255;\n\n\t// Assume sRGB\n\tr = r > 0.04045 ? (((r + 0.055) / 1.055) ** 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? (((g + 0.055) / 1.055) ** 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? (((b + 0.055) / 1.055) ** 2.4) : (b / 12.92);\n\n\tconst x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tconst y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tconst z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tconst xyz = convert.rgb.xyz(rgb);\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tconst h = hsl[0] / 360;\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\tlet t2;\n\tlet t3;\n\tlet val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tconst t1 = 2 * l - t2;\n\n\tconst rgb = [0, 0, 0];\n\tfor (let i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tconst h = hsl[0];\n\tlet s = hsl[1] / 100;\n\tlet l = hsl[2] / 100;\n\tlet smin = s;\n\tconst lmin = Math.max(l, 0.01);\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tconst v = (l + s) / 2;\n\tconst sv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tconst h = hsv[0] / 60;\n\tconst s = hsv[1] / 100;\n\tlet v = hsv[2] / 100;\n\tconst hi = Math.floor(h) % 6;\n\n\tconst f = h - Math.floor(h);\n\tconst p = 255 * v * (1 - s);\n\tconst q = 255 * v * (1 - (s * f));\n\tconst t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tconst h = hsv[0];\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\tconst vmin = Math.max(v, 0.01);\n\tlet sl;\n\tlet l;\n\n\tl = (2 - s) * v;\n\tconst lmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tconst h = hwb[0] / 360;\n\tlet wh = hwb[1] / 100;\n\tlet bl = hwb[2] / 100;\n\tconst ratio = wh + bl;\n\tlet f;\n\n\t// Wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\tconst i = Math.floor(6 * h);\n\tconst v = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tconst n = wh + f * (v - wh); // Linear interpolation\n\n\tlet r;\n\tlet g;\n\tlet b;\n\t/* eslint-disable max-statements-per-line,no-multi-spaces */\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\t/* eslint-enable max-statements-per-line,no-multi-spaces */\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tconst c = cmyk[0] / 100;\n\tconst m = cmyk[1] / 100;\n\tconst y = cmyk[2] / 100;\n\tconst k = cmyk[3] / 100;\n\n\tconst r = 1 - Math.min(1, c * (1 - k) + k);\n\tconst g = 1 - Math.min(1, m * (1 - k) + k);\n\tconst b = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tconst x = xyz[0] / 100;\n\tconst y = xyz[1] / 100;\n\tconst z = xyz[2] / 100;\n\tlet r;\n\tlet g;\n\tlet b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// Assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * (r ** (1.0 / 2.4))) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * (g ** (1.0 / 2.4))) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * (b ** (1.0 / 2.4))) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet x;\n\tlet y;\n\tlet z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tconst y2 = y ** 3;\n\tconst x2 = x ** 3;\n\tconst z2 = z ** 3;\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet h;\n\n\tconst hr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst c = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tconst l = lch[0];\n\tconst c = lch[1];\n\tconst h = lch[2];\n\n\tconst hr = h / 360 * 2 * Math.PI;\n\tconst a = c * Math.cos(hr);\n\tconst b = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args, saturation = null) {\n\tconst [r, g, b] = args;\n\tlet value = saturation === null ? convert.rgb.hsv(args)[2] : saturation; // Hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tlet ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// Optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tconst r = args[0];\n\tconst g = args[1];\n\tconst b = args[2];\n\n\t// We use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tconst ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tlet color = args % 10;\n\n\t// Handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tconst mult = (~~(args > 50) + 1) * 0.5;\n\tconst r = ((color & 1) * mult) * 255;\n\tconst g = (((color >> 1) & 1) * mult) * 255;\n\tconst b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// Handle greyscale\n\tif (args >= 232) {\n\t\tconst c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tlet rem;\n\tconst r = Math.floor(args / 36) / 5 * 255;\n\tconst g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tconst b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tconst integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tconst match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tlet colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(char => {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tconst integer = parseInt(colorString, 16);\n\tconst r = (integer >> 16) & 0xFF;\n\tconst g = (integer >> 8) & 0xFF;\n\tconst b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst max = Math.max(Math.max(r, g), b);\n\tconst min = Math.min(Math.min(r, g), b);\n\tconst chroma = (max - min);\n\tlet grayscale;\n\tlet hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\n\tconst c = l < 0.5 ? (2.0 * s * l) : (2.0 * s * (1.0 - l));\n\n\tlet f = 0;\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\n\tconst c = s * v;\n\tlet f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tconst h = hcg[0] / 360;\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tconst pure = [0, 0, 0];\n\tconst hi = (h % 1) * 6;\n\tconst v = hi % 1;\n\tconst w = 1 - v;\n\tlet mg = 0;\n\n\t/* eslint-disable max-statements-per-line */\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\t/* eslint-enable max-statements-per-line */\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst v = c + g * (1.0 - c);\n\tlet f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst l = g * (1.0 - c) + 0.5 * c;\n\tlet s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\tconst v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tconst w = hwb[1] / 100;\n\tconst b = hwb[2] / 100;\n\tconst v = 1 - b;\n\tconst c = v - w;\n\tlet g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hsv = convert.gray.hsl;\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tconst val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tconst integer = (val << 16) + (val << 8) + val;\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tconst val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n","const conversions = require('./conversions');\n\n/*\n\tThis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tconst graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tconst models = Object.keys(conversions);\n\n\tfor (let len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tconst graph = buildGraph();\n\tconst queue = [fromModel]; // Unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tconst current = queue.pop();\n\t\tconst adjacents = Object.keys(conversions[current]);\n\n\t\tfor (let len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tconst adjacent = adjacents[i];\n\t\t\tconst node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tconst path = [graph[toModel].parent, toModel];\n\tlet fn = conversions[graph[toModel].parent][toModel];\n\n\tlet cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nmodule.exports = function (fromModel) {\n\tconst graph = deriveBFS(fromModel);\n\tconst conversion = {};\n\n\tconst models = Object.keys(graph);\n\tfor (let len = models.length, i = 0; i < len; i++) {\n\t\tconst toModel = models[i];\n\t\tconst node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// No possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\n","const conversions = require('./conversions');\nconst route = require('./route');\n\nconst convert = {};\n\nconst models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\tconst result = fn(args);\n\n\t\t// We're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (let len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(fromModel => {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tconst routes = route(fromModel);\n\tconst routeModels = Object.keys(routes);\n\n\trouteModels.forEach(toModel => {\n\t\tconst fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nmodule.exports = convert;\n","// Copyright (C) 2019 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {hsl} from 'color-convert';\n\nexport interface Color {\n c: string;\n h: number;\n s: number;\n l: number;\n a?: number;\n}\n\nconst MD_PALETTE: Color[] = [\n {c: 'red', h: 4, s: 90, l: 58},\n {c: 'pink', h: 340, s: 82, l: 52},\n {c: 'purple', h: 291, s: 64, l: 42},\n {c: 'deep purple', h: 262, s: 52, l: 47},\n {c: 'indigo', h: 231, s: 48, l: 48},\n {c: 'blue', h: 207, s: 90, l: 54},\n {c: 'light blue', h: 199, s: 98, l: 48},\n {c: 'cyan', h: 187, s: 100, l: 42},\n {c: 'teal', h: 174, s: 100, l: 29},\n {c: 'green', h: 122, s: 39, l: 49},\n {c: 'light green', h: 88, s: 50, l: 53},\n {c: 'lime', h: 66, s: 70, l: 54},\n {c: 'amber', h: 45, s: 100, l: 51},\n {c: 'orange', h: 36, s: 100, l: 50},\n {c: 'deep orange', h: 14, s: 100, l: 57},\n {c: 'brown', h: 16, s: 25, l: 38},\n {c: 'blue gray', h: 200, s: 18, l: 46},\n {c: 'yellow', h: 54, s: 100, l: 62},\n];\n\nexport const GRAY_COLOR: Color = {\n c: 'grey',\n h: 0,\n s: 0,\n l: 62\n};\n\nfunction hash(s: string, max: number): number {\n let hash = 0x811c9dc5 & 0xfffffff;\n for (let i = 0; i < s.length; i++) {\n hash ^= s.charCodeAt(i);\n hash = (hash * 16777619) & 0xffffffff;\n }\n return Math.abs(hash) % max;\n}\n\nexport function hueForCpu(cpu: number): number {\n return (128 + (32 * cpu)) % 256;\n}\n\nconst DESAT_RED: Color = {\n c: 'desat red',\n h: 3,\n s: 30,\n l: 49\n};\nconst DARK_GREEN: Color = {\n c: 'dark green',\n h: 120,\n s: 44,\n l: 34\n};\nconst LIME_GREEN: Color = {\n c: 'lime green',\n h: 75,\n s: 55,\n l: 47\n};\nconst TRANSPARENT_WHITE: Color = {\n c: 'white',\n h: 0,\n s: 1,\n l: 97,\n a: 0.55,\n};\nconst ORANGE: Color = {\n c: 'orange',\n h: 36,\n s: 100,\n l: 50\n};\nconst INDIGO: Color = {\n c: 'indigo',\n h: 231,\n s: 48,\n l: 48\n};\n\nexport function colorForState(state: string): Readonly<Color> {\n if (state === 'Running') {\n return DARK_GREEN;\n } else if (state.startsWith('Runnable')) {\n return LIME_GREEN;\n } else if (state.includes('Uninterruptible Sleep')) {\n if (state.includes('non-IO')) {\n return DESAT_RED;\n }\n return ORANGE;\n } else if (state.includes('Sleeping')) {\n return TRANSPARENT_WHITE;\n }\n return INDIGO;\n}\n\nexport function textColorForState(stateCode: string): string {\n const background = colorForState(stateCode);\n return background.l > 80 ? '#404040' : '#fff';\n}\n\nexport function colorForTid(tid: number): Color {\n const colorIdx = hash(tid.toString(), MD_PALETTE.length);\n return Object.assign({}, MD_PALETTE[colorIdx]);\n}\n\nexport function colorForThread(thread?: {pid?: number, tid: number}): Color {\n if (thread === undefined) {\n return Object.assign({}, GRAY_COLOR);\n }\n const tid = thread.pid ? thread.pid : thread.tid;\n return colorForTid(tid);\n}\n\n// 40 different random hues 9 degrees apart.\nexport function randomColor(): string {\n const hue = Math.floor(Math.random() * 40) * 9;\n return '#' + hsl.hex([hue, 90, 30]);\n}\n\n// Chooses a color uniform at random based on hash(sliceName). Returns [hue,\n// saturation, lightness].\n//\n// Prefer converting this to an RGB color using hsluv, not the browser's\n// built-in vanilla HSL handling. This is because this function chooses\n// hue/lightness uniform at random, but HSL is not perceptually uniform. See\n// https://www.boronine.com/2012/03/26/Color-Spaces-for-Human-Beings/.\n//\n// If isSelected, the color will be particularly dark, making it stand out.\nexport function hslForSlice(\n sliceName: string, isSelected: boolean|null): [number, number, number] {\n const hue = hash(sliceName, 360);\n // Saturation 100 would give the most differentiation between colors, but it's\n // garish.\n const saturation = 80;\n const lightness = isSelected ? 30 : hash(sliceName + 'x', 40) + 40;\n return [hue, saturation, lightness];\n}\n\n// Lightens the color for thread slices to represent wall time.\nexport function hslForThreadIdleSlice(\n hue: number,\n saturation: number,\n lightness: number,\n isSelected: boolean|null): [number, number, number] {\n // Increase lightness by 80% when selected and 40% otherwise,\n // without exceeding 88.\n let newLightness = isSelected ? lightness * 1.8 : lightness * 1.4;\n newLightness = Math.min(newLightness, 88);\n return [hue, saturation, newLightness];\n}\n\nexport function colorToStr(color: Color) {\n if (color.a !== undefined) {\n return `hsla(${color.h}, ${color.s}%, ${color.l}%, ${color.a})`;\n }\n return `hsl(${color.h}, ${color.s}%, ${color.l}%)`;\n}\n\nexport function colorCompare(x: Color, y: Color) {\n return (x.h - y.h) || (x.s - y.s) || (x.l - y.l);\n}\n","// Copyright (C) 2021 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport {TrackData} from '../../common/track_data';\n\nexport const ACTUAL_FRAMES_SLICE_TRACK_KIND = 'ActualFramesSliceTrack';\n\nexport interface Config {\n maxDepth: number;\n trackIds: number[];\n}\n\nexport interface Data extends TrackData {\n // Slices are stored in a columnar fashion. All fields have the same length.\n strings: string[];\n sliceIds: Float64Array;\n starts: Float64Array;\n ends: Float64Array;\n depths: Uint16Array;\n titles: Uint16Array; // Index in |strings|.\n colors?: Uint16Array; // Index in |strings|.\n isInstant: Uint16Array;\n isIncomplete: Uint16Array;\n}\n","// Copyright (C) 2019 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport {TrackData} from '../../common/track_data';\n\nexport const ASYNC_SLICE_TRACK_KIND = 'AsyncSliceTrack';\n\nexport interface Config {\n maxDepth: number;\n trackIds: number[];\n}\n\nexport interface Data extends TrackData {\n // Slices are stored in a columnar fashion. All fields have the same length.\n strings: string[];\n sliceIds: Float64Array;\n starts: Float64Array;\n ends: Float64Array;\n depths: Uint16Array;\n titles: Uint16Array; // Index in |strings|.\n isInstant: Uint16Array;\n isIncomplete: Uint16Array;\n}\n","// Copyright (C) 2018 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {TrackData} from '../../common/track_data';\n\nexport const COUNTER_TRACK_KIND = 'CounterTrack';\n\nexport type CounterScaleOptions = 'ZERO_BASED'|'MIN_MAX'|'DELTA_FROM_PREVIOUS';\n\nexport interface Data extends TrackData {\n maximumValue: number;\n minimumValue: number;\n maximumDelta: number;\n minimumDelta: number;\n timestamps: Float64Array;\n lastIds: Float64Array;\n minValues: Float64Array;\n maxValues: Float64Array;\n lastValues: Float64Array;\n totalDeltas: Float64Array;\n}\n\nexport interface Config {\n name: string;\n maximumValue?: number;\n minimumValue?: number;\n startTs?: number;\n endTs?: number;\n namespace: string;\n trackId: number;\n scale?: CounterScaleOptions;\n}\n","// Copyright (C) 2020 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// import {Data as ChromeSlicesData} from '../chrome_slices/common';\n\nexport const DEBUG_SLICE_TRACK_KIND = 'DebugSliceTrack';\n\nexport interface Config {\n maxDepth: number;\n}\n\nexport {Data} from '../chrome_slices/common';\n","// Copyright (C) 2021 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport {TrackData} from '../../common/track_data';\n\nexport const EXPECTED_FRAMES_SLICE_TRACK_KIND = 'ExpectedFramesSliceTrack';\n\nexport interface Config {\n maxDepth: number;\n trackIds: number[];\n}\n\nexport interface Data extends TrackData {\n // Slices are stored in a columnar fashion. All fields have the same length.\n strings: string[];\n sliceIds: Float64Array;\n starts: Float64Array;\n ends: Float64Array;\n depths: Uint16Array;\n titles: Uint16Array; // Index in |strings|.\n colors?: Uint16Array; // Index in |strings|.\n isInstant: Uint16Array;\n isIncomplete: Uint16Array;\n}\n","// Copyright (C) 2019 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport {TrackData} from '../../common/track_data';\n\nexport const HEAP_PROFILE_TRACK_KIND = 'HeapProfileTrack';\n\nexport interface Data extends TrackData {\n tsStarts: Float64Array;\n types: string[];\n}\n\nexport interface Config {\n upid: number;\n}\n","// Copyright (C) 2021 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport {TrackData} from '../../common/track_data';\n\nexport const PERF_SAMPLES_PROFILE_TRACK_KIND = 'PerfSamplesProfileTrack';\n\nexport interface Data extends TrackData {\n tsStartsNs: Float64Array;\n}\n\nexport interface Config {\n upid: number;\n}\n","// Copyright (C) 2019 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {TrackData} from '../../common/track_data';\n\nexport const PROCESS_SCHEDULING_TRACK_KIND = 'ProcessSchedulingTrack';\n\nexport interface Data extends TrackData {\n kind: 'slice';\n maxCpu: number;\n\n // Slices are stored in a columnar fashion. All fields have the same length.\n starts: Float64Array;\n ends: Float64Array;\n utids: Uint32Array;\n cpus: Uint32Array;\n}\n\nexport interface Config {\n pidForColor: number;\n upid: null|number;\n utid: number;\n}\n","\n// Copyright (C) 2018 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {TrackData} from '../../common/track_data';\n\nexport const PROCESS_SUMMARY_TRACK = 'ProcessSummaryTrack';\n\n// TODO(dproy): Consider deduping with CPU summary data.\nexport interface Data extends TrackData {\n bucketSizeSeconds: number;\n utilizations: Float64Array;\n}\n\nexport interface Config {\n pidForColor: number;\n upid: number|null;\n utid: number;\n}\n","// Copyright (C) 2021 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// Execution context of object validator\ninterface ValidatorContext {\n // Path to the current value starting from the root. Object field names are\n // stored as is, array indices are wrapped to square brackets. Represented\n // as an array to avoid unnecessary string concatenation: parts are going to\n // be concatenated into a single string when reporting errors, which should\n // not happen on a happy path.\n // Example: [\"config\", \"androidLogBuffers\", \"1\"] when parsing object\n // accessible through expression `root.config.androidLogBuffers[1]`\n path: string[];\n\n // Paths from the root to extraneous keys in a validated object.\n extraKeys: string[];\n\n // Paths from the root to keys containing values of wrong type in validated\n // object.\n invalidKeys: string[];\n}\n\n// Validator accepting arbitrary data structure and returning a typed value.\n// Can throw an error if a part of the value does not have a reasonable\n// default.\nexport interface Validator<T> {\n validate(input: unknown, context: ValidatorContext): T;\n}\n\n// Helper function to flatten array of path chunks into a single string\n// Example: [\"config\", \"androidLogBuffers\", \"1\"] is mapped to\n// \"config.androidLogBuffers[1]\".\nfunction renderPath(path: string[]): string {\n let result = '';\n for (let i = 0; i < path.length; i++) {\n if (i > 0 && !path[i].startsWith('[')) {\n result += '.';\n }\n result += path[i];\n }\n return result;\n}\n\nexport class ValidationError extends Error {}\n\n// Abstract class for validating simple values, such as strings and booleans.\n// Allows to avoid repetition of most of the code related to validation of\n// these.\nabstract class PrimitiveValidator<T> implements Validator<T> {\n defaultValue: T;\n required: boolean;\n\n constructor(defaultValue: T, required: boolean) {\n this.defaultValue = defaultValue;\n this.required = required;\n }\n\n // Abstract method that checks whether passed input has correct type.\n abstract predicate(input: unknown): input is T;\n\n validate(input: unknown, context: ValidatorContext): T {\n if (this.predicate(input)) {\n return input;\n }\n if (this.required) {\n throw new ValidationError(renderPath(context.path));\n }\n if (input !== undefined) {\n // The value is defined, but does not conform to the expected type;\n // proceed with returning the default value but report the key.\n context.invalidKeys.push(renderPath(context.path));\n }\n return this.defaultValue;\n }\n}\n\n\nclass StringValidator extends PrimitiveValidator<string> {\n predicate(input: unknown): input is string {\n return typeof input === 'string';\n }\n}\n\nclass NumberValidator extends PrimitiveValidator<number> {\n predicate(input: unknown): input is number {\n return typeof input === 'number';\n }\n}\n\nclass BooleanValidator extends PrimitiveValidator<boolean> {\n predicate(input: unknown): input is boolean {\n return typeof input === 'boolean';\n }\n}\n\n// Type-level function returning resulting type of a validator.\nexport type ValidatedType<T> = T extends Validator<infer S>? S : never;\n\n// Type-level function traversing a record of validator and returning record\n// with the same keys and valid types.\nexport type RecordValidatedType<T> = {\n [k in keyof T]: ValidatedType<T[k]>\n};\n\n// Combinator for validators: takes a record of validators, and returns a\n// validator for a record where record's fields passed to validator with the\n// same name.\n//\n// Generic parameter T is instantiated to type of record of validators, and\n// should be provided implicitly by type inference due to verbosity of its\n// instantiations.\nclass RecordValidator<T extends Record<string, Validator<unknown>>> implements\n Validator<RecordValidatedType<T>> {\n validators: T;\n\n constructor(validators: T) {\n this.validators = validators;\n }\n\n validate(input: unknown, context: ValidatorContext): RecordValidatedType<T> {\n // If value is missing or of incorrect type, empty record is still processed\n // in the loop below to initialize default fields of the nested object.\n let o: object = {};\n if (typeof input === 'object' && input !== null) {\n o = input;\n } else if (input !== undefined) {\n context.invalidKeys.push(renderPath(context.path));\n }\n\n const result: Partial<RecordValidatedType<T>> = {};\n // Separate declaration is required to avoid assigning `string` type to `k`.\n for (const k in this.validators) {\n if (this.validators.hasOwnProperty(k)) {\n context.path.push(k);\n const validator = this.validators[k];\n\n // Accessing value of `k` of `o` is safe because `undefined` values are\n // considered to indicate a missing value and handled appropriately by\n // every provided validator.\n const valid =\n validator.validate((o as Record<string, unknown>)[k], context);\n\n result[k] = valid as ValidatedType<T[string]>;\n context.path.pop();\n }\n }\n\n // Check if passed object has any extra keys to be reported as such.\n for (const key of Object.keys(o)) {\n if (!this.validators.hasOwnProperty(key)) {\n context.path.push(key);\n context.extraKeys.push(renderPath(context.path));\n context.path.pop();\n }\n }\n return result as RecordValidatedType<T>;\n }\n}\n\n// Validator checking whether a value is one of preset values. Used in order to\n// provide easy validation for union of literal types.\nclass OneOfValidator<T> implements Validator<T> {\n validValues: readonly T[];\n defaultValue: T;\n\n constructor(validValues: readonly T[], defaultValue: T) {\n this.defaultValue = defaultValue;\n this.validValues = validValues;\n }\n\n validate(input: unknown, context: ValidatorContext): T {\n if (this.validValues.includes(input as T)) {\n return input as T;\n } else if (input !== undefined) {\n context.invalidKeys.push(renderPath(context.path));\n }\n return this.defaultValue;\n }\n}\n\n// Validator for an array of elements, applying the same element validator for\n// each element of an array. Uses empty array as a default value.\nclass ArrayValidator<T> implements Validator<T[]> {\n elementValidator: Validator<T>;\n\n constructor(elementValidator: Validator<T>) {\n this.elementValidator = elementValidator;\n }\n\n validate(input: unknown, context: ValidatorContext): T[] {\n const result: T[] = [];\n if (Array.isArray(input)) {\n for (let i = 0; i < input.length; i++) {\n context.path.push(`[${i}]`);\n result.push(this.elementValidator.validate(input[i], context));\n context.path.pop();\n }\n } else if (input !== undefined) {\n context.invalidKeys.push(renderPath(context.path));\n }\n return result;\n }\n}\n\n// Wrapper container for validation result contaiting diagnostic information in\n// addition to the resulting typed value.\nexport interface ValidationResult<T> {\n result: T;\n invalidKeys: string[];\n extraKeys: string[];\n}\n\n// Wrapper for running a validator initializing the context.\nexport function runValidator<T>(\n validator: Validator<T>, input: unknown): ValidationResult<T> {\n const context: ValidatorContext = {\n path: [],\n invalidKeys: [],\n extraKeys: [],\n };\n const result = validator.validate(input, context);\n return {\n result,\n invalidKeys: context.invalidKeys,\n extraKeys: context.extraKeys,\n };\n}\n\n// Shorthands for the validator classes above enabling concise notation.\nexport function str(defaultValue = ''): StringValidator {\n return new StringValidator(defaultValue, false);\n}\n\nexport const requiredStr = new StringValidator('', true);\n\nexport function num(defaultValue = 0): NumberValidator {\n return new NumberValidator(defaultValue, false);\n}\n\nexport function bool(defaultValue = false): BooleanValidator {\n return new BooleanValidator(defaultValue, false);\n}\n\nexport function record<T extends Record<string, Validator<unknown>>>(\n validators: T): RecordValidator<T> {\n return new RecordValidator<T>(validators);\n}\n\nexport function oneOf<T>(\n values: readonly T[], defaultValue: T): OneOfValidator<T> {\n return new OneOfValidator<T>(values, defaultValue);\n}\n\nexport function arrayOf<T>(elementValidator: Validator<T>): ArrayValidator<T> {\n return new ArrayValidator<T>(elementValidator);\n}\n","// Copyright (C) 2021 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {\n oneOf,\n num,\n bool,\n arrayOf,\n str,\n requiredStr,\n record,\n runValidator,\n ValidatedType\n} from './validators';\n\nconst recordModes = ['STOP_WHEN_FULL', 'RING_BUFFER', 'LONG_TRACE'] as const;\nexport const recordConfigValidator = record({\n mode: oneOf(recordModes, 'STOP_WHEN_FULL'),\n durationMs: num(10000.0),\n maxFileSizeMb: num(100),\n fileWritePeriodMs: num(2500),\n bufferSizeMb: num(64.0),\n\n cpuSched: bool(),\n cpuFreq: bool(),\n cpuSyscall: bool(),\n\n gpuFreq: bool(),\n gpuMemTotal: bool(),\n\n ftrace: bool(),\n atrace: bool(),\n ftraceEvents: arrayOf(str()),\n ftraceExtraEvents: str(),\n atraceCats: arrayOf(str()),\n atraceApps: str(),\n ftraceBufferSizeKb: num(2 * 1024),\n ftraceDrainPeriodMs: num(250),\n androidLogs: bool(),\n androidLogBuffers: arrayOf(str()),\n androidFrameTimeline: bool(),\n\n cpuCoarse: bool(),\n cpuCoarsePollMs: num(1000),\n\n batteryDrain: bool(),\n batteryDrainPollMs: num(1000),\n\n boardSensors: bool(),\n\n memHiFreq: bool(),\n meminfo: bool(),\n meminfoPeriodMs: num(1000),\n meminfoCounters: arrayOf(str()),\n\n vmstat: bool(),\n vmstatPeriodMs: num(1000),\n vmstatCounters: arrayOf(str()),\n\n heapProfiling: bool(),\n hpSamplingIntervalBytes: num(4096),\n hpProcesses: str(),\n hpContinuousDumpsPhase: num(),\n hpContinuousDumpsInterval: num(),\n hpSharedMemoryBuffer: num(8 * 1048576),\n hpBlockClient: bool(true),\n hpAllHeaps: bool(),\n\n javaHeapDump: bool(),\n jpProcesses: str(),\n jpContinuousDumpsPhase: num(),\n jpContinuousDumpsInterval: num(),\n\n memLmk: bool(),\n procStats: bool(),\n procStatsPeriodMs: num(1000),\n\n chromeCategoriesSelected: arrayOf(str()),\n chromeHighOverheadCategoriesSelected: arrayOf(str()),\n\n chromeLogs: bool(),\n taskScheduling: bool(),\n ipcFlows: bool(),\n jsExecution: bool(),\n webContentRendering: bool(),\n uiRendering: bool(),\n inputEvents: bool(),\n navigationAndLoading: bool(),\n\n symbolizeKsyms: bool(),\n});\nexport const namedRecordConfigValidator = record(\n {title: requiredStr, key: requiredStr, config: recordConfigValidator});\nexport type NamedRecordConfig =\n ValidatedType<typeof namedRecordConfigValidator>;\nexport type RecordConfig = ValidatedType<typeof recordConfigValidator>;\n\nexport function createEmptyRecordConfig(): RecordConfig {\n return runValidator(recordConfigValidator, {}).result;\n}\n","// Copyright (C) 2018 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {RecordConfig} from '../controller/record_config_types';\n\nimport {\n AggregationAttrs,\n PivotAttrs,\n SubQueryAttrs,\n TableAttrs\n} from './pivot_table_common';\n\n/**\n * A plain js object, holding objects of type |Class| keyed by string id.\n * We use this instead of using |Map| object since it is simpler and faster to\n * serialize for use in postMessage.\n */\nexport interface ObjectById<Class extends{id: string}> { [id: string]: Class; }\n\nexport type Timestamped<T> = {\n [P in keyof T]: T[P];\n}&{lastUpdate: number};\n\nexport type OmniboxMode = 'SEARCH'|'COMMAND';\n\nexport type OmniboxState = Timestamped<{omnibox: string; mode: OmniboxMode}>;\n\nexport type VisibleState =\n Timestamped<{startSec: number; endSec: number; resolution: number;}>;\n\nexport interface AreaSelection {\n kind: 'AREA';\n areaId: string;\n // When an area is marked it will be assigned a unique note id and saved as\n // an AreaNote for the user to return to later. id = 0 is the special id that\n // is overwritten when a new area is marked. Any other id is a persistent\n // marking that will not be overwritten.\n // When not set, the area selection will be replaced with any\n // new area selection (i.e. not saved anywhere).\n noteId?: string;\n}\n\nexport type AreaById = Area&{id: string};\n\nexport interface Area {\n startSec: number;\n endSec: number;\n tracks: string[];\n}\n\nexport const MAX_TIME = 180;\n\n// 3: TrackKindPriority and related sorting changes.\n// 5: Move a large number of items off frontendLocalState and onto state.\n// 6: Common PivotTableConfig and pivot table specific PivotTableState.\n// 7: Split Chrome categories in two and add 'symbolize ksyms' flag.\n// 8: Rename several variables\n// \"[...]HeapProfileFlamegraph[...]\" -> \"[...]Flamegraph[...]\".\n// 9: Add a field to track last loaded recording profile name\n// 10: Change last loaded profile tracking type to accommodate auto-save.\n// 11: Rename updateChromeCategories to fetchChromeCategories.\n// 12: Add a field to cache mapping from UI track ID to trace track ID in order\n// to speed up flow arrows rendering.\n// 13: FlamegraphState changed to support area selection.\nexport const STATE_VERSION = 13;\n\nexport const SCROLLING_TRACK_GROUP = 'ScrollingTracks';\n\nexport type EngineMode = 'WASM'|'HTTP_RPC';\n\nexport type NewEngineMode = 'USE_HTTP_RPC_IF_AVAILABLE'|'FORCE_BUILTIN_WASM';\n\nexport enum TrackKindPriority {\n 'MAIN_THREAD' = 0,\n 'RENDER_THREAD' = 1,\n 'GPU_COMPLETION' = 2,\n 'ORDINARY' = 3\n}\n\nexport type FlamegraphStateViewingOption =\n 'SPACE'|'ALLOC_SPACE'|'OBJECTS'|'ALLOC_OBJECTS'|'PERF_SAMPLES';\n\nexport interface CallsiteInfo {\n id: number;\n parentId: number;\n depth: number;\n name?: string;\n totalSize: number;\n selfSize: number;\n mapping: string;\n merged: boolean;\n highlighted: boolean;\n location?: string;\n}\n\nexport interface TraceFileSource {\n type: 'FILE';\n file: File;\n}\n\nexport interface TraceArrayBufferSource {\n type: 'ARRAY_BUFFER';\n buffer: ArrayBuffer;\n title: string;\n url?: string;\n fileName?: string;\n\n // |uuid| is set only when loading from the cache via ?trace_id=123. When set,\n // this matches global.state.traceUuid, with the exception of the following\n // time window: When a trace T1 is loaded and the user loads another trace T2,\n // this |uuid| will be == T2, but the globals.state.traceUuid will be\n // temporarily == T1 until T2 has been loaded (consistently to what happens\n // with all other state fields).\n uuid?: string;\n // if |localOnly| is true then the trace should not be shared or downloaded.\n localOnly?: boolean;\n}\n\nexport interface TraceUrlSource {\n type: 'URL';\n url: string;\n}\n\nexport interface TraceHttpRpcSource {\n type: 'HTTP_RPC';\n}\n\nexport type TraceSource =\n TraceFileSource|TraceArrayBufferSource|TraceUrlSource|TraceHttpRpcSource;\n\nexport interface TrackState {\n id: string;\n engineId: string;\n kind: string;\n name: string;\n labels?: string[];\n trackKindPriority: TrackKindPriority;\n trackGroup?: string;\n config: {};\n}\n\nexport interface TrackGroupState {\n id: string;\n engineId: string;\n name: string;\n collapsed: boolean;\n tracks: string[]; // Child track ids.\n}\n\nexport interface EngineConfig {\n id: string;\n mode?: EngineMode; // Is undefined until |ready| is true.\n ready: boolean;\n failed?: string; // If defined the engine has crashed with the given message.\n source: TraceSource;\n}\n\nexport interface QueryConfig {\n id: string;\n engineId: string;\n query: string;\n}\n\nexport interface PermalinkConfig {\n requestId?: string; // Set by the frontend to request a new permalink.\n hash?: string; // Set by the controller when the link has been created.\n isRecordingConfig?:\n boolean; // this permalink request is for a recording config only\n}\n\nexport interface TraceTime {\n startSec: number;\n endSec: number;\n}\n\nexport interface FrontendLocalState {\n omniboxState: OmniboxState;\n visibleState: VisibleState;\n}\n\nexport interface Status {\n msg: string;\n timestamp: number; // Epoch in seconds (Date.now() / 1000).\n}\n\nexport interface Note {\n noteType: 'DEFAULT';\n id: string;\n timestamp: number;\n color: string;\n text: string;\n}\n\nexport interface AreaNote {\n noteType: 'AREA';\n id: string;\n areaId: string;\n color: string;\n text: string;\n}\n\nexport interface NoteSelection {\n kind: 'NOTE';\n id: string;\n}\n\nexport interface SliceSelection {\n kind: 'SLICE';\n id: number;\n}\n\nexport interface CounterSelection {\n kind: 'COUNTER';\n leftTs: number;\n rightTs: number;\n id: number;\n}\n\nexport interface HeapProfileSelection {\n kind: 'HEAP_PROFILE';\n id: number;\n upid: number;\n ts: number;\n type: string;\n}\n\nexport interface PerfSamplesSelection {\n kind: 'PERF_SAMPLES';\n id: number;\n upid: number;\n ts: number;\n type: string;\n}\n\nexport interface FlamegraphState {\n kind: 'FLAMEGRAPH_STATE';\n upids: number[];\n startNs: number;\n endNs: number;\n type: string;\n viewingOption: FlamegraphStateViewingOption;\n focusRegex: string;\n expandedCallsite?: CallsiteInfo;\n}\n\nexport interface CpuProfileSampleSelection {\n kind: 'CPU_PROFILE_SAMPLE';\n id: number;\n utid: number;\n ts: number;\n}\n\nexport interface ChromeSliceSelection {\n kind: 'CHROME_SLICE';\n id: number;\n table: string;\n}\n\nexport interface ThreadStateSelection {\n kind: 'THREAD_STATE';\n id: number;\n}\n\ntype Selection =\n (NoteSelection|SliceSelection|CounterSelection|HeapProfileSelection|\n CpuProfileSampleSelection|ChromeSliceSelection|ThreadStateSelection|\n AreaSelection|PerfSamplesSelection)&{trackId?: string};\nexport type SelectionKind = Selection['kind']; // 'THREAD_STATE' | 'SLICE' ...\n\nexport interface LogsPagination {\n offset: number;\n count: number;\n}\n\nexport interface RecordingTarget {\n name: string;\n os: TargetOs;\n}\n\nexport interface AdbRecordingTarget extends RecordingTarget {\n serial: string;\n}\n\nexport interface Sorting {\n column: string;\n direction: 'DESC'|'ASC';\n}\n\nexport interface AggregationState {\n id: string;\n sorting?: Sorting;\n}\n\nexport interface MetricsState {\n availableMetrics?: string[]; // Undefined until list is loaded.\n selectedIndex?: number;\n requestedMetric?: string; // Unset after metric request is handled.\n}\n\nexport interface PivotTableConfig {\n availableColumns?: TableAttrs[]; // Undefined until list is loaded.\n availableAggregations?: string[]; // Undefined until list is loaded.\n}\n\nexport interface PivotTableState {\n id: string;\n name: string;\n selectedPivots: PivotAttrs[];\n selectedAggregations: AggregationAttrs[];\n requestedAction?: // Unset after pivot table column request is handled.\n {action: string, attrs?: SubQueryAttrs};\n isLoadingQuery: boolean;\n traceTime?: TraceTime;\n selectedTrackIds?: number[];\n}\n\nexport interface LoadedConfigNone {\n type: 'NONE';\n}\n\nexport interface LoadedConfigAutomatic {\n type: 'AUTOMATIC';\n}\n\nexport interface LoadedConfigNamed {\n type: 'NAMED';\n name: string;\n}\n\nexport type LoadedConfig =\n LoadedConfigNone|LoadedConfigAutomatic|LoadedConfigNamed;\n\nexport interface State {\n // tslint:disable-next-line:no-any\n [key: string]: any;\n version: number;\n nextId: number;\n nextNoteId: number;\n nextAreaId: number;\n\n /**\n * State of the ConfigEditor.\n */\n recordConfig: RecordConfig;\n displayConfigAsPbtxt: boolean;\n lastLoadedConfig: LoadedConfig;\n\n /**\n * Open traces.\n */\n newEngineMode: NewEngineMode;\n engines: ObjectById<EngineConfig>;\n traceTime: TraceTime;\n traceUuid?: string;\n trackGroups: ObjectById<TrackGroupState>;\n tracks: ObjectById<TrackState>;\n uiTrackIdByTraceTrackId: Map<number, string>;\n areas: ObjectById<AreaById>;\n aggregatePreferences: ObjectById<AggregationState>;\n visibleTracks: string[];\n scrollingTracks: string[];\n pinnedTracks: string[];\n debugTrackId?: string;\n lastTrackReloadRequest?: number;\n queries: ObjectById<QueryConfig>;\n metrics: MetricsState;\n permalink: PermalinkConfig;\n notes: ObjectById<Note|AreaNote>;\n status: Status;\n currentSelection: Selection|null;\n currentFlamegraphState: FlamegraphState|null;\n logsPagination: LogsPagination;\n traceConversionInProgress: boolean;\n pivotTableConfig: PivotTableConfig;\n pivotTable: ObjectById<PivotTableState>;\n\n /**\n * This state is updated on the frontend at 60Hz and eventually syncronised to\n * the controller at 10Hz. When the controller sends state updates to the\n * frontend the frontend has special logic to pick whichever version of this\n * key is most up to date.\n */\n frontendLocalState: FrontendLocalState;\n\n // Show track perf debugging overlay\n perfDebug: boolean;\n\n // Show the sidebar extended\n sidebarVisible: boolean;\n\n // Hovered and focused events\n hoveredUtid: number;\n hoveredPid: number;\n hoveredLogsTimestamp: number;\n hoveredNoteTimestamp: number;\n highlightedSliceId: number;\n focusedFlowIdLeft: number;\n focusedFlowIdRight: number;\n\n searchIndex: number;\n currentTab?: string;\n\n /**\n * Trace recording\n */\n recordingInProgress: boolean;\n recordingCancelled: boolean;\n extensionInstalled: boolean;\n recordingTarget: RecordingTarget;\n availableAdbDevices: AdbRecordingTarget[];\n lastRecordingError?: string;\n recordingStatus?: string;\n\n fetchChromeCategories: boolean;\n chromeCategories: string[]|undefined;\n analyzePageQuery?: string;\n}\n\nexport const defaultTraceTime = {\n startSec: 0,\n endSec: 10,\n};\n\nexport declare type RecordMode =\n 'STOP_WHEN_FULL' | 'RING_BUFFER' | 'LONG_TRACE';\n\n// 'Q','P','O' for Android, 'L' for Linux, 'C' for Chrome.\nexport declare type TargetOs = 'Q' | 'P' | 'O' | 'C' | 'L' | 'CrOS';\n\nexport function isAndroidP(target: RecordingTarget) {\n return target.os === 'P';\n}\n\nexport function isAndroidTarget(target: RecordingTarget) {\n return ['Q', 'P', 'O'].includes(target.os);\n}\n\nexport function isChromeTarget(target: RecordingTarget) {\n return ['C', 'CrOS'].includes(target.os);\n}\n\nexport function isCrOSTarget(target: RecordingTarget) {\n return target.os === 'CrOS';\n}\n\nexport function isLinuxTarget(target: RecordingTarget) {\n return target.os === 'L';\n}\n\nexport function isAdbTarget(target: RecordingTarget):\n target is AdbRecordingTarget {\n return !!(target as AdbRecordingTarget).serial;\n}\n\nexport function hasActiveProbes(config: RecordConfig) {\n const fieldsWithEmptyResult = new Set<string>(['hpBlockClient']);\n let key: keyof RecordConfig;\n for (key in config) {\n if (typeof (config[key]) === 'boolean' && config[key] === true &&\n !fieldsWithEmptyResult.has(key)) {\n return true;\n }\n }\n if (config.chromeCategoriesSelected.length > 0) {\n return true;\n }\n return config.chromeHighOverheadCategoriesSelected.length > 0;\n}\n\nexport function getDefaultRecordingTargets(): RecordingTarget[] {\n return [\n {os: 'Q', name: 'Android Q+'},\n {os: 'P', name: 'Android P'},\n {os: 'O', name: 'Android O-'},\n {os: 'C', name: 'Chrome'},\n {os: 'CrOS', name: 'Chrome OS (system trace)'},\n {os: 'L', name: 'Linux desktop'}\n ];\n}\n\nexport function getBuiltinChromeCategoryList(): string[] {\n // List of static Chrome categories, last updated at 2021-09-09 from HEAD of\n // Chromium's //base/trace_event/builtin_categories.h.\n return [\n 'accessibility',\n 'AccountFetcherService',\n 'android_webview',\n 'aogh',\n 'audio',\n 'base',\n 'benchmark',\n 'blink',\n 'blink.animations',\n 'blink.bindings',\n 'blink.console',\n 'blink.net',\n 'blink.resource',\n 'blink.user_timing',\n 'blink.worker',\n 'blink_gc',\n 'blink_style',\n 'Blob',\n 'browser',\n 'browsing_data',\n 'CacheStorage',\n 'Calculators',\n 'CameraStream',\n 'camera',\n 'cast_app',\n 'cast_perf_test',\n 'cast.mdns',\n 'cast.mdns.socket',\n 'cast.stream',\n 'cc',\n 'cc.debug',\n 'cdp.perf',\n 'chromeos',\n 'cma',\n 'compositor',\n 'content',\n 'content_capture',\n 'device',\n 'devtools',\n 'devtools.contrast',\n 'devtools.timeline',\n 'disk_cache',\n 'download',\n 'download_service',\n 'drm',\n 'drmcursor',\n 'dwrite',\n 'DXVA_Decoding',\n 'evdev',\n 'event',\n 'exo',\n 'extensions',\n 'explore_sites',\n 'FileSystem',\n 'file_system_provider',\n 'fonts',\n 'GAMEPAD',\n 'gpu',\n 'gpu.angle',\n 'gpu.capture',\n 'headless',\n 'hwoverlays',\n 'identity',\n 'ime',\n 'IndexedDB',\n 'input',\n 'io',\n 'ipc',\n 'Java',\n 'jni',\n 'jpeg',\n 'latency',\n 'latencyInfo',\n 'leveldb',\n 'loading',\n 'log',\n 'login',\n 'media',\n 'media_router',\n 'memory',\n 'midi',\n 'mojom',\n 'mus',\n 'native',\n 'navigation',\n 'net',\n 'netlog',\n 'offline_pages',\n 'omnibox',\n 'oobe',\n 'ozone',\n 'partition_alloc',\n 'passwords',\n 'p2p',\n 'page-serialization',\n 'paint_preview',\n 'pepper',\n 'PlatformMalloc',\n 'power',\n 'ppapi',\n 'ppapi_proxy',\n 'print',\n 'rail',\n 'renderer',\n 'renderer_host',\n 'renderer.scheduler',\n 'RLZ',\n 'safe_browsing',\n 'screenlock_monitor',\n 'segmentation_platform',\n 'sequence_manager',\n 'service_manager',\n 'ServiceWorker',\n 'sharing',\n 'shell',\n 'shortcut_viewer',\n 'shutdown',\n 'SiteEngagement',\n 'skia',\n 'sql',\n 'stadia_media',\n 'stadia_rtc',\n 'startup',\n 'sync',\n 'system_apps',\n 'test_gpu',\n 'thread_pool',\n 'toplevel',\n 'toplevel.flow',\n 'ui',\n 'v8',\n 'v8.execute',\n 'v8.wasm',\n 'ValueStoreFrontend::Backend',\n 'views',\n 'views.frame',\n 'viz',\n 'vk',\n 'wayland',\n 'webaudio',\n 'weblayer',\n 'WebCore',\n 'webrtc',\n 'xr',\n 'disabled-by-default-animation-worklet',\n 'disabled-by-default-audio',\n 'disabled-by-default-audio-worklet',\n 'disabled-by-default-base',\n 'disabled-by-default-blink.debug',\n 'disabled-by-default-blink.debug.display_lock',\n 'disabled-by-default-blink.debug.layout',\n 'disabled-by-default-blink.debug.layout.trees',\n 'disabled-by-default-blink.feature_usage',\n 'disabled-by-default-blink_gc',\n 'disabled-by-default-blink.image_decoding',\n 'disabled-by-default-blink.invalidation',\n 'disabled-by-default-cc',\n 'disabled-by-default-cc.debug',\n 'disabled-by-default-cc.debug.cdp-perf',\n 'disabled-by-default-cc.debug.display_items',\n 'disabled-by-default-cc.debug.picture',\n 'disabled-by-default-cc.debug.scheduler',\n 'disabled-by-default-cc.debug.scheduler.frames',\n 'disabled-by-default-cc.debug.scheduler.now',\n 'disabled-by-default-content.verbose',\n 'disabled-by-default-cpu_profiler',\n 'disabled-by-default-cpu_profiler.debug',\n 'disabled-by-default-devtools.screenshot',\n 'disabled-by-default-devtools.timeline',\n 'disabled-by-default-devtools.timeline.frame',\n 'disabled-by-default-devtools.timeline.inputs',\n 'disabled-by-default-devtools.timeline.invalidationTracking',\n 'disabled-by-default-devtools.timeline.layers',\n 'disabled-by-default-devtools.timeline.picture',\n 'disabled-by-default-file',\n 'disabled-by-default-fonts',\n 'disabled-by-default-gpu_cmd_queue',\n 'disabled-by-default-gpu.dawn',\n 'disabled-by-default-gpu.debug',\n 'disabled-by-default-gpu.decoder',\n 'disabled-by-default-gpu.device',\n 'disabled-by-default-gpu.service',\n 'disabled-by-default-gpu.vulkan.vma',\n 'disabled-by-default-histogram_samples',\n 'disabled-by-default-java-heap-profiler',\n 'disabled-by-default-layer-element',\n 'disabled-by-default-layout_shift.debug',\n 'disabled-by-default-lifecycles',\n 'disabled-by-default-loading',\n 'disabled-by-default-mediastream',\n 'disabled-by-default-memory-infra',\n 'disabled-by-default-memory-infra.v8.code_stats',\n 'disabled-by-default-mojom',\n 'disabled-by-default-net',\n 'disabled-by-default-network',\n 'disabled-by-default-paint-worklet',\n 'disabled-by-default-power',\n 'disabled-by-default-renderer.scheduler',\n 'disabled-by-default-renderer.scheduler.debug',\n 'disabled-by-default-sandbox',\n 'disabled-by-default-sequence_manager',\n 'disabled-by-default-sequence_manager.debug',\n 'disabled-by-default-sequence_manager.verbose_snapshots',\n 'disabled-by-default-skia',\n 'disabled-by-default-skia.gpu',\n 'disabled-by-default-skia.gpu.cache',\n 'disabled-by-default-skia.shaders',\n 'disabled-by-default-SyncFileSystem',\n 'disabled-by-default-system_stats',\n 'disabled-by-default-thread_pool_diagnostics',\n 'disabled-by-default-toplevel.ipc',\n 'disabled-by-default-user_action_samples',\n 'disabled-by-default-v8.compile',\n 'disabled-by-default-v8.cpu_profiler',\n 'disabled-by-default-v8.gc',\n 'disabled-by-default-v8.gc_stats',\n 'disabled-by-default-v8.ic_stats',\n 'disabled-by-default-v8.runtime',\n 'disabled-by-default-v8.runtime_stats',\n 'disabled-by-default-v8.runtime_stats_sampling',\n 'disabled-by-default-v8.stack_trace',\n 'disabled-by-default-v8.turbofan',\n 'disabled-by-default-v8.wasm.detailed',\n 'disabled-by-default-v8.wasm.turbofan',\n 'disabled-by-default-video_and_image_capture',\n 'disabled-by-default-viz.gpu_composite_time',\n 'disabled-by-default-viz.debug.overlay_planes',\n 'disabled-by-default-viz.hit_testing_flow',\n 'disabled-by-default-viz.overdraw',\n 'disabled-by-default-viz.quads',\n 'disabled-by-default-viz.surface_id_flow',\n 'disabled-by-default-viz.surface_lifetime',\n 'disabled-by-default-viz.triangles',\n 'disabled-by-default-webaudio.audionode',\n 'disabled-by-default-webrtc',\n 'disabled-by-default-worker.scheduler',\n 'disabled-by-default-xr.debug',\n ];\n}\n\nexport function getContainingTrackId(state: State, trackId: string): null|\n string {\n const track = state.tracks[trackId];\n if (!track) {\n return null;\n }\n const parentId = track.trackGroup;\n if (!parentId) {\n return null;\n }\n return parentId;\n}\n","// Copyright (C) 2020 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {getDefaultRecordingTargets, RecordingTarget} from '../common/state';\nimport {\n createEmptyRecordConfig,\n NamedRecordConfig,\n namedRecordConfigValidator,\n RecordConfig,\n recordConfigValidator\n} from '../controller/record_config_types';\nimport {runValidator, ValidationResult} from '../controller/validators';\n\nconst LOCAL_STORAGE_RECORD_CONFIGS_KEY = 'recordConfigs';\nconst LOCAL_STORAGE_AUTOSAVE_CONFIG_KEY = 'autosaveConfig';\nconst LOCAL_STORAGE_RECORD_TARGET_OS_KEY = 'recordTargetOS';\n\nexport class RecordConfigStore {\n recordConfigs: Array<ValidationResult<NamedRecordConfig>>;\n recordConfigNames: Set<string>;\n\n constructor() {\n this.recordConfigs = [];\n this.recordConfigNames = new Set();\n this.reloadFromLocalStorage();\n }\n\n private _save() {\n window.localStorage.setItem(\n LOCAL_STORAGE_RECORD_CONFIGS_KEY,\n JSON.stringify(this.recordConfigs.map((x) => x.result)));\n }\n\n save(recordConfig: RecordConfig, title?: string): void {\n // We reload from local storage in case of concurrent\n // modifications of local storage from a different tab.\n this.reloadFromLocalStorage();\n\n const savedTitle = title ? title : new Date().toJSON();\n const config: NamedRecordConfig = {\n title: savedTitle,\n config: recordConfig,\n key: new Date().toJSON()\n };\n\n this.recordConfigs.push({result: config, invalidKeys: [], extraKeys: []});\n this.recordConfigNames.add(savedTitle);\n\n this._save();\n }\n\n overwrite(recordConfig: RecordConfig, key: string) {\n // We reload from local storage in case of concurrent\n // modifications of local storage from a different tab.\n this.reloadFromLocalStorage();\n\n const found = this.recordConfigs.find((e) => e.result.key === key);\n if (found === undefined) {\n throw new Error('trying to overwrite non-existing config');\n }\n\n found.result.config = recordConfig;\n\n this._save();\n }\n\n delete(key: string): void {\n // We reload from local storage in case of concurrent\n // modifications of local storage from a different tab.\n this.reloadFromLocalStorage();\n\n let idx = -1;\n for (let i = 0; i < this.recordConfigs.length; ++i) {\n if (this.recordConfigs[i].result.key === key) {\n idx = i;\n break;\n }\n }\n\n if (idx !== -1) {\n this.recordConfigNames.delete(this.recordConfigs[idx].result.title);\n this.recordConfigs.splice(idx, 1);\n this._save();\n } else {\n // TODO(bsebastien): Show a warning message to the user in the UI.\n console.warn('The config selected doesn\\'t exist any more');\n }\n }\n\n private clearRecordConfigs(): void {\n this.recordConfigs = [];\n this.recordConfigNames.clear();\n this._save();\n }\n\n reloadFromLocalStorage(): void {\n const configsLocalStorage =\n window.localStorage.getItem(LOCAL_STORAGE_RECORD_CONFIGS_KEY);\n\n if (configsLocalStorage) {\n this.recordConfigNames.clear();\n\n try {\n const validConfigLocalStorage:\n Array<ValidationResult<NamedRecordConfig>> = [];\n const parsedConfigsLocalStorage = JSON.parse(configsLocalStorage);\n\n // Check if it's an array.\n if (!Array.isArray(parsedConfigsLocalStorage)) {\n this.clearRecordConfigs();\n return;\n }\n\n for (let i = 0; i < parsedConfigsLocalStorage.length; ++i) {\n try {\n validConfigLocalStorage.push(runValidator(\n namedRecordConfigValidator, parsedConfigsLocalStorage[i]));\n } catch {\n // Parsing failed with unrecoverable error (e.g. title or key are\n // missing), ignore the result.\n console.log(\n 'Validation of saved record config has failed: ' +\n JSON.stringify(parsedConfigsLocalStorage[i]));\n }\n }\n\n this.recordConfigs = validConfigLocalStorage;\n this._save();\n } catch (e) {\n this.clearRecordConfigs();\n }\n } else {\n this.clearRecordConfigs();\n }\n }\n\n canSave(title: string) {\n return !this.recordConfigNames.has(title);\n }\n}\n\n// This class is a singleton to avoid many instances\n// conflicting as they attempt to edit localStorage.\nexport const recordConfigStore = new RecordConfigStore();\n\nexport class AutosaveConfigStore {\n config: RecordConfig;\n\n // Whether the current config is a default one or has been saved before.\n // Used to determine whether the button to load \"last started config\" should\n // be present in the recording profiles list.\n hasSavedConfig: boolean;\n\n constructor() {\n this.hasSavedConfig = false;\n this.config = createEmptyRecordConfig();\n const savedItem =\n window.localStorage.getItem(LOCAL_STORAGE_AUTOSAVE_CONFIG_KEY);\n if (savedItem === null) {\n return;\n }\n const parsed = JSON.parse(savedItem);\n if (parsed !== null && typeof parsed === 'object') {\n this.config = runValidator(recordConfigValidator, parsed).result;\n this.hasSavedConfig = true;\n }\n }\n\n get(): RecordConfig {\n return this.config;\n }\n\n save(newConfig: RecordConfig) {\n window.localStorage.setItem(\n LOCAL_STORAGE_AUTOSAVE_CONFIG_KEY, JSON.stringify(newConfig));\n this.config = newConfig;\n this.hasSavedConfig = true;\n }\n}\n\nexport const autosaveConfigStore = new AutosaveConfigStore();\n\nexport class RecordTargetStore {\n recordTargetOS: string|null;\n\n constructor() {\n this.recordTargetOS = null;\n const savedTarget =\n window.localStorage.getItem(LOCAL_STORAGE_RECORD_TARGET_OS_KEY);\n if (typeof savedTarget === 'string') {\n this.recordTargetOS = savedTarget;\n }\n }\n\n get(): string|null {\n return this.recordTargetOS;\n }\n\n getValidTarget(): RecordingTarget {\n const validTargets = getDefaultRecordingTargets();\n const savedOS = this.get();\n\n const validSavedTarget = validTargets.find((el) => el.os === savedOS);\n return validSavedTarget || validTargets[0];\n }\n\n save(newTargetOS: string) {\n window.localStorage.setItem(\n LOCAL_STORAGE_RECORD_TARGET_OS_KEY, newTargetOS);\n this.recordTargetOS = newTargetOS;\n }\n}\n\nexport const recordTargetStore = new RecordTargetStore();\n","// Copyright (C) 2021 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// This file should not import anything else. Since the flags will be used from\n// ~everywhere and the are \"statically\" initialized (i.e. files construct Flags\n// at import time) if this file starts importing anything we will quickly run\n// into issues with initialization order which will be a pain.\n\ninterface FlagSettings {\n id: string;\n defaultValue: boolean;\n description: string;\n name?: string;\n}\n\nexport enum OverrideState {\n DEFAULT = 'DEFAULT',\n TRUE = 'OVERRIDE_TRUE',\n FALSE = 'OVERRIDE_FALSE',\n}\n\nexport interface FlagStore {\n load(): object;\n save(o: object): void;\n}\n\n// Stored state for a number of flags.\ninterface FlagOverrides {\n [id: string]: OverrideState;\n}\n\n// Check if the given object is a valid FlagOverrides.\n// This is necessary since someone could modify the persisted flags\n// behind our backs.\nfunction isFlagOverrides(o: object): o is FlagOverrides {\n const states =\n [OverrideState.TRUE.toString(), OverrideState.FALSE.toString()];\n for (const v of Object.values(o)) {\n if (typeof v !== 'string' || !states.includes(v)) {\n return false;\n }\n }\n return true;\n}\n\nclass Flags {\n private store: FlagStore;\n private flags: Map<string, FlagImpl>;\n private overrides: FlagOverrides;\n\n constructor(store: FlagStore) {\n this.store = store;\n this.flags = new Map();\n this.overrides = {};\n this.load();\n }\n\n register(settings: FlagSettings): Flag {\n const id = settings.id;\n if (this.flags.has(id)) {\n throw new Error(`Flag with id \"${id}\" is already registered.`);\n }\n\n const saved = this.overrides[id];\n const state = saved === undefined ? OverrideState.DEFAULT : saved;\n const flag = new FlagImpl(this, state, settings);\n this.flags.set(id, flag);\n return flag;\n }\n\n allFlags(): Flag[] {\n return [...this.flags.values()];\n }\n\n resetAll() {\n for (const flag of this.flags.values()) {\n flag.state = OverrideState.DEFAULT;\n }\n this.save();\n }\n\n load(): void {\n const o = this.store.load();\n if (isFlagOverrides(o)) {\n this.overrides = o;\n }\n }\n\n save(): void {\n for (const flag of this.flags.values()) {\n if (flag.isOverridden()) {\n this.overrides[flag.id] = flag.state;\n } else {\n delete this.overrides[flag.id];\n }\n }\n\n this.store.save(this.overrides);\n }\n}\n\nexport interface Flag {\n // A unique identifier for this flag (\"magicSorting\")\n readonly id: string;\n\n // The name of the flag the user sees (\"New track sorting algorithm\")\n readonly name: string;\n\n // A longer description which is displayed to the user.\n // \"Sort tracks using an embedded tfLite model based on your expression\n // while waiting for the trace to load.\"\n readonly description: string;\n\n // Whether the flag defaults to true or false.\n // If !flag.isOverridden() then flag.get() === flag.defaultValue\n readonly defaultValue: boolean;\n\n // Get the current value of the flag.\n get(): boolean;\n\n // Override the flag and persist the new value.\n set(value: boolean): void;\n\n // If the flag has been overridden.\n // Note: A flag can be overridden to its default value.\n isOverridden(): boolean;\n\n // Reset the flag to its default setting.\n reset(): void;\n\n // Get the current state of the flag.\n overriddenState(): OverrideState;\n}\n\nclass FlagImpl implements Flag {\n registry: Flags;\n state: OverrideState;\n\n readonly id: string;\n readonly name: string;\n readonly description: string;\n readonly defaultValue: boolean;\n\n constructor(registry: Flags, state: OverrideState, settings: FlagSettings) {\n this.registry = registry;\n this.id = settings.id;\n this.state = state;\n this.description = settings.description;\n this.defaultValue = settings.defaultValue;\n this.name = settings.name || settings.id;\n }\n\n get(): boolean {\n switch (this.state) {\n case OverrideState.TRUE:\n return true;\n case OverrideState.FALSE:\n return false;\n case OverrideState.DEFAULT:\n default:\n return this.defaultValue;\n }\n }\n\n set(value: boolean): void {\n const next = value ? OverrideState.TRUE : OverrideState.FALSE;\n if (this.state === next) {\n return;\n }\n this.state = next;\n this.registry.save();\n }\n\n overriddenState(): OverrideState {\n return this.state;\n }\n\n reset() {\n this.state = OverrideState.DEFAULT;\n this.registry.save();\n }\n\n isOverridden(): boolean {\n return this.state !== OverrideState.DEFAULT;\n }\n}\n\nclass LocalStorageStore implements FlagStore {\n static KEY = 'perfettoFeatureFlags';\n\n load(): object {\n const s = localStorage.getItem(LocalStorageStore.KEY);\n let parsed: object;\n try {\n parsed = JSON.parse(s || '{}');\n } catch (e) {\n return {};\n }\n if (typeof parsed !== 'object' || parsed === null) {\n return {};\n }\n return parsed;\n }\n\n save(o: object): void {\n const s = JSON.stringify(o);\n localStorage.setItem(LocalStorageStore.KEY, s);\n }\n}\n\nexport const FlagsForTesting = Flags;\nexport const featureFlags = new Flags(new LocalStorageStore());\n\nexport const PERF_SAMPLE_FLAG = featureFlags.register({\n id: 'perfSampleFlamegraph',\n name: 'Perf Sample Flamegraph',\n description: 'Show flamegraph generated by a perf sample.',\n defaultValue: false\n});\n","// Copyright (C) 2021 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {createEmptyRecordConfig} from '../controller/record_config_types';\nimport {\n autosaveConfigStore,\n recordTargetStore\n} from '../frontend/record_config';\n\nimport {featureFlags} from './feature_flags';\nimport {defaultTraceTime, State, STATE_VERSION} from './state';\n\nconst AUTOLOAD_STARTED_CONFIG_FLAG = featureFlags.register({\n id: 'autoloadStartedConfig',\n name: 'Auto-load last used recording config',\n description: 'Starting a recording automatically saves its configuration. ' +\n 'This flag controls whether this config is automatically loaded.',\n defaultValue: true,\n});\n\nexport function createEmptyState(): State {\n return {\n version: STATE_VERSION,\n nextId: 0,\n nextNoteId: 1, // 0 is reserved for ephemeral area marking.\n nextAreaId: 0,\n newEngineMode: 'USE_HTTP_RPC_IF_AVAILABLE',\n engines: {},\n traceTime: {...defaultTraceTime},\n tracks: {},\n uiTrackIdByTraceTrackId: new Map<number, string>(),\n aggregatePreferences: {},\n trackGroups: {},\n visibleTracks: [],\n pinnedTracks: [],\n scrollingTracks: [],\n areas: {},\n queries: {},\n metrics: {},\n permalink: {},\n notes: {},\n pivotTableConfig: {},\n pivotTable: {},\n\n recordConfig: AUTOLOAD_STARTED_CONFIG_FLAG.get() ?\n autosaveConfigStore.get() :\n createEmptyRecordConfig(),\n displayConfigAsPbtxt: false,\n lastLoadedConfig: {type: 'NONE'},\n\n frontendLocalState: {\n omniboxState: {\n lastUpdate: 0,\n omnibox: '',\n mode: 'SEARCH',\n },\n\n visibleState: {\n ...defaultTraceTime,\n lastUpdate: 0,\n resolution: 0,\n },\n },\n\n logsPagination: {\n offset: 0,\n count: 0,\n },\n\n status: {msg: '', timestamp: 0},\n currentSelection: null,\n currentFlamegraphState: null,\n traceConversionInProgress: false,\n\n perfDebug: false,\n sidebarVisible: true,\n hoveredUtid: -1,\n hoveredPid: -1,\n hoveredLogsTimestamp: -1,\n hoveredNoteTimestamp: -1,\n highlightedSliceId: -1,\n focusedFlowIdLeft: -1,\n focusedFlowIdRight: -1,\n searchIndex: -1,\n\n recordingInProgress: false,\n recordingCancelled: false,\n extensionInstalled: false,\n recordingTarget: recordTargetStore.getValidTarget(),\n availableAdbDevices: [],\n\n fetchChromeCategories: false,\n chromeCategories: undefined,\n };\n}","// Copyright (C) 2019 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {CallsiteInfo} from './state';\n\nexport const SPACE_MEMORY_ALLOCATED_NOT_FREED_KEY = 'SPACE';\nexport const ALLOC_SPACE_MEMORY_ALLOCATED_KEY = 'ALLOC_SPACE';\nexport const OBJECTS_ALLOCATED_NOT_FREED_KEY = 'OBJECTS';\nexport const OBJECTS_ALLOCATED_KEY = 'ALLOC_OBJECTS';\nexport const PERF_SAMPLES_KEY = 'PERF_SAMPLES';\n\nexport const DEFAULT_VIEWING_OPTION = SPACE_MEMORY_ALLOCATED_NOT_FREED_KEY;\n\nexport function expandCallsites(\n data: CallsiteInfo[], clickedCallsiteIndex: number): CallsiteInfo[] {\n if (clickedCallsiteIndex === -1) return data;\n const expandedCallsites: CallsiteInfo[] = [];\n if (clickedCallsiteIndex >= data.length || clickedCallsiteIndex < -1) {\n return expandedCallsites;\n }\n const clickedCallsite = data[clickedCallsiteIndex];\n expandedCallsites.unshift(clickedCallsite);\n // Adding parents\n let parentId = clickedCallsite.parentId;\n while (parentId > -1) {\n expandedCallsites.unshift(data[parentId]);\n parentId = data[parentId].parentId;\n }\n // Adding children\n const parents: number[] = [];\n parents.push(clickedCallsiteIndex);\n for (let i = clickedCallsiteIndex + 1; i < data.length; i++) {\n const element = data[i];\n if (parents.includes(element.parentId)) {\n expandedCallsites.push(element);\n parents.push(element.id);\n }\n }\n return expandedCallsites;\n}\n\n// Merge callsites that have approximately width less than\n// MIN_PIXEL_DISPLAYED. All small callsites in the same depth and with same\n// parent will be merged to one with total size of all merged callsites.\nexport function mergeCallsites(data: CallsiteInfo[], minSizeDisplayed: number) {\n const mergedData: CallsiteInfo[] = [];\n const mergedCallsites: Map<number, number> = new Map();\n for (let i = 0; i < data.length; i++) {\n // When a small callsite is found, it will be merged with other small\n // callsites of the same depth. So if the current callsite has already been\n // merged we can skip it.\n if (mergedCallsites.has(data[i].id)) {\n continue;\n }\n const copiedCallsite = copyCallsite(data[i]);\n copiedCallsite.parentId =\n getCallsitesParentHash(copiedCallsite, mergedCallsites);\n\n let mergedAny = false;\n // If current callsite is small, find other small callsites with same depth\n // and parent and merge them into the current one, marking them as merged.\n if (copiedCallsite.totalSize <= minSizeDisplayed && i + 1 < data.length) {\n let j = i + 1;\n let nextCallsite = data[j];\n while (j < data.length && copiedCallsite.depth === nextCallsite.depth) {\n if (copiedCallsite.parentId ===\n getCallsitesParentHash(nextCallsite, mergedCallsites) &&\n nextCallsite.totalSize <= minSizeDisplayed) {\n copiedCallsite.totalSize += nextCallsite.totalSize;\n mergedCallsites.set(nextCallsite.id, copiedCallsite.id);\n mergedAny = true;\n }\n j++;\n nextCallsite = data[j];\n }\n if (mergedAny) {\n copiedCallsite.name = '[merged]';\n copiedCallsite.merged = true;\n }\n }\n mergedData.push(copiedCallsite);\n }\n return mergedData;\n}\n\nfunction copyCallsite(callsite: CallsiteInfo): CallsiteInfo {\n return {\n id: callsite.id,\n parentId: callsite.parentId,\n depth: callsite.depth,\n name: callsite.name,\n totalSize: callsite.totalSize,\n mapping: callsite.mapping,\n selfSize: callsite.selfSize,\n merged: callsite.merged,\n highlighted: callsite.highlighted,\n location: callsite.location\n };\n}\n\nfunction getCallsitesParentHash(\n callsite: CallsiteInfo, map: Map<number, number>): number {\n return map.has(callsite.parentId) ? +map.get(callsite.parentId)! :\n callsite.parentId;\n}\nexport function findRootSize(data: CallsiteInfo[]) {\n let totalSize = 0;\n let i = 0;\n while (i < data.length && data[i].depth === 0) {\n totalSize += data[i].totalSize;\n i++;\n }\n return totalSize;\n}\n","// Copyright (C) 2018 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {Draft} from 'immer';\n\nimport {assertExists, assertTrue} from '../base/logging';\nimport {randomColor} from '../common/colorizer';\nimport {RecordConfig} from '../controller/record_config_types';\nimport {ACTUAL_FRAMES_SLICE_TRACK_KIND} from '../tracks/actual_frames/common';\nimport {ASYNC_SLICE_TRACK_KIND} from '../tracks/async_slices/common';\nimport {COUNTER_TRACK_KIND} from '../tracks/counter/common';\nimport {DEBUG_SLICE_TRACK_KIND} from '../tracks/debug_slices/common';\nimport {\n EXPECTED_FRAMES_SLICE_TRACK_KIND\n} from '../tracks/expected_frames/common';\nimport {HEAP_PROFILE_TRACK_KIND} from '../tracks/heap_profile/common';\nimport {\n PERF_SAMPLES_PROFILE_TRACK_KIND\n} from '../tracks/perf_samples_profile/common';\nimport {\n PROCESS_SCHEDULING_TRACK_KIND\n} from '../tracks/process_scheduling/common';\nimport {PROCESS_SUMMARY_TRACK} from '../tracks/process_summary/common';\n\nimport {createEmptyState} from './empty_state';\nimport {DEFAULT_VIEWING_OPTION, PERF_SAMPLES_KEY} from './flamegraph_util';\nimport {\n AggregationAttrs,\n PivotAttrs,\n SubQueryAttrs,\n TableAttrs\n} from './pivot_table_common';\nimport {\n AdbRecordingTarget,\n Area,\n CallsiteInfo,\n EngineMode,\n FlamegraphStateViewingOption,\n LoadedConfig,\n LogsPagination,\n NewEngineMode,\n OmniboxState,\n RecordingTarget,\n SCROLLING_TRACK_GROUP,\n State,\n Status,\n TraceTime,\n TrackKindPriority,\n TrackState,\n VisibleState,\n} from './state';\nimport {toNs} from './time';\n\ntype StateDraft = Draft<State>;\n\nconst highPriorityTrackOrder = [\n PROCESS_SCHEDULING_TRACK_KIND,\n PROCESS_SUMMARY_TRACK,\n EXPECTED_FRAMES_SLICE_TRACK_KIND,\n ACTUAL_FRAMES_SLICE_TRACK_KIND\n];\n\nconst lowPriorityTrackOrder = [\n PERF_SAMPLES_PROFILE_TRACK_KIND,\n HEAP_PROFILE_TRACK_KIND,\n COUNTER_TRACK_KIND,\n ASYNC_SLICE_TRACK_KIND\n];\n\nexport interface AddTrackArgs {\n id?: string;\n engineId: string;\n kind: string;\n name: string;\n labels?: string[];\n trackKindPriority: TrackKindPriority;\n trackGroup?: string;\n config: {};\n}\n\nexport interface PostedTrace {\n buffer: ArrayBuffer;\n title: string;\n fileName?: string;\n url?: string;\n uuid?: string;\n localOnly?: boolean;\n}\n\nfunction clearTraceState(state: StateDraft) {\n const nextId = state.nextId;\n const recordConfig = state.recordConfig;\n const recordingTarget = state.recordingTarget;\n const fetchChromeCategories = state.fetchChromeCategories;\n const extensionInstalled = state.extensionInstalled;\n const availableAdbDevices = state.availableAdbDevices;\n const chromeCategories = state.chromeCategories;\n const newEngineMode = state.newEngineMode;\n\n Object.assign(state, createEmptyState());\n state.nextId = nextId;\n state.recordConfig = recordConfig;\n state.recordingTarget = recordingTarget;\n state.fetchChromeCategories = fetchChromeCategories;\n state.extensionInstalled = extensionInstalled;\n state.availableAdbDevices = availableAdbDevices;\n state.chromeCategories = chromeCategories;\n state.newEngineMode = newEngineMode;\n}\n\nfunction rank(ts: TrackState): number[] {\n const hpRank = rankIndex(ts.kind, highPriorityTrackOrder);\n const lpRank = rankIndex(ts.kind, lowPriorityTrackOrder);\n // TODO(hjd): Create sortBy object on TrackState to avoid this cast.\n const tid = (ts.config as {tid?: number}).tid || 0;\n return [hpRank, ts.trackKindPriority.valueOf(), lpRank, tid];\n}\n\nfunction rankIndex<T>(element: T, array: T[]): number {\n const index = array.indexOf(element);\n if (index === -1) return array.length;\n return index;\n}\n\nexport const StateActions = {\n\n openTraceFromFile(state: StateDraft, args: {file: File}): void {\n clearTraceState(state);\n const id = `${state.nextId++}`;\n state.engines[id] = {\n id,\n ready: false,\n source: {type: 'FILE', file: args.file},\n };\n },\n\n openTraceFromBuffer(state: StateDraft, args: PostedTrace): void {\n clearTraceState(state);\n const id = `${state.nextId++}`;\n state.engines[id] = {\n id,\n ready: false,\n source: {type: 'ARRAY_BUFFER', ...args},\n };\n },\n\n openTraceFromUrl(state: StateDraft, args: {url: string}): void {\n clearTraceState(state);\n const id = `${state.nextId++}`;\n state.engines[id] = {\n id,\n ready: false,\n source: {type: 'URL', url: args.url},\n };\n },\n\n openTraceFromHttpRpc(state: StateDraft, _args: {}): void {\n clearTraceState(state);\n const id = `${state.nextId++}`;\n state.engines[id] = {\n id,\n ready: false,\n source: {type: 'HTTP_RPC'},\n };\n },\n\n setTraceUuid(state: StateDraft, args: {traceUuid: string}) {\n state.traceUuid = args.traceUuid;\n },\n\n fillUiTrackIdByTraceTrackId(\n state: StateDraft, trackState: TrackState, uiTrackId: string) {\n const config = trackState.config as {trackId: number};\n if (config.trackId !== undefined) {\n state.uiTrackIdByTraceTrackId.set(config.trackId, uiTrackId);\n return;\n }\n\n const multiple = trackState.config as {trackIds: number[]};\n if (multiple.trackIds !== undefined) {\n for (const trackId of multiple.trackIds) {\n state.uiTrackIdByTraceTrackId.set(trackId, uiTrackId);\n }\n }\n },\n\n addTracks(state: StateDraft, args: {tracks: AddTrackArgs[]}) {\n args.tracks.forEach(track => {\n const id = track.id === undefined ? `${state.nextId++}` : track.id;\n track.id = id;\n state.tracks[id] = track as TrackState;\n this.fillUiTrackIdByTraceTrackId(state, track as TrackState, id);\n if (track.trackGroup === SCROLLING_TRACK_GROUP) {\n state.scrollingTracks.push(id);\n } else if (track.trackGroup !== undefined) {\n assertExists(state.trackGroups[track.trackGroup]).tracks.push(id);\n }\n });\n },\n\n addTrack(state: StateDraft, args: {\n id?: string; engineId: string; kind: string; name: string;\n trackGroup?: string; config: {}; trackKindPriority: TrackKindPriority;\n }): void {\n const id = args.id !== undefined ? args.id : `${state.nextId++}`;\n state.tracks[id] = {\n id,\n engineId: args.engineId,\n kind: args.kind,\n name: args.name,\n trackKindPriority: args.trackKindPriority,\n trackGroup: args.trackGroup,\n config: args.config,\n };\n this.fillUiTrackIdByTraceTrackId(state, state.tracks[id], id);\n if (args.trackGroup === SCROLLING_TRACK_GROUP) {\n state.scrollingTracks.push(id);\n } else if (args.trackGroup !== undefined) {\n assertExists(state.trackGroups[args.trackGroup]).tracks.push(id);\n }\n },\n\n addTrackGroup(\n state: StateDraft,\n // Define ID in action so a track group can be referred to without running\n // the reducer.\n args: {\n engineId: string; name: string; id: string; summaryTrackId: string;\n collapsed: boolean;\n }): void {\n state.trackGroups[args.id] = {\n engineId: args.engineId,\n name: args.name,\n id: args.id,\n collapsed: args.collapsed,\n tracks: [args.summaryTrackId],\n };\n },\n\n addDebugTrack(state: StateDraft, args: {engineId: string, name: string}):\n void {\n if (state.debugTrackId !== undefined) return;\n const trackId = `${state.nextId++}`;\n state.debugTrackId = trackId;\n this.addTrack(state, {\n id: trackId,\n engineId: args.engineId,\n kind: DEBUG_SLICE_TRACK_KIND,\n name: args.name,\n trackKindPriority: TrackKindPriority.ORDINARY,\n trackGroup: SCROLLING_TRACK_GROUP,\n config: {\n maxDepth: 1,\n }\n });\n this.toggleTrackPinned(state, {trackId});\n },\n\n removeDebugTrack(state: StateDraft, _: {}): void {\n const {debugTrackId} = state;\n if (debugTrackId === undefined) return;\n delete state.tracks[debugTrackId];\n state.scrollingTracks =\n state.scrollingTracks.filter(id => id !== debugTrackId);\n state.pinnedTracks = state.pinnedTracks.filter(id => id !== debugTrackId);\n state.debugTrackId = undefined;\n },\n\n sortThreadTracks(state: StateDraft, _: {}): void {\n // Use a numeric collator so threads are sorted as T1, T2, ..., T10, T11,\n // rather than T1, T10, T11, ..., T2, T20, T21 .\n const coll = new Intl.Collator([], {sensitivity: 'base', numeric: true});\n for (const group of Object.values(state.trackGroups)) {\n group.tracks.sort((a: string, b: string) => {\n const aRank = rank(state.tracks[a]);\n const bRank = rank(state.tracks[b]);\n for (let i = 0; i < aRank.length; i++) {\n if (aRank[i] !== bRank[i]) return aRank[i] - bRank[i];\n }\n\n const aName = state.tracks[a].name.toLocaleLowerCase();\n const bName = state.tracks[b].name.toLocaleLowerCase();\n return coll.compare(aName, bName);\n });\n }\n },\n\n updateAggregateSorting(\n state: StateDraft, args: {id: string, column: string}) {\n let prefs = state.aggregatePreferences[args.id];\n if (!prefs) {\n prefs = {id: args.id};\n state.aggregatePreferences[args.id] = prefs;\n }\n\n if (!prefs.sorting || prefs.sorting.column !== args.column) {\n // No sorting set for current column.\n state.aggregatePreferences[args.id].sorting = {\n column: args.column,\n direction: 'DESC'\n };\n } else if (prefs.sorting.direction === 'DESC') {\n // Toggle the direction if the column is currently sorted.\n state.aggregatePreferences[args.id].sorting = {\n column: args.column,\n direction: 'ASC'\n };\n } else {\n // If direction is currently 'ASC' toggle to no sorting.\n state.aggregatePreferences[args.id].sorting = undefined;\n }\n },\n\n setVisibleTracks(state: StateDraft, args: {tracks: string[]}) {\n state.visibleTracks = args.tracks;\n },\n\n updateTrackConfig(state: StateDraft, args: {id: string, config: {}}) {\n if (state.tracks[args.id] === undefined) return;\n state.tracks[args.id].config = args.config;\n },\n\n executeQuery(\n state: StateDraft,\n args: {queryId: string; engineId: string; query: string}): void {\n state.queries[args.queryId] = {\n id: args.queryId,\n engineId: args.engineId,\n query: args.query,\n };\n },\n\n deleteQuery(state: StateDraft, args: {queryId: string}): void {\n delete state.queries[args.queryId];\n },\n\n moveTrack(\n state: StateDraft,\n args: {srcId: string; op: 'before' | 'after', dstId: string}): void {\n const moveWithinTrackList = (trackList: string[]) => {\n const newList: string[] = [];\n for (let i = 0; i < trackList.length; i++) {\n const curTrackId = trackList[i];\n if (curTrackId === args.dstId && args.op === 'before') {\n newList.push(args.srcId);\n }\n if (curTrackId !== args.srcId) {\n newList.push(curTrackId);\n }\n if (curTrackId === args.dstId && args.op === 'after') {\n newList.push(args.srcId);\n }\n }\n trackList.splice(0);\n newList.forEach(x => {\n trackList.push(x);\n });\n };\n\n moveWithinTrackList(state.pinnedTracks);\n moveWithinTrackList(state.scrollingTracks);\n },\n\n toggleTrackPinned(state: StateDraft, args: {trackId: string}): void {\n const id = args.trackId;\n const isPinned = state.pinnedTracks.includes(id);\n const trackGroup = assertExists(state.tracks[id]).trackGroup;\n\n if (isPinned) {\n state.pinnedTracks.splice(state.pinnedTracks.indexOf(id), 1);\n if (trackGroup === SCROLLING_TRACK_GROUP) {\n state.scrollingTracks.unshift(id);\n }\n } else {\n if (trackGroup === SCROLLING_TRACK_GROUP) {\n state.scrollingTracks.splice(state.scrollingTracks.indexOf(id), 1);\n }\n state.pinnedTracks.push(id);\n }\n },\n\n toggleTrackGroupCollapsed(state: StateDraft, args: {trackGroupId: string}):\n void {\n const id = args.trackGroupId;\n const trackGroup = assertExists(state.trackGroups[id]);\n trackGroup.collapsed = !trackGroup.collapsed;\n },\n\n requestTrackReload(state: StateDraft, _: {}) {\n if (state.lastTrackReloadRequest) {\n state.lastTrackReloadRequest++;\n } else {\n state.lastTrackReloadRequest = 1;\n }\n },\n\n // TODO(hjd): engine.ready should be a published thing. If it's part\n // of the state it interacts badly with permalinks.\n setEngineReady(\n state: StateDraft,\n args: {engineId: string; ready: boolean, mode: EngineMode}): void {\n const engine = state.engines[args.engineId];\n if (engine === undefined) {\n return;\n }\n engine.ready = args.ready;\n engine.mode = args.mode;\n },\n\n setNewEngineMode(state: StateDraft, args: {mode: NewEngineMode}): void {\n state.newEngineMode = args.mode;\n },\n\n // Marks all engines matching the given |mode| as failed.\n setEngineFailed(state: StateDraft, args: {mode: EngineMode; failure: string}):\n void {\n for (const engine of Object.values(state.engines)) {\n if (engine.mode === args.mode) engine.failed = args.failure;\n }\n },\n\n createPermalink(state: StateDraft, args: {isRecordingConfig: boolean}): void {\n state.permalink = {\n requestId: `${state.nextId++}`,\n hash: undefined,\n isRecordingConfig: args.isRecordingConfig\n };\n },\n\n setPermalink(state: StateDraft, args: {requestId: string; hash: string}):\n void {\n // Drop any links for old requests.\n if (state.permalink.requestId !== args.requestId) return;\n state.permalink = args;\n },\n\n loadPermalink(state: StateDraft, args: {hash: string}): void {\n state.permalink = {requestId: `${state.nextId++}`, hash: args.hash};\n },\n\n clearPermalink(state: StateDraft, _: {}): void {\n state.permalink = {};\n },\n\n setTraceTime(state: StateDraft, args: TraceTime): void {\n state.traceTime = args;\n },\n\n updateStatus(state: StateDraft, args: Status): void {\n state.status = args;\n },\n\n // TODO(hjd): Remove setState - it causes problems due to reuse of ids.\n setState(state: StateDraft, args: {newState: State}): void {\n for (const key of Object.keys(state)) {\n // tslint:disable-next-line no-any\n delete (state as any)[key];\n }\n for (const key of Object.keys(args.newState)) {\n // tslint:disable-next-line no-any\n (state as any)[key] = (args.newState as any)[key];\n }\n\n // If we're loading from a permalink then none of the engines can\n // possibly be ready:\n for (const engine of Object.values(state.engines)) {\n engine.ready = false;\n }\n },\n\n setRecordConfig(\n state: StateDraft,\n args: {config: RecordConfig, configType?: LoadedConfig}): void {\n state.recordConfig = args.config;\n state.lastLoadedConfig = args.configType || {type: 'NONE'};\n },\n\n selectNote(state: StateDraft, args: {id: string}): void {\n if (args.id) {\n state.currentSelection = {\n kind: 'NOTE',\n id: args.id\n };\n }\n },\n\n addNote(state: StateDraft, args: {timestamp: number, color: string}): void {\n const id = `${state.nextNoteId++}`;\n state.notes[id] = {\n noteType: 'DEFAULT',\n id,\n timestamp: args.timestamp,\n color: args.color,\n text: '',\n };\n this.selectNote(state, {id});\n },\n\n markCurrentArea(\n state: StateDraft, args: {color: string, persistent: boolean}):\n void {\n if (state.currentSelection === null ||\n state.currentSelection.kind !== 'AREA') {\n return;\n }\n const id = args.persistent ? `${state.nextNoteId++}` : '0';\n const color = args.persistent ? args.color : '#344596';\n state.notes[id] = {\n noteType: 'AREA',\n id,\n areaId: state.currentSelection.areaId,\n color,\n text: '',\n };\n state.currentSelection.noteId = id;\n },\n\n toggleMarkCurrentArea(state: StateDraft, args: {persistent: boolean}) {\n const selection = state.currentSelection;\n if (selection != null && selection.kind === 'AREA' &&\n selection.noteId !== undefined) {\n this.removeNote(state, {id: selection.noteId});\n } else {\n const color = randomColor();\n this.markCurrentArea(state, {color, persistent: args.persistent});\n }\n },\n\n markArea(state: StateDraft, args: {area: Area, persistent: boolean}): void {\n const areaId = `${state.nextAreaId++}`;\n assertTrue(args.area.endSec >= args.area.startSec);\n state.areas[areaId] = {\n id: areaId,\n startSec: args.area.startSec,\n endSec: args.area.endSec,\n tracks: args.area.tracks\n };\n const id = args.persistent ? `${state.nextNoteId++}` : '0';\n const color = args.persistent ? randomColor() : '#344596';\n state.notes[id] = {\n noteType: 'AREA',\n id,\n areaId,\n color,\n text: '',\n };\n },\n\n changeNoteColor(state: StateDraft, args: {id: string, newColor: string}):\n void {\n const note = state.notes[args.id];\n if (note === undefined) return;\n note.color = args.newColor;\n },\n\n changeNoteText(state: StateDraft, args: {id: string, newText: string}): void {\n const note = state.notes[args.id];\n if (note === undefined) return;\n note.text = args.newText;\n },\n\n removeNote(state: StateDraft, args: {id: string}): void {\n if (state.notes[args.id] === undefined) return;\n delete state.notes[args.id];\n // For regular notes, we clear the current selection but for an area note\n // we only want to clear the note/marking and leave the area selected.\n if (state.currentSelection === null) return;\n if (state.currentSelection.kind === 'NOTE' &&\n state.currentSelection.id === args.id) {\n state.currentSelection = null;\n } else if (\n state.currentSelection.kind === 'AREA' &&\n state.currentSelection.noteId === args.id) {\n state.currentSelection.noteId = undefined;\n }\n },\n\n selectSlice(state: StateDraft, args: {id: number, trackId: string}): void {\n state.currentSelection = {\n kind: 'SLICE',\n id: args.id,\n trackId: args.trackId,\n };\n },\n\n selectCounter(\n state: StateDraft,\n args: {leftTs: number, rightTs: number, id: number, trackId: string}):\n void {\n state.currentSelection = {\n kind: 'COUNTER',\n leftTs: args.leftTs,\n rightTs: args.rightTs,\n id: args.id,\n trackId: args.trackId,\n };\n },\n\n selectHeapProfile(\n state: StateDraft,\n args: {id: number, upid: number, ts: number, type: string}): void {\n state.currentSelection = {\n kind: 'HEAP_PROFILE',\n id: args.id,\n upid: args.upid,\n ts: args.ts,\n type: args.type,\n };\n this.openFlamegraph(state, {\n type: args.type,\n startNs: toNs(state.traceTime.startSec),\n endNs: args.ts,\n upids: [args.upid],\n viewingOption: DEFAULT_VIEWING_OPTION\n });\n },\n\n selectPerfSamples(\n state: StateDraft,\n args: {id: number, upid: number, ts: number, type: string}): void {\n state.currentSelection = {\n kind: 'PERF_SAMPLES',\n id: args.id,\n upid: args.upid,\n ts: args.ts,\n type: args.type,\n };\n this.openFlamegraph(state, {\n type: args.type,\n startNs: toNs(state.traceTime.startSec),\n endNs: args.ts,\n upids: [args.upid],\n viewingOption: PERF_SAMPLES_KEY\n });\n },\n\n openFlamegraph(state: StateDraft, args: {\n upids: number[],\n startNs: number,\n endNs: number,\n type: string,\n viewingOption: FlamegraphStateViewingOption\n }): void {\n state.currentFlamegraphState = {\n kind: 'FLAMEGRAPH_STATE',\n upids: args.upids,\n startNs: args.startNs,\n endNs: args.endNs,\n type: args.type,\n viewingOption: args.viewingOption,\n focusRegex: ''\n };\n },\n\n selectCpuProfileSample(\n state: StateDraft, args: {id: number, utid: number, ts: number}): void {\n state.currentSelection = {\n kind: 'CPU_PROFILE_SAMPLE',\n id: args.id,\n utid: args.utid,\n ts: args.ts,\n };\n },\n\n expandFlamegraphState(\n state: StateDraft, args: {expandedCallsite?: CallsiteInfo}): void {\n if (state.currentFlamegraphState === null) return;\n state.currentFlamegraphState.expandedCallsite = args.expandedCallsite;\n },\n\n changeViewFlamegraphState(\n state: StateDraft, args: {viewingOption: FlamegraphStateViewingOption}):\n void {\n if (state.currentFlamegraphState === null) return;\n state.currentFlamegraphState.viewingOption = args.viewingOption;\n },\n\n changeFocusFlamegraphState(state: StateDraft, args: {focusRegex: string}):\n void {\n if (state.currentFlamegraphState === null) return;\n state.currentFlamegraphState.focusRegex = args.focusRegex;\n },\n\n selectChromeSlice(\n state: StateDraft, args: {id: number, trackId: string, table: string}):\n void {\n state.currentSelection = {\n kind: 'CHROME_SLICE',\n id: args.id,\n trackId: args.trackId,\n table: args.table\n };\n },\n\n selectThreadState(state: StateDraft, args: {id: number, trackId: string}):\n void {\n state.currentSelection = {\n kind: 'THREAD_STATE',\n id: args.id,\n trackId: args.trackId,\n };\n },\n\n deselect(state: StateDraft, _: {}): void {\n state.currentSelection = null;\n },\n\n updateLogsPagination(state: StateDraft, args: LogsPagination): void {\n state.logsPagination = args;\n },\n\n startRecording(state: StateDraft, _: {}): void {\n state.recordingInProgress = true;\n state.lastRecordingError = undefined;\n state.recordingCancelled = false;\n },\n\n stopRecording(state: StateDraft, _: {}): void {\n state.recordingInProgress = false;\n },\n\n cancelRecording(state: StateDraft, _: {}): void {\n state.recordingInProgress = false;\n state.recordingCancelled = true;\n },\n\n setExtensionAvailable(state: StateDraft, args: {available: boolean}): void {\n state.extensionInstalled = args.available;\n },\n\n updateBufferUsage(state: StateDraft, args: {percentage: number}): void {\n state.bufferUsage = args.percentage;\n },\n\n setRecordingTarget(state: StateDraft, args: {target: RecordingTarget}): void {\n state.recordingTarget = args.target;\n },\n\n setFetchChromeCategories(state: StateDraft, args: {fetch: boolean}): void {\n state.fetchChromeCategories = args.fetch;\n },\n\n setAvailableAdbDevices(\n state: StateDraft, args: {devices: AdbRecordingTarget[]}): void {\n state.availableAdbDevices = args.devices;\n },\n\n setOmnibox(state: StateDraft, args: OmniboxState): void {\n state.frontendLocalState.omniboxState = args;\n },\n\n selectArea(state: StateDraft, args: {area: Area}): void {\n const areaId = `${state.nextAreaId++}`;\n assertTrue(args.area.endSec >= args.area.startSec);\n state.areas[areaId] = {\n id: areaId,\n startSec: args.area.startSec,\n endSec: args.area.endSec,\n tracks: args.area.tracks\n };\n state.currentSelection = {kind: 'AREA', areaId};\n },\n\n editArea(state: StateDraft, args: {area: Area, areaId: string}): void {\n assertTrue(args.area.endSec >= args.area.startSec);\n state.areas[args.areaId] = {\n id: args.areaId,\n startSec: args.area.startSec,\n endSec: args.area.endSec,\n tracks: args.area.tracks\n };\n },\n\n reSelectArea(state: StateDraft, args: {areaId: string, noteId: string}):\n void {\n state.currentSelection = {\n kind: 'AREA',\n areaId: args.areaId,\n noteId: args.noteId\n };\n },\n\n toggleTrackSelection(\n state: StateDraft, args: {id: string, isTrackGroup: boolean}) {\n const selection = state.currentSelection;\n if (selection === null || selection.kind !== 'AREA') return;\n const areaId = selection.areaId;\n const index = state.areas[areaId].tracks.indexOf(args.id);\n if (index > -1) {\n state.areas[areaId].tracks.splice(index, 1);\n if (args.isTrackGroup) { // Also remove all child tracks.\n for (const childTrack of state.trackGroups[args.id].tracks) {\n const childIndex = state.areas[areaId].tracks.indexOf(childTrack);\n if (childIndex > -1) {\n state.areas[areaId].tracks.splice(childIndex, 1);\n }\n }\n }\n } else {\n state.areas[areaId].tracks.push(args.id);\n if (args.isTrackGroup) { // Also add all child tracks.\n for (const childTrack of state.trackGroups[args.id].tracks) {\n if (!state.areas[areaId].tracks.includes(childTrack)) {\n state.areas[areaId].tracks.push(childTrack);\n }\n }\n }\n }\n },\n\n setVisibleTraceTime(state: StateDraft, args: VisibleState): void {\n state.frontendLocalState.visibleState = {...args};\n },\n\n setChromeCategories(state: StateDraft, args: {categories: string[]}): void {\n state.chromeCategories = args.categories;\n },\n\n setLastRecordingError(state: StateDraft, args: {error?: string}): void {\n state.lastRecordingError = args.error;\n state.recordingStatus = undefined;\n },\n\n setRecordingStatus(state: StateDraft, args: {status?: string}): void {\n state.recordingStatus = args.status;\n state.lastRecordingError = undefined;\n },\n\n setAnalyzePageQuery(state: StateDraft, args: {query: string}): void {\n state.analyzePageQuery = args.query;\n },\n\n requestSelectedMetric(state: StateDraft, _: {}): void {\n if (!state.metrics.availableMetrics) throw Error('No metrics available');\n if (state.metrics.selectedIndex === undefined) {\n throw Error('No metric selected');\n }\n state.metrics.requestedMetric =\n state.metrics.availableMetrics[state.metrics.selectedIndex];\n },\n\n resetMetricRequest(state: StateDraft, args: {name: string}): void {\n if (state.metrics.requestedMetric !== args.name) return;\n state.metrics.requestedMetric = undefined;\n },\n\n setAvailableMetrics(state: StateDraft, args: {metrics: string[]}): void {\n state.metrics.availableMetrics = args.metrics;\n if (args.metrics.length > 0) state.metrics.selectedIndex = 0;\n },\n\n setMetricSelectedIndex(state: StateDraft, args: {index: number}): void {\n if (!state.metrics.availableMetrics ||\n args.index >= state.metrics.availableMetrics.length) {\n throw Error('metric selection out of bounds');\n }\n state.metrics.selectedIndex = args.index;\n },\n\n togglePerfDebug(state: StateDraft, _: {}): void {\n state.perfDebug = !state.perfDebug;\n },\n\n toggleSidebar(state: StateDraft, _: {}): void {\n state.sidebarVisible = !state.sidebarVisible;\n },\n\n setHoveredUtidAndPid(state: StateDraft, args: {utid: number, pid: number}) {\n state.hoveredPid = args.pid;\n state.hoveredUtid = args.utid;\n },\n\n setHighlightedSliceId(state: StateDraft, args: {sliceId: number}) {\n state.highlightedSliceId = args.sliceId;\n },\n\n setHighlightedFlowLeftId(state: StateDraft, args: {flowId: number}) {\n state.focusedFlowIdLeft = args.flowId;\n },\n\n setHighlightedFlowRightId(state: StateDraft, args: {flowId: number}) {\n state.focusedFlowIdRight = args.flowId;\n },\n\n setSearchIndex(state: StateDraft, args: {index: number}) {\n state.searchIndex = args.index;\n },\n\n setHoveredLogsTimestamp(state: StateDraft, args: {ts: number}) {\n state.hoveredLogsTimestamp = args.ts;\n },\n\n setHoveredNoteTimestamp(state: StateDraft, args: {ts: number}) {\n state.hoveredNoteTimestamp = args.ts;\n },\n\n setCurrentTab(state: StateDraft, args: {tab: string|undefined}) {\n state.currentTab = args.tab;\n },\n\n toggleAllTrackGroups(state: StateDraft, args: {collapsed: boolean}) {\n for (const [_, group] of Object.entries(state.trackGroups)) {\n group.collapsed = args.collapsed;\n }\n },\n\n addNewPivotTable(state: StateDraft, args: {\n name: string,\n pivotTableId: string,\n selectedPivots: PivotAttrs[],\n selectedAggregations: AggregationAttrs[],\n traceTime?: TraceTime,\n selectedTrackIds?: number[]\n }): void {\n state.pivotTable[args.pivotTableId] = {\n id: args.pivotTableId,\n name: args.name,\n selectedPivots: args.selectedPivots,\n selectedAggregations: args.selectedAggregations,\n isLoadingQuery: false,\n traceTime: args.traceTime,\n selectedTrackIds: args.selectedTrackIds\n };\n },\n\n deletePivotTable(state: StateDraft, args: {pivotTableId: string}): void {\n delete state.pivotTable[args.pivotTableId];\n },\n\n resetPivotTableRequest(state: StateDraft, args: {pivotTableId: string}):\n void {\n state.pivotTable[args.pivotTableId].requestedAction = undefined;\n },\n\n setPivotTableRequest(\n state: StateDraft,\n args: {pivotTableId: string, action: string, attrs?: SubQueryAttrs}):\n void {\n state.pivotTable[args.pivotTableId].requestedAction = {\n action: args.action,\n attrs: args.attrs\n };\n },\n\n setAvailablePivotTableColumns(\n state: StateDraft,\n args: {availableColumns: TableAttrs[], availableAggregations: string[]}):\n void {\n state.pivotTableConfig.availableColumns = args.availableColumns;\n state.pivotTableConfig.availableAggregations =\n args.availableAggregations;\n },\n\n toggleQueryLoading(state: StateDraft, args: {pivotTableId: string}): void {\n state.pivotTable[args.pivotTableId].isLoadingQuery =\n !state.pivotTable[args.pivotTableId].isLoadingQuery;\n },\n\n setSelectedPivotsAndAggregations(state: StateDraft, args: {\n pivotTableId: string,\n selectedPivots: PivotAttrs[],\n selectedAggregations: AggregationAttrs[]\n }) {\n state.pivotTable[args.pivotTableId].selectedPivots =\n args.selectedPivots.map(pivot => Object.assign({}, pivot));\n state.pivotTable[args.pivotTableId].selectedAggregations =\n args.selectedAggregations.map(\n aggregation => Object.assign({}, aggregation));\n },\n\n setPivotTableRange(state: StateDraft, args: {\n pivotTableId: string,\n traceTime?: TraceTime,\n selectedTrackIds?: number[]\n }) {\n const pivotTable = state.pivotTable[args.pivotTableId];\n pivotTable.traceTime = args.traceTime;\n pivotTable.selectedTrackIds = args.selectedTrackIds;\n }\n};\n\n// When we are on the frontend side, we don't really want to execute the\n// actions above, we just want to serialize them and marshal their\n// arguments, send them over to the controller side and have them being\n// executed there. The magic below takes care of turning each action into a\n// function that returns the marshaled args.\n\n// A DeferredAction is a bundle of Args and a method name. This is the marshaled\n// version of a StateActions method call.\nexport interface DeferredAction<Args = {}> {\n type: string;\n args: Args;\n}\n\n// This type magic creates a type function DeferredActions<T> which takes a type\n// T and 'maps' its attributes. For each attribute on T matching the signature:\n// (state: StateDraft, args: Args) => void\n// DeferredActions<T> has an attribute:\n// (args: Args) => DeferredAction<Args>\ntype ActionFunction<Args> = (state: StateDraft, args: Args) => void;\ntype DeferredActionFunc<T> = T extends ActionFunction<infer Args>?\n (args: Args) => DeferredAction<Args>:\n never;\ntype DeferredActions<C> = {\n [P in keyof C]: DeferredActionFunc<C[P]>;\n};\n\n// Actions is an implementation of DeferredActions<typeof StateActions>.\n// (since StateActions is a variable not a type we have to do\n// 'typeof StateActions' to access the (unnamed) type of StateActions).\n// It's a Proxy such that any attribute access returns a function:\n// (args) => {return {type: ATTRIBUTE_NAME, args};}\nexport const Actions =\n // tslint:disable-next-line no-any\n new Proxy<DeferredActions<typeof StateActions>>({} as any, {\n // tslint:disable-next-line no-any\n get(_: any, prop: string, _2: any) {\n return (args: {}): DeferredAction<{}> => {\n return {\n type: prop,\n args,\n };\n };\n },\n });\n","// Copyright (C) 2019 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nexport const LogExistsKey = 'log-exists';\nexport const LogBoundsKey = 'log-bounds';\nexport const LogEntriesKey = 'log-entries';\n\nexport interface LogExists { exists: boolean; }\n\nexport interface LogBounds {\n startTs: number;\n endTs: number;\n firstRowTs: number;\n lastRowTs: number;\n total: number;\n}\n\nexport interface LogEntries {\n offset: number;\n timestamps: number[];\n priorities: number[];\n tags: string[];\n messages: string[];\n}\n","// Copyright (C) 2021 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nexport enum ConversionJobStatus {\n InProgress = 'InProgress',\n NotRunning = 'NotRunning',\n}\n\nexport type ConversionJobName = 'convert_systrace'|'convert_json'|\n 'open_in_legacy'|'convert_pprof'|'create_permalink';\n\nexport interface ConversionJobStatusUpdate {\n jobName: ConversionJobName;\n jobStatus: ConversionJobStatus;\n}\n","// Copyright (C) 2021 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {globals} from '../frontend/globals';\n\nconst DEFAULT_CHANNEL = 'stable';\nconst CHANNEL_KEY = 'perfettoUiChannel';\n\nlet currentChannel: string|undefined = undefined;\nlet nextChannel: string|undefined = undefined;\n\n// This is the channel the UI is currently running. It doesn't change once the\n// UI has been loaded.\nexport function getCurrentChannel(): string {\n if (currentChannel === undefined) {\n currentChannel = localStorage.getItem(CHANNEL_KEY) || DEFAULT_CHANNEL;\n }\n return currentChannel;\n}\n\n// This is the channel that will be applied on reload.\nexport function getNextChannel(): string {\n if (nextChannel !== undefined) {\n return nextChannel;\n }\n return getCurrentChannel();\n}\n\nexport function channelChanged(): boolean {\n return getCurrentChannel() !== getNextChannel();\n}\n\nexport function setChannel(channel: string): void {\n getCurrentChannel(); // Cache the current channel before mangling next one.\n nextChannel = channel;\n localStorage.setItem(CHANNEL_KEY, channel);\n globals.rafScheduler.scheduleFullRedraw();\n}\n","\"use strict\"\n\nfunction Vnode(tag, key, attrs, children, text, dom) {\n\treturn {tag: tag, key: key, attrs: attrs, children: children, text: text, dom: dom, domSize: undefined, state: undefined, events: undefined, instance: undefined}\n}\nVnode.normalize = function(node) {\n\tif (Array.isArray(node)) return Vnode(\"[\", undefined, undefined, Vnode.normalizeChildren(node), undefined, undefined)\n\tif (node == null || typeof node === \"boolean\") return null\n\tif (typeof node === \"object\") return node\n\treturn Vnode(\"#\", undefined, undefined, String(node), undefined, undefined)\n}\nVnode.normalizeChildren = function(input) {\n\tvar children = []\n\tif (input.length) {\n\t\tvar isKeyed = input[0] != null && input[0].key != null\n\t\t// Note: this is a *very* perf-sensitive check.\n\t\t// Fun fact: merging the loop like this is somehow faster than splitting\n\t\t// it, noticeably so.\n\t\tfor (var i = 1; i < input.length; i++) {\n\t\t\tif ((input[i] != null && input[i].key != null) !== isKeyed) {\n\t\t\t\tthrow new TypeError(\"Vnodes must either always have keys or never have keys!\")\n\t\t\t}\n\t\t}\n\t\tfor (var i = 0; i < input.length; i++) {\n\t\t\tchildren[i] = Vnode.normalize(input[i])\n\t\t}\n\t}\n\treturn children\n}\n\nmodule.exports = Vnode\n","\"use strict\"\n\nvar Vnode = require(\"../render/vnode\")\n\n// Call via `hyperscriptVnode.apply(startOffset, arguments)`\n//\n// The reason I do it this way, forwarding the arguments and passing the start\n// offset in `this`, is so I don't have to create a temporary array in a\n// performance-critical path.\n//\n// In native ES6, I'd instead add a final `...args` parameter to the\n// `hyperscript` and `fragment` factories and define this as\n// `hyperscriptVnode(...args)`, since modern engines do optimize that away. But\n// ES5 (what Mithril requires thanks to IE support) doesn't give me that luxury,\n// and engines aren't nearly intelligent enough to do either of these:\n//\n// 1. Elide the allocation for `[].slice.call(arguments, 1)` when it's passed to\n// another function only to be indexed.\n// 2. Elide an `arguments` allocation when it's passed to any function other\n// than `Function.prototype.apply` or `Reflect.apply`.\n//\n// In ES6, it'd probably look closer to this (I'd need to profile it, though):\n// module.exports = function(attrs, ...children) {\n// if (attrs == null || typeof attrs === \"object\" && attrs.tag == null && !Array.isArray(attrs)) {\n// if (children.length === 1 && Array.isArray(children[0])) children = children[0]\n// } else {\n// children = children.length === 0 && Array.isArray(attrs) ? attrs : [attrs, ...children]\n// attrs = undefined\n// }\n//\n// if (attrs == null) attrs = {}\n// return Vnode(\"\", attrs.key, attrs, children)\n// }\nmodule.exports = function() {\n\tvar attrs = arguments[this], start = this + 1, children\n\n\tif (attrs == null) {\n\t\tattrs = {}\n\t} else if (typeof attrs !== \"object\" || attrs.tag != null || Array.isArray(attrs)) {\n\t\tattrs = {}\n\t\tstart = this\n\t}\n\n\tif (arguments.length === start + 1) {\n\t\tchildren = arguments[start]\n\t\tif (!Array.isArray(children)) children = [children]\n\t} else {\n\t\tchildren = []\n\t\twhile (start < arguments.length) children.push(arguments[start++])\n\t}\n\n\treturn Vnode(\"\", attrs.key, attrs, children)\n}\n","\"use strict\"\n\nvar Vnode = require(\"../render/vnode\")\nvar hyperscriptVnode = require(\"./hyperscriptVnode\")\n\nvar selectorParser = /(?:(^|#|\\.)([^#\\.\\[\\]]+))|(\\[(.+?)(?:\\s*=\\s*(\"|'|)((?:\\\\[\"'\\]]|.)*?)\\5)?\\])/g\nvar selectorCache = {}\nvar hasOwn = {}.hasOwnProperty\n\nfunction isEmpty(object) {\n\tfor (var key in object) if (hasOwn.call(object, key)) return false\n\treturn true\n}\n\nfunction compileSelector(selector) {\n\tvar match, tag = \"div\", classes = [], attrs = {}\n\twhile (match = selectorParser.exec(selector)) {\n\t\tvar type = match[1], value = match[2]\n\t\tif (type === \"\" && value !== \"\") tag = value\n\t\telse if (type === \"#\") attrs.id = value\n\t\telse if (type === \".\") classes.push(value)\n\t\telse if (match[3][0] === \"[\") {\n\t\t\tvar attrValue = match[6]\n\t\t\tif (attrValue) attrValue = attrValue.replace(/\\\\([\"'])/g, \"$1\").replace(/\\\\\\\\/g, \"\\\\\")\n\t\t\tif (match[4] === \"class\") classes.push(attrValue)\n\t\t\telse attrs[match[4]] = attrValue === \"\" ? attrValue : attrValue || true\n\t\t}\n\t}\n\tif (classes.length > 0) attrs.className = classes.join(\" \")\n\treturn selectorCache[selector] = {tag: tag, attrs: attrs}\n}\n\nfunction execSelector(state, vnode) {\n\tvar attrs = vnode.attrs\n\tvar children = Vnode.normalizeChildren(vnode.children)\n\tvar hasClass = hasOwn.call(attrs, \"class\")\n\tvar className = hasClass ? attrs.class : attrs.className\n\n\tvnode.tag = state.tag\n\tvnode.attrs = null\n\tvnode.children = undefined\n\n\tif (!isEmpty(state.attrs) && !isEmpty(attrs)) {\n\t\tvar newAttrs = {}\n\n\t\tfor (var key in attrs) {\n\t\t\tif (hasOwn.call(attrs, key)) newAttrs[key] = attrs[key]\n\t\t}\n\n\t\tattrs = newAttrs\n\t}\n\n\tfor (var key in state.attrs) {\n\t\tif (hasOwn.call(state.attrs, key) && key !== \"className\" && !hasOwn.call(attrs, key)){\n\t\t\tattrs[key] = state.attrs[key]\n\t\t}\n\t}\n\tif (className != null || state.attrs.className != null) attrs.className =\n\t\tclassName != null\n\t\t\t? state.attrs.className != null\n\t\t\t\t? String(state.attrs.className) + \" \" + String(className)\n\t\t\t\t: className\n\t\t\t: state.attrs.className != null\n\t\t\t\t? state.attrs.className\n\t\t\t\t: null\n\n\tif (hasClass) attrs.class = null\n\n\tfor (var key in attrs) {\n\t\tif (hasOwn.call(attrs, key) && key !== \"key\") {\n\t\t\tvnode.attrs = attrs\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif (Array.isArray(children) && children.length === 1 && children[0] != null && children[0].tag === \"#\") {\n\t\tvnode.text = children[0].children\n\t} else {\n\t\tvnode.children = children\n\t}\n\n\treturn vnode\n}\n\nfunction hyperscript(selector) {\n\tif (selector == null || typeof selector !== \"string\" && typeof selector !== \"function\" && typeof selector.view !== \"function\") {\n\t\tthrow Error(\"The selector must be either a string or a component.\");\n\t}\n\n\tvar vnode = hyperscriptVnode.apply(1, arguments)\n\n\tif (typeof selector === \"string\") {\n\t\tvnode.children = Vnode.normalizeChildren(vnode.children)\n\t\tif (selector !== \"[\") return execSelector(selectorCache[selector] || compileSelector(selector), vnode)\n\t}\n\n\tvnode.tag = selector\n\treturn vnode\n}\n\nmodule.exports = hyperscript\n","\"use strict\"\n\nvar Vnode = require(\"../render/vnode\")\n\nmodule.exports = function(html) {\n\tif (html == null) html = \"\"\n\treturn Vnode(\"<\", undefined, undefined, html, undefined, undefined)\n}\n","\"use strict\"\n\nvar Vnode = require(\"../render/vnode\")\nvar hyperscriptVnode = require(\"./hyperscriptVnode\")\n\nmodule.exports = function() {\n\tvar vnode = hyperscriptVnode.apply(0, arguments)\n\n\tvnode.tag = \"[\"\n\tvnode.children = Vnode.normalizeChildren(vnode.children)\n\treturn vnode\n}\n","\"use strict\"\n\nvar hyperscript = require(\"./render/hyperscript\")\n\nhyperscript.trust = require(\"./render/trust\")\nhyperscript.fragment = require(\"./render/fragment\")\n\nmodule.exports = hyperscript\n","\"use strict\"\n/** @constructor */\nvar PromisePolyfill = function(executor) {\n\tif (!(this instanceof PromisePolyfill)) throw new Error(\"Promise must be called with `new`\")\n\tif (typeof executor !== \"function\") throw new TypeError(\"executor must be a function\")\n\n\tvar self = this, resolvers = [], rejectors = [], resolveCurrent = handler(resolvers, true), rejectCurrent = handler(rejectors, false)\n\tvar instance = self._instance = {resolvers: resolvers, rejectors: rejectors}\n\tvar callAsync = typeof setImmediate === \"function\" ? setImmediate : setTimeout\n\tfunction handler(list, shouldAbsorb) {\n\t\treturn function execute(value) {\n\t\t\tvar then\n\t\t\ttry {\n\t\t\t\tif (shouldAbsorb && value != null && (typeof value === \"object\" || typeof value === \"function\") && typeof (then = value.then) === \"function\") {\n\t\t\t\t\tif (value === self) throw new TypeError(\"Promise can't be resolved w/ itself\")\n\t\t\t\t\texecuteOnce(then.bind(value))\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tcallAsync(function() {\n\t\t\t\t\t\tif (!shouldAbsorb && list.length === 0) console.error(\"Possible unhandled promise rejection:\", value)\n\t\t\t\t\t\tfor (var i = 0; i < list.length; i++) list[i](value)\n\t\t\t\t\t\tresolvers.length = 0, rejectors.length = 0\n\t\t\t\t\t\tinstance.state = shouldAbsorb\n\t\t\t\t\t\tinstance.retry = function() {execute(value)}\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\t\t\tcatch (e) {\n\t\t\t\trejectCurrent(e)\n\t\t\t}\n\t\t}\n\t}\n\tfunction executeOnce(then) {\n\t\tvar runs = 0\n\t\tfunction run(fn) {\n\t\t\treturn function(value) {\n\t\t\t\tif (runs++ > 0) return\n\t\t\t\tfn(value)\n\t\t\t}\n\t\t}\n\t\tvar onerror = run(rejectCurrent)\n\t\ttry {then(run(resolveCurrent), onerror)} catch (e) {onerror(e)}\n\t}\n\n\texecuteOnce(executor)\n}\nPromisePolyfill.prototype.then = function(onFulfilled, onRejection) {\n\tvar self = this, instance = self._instance\n\tfunction handle(callback, list, next, state) {\n\t\tlist.push(function(value) {\n\t\t\tif (typeof callback !== \"function\") next(value)\n\t\t\telse try {resolveNext(callback(value))} catch (e) {if (rejectNext) rejectNext(e)}\n\t\t})\n\t\tif (typeof instance.retry === \"function\" && state === instance.state) instance.retry()\n\t}\n\tvar resolveNext, rejectNext\n\tvar promise = new PromisePolyfill(function(resolve, reject) {resolveNext = resolve, rejectNext = reject})\n\thandle(onFulfilled, instance.resolvers, resolveNext, true), handle(onRejection, instance.rejectors, rejectNext, false)\n\treturn promise\n}\nPromisePolyfill.prototype.catch = function(onRejection) {\n\treturn this.then(null, onRejection)\n}\nPromisePolyfill.prototype.finally = function(callback) {\n\treturn this.then(\n\t\tfunction(value) {\n\t\t\treturn PromisePolyfill.resolve(callback()).then(function() {\n\t\t\t\treturn value\n\t\t\t})\n\t\t},\n\t\tfunction(reason) {\n\t\t\treturn PromisePolyfill.resolve(callback()).then(function() {\n\t\t\t\treturn PromisePolyfill.reject(reason);\n\t\t\t})\n\t\t}\n\t)\n}\nPromisePolyfill.resolve = function(value) {\n\tif (value instanceof PromisePolyfill) return value\n\treturn new PromisePolyfill(function(resolve) {resolve(value)})\n}\nPromisePolyfill.reject = function(value) {\n\treturn new PromisePolyfill(function(resolve, reject) {reject(value)})\n}\nPromisePolyfill.all = function(list) {\n\treturn new PromisePolyfill(function(resolve, reject) {\n\t\tvar total = list.length, count = 0, values = []\n\t\tif (list.length === 0) resolve([])\n\t\telse for (var i = 0; i < list.length; i++) {\n\t\t\t(function(i) {\n\t\t\t\tfunction consume(value) {\n\t\t\t\t\tcount++\n\t\t\t\t\tvalues[i] = value\n\t\t\t\t\tif (count === total) resolve(values)\n\t\t\t\t}\n\t\t\t\tif (list[i] != null && (typeof list[i] === \"object\" || typeof list[i] === \"function\") && typeof list[i].then === \"function\") {\n\t\t\t\t\tlist[i].then(consume, reject)\n\t\t\t\t}\n\t\t\t\telse consume(list[i])\n\t\t\t})(i)\n\t\t}\n\t})\n}\nPromisePolyfill.race = function(list) {\n\treturn new PromisePolyfill(function(resolve, reject) {\n\t\tfor (var i = 0; i < list.length; i++) {\n\t\t\tlist[i].then(resolve, reject)\n\t\t}\n\t})\n}\n\nmodule.exports = PromisePolyfill\n","\"use strict\"\n\nvar PromisePolyfill = require(\"./polyfill\")\n\nif (typeof window !== \"undefined\") {\n\tif (typeof window.Promise === \"undefined\") {\n\t\twindow.Promise = PromisePolyfill\n\t} else if (!window.Promise.prototype.finally) {\n\t\twindow.Promise.prototype.finally = PromisePolyfill.prototype.finally\n\t}\n\tmodule.exports = window.Promise\n} else if (typeof global !== \"undefined\") {\n\tif (typeof global.Promise === \"undefined\") {\n\t\tglobal.Promise = PromisePolyfill\n\t} else if (!global.Promise.prototype.finally) {\n\t\tglobal.Promise.prototype.finally = PromisePolyfill.prototype.finally\n\t}\n\tmodule.exports = global.Promise\n} else {\n\tmodule.exports = PromisePolyfill\n}\n","\"use strict\"\n\nvar Vnode = require(\"../render/vnode\")\n\nmodule.exports = function($window) {\n\tvar $doc = $window && $window.document\n\tvar currentRedraw\n\n\tvar nameSpace = {\n\t\tsvg: \"http://www.w3.org/2000/svg\",\n\t\tmath: \"http://www.w3.org/1998/Math/MathML\"\n\t}\n\n\tfunction getNameSpace(vnode) {\n\t\treturn vnode.attrs && vnode.attrs.xmlns || nameSpace[vnode.tag]\n\t}\n\n\t//sanity check to discourage people from doing `vnode.state = ...`\n\tfunction checkState(vnode, original) {\n\t\tif (vnode.state !== original) throw new Error(\"`vnode.state` must not be modified\")\n\t}\n\n\t//Note: the hook is passed as the `this` argument to allow proxying the\n\t//arguments without requiring a full array allocation to do so. It also\n\t//takes advantage of the fact the current `vnode` is the first argument in\n\t//all lifecycle methods.\n\tfunction callHook(vnode) {\n\t\tvar original = vnode.state\n\t\ttry {\n\t\t\treturn this.apply(original, arguments)\n\t\t} finally {\n\t\t\tcheckState(vnode, original)\n\t\t}\n\t}\n\n\t// IE11 (at least) throws an UnspecifiedError when accessing document.activeElement when\n\t// inside an iframe. Catch and swallow this error, and heavy-handidly return null.\n\tfunction activeElement() {\n\t\ttry {\n\t\t\treturn $doc.activeElement\n\t\t} catch (e) {\n\t\t\treturn null\n\t\t}\n\t}\n\t//create\n\tfunction createNodes(parent, vnodes, start, end, hooks, nextSibling, ns) {\n\t\tfor (var i = start; i < end; i++) {\n\t\t\tvar vnode = vnodes[i]\n\t\t\tif (vnode != null) {\n\t\t\t\tcreateNode(parent, vnode, hooks, ns, nextSibling)\n\t\t\t}\n\t\t}\n\t}\n\tfunction createNode(parent, vnode, hooks, ns, nextSibling) {\n\t\tvar tag = vnode.tag\n\t\tif (typeof tag === \"string\") {\n\t\t\tvnode.state = {}\n\t\t\tif (vnode.attrs != null) initLifecycle(vnode.attrs, vnode, hooks)\n\t\t\tswitch (tag) {\n\t\t\t\tcase \"#\": createText(parent, vnode, nextSibling); break\n\t\t\t\tcase \"<\": createHTML(parent, vnode, ns, nextSibling); break\n\t\t\t\tcase \"[\": createFragment(parent, vnode, hooks, ns, nextSibling); break\n\t\t\t\tdefault: createElement(parent, vnode, hooks, ns, nextSibling)\n\t\t\t}\n\t\t}\n\t\telse createComponent(parent, vnode, hooks, ns, nextSibling)\n\t}\n\tfunction createText(parent, vnode, nextSibling) {\n\t\tvnode.dom = $doc.createTextNode(vnode.children)\n\t\tinsertNode(parent, vnode.dom, nextSibling)\n\t}\n\tvar possibleParents = {caption: \"table\", thead: \"table\", tbody: \"table\", tfoot: \"table\", tr: \"tbody\", th: \"tr\", td: \"tr\", colgroup: \"table\", col: \"colgroup\"}\n\tfunction createHTML(parent, vnode, ns, nextSibling) {\n\t\tvar match = vnode.children.match(/^\\s*?<(\\w+)/im) || []\n\t\t// not using the proper parent makes the child element(s) vanish.\n\t\t// var div = document.createElement(\"div\")\n\t\t// div.innerHTML = \"<td>i</td><td>j</td>\"\n\t\t// console.log(div.innerHTML)\n\t\t// --> \"ij\", no <td> in sight.\n\t\tvar temp = $doc.createElement(possibleParents[match[1]] || \"div\")\n\t\tif (ns === \"http://www.w3.org/2000/svg\") {\n\t\t\ttemp.innerHTML = \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\">\" + vnode.children + \"</svg>\"\n\t\t\ttemp = temp.firstChild\n\t\t} else {\n\t\t\ttemp.innerHTML = vnode.children\n\t\t}\n\t\tvnode.dom = temp.firstChild\n\t\tvnode.domSize = temp.childNodes.length\n\t\t// Capture nodes to remove, so we don't confuse them.\n\t\tvnode.instance = []\n\t\tvar fragment = $doc.createDocumentFragment()\n\t\tvar child\n\t\twhile (child = temp.firstChild) {\n\t\t\tvnode.instance.push(child)\n\t\t\tfragment.appendChild(child)\n\t\t}\n\t\tinsertNode(parent, fragment, nextSibling)\n\t}\n\tfunction createFragment(parent, vnode, hooks, ns, nextSibling) {\n\t\tvar fragment = $doc.createDocumentFragment()\n\t\tif (vnode.children != null) {\n\t\t\tvar children = vnode.children\n\t\t\tcreateNodes(fragment, children, 0, children.length, hooks, null, ns)\n\t\t}\n\t\tvnode.dom = fragment.firstChild\n\t\tvnode.domSize = fragment.childNodes.length\n\t\tinsertNode(parent, fragment, nextSibling)\n\t}\n\tfunction createElement(parent, vnode, hooks, ns, nextSibling) {\n\t\tvar tag = vnode.tag\n\t\tvar attrs = vnode.attrs\n\t\tvar is = attrs && attrs.is\n\n\t\tns = getNameSpace(vnode) || ns\n\n\t\tvar element = ns ?\n\t\t\tis ? $doc.createElementNS(ns, tag, {is: is}) : $doc.createElementNS(ns, tag) :\n\t\t\tis ? $doc.createElement(tag, {is: is}) : $doc.createElement(tag)\n\t\tvnode.dom = element\n\n\t\tif (attrs != null) {\n\t\t\tsetAttrs(vnode, attrs, ns)\n\t\t}\n\n\t\tinsertNode(parent, element, nextSibling)\n\n\t\tif (!maybeSetContentEditable(vnode)) {\n\t\t\tif (vnode.text != null) {\n\t\t\t\tif (vnode.text !== \"\") element.textContent = vnode.text\n\t\t\t\telse vnode.children = [Vnode(\"#\", undefined, undefined, vnode.text, undefined, undefined)]\n\t\t\t}\n\t\t\tif (vnode.children != null) {\n\t\t\t\tvar children = vnode.children\n\t\t\t\tcreateNodes(element, children, 0, children.length, hooks, null, ns)\n\t\t\t\tif (vnode.tag === \"select\" && attrs != null) setLateSelectAttrs(vnode, attrs)\n\t\t\t}\n\t\t}\n\t}\n\tfunction initComponent(vnode, hooks) {\n\t\tvar sentinel\n\t\tif (typeof vnode.tag.view === \"function\") {\n\t\t\tvnode.state = Object.create(vnode.tag)\n\t\t\tsentinel = vnode.state.view\n\t\t\tif (sentinel.$$reentrantLock$$ != null) return\n\t\t\tsentinel.$$reentrantLock$$ = true\n\t\t} else {\n\t\t\tvnode.state = void 0\n\t\t\tsentinel = vnode.tag\n\t\t\tif (sentinel.$$reentrantLock$$ != null) return\n\t\t\tsentinel.$$reentrantLock$$ = true\n\t\t\tvnode.state = (vnode.tag.prototype != null && typeof vnode.tag.prototype.view === \"function\") ? new vnode.tag(vnode) : vnode.tag(vnode)\n\t\t}\n\t\tinitLifecycle(vnode.state, vnode, hooks)\n\t\tif (vnode.attrs != null) initLifecycle(vnode.attrs, vnode, hooks)\n\t\tvnode.instance = Vnode.normalize(callHook.call(vnode.state.view, vnode))\n\t\tif (vnode.instance === vnode) throw Error(\"A view cannot return the vnode it received as argument\")\n\t\tsentinel.$$reentrantLock$$ = null\n\t}\n\tfunction createComponent(parent, vnode, hooks, ns, nextSibling) {\n\t\tinitComponent(vnode, hooks)\n\t\tif (vnode.instance != null) {\n\t\t\tcreateNode(parent, vnode.instance, hooks, ns, nextSibling)\n\t\t\tvnode.dom = vnode.instance.dom\n\t\t\tvnode.domSize = vnode.dom != null ? vnode.instance.domSize : 0\n\t\t}\n\t\telse {\n\t\t\tvnode.domSize = 0\n\t\t}\n\t}\n\n\t//update\n\t/**\n\t * @param {Element|Fragment} parent - the parent element\n\t * @param {Vnode[] | null} old - the list of vnodes of the last `render()` call for\n\t * this part of the tree\n\t * @param {Vnode[] | null} vnodes - as above, but for the current `render()` call.\n\t * @param {Function[]} hooks - an accumulator of post-render hooks (oncreate/onupdate)\n\t * @param {Element | null} nextSibling - the next DOM node if we're dealing with a\n\t * fragment that is not the last item in its\n\t * parent\n\t * @param {'svg' | 'math' | String | null} ns) - the current XML namespace, if any\n\t * @returns void\n\t */\n\t// This function diffs and patches lists of vnodes, both keyed and unkeyed.\n\t//\n\t// We will:\n\t//\n\t// 1. describe its general structure\n\t// 2. focus on the diff algorithm optimizations\n\t// 3. discuss DOM node operations.\n\n\t// ## Overview:\n\t//\n\t// The updateNodes() function:\n\t// - deals with trivial cases\n\t// - determines whether the lists are keyed or unkeyed based on the first non-null node\n\t// of each list.\n\t// - diffs them and patches the DOM if needed (that's the brunt of the code)\n\t// - manages the leftovers: after diffing, are there:\n\t// - old nodes left to remove?\n\t// \t - new nodes to insert?\n\t// \t deal with them!\n\t//\n\t// The lists are only iterated over once, with an exception for the nodes in `old` that\n\t// are visited in the fourth part of the diff and in the `removeNodes` loop.\n\n\t// ## Diffing\n\t//\n\t// Reading https://github.com/localvoid/ivi/blob/ddc09d06abaef45248e6133f7040d00d3c6be853/packages/ivi/src/vdom/implementation.ts#L617-L837\n\t// may be good for context on longest increasing subsequence-based logic for moving nodes.\n\t//\n\t// In order to diff keyed lists, one has to\n\t//\n\t// 1) match nodes in both lists, per key, and update them accordingly\n\t// 2) create the nodes present in the new list, but absent in the old one\n\t// 3) remove the nodes present in the old list, but absent in the new one\n\t// 4) figure out what nodes in 1) to move in order to minimize the DOM operations.\n\t//\n\t// To achieve 1) one can create a dictionary of keys => index (for the old list), then iterate\n\t// over the new list and for each new vnode, find the corresponding vnode in the old list using\n\t// the map.\n\t// 2) is achieved in the same step: if a new node has no corresponding entry in the map, it is new\n\t// and must be created.\n\t// For the removals, we actually remove the nodes that have been updated from the old list.\n\t// The nodes that remain in that list after 1) and 2) have been performed can be safely removed.\n\t// The fourth step is a bit more complex and relies on the longest increasing subsequence (LIS)\n\t// algorithm.\n\t//\n\t// the longest increasing subsequence is the list of nodes that can remain in place. Imagine going\n\t// from `1,2,3,4,5` to `4,5,1,2,3` where the numbers are not necessarily the keys, but the indices\n\t// corresponding to the keyed nodes in the old list (keyed nodes `e,d,c,b,a` => `b,a,e,d,c` would\n\t// match the above lists, for example).\n\t//\n\t// In there are two increasing subsequences: `4,5` and `1,2,3`, the latter being the longest. We\n\t// can update those nodes without moving them, and only call `insertNode` on `4` and `5`.\n\t//\n\t// @localvoid adapted the algo to also support node deletions and insertions (the `lis` is actually\n\t// the longest increasing subsequence *of old nodes still present in the new list*).\n\t//\n\t// It is a general algorithm that is fireproof in all circumstances, but it requires the allocation\n\t// and the construction of a `key => oldIndex` map, and three arrays (one with `newIndex => oldIndex`,\n\t// the `LIS` and a temporary one to create the LIS).\n\t//\n\t// So we cheat where we can: if the tails of the lists are identical, they are guaranteed to be part of\n\t// the LIS and can be updated without moving them.\n\t//\n\t// If two nodes are swapped, they are guaranteed not to be part of the LIS, and must be moved (with\n\t// the exception of the last node if the list is fully reversed).\n\t//\n\t// ## Finding the next sibling.\n\t//\n\t// `updateNode()` and `createNode()` expect a nextSibling parameter to perform DOM operations.\n\t// When the list is being traversed top-down, at any index, the DOM nodes up to the previous\n\t// vnode reflect the content of the new list, whereas the rest of the DOM nodes reflect the old\n\t// list. The next sibling must be looked for in the old list using `getNextSibling(... oldStart + 1 ...)`.\n\t//\n\t// In the other scenarios (swaps, upwards traversal, map-based diff),\n\t// the new vnodes list is traversed upwards. The DOM nodes at the bottom of the list reflect the\n\t// bottom part of the new vnodes list, and we can use the `v.dom` value of the previous node\n\t// as the next sibling (cached in the `nextSibling` variable).\n\n\n\t// ## DOM node moves\n\t//\n\t// In most scenarios `updateNode()` and `createNode()` perform the DOM operations. However,\n\t// this is not the case if the node moved (second and fourth part of the diff algo). We move\n\t// the old DOM nodes before updateNode runs because it enables us to use the cached `nextSibling`\n\t// variable rather than fetching it using `getNextSibling()`.\n\t//\n\t// The fourth part of the diff currently inserts nodes unconditionally, leading to issues\n\t// like #1791 and #1999. We need to be smarter about those situations where adjascent old\n\t// nodes remain together in the new list in a way that isn't covered by parts one and\n\t// three of the diff algo.\n\n\tfunction updateNodes(parent, old, vnodes, hooks, nextSibling, ns) {\n\t\tif (old === vnodes || old == null && vnodes == null) return\n\t\telse if (old == null || old.length === 0) createNodes(parent, vnodes, 0, vnodes.length, hooks, nextSibling, ns)\n\t\telse if (vnodes == null || vnodes.length === 0) removeNodes(parent, old, 0, old.length)\n\t\telse {\n\t\t\tvar isOldKeyed = old[0] != null && old[0].key != null\n\t\t\tvar isKeyed = vnodes[0] != null && vnodes[0].key != null\n\t\t\tvar start = 0, oldStart = 0\n\t\t\tif (!isOldKeyed) while (oldStart < old.length && old[oldStart] == null) oldStart++\n\t\t\tif (!isKeyed) while (start < vnodes.length && vnodes[start] == null) start++\n\t\t\tif (isKeyed === null && isOldKeyed == null) return // both lists are full of nulls\n\t\t\tif (isOldKeyed !== isKeyed) {\n\t\t\t\tremoveNodes(parent, old, oldStart, old.length)\n\t\t\t\tcreateNodes(parent, vnodes, start, vnodes.length, hooks, nextSibling, ns)\n\t\t\t} else if (!isKeyed) {\n\t\t\t\t// Don't index past the end of either list (causes deopts).\n\t\t\t\tvar commonLength = old.length < vnodes.length ? old.length : vnodes.length\n\t\t\t\t// Rewind if necessary to the first non-null index on either side.\n\t\t\t\t// We could alternatively either explicitly create or remove nodes when `start !== oldStart`\n\t\t\t\t// but that would be optimizing for sparse lists which are more rare than dense ones.\n\t\t\t\tstart = start < oldStart ? start : oldStart\n\t\t\t\tfor (; start < commonLength; start++) {\n\t\t\t\t\to = old[start]\n\t\t\t\t\tv = vnodes[start]\n\t\t\t\t\tif (o === v || o == null && v == null) continue\n\t\t\t\t\telse if (o == null) createNode(parent, v, hooks, ns, getNextSibling(old, start + 1, nextSibling))\n\t\t\t\t\telse if (v == null) removeNode(parent, o)\n\t\t\t\t\telse updateNode(parent, o, v, hooks, getNextSibling(old, start + 1, nextSibling), ns)\n\t\t\t\t}\n\t\t\t\tif (old.length > commonLength) removeNodes(parent, old, start, old.length)\n\t\t\t\tif (vnodes.length > commonLength) createNodes(parent, vnodes, start, vnodes.length, hooks, nextSibling, ns)\n\t\t\t} else {\n\t\t\t\t// keyed diff\n\t\t\t\tvar oldEnd = old.length - 1, end = vnodes.length - 1, map, o, v, oe, ve, topSibling\n\n\t\t\t\t// bottom-up\n\t\t\t\twhile (oldEnd >= oldStart && end >= start) {\n\t\t\t\t\toe = old[oldEnd]\n\t\t\t\t\tve = vnodes[end]\n\t\t\t\t\tif (oe.key !== ve.key) break\n\t\t\t\t\tif (oe !== ve) updateNode(parent, oe, ve, hooks, nextSibling, ns)\n\t\t\t\t\tif (ve.dom != null) nextSibling = ve.dom\n\t\t\t\t\toldEnd--, end--\n\t\t\t\t}\n\t\t\t\t// top-down\n\t\t\t\twhile (oldEnd >= oldStart && end >= start) {\n\t\t\t\t\to = old[oldStart]\n\t\t\t\t\tv = vnodes[start]\n\t\t\t\t\tif (o.key !== v.key) break\n\t\t\t\t\toldStart++, start++\n\t\t\t\t\tif (o !== v) updateNode(parent, o, v, hooks, getNextSibling(old, oldStart, nextSibling), ns)\n\t\t\t\t}\n\t\t\t\t// swaps and list reversals\n\t\t\t\twhile (oldEnd >= oldStart && end >= start) {\n\t\t\t\t\tif (start === end) break\n\t\t\t\t\tif (o.key !== ve.key || oe.key !== v.key) break\n\t\t\t\t\ttopSibling = getNextSibling(old, oldStart, nextSibling)\n\t\t\t\t\tmoveNodes(parent, oe, topSibling)\n\t\t\t\t\tif (oe !== v) updateNode(parent, oe, v, hooks, topSibling, ns)\n\t\t\t\t\tif (++start <= --end) moveNodes(parent, o, nextSibling)\n\t\t\t\t\tif (o !== ve) updateNode(parent, o, ve, hooks, nextSibling, ns)\n\t\t\t\t\tif (ve.dom != null) nextSibling = ve.dom\n\t\t\t\t\toldStart++; oldEnd--\n\t\t\t\t\toe = old[oldEnd]\n\t\t\t\t\tve = vnodes[end]\n\t\t\t\t\to = old[oldStart]\n\t\t\t\t\tv = vnodes[start]\n\t\t\t\t}\n\t\t\t\t// bottom up once again\n\t\t\t\twhile (oldEnd >= oldStart && end >= start) {\n\t\t\t\t\tif (oe.key !== ve.key) break\n\t\t\t\t\tif (oe !== ve) updateNode(parent, oe, ve, hooks, nextSibling, ns)\n\t\t\t\t\tif (ve.dom != null) nextSibling = ve.dom\n\t\t\t\t\toldEnd--, end--\n\t\t\t\t\toe = old[oldEnd]\n\t\t\t\t\tve = vnodes[end]\n\t\t\t\t}\n\t\t\t\tif (start > end) removeNodes(parent, old, oldStart, oldEnd + 1)\n\t\t\t\telse if (oldStart > oldEnd) createNodes(parent, vnodes, start, end + 1, hooks, nextSibling, ns)\n\t\t\t\telse {\n\t\t\t\t\t// inspired by ivi https://github.com/ivijs/ivi/ by Boris Kaul\n\t\t\t\t\tvar originalNextSibling = nextSibling, vnodesLength = end - start + 1, oldIndices = new Array(vnodesLength), li=0, i=0, pos = 2147483647, matched = 0, map, lisIndices\n\t\t\t\t\tfor (i = 0; i < vnodesLength; i++) oldIndices[i] = -1\n\t\t\t\t\tfor (i = end; i >= start; i--) {\n\t\t\t\t\t\tif (map == null) map = getKeyMap(old, oldStart, oldEnd + 1)\n\t\t\t\t\t\tve = vnodes[i]\n\t\t\t\t\t\tvar oldIndex = map[ve.key]\n\t\t\t\t\t\tif (oldIndex != null) {\n\t\t\t\t\t\t\tpos = (oldIndex < pos) ? oldIndex : -1 // becomes -1 if nodes were re-ordered\n\t\t\t\t\t\t\toldIndices[i-start] = oldIndex\n\t\t\t\t\t\t\toe = old[oldIndex]\n\t\t\t\t\t\t\told[oldIndex] = null\n\t\t\t\t\t\t\tif (oe !== ve) updateNode(parent, oe, ve, hooks, nextSibling, ns)\n\t\t\t\t\t\t\tif (ve.dom != null) nextSibling = ve.dom\n\t\t\t\t\t\t\tmatched++\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tnextSibling = originalNextSibling\n\t\t\t\t\tif (matched !== oldEnd - oldStart + 1) removeNodes(parent, old, oldStart, oldEnd + 1)\n\t\t\t\t\tif (matched === 0) createNodes(parent, vnodes, start, end + 1, hooks, nextSibling, ns)\n\t\t\t\t\telse {\n\t\t\t\t\t\tif (pos === -1) {\n\t\t\t\t\t\t\t// the indices of the indices of the items that are part of the\n\t\t\t\t\t\t\t// longest increasing subsequence in the oldIndices list\n\t\t\t\t\t\t\tlisIndices = makeLisIndices(oldIndices)\n\t\t\t\t\t\t\tli = lisIndices.length - 1\n\t\t\t\t\t\t\tfor (i = end; i >= start; i--) {\n\t\t\t\t\t\t\t\tv = vnodes[i]\n\t\t\t\t\t\t\t\tif (oldIndices[i-start] === -1) createNode(parent, v, hooks, ns, nextSibling)\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tif (lisIndices[li] === i - start) li--\n\t\t\t\t\t\t\t\t\telse moveNodes(parent, v, nextSibling)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (v.dom != null) nextSibling = vnodes[i].dom\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tfor (i = end; i >= start; i--) {\n\t\t\t\t\t\t\t\tv = vnodes[i]\n\t\t\t\t\t\t\t\tif (oldIndices[i-start] === -1) createNode(parent, v, hooks, ns, nextSibling)\n\t\t\t\t\t\t\t\tif (v.dom != null) nextSibling = vnodes[i].dom\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tfunction updateNode(parent, old, vnode, hooks, nextSibling, ns) {\n\t\tvar oldTag = old.tag, tag = vnode.tag\n\t\tif (oldTag === tag) {\n\t\t\tvnode.state = old.state\n\t\t\tvnode.events = old.events\n\t\t\tif (shouldNotUpdate(vnode, old)) return\n\t\t\tif (typeof oldTag === \"string\") {\n\t\t\t\tif (vnode.attrs != null) {\n\t\t\t\t\tupdateLifecycle(vnode.attrs, vnode, hooks)\n\t\t\t\t}\n\t\t\t\tswitch (oldTag) {\n\t\t\t\t\tcase \"#\": updateText(old, vnode); break\n\t\t\t\t\tcase \"<\": updateHTML(parent, old, vnode, ns, nextSibling); break\n\t\t\t\t\tcase \"[\": updateFragment(parent, old, vnode, hooks, nextSibling, ns); break\n\t\t\t\t\tdefault: updateElement(old, vnode, hooks, ns)\n\t\t\t\t}\n\t\t\t}\n\t\t\telse updateComponent(parent, old, vnode, hooks, nextSibling, ns)\n\t\t}\n\t\telse {\n\t\t\tremoveNode(parent, old)\n\t\t\tcreateNode(parent, vnode, hooks, ns, nextSibling)\n\t\t}\n\t}\n\tfunction updateText(old, vnode) {\n\t\tif (old.children.toString() !== vnode.children.toString()) {\n\t\t\told.dom.nodeValue = vnode.children\n\t\t}\n\t\tvnode.dom = old.dom\n\t}\n\tfunction updateHTML(parent, old, vnode, ns, nextSibling) {\n\t\tif (old.children !== vnode.children) {\n\t\t\tremoveHTML(parent, old)\n\t\t\tcreateHTML(parent, vnode, ns, nextSibling)\n\t\t}\n\t\telse {\n\t\t\tvnode.dom = old.dom\n\t\t\tvnode.domSize = old.domSize\n\t\t\tvnode.instance = old.instance\n\t\t}\n\t}\n\tfunction updateFragment(parent, old, vnode, hooks, nextSibling, ns) {\n\t\tupdateNodes(parent, old.children, vnode.children, hooks, nextSibling, ns)\n\t\tvar domSize = 0, children = vnode.children\n\t\tvnode.dom = null\n\t\tif (children != null) {\n\t\t\tfor (var i = 0; i < children.length; i++) {\n\t\t\t\tvar child = children[i]\n\t\t\t\tif (child != null && child.dom != null) {\n\t\t\t\t\tif (vnode.dom == null) vnode.dom = child.dom\n\t\t\t\t\tdomSize += child.domSize || 1\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (domSize !== 1) vnode.domSize = domSize\n\t\t}\n\t}\n\tfunction updateElement(old, vnode, hooks, ns) {\n\t\tvar element = vnode.dom = old.dom\n\t\tns = getNameSpace(vnode) || ns\n\n\t\tif (vnode.tag === \"textarea\") {\n\t\t\tif (vnode.attrs == null) vnode.attrs = {}\n\t\t\tif (vnode.text != null) {\n\t\t\t\tvnode.attrs.value = vnode.text //FIXME handle multiple children\n\t\t\t\tvnode.text = undefined\n\t\t\t}\n\t\t}\n\t\tupdateAttrs(vnode, old.attrs, vnode.attrs, ns)\n\t\tif (!maybeSetContentEditable(vnode)) {\n\t\t\tif (old.text != null && vnode.text != null && vnode.text !== \"\") {\n\t\t\t\tif (old.text.toString() !== vnode.text.toString()) old.dom.firstChild.nodeValue = vnode.text\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif (old.text != null) old.children = [Vnode(\"#\", undefined, undefined, old.text, undefined, old.dom.firstChild)]\n\t\t\t\tif (vnode.text != null) vnode.children = [Vnode(\"#\", undefined, undefined, vnode.text, undefined, undefined)]\n\t\t\t\tupdateNodes(element, old.children, vnode.children, hooks, null, ns)\n\t\t\t}\n\t\t}\n\t}\n\tfunction updateComponent(parent, old, vnode, hooks, nextSibling, ns) {\n\t\tvnode.instance = Vnode.normalize(callHook.call(vnode.state.view, vnode))\n\t\tif (vnode.instance === vnode) throw Error(\"A view cannot return the vnode it received as argument\")\n\t\tupdateLifecycle(vnode.state, vnode, hooks)\n\t\tif (vnode.attrs != null) updateLifecycle(vnode.attrs, vnode, hooks)\n\t\tif (vnode.instance != null) {\n\t\t\tif (old.instance == null) createNode(parent, vnode.instance, hooks, ns, nextSibling)\n\t\t\telse updateNode(parent, old.instance, vnode.instance, hooks, nextSibling, ns)\n\t\t\tvnode.dom = vnode.instance.dom\n\t\t\tvnode.domSize = vnode.instance.domSize\n\t\t}\n\t\telse if (old.instance != null) {\n\t\t\tremoveNode(parent, old.instance)\n\t\t\tvnode.dom = undefined\n\t\t\tvnode.domSize = 0\n\t\t}\n\t\telse {\n\t\t\tvnode.dom = old.dom\n\t\t\tvnode.domSize = old.domSize\n\t\t}\n\t}\n\tfunction getKeyMap(vnodes, start, end) {\n\t\tvar map = Object.create(null)\n\t\tfor (; start < end; start++) {\n\t\t\tvar vnode = vnodes[start]\n\t\t\tif (vnode != null) {\n\t\t\t\tvar key = vnode.key\n\t\t\t\tif (key != null) map[key] = start\n\t\t\t}\n\t\t}\n\t\treturn map\n\t}\n\t// Lifted from ivi https://github.com/ivijs/ivi/\n\t// takes a list of unique numbers (-1 is special and can\n\t// occur multiple times) and returns an array with the indices\n\t// of the items that are part of the longest increasing\n\t// subsequece\n\tvar lisTemp = []\n\tfunction makeLisIndices(a) {\n\t\tvar result = [0]\n\t\tvar u = 0, v = 0, i = 0\n\t\tvar il = lisTemp.length = a.length\n\t\tfor (var i = 0; i < il; i++) lisTemp[i] = a[i]\n\t\tfor (var i = 0; i < il; ++i) {\n\t\t\tif (a[i] === -1) continue\n\t\t\tvar j = result[result.length - 1]\n\t\t\tif (a[j] < a[i]) {\n\t\t\t\tlisTemp[i] = j\n\t\t\t\tresult.push(i)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tu = 0\n\t\t\tv = result.length - 1\n\t\t\twhile (u < v) {\n\t\t\t\t// Fast integer average without overflow.\n\t\t\t\t// eslint-disable-next-line no-bitwise\n\t\t\t\tvar c = (u >>> 1) + (v >>> 1) + (u & v & 1)\n\t\t\t\tif (a[result[c]] < a[i]) {\n\t\t\t\t\tu = c + 1\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tv = c\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (a[i] < a[result[u]]) {\n\t\t\t\tif (u > 0) lisTemp[i] = result[u - 1]\n\t\t\t\tresult[u] = i\n\t\t\t}\n\t\t}\n\t\tu = result.length\n\t\tv = result[u - 1]\n\t\twhile (u-- > 0) {\n\t\t\tresult[u] = v\n\t\t\tv = lisTemp[v]\n\t\t}\n\t\tlisTemp.length = 0\n\t\treturn result\n\t}\n\n\tfunction getNextSibling(vnodes, i, nextSibling) {\n\t\tfor (; i < vnodes.length; i++) {\n\t\t\tif (vnodes[i] != null && vnodes[i].dom != null) return vnodes[i].dom\n\t\t}\n\t\treturn nextSibling\n\t}\n\n\t// This covers a really specific edge case:\n\t// - Parent node is keyed and contains child\n\t// - Child is removed, returns unresolved promise in `onbeforeremove`\n\t// - Parent node is moved in keyed diff\n\t// - Remaining children still need moved appropriately\n\t//\n\t// Ideally, I'd track removed nodes as well, but that introduces a lot more\n\t// complexity and I'm not exactly interested in doing that.\n\tfunction moveNodes(parent, vnode, nextSibling) {\n\t\tvar frag = $doc.createDocumentFragment()\n\t\tmoveChildToFrag(parent, frag, vnode)\n\t\tinsertNode(parent, frag, nextSibling)\n\t}\n\tfunction moveChildToFrag(parent, frag, vnode) {\n\t\t// Dodge the recursion overhead in a few of the most common cases.\n\t\twhile (vnode.dom != null && vnode.dom.parentNode === parent) {\n\t\t\tif (typeof vnode.tag !== \"string\") {\n\t\t\t\tvnode = vnode.instance\n\t\t\t\tif (vnode != null) continue\n\t\t\t} else if (vnode.tag === \"<\") {\n\t\t\t\tfor (var i = 0; i < vnode.instance.length; i++) {\n\t\t\t\t\tfrag.appendChild(vnode.instance[i])\n\t\t\t\t}\n\t\t\t} else if (vnode.tag !== \"[\") {\n\t\t\t\t// Don't recurse for text nodes *or* elements, just fragments\n\t\t\t\tfrag.appendChild(vnode.dom)\n\t\t\t} else if (vnode.children.length === 1) {\n\t\t\t\tvnode = vnode.children[0]\n\t\t\t\tif (vnode != null) continue\n\t\t\t} else {\n\t\t\t\tfor (var i = 0; i < vnode.children.length; i++) {\n\t\t\t\t\tvar child = vnode.children[i]\n\t\t\t\t\tif (child != null) moveChildToFrag(parent, frag, child)\n\t\t\t\t}\n\t\t\t}\n\t\t\tbreak\n\t\t}\n\t}\n\n\tfunction insertNode(parent, dom, nextSibling) {\n\t\tif (nextSibling != null) parent.insertBefore(dom, nextSibling)\n\t\telse parent.appendChild(dom)\n\t}\n\n\tfunction maybeSetContentEditable(vnode) {\n\t\tif (vnode.attrs == null || (\n\t\t\tvnode.attrs.contenteditable == null && // attribute\n\t\t\tvnode.attrs.contentEditable == null // property\n\t\t)) return false\n\t\tvar children = vnode.children\n\t\tif (children != null && children.length === 1 && children[0].tag === \"<\") {\n\t\t\tvar content = children[0].children\n\t\t\tif (vnode.dom.innerHTML !== content) vnode.dom.innerHTML = content\n\t\t}\n\t\telse if (vnode.text != null || children != null && children.length !== 0) throw new Error(\"Child node of a contenteditable must be trusted\")\n\t\treturn true\n\t}\n\n\t//remove\n\tfunction removeNodes(parent, vnodes, start, end) {\n\t\tfor (var i = start; i < end; i++) {\n\t\t\tvar vnode = vnodes[i]\n\t\t\tif (vnode != null) removeNode(parent, vnode)\n\t\t}\n\t}\n\tfunction removeNode(parent, vnode) {\n\t\tvar mask = 0\n\t\tvar original = vnode.state\n\t\tvar stateResult, attrsResult\n\t\tif (typeof vnode.tag !== \"string\" && typeof vnode.state.onbeforeremove === \"function\") {\n\t\t\tvar result = callHook.call(vnode.state.onbeforeremove, vnode)\n\t\t\tif (result != null && typeof result.then === \"function\") {\n\t\t\t\tmask = 1\n\t\t\t\tstateResult = result\n\t\t\t}\n\t\t}\n\t\tif (vnode.attrs && typeof vnode.attrs.onbeforeremove === \"function\") {\n\t\t\tvar result = callHook.call(vnode.attrs.onbeforeremove, vnode)\n\t\t\tif (result != null && typeof result.then === \"function\") {\n\t\t\t\t// eslint-disable-next-line no-bitwise\n\t\t\t\tmask |= 2\n\t\t\t\tattrsResult = result\n\t\t\t}\n\t\t}\n\t\tcheckState(vnode, original)\n\n\t\t// If we can, try to fast-path it and avoid all the overhead of awaiting\n\t\tif (!mask) {\n\t\t\tonremove(vnode)\n\t\t\tremoveChild(parent, vnode)\n\t\t} else {\n\t\t\tif (stateResult != null) {\n\t\t\t\tvar next = function () {\n\t\t\t\t\t// eslint-disable-next-line no-bitwise\n\t\t\t\t\tif (mask & 1) { mask &= 2; if (!mask) reallyRemove() }\n\t\t\t\t}\n\t\t\t\tstateResult.then(next, next)\n\t\t\t}\n\t\t\tif (attrsResult != null) {\n\t\t\t\tvar next = function () {\n\t\t\t\t\t// eslint-disable-next-line no-bitwise\n\t\t\t\t\tif (mask & 2) { mask &= 1; if (!mask) reallyRemove() }\n\t\t\t\t}\n\t\t\t\tattrsResult.then(next, next)\n\t\t\t}\n\t\t}\n\n\t\tfunction reallyRemove() {\n\t\t\tcheckState(vnode, original)\n\t\t\tonremove(vnode)\n\t\t\tremoveChild(parent, vnode)\n\t\t}\n\t}\n\tfunction removeHTML(parent, vnode) {\n\t\tfor (var i = 0; i < vnode.instance.length; i++) {\n\t\t\tparent.removeChild(vnode.instance[i])\n\t\t}\n\t}\n\tfunction removeChild(parent, vnode) {\n\t\t// Dodge the recursion overhead in a few of the most common cases.\n\t\twhile (vnode.dom != null && vnode.dom.parentNode === parent) {\n\t\t\tif (typeof vnode.tag !== \"string\") {\n\t\t\t\tvnode = vnode.instance\n\t\t\t\tif (vnode != null) continue\n\t\t\t} else if (vnode.tag === \"<\") {\n\t\t\t\tremoveHTML(parent, vnode)\n\t\t\t} else {\n\t\t\t\tif (vnode.tag !== \"[\") {\n\t\t\t\t\tparent.removeChild(vnode.dom)\n\t\t\t\t\tif (!Array.isArray(vnode.children)) break\n\t\t\t\t}\n\t\t\t\tif (vnode.children.length === 1) {\n\t\t\t\t\tvnode = vnode.children[0]\n\t\t\t\t\tif (vnode != null) continue\n\t\t\t\t} else {\n\t\t\t\t\tfor (var i = 0; i < vnode.children.length; i++) {\n\t\t\t\t\t\tvar child = vnode.children[i]\n\t\t\t\t\t\tif (child != null) removeChild(parent, child)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tbreak\n\t\t}\n\t}\n\tfunction onremove(vnode) {\n\t\tif (typeof vnode.tag !== \"string\" && typeof vnode.state.onremove === \"function\") callHook.call(vnode.state.onremove, vnode)\n\t\tif (vnode.attrs && typeof vnode.attrs.onremove === \"function\") callHook.call(vnode.attrs.onremove, vnode)\n\t\tif (typeof vnode.tag !== \"string\") {\n\t\t\tif (vnode.instance != null) onremove(vnode.instance)\n\t\t} else {\n\t\t\tvar children = vnode.children\n\t\t\tif (Array.isArray(children)) {\n\t\t\t\tfor (var i = 0; i < children.length; i++) {\n\t\t\t\t\tvar child = children[i]\n\t\t\t\t\tif (child != null) onremove(child)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t//attrs\n\tfunction setAttrs(vnode, attrs, ns) {\n\t\tfor (var key in attrs) {\n\t\t\tsetAttr(vnode, key, null, attrs[key], ns)\n\t\t}\n\t}\n\tfunction setAttr(vnode, key, old, value, ns) {\n\t\tif (key === \"key\" || key === \"is\" || value == null || isLifecycleMethod(key) || (old === value && !isFormAttribute(vnode, key)) && typeof value !== \"object\") return\n\t\tif (key[0] === \"o\" && key[1] === \"n\") return updateEvent(vnode, key, value)\n\t\tif (key.slice(0, 6) === \"xlink:\") vnode.dom.setAttributeNS(\"http://www.w3.org/1999/xlink\", key.slice(6), value)\n\t\telse if (key === \"style\") updateStyle(vnode.dom, old, value)\n\t\telse if (hasPropertyKey(vnode, key, ns)) {\n\t\t\tif (key === \"value\") {\n\t\t\t\t// Only do the coercion if we're actually going to check the value.\n\t\t\t\t/* eslint-disable no-implicit-coercion */\n\t\t\t\t//setting input[value] to same value by typing on focused element moves cursor to end in Chrome\n\t\t\t\tif ((vnode.tag === \"input\" || vnode.tag === \"textarea\") && vnode.dom.value === \"\" + value && vnode.dom === activeElement()) return\n\t\t\t\t//setting select[value] to same value while having select open blinks select dropdown in Chrome\n\t\t\t\tif (vnode.tag === \"select\" && old !== null && vnode.dom.value === \"\" + value) return\n\t\t\t\t//setting option[value] to same value while having select open blinks select dropdown in Chrome\n\t\t\t\tif (vnode.tag === \"option\" && old !== null && vnode.dom.value === \"\" + value) return\n\t\t\t\t/* eslint-enable no-implicit-coercion */\n\t\t\t}\n\t\t\t// If you assign an input type that is not supported by IE 11 with an assignment expression, an error will occur.\n\t\t\tif (vnode.tag === \"input\" && key === \"type\") vnode.dom.setAttribute(key, value)\n\t\t\telse vnode.dom[key] = value\n\t\t} else {\n\t\t\tif (typeof value === \"boolean\") {\n\t\t\t\tif (value) vnode.dom.setAttribute(key, \"\")\n\t\t\t\telse vnode.dom.removeAttribute(key)\n\t\t\t}\n\t\t\telse vnode.dom.setAttribute(key === \"className\" ? \"class\" : key, value)\n\t\t}\n\t}\n\tfunction removeAttr(vnode, key, old, ns) {\n\t\tif (key === \"key\" || key === \"is\" || old == null || isLifecycleMethod(key)) return\n\t\tif (key[0] === \"o\" && key[1] === \"n\" && !isLifecycleMethod(key)) updateEvent(vnode, key, undefined)\n\t\telse if (key === \"style\") updateStyle(vnode.dom, old, null)\n\t\telse if (\n\t\t\thasPropertyKey(vnode, key, ns)\n\t\t\t&& key !== \"className\"\n\t\t\t&& !(key === \"value\" && (\n\t\t\t\tvnode.tag === \"option\"\n\t\t\t\t|| vnode.tag === \"select\" && vnode.dom.selectedIndex === -1 && vnode.dom === activeElement()\n\t\t\t))\n\t\t\t&& !(vnode.tag === \"input\" && key === \"type\")\n\t\t) {\n\t\t\tvnode.dom[key] = null\n\t\t} else {\n\t\t\tvar nsLastIndex = key.indexOf(\":\")\n\t\t\tif (nsLastIndex !== -1) key = key.slice(nsLastIndex + 1)\n\t\t\tif (old !== false) vnode.dom.removeAttribute(key === \"className\" ? \"class\" : key)\n\t\t}\n\t}\n\tfunction setLateSelectAttrs(vnode, attrs) {\n\t\tif (\"value\" in attrs) {\n\t\t\tif(attrs.value === null) {\n\t\t\t\tif (vnode.dom.selectedIndex !== -1) vnode.dom.value = null\n\t\t\t} else {\n\t\t\t\tvar normalized = \"\" + attrs.value // eslint-disable-line no-implicit-coercion\n\t\t\t\tif (vnode.dom.value !== normalized || vnode.dom.selectedIndex === -1) {\n\t\t\t\t\tvnode.dom.value = normalized\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (\"selectedIndex\" in attrs) setAttr(vnode, \"selectedIndex\", null, attrs.selectedIndex, undefined)\n\t}\n\tfunction updateAttrs(vnode, old, attrs, ns) {\n\t\tif (attrs != null) {\n\t\t\tfor (var key in attrs) {\n\t\t\t\tsetAttr(vnode, key, old && old[key], attrs[key], ns)\n\t\t\t}\n\t\t}\n\t\tvar val\n\t\tif (old != null) {\n\t\t\tfor (var key in old) {\n\t\t\t\tif (((val = old[key]) != null) && (attrs == null || attrs[key] == null)) {\n\t\t\t\t\tremoveAttr(vnode, key, val, ns)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tfunction isFormAttribute(vnode, attr) {\n\t\treturn attr === \"value\" || attr === \"checked\" || attr === \"selectedIndex\" || attr === \"selected\" && vnode.dom === activeElement() || vnode.tag === \"option\" && vnode.dom.parentNode === $doc.activeElement\n\t}\n\tfunction isLifecycleMethod(attr) {\n\t\treturn attr === \"oninit\" || attr === \"oncreate\" || attr === \"onupdate\" || attr === \"onremove\" || attr === \"onbeforeremove\" || attr === \"onbeforeupdate\"\n\t}\n\tfunction hasPropertyKey(vnode, key, ns) {\n\t\t// Filter out namespaced keys\n\t\treturn ns === undefined && (\n\t\t\t// If it's a custom element, just keep it.\n\t\t\tvnode.tag.indexOf(\"-\") > -1 || vnode.attrs != null && vnode.attrs.is ||\n\t\t\t// If it's a normal element, let's try to avoid a few browser bugs.\n\t\t\tkey !== \"href\" && key !== \"list\" && key !== \"form\" && key !== \"width\" && key !== \"height\"// && key !== \"type\"\n\t\t\t// Defer the property check until *after* we check everything.\n\t\t) && key in vnode.dom\n\t}\n\n\t//style\n\tvar uppercaseRegex = /[A-Z]/g\n\tfunction toLowerCase(capital) { return \"-\" + capital.toLowerCase() }\n\tfunction normalizeKey(key) {\n\t\treturn key[0] === \"-\" && key[1] === \"-\" ? key :\n\t\t\tkey === \"cssFloat\" ? \"float\" :\n\t\t\t\tkey.replace(uppercaseRegex, toLowerCase)\n\t}\n\tfunction updateStyle(element, old, style) {\n\t\tif (old === style) {\n\t\t\t// Styles are equivalent, do nothing.\n\t\t} else if (style == null) {\n\t\t\t// New style is missing, just clear it.\n\t\t\telement.style.cssText = \"\"\n\t\t} else if (typeof style !== \"object\") {\n\t\t\t// New style is a string, let engine deal with patching.\n\t\t\telement.style.cssText = style\n\t\t} else if (old == null || typeof old !== \"object\") {\n\t\t\t// `old` is missing or a string, `style` is an object.\n\t\t\telement.style.cssText = \"\"\n\t\t\t// Add new style properties\n\t\t\tfor (var key in style) {\n\t\t\t\tvar value = style[key]\n\t\t\t\tif (value != null) element.style.setProperty(normalizeKey(key), String(value))\n\t\t\t}\n\t\t} else {\n\t\t\t// Both old & new are (different) objects.\n\t\t\t// Update style properties that have changed\n\t\t\tfor (var key in style) {\n\t\t\t\tvar value = style[key]\n\t\t\t\tif (value != null && (value = String(value)) !== String(old[key])) {\n\t\t\t\t\telement.style.setProperty(normalizeKey(key), value)\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Remove style properties that no longer exist\n\t\t\tfor (var key in old) {\n\t\t\t\tif (old[key] != null && style[key] == null) {\n\t\t\t\t\telement.style.removeProperty(normalizeKey(key))\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Here's an explanation of how this works:\n\t// 1. The event names are always (by design) prefixed by `on`.\n\t// 2. The EventListener interface accepts either a function or an object\n\t// with a `handleEvent` method.\n\t// 3. The object does not inherit from `Object.prototype`, to avoid\n\t// any potential interference with that (e.g. setters).\n\t// 4. The event name is remapped to the handler before calling it.\n\t// 5. In function-based event handlers, `ev.target === this`. We replicate\n\t// that below.\n\t// 6. In function-based event handlers, `return false` prevents the default\n\t// action and stops event propagation. We replicate that below.\n\tfunction EventDict() {\n\t\t// Save this, so the current redraw is correctly tracked.\n\t\tthis._ = currentRedraw\n\t}\n\tEventDict.prototype = Object.create(null)\n\tEventDict.prototype.handleEvent = function (ev) {\n\t\tvar handler = this[\"on\" + ev.type]\n\t\tvar result\n\t\tif (typeof handler === \"function\") result = handler.call(ev.currentTarget, ev)\n\t\telse if (typeof handler.handleEvent === \"function\") handler.handleEvent(ev)\n\t\tif (this._ && ev.redraw !== false) (0, this._)()\n\t\tif (result === false) {\n\t\t\tev.preventDefault()\n\t\t\tev.stopPropagation()\n\t\t}\n\t}\n\n\t//event\n\tfunction updateEvent(vnode, key, value) {\n\t\tif (vnode.events != null) {\n\t\t\tif (vnode.events[key] === value) return\n\t\t\tif (value != null && (typeof value === \"function\" || typeof value === \"object\")) {\n\t\t\t\tif (vnode.events[key] == null) vnode.dom.addEventListener(key.slice(2), vnode.events, false)\n\t\t\t\tvnode.events[key] = value\n\t\t\t} else {\n\t\t\t\tif (vnode.events[key] != null) vnode.dom.removeEventListener(key.slice(2), vnode.events, false)\n\t\t\t\tvnode.events[key] = undefined\n\t\t\t}\n\t\t} else if (value != null && (typeof value === \"function\" || typeof value === \"object\")) {\n\t\t\tvnode.events = new EventDict()\n\t\t\tvnode.dom.addEventListener(key.slice(2), vnode.events, false)\n\t\t\tvnode.events[key] = value\n\t\t}\n\t}\n\n\t//lifecycle\n\tfunction initLifecycle(source, vnode, hooks) {\n\t\tif (typeof source.oninit === \"function\") callHook.call(source.oninit, vnode)\n\t\tif (typeof source.oncreate === \"function\") hooks.push(callHook.bind(source.oncreate, vnode))\n\t}\n\tfunction updateLifecycle(source, vnode, hooks) {\n\t\tif (typeof source.onupdate === \"function\") hooks.push(callHook.bind(source.onupdate, vnode))\n\t}\n\tfunction shouldNotUpdate(vnode, old) {\n\t\tdo {\n\t\t\tif (vnode.attrs != null && typeof vnode.attrs.onbeforeupdate === \"function\") {\n\t\t\t\tvar force = callHook.call(vnode.attrs.onbeforeupdate, vnode, old)\n\t\t\t\tif (force !== undefined && !force) break\n\t\t\t}\n\t\t\tif (typeof vnode.tag !== \"string\" && typeof vnode.state.onbeforeupdate === \"function\") {\n\t\t\t\tvar force = callHook.call(vnode.state.onbeforeupdate, vnode, old)\n\t\t\t\tif (force !== undefined && !force) break\n\t\t\t}\n\t\t\treturn false\n\t\t} while (false); // eslint-disable-line no-constant-condition\n\t\tvnode.dom = old.dom\n\t\tvnode.domSize = old.domSize\n\t\tvnode.instance = old.instance\n\t\t// One would think having the actual latest attributes would be ideal,\n\t\t// but it doesn't let us properly diff based on our current internal\n\t\t// representation. We have to save not only the old DOM info, but also\n\t\t// the attributes used to create it, as we diff *that*, not against the\n\t\t// DOM directly (with a few exceptions in `setAttr`). And, of course, we\n\t\t// need to save the children and text as they are conceptually not\n\t\t// unlike special \"attributes\" internally.\n\t\tvnode.attrs = old.attrs\n\t\tvnode.children = old.children\n\t\tvnode.text = old.text\n\t\treturn true\n\t}\n\n\treturn function(dom, vnodes, redraw) {\n\t\tif (!dom) throw new TypeError(\"Ensure the DOM element being passed to m.route/m.mount/m.render is not undefined.\")\n\t\tvar hooks = []\n\t\tvar active = activeElement()\n\t\tvar namespace = dom.namespaceURI\n\n\t\t// First time rendering into a node clears it out\n\t\tif (dom.vnodes == null) dom.textContent = \"\"\n\n\t\tvnodes = Vnode.normalizeChildren(Array.isArray(vnodes) ? vnodes : [vnodes])\n\t\tvar prevRedraw = currentRedraw\n\t\ttry {\n\t\t\tcurrentRedraw = typeof redraw === \"function\" ? redraw : undefined\n\t\t\tupdateNodes(dom, dom.vnodes, vnodes, hooks, null, namespace === \"http://www.w3.org/1999/xhtml\" ? undefined : namespace)\n\t\t} finally {\n\t\t\tcurrentRedraw = prevRedraw\n\t\t}\n\t\tdom.vnodes = vnodes\n\t\t// `document.activeElement` can return null: https://html.spec.whatwg.org/multipage/interaction.html#dom-document-activeelement\n\t\tif (active != null && activeElement() !== active && typeof active.focus === \"function\") active.focus()\n\t\tfor (var i = 0; i < hooks.length; i++) hooks[i]()\n\t}\n}\n","\"use strict\"\n\nmodule.exports = require(\"./render/render\")(window)\n","\"use strict\"\n\nvar Vnode = require(\"../render/vnode\")\n\nmodule.exports = function(render, schedule, console) {\n\tvar subscriptions = []\n\tvar rendering = false\n\tvar pending = false\n\n\tfunction sync() {\n\t\tif (rendering) throw new Error(\"Nested m.redraw.sync() call\")\n\t\trendering = true\n\t\tfor (var i = 0; i < subscriptions.length; i += 2) {\n\t\t\ttry { render(subscriptions[i], Vnode(subscriptions[i + 1]), redraw) }\n\t\t\tcatch (e) { console.error(e) }\n\t\t}\n\t\trendering = false\n\t}\n\n\tfunction redraw() {\n\t\tif (!pending) {\n\t\t\tpending = true\n\t\t\tschedule(function() {\n\t\t\t\tpending = false\n\t\t\t\tsync()\n\t\t\t})\n\t\t}\n\t}\n\n\tredraw.sync = sync\n\n\tfunction mount(root, component) {\n\t\tif (component != null && component.view == null && typeof component !== \"function\") {\n\t\t\tthrow new TypeError(\"m.mount(element, component) expects a component, not a vnode\")\n\t\t}\n\n\t\tvar index = subscriptions.indexOf(root)\n\t\tif (index >= 0) {\n\t\t\tsubscriptions.splice(index, 2)\n\t\t\trender(root, [], redraw)\n\t\t}\n\n\t\tif (component != null) {\n\t\t\tsubscriptions.push(root, component)\n\t\t\trender(root, Vnode(component), redraw)\n\t\t}\n\t}\n\n\treturn {mount: mount, redraw: redraw}\n}\n","\"use strict\"\n\nvar render = require(\"./render\")\n\nmodule.exports = require(\"./api/mount-redraw\")(render, requestAnimationFrame, console)\n","\"use strict\"\n\nmodule.exports = function(object) {\n\tif (Object.prototype.toString.call(object) !== \"[object Object]\") return \"\"\n\n\tvar args = []\n\tfor (var key in object) {\n\t\tdestructure(key, object[key])\n\t}\n\n\treturn args.join(\"&\")\n\n\tfunction destructure(key, value) {\n\t\tif (Array.isArray(value)) {\n\t\t\tfor (var i = 0; i < value.length; i++) {\n\t\t\t\tdestructure(key + \"[\" + i + \"]\", value[i])\n\t\t\t}\n\t\t}\n\t\telse if (Object.prototype.toString.call(value) === \"[object Object]\") {\n\t\t\tfor (var i in value) {\n\t\t\t\tdestructure(key + \"[\" + i + \"]\", value[i])\n\t\t\t}\n\t\t}\n\t\telse args.push(encodeURIComponent(key) + (value != null && value !== \"\" ? \"=\" + encodeURIComponent(value) : \"\"))\n\t}\n}\n","\"use strict\"\n\nmodule.exports = Object.assign || function(target, source) {\n\tif(source) Object.keys(source).forEach(function(key) { target[key] = source[key] })\n}\n","\"use strict\"\n\nvar buildQueryString = require(\"../querystring/build\")\nvar assign = require(\"./assign\")\n\n// Returns `path` from `template` + `params`\nmodule.exports = function(template, params) {\n\tif ((/:([^\\/\\.-]+)(\\.{3})?:/).test(template)) {\n\t\tthrow new SyntaxError(\"Template parameter names *must* be separated\")\n\t}\n\tif (params == null) return template\n\tvar queryIndex = template.indexOf(\"?\")\n\tvar hashIndex = template.indexOf(\"#\")\n\tvar queryEnd = hashIndex < 0 ? template.length : hashIndex\n\tvar pathEnd = queryIndex < 0 ? queryEnd : queryIndex\n\tvar path = template.slice(0, pathEnd)\n\tvar query = {}\n\n\tassign(query, params)\n\n\tvar resolved = path.replace(/:([^\\/\\.-]+)(\\.{3})?/g, function(m, key, variadic) {\n\t\tdelete query[key]\n\t\t// If no such parameter exists, don't interpolate it.\n\t\tif (params[key] == null) return m\n\t\t// Escape normal parameters, but not variadic ones.\n\t\treturn variadic ? params[key] : encodeURIComponent(String(params[key]))\n\t})\n\n\t// In case the template substitution adds new query/hash parameters.\n\tvar newQueryIndex = resolved.indexOf(\"?\")\n\tvar newHashIndex = resolved.indexOf(\"#\")\n\tvar newQueryEnd = newHashIndex < 0 ? resolved.length : newHashIndex\n\tvar newPathEnd = newQueryIndex < 0 ? newQueryEnd : newQueryIndex\n\tvar result = resolved.slice(0, newPathEnd)\n\n\tif (queryIndex >= 0) result += template.slice(queryIndex, queryEnd)\n\tif (newQueryIndex >= 0) result += (queryIndex < 0 ? \"?\" : \"&\") + resolved.slice(newQueryIndex, newQueryEnd)\n\tvar querystring = buildQueryString(query)\n\tif (querystring) result += (queryIndex < 0 && newQueryIndex < 0 ? \"?\" : \"&\") + querystring\n\tif (hashIndex >= 0) result += template.slice(hashIndex)\n\tif (newHashIndex >= 0) result += (hashIndex < 0 ? \"\" : \"&\") + resolved.slice(newHashIndex)\n\treturn result\n}\n","\"use strict\"\n\nvar buildPathname = require(\"../pathname/build\")\n\nmodule.exports = function($window, Promise, oncompletion) {\n\tvar callbackCount = 0\n\n\tfunction PromiseProxy(executor) {\n\t\treturn new Promise(executor)\n\t}\n\n\t// In case the global Promise is some userland library's where they rely on\n\t// `foo instanceof this.constructor`, `this.constructor.resolve(value)`, or\n\t// similar. Let's *not* break them.\n\tPromiseProxy.prototype = Promise.prototype\n\tPromiseProxy.__proto__ = Promise // eslint-disable-line no-proto\n\n\tfunction makeRequest(factory) {\n\t\treturn function(url, args) {\n\t\t\tif (typeof url !== \"string\") { args = url; url = url.url }\n\t\t\telse if (args == null) args = {}\n\t\t\tvar promise = new Promise(function(resolve, reject) {\n\t\t\t\tfactory(buildPathname(url, args.params), args, function (data) {\n\t\t\t\t\tif (typeof args.type === \"function\") {\n\t\t\t\t\t\tif (Array.isArray(data)) {\n\t\t\t\t\t\t\tfor (var i = 0; i < data.length; i++) {\n\t\t\t\t\t\t\t\tdata[i] = new args.type(data[i])\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse data = new args.type(data)\n\t\t\t\t\t}\n\t\t\t\t\tresolve(data)\n\t\t\t\t}, reject)\n\t\t\t})\n\t\t\tif (args.background === true) return promise\n\t\t\tvar count = 0\n\t\t\tfunction complete() {\n\t\t\t\tif (--count === 0 && typeof oncompletion === \"function\") oncompletion()\n\t\t\t}\n\n\t\t\treturn wrap(promise)\n\n\t\t\tfunction wrap(promise) {\n\t\t\t\tvar then = promise.then\n\t\t\t\t// Set the constructor, so engines know to not await or resolve\n\t\t\t\t// this as a native promise. At the time of writing, this is\n\t\t\t\t// only necessary for V8, but their behavior is the correct\n\t\t\t\t// behavior per spec. See this spec issue for more details:\n\t\t\t\t// https://github.com/tc39/ecma262/issues/1577. Also, see the\n\t\t\t\t// corresponding comment in `request/tests/test-request.js` for\n\t\t\t\t// a bit more background on the issue at hand.\n\t\t\t\tpromise.constructor = PromiseProxy\n\t\t\t\tpromise.then = function() {\n\t\t\t\t\tcount++\n\t\t\t\t\tvar next = then.apply(promise, arguments)\n\t\t\t\t\tnext.then(complete, function(e) {\n\t\t\t\t\t\tcomplete()\n\t\t\t\t\t\tif (count === 0) throw e\n\t\t\t\t\t})\n\t\t\t\t\treturn wrap(next)\n\t\t\t\t}\n\t\t\t\treturn promise\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction hasHeader(args, name) {\n\t\tfor (var key in args.headers) {\n\t\t\tif ({}.hasOwnProperty.call(args.headers, key) && name.test(key)) return true\n\t\t}\n\t\treturn false\n\t}\n\n\treturn {\n\t\trequest: makeRequest(function(url, args, resolve, reject) {\n\t\t\tvar method = args.method != null ? args.method.toUpperCase() : \"GET\"\n\t\t\tvar body = args.body\n\t\t\tvar assumeJSON = (args.serialize == null || args.serialize === JSON.serialize) && !(body instanceof $window.FormData)\n\t\t\tvar responseType = args.responseType || (typeof args.extract === \"function\" ? \"\" : \"json\")\n\n\t\t\tvar xhr = new $window.XMLHttpRequest(), aborted = false\n\t\t\tvar original = xhr, replacedAbort\n\t\t\tvar abort = xhr.abort\n\n\t\t\txhr.abort = function() {\n\t\t\t\taborted = true\n\t\t\t\tabort.call(this)\n\t\t\t}\n\n\t\t\txhr.open(method, url, args.async !== false, typeof args.user === \"string\" ? args.user : undefined, typeof args.password === \"string\" ? args.password : undefined)\n\n\t\t\tif (assumeJSON && body != null && !hasHeader(args, /^content-type$/i)) {\n\t\t\t\txhr.setRequestHeader(\"Content-Type\", \"application/json; charset=utf-8\")\n\t\t\t}\n\t\t\tif (typeof args.deserialize !== \"function\" && !hasHeader(args, /^accept$/i)) {\n\t\t\t\txhr.setRequestHeader(\"Accept\", \"application/json, text/*\")\n\t\t\t}\n\t\t\tif (args.withCredentials) xhr.withCredentials = args.withCredentials\n\t\t\tif (args.timeout) xhr.timeout = args.timeout\n\t\t\txhr.responseType = responseType\n\n\t\t\tfor (var key in args.headers) {\n\t\t\t\tif ({}.hasOwnProperty.call(args.headers, key)) {\n\t\t\t\t\txhr.setRequestHeader(key, args.headers[key])\n\t\t\t\t}\n\t\t\t}\n\n\t\t\txhr.onreadystatechange = function(ev) {\n\t\t\t\t// Don't throw errors on xhr.abort().\n\t\t\t\tif (aborted) return\n\n\t\t\t\tif (ev.target.readyState === 4) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tvar success = (ev.target.status >= 200 && ev.target.status < 300) || ev.target.status === 304 || (/^file:\\/\\//i).test(url)\n\t\t\t\t\t\t// When the response type isn't \"\" or \"text\",\n\t\t\t\t\t\t// `xhr.responseText` is the wrong thing to use.\n\t\t\t\t\t\t// Browsers do the right thing and throw here, and we\n\t\t\t\t\t\t// should honor that and do the right thing by\n\t\t\t\t\t\t// preferring `xhr.response` where possible/practical.\n\t\t\t\t\t\tvar response = ev.target.response, message\n\n\t\t\t\t\t\tif (responseType === \"json\") {\n\t\t\t\t\t\t\t// For IE and Edge, which don't implement\n\t\t\t\t\t\t\t// `responseType: \"json\"`.\n\t\t\t\t\t\t\tif (!ev.target.responseType && typeof args.extract !== \"function\") response = JSON.parse(ev.target.responseText)\n\t\t\t\t\t\t} else if (!responseType || responseType === \"text\") {\n\t\t\t\t\t\t\t// Only use this default if it's text. If a parsed\n\t\t\t\t\t\t\t// document is needed on old IE and friends (all\n\t\t\t\t\t\t\t// unsupported), the user should use a custom\n\t\t\t\t\t\t\t// `config` instead. They're already using this at\n\t\t\t\t\t\t\t// their own risk.\n\t\t\t\t\t\t\tif (response == null) response = ev.target.responseText\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (typeof args.extract === \"function\") {\n\t\t\t\t\t\t\tresponse = args.extract(ev.target, args)\n\t\t\t\t\t\t\tsuccess = true\n\t\t\t\t\t\t} else if (typeof args.deserialize === \"function\") {\n\t\t\t\t\t\t\tresponse = args.deserialize(response)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (success) resolve(response)\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\ttry { message = ev.target.responseText }\n\t\t\t\t\t\t\tcatch (e) { message = response }\n\t\t\t\t\t\t\tvar error = new Error(message)\n\t\t\t\t\t\t\terror.code = ev.target.status\n\t\t\t\t\t\t\terror.response = response\n\t\t\t\t\t\t\treject(error)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcatch (e) {\n\t\t\t\t\t\treject(e)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (typeof args.config === \"function\") {\n\t\t\t\txhr = args.config(xhr, args, url) || xhr\n\n\t\t\t\t// Propagate the `abort` to any replacement XHR as well.\n\t\t\t\tif (xhr !== original) {\n\t\t\t\t\treplacedAbort = xhr.abort\n\t\t\t\t\txhr.abort = function() {\n\t\t\t\t\t\taborted = true\n\t\t\t\t\t\treplacedAbort.call(this)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (body == null) xhr.send()\n\t\t\telse if (typeof args.serialize === \"function\") xhr.send(args.serialize(body))\n\t\t\telse if (body instanceof $window.FormData) xhr.send(body)\n\t\t\telse xhr.send(JSON.stringify(body))\n\t\t}),\n\t\tjsonp: makeRequest(function(url, args, resolve, reject) {\n\t\t\tvar callbackName = args.callbackName || \"_mithril_\" + Math.round(Math.random() * 1e16) + \"_\" + callbackCount++\n\t\t\tvar script = $window.document.createElement(\"script\")\n\t\t\t$window[callbackName] = function(data) {\n\t\t\t\tdelete $window[callbackName]\n\t\t\t\tscript.parentNode.removeChild(script)\n\t\t\t\tresolve(data)\n\t\t\t}\n\t\t\tscript.onerror = function() {\n\t\t\t\tdelete $window[callbackName]\n\t\t\t\tscript.parentNode.removeChild(script)\n\t\t\t\treject(new Error(\"JSONP request failed\"))\n\t\t\t}\n\t\t\tscript.src = url + (url.indexOf(\"?\") < 0 ? \"?\" : \"&\") +\n\t\t\t\tencodeURIComponent(args.callbackKey || \"callback\") + \"=\" +\n\t\t\t\tencodeURIComponent(callbackName)\n\t\t\t$window.document.documentElement.appendChild(script)\n\t\t}),\n\t}\n}\n","\"use strict\"\n\nvar PromisePolyfill = require(\"./promise/promise\")\nvar mountRedraw = require(\"./mount-redraw\")\n\nmodule.exports = require(\"./request/request\")(window, PromisePolyfill, mountRedraw.redraw)\n","\"use strict\"\n\nmodule.exports = function(string) {\n\tif (string === \"\" || string == null) return {}\n\tif (string.charAt(0) === \"?\") string = string.slice(1)\n\n\tvar entries = string.split(\"&\"), counters = {}, data = {}\n\tfor (var i = 0; i < entries.length; i++) {\n\t\tvar entry = entries[i].split(\"=\")\n\t\tvar key = decodeURIComponent(entry[0])\n\t\tvar value = entry.length === 2 ? decodeURIComponent(entry[1]) : \"\"\n\n\t\tif (value === \"true\") value = true\n\t\telse if (value === \"false\") value = false\n\n\t\tvar levels = key.split(/\\]\\[?|\\[/)\n\t\tvar cursor = data\n\t\tif (key.indexOf(\"[\") > -1) levels.pop()\n\t\tfor (var j = 0; j < levels.length; j++) {\n\t\t\tvar level = levels[j], nextLevel = levels[j + 1]\n\t\t\tvar isNumber = nextLevel == \"\" || !isNaN(parseInt(nextLevel, 10))\n\t\t\tif (level === \"\") {\n\t\t\t\tvar key = levels.slice(0, j).join()\n\t\t\t\tif (counters[key] == null) {\n\t\t\t\t\tcounters[key] = Array.isArray(cursor) ? cursor.length : 0\n\t\t\t\t}\n\t\t\t\tlevel = counters[key]++\n\t\t\t}\n\t\t\t// Disallow direct prototype pollution\n\t\t\telse if (level === \"__proto__\") break\n\t\t\tif (j === levels.length - 1) cursor[level] = value\n\t\t\telse {\n\t\t\t\t// Read own properties exclusively to disallow indirect\n\t\t\t\t// prototype pollution\n\t\t\t\tvar desc = Object.getOwnPropertyDescriptor(cursor, level)\n\t\t\t\tif (desc != null) desc = desc.value\n\t\t\t\tif (desc == null) cursor[level] = desc = isNumber ? [] : {}\n\t\t\t\tcursor = desc\n\t\t\t}\n\t\t}\n\t}\n\treturn data\n}\n","\"use strict\"\n\nvar parseQueryString = require(\"../querystring/parse\")\n\n// Returns `{path, params}` from `url`\nmodule.exports = function(url) {\n\tvar queryIndex = url.indexOf(\"?\")\n\tvar hashIndex = url.indexOf(\"#\")\n\tvar queryEnd = hashIndex < 0 ? url.length : hashIndex\n\tvar pathEnd = queryIndex < 0 ? queryEnd : queryIndex\n\tvar path = url.slice(0, pathEnd).replace(/\\/{2,}/g, \"/\")\n\n\tif (!path) path = \"/\"\n\telse {\n\t\tif (path[0] !== \"/\") path = \"/\" + path\n\t\tif (path.length > 1 && path[path.length - 1] === \"/\") path = path.slice(0, -1)\n\t}\n\treturn {\n\t\tpath: path,\n\t\tparams: queryIndex < 0\n\t\t\t? {}\n\t\t\t: parseQueryString(url.slice(queryIndex + 1, queryEnd)),\n\t}\n}\n","\"use strict\"\n\nvar parsePathname = require(\"./parse\")\n\n// Compiles a template into a function that takes a resolved path (without query\n// strings) and returns an object containing the template parameters with their\n// parsed values. This expects the input of the compiled template to be the\n// output of `parsePathname`. Note that it does *not* remove query parameters\n// specified in the template.\nmodule.exports = function(template) {\n\tvar templateData = parsePathname(template)\n\tvar templateKeys = Object.keys(templateData.params)\n\tvar keys = []\n\tvar regexp = new RegExp(\"^\" + templateData.path.replace(\n\t\t// I escape literal text so people can use things like `:file.:ext` or\n\t\t// `:lang-:locale` in routes. This is all merged into one pass so I\n\t\t// don't also accidentally escape `-` and make it harder to detect it to\n\t\t// ban it from template parameters.\n\t\t/:([^\\/.-]+)(\\.{3}|\\.(?!\\.)|-)?|[\\\\^$*+.()|\\[\\]{}]/g,\n\t\tfunction(m, key, extra) {\n\t\t\tif (key == null) return \"\\\\\" + m\n\t\t\tkeys.push({k: key, r: extra === \"...\"})\n\t\t\tif (extra === \"...\") return \"(.*)\"\n\t\t\tif (extra === \".\") return \"([^/]+)\\\\.\"\n\t\t\treturn \"([^/]+)\" + (extra || \"\")\n\t\t}\n\t) + \"$\")\n\treturn function(data) {\n\t\t// First, check the params. Usually, there isn't any, and it's just\n\t\t// checking a static set.\n\t\tfor (var i = 0; i < templateKeys.length; i++) {\n\t\t\tif (templateData.params[templateKeys[i]] !== data.params[templateKeys[i]]) return false\n\t\t}\n\t\t// If no interpolations exist, let's skip all the ceremony\n\t\tif (!keys.length) return regexp.test(data.path)\n\t\tvar values = regexp.exec(data.path)\n\t\tif (values == null) return false\n\t\tfor (var i = 0; i < keys.length; i++) {\n\t\t\tdata.params[keys[i].k] = keys[i].r ? values[i + 1] : decodeURIComponent(values[i + 1])\n\t\t}\n\t\treturn true\n\t}\n}\n","\"use strict\"\n\nvar Vnode = require(\"../render/vnode\")\nvar m = require(\"../render/hyperscript\")\nvar Promise = require(\"../promise/promise\")\n\nvar buildPathname = require(\"../pathname/build\")\nvar parsePathname = require(\"../pathname/parse\")\nvar compileTemplate = require(\"../pathname/compileTemplate\")\nvar assign = require(\"../pathname/assign\")\n\nvar sentinel = {}\n\nmodule.exports = function($window, mountRedraw) {\n\tvar fireAsync\n\n\tfunction setPath(path, data, options) {\n\t\tpath = buildPathname(path, data)\n\t\tif (fireAsync != null) {\n\t\t\tfireAsync()\n\t\t\tvar state = options ? options.state : null\n\t\t\tvar title = options ? options.title : null\n\t\t\tif (options && options.replace) $window.history.replaceState(state, title, route.prefix + path)\n\t\t\telse $window.history.pushState(state, title, route.prefix + path)\n\t\t}\n\t\telse {\n\t\t\t$window.location.href = route.prefix + path\n\t\t}\n\t}\n\n\tvar currentResolver = sentinel, component, attrs, currentPath, lastUpdate\n\n\tvar SKIP = route.SKIP = {}\n\n\tfunction route(root, defaultRoute, routes) {\n\t\tif (root == null) throw new Error(\"Ensure the DOM element that was passed to `m.route` is not undefined\")\n\t\t// 0 = start\n\t\t// 1 = init\n\t\t// 2 = ready\n\t\tvar state = 0\n\n\t\tvar compiled = Object.keys(routes).map(function(route) {\n\t\t\tif (route[0] !== \"/\") throw new SyntaxError(\"Routes must start with a `/`\")\n\t\t\tif ((/:([^\\/\\.-]+)(\\.{3})?:/).test(route)) {\n\t\t\t\tthrow new SyntaxError(\"Route parameter names must be separated with either `/`, `.`, or `-`\")\n\t\t\t}\n\t\t\treturn {\n\t\t\t\troute: route,\n\t\t\t\tcomponent: routes[route],\n\t\t\t\tcheck: compileTemplate(route),\n\t\t\t}\n\t\t})\n\t\tvar callAsync = typeof setImmediate === \"function\" ? setImmediate : setTimeout\n\t\tvar p = Promise.resolve()\n\t\tvar scheduled = false\n\t\tvar onremove\n\n\t\tfireAsync = null\n\n\t\tif (defaultRoute != null) {\n\t\t\tvar defaultData = parsePathname(defaultRoute)\n\n\t\t\tif (!compiled.some(function (i) { return i.check(defaultData) })) {\n\t\t\t\tthrow new ReferenceError(\"Default route doesn't match any known routes\")\n\t\t\t}\n\t\t}\n\n\t\tfunction resolveRoute() {\n\t\t\tscheduled = false\n\t\t\t// Consider the pathname holistically. The prefix might even be invalid,\n\t\t\t// but that's not our problem.\n\t\t\tvar prefix = $window.location.hash\n\t\t\tif (route.prefix[0] !== \"#\") {\n\t\t\t\tprefix = $window.location.search + prefix\n\t\t\t\tif (route.prefix[0] !== \"?\") {\n\t\t\t\t\tprefix = $window.location.pathname + prefix\n\t\t\t\t\tif (prefix[0] !== \"/\") prefix = \"/\" + prefix\n\t\t\t\t}\n\t\t\t}\n\t\t\t// This seemingly useless `.concat()` speeds up the tests quite a bit,\n\t\t\t// since the representation is consistently a relatively poorly\n\t\t\t// optimized cons string.\n\t\t\tvar path = prefix.concat()\n\t\t\t\t.replace(/(?:%[a-f89][a-f0-9])+/gim, decodeURIComponent)\n\t\t\t\t.slice(route.prefix.length)\n\t\t\tvar data = parsePathname(path)\n\n\t\t\tassign(data.params, $window.history.state)\n\n\t\t\tfunction fail() {\n\t\t\t\tif (path === defaultRoute) throw new Error(\"Could not resolve default route \" + defaultRoute)\n\t\t\t\tsetPath(defaultRoute, null, {replace: true})\n\t\t\t}\n\n\t\t\tloop(0)\n\t\t\tfunction loop(i) {\n\t\t\t\t// 0 = init\n\t\t\t\t// 1 = scheduled\n\t\t\t\t// 2 = done\n\t\t\t\tfor (; i < compiled.length; i++) {\n\t\t\t\t\tif (compiled[i].check(data)) {\n\t\t\t\t\t\tvar payload = compiled[i].component\n\t\t\t\t\t\tvar matchedRoute = compiled[i].route\n\t\t\t\t\t\tvar localComp = payload\n\t\t\t\t\t\tvar update = lastUpdate = function(comp) {\n\t\t\t\t\t\t\tif (update !== lastUpdate) return\n\t\t\t\t\t\t\tif (comp === SKIP) return loop(i + 1)\n\t\t\t\t\t\t\tcomponent = comp != null && (typeof comp.view === \"function\" || typeof comp === \"function\")? comp : \"div\"\n\t\t\t\t\t\t\tattrs = data.params, currentPath = path, lastUpdate = null\n\t\t\t\t\t\t\tcurrentResolver = payload.render ? payload : null\n\t\t\t\t\t\t\tif (state === 2) mountRedraw.redraw()\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tstate = 2\n\t\t\t\t\t\t\t\tmountRedraw.redraw.sync()\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// There's no understating how much I *wish* I could\n\t\t\t\t\t\t// use `async`/`await` here...\n\t\t\t\t\t\tif (payload.view || typeof payload === \"function\") {\n\t\t\t\t\t\t\tpayload = {}\n\t\t\t\t\t\t\tupdate(localComp)\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse if (payload.onmatch) {\n\t\t\t\t\t\t\tp.then(function () {\n\t\t\t\t\t\t\t\treturn payload.onmatch(data.params, path, matchedRoute)\n\t\t\t\t\t\t\t}).then(update, fail)\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse update(\"div\")\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfail()\n\t\t\t}\n\t\t}\n\n\t\t// Set it unconditionally so `m.route.set` and `m.route.Link` both work,\n\t\t// even if neither `pushState` nor `hashchange` are supported. It's\n\t\t// cleared if `hashchange` is used, since that makes it automatically\n\t\t// async.\n\t\tfireAsync = function() {\n\t\t\tif (!scheduled) {\n\t\t\t\tscheduled = true\n\t\t\t\tcallAsync(resolveRoute)\n\t\t\t}\n\t\t}\n\n\t\tif (typeof $window.history.pushState === \"function\") {\n\t\t\tonremove = function() {\n\t\t\t\t$window.removeEventListener(\"popstate\", fireAsync, false)\n\t\t\t}\n\t\t\t$window.addEventListener(\"popstate\", fireAsync, false)\n\t\t} else if (route.prefix[0] === \"#\") {\n\t\t\tfireAsync = null\n\t\t\tonremove = function() {\n\t\t\t\t$window.removeEventListener(\"hashchange\", resolveRoute, false)\n\t\t\t}\n\t\t\t$window.addEventListener(\"hashchange\", resolveRoute, false)\n\t\t}\n\n\t\treturn mountRedraw.mount(root, {\n\t\t\tonbeforeupdate: function() {\n\t\t\t\tstate = state ? 2 : 1\n\t\t\t\treturn !(!state || sentinel === currentResolver)\n\t\t\t},\n\t\t\toncreate: resolveRoute,\n\t\t\tonremove: onremove,\n\t\t\tview: function() {\n\t\t\t\tif (!state || sentinel === currentResolver) return\n\t\t\t\t// Wrap in a fragment to preserve existing key semantics\n\t\t\t\tvar vnode = [Vnode(component, attrs.key, attrs)]\n\t\t\t\tif (currentResolver) vnode = currentResolver.render(vnode[0])\n\t\t\t\treturn vnode\n\t\t\t},\n\t\t})\n\t}\n\troute.set = function(path, data, options) {\n\t\tif (lastUpdate != null) {\n\t\t\toptions = options || {}\n\t\t\toptions.replace = true\n\t\t}\n\t\tlastUpdate = null\n\t\tsetPath(path, data, options)\n\t}\n\troute.get = function() {return currentPath}\n\troute.prefix = \"#!\"\n\troute.Link = {\n\t\tview: function(vnode) {\n\t\t\tvar options = vnode.attrs.options\n\t\t\t// Remove these so they don't get overwritten\n\t\t\tvar attrs = {}, onclick, href\n\t\t\tassign(attrs, vnode.attrs)\n\t\t\t// The first two are internal, but the rest are magic attributes\n\t\t\t// that need censored to not screw up rendering.\n\t\t\tattrs.selector = attrs.options = attrs.key = attrs.oninit =\n\t\t\tattrs.oncreate = attrs.onbeforeupdate = attrs.onupdate =\n\t\t\tattrs.onbeforeremove = attrs.onremove = null\n\n\t\t\t// Do this now so we can get the most current `href` and `disabled`.\n\t\t\t// Those attributes may also be specified in the selector, and we\n\t\t\t// should honor that.\n\t\t\tvar child = m(vnode.attrs.selector || \"a\", attrs, vnode.children)\n\n\t\t\t// Let's provide a *right* way to disable a route link, rather than\n\t\t\t// letting people screw up accessibility on accident.\n\t\t\t//\n\t\t\t// The attribute is coerced so users don't get surprised over\n\t\t\t// `disabled: 0` resulting in a button that's somehow routable\n\t\t\t// despite being visibly disabled.\n\t\t\tif (child.attrs.disabled = Boolean(child.attrs.disabled)) {\n\t\t\t\tchild.attrs.href = null\n\t\t\t\tchild.attrs[\"aria-disabled\"] = \"true\"\n\t\t\t\t// If you *really* do want to do this on a disabled link, use\n\t\t\t\t// an `oncreate` hook to add it.\n\t\t\t\tchild.attrs.onclick = null\n\t\t\t} else {\n\t\t\t\tonclick = child.attrs.onclick\n\t\t\t\thref = child.attrs.href\n\t\t\t\tchild.attrs.href = route.prefix + href\n\t\t\t\tchild.attrs.onclick = function(e) {\n\t\t\t\t\tvar result\n\t\t\t\t\tif (typeof onclick === \"function\") {\n\t\t\t\t\t\tresult = onclick.call(e.currentTarget, e)\n\t\t\t\t\t} else if (onclick == null || typeof onclick !== \"object\") {\n\t\t\t\t\t\t// do nothing\n\t\t\t\t\t} else if (typeof onclick.handleEvent === \"function\") {\n\t\t\t\t\t\tonclick.handleEvent(e)\n\t\t\t\t\t}\n\n\t\t\t\t\t// Adapted from React Router's implementation:\n\t\t\t\t\t// https://github.com/ReactTraining/react-router/blob/520a0acd48ae1b066eb0b07d6d4d1790a1d02482/packages/react-router-dom/modules/Link.js\n\t\t\t\t\t//\n\t\t\t\t\t// Try to be flexible and intuitive in how we handle links.\n\t\t\t\t\t// Fun fact: links aren't as obvious to get right as you\n\t\t\t\t\t// would expect. There's a lot more valid ways to click a\n\t\t\t\t\t// link than this, and one might want to not simply click a\n\t\t\t\t\t// link, but right click or command-click it to copy the\n\t\t\t\t\t// link target, etc. Nope, this isn't just for blind people.\n\t\t\t\t\tif (\n\t\t\t\t\t\t// Skip if `onclick` prevented default\n\t\t\t\t\t\tresult !== false && !e.defaultPrevented &&\n\t\t\t\t\t\t// Ignore everything but left clicks\n\t\t\t\t\t\t(e.button === 0 || e.which === 0 || e.which === 1) &&\n\t\t\t\t\t\t// Let the browser handle `target=_blank`, etc.\n\t\t\t\t\t\t(!e.currentTarget.target || e.currentTarget.target === \"_self\") &&\n\t\t\t\t\t\t// No modifier keys\n\t\t\t\t\t\t!e.ctrlKey && !e.metaKey && !e.shiftKey && !e.altKey\n\t\t\t\t\t) {\n\t\t\t\t\t\te.preventDefault()\n\t\t\t\t\t\te.redraw = false\n\t\t\t\t\t\troute.set(href, null, options)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn child\n\t\t},\n\t}\n\troute.param = function(key) {\n\t\treturn attrs && key != null ? attrs[key] : attrs\n\t}\n\n\treturn route\n}\n","\"use strict\"\n\nvar mountRedraw = require(\"./mount-redraw\")\n\nmodule.exports = require(\"./api/router\")(window, mountRedraw)\n","\"use strict\"\n\nvar hyperscript = require(\"./hyperscript\")\nvar request = require(\"./request\")\nvar mountRedraw = require(\"./mount-redraw\")\n\nvar m = function m() { return hyperscript.apply(this, arguments) }\nm.m = hyperscript\nm.trust = hyperscript.trust\nm.fragment = hyperscript.fragment\nm.mount = mountRedraw.mount\nm.route = require(\"./route\")\nm.render = require(\"./render\")\nm.redraw = mountRedraw.redraw\nm.request = request.request\nm.jsonp = request.jsonp\nm.parseQueryString = require(\"./querystring/parse\")\nm.buildQueryString = require(\"./querystring/build\")\nm.parsePathname = require(\"./pathname/parse\")\nm.buildPathname = require(\"./pathname/build\")\nm.vnode = require(\"./render/vnode\")\nm.PromisePolyfill = require(\"./promise/polyfill\")\n\nmodule.exports = m\n","// Copyright (C) 2018 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as m from 'mithril';\nimport {assertExists, assertTrue} from '../base/logging';\nimport {PageAttrs} from './pages';\n\nexport const ROUTE_PREFIX = '#!';\nconst DEFAULT_ROUTE = '/';\n\n/*\n * A broken down representation of a route.\n * For instance: #!/record/gpu?trace_id=a0b1c2\n * becomes: {page: '/record', subpage: '/gpu', args: {trace_id: 'a0b1c2'}}\n */\nexport interface Route {\n page: string;\n subpage: string;\n args: RouteArgs;\n}\n\n/*\n * The set of args that can be set on the route via #!/page?a=1&b2.\n * Route args are orthogonal to pages (i.e. should NOT make sense only in a\n * only within a specific page, use /page/subpages for that).\n * Args are !== the querystring (location.search) which is sent to the\n * server. The route args are NOT sent to the HTTP server.\n * Given this URL:\n * http://host/?foo=1&bar=2#!/page/subpage?trace_id=a0b1c2&baz=3.\n *\n * location.search = 'foo=1&bar=2'.\n * This is seen by the HTTP server. We really don't use querystrings as the\n * perfetto UI is client only.\n *\n * location.hash = '#!/page/subpage?trace_id=a0b1c2'.\n * This is client-only. All the routing logic in the Perfetto UI uses only\n * this.\n */\nexport interface RouteArgs {\n // The trace_id is special and is persisted across navigations.\n trace_id?: string;\n\n // These are transient and are really set only on startup.\n openFromAndroidBugTool?: string;\n s?: string; // For permalinks.\n p?: string; // DEPRECATED: for #!/record?p=cpu subpages (b/191255021).\n url?: string; // For fetching traces from Cloud Storage.\n}\n\nexport interface RoutesMap {\n [key: string]: m.Component<PageAttrs>;\n}\n\n/*\n * This router does two things:\n * 1) Maps fragment paths (#!/page/subpage) to Mithril components.\n * The route map is passed to the ctor and is later used when calling the\n * resolve() method.\n *\n * 2) Handles the (optional) args, e.g. #!/page?arg=1&arg2=2.\n * Route args are carry information that is orthogonal to the page (e.g. the\n * trace id).\n * trace_id has some special treatment: once a URL has a trace_id argument,\n * it gets automatically appended to further navigations that don't have one.\n * For instance if the current url is #!/viewer?trace_id=1234 and a later\n * action (either user-initiated or code-initited) navigates to #!/info, the\n * rotuer will automatically replace the history entry with\n * #!/info?trace_id=1234.\n * This is to keep propagating the trace id across page changes, for handling\n * tab discards (b/175041881).\n *\n * This class does NOT deal with the \"load a trace when the url contains ?url=\n * or ?trace_id=\". That logic lives in trace_url_handler.ts, which is triggered\n * by Router.onRouteChanged().\n */\nexport class Router {\n private readonly recentChanges: number[] = [];\n private routes: RoutesMap;\n\n // frontend/index.ts calls maybeOpenTraceFromRoute() + redraw here.\n // This event is decoupled for testing and to avoid circular deps.\n onRouteChanged: (route: Route) => (void) = () => {};\n\n constructor(routes: RoutesMap) {\n assertExists(routes[DEFAULT_ROUTE]);\n this.routes = routes;\n window.onhashchange = (e: HashChangeEvent) => this.onHashChange(e);\n }\n\n private onHashChange(e: HashChangeEvent) {\n this.crashIfLivelock();\n\n const oldRoute = Router.parseUrl(e.oldURL);\n const newRoute = Router.parseUrl(e.newURL);\n\n if (newRoute.args.trace_id === undefined && oldRoute.args.trace_id) {\n // Propagate the trace_id across navigations. When a trace is loaded, the\n // URL becomes #!/viewer?trace_id=a0b1c2. The ?trace_id arg allows\n // reopening the trace from cache in the case of a reload or discard.\n // When using the UI we can hit \"bare\" links (e.g. just '#!/info') which\n // don't have the trace_uuid:\n // - When clicking on an <a> element from the sidebar.\n // - When the code calls Router.navigate().\n // - When the user pastes a URL from docs page.\n // In all these cases we want to keep propagating the trace_id argument.\n // We do so by re-setting the trace_id argument and doing a\n // location.replace which overwrites the history entry (note\n // location.replace is NOT just a String.replace operation).\n newRoute.args.trace_id = oldRoute.args.trace_id;\n }\n\n const args = m.buildQueryString(newRoute.args);\n let normalizedFragment = `#!${newRoute.page}${newRoute.subpage}`;\n normalizedFragment += args.length > 0 ? '?' + args : '';\n if (!e.newURL.endsWith(normalizedFragment)) {\n location.replace(normalizedFragment);\n return;\n }\n\n this.onRouteChanged(newRoute);\n }\n\n /**\n * Returns the component for the current route in the URL.\n * If no route matches the URL, returns a component corresponding to\n * |this.defaultRoute|.\n */\n resolve(): m.Vnode<PageAttrs> {\n const route = Router.parseFragment(location.hash);\n let component = this.routes[route.page];\n if (component === undefined) {\n component = assertExists(this.routes[DEFAULT_ROUTE]);\n }\n return m(component, {subpage: route.subpage} as PageAttrs);\n }\n\n static navigate(newHash: string) {\n assertTrue(newHash.startsWith(ROUTE_PREFIX));\n window.location.hash = newHash;\n }\n\n /*\n * Breaks down a fragment into a Route object.\n * Sample input:\n * '#!/record/gpu?trace_id=629329-18bba4'\n * Sample output:\n * {page: '/record', subpage: '/gpu', args: {trace_id: '629329-18bba4'}}\n */\n static parseFragment(hash: string): Route {\n const prefixLength = ROUTE_PREFIX.length;\n let route = '';\n if (hash.startsWith(ROUTE_PREFIX)) {\n route = hash.substr(prefixLength).split('?')[0];\n }\n\n let page = route;\n let subpage = '';\n const splittingPoint = route.indexOf('/', 1);\n if (splittingPoint > 0) {\n page = route.substr(0, splittingPoint);\n subpage = route.substr(splittingPoint);\n }\n\n const argsStart = hash.indexOf('?');\n const argsStr = argsStart < 0 ? '' : hash.substr(argsStart + 1);\n const args = argsStr ? m.parseQueryString(hash.substr(argsStart)) : {};\n\n return {page, subpage, args};\n }\n\n /*\n * Like parseFragment() but takes a full URL.\n */\n static parseUrl(url: string): Route {\n const hashPos = url.indexOf('#');\n const fragment = hashPos < 0 ? '' : url.substr(hashPos);\n return Router.parseFragment(fragment);\n }\n\n /*\n * Throws if EVENT_LIMIT onhashchange events occur within WINDOW_MS.\n */\n private crashIfLivelock() {\n const WINDOW_MS = 1000;\n const EVENT_LIMIT = 20;\n const now = Date.now();\n while (this.recentChanges.length > 0 &&\n now - this.recentChanges[0] > WINDOW_MS) {\n this.recentChanges.shift();\n }\n this.recentChanges.push(now);\n if (this.recentChanges.length > EVENT_LIMIT) {\n throw new Error('History rewriting livelock');\n }\n }\n}\n","// Copyright (C) 2020 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {getCurrentChannel} from '../common/channels';\nimport {globals} from '../frontend/globals';\nimport * as version from '../gen/perfetto_version';\n\nimport {Router} from './router';\n\ntype TraceCategories = 'Trace Actions'|'Record Trace'|'User Actions';\nconst ANALYTICS_ID = 'UA-137828855-1';\nconst PAGE_TITLE = 'no-page-title';\n\nexport function initAnalytics() {\n // Only initialize logging on the official site and on localhost (to catch\n // analytics bugs when testing locally).\n // Skip analytics is the fragment has \"testing=1\", this is used by UI tests.\n if ((window.location.origin.startsWith('http://localhost:') ||\n window.location.origin.endsWith('.perfetto.dev')) &&\n !globals.testing) {\n return new AnalyticsImpl();\n }\n return new NullAnalytics();\n}\n\nconst gtagGlobals = window as {} as {\n // tslint:disable-next-line no-any\n dataLayer: any[];\n gtag: (command: string, event: string|Date, args?: {}) => void;\n};\n\nexport interface Analytics {\n initialize(): void;\n updatePath(_: string): void;\n logEvent(_x: TraceCategories|null, _y: string): void;\n logError(_x: string, _y?: boolean): void;\n isEnabled(): boolean;\n}\n\nexport class NullAnalytics implements Analytics {\n initialize() {}\n updatePath(_: string) {}\n logEvent(_x: TraceCategories|null, _y: string) {}\n logError(_x: string) {}\n isEnabled(): boolean {\n return false;\n }\n}\n\nclass AnalyticsImpl implements Analytics {\n private initialized_ = false;\n\n constructor() {\n // The code below is taken from the official Google Analytics docs [1] and\n // adapted to TypeScript. We have it here rather than as an inline script\n // in index.html (as suggested by GA's docs) because inline scripts don't\n // play nicely with the CSP policy, at least in Firefox (Firefox doesn't\n // support all CSP 3 features we use).\n // [1] https://developers.google.com/analytics/devguides/collection/gtagjs .\n gtagGlobals.dataLayer = gtagGlobals.dataLayer || [];\n\n // tslint:disable-next-line no-any\n function gtagFunction(..._: any[]) {\n // This needs to be a function and not a lambda. |arguments| behaves\n // slightly differently in a lambda and breaks GA.\n gtagGlobals.dataLayer.push(arguments);\n }\n gtagGlobals.gtag = gtagFunction;\n gtagGlobals.gtag('js', new Date());\n }\n\n // This is callled only after the script that sets isInternalUser loads.\n // It is fine to call updatePath() and log*() functions before initialize().\n // The gtag() function internally enqueues all requests into |dataLayer|.\n initialize() {\n if (this.initialized_) return;\n this.initialized_ = true;\n const script = document.createElement('script');\n script.src = 'https://www.googletagmanager.com/gtag/js?id=' + ANALYTICS_ID;\n script.defer = true;\n document.head.appendChild(script);\n const route = Router.parseUrl(window.location.href).page || '/';\n console.log(\n `GA initialized. route=${route}`,\n `isInternalUser=${globals.isInternalUser}`);\n // GA's reccomendation for SPAs is to disable automatic page views and\n // manually send page_view events. See:\n // https://developers.google.com/analytics/devguides/collection/gtagjs/pages#manual_pageviews\n gtagGlobals.gtag('config', ANALYTICS_ID, {\n allow_google_signals: false,\n anonymize_ip: true,\n page_path: route,\n referrer: document.referrer.split('?')[0],\n send_page_view: false,\n page_title: PAGE_TITLE,\n dimension1: globals.isInternalUser ? '1' : '0',\n dimension2: version.VERSION,\n dimension3: getCurrentChannel(),\n });\n this.updatePath(route);\n }\n\n updatePath(path: string) {\n gtagGlobals.gtag(\n 'event', 'page_view', {page_path: path, page_title: PAGE_TITLE});\n }\n\n logEvent(category: TraceCategories|null, event: string) {\n gtagGlobals.gtag('event', event, {event_category: category});\n }\n\n logError(description: string, fatal = true) {\n gtagGlobals.gtag('event', 'exception', {description, fatal});\n }\n\n isEnabled(): boolean {\n return true;\n }\n}\n","// Copyright (C) 2020 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// Returns a wrapper around |f| which calls f at most once every |ms|ms.\nexport function ratelimit(f: Function, ms: number): Function {\n let inProgess = false;\n return () => {\n if (inProgess) {\n return;\n }\n inProgess = true;\n window.setTimeout(() => {\n f();\n inProgess = false;\n }, ms);\n };\n}\n\n// Returns a wrapper around |f| which waits for a |ms|ms pause in calls\n// before calling |f|.\nexport function debounce(f: Function, ms: number): Function {\n let timerId: undefined|number;\n return () => {\n if (timerId) {\n window.clearTimeout(timerId);\n }\n timerId = window.setTimeout(() => {\n f();\n timerId = undefined;\n }, ms);\n };\n}\n","// Copyright (C) 2018 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {assertFalse, assertTrue} from '../base/logging';\nimport {TimeSpan} from '../common/time';\n\nconst MAX_ZOOM_SPAN_SEC = 1e-6; // 1us.\n\n/**\n * Defines a mapping between number and seconds for the entire application.\n * Linearly scales time values from boundsMs to pixel values in boundsPx and\n * back.\n */\nexport class TimeScale {\n private timeBounds: TimeSpan;\n private _startPx: number;\n private _endPx: number;\n private secPerPx = 0;\n\n constructor(timeBounds: TimeSpan, boundsPx: [number, number]) {\n this.timeBounds = timeBounds;\n this._startPx = boundsPx[0];\n this._endPx = boundsPx[1];\n this.updateSlope();\n }\n\n private updateSlope() {\n this.secPerPx = this.timeBounds.duration / (this._endPx - this._startPx);\n }\n\n deltaTimeToPx(time: number): number {\n return Math.round(time / this.secPerPx);\n }\n\n timeToPx(time: number): number {\n return this._startPx + (time - this.timeBounds.start) / this.secPerPx;\n }\n\n pxToTime(px: number): number {\n return this.timeBounds.start + (px - this._startPx) * this.secPerPx;\n }\n\n deltaPxToDuration(px: number): number {\n return px * this.secPerPx;\n }\n\n setTimeBounds(timeBounds: TimeSpan) {\n this.timeBounds = timeBounds;\n this.updateSlope();\n }\n\n setLimitsPx(pxStart: number, pxEnd: number) {\n assertFalse(pxStart === pxEnd);\n assertTrue(pxStart >= 0 && pxEnd >= 0);\n this._startPx = pxStart;\n this._endPx = pxEnd;\n this.updateSlope();\n }\n\n timeInBounds(time: number): boolean {\n return this.timeBounds.isInBounds(time);\n }\n\n get startPx(): number {\n return this._startPx;\n }\n\n get endPx(): number {\n return this._endPx;\n }\n}\n\nexport function computeZoom(\n scale: TimeScale, span: TimeSpan, zoomFactor: number, zoomPx: number):\n TimeSpan {\n const startPx = scale.startPx;\n const endPx = scale.endPx;\n const deltaPx = endPx - startPx;\n const deltaTime = span.end - span.start;\n const newDeltaTime = Math.max(deltaTime * zoomFactor, MAX_ZOOM_SPAN_SEC);\n const clampedZoomPx = Math.max(startPx, Math.min(endPx, zoomPx));\n const zoomTime = scale.pxToTime(clampedZoomPx);\n const r = (clampedZoomPx - startPx) / deltaPx;\n const newStartTime = zoomTime - newDeltaTime * r;\n const newEndTime = newStartTime + newDeltaTime;\n return new TimeSpan(newStartTime, newEndTime);\n}\n","// Copyright (C) 2018 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {assertTrue} from '../base/logging';\nimport {Actions} from '../common/actions';\nimport {HttpRpcState} from '../common/http_rpc_engine';\nimport {\n Area,\n FrontendLocalState as FrontendState,\n OmniboxState,\n Timestamped,\n VisibleState,\n} from '../common/state';\nimport {TimeSpan} from '../common/time';\n\nimport {globals} from './globals';\nimport {debounce, ratelimit} from './rate_limiters';\nimport {TimeScale} from './time_scale';\n\ninterface Range {\n start?: number;\n end?: number;\n}\n\nfunction chooseLatest<T extends Timestamped<{}>>(current: T, next: T): T {\n if (next !== current && next.lastUpdate > current.lastUpdate) {\n // |next| is from state. Callers may mutate the return value of\n // this function so we need to clone |next| to prevent bad mutations\n // of state:\n return Object.assign({}, next);\n }\n return current;\n}\n\nfunction capBetween(t: number, start: number, end: number) {\n return Math.min(Math.max(t, start), end);\n}\n\n// Calculate the space a scrollbar takes up so that we can subtract it from\n// the canvas width.\nfunction calculateScrollbarWidth() {\n const outer = document.createElement('div');\n outer.style.overflowY = 'scroll';\n const inner = document.createElement('div');\n outer.appendChild(inner);\n document.body.appendChild(outer);\n const width =\n outer.getBoundingClientRect().width - inner.getBoundingClientRect().width;\n document.body.removeChild(outer);\n return width;\n}\n\n/**\n * State that is shared between several frontend components, but not the\n * controller. This state is updated at 60fps.\n */\nexport class FrontendLocalState {\n visibleWindowTime = new TimeSpan(0, 10);\n timeScale = new TimeScale(this.visibleWindowTime, [0, 0]);\n showPanningHint = false;\n showCookieConsent = false;\n visibleTracks = new Set<string>();\n prevVisibleTracks = new Set<string>();\n scrollToTrackId?: string|number;\n httpRpcState: HttpRpcState = {connected: false};\n newVersionAvailable = false;\n showPivotTable = false;\n\n // This is used to calculate the tracks within a Y range for area selection.\n areaY: Range = {};\n\n private scrollBarWidth?: number;\n\n private _omniboxState: OmniboxState = {\n lastUpdate: 0,\n omnibox: '',\n mode: 'SEARCH',\n };\n\n private _visibleState: VisibleState = {\n lastUpdate: 0,\n startSec: 0,\n endSec: 10,\n resolution: 1,\n };\n\n private _selectedArea?: Area;\n\n // TODO: there is some redundancy in the fact that both |visibleWindowTime|\n // and a |timeScale| have a notion of time range. That should live in one\n // place only.\n\n getScrollbarWidth() {\n if (this.scrollBarWidth === undefined) {\n this.scrollBarWidth = calculateScrollbarWidth();\n }\n return this.scrollBarWidth;\n }\n\n setHttpRpcState(httpRpcState: HttpRpcState) {\n this.httpRpcState = httpRpcState;\n globals.rafScheduler.scheduleFullRedraw();\n }\n\n addVisibleTrack(trackId: string) {\n this.visibleTracks.add(trackId);\n }\n\n // Called when beginning a canvas redraw.\n clearVisibleTracks() {\n this.visibleTracks.clear();\n }\n\n // Called when the canvas redraw is complete.\n sendVisibleTracks() {\n if (this.prevVisibleTracks.size !== this.visibleTracks.size ||\n ![...this.prevVisibleTracks].every(\n value => this.visibleTracks.has(value))) {\n globals.dispatch(\n Actions.setVisibleTracks({tracks: Array.from(this.visibleTracks)}));\n this.prevVisibleTracks = new Set(this.visibleTracks);\n }\n }\n\n togglePivotTable() {\n this.showPivotTable = !this.showPivotTable;\n globals.rafScheduler.scheduleFullRedraw();\n }\n\n mergeState(state: FrontendState): void {\n // This is unfortunately subtle. This class mutates this._visibleState.\n // Since we may not mutate |state| (in order to make immer's immutable\n // updates work) this means that we have to make a copy of the visibleState.\n // when updating it. We don't want to have to do that unnecessarily so\n // chooseLatest returns a shallow clone of state.visibleState *only* when\n // that is the newer state. All of these complications should vanish when\n // we remove this class.\n const previousVisibleState = this._visibleState;\n this._omniboxState = chooseLatest(this._omniboxState, state.omniboxState);\n this._visibleState = chooseLatest(this._visibleState, state.visibleState);\n const visibleStateWasUpdated = previousVisibleState !== this._visibleState;\n if (visibleStateWasUpdated) {\n this.updateLocalTime(\n new TimeSpan(this._visibleState.startSec, this._visibleState.endSec));\n }\n }\n\n selectArea(\n startSec: number, endSec: number,\n tracks = this._selectedArea ? this._selectedArea.tracks : []) {\n assertTrue(endSec >= startSec);\n this.showPanningHint = true;\n this._selectedArea = {startSec, endSec, tracks},\n globals.rafScheduler.scheduleFullRedraw();\n }\n\n deselectArea() {\n this._selectedArea = undefined;\n globals.rafScheduler.scheduleRedraw();\n }\n\n get selectedArea(): Area|undefined {\n return this._selectedArea;\n }\n\n private setOmniboxDebounced = debounce(() => {\n globals.dispatch(Actions.setOmnibox({...this._omniboxState}));\n }, 20);\n\n setOmnibox(value: string, mode: 'SEARCH'|'COMMAND') {\n this._omniboxState.omnibox = value;\n this._omniboxState.mode = mode;\n this._omniboxState.lastUpdate = Date.now() / 1000;\n this.setOmniboxDebounced();\n }\n\n get omnibox(): string {\n return this._omniboxState.omnibox;\n }\n\n private ratelimitedUpdateVisible = ratelimit(() => {\n globals.dispatch(Actions.setVisibleTraceTime(this._visibleState));\n }, 50);\n\n private updateLocalTime(ts: TimeSpan) {\n const traceTime = globals.state.traceTime;\n const startSec = capBetween(ts.start, traceTime.startSec, traceTime.endSec);\n const endSec = capBetween(ts.end, traceTime.startSec, traceTime.endSec);\n this.visibleWindowTime = new TimeSpan(startSec, endSec);\n this.timeScale.setTimeBounds(this.visibleWindowTime);\n this.updateResolution();\n }\n\n private updateResolution() {\n this._visibleState.lastUpdate = Date.now() / 1000;\n this._visibleState.resolution = globals.getCurResolution();\n this.ratelimitedUpdateVisible();\n }\n\n updateVisibleTime(ts: TimeSpan) {\n this.updateLocalTime(ts);\n this._visibleState.lastUpdate = Date.now() / 1000;\n this._visibleState.startSec = this.visibleWindowTime.start;\n this._visibleState.endSec = this.visibleWindowTime.end;\n this._visibleState.resolution = globals.getCurResolution();\n this.ratelimitedUpdateVisible();\n }\n\n getVisibleStateBounds(): [number, number] {\n return [this.visibleWindowTime.start, this.visibleWindowTime.end];\n }\n\n // Whenever start/end px of the timeScale is changed, update\n // the resolution.\n updateLocalLimits(pxStart: number, pxEnd: number) {\n // Numbers received here can be negative or equal, but we should fix that\n // before updating the timescale.\n pxStart = Math.max(0, pxStart);\n pxEnd = Math.max(0, pxEnd);\n if (pxStart === pxEnd) pxEnd = pxStart + 1;\n this.timeScale.setLimitsPx(pxStart, pxEnd);\n this.updateResolution();\n }\n}\n","\n// Copyright (C) 2018 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as m from 'mithril';\n\nimport {Actions} from '../common/actions';\nimport {globals} from './globals';\nimport {PanelContainer} from './panel_container';\n\n/**\n * Shorthand for if globals perf debug mode is on.\n */\nexport const perfDebug = () => globals.state.perfDebug;\n\n/**\n * Returns performance.now() if perfDebug is enabled, otherwise 0.\n * This is needed because calling performance.now is generally expensive\n * and should not be done for every frame.\n */\nexport const debugNow = () => perfDebug() ? performance.now() : 0;\n\n/**\n * Returns execution time of |fn| if perf debug mode is on. Returns 0 otherwise.\n */\nexport function measure(fn: () => void): number {\n const start = debugNow();\n fn();\n return debugNow() - start;\n}\n\n/**\n * Stores statistics about samples, and keeps a fixed size buffer of most recent\n * samples.\n */\nexport class RunningStatistics {\n private _count = 0;\n private _mean = 0;\n private _lastValue = 0;\n\n private buffer: number[] = [];\n\n constructor(private _maxBufferSize = 10) {}\n\n addValue(value: number) {\n this._lastValue = value;\n this.buffer.push(value);\n if (this.buffer.length > this._maxBufferSize) {\n this.buffer.shift();\n }\n this._mean = (this._mean * this._count + value) / (this._count + 1);\n this._count++;\n }\n\n get mean() {\n return this._mean;\n }\n get count() {\n return this._count;\n }\n get bufferMean() {\n return this.buffer.reduce((sum, v) => sum + v, 0) / this.buffer.length;\n }\n get bufferSize() {\n return this.buffer.length;\n }\n get maxBufferSize() {\n return this._maxBufferSize;\n }\n get last() {\n return this._lastValue;\n }\n}\n\n/**\n * Returns a summary string representation of a RunningStatistics object.\n */\nexport function runningStatStr(stat: RunningStatistics) {\n return `Last: ${stat.last.toFixed(2)}ms | ` +\n `Avg: ${stat.mean.toFixed(2)}ms | ` +\n `Avg${stat.maxBufferSize}: ${stat.bufferMean.toFixed(2)}ms`;\n}\n\n/**\n * Globals singleton class that renders performance stats for the whole app.\n */\nclass PerfDisplay {\n private containers: PanelContainer[] = [];\n addContainer(container: PanelContainer) {\n this.containers.push(container);\n }\n\n removeContainer(container: PanelContainer) {\n const i = this.containers.indexOf(container);\n this.containers.splice(i, 1);\n }\n\n renderPerfStats() {\n if (!perfDebug()) return;\n const perfDisplayEl = document.querySelector('.perf-stats');\n if (!perfDisplayEl) return;\n m.render(perfDisplayEl, [\n m('section', globals.rafScheduler.renderPerfStats()),\n m('button.close-button',\n {\n onclick: () => globals.dispatch(Actions.togglePerfDebug({})),\n },\n m('i.material-icons', 'close')),\n this.containers.map((c, i) => m('section', c.renderPerfStats(i)))\n ]);\n }\n}\n\nexport const perfDisplay = new PerfDisplay();\n","// Copyright (C) 2018 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as m from 'mithril';\n\nimport {assertTrue} from '../base/logging';\n\nimport {globals} from './globals';\n\nimport {\n debugNow,\n measure,\n perfDebug,\n perfDisplay,\n RunningStatistics,\n runningStatStr\n} from './perf';\n\nfunction statTableHeader() {\n return m(\n 'tr',\n m('th', ''),\n m('th', 'Last (ms)'),\n m('th', 'Avg (ms)'),\n m('th', 'Avg-10 (ms)'), );\n}\n\nfunction statTableRow(title: string, stat: RunningStatistics) {\n return m(\n 'tr',\n m('td', title),\n m('td', stat.last.toFixed(2)),\n m('td', stat.mean.toFixed(2)),\n m('td', stat.bufferMean.toFixed(2)), );\n}\n\nexport type ActionCallback = (nowMs: number) => void;\nexport type RedrawCallback = (nowMs: number) => void;\n\n// This class orchestrates all RAFs in the UI. It ensures that there is only\n// one animation frame handler overall and that callbacks are called in\n// predictable order. There are two types of callbacks here:\n// - actions (e.g. pan/zoon animations), which will alter the \"fast\"\n// (main-thread-only) state (e.g. update visible time bounds @ 60 fps).\n// - redraw callbacks that will repaint canvases.\n// This class guarantees that, on each frame, redraw callbacks are called after\n// all action callbacks.\nexport class RafScheduler {\n private actionCallbacks = new Set<ActionCallback>();\n private canvasRedrawCallbacks = new Set<RedrawCallback>();\n private _syncDomRedraw: RedrawCallback = _ => {};\n private hasScheduledNextFrame = false;\n private requestedFullRedraw = false;\n private isRedrawing = false;\n private _shutdown = false;\n\n private perfStats = {\n rafActions: new RunningStatistics(),\n rafCanvas: new RunningStatistics(),\n rafDom: new RunningStatistics(),\n rafTotal: new RunningStatistics(),\n domRedraw: new RunningStatistics(),\n };\n\n start(cb: ActionCallback) {\n this.actionCallbacks.add(cb);\n this.maybeScheduleAnimationFrame();\n }\n\n stop(cb: ActionCallback) {\n this.actionCallbacks.delete(cb);\n }\n\n addRedrawCallback(cb: RedrawCallback) {\n this.canvasRedrawCallbacks.add(cb);\n }\n\n removeRedrawCallback(cb: RedrawCallback) {\n this.canvasRedrawCallbacks.delete(cb);\n }\n\n scheduleRedraw() {\n this.maybeScheduleAnimationFrame(true);\n }\n\n shutdown() {\n this._shutdown = true;\n }\n\n set domRedraw(cb: RedrawCallback|null) {\n this._syncDomRedraw = cb || (_ => {});\n }\n\n scheduleFullRedraw() {\n this.requestedFullRedraw = true;\n this.maybeScheduleAnimationFrame(true);\n }\n\n syncDomRedraw(nowMs: number) {\n const redrawStart = debugNow();\n this._syncDomRedraw(nowMs);\n if (perfDebug()) {\n this.perfStats.domRedraw.addValue(debugNow() - redrawStart);\n }\n }\n\n get hasPendingRedraws(): boolean {\n return this.isRedrawing || this.hasScheduledNextFrame;\n }\n\n private syncCanvasRedraw(nowMs: number) {\n const redrawStart = debugNow();\n if (this.isRedrawing) return;\n globals.frontendLocalState.clearVisibleTracks();\n this.isRedrawing = true;\n for (const redraw of this.canvasRedrawCallbacks) redraw(nowMs);\n this.isRedrawing = false;\n globals.frontendLocalState.sendVisibleTracks();\n if (perfDebug()) {\n this.perfStats.rafCanvas.addValue(debugNow() - redrawStart);\n }\n }\n\n private maybeScheduleAnimationFrame(force = false) {\n if (this.hasScheduledNextFrame) return;\n if (this.actionCallbacks.size !== 0 || force) {\n this.hasScheduledNextFrame = true;\n window.requestAnimationFrame(this.onAnimationFrame.bind(this));\n }\n }\n\n private onAnimationFrame(nowMs: number) {\n if (this._shutdown) return;\n const rafStart = debugNow();\n this.hasScheduledNextFrame = false;\n\n const doFullRedraw = this.requestedFullRedraw;\n this.requestedFullRedraw = false;\n\n const actionTime = measure(() => {\n for (const action of this.actionCallbacks) action(nowMs);\n });\n\n const domTime = measure(() => {\n if (doFullRedraw) this.syncDomRedraw(nowMs);\n });\n const canvasTime = measure(() => this.syncCanvasRedraw(nowMs));\n\n const totalRafTime = debugNow() - rafStart;\n this.updatePerfStats(actionTime, domTime, canvasTime, totalRafTime);\n perfDisplay.renderPerfStats();\n\n this.maybeScheduleAnimationFrame();\n }\n\n private updatePerfStats(\n actionsTime: number, domTime: number, canvasTime: number,\n totalRafTime: number) {\n if (!perfDebug()) return;\n this.perfStats.rafActions.addValue(actionsTime);\n this.perfStats.rafDom.addValue(domTime);\n this.perfStats.rafCanvas.addValue(canvasTime);\n this.perfStats.rafTotal.addValue(totalRafTime);\n }\n\n renderPerfStats() {\n assertTrue(perfDebug());\n return m(\n 'div',\n m('div',\n [\n m('button',\n {onclick: () => this.scheduleRedraw()},\n 'Do Canvas Redraw'),\n ' | ',\n m('button',\n {onclick: () => this.scheduleFullRedraw()},\n 'Do Full Redraw'),\n ]),\n m('div',\n 'Raf Timing ' +\n '(Total may not add up due to imprecision)'),\n m('table',\n statTableHeader(),\n statTableRow('Actions', this.perfStats.rafActions),\n statTableRow('Dom', this.perfStats.rafDom),\n statTableRow('Canvas', this.perfStats.rafCanvas),\n statTableRow('Total', this.perfStats.rafTotal), ),\n m('div',\n 'Dom redraw: ' +\n `Count: ${this.perfStats.domRedraw.count} | ` +\n runningStatStr(this.perfStats.domRedraw)), );\n }\n}\n","// Copyright (C) 2020 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// Handles registration, unregistration and lifecycle of the service worker.\n// This class contains only the controlling logic, all the code in here runs in\n// the main thread, not in the service worker thread.\n// The actual service worker code is in src/service_worker.\n// Design doc: http://go/perfetto-offline.\n\nimport {reportError} from '../base/logging';\n\nimport {globals} from './globals';\n\n// We use a dedicated |caches| object to share a global boolean beween the main\n// thread and the SW. SW cannot use local-storage or anything else other than\n// IndexedDB (which would be overkill).\nconst BYPASS_ID = 'BYPASS_SERVICE_WORKER';\n\nexport class ServiceWorkerController {\n private _initialWorker: ServiceWorker|null = null;\n private _bypassed = false;\n private _installing = false;\n\n // Caller should reload().\n async setBypass(bypass: boolean) {\n if (!('serviceWorker' in navigator)) return; // Not supported.\n this._bypassed = bypass;\n if (bypass) {\n await caches.open(BYPASS_ID); // Create the entry.\n for (const reg of await navigator.serviceWorker.getRegistrations()) {\n await reg.unregister();\n }\n } else {\n await caches.delete(BYPASS_ID);\n if (window.localStorage) {\n window.localStorage.setItem('bypassDisabled', '1');\n }\n this.install();\n }\n globals.rafScheduler.scheduleFullRedraw();\n }\n\n onStateChange(sw: ServiceWorker) {\n globals.rafScheduler.scheduleFullRedraw();\n if (sw.state === 'installing') {\n this._installing = true;\n } else if (sw.state === 'activated') {\n this._installing = false;\n // Don't show the notification if the site was served straight\n // from the network (e.g., on the very first visit or after\n // Ctrl+Shift+R). In these cases, we are already at the last\n // version.\n if (sw !== this._initialWorker && this._initialWorker) {\n globals.frontendLocalState.newVersionAvailable = true;\n }\n }\n }\n\n monitorWorker(sw: ServiceWorker|null) {\n if (!sw) return;\n sw.addEventListener('error', (e) => reportError(e));\n sw.addEventListener('statechange', () => this.onStateChange(sw));\n this.onStateChange(sw); // Trigger updates for the current state.\n }\n\n async install() {\n if (!('serviceWorker' in navigator)) return; // Not supported.\n\n if (location.pathname !== '/') {\n // Disable the service worker when the UI is loaded from a non-root URL\n // (e.g. from the CI artifacts GCS bucket). Supporting the case of a\n // nested index.html is too cumbersome and has no benefits.\n return;\n }\n\n // If this is localhost disable the service worker by default, unless the\n // user manually re-enabled it (in which case bypassDisabled = '1').\n const hostname = location.hostname;\n const isLocalhost = ['127.0.0.1', '::1', 'localhost'].includes(hostname);\n const bypassDisabled = window.localStorage &&\n window.localStorage.getItem('bypassDisabled') === '1';\n if (isLocalhost && !bypassDisabled) {\n await this.setBypass(true); // Will cause the check below to bail out.\n }\n\n if (await caches.has(BYPASS_ID)) {\n this._bypassed = true;\n console.log('Skipping service worker registration, disabled by the user');\n return;\n }\n // In production cases versionDir == VERSION. We use this here for ease of\n // testing (so we can have /v1.0.0a/ /v1.0.0b/ even if they have the same\n // version code).\n const versionDir = globals.root.split('/').slice(-2)[0];\n const swUri = `/service_worker.js?v=${versionDir}`;\n navigator.serviceWorker.register(swUri).then(registration => {\n this._initialWorker = registration.active;\n\n // At this point there are two options:\n // 1. This is the first time we visit the site (or cache was cleared) and\n // no SW is installed yet. In this case |installing| will be set.\n // 2. A SW is already installed (though it might be obsolete). In this\n // case |active| will be set.\n this.monitorWorker(registration.installing);\n this.monitorWorker(registration.active);\n\n // Setup the event that shows the \"Updated to v1.2.3\" notification.\n registration.addEventListener('updatefound', () => {\n this.monitorWorker(registration.installing);\n });\n });\n }\n\n get bypassed() {\n return this._bypassed;\n }\n get installing() {\n return this._installing;\n }\n}","// Copyright (C) 2018 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {assertExists} from '../base/logging';\nimport {Actions, DeferredAction} from '../common/actions';\nimport {AggregateData} from '../common/aggregation_data';\nimport {Args, ArgsTree} from '../common/arg_types';\nimport {\n ConversionJobName,\n ConversionJobStatus\n} from '../common/conversion_jobs';\nimport {createEmptyState} from '../common/empty_state';\nimport {Engine} from '../common/engine';\nimport {MetricResult} from '../common/metric_data';\nimport {CurrentSearchResults, SearchSummary} from '../common/search_data';\nimport {CallsiteInfo, State} from '../common/state';\nimport {fromNs, toNs} from '../common/time';\n\nimport {Analytics, initAnalytics} from './analytics';\nimport {FrontendLocalState} from './frontend_local_state';\nimport {PivotTableHelper} from './pivot_table_helper';\nimport {RafScheduler} from './raf_scheduler';\nimport {Router} from './router';\nimport {ServiceWorkerController} from './service_worker_controller';\n\ntype Dispatch = (action: DeferredAction) => void;\ntype TrackDataStore = Map<string, {}>;\ntype QueryResultsStore = Map<string, {}|undefined>;\ntype PivotTableHelperStore = Map<string, PivotTableHelper>;\ntype AggregateDataStore = Map<string, AggregateData>;\ntype Description = Map<string, string>;\n\nexport interface SliceDetails {\n ts?: number;\n dur?: number;\n thread_ts?: number;\n thread_dur?: number;\n priority?: number;\n endState?: string;\n cpu?: number;\n id?: number;\n threadStateId?: number;\n utid?: number;\n wakeupTs?: number;\n wakerUtid?: number;\n wakerCpu?: number;\n category?: string;\n name?: string;\n args?: Args;\n argsTree?: ArgsTree;\n description?: Description;\n}\n\nexport interface FlowPoint {\n trackId: number;\n\n sliceName: string;\n sliceCategory: string;\n sliceId: number;\n sliceStartTs: number;\n sliceEndTs: number;\n\n depth: number;\n}\n\nexport interface Flow {\n id: number;\n\n begin: FlowPoint;\n end: FlowPoint;\n\n category?: string;\n name?: string;\n}\n\nexport interface CounterDetails {\n startTime?: number;\n value?: number;\n delta?: number;\n duration?: number;\n name?: string;\n}\n\nexport interface ThreadStateDetails {\n ts?: number;\n dur?: number;\n state?: string;\n utid?: number;\n cpu?: number;\n sliceId?: number;\n blockedFunction?: string;\n}\n\nexport interface FlamegraphDetails {\n type?: string;\n id?: number;\n startNs?: number;\n durNs?: number;\n pids?: number[];\n upids?: number[];\n flamegraph?: CallsiteInfo[];\n expandedCallsite?: CallsiteInfo;\n viewingOption?: string;\n expandedId?: number;\n // isInAreaSelection is true if a flamegraph is part of the current area\n // selection.\n isInAreaSelection?: boolean;\n}\n\nexport interface CpuProfileDetails {\n id?: number;\n ts?: number;\n utid?: number;\n stack?: CallsiteInfo[];\n}\n\nexport interface QuantizedLoad {\n startSec: number;\n endSec: number;\n load: number;\n}\ntype OverviewStore = Map<string, QuantizedLoad[]>;\n\nexport interface ThreadDesc {\n utid: number;\n tid: number;\n threadName: string;\n pid?: number;\n procName?: string;\n cmdline?: string;\n}\ntype ThreadMap = Map<number, ThreadDesc>;\n\nfunction getRoot() {\n // Works out the root directory where the content should be served from\n // e.g. `http://origin/v1.2.3/`.\n const script = document.currentScript as HTMLScriptElement;\n\n // Needed for DOM tests, that do not have script element.\n if (script === null) {\n return '';\n }\n\n let root = script.src;\n root = root.substr(0, root.lastIndexOf('/') + 1);\n return root;\n}\n\n/**\n * Global accessors for state/dispatch in the frontend.\n */\nclass Globals {\n readonly root = getRoot();\n\n private _testing = false;\n private _dispatch?: Dispatch = undefined;\n private _state?: State = undefined;\n private _frontendLocalState?: FrontendLocalState = undefined;\n private _rafScheduler?: RafScheduler = undefined;\n private _serviceWorkerController?: ServiceWorkerController = undefined;\n private _logging?: Analytics = undefined;\n private _isInternalUser: boolean|undefined = undefined;\n\n // TODO(hjd): Unify trackDataStore, queryResults, overviewStore, threads.\n private _trackDataStore?: TrackDataStore = undefined;\n private _queryResults?: QueryResultsStore = undefined;\n private _pivotTableHelper?: PivotTableHelperStore = undefined;\n private _overviewStore?: OverviewStore = undefined;\n private _aggregateDataStore?: AggregateDataStore = undefined;\n private _threadMap?: ThreadMap = undefined;\n private _sliceDetails?: SliceDetails = undefined;\n private _threadStateDetails?: ThreadStateDetails = undefined;\n private _connectedFlows?: Flow[] = undefined;\n private _selectedFlows?: Flow[] = undefined;\n private _visibleFlowCategories?: Map<string, boolean> = undefined;\n private _counterDetails?: CounterDetails = undefined;\n private _flamegraphDetails?: FlamegraphDetails = undefined;\n private _cpuProfileDetails?: CpuProfileDetails = undefined;\n private _numQueriesQueued = 0;\n private _bufferUsage?: number = undefined;\n private _recordingLog?: string = undefined;\n private _traceErrors?: number = undefined;\n private _metricError?: string = undefined;\n private _metricResult?: MetricResult = undefined;\n private _hasFtrace?: boolean = undefined;\n private _jobStatus?: Map<ConversionJobName, ConversionJobStatus> = undefined;\n private _router?: Router = undefined;\n\n // TODO(hjd): Remove once we no longer need to update UUID on redraw.\n private _publishRedraw?: () => void = undefined;\n\n private _currentSearchResults: CurrentSearchResults = {\n sliceIds: new Float64Array(0),\n tsStarts: new Float64Array(0),\n utids: new Float64Array(0),\n trackIds: [],\n sources: [],\n totalResults: 0,\n };\n searchSummary: SearchSummary = {\n tsStarts: new Float64Array(0),\n tsEnds: new Float64Array(0),\n count: new Uint8Array(0),\n };\n\n engines = new Map<string, Engine>();\n\n initialize(dispatch: Dispatch, router: Router) {\n this._dispatch = dispatch;\n this._router = router;\n this._state = createEmptyState();\n this._frontendLocalState = new FrontendLocalState();\n this._rafScheduler = new RafScheduler();\n this._serviceWorkerController = new ServiceWorkerController();\n this._testing =\n self.location && self.location.search.indexOf('testing=1') >= 0;\n this._logging = initAnalytics();\n\n // TODO(hjd): Unify trackDataStore, queryResults, overviewStore, threads.\n this._trackDataStore = new Map<string, {}>();\n this._queryResults = new Map<string, {}>();\n this._pivotTableHelper = new Map<string, PivotTableHelper>();\n this._overviewStore = new Map<string, QuantizedLoad[]>();\n this._aggregateDataStore = new Map<string, AggregateData>();\n this._threadMap = new Map<number, ThreadDesc>();\n this._sliceDetails = {};\n this._connectedFlows = [];\n this._selectedFlows = [];\n this._visibleFlowCategories = new Map<string, boolean>();\n this._counterDetails = {};\n this._threadStateDetails = {};\n this._flamegraphDetails = {};\n this._cpuProfileDetails = {};\n this.engines.clear();\n }\n\n get router(): Router {\n return assertExists(this._router);\n }\n\n get publishRedraw(): () => void {\n return this._publishRedraw || (() => {});\n }\n\n set publishRedraw(f: () => void) {\n this._publishRedraw = f;\n }\n\n get state(): State {\n return assertExists(this._state);\n }\n\n set state(state: State) {\n this._state = assertExists(state);\n }\n\n get dispatch(): Dispatch {\n return assertExists(this._dispatch);\n }\n\n get frontendLocalState() {\n return assertExists(this._frontendLocalState);\n }\n\n get rafScheduler() {\n return assertExists(this._rafScheduler);\n }\n\n get logging() {\n return assertExists(this._logging);\n }\n\n get serviceWorkerController() {\n return assertExists(this._serviceWorkerController);\n }\n\n // TODO(hjd): Unify trackDataStore, queryResults, overviewStore, threads.\n get overviewStore(): OverviewStore {\n return assertExists(this._overviewStore);\n }\n\n get trackDataStore(): TrackDataStore {\n return assertExists(this._trackDataStore);\n }\n\n get queryResults(): QueryResultsStore {\n return assertExists(this._queryResults);\n }\n\n get pivotTableHelper(): PivotTableHelperStore {\n return assertExists(this._pivotTableHelper);\n }\n\n get threads() {\n return assertExists(this._threadMap);\n }\n\n get sliceDetails() {\n return assertExists(this._sliceDetails);\n }\n\n set sliceDetails(click: SliceDetails) {\n this._sliceDetails = assertExists(click);\n }\n\n get threadStateDetails() {\n return assertExists(this._threadStateDetails);\n }\n\n set threadStateDetails(click: ThreadStateDetails) {\n this._threadStateDetails = assertExists(click);\n }\n\n get connectedFlows() {\n return assertExists(this._connectedFlows);\n }\n\n set connectedFlows(connectedFlows: Flow[]) {\n this._connectedFlows = assertExists(connectedFlows);\n }\n\n get selectedFlows() {\n return assertExists(this._selectedFlows);\n }\n\n set selectedFlows(selectedFlows: Flow[]) {\n this._selectedFlows = assertExists(selectedFlows);\n }\n\n get visibleFlowCategories() {\n return assertExists(this._visibleFlowCategories);\n }\n\n set visibleFlowCategories(visibleFlowCategories: Map<string, boolean>) {\n this._visibleFlowCategories = assertExists(visibleFlowCategories);\n }\n\n get counterDetails() {\n return assertExists(this._counterDetails);\n }\n\n set counterDetails(click: CounterDetails) {\n this._counterDetails = assertExists(click);\n }\n\n get aggregateDataStore(): AggregateDataStore {\n return assertExists(this._aggregateDataStore);\n }\n\n get flamegraphDetails() {\n return assertExists(this._flamegraphDetails);\n }\n\n set flamegraphDetails(click: FlamegraphDetails) {\n this._flamegraphDetails = assertExists(click);\n }\n\n get traceErrors() {\n return this._traceErrors;\n }\n\n setTraceErrors(arg: number) {\n this._traceErrors = arg;\n }\n\n get metricError() {\n return this._metricError;\n }\n\n setMetricError(arg: string) {\n this._metricError = arg;\n }\n\n get metricResult() {\n return this._metricResult;\n }\n\n setMetricResult(result: MetricResult) {\n this._metricResult = result;\n }\n\n get cpuProfileDetails() {\n return assertExists(this._cpuProfileDetails);\n }\n\n set cpuProfileDetails(click: CpuProfileDetails) {\n this._cpuProfileDetails = assertExists(click);\n }\n\n set numQueuedQueries(value: number) {\n this._numQueriesQueued = value;\n }\n\n get numQueuedQueries() {\n return this._numQueriesQueued;\n }\n\n get bufferUsage() {\n return this._bufferUsage;\n }\n\n get recordingLog() {\n return this._recordingLog;\n }\n\n get currentSearchResults() {\n return this._currentSearchResults;\n }\n\n set currentSearchResults(results: CurrentSearchResults) {\n this._currentSearchResults = results;\n }\n\n get hasFtrace(): boolean {\n return !!this._hasFtrace;\n }\n\n set hasFtrace(value: boolean) {\n this._hasFtrace = value;\n }\n\n getConversionJobStatus(name: ConversionJobName): ConversionJobStatus {\n return this.getJobStatusMap().get(name) || ConversionJobStatus.NotRunning;\n }\n\n setConversionJobStatus(name: ConversionJobName, status: ConversionJobStatus) {\n const map = this.getJobStatusMap();\n if (status === ConversionJobStatus.NotRunning) {\n map.delete(name);\n } else {\n map.set(name, status);\n }\n }\n\n private getJobStatusMap(): Map<ConversionJobName, ConversionJobStatus> {\n if (!this._jobStatus) {\n this._jobStatus = new Map();\n }\n return this._jobStatus;\n }\n\n setBufferUsage(bufferUsage: number) {\n this._bufferUsage = bufferUsage;\n }\n\n setTrackData(id: string, data: {}) {\n this.trackDataStore.set(id, data);\n }\n\n setRecordingLog(recordingLog: string) {\n this._recordingLog = recordingLog;\n }\n\n setAggregateData(kind: string, data: AggregateData) {\n this.aggregateDataStore.set(kind, data);\n }\n\n getCurResolution() {\n // Truncate the resolution to the closest power of 2 (in nanosecond space).\n // We choose to work in ns space because resolution is consumed be track\n // controllers for quantization and they rely on resolution to be a power\n // of 2 in nanosecond form. This is property does not hold if we work in\n // second space.\n //\n // This effectively means the resolution changes approximately every 6 zoom\n // levels. Logic: each zoom level represents a delta of 0.1 * (visible\n // window span). Therefore, zooming out by six levels is 1.1^6 ~= 2.\n // Similarily, zooming in six levels is 0.9^6 ~= 0.5.\n const pxToSec = this.frontendLocalState.timeScale.deltaPxToDuration(1);\n // TODO(b/186265930): Remove once fixed:\n if (!isFinite(pxToSec)) {\n // Resolution is in pixels per second so 1000 means 1px = 1ms.\n console.error(`b/186265930: Bad pxToSec suppressed ${pxToSec}`);\n return fromNs(Math.pow(2, Math.floor(Math.log2(toNs(1000)))));\n }\n const pxToNs = Math.max(toNs(pxToSec), 1);\n const resolution = fromNs(Math.pow(2, Math.floor(Math.log2(pxToNs))));\n const log2 = Math.log2(toNs(resolution));\n if (log2 % 1 !== 0) {\n throw new Error(`Resolution should be a power of two.\n pxToSec: ${pxToSec},\n pxToNs: ${pxToNs},\n resolution: ${resolution},\n log2: ${Math.log2(toNs(resolution))}`);\n }\n return resolution;\n }\n\n makeSelection(action: DeferredAction<{}>, tabToOpen = 'current_selection') {\n // A new selection should cancel the current search selection.\n globals.dispatch(Actions.setSearchIndex({index: -1}));\n const tab = action.type === 'deselect' ? undefined : tabToOpen;\n globals.dispatch(Actions.setCurrentTab({tab}));\n globals.dispatch(action);\n }\n\n resetForTesting() {\n this._dispatch = undefined;\n this._state = undefined;\n this._frontendLocalState = undefined;\n this._rafScheduler = undefined;\n this._serviceWorkerController = undefined;\n\n // TODO(hjd): Unify trackDataStore, queryResults, overviewStore, threads.\n this._trackDataStore = undefined;\n this._queryResults = undefined;\n this._pivotTableHelper = undefined;\n this._overviewStore = undefined;\n this._threadMap = undefined;\n this._sliceDetails = undefined;\n this._threadStateDetails = undefined;\n this._aggregateDataStore = undefined;\n this._numQueriesQueued = 0;\n this._metricResult = undefined;\n this._currentSearchResults = {\n sliceIds: new Float64Array(0),\n tsStarts: new Float64Array(0),\n utids: new Float64Array(0),\n trackIds: [],\n sources: [],\n totalResults: 0,\n };\n }\n\n // This variable is set by the is_internal_user.js script if the user is a\n // googler. This is used to avoid exposing features that are not ready yet\n // for public consumption. The gated features themselves are not secret.\n // If a user has been detected as a Googler once, make that sticky in\n // localStorage, so that we keep treating them as such when they connect over\n // public networks.\n get isInternalUser() {\n if (this._isInternalUser === undefined) {\n this._isInternalUser = localStorage.getItem('isInternalUser') === '1';\n }\n return this._isInternalUser;\n }\n\n set isInternalUser(value: boolean) {\n localStorage.setItem('isInternalUser', value ? '1' : '0');\n this._isInternalUser = value;\n }\n\n get testing() {\n return this._testing;\n }\n\n // Used when switching to the legacy TraceViewer UI.\n // Most resources are cleaned up by replacing the current |window| object,\n // however pending RAFs and workers seem to outlive the |window| and need to\n // be cleaned up explicitly.\n shutdown() {\n this._rafScheduler!.shutdown();\n }\n}\n\nexport const globals = new Globals();\n","// Copyright (C) 2021 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {Actions} from '../common/actions';\nimport {AggregateData} from '../common/aggregation_data';\nimport {ConversionJobStatusUpdate} from '../common/conversion_jobs';\nimport {\n LogBoundsKey,\n LogEntriesKey,\n LogExists,\n LogExistsKey\n} from '../common/logs';\nimport {MetricResult} from '../common/metric_data';\nimport {CurrentSearchResults, SearchSummary} from '../common/search_data';\n\nimport {\n CounterDetails,\n CpuProfileDetails,\n FlamegraphDetails,\n Flow,\n globals,\n QuantizedLoad,\n SliceDetails,\n ThreadDesc,\n ThreadStateDetails\n} from './globals';\nimport {PivotTableHelper} from './pivot_table_helper';\n\nexport function publishOverviewData(\n data: {[key: string]: QuantizedLoad|QuantizedLoad[]}) {\n for (const [key, value] of Object.entries(data)) {\n if (!globals.overviewStore.has(key)) {\n globals.overviewStore.set(key, []);\n }\n if (value instanceof Array) {\n globals.overviewStore.get(key)!.push(...value);\n } else {\n globals.overviewStore.get(key)!.push(value);\n }\n }\n globals.rafScheduler.scheduleRedraw();\n}\n\nexport function publishTrackData(args: {id: string, data: {}}) {\n globals.setTrackData(args.id, args.data);\n if ([LogExistsKey, LogBoundsKey, LogEntriesKey].includes(args.id)) {\n const data = globals.trackDataStore.get(LogExistsKey) as LogExists;\n if (data && data.exists) globals.rafScheduler.scheduleFullRedraw();\n } else {\n globals.rafScheduler.scheduleRedraw();\n }\n}\n\nexport function publishMetricResult(metricResult: MetricResult) {\n globals.setMetricResult(metricResult);\n globals.publishRedraw();\n}\n\nexport function publishSelectedFlows(selectedFlows: Flow[]) {\n globals.selectedFlows = selectedFlows;\n globals.publishRedraw();\n}\n\nexport function publishCounterDetails(click: CounterDetails) {\n globals.counterDetails = click;\n globals.publishRedraw();\n}\n\nexport function publishFlamegraphDetails(click: FlamegraphDetails) {\n globals.flamegraphDetails = click;\n globals.publishRedraw();\n}\n\nexport function publishCpuProfileDetails(details: CpuProfileDetails) {\n globals.cpuProfileDetails = details;\n globals.publishRedraw();\n}\n\nexport function publishHasFtrace(hasFtrace: boolean) {\n globals.hasFtrace = hasFtrace;\n globals.publishRedraw();\n}\n\nexport function publishConversionJobStatusUpdate(\n job: ConversionJobStatusUpdate) {\n globals.setConversionJobStatus(job.jobName, job.jobStatus);\n globals.publishRedraw();\n}\n\nexport function publishLoading(numQueuedQueries: number) {\n globals.numQueuedQueries = numQueuedQueries;\n // TODO(hjd): Clean up loadingAnimation given that this now causes a full\n // redraw anyways. Also this should probably just go via the global state.\n globals.rafScheduler.scheduleFullRedraw();\n}\n\nexport function publishBufferUsage(args: {percentage: number}) {\n globals.setBufferUsage(args.percentage);\n globals.publishRedraw();\n}\n\nexport function publishSearch(args: SearchSummary) {\n globals.searchSummary = args;\n globals.publishRedraw();\n}\n\nexport function publishSearchResult(args: CurrentSearchResults) {\n globals.currentSearchResults = args;\n globals.publishRedraw();\n}\n\nexport function publishRecordingLog(args: {logs: string}) {\n globals.setRecordingLog(args.logs);\n globals.publishRedraw();\n}\n\nexport function publishTraceErrors(numErrors: number) {\n globals.setTraceErrors(numErrors);\n globals.publishRedraw();\n}\n\nexport function publishMetricError(error: string) {\n globals.setMetricError(error);\n globals.logging.logError(error, false);\n globals.publishRedraw();\n}\n\nexport function publishAggregateData(\n args: {data: AggregateData, kind: string}) {\n globals.setAggregateData(args.kind, args.data);\n globals.publishRedraw();\n}\n\nexport function publishQueryResult(args: {id: string, data?: {}}) {\n globals.queryResults.set(args.id, args.data);\n globals.dispatch(Actions.setCurrentTab({tab: 'query_result'}));\n globals.publishRedraw();\n}\n\nexport function publishPivotTableHelper(\n args: {id: string, data: PivotTableHelper}) {\n globals.pivotTableHelper.set(args.id, args.data);\n globals.publishRedraw();\n}\n\nexport function publishThreads(data: ThreadDesc[]) {\n globals.threads.clear();\n data.forEach(thread => {\n globals.threads.set(thread.utid, thread);\n });\n globals.publishRedraw();\n}\n\nexport function publishSliceDetails(click: SliceDetails) {\n globals.sliceDetails = click;\n globals.publishRedraw();\n}\n\nexport function publishThreadStateDetails(click: ThreadStateDetails) {\n globals.threadStateDetails = click;\n globals.publishRedraw();\n}\n\nexport function publishConnectedFlows(connectedFlows: Flow[]) {\n globals.connectedFlows = connectedFlows;\n // If a chrome slice is selected and we have any flows in connectedFlows\n // we will find the flows on the right and left of that slice to set a default\n // focus. In all other cases the focusedFlowId(Left|Right) will be set to -1.\n globals.dispatch(Actions.setHighlightedFlowLeftId({flowId: -1}));\n globals.dispatch(Actions.setHighlightedFlowRightId({flowId: -1}));\n if (globals.state.currentSelection?.kind === 'CHROME_SLICE') {\n const sliceId = globals.state.currentSelection.id;\n for (const flow of globals.connectedFlows) {\n if (flow.begin.sliceId === sliceId) {\n globals.dispatch(Actions.setHighlightedFlowRightId({flowId: flow.id}));\n }\n if (flow.end.sliceId === sliceId) {\n globals.dispatch(Actions.setHighlightedFlowLeftId({flowId: flow.id}));\n }\n }\n }\n\n globals.publishRedraw();\n}\n","// Copyright (C) 2018 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// tslint:disable-next-line no-any\nexport type ControllerAny = Controller</*StateType=*/any>;\n\nexport interface ControllerFactory<ConstructorArgs> {\n new(args: ConstructorArgs): ControllerAny;\n}\n\ninterface ControllerInitializer<ConstructorArgs> {\n id: string;\n factory: ControllerFactory<ConstructorArgs>;\n args: ConstructorArgs;\n}\n\n// tslint:disable-next-line no-any\nexport type ControllerInitializerAny = ControllerInitializer<any>;\n\nexport function Child<ConstructorArgs>(\n id: string,\n factory: ControllerFactory<ConstructorArgs>,\n args: ConstructorArgs): ControllerInitializer<ConstructorArgs> {\n return {id, factory, args};\n}\n\nexport type Children = ControllerInitializerAny[];\n\nexport abstract class Controller<StateType> {\n // This is about the local FSM state, has nothing to do with the global\n // app state.\n private _stateChanged = false;\n private _inRunner = false;\n private _state: StateType;\n private _children = new Map<string, ControllerAny>();\n\n constructor(initialState: StateType) {\n this._state = initialState;\n }\n\n abstract run(): Children|void;\n onDestroy(): void {}\n\n // Invokes the current controller subtree, recursing into children.\n // While doing so handles lifecycle of child controllers.\n // This method should be called only by the runControllers() method in\n // globals.ts. Exposed publicly for testing.\n invoke(): boolean {\n if (this._inRunner) throw new Error('Reentrancy in Controller');\n this._stateChanged = false;\n this._inRunner = true;\n const resArray = this.run();\n let triggerAnotherRun = this._stateChanged;\n this._stateChanged = false;\n\n const nextChildren = new Map<string, ControllerInitializerAny>();\n if (resArray !== undefined) {\n for (const childConfig of resArray) {\n if (nextChildren.has(childConfig.id)) {\n throw new Error(`Duplicate children controller ${childConfig.id}`);\n }\n nextChildren.set(childConfig.id, childConfig);\n }\n }\n const dtors = new Array<(() => void)>();\n const runners = new Array<(() => boolean)>();\n for (const key of this._children.keys()) {\n if (nextChildren.has(key)) continue;\n const instance = this._children.get(key)!;\n this._children.delete(key);\n dtors.push(() => instance.onDestroy());\n }\n for (const nextChild of nextChildren.values()) {\n if (!this._children.has(nextChild.id)) {\n const instance = new nextChild.factory(nextChild.args);\n this._children.set(nextChild.id, instance);\n }\n const instance = this._children.get(nextChild.id)!;\n runners.push(() => instance.invoke());\n }\n\n for (const dtor of dtors) dtor(); // Invoke all onDestroy()s.\n\n // Invoke all runner()s.\n for (const runner of runners) {\n const recursiveRes = runner();\n triggerAnotherRun = triggerAnotherRun || recursiveRes;\n }\n\n this._inRunner = false;\n return triggerAnotherRun;\n }\n\n setState(state: StateType) {\n if (!this._inRunner) {\n throw new Error('Cannot setState() outside of the run() method');\n }\n this._stateChanged = state !== this._state;\n this._state = state;\n }\n\n get state(): StateType {\n return this._state;\n }\n}\n","const errors = {\n\t0: \"Illegal state\",\n\t1: \"Immer drafts cannot have computed properties\",\n\t2: \"This object has been frozen and should not be mutated\",\n\t3(data: any) {\n\t\treturn (\n\t\t\t\"Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? \" +\n\t\t\tdata\n\t\t)\n\t},\n\t4: \"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.\",\n\t5: \"Immer forbids circular references\",\n\t6: \"The first or second argument to `produce` must be a function\",\n\t7: \"The third argument to `produce` must be a function or undefined\",\n\t8: \"First argument to `createDraft` must be a plain object, an array, or an immerable object\",\n\t9: \"First argument to `finishDraft` must be a draft returned by `createDraft`\",\n\t10: \"The given draft is already finalized\",\n\t11: \"Object.defineProperty() cannot be used on an Immer draft\",\n\t12: \"Object.setPrototypeOf() cannot be used on an Immer draft\",\n\t13: \"Immer only supports deleting array indices\",\n\t14: \"Immer only supports setting array indices and the 'length' property\",\n\t15(path: string) {\n\t\treturn \"Cannot apply patch, path doesn't resolve: \" + path\n\t},\n\t16: 'Sets cannot have \"replace\" patches.',\n\t17(op: string) {\n\t\treturn \"Unsupported patch operation: \" + op\n\t},\n\t18(plugin: string) {\n\t\treturn `The plugin for '${plugin}' has not been loaded into Immer. To enable the plugin, import and call \\`enable${plugin}()\\` when initializing your application.`\n\t},\n\t20: \"Cannot use proxies if Proxy, Proxy.revocable or Reflect are not available\",\n\t21(thing: string) {\n\t\treturn `produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '${thing}'`\n\t},\n\t22(thing: string) {\n\t\treturn `'current' expects a draft, got: ${thing}`\n\t},\n\t23(thing: string) {\n\t\treturn `'original' expects a draft, got: ${thing}`\n\t},\n\t24: \"Patching reserved attributes like __proto__, prototype and constructor is not allowed\"\n} as const\n\nexport function die(error: keyof typeof errors, ...args: any[]): never {\n\tif (__DEV__) {\n\t\tconst e = errors[error]\n\t\tconst msg = !e\n\t\t\t? \"unknown error nr: \" + error\n\t\t\t: typeof e === \"function\"\n\t\t\t? e.apply(null, args as any)\n\t\t\t: e\n\t\tthrow new Error(`[Immer] ${msg}`)\n\t}\n\tthrow new Error(\n\t\t`[Immer] minified error nr: ${error}${\n\t\t\targs.length ? \" \" + args.map(s => `'${s}'`).join(\",\") : \"\"\n\t\t}. Find the full error at: https://bit.ly/3cXEKWf`\n\t)\n}\n","import {\n\tDRAFT_STATE,\n\tDRAFTABLE,\n\thasSet,\n\tObjectish,\n\tDrafted,\n\tAnyObject,\n\tAnyMap,\n\tAnySet,\n\tImmerState,\n\thasMap,\n\tArchtype,\n\tdie\n} from \"../internal\"\n\n/** Returns true if the given value is an Immer draft */\n/*#__PURE__*/\nexport function isDraft(value: any): boolean {\n\treturn !!value && !!value[DRAFT_STATE]\n}\n\n/** Returns true if the given value can be drafted by Immer */\n/*#__PURE__*/\nexport function isDraftable(value: any): boolean {\n\tif (!value) return false\n\treturn (\n\t\tisPlainObject(value) ||\n\t\tArray.isArray(value) ||\n\t\t!!value[DRAFTABLE] ||\n\t\t!!value.constructor[DRAFTABLE] ||\n\t\tisMap(value) ||\n\t\tisSet(value)\n\t)\n}\n\nconst objectCtorString = Object.prototype.constructor.toString()\n/*#__PURE__*/\nexport function isPlainObject(value: any): boolean {\n\tif (!value || typeof value !== \"object\") return false\n\tconst proto = Object.getPrototypeOf(value)\n\tif (proto === null) {\n\t\treturn true\n\t}\n\tconst Ctor =\n\t\tObject.hasOwnProperty.call(proto, \"constructor\") && proto.constructor\n\n\tif (Ctor === Object) return true\n\n\treturn (\n\t\ttypeof Ctor == \"function\" &&\n\t\tFunction.toString.call(Ctor) === objectCtorString\n\t)\n}\n\n/** Get the underlying object that is represented by the given draft */\n/*#__PURE__*/\nexport function original<T>(value: T): T | undefined\nexport function original(value: Drafted<any>): any {\n\tif (!isDraft(value)) die(23, value)\n\treturn value[DRAFT_STATE].base_\n}\n\n/*#__PURE__*/\nexport const ownKeys: (target: AnyObject) => PropertyKey[] =\n\ttypeof Reflect !== \"undefined\" && Reflect.ownKeys\n\t\t? Reflect.ownKeys\n\t\t: typeof Object.getOwnPropertySymbols !== \"undefined\"\n\t\t? obj =>\n\t\t\t\tObject.getOwnPropertyNames(obj).concat(\n\t\t\t\t\tObject.getOwnPropertySymbols(obj) as any\n\t\t\t\t)\n\t\t: /* istanbul ignore next */ Object.getOwnPropertyNames\n\nexport const getOwnPropertyDescriptors =\n\tObject.getOwnPropertyDescriptors ||\n\tfunction getOwnPropertyDescriptors(target: any) {\n\t\t// Polyfill needed for Hermes and IE, see https://github.com/facebook/hermes/issues/274\n\t\tconst res: any = {}\n\t\townKeys(target).forEach(key => {\n\t\t\tres[key] = Object.getOwnPropertyDescriptor(target, key)\n\t\t})\n\t\treturn res\n\t}\n\nexport function each<T extends Objectish>(\n\tobj: T,\n\titer: (key: string | number, value: any, source: T) => void,\n\tenumerableOnly?: boolean\n): void\nexport function each(obj: any, iter: any, enumerableOnly = false) {\n\tif (getArchtype(obj) === Archtype.Object) {\n\t\t;(enumerableOnly ? Object.keys : ownKeys)(obj).forEach(key => {\n\t\t\tif (!enumerableOnly || typeof key !== \"symbol\") iter(key, obj[key], obj)\n\t\t})\n\t} else {\n\t\tobj.forEach((entry: any, index: any) => iter(index, entry, obj))\n\t}\n}\n\n/*#__PURE__*/\nexport function getArchtype(thing: any): Archtype {\n\t/* istanbul ignore next */\n\tconst state: undefined | ImmerState = thing[DRAFT_STATE]\n\treturn state\n\t\t? state.type_ > 3\n\t\t\t? state.type_ - 4 // cause Object and Array map back from 4 and 5\n\t\t\t: (state.type_ as any) // others are the same\n\t\t: Array.isArray(thing)\n\t\t? Archtype.Array\n\t\t: isMap(thing)\n\t\t? Archtype.Map\n\t\t: isSet(thing)\n\t\t? Archtype.Set\n\t\t: Archtype.Object\n}\n\n/*#__PURE__*/\nexport function has(thing: any, prop: PropertyKey): boolean {\n\treturn getArchtype(thing) === Archtype.Map\n\t\t? thing.has(prop)\n\t\t: Object.prototype.hasOwnProperty.call(thing, prop)\n}\n\n/*#__PURE__*/\nexport function get(thing: AnyMap | AnyObject, prop: PropertyKey): any {\n\t// @ts-ignore\n\treturn getArchtype(thing) === Archtype.Map ? thing.get(prop) : thing[prop]\n}\n\n/*#__PURE__*/\nexport function set(thing: any, propOrOldValue: PropertyKey, value: any) {\n\tconst t = getArchtype(thing)\n\tif (t === Archtype.Map) thing.set(propOrOldValue, value)\n\telse if (t === Archtype.Set) {\n\t\tthing.delete(propOrOldValue)\n\t\tthing.add(value)\n\t} else thing[propOrOldValue] = value\n}\n\n/*#__PURE__*/\nexport function is(x: any, y: any): boolean {\n\t// From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js\n\tif (x === y) {\n\t\treturn x !== 0 || 1 / x === 1 / y\n\t} else {\n\t\treturn x !== x && y !== y\n\t}\n}\n\n/*#__PURE__*/\nexport function isMap(target: any): target is AnyMap {\n\treturn hasMap && target instanceof Map\n}\n\n/*#__PURE__*/\nexport function isSet(target: any): target is AnySet {\n\treturn hasSet && target instanceof Set\n}\n/*#__PURE__*/\nexport function latest(state: ImmerState): any {\n\treturn state.copy_ || state.base_\n}\n\n/*#__PURE__*/\nexport function shallowCopy(base: any) {\n\tif (Array.isArray(base)) return Array.prototype.slice.call(base)\n\tconst descriptors = getOwnPropertyDescriptors(base)\n\tdelete descriptors[DRAFT_STATE as any]\n\tlet keys = ownKeys(descriptors)\n\tfor (let i = 0; i < keys.length; i++) {\n\t\tconst key: any = keys[i]\n\t\tconst desc = descriptors[key]\n\t\tif (desc.writable === false) {\n\t\t\tdesc.writable = true\n\t\t\tdesc.configurable = true\n\t\t}\n\t\t// like object.assign, we will read any _own_, get/set accessors. This helps in dealing\n\t\t// with libraries that trap values, like mobx or vue\n\t\t// unlike object.assign, non-enumerables will be copied as well\n\t\tif (desc.get || desc.set)\n\t\t\tdescriptors[key] = {\n\t\t\t\tconfigurable: true,\n\t\t\t\twritable: true, // could live with !!desc.set as well here...\n\t\t\t\tenumerable: desc.enumerable,\n\t\t\t\tvalue: base[key]\n\t\t\t}\n\t}\n\treturn Object.create(Object.getPrototypeOf(base), descriptors)\n}\n\n/**\n * Freezes draftable objects. Returns the original object.\n * By default freezes shallowly, but if the second argument is `true` it will freeze recursively.\n *\n * @param obj\n * @param deep\n */\nexport function freeze<T>(obj: T, deep?: boolean): T\nexport function freeze<T>(obj: any, deep: boolean = false): T {\n\tif (isFrozen(obj) || isDraft(obj) || !isDraftable(obj)) return obj\n\tif (getArchtype(obj) > 1 /* Map or Set */) {\n\t\tobj.set = obj.add = obj.clear = obj.delete = dontMutateFrozenCollections as any\n\t}\n\tObject.freeze(obj)\n\tif (deep) each(obj, (key, value) => freeze(value, true), true)\n\treturn obj\n}\n\nfunction dontMutateFrozenCollections() {\n\tdie(2)\n}\n\nexport function isFrozen(obj: any): boolean {\n\tif (obj == null || typeof obj !== \"object\") return true\n\t// See #600, IE dies on non-objects in Object.isFrozen\n\treturn Object.isFrozen(obj)\n}\n","import {\n\tImmerState,\n\tPatch,\n\tImmerScope,\n\tDrafted,\n\tAnyObject,\n\tImmerBaseState,\n\tAnyMap,\n\tAnySet,\n\tProxyType,\n\tdie\n} from \"../internal\"\n\n/** Plugin utilities */\nconst plugins: {\n\tPatches?: {\n\t\tgeneratePatches_(\n\t\t\tstate: ImmerState,\n\t\t\tbasePath: PatchPath,\n\t\t\tpatches: Patch[],\n\t\t\tinversePatches: Patch[]\n\t\t): void\n\t\tgenerateReplacementPatches_(\n\t\t\trootState: ImmerState,\n\t\t\treplacement: any,\n\t\t\tpatches: Patch[],\n\t\t\tinversePatches: Patch[]\n\t\t): void\n\t\tapplyPatches_<T>(draft: T, patches: Patch[]): T\n\t}\n\tES5?: {\n\t\twillFinalizeES5_(scope: ImmerScope, result: any, isReplaced: boolean): void\n\t\tcreateES5Proxy_<T>(\n\t\t\tbase: T,\n\t\t\tparent?: ImmerState\n\t\t): Drafted<T, ES5ObjectState | ES5ArrayState>\n\t\thasChanges_(state: ES5ArrayState | ES5ObjectState): boolean\n\t}\n\tMapSet?: {\n\t\tproxyMap_<T extends AnyMap>(target: T, parent?: ImmerState): T\n\t\tproxySet_<T extends AnySet>(target: T, parent?: ImmerState): T\n\t}\n} = {}\n\ntype Plugins = typeof plugins\n\nexport function getPlugin<K extends keyof Plugins>(\n\tpluginKey: K\n): Exclude<Plugins[K], undefined> {\n\tconst plugin = plugins[pluginKey]\n\tif (!plugin) {\n\t\tdie(18, pluginKey)\n\t}\n\t// @ts-ignore\n\treturn plugin\n}\n\nexport function loadPlugin<K extends keyof Plugins>(\n\tpluginKey: K,\n\timplementation: Plugins[K]\n): void {\n\tif (!plugins[pluginKey]) plugins[pluginKey] = implementation\n}\n\n/** ES5 Plugin */\n\ninterface ES5BaseState extends ImmerBaseState {\n\tassigned_: {[key: string]: any}\n\tparent_?: ImmerState\n\trevoked_: boolean\n}\n\nexport interface ES5ObjectState extends ES5BaseState {\n\ttype_: ProxyType.ES5Object\n\tdraft_: Drafted<AnyObject, ES5ObjectState>\n\tbase_: AnyObject\n\tcopy_: AnyObject | null\n}\n\nexport interface ES5ArrayState extends ES5BaseState {\n\ttype_: ProxyType.ES5Array\n\tdraft_: Drafted<AnyObject, ES5ArrayState>\n\tbase_: any\n\tcopy_: any\n}\n\n/** Map / Set plugin */\n\nexport interface MapState extends ImmerBaseState {\n\ttype_: ProxyType.Map\n\tcopy_: AnyMap | undefined\n\tassigned_: Map<any, boolean> | undefined\n\tbase_: AnyMap\n\trevoked_: boolean\n\tdraft_: Drafted<AnyMap, MapState>\n}\n\nexport interface SetState extends ImmerBaseState {\n\ttype_: ProxyType.Set\n\tcopy_: AnySet | undefined\n\tbase_: AnySet\n\tdrafts_: Map<any, Drafted> // maps the original value to the draft value in the new set\n\trevoked_: boolean\n\tdraft_: Drafted<AnySet, SetState>\n}\n\n/** Patches plugin */\n\nexport type PatchPath = (string | number)[]\n","import {\n\tPatch,\n\tPatchListener,\n\tDrafted,\n\tImmer,\n\tDRAFT_STATE,\n\tImmerState,\n\tProxyType,\n\tgetPlugin\n} from \"../internal\"\nimport {die} from \"../utils/errors\"\n\n/** Each scope represents a `produce` call. */\n\nexport interface ImmerScope {\n\tpatches_?: Patch[]\n\tinversePatches_?: Patch[]\n\tcanAutoFreeze_: boolean\n\tdrafts_: any[]\n\tparent_?: ImmerScope\n\tpatchListener_?: PatchListener\n\timmer_: Immer\n\tunfinalizedDrafts_: number\n}\n\nlet currentScope: ImmerScope | undefined\n\nexport function getCurrentScope() {\n\tif (__DEV__ && !currentScope) die(0)\n\treturn currentScope!\n}\n\nfunction createScope(\n\tparent_: ImmerScope | undefined,\n\timmer_: Immer\n): ImmerScope {\n\treturn {\n\t\tdrafts_: [],\n\t\tparent_,\n\t\timmer_,\n\t\t// Whenever the modified draft contains a draft from another scope, we\n\t\t// need to prevent auto-freezing so the unowned draft can be finalized.\n\t\tcanAutoFreeze_: true,\n\t\tunfinalizedDrafts_: 0\n\t}\n}\n\nexport function usePatchesInScope(\n\tscope: ImmerScope,\n\tpatchListener?: PatchListener\n) {\n\tif (patchListener) {\n\t\tgetPlugin(\"Patches\") // assert we have the plugin\n\t\tscope.patches_ = []\n\t\tscope.inversePatches_ = []\n\t\tscope.patchListener_ = patchListener\n\t}\n}\n\nexport function revokeScope(scope: ImmerScope) {\n\tleaveScope(scope)\n\tscope.drafts_.forEach(revokeDraft)\n\t// @ts-ignore\n\tscope.drafts_ = null\n}\n\nexport function leaveScope(scope: ImmerScope) {\n\tif (scope === currentScope) {\n\t\tcurrentScope = scope.parent_\n\t}\n}\n\nexport function enterScope(immer: Immer) {\n\treturn (currentScope = createScope(currentScope, immer))\n}\n\nfunction revokeDraft(draft: Drafted) {\n\tconst state: ImmerState = draft[DRAFT_STATE]\n\tif (\n\t\tstate.type_ === ProxyType.ProxyObject ||\n\t\tstate.type_ === ProxyType.ProxyArray\n\t)\n\t\tstate.revoke_()\n\telse state.revoked_ = true\n}\n","import {\n\tImmerScope,\n\tDRAFT_STATE,\n\tisDraftable,\n\tNOTHING,\n\tPatchPath,\n\teach,\n\thas,\n\tfreeze,\n\tImmerState,\n\tisDraft,\n\tSetState,\n\tset,\n\tProxyType,\n\tgetPlugin,\n\tdie,\n\trevokeScope,\n\tisFrozen,\n\tshallowCopy\n} from \"../internal\"\n\nexport function processResult(result: any, scope: ImmerScope) {\n\tscope.unfinalizedDrafts_ = scope.drafts_.length\n\tconst baseDraft = scope.drafts_![0]\n\tconst isReplaced = result !== undefined && result !== baseDraft\n\tif (!scope.immer_.useProxies_)\n\t\tgetPlugin(\"ES5\").willFinalizeES5_(scope, result, isReplaced)\n\tif (isReplaced) {\n\t\tif (baseDraft[DRAFT_STATE].modified_) {\n\t\t\trevokeScope(scope)\n\t\t\tdie(4)\n\t\t}\n\t\tif (isDraftable(result)) {\n\t\t\t// Finalize the result in case it contains (or is) a subset of the draft.\n\t\t\tresult = finalize(scope, result)\n\t\t\tif (!scope.parent_) maybeFreeze(scope, result)\n\t\t}\n\t\tif (scope.patches_) {\n\t\t\tgetPlugin(\"Patches\").generateReplacementPatches_(\n\t\t\t\tbaseDraft[DRAFT_STATE],\n\t\t\t\tresult,\n\t\t\t\tscope.patches_,\n\t\t\t\tscope.inversePatches_!\n\t\t\t)\n\t\t}\n\t} else {\n\t\t// Finalize the base draft.\n\t\tresult = finalize(scope, baseDraft, [])\n\t}\n\trevokeScope(scope)\n\tif (scope.patches_) {\n\t\tscope.patchListener_!(scope.patches_, scope.inversePatches_!)\n\t}\n\treturn result !== NOTHING ? result : undefined\n}\n\nfunction finalize(rootScope: ImmerScope, value: any, path?: PatchPath) {\n\t// Don't recurse in tho recursive data structures\n\tif (isFrozen(value)) return value\n\n\tconst state: ImmerState = value[DRAFT_STATE]\n\t// A plain object, might need freezing, might contain drafts\n\tif (!state) {\n\t\teach(\n\t\t\tvalue,\n\t\t\t(key, childValue) =>\n\t\t\t\tfinalizeProperty(rootScope, state, value, key, childValue, path),\n\t\t\ttrue // See #590, don't recurse into non-enumarable of non drafted objects\n\t\t)\n\t\treturn value\n\t}\n\t// Never finalize drafts owned by another scope.\n\tif (state.scope_ !== rootScope) return value\n\t// Unmodified draft, return the (frozen) original\n\tif (!state.modified_) {\n\t\tmaybeFreeze(rootScope, state.base_, true)\n\t\treturn state.base_\n\t}\n\t// Not finalized yet, let's do that now\n\tif (!state.finalized_) {\n\t\tstate.finalized_ = true\n\t\tstate.scope_.unfinalizedDrafts_--\n\t\tconst result =\n\t\t\t// For ES5, create a good copy from the draft first, with added keys and without deleted keys.\n\t\t\tstate.type_ === ProxyType.ES5Object || state.type_ === ProxyType.ES5Array\n\t\t\t\t? (state.copy_ = shallowCopy(state.draft_))\n\t\t\t\t: state.copy_\n\t\t// Finalize all children of the copy\n\t\t// For sets we clone before iterating, otherwise we can get in endless loop due to modifying during iteration, see #628\n\t\t// Although the original test case doesn't seem valid anyway, so if this in the way we can turn the next line\n\t\t// back to each(result, ....)\n\t\teach(\n\t\t\tstate.type_ === ProxyType.Set ? new Set(result) : result,\n\t\t\t(key, childValue) =>\n\t\t\t\tfinalizeProperty(rootScope, state, result, key, childValue, path)\n\t\t)\n\t\t// everything inside is frozen, we can freeze here\n\t\tmaybeFreeze(rootScope, result, false)\n\t\t// first time finalizing, let's create those patches\n\t\tif (path && rootScope.patches_) {\n\t\t\tgetPlugin(\"Patches\").generatePatches_(\n\t\t\t\tstate,\n\t\t\t\tpath,\n\t\t\t\trootScope.patches_,\n\t\t\t\trootScope.inversePatches_!\n\t\t\t)\n\t\t}\n\t}\n\treturn state.copy_\n}\n\nfunction finalizeProperty(\n\trootScope: ImmerScope,\n\tparentState: undefined | ImmerState,\n\ttargetObject: any,\n\tprop: string | number,\n\tchildValue: any,\n\trootPath?: PatchPath\n) {\n\tif (__DEV__ && childValue === targetObject) die(5)\n\tif (isDraft(childValue)) {\n\t\tconst path =\n\t\t\trootPath &&\n\t\t\tparentState &&\n\t\t\tparentState!.type_ !== ProxyType.Set && // Set objects are atomic since they have no keys.\n\t\t\t!has((parentState as Exclude<ImmerState, SetState>).assigned_!, prop) // Skip deep patches for assigned keys.\n\t\t\t\t? rootPath!.concat(prop)\n\t\t\t\t: undefined\n\t\t// Drafts owned by `scope` are finalized here.\n\t\tconst res = finalize(rootScope, childValue, path)\n\t\tset(targetObject, prop, res)\n\t\t// Drafts from another scope must prevented to be frozen\n\t\t// if we got a draft back from finalize, we're in a nested produce and shouldn't freeze\n\t\tif (isDraft(res)) {\n\t\t\trootScope.canAutoFreeze_ = false\n\t\t} else return\n\t}\n\t// Search new objects for unfinalized drafts. Frozen objects should never contain drafts.\n\tif (isDraftable(childValue) && !isFrozen(childValue)) {\n\t\tif (!rootScope.immer_.autoFreeze_ && rootScope.unfinalizedDrafts_ < 1) {\n\t\t\t// optimization: if an object is not a draft, and we don't have to\n\t\t\t// deepfreeze everything, and we are sure that no drafts are left in the remaining object\n\t\t\t// cause we saw and finalized all drafts already; we can stop visiting the rest of the tree.\n\t\t\t// This benefits especially adding large data tree's without further processing.\n\t\t\t// See add-data.js perf test\n\t\t\treturn\n\t\t}\n\t\tfinalize(rootScope, childValue)\n\t\t// immer deep freezes plain objects, so if there is no parent state, we freeze as well\n\t\tif (!parentState || !parentState.scope_.parent_)\n\t\t\tmaybeFreeze(rootScope, childValue)\n\t}\n}\n\nfunction maybeFreeze(scope: ImmerScope, value: any, deep = false) {\n\tif (scope.immer_.autoFreeze_ && scope.canAutoFreeze_) {\n\t\tfreeze(value, deep)\n\t}\n}\n","import {\n\teach,\n\thas,\n\tis,\n\tisDraftable,\n\tshallowCopy,\n\tlatest,\n\tImmerBaseState,\n\tImmerState,\n\tDrafted,\n\tAnyObject,\n\tAnyArray,\n\tObjectish,\n\tgetCurrentScope,\n\tDRAFT_STATE,\n\tdie,\n\tcreateProxy,\n\tProxyType\n} from \"../internal\"\n\ninterface ProxyBaseState extends ImmerBaseState {\n\tassigned_: {\n\t\t[property: string]: boolean\n\t}\n\tparent_?: ImmerState\n\trevoke_(): void\n}\n\nexport interface ProxyObjectState extends ProxyBaseState {\n\ttype_: ProxyType.ProxyObject\n\tbase_: any\n\tcopy_: any\n\tdraft_: Drafted<AnyObject, ProxyObjectState>\n}\n\nexport interface ProxyArrayState extends ProxyBaseState {\n\ttype_: ProxyType.ProxyArray\n\tbase_: AnyArray\n\tcopy_: AnyArray | null\n\tdraft_: Drafted<AnyArray, ProxyArrayState>\n}\n\ntype ProxyState = ProxyObjectState | ProxyArrayState\n\n/**\n * Returns a new draft of the `base` object.\n *\n * The second argument is the parent draft-state (used internally).\n */\nexport function createProxyProxy<T extends Objectish>(\n\tbase: T,\n\tparent?: ImmerState\n): Drafted<T, ProxyState> {\n\tconst isArray = Array.isArray(base)\n\tconst state: ProxyState = {\n\t\ttype_: isArray ? ProxyType.ProxyArray : (ProxyType.ProxyObject as any),\n\t\t// Track which produce call this is associated with.\n\t\tscope_: parent ? parent.scope_ : getCurrentScope()!,\n\t\t// True for both shallow and deep changes.\n\t\tmodified_: false,\n\t\t// Used during finalization.\n\t\tfinalized_: false,\n\t\t// Track which properties have been assigned (true) or deleted (false).\n\t\tassigned_: {},\n\t\t// The parent draft state.\n\t\tparent_: parent,\n\t\t// The base state.\n\t\tbase_: base,\n\t\t// The base proxy.\n\t\tdraft_: null as any, // set below\n\t\t// The base copy with any updated values.\n\t\tcopy_: null,\n\t\t// Called by the `produce` function.\n\t\trevoke_: null as any,\n\t\tisManual_: false\n\t}\n\n\t// the traps must target something, a bit like the 'real' base.\n\t// but also, we need to be able to determine from the target what the relevant state is\n\t// (to avoid creating traps per instance to capture the state in closure,\n\t// and to avoid creating weird hidden properties as well)\n\t// So the trick is to use 'state' as the actual 'target'! (and make sure we intercept everything)\n\t// Note that in the case of an array, we put the state in an array to have better Reflect defaults ootb\n\tlet target: T = state as any\n\tlet traps: ProxyHandler<object | Array<any>> = objectTraps\n\tif (isArray) {\n\t\ttarget = [state] as any\n\t\ttraps = arrayTraps\n\t}\n\n\tconst {revoke, proxy} = Proxy.revocable(target, traps)\n\tstate.draft_ = proxy as any\n\tstate.revoke_ = revoke\n\treturn proxy as any\n}\n\n/**\n * Object drafts\n */\nexport const objectTraps: ProxyHandler<ProxyState> = {\n\tget(state, prop) {\n\t\tif (prop === DRAFT_STATE) return state\n\n\t\tconst source = latest(state)\n\t\tif (!has(source, prop)) {\n\t\t\t// non-existing or non-own property...\n\t\t\treturn readPropFromProto(state, source, prop)\n\t\t}\n\t\tconst value = source[prop]\n\t\tif (state.finalized_ || !isDraftable(value)) {\n\t\t\treturn value\n\t\t}\n\t\t// Check for existing draft in modified state.\n\t\t// Assigned values are never drafted. This catches any drafts we created, too.\n\t\tif (value === peek(state.base_, prop)) {\n\t\t\tprepareCopy(state)\n\t\t\treturn (state.copy_![prop as any] = createProxy(\n\t\t\t\tstate.scope_.immer_,\n\t\t\t\tvalue,\n\t\t\t\tstate\n\t\t\t))\n\t\t}\n\t\treturn value\n\t},\n\thas(state, prop) {\n\t\treturn prop in latest(state)\n\t},\n\townKeys(state) {\n\t\treturn Reflect.ownKeys(latest(state))\n\t},\n\tset(\n\t\tstate: ProxyObjectState,\n\t\tprop: string /* strictly not, but helps TS */,\n\t\tvalue\n\t) {\n\t\tconst desc = getDescriptorFromProto(latest(state), prop)\n\t\tif (desc?.set) {\n\t\t\t// special case: if this write is captured by a setter, we have\n\t\t\t// to trigger it with the correct context\n\t\t\tdesc.set.call(state.draft_, value)\n\t\t\treturn true\n\t\t}\n\t\tif (!state.modified_) {\n\t\t\t// the last check is because we need to be able to distinguish setting a non-existing to undefined (which is a change)\n\t\t\t// from setting an existing property with value undefined to undefined (which is not a change)\n\t\t\tconst current = peek(latest(state), prop)\n\t\t\t// special case, if we assigning the original value to a draft, we can ignore the assignment\n\t\t\tconst currentState: ProxyObjectState = current?.[DRAFT_STATE]\n\t\t\tif (currentState && currentState.base_ === value) {\n\t\t\t\tstate.copy_![prop] = value\n\t\t\t\tstate.assigned_[prop] = false\n\t\t\t\treturn true\n\t\t\t}\n\t\t\tif (is(value, current) && (value !== undefined || has(state.base_, prop)))\n\t\t\t\treturn true\n\t\t\tprepareCopy(state)\n\t\t\tmarkChanged(state)\n\t\t}\n\n\t\tif (\n\t\t\tstate.copy_![prop] === value &&\n\t\t\t// special case: NaN\n\t\t\ttypeof value !== \"number\" &&\n\t\t\t// special case: handle new props with value 'undefined'\n\t\t\t(value !== undefined || prop in state.copy_)\n\t\t)\n\t\t\treturn true\n\n\t\t// @ts-ignore\n\t\tstate.copy_![prop] = value\n\t\tstate.assigned_[prop] = true\n\t\treturn true\n\t},\n\tdeleteProperty(state, prop: string) {\n\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\tif (peek(state.base_, prop) !== undefined || prop in state.base_) {\n\t\t\tstate.assigned_[prop] = false\n\t\t\tprepareCopy(state)\n\t\t\tmarkChanged(state)\n\t\t} else {\n\t\t\t// if an originally not assigned property was deleted\n\t\t\tdelete state.assigned_[prop]\n\t\t}\n\t\t// @ts-ignore\n\t\tif (state.copy_) delete state.copy_[prop]\n\t\treturn true\n\t},\n\t// Note: We never coerce `desc.value` into an Immer draft, because we can't make\n\t// the same guarantee in ES5 mode.\n\tgetOwnPropertyDescriptor(state, prop) {\n\t\tconst owner = latest(state)\n\t\tconst desc = Reflect.getOwnPropertyDescriptor(owner, prop)\n\t\tif (!desc) return desc\n\t\treturn {\n\t\t\twritable: true,\n\t\t\tconfigurable: state.type_ !== ProxyType.ProxyArray || prop !== \"length\",\n\t\t\tenumerable: desc.enumerable,\n\t\t\tvalue: owner[prop]\n\t\t}\n\t},\n\tdefineProperty() {\n\t\tdie(11)\n\t},\n\tgetPrototypeOf(state) {\n\t\treturn Object.getPrototypeOf(state.base_)\n\t},\n\tsetPrototypeOf() {\n\t\tdie(12)\n\t}\n}\n\n/**\n * Array drafts\n */\n\nconst arrayTraps: ProxyHandler<[ProxyArrayState]> = {}\neach(objectTraps, (key, fn) => {\n\t// @ts-ignore\n\tarrayTraps[key] = function() {\n\t\targuments[0] = arguments[0][0]\n\t\treturn fn.apply(this, arguments)\n\t}\n})\narrayTraps.deleteProperty = function(state, prop) {\n\tif (__DEV__ && isNaN(parseInt(prop as any))) die(13)\n\treturn objectTraps.deleteProperty!.call(this, state[0], prop)\n}\narrayTraps.set = function(state, prop, value) {\n\tif (__DEV__ && prop !== \"length\" && isNaN(parseInt(prop as any))) die(14)\n\treturn objectTraps.set!.call(this, state[0], prop, value, state[0])\n}\n\n// Access a property without creating an Immer draft.\nfunction peek(draft: Drafted, prop: PropertyKey) {\n\tconst state = draft[DRAFT_STATE]\n\tconst source = state ? latest(state) : draft\n\treturn source[prop]\n}\n\nfunction readPropFromProto(state: ImmerState, source: any, prop: PropertyKey) {\n\tconst desc = getDescriptorFromProto(source, prop)\n\treturn desc\n\t\t? `value` in desc\n\t\t\t? desc.value\n\t\t\t: // This is a very special case, if the prop is a getter defined by the\n\t\t\t // prototype, we should invoke it with the draft as context!\n\t\t\t desc.get?.call(state.draft_)\n\t\t: undefined\n}\n\nfunction getDescriptorFromProto(\n\tsource: any,\n\tprop: PropertyKey\n): PropertyDescriptor | undefined {\n\t// 'in' checks proto!\n\tif (!(prop in source)) return undefined\n\tlet proto = Object.getPrototypeOf(source)\n\twhile (proto) {\n\t\tconst desc = Object.getOwnPropertyDescriptor(proto, prop)\n\t\tif (desc) return desc\n\t\tproto = Object.getPrototypeOf(proto)\n\t}\n\treturn undefined\n}\n\nexport function markChanged(state: ImmerState) {\n\tif (!state.modified_) {\n\t\tstate.modified_ = true\n\t\tif (state.parent_) {\n\t\t\tmarkChanged(state.parent_)\n\t\t}\n\t}\n}\n\nexport function prepareCopy(state: {base_: any; copy_: any}) {\n\tif (!state.copy_) {\n\t\tstate.copy_ = shallowCopy(state.base_)\n\t}\n}\n","import {\n\tIProduceWithPatches,\n\tIProduce,\n\tImmerState,\n\tDrafted,\n\tisDraftable,\n\tprocessResult,\n\tPatch,\n\tObjectish,\n\tDRAFT_STATE,\n\tDraft,\n\tPatchListener,\n\tisDraft,\n\tisMap,\n\tisSet,\n\tcreateProxyProxy,\n\tgetPlugin,\n\tdie,\n\thasProxies,\n\tenterScope,\n\trevokeScope,\n\tleaveScope,\n\tusePatchesInScope,\n\tgetCurrentScope,\n\tNOTHING,\n\tfreeze,\n\tcurrent\n} from \"../internal\"\n\ninterface ProducersFns {\n\tproduce: IProduce\n\tproduceWithPatches: IProduceWithPatches\n}\n\nexport class Immer implements ProducersFns {\n\tuseProxies_: boolean = hasProxies\n\n\tautoFreeze_: boolean = true\n\n\tconstructor(config?: {useProxies?: boolean; autoFreeze?: boolean}) {\n\t\tif (typeof config?.useProxies === \"boolean\")\n\t\t\tthis.setUseProxies(config!.useProxies)\n\t\tif (typeof config?.autoFreeze === \"boolean\")\n\t\t\tthis.setAutoFreeze(config!.autoFreeze)\n\t}\n\n\t/**\n\t * The `produce` function takes a value and a \"recipe function\" (whose\n\t * return value often depends on the base state). The recipe function is\n\t * free to mutate its first argument however it wants. All mutations are\n\t * only ever applied to a __copy__ of the base state.\n\t *\n\t * Pass only a function to create a \"curried producer\" which relieves you\n\t * from passing the recipe function every time.\n\t *\n\t * Only plain objects and arrays are made mutable. All other objects are\n\t * considered uncopyable.\n\t *\n\t * Note: This function is __bound__ to its `Immer` instance.\n\t *\n\t * @param {any} base - the initial state\n\t * @param {Function} producer - function that receives a proxy of the base state as first argument and which can be freely modified\n\t * @param {Function} patchListener - optional function that will be called with all the patches produced here\n\t * @returns {any} a new state, or the initial state if nothing was modified\n\t */\n\tproduce: IProduce = (base: any, recipe?: any, patchListener?: any) => {\n\t\t// curried invocation\n\t\tif (typeof base === \"function\" && typeof recipe !== \"function\") {\n\t\t\tconst defaultBase = recipe\n\t\t\trecipe = base\n\n\t\t\tconst self = this\n\t\t\treturn function curriedProduce(\n\t\t\t\tthis: any,\n\t\t\t\tbase = defaultBase,\n\t\t\t\t...args: any[]\n\t\t\t) {\n\t\t\t\treturn self.produce(base, (draft: Drafted) => recipe.call(this, draft, ...args)) // prettier-ignore\n\t\t\t}\n\t\t}\n\n\t\tif (typeof recipe !== \"function\") die(6)\n\t\tif (patchListener !== undefined && typeof patchListener !== \"function\")\n\t\t\tdie(7)\n\n\t\tlet result\n\n\t\t// Only plain objects, arrays, and \"immerable classes\" are drafted.\n\t\tif (isDraftable(base)) {\n\t\t\tconst scope = enterScope(this)\n\t\t\tconst proxy = createProxy(this, base, undefined)\n\t\t\tlet hasError = true\n\t\t\ttry {\n\t\t\t\tresult = recipe(proxy)\n\t\t\t\thasError = false\n\t\t\t} finally {\n\t\t\t\t// finally instead of catch + rethrow better preserves original stack\n\t\t\t\tif (hasError) revokeScope(scope)\n\t\t\t\telse leaveScope(scope)\n\t\t\t}\n\t\t\tif (typeof Promise !== \"undefined\" && result instanceof Promise) {\n\t\t\t\treturn result.then(\n\t\t\t\t\tresult => {\n\t\t\t\t\t\tusePatchesInScope(scope, patchListener)\n\t\t\t\t\t\treturn processResult(result, scope)\n\t\t\t\t\t},\n\t\t\t\t\terror => {\n\t\t\t\t\t\trevokeScope(scope)\n\t\t\t\t\t\tthrow error\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t}\n\t\t\tusePatchesInScope(scope, patchListener)\n\t\t\treturn processResult(result, scope)\n\t\t} else if (!base || typeof base !== \"object\") {\n\t\t\tresult = recipe(base)\n\t\t\tif (result === NOTHING) return undefined\n\t\t\tif (result === undefined) result = base\n\t\t\tif (this.autoFreeze_) freeze(result, true)\n\t\t\treturn result\n\t\t} else die(21, base)\n\t}\n\n\tproduceWithPatches: IProduceWithPatches = (\n\t\targ1: any,\n\t\targ2?: any,\n\t\targ3?: any\n\t): any => {\n\t\tif (typeof arg1 === \"function\") {\n\t\t\treturn (state: any, ...args: any[]) =>\n\t\t\t\tthis.produceWithPatches(state, (draft: any) => arg1(draft, ...args))\n\t\t}\n\n\t\tlet patches: Patch[], inversePatches: Patch[]\n\t\tconst nextState = this.produce(arg1, arg2, (p: Patch[], ip: Patch[]) => {\n\t\t\tpatches = p\n\t\t\tinversePatches = ip\n\t\t})\n\t\treturn [nextState, patches!, inversePatches!]\n\t}\n\n\tcreateDraft<T extends Objectish>(base: T): Draft<T> {\n\t\tif (!isDraftable(base)) die(8)\n\t\tif (isDraft(base)) base = current(base)\n\t\tconst scope = enterScope(this)\n\t\tconst proxy = createProxy(this, base, undefined)\n\t\tproxy[DRAFT_STATE].isManual_ = true\n\t\tleaveScope(scope)\n\t\treturn proxy as any\n\t}\n\n\tfinishDraft<D extends Draft<any>>(\n\t\tdraft: D,\n\t\tpatchListener?: PatchListener\n\t): D extends Draft<infer T> ? T : never {\n\t\tconst state: ImmerState = draft && (draft as any)[DRAFT_STATE]\n\t\tif (__DEV__) {\n\t\t\tif (!state || !state.isManual_) die(9)\n\t\t\tif (state.finalized_) die(10)\n\t\t}\n\t\tconst {scope_: scope} = state\n\t\tusePatchesInScope(scope, patchListener)\n\t\treturn processResult(undefined, scope)\n\t}\n\n\t/**\n\t * Pass true to automatically freeze all copies created by Immer.\n\t *\n\t * By default, auto-freezing is enabled.\n\t */\n\tsetAutoFreeze(value: boolean) {\n\t\tthis.autoFreeze_ = value\n\t}\n\n\t/**\n\t * Pass true to use the ES2015 `Proxy` class when creating drafts, which is\n\t * always faster than using ES5 proxies.\n\t *\n\t * By default, feature detection is used, so calling this is rarely necessary.\n\t */\n\tsetUseProxies(value: boolean) {\n\t\tif (value && !hasProxies) {\n\t\t\tdie(20)\n\t\t}\n\t\tthis.useProxies_ = value\n\t}\n\n\tapplyPatches<T extends Objectish>(base: T, patches: Patch[]): T {\n\t\t// If a patch replaces the entire state, take that replacement as base\n\t\t// before applying patches\n\t\tlet i: number\n\t\tfor (i = patches.length - 1; i >= 0; i--) {\n\t\t\tconst patch = patches[i]\n\t\t\tif (patch.path.length === 0 && patch.op === \"replace\") {\n\t\t\t\tbase = patch.value\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\tconst applyPatchesImpl = getPlugin(\"Patches\").applyPatches_\n\t\tif (isDraft(base)) {\n\t\t\t// N.B: never hits if some patch a replacement, patches are never drafts\n\t\t\treturn applyPatchesImpl(base, patches) as any\n\t\t}\n\t\t// Otherwise, produce a copy of the base state.\n\t\treturn this.produce(base, (draft: Drafted) =>\n\t\t\tapplyPatchesImpl(draft, patches.slice(i + 1))\n\t\t) as any\n\t}\n}\n\nexport function createProxy<T extends Objectish>(\n\timmer: Immer,\n\tvalue: T,\n\tparent?: ImmerState\n): Drafted<T, ImmerState> {\n\t// precondition: createProxy should be guarded by isDraftable, so we know we can safely draft\n\tconst draft: Drafted = isMap(value)\n\t\t? getPlugin(\"MapSet\").proxyMap_(value, parent)\n\t\t: isSet(value)\n\t\t? getPlugin(\"MapSet\").proxySet_(value, parent)\n\t\t: immer.useProxies_\n\t\t? createProxyProxy(value, parent)\n\t\t: getPlugin(\"ES5\").createES5Proxy_(value, parent)\n\n\tconst scope = parent ? parent.scope_ : getCurrentScope()\n\tscope.drafts_.push(draft)\n\treturn draft\n}\n","import {\n\tdie,\n\tisDraft,\n\tshallowCopy,\n\teach,\n\tDRAFT_STATE,\n\tget,\n\tset,\n\tImmerState,\n\tisDraftable,\n\tArchtype,\n\tgetArchtype,\n\tgetPlugin\n} from \"../internal\"\n\n/** Takes a snapshot of the current state of a draft and finalizes it (but without freezing). This is a great utility to print the current state during debugging (no Proxies in the way). The output of current can also be safely leaked outside the producer. */\nexport function current<T>(value: T): T\nexport function current(value: any): any {\n\tif (!isDraft(value)) die(22, value)\n\treturn currentImpl(value)\n}\n\nfunction currentImpl(value: any): any {\n\tif (!isDraftable(value)) return value\n\tconst state: ImmerState | undefined = value[DRAFT_STATE]\n\tlet copy: any\n\tconst archType = getArchtype(value)\n\tif (state) {\n\t\tif (\n\t\t\t!state.modified_ &&\n\t\t\t(state.type_ < 4 || !getPlugin(\"ES5\").hasChanges_(state as any))\n\t\t)\n\t\t\treturn state.base_\n\t\t// Optimization: avoid generating new drafts during copying\n\t\tstate.finalized_ = true\n\t\tcopy = copyHelper(value, archType)\n\t\tstate.finalized_ = false\n\t} else {\n\t\tcopy = copyHelper(value, archType)\n\t}\n\n\teach(copy, (key, childValue) => {\n\t\tif (state && get(state.base_, key) === childValue) return // no need to copy or search in something that didn't change\n\t\tset(copy, key, currentImpl(childValue))\n\t})\n\t// In the future, we might consider freezing here, based on the current settings\n\treturn archType === Archtype.Set ? new Set(copy) : copy\n}\n\nfunction copyHelper(value: any, archType: number): any {\n\t// creates a shallow copy, even if it is a map or set\n\tswitch (archType) {\n\t\tcase Archtype.Map:\n\t\t\treturn new Map(value)\n\t\tcase Archtype.Set:\n\t\t\t// Set will be cloned as array temporarily, so that we can replace individual items\n\t\t\treturn Array.from(value)\n\t}\n\treturn shallowCopy(value)\n}\n","import {\n\tImmerState,\n\tDrafted,\n\tES5ArrayState,\n\tES5ObjectState,\n\teach,\n\thas,\n\tisDraft,\n\tlatest,\n\tDRAFT_STATE,\n\tis,\n\tloadPlugin,\n\tImmerScope,\n\tProxyType,\n\tgetCurrentScope,\n\tdie,\n\tmarkChanged,\n\tobjectTraps,\n\townKeys,\n\tgetOwnPropertyDescriptors\n} from \"../internal\"\n\ntype ES5State = ES5ArrayState | ES5ObjectState\n\nexport function enableES5() {\n\tfunction willFinalizeES5_(\n\t\tscope: ImmerScope,\n\t\tresult: any,\n\t\tisReplaced: boolean\n\t) {\n\t\tif (!isReplaced) {\n\t\t\tif (scope.patches_) {\n\t\t\t\tmarkChangesRecursively(scope.drafts_![0])\n\t\t\t}\n\t\t\t// This is faster when we don't care about which attributes changed.\n\t\t\tmarkChangesSweep(scope.drafts_)\n\t\t}\n\t\t// When a child draft is returned, look for changes.\n\t\telse if (\n\t\t\tisDraft(result) &&\n\t\t\t(result[DRAFT_STATE] as ES5State).scope_ === scope\n\t\t) {\n\t\t\tmarkChangesSweep(scope.drafts_)\n\t\t}\n\t}\n\n\tfunction createES5Draft(isArray: boolean, base: any) {\n\t\tif (isArray) {\n\t\t\tconst draft = new Array(base.length)\n\t\t\tfor (let i = 0; i < base.length; i++)\n\t\t\t\tObject.defineProperty(draft, \"\" + i, proxyProperty(i, true))\n\t\t\treturn draft\n\t\t} else {\n\t\t\tconst descriptors = getOwnPropertyDescriptors(base)\n\t\t\tdelete descriptors[DRAFT_STATE as any]\n\t\t\tconst keys = ownKeys(descriptors)\n\t\t\tfor (let i = 0; i < keys.length; i++) {\n\t\t\t\tconst key: any = keys[i]\n\t\t\t\tdescriptors[key] = proxyProperty(\n\t\t\t\t\tkey,\n\t\t\t\t\tisArray || !!descriptors[key].enumerable\n\t\t\t\t)\n\t\t\t}\n\t\t\treturn Object.create(Object.getPrototypeOf(base), descriptors)\n\t\t}\n\t}\n\n\tfunction createES5Proxy_<T>(\n\t\tbase: T,\n\t\tparent?: ImmerState\n\t): Drafted<T, ES5ObjectState | ES5ArrayState> {\n\t\tconst isArray = Array.isArray(base)\n\t\tconst draft = createES5Draft(isArray, base)\n\n\t\tconst state: ES5ObjectState | ES5ArrayState = {\n\t\t\ttype_: isArray ? ProxyType.ES5Array : (ProxyType.ES5Object as any),\n\t\t\tscope_: parent ? parent.scope_ : getCurrentScope(),\n\t\t\tmodified_: false,\n\t\t\tfinalized_: false,\n\t\t\tassigned_: {},\n\t\t\tparent_: parent,\n\t\t\t// base is the object we are drafting\n\t\t\tbase_: base,\n\t\t\t// draft is the draft object itself, that traps all reads and reads from either the base (if unmodified) or copy (if modified)\n\t\t\tdraft_: draft,\n\t\t\tcopy_: null,\n\t\t\trevoked_: false,\n\t\t\tisManual_: false\n\t\t}\n\n\t\tObject.defineProperty(draft, DRAFT_STATE, {\n\t\t\tvalue: state,\n\t\t\t// enumerable: false <- the default\n\t\t\twritable: true\n\t\t})\n\t\treturn draft\n\t}\n\n\t// property descriptors are recycled to make sure we don't create a get and set closure per property,\n\t// but share them all instead\n\tconst descriptors: {[prop: string]: PropertyDescriptor} = {}\n\n\tfunction proxyProperty(\n\t\tprop: string | number,\n\t\tenumerable: boolean\n\t): PropertyDescriptor {\n\t\tlet desc = descriptors[prop]\n\t\tif (desc) {\n\t\t\tdesc.enumerable = enumerable\n\t\t} else {\n\t\t\tdescriptors[prop] = desc = {\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable,\n\t\t\t\tget(this: any) {\n\t\t\t\t\tconst state = this[DRAFT_STATE]\n\t\t\t\t\tif (__DEV__) assertUnrevoked(state)\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\treturn objectTraps.get(state, prop)\n\t\t\t\t},\n\t\t\t\tset(this: any, value) {\n\t\t\t\t\tconst state = this[DRAFT_STATE]\n\t\t\t\t\tif (__DEV__) assertUnrevoked(state)\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tobjectTraps.set(state, prop, value)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn desc\n\t}\n\n\t// This looks expensive, but only proxies are visited, and only objects without known changes are scanned.\n\tfunction markChangesSweep(drafts: Drafted<any, ImmerState>[]) {\n\t\t// The natural order of drafts in the `scope` array is based on when they\n\t\t// were accessed. By processing drafts in reverse natural order, we have a\n\t\t// better chance of processing leaf nodes first. When a leaf node is known to\n\t\t// have changed, we can avoid any traversal of its ancestor nodes.\n\t\tfor (let i = drafts.length - 1; i >= 0; i--) {\n\t\t\tconst state: ES5State = drafts[i][DRAFT_STATE]\n\t\t\tif (!state.modified_) {\n\t\t\t\tswitch (state.type_) {\n\t\t\t\t\tcase ProxyType.ES5Array:\n\t\t\t\t\t\tif (hasArrayChanges(state)) markChanged(state)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase ProxyType.ES5Object:\n\t\t\t\t\t\tif (hasObjectChanges(state)) markChanged(state)\n\t\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction markChangesRecursively(object: any) {\n\t\tif (!object || typeof object !== \"object\") return\n\t\tconst state: ES5State | undefined = object[DRAFT_STATE]\n\t\tif (!state) return\n\t\tconst {base_, draft_, assigned_, type_} = state\n\t\tif (type_ === ProxyType.ES5Object) {\n\t\t\t// Look for added keys.\n\t\t\t// probably there is a faster way to detect changes, as sweep + recurse seems to do some\n\t\t\t// unnecessary work.\n\t\t\t// also: probably we can store the information we detect here, to speed up tree finalization!\n\t\t\teach(draft_, key => {\n\t\t\t\tif ((key as any) === DRAFT_STATE) return\n\t\t\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\t\t\tif ((base_ as any)[key] === undefined && !has(base_, key)) {\n\t\t\t\t\tassigned_[key] = true\n\t\t\t\t\tmarkChanged(state)\n\t\t\t\t} else if (!assigned_[key]) {\n\t\t\t\t\t// Only untouched properties trigger recursion.\n\t\t\t\t\tmarkChangesRecursively(draft_[key])\n\t\t\t\t}\n\t\t\t})\n\t\t\t// Look for removed keys.\n\t\t\teach(base_, key => {\n\t\t\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\t\t\tif (draft_[key] === undefined && !has(draft_, key)) {\n\t\t\t\t\tassigned_[key] = false\n\t\t\t\t\tmarkChanged(state)\n\t\t\t\t}\n\t\t\t})\n\t\t} else if (type_ === ProxyType.ES5Array) {\n\t\t\tif (hasArrayChanges(state as ES5ArrayState)) {\n\t\t\t\tmarkChanged(state)\n\t\t\t\tassigned_.length = true\n\t\t\t}\n\n\t\t\tif (draft_.length < base_.length) {\n\t\t\t\tfor (let i = draft_.length; i < base_.length; i++) assigned_[i] = false\n\t\t\t} else {\n\t\t\t\tfor (let i = base_.length; i < draft_.length; i++) assigned_[i] = true\n\t\t\t}\n\n\t\t\t// Minimum count is enough, the other parts has been processed.\n\t\t\tconst min = Math.min(draft_.length, base_.length)\n\n\t\t\tfor (let i = 0; i < min; i++) {\n\t\t\t\t// Only untouched indices trigger recursion.\n\t\t\t\tif (assigned_[i] === undefined) markChangesRecursively(draft_[i])\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction hasObjectChanges(state: ES5ObjectState) {\n\t\tconst {base_, draft_} = state\n\n\t\t// Search for added keys and changed keys. Start at the back, because\n\t\t// non-numeric keys are ordered by time of definition on the object.\n\t\tconst keys = ownKeys(draft_)\n\t\tfor (let i = keys.length - 1; i >= 0; i--) {\n\t\t\tconst key: any = keys[i]\n\t\t\tif (key === DRAFT_STATE) continue\n\t\t\tconst baseValue = base_[key]\n\t\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\t\tif (baseValue === undefined && !has(base_, key)) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\t// Once a base key is deleted, future changes go undetected, because its\n\t\t\t// descriptor is erased. This branch detects any missed changes.\n\t\t\telse {\n\t\t\t\tconst value = draft_[key]\n\t\t\t\tconst state: ImmerState = value && value[DRAFT_STATE]\n\t\t\t\tif (state ? state.base_ !== baseValue : !is(value, baseValue)) {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// At this point, no keys were added or changed.\n\t\t// Compare key count to determine if keys were deleted.\n\t\tconst baseIsDraft = !!base_[DRAFT_STATE as any]\n\t\treturn keys.length !== ownKeys(base_).length + (baseIsDraft ? 0 : 1) // + 1 to correct for DRAFT_STATE\n\t}\n\n\tfunction hasArrayChanges(state: ES5ArrayState) {\n\t\tconst {draft_} = state\n\t\tif (draft_.length !== state.base_.length) return true\n\t\t// See #116\n\t\t// If we first shorten the length, our array interceptors will be removed.\n\t\t// If after that new items are added, result in the same original length,\n\t\t// those last items will have no intercepting property.\n\t\t// So if there is no own descriptor on the last position, we know that items were removed and added\n\t\t// N.B.: splice, unshift, etc only shift values around, but not prop descriptors, so we only have to check\n\t\t// the last one\n\t\tconst descriptor = Object.getOwnPropertyDescriptor(\n\t\t\tdraft_,\n\t\t\tdraft_.length - 1\n\t\t)\n\t\t// descriptor can be null, but only for newly created sparse arrays, eg. new Array(10)\n\t\tif (descriptor && !descriptor.get) return true\n\t\t// For all other cases, we don't have to compare, as they would have been picked up by the index setters\n\t\treturn false\n\t}\n\n\tfunction hasChanges_(state: ES5State) {\n\t\treturn state.type_ === ProxyType.ES5Object\n\t\t\t? hasObjectChanges(state)\n\t\t\t: hasArrayChanges(state)\n\t}\n\n\tfunction assertUnrevoked(state: any /*ES5State | MapState | SetState*/) {\n\t\tif (state.revoked_) die(3, JSON.stringify(latest(state)))\n\t}\n\n\tloadPlugin(\"ES5\", {\n\t\tcreateES5Proxy_,\n\t\twillFinalizeES5_,\n\t\thasChanges_\n\t})\n}\n","import {immerable} from \"../immer\"\nimport {\n\tImmerState,\n\tPatch,\n\tSetState,\n\tES5ArrayState,\n\tProxyArrayState,\n\tMapState,\n\tES5ObjectState,\n\tProxyObjectState,\n\tPatchPath,\n\tget,\n\teach,\n\thas,\n\tgetArchtype,\n\tisSet,\n\tisMap,\n\tloadPlugin,\n\tProxyType,\n\tArchtype,\n\tdie,\n\tisDraft,\n\tisDraftable,\n\tNOTHING\n} from \"../internal\"\n\nexport function enablePatches() {\n\tconst REPLACE = \"replace\"\n\tconst ADD = \"add\"\n\tconst REMOVE = \"remove\"\n\n\tfunction generatePatches_(\n\t\tstate: ImmerState,\n\t\tbasePath: PatchPath,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t): void {\n\t\tswitch (state.type_) {\n\t\t\tcase ProxyType.ProxyObject:\n\t\t\tcase ProxyType.ES5Object:\n\t\t\tcase ProxyType.Map:\n\t\t\t\treturn generatePatchesFromAssigned(\n\t\t\t\t\tstate,\n\t\t\t\t\tbasePath,\n\t\t\t\t\tpatches,\n\t\t\t\t\tinversePatches\n\t\t\t\t)\n\t\t\tcase ProxyType.ES5Array:\n\t\t\tcase ProxyType.ProxyArray:\n\t\t\t\treturn generateArrayPatches(state, basePath, patches, inversePatches)\n\t\t\tcase ProxyType.Set:\n\t\t\t\treturn generateSetPatches(\n\t\t\t\t\t(state as any) as SetState,\n\t\t\t\t\tbasePath,\n\t\t\t\t\tpatches,\n\t\t\t\t\tinversePatches\n\t\t\t\t)\n\t\t}\n\t}\n\n\tfunction generateArrayPatches(\n\t\tstate: ES5ArrayState | ProxyArrayState,\n\t\tbasePath: PatchPath,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t) {\n\t\tlet {base_, assigned_} = state\n\t\tlet copy_ = state.copy_!\n\n\t\t// Reduce complexity by ensuring `base` is never longer.\n\t\tif (copy_.length < base_.length) {\n\t\t\t// @ts-ignore\n\t\t\t;[base_, copy_] = [copy_, base_]\n\t\t\t;[patches, inversePatches] = [inversePatches, patches]\n\t\t}\n\n\t\t// Process replaced indices.\n\t\tfor (let i = 0; i < base_.length; i++) {\n\t\t\tif (assigned_[i] && copy_[i] !== base_[i]) {\n\t\t\t\tconst path = basePath.concat([i])\n\t\t\t\tpatches.push({\n\t\t\t\t\top: REPLACE,\n\t\t\t\t\tpath,\n\t\t\t\t\t// Need to maybe clone it, as it can in fact be the original value\n\t\t\t\t\t// due to the base/copy inversion at the start of this function\n\t\t\t\t\tvalue: clonePatchValueIfNeeded(copy_[i])\n\t\t\t\t})\n\t\t\t\tinversePatches.push({\n\t\t\t\t\top: REPLACE,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue: clonePatchValueIfNeeded(base_[i])\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t\t// Process added indices.\n\t\tfor (let i = base_.length; i < copy_.length; i++) {\n\t\t\tconst path = basePath.concat([i])\n\t\t\tpatches.push({\n\t\t\t\top: ADD,\n\t\t\t\tpath,\n\t\t\t\t// Need to maybe clone it, as it can in fact be the original value\n\t\t\t\t// due to the base/copy inversion at the start of this function\n\t\t\t\tvalue: clonePatchValueIfNeeded(copy_[i])\n\t\t\t})\n\t\t}\n\t\tif (base_.length < copy_.length) {\n\t\t\tinversePatches.push({\n\t\t\t\top: REPLACE,\n\t\t\t\tpath: basePath.concat([\"length\"]),\n\t\t\t\tvalue: base_.length\n\t\t\t})\n\t\t}\n\t}\n\n\t// This is used for both Map objects and normal objects.\n\tfunction generatePatchesFromAssigned(\n\t\tstate: MapState | ES5ObjectState | ProxyObjectState,\n\t\tbasePath: PatchPath,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t) {\n\t\tconst {base_, copy_} = state\n\t\teach(state.assigned_!, (key, assignedValue) => {\n\t\t\tconst origValue = get(base_, key)\n\t\t\tconst value = get(copy_!, key)\n\t\t\tconst op = !assignedValue ? REMOVE : has(base_, key) ? REPLACE : ADD\n\t\t\tif (origValue === value && op === REPLACE) return\n\t\t\tconst path = basePath.concat(key as any)\n\t\t\tpatches.push(op === REMOVE ? {op, path} : {op, path, value})\n\t\t\tinversePatches.push(\n\t\t\t\top === ADD\n\t\t\t\t\t? {op: REMOVE, path}\n\t\t\t\t\t: op === REMOVE\n\t\t\t\t\t? {op: ADD, path, value: clonePatchValueIfNeeded(origValue)}\n\t\t\t\t\t: {op: REPLACE, path, value: clonePatchValueIfNeeded(origValue)}\n\t\t\t)\n\t\t})\n\t}\n\n\tfunction generateSetPatches(\n\t\tstate: SetState,\n\t\tbasePath: PatchPath,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t) {\n\t\tlet {base_, copy_} = state\n\n\t\tlet i = 0\n\t\tbase_.forEach((value: any) => {\n\t\t\tif (!copy_!.has(value)) {\n\t\t\t\tconst path = basePath.concat([i])\n\t\t\t\tpatches.push({\n\t\t\t\t\top: REMOVE,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue\n\t\t\t\t})\n\t\t\t\tinversePatches.unshift({\n\t\t\t\t\top: ADD,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue\n\t\t\t\t})\n\t\t\t}\n\t\t\ti++\n\t\t})\n\t\ti = 0\n\t\tcopy_!.forEach((value: any) => {\n\t\t\tif (!base_.has(value)) {\n\t\t\t\tconst path = basePath.concat([i])\n\t\t\t\tpatches.push({\n\t\t\t\t\top: ADD,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue\n\t\t\t\t})\n\t\t\t\tinversePatches.unshift({\n\t\t\t\t\top: REMOVE,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue\n\t\t\t\t})\n\t\t\t}\n\t\t\ti++\n\t\t})\n\t}\n\n\tfunction generateReplacementPatches_(\n\t\trootState: ImmerState,\n\t\treplacement: any,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t): void {\n\t\tpatches.push({\n\t\t\top: REPLACE,\n\t\t\tpath: [],\n\t\t\tvalue: replacement === NOTHING ? undefined : replacement\n\t\t})\n\t\tinversePatches.push({\n\t\t\top: REPLACE,\n\t\t\tpath: [],\n\t\t\tvalue: rootState.base_\n\t\t})\n\t}\n\n\tfunction applyPatches_<T>(draft: T, patches: Patch[]): T {\n\t\tpatches.forEach(patch => {\n\t\t\tconst {path, op} = patch\n\n\t\t\tlet base: any = draft\n\t\t\tfor (let i = 0; i < path.length - 1; i++) {\n\t\t\t\tconst parentType = getArchtype(base)\n\t\t\t\tconst p = path[i]\n\t\t\t\t// See #738, avoid prototype pollution\n\t\t\t\tif (\n\t\t\t\t\t(parentType === Archtype.Object || parentType === Archtype.Array) &&\n\t\t\t\t\t(p === \"__proto__\" || p === \"constructor\")\n\t\t\t\t)\n\t\t\t\t\tdie(24)\n\t\t\t\tif (typeof base === \"function\" && p === \"prototype\") die(24)\n\t\t\t\tbase = get(base, p)\n\t\t\t\tif (typeof base !== \"object\") die(15, path.join(\"/\"))\n\t\t\t}\n\n\t\t\tconst type = getArchtype(base)\n\t\t\tconst value = deepClonePatchValue(patch.value) // used to clone patch to ensure original patch is not modified, see #411\n\t\t\tconst key = path[path.length - 1]\n\t\t\tswitch (op) {\n\t\t\t\tcase REPLACE:\n\t\t\t\t\tswitch (type) {\n\t\t\t\t\t\tcase Archtype.Map:\n\t\t\t\t\t\t\treturn base.set(key, value)\n\t\t\t\t\t\t/* istanbul ignore next */\n\t\t\t\t\t\tcase Archtype.Set:\n\t\t\t\t\t\t\tdie(16)\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t// if value is an object, then it's assigned by reference\n\t\t\t\t\t\t\t// in the following add or remove ops, the value field inside the patch will also be modifyed\n\t\t\t\t\t\t\t// so we use value from the cloned patch\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\treturn (base[key] = value)\n\t\t\t\t\t}\n\t\t\t\tcase ADD:\n\t\t\t\t\tswitch (type) {\n\t\t\t\t\t\tcase Archtype.Array:\n\t\t\t\t\t\t\treturn base.splice(key as any, 0, value)\n\t\t\t\t\t\tcase Archtype.Map:\n\t\t\t\t\t\t\treturn base.set(key, value)\n\t\t\t\t\t\tcase Archtype.Set:\n\t\t\t\t\t\t\treturn base.add(value)\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn (base[key] = value)\n\t\t\t\t\t}\n\t\t\t\tcase REMOVE:\n\t\t\t\t\tswitch (type) {\n\t\t\t\t\t\tcase Archtype.Array:\n\t\t\t\t\t\t\treturn base.splice(key as any, 1)\n\t\t\t\t\t\tcase Archtype.Map:\n\t\t\t\t\t\t\treturn base.delete(key)\n\t\t\t\t\t\tcase Archtype.Set:\n\t\t\t\t\t\t\treturn base.delete(patch.value)\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn delete base[key]\n\t\t\t\t\t}\n\t\t\t\tdefault:\n\t\t\t\t\tdie(17, op)\n\t\t\t}\n\t\t})\n\n\t\treturn draft\n\t}\n\n\t// optimize: this is quite a performance hit, can we detect intelligently when it is needed?\n\t// E.g. auto-draft when new objects from outside are assigned and modified?\n\t// (See failing test when deepClone just returns obj)\n\tfunction deepClonePatchValue<T>(obj: T): T\n\tfunction deepClonePatchValue(obj: any) {\n\t\tif (!isDraftable(obj)) return obj\n\t\tif (Array.isArray(obj)) return obj.map(deepClonePatchValue)\n\t\tif (isMap(obj))\n\t\t\treturn new Map(\n\t\t\t\tArray.from(obj.entries()).map(([k, v]) => [k, deepClonePatchValue(v)])\n\t\t\t)\n\t\tif (isSet(obj)) return new Set(Array.from(obj).map(deepClonePatchValue))\n\t\tconst cloned = Object.create(Object.getPrototypeOf(obj))\n\t\tfor (const key in obj) cloned[key] = deepClonePatchValue(obj[key])\n\t\tif (has(obj, immerable)) cloned[immerable] = obj[immerable]\n\t\treturn cloned\n\t}\n\n\tfunction clonePatchValueIfNeeded<T>(obj: T): T {\n\t\tif (isDraft(obj)) {\n\t\t\treturn deepClonePatchValue(obj)\n\t\t} else return obj\n\t}\n\n\tloadPlugin(\"Patches\", {\n\t\tapplyPatches_,\n\t\tgeneratePatches_,\n\t\tgenerateReplacementPatches_\n\t})\n}\n","// types only!\nimport {\n\tImmerState,\n\tAnyMap,\n\tAnySet,\n\tMapState,\n\tSetState,\n\tDRAFT_STATE,\n\tgetCurrentScope,\n\tlatest,\n\titeratorSymbol,\n\tisDraftable,\n\tcreateProxy,\n\tloadPlugin,\n\tmarkChanged,\n\tProxyType,\n\tdie,\n\teach\n} from \"../internal\"\n\nexport function enableMapSet() {\n\t/* istanbul ignore next */\n\tvar extendStatics = function(d: any, b: any): any {\n\t\textendStatics =\n\t\t\tObject.setPrototypeOf ||\n\t\t\t({__proto__: []} instanceof Array &&\n\t\t\t\tfunction(d, b) {\n\t\t\t\t\td.__proto__ = b\n\t\t\t\t}) ||\n\t\t\tfunction(d, b) {\n\t\t\t\tfor (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]\n\t\t\t}\n\t\treturn extendStatics(d, b)\n\t}\n\n\t// Ugly hack to resolve #502 and inherit built in Map / Set\n\tfunction __extends(d: any, b: any): any {\n\t\textendStatics(d, b)\n\t\tfunction __(this: any): any {\n\t\t\tthis.constructor = d\n\t\t}\n\t\td.prototype =\n\t\t\t// @ts-ignore\n\t\t\t((__.prototype = b.prototype), new __())\n\t}\n\n\tconst DraftMap = (function(_super) {\n\t\t__extends(DraftMap, _super)\n\t\t// Create class manually, cause #502\n\t\tfunction DraftMap(this: any, target: AnyMap, parent?: ImmerState): any {\n\t\t\tthis[DRAFT_STATE] = {\n\t\t\t\ttype_: ProxyType.Map,\n\t\t\t\tparent_: parent,\n\t\t\t\tscope_: parent ? parent.scope_ : getCurrentScope()!,\n\t\t\t\tmodified_: false,\n\t\t\t\tfinalized_: false,\n\t\t\t\tcopy_: undefined,\n\t\t\t\tassigned_: undefined,\n\t\t\t\tbase_: target,\n\t\t\t\tdraft_: this as any,\n\t\t\t\tisManual_: false,\n\t\t\t\trevoked_: false\n\t\t\t} as MapState\n\t\t\treturn this\n\t\t}\n\t\tconst p = DraftMap.prototype\n\n\t\tObject.defineProperty(p, \"size\", {\n\t\t\tget: function() {\n\t\t\t\treturn latest(this[DRAFT_STATE]).size\n\t\t\t}\n\t\t\t// enumerable: false,\n\t\t\t// configurable: true\n\t\t})\n\n\t\tp.has = function(key: any): boolean {\n\t\t\treturn latest(this[DRAFT_STATE]).has(key)\n\t\t}\n\n\t\tp.set = function(key: any, value: any) {\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tif (!latest(state).has(key) || latest(state).get(key) !== value) {\n\t\t\t\tprepareMapCopy(state)\n\t\t\t\tmarkChanged(state)\n\t\t\t\tstate.assigned_!.set(key, true)\n\t\t\t\tstate.copy_!.set(key, value)\n\t\t\t\tstate.assigned_!.set(key, true)\n\t\t\t}\n\t\t\treturn this\n\t\t}\n\n\t\tp.delete = function(key: any): boolean {\n\t\t\tif (!this.has(key)) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tprepareMapCopy(state)\n\t\t\tmarkChanged(state)\n\t\t\tstate.assigned_!.set(key, false)\n\t\t\tstate.copy_!.delete(key)\n\t\t\treturn true\n\t\t}\n\n\t\tp.clear = function() {\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tif (latest(state).size) {\n\t\t\t\tprepareMapCopy(state)\n\t\t\t\tmarkChanged(state)\n\t\t\t\tstate.assigned_ = new Map()\n\t\t\t\teach(state.base_, key => {\n\t\t\t\t\tstate.assigned_!.set(key, false)\n\t\t\t\t})\n\t\t\t\tstate.copy_!.clear()\n\t\t\t}\n\t\t}\n\n\t\tp.forEach = function(\n\t\t\tcb: (value: any, key: any, self: any) => void,\n\t\t\tthisArg?: any\n\t\t) {\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tlatest(state).forEach((_value: any, key: any, _map: any) => {\n\t\t\t\tcb.call(thisArg, this.get(key), key, this)\n\t\t\t})\n\t\t}\n\n\t\tp.get = function(key: any): any {\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tconst value = latest(state).get(key)\n\t\t\tif (state.finalized_ || !isDraftable(value)) {\n\t\t\t\treturn value\n\t\t\t}\n\t\t\tif (value !== state.base_.get(key)) {\n\t\t\t\treturn value // either already drafted or reassigned\n\t\t\t}\n\t\t\t// despite what it looks, this creates a draft only once, see above condition\n\t\t\tconst draft = createProxy(state.scope_.immer_, value, state)\n\t\t\tprepareMapCopy(state)\n\t\t\tstate.copy_!.set(key, draft)\n\t\t\treturn draft\n\t\t}\n\n\t\tp.keys = function(): IterableIterator<any> {\n\t\t\treturn latest(this[DRAFT_STATE]).keys()\n\t\t}\n\n\t\tp.values = function(): IterableIterator<any> {\n\t\t\tconst iterator = this.keys()\n\t\t\treturn {\n\t\t\t\t[iteratorSymbol]: () => this.values(),\n\t\t\t\tnext: () => {\n\t\t\t\t\tconst r = iterator.next()\n\t\t\t\t\t/* istanbul ignore next */\n\t\t\t\t\tif (r.done) return r\n\t\t\t\t\tconst value = this.get(r.value)\n\t\t\t\t\treturn {\n\t\t\t\t\t\tdone: false,\n\t\t\t\t\t\tvalue\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} as any\n\t\t}\n\n\t\tp.entries = function(): IterableIterator<[any, any]> {\n\t\t\tconst iterator = this.keys()\n\t\t\treturn {\n\t\t\t\t[iteratorSymbol]: () => this.entries(),\n\t\t\t\tnext: () => {\n\t\t\t\t\tconst r = iterator.next()\n\t\t\t\t\t/* istanbul ignore next */\n\t\t\t\t\tif (r.done) return r\n\t\t\t\t\tconst value = this.get(r.value)\n\t\t\t\t\treturn {\n\t\t\t\t\t\tdone: false,\n\t\t\t\t\t\tvalue: [r.value, value]\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} as any\n\t\t}\n\n\t\tp[iteratorSymbol] = function() {\n\t\t\treturn this.entries()\n\t\t}\n\n\t\treturn DraftMap\n\t})(Map)\n\n\tfunction proxyMap_<T extends AnyMap>(target: T, parent?: ImmerState): T {\n\t\t// @ts-ignore\n\t\treturn new DraftMap(target, parent)\n\t}\n\n\tfunction prepareMapCopy(state: MapState) {\n\t\tif (!state.copy_) {\n\t\t\tstate.assigned_ = new Map()\n\t\t\tstate.copy_ = new Map(state.base_)\n\t\t}\n\t}\n\n\tconst DraftSet = (function(_super) {\n\t\t__extends(DraftSet, _super)\n\t\t// Create class manually, cause #502\n\t\tfunction DraftSet(this: any, target: AnySet, parent?: ImmerState) {\n\t\t\tthis[DRAFT_STATE] = {\n\t\t\t\ttype_: ProxyType.Set,\n\t\t\t\tparent_: parent,\n\t\t\t\tscope_: parent ? parent.scope_ : getCurrentScope()!,\n\t\t\t\tmodified_: false,\n\t\t\t\tfinalized_: false,\n\t\t\t\tcopy_: undefined,\n\t\t\t\tbase_: target,\n\t\t\t\tdraft_: this,\n\t\t\t\tdrafts_: new Map(),\n\t\t\t\trevoked_: false,\n\t\t\t\tisManual_: false\n\t\t\t} as SetState\n\t\t\treturn this\n\t\t}\n\t\tconst p = DraftSet.prototype\n\n\t\tObject.defineProperty(p, \"size\", {\n\t\t\tget: function() {\n\t\t\t\treturn latest(this[DRAFT_STATE]).size\n\t\t\t}\n\t\t\t// enumerable: true,\n\t\t})\n\n\t\tp.has = function(value: any): boolean {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\t// bit of trickery here, to be able to recognize both the value, and the draft of its value\n\t\t\tif (!state.copy_) {\n\t\t\t\treturn state.base_.has(value)\n\t\t\t}\n\t\t\tif (state.copy_.has(value)) return true\n\t\t\tif (state.drafts_.has(value) && state.copy_.has(state.drafts_.get(value)))\n\t\t\t\treturn true\n\t\t\treturn false\n\t\t}\n\n\t\tp.add = function(value: any): any {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tif (!this.has(value)) {\n\t\t\t\tprepareSetCopy(state)\n\t\t\t\tmarkChanged(state)\n\t\t\t\tstate.copy_!.add(value)\n\t\t\t}\n\t\t\treturn this\n\t\t}\n\n\t\tp.delete = function(value: any): any {\n\t\t\tif (!this.has(value)) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tprepareSetCopy(state)\n\t\t\tmarkChanged(state)\n\t\t\treturn (\n\t\t\t\tstate.copy_!.delete(value) ||\n\t\t\t\t(state.drafts_.has(value)\n\t\t\t\t\t? state.copy_!.delete(state.drafts_.get(value))\n\t\t\t\t\t: /* istanbul ignore next */ false)\n\t\t\t)\n\t\t}\n\n\t\tp.clear = function() {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tif (latest(state).size) {\n\t\t\t\tprepareSetCopy(state)\n\t\t\t\tmarkChanged(state)\n\t\t\t\tstate.copy_!.clear()\n\t\t\t}\n\t\t}\n\n\t\tp.values = function(): IterableIterator<any> {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tprepareSetCopy(state)\n\t\t\treturn state.copy_!.values()\n\t\t}\n\n\t\tp.entries = function entries(): IterableIterator<[any, any]> {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tprepareSetCopy(state)\n\t\t\treturn state.copy_!.entries()\n\t\t}\n\n\t\tp.keys = function(): IterableIterator<any> {\n\t\t\treturn this.values()\n\t\t}\n\n\t\tp[iteratorSymbol] = function() {\n\t\t\treturn this.values()\n\t\t}\n\n\t\tp.forEach = function forEach(cb: any, thisArg?: any) {\n\t\t\tconst iterator = this.values()\n\t\t\tlet result = iterator.next()\n\t\t\twhile (!result.done) {\n\t\t\t\tcb.call(thisArg, result.value, result.value, this)\n\t\t\t\tresult = iterator.next()\n\t\t\t}\n\t\t}\n\n\t\treturn DraftSet\n\t})(Set)\n\n\tfunction proxySet_<T extends AnySet>(target: T, parent?: ImmerState): T {\n\t\t// @ts-ignore\n\t\treturn new DraftSet(target, parent)\n\t}\n\n\tfunction prepareSetCopy(state: SetState) {\n\t\tif (!state.copy_) {\n\t\t\t// create drafts for all entries to preserve insertion order\n\t\t\tstate.copy_ = new Set()\n\t\t\tstate.base_.forEach(value => {\n\t\t\t\tif (isDraftable(value)) {\n\t\t\t\t\tconst draft = createProxy(state.scope_.immer_, value, state)\n\t\t\t\t\tstate.drafts_.set(value, draft)\n\t\t\t\t\tstate.copy_!.add(draft)\n\t\t\t\t} else {\n\t\t\t\t\tstate.copy_!.add(value)\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t}\n\n\tfunction assertUnrevoked(state: any /*ES5State | MapState | SetState*/) {\n\t\tif (state.revoked_) die(3, JSON.stringify(latest(state)))\n\t}\n\n\tloadPlugin(\"MapSet\", {proxyMap_, proxySet_})\n}\n","// Should be no imports here!\n\n// Some things that should be evaluated before all else...\n\n// We only want to know if non-polyfilled symbols are available\nconst hasSymbol =\n\ttypeof Symbol !== \"undefined\" && typeof Symbol(\"x\") === \"symbol\"\nexport const hasMap = typeof Map !== \"undefined\"\nexport const hasSet = typeof Set !== \"undefined\"\nexport const hasProxies =\n\ttypeof Proxy !== \"undefined\" &&\n\ttypeof Proxy.revocable !== \"undefined\" &&\n\ttypeof Reflect !== \"undefined\"\n\n/**\n * The sentinel value returned by producers to replace the draft with undefined.\n */\nexport const NOTHING: Nothing = hasSymbol\n\t? Symbol.for(\"immer-nothing\")\n\t: ({[\"immer-nothing\"]: true} as any)\n\n/**\n * To let Immer treat your class instances as plain immutable objects\n * (albeit with a custom prototype), you must define either an instance property\n * or a static property on each of your custom classes.\n *\n * Otherwise, your class instance will never be drafted, which means it won't be\n * safe to mutate in a produce callback.\n */\nexport const DRAFTABLE: unique symbol = hasSymbol\n\t? Symbol.for(\"immer-draftable\")\n\t: (\"__$immer_draftable\" as any)\n\nexport const DRAFT_STATE: unique symbol = hasSymbol\n\t? Symbol.for(\"immer-state\")\n\t: (\"__$immer_state\" as any)\n\n// Even a polyfilled Symbol might provide Symbol.iterator\nexport const iteratorSymbol: typeof Symbol.iterator =\n\t(typeof Symbol != \"undefined\" && Symbol.iterator) || (\"@@iterator\" as any)\n\n/** Use a class type for `nothing` so its type is unique */\nexport class Nothing {\n\t// This lets us do `Exclude<T, Nothing>`\n\t// @ts-ignore\n\tprivate _!: unique symbol\n}\n","import {\n\tIProduce,\n\tIProduceWithPatches,\n\tImmer,\n\tDraft,\n\tImmutable\n} from \"./internal\"\n\nexport {\n\tDraft,\n\tImmutable,\n\tPatch,\n\tPatchListener,\n\toriginal,\n\tcurrent,\n\tisDraft,\n\tisDraftable,\n\tNOTHING as nothing,\n\tDRAFTABLE as immerable,\n\tfreeze\n} from \"./internal\"\n\nconst immer = new Immer()\n\n/**\n * The `produce` function takes a value and a \"recipe function\" (whose\n * return value often depends on the base state). The recipe function is\n * free to mutate its first argument however it wants. All mutations are\n * only ever applied to a __copy__ of the base state.\n *\n * Pass only a function to create a \"curried producer\" which relieves you\n * from passing the recipe function every time.\n *\n * Only plain objects and arrays are made mutable. All other objects are\n * considered uncopyable.\n *\n * Note: This function is __bound__ to its `Immer` instance.\n *\n * @param {any} base - the initial state\n * @param {Function} producer - function that receives a proxy of the base state as first argument and which can be freely modified\n * @param {Function} patchListener - optional function that will be called with all the patches produced here\n * @returns {any} a new state, or the initial state if nothing was modified\n */\nexport const produce: IProduce = immer.produce\nexport default produce\n\n/**\n * Like `produce`, but `produceWithPatches` always returns a tuple\n * [nextState, patches, inversePatches] (instead of just the next state)\n */\nexport const produceWithPatches: IProduceWithPatches = immer.produceWithPatches.bind(\n\timmer\n)\n\n/**\n * Pass true to automatically freeze all copies created by Immer.\n *\n * Always freeze by default, even in production mode\n */\nexport const setAutoFreeze = immer.setAutoFreeze.bind(immer)\n\n/**\n * Pass true to use the ES2015 `Proxy` class when creating drafts, which is\n * always faster than using ES5 proxies.\n *\n * By default, feature detection is used, so calling this is rarely necessary.\n */\nexport const setUseProxies = immer.setUseProxies.bind(immer)\n\n/**\n * Apply an array of Immer patches to the first argument.\n *\n * This function is a producer, which means copy-on-write is in effect.\n */\nexport const applyPatches = immer.applyPatches.bind(immer)\n\n/**\n * Create an Immer draft from the given base state, which may be a draft itself.\n * The draft can be modified until you finalize it with the `finishDraft` function.\n */\nexport const createDraft = immer.createDraft.bind(immer)\n\n/**\n * Finalize an Immer draft from a `createDraft` call, returning the base state\n * (if no changes were made) or a modified copy. The draft must *not* be\n * mutated afterwards.\n *\n * Pass a function as the 2nd argument to generate Immer patches based on the\n * changes that were made.\n */\nexport const finishDraft = immer.finishDraft.bind(immer)\n\n/**\n * This function is actually a no-op, but can be used to cast an immutable type\n * to an draft type and make TypeScript happy\n *\n * @param value\n */\nexport function castDraft<T>(value: T): Draft<T> {\n\treturn value as any\n}\n\n/**\n * This function is actually a no-op, but can be used to cast a mutable type\n * to an immutable type and make TypeScript happy\n * @param value\n */\nexport function castImmutable<T>(value: T): Immutable<T> {\n\treturn value as any\n}\n\nexport {Immer}\n\nexport {enableES5} from \"./plugins/es5\"\nexport {enablePatches} from \"./plugins/patches\"\nexport {enableMapSet} from \"./plugins/mapset\"\nexport {enableAllPlugins} from \"./plugins/all\"\n","import {enableES5} from \"./es5\"\nimport {enableMapSet} from \"./mapset\"\nimport {enablePatches} from \"./patches\"\n\nexport function enableAllPlugins() {\n\tenableES5()\n\tenableMapSet()\n\tenablePatches()\n}\n","\n'use strict'\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./immer.cjs.production.min.js')\n} else {\n module.exports = require('./immer.cjs.development.js')\n}\n","// Copyright (C) 2018 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {applyPatches, Patch} from 'immer';\n\nimport {assertExists} from '../base/logging';\nimport {DeferredAction} from '../common/actions';\nimport {createEmptyState} from '../common/empty_state';\nimport {State} from '../common/state';\nimport {globals as frontendGlobals} from '../frontend/globals';\n\nimport {ControllerAny} from './controller';\n\nexport interface App {\n state: State;\n dispatch(action: DeferredAction): void;\n}\n\n/**\n * Global accessors for state/dispatch in the controller.\n */\nclass Globals implements App {\n private _state?: State;\n private _rootController?: ControllerAny;\n private _runningControllers = false;\n\n initialize(rootController: ControllerAny) {\n this._rootController = rootController;\n this._state = createEmptyState();\n }\n\n dispatch(action: DeferredAction): void {\n frontendGlobals.dispatch(action);\n }\n\n // Send the passed dispatch actions to the frontend. The frontend logic\n // will run the actions, compute the new state and invoke patchState() so\n // our copy is updated.\n dispatchMultiple(actions: DeferredAction[]): void {\n for (const action of actions) {\n this.dispatch(action);\n }\n }\n\n // This is called by the frontend logic which now owns and handle the\n // source-of-truth state, to give us an update on the newer state updates.\n patchState(patches: Patch[]): void {\n this._state = applyPatches(assertExists(this._state), patches);\n this.runControllers();\n }\n\n private runControllers() {\n if (this._runningControllers) throw new Error('Re-entrant call detected');\n\n // Run controllers locally until all state machines reach quiescence.\n let runAgain = true;\n for (let iter = 0; runAgain; iter++) {\n if (iter > 100) throw new Error('Controllers are stuck in a livelock');\n this._runningControllers = true;\n try {\n runAgain = assertExists(this._rootController).invoke();\n } finally {\n this._runningControllers = false;\n }\n }\n }\n\n get state(): State {\n return assertExists(this._state);\n }\n\n resetForTesting() {\n this._state = undefined;\n this._rootController = undefined;\n }\n}\n\nexport const globals = new Globals();\n","// Copyright (C) 2018 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {assertExists, assertTrue} from '../base/logging';\nimport {Engine} from '../common/engine';\nimport {Registry} from '../common/registry';\nimport {TraceTime, TrackState} from '../common/state';\nimport {fromNs, toNs} from '../common/time';\nimport {LIMIT, TrackData} from '../common/track_data';\nimport {publishTrackData} from '../frontend/publish';\n\nimport {Controller} from './controller';\nimport {ControllerFactory} from './controller';\nimport {globals} from './globals';\n\ninterface TrackConfig {}\n\ntype TrackConfigWithNamespace = TrackConfig&{namespace: string};\n\n// Allow to override via devtools for testing (note, needs to be done in the\n// controller-thread).\n(self as {} as {quantPx: number}).quantPx = 1;\n\n// TrackController is a base class overridden by track implementations (e.g.,\n// sched slices, nestable slices, counters).\nexport abstract class TrackController<\n Config, Data extends TrackData = TrackData> extends Controller<'main'> {\n readonly trackId: string;\n readonly engine: Engine;\n private data?: TrackData;\n private requestingData = false;\n private queuedRequest = false;\n private isSetup = false;\n private lastReloadHandled = 0;\n\n // We choose 100000 as the table size to cache as this is roughly the point\n // where SQLite sorts start to become expensive.\n private static readonly MIN_TABLE_SIZE_TO_CACHE = 100000;\n\n constructor(args: TrackControllerArgs) {\n super('main');\n this.trackId = args.trackId;\n this.engine = args.engine;\n }\n\n protected pxSize(): number {\n return (self as {} as {quantPx: number}).quantPx;\n }\n\n // Can be overriden by the track implementation to allow one time setup work\n // to be performed before the first onBoundsChange invcation.\n async onSetup() {}\n\n // Can be overriden by the track implementation to allow some one-off work\n // when requested reload (e.g. recalculating height).\n async onReload() {}\n\n // Must be overridden by the track implementation. Is invoked when the track\n // frontend runs out of cached data. The derived track controller is expected\n // to publish new track data in response to this call.\n abstract onBoundsChange(start: number, end: number, resolution: number):\n Promise<Data>;\n\n get trackState(): TrackState {\n return assertExists(globals.state.tracks[this.trackId]);\n }\n\n get config(): Config {\n return this.trackState.config as Config;\n }\n\n configHasNamespace(config: TrackConfig): config is TrackConfigWithNamespace {\n return 'namespace' in config;\n }\n\n namespaceTable(tableName: string): string {\n if (this.configHasNamespace(this.config)) {\n return this.config.namespace + '_' + tableName;\n } else {\n return tableName;\n }\n }\n\n publish(data: Data): void {\n this.data = data;\n publishTrackData({id: this.trackId, data});\n }\n\n /**\n * Returns a valid SQL table name with the given prefix that should be unique\n * for each track.\n */\n tableName(prefix: string) {\n // Derive table name from, since that is unique for each track.\n // Track ID can be UUID but '-' is not valid for sql table name.\n const idSuffix = this.trackId.split('-').join('_');\n return `${prefix}_${idSuffix}`;\n }\n\n shouldSummarize(resolution: number): boolean {\n // |resolution| is in s/px (to nearest power of 10) assuming a display\n // of ~1000px 0.0008 is 0.8s.\n return resolution >= 0.0008;\n }\n\n protected async query(query: string) {\n const result = await this.engine.query(query);\n return result;\n }\n\n private shouldReload(): boolean {\n const {lastTrackReloadRequest} = globals.state;\n return !!lastTrackReloadRequest &&\n this.lastReloadHandled < lastTrackReloadRequest;\n }\n\n private markReloadHandled() {\n this.lastReloadHandled = globals.state.lastTrackReloadRequest || 0;\n }\n\n shouldRequestData(traceTime: TraceTime): boolean {\n if (this.data === undefined) return true;\n if (this.shouldReload()) return true;\n\n // If at the limit only request more data if the view has moved.\n const atLimit = this.data.length === LIMIT;\n if (atLimit) {\n // We request more data than the window, so add window duration to find\n // the previous window.\n const prevWindowStart =\n this.data.start + (traceTime.startSec - traceTime.endSec);\n return traceTime.startSec !== prevWindowStart;\n }\n\n // Otherwise request more data only when out of range of current data or\n // resolution has changed.\n const inRange = traceTime.startSec >= this.data.start &&\n traceTime.endSec <= this.data.end;\n return !inRange ||\n this.data.resolution !==\n globals.state.frontendLocalState.visibleState.resolution;\n }\n\n // Decides, based on the length of the trace and the number of rows\n // provided whether a TrackController subclass should cache its quantized\n // data. Returns the bucket size (in ns) if caching should happen and\n // undefined otherwise.\n // Subclasses should call this in their setup function\n cachedBucketSizeNs(numRows: number): number|undefined {\n // Ensure that we're not caching when the table size isn't even that big.\n if (numRows < TrackController.MIN_TABLE_SIZE_TO_CACHE) {\n return undefined;\n }\n\n const bounds = globals.state.traceTime;\n const traceDurNs = toNs(bounds.endSec - bounds.startSec);\n\n // For large traces, going through the raw table in the most zoomed-out\n // states can be very expensive as this can involve going through O(millions\n // of rows). The cost of this becomes high even for just iteration but is\n // especially slow as quantization involves a SQLite sort on the quantized\n // timestamp (for the group by).\n //\n // To get around this, we can cache a pre-quantized table which we can then\n // in zoomed-out situations and fall back to the real table when zoomed in\n // (which naturally constrains the amount of data by virtue of the window\n // covering a smaller timespan)\n //\n // This method computes that cached table by computing an approximation for\n // the bucket size we would use when totally zoomed out and then going a few\n // resolution levels down which ensures that our cached table works for more\n // than the literally most zoomed out state. Moving down a resolution level\n // is defined as moving down a power of 2; this matches the logic in\n // |globals.getCurResolution|.\n //\n // TODO(lalitm): in the future, we should consider having a whole set of\n // quantized tables each of which cover some portion of resolution lvel\n // range. As each table covers a large number of resolution levels, even 3-4\n // tables should really cover the all concievable trace sizes. This set\n // could be computed by looking at the number of events being processed one\n // level below the cached table and computing another layer of caching if\n // that count is too high (with respect to MIN_TABLE_SIZE_TO_CACHE).\n\n // 4k monitors have 3840 horizontal pixels so use that for a worst case\n // approximation of the window width.\n const approxWidthPx = 3840;\n\n // Compute the outermost bucket size. This acts as a starting point for\n // computing the cached size.\n const outermostResolutionLevel =\n Math.ceil(Math.log2(traceDurNs / approxWidthPx));\n const outermostBucketNs = Math.pow(2, outermostResolutionLevel);\n\n // This constant decides how many resolution levels down from our outermost\n // bucket computation we want to be able to use the cached table.\n // We've chosen 7 as it seems to be empircally seems to be a good fit for\n // trace data.\n const resolutionLevelsCovered = 7;\n\n // If we've got less resolution levels in the trace than the number of\n // resolution levels we want to go down, bail out because this cached\n // table is really not going to be used enough.\n if (outermostResolutionLevel < resolutionLevelsCovered) {\n return Number.MAX_SAFE_INTEGER;\n }\n\n // Another way to look at moving down resolution levels is to consider how\n // many sub-intervals we are splitting the bucket into.\n const bucketSubIntervals = Math.pow(2, resolutionLevelsCovered);\n\n // Calculate the smallest bucket we want our table to be able to handle by\n // dividing the outermsot bucket by the number of subintervals we should\n // divide by.\n const cachedBucketSizeNs = outermostBucketNs / bucketSubIntervals;\n\n // Our logic above should make sure this is an integer but double check that\n // here as an assertion before returning.\n assertTrue(Number.isInteger(cachedBucketSizeNs));\n\n return cachedBucketSizeNs;\n }\n\n run() {\n const visibleState = globals.state.frontendLocalState.visibleState;\n if (visibleState === undefined || visibleState.resolution === undefined ||\n visibleState.resolution === Infinity) {\n return;\n }\n const dur = visibleState.endSec - visibleState.startSec;\n if (globals.state.visibleTracks.includes(this.trackId) &&\n this.shouldRequestData(visibleState)) {\n if (this.requestingData) {\n this.queuedRequest = true;\n } else {\n this.requestingData = true;\n let promise = Promise.resolve();\n if (!this.isSetup) {\n promise = this.onSetup();\n } else if (this.shouldReload()) {\n promise = this.onReload().then(() => this.markReloadHandled());\n }\n promise\n .then(() => {\n this.isSetup = true;\n let resolution = visibleState.resolution;\n // TODO(hjd): We shouldn't have to be so defensive here.\n if (Math.log2(toNs(resolution)) % 1 !== 0) {\n // resolution is in pixels per second so 1000 means\n // 1px = 1ms.\n resolution =\n fromNs(Math.pow(2, Math.floor(Math.log2(toNs(1000)))));\n }\n return this.onBoundsChange(\n visibleState.startSec - dur,\n visibleState.endSec + dur,\n resolution);\n })\n .then(data => {\n this.publish(data);\n })\n .finally(() => {\n this.requestingData = false;\n if (this.queuedRequest) {\n this.queuedRequest = false;\n this.run();\n }\n });\n }\n }\n }\n}\n\nexport interface TrackControllerArgs {\n trackId: string;\n engine: Engine;\n}\n\nexport interface TrackControllerFactory extends\n ControllerFactory<TrackControllerArgs> {\n kind: string;\n}\n\nexport const trackControllerRegistry = new Registry<TrackControllerFactory>();\n","// Copyright (C) 2021 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {NUM, NUM_NULL, STR} from '../../common/query_result';\nimport {fromNs, toNs} from '../../common/time';\nimport {\n TrackController,\n trackControllerRegistry,\n} from '../../controller/track_controller';\n\nimport {ACTUAL_FRAMES_SLICE_TRACK_KIND, Config, Data} from './common';\n\nconst BLUE_COLOR = '#03A9F4'; // Blue 500\nconst GREEN_COLOR = '#4CAF50'; // Green 500\nconst YELLOW_COLOR = '#FFEB3B'; // Yellow 500\nconst RED_COLOR = '#FF5722'; // Red 500\nconst LIGHT_GREEN_COLOR = '#C0D588'; // Light Green 500\nconst PINK_COLOR = '#F515E0'; // Pink 500\n\nclass ActualFramesSliceTrackController extends TrackController<Config, Data> {\n static readonly kind = ACTUAL_FRAMES_SLICE_TRACK_KIND;\n private maxDurNs = 0;\n\n async onBoundsChange(start: number, end: number, resolution: number):\n Promise<Data> {\n const startNs = toNs(start);\n const endNs = toNs(end);\n\n const pxSize = this.pxSize();\n\n // ns per quantization bucket (i.e. ns per pixel). /2 * 2 is to force it to\n // be an even number, so we can snap in the middle.\n const bucketNs = Math.max(Math.round(resolution * 1e9 * pxSize / 2) * 2, 1);\n\n if (this.maxDurNs === 0) {\n const maxDurResult = await this.query(`\n select\n max(iif(dur = -1, (SELECT end_ts FROM trace_bounds) - ts, dur))\n as maxDur\n from experimental_slice_layout\n where filter_track_ids = '${this.config.trackIds.join(',')}'\n `);\n this.maxDurNs = maxDurResult.firstRow({maxDur: NUM_NULL}).maxDur || 0;\n }\n\n const rawResult = await this.query(`\n SELECT\n (s.ts + ${bucketNs / 2}) / ${bucketNs} * ${bucketNs} as tsq,\n s.ts as ts,\n max(iif(s.dur = -1, (SELECT end_ts FROM trace_bounds) - s.ts, s.dur))\n as dur,\n s.layout_depth as layoutDepth,\n s.name as name,\n s.id as id,\n s.dur = 0 as isInstant,\n s.dur = -1 as isIncomplete,\n CASE afs.jank_tag\n WHEN 'Self Jank' THEN '${RED_COLOR}'\n WHEN 'Other Jank' THEN '${YELLOW_COLOR}'\n WHEN 'Dropped Frame' THEN '${BLUE_COLOR}'\n WHEN 'Buffer Stuffing' THEN '${LIGHT_GREEN_COLOR}'\n WHEN 'SurfaceFlinger Stuffing' THEN '${LIGHT_GREEN_COLOR}'\n WHEN 'No Jank' THEN '${GREEN_COLOR}'\n ELSE '${PINK_COLOR}'\n END as color\n from experimental_slice_layout s\n join actual_frame_timeline_slice afs using(id)\n where\n filter_track_ids = '${this.config.trackIds.join(',')}' and\n s.ts >= ${startNs - this.maxDurNs} and\n s.ts <= ${endNs}\n group by tsq, s.layout_depth\n order by tsq, s.layout_depth\n `);\n\n const numRows = rawResult.numRows();\n const slices: Data = {\n start,\n end,\n resolution,\n length: numRows,\n strings: [],\n sliceIds: new Float64Array(numRows),\n starts: new Float64Array(numRows),\n ends: new Float64Array(numRows),\n depths: new Uint16Array(numRows),\n titles: new Uint16Array(numRows),\n colors: new Uint16Array(numRows),\n isInstant: new Uint16Array(numRows),\n isIncomplete: new Uint16Array(numRows),\n };\n\n const stringIndexes = new Map<string, number>();\n function internString(str: string) {\n let idx = stringIndexes.get(str);\n if (idx !== undefined) return idx;\n idx = slices.strings.length;\n slices.strings.push(str);\n stringIndexes.set(str, idx);\n return idx;\n }\n\n const it = rawResult.iter({\n 'tsq': NUM,\n 'ts': NUM,\n 'dur': NUM,\n 'layoutDepth': NUM,\n 'id': NUM,\n 'name': STR,\n 'isInstant': NUM,\n 'isIncomplete': NUM,\n 'color': STR,\n });\n for (let i = 0; it.valid(); i++, it.next()) {\n const startNsQ = it.tsq;\n const startNs = it.ts;\n const durNs = it.dur;\n const endNs = startNs + durNs;\n\n let endNsQ = Math.floor((endNs + bucketNs / 2 - 1) / bucketNs) * bucketNs;\n endNsQ = Math.max(endNsQ, startNsQ + bucketNs);\n\n slices.starts[i] = fromNs(startNsQ);\n slices.ends[i] = fromNs(endNsQ);\n slices.depths[i] = it.layoutDepth;\n slices.titles[i] = internString(it.name);\n slices.colors![i] = internString(it.color);\n slices.sliceIds[i] = it.id;\n slices.isInstant[i] = it.isInstant;\n slices.isIncomplete[i] = it.isIncomplete;\n }\n return slices;\n }\n}\n\n\ntrackControllerRegistry.register(ActualFramesSliceTrackController);\n","// Copyright (C) 2018 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {Registry} from '../common/registry';\nimport {TrackCreator} from './track';\n\n/**\n * Global registry that maps types to TrackCreator.\n */\nexport const trackRegistry = new Registry<TrackCreator>();\n","// Generated by Haxe 3.4.4\nvar hsluv = hsluv || {};\nhsluv.Geometry = function() { };\nhsluv.Geometry.intersectLineLine = function(a,b) {\n\tvar x = (a.intercept - b.intercept) / (b.slope - a.slope);\n\tvar y = a.slope * x + a.intercept;\n\treturn { x : x, y : y};\n};\nhsluv.Geometry.distanceFromOrigin = function(point) {\n\treturn Math.sqrt(Math.pow(point.x,2) + Math.pow(point.y,2));\n};\nhsluv.Geometry.distanceLineFromOrigin = function(line) {\n\treturn Math.abs(line.intercept) / Math.sqrt(Math.pow(line.slope,2) + 1);\n};\nhsluv.Geometry.perpendicularThroughPoint = function(line,point) {\n\tvar slope = -1 / line.slope;\n\tvar intercept = point.y - slope * point.x;\n\treturn { slope : slope, intercept : intercept};\n};\nhsluv.Geometry.angleFromOrigin = function(point) {\n\treturn Math.atan2(point.y,point.x);\n};\nhsluv.Geometry.normalizeAngle = function(angle) {\n\tvar m = 2 * Math.PI;\n\treturn (angle % m + m) % m;\n};\nhsluv.Geometry.lengthOfRayUntilIntersect = function(theta,line) {\n\treturn line.intercept / (Math.sin(theta) - line.slope * Math.cos(theta));\n};\nhsluv.Hsluv = function() { };\nhsluv.Hsluv.getBounds = function(L) {\n\tvar result = [];\n\tvar sub1 = Math.pow(L + 16,3) / 1560896;\n\tvar sub2 = sub1 > hsluv.Hsluv.epsilon ? sub1 : L / hsluv.Hsluv.kappa;\n\tvar _g = 0;\n\twhile(_g < 3) {\n\t\tvar c = _g++;\n\t\tvar m1 = hsluv.Hsluv.m[c][0];\n\t\tvar m2 = hsluv.Hsluv.m[c][1];\n\t\tvar m3 = hsluv.Hsluv.m[c][2];\n\t\tvar _g1 = 0;\n\t\twhile(_g1 < 2) {\n\t\t\tvar t = _g1++;\n\t\t\tvar top1 = (284517 * m1 - 94839 * m3) * sub2;\n\t\t\tvar top2 = (838422 * m3 + 769860 * m2 + 731718 * m1) * L * sub2 - 769860 * t * L;\n\t\t\tvar bottom = (632260 * m3 - 126452 * m2) * sub2 + 126452 * t;\n\t\t\tresult.push({ slope : top1 / bottom, intercept : top2 / bottom});\n\t\t}\n\t}\n\treturn result;\n};\nhsluv.Hsluv.maxSafeChromaForL = function(L) {\n\tvar bounds = hsluv.Hsluv.getBounds(L);\n\tvar min = Infinity;\n\tvar _g = 0;\n\twhile(_g < bounds.length) {\n\t\tvar bound = bounds[_g];\n\t\t++_g;\n\t\tvar length = hsluv.Geometry.distanceLineFromOrigin(bound);\n\t\tmin = Math.min(min,length);\n\t}\n\treturn min;\n};\nhsluv.Hsluv.maxChromaForLH = function(L,H) {\n\tvar hrad = H / 360 * Math.PI * 2;\n\tvar bounds = hsluv.Hsluv.getBounds(L);\n\tvar min = Infinity;\n\tvar _g = 0;\n\twhile(_g < bounds.length) {\n\t\tvar bound = bounds[_g];\n\t\t++_g;\n\t\tvar length = hsluv.Geometry.lengthOfRayUntilIntersect(hrad,bound);\n\t\tif(length >= 0) {\n\t\t\tmin = Math.min(min,length);\n\t\t}\n\t}\n\treturn min;\n};\nhsluv.Hsluv.dotProduct = function(a,b) {\n\tvar sum = 0;\n\tvar _g1 = 0;\n\tvar _g = a.length;\n\twhile(_g1 < _g) {\n\t\tvar i = _g1++;\n\t\tsum += a[i] * b[i];\n\t}\n\treturn sum;\n};\nhsluv.Hsluv.fromLinear = function(c) {\n\tif(c <= 0.0031308) {\n\t\treturn 12.92 * c;\n\t} else {\n\t\treturn 1.055 * Math.pow(c,0.416666666666666685) - 0.055;\n\t}\n};\nhsluv.Hsluv.toLinear = function(c) {\n\tif(c > 0.04045) {\n\t\treturn Math.pow((c + 0.055) / 1.055,2.4);\n\t} else {\n\t\treturn c / 12.92;\n\t}\n};\nhsluv.Hsluv.xyzToRgb = function(tuple) {\n\treturn [hsluv.Hsluv.fromLinear(hsluv.Hsluv.dotProduct(hsluv.Hsluv.m[0],tuple)),hsluv.Hsluv.fromLinear(hsluv.Hsluv.dotProduct(hsluv.Hsluv.m[1],tuple)),hsluv.Hsluv.fromLinear(hsluv.Hsluv.dotProduct(hsluv.Hsluv.m[2],tuple))];\n};\nhsluv.Hsluv.rgbToXyz = function(tuple) {\n\tvar rgbl = [hsluv.Hsluv.toLinear(tuple[0]),hsluv.Hsluv.toLinear(tuple[1]),hsluv.Hsluv.toLinear(tuple[2])];\n\treturn [hsluv.Hsluv.dotProduct(hsluv.Hsluv.minv[0],rgbl),hsluv.Hsluv.dotProduct(hsluv.Hsluv.minv[1],rgbl),hsluv.Hsluv.dotProduct(hsluv.Hsluv.minv[2],rgbl)];\n};\nhsluv.Hsluv.yToL = function(Y) {\n\tif(Y <= hsluv.Hsluv.epsilon) {\n\t\treturn Y / hsluv.Hsluv.refY * hsluv.Hsluv.kappa;\n\t} else {\n\t\treturn 116 * Math.pow(Y / hsluv.Hsluv.refY,0.333333333333333315) - 16;\n\t}\n};\nhsluv.Hsluv.lToY = function(L) {\n\tif(L <= 8) {\n\t\treturn hsluv.Hsluv.refY * L / hsluv.Hsluv.kappa;\n\t} else {\n\t\treturn hsluv.Hsluv.refY * Math.pow((L + 16) / 116,3);\n\t}\n};\nhsluv.Hsluv.xyzToLuv = function(tuple) {\n\tvar X = tuple[0];\n\tvar Y = tuple[1];\n\tvar Z = tuple[2];\n\tvar divider = X + 15 * Y + 3 * Z;\n\tvar varU = 4 * X;\n\tvar varV = 9 * Y;\n\tif(divider != 0) {\n\t\tvarU /= divider;\n\t\tvarV /= divider;\n\t} else {\n\t\tvarU = NaN;\n\t\tvarV = NaN;\n\t}\n\tvar L = hsluv.Hsluv.yToL(Y);\n\tif(L == 0) {\n\t\treturn [0,0,0];\n\t}\n\tvar U = 13 * L * (varU - hsluv.Hsluv.refU);\n\tvar V = 13 * L * (varV - hsluv.Hsluv.refV);\n\treturn [L,U,V];\n};\nhsluv.Hsluv.luvToXyz = function(tuple) {\n\tvar L = tuple[0];\n\tvar U = tuple[1];\n\tvar V = tuple[2];\n\tif(L == 0) {\n\t\treturn [0,0,0];\n\t}\n\tvar varU = U / (13 * L) + hsluv.Hsluv.refU;\n\tvar varV = V / (13 * L) + hsluv.Hsluv.refV;\n\tvar Y = hsluv.Hsluv.lToY(L);\n\tvar X = 0 - 9 * Y * varU / ((varU - 4) * varV - varU * varV);\n\tvar Z = (9 * Y - 15 * varV * Y - varV * X) / (3 * varV);\n\treturn [X,Y,Z];\n};\nhsluv.Hsluv.luvToLch = function(tuple) {\n\tvar L = tuple[0];\n\tvar U = tuple[1];\n\tvar V = tuple[2];\n\tvar C = Math.sqrt(U * U + V * V);\n\tvar H;\n\tif(C < 0.00000001) {\n\t\tH = 0;\n\t} else {\n\t\tvar Hrad = Math.atan2(V,U);\n\t\tH = Hrad * 180.0 / Math.PI;\n\t\tif(H < 0) {\n\t\t\tH = 360 + H;\n\t\t}\n\t}\n\treturn [L,C,H];\n};\nhsluv.Hsluv.lchToLuv = function(tuple) {\n\tvar L = tuple[0];\n\tvar C = tuple[1];\n\tvar H = tuple[2];\n\tvar Hrad = H / 360.0 * 2 * Math.PI;\n\tvar U = Math.cos(Hrad) * C;\n\tvar V = Math.sin(Hrad) * C;\n\treturn [L,U,V];\n};\nhsluv.Hsluv.hsluvToLch = function(tuple) {\n\tvar H = tuple[0];\n\tvar S = tuple[1];\n\tvar L = tuple[2];\n\tif(L > 99.9999999) {\n\t\treturn [100,0,H];\n\t}\n\tif(L < 0.00000001) {\n\t\treturn [0,0,H];\n\t}\n\tvar max = hsluv.Hsluv.maxChromaForLH(L,H);\n\tvar C = max / 100 * S;\n\treturn [L,C,H];\n};\nhsluv.Hsluv.lchToHsluv = function(tuple) {\n\tvar L = tuple[0];\n\tvar C = tuple[1];\n\tvar H = tuple[2];\n\tif(L > 99.9999999) {\n\t\treturn [H,0,100];\n\t}\n\tif(L < 0.00000001) {\n\t\treturn [H,0,0];\n\t}\n\tvar max = hsluv.Hsluv.maxChromaForLH(L,H);\n\tvar S = C / max * 100;\n\treturn [H,S,L];\n};\nhsluv.Hsluv.hpluvToLch = function(tuple) {\n\tvar H = tuple[0];\n\tvar S = tuple[1];\n\tvar L = tuple[2];\n\tif(L > 99.9999999) {\n\t\treturn [100,0,H];\n\t}\n\tif(L < 0.00000001) {\n\t\treturn [0,0,H];\n\t}\n\tvar max = hsluv.Hsluv.maxSafeChromaForL(L);\n\tvar C = max / 100 * S;\n\treturn [L,C,H];\n};\nhsluv.Hsluv.lchToHpluv = function(tuple) {\n\tvar L = tuple[0];\n\tvar C = tuple[1];\n\tvar H = tuple[2];\n\tif(L > 99.9999999) {\n\t\treturn [H,0,100];\n\t}\n\tif(L < 0.00000001) {\n\t\treturn [H,0,0];\n\t}\n\tvar max = hsluv.Hsluv.maxSafeChromaForL(L);\n\tvar S = C / max * 100;\n\treturn [H,S,L];\n};\nhsluv.Hsluv.rgbToHex = function(tuple) {\n\tvar h = \"#\";\n\tvar _g = 0;\n\twhile(_g < 3) {\n\t\tvar i = _g++;\n\t\tvar chan = tuple[i];\n\t\tvar c = Math.round(chan * 255);\n\t\tvar digit2 = c % 16;\n\t\tvar digit1 = (c - digit2) / 16 | 0;\n\t\th += hsluv.Hsluv.hexChars.charAt(digit1) + hsluv.Hsluv.hexChars.charAt(digit2);\n\t}\n\treturn h;\n};\nhsluv.Hsluv.hexToRgb = function(hex) {\n\thex = hex.toLowerCase();\n\tvar ret = [];\n\tvar _g = 0;\n\twhile(_g < 3) {\n\t\tvar i = _g++;\n\t\tvar digit1 = hsluv.Hsluv.hexChars.indexOf(hex.charAt(i * 2 + 1));\n\t\tvar digit2 = hsluv.Hsluv.hexChars.indexOf(hex.charAt(i * 2 + 2));\n\t\tvar n = digit1 * 16 + digit2;\n\t\tret.push(n / 255.0);\n\t}\n\treturn ret;\n};\nhsluv.Hsluv.lchToRgb = function(tuple) {\n\treturn hsluv.Hsluv.xyzToRgb(hsluv.Hsluv.luvToXyz(hsluv.Hsluv.lchToLuv(tuple)));\n};\nhsluv.Hsluv.rgbToLch = function(tuple) {\n\treturn hsluv.Hsluv.luvToLch(hsluv.Hsluv.xyzToLuv(hsluv.Hsluv.rgbToXyz(tuple)));\n};\nhsluv.Hsluv.hsluvToRgb = function(tuple) {\n\treturn hsluv.Hsluv.lchToRgb(hsluv.Hsluv.hsluvToLch(tuple));\n};\nhsluv.Hsluv.rgbToHsluv = function(tuple) {\n\treturn hsluv.Hsluv.lchToHsluv(hsluv.Hsluv.rgbToLch(tuple));\n};\nhsluv.Hsluv.hpluvToRgb = function(tuple) {\n\treturn hsluv.Hsluv.lchToRgb(hsluv.Hsluv.hpluvToLch(tuple));\n};\nhsluv.Hsluv.rgbToHpluv = function(tuple) {\n\treturn hsluv.Hsluv.lchToHpluv(hsluv.Hsluv.rgbToLch(tuple));\n};\nhsluv.Hsluv.hsluvToHex = function(tuple) {\n\treturn hsluv.Hsluv.rgbToHex(hsluv.Hsluv.hsluvToRgb(tuple));\n};\nhsluv.Hsluv.hpluvToHex = function(tuple) {\n\treturn hsluv.Hsluv.rgbToHex(hsluv.Hsluv.hpluvToRgb(tuple));\n};\nhsluv.Hsluv.hexToHsluv = function(s) {\n\treturn hsluv.Hsluv.rgbToHsluv(hsluv.Hsluv.hexToRgb(s));\n};\nhsluv.Hsluv.hexToHpluv = function(s) {\n\treturn hsluv.Hsluv.rgbToHpluv(hsluv.Hsluv.hexToRgb(s));\n};\nhsluv.Hsluv.m = [[3.240969941904521,-1.537383177570093,-0.498610760293],[-0.96924363628087,1.87596750150772,0.041555057407175],[0.055630079696993,-0.20397695888897,1.056971514242878]];\nhsluv.Hsluv.minv = [[0.41239079926595,0.35758433938387,0.18048078840183],[0.21263900587151,0.71516867876775,0.072192315360733],[0.019330818715591,0.11919477979462,0.95053215224966]];\nhsluv.Hsluv.refY = 1.0;\nhsluv.Hsluv.refU = 0.19783000664283;\nhsluv.Hsluv.refV = 0.46831999493879;\nhsluv.Hsluv.kappa = 903.2962962;\nhsluv.Hsluv.epsilon = 0.0088564516;\nhsluv.Hsluv.hexChars = \"0123456789abcdef\";\nvar root = {\n \"hsluvToRgb\": hsluv.Hsluv.hsluvToRgb,\n \"rgbToHsluv\": hsluv.Hsluv.rgbToHsluv,\n \"hpluvToRgb\": hsluv.Hsluv.hpluvToRgb,\n \"rgbToHpluv\": hsluv.Hsluv.rgbToHpluv,\n \"hsluvToHex\": hsluv.Hsluv.hsluvToHex,\n \"hexToHsluv\": hsluv.Hsluv.hexToHsluv,\n \"hpluvToHex\": hsluv.Hsluv.hpluvToHex,\n \"hexToHpluv\": hsluv.Hsluv.hexToHpluv,\n \"lchToHpluv\": hsluv.Hsluv.lchToHpluv,\n \"hpluvToLch\": hsluv.Hsluv.hpluvToLch,\n \"lchToHsluv\": hsluv.Hsluv.lchToHsluv,\n \"hsluvToLch\": hsluv.Hsluv.hsluvToLch,\n \"lchToLuv\": hsluv.Hsluv.lchToLuv,\n \"luvToLch\": hsluv.Hsluv.luvToLch,\n \"xyzToLuv\": hsluv.Hsluv.xyzToLuv,\n \"luvToXyz\": hsluv.Hsluv.luvToXyz,\n \"xyzToRgb\": hsluv.Hsluv.xyzToRgb,\n \"rgbToXyz\": hsluv.Hsluv.rgbToXyz,\n \"lchToRgb\": hsluv.Hsluv.lchToRgb,\n \"rgbToLch\": hsluv.Hsluv.rgbToLch\n};\n\nmodule.exports = root;\n","// Copyright (C) 2019 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nexport function cropText(str: string, charWidth: number, rectWidth: number) {\n let displayText = '';\n const maxLength = Math.floor(rectWidth / charWidth) - 1;\n if (str.length <= maxLength) {\n displayText = str;\n } else {\n let limit = maxLength;\n let maybeTripleDot = '';\n if (maxLength > 1) {\n limit = maxLength - 1;\n maybeTripleDot = '\\u2026';\n }\n // Javascript strings are UTF-16. |limit| could point in the middle of a\n // 32-bit double-wchar codepoint (e.g., an emoji). Here we detect if the\n // |limit|-th wchar is a leading surrogate and attach the trailing one.\n const lastCharCode = str.charCodeAt(limit - 1);\n limit += (lastCharCode >= 0xD800 && lastCharCode < 0xDC00) ? 1 : 0;\n displayText = str.substring(0, limit) + maybeTripleDot;\n }\n return displayText;\n}\n\nexport function drawDoubleHeadedArrow(\n ctx: CanvasRenderingContext2D,\n x: number,\n y: number,\n length: number,\n showArrowHeads: boolean,\n width = 2,\n color = 'black') {\n ctx.beginPath();\n ctx.lineWidth = width;\n ctx.lineCap = 'round';\n ctx.strokeStyle = color;\n ctx.moveTo(x, y);\n ctx.lineTo(x + length, y);\n ctx.stroke();\n ctx.closePath();\n // Arrowheads on the each end of the line.\n if (showArrowHeads) {\n ctx.beginPath();\n ctx.moveTo(x + length - 8, y - 4);\n ctx.lineTo(x + length, y);\n ctx.lineTo(x + length - 8, y + 4);\n ctx.stroke();\n ctx.closePath();\n ctx.beginPath();\n ctx.moveTo(x + 8, y - 4);\n ctx.lineTo(x, y);\n ctx.lineTo(x + 8, y + 4);\n ctx.stroke();\n ctx.closePath();\n }\n}\n\nexport function drawIncompleteSlice(\n ctx: CanvasRenderingContext2D,\n x: number,\n y: number,\n width: number,\n height: number) {\n ctx.beginPath();\n const triangleSize = height / 4;\n ctx.moveTo(x, y);\n ctx.lineTo(x + width, y);\n ctx.lineTo(x + width - 3, y + triangleSize * 0.5);\n ctx.lineTo(x + width, y + triangleSize);\n ctx.lineTo(x + width - 3, y + (triangleSize * 1.5));\n ctx.lineTo(x + width, y + 2 * triangleSize);\n ctx.lineTo(x + width - 3, y + (triangleSize * 2.5));\n ctx.lineTo(x + width, y + 3 * triangleSize);\n ctx.lineTo(x + width - 3, y + (triangleSize * 3.5));\n ctx.lineTo(x + width, y + 4 * triangleSize);\n ctx.lineTo(x, y + height);\n ctx.fill();\n}\n","// Copyright (C) 2021 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nexport const TRACE_SUFFIX = '.perfetto-trace';\n\nexport const TRACE_MARGIN_TIME_S = 1 / 1e7;\n","// Copyright (C) 2018 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nconst LOADING_TEXT = 'Loading...';\nlet LOADING_TEXT_WIDTH = 0;\n\n/**\n * Checker board the range [leftPx, rightPx].\n */\nexport function checkerboard(\n ctx: CanvasRenderingContext2D,\n heightPx: number,\n leftPx: number,\n rightPx: number): void {\n const widthPx = rightPx - leftPx;\n ctx.font = '12px Roboto Condensed';\n ctx.fillStyle = '#eee';\n ctx.fillRect(leftPx, 0, widthPx, heightPx);\n ctx.fillStyle = '#666';\n const oldBaseline = ctx.textBaseline;\n ctx.textBaseline = 'middle';\n if (LOADING_TEXT_WIDTH === 0) {\n LOADING_TEXT_WIDTH = ctx.measureText(LOADING_TEXT).width;\n }\n if (LOADING_TEXT_WIDTH <= widthPx) {\n ctx.fillText(\n LOADING_TEXT,\n leftPx + widthPx / 2 - LOADING_TEXT_WIDTH / 2,\n heightPx / 2);\n }\n ctx.textBaseline = oldBaseline;\n}\n\n/**\n * Checker board everything between [startPx, endPx] except [leftPx, rightPx].\n */\nexport function checkerboardExcept(\n ctx: CanvasRenderingContext2D,\n heightPx: number,\n startPx: number,\n endPx: number,\n leftPx: number,\n rightPx: number): void {\n // [leftPx, rightPx] doesn't overlap [startPx, endPx] at all:\n if (rightPx <= startPx || leftPx >= endPx) {\n checkerboard(ctx, heightPx, startPx, endPx);\n return;\n }\n\n // Checkerboard [startPx, leftPx]:\n if (leftPx > startPx) {\n checkerboard(ctx, heightPx, startPx, leftPx);\n }\n\n // Checkerboard [rightPx, endPx]:\n if (rightPx < endPx) {\n checkerboard(ctx, heightPx, rightPx, endPx);\n }\n}\n","// Copyright (C) 2018 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as m from 'mithril';\n\nimport {assertExists} from '../base/logging';\nimport {Engine} from '../common/engine';\nimport {TrackState} from '../common/state';\nimport {TrackData} from '../common/track_data';\n\nimport {checkerboard} from './checkerboard';\nimport {globals} from './globals';\nimport {TrackButtonAttrs} from './track_panel';\n\n/**\n * Args passed to the track constructors when creating a new track.\n */\nexport interface NewTrackArgs {\n trackId: string;\n engine: Engine;\n}\n\n/**\n * This interface forces track implementations to have some static properties.\n * Typescript does not have abstract static members, which is why this needs to\n * be in a separate interface.\n */\nexport interface TrackCreator {\n // Store the kind explicitly as a string as opposed to using class.kind in\n // case we ever minify our code.\n readonly kind: string;\n\n // We need the |create| method because the stored value in the registry can be\n // an abstract class, and we cannot call 'new' on an abstract class.\n create(args: NewTrackArgs): Track;\n}\n\nexport interface SliceRect {\n left: number;\n width: number;\n top: number;\n height: number;\n visible: boolean;\n}\n\n/**\n * The abstract class that needs to be implemented by all tracks.\n */\nexport abstract class Track<Config = {}, Data extends TrackData = TrackData> {\n // The UI-generated track ID (not to be confused with the SQL track.id).\n protected readonly trackId: string;\n protected readonly engine: Engine;\n\n // When true this is a new controller-less track type.\n // TODO(hjd): eventually all tracks will be controller-less and this\n // should be removed then.\n protected frontendOnly = false;\n\n // Caches the last state.track[this.trackId]. This is to deal with track\n // deletion, see comments in trackState() below.\n private lastTrackState: TrackState;\n\n constructor(args: NewTrackArgs) {\n this.trackId = args.trackId;\n this.engine = args.engine;\n this.lastTrackState = assertExists(globals.state.tracks[this.trackId]);\n }\n\n protected abstract renderCanvas(ctx: CanvasRenderingContext2D): void;\n\n protected get trackState(): TrackState {\n // We can end up in a state where a Track is still in the mithril renderer\n // tree but its corresponding state has been deleted. This can happen in the\n // interval of time between a track being removed from the state and the\n // next animation frame that would remove the Track object. If a mouse event\n // is dispatched in the meanwhile (or a promise is resolved), we need to be\n // able to access the state. Hence the caching logic here.\n const trackState = globals.state.tracks[this.trackId];\n if (trackState === undefined) {\n return this.lastTrackState;\n }\n this.lastTrackState = trackState;\n return trackState;\n }\n\n get config(): Config {\n return this.trackState.config as Config;\n }\n\n data(): Data|undefined {\n if (this.frontendOnly) {\n return undefined;\n }\n return globals.trackDataStore.get(this.trackId) as Data;\n }\n\n getHeight(): number {\n return 40;\n }\n\n getTrackShellButtons(): Array<m.Vnode<TrackButtonAttrs>> {\n return [];\n }\n\n onMouseMove(_position: {x: number, y: number}) {}\n\n /**\n * Returns whether the mouse click has selected something.\n * Used to prevent further propagation if necessary.\n */\n onMouseClick(_position: {x: number, y: number}): boolean {\n return false;\n }\n\n onMouseOut(): void {}\n\n onFullRedraw(): void {}\n\n render(ctx: CanvasRenderingContext2D) {\n globals.frontendLocalState.addVisibleTrack(this.trackState.id);\n if (this.data() === undefined && !this.frontendOnly) {\n const {visibleWindowTime, timeScale} = globals.frontendLocalState;\n const startPx = Math.floor(timeScale.timeToPx(visibleWindowTime.start));\n const endPx = Math.ceil(timeScale.timeToPx(visibleWindowTime.end));\n checkerboard(ctx, this.getHeight(), startPx, endPx);\n } else {\n this.renderCanvas(ctx);\n }\n }\n\n drawTrackHoverTooltip(\n ctx: CanvasRenderingContext2D, pos: {x: number, y: number}, text: string,\n text2?: string) {\n ctx.font = '10px Roboto Condensed';\n ctx.textBaseline = 'middle';\n ctx.textAlign = 'left';\n\n // TODO(hjd): Avoid measuring text all the time (just use monospace?)\n const textMetrics = ctx.measureText(text);\n const text2Metrics = ctx.measureText(text2 || '');\n\n // Padding on each side of the box containing the tooltip:\n const paddingPx = 4;\n\n // Figure out the width of the tool tip box:\n let width = Math.max(textMetrics.width, text2Metrics.width);\n width += paddingPx * 2;\n\n // and the height:\n let height = 0;\n height += textMetrics.fontBoundingBoxAscent;\n height += textMetrics.fontBoundingBoxDescent;\n if (text2 !== undefined) {\n height += text2Metrics.fontBoundingBoxAscent;\n height += text2Metrics.fontBoundingBoxDescent;\n }\n height += paddingPx * 2;\n\n let x = pos.x;\n let y = pos.y;\n\n // Move box to the top right of the mouse:\n x += 10;\n y -= 10;\n\n // Ensure the box is on screen:\n const endPx = globals.frontendLocalState.timeScale.endPx;\n if (x + width > endPx) {\n x -= x + width - endPx;\n }\n if (y < 0) {\n y = 0;\n }\n if (y + height > this.getHeight()) {\n y -= y + height - this.getHeight();\n }\n\n // Draw everything:\n ctx.fillStyle = 'rgba(255, 255, 255, 0.9)';\n ctx.fillRect(x, y, width, height);\n\n ctx.fillStyle = 'hsl(200, 50%, 40%)';\n ctx.fillText(\n text, x + paddingPx, y + paddingPx + textMetrics.fontBoundingBoxAscent);\n if (text2 !== undefined) {\n const yOffsetPx = textMetrics.fontBoundingBoxAscent +\n textMetrics.fontBoundingBoxDescent +\n text2Metrics.fontBoundingBoxAscent;\n ctx.fillText(text2, x + paddingPx, y + paddingPx + yOffsetPx);\n }\n }\n\n /**\n * Returns a place where a given slice should be drawn. Should be implemented\n * only for track types that support slices e.g. chrome_slice, async_slices\n * tStart - slice start time in seconds, tEnd - slice end time in seconds,\n * depth - slice depth\n */\n getSliceRect(_tStart: number, _tEnd: number, _depth: number): SliceRect\n |undefined {\n return undefined;\n }\n}\n","// Copyright (C) 2018 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {TrackData} from '../../common/track_data';\n\nexport const SLICE_TRACK_KIND = 'ChromeSliceTrack';\n\nexport interface Config {\n maxDepth: number;\n namespace: string;\n trackId: number;\n isThreadSlice?: boolean;\n}\n\nexport interface Data extends TrackData {\n // Slices are stored in a columnar fashion.\n strings: string[];\n sliceIds: Float64Array;\n starts: Float64Array;\n ends: Float64Array;\n depths: Uint16Array;\n titles: Uint16Array; // Index into strings.\n colors?: Uint16Array; // Index into strings.\n isInstant: Uint16Array;\n isIncomplete: Uint16Array;\n cpuTimeRatio?: Float64Array;\n}\n","// Copyright (C) 2018 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {hsluvToHex} from 'hsluv';\n\nimport {Actions} from '../../common/actions';\nimport {cropText, drawIncompleteSlice} from '../../common/canvas_utils';\nimport {hslForSlice, hslForThreadIdleSlice} from '../../common/colorizer';\nimport {TRACE_MARGIN_TIME_S} from '../../common/constants';\nimport {checkerboardExcept} from '../../frontend/checkerboard';\nimport {globals} from '../../frontend/globals';\nimport {NewTrackArgs, SliceRect, Track} from '../../frontend/track';\nimport {trackRegistry} from '../../frontend/track_registry';\n\nimport {Config, Data, SLICE_TRACK_KIND} from './common';\n\nconst SLICE_HEIGHT = 18;\nconst TRACK_PADDING = 4;\nconst CHEVRON_WIDTH_PX = 10;\nconst HALF_CHEVRON_WIDTH_PX = CHEVRON_WIDTH_PX / 2;\nconst INNER_CHEVRON_OFFSET = -3;\nconst INNER_CHEVRON_SCALE =\n (SLICE_HEIGHT - 2 * INNER_CHEVRON_OFFSET) / SLICE_HEIGHT;\n\nexport class ChromeSliceTrack extends Track<Config, Data> {\n static readonly kind: string = SLICE_TRACK_KIND;\n static create(args: NewTrackArgs): Track {\n return new ChromeSliceTrack(args);\n }\n\n private hoveredTitleId = -1;\n\n constructor(args: NewTrackArgs) {\n super(args);\n }\n\n renderCanvas(ctx: CanvasRenderingContext2D): void {\n // TODO: fonts and colors should come from the CSS and not hardcoded here.\n\n const {timeScale, visibleWindowTime} = globals.frontendLocalState;\n const data = this.data();\n\n if (data === undefined) return; // Can't possibly draw anything.\n\n // If the cached trace slices don't fully cover the visible time range,\n // show a gray rectangle with a \"Loading...\" label.\n checkerboardExcept(\n ctx,\n this.getHeight(),\n timeScale.timeToPx(visibleWindowTime.start),\n timeScale.timeToPx(visibleWindowTime.end),\n timeScale.timeToPx(data.start),\n timeScale.timeToPx(data.end),\n );\n\n ctx.font = '12px Roboto Condensed';\n ctx.textAlign = 'center';\n\n // measuretext is expensive so we only use it once.\n const charWidth = ctx.measureText('ACBDLqsdfg').width / 10;\n\n // The draw of the rect on the selected slice must happen after the other\n // drawings, otherwise it would result under another rect.\n let drawRectOnSelected = () => {};\n\n for (let i = 0; i < data.starts.length; i++) {\n const tStart = data.starts[i];\n let tEnd = data.ends[i];\n const depth = data.depths[i];\n const titleId = data.titles[i];\n const sliceId = data.sliceIds[i];\n const isInstant = data.isInstant[i];\n const isIncomplete = data.isIncomplete[i];\n const title = data.strings[titleId];\n const colorOverride = data.colors && data.strings[data.colors[i]];\n const isThreadSlice = this.config.isThreadSlice;\n if (isIncomplete) { // incomplete slice\n tEnd = visibleWindowTime.end;\n }\n\n const rect = this.getSliceRect(tStart, tEnd, depth);\n if (!rect || !rect.visible) {\n continue;\n }\n\n const currentSelection = globals.state.currentSelection;\n const isSelected = currentSelection &&\n currentSelection.kind === 'CHROME_SLICE' &&\n currentSelection.id !== undefined && currentSelection.id === sliceId;\n\n const name = title.replace(/( )?\\d+/g, '');\n const highlighted = titleId === this.hoveredTitleId ||\n globals.state.highlightedSliceId === sliceId;\n\n const hasFocus = highlighted || isSelected;\n\n const [hue, saturation, lightness] = hslForSlice(name, hasFocus);\n\n let color: string;\n if (colorOverride === undefined) {\n color = hsluvToHex([hue, saturation, lightness]);\n } else {\n color = colorOverride;\n }\n ctx.fillStyle = color;\n\n // We draw instant events as upward facing chevrons starting at A:\n // A\n // ###\n // ##C##\n // ## ##\n // D B\n // Then B, C, D and back to A:\n if (isInstant) {\n if (isSelected) {\n drawRectOnSelected = () => {\n ctx.save();\n ctx.translate(rect.left, rect.top);\n\n // Draw outer chevron as dark border\n ctx.save();\n ctx.translate(0, INNER_CHEVRON_OFFSET);\n ctx.scale(INNER_CHEVRON_SCALE, INNER_CHEVRON_SCALE);\n ctx.fillStyle = hsluvToHex([hue, 100, 10]);\n\n this.drawChevron(ctx);\n ctx.restore();\n\n // Draw inner chevron as interior\n ctx.fillStyle = color;\n this.drawChevron(ctx);\n\n ctx.restore();\n };\n } else {\n ctx.save();\n ctx.translate(rect.left, rect.top);\n this.drawChevron(ctx);\n ctx.restore();\n }\n continue;\n }\n\n if (isIncomplete && rect.width > SLICE_HEIGHT / 4) {\n drawIncompleteSlice(ctx, rect.left, rect.top, rect.width, SLICE_HEIGHT);\n } else if (isThreadSlice) {\n // We draw two rectangles, representing the ratio between wall time and\n // time spent on cpu.\n const cpuTimeRatio = data.cpuTimeRatio![i];\n const firstPartWidth = rect.width * cpuTimeRatio;\n const secondPartWidth = rect.width * (1 - cpuTimeRatio);\n ctx.fillRect(rect.left, rect.top, firstPartWidth, SLICE_HEIGHT);\n ctx.fillStyle = hsluvToHex(\n hslForThreadIdleSlice(hue, saturation, lightness, hasFocus));\n ctx.fillRect(\n rect.left + firstPartWidth,\n rect.top,\n secondPartWidth,\n SLICE_HEIGHT);\n } else {\n ctx.fillRect(rect.left, rect.top, rect.width, SLICE_HEIGHT);\n }\n\n // Selected case\n if (isSelected) {\n drawRectOnSelected = () => {\n ctx.strokeStyle = hsluvToHex([hue, 100, 10]);\n ctx.beginPath();\n ctx.lineWidth = 3;\n ctx.strokeRect(\n rect.left, rect.top - 1.5, rect.width, SLICE_HEIGHT + 3);\n ctx.closePath();\n };\n }\n\n ctx.fillStyle = lightness > 65 ? '#404040' : 'white';\n const displayText = cropText(title, charWidth, rect.width);\n const rectXCenter = rect.left + rect.width / 2;\n ctx.textBaseline = \"middle\";\n ctx.fillText(displayText, rectXCenter, rect.top + SLICE_HEIGHT / 2);\n }\n drawRectOnSelected();\n }\n\n drawChevron(ctx: CanvasRenderingContext2D) {\n // Draw a chevron at a fixed location and size. Should be used with\n // ctx.translate and ctx.scale to alter location and size.\n ctx.beginPath();\n ctx.moveTo(0, 0);\n ctx.lineTo(HALF_CHEVRON_WIDTH_PX, SLICE_HEIGHT);\n ctx.lineTo(0, SLICE_HEIGHT - HALF_CHEVRON_WIDTH_PX);\n ctx.lineTo(-HALF_CHEVRON_WIDTH_PX, SLICE_HEIGHT);\n ctx.lineTo(0, 0);\n ctx.fill();\n }\n\n getSliceIndex({x, y}: {x: number, y: number}): number|void {\n const data = this.data();\n if (data === undefined) return;\n const {timeScale} = globals.frontendLocalState;\n if (y < TRACK_PADDING) return;\n const instantWidthTime = timeScale.deltaPxToDuration(HALF_CHEVRON_WIDTH_PX);\n const t = timeScale.pxToTime(x);\n const depth = Math.floor((y - TRACK_PADDING) / SLICE_HEIGHT);\n for (let i = 0; i < data.starts.length; i++) {\n if (depth !== data.depths[i]) {\n continue;\n }\n const tStart = data.starts[i];\n if (data.isInstant[i]) {\n if (Math.abs(tStart - t) < instantWidthTime) {\n return i;\n }\n } else {\n let tEnd = data.ends[i];\n if (data.isIncomplete[i]) {\n tEnd = globals.frontendLocalState.visibleWindowTime.end;\n }\n if (tStart <= t && t <= tEnd) {\n return i;\n }\n }\n }\n }\n\n onMouseMove({x, y}: {x: number, y: number}) {\n this.hoveredTitleId = -1;\n globals.dispatch(Actions.setHighlightedSliceId({sliceId: -1}));\n const sliceIndex = this.getSliceIndex({x, y});\n if (sliceIndex === undefined) return;\n const data = this.data();\n if (data === undefined) return;\n this.hoveredTitleId = data.titles[sliceIndex];\n const sliceId = data.sliceIds[sliceIndex];\n globals.dispatch(Actions.setHighlightedSliceId({sliceId}));\n }\n\n onMouseOut() {\n this.hoveredTitleId = -1;\n globals.dispatch(Actions.setHighlightedSliceId({sliceId: -1}));\n }\n\n onMouseClick({x, y}: {x: number, y: number}): boolean {\n const sliceIndex = this.getSliceIndex({x, y});\n if (sliceIndex === undefined) return false;\n const data = this.data();\n if (data === undefined) return false;\n const sliceId = data.sliceIds[sliceIndex];\n if (sliceId !== undefined && sliceId !== -1) {\n globals.makeSelection(Actions.selectChromeSlice({\n id: sliceId,\n trackId: this.trackState.id,\n table: this.config.namespace\n }));\n return true;\n }\n return false;\n }\n\n getHeight() {\n return SLICE_HEIGHT * (this.config.maxDepth + 1) + 2 * TRACK_PADDING;\n }\n\n getSliceRect(tStart: number, tEnd: number, depth: number): SliceRect\n |undefined {\n const {timeScale, visibleWindowTime} = globals.frontendLocalState;\n const pxEnd = timeScale.timeToPx(visibleWindowTime.end);\n const left = Math.max(timeScale.timeToPx(tStart), -TRACE_MARGIN_TIME_S);\n const right = Math.min(timeScale.timeToPx(tEnd), pxEnd);\n return {\n left,\n width: Math.max(right - left, 1),\n top: TRACK_PADDING + depth * SLICE_HEIGHT,\n height: SLICE_HEIGHT,\n visible:\n !(tEnd <= visibleWindowTime.start || tStart >= visibleWindowTime.end)\n };\n }\n}\n\ntrackRegistry.register(ChromeSliceTrack);\n","// Copyright (C) 2021 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {NewTrackArgs, Track} from '../../frontend/track';\nimport {trackRegistry} from '../../frontend/track_registry';\nimport {ChromeSliceTrack} from '../chrome_slices/frontend';\n\nimport {ACTUAL_FRAMES_SLICE_TRACK_KIND} from './common';\n\nexport class ActualFramesSliceTrack extends ChromeSliceTrack {\n static readonly kind = ACTUAL_FRAMES_SLICE_TRACK_KIND;\n static create(args: NewTrackArgs): Track {\n return new ActualFramesSliceTrack(args);\n }\n}\n\ntrackRegistry.register(ActualFramesSliceTrack);\n","// Copyright (C) 2021 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport './controller';\nimport './frontend';\n","// Copyright (C) 2018 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {TrackData} from '../../common/track_data';\n\nexport const ANDROID_LOGS_TRACK_KIND = 'AndroidLogTrack';\n\nexport interface Data extends TrackData {\n // Total number of log events within [start, end], before any quantization.\n numEvents: number;\n\n // Below: data quantized by resolution and aggregated by event priority.\n\n timestamps: Float64Array;\n\n // Each Uint8 value has the i-th bit is set if there is at least one log\n // event at the i-th priority level at the corresponding time in |timestamps|.\n priorities: Uint8Array;\n}\n\nexport interface Config {}\n","// Copyright (C) 2018 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {NUM} from '../../common/query_result';\nimport {fromNs, toNsCeil, toNsFloor} from '../../common/time';\nimport {LIMIT} from '../../common/track_data';\nimport {\n TrackController,\n trackControllerRegistry,\n} from '../../controller/track_controller';\n\nimport {ANDROID_LOGS_TRACK_KIND, Config, Data} from './common';\n\nclass AndroidLogTrackController extends TrackController<Config, Data> {\n static readonly kind = ANDROID_LOGS_TRACK_KIND;\n\n async onBoundsChange(start: number, end: number, resolution: number):\n Promise<Data> {\n const startNs = toNsFloor(start);\n const endNs = toNsCeil(end);\n\n // |resolution| is in s/px the frontend wants.\n const quantNs = toNsCeil(resolution);\n\n const queryRes = await this.query(`\n select\n cast(ts / ${quantNs} as integer) * ${quantNs} as tsQuant,\n prio,\n count(prio) as numEvents\n from android_logs\n where ts >= ${startNs} and ts <= ${endNs}\n group by tsQuant, prio\n order by tsQuant, prio limit ${LIMIT};`);\n\n const rowCount = queryRes.numRows();\n const result = {\n start,\n end,\n resolution,\n length: rowCount,\n numEvents: 0,\n timestamps: new Float64Array(rowCount),\n priorities: new Uint8Array(rowCount),\n };\n\n\n const it = queryRes.iter({tsQuant: NUM, prio: NUM, numEvents: NUM});\n for (let row = 0; it.valid(); it.next(), row++) {\n result.timestamps[row] = fromNs(it.tsQuant);\n const prio = Math.min(it.prio, 7);\n result.priorities[row] |= (1 << prio);\n result.numEvents += it.numEvents;\n }\n return result;\n }\n}\n\ntrackControllerRegistry.register(AndroidLogTrackController);\n","// Copyright (C) 2019 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {checkerboardExcept} from '../../frontend/checkerboard';\nimport {globals} from '../../frontend/globals';\nimport {NewTrackArgs, Track} from '../../frontend/track';\nimport {trackRegistry} from '../../frontend/track_registry';\n\nimport {ANDROID_LOGS_TRACK_KIND, Config, Data} from './common';\n\ninterface LevelCfg {\n color: string;\n prios: number[];\n}\n\nconst LEVELS: LevelCfg[] = [\n {color: 'hsl(122, 39%, 49%)', prios: [0, 1, 2, 3]}, // Up to DEBUG: Green.\n {color: 'hsl(0, 0%, 70%)', prios: [4]}, // 4 (INFO) -> Gray.\n {color: 'hsl(45, 100%, 51%)', prios: [5]}, // 5 (WARN) -> Amber.\n {color: 'hsl(4, 90%, 58%)', prios: [6]}, // 6 (ERROR) -> Red.\n {color: 'hsl(291, 64%, 42%)', prios: [7]}, // 7 (FATAL) -> Purple\n];\n\nconst MARGIN_TOP = 2;\nconst RECT_HEIGHT = 35;\nconst EVT_PX = 2; // Width of an event tick in pixels.\n\n\nclass AndroidLogTrack extends Track<Config, Data> {\n static readonly kind = ANDROID_LOGS_TRACK_KIND;\n static create(args: NewTrackArgs): AndroidLogTrack {\n return new AndroidLogTrack(args);\n }\n\n constructor(args: NewTrackArgs) {\n super(args);\n }\n\n renderCanvas(ctx: CanvasRenderingContext2D): void {\n const {timeScale, visibleWindowTime} = globals.frontendLocalState;\n\n const data = this.data();\n\n if (data === undefined) return; // Can't possibly draw anything.\n\n const dataStartPx = timeScale.timeToPx(data.start);\n const dataEndPx = timeScale.timeToPx(data.end);\n const visibleStartPx = timeScale.timeToPx(visibleWindowTime.start);\n const visibleEndPx = timeScale.timeToPx(visibleWindowTime.end);\n\n checkerboardExcept(\n ctx,\n this.getHeight(),\n visibleStartPx,\n visibleEndPx,\n dataStartPx,\n dataEndPx);\n\n const quantWidth =\n Math.max(EVT_PX, timeScale.deltaTimeToPx(data.resolution));\n const blockH = RECT_HEIGHT / LEVELS.length;\n for (let i = 0; i < data.timestamps.length; i++) {\n for (let lev = 0; lev < LEVELS.length; lev++) {\n let hasEventsForCurColor = false;\n for (const prio of LEVELS[lev].prios) {\n if (data.priorities[i] & (1 << prio)) hasEventsForCurColor = true;\n }\n if (!hasEventsForCurColor) continue;\n ctx.fillStyle = LEVELS[lev].color;\n const px = Math.floor(timeScale.timeToPx(data.timestamps[i]));\n ctx.fillRect(px, MARGIN_TOP + blockH * lev, quantWidth, blockH);\n } // for(lev)\n } // for (timestamps)\n }\n}\n\ntrackRegistry.register(AndroidLogTrack);\n","// Copyright (C) 2021 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport './controller';\nimport './frontend';\n","// Copyright (C) 2019 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {NUM, NUM_NULL, STR} from '../../common/query_result';\nimport {fromNs, toNs} from '../../common/time';\nimport {\n TrackController,\n trackControllerRegistry,\n} from '../../controller/track_controller';\n\nimport {ASYNC_SLICE_TRACK_KIND, Config, Data} from './common';\n\nclass AsyncSliceTrackController extends TrackController<Config, Data> {\n static readonly kind = ASYNC_SLICE_TRACK_KIND;\n private maxDurNs = 0;\n\n async onBoundsChange(start: number, end: number, resolution: number):\n Promise<Data> {\n const startNs = toNs(start);\n const endNs = toNs(end);\n\n const pxSize = this.pxSize();\n\n // ns per quantization bucket (i.e. ns per pixel). /2 * 2 is to force it to\n // be an even number, so we can snap in the middle.\n const bucketNs = Math.max(Math.round(resolution * 1e9 * pxSize / 2) * 2, 1);\n\n if (this.maxDurNs === 0) {\n const maxDurResult = await this.query(`\n select max(iif(dur = -1, (SELECT end_ts FROM trace_bounds) - ts, dur))\n as maxDur from experimental_slice_layout\n where filter_track_ids = '${this.config.trackIds.join(',')}'\n `);\n this.maxDurNs = maxDurResult.firstRow({maxDur: NUM_NULL}).maxDur || 0;\n }\n\n const queryRes = await this.query(`\n SELECT\n (ts + ${bucketNs / 2}) / ${bucketNs} * ${bucketNs} as tsq,\n ts,\n max(iif(dur = -1, (SELECT end_ts FROM trace_bounds) - ts, dur)) as dur,\n layout_depth as depth,\n ifnull(name, '[null]') as name,\n id,\n dur = 0 as isInstant,\n dur = -1 as isIncomplete\n from experimental_slice_layout\n where\n filter_track_ids = '${this.config.trackIds.join(',')}' and\n ts >= ${startNs - this.maxDurNs} and\n ts <= ${endNs}\n group by tsq, layout_depth\n order by tsq, layout_depth\n `);\n\n const numRows = queryRes.numRows();\n const slices: Data = {\n start,\n end,\n resolution,\n length: numRows,\n strings: [],\n sliceIds: new Float64Array(numRows),\n starts: new Float64Array(numRows),\n ends: new Float64Array(numRows),\n depths: new Uint16Array(numRows),\n titles: new Uint16Array(numRows),\n isInstant: new Uint16Array(numRows),\n isIncomplete: new Uint16Array(numRows),\n };\n\n const stringIndexes = new Map<string, number>();\n function internString(str: string) {\n let idx = stringIndexes.get(str);\n if (idx !== undefined) return idx;\n idx = slices.strings.length;\n slices.strings.push(str);\n stringIndexes.set(str, idx);\n return idx;\n }\n\n const it = queryRes.iter({\n tsq: NUM,\n ts: NUM,\n dur: NUM,\n depth: NUM,\n name: STR,\n id: NUM,\n isInstant: NUM,\n isIncomplete: NUM\n });\n for (let row = 0; it.valid(); it.next(), row++) {\n const startNsQ = it.tsq;\n const startNs = it.ts;\n const durNs = it.dur;\n const endNs = startNs + durNs;\n\n let endNsQ = Math.floor((endNs + bucketNs / 2 - 1) / bucketNs) * bucketNs;\n endNsQ = Math.max(endNsQ, startNsQ + bucketNs);\n\n slices.starts[row] = fromNs(startNsQ);\n slices.ends[row] = fromNs(endNsQ);\n slices.depths[row] = it.depth;\n slices.titles[row] = internString(it.name);\n slices.sliceIds[row] = it.id;\n slices.isInstant[row] = it.isInstant;\n slices.isIncomplete[row] = it.isIncomplete;\n }\n return slices;\n }\n}\n\ntrackControllerRegistry.register(AsyncSliceTrackController);\n","// Copyright (C) 2019 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {NewTrackArgs, Track} from '../../frontend/track';\nimport {trackRegistry} from '../../frontend/track_registry';\nimport {ChromeSliceTrack} from '../chrome_slices/frontend';\n\nimport {ASYNC_SLICE_TRACK_KIND} from './common';\n\nexport class AsyncSliceTrack extends ChromeSliceTrack {\n static readonly kind = ASYNC_SLICE_TRACK_KIND;\n static create(args: NewTrackArgs): Track {\n return new AsyncSliceTrack(args);\n }\n}\n\ntrackRegistry.register(AsyncSliceTrack);\n","// Copyright (C) 2021 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport './controller';\nimport './frontend';\n","// Copyright (C) 2018 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {NUM, NUM_NULL, STR} from '../../common/query_result';\nimport {fromNs, toNs} from '../../common/time';\nimport {\n TrackController,\n trackControllerRegistry,\n} from '../../controller/track_controller';\n\nimport {Config, Data, SLICE_TRACK_KIND} from './common';\n\n\nclass ChromeSliceTrackController extends TrackController<Config, Data> {\n static readonly kind = SLICE_TRACK_KIND;\n private maxDurNs = 0;\n\n async onBoundsChange(start: number, end: number, resolution: number):\n Promise<Data> {\n const startNs = toNs(start);\n const endNs = toNs(end);\n\n const pxSize = this.pxSize();\n\n // ns per quantization bucket (i.e. ns per pixel). /2 * 2 is to force it to\n // be an even number, so we can snap in the middle.\n const bucketNs = Math.max(Math.round(resolution * 1e9 * pxSize / 2) * 2, 1);\n\n const isThreadSlice = this.config.isThreadSlice;\n let tableName = this.namespaceTable('slice');\n let threadDurQuery = ', dur';\n if (isThreadSlice) {\n tableName = this.namespaceTable('thread_slice');\n threadDurQuery = ', iif(thread_dur IS NULL, dur, thread_dur)';\n }\n\n if (this.maxDurNs === 0) {\n const query = `\n SELECT max(iif(dur = -1, (SELECT end_ts FROM trace_bounds) - ts, dur))\n AS maxDur FROM ${tableName} WHERE track_id = ${this.config.trackId}`;\n const queryRes = await this.query(query);\n this.maxDurNs = queryRes.firstRow({maxDur: NUM_NULL}).maxDur || 0;\n }\n\n const query = `\n SELECT\n (ts + ${bucketNs / 2}) / ${bucketNs} * ${bucketNs} as tsq,\n ts,\n max(iif(dur = -1, (SELECT end_ts FROM trace_bounds) - ts, dur)) as dur,\n depth,\n id as sliceId,\n ifnull(name, '[null]') as name,\n dur = 0 as isInstant,\n dur = -1 as isIncomplete\n ${threadDurQuery} as threadDur\n FROM ${tableName}\n WHERE track_id = ${this.config.trackId} AND\n ts >= (${startNs - this.maxDurNs}) AND\n ts <= ${endNs}\n GROUP BY depth, tsq`;\n const queryRes = await this.query(query);\n\n const numRows = queryRes.numRows();\n const slices: Data = {\n start,\n end,\n resolution,\n length: numRows,\n strings: [],\n sliceIds: new Float64Array(numRows),\n starts: new Float64Array(numRows),\n ends: new Float64Array(numRows),\n depths: new Uint16Array(numRows),\n titles: new Uint16Array(numRows),\n isInstant: new Uint16Array(numRows),\n isIncomplete: new Uint16Array(numRows),\n cpuTimeRatio: new Float64Array(numRows)\n };\n\n const stringIndexes = new Map<string, number>();\n function internString(str: string) {\n let idx = stringIndexes.get(str);\n if (idx !== undefined) return idx;\n idx = slices.strings.length;\n slices.strings.push(str);\n stringIndexes.set(str, idx);\n return idx;\n }\n\n const it = queryRes.iter({\n tsq: NUM,\n ts: NUM,\n dur: NUM,\n depth: NUM,\n sliceId: NUM,\n name: STR,\n isInstant: NUM,\n isIncomplete: NUM,\n threadDur: NUM\n });\n for (let row = 0; it.valid(); it.next(), row++) {\n const startNsQ = it.tsq;\n const startNs = it.ts;\n const durNs = it.dur;\n const endNs = startNs + durNs;\n\n let endNsQ = Math.floor((endNs + bucketNs / 2 - 1) / bucketNs) * bucketNs;\n endNsQ = Math.max(endNsQ, startNsQ + bucketNs);\n\n if (!it.isInstant && startNsQ === endNsQ) {\n throw new Error(\n 'Expected startNsQ and endNsQ to differ (' +\n `startNsQ: ${startNsQ}, startNs: ${startNs},` +\n ` endNsQ: ${endNsQ}, durNs: ${durNs},` +\n ` endNs: ${endNs}, bucketNs: ${bucketNs})`);\n }\n\n slices.starts[row] = fromNs(startNsQ);\n slices.ends[row] = fromNs(endNsQ);\n slices.depths[row] = it.depth;\n slices.sliceIds[row] = it.sliceId;\n slices.titles[row] = internString(it.name);\n slices.isInstant[row] = it.isInstant;\n slices.isIncomplete[row] = it.isIncomplete;\n\n let cpuTimeRatio = 1;\n if (!it.isInstant && !it.isIncomplete) {\n // Rounding the CPU time ratio to two decimal places and ensuring\n // it is less than or equal to one, incase the thread duration exceeds\n // the total duration.\n cpuTimeRatio =\n Math.min(Math.round((it.threadDur / it.dur) * 100) / 100, 1);\n }\n slices.cpuTimeRatio![row] = cpuTimeRatio;\n }\n return slices;\n }\n}\n\n\ntrackControllerRegistry.register(ChromeSliceTrackController);\n","// Copyright (C) 2021 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport './controller';\nimport './frontend';\n","// Copyright (C) 2018 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {NUM, NUM_NULL} from '../../common/query_result';\nimport {fromNs, toNs} from '../../common/time';\nimport {\n TrackController,\n trackControllerRegistry\n} from '../../controller/track_controller';\n\nimport {\n Config,\n COUNTER_TRACK_KIND,\n Data,\n} from './common';\n\nclass CounterTrackController extends TrackController<Config, Data> {\n static readonly kind = COUNTER_TRACK_KIND;\n private setup = false;\n private maximumValueSeen = 0;\n private minimumValueSeen = 0;\n private maximumDeltaSeen = 0;\n private minimumDeltaSeen = 0;\n private maxDurNs = 0;\n\n async onBoundsChange(start: number, end: number, resolution: number):\n Promise<Data> {\n const startNs = toNs(start);\n const endNs = toNs(end);\n\n const pxSize = this.pxSize();\n\n // ns per quantization bucket (i.e. ns per pixel). /2 * 2 is to force it to\n // be an even number, so we can snap in the middle.\n const bucketNs = Math.max(Math.round(resolution * 1e9 * pxSize / 2) * 2, 1);\n\n if (!this.setup) {\n if (this.config.namespace === undefined) {\n await this.query(`\n create view ${this.tableName('counter_view')} as\n select\n id,\n ts,\n dur,\n value,\n delta\n from experimental_counter_dur\n where track_id = ${this.config.trackId};\n `);\n } else {\n await this.query(`\n create view ${this.tableName('counter_view')} as\n select\n id,\n ts,\n lead(ts, 1, ts) over (order by ts) - ts as dur,\n lead(value, 1, value) over (order by ts) - value as delta,\n value\n from ${this.namespaceTable('counter')}\n where track_id = ${this.config.trackId};\n `);\n }\n\n const maxDurResult = await this.query(`\n select\n max(\n iif(dur != -1, dur, (select end_ts from trace_bounds) - ts)\n ) as maxDur\n from ${this.tableName('counter_view')}\n `);\n this.maxDurNs = maxDurResult.firstRow({maxDur: NUM_NULL}).maxDur || 0;\n\n const queryRes = await this.query(`\n select\n ifnull(max(value), 0) as maxValue,\n ifnull(min(value), 0) as minValue,\n ifnull(max(delta), 0) as maxDelta,\n ifnull(min(delta), 0) as minDelta\n from ${this.tableName('counter_view')}`);\n const row = queryRes.firstRow(\n {maxValue: NUM, minValue: NUM, maxDelta: NUM, minDelta: NUM});\n this.maximumValueSeen = row.maxValue;\n this.minimumValueSeen = row.minValue;\n this.maximumDeltaSeen = row.maxDelta;\n this.minimumDeltaSeen = row.minDelta;\n\n this.setup = true;\n }\n\n const queryRes = await this.query(`\n select\n (ts + ${bucketNs / 2}) / ${bucketNs} * ${bucketNs} as tsq,\n min(value) as minValue,\n max(value) as maxValue,\n sum(delta) as totalDelta,\n value_at_max_ts(ts, id) as lastId,\n value_at_max_ts(ts, value) as lastValue\n from ${this.tableName('counter_view')}\n where ts >= ${startNs - this.maxDurNs} and ts <= ${endNs}\n group by tsq\n order by tsq\n `);\n\n const numRows = queryRes.numRows();\n\n const data: Data = {\n start,\n end,\n length: numRows,\n maximumValue: this.maximumValue(),\n minimumValue: this.minimumValue(),\n maximumDelta: this.maximumDeltaSeen,\n minimumDelta: this.minimumDeltaSeen,\n resolution,\n timestamps: new Float64Array(numRows),\n lastIds: new Float64Array(numRows),\n minValues: new Float64Array(numRows),\n maxValues: new Float64Array(numRows),\n lastValues: new Float64Array(numRows),\n totalDeltas: new Float64Array(numRows),\n };\n\n const it = queryRes.iter({\n 'tsq': NUM,\n 'lastId': NUM,\n 'minValue': NUM,\n 'maxValue': NUM,\n 'lastValue': NUM,\n 'totalDelta': NUM,\n });\n for (let row = 0; it.valid(); it.next(), row++) {\n data.timestamps[row] = fromNs(it.tsq);\n data.lastIds[row] = it.lastId;\n data.minValues[row] = it.minValue;\n data.maxValues[row] = it.maxValue;\n data.lastValues[row] = it.lastValue;\n data.totalDeltas[row] = it.totalDelta;\n }\n return data;\n }\n\n private maximumValue() {\n if (this.config.maximumValue === undefined) {\n return this.maximumValueSeen;\n } else {\n return this.config.maximumValue;\n }\n }\n\n private minimumValue() {\n if (this.config.minimumValue === undefined) {\n return this.minimumValueSeen;\n } else {\n return this.config.minimumValue;\n }\n }\n}\n\ntrackControllerRegistry.register(CounterTrackController);\n","// Copyright (C) 2018 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n\ntype Numbers = Float64Array|Uint32Array|number[];\ntype Range = [number, number];\n\nfunction searchImpl(\n haystack: Numbers, needle: number, i: number, j: number): number {\n if (i === j) return -1;\n if (i + 1 === j) {\n return (needle >= haystack[i]) ? i : -1;\n }\n\n const mid = Math.floor((j - i) / 2) + i;\n const midValue = haystack[mid];\n if (needle < midValue) {\n return searchImpl(haystack, needle, i, mid);\n } else {\n return searchImpl(haystack, needle, mid, j);\n }\n}\n\nfunction searchRangeImpl(\n haystack: Numbers, needle: number, i: number, j: number): Range {\n if (i === j) return [i, j];\n if (i + 1 === j) {\n if (haystack[i] <= needle) {\n return [i, j];\n } else {\n return [i, i];\n }\n }\n\n const mid = Math.floor((j - i) / 2) + i;\n const midValue = haystack[mid];\n\n if (needle < midValue) {\n return searchRangeImpl(haystack, needle, i, mid);\n } else if (needle > midValue) {\n return searchRangeImpl(haystack, needle, mid, j);\n } else {\n while (haystack[i] !== needle) i++;\n while (haystack[j - 1] !== needle) j--;\n return [i, j];\n }\n}\n\nexport function search(haystack: Numbers, needle: number): number {\n return searchImpl(haystack, needle, 0, haystack.length);\n}\n\n/**\n * Given a sorted array of numbers (|haystack|) and a |needle| return the\n * half open range [i, j) of indexes where |haystack| is equal to needle.\n */\nexport function searchEq(\n haystack: Numbers, needle: number, optRange?: Range): Range {\n const range = searchRange(haystack, needle, optRange);\n const [i, j] = range;\n if (haystack[i] === needle) return range;\n return [j, j];\n}\n\n/**\n * Given a sorted array of numbers (|haystack|) and a |needle| return the\n * smallest half open range [i, j) of indexes which contains |needle|.\n */\nexport function searchRange(\n haystack: Numbers, needle: number, optRange?: Range): Range {\n const [left, right] = optRange ? optRange : [0, haystack.length];\n return searchRangeImpl(haystack, needle, left, right);\n}\n\n/**\n * Given a sorted array of numbers (|haystack|) and a |needle| return a\n * pair of indexes [i, j] such that:\n * If there is at least one element in |haystack| smaller than |needle|\n * i is the index of the largest such number otherwise -1;\n * If there is at least one element in |haystack| larger than |needle|\n * j is the index of the smallest such element otherwise -1.\n *\n * So we try to get the indexes of the two data points around needle\n * or -1 if there is no such datapoint.\n */\nexport function searchSegment(haystack: Numbers, needle: number): Range {\n if (!haystack.length) return [-1, -1];\n\n const left = search(haystack, needle);\n if (left === -1) {\n return [left, 0];\n } else if (left + 1 === haystack.length) {\n return [left, -1];\n } else {\n return [left, left + 1];\n }\n}\n","// Copyright (C) 2019 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// This code can be used in unittests where we can't read CSS variables.\n// Also we cannot have global constructors beacause when the javascript is\n// loaded, the CSS might not be ready yet.\nexport let TRACK_SHELL_WIDTH = 100;\nexport let SIDEBAR_WIDTH = 100;\nexport let TRACK_BORDER_COLOR = '#ffc0cb';\nexport let TOPBAR_HEIGHT = 48;\n\nexport function initCssConstants() {\n TRACK_SHELL_WIDTH = getCssNum('--track-shell-width') || TRACK_SHELL_WIDTH;\n SIDEBAR_WIDTH = getCssNum('--sidebar-width') || SIDEBAR_WIDTH;\n TRACK_BORDER_COLOR = getCssStr('--track-border-color') || TRACK_BORDER_COLOR;\n TOPBAR_HEIGHT = getCssNum('--topbar-height') || TOPBAR_HEIGHT;\n}\n\nfunction getCssStr(prop: string): string|undefined {\n if (typeof window === 'undefined') return undefined;\n const body = window.document.body;\n return window.getComputedStyle(body).getPropertyValue(prop);\n}\n\nfunction getCssNum(prop: string): number|undefined {\n const str = getCssStr(prop);\n if (str === undefined) return undefined;\n const match = str.match(/^\\W*(\\d+)px$/);\n if (!match) throw Error(`Could not parse CSS property \"${str}\" as a number`);\n return Number(match[1]);\n}\n","// Copyright (C) 2018 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {TimeSpan} from '../common/time';\n\nimport {TRACK_BORDER_COLOR, TRACK_SHELL_WIDTH} from './css_constants';\nimport {TimeScale} from './time_scale';\n\nexport const DESIRED_PX_PER_STEP = 80;\n\n/**\n * Returns the step size of a grid line in seconds.\n * The returned step size has two properties:\n * (1) It is 1, 2, or 5, multiplied by some integer power of 10.\n * (2) The number steps in |range| produced by |stepSize| is as close as\n * possible to |desiredSteps|.\n */\nexport function getGridStepSize(range: number, desiredSteps: number): number {\n // First, get the largest possible power of 10 that is smaller than the\n // desired step size, and set it to the current step size.\n // For example, if the range is 2345ms and the desired steps is 10, then the\n // desired step size is 234.5 and the step size will be set to 100.\n const desiredStepSize = range / desiredSteps;\n const zeros = Math.floor(Math.log10(desiredStepSize));\n const initialStepSize = Math.pow(10, zeros);\n\n // This function first calculates how many steps within the range a certain\n // stepSize will produce, and returns the difference between that and\n // desiredSteps.\n const distToDesired = (evaluatedStepSize: number) =>\n Math.abs(range / evaluatedStepSize - desiredSteps);\n\n // We know that |initialStepSize| is a power of 10, and\n // initialStepSize <= desiredStepSize <= 10 * initialStepSize. There are four\n // possible candidates for final step size: 1, 2, 5 or 10 * initialStepSize.\n // We pick the candidate that minimizes distToDesired(stepSize).\n const stepSizeMultipliers = [2, 5, 10];\n\n let minimalDistance = distToDesired(initialStepSize);\n let minimizingStepSize = initialStepSize;\n\n for (const multiplier of stepSizeMultipliers) {\n const newStepSize = multiplier * initialStepSize;\n const newDistance = distToDesired(newStepSize);\n if (newDistance < minimalDistance) {\n minimalDistance = newDistance;\n minimizingStepSize = newStepSize;\n }\n }\n return minimizingStepSize;\n}\n\n/**\n * Generator that returns that (given a width im px, span, and scale) returns\n * pairs of [xInPx, timestampInS] pairs describing where gridlines should be\n * drawn.\n */\nexport function gridlines(width: number, span: TimeSpan, timescale: TimeScale):\n Array<[number, number]> {\n const desiredSteps = width / DESIRED_PX_PER_STEP;\n const step = getGridStepSize(span.duration, desiredSteps);\n const actualSteps = Math.floor(span.duration / step);\n const start = Math.round(span.start / step) * step;\n const lines: Array<[number, number]> = [];\n let previousTimestamp = Number.NEGATIVE_INFINITY;\n // Iterating over the number of steps instead of\n // for (let s = start; s < span.end; s += step) because if start is very large\n // number and step very small, s will never reach end.\n for (let i = 0; i <= actualSteps; i++) {\n let xPos = TRACK_SHELL_WIDTH;\n const timestamp = start + i * step;\n xPos += Math.floor(timescale.timeToPx(timestamp));\n if (xPos < TRACK_SHELL_WIDTH) continue;\n if (xPos > width) break;\n if (Math.abs(timestamp - previousTimestamp) > Number.EPSILON) {\n previousTimestamp = timestamp;\n lines.push([xPos, timestamp]);\n }\n }\n return lines;\n}\n\nexport function drawGridLines(\n ctx: CanvasRenderingContext2D,\n x: TimeScale,\n timeSpan: TimeSpan,\n width: number,\n height: number): void {\n ctx.strokeStyle = TRACK_BORDER_COLOR;\n ctx.lineWidth = 1;\n\n for (const xAndTime of gridlines(width, timeSpan, x)) {\n ctx.beginPath();\n ctx.moveTo(xAndTime[0] + 0.5, 0);\n ctx.lineTo(xAndTime[0] + 0.5, height);\n ctx.stroke();\n }\n}\n","// Copyright (C) 2020 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nexport const BLANK_CHECKBOX = 'check_box_outline_blank';\nexport const CHECKBOX = 'check_box';\nexport const INDETERMINATE_CHECKBOX = 'indeterminate_check_box';\n\nexport const EXPAND_DOWN = 'expand_more';\nexport const EXPAND_UP = 'expand_less';\n\nexport const STAR = 'star';\nexport const STAR_BORDER = 'star_border';\n","// Copyright (C) 2018 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as m from 'mithril';\n\nexport interface PanelSize {\n width: number;\n height: number;\n}\n\nexport abstract class Panel<Attrs = {}> implements m.ClassComponent<Attrs> {\n abstract renderCanvas(\n ctx: CanvasRenderingContext2D, size: PanelSize,\n vnode: PanelVNode<Attrs>): void;\n abstract view(vnode: m.CVnode<Attrs>): m.Children|null|void;\n}\n\n\nexport type PanelVNode<Attrs = {}> = m.Vnode<Attrs, Panel<Attrs>>;\n\nexport function isPanelVNode(vnode: m.Vnode): vnode is PanelVNode<{}> {\n const tag = vnode.tag as {};\n return (\n typeof tag === 'function' && 'prototype' in tag &&\n tag.prototype instanceof Panel);\n}\n","// Copyright (C) 2019 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {Actions} from '../common/actions';\nimport {getContainingTrackId} from '../common/state';\nimport {fromNs, TimeSpan, toNs} from '../common/time';\n\nimport {globals} from './globals';\n\nconst INCOMPLETE_SLICE_TIME_S = 0.00003;\n\n/**\n * Given a timestamp, if |ts| is not currently in view move the view to\n * center |ts|, keeping the same zoom level.\n */\nexport function horizontalScrollToTs(ts: number) {\n const startNs = toNs(globals.frontendLocalState.visibleWindowTime.start);\n const endNs = toNs(globals.frontendLocalState.visibleWindowTime.end);\n const currentViewNs = endNs - startNs;\n if (ts < startNs || ts > endNs) {\n // TODO(hjd): This is an ugly jump, we should do a smooth pan instead.\n globals.frontendLocalState.updateVisibleTime(new TimeSpan(\n fromNs(ts - currentViewNs / 2), fromNs(ts + currentViewNs / 2)));\n }\n}\n\n/**\n * Given a start and end timestamp (in ns), move the view to center this range\n * and zoom to a level where the range is 1/5 of the viewport.\n */\nexport function horizontalScrollAndZoomToRange(startTs: number, endTs: number) {\n const visibleDur = globals.frontendLocalState.visibleWindowTime.end -\n globals.frontendLocalState.visibleWindowTime.start;\n let selectDur = endTs - startTs;\n if (toNs(selectDur) === -1) { // Unfinished slice\n selectDur = INCOMPLETE_SLICE_TIME_S;\n endTs = startTs;\n }\n const viewStartNs = toNs(globals.frontendLocalState.visibleWindowTime.start);\n const viewEndNs = toNs(globals.frontendLocalState.visibleWindowTime.end);\n if (selectDur / visibleDur < 0.05 || startTs < viewStartNs ||\n endTs > viewEndNs) {\n globals.frontendLocalState.updateVisibleTime(\n new TimeSpan(startTs - (selectDur * 2), endTs + (selectDur * 2)));\n }\n}\n\n/**\n * Given a track id, find a track with that id and scroll it into view. If the\n * track is nested inside a track group, scroll to that track group instead.\n * If |openGroup| then open the track group and scroll to the track.\n */\nexport function verticalScrollToTrack(\n trackId: string|number, openGroup = false) {\n const trackIdString = `${trackId}`;\n const track = document.querySelector('#track_' + trackIdString);\n\n if (track) {\n // block: 'nearest' means that it will only scroll if the track is not\n // currently in view.\n track.scrollIntoView({behavior: 'smooth', block: 'nearest'});\n return;\n }\n\n let trackGroup = null;\n const trackGroupId = getContainingTrackId(globals.state, trackIdString);\n if (trackGroupId) {\n trackGroup = document.querySelector('#track_' + trackGroupId);\n }\n\n if (!trackGroupId || !trackGroup) {\n console.error(`Can't scroll, track (${trackIdString}) not found.`);\n return;\n }\n\n // The requested track is inside a closed track group, either open the track\n // group and scroll to the track or just scroll to the track group.\n if (openGroup) {\n // After the track exists in the dom, it will be scrolled to.\n globals.frontendLocalState.scrollToTrackId = trackId;\n globals.dispatch(Actions.toggleTrackGroupCollapsed({trackGroupId}));\n return;\n } else {\n trackGroup.scrollIntoView({behavior: 'smooth', block: 'nearest'});\n }\n}\n\n\n/**\n * Scroll vertically and horizontally to reach track (|trackId|) at |ts|.\n */\nexport function scrollToTrackAndTs(\n trackId: string|number|undefined, ts: number, openGroup = false) {\n if (trackId !== undefined) {\n verticalScrollToTrack(trackId, openGroup);\n }\n horizontalScrollToTs(ts);\n}\n","// Copyright (C) 2019 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {TRACK_SHELL_WIDTH} from './css_constants';\nimport {TimeScale} from './time_scale';\n\nexport function drawVerticalLineAtTime(ctx: CanvasRenderingContext2D,\n timeScale: TimeScale,\n time: number,\n height: number,\n color: string,\n lineWidth = 2) {\n const xPos = TRACK_SHELL_WIDTH + Math.floor(timeScale.timeToPx(time));\n drawVerticalLine(ctx, xPos, height, color, lineWidth);\n }\n\nfunction drawVerticalLine(ctx: CanvasRenderingContext2D,\n xPos: number,\n height: number,\n color: string,\n lineWidth = 2) {\n ctx.beginPath();\n ctx.strokeStyle = color;\n const prevLineWidth = ctx.lineWidth;\n ctx.lineWidth = lineWidth;\n ctx.moveTo(xPos, 0);\n ctx.lineTo(xPos, height);\n ctx.stroke();\n ctx.closePath();\n ctx.lineWidth = prevLineWidth;\n}\n\n","// Copyright (C) 2018 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {hex} from 'color-convert';\nimport * as m from 'mithril';\n\nimport {Actions} from '../common/actions';\nimport {TrackState} from '../common/state';\n\nimport {TRACK_SHELL_WIDTH} from './css_constants';\nimport {PerfettoMouseEvent} from './events';\nimport {globals} from './globals';\nimport {drawGridLines} from './gridline_helper';\nimport {BLANK_CHECKBOX, CHECKBOX, STAR, STAR_BORDER} from './icons';\nimport {Panel, PanelSize} from './panel';\nimport {verticalScrollToTrack} from './scroll_helper';\nimport {SliceRect, Track} from './track';\nimport {trackRegistry} from './track_registry';\nimport {\n drawVerticalLineAtTime,\n} from './vertical_line_helper';\n\nfunction isPinned(id: string) {\n return globals.state.pinnedTracks.indexOf(id) !== -1;\n}\n\nfunction isSelected(id: string) {\n const selection = globals.state.currentSelection;\n if (selection === null || selection.kind !== 'AREA') return false;\n const selectedArea = globals.state.areas[selection.areaId];\n return selectedArea.tracks.includes(id);\n}\n\ninterface TrackShellAttrs {\n track: Track;\n trackState: TrackState;\n}\n\nclass TrackShell implements m.ClassComponent<TrackShellAttrs> {\n // Set to true when we click down and drag the\n private dragging = false;\n private dropping: 'before'|'after'|undefined = undefined;\n private attrs?: TrackShellAttrs;\n\n oninit(vnode: m.Vnode<TrackShellAttrs>) {\n this.attrs = vnode.attrs;\n }\n\n view({attrs}: m.CVnode<TrackShellAttrs>) {\n // The shell should be highlighted if the current search result is inside\n // this track.\n let highlightClass = '';\n const searchIndex = globals.state.searchIndex;\n if (searchIndex !== -1) {\n const trackId = globals.currentSearchResults.trackIds[searchIndex];\n if (trackId === attrs.trackState.id) {\n highlightClass = 'flash';\n }\n }\n\n const dragClass = this.dragging ? `drag` : '';\n const dropClass = this.dropping ? `drop-${this.dropping}` : '';\n return m(\n `.track-shell[draggable=true]`,\n {\n class: `${highlightClass} ${dragClass} ${dropClass}`,\n onmousedown: this.onmousedown.bind(this),\n ondragstart: this.ondragstart.bind(this),\n ondragend: this.ondragend.bind(this),\n ondragover: this.ondragover.bind(this),\n ondragleave: this.ondragleave.bind(this),\n ondrop: this.ondrop.bind(this),\n },\n m(\n 'h1',\n {\n title: attrs.trackState.name,\n },\n attrs.trackState.name,\n ('namespace' in attrs.trackState.config) &&\n m('span.chip', 'metric'),\n ),\n m('.track-buttons',\n attrs.track.getTrackShellButtons(),\n m(TrackButton, {\n action: () => {\n globals.dispatch(\n Actions.toggleTrackPinned({trackId: attrs.trackState.id}));\n },\n i: isPinned(attrs.trackState.id) ? STAR : STAR_BORDER,\n tooltip: isPinned(attrs.trackState.id) ? 'Unpin' : 'Pin to top',\n showButton: isPinned(attrs.trackState.id),\n }),\n globals.state.currentSelection !== null &&\n globals.state.currentSelection.kind === 'AREA' ?\n m(TrackButton, {\n action: (e: PerfettoMouseEvent) => {\n globals.dispatch(Actions.toggleTrackSelection(\n {id: attrs.trackState.id, isTrackGroup: false}));\n e.stopPropagation();\n },\n i: isSelected(attrs.trackState.id) ? CHECKBOX : BLANK_CHECKBOX,\n tooltip: isSelected(attrs.trackState.id) ?\n 'Remove track' :\n 'Add track to selection',\n showButton: true,\n }) :\n ''));\n }\n\n onmousedown(e: MouseEvent) {\n // Prevent that the click is intercepted by the PanAndZoomHandler and that\n // we start panning while dragging.\n e.stopPropagation();\n }\n\n ondragstart(e: DragEvent) {\n const dataTransfer = e.dataTransfer;\n if (dataTransfer === null) return;\n this.dragging = true;\n globals.rafScheduler.scheduleFullRedraw();\n dataTransfer.setData('perfetto/track', `${this.attrs!.trackState.id}`);\n dataTransfer.setDragImage(new Image(), 0, 0);\n e.stopImmediatePropagation();\n }\n\n ondragend() {\n this.dragging = false;\n globals.rafScheduler.scheduleFullRedraw();\n }\n\n ondragover(e: DragEvent) {\n if (this.dragging) return;\n if (!(e.target instanceof HTMLElement)) return;\n const dataTransfer = e.dataTransfer;\n if (dataTransfer === null) return;\n if (!dataTransfer.types.includes('perfetto/track')) return;\n dataTransfer.dropEffect = 'move';\n e.preventDefault();\n\n // Apply some hysteresis to the drop logic so that the lightened border\n // changes only when we get close enough to the border.\n if (e.offsetY < e.target.scrollHeight / 3) {\n this.dropping = 'before';\n } else if (e.offsetY > e.target.scrollHeight / 3 * 2) {\n this.dropping = 'after';\n }\n globals.rafScheduler.scheduleFullRedraw();\n }\n\n ondragleave() {\n this.dropping = undefined;\n globals.rafScheduler.scheduleFullRedraw();\n }\n\n ondrop(e: DragEvent) {\n if (this.dropping === undefined) return;\n const dataTransfer = e.dataTransfer;\n if (dataTransfer === null) return;\n globals.rafScheduler.scheduleFullRedraw();\n const srcId = dataTransfer.getData('perfetto/track');\n const dstId = this.attrs!.trackState.id;\n globals.dispatch(Actions.moveTrack({srcId, op: this.dropping, dstId}));\n this.dropping = undefined;\n }\n}\n\nexport interface TrackContentAttrs { track: Track; }\nexport class TrackContent implements m.ClassComponent<TrackContentAttrs> {\n private mouseDownX?: number;\n private mouseDownY?: number;\n private selectionOccurred = false;\n\n view(node: m.CVnode<TrackContentAttrs>) {\n const attrs = node.attrs;\n return m(\n '.track-content',\n {\n onmousemove: (e: PerfettoMouseEvent) => {\n attrs.track.onMouseMove(\n {x: e.layerX - TRACK_SHELL_WIDTH, y: e.layerY});\n globals.rafScheduler.scheduleRedraw();\n },\n onmouseout: () => {\n attrs.track.onMouseOut();\n globals.rafScheduler.scheduleRedraw();\n },\n onmousedown: (e: PerfettoMouseEvent) => {\n this.mouseDownX = e.layerX;\n this.mouseDownY = e.layerY;\n },\n onmouseup: (e: PerfettoMouseEvent) => {\n if (this.mouseDownX === undefined ||\n this.mouseDownY === undefined) {\n return;\n }\n if (Math.abs(e.layerX - this.mouseDownX) > 1 ||\n Math.abs(e.layerY - this.mouseDownY) > 1) {\n this.selectionOccurred = true;\n }\n this.mouseDownX = undefined;\n this.mouseDownY = undefined;\n },\n onclick: (e: PerfettoMouseEvent) => {\n // This click event occurs after any selection mouse up/drag events\n // so we have to look if the mouse moved during this click to know\n // if a selection occurred.\n if (this.selectionOccurred) {\n this.selectionOccurred = false;\n return;\n }\n // Returns true if something was selected, so stop propagation.\n if (attrs.track.onMouseClick(\n {x: e.layerX - TRACK_SHELL_WIDTH, y: e.layerY})) {\n e.stopPropagation();\n }\n globals.rafScheduler.scheduleRedraw();\n }\n },\n node.children);\n }\n}\n\ninterface TrackComponentAttrs {\n trackState: TrackState;\n track: Track;\n}\nclass TrackComponent implements m.ClassComponent<TrackComponentAttrs> {\n view({attrs}: m.CVnode<TrackComponentAttrs>) {\n return m(\n '.track',\n {\n style: {\n height: `${Math.max(24, attrs.track.getHeight())}px`,\n },\n id: 'track_' + attrs.trackState.id,\n },\n [\n m(TrackShell, {track: attrs.track, trackState: attrs.trackState}),\n m(TrackContent, {track: attrs.track})\n ]);\n }\n\n oncreate({attrs}: m.CVnode<TrackComponentAttrs>) {\n if (globals.frontendLocalState.scrollToTrackId === attrs.trackState.id) {\n verticalScrollToTrack(attrs.trackState.id);\n globals.frontendLocalState.scrollToTrackId = undefined;\n }\n }\n}\n\nexport interface TrackButtonAttrs {\n action: (e: PerfettoMouseEvent) => void;\n i: string;\n tooltip: string;\n showButton: boolean;\n}\nexport class TrackButton implements m.ClassComponent<TrackButtonAttrs> {\n view({attrs}: m.CVnode<TrackButtonAttrs>) {\n return m(\n 'i.material-icons.track-button',\n {\n class: `${attrs.showButton ? 'show' : ''}`,\n onclick: attrs.action,\n title: attrs.tooltip,\n },\n attrs.i);\n }\n}\n\ninterface TrackPanelAttrs {\n id: string;\n selectable: boolean;\n}\n\nexport class TrackPanel extends Panel<TrackPanelAttrs> {\n // TODO(hjd): It would be nicer if these could not be undefined here.\n // We should implement a NullTrack which can be used if the trackState\n // has disappeared.\n private track: Track|undefined;\n private trackState: TrackState|undefined;\n\n constructor(vnode: m.CVnode<TrackPanelAttrs>) {\n super();\n const trackId = vnode.attrs.id;\n const trackState = globals.state.tracks[trackId];\n if (trackState === undefined) {\n return;\n }\n const engine = globals.engines.get(trackState.engineId);\n if (engine === undefined) {\n return;\n }\n const trackCreator = trackRegistry.get(trackState.kind);\n this.track = trackCreator.create({trackId, engine});\n this.trackState = trackState;\n }\n\n view() {\n if (this.track === undefined || this.trackState === undefined) {\n return m('div', 'No such track');\n }\n return m(TrackComponent, {trackState: this.trackState, track: this.track});\n }\n\n oncreate() {\n if (this.track !== undefined) {\n this.track.onFullRedraw();\n }\n }\n\n onupdate() {\n if (this.track !== undefined) {\n this.track.onFullRedraw();\n }\n }\n\n highlightIfTrackSelected(ctx: CanvasRenderingContext2D, size: PanelSize) {\n const localState = globals.frontendLocalState;\n const selection = globals.state.currentSelection;\n const trackState = this.trackState;\n if (!selection || selection.kind !== 'AREA' || trackState === undefined) {\n return;\n }\n const selectedArea = globals.state.areas[selection.areaId];\n if (selectedArea.tracks.includes(trackState.id)) {\n const timeScale = localState.timeScale;\n ctx.fillStyle = 'rgba(131, 152, 230, 0.3)';\n ctx.fillRect(\n timeScale.timeToPx(selectedArea.startSec) + TRACK_SHELL_WIDTH,\n 0,\n timeScale.deltaTimeToPx(selectedArea.endSec - selectedArea.startSec),\n size.height);\n }\n }\n\n renderCanvas(ctx: CanvasRenderingContext2D, size: PanelSize) {\n ctx.save();\n\n drawGridLines(\n ctx,\n globals.frontendLocalState.timeScale,\n globals.frontendLocalState.visibleWindowTime,\n size.width,\n size.height);\n\n ctx.translate(TRACK_SHELL_WIDTH, 0);\n if (this.track !== undefined) {\n this.track.render(ctx);\n }\n ctx.restore();\n\n this.highlightIfTrackSelected(ctx, size);\n\n const localState = globals.frontendLocalState;\n // Draw vertical line when hovering on the notes panel.\n if (globals.state.hoveredNoteTimestamp !== -1) {\n drawVerticalLineAtTime(\n ctx,\n localState.timeScale,\n globals.state.hoveredNoteTimestamp,\n size.height,\n `#aaa`);\n }\n if (globals.state.hoveredLogsTimestamp !== -1) {\n drawVerticalLineAtTime(\n ctx,\n localState.timeScale,\n globals.state.hoveredLogsTimestamp,\n size.height,\n `#344596`);\n }\n if (globals.state.currentSelection !== null) {\n if (globals.state.currentSelection.kind === 'NOTE') {\n const note = globals.state.notes[globals.state.currentSelection.id];\n if (note.noteType === 'DEFAULT') {\n drawVerticalLineAtTime(\n ctx,\n localState.timeScale,\n note.timestamp,\n size.height,\n note.color);\n }\n }\n\n if (globals.state.currentSelection.kind === 'SLICE' &&\n globals.sliceDetails.wakeupTs !== undefined) {\n drawVerticalLineAtTime(\n ctx,\n localState.timeScale,\n globals.sliceDetails.wakeupTs,\n size.height,\n `black`);\n }\n }\n // All marked areas should have semi-transparent vertical lines\n // marking the start and end.\n for (const note of Object.values(globals.state.notes)) {\n if (note.noteType === 'AREA') {\n const transparentNoteColor =\n 'rgba(' + hex.rgb(note.color.substr(1)).toString() + ', 0.65)';\n drawVerticalLineAtTime(\n ctx,\n localState.timeScale,\n globals.state.areas[note.areaId].startSec,\n size.height,\n transparentNoteColor,\n 1);\n drawVerticalLineAtTime(\n ctx,\n localState.timeScale,\n globals.state.areas[note.areaId].endSec,\n size.height,\n transparentNoteColor,\n 1);\n }\n }\n }\n\n getSliceRect(tStart: number, tDur: number, depth: number): SliceRect\n |undefined {\n if (this.track === undefined) {\n return undefined;\n }\n return this.track.getSliceRect(tStart, tDur, depth);\n }\n}\n","// Copyright (C) 2018 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as m from 'mithril';\n\nimport {searchSegment} from '../../base/binary_search';\nimport {assertTrue} from '../../base/logging';\nimport {Actions} from '../../common/actions';\nimport {toNs} from '../../common/time';\nimport {checkerboardExcept} from '../../frontend/checkerboard';\nimport {globals} from '../../frontend/globals';\nimport {NewTrackArgs, Track} from '../../frontend/track';\nimport {TrackButton, TrackButtonAttrs} from '../../frontend/track_panel';\nimport {trackRegistry} from '../../frontend/track_registry';\n\nimport {\n Config,\n COUNTER_TRACK_KIND,\n CounterScaleOptions,\n Data,\n} from './common';\n\n// 0.5 Makes the horizontal lines sharp.\nconst MARGIN_TOP = 3.5;\nconst RECT_HEIGHT = 24.5;\n\ninterface CounterScaleAttribute {\n follower: CounterScaleOptions;\n tooltip: string;\n icon: string;\n}\n\nfunction scaleTooltip(scale?: CounterScaleOptions): string {\n const description: CounterScaleAttribute = getCounterScaleAttribute(scale);\n const source: string = description.tooltip;\n const destination: string =\n getCounterScaleAttribute(description.follower).tooltip;\n return `Toggle scale from ${source} to ${destination}`;\n}\n\nfunction scaleIcon(scale?: CounterScaleOptions): string {\n return getCounterScaleAttribute(scale).icon;\n}\n\nfunction nextScale(scale?: CounterScaleOptions): CounterScaleOptions {\n return getCounterScaleAttribute(scale).follower;\n}\n\nfunction getCounterScaleAttribute(scale?: CounterScaleOptions):\n CounterScaleAttribute {\n switch (scale) {\n case 'MIN_MAX':\n return {\n follower: 'DELTA_FROM_PREVIOUS',\n tooltip: 'min/max',\n icon: 'show_chart'\n };\n case 'DELTA_FROM_PREVIOUS':\n return {follower: 'ZERO_BASED', tooltip: 'delta', icon: 'bar_chart'};\n case 'ZERO_BASED':\n default:\n return {\n follower: 'MIN_MAX',\n tooltip: 'zero based',\n icon: 'waterfall_chart'\n };\n }\n}\n\nclass CounterTrack extends Track<Config, Data> {\n static readonly kind = COUNTER_TRACK_KIND;\n static create(args: NewTrackArgs): CounterTrack {\n return new CounterTrack(args);\n }\n\n private mousePos = {x: 0, y: 0};\n private hoveredValue: number|undefined = undefined;\n private hoveredTs: number|undefined = undefined;\n private hoveredTsEnd: number|undefined = undefined;\n\n constructor(args: NewTrackArgs) {\n super(args);\n }\n\n getHeight() {\n return MARGIN_TOP + RECT_HEIGHT;\n }\n\n getTrackShellButtons(): Array<m.Vnode<TrackButtonAttrs>> {\n const buttons: Array<m.Vnode<TrackButtonAttrs>> = [];\n buttons.push(m(TrackButton, {\n action: () => {\n this.config.scale = nextScale(this.config.scale);\n Actions.updateTrackConfig(\n {id: this.trackState.id, config: this.config});\n globals.rafScheduler.scheduleFullRedraw();\n },\n i: scaleIcon(this.config.scale),\n tooltip: scaleTooltip(this.config.scale),\n showButton: !!this.config.scale && this.config.scale !== 'ZERO_BASED',\n }));\n return buttons;\n }\n\n renderCanvas(ctx: CanvasRenderingContext2D): void {\n // TODO: fonts and colors should come from the CSS and not hardcoded here.\n const {timeScale, visibleWindowTime} = globals.frontendLocalState;\n const data = this.data();\n\n // Can't possibly draw anything.\n if (data === undefined || data.timestamps.length === 0) {\n return;\n }\n\n assertTrue(data.timestamps.length === data.minValues.length);\n assertTrue(data.timestamps.length === data.maxValues.length);\n assertTrue(data.timestamps.length === data.lastValues.length);\n assertTrue(data.timestamps.length === data.totalDeltas.length);\n\n const scale: CounterScaleOptions = this.config.scale || 'ZERO_BASED';\n\n let minValues = data.minValues;\n let maxValues = data.maxValues;\n let lastValues = data.lastValues;\n let maximumValue = data.maximumValue;\n let minimumValue = data.minimumValue;\n if (scale === 'DELTA_FROM_PREVIOUS') {\n lastValues = data.totalDeltas;\n minValues = data.totalDeltas;\n maxValues = data.totalDeltas;\n maximumValue = data.maximumDelta;\n minimumValue = data.minimumDelta;\n }\n\n const endPx = Math.floor(timeScale.timeToPx(visibleWindowTime.end));\n const zeroY = MARGIN_TOP + RECT_HEIGHT / (minimumValue < 0 ? 2 : 1);\n\n // Quantize the Y axis to quarters of powers of tens (7.5K, 10K, 12.5K).\n const maxValue = Math.max(maximumValue, 0);\n\n let yMax = Math.max(Math.abs(minimumValue), maxValue);\n const kUnits = ['', 'K', 'M', 'G', 'T', 'E'];\n const exp = Math.ceil(Math.log10(Math.max(yMax, 1)));\n const pow10 = Math.pow(10, exp);\n yMax = Math.ceil(yMax / (pow10 / 4)) * (pow10 / 4);\n let yRange = 0;\n const unitGroup = Math.floor(exp / 3);\n let yMin = 0;\n let yLabel = '';\n if (scale === 'MIN_MAX') {\n yRange = maximumValue - minimumValue;\n yMin = minimumValue;\n yLabel = 'min - max';\n } else {\n yRange = minimumValue < 0 ? yMax * 2 : yMax;\n yMin = minimumValue < 0 ? -yMax : 0;\n yLabel = `${yMax / Math.pow(10, unitGroup * 3)} ${kUnits[unitGroup]}`;\n if (scale === 'DELTA_FROM_PREVIOUS') {\n yLabel += '\\u0394';\n }\n }\n\n // There are 360deg of hue. We want a scale that starts at green with\n // exp <= 3 (<= 1KB), goes orange around exp = 6 (~1MB) and red/violet\n // around exp >= 9 (1GB).\n // The hue scale looks like this:\n // 0 180 360\n // Red orange green | blue purple magenta\n // So we want to start @ 180deg with pow=0, go down to 0deg and then wrap\n // back from 360deg back to 180deg.\n const expCapped = Math.min(Math.max(exp - 3), 9);\n const hue = (180 - Math.floor(expCapped * (180 / 6)) + 360) % 360;\n\n ctx.fillStyle = `hsl(${hue}, 45%, 75%)`;\n ctx.strokeStyle = `hsl(${hue}, 45%, 45%)`;\n\n const calculateX = (ts: number) => {\n return Math.floor(timeScale.timeToPx(ts));\n };\n const calculateY = (value: number) => {\n return MARGIN_TOP + RECT_HEIGHT -\n Math.round(((value - yMin) / yRange) * RECT_HEIGHT);\n };\n\n ctx.beginPath();\n ctx.moveTo(calculateX(data.timestamps[0]), zeroY);\n let lastDrawnY = zeroY;\n for (let i = 0; i < data.timestamps.length; i++) {\n const x = calculateX(data.timestamps[i]);\n const minY = calculateY(minValues[i]);\n const maxY = calculateY(maxValues[i]);\n const lastY = calculateY(lastValues[i]);\n\n ctx.lineTo(x, lastDrawnY);\n if (minY === maxY) {\n assertTrue(lastY === minY);\n ctx.lineTo(x, lastY);\n } else {\n ctx.lineTo(x, minY);\n ctx.lineTo(x, maxY);\n ctx.lineTo(x, lastY);\n }\n lastDrawnY = lastY;\n }\n ctx.lineTo(endPx, lastDrawnY);\n ctx.lineTo(endPx, zeroY);\n ctx.closePath();\n ctx.fill();\n ctx.stroke();\n\n // Draw the Y=0 dashed line.\n ctx.strokeStyle = `hsl(${hue}, 10%, 71%)`;\n ctx.beginPath();\n ctx.setLineDash([2, 4]);\n ctx.moveTo(0, zeroY);\n ctx.lineTo(endPx, zeroY);\n ctx.closePath();\n ctx.stroke();\n ctx.setLineDash([]);\n\n ctx.font = '10px Roboto Condensed';\n\n if (this.hoveredValue !== undefined && this.hoveredTs !== undefined) {\n // TODO(hjd): Add units.\n let text = scale === 'DELTA_FROM_PREVIOUS' ? 'delta: ' : 'value: ';\n text += `${this.hoveredValue.toLocaleString()}`;\n\n ctx.fillStyle = `hsl(${hue}, 45%, 75%)`;\n ctx.strokeStyle = `hsl(${hue}, 45%, 45%)`;\n\n const xStart = Math.floor(timeScale.timeToPx(this.hoveredTs));\n const xEnd = this.hoveredTsEnd === undefined ?\n endPx :\n Math.floor(timeScale.timeToPx(this.hoveredTsEnd));\n const y = MARGIN_TOP + RECT_HEIGHT -\n Math.round(((this.hoveredValue - yMin) / yRange) * RECT_HEIGHT);\n\n // Highlight line.\n ctx.beginPath();\n ctx.moveTo(xStart, y);\n ctx.lineTo(xEnd, y);\n ctx.lineWidth = 3;\n ctx.stroke();\n ctx.lineWidth = 1;\n\n // Draw change marker.\n ctx.beginPath();\n ctx.arc(xStart, y, 3 /*r*/, 0 /*start angle*/, 2 * Math.PI /*end angle*/);\n ctx.fill();\n ctx.stroke();\n\n // Draw the tooltip.\n this.drawTrackHoverTooltip(ctx, this.mousePos, text);\n }\n\n // Write the Y scale on the top left corner.\n ctx.fillStyle = 'rgba(255, 255, 255, 0.6)';\n ctx.fillRect(0, 0, 42, 16);\n ctx.fillStyle = '#666';\n ctx.textAlign = 'left';\n ctx.textBaseline = 'alphabetic';\n ctx.fillText(`${yLabel}`, 5, 14);\n\n // TODO(hjd): Refactor this into checkerboardExcept\n {\n const endPx = timeScale.timeToPx(visibleWindowTime.end);\n const counterEndPx =\n Math.min(timeScale.timeToPx(this.config.endTs || Infinity), endPx);\n\n // Grey out RHS.\n if (counterEndPx < endPx) {\n ctx.fillStyle = '#0000001f';\n ctx.fillRect(counterEndPx, 0, endPx - counterEndPx, this.getHeight());\n }\n }\n\n // If the cached trace slices don't fully cover the visible time range,\n // show a gray rectangle with a \"Loading...\" label.\n checkerboardExcept(\n ctx,\n this.getHeight(),\n timeScale.timeToPx(visibleWindowTime.start),\n timeScale.timeToPx(visibleWindowTime.end),\n timeScale.timeToPx(data.start),\n timeScale.timeToPx(data.end));\n }\n\n onMouseMove(pos: {x: number, y: number}) {\n const data = this.data();\n if (data === undefined) return;\n this.mousePos = pos;\n const {timeScale} = globals.frontendLocalState;\n const time = timeScale.pxToTime(pos.x);\n\n const values = this.config.scale === 'DELTA_FROM_PREVIOUS' ?\n data.totalDeltas :\n data.lastValues;\n const [left, right] = searchSegment(data.timestamps, time);\n this.hoveredTs = left === -1 ? undefined : data.timestamps[left];\n this.hoveredTsEnd = right === -1 ? undefined : data.timestamps[right];\n this.hoveredValue = left === -1 ? undefined : values[left];\n }\n\n onMouseOut() {\n this.hoveredValue = undefined;\n this.hoveredTs = undefined;\n }\n\n onMouseClick({x}: {x: number}) {\n const data = this.data();\n if (data === undefined) return false;\n const {timeScale} = globals.frontendLocalState;\n const time = timeScale.pxToTime(x);\n const [left, right] = searchSegment(data.timestamps, time);\n if (left === -1) {\n return false;\n } else {\n const counterId = data.lastIds[left];\n if (counterId === -1) return true;\n globals.makeSelection(Actions.selectCounter({\n leftTs: toNs(data.timestamps[left]),\n rightTs: right !== -1 ? toNs(data.timestamps[right]) : -1,\n id: counterId,\n trackId: this.trackState.id\n }));\n return true;\n }\n }\n}\n\ntrackRegistry.register(CounterTrack);\n","// Copyright (C) 2021 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport './controller';\nimport './frontend';\n","\n// Copyright (C) 2019 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport {TrackData} from '../../common/track_data';\n\nexport const CPU_FREQ_TRACK_KIND = 'CpuFreqTrack';\n\nexport interface Data extends TrackData {\n maximumValue: number;\n maxTsEnd: number;\n\n timestamps: Float64Array;\n minFreqKHz: Uint32Array;\n maxFreqKHz: Uint32Array;\n lastFreqKHz: Uint32Array;\n lastIdleValues: Int8Array;\n}\n\nexport interface Config {\n cpu: number;\n freqTrackId: number;\n idleTrackId?: number;\n maximumValue?: number;\n minimumValue?: number;\n}\n","// Copyright (C) 2019 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {assertTrue} from '../../base/logging';\nimport {NUM, NUM_NULL, QueryResult} from '../../common/query_result';\nimport {fromNs, toNs} from '../../common/time';\nimport {\n TrackController,\n trackControllerRegistry\n} from '../../controller/track_controller';\n\nimport {\n Config,\n CPU_FREQ_TRACK_KIND,\n Data,\n} from './common';\n\nclass CpuFreqTrackController extends TrackController<Config, Data> {\n static readonly kind = CPU_FREQ_TRACK_KIND;\n\n private maxDurNs = 0;\n private maxTsEndNs = 0;\n private maximumValueSeen = 0;\n private cachedBucketNs = Number.MAX_SAFE_INTEGER;\n\n async onSetup() {\n await this.createFreqIdleViews();\n\n this.maximumValueSeen = await this.queryMaxFrequency();\n this.maxDurNs = await this.queryMaxSourceDur();\n\n const iter = (await this.query(`\n select max(ts) as maxTs, dur, count(1) as rowCount\n from ${this.tableName('freq_idle')}\n `)).firstRow({maxTs: NUM_NULL, dur: NUM_NULL, rowCount: NUM});\n if (iter.maxTs === null || iter.dur === null) {\n // We shoulnd't really hit this because trackDecider shouldn't create\n // the track in the first place if there are no entries. But could happen\n // if only one cpu has no cpufreq data.\n return;\n }\n this.maxTsEndNs = iter.maxTs + iter.dur;\n\n const rowCount = iter.rowCount;\n const bucketNs = this.cachedBucketSizeNs(rowCount);\n if (bucketNs === undefined) {\n return;\n }\n\n await this.query(`\n create table ${this.tableName('freq_idle_cached')} as\n select\n (ts + ${bucketNs / 2}) / ${bucketNs} * ${bucketNs} as cachedTsq,\n min(freqValue) as minFreq,\n max(freqValue) as maxFreq,\n value_at_max_ts(ts, freqValue) as lastFreq,\n value_at_max_ts(ts, idleValue) as lastIdleValue\n from ${this.tableName('freq_idle')}\n group by cachedTsq\n order by cachedTsq\n `);\n\n this.cachedBucketNs = bucketNs;\n }\n\n async onBoundsChange(start: number, end: number, resolution: number):\n Promise<Data> {\n // The resolution should always be a power of two for the logic of this\n // function to make sense.\n const resolutionNs = toNs(resolution);\n assertTrue(Math.log2(resolutionNs) % 1 === 0);\n\n const startNs = toNs(start);\n const endNs = toNs(end);\n\n // ns per quantization bucket (i.e. ns per pixel). /2 * 2 is to force it to\n // be an even number, so we can snap in the middle.\n const bucketNs =\n Math.max(Math.round(resolutionNs * this.pxSize() / 2) * 2, 1);\n const freqResult = await this.queryData(startNs, endNs, bucketNs);\n assertTrue(freqResult.isComplete());\n\n const numRows = freqResult.numRows();\n const data: Data = {\n start,\n end,\n resolution,\n length: numRows,\n maximumValue: this.maximumValue(),\n maxTsEnd: this.maxTsEndNs,\n timestamps: new Float64Array(numRows),\n minFreqKHz: new Uint32Array(numRows),\n maxFreqKHz: new Uint32Array(numRows),\n lastFreqKHz: new Uint32Array(numRows),\n lastIdleValues: new Int8Array(numRows),\n };\n\n const it = freqResult.iter({\n 'tsq': NUM,\n 'minFreq': NUM,\n 'maxFreq': NUM,\n 'lastFreq': NUM,\n 'lastIdleValue': NUM,\n });\n for (let i = 0; it.valid(); ++i, it.next()) {\n data.timestamps[i] = fromNs(it.tsq);\n data.minFreqKHz[i] = it.minFreq;\n data.maxFreqKHz[i] = it.maxFreq;\n data.lastFreqKHz[i] = it.lastFreq;\n data.lastIdleValues[i] = it.lastIdleValue;\n }\n\n return data;\n }\n\n private async queryData(startNs: number, endNs: number, bucketNs: number):\n Promise<QueryResult> {\n const isCached = this.cachedBucketNs <= bucketNs;\n\n if (isCached) {\n return this.query(`\n select\n cachedTsq / ${bucketNs} * ${bucketNs} as tsq,\n min(minFreq) as minFreq,\n max(maxFreq) as maxFreq,\n value_at_max_ts(cachedTsq, lastFreq) as lastFreq,\n value_at_max_ts(cachedTsq, lastIdleValue) as lastIdleValue\n from ${this.tableName('freq_idle_cached')}\n where\n cachedTsq >= ${startNs - this.maxDurNs} and\n cachedTsq <= ${endNs}\n group by tsq\n order by tsq\n `);\n }\n const minTsFreq = await this.query(`\n select ifnull(max(ts), 0) as minTs from ${this.tableName('freq')}\n where ts < ${startNs}\n `);\n\n let minTs = minTsFreq.iter({minTs: NUM}).minTs;\n if (this.config.idleTrackId !== undefined) {\n const minTsIdle = await this.query(`\n select ifnull(max(ts), 0) as minTs from ${this.tableName('idle')}\n where ts < ${startNs}\n `);\n minTs = Math.min(minTsIdle.iter({minTs: NUM}).minTs, minTs);\n }\n\n const geqConstraint = this.config.idleTrackId === undefined ?\n `ts >= ${minTs}` :\n `source_geq(ts, ${minTs})`;\n return this.query(`\n select\n (ts + ${bucketNs / 2}) / ${bucketNs} * ${bucketNs} as tsq,\n min(freqValue) as minFreq,\n max(freqValue) as maxFreq,\n value_at_max_ts(ts, freqValue) as lastFreq,\n value_at_max_ts(ts, idleValue) as lastIdleValue\n from ${this.tableName('freq_idle')}\n where\n ${geqConstraint} and\n ts <= ${endNs}\n group by tsq\n order by tsq\n `);\n }\n\n private async queryMaxFrequency(): Promise<number> {\n const result = await this.query(`\n select max(freqValue) as maxFreq\n from ${this.tableName('freq')}\n `);\n return result.firstRow({'maxFreq': NUM_NULL}).maxFreq || 0;\n }\n\n private async queryMaxSourceDur(): Promise<number> {\n const maxDurFreqResult = await this.query(\n `select ifnull(max(dur), 0) as maxDur from ${this.tableName('freq')}`);\n const maxDurNs = maxDurFreqResult.firstRow({'maxDur': NUM}).maxDur;\n if (this.config.idleTrackId === undefined) {\n return maxDurNs;\n }\n\n const maxDurIdleResult = await this.query(\n `select ifnull(max(dur), 0) as maxDur from ${this.tableName('idle')}`);\n return Math.max(maxDurNs, maxDurIdleResult.firstRow({maxDur: NUM}).maxDur);\n }\n\n private async createFreqIdleViews() {\n await this.query(`create view ${this.tableName('freq')} as\n select\n ts,\n dur,\n value as freqValue\n from experimental_counter_dur c\n where track_id = ${this.config.freqTrackId};\n `);\n\n if (this.config.idleTrackId === undefined) {\n await this.query(`create view ${this.tableName('freq_idle')} as\n select\n ts,\n dur,\n -1 as idleValue,\n freqValue\n from ${this.tableName('freq')};\n `);\n return;\n }\n\n await this.query(`\n create view ${this.tableName('idle')} as\n select\n ts,\n dur,\n iif(value = 4294967295, -1, cast(value as int)) as idleValue\n from experimental_counter_dur c\n where track_id = ${this.config.idleTrackId};\n `);\n\n await this.query(`\n create virtual table ${this.tableName('freq_idle')}\n using span_join(${this.tableName('freq')}, ${this.tableName('idle')});\n `);\n }\n\n private maximumValue() {\n return Math.max(this.config.maximumValue || 0, this.maximumValueSeen);\n }\n}\n\n\ntrackControllerRegistry.register(CpuFreqTrackController);\n","// Copyright (C) 2019 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {searchSegment} from '../../base/binary_search';\nimport {assertTrue} from '../../base/logging';\nimport {hueForCpu} from '../../common/colorizer';\nimport {checkerboardExcept} from '../../frontend/checkerboard';\nimport {globals} from '../../frontend/globals';\nimport {NewTrackArgs, Track} from '../../frontend/track';\nimport {trackRegistry} from '../../frontend/track_registry';\n\nimport {\n Config,\n CPU_FREQ_TRACK_KIND,\n Data,\n} from './common';\n\n// 0.5 Makes the horizontal lines sharp.\nconst MARGIN_TOP = 4.5;\nconst RECT_HEIGHT = 20;\n\nclass CpuFreqTrack extends Track<Config, Data> {\n static readonly kind = CPU_FREQ_TRACK_KIND;\n static create(args: NewTrackArgs): CpuFreqTrack {\n return new CpuFreqTrack(args);\n }\n\n private mousePos = {x: 0, y: 0};\n private hoveredValue: number|undefined = undefined;\n private hoveredTs: number|undefined = undefined;\n private hoveredTsEnd: number|undefined = undefined;\n private hoveredIdle: number|undefined = undefined;\n\n constructor(args: NewTrackArgs) {\n super(args);\n }\n\n getHeight() {\n return MARGIN_TOP + RECT_HEIGHT;\n }\n\n renderCanvas(ctx: CanvasRenderingContext2D): void {\n // TODO: fonts and colors should come from the CSS and not hardcoded here.\n const {timeScale, visibleWindowTime} = globals.frontendLocalState;\n const data = this.data();\n\n if (data === undefined || data.timestamps.length === 0) {\n // Can't possibly draw anything.\n return;\n }\n\n assertTrue(data.timestamps.length === data.lastFreqKHz.length);\n assertTrue(data.timestamps.length === data.minFreqKHz.length);\n assertTrue(data.timestamps.length === data.maxFreqKHz.length);\n assertTrue(data.timestamps.length === data.lastIdleValues.length);\n\n const endPx = timeScale.timeToPx(visibleWindowTime.end);\n const zeroY = MARGIN_TOP + RECT_HEIGHT;\n\n // Quantize the Y axis to quarters of powers of tens (7.5K, 10K, 12.5K).\n let yMax = data.maximumValue;\n const kUnits = ['', 'K', 'M', 'G', 'T', 'E'];\n const exp = Math.ceil(Math.log10(Math.max(yMax, 1)));\n const pow10 = Math.pow(10, exp);\n yMax = Math.ceil(yMax / (pow10 / 4)) * (pow10 / 4);\n const unitGroup = Math.floor(exp / 3);\n const num = yMax / Math.pow(10, unitGroup * 3);\n // The values we have for cpufreq are in kHz so +1 to unitGroup.\n const yLabel = `${num} ${kUnits[unitGroup + 1]}Hz`;\n\n // Draw the CPU frequency graph.\n const hue = hueForCpu(this.config.cpu);\n let saturation = 45;\n if (globals.state.hoveredUtid !== -1) {\n saturation = 0;\n }\n ctx.fillStyle = `hsl(${hue}, ${saturation}%, 70%)`;\n ctx.strokeStyle = `hsl(${hue}, ${saturation}%, 55%)`;\n\n const calculateX = (timestamp: number) => {\n return Math.floor(timeScale.timeToPx(timestamp));\n };\n const calculateY = (value: number) => {\n return zeroY - Math.round((value / yMax) * RECT_HEIGHT);\n };\n\n const [rawStartIdx,] =\n searchSegment(data.timestamps, visibleWindowTime.start);\n const startIdx = rawStartIdx === -1 ? 0 : rawStartIdx;\n\n const [, rawEndIdx] = searchSegment(data.timestamps, visibleWindowTime.end);\n const endIdx = rawEndIdx === -1 ? data.timestamps.length : rawEndIdx;\n\n ctx.beginPath();\n ctx.moveTo(Math.max(calculateX(data.timestamps[startIdx]), 0), zeroY);\n\n let lastDrawnY = zeroY;\n for (let i = startIdx; i < endIdx; i++) {\n const x = calculateX(data.timestamps[i]);\n\n const minY = calculateY(data.minFreqKHz[i]);\n const maxY = calculateY(data.maxFreqKHz[i]);\n const lastY = calculateY(data.lastFreqKHz[i]);\n\n ctx.lineTo(x, lastDrawnY);\n if (minY === maxY) {\n assertTrue(lastY === minY);\n ctx.lineTo(x, lastY);\n } else {\n ctx.lineTo(x, minY);\n ctx.lineTo(x, maxY);\n ctx.lineTo(x, lastY);\n }\n lastDrawnY = lastY;\n }\n // Find the end time for the last frequency event and then draw\n // down to zero to show that we do not have data after that point.\n const finalX = Math.min(calculateX(data.maxTsEnd), endPx);\n ctx.lineTo(finalX, lastDrawnY);\n ctx.lineTo(finalX, zeroY);\n ctx.lineTo(endPx, zeroY);\n ctx.closePath();\n ctx.fill();\n ctx.stroke();\n\n // Draw CPU idle rectangles that overlay the CPU freq graph.\n ctx.fillStyle = `rgba(240, 240, 240, 1)`;\n\n for (let i = 0; i < data.lastIdleValues.length; i++) {\n if (data.lastIdleValues[i] < 0) {\n continue;\n }\n\n // We intentionally don't use the floor function here when computing x\n // coordinates. Instead we use floating point which prevents flickering as\n // we pan and zoom; this relies on the browser anti-aliasing pixels\n // correctly.\n const x = timeScale.timeToPx(data.timestamps[i]);\n const xEnd = i === data.lastIdleValues.length - 1 ?\n finalX :\n timeScale.timeToPx(data.timestamps[i + 1]);\n\n const width = xEnd - x;\n const height = calculateY(data.lastFreqKHz[i]) - zeroY;\n\n ctx.fillRect(x, zeroY, width, height);\n }\n\n ctx.font = '10px Roboto Condensed';\n\n if (this.hoveredValue !== undefined && this.hoveredTs !== undefined) {\n let text = `${this.hoveredValue.toLocaleString()}kHz`;\n\n ctx.fillStyle = `hsl(${hue}, 45%, 75%)`;\n ctx.strokeStyle = `hsl(${hue}, 45%, 45%)`;\n\n const xStart = Math.floor(timeScale.timeToPx(this.hoveredTs));\n const xEnd = this.hoveredTsEnd === undefined ?\n endPx :\n Math.floor(timeScale.timeToPx(this.hoveredTsEnd));\n const y = zeroY - Math.round((this.hoveredValue / yMax) * RECT_HEIGHT);\n\n // Highlight line.\n ctx.beginPath();\n ctx.moveTo(xStart, y);\n ctx.lineTo(xEnd, y);\n ctx.lineWidth = 3;\n ctx.stroke();\n ctx.lineWidth = 1;\n\n // Draw change marker.\n ctx.beginPath();\n ctx.arc(xStart, y, 3 /*r*/, 0 /*start angle*/, 2 * Math.PI /*end angle*/);\n ctx.fill();\n ctx.stroke();\n\n // Display idle value if current hover is idle.\n if (this.hoveredIdle !== undefined && this.hoveredIdle !== -1) {\n // Display the idle value +1 to be consistent with catapult.\n text += ` (Idle: ${(this.hoveredIdle + 1).toLocaleString()})`;\n }\n\n // Draw the tooltip.\n this.drawTrackHoverTooltip(ctx, this.mousePos, text);\n }\n\n // Write the Y scale on the top left corner.\n ctx.textBaseline = 'alphabetic';\n ctx.fillStyle = 'rgba(255, 255, 255, 0.6)';\n ctx.fillRect(0, 0, 42, 18);\n ctx.fillStyle = '#666';\n ctx.textAlign = 'left';\n ctx.fillText(`${yLabel}`, 4, 14);\n\n // If the cached trace slices don't fully cover the visible time range,\n // show a gray rectangle with a \"Loading...\" label.\n checkerboardExcept(\n ctx,\n this.getHeight(),\n timeScale.timeToPx(visibleWindowTime.start),\n timeScale.timeToPx(visibleWindowTime.end),\n timeScale.timeToPx(data.start),\n timeScale.timeToPx(data.end));\n }\n\n onMouseMove(pos: {x: number, y: number}) {\n const data = this.data();\n if (data === undefined) return;\n this.mousePos = pos;\n const {timeScale} = globals.frontendLocalState;\n const time = timeScale.pxToTime(pos.x);\n\n const [left, right] = searchSegment(data.timestamps, time);\n this.hoveredTs = left === -1 ? undefined : data.timestamps[left];\n this.hoveredTsEnd = right === -1 ? undefined : data.timestamps[right];\n this.hoveredValue = left === -1 ? undefined : data.lastFreqKHz[left];\n this.hoveredIdle = left === -1 ? undefined : data.lastIdleValues[left];\n }\n\n onMouseOut() {\n this.hoveredValue = undefined;\n this.hoveredTs = undefined;\n this.hoveredTsEnd = undefined;\n this.hoveredIdle = undefined;\n }\n}\n\ntrackRegistry.register(CpuFreqTrack);\n","// Copyright (C) 2021 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport './controller';\nimport './frontend';\n","// Copyright (C) 2020 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {TrackData} from '../../common/track_data';\n\nexport const CPU_PROFILE_TRACK_KIND = 'CpuProfileTrack';\n\nexport interface Data extends TrackData {\n ids: Float64Array;\n tsStarts: Float64Array;\n callsiteId: Uint32Array;\n}\n\nexport interface Config {\n utid: number;\n}\n","// Copyright (C) 2020 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {NUM} from '../../common/query_result';\nimport {\n TrackController,\n trackControllerRegistry\n} from '../../controller/track_controller';\n\nimport {\n Config,\n CPU_PROFILE_TRACK_KIND,\n Data,\n} from './common';\n\nclass CpuProfileTrackController extends TrackController<Config, Data> {\n static readonly kind = CPU_PROFILE_TRACK_KIND;\n async onBoundsChange(start: number, end: number, resolution: number):\n Promise<Data> {\n const query = `select\n id,\n ts,\n callsite_id as callsiteId\n from cpu_profile_stack_sample\n where utid = ${this.config.utid}\n order by ts`;\n\n const result = await this.query(query);\n const numRows = result.numRows();\n const data: Data = {\n start,\n end,\n resolution,\n length: numRows,\n ids: new Float64Array(numRows),\n tsStarts: new Float64Array(numRows),\n callsiteId: new Uint32Array(numRows),\n };\n\n const it = result.iter({id: NUM, ts: NUM, callsiteId: NUM});\n for (let row = 0; it.valid(); it.next(), ++row) {\n data.ids[row] = it.id;\n data.tsStarts[row] = it.ts;\n data.callsiteId[row] = it.callsiteId;\n }\n\n return data;\n }\n}\n\ntrackControllerRegistry.register(CpuProfileTrackController);\n","// Copyright (C) 2020 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {hsluvToHex} from 'hsluv';\n\nimport {searchSegment} from '../../base/binary_search';\nimport {Actions} from '../../common/actions';\nimport {hslForSlice} from '../../common/colorizer';\nimport {fromNs, toNs} from '../../common/time';\nimport {globals} from '../../frontend/globals';\nimport {TimeScale} from '../../frontend/time_scale';\nimport {NewTrackArgs, Track} from '../../frontend/track';\nimport {trackRegistry} from '../../frontend/track_registry';\n\nimport {Config, CPU_PROFILE_TRACK_KIND, Data} from './common';\n\nconst BAR_HEIGHT = 3;\nconst MARGIN_TOP = 4.5;\nconst RECT_HEIGHT = 30.5;\n\nfunction colorForSample(callsiteId: number, isHovered: boolean): string {\n return hsluvToHex(hslForSlice(String(callsiteId), isHovered));\n}\n\nclass CpuProfileTrack extends Track<Config, Data> {\n static readonly kind = CPU_PROFILE_TRACK_KIND;\n static create(args: NewTrackArgs): CpuProfileTrack {\n return new CpuProfileTrack(args);\n }\n\n private centerY = this.getHeight() / 2 + BAR_HEIGHT;\n private markerWidth = (this.getHeight() - MARGIN_TOP - BAR_HEIGHT) / 2;\n private hoveredTs: number|undefined = undefined;\n\n constructor(args: NewTrackArgs) {\n super(args);\n }\n\n getHeight() {\n return MARGIN_TOP + RECT_HEIGHT - 1;\n }\n\n renderCanvas(ctx: CanvasRenderingContext2D): void {\n const {\n timeScale,\n } = globals.frontendLocalState;\n const data = this.data();\n\n if (data === undefined) return;\n\n for (let i = 0; i < data.tsStarts.length; i++) {\n const centerX = data.tsStarts[i];\n const selection = globals.state.currentSelection;\n const isHovered = this.hoveredTs === centerX;\n const isSelected = selection !== null &&\n selection.kind === 'CPU_PROFILE_SAMPLE' && selection.ts === centerX;\n const strokeWidth = isSelected ? 3 : 0;\n this.drawMarker(\n ctx,\n timeScale.timeToPx(fromNs(centerX)),\n this.centerY,\n isHovered,\n strokeWidth,\n data.callsiteId[i]);\n }\n\n let startX = data.tsStarts.length ? data.tsStarts[0] : -1;\n let endX = data.tsStarts.length ? data.tsStarts[0] : -1;\n let lastCallsiteId = data.callsiteId.length ? data.callsiteId[0] : -1;\n for (let i = 0; i < data.tsStarts.length; i++) {\n const centerX = data.tsStarts[i];\n const callsiteId = data.callsiteId[i];\n if (lastCallsiteId !== callsiteId) {\n if (startX !== endX) {\n const leftPx = timeScale.timeToPx(fromNs(startX)) - this.markerWidth;\n const rightPx = timeScale.timeToPx(fromNs(endX)) + this.markerWidth;\n const width = rightPx - leftPx;\n ctx.fillStyle = colorForSample(lastCallsiteId, false);\n ctx.fillRect(leftPx, MARGIN_TOP, width, BAR_HEIGHT);\n }\n startX = centerX;\n }\n endX = centerX;\n lastCallsiteId = callsiteId;\n }\n }\n\n drawMarker(\n ctx: CanvasRenderingContext2D, x: number, y: number, isHovered: boolean,\n strokeWidth: number, callsiteId: number): void {\n ctx.beginPath();\n ctx.moveTo(x - this.markerWidth, y - this.markerWidth);\n ctx.lineTo(x, y + this.markerWidth);\n ctx.lineTo(x + this.markerWidth, y - this.markerWidth);\n ctx.lineTo(x - this.markerWidth, y - this.markerWidth);\n ctx.closePath();\n ctx.fillStyle = colorForSample(callsiteId, isHovered);\n ctx.fill();\n if (strokeWidth > 0) {\n ctx.strokeStyle = colorForSample(callsiteId, false);\n ctx.lineWidth = strokeWidth;\n ctx.stroke();\n }\n }\n\n onMouseMove({x, y}: {x: number, y: number}) {\n const data = this.data();\n if (data === undefined) return;\n const {timeScale} = globals.frontendLocalState;\n const time = toNs(timeScale.pxToTime(x));\n const [left, right] = searchSegment(data.tsStarts, time);\n const index = this.findTimestampIndex(left, timeScale, data, x, y, right);\n this.hoveredTs = index === -1 ? undefined : data.tsStarts[index];\n }\n\n onMouseOut() {\n this.hoveredTs = undefined;\n }\n\n onMouseClick({x, y}: {x: number, y: number}) {\n const data = this.data();\n if (data === undefined) return false;\n const {timeScale} = globals.frontendLocalState;\n\n const time = toNs(timeScale.pxToTime(x));\n const [left, right] = searchSegment(data.tsStarts, time);\n\n const index = this.findTimestampIndex(left, timeScale, data, x, y, right);\n\n if (index !== -1) {\n const id = data.ids[index];\n const ts = data.tsStarts[index];\n\n globals.makeSelection(\n Actions.selectCpuProfileSample({id, utid: this.config.utid, ts}));\n return true;\n }\n return false;\n }\n\n // If the markers overlap the rightmost one will be selected.\n findTimestampIndex(\n left: number, timeScale: TimeScale, data: Data, x: number, y: number,\n right: number): number {\n let index = -1;\n if (left !== -1) {\n const centerX = timeScale.timeToPx(fromNs(data.tsStarts[left]));\n if (this.isInMarker(x, y, centerX)) {\n index = left;\n }\n }\n if (right !== -1) {\n const centerX = timeScale.timeToPx(fromNs(data.tsStarts[right]));\n if (this.isInMarker(x, y, centerX)) {\n index = right;\n }\n }\n return index;\n }\n\n isInMarker(x: number, y: number, centerX: number) {\n return Math.abs(x - centerX) + Math.abs(y - this.centerY) <=\n this.markerWidth;\n }\n}\n\ntrackRegistry.register(CpuProfileTrack);\n","// Copyright (C) 2021 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport './controller';\nimport './frontend';\n","// Copyright (C) 2018 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {TrackData} from '../../common/track_data';\n\nexport const CPU_SLICE_TRACK_KIND = 'CpuSliceTrack';\n\nexport interface Data extends TrackData {\n // Slices are stored in a columnar fashion. All fields have the same length.\n ids: Float64Array;\n starts: Float64Array;\n ends: Float64Array;\n utids: Uint32Array;\n}\n\nexport interface Config { cpu: number; }\n","// Copyright (C) 2018 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {assertTrue} from '../../base/logging';\nimport {NUM} from '../../common/query_result';\nimport {fromNs, toNs} from '../../common/time';\nimport {\n TrackController,\n trackControllerRegistry\n} from '../../controller/track_controller';\n\nimport {Config, CPU_SLICE_TRACK_KIND, Data} from './common';\n\nclass CpuSliceTrackController extends TrackController<Config, Data> {\n static readonly kind = CPU_SLICE_TRACK_KIND;\n\n private cachedBucketNs = Number.MAX_SAFE_INTEGER;\n private maxDurNs = 0;\n\n async onSetup() {\n await this.query(`\n create view ${this.tableName('sched')} as\n select\n ts,\n dur,\n utid,\n id\n from sched\n where cpu = ${this.config.cpu} and utid != 0\n `);\n\n const queryRes = await this.query(`\n select ifnull(max(dur), 0) as maxDur, count(1) as rowCount\n from ${this.tableName('sched')}\n `);\n const row = queryRes.firstRow({maxDur: NUM, rowCount: NUM});\n this.maxDurNs = row.maxDur;\n const rowCount = row.rowCount;\n const bucketNs = this.cachedBucketSizeNs(rowCount);\n if (bucketNs === undefined) {\n return;\n }\n await this.query(`\n create table ${this.tableName('sched_cached')} as\n select\n (ts + ${bucketNs / 2}) / ${bucketNs} * ${bucketNs} as cached_tsq,\n ts,\n max(dur) as dur,\n utid,\n id\n from ${this.tableName('sched')}\n group by cached_tsq\n order by cached_tsq\n `);\n this.cachedBucketNs = bucketNs;\n }\n\n async onBoundsChange(start: number, end: number, resolution: number):\n Promise<Data> {\n const resolutionNs = toNs(resolution);\n\n // The resolution should always be a power of two for the logic of this\n // function to make sense.\n assertTrue(Math.log2(resolutionNs) % 1 === 0);\n\n const startNs = toNs(start);\n const endNs = toNs(end);\n\n // ns per quantization bucket (i.e. ns per pixel). /2 * 2 is to force it to\n // be an even number, so we can snap in the middle.\n const bucketNs =\n Math.max(Math.round(resolutionNs * this.pxSize() / 2) * 2, 1);\n\n const isCached = this.cachedBucketNs <= bucketNs;\n const queryTsq = isCached ?\n `cached_tsq / ${bucketNs} * ${bucketNs}` :\n `(ts + ${bucketNs / 2}) / ${bucketNs} * ${bucketNs}`;\n const queryTable =\n isCached ? this.tableName('sched_cached') : this.tableName('sched');\n const constraintColumn = isCached ? 'cached_tsq' : 'ts';\n\n const queryRes = await this.query(`\n select\n ${queryTsq} as tsq,\n ts,\n max(dur) as dur,\n utid,\n id\n from ${queryTable}\n where\n ${constraintColumn} >= ${startNs - this.maxDurNs} and\n ${constraintColumn} <= ${endNs}\n group by tsq\n order by tsq\n `);\n\n const numRows = queryRes.numRows();\n const slices: Data = {\n start,\n end,\n resolution,\n length: numRows,\n ids: new Float64Array(numRows),\n starts: new Float64Array(numRows),\n ends: new Float64Array(numRows),\n utids: new Uint32Array(numRows),\n };\n\n const it = queryRes.iter({tsq: NUM, ts: NUM, dur: NUM, utid: NUM, id: NUM});\n for (let row = 0; it.valid(); it.next(), row++) {\n const startNsQ = it.tsq;\n const startNs = it.ts;\n const durNs = it.dur;\n const endNs = startNs + durNs;\n\n let endNsQ = Math.floor((endNs + bucketNs / 2 - 1) / bucketNs) * bucketNs;\n endNsQ = Math.max(endNsQ, startNsQ + bucketNs);\n\n slices.starts[row] = fromNs(startNsQ);\n slices.ends[row] = fromNs(endNsQ);\n slices.utids[row] = it.utid;\n slices.ids[row] = it.id;\n }\n\n return slices;\n }\n\n async onDestroy() {\n await this.query(`drop table if exists ${this.tableName('sched_cached')}`);\n }\n}\n\ntrackControllerRegistry.register(CpuSliceTrackController);\n","// Copyright (C) 2018 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {search, searchEq, searchSegment} from '../../base/binary_search';\nimport {assertTrue} from '../../base/logging';\nimport {Actions} from '../../common/actions';\nimport {cropText, drawDoubleHeadedArrow} from '../../common/canvas_utils';\nimport {colorForThread} from '../../common/colorizer';\nimport {timeToString} from '../../common/time';\nimport {checkerboardExcept} from '../../frontend/checkerboard';\nimport {globals} from '../../frontend/globals';\nimport {NewTrackArgs, Track} from '../../frontend/track';\nimport {trackRegistry} from '../../frontend/track_registry';\n\nimport {\n Config,\n CPU_SLICE_TRACK_KIND,\n Data,\n} from './common';\n\nconst MARGIN_TOP = 3;\nconst RECT_HEIGHT = 24;\nconst TRACK_HEIGHT = MARGIN_TOP * 2 + RECT_HEIGHT;\n\nclass CpuSliceTrack extends Track<Config, Data> {\n static readonly kind = CPU_SLICE_TRACK_KIND;\n static create(args: NewTrackArgs): CpuSliceTrack {\n return new CpuSliceTrack(args);\n }\n\n private mousePos?: {x: number, y: number};\n private utidHoveredInThisTrack = -1;\n\n constructor(args: NewTrackArgs) {\n super(args);\n }\n\n getHeight(): number {\n return TRACK_HEIGHT;\n }\n\n renderCanvas(ctx: CanvasRenderingContext2D): void {\n // TODO: fonts and colors should come from the CSS and not hardcoded here.\n const {timeScale, visibleWindowTime} = globals.frontendLocalState;\n const data = this.data();\n\n if (data === undefined) return; // Can't possibly draw anything.\n\n // If the cached trace slices don't fully cover the visible time range,\n // show a gray rectangle with a \"Loading...\" label.\n checkerboardExcept(\n ctx,\n this.getHeight(),\n timeScale.timeToPx(visibleWindowTime.start),\n timeScale.timeToPx(visibleWindowTime.end),\n timeScale.timeToPx(data.start),\n timeScale.timeToPx(data.end));\n\n this.renderSlices(ctx, data);\n }\n\n renderSlices(ctx: CanvasRenderingContext2D, data: Data): void {\n const {timeScale, visibleWindowTime} = globals.frontendLocalState;\n assertTrue(data.starts.length === data.ends.length);\n assertTrue(data.starts.length === data.utids.length);\n\n ctx.textAlign = 'center';\n ctx.font = '12px Roboto Condensed';\n const charWidth = ctx.measureText('dbpqaouk').width / 8;\n\n const rawStartIdx =\n data.ends.findIndex(end => end >= visibleWindowTime.start);\n const startIdx = rawStartIdx === -1 ? 0 : rawStartIdx;\n\n const [, rawEndIdx] = searchSegment(data.starts, visibleWindowTime.end);\n const endIdx = rawEndIdx === -1 ? data.starts.length : rawEndIdx;\n\n for (let i = startIdx; i < endIdx; i++) {\n const tStart = data.starts[i];\n const tEnd = data.ends[i];\n const utid = data.utids[i];\n\n const rectStart = timeScale.timeToPx(tStart);\n const rectEnd = timeScale.timeToPx(tEnd);\n const rectWidth = Math.max(1, rectEnd - rectStart);\n\n const threadInfo = globals.threads.get(utid);\n const pid = threadInfo && threadInfo.pid ? threadInfo.pid : -1;\n\n const isHovering = globals.state.hoveredUtid !== -1;\n const isThreadHovered = globals.state.hoveredUtid === utid;\n const isProcessHovered = globals.state.hoveredPid === pid;\n const color = colorForThread(threadInfo);\n if (isHovering && !isThreadHovered) {\n if (!isProcessHovered) {\n color.l = 90;\n color.s = 0;\n } else {\n color.l = Math.min(color.l + 30, 80);\n color.s -= 20;\n }\n } else {\n color.l = Math.min(color.l + 10, 60);\n color.s -= 20;\n }\n ctx.fillStyle = `hsl(${color.h}, ${color.s}%, ${color.l}%)`;\n ctx.fillRect(rectStart, MARGIN_TOP, rectWidth, RECT_HEIGHT);\n\n // Don't render text when we have less than 5px to play with.\n if (rectWidth < 5) continue;\n\n // TODO: consider de-duplicating this code with the copied one from\n // chrome_slices/frontend.ts.\n let title = `[utid:${utid}]`;\n let subTitle = '';\n if (threadInfo) {\n if (threadInfo.pid) {\n let procName = threadInfo.procName || '';\n if (procName.startsWith('/')) { // Remove folder paths from name\n procName = procName.substring(procName.lastIndexOf('/') + 1);\n }\n title = `${procName} [${threadInfo.pid}]`;\n subTitle = `${threadInfo.threadName} [${threadInfo.tid}]`;\n } else {\n title = `${threadInfo.threadName} [${threadInfo.tid}]`;\n }\n }\n title = cropText(title, charWidth, rectWidth);\n subTitle = cropText(subTitle, charWidth, rectWidth);\n const rectXCenter = rectStart + rectWidth / 2;\n ctx.fillStyle = '#fff';\n ctx.font = '12px Roboto Condensed';\n ctx.fillText(title, rectXCenter, MARGIN_TOP + RECT_HEIGHT / 2 - 1);\n ctx.fillStyle = 'rgba(255, 255, 255, 0.6)';\n ctx.font = '10px Roboto Condensed';\n ctx.fillText(subTitle, rectXCenter, MARGIN_TOP + RECT_HEIGHT / 2 + 9);\n }\n\n const selection = globals.state.currentSelection;\n const details = globals.sliceDetails;\n if (selection !== null && selection.kind === 'SLICE') {\n const [startIndex, endIndex] = searchEq(data.ids, selection.id);\n if (startIndex !== endIndex) {\n const tStart = data.starts[startIndex];\n const tEnd = data.ends[startIndex];\n const utid = data.utids[startIndex];\n const color = colorForThread(globals.threads.get(utid));\n const rectStart = timeScale.timeToPx(tStart);\n const rectEnd = timeScale.timeToPx(tEnd);\n const rectWidth = Math.max(1, rectEnd - rectStart);\n\n // Draw a rectangle around the slice that is currently selected.\n ctx.strokeStyle = `hsl(${color.h}, ${color.s}%, 30%)`;\n ctx.beginPath();\n ctx.lineWidth = 3;\n ctx.strokeRect(rectStart, MARGIN_TOP - 1.5, rectWidth, RECT_HEIGHT + 3);\n ctx.closePath();\n // Draw arrow from wakeup time of current slice.\n if (details.wakeupTs) {\n const wakeupPos = timeScale.timeToPx(details.wakeupTs);\n const latencyWidth = rectStart - wakeupPos;\n drawDoubleHeadedArrow(\n ctx,\n wakeupPos,\n MARGIN_TOP + RECT_HEIGHT,\n latencyWidth,\n latencyWidth >= 20);\n // Latency time with a white semi-transparent background.\n const displayText = timeToString(tStart - details.wakeupTs);\n const measured = ctx.measureText(displayText);\n if (latencyWidth >= measured.width + 2) {\n ctx.fillStyle = 'rgba(255,255,255,0.7)';\n ctx.fillRect(\n wakeupPos + latencyWidth / 2 - measured.width / 2 - 1,\n MARGIN_TOP + RECT_HEIGHT - 12,\n measured.width + 2,\n 11);\n ctx.textBaseline = 'bottom';\n ctx.fillStyle = 'black';\n ctx.fillText(\n displayText,\n wakeupPos + (latencyWidth) / 2,\n MARGIN_TOP + RECT_HEIGHT - 1);\n }\n }\n }\n\n // Draw diamond if the track being drawn is the cpu of the waker.\n if (this.config.cpu === details.wakerCpu && details.wakeupTs) {\n const wakeupPos = Math.floor(timeScale.timeToPx(details.wakeupTs));\n ctx.beginPath();\n ctx.moveTo(wakeupPos, MARGIN_TOP + RECT_HEIGHT / 2 + 8);\n ctx.fillStyle = 'black';\n ctx.lineTo(wakeupPos + 6, MARGIN_TOP + RECT_HEIGHT / 2);\n ctx.lineTo(wakeupPos, MARGIN_TOP + RECT_HEIGHT / 2 - 8);\n ctx.lineTo(wakeupPos - 6, MARGIN_TOP + RECT_HEIGHT / 2);\n ctx.fill();\n ctx.closePath();\n }\n }\n\n const hoveredThread = globals.threads.get(this.utidHoveredInThisTrack);\n if (hoveredThread !== undefined && this.mousePos !== undefined) {\n const tidText = `T: ${hoveredThread.threadName} [${hoveredThread.tid}]`;\n if (hoveredThread.pid) {\n const pidText = `P: ${hoveredThread.procName} [${hoveredThread.pid}]`;\n this.drawTrackHoverTooltip(ctx, this.mousePos, pidText, tidText);\n } else {\n this.drawTrackHoverTooltip(ctx, this.mousePos, tidText);\n }\n }\n }\n\n onMouseMove(pos: {x: number, y: number}) {\n const data = this.data();\n this.mousePos = pos;\n if (data === undefined) return;\n const {timeScale} = globals.frontendLocalState;\n if (pos.y < MARGIN_TOP || pos.y > MARGIN_TOP + RECT_HEIGHT) {\n this.utidHoveredInThisTrack = -1;\n globals.dispatch(Actions.setHoveredUtidAndPid({utid: -1, pid: -1}));\n return;\n }\n const t = timeScale.pxToTime(pos.x);\n let hoveredUtid = -1;\n\n for (let i = 0; i < data.starts.length; i++) {\n const tStart = data.starts[i];\n const tEnd = data.ends[i];\n const utid = data.utids[i];\n if (tStart <= t && t <= tEnd) {\n hoveredUtid = utid;\n break;\n }\n }\n this.utidHoveredInThisTrack = hoveredUtid;\n const threadInfo = globals.threads.get(hoveredUtid);\n const hoveredPid = threadInfo ? (threadInfo.pid ? threadInfo.pid : -1) : -1;\n globals.dispatch(\n Actions.setHoveredUtidAndPid({utid: hoveredUtid, pid: hoveredPid}));\n }\n\n onMouseOut() {\n this.utidHoveredInThisTrack = -1;\n globals.dispatch(Actions.setHoveredUtidAndPid({utid: -1, pid: -1}));\n this.mousePos = undefined;\n }\n\n onMouseClick({x}: {x: number}) {\n const data = this.data();\n if (data === undefined) return false;\n const {timeScale} = globals.frontendLocalState;\n const time = timeScale.pxToTime(x);\n const index = search(data.starts, time);\n const id = index === -1 ? undefined : data.ids[index];\n if (!id || this.utidHoveredInThisTrack === -1) return false;\n globals.makeSelection(\n Actions.selectSlice({id, trackId: this.trackState.id}));\n return true;\n }\n}\n\ntrackRegistry.register(CpuSliceTrack);\n","// Copyright (C) 2021 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport './controller';\nimport './frontend';\n","// Copyright (C) 2020 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {Actions} from '../../common/actions';\nimport {NUM, NUM_NULL, STR} from '../../common/query_result';\nimport {fromNs, toNs} from '../../common/time';\nimport {globals} from '../../controller/globals';\nimport {\n TrackController,\n trackControllerRegistry,\n} from '../../controller/track_controller';\n\nimport {Config, Data, DEBUG_SLICE_TRACK_KIND} from './common';\n\nclass DebugSliceTrackController extends TrackController<Config, Data> {\n static readonly kind = DEBUG_SLICE_TRACK_KIND;\n\n async onReload() {\n const rawResult = await this.query(\n `select ifnull(max(depth), 1) as maxDepth from debug_slices`);\n const maxDepth = rawResult.firstRow({maxDepth: NUM}).maxDepth;\n globals.dispatch(\n Actions.updateTrackConfig({id: this.trackId, config: {maxDepth}}));\n }\n\n async onBoundsChange(start: number, end: number, resolution: number):\n Promise<Data> {\n const queryRes = await this.query(`select\n ifnull(id, -1) as id,\n ifnull(name, '[null]') as name,\n ts,\n iif(dur = -1, (SELECT end_ts FROM trace_bounds) - ts, dur) as dur,\n ifnull(depth, 0) as depth\n from debug_slices\n where (ts + dur) >= ${toNs(start)} and ts <= ${toNs(end)}`);\n\n const numRows = queryRes.numRows();\n\n const slices: Data = {\n start,\n end,\n resolution,\n length: numRows,\n strings: [],\n sliceIds: new Float64Array(numRows),\n starts: new Float64Array(numRows),\n ends: new Float64Array(numRows),\n depths: new Uint16Array(numRows),\n titles: new Uint16Array(numRows),\n isInstant: new Uint16Array(numRows),\n isIncomplete: new Uint16Array(numRows),\n };\n\n const stringIndexes = new Map<string, number>();\n function internString(str: string) {\n let idx = stringIndexes.get(str);\n if (idx !== undefined) return idx;\n idx = slices.strings.length;\n slices.strings.push(str);\n stringIndexes.set(str, idx);\n return idx;\n }\n\n const it = queryRes.iter(\n {id: NUM, name: STR, ts: NUM_NULL, dur: NUM_NULL, depth: NUM});\n for (let row = 0; it.valid(); it.next(), row++) {\n let sliceStart: number, sliceEnd: number;\n if (it.ts === null || it.dur === null) {\n sliceStart = sliceEnd = -1;\n } else {\n sliceStart = it.ts;\n sliceEnd = sliceStart + it.dur;\n }\n slices.sliceIds[row] = it.id;\n slices.starts[row] = fromNs(sliceStart);\n slices.ends[row] = fromNs(sliceEnd);\n slices.depths[row] = it.depth;\n const sliceName = it.name;\n slices.titles[row] = internString(sliceName);\n slices.isInstant[row] = 0;\n slices.isIncomplete[row] = 0;\n }\n\n return slices;\n }\n}\n\ntrackControllerRegistry.register(DebugSliceTrackController);\n","// Copyright (C) 2020 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as m from 'mithril';\n\nimport {Actions} from '../../common/actions';\nimport {globals} from '../../frontend/globals';\nimport {NewTrackArgs, Track} from '../../frontend/track';\nimport {TrackButton, TrackButtonAttrs} from '../../frontend/track_panel';\nimport {trackRegistry} from '../../frontend/track_registry';\nimport {ChromeSliceTrack} from '../chrome_slices/frontend';\n\nimport {DEBUG_SLICE_TRACK_KIND} from './common';\n\nexport class DebugSliceTrack extends ChromeSliceTrack {\n static readonly kind = DEBUG_SLICE_TRACK_KIND;\n static create(args: NewTrackArgs): Track {\n return new DebugSliceTrack(args);\n }\n\n getTrackShellButtons(): Array<m.Vnode<TrackButtonAttrs>> {\n const buttons: Array<m.Vnode<TrackButtonAttrs>> = [];\n buttons.push(m(TrackButton, {\n action: () => {\n globals.dispatch(Actions.requestTrackReload({}));\n },\n i: 'refresh',\n tooltip: 'Refresh tracks',\n showButton: true,\n }));\n buttons.push(m(TrackButton, {\n action: () => {\n globals.dispatch(Actions.removeDebugTrack({}));\n },\n i: 'close',\n tooltip: 'Close',\n showButton: true,\n }));\n return buttons;\n }\n}\n\ntrackRegistry.register(DebugSliceTrack);\n","// Copyright (C) 2021 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport './controller';\nimport './frontend';\n","// Copyright (C) 2021 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {NUM, NUM_NULL, STR} from '../../common/query_result';\nimport {fromNs, toNs} from '../../common/time';\nimport {\n TrackController,\n trackControllerRegistry,\n} from '../../controller/track_controller';\n\nimport {Config, Data, EXPECTED_FRAMES_SLICE_TRACK_KIND} from './common';\n\nclass ExpectedFramesSliceTrackController extends TrackController<Config, Data> {\n static readonly kind = EXPECTED_FRAMES_SLICE_TRACK_KIND;\n private maxDurNs = 0;\n\n async onBoundsChange(start: number, end: number, resolution: number):\n Promise<Data> {\n const startNs = toNs(start);\n const endNs = toNs(end);\n\n const pxSize = this.pxSize();\n\n // ns per quantization bucket (i.e. ns per pixel). /2 * 2 is to force it to\n // be an even number, so we can snap in the middle.\n const bucketNs = Math.max(Math.round(resolution * 1e9 * pxSize / 2) * 2, 1);\n\n if (this.maxDurNs === 0) {\n const maxDurResult = await this.query(`\n select max(iif(dur = -1, (SELECT end_ts FROM trace_bounds) - ts, dur))\n as maxDur\n from experimental_slice_layout\n where filter_track_ids = '${this.config.trackIds.join(',')}'\n `);\n this.maxDurNs = maxDurResult.firstRow({maxDur: NUM_NULL}).maxDur || 0;\n }\n\n const queryRes = await this.query(`\n SELECT\n (ts + ${bucketNs / 2}) / ${bucketNs} * ${bucketNs} as tsq,\n ts,\n max(iif(dur = -1, (SELECT end_ts FROM trace_bounds) - ts, dur)) as dur,\n layout_depth as layoutDepth,\n name,\n id,\n dur = 0 as isInstant,\n dur = -1 as isIncomplete\n from experimental_slice_layout\n where\n filter_track_ids = '${this.config.trackIds.join(',')}' and\n ts >= ${startNs - this.maxDurNs} and\n ts <= ${endNs}\n group by tsq, layout_depth\n order by tsq, layout_depth\n `);\n\n const numRows = queryRes.numRows();\n const slices: Data = {\n start,\n end,\n resolution,\n length: numRows,\n strings: [],\n sliceIds: new Float64Array(numRows),\n starts: new Float64Array(numRows),\n ends: new Float64Array(numRows),\n depths: new Uint16Array(numRows),\n titles: new Uint16Array(numRows),\n colors: new Uint16Array(numRows),\n isInstant: new Uint16Array(numRows),\n isIncomplete: new Uint16Array(numRows),\n };\n\n const stringIndexes = new Map<string, number>();\n function internString(str: string) {\n let idx = stringIndexes.get(str);\n if (idx !== undefined) return idx;\n idx = slices.strings.length;\n slices.strings.push(str);\n stringIndexes.set(str, idx);\n return idx;\n }\n const greenIndex = internString('#4CAF50');\n\n const it = queryRes.iter({\n tsq: NUM,\n ts: NUM,\n dur: NUM,\n layoutDepth: NUM,\n id: NUM,\n name: STR,\n isInstant: NUM,\n isIncomplete: NUM,\n });\n for (let row = 0; it.valid(); it.next(), ++row) {\n const startNsQ = it.tsq;\n const startNs = it.ts;\n const durNs = it.dur;\n const endNs = startNs + durNs;\n\n let endNsQ = Math.floor((endNs + bucketNs / 2 - 1) / bucketNs) * bucketNs;\n endNsQ = Math.max(endNsQ, startNsQ + bucketNs);\n\n slices.starts[row] = fromNs(startNsQ);\n slices.ends[row] = fromNs(endNsQ);\n slices.depths[row] = it.layoutDepth;\n slices.titles[row] = internString(it.name);\n slices.sliceIds[row] = it.id;\n slices.isInstant[row] = it.isInstant;\n slices.isIncomplete[row] = it.isIncomplete;\n slices.colors![row] = greenIndex;\n }\n return slices;\n }\n}\n\n\ntrackControllerRegistry.register(ExpectedFramesSliceTrackController);\n","// Copyright (C) 2021 The Android Open Source Project\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {NewTrackArgs, Track} from '../../frontend/track';\nimport {trackRegistry} from '../../frontend/track_registry';\nimport {ChromeSliceTrack} from '../chrome_slices/frontend';\n\nimport {EXPECTED_FRAMES_SLICE_TRACK_KIND} from './common';\n\nexport class ExpectedFramesSliceTrack extends ChromeSliceTrack {\n static readonly kind = EXPECTED_FRAMES_SLICE_TRACK_KIND;\n static create(args: NewTrackArgs): Track {\n return new ExpectedFramesSliceTrack(args);\n }\n}\n\ntrackRegistry.register(ExpectedFramesSliceTrack);\n","// Copyright (C) 2021 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport './controller';\nimport './frontend';\n","// Copyright (C) 2021 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nexport interface SliceLayoutBase {\n padding: number; // top/bottom pixel padding between slices and track.\n rowSpacing: number; // Spacing between rows.\n minDepth: number; // Minimum depth a slice can be (normally zero)\n // Maximum depth a slice can be plus 1 (a half open range with minDepth).\n // We have a optimization for when maxDepth - minDepth == 1 so it is useful\n // to set this correctly:\n maxDepth: number;\n}\n\nexport const SLICE_LAYOUT_BASE_DEFAULTS: SliceLayoutBase = Object.freeze({\n padding: 3,\n rowSpacing: 0,\n minDepth: 0,\n // A realistic bound to avoid tracks with unlimited height. If somebody wants\n // extremely deep tracks they need to change this explicitly.\n maxDepth: 128,\n});\n\nexport interface SliceLayoutFixed extends SliceLayoutBase {\n heightMode: 'FIXED';\n fixedHeight: number; // Outer height of the track.\n}\n\nexport const SLICE_LAYOUT_FIXED_DEFAULTS: SliceLayoutFixed = Object.freeze({\n ...SLICE_LAYOUT_BASE_DEFAULTS,\n heightMode: 'FIXED',\n fixedHeight: 30,\n});\n\nexport interface SliceLayoutFitContent extends SliceLayoutBase {\n heightMode: 'FIT_CONTENT';\n sliceHeight: number; // Only when heightMode = 'FIT_CONTENT'.\n}\n\nexport const SLICE_LAYOUT_FIT_CONTENT_DEFAULTS: SliceLayoutFitContent =\n Object.freeze({\n ...SLICE_LAYOUT_BASE_DEFAULTS,\n heightMode: 'FIT_CONTENT',\n sliceHeight: 18,\n });\n\nexport interface SliceLayoutFlat extends SliceLayoutBase {\n heightMode: 'FIXED';\n fixedHeight: number; // Outer height of the track.\n minDepth: 0;\n maxDepth: 1;\n}\n\nexport const SLICE_LAYOUT_FLAT_DEFAULTS: SliceLayoutFlat = Object.freeze({\n ...SLICE_LAYOUT_BASE_DEFAULTS,\n minDepth: 0,\n maxDepth: 1,\n heightMode: 'FIXED',\n fixedHeight: 30,\n});\n\nexport type SliceLayout =\n SliceLayoutFixed|SliceLayoutFitContent|SliceLayoutFlat;\n\nexport const DEFAULT_SLICE_LAYOUT: SliceLayout =\n SLICE_LAYOUT_FIT_CONTENT_DEFAULTS;\n","// Copyright (C) 2021 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {assertExists} from '../base/logging';\nimport {Actions} from '../common/actions';\nimport {cropText, drawIncompleteSlice} from '../common/canvas_utils';\nimport {colorCompare, colorToStr, GRAY_COLOR} from '../common/colorizer';\nimport {NUM, QueryResult} from '../common/query_result';\nimport {SelectionKind} from '../common/state';\nimport {fromNs, toNs} from '../common/time';\n\nimport {checkerboardExcept} from './checkerboard';\nimport {globals} from './globals';\nimport {Slice} from './slice';\nimport {DEFAULT_SLICE_LAYOUT, SliceLayout} from './slice_layout';\nimport {NewTrackArgs, SliceRect, Track} from './track';\n\n// The common class that underpins all tracks drawing slices.\n\nexport const SLICE_FLAGS_INCOMPLETE = 1;\nexport const SLICE_FLAGS_INSTANT = 2;\n\n// Slices smaller than this don't get any text:\nconst SLICE_MIN_WIDTH_FOR_TEXT_PX = 5;\n// Slices smaller than this aren't rendered at all.\nconst SLICE_MIN_WIDTH_PX = 0.1;\nconst CHEVRON_WIDTH_PX = 10;\nconst DEFAULT_SLICE_COLOR = GRAY_COLOR;\n\n// TODO(hjd): Implement caching.\n\n// The minimal set of columns that any table/view must expose to render tracks.\n// Note: this class assumes that, at the SQL level, slices are:\n// - Not temporally overlapping (unless they are nested at inner depth).\n// - Strictly stacked (i.e. a slice at depth N+1 cannot be larger than any\n// slices at depth 0..N.\n// If you need temporally overlapping slices, look at AsyncSliceTrack, which\n// merges several tracks into one visual track.\nexport const BASE_SLICE_ROW = {\n id: NUM, // The slice ID, for selection / lookups.\n tsq: NUM, // Quantized |ts|. This class owns the quantization logic.\n ts: NUM, // Start time in nanoseconds.\n dur: NUM, // Duration in nanoseconds. -1 = incomplete, 0 = instant.\n depth: NUM, // Vertical depth.\n};\n\nexport type BaseSliceRow = typeof BASE_SLICE_ROW;\n\n// These properties change @ 60FPS and shouldn't be touched by the subclass.\n// since the Impl doesn't see every frame attempting to reason on them in a\n// subclass will run in to issues.\ninterface SliceInternal {\n x: number;\n w: number;\n}\n\n// We use this to avoid exposing subclasses to the properties that live on\n// SliceInternal. Within BaseSliceTrack the underlying storage and private\n// methods use CastInternal<T['slice']> (i.e. whatever the subclass requests\n// plus our implementation fields) but when we call 'virtual' methods that\n// the subclass should implement we use just T['slice'] hiding x & w.\ntype CastInternal<S extends Slice> = S&SliceInternal;\n\n// The meta-type which describes the types used to extend the BaseSliceTrack.\n// Derived classes can extend this interface to override these types if needed.\nexport interface BaseSliceTrackTypes {\n slice: Slice;\n row: BaseSliceRow;\n config: {};\n}\n\nexport abstract class BaseSliceTrack<T extends BaseSliceTrackTypes =\n BaseSliceTrackTypes> extends\n Track<T['config']> {\n // This is the slice cache.\n private slices = new Array<CastInternal<T['slice']>>();\n protected sliceLayout: SliceLayout = {...DEFAULT_SLICE_LAYOUT};\n\n // These are the over-skirted cached bounds.\n private slicesStartNs = -1;\n private slicesEndNs = -1;\n private slicesBucketNs = -1;\n\n private readonly tableName: string;\n private maxDurNs = 0;\n private sqlState: 'UNINITIALIZED'|'INITIALIZING'|'QUERY_PENDING'|\n 'QUERY_DONE' = 'UNINITIALIZED';\n private extraSqlColumns: string[];\n\n private charWidth = -1;\n private hoverPos?: {x: number, y: number};\n protected hoveredSlice?: T['slice'];\n private hoverTooltip: string[] = [];\n private maxDataDepth = 0;\n\n // Computed layout.\n private computedTrackHeight = 0;\n private computedSliceHeight = 0;\n private computedRowSpacing = 0;\n\n // TODO(hjd): Remove when updating selection.\n // We shouldn't know here about CHROME_SLICE. Maybe should be set by\n // whatever deals with that. Dunno the namespace of selection is weird. For\n // most cases in non-ambiguous (because most things are a 'slice'). But some\n // others (e.g. THREAD_SLICE) have their own ID namespace so we need this.\n protected selectionKinds: SelectionKind[] = ['SLICE', 'CHROME_SLICE'];\n\n // Extension points.\n // Each extension point should take a dedicated argument type (e.g.,\n // OnSliceOverArgs {slice?: T['slice']}) so it makes future extensions\n // non-API-breaking (e.g. if we want to add the X position).\n abstract initSqlTable(_tableName: string): Promise<void>;\n getRowSpec(): T['row'] {\n return BASE_SLICE_ROW;\n }\n onSliceOver(_args: OnSliceOverArgs<T['slice']>): void {}\n onSliceOut(_args: OnSliceOutArgs<T['slice']>): void {}\n onSliceClick(_args: OnSliceClickArgs<T['slice']>): void {}\n prepareSlices(slices: Array<T['slice']>): void {\n this.highlightHovererdAndSameTitle(slices);\n }\n\n // TODO(hjd): Remove.\n drawSchedLatencyArrow(\n _: CanvasRenderingContext2D, _selectedSlice?: T['slice']): void {}\n\n constructor(args: NewTrackArgs) {\n super(args);\n this.frontendOnly = true; // Disable auto checkerboarding.\n this.tableName = `track_${this.trackId}`.replace(/[^a-zA-Z0-9_]+/g, '_');\n\n // Work out the extra columns.\n // This is the union of the embedder-defined columns and the base columns\n // we know about (ts, dur, ...).\n const allCols = Object.keys(this.getRowSpec());\n const baseCols = Object.keys(BASE_SLICE_ROW);\n this.extraSqlColumns = allCols.filter(key => !baseCols.includes(key));\n }\n\n setSliceLayout(sliceLayout: SliceLayout) {\n if (sliceLayout.minDepth > sliceLayout.maxDepth) {\n const {maxDepth, minDepth} = sliceLayout;\n throw new Error(`minDepth ${minDepth} must be <= maxDepth ${maxDepth}`);\n }\n this.sliceLayout = sliceLayout;\n }\n\n onFullRedraw(): void {\n // TODO(hjd): Call this only when cache changes. See discussion:\n // What we want to do here is give the Impl a chance to colour the slice,\n // e.g. depending on the currently selected thread or process.\n // Here's an interesting thought. We have two options here:\n // A) We could pass only the vizSlices, but then we'd have to call this\n // @ 60FPS (because vizSlices changes as we pan).\n // B) We could call this only on full redraws (when the state changes),\n // but then the track needs to process *all* cached slices, not just\n // the visible ones. It's okay now (it's a 2x factor) but might get\n // worse if we cache several layers of slices at various resolutions.\n // But there's an escape, I think. I think the right thing to do is:\n // - For now call it on the full slices, but only on full redraws.\n // - When we get caching, call it every time we switch \"cached quantization\n // level\", which is a way in the middle between 60FPS and full redraws..\n // Overall the API contract of this prepareSlices() call is:\n // - I am going to draw these slices in the near future.\n // - I am not going to draw any slice that I haven't passed here first.\n // - This is guaranteed to be called at least on every state change.\n // - This is NOT guaranteed to be called on every frame. For instance you\n // cannot use this to do some colour-based animation.\n\n // Give a chance to the embedder to change colors and other stuff.\n this.prepareSlices(this.slices);\n }\n\n renderCanvas(ctx: CanvasRenderingContext2D): void {\n // TODO(hjd): fonts and colors should come from the CSS and not hardcoded\n // here.\n const {timeScale} = globals.frontendLocalState;\n const vizTime = globals.frontendLocalState.visibleWindowTime;\n\n // If the visible time range is outside the cached area, requests\n // asynchronously new data from the SQL engine.\n this.maybeRequestData();\n\n // In any case, draw whatever we have (which might be stale/incomplete).\n\n // If the cached trace slices don't fully cover the visible time range,\n // show a gray rectangle with a \"Loading...\" label.\n checkerboardExcept(\n ctx,\n this.getHeight(),\n timeScale.timeToPx(vizTime.start),\n timeScale.timeToPx(vizTime.end),\n timeScale.timeToPx(fromNs(this.slicesStartNs)),\n timeScale.timeToPx(fromNs(this.slicesEndNs)));\n\n let charWidth = this.charWidth;\n if (charWidth < 0) {\n // TODO(hjd): Centralize font measurement/invalidation.\n ctx.font = '12px Roboto Condensed';\n charWidth = this.charWidth = ctx.measureText('dbpqaouk').width / 8;\n }\n\n // Filter only the visible slices. |this.slices| will have more slices than\n // needed because maybeRequestData() over-fetches to handle small pan/zooms.\n // We don't want to waste time drawing slices that are off screen.\n const vizSlices = this.getVisibleSlicesInternal(vizTime.start, vizTime.end);\n\n let selection = globals.state.currentSelection;\n\n if (!selection || !this.selectionKinds.includes(selection.kind)) {\n selection = null;\n }\n\n // Believe it or not, doing 4xO(N) passes is ~2x faster than trying to draw\n // everything in one go. The key is that state changes operations on the\n // canvas (e.g., color, fonts) dominate any number crunching we do in JS.\n\n this.updateSliceAndTrackHeight();\n const sliceHeight = this.computedSliceHeight;\n const padding = this.sliceLayout.padding;\n const rowSpacing = this.computedRowSpacing;\n\n // First pass: compute geometry of slices.\n let selSlice: CastInternal<T['slice']>|undefined;\n\n // pxEnd is the last visible pixel in the visible viewport. Drawing\n // anything < 0 or > pxEnd doesn't produce any visible effect as it goes\n // beyond the visible portion of the canvas.\n const pxEnd = Math.floor(timeScale.timeToPx(vizTime.end));\n\n for (const slice of vizSlices) {\n // Compute the basic geometry for any visible slice, even if only\n // partially visible. This might end up with a negative x if the\n // slice starts before the visible time or with a width that overflows\n // pxEnd.\n slice.x = timeScale.timeToPx(slice.startS);\n slice.w = timeScale.deltaTimeToPx(slice.durationS);\n if (slice.flags & SLICE_FLAGS_INSTANT) {\n // In the case of an instant slice, set the slice geometry on the\n // bounding box that will contain the chevron.\n slice.x -= CHEVRON_WIDTH_PX / 2;\n slice.w = CHEVRON_WIDTH_PX;\n } else {\n // If the slice is an actual slice, intersect the slice geometry with\n // the visible viewport (this affects only the first and last slice).\n // This is so that text is always centered even if we are zoomed in.\n // Visually if we have\n // [ visible viewport ]\n // [ slice ]\n // The resulting geometry will be:\n // [slice]\n // So that the slice title stays within the visible region.\n const sliceVizLimit = Math.min(slice.x + slice.w, pxEnd);\n slice.x = Math.max(slice.x, 0);\n slice.w = sliceVizLimit - slice.x;\n }\n\n if (selection && (selection as {id: number}).id === slice.id) {\n selSlice = slice;\n }\n }\n\n // Second pass: fill slices by color.\n // The .slice() turned out to be an unintended pun.\n const vizSlicesByColor = vizSlices.slice();\n vizSlicesByColor.sort((a, b) => colorCompare(a.color, b.color));\n let lastColor = undefined;\n for (const slice of vizSlicesByColor) {\n if (slice.color !== lastColor) {\n lastColor = slice.color;\n ctx.fillStyle = colorToStr(slice.color);\n }\n const y = padding + slice.depth * (sliceHeight + rowSpacing);\n if (slice.flags & SLICE_FLAGS_INSTANT) {\n this.drawChevron(ctx, slice.x, y, sliceHeight);\n } else if (slice.flags & SLICE_FLAGS_INCOMPLETE) {\n const w = Math.max(slice.w - 2, 2);\n drawIncompleteSlice(ctx, slice.x, y, w, sliceHeight);\n } else if (slice.w > SLICE_MIN_WIDTH_PX) {\n ctx.fillRect(slice.x, y, slice.w, sliceHeight);\n }\n }\n\n // Third pass, draw the titles (e.g., process name for sched slices).\n ctx.fillStyle = '#fff';\n ctx.textAlign = 'center';\n ctx.font = '12px Roboto Condensed';\n ctx.textBaseline = 'middle';\n for (const slice of vizSlices) {\n if ((slice.flags & SLICE_FLAGS_INSTANT) || !slice.title ||\n slice.w < SLICE_MIN_WIDTH_FOR_TEXT_PX) {\n continue;\n }\n\n const title = cropText(slice.title, charWidth, slice.w);\n const rectXCenter = slice.x + slice.w / 2;\n const y = padding + slice.depth * (sliceHeight + rowSpacing);\n const yDiv = slice.subTitle ? 3 : 2;\n const yMidPoint = Math.floor(y + sliceHeight / yDiv) - 0.5;\n ctx.fillText(title, rectXCenter, yMidPoint);\n }\n\n // Fourth pass, draw the subtitles (e.g., thread name for sched slices).\n ctx.fillStyle = 'rgba(255, 255, 255, 0.6)';\n ctx.font = '10px Roboto Condensed';\n for (const slice of vizSlices) {\n if (slice.w < SLICE_MIN_WIDTH_FOR_TEXT_PX || !slice.subTitle ||\n (slice.flags & SLICE_FLAGS_INSTANT)) {\n continue;\n }\n const rectXCenter = slice.x + slice.w / 2;\n const subTitle = cropText(slice.subTitle, charWidth, slice.w);\n const y = padding + slice.depth * (sliceHeight + rowSpacing);\n const yMidPoint = Math.ceil(y + sliceHeight * 2 / 3) + 1.5;\n ctx.fillText(subTitle, rectXCenter, yMidPoint);\n }\n\n // Draw a thicker border around the selected slice (or chevron).\n if (selSlice !== undefined) {\n const color = selSlice.color;\n const y = padding + selSlice.depth * (sliceHeight + rowSpacing);\n ctx.strokeStyle = `hsl(${color.h}, ${color.s}%, 30%)`;\n ctx.beginPath();\n const THICKNESS = 3;\n ctx.lineWidth = THICKNESS;\n ctx.strokeRect(\n selSlice.x, y - THICKNESS / 2, selSlice.w, sliceHeight + THICKNESS);\n ctx.closePath();\n }\n\n // TODO(hjd): Remove this.\n // The only thing this does is drawing the sched latency arrow. We should\n // have some abstraction for that arrow (ideally the same we'd use for\n // flows).\n this.drawSchedLatencyArrow(ctx, selSlice);\n\n // If a slice is hovered, draw the tooltip.\n const tooltip = this.hoverTooltip;\n if (this.hoveredSlice !== undefined && tooltip.length > 0 &&\n this.hoverPos !== undefined) {\n if (tooltip.length === 1) {\n this.drawTrackHoverTooltip(ctx, this.hoverPos, tooltip[0]);\n } else {\n this.drawTrackHoverTooltip(ctx, this.hoverPos, tooltip[0], tooltip[1]);\n }\n } // if (howSlice)\n }\n\n // This method figures out if the visible window is outside the bounds of\n // the cached data and if so issues new queries (i.e. sorta subsumes the\n // onBoundsChange).\n async maybeRequestData() {\n // Important: this method is async and is invoked on every frame. Care\n // must be taken to avoid piling up queries on every frame, hence the FSM.\n if (this.sqlState === 'UNINITIALIZED') {\n this.sqlState = 'INITIALIZING';\n\n // TODO(hjd): we need an onDestroy. Right now if you contract and expand a\n // track group this will crash, because the 2nd time we create the track\n // we end up re-issuing the CREATE VIEW table_name.\n // Right now this DROP VIEW is a hack, because it: (1) assumes that\n // tableName is a VIEW and not a TABLE; (2) assume the impl track didn't\n // create any other TABLE/VIEW (which happens to be true right now but\n // might now be in future).\n await this.engine.query(`DROP VIEW IF EXISTS ${this.tableName}`);\n await this.initSqlTable(this.tableName);\n\n const queryRes = await this.engine.query(`select\n ifnull(max(dur), 0) as maxDur, count(1) as rowCount\n from ${this.tableName}`);\n const row = queryRes.firstRow({maxDur: NUM, rowCount: NUM});\n this.maxDurNs = row.maxDur;\n this.sqlState = 'QUERY_DONE';\n } else if (\n this.sqlState === 'INITIALIZING' || this.sqlState === 'QUERY_PENDING') {\n return;\n }\n\n const resolutionNs = toNs(globals.getCurResolution());\n const vizTime = globals.frontendLocalState.visibleWindowTime;\n\n const startNs = toNs(vizTime.start);\n const endNs = toNs(vizTime.end);\n\n // TODO(hjd): figure out / centralize the resolution steps.\n // Will handle this at the same time as cacheing.\n const bucketNs = resolutionNs;\n\n if (startNs >= this.slicesStartNs && endNs <= this.slicesEndNs &&\n bucketNs === this.slicesBucketNs) {\n return; // We have the data already, no need to re-query\n }\n\n this.sqlState = 'QUERY_PENDING';\n const queryTsq = `(ts + ${bucketNs / 2}) / ${bucketNs} * ${bucketNs}`;\n\n const extraCols = this.extraSqlColumns.join(',');\n let depthCol = 'depth';\n let maybeGroupByDepth = 'depth, ';\n const layout = this.sliceLayout;\n const isFlat = (layout.maxDepth - layout.minDepth) <= 1;\n // maxDepth === minDepth only makes sense if track is empty which on the\n // one hand isn't very useful (and so maybe should be an error) on the\n // other hand I can see it happening if someone does:\n // minDepth = min(slices.depth); maxDepth = max(slices.depth);\n // and slices is empty, so we treat that as flat.\n if (isFlat) {\n depthCol = `${this.sliceLayout.minDepth} as depth`;\n maybeGroupByDepth = '';\n }\n\n // TODO(hjd): Re-reason and improve this query:\n // - Materialize the unfinished slices one off.\n // - Avoid the union if we know we don't have any -1 slices.\n // - Maybe we don't need the union at all and can deal in TS?\n const queryRes = await this.engine.query(`\n with q1 as (\n select\n ${queryTsq} as tsq,\n ts,\n max(dur) as dur,\n id,\n ${depthCol}\n ${extraCols ? ',' + extraCols : ''}\n from ${this.tableName}\n where\n ts >= ${startNs - this.maxDurNs /* - durNs */} and\n ts <= ${endNs /* + durNs */}\n group by ${maybeGroupByDepth} tsq\n order by tsq),\n q2 as (\n select\n ${queryTsq} as tsq,\n ts,\n -1 as dur,\n id,\n ${depthCol}\n ${extraCols ? ',' + extraCols : ''}\n from ${this.tableName}\n where dur = -1\n group by ${maybeGroupByDepth} tsq\n )\n select min(dur) as _unused, * from\n (select * from q1 union all select * from q2)\n group by ${maybeGroupByDepth} tsq\n order by tsq\n `);\n this.convertQueryResultToSlices(queryRes, startNs, endNs, bucketNs);\n this.sqlState = 'QUERY_DONE';\n globals.rafScheduler.scheduleRedraw();\n }\n\n // Here convert each row to a Slice. We do what we can do generically\n // in the base class, and delegate the rest to the impl via that rowToSlice()\n // abstract call.\n convertQueryResultToSlices(\n queryRes: QueryResult, startNs: number, endNs: number, bucketNs: number) {\n const slices = new Array<CastInternal<T['slice']>>(queryRes.numRows());\n const it = queryRes.iter(this.getRowSpec());\n\n let maxDataDepth = this.maxDataDepth;\n this.slicesStartNs = startNs;\n this.slicesEndNs = endNs;\n this.slicesBucketNs = bucketNs;\n for (let i = 0; it.valid(); it.next(), ++i) {\n maxDataDepth = Math.max(maxDataDepth, it.depth);\n\n // Construct the base slice. The Impl will construct and return the full\n // derived T[\"slice\"] (e.g. CpuSlice) in the rowToSlice() method.\n slices[i] = this.rowToSliceInternal(it);\n }\n this.maxDataDepth = maxDataDepth;\n this.slices = slices;\n }\n\n private rowToSliceInternal(row: T['row']): CastInternal<T['slice']> {\n const slice = this.rowToSlice(row) as CastInternal<T['slice']>;\n slice.x = -1;\n slice.w = -1;\n return slice;\n }\n\n rowToSlice(row: T['row']): T['slice'] {\n const startNsQ = row.tsq;\n const startNs = row.ts;\n let flags = 0;\n let durNs: number;\n if (row.dur === -1) {\n durNs = toNs(globals.state.traceTime.endSec) - startNs;\n flags |= SLICE_FLAGS_INCOMPLETE;\n } else {\n flags |= (row.dur === 0) ? SLICE_FLAGS_INSTANT : 0;\n durNs = row.dur;\n }\n const endNs = startNs + durNs;\n const bucketNs = this.slicesBucketNs;\n let endNsQ = Math.floor((endNs + bucketNs / 2 - 1) / bucketNs) * bucketNs;\n endNsQ = Math.max(endNsQ, startNsQ + bucketNs);\n\n return {\n id: row.id,\n startS: fromNs(startNsQ),\n durationS: fromNs(endNsQ - startNsQ),\n flags,\n depth: row.depth,\n title: '',\n subTitle: '',\n\n // The derived class doesn't need to initialize these. They are\n // rewritten on every renderCanvas() call. We just need to initialize\n // them to something.\n baseColor: DEFAULT_SLICE_COLOR,\n color: DEFAULT_SLICE_COLOR,\n };\n }\n\n private findSlice({x, y}: {x: number, y: number}): undefined|Slice {\n const trackHeight = this.computedTrackHeight;\n const sliceHeight = this.computedSliceHeight;\n const padding = this.sliceLayout.padding;\n const rowSpacing = this.computedRowSpacing;\n\n // Need at least a draw pass to resolve the slice layout.\n if (sliceHeight === 0) {\n return undefined;\n }\n\n if (y >= padding && y <= trackHeight - padding) {\n const depth = Math.floor((y - padding) / (sliceHeight + rowSpacing));\n for (const slice of this.slices) {\n if (slice.depth === depth && slice.x <= x && x <= slice.x + slice.w) {\n return slice;\n }\n }\n }\n\n return undefined;\n }\n\n onMouseMove(position: {x: number, y: number}): void {\n this.hoverPos = position;\n this.updateHoveredSlice(this.findSlice(position));\n }\n\n onMouseOut(): void {\n this.updateHoveredSlice(undefined);\n }\n\n private updateHoveredSlice(slice?: T['slice']): void {\n const lastHoveredSlice = this.hoveredSlice;\n this.hoveredSlice = slice;\n\n // Only notify the Impl if the hovered slice changes:\n if (slice === lastHoveredSlice) return;\n\n if (this.hoveredSlice === undefined) {\n globals.dispatch(Actions.setHighlightedSliceId({sliceId: -1}));\n this.onSliceOut({slice: assertExists(lastHoveredSlice)});\n this.hoverTooltip = [];\n this.hoverPos = undefined;\n } else {\n const args: OnSliceOverArgs<T['slice']> = {slice: this.hoveredSlice};\n globals.dispatch(\n Actions.setHighlightedSliceId({sliceId: this.hoveredSlice.id}));\n this.onSliceOver(args);\n this.hoverTooltip = args.tooltip || [];\n }\n }\n\n onMouseClick(position: {x: number, y: number}): boolean {\n const slice = this.findSlice(position);\n if (slice === undefined) {\n return false;\n }\n const args: OnSliceClickArgs<T['slice']> = {slice};\n this.onSliceClick(args);\n return true;\n }\n\n private getVisibleSlicesInternal(startS: number, endS: number):\n Array<CastInternal<T['slice']>> {\n return this.getVisibleSlices(startS, endS);\n }\n\n getVisibleSlices(startS: number, endS: number):\n Array<CastInternal<T['slice']>> {\n let startIdx = -1;\n let endIdx = -1;\n let i = 0;\n\n // TODO(hjd): binary search.\n for (const slice of this.slices) {\n if (startIdx < 0 && slice.startS + slice.durationS >= startS) {\n startIdx = i;\n }\n if (slice.startS <= endS) {\n endIdx = i + 1;\n } else if (slice.startS > endS) {\n endIdx = i;\n break;\n }\n i++;\n }\n return this.slices.slice(startIdx, endIdx);\n }\n\n private updateSliceAndTrackHeight() {\n const lay = this.sliceLayout;\n\n const rows =\n Math.min(Math.max(this.maxDataDepth + 1, lay.minDepth), lay.maxDepth);\n\n // Compute the track height.\n let trackHeight;\n if (lay.heightMode === 'FIXED') {\n trackHeight = lay.fixedHeight;\n } else {\n trackHeight = 2 * lay.padding + rows * (lay.sliceHeight + lay.rowSpacing);\n }\n\n // Compute the slice height.\n let sliceHeight: number;\n let rowSpacing: number = lay.rowSpacing;\n if (lay.heightMode === 'FIXED') {\n const rowHeight = (trackHeight - 2 * lay.padding) / rows;\n sliceHeight = Math.floor(Math.max(rowHeight - lay.rowSpacing, 0.5));\n rowSpacing = Math.max(lay.rowSpacing, rowHeight - sliceHeight);\n rowSpacing = Math.floor(rowSpacing * 2) / 2;\n } else {\n sliceHeight = lay.sliceHeight;\n }\n this.computedSliceHeight = sliceHeight;\n this.computedTrackHeight = trackHeight;\n this.computedRowSpacing = rowSpacing;\n }\n\n private drawChevron(\n ctx: CanvasRenderingContext2D, x: number, y: number, h: number) {\n // Draw an upward facing chevrons, in order: A, B, C, D, and back to A.\n // . (x, y)\n // A\n // ###\n // ##C##\n // ## ##\n // D B\n // . (x + CHEVRON_WIDTH_PX, y + h)\n const HALF_CHEVRON_WIDTH_PX = CHEVRON_WIDTH_PX / 2;\n const midX = x + HALF_CHEVRON_WIDTH_PX;\n ctx.beginPath();\n ctx.moveTo(midX, y); // A.\n ctx.lineTo(x + CHEVRON_WIDTH_PX, y + h); // B.\n ctx.lineTo(midX, y + h - HALF_CHEVRON_WIDTH_PX); // C.\n ctx.lineTo(x, y + h); // D.\n ctx.lineTo(midX, y); // Back to A.\n ctx.closePath();\n ctx.fill();\n }\n\n // This is a good default implemenation for highlighting slices. By default\n // prepareSlices() calls this. However, if the XxxSliceTrack impl overrides\n // prepareSlices() this gives them a chance to call the highlighting witout\n // having to reimplement it.\n protected highlightHovererdAndSameTitle(slices: Slice[]) {\n for (const slice of slices) {\n const isHovering = globals.state.highlightedSliceId === slice.id ||\n (this.hoveredSlice && this.hoveredSlice.title === slice.title);\n if (isHovering) {\n slice.color = {\n c: slice.baseColor.c,\n h: slice.baseColor.h,\n s: slice.baseColor.s,\n l: 30\n };\n } else {\n slice.color = slice.baseColor;\n }\n }\n }\n\n getHeight(): number {\n this.updateSliceAndTrackHeight();\n return this.computedTrackHeight;\n }\n\n getSliceRect(_tStart: number, _tEnd: number, _depth: number): SliceRect\n |undefined {\n // TODO(hjd): Implement this as part of updating flow events.\n return undefined;\n }\n}\n\n// This is the argument passed to onSliceOver(args).\n// This is really a workaround for the fact that TypeScript doesn't allow\n// inner types within a class (whether the class is templated or not).\nexport interface OnSliceOverArgs<S extends Slice> {\n // Input args (BaseSliceTrack -> Impl):\n slice: S; // The slice being hovered.\n\n // Output args (Impl -> BaseSliceTrack):\n tooltip?: string[]; // One entry per row, up to a max of 2.\n}\n\nexport interface OnSliceOutArgs<S extends Slice> {\n // Input args (BaseSliceTrack -> Impl):\n slice: S; // The slice which is not hovered anymore.\n}\n\nexport interface OnSliceClickArgs<S extends Slice> {\n // Input args (BaseSliceTrack -> Impl):\n slice: S; // The slice which is clicked.\n}\n","// Copyright (C) 2021 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {Actions} from '../common/actions';\nimport {\n Color,\n hslForSlice,\n} from '../common/colorizer';\nimport {STR_NULL} from '../common/query_result';\n\nimport {\n BASE_SLICE_ROW,\n BaseSliceTrack,\n BaseSliceTrackTypes,\n OnSliceClickArgs,\n OnSliceOverArgs,\n} from './base_slice_track';\nimport {globals} from './globals';\nimport {NewTrackArgs} from './track';\n\nexport const NAMED_SLICE_ROW = {\n // Base columns (tsq, ts, dur, id, depth).\n ...BASE_SLICE_ROW,\n\n // Impl-specific columns.\n name: STR_NULL,\n};\nexport type NamedSliceRow = typeof NAMED_SLICE_ROW;\n\nexport interface NamedSliceTrackTypes extends BaseSliceTrackTypes {\n row: NamedSliceRow;\n}\n\nexport abstract class NamedSliceTrack<\n T extends NamedSliceTrackTypes = NamedSliceTrackTypes> extends\n BaseSliceTrack<T> {\n constructor(args: NewTrackArgs) {\n super(args);\n }\n\n // This is used by the base class to call iter().\n getRowSpec(): T['row'] {\n return NAMED_SLICE_ROW;\n }\n\n // Converts a SQL result row to an \"Impl\" Slice.\n rowToSlice(row: T['row']): T['slice'] {\n const baseSlice = super.rowToSlice(row);\n // Ignore PIDs or numeric arguments when hashing.\n const name = row.name || '';\n const nameForHashing = name.replace(/\\s?\\d+/g, '');\n const hsl = hslForSlice(nameForHashing, /*isSelected=*/ false);\n // We cache the color so we hash only once per query.\n const baseColor: Color = {c: '', h: hsl[0], s: hsl[1], l: hsl[2]};\n return {...baseSlice, title: name, baseColor};\n }\n\n onSliceOver(args: OnSliceOverArgs<T['slice']>) {\n const name = args.slice.title;\n args.tooltip = [name];\n }\n\n onSliceClick(args: OnSliceClickArgs<T['slice']>) {\n globals.makeSelection(Actions.selectChromeSlice({\n id: args.slice.id,\n trackId: this.trackId,\n\n // |table| here can be either 'slice' or 'annotation'. The\n // AnnotationSliceTrack overrides the onSliceClick and sets this to\n // 'annotation'\n table: 'slice',\n }));\n }\n}\n","// Copyright (C) 2021 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {\n NamedSliceTrack,\n NamedSliceTrackTypes\n} from '../../frontend/named_slice_track';\nimport {NewTrackArgs} from '../../frontend/track';\nimport {trackRegistry} from '../../frontend/track_registry';\n\nexport interface GenericSliceTrackConfig {\n sqlTrackId: number;\n}\n\nexport interface GenericSliceTrackTypes extends NamedSliceTrackTypes {\n config: GenericSliceTrackConfig;\n}\n\nexport class GenericSliceTrack extends NamedSliceTrack<GenericSliceTrackTypes> {\n static readonly kind = 'GenericSliceTrack';\n static create(args: NewTrackArgs) {\n return new GenericSliceTrack(args);\n }\n\n constructor(args: NewTrackArgs) {\n super(args);\n }\n\n async initSqlTable(tableName: string): Promise<void> {\n const sql = `create view ${tableName} as\n select ts, dur, id, depth, ifnull(name, '') as name\n from slice where track_id = ${this.config.sqlTrackId}`;\n await this.engine.query(sql);\n }\n}\n\ntrackRegistry.register(GenericSliceTrack);\n","// Copyright (C) 2019 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {NUM, STR} from '../../common/query_result';\nimport {\n TrackController,\n trackControllerRegistry\n} from '../../controller/track_controller';\n\nimport {\n Config,\n Data,\n HEAP_PROFILE_TRACK_KIND,\n} from './common';\n\nclass HeapProfileTrackController extends TrackController<Config, Data> {\n static readonly kind = HEAP_PROFILE_TRACK_KIND;\n async onBoundsChange(start: number, end: number, resolution: number):\n Promise<Data> {\n if (this.config.upid === undefined) {\n return {\n start,\n end,\n resolution,\n length: 0,\n tsStarts: new Float64Array(),\n types: new Array<string>()\n };\n }\n const queryRes = await this.query(`\n select * from\n (select distinct(ts) as ts, 'native' as type from heap_profile_allocation\n where upid = ${this.config.upid}\n union\n select distinct(graph_sample_ts) as ts, 'graph' as type from\n heap_graph_object\n where upid = ${this.config.upid}) order by ts`);\n const numRows = queryRes.numRows();\n const data: Data = {\n start,\n end,\n resolution,\n length: numRows,\n tsStarts: new Float64Array(numRows),\n types: new Array<string>(numRows),\n };\n\n const it = queryRes.iter({ts: NUM, type: STR});\n for (let row = 0; it.valid(); it.next(), row++) {\n data.tsStarts[row] = it.ts;\n data.types[row] = it.type;\n }\n return data;\n }\n}\n\ntrackControllerRegistry.register(HeapProfileTrackController);\n","// Copyright (C) 2018 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {searchSegment} from '../base/binary_search';\nimport {cropText} from '../common/canvas_utils';\n\nimport {CallsiteInfo} from '../common/state';\n\ninterface Node {\n width: number;\n x: number;\n nextXForChildren: number;\n size: number;\n}\n\ninterface CallsiteInfoWidth {\n callsite: CallsiteInfo;\n width: number;\n}\n\n// Height of one 'row' on the flame chart including 1px of whitespace\n// below the box.\nconst NODE_HEIGHT = 18;\n\nexport const FLAMEGRAPH_HOVERED_COLOR = 'hsl(224, 45%, 55%)';\n\nexport function findRootSize(data: CallsiteInfo[]) {\n let totalSize = 0;\n let i = 0;\n while (i < data.length && data[i].depth === 0) {\n totalSize += data[i].totalSize;\n i++;\n }\n return totalSize;\n}\n\nexport interface NodeRendering {\n totalSize?: string;\n selfSize?: string;\n}\n\nexport class Flamegraph {\n private nodeRendering: NodeRendering = {};\n private flamegraphData: CallsiteInfo[];\n private highlightSomeNodes = false;\n private maxDepth = -1;\n private totalSize = -1;\n // Initialised on first draw() call\n private labelCharWidth = 0;\n private labelFontStyle = '12px Roboto Mono';\n private rolloverFontStyle = '12px Roboto Condensed';\n // Key for the map is depth followed by x coordinate - `depth;x`\n private graphData: Map<string, CallsiteInfoWidth> = new Map();\n private xStartsPerDepth: Map<number, number[]> = new Map();\n\n private hoveredX = -1;\n private hoveredY = -1;\n private hoveredCallsite?: CallsiteInfo;\n private clickedCallsite?: CallsiteInfo;\n\n private startingY = 0;\n\n constructor(flamegraphData: CallsiteInfo[]) {\n this.flamegraphData = flamegraphData;\n this.findMaxDepth();\n }\n\n private findMaxDepth() {\n this.maxDepth = Math.max(...this.flamegraphData.map(value => value.depth));\n }\n\n // Instead of highlighting the interesting nodes, we actually want to\n // de-emphasize the non-highlighted nodes. Returns true if there\n // are any highlighted nodes in the flamegraph.\n private highlightingExists() {\n this.highlightSomeNodes = this.flamegraphData.some((e) => e.highlighted);\n }\n\n generateColor(name: string, isGreyedOut = false, highlighted: boolean):\n string {\n if (isGreyedOut) {\n return '#d9d9d9';\n }\n if (name === 'unknown' || name === 'root') {\n return '#c0c0c0';\n }\n let x = 0;\n for (let i = 0; i < name.length; i += 1) {\n x += name.charCodeAt(i) % 64;\n }\n x = x % 360;\n let l = '76';\n // Make non-highlighted node lighter.\n if (this.highlightSomeNodes && !highlighted) {\n l = '90';\n }\n return `hsl(${x}deg, 45%, ${l}%)`;\n }\n\n /**\n * Caller will have to call draw method after updating data to have updated\n * graph.\n */\n updateDataIfChanged(\n nodeRendering: NodeRendering, flamegraphData: CallsiteInfo[],\n clickedCallsite?: CallsiteInfo) {\n this.nodeRendering = nodeRendering;\n this.clickedCallsite = clickedCallsite;\n if (this.flamegraphData === flamegraphData) {\n return;\n }\n this.flamegraphData = flamegraphData;\n this.clickedCallsite = clickedCallsite;\n this.findMaxDepth();\n this.highlightingExists();\n // Finding total size of roots.\n this.totalSize = findRootSize(flamegraphData);\n }\n\n draw(\n ctx: CanvasRenderingContext2D, width: number, height: number, x = 0,\n y = 0, unit = 'B') {\n\n if (this.flamegraphData === undefined) {\n return;\n }\n\n ctx.font = this.labelFontStyle;\n ctx.textBaseline = 'middle';\n if (this.labelCharWidth === 0) {\n this.labelCharWidth = ctx.measureText('_').width;\n }\n\n this.startingY = y;\n\n // For each node, we use this map to get information about it's parent\n // (total size of it, width and where it starts in graph) so we can\n // calculate it's own position in graph.\n const nodesMap = new Map<number, Node>();\n let currentY = y;\n nodesMap.set(-1, {width, nextXForChildren: x, size: this.totalSize, x});\n\n // Initialize data needed for click/hover behavior.\n this.graphData = new Map();\n this.xStartsPerDepth = new Map();\n\n // Draw root node.\n ctx.fillStyle = this.generateColor('root', false, false);\n ctx.fillRect(x, currentY, width, NODE_HEIGHT - 1);\n const text = cropText(\n `root: ${\n this.displaySize(\n this.totalSize, unit, unit === 'B' ? 1024 : 1000)}`,\n this.labelCharWidth,\n width - 2);\n ctx.fillStyle = 'black';\n ctx.fillText(text, x + 5, currentY + (NODE_HEIGHT - 1) / 2);\n currentY += NODE_HEIGHT;\n\n // Set style for borders.\n ctx.strokeStyle = 'white';\n ctx.lineWidth = 0.5;\n\n for (let i = 0; i < this.flamegraphData.length; i++) {\n if (currentY > height) {\n break;\n }\n const value = this.flamegraphData[i];\n const parentNode = nodesMap.get(value.parentId);\n if (parentNode === undefined) {\n continue;\n }\n\n const isClicked = this.clickedCallsite !== undefined;\n const isFullWidth =\n isClicked && value.depth <= this.clickedCallsite!.depth;\n const isGreyedOut =\n isClicked && value.depth < this.clickedCallsite!.depth;\n\n const parent = value.parentId;\n const parentSize = parent === -1 ? this.totalSize : parentNode.size;\n // Calculate node's width based on its proportion in parent.\n const width =\n (isFullWidth ? 1 : value.totalSize / parentSize) * parentNode.width;\n\n const currentX = parentNode.nextXForChildren;\n currentY = y + NODE_HEIGHT * (value.depth + 1);\n\n // Draw node.\n const name = this.getCallsiteName(value);\n ctx.fillStyle = this.generateColor(name, isGreyedOut, value.highlighted);\n ctx.fillRect(currentX, currentY, width, NODE_HEIGHT - 1);\n\n // Set current node's data in map for children to use.\n nodesMap.set(value.id, {\n width,\n nextXForChildren: currentX,\n size: value.totalSize,\n x: currentX\n });\n // Update next x coordinate in parent.\n nodesMap.set(value.parentId, {\n width: parentNode.width,\n nextXForChildren: currentX + width,\n size: parentNode.size,\n x: parentNode.x\n });\n\n // Draw name.\n const labelPaddingPx = 5;\n const maxLabelWidth = width - labelPaddingPx * 2;\n let text = cropText(name, this.labelCharWidth, maxLabelWidth);\n // If cropped text and the original text are within 20% we keep the\n // original text and just squish it a bit.\n if (text.length * 1.2 > name.length) {\n text = name;\n }\n ctx.fillStyle = 'black';\n ctx.fillText(\n text,\n currentX + labelPaddingPx,\n currentY + (NODE_HEIGHT - 1) / 2,\n maxLabelWidth);\n\n // Draw border on the right of node.\n ctx.beginPath();\n ctx.moveTo(currentX + width, currentY);\n ctx.lineTo(currentX + width, currentY + NODE_HEIGHT);\n ctx.stroke();\n\n // Add this node for recognizing in click/hover.\n // Map graphData contains one callsite which is on that depth and X\n // start. Map xStartsPerDepth for each depth contains all X start\n // coordinates that callsites on that level have.\n this.graphData.set(\n `${value.depth};${currentX}`, {callsite: value, width});\n const xStarts = this.xStartsPerDepth.get(value.depth);\n if (xStarts === undefined) {\n this.xStartsPerDepth.set(value.depth, [currentX]);\n } else {\n xStarts.push(currentX);\n }\n }\n\n // Draw the tooltip.\n if (this.hoveredX > -1 && this.hoveredY > -1 && this.hoveredCallsite) {\n // Must set these before measureText below.\n ctx.font = this.rolloverFontStyle;\n ctx.textBaseline = 'top';\n\n // Size in px of the border around the text and the edge of the rollover\n // background.\n const paddingPx = 8;\n // Size in px of the x and y offset between the mouse and the top left\n // corner of the rollover box.\n const offsetPx = 4;\n\n const lines: string[] = [];\n\n let textWidth = this.addToTooltip(\n this.getCallsiteName(this.hoveredCallsite),\n width - paddingPx,\n ctx,\n lines);\n if (this.hoveredCallsite.location != null) {\n textWidth = Math.max(\n textWidth,\n this.addToTooltip(\n this.hoveredCallsite.location, width, ctx, lines));\n }\n textWidth = Math.max(\n textWidth,\n this.addToTooltip(this.hoveredCallsite.mapping, width, ctx, lines));\n\n if (this.nodeRendering.totalSize !== undefined) {\n const percentage =\n this.hoveredCallsite.totalSize / this.totalSize * 100;\n const totalSizeText = `${this.nodeRendering.totalSize}: ${\n this.displaySize(\n this.hoveredCallsite.totalSize,\n unit,\n unit === 'B' ? 1024 : 1000)} (${percentage.toFixed(2)}%)`;\n textWidth = Math.max(\n textWidth, this.addToTooltip(totalSizeText, width, ctx, lines));\n }\n\n if (this.nodeRendering.selfSize !== undefined &&\n this.hoveredCallsite.selfSize > 0) {\n const selfPercentage =\n this.hoveredCallsite.selfSize / this.totalSize * 100;\n const selfSizeText = `${this.nodeRendering.selfSize}: ${\n this.displaySize(\n this.hoveredCallsite.selfSize,\n unit,\n unit === 'B' ? 1024 : 1000)} (${selfPercentage.toFixed(2)}%)`;\n textWidth = Math.max(\n textWidth, this.addToTooltip(selfSizeText, width, ctx, lines));\n }\n\n // Compute a line height as the bounding box height + 50%:\n const heightSample = ctx.measureText(\n 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ');\n const lineHeight =\n Math.round(heightSample.actualBoundingBoxDescent * 1.5);\n\n const rectWidth = textWidth + 2 * paddingPx;\n const rectHeight = lineHeight * lines.length + 2 * paddingPx;\n\n let rectXStart = this.hoveredX + offsetPx;\n let rectYStart = this.hoveredY + offsetPx;\n\n if (rectXStart + rectWidth > width) {\n rectXStart = width - rectWidth;\n }\n\n if (rectYStart + rectHeight > height) {\n rectYStart = height - rectHeight;\n }\n\n ctx.fillStyle = 'rgba(255, 255, 255, 0.9)';\n ctx.fillRect(rectXStart, rectYStart, rectWidth, rectHeight);\n ctx.fillStyle = 'hsl(200, 50%, 40%)';\n ctx.textAlign = 'left';\n for (let i = 0; i < lines.length; i++) {\n const line = lines[i];\n ctx.fillText(\n line,\n rectXStart + paddingPx,\n rectYStart + paddingPx + i * lineHeight);\n }\n }\n }\n\n private addToTooltip(\n text: string, width: number, ctx: CanvasRenderingContext2D,\n lines: string[]): number {\n const lineSplitter: LineSplitter =\n splitIfTooBig(text, width, ctx.measureText(text).width);\n lines.push(...lineSplitter.lines);\n return lineSplitter.lineWidth;\n }\n\n private getCallsiteName(value: CallsiteInfo): string {\n return value.name === undefined || value.name === '' ? 'unknown' :\n value.name;\n }\n\n private displaySize(totalSize: number, unit: string, step = 1024): string {\n if (unit === '') return totalSize.toLocaleString();\n if (totalSize === 0) return `0 ${unit}`;\n const units = [\n ['', 1],\n ['K', step],\n ['M', Math.pow(step, 2)],\n ['G', Math.pow(step, 3)]\n ];\n let unitsIndex = Math.trunc(Math.log(totalSize) / Math.log(step));\n unitsIndex = unitsIndex > units.length - 1 ? units.length - 1 : unitsIndex;\n const result = totalSize / +units[unitsIndex][1];\n const resultString = totalSize % +units[unitsIndex][1] === 0 ?\n result.toString() :\n result.toFixed(2);\n return `${resultString} ${units[unitsIndex][0]}${unit}`;\n }\n\n onMouseMove({x, y}: {x: number, y: number}) {\n this.hoveredX = x;\n this.hoveredY = y;\n this.hoveredCallsite = this.findSelectedCallsite(x, y);\n const isCallsiteSelected = this.hoveredCallsite !== undefined;\n if (!isCallsiteSelected) {\n this.onMouseOut();\n }\n return isCallsiteSelected;\n }\n\n onMouseOut() {\n this.hoveredX = -1;\n this.hoveredY = -1;\n this.hoveredCallsite = undefined;\n }\n\n onMouseClick({x, y}: {x: number, y: number}): CallsiteInfo|undefined {\n const clickedCallsite = this.findSelectedCallsite(x, y);\n // TODO(b/148596659): Allow to expand [merged] callsites. Currently,\n // this expands to the biggest of the nodes that were merged, which\n // is confusing, so we disallow clicking on them.\n if (clickedCallsite === undefined || clickedCallsite.merged) {\n return undefined;\n }\n return clickedCallsite;\n }\n\n private findSelectedCallsite(x: number, y: number): CallsiteInfo|undefined {\n const depth =\n Math.trunc((y - this.startingY) / NODE_HEIGHT) - 1; // at 0 is root\n if (depth >= 0 && this.xStartsPerDepth.has(depth)) {\n const startX = this.searchSmallest(this.xStartsPerDepth.get(depth)!, x);\n const result = this.graphData.get(`${depth};${startX}`);\n if (result !== undefined) {\n const width = result.width;\n return startX + width >= x ? result.callsite : undefined;\n }\n }\n return undefined;\n }\n\n searchSmallest(haystack: number[], needle: number): number {\n haystack = haystack.sort((n1, n2) => n1 - n2);\n const [left, ] = searchSegment(haystack, needle);\n return left === -1 ? -1 : haystack[left];\n }\n\n getHeight(): number {\n return this.flamegraphData.length === 0 ? 0 :\n (this.maxDepth + 2) * NODE_HEIGHT;\n }\n}\n\nexport interface LineSplitter {\n lineWidth: number;\n lines: string[];\n}\n\nexport function splitIfTooBig(\n line: string, width: number, lineWidth: number): LineSplitter {\n if (line === '') return {lineWidth, lines: []};\n const lines: string[] = [];\n const charWidth = lineWidth / line.length;\n const maxWidth = width - 32;\n const maxLineLen = Math.trunc(maxWidth / charWidth);\n while (line.length > 0) {\n lines.push(line.slice(0, maxLineLen));\n line = line.slice(maxLineLen);\n }\n lineWidth = Math.min(maxLineLen * charWidth, lineWidth);\n return {lineWidth, lines};\n}\n","// Copyright (C) 2019 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {searchSegment} from '../../base/binary_search';\nimport {Actions} from '../../common/actions';\nimport {fromNs, toNs} from '../../common/time';\nimport {FLAMEGRAPH_HOVERED_COLOR} from '../../frontend/flamegraph';\nimport {globals} from '../../frontend/globals';\nimport {TimeScale} from '../../frontend/time_scale';\nimport {NewTrackArgs, Track} from '../../frontend/track';\nimport {trackRegistry} from '../../frontend/track_registry';\n\nimport {Config, Data, HEAP_PROFILE_TRACK_KIND} from './common';\n\nconst HEAP_PROFILE_COLOR = 'hsl(224, 45%, 70%)';\n\n// 0.5 Makes the horizontal lines sharp.\nconst MARGIN_TOP = 4.5;\nconst RECT_HEIGHT = 30.5;\n\nclass HeapProfileTrack extends Track<Config, Data> {\n static readonly kind = HEAP_PROFILE_TRACK_KIND;\n static create(args: NewTrackArgs): HeapProfileTrack {\n return new HeapProfileTrack(args);\n }\n\n private centerY = this.getHeight() / 2;\n private markerWidth = (this.getHeight() - MARGIN_TOP) / 2;\n private hoveredTs: number|undefined = undefined;\n\n constructor(args: NewTrackArgs) {\n super(args);\n }\n\n getHeight() {\n return MARGIN_TOP + RECT_HEIGHT - 1;\n }\n\n renderCanvas(ctx: CanvasRenderingContext2D): void {\n const {\n timeScale,\n } = globals.frontendLocalState;\n const data = this.data();\n\n if (data === undefined) return;\n\n for (let i = 0; i < data.tsStarts.length; i++) {\n const centerX = data.tsStarts[i];\n const selection = globals.state.currentSelection;\n const isHovered = this.hoveredTs === centerX;\n const isSelected = selection !== null &&\n selection.kind === 'HEAP_PROFILE' && selection.ts === centerX;\n const strokeWidth = isSelected ? 3 : 0;\n this.drawMarker(\n ctx,\n timeScale.timeToPx(fromNs(centerX)),\n this.centerY,\n isHovered,\n strokeWidth);\n }\n }\n\n drawMarker(\n ctx: CanvasRenderingContext2D, x: number, y: number, isHovered: boolean,\n strokeWidth: number): void {\n ctx.beginPath();\n ctx.moveTo(x, y - this.markerWidth);\n ctx.lineTo(x - this.markerWidth, y);\n ctx.lineTo(x, y + this.markerWidth);\n ctx.lineTo(x + this.markerWidth, y);\n ctx.lineTo(x, y - this.markerWidth);\n ctx.closePath();\n ctx.fillStyle = isHovered ? FLAMEGRAPH_HOVERED_COLOR : HEAP_PROFILE_COLOR;\n ctx.fill();\n if (strokeWidth > 0) {\n ctx.strokeStyle = FLAMEGRAPH_HOVERED_COLOR;\n ctx.lineWidth = strokeWidth;\n ctx.stroke();\n }\n }\n\n onMouseMove({x, y}: {x: number, y: number}) {\n const data = this.data();\n if (data === undefined) return;\n const {timeScale} = globals.frontendLocalState;\n const time = toNs(timeScale.pxToTime(x));\n const [left, right] = searchSegment(data.tsStarts, time);\n const index = this.findTimestampIndex(left, timeScale, data, x, y, right);\n this.hoveredTs = index === -1 ? undefined : data.tsStarts[index];\n }\n\n onMouseOut() {\n this.hoveredTs = undefined;\n }\n\n onMouseClick({x, y}: {x: number, y: number}) {\n const data = this.data();\n if (data === undefined) return false;\n const {timeScale} = globals.frontendLocalState;\n\n const time = toNs(timeScale.pxToTime(x));\n const [left, right] = searchSegment(data.tsStarts, time);\n\n const index = this.findTimestampIndex(left, timeScale, data, x, y, right);\n\n if (index !== -1) {\n const ts = data.tsStarts[index];\n const type = data.types[index];\n globals.makeSelection(Actions.selectHeapProfile(\n {id: index, upid: this.config.upid, ts, type}));\n return true;\n }\n return false;\n }\n\n // If the markers overlap the rightmost one will be selected.\n findTimestampIndex(\n left: number, timeScale: TimeScale, data: Data, x: number, y: number,\n right: number): number {\n let index = -1;\n if (left !== -1) {\n const centerX = timeScale.timeToPx(fromNs(data.tsStarts[left]));\n if (this.isInMarker(x, y, centerX)) {\n index = left;\n }\n }\n if (right !== -1) {\n const centerX = timeScale.timeToPx(fromNs(data.tsStarts[right]));\n if (this.isInMarker(x, y, centerX)) {\n index = right;\n }\n }\n return index;\n }\n\n isInMarker(x: number, y: number, centerX: number) {\n return Math.abs(x - centerX) + Math.abs(y - this.centerY) <=\n this.markerWidth;\n }\n}\n\ntrackRegistry.register(HeapProfileTrack);\n","// Copyright (C) 2021 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport './controller';\nimport './frontend';\n","// Copyright (C) 2021 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {NUM} from '../../common/query_result';\nimport {\n TrackController,\n trackControllerRegistry\n} from '../../controller/track_controller';\n\nimport {\n Config,\n Data,\n PERF_SAMPLES_PROFILE_TRACK_KIND,\n} from './common';\n\nclass PerfSamplesProfileTrackController extends TrackController<Config, Data> {\n static readonly kind = PERF_SAMPLES_PROFILE_TRACK_KIND;\n async onBoundsChange(start: number, end: number, resolution: number):\n Promise<Data> {\n if (this.config.upid === undefined) {\n return {\n start,\n end,\n resolution,\n length: 0,\n tsStartsNs: new Float64Array()\n };\n }\n const queryRes = await this.query(`\n select ts, upid from perf_sample\n join thread using (utid)\n where upid = ${this.config.upid}\n order by ts`);\n const numRows = queryRes.numRows();\n const data: Data = {\n start,\n end,\n resolution,\n length: numRows,\n tsStartsNs: new Float64Array(numRows)\n };\n\n const it = queryRes.iter({ts: NUM});\n for (let row = 0; it.valid(); it.next(), row++) {\n data.tsStartsNs[row] = it.ts;\n }\n return data;\n }\n}\n\ntrackControllerRegistry.register(PerfSamplesProfileTrackController);\n","// Copyright (C) 2021 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {searchSegment} from '../../base/binary_search';\nimport {Actions} from '../../common/actions';\nimport {fromNs, toNs} from '../../common/time';\nimport {FLAMEGRAPH_HOVERED_COLOR} from '../../frontend/flamegraph';\nimport {globals} from '../../frontend/globals';\nimport {TimeScale} from '../../frontend/time_scale';\nimport {NewTrackArgs, Track} from '../../frontend/track';\nimport {trackRegistry} from '../../frontend/track_registry';\n\nimport {Config, Data, PERF_SAMPLES_PROFILE_TRACK_KIND} from './common';\n\nconst PERP_SAMPLE_COLOR = 'hsl(224, 45%, 70%)';\n\n// 0.5 Makes the horizontal lines sharp.\nconst MARGIN_TOP = 4.5;\nconst RECT_HEIGHT = 30.5;\n\nclass PerfSamplesProfileTrack extends Track<Config, Data> {\n static readonly kind = PERF_SAMPLES_PROFILE_TRACK_KIND;\n static create(args: NewTrackArgs): PerfSamplesProfileTrack {\n return new PerfSamplesProfileTrack(args);\n }\n\n private centerY = this.getHeight() / 2;\n private markerWidth = (this.getHeight() - MARGIN_TOP) / 2;\n private hoveredTs: number|undefined = undefined;\n\n constructor(args: NewTrackArgs) {\n super(args);\n }\n\n getHeight() {\n return MARGIN_TOP + RECT_HEIGHT - 1;\n }\n\n renderCanvas(ctx: CanvasRenderingContext2D): void {\n const {\n timeScale,\n } = globals.frontendLocalState;\n const data = this.data();\n\n if (data === undefined) return;\n\n for (let i = 0; i < data.tsStartsNs.length; i++) {\n const centerX = data.tsStartsNs[i];\n const selection = globals.state.currentSelection;\n const isHovered = this.hoveredTs === centerX;\n const isSelected = selection !== null &&\n selection.kind === 'PERF_SAMPLES' && selection.ts === centerX;\n const strokeWidth = isSelected ? 3 : 0;\n this.drawMarker(\n ctx,\n timeScale.timeToPx(fromNs(centerX)),\n this.centerY,\n isHovered,\n strokeWidth);\n }\n }\n\n drawMarker(\n ctx: CanvasRenderingContext2D, x: number, y: number, isHovered: boolean,\n strokeWidth: number): void {\n ctx.beginPath();\n ctx.moveTo(x, y - this.markerWidth);\n ctx.lineTo(x - this.markerWidth, y);\n ctx.lineTo(x, y + this.markerWidth);\n ctx.lineTo(x + this.markerWidth, y);\n ctx.lineTo(x, y - this.markerWidth);\n ctx.closePath();\n ctx.fillStyle = isHovered ? FLAMEGRAPH_HOVERED_COLOR : PERP_SAMPLE_COLOR;\n ctx.fill();\n if (strokeWidth > 0) {\n ctx.strokeStyle = FLAMEGRAPH_HOVERED_COLOR;\n ctx.lineWidth = strokeWidth;\n ctx.stroke();\n }\n }\n\n onMouseMove({x, y}: {x: number, y: number}) {\n const data = this.data();\n if (data === undefined) return;\n const {timeScale} = globals.frontendLocalState;\n const time = toNs(timeScale.pxToTime(x));\n const [left, right] = searchSegment(data.tsStartsNs, time);\n const index = this.findTimestampIndex(left, timeScale, data, x, y, right);\n this.hoveredTs = index === -1 ? undefined : data.tsStartsNs[index];\n }\n\n onMouseOut() {\n this.hoveredTs = undefined;\n }\n\n onMouseClick({x, y}: {x: number, y: number}) {\n const data = this.data();\n if (data === undefined) return false;\n const {timeScale} = globals.frontendLocalState;\n\n const time = toNs(timeScale.pxToTime(x));\n const [left, right] = searchSegment(data.tsStartsNs, time);\n\n const index = this.findTimestampIndex(left, timeScale, data, x, y, right);\n\n if (index !== -1) {\n const ts = data.tsStartsNs[index];\n globals.makeSelection(Actions.selectPerfSamples(\n {id: index, upid: this.config.upid, ts, type: 'perf'}));\n return true;\n }\n return false;\n }\n\n // If the markers overlap the rightmost one will be selected.\n findTimestampIndex(\n left: number, timeScale: TimeScale, data: Data, x: number, y: number,\n right: number): number {\n let index = -1;\n if (left !== -1) {\n const centerX = timeScale.timeToPx(fromNs(data.tsStartsNs[left]));\n if (this.isInMarker(x, y, centerX)) {\n index = left;\n }\n }\n if (right !== -1) {\n const centerX = timeScale.timeToPx(fromNs(data.tsStartsNs[right]));\n if (this.isInMarker(x, y, centerX)) {\n index = right;\n }\n }\n return index;\n }\n\n isInMarker(x: number, y: number, centerX: number) {\n return Math.abs(x - centerX) + Math.abs(y - this.centerY) <=\n this.markerWidth;\n }\n}\n\ntrackRegistry.register(PerfSamplesProfileTrack);\n","// Copyright (C) 2021 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport './controller';\nimport './frontend';\n","// Copyright (C) 2019 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {assertTrue} from '../../base/logging';\nimport {NUM, QueryResult} from '../../common/query_result';\nimport {fromNs, toNs} from '../../common/time';\nimport {\n TrackController,\n trackControllerRegistry\n} from '../../controller/track_controller';\n\nimport {\n Config,\n Data,\n PROCESS_SCHEDULING_TRACK_KIND,\n} from './common';\n\n// This summary is displayed for any processes that have CPU scheduling activity\n// associated with them.\nclass ProcessSchedulingTrackController extends TrackController<Config, Data> {\n static readonly kind = PROCESS_SCHEDULING_TRACK_KIND;\n\n private maxCpu = 0;\n private maxDurNs = 0;\n private cachedBucketNs = Number.MAX_SAFE_INTEGER;\n\n async onSetup() {\n await this.createSchedView();\n\n const cpus = await this.engine.getCpus();\n\n // A process scheduling track should only exist in a trace that has cpus.\n assertTrue(cpus.length > 0);\n this.maxCpu = Math.max(...cpus) + 1;\n\n const result = (await this.query(`\n select ifnull(max(dur), 0) as maxDur, count(1) as count\n from ${this.tableName('process_sched')}\n `)).iter({maxDur: NUM, count: NUM});\n assertTrue(result.valid());\n this.maxDurNs = result.maxDur;\n\n const rowCount = result.count;\n const bucketNs = this.cachedBucketSizeNs(rowCount);\n if (bucketNs === undefined) {\n return;\n }\n await this.query(`\n create table ${this.tableName('process_sched_cached')} as\n select\n (ts + ${bucketNs / 2}) / ${bucketNs} * ${bucketNs} as cached_tsq,\n ts,\n max(dur) as dur,\n cpu,\n utid\n from ${this.tableName('process_sched')}\n group by cached_tsq, cpu\n order by cached_tsq, cpu\n `);\n this.cachedBucketNs = bucketNs;\n }\n\n async onBoundsChange(start: number, end: number, resolution: number):\n Promise<Data> {\n assertTrue(this.config.upid !== null);\n\n // The resolution should always be a power of two for the logic of this\n // function to make sense.\n const resolutionNs = toNs(resolution);\n assertTrue(Math.log2(resolutionNs) % 1 === 0);\n\n const startNs = toNs(start);\n const endNs = toNs(end);\n\n // ns per quantization bucket (i.e. ns per pixel). /2 * 2 is to force it to\n // be an even number, so we can snap in the middle.\n const bucketNs =\n Math.max(Math.round(resolutionNs * this.pxSize() / 2) * 2, 1);\n\n const queryRes = await this.queryData(startNs, endNs, bucketNs);\n const numRows = queryRes.numRows();\n const slices: Data = {\n kind: 'slice',\n start,\n end,\n resolution,\n length: numRows,\n maxCpu: this.maxCpu,\n starts: new Float64Array(numRows),\n ends: new Float64Array(numRows),\n cpus: new Uint32Array(numRows),\n utids: new Uint32Array(numRows),\n };\n\n const it = queryRes.iter({\n tsq: NUM,\n ts: NUM,\n dur: NUM,\n cpu: NUM,\n utid: NUM,\n });\n\n for (let row = 0; it.valid(); it.next(), row++) {\n const startNsQ = it.tsq;\n const startNs = it.ts;\n const durNs = it.dur;\n const endNs = startNs + durNs;\n\n let endNsQ = Math.floor((endNs + bucketNs / 2 - 1) / bucketNs) * bucketNs;\n endNsQ = Math.max(endNsQ, startNsQ + bucketNs);\n\n slices.starts[row] = fromNs(startNsQ);\n slices.ends[row] = fromNs(endNsQ);\n slices.cpus[row] = it.cpu;\n slices.utids[row] = it.utid;\n slices.end = Math.max(slices.ends[row], slices.end);\n }\n return slices;\n }\n\n private queryData(startNs: number, endNs: number, bucketNs: number):\n Promise<QueryResult> {\n const isCached = this.cachedBucketNs <= bucketNs;\n const tsq = isCached ? `cached_tsq / ${bucketNs} * ${bucketNs}` :\n `(ts + ${bucketNs / 2}) / ${bucketNs} * ${bucketNs}`;\n const queryTable = isCached ? this.tableName('process_sched_cached') :\n this.tableName('process_sched');\n const constraintColumn = isCached ? 'cached_tsq' : 'ts';\n return this.query(`\n select\n ${tsq} as tsq,\n ts,\n max(dur) as dur,\n cpu,\n utid\n from ${queryTable}\n where\n ${constraintColumn} >= ${startNs - this.maxDurNs} and\n ${constraintColumn} <= ${endNs}\n group by tsq, cpu\n order by tsq, cpu\n `);\n }\n\n private async createSchedView() {\n await this.query(`\n create view ${this.tableName('process_sched')} as\n select ts, dur, cpu, utid\n from experimental_sched_upid\n where\n utid != 0 and\n upid = ${this.config.upid}\n `);\n }\n}\n\ntrackControllerRegistry.register(ProcessSchedulingTrackController);\n","// Copyright (C) 2019 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {searchEq, searchRange, searchSegment} from '../../base/binary_search';\nimport {assertTrue} from '../../base/logging';\nimport {Actions} from '../../common/actions';\nimport {colorForThread} from '../../common/colorizer';\nimport {checkerboardExcept} from '../../frontend/checkerboard';\nimport {globals} from '../../frontend/globals';\nimport {NewTrackArgs, Track} from '../../frontend/track';\nimport {trackRegistry} from '../../frontend/track_registry';\n\nimport {\n Config,\n Data,\n PROCESS_SCHEDULING_TRACK_KIND,\n} from './common';\n\nconst MARGIN_TOP = 5;\nconst RECT_HEIGHT = 30;\nconst TRACK_HEIGHT = MARGIN_TOP * 2 + RECT_HEIGHT;\n\nclass ProcessSchedulingTrack extends Track<Config, Data> {\n static readonly kind = PROCESS_SCHEDULING_TRACK_KIND;\n static create(args: NewTrackArgs): ProcessSchedulingTrack {\n return new ProcessSchedulingTrack(args);\n }\n\n private mousePos?: {x: number, y: number};\n private utidHoveredInThisTrack = -1;\n\n constructor(args: NewTrackArgs) {\n super(args);\n }\n\n getHeight(): number {\n return TRACK_HEIGHT;\n }\n\n renderCanvas(ctx: CanvasRenderingContext2D): void {\n // TODO: fonts and colors should come from the CSS and not hardcoded here.\n const {timeScale, visibleWindowTime} = globals.frontendLocalState;\n const data = this.data();\n\n if (data === undefined) return; // Can't possibly draw anything.\n\n // If the cached trace slices don't fully cover the visible time range,\n // show a gray rectangle with a \"Loading...\" label.\n checkerboardExcept(\n ctx,\n this.getHeight(),\n timeScale.timeToPx(visibleWindowTime.start),\n timeScale.timeToPx(visibleWindowTime.end),\n timeScale.timeToPx(data.start),\n timeScale.timeToPx(data.end));\n\n assertTrue(data.starts.length === data.ends.length);\n assertTrue(data.starts.length === data.utids.length);\n\n const rawStartIdx =\n data.ends.findIndex(end => end >= visibleWindowTime.start);\n const startIdx = rawStartIdx === -1 ? data.starts.length : rawStartIdx;\n\n const [, rawEndIdx] = searchSegment(data.starts, visibleWindowTime.end);\n const endIdx = rawEndIdx === -1 ? data.starts.length : rawEndIdx;\n\n const cpuTrackHeight = Math.floor(RECT_HEIGHT / data.maxCpu);\n\n for (let i = startIdx; i < endIdx; i++) {\n const tStart = data.starts[i];\n const tEnd = data.ends[i];\n const utid = data.utids[i];\n const cpu = data.cpus[i];\n\n const rectStart = timeScale.timeToPx(tStart);\n const rectEnd = timeScale.timeToPx(tEnd);\n const rectWidth = rectEnd - rectStart;\n if (rectWidth < 0.3) continue;\n\n const threadInfo = globals.threads.get(utid);\n const pid = (threadInfo ? threadInfo.pid : -1) || -1;\n\n const isHovering = globals.state.hoveredUtid !== -1;\n const isThreadHovered = globals.state.hoveredUtid === utid;\n const isProcessHovered = globals.state.hoveredPid === pid;\n const color = colorForThread(threadInfo);\n if (isHovering && !isThreadHovered) {\n if (!isProcessHovered) {\n color.l = 90;\n color.s = 0;\n } else {\n color.l = Math.min(color.l + 30, 80);\n color.s -= 20;\n }\n } else {\n color.l = Math.min(color.l + 10, 60);\n color.s -= 20;\n }\n ctx.fillStyle = `hsl(${color.h}, ${color.s}%, ${color.l}%)`;\n const y = MARGIN_TOP + cpuTrackHeight * cpu + cpu;\n ctx.fillRect(rectStart, y, rectEnd - rectStart, cpuTrackHeight);\n }\n\n const hoveredThread = globals.threads.get(this.utidHoveredInThisTrack);\n if (hoveredThread !== undefined && this.mousePos !== undefined) {\n const tidText = `T: ${hoveredThread.threadName} [${hoveredThread.tid}]`;\n if (hoveredThread.pid) {\n const pidText = `P: ${hoveredThread.procName} [${hoveredThread.pid}]`;\n this.drawTrackHoverTooltip(ctx, this.mousePos, pidText, tidText);\n } else {\n this.drawTrackHoverTooltip(ctx, this.mousePos, tidText);\n }\n }\n }\n\n onMouseMove(pos: {x: number, y: number}) {\n const data = this.data();\n this.mousePos = pos;\n if (data === undefined) return;\n if (pos.y < MARGIN_TOP || pos.y > MARGIN_TOP + RECT_HEIGHT) {\n this.utidHoveredInThisTrack = -1;\n globals.dispatch(Actions.setHoveredUtidAndPid({utid: -1, pid: -1}));\n return;\n }\n\n const cpuTrackHeight = Math.floor(RECT_HEIGHT / data.maxCpu);\n const cpu = Math.floor((pos.y - MARGIN_TOP) / (cpuTrackHeight + 1));\n const {timeScale} = globals.frontendLocalState;\n const t = timeScale.pxToTime(pos.x);\n\n const [i, j] = searchRange(data.starts, t, searchEq(data.cpus, cpu));\n if (i === j || i >= data.starts.length || t > data.ends[i]) {\n this.utidHoveredInThisTrack = -1;\n globals.dispatch(Actions.setHoveredUtidAndPid({utid: -1, pid: -1}));\n return;\n }\n\n const utid = data.utids[i];\n this.utidHoveredInThisTrack = utid;\n const threadInfo = globals.threads.get(utid);\n const pid = threadInfo ? (threadInfo.pid ? threadInfo.pid : -1) : -1;\n globals.dispatch(Actions.setHoveredUtidAndPid({utid, pid}));\n }\n\n onMouseOut() {\n this.utidHoveredInThisTrack = -1;\n globals.dispatch(Actions.setHoveredUtidAndPid({utid: -1, pid: -1}));\n this.mousePos = undefined;\n }\n}\n\ntrackRegistry.register(ProcessSchedulingTrack);\n","// Copyright (C) 2021 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport './controller';\nimport './frontend';\n","// Copyright (C) 2018 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {NUM} from '../../common/query_result';\nimport {fromNs, toNs} from '../../common/time';\nimport {LIMIT} from '../../common/track_data';\nimport {\n TrackController,\n trackControllerRegistry\n} from '../../controller/track_controller';\n\nimport {\n Config,\n Data,\n PROCESS_SUMMARY_TRACK,\n} from './common';\n\n// This is the summary displayed when a process only contains chrome slices\n// and no cpu scheduling.\n\nclass ProcessSummaryTrackController extends TrackController<Config, Data> {\n static readonly kind = PROCESS_SUMMARY_TRACK;\n private setup = false;\n\n async onBoundsChange(start: number, end: number, resolution: number):\n Promise<Data> {\n const startNs = toNs(start);\n const endNs = toNs(end);\n\n if (this.setup === false) {\n await this.query(\n `create virtual table ${this.tableName('window')} using window;`);\n\n let utids = [this.config.utid];\n if (this.config.upid) {\n const threadQuery = await this.query(\n `select utid from thread where upid=${this.config.upid}`);\n utids = [];\n for (const it = threadQuery.iter({utid: NUM}); it.valid(); it.next()) {\n utids.push(it.utid);\n }\n }\n\n const trackQuery = await this.query(\n `select id from thread_track where utid in (${utids.join(',')})`);\n const tracks = [];\n for (const it = trackQuery.iter({id: NUM}); it.valid(); it.next()) {\n tracks.push(it.id);\n }\n\n const processSliceView = this.tableName('process_slice_view');\n await this.query(\n `create view ${processSliceView} as ` +\n // 0 as cpu is a dummy column to perform span join on.\n `select ts, dur/${utids.length} as dur ` +\n `from slice s ` +\n `where depth = 0 and track_id in ` +\n `(${tracks.join(',')})`);\n await this.query(`create virtual table ${this.tableName('span')}\n using span_join(${processSliceView},\n ${this.tableName('window')});`);\n this.setup = true;\n }\n\n // |resolution| is in s/px we want # ns for 10px window:\n // Max value with 1 so we don't end up with resolution 0.\n const bucketSizeNs = Math.max(1, Math.round(resolution * 10 * 1e9));\n const windowStartNs = Math.floor(startNs / bucketSizeNs) * bucketSizeNs;\n const windowDurNs = Math.max(1, endNs - windowStartNs);\n\n await this.query(`update ${this.tableName('window')} set\n window_start=${windowStartNs},\n window_dur=${windowDurNs},\n quantum=${bucketSizeNs}\n where rowid = 0;`);\n\n return this.computeSummary(\n fromNs(windowStartNs), end, resolution, bucketSizeNs);\n }\n\n private async computeSummary(\n start: number, end: number, resolution: number,\n bucketSizeNs: number): Promise<Data> {\n const startNs = toNs(start);\n const endNs = toNs(end);\n const numBuckets =\n Math.min(Math.ceil((endNs - startNs) / bucketSizeNs), LIMIT);\n\n const query = `select\n quantum_ts as bucket,\n sum(dur)/cast(${bucketSizeNs} as float) as utilization\n from ${this.tableName('span')}\n group by quantum_ts\n limit ${LIMIT}`;\n\n const summary: Data = {\n start,\n end,\n resolution,\n length: numBuckets,\n bucketSizeSeconds: fromNs(bucketSizeNs),\n utilizations: new Float64Array(numBuckets),\n };\n\n const queryRes = await this.query(query);\n const it = queryRes.iter({bucket: NUM, utilization: NUM});\n for (; it.valid(); it.next()) {\n const bucket = it.bucket;\n if (bucket > numBuckets) {\n continue;\n }\n summary.utilizations[bucket] = it.utilization;\n }\n\n return summary;\n }\n\n onDestroy(): void {\n if (this.setup) {\n this.query(`drop table ${this.tableName('window')}`);\n this.query(`drop table ${this.tableName('span')}`);\n this.setup = false;\n }\n }\n}\n\ntrackControllerRegistry.register(ProcessSummaryTrackController);\n","// Copyright (C) 2018 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {colorForTid} from '../../common/colorizer';\nimport {checkerboardExcept} from '../../frontend/checkerboard';\nimport {globals} from '../../frontend/globals';\nimport {NewTrackArgs, Track} from '../../frontend/track';\nimport {trackRegistry} from '../../frontend/track_registry';\n\nimport {\n Config,\n Data,\n PROCESS_SUMMARY_TRACK,\n} from './common';\n\nconst MARGIN_TOP = 5;\nconst RECT_HEIGHT = 30;\nconst TRACK_HEIGHT = MARGIN_TOP * 2 + RECT_HEIGHT;\nconst SUMMARY_HEIGHT = TRACK_HEIGHT - MARGIN_TOP;\n\nclass ProcessSummaryTrack extends Track<Config, Data> {\n static readonly kind = PROCESS_SUMMARY_TRACK;\n static create(args: NewTrackArgs): ProcessSummaryTrack {\n return new ProcessSummaryTrack(args);\n }\n\n constructor(args: NewTrackArgs) {\n super(args);\n }\n\n getHeight(): number {\n return TRACK_HEIGHT;\n }\n\n renderCanvas(ctx: CanvasRenderingContext2D): void {\n const {timeScale, visibleWindowTime} = globals.frontendLocalState;\n const data = this.data();\n if (data === undefined) return; // Can't possibly draw anything.\n\n checkerboardExcept(\n ctx,\n this.getHeight(),\n timeScale.timeToPx(visibleWindowTime.start),\n timeScale.timeToPx(visibleWindowTime.end),\n timeScale.timeToPx(data.start),\n timeScale.timeToPx(data.end));\n\n this.renderSummary(ctx, data);\n }\n\n // TODO(dproy): Dedup with CPU slices.\n renderSummary(ctx: CanvasRenderingContext2D, data: Data): void {\n const {timeScale, visibleWindowTime} = globals.frontendLocalState;\n const startPx = Math.floor(timeScale.timeToPx(visibleWindowTime.start));\n const bottomY = TRACK_HEIGHT;\n\n let lastX = startPx;\n let lastY = bottomY;\n\n // TODO(hjd): Dedupe this math.\n const color = colorForTid(this.config.pidForColor);\n color.l = Math.min(color.l + 10, 60);\n color.s -= 20;\n\n ctx.fillStyle = `hsl(${color.h}, ${color.s}%, ${color.l}%)`;\n ctx.beginPath();\n ctx.moveTo(lastX, lastY);\n for (let i = 0; i < data.utilizations.length; i++) {\n // TODO(dproy): Investigate why utilization is > 1 sometimes.\n const utilization = Math.min(data.utilizations[i], 1);\n const startTime = i * data.bucketSizeSeconds + data.start;\n\n lastX = Math.floor(timeScale.timeToPx(startTime));\n\n ctx.lineTo(lastX, lastY);\n lastY = MARGIN_TOP + Math.round(SUMMARY_HEIGHT * (1 - utilization));\n ctx.lineTo(lastX, lastY);\n }\n ctx.lineTo(lastX, bottomY);\n ctx.closePath();\n ctx.fill();\n }\n}\n\ntrackRegistry.register(ProcessSummaryTrack);\n","// Copyright (C) 2021 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport './controller';\nimport './frontend';\n","// Copyright (C) 2019 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nconst states: {[key: string]: string} = {\n 'R': 'Runnable',\n 'S': 'Sleeping',\n 'D': 'Uninterruptible Sleep',\n 'T': 'Stopped',\n 't': 'Traced',\n 'X': 'Exit (Dead)',\n 'Z': 'Exit (Zombie)',\n 'x': 'Task Dead',\n 'I': 'Task Dead',\n 'K': 'Wake Kill',\n 'W': 'Waking',\n 'P': 'Parked',\n 'N': 'No Load',\n '+': '(Preempted)'\n};\n\nexport function translateState(\n state: string|undefined, ioWait: boolean|undefined = undefined) {\n if (state === undefined) return '';\n if (state === 'Running') {\n return state;\n }\n let result = states[state[0]];\n if (ioWait === true) {\n result += ' (IO)';\n } else if (ioWait === false) {\n result += ' (non-IO)';\n }\n for (let i = 1; i < state.length; i++) {\n result += state[i] === '+' ? ' ' : ' + ';\n result += states[state[i]];\n }\n // state is some string we don't know how to translate.\n if (result === undefined) return state;\n\n return result;\n}\n","\n// Copyright (C) 2019 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport {TrackData} from '../../common/track_data';\n\nexport const THREAD_STATE_TRACK_KIND = 'ThreadStateTrack';\n\nexport interface Data extends TrackData {\n strings: string[];\n ids: Float64Array;\n starts: Float64Array;\n ends: Float64Array;\n cpu: Int8Array;\n state: Uint16Array; // Index into |strings|.\n}\n\nexport interface Config {\n utid: number;\n}\n","// Copyright (C) 2019 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {assertFalse} from '../../base/logging';\nimport {NUM, NUM_NULL, STR_NULL} from '../../common/query_result';\nimport {translateState} from '../../common/thread_state';\nimport {fromNs, toNs} from '../../common/time';\nimport {\n TrackController,\n trackControllerRegistry\n} from '../../controller/track_controller';\n\nimport {\n Config,\n Data,\n THREAD_STATE_TRACK_KIND,\n} from './common';\n\nclass ThreadStateTrackController extends TrackController<Config, Data> {\n static readonly kind = THREAD_STATE_TRACK_KIND;\n\n private maxDurNs = 0;\n\n async onSetup() {\n await this.query(`\n create view ${this.tableName('thread_state')} as\n select\n id,\n ts,\n dur,\n cpu,\n state,\n io_wait as ioWait\n from thread_state\n where utid = ${this.config.utid} and utid != 0\n `);\n\n const queryRes = await this.query(`\n select ifnull(max(dur), 0) as maxDur\n from ${this.tableName('thread_state')}\n `);\n this.maxDurNs = queryRes.firstRow({maxDur: NUM}).maxDur;\n }\n\n async onBoundsChange(start: number, end: number, resolution: number):\n Promise<Data> {\n const resolutionNs = toNs(resolution);\n const startNs = toNs(start);\n const endNs = toNs(end);\n\n // ns per quantization bucket (i.e. ns per pixel). /2 * 2 is to force it to\n // be an even number, so we can snap in the middle.\n const bucketNs =\n Math.max(Math.round(resolutionNs * this.pxSize() / 2) * 2, 1);\n\n const query = `\n select\n (ts + ${bucketNs / 2}) / ${bucketNs} * ${bucketNs} as tsq,\n ts,\n state = 'S' as is_sleep,\n max(dur) as dur,\n ifnull(cast(cpu as integer), -1) as cpu,\n state,\n ioWait,\n ifnull(id, -1) as id\n from ${this.tableName('thread_state')}\n where\n ts >= ${startNs - this.maxDurNs} and\n ts <= ${endNs}\n group by tsq, is_sleep\n order by tsq\n `;\n\n const queryRes = await this.query(query);\n const numRows = queryRes.numRows();\n\n const data: Data = {\n start,\n end,\n resolution,\n length: numRows,\n ids: new Float64Array(numRows),\n starts: new Float64Array(numRows),\n ends: new Float64Array(numRows),\n strings: [],\n state: new Uint16Array(numRows),\n cpu: new Int8Array(numRows),\n };\n\n const stringIndexes =\n new Map<{shortState: string; ioWait: boolean | undefined}, number>();\n function internState(shortState: string, ioWait: boolean|undefined) {\n let idx = stringIndexes.get({shortState, ioWait});\n if (idx !== undefined) return idx;\n idx = data.strings.length;\n data.strings.push(translateState(shortState, ioWait));\n stringIndexes.set({shortState, ioWait}, idx);\n return idx;\n }\n const it = queryRes.iter({\n 'tsq': NUM,\n 'ts': NUM,\n 'dur': NUM,\n 'cpu': NUM,\n 'state': STR_NULL,\n 'ioWait': NUM_NULL,\n 'id': NUM,\n });\n for (let row = 0; it.valid(); it.next(), row++) {\n const startNsQ = it.tsq;\n const startNs = it.ts;\n const durNs = it.dur;\n const endNs = startNs + durNs;\n\n let endNsQ = Math.floor((endNs + bucketNs / 2 - 1) / bucketNs) * bucketNs;\n endNsQ = Math.max(endNsQ, startNsQ + bucketNs);\n\n const cpu = it.cpu;\n const state = it.state || '[null]';\n const ioWait = it.ioWait === null ? undefined : !!it.ioWait;\n const id = it.id;\n\n // We should never have the end timestamp being the same as the bucket\n // start.\n assertFalse(startNsQ === endNsQ);\n\n data.starts[row] = fromNs(startNsQ);\n data.ends[row] = fromNs(endNsQ);\n data.state[row] = internState(state, ioWait);\n data.ids[row] = id;\n data.cpu[row] = cpu;\n }\n return data;\n }\n\n async onDestroy() {\n await this.query(`drop table if exists ${this.tableName('thread_state')}`);\n }\n}\n\ntrackControllerRegistry.register(ThreadStateTrackController);\n","// Copyright (C) 2019 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {search} from '../../base/binary_search';\nimport {Actions} from '../../common/actions';\nimport {cropText} from '../../common/canvas_utils';\nimport {colorForState} from '../../common/colorizer';\nimport {checkerboardExcept} from '../../frontend/checkerboard';\nimport {globals} from '../../frontend/globals';\nimport {NewTrackArgs, Track} from '../../frontend/track';\nimport {trackRegistry} from '../../frontend/track_registry';\n\nimport {\n Config,\n Data,\n THREAD_STATE_TRACK_KIND,\n} from './common';\n\nconst MARGIN_TOP = 4;\nconst RECT_HEIGHT = 14;\nconst EXCESS_WIDTH = 10;\n\nclass ThreadStateTrack extends Track<Config, Data> {\n static readonly kind = THREAD_STATE_TRACK_KIND;\n static create(args: NewTrackArgs): ThreadStateTrack {\n return new ThreadStateTrack(args);\n }\n\n constructor(args: NewTrackArgs) {\n super(args);\n }\n\n getHeight(): number {\n return 2 * MARGIN_TOP + RECT_HEIGHT;\n }\n\n renderCanvas(ctx: CanvasRenderingContext2D): void {\n const {timeScale, visibleWindowTime} = globals.frontendLocalState;\n const data = this.data();\n const charWidth = ctx.measureText('dbpqaouk').width / 8;\n\n if (data === undefined) return; // Can't possibly draw anything.\n\n // The draw of the rect on the selected slice must happen after the other\n // drawings, otherwise it would result under another rect.\n let drawRectOnSelected = () => {};\n\n checkerboardExcept(\n ctx,\n this.getHeight(),\n timeScale.timeToPx(visibleWindowTime.start),\n timeScale.timeToPx(visibleWindowTime.end),\n timeScale.timeToPx(data.start),\n timeScale.timeToPx(data.end),\n );\n\n ctx.textAlign = 'center';\n ctx.font = '10px Roboto Condensed';\n\n for (let i = 0; i < data.starts.length; i++) {\n // NOTE: Unlike userspace and scheduling slices, thread state slices are\n // allowed to overlap; specifically, sleeping slices are allowed to\n // overlap with non-sleeping slices. We do this because otherwise\n // sleeping slices generally dominate traces making it seem like there are\n // no running/runnable etc. slices until you zoom in. By drawing both,\n // we get a more accurate representation of the trace and prevent weird\n // artifacts when zooming.\n // See b/201793731 for an example of why we do this.\n const tStart = data.starts[i];\n const tEnd = data.ends[i];\n const state = data.strings[data.state[i]];\n if (tEnd <= visibleWindowTime.start || tStart >= visibleWindowTime.end) {\n continue;\n }\n\n // Don't display a slice for Task Dead.\n if (state === 'x') continue;\n const rectStart = timeScale.timeToPx(tStart);\n const rectEnd = timeScale.timeToPx(tEnd);\n const rectWidth = rectEnd - rectStart;\n\n const currentSelection = globals.state.currentSelection;\n const isSelected = currentSelection &&\n currentSelection.kind === 'THREAD_STATE' &&\n currentSelection.id === data.ids[i];\n\n const color = colorForState(state);\n\n let colorStr = `hsl(${color.h},${color.s}%,${color.l}%)`;\n if (color.a) {\n colorStr = `hsla(${color.h},${color.s}%,${color.l}%, ${color.a})`;\n }\n ctx.fillStyle = colorStr;\n\n ctx.fillRect(rectStart, MARGIN_TOP, rectWidth, RECT_HEIGHT);\n\n // Don't render text when we have less than 10px to play with.\n if (rectWidth < 10 || state === 'Sleeping') continue;\n const title = cropText(state, charWidth, rectWidth);\n const rectXCenter = rectStart + rectWidth / 2;\n ctx.fillStyle = color.l > 80 ? '#404040' : '#fff';\n ctx.fillText(title, rectXCenter, MARGIN_TOP + RECT_HEIGHT / 2 + 3);\n\n if (isSelected) {\n drawRectOnSelected = () => {\n const rectStart =\n Math.max(0 - EXCESS_WIDTH, timeScale.timeToPx(tStart));\n const rectEnd = Math.min(\n timeScale.timeToPx(visibleWindowTime.end) + EXCESS_WIDTH,\n timeScale.timeToPx(tEnd));\n const color = colorForState(state);\n ctx.strokeStyle = `hsl(${color.h},${color.s}%,${color.l * 0.7}%)`;\n ctx.beginPath();\n ctx.lineWidth = 3;\n ctx.strokeRect(\n rectStart,\n MARGIN_TOP - 1.5,\n rectEnd - rectStart,\n RECT_HEIGHT + 3);\n ctx.closePath();\n };\n }\n }\n drawRectOnSelected();\n }\n\n onMouseClick({x}: {x: number}) {\n const data = this.data();\n if (data === undefined) return false;\n const {timeScale} = globals.frontendLocalState;\n const time = timeScale.pxToTime(x);\n const index = search(data.starts, time);\n if (index === -1) return false;\n\n const id = data.ids[index];\n globals.makeSelection(\n Actions.selectThreadState({id, trackId: this.trackState.id}));\n return true;\n }\n}\n\ntrackRegistry.register(ThreadStateTrack);\n","// Copyright (C) 2021 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport './controller';\nimport './frontend';\n","import '../tracks/actual_frames';\nimport '../tracks/android_log';\nimport '../tracks/async_slices';\nimport '../tracks/chrome_slices';\nimport '../tracks/counter';\nimport '../tracks/cpu_freq';\nimport '../tracks/cpu_profile';\nimport '../tracks/cpu_slices';\nimport '../tracks/debug_slices';\nimport '../tracks/expected_frames';\nimport '../tracks/generic_slice_track';\nimport '../tracks/heap_profile';\nimport '../tracks/perf_samples_profile';\nimport '../tracks/process_scheduling';\nimport '../tracks/process_summary';\nimport '../tracks/thread_state';","// Unique ID creation requires a high quality random # generator. In the\n// browser this is a little complicated due to unknown quality of Math.random()\n// and inconsistent support for the `crypto` API. We do the best we can via\n// feature-detection\n\n// getRandomValues needs to be invoked in a context where \"this\" is a Crypto\n// implementation. Also, find the complete implementation of crypto on IE11.\nvar getRandomValues = (typeof(crypto) != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto)) ||\n (typeof(msCrypto) != 'undefined' && typeof window.msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto));\n\nif (getRandomValues) {\n // WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto\n var rnds8 = new Uint8Array(16); // eslint-disable-line no-undef\n\n module.exports = function whatwgRNG() {\n getRandomValues(rnds8);\n return rnds8;\n };\n} else {\n // Math.random()-based (RNG)\n //\n // If all else fails, use Math.random(). It's fast, but is of unspecified\n // quality.\n var rnds = new Array(16);\n\n module.exports = function mathRNG() {\n for (var i = 0, r; i < 16; i++) {\n if ((i & 0x03) === 0) r = Math.random() * 0x100000000;\n rnds[i] = r >>> ((i & 0x03) << 3) & 0xff;\n }\n\n return rnds;\n };\n}\n","/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex;\n // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return ([\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]]\n ]).join('');\n}\n\nmodule.exports = bytesToUuid;\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\nfunction v4(options, buf, offset) {\n var i = buf && offset || 0;\n\n if (typeof(options) == 'string') {\n buf = options === 'binary' ? new Array(16) : null;\n options = null;\n }\n options = options || {};\n\n var rnds = options.random || (options.rng || rng)();\n\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n\n // Copy bytes to buffer, if provided\n if (buf) {\n for (var ii = 0; ii < 16; ++ii) {\n buf[i + ii] = rnds[ii];\n }\n }\n\n return buf || bytesToUuid(rnds);\n}\n\nmodule.exports = v4;\n","// Copyright (C) 2020 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {RecordConfig} from '../controller/record_config_types';\n\nexport const BUCKET_NAME = 'perfetto-ui-data';\nimport * as uuidv4 from 'uuid/v4';\nimport {State} from './state';\n\nexport async function saveTrace(trace: File|ArrayBuffer): Promise<string> {\n // TODO(hjd): This should probably also be a hash but that requires\n // trace processor support.\n const name = uuidv4();\n const url = 'https://www.googleapis.com/upload/storage/v1/b/' +\n `${BUCKET_NAME}/o?uploadType=media` +\n `&name=${name}&predefinedAcl=publicRead`;\n const response = await fetch(url, {\n method: 'post',\n headers: {'Content-Type': 'application/octet-stream;'},\n body: trace,\n });\n await response.json();\n return `https://storage.googleapis.com/${BUCKET_NAME}/${name}`;\n}\n\nexport async function saveState(stateOrConfig: State|\n RecordConfig): Promise<string> {\n const text = JSON.stringify(stateOrConfig);\n const hash = await toSha256(text);\n const url = 'https://www.googleapis.com/upload/storage/v1/b/' +\n `${BUCKET_NAME}/o?uploadType=media` +\n `&name=${hash}&predefinedAcl=publicRead`;\n const response = await fetch(url, {\n method: 'post',\n headers: {\n 'Content-Type': 'application/json; charset=utf-8',\n },\n body: text,\n });\n await response.json();\n return hash;\n}\n\nexport async function toSha256(str: string): Promise<string> {\n // TODO(hjd): TypeScript bug with definition of TextEncoder.\n // tslint:disable-next-line no-any\n const buffer = new (TextEncoder as any)('utf-8').encode(str);\n const digest = await crypto.subtle.digest('SHA-256', buffer);\n return Array.from(new Uint8Array(digest)).map(x => x.toString(16)).join('');\n}","// Copyright (C) 2018 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {produce} from 'immer';\n\nimport {assertExists} from '../base/logging';\nimport {Actions} from '../common/actions';\nimport {ConversionJobStatus} from '../common/conversion_jobs';\nimport {createEmptyState} from '../common/empty_state';\nimport {State} from '../common/state';\nimport {STATE_VERSION} from '../common/state';\nimport {\n BUCKET_NAME,\n saveState,\n saveTrace,\n toSha256\n} from '../common/upload_utils';\nimport {publishConversionJobStatusUpdate} from '../frontend/publish';\nimport {Router} from '../frontend/router';\n\nimport {Controller} from './controller';\nimport {globals} from './globals';\nimport {RecordConfig, recordConfigValidator} from './record_config_types';\nimport {runValidator} from './validators';\n\nexport class PermalinkController extends Controller<'main'> {\n private lastRequestId?: string;\n constructor() {\n super('main');\n }\n\n run() {\n if (globals.state.permalink.requestId === undefined ||\n globals.state.permalink.requestId === this.lastRequestId) {\n return;\n }\n const requestId = assertExists(globals.state.permalink.requestId);\n this.lastRequestId = requestId;\n\n // if the |hash| is not set, this is a request to create a permalink.\n if (globals.state.permalink.hash === undefined) {\n const isRecordingConfig =\n assertExists(globals.state.permalink.isRecordingConfig);\n\n const jobName = 'create_permalink';\n publishConversionJobStatusUpdate({\n jobName,\n jobStatus: ConversionJobStatus.InProgress,\n });\n\n PermalinkController.createPermalink(isRecordingConfig)\n .then(hash => {\n globals.dispatch(Actions.setPermalink({requestId, hash}));\n })\n .finally(() => {\n publishConversionJobStatusUpdate({\n jobName,\n jobStatus: ConversionJobStatus.NotRunning,\n });\n });\n return;\n }\n\n // Otherwise, this is a request to load the permalink.\n PermalinkController.loadState(globals.state.permalink.hash)\n .then(stateOrConfig => {\n if (PermalinkController.isRecordConfig(stateOrConfig)) {\n // This permalink state only contains a RecordConfig. Show the\n // recording page with the config, but keep other state as-is.\n const validConfig =\n runValidator(recordConfigValidator, stateOrConfig as unknown)\n .result;\n globals.dispatch(Actions.setRecordConfig({config: validConfig}));\n Router.navigate('#!/record');\n return;\n }\n globals.dispatch(Actions.setState({newState: stateOrConfig}));\n this.lastRequestId = stateOrConfig.permalink.requestId;\n });\n }\n\n private static upgradeState(state: State): State {\n if (state.version !== STATE_VERSION) {\n const newState = createEmptyState();\n // Copy the URL of the trace into the empty state.\n for (const cfg of Object.values(state.engines)) {\n newState\n .engines[cfg.id] = {id: cfg.id, ready: false, source: cfg.source};\n }\n const message = `Unable to parse old state version. Discarding state ` +\n `and loading trace.`;\n console.warn(message);\n PermalinkController.updateStatus(message);\n return newState;\n }\n return state;\n }\n\n private static isRecordConfig(stateOrConfig: State|\n RecordConfig): stateOrConfig is RecordConfig {\n return ['STOP_WHEN_FULL', 'RING_BUFFER', 'LONG_TRACE'].includes(\n stateOrConfig.mode);\n }\n\n private static async createPermalink(isRecordingConfig: boolean):\n Promise<string> {\n let uploadState: State|RecordConfig = globals.state;\n\n if (isRecordingConfig) {\n uploadState = globals.state.recordConfig;\n } else {\n const engine = assertExists(Object.values(globals.state.engines)[0]);\n let dataToUpload: File|ArrayBuffer|undefined = undefined;\n let traceName = `trace ${engine.id}`;\n if (engine.source.type === 'FILE') {\n dataToUpload = engine.source.file;\n traceName = dataToUpload.name;\n } else if (engine.source.type === 'ARRAY_BUFFER') {\n dataToUpload = engine.source.buffer;\n } else if (engine.source.type !== 'URL') {\n throw new Error(`Cannot share trace ${JSON.stringify(engine.source)}`);\n }\n\n if (dataToUpload !== undefined) {\n PermalinkController.updateStatus(`Uploading ${traceName}`);\n const url = await saveTrace(dataToUpload);\n // Convert state to use URLs and remove permalink.\n uploadState = produce(globals.state, draft => {\n draft.engines[engine.id].source = {type: 'URL', url};\n draft.permalink = {};\n });\n }\n }\n\n // Upload state.\n PermalinkController.updateStatus(`Creating permalink...`);\n const hash = await saveState(uploadState);\n PermalinkController.updateStatus(`Permalink ready`);\n return hash;\n }\n\n private static async loadState(id: string): Promise<State|RecordConfig> {\n const url = `https://storage.googleapis.com/${BUCKET_NAME}/${id}`;\n const response = await fetch(url);\n if (!response.ok) {\n throw new Error(\n `Could not fetch permalink.\\n` +\n `Are you sure the id (${id}) is correct?\\n` +\n `URL: ${url}`);\n }\n const text = await response.text();\n const stateHash = await toSha256(text);\n const state = JSON.parse(text);\n if (stateHash !== id) {\n throw new Error(`State hash does not match ${id} vs. ${stateHash}`);\n }\n if (!this.isRecordConfig(state)) {\n return this.upgradeState(state);\n }\n return state;\n }\n\n private static updateStatus(msg: string): void {\n // TODO(hjd): Unify loading updates.\n globals.dispatch(Actions.updateStatus({\n msg,\n timestamp: Date.now() / 1000,\n }));\n }\n}\n","/*eslint-disable block-scoped-var, id-length, no-control-regex, no-magic-numbers, no-prototype-builtins, no-redeclare, no-shadow, no-var, sort-vars*/\n\"use strict\";\n\nvar $protobuf = require(\"protobufjs/minimal\");\n\n// Common aliases\nvar $Reader = $protobuf.Reader, $Writer = $protobuf.Writer, $util = $protobuf.util;\n\n// Exported root namespace\nvar $root = $protobuf.roots[\"default\"] || ($protobuf.roots[\"default\"] = {});\n\n$root.perfetto = (function() {\n\n /**\n * Namespace perfetto.\n * @exports perfetto\n * @namespace\n */\n var perfetto = {};\n\n perfetto.protos = (function() {\n\n /**\n * Namespace protos.\n * @memberof perfetto\n * @namespace\n */\n var protos = {};\n\n /**\n * TraceProcessorApiVersion enum.\n * @name perfetto.protos.TraceProcessorApiVersion\n * @enum {number}\n * @property {number} TRACE_PROCESSOR_CURRENT_API_VERSION=3 TRACE_PROCESSOR_CURRENT_API_VERSION value\n */\n protos.TraceProcessorApiVersion = (function() {\n var valuesById = {}, values = Object.create(valuesById);\n values[valuesById[3] = \"TRACE_PROCESSOR_CURRENT_API_VERSION\"] = 3;\n return values;\n })();\n\n protos.TraceProcessorRpcStream = (function() {\n\n /**\n * Properties of a TraceProcessorRpcStream.\n * @memberof perfetto.protos\n * @interface ITraceProcessorRpcStream\n * @property {Array.<perfetto.protos.ITraceProcessorRpc>|null} [msg] TraceProcessorRpcStream msg\n */\n\n /**\n * Constructs a new TraceProcessorRpcStream.\n * @memberof perfetto.protos\n * @classdesc Represents a TraceProcessorRpcStream.\n * @implements ITraceProcessorRpcStream\n * @constructor\n * @param {perfetto.protos.ITraceProcessorRpcStream=} [properties] Properties to set\n */\n function TraceProcessorRpcStream(properties) {\n this.msg = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * TraceProcessorRpcStream msg.\n * @member {Array.<perfetto.protos.ITraceProcessorRpc>} msg\n * @memberof perfetto.protos.TraceProcessorRpcStream\n * @instance\n */\n TraceProcessorRpcStream.prototype.msg = $util.emptyArray;\n\n /**\n * Creates a new TraceProcessorRpcStream instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.TraceProcessorRpcStream\n * @static\n * @param {perfetto.protos.ITraceProcessorRpcStream=} [properties] Properties to set\n * @returns {perfetto.protos.TraceProcessorRpcStream} TraceProcessorRpcStream instance\n */\n TraceProcessorRpcStream.create = function create(properties) {\n return new TraceProcessorRpcStream(properties);\n };\n\n /**\n * Encodes the specified TraceProcessorRpcStream message. Does not implicitly {@link perfetto.protos.TraceProcessorRpcStream.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.TraceProcessorRpcStream\n * @static\n * @param {perfetto.protos.ITraceProcessorRpcStream} message TraceProcessorRpcStream message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n TraceProcessorRpcStream.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.msg != null && message.msg.length)\n for (var i = 0; i < message.msg.length; ++i)\n $root.perfetto.protos.TraceProcessorRpc.encode(message.msg[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified TraceProcessorRpcStream message, length delimited. Does not implicitly {@link perfetto.protos.TraceProcessorRpcStream.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.TraceProcessorRpcStream\n * @static\n * @param {perfetto.protos.ITraceProcessorRpcStream} message TraceProcessorRpcStream message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n TraceProcessorRpcStream.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a TraceProcessorRpcStream message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.TraceProcessorRpcStream\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.TraceProcessorRpcStream} TraceProcessorRpcStream\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n TraceProcessorRpcStream.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.TraceProcessorRpcStream();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (!(message.msg && message.msg.length))\n message.msg = [];\n message.msg.push($root.perfetto.protos.TraceProcessorRpc.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a TraceProcessorRpcStream message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.TraceProcessorRpcStream\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.TraceProcessorRpcStream} TraceProcessorRpcStream\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n TraceProcessorRpcStream.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a TraceProcessorRpcStream message.\n * @function verify\n * @memberof perfetto.protos.TraceProcessorRpcStream\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n TraceProcessorRpcStream.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.msg != null && message.hasOwnProperty(\"msg\")) {\n if (!Array.isArray(message.msg))\n return \"msg: array expected\";\n for (var i = 0; i < message.msg.length; ++i) {\n var error = $root.perfetto.protos.TraceProcessorRpc.verify(message.msg[i]);\n if (error)\n return \"msg.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates a TraceProcessorRpcStream message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.TraceProcessorRpcStream\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.TraceProcessorRpcStream} TraceProcessorRpcStream\n */\n TraceProcessorRpcStream.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.TraceProcessorRpcStream)\n return object;\n var message = new $root.perfetto.protos.TraceProcessorRpcStream();\n if (object.msg) {\n if (!Array.isArray(object.msg))\n throw TypeError(\".perfetto.protos.TraceProcessorRpcStream.msg: array expected\");\n message.msg = [];\n for (var i = 0; i < object.msg.length; ++i) {\n if (typeof object.msg[i] !== \"object\")\n throw TypeError(\".perfetto.protos.TraceProcessorRpcStream.msg: object expected\");\n message.msg[i] = $root.perfetto.protos.TraceProcessorRpc.fromObject(object.msg[i]);\n }\n }\n return message;\n };\n\n /**\n * Creates a plain object from a TraceProcessorRpcStream message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.TraceProcessorRpcStream\n * @static\n * @param {perfetto.protos.TraceProcessorRpcStream} message TraceProcessorRpcStream\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n TraceProcessorRpcStream.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.msg = [];\n if (message.msg && message.msg.length) {\n object.msg = [];\n for (var j = 0; j < message.msg.length; ++j)\n object.msg[j] = $root.perfetto.protos.TraceProcessorRpc.toObject(message.msg[j], options);\n }\n return object;\n };\n\n /**\n * Converts this TraceProcessorRpcStream to JSON.\n * @function toJSON\n * @memberof perfetto.protos.TraceProcessorRpcStream\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n TraceProcessorRpcStream.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return TraceProcessorRpcStream;\n })();\n\n protos.TraceProcessorRpc = (function() {\n\n /**\n * Properties of a TraceProcessorRpc.\n * @memberof perfetto.protos\n * @interface ITraceProcessorRpc\n * @property {number|null} [seq] TraceProcessorRpc seq\n * @property {string|null} [fatalError] TraceProcessorRpc fatalError\n * @property {perfetto.protos.TraceProcessorRpc.TraceProcessorMethod|null} [request] TraceProcessorRpc request\n * @property {perfetto.protos.TraceProcessorRpc.TraceProcessorMethod|null} [response] TraceProcessorRpc response\n * @property {perfetto.protos.TraceProcessorRpc.TraceProcessorMethod|null} [invalidRequest] TraceProcessorRpc invalidRequest\n * @property {Uint8Array|null} [appendTraceData] TraceProcessorRpc appendTraceData\n * @property {perfetto.protos.IQueryArgs|null} [queryArgs] TraceProcessorRpc queryArgs\n * @property {perfetto.protos.IRawQueryArgs|null} [rawQueryArgs] TraceProcessorRpc rawQueryArgs\n * @property {perfetto.protos.IComputeMetricArgs|null} [computeMetricArgs] TraceProcessorRpc computeMetricArgs\n * @property {perfetto.protos.IAppendTraceDataResult|null} [appendResult] TraceProcessorRpc appendResult\n * @property {perfetto.protos.IQueryResult|null} [queryResult] TraceProcessorRpc queryResult\n * @property {perfetto.protos.IRawQueryResult|null} [rawQueryResult] TraceProcessorRpc rawQueryResult\n * @property {perfetto.protos.IComputeMetricResult|null} [metricResult] TraceProcessorRpc metricResult\n * @property {perfetto.protos.IDescriptorSet|null} [metricDescriptors] TraceProcessorRpc metricDescriptors\n * @property {perfetto.protos.IDisableAndReadMetatraceResult|null} [metatrace] TraceProcessorRpc metatrace\n * @property {perfetto.protos.IStatusResult|null} [status] TraceProcessorRpc status\n */\n\n /**\n * Constructs a new TraceProcessorRpc.\n * @memberof perfetto.protos\n * @classdesc Represents a TraceProcessorRpc.\n * @implements ITraceProcessorRpc\n * @constructor\n * @param {perfetto.protos.ITraceProcessorRpc=} [properties] Properties to set\n */\n function TraceProcessorRpc(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * TraceProcessorRpc seq.\n * @member {number} seq\n * @memberof perfetto.protos.TraceProcessorRpc\n * @instance\n */\n TraceProcessorRpc.prototype.seq = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * TraceProcessorRpc fatalError.\n * @member {string} fatalError\n * @memberof perfetto.protos.TraceProcessorRpc\n * @instance\n */\n TraceProcessorRpc.prototype.fatalError = \"\";\n\n /**\n * TraceProcessorRpc request.\n * @member {perfetto.protos.TraceProcessorRpc.TraceProcessorMethod} request\n * @memberof perfetto.protos.TraceProcessorRpc\n * @instance\n */\n TraceProcessorRpc.prototype.request = 0;\n\n /**\n * TraceProcessorRpc response.\n * @member {perfetto.protos.TraceProcessorRpc.TraceProcessorMethod} response\n * @memberof perfetto.protos.TraceProcessorRpc\n * @instance\n */\n TraceProcessorRpc.prototype.response = 0;\n\n /**\n * TraceProcessorRpc invalidRequest.\n * @member {perfetto.protos.TraceProcessorRpc.TraceProcessorMethod} invalidRequest\n * @memberof perfetto.protos.TraceProcessorRpc\n * @instance\n */\n TraceProcessorRpc.prototype.invalidRequest = 0;\n\n /**\n * TraceProcessorRpc appendTraceData.\n * @member {Uint8Array} appendTraceData\n * @memberof perfetto.protos.TraceProcessorRpc\n * @instance\n */\n TraceProcessorRpc.prototype.appendTraceData = $util.newBuffer([]);\n\n /**\n * TraceProcessorRpc queryArgs.\n * @member {perfetto.protos.IQueryArgs|null|undefined} queryArgs\n * @memberof perfetto.protos.TraceProcessorRpc\n * @instance\n */\n TraceProcessorRpc.prototype.queryArgs = null;\n\n /**\n * TraceProcessorRpc rawQueryArgs.\n * @member {perfetto.protos.IRawQueryArgs|null|undefined} rawQueryArgs\n * @memberof perfetto.protos.TraceProcessorRpc\n * @instance\n */\n TraceProcessorRpc.prototype.rawQueryArgs = null;\n\n /**\n * TraceProcessorRpc computeMetricArgs.\n * @member {perfetto.protos.IComputeMetricArgs|null|undefined} computeMetricArgs\n * @memberof perfetto.protos.TraceProcessorRpc\n * @instance\n */\n TraceProcessorRpc.prototype.computeMetricArgs = null;\n\n /**\n * TraceProcessorRpc appendResult.\n * @member {perfetto.protos.IAppendTraceDataResult|null|undefined} appendResult\n * @memberof perfetto.protos.TraceProcessorRpc\n * @instance\n */\n TraceProcessorRpc.prototype.appendResult = null;\n\n /**\n * TraceProcessorRpc queryResult.\n * @member {perfetto.protos.IQueryResult|null|undefined} queryResult\n * @memberof perfetto.protos.TraceProcessorRpc\n * @instance\n */\n TraceProcessorRpc.prototype.queryResult = null;\n\n /**\n * TraceProcessorRpc rawQueryResult.\n * @member {perfetto.protos.IRawQueryResult|null|undefined} rawQueryResult\n * @memberof perfetto.protos.TraceProcessorRpc\n * @instance\n */\n TraceProcessorRpc.prototype.rawQueryResult = null;\n\n /**\n * TraceProcessorRpc metricResult.\n * @member {perfetto.protos.IComputeMetricResult|null|undefined} metricResult\n * @memberof perfetto.protos.TraceProcessorRpc\n * @instance\n */\n TraceProcessorRpc.prototype.metricResult = null;\n\n /**\n * TraceProcessorRpc metricDescriptors.\n * @member {perfetto.protos.IDescriptorSet|null|undefined} metricDescriptors\n * @memberof perfetto.protos.TraceProcessorRpc\n * @instance\n */\n TraceProcessorRpc.prototype.metricDescriptors = null;\n\n /**\n * TraceProcessorRpc metatrace.\n * @member {perfetto.protos.IDisableAndReadMetatraceResult|null|undefined} metatrace\n * @memberof perfetto.protos.TraceProcessorRpc\n * @instance\n */\n TraceProcessorRpc.prototype.metatrace = null;\n\n /**\n * TraceProcessorRpc status.\n * @member {perfetto.protos.IStatusResult|null|undefined} status\n * @memberof perfetto.protos.TraceProcessorRpc\n * @instance\n */\n TraceProcessorRpc.prototype.status = null;\n\n // OneOf field names bound to virtual getters and setters\n var $oneOfFields;\n\n /**\n * TraceProcessorRpc type.\n * @member {\"request\"|\"response\"|\"invalidRequest\"|undefined} type\n * @memberof perfetto.protos.TraceProcessorRpc\n * @instance\n */\n Object.defineProperty(TraceProcessorRpc.prototype, \"type\", {\n get: $util.oneOfGetter($oneOfFields = [\"request\", \"response\", \"invalidRequest\"]),\n set: $util.oneOfSetter($oneOfFields)\n });\n\n /**\n * TraceProcessorRpc args.\n * @member {\"appendTraceData\"|\"queryArgs\"|\"rawQueryArgs\"|\"computeMetricArgs\"|\"appendResult\"|\"queryResult\"|\"rawQueryResult\"|\"metricResult\"|\"metricDescriptors\"|\"metatrace\"|\"status\"|undefined} args\n * @memberof perfetto.protos.TraceProcessorRpc\n * @instance\n */\n Object.defineProperty(TraceProcessorRpc.prototype, \"args\", {\n get: $util.oneOfGetter($oneOfFields = [\"appendTraceData\", \"queryArgs\", \"rawQueryArgs\", \"computeMetricArgs\", \"appendResult\", \"queryResult\", \"rawQueryResult\", \"metricResult\", \"metricDescriptors\", \"metatrace\", \"status\"]),\n set: $util.oneOfSetter($oneOfFields)\n });\n\n /**\n * Creates a new TraceProcessorRpc instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.TraceProcessorRpc\n * @static\n * @param {perfetto.protos.ITraceProcessorRpc=} [properties] Properties to set\n * @returns {perfetto.protos.TraceProcessorRpc} TraceProcessorRpc instance\n */\n TraceProcessorRpc.create = function create(properties) {\n return new TraceProcessorRpc(properties);\n };\n\n /**\n * Encodes the specified TraceProcessorRpc message. Does not implicitly {@link perfetto.protos.TraceProcessorRpc.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.TraceProcessorRpc\n * @static\n * @param {perfetto.protos.ITraceProcessorRpc} message TraceProcessorRpc message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n TraceProcessorRpc.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.seq != null && Object.hasOwnProperty.call(message, \"seq\"))\n writer.uint32(/* id 1, wireType 0 =*/8).int64(message.seq);\n if (message.request != null && Object.hasOwnProperty.call(message, \"request\"))\n writer.uint32(/* id 2, wireType 0 =*/16).int32(message.request);\n if (message.response != null && Object.hasOwnProperty.call(message, \"response\"))\n writer.uint32(/* id 3, wireType 0 =*/24).int32(message.response);\n if (message.invalidRequest != null && Object.hasOwnProperty.call(message, \"invalidRequest\"))\n writer.uint32(/* id 4, wireType 0 =*/32).int32(message.invalidRequest);\n if (message.fatalError != null && Object.hasOwnProperty.call(message, \"fatalError\"))\n writer.uint32(/* id 5, wireType 2 =*/42).string(message.fatalError);\n if (message.appendTraceData != null && Object.hasOwnProperty.call(message, \"appendTraceData\"))\n writer.uint32(/* id 101, wireType 2 =*/810).bytes(message.appendTraceData);\n if (message.queryArgs != null && Object.hasOwnProperty.call(message, \"queryArgs\"))\n $root.perfetto.protos.QueryArgs.encode(message.queryArgs, writer.uint32(/* id 103, wireType 2 =*/826).fork()).ldelim();\n if (message.rawQueryArgs != null && Object.hasOwnProperty.call(message, \"rawQueryArgs\"))\n $root.perfetto.protos.RawQueryArgs.encode(message.rawQueryArgs, writer.uint32(/* id 104, wireType 2 =*/834).fork()).ldelim();\n if (message.computeMetricArgs != null && Object.hasOwnProperty.call(message, \"computeMetricArgs\"))\n $root.perfetto.protos.ComputeMetricArgs.encode(message.computeMetricArgs, writer.uint32(/* id 105, wireType 2 =*/842).fork()).ldelim();\n if (message.appendResult != null && Object.hasOwnProperty.call(message, \"appendResult\"))\n $root.perfetto.protos.AppendTraceDataResult.encode(message.appendResult, writer.uint32(/* id 201, wireType 2 =*/1610).fork()).ldelim();\n if (message.queryResult != null && Object.hasOwnProperty.call(message, \"queryResult\"))\n $root.perfetto.protos.QueryResult.encode(message.queryResult, writer.uint32(/* id 203, wireType 2 =*/1626).fork()).ldelim();\n if (message.rawQueryResult != null && Object.hasOwnProperty.call(message, \"rawQueryResult\"))\n $root.perfetto.protos.RawQueryResult.encode(message.rawQueryResult, writer.uint32(/* id 204, wireType 2 =*/1634).fork()).ldelim();\n if (message.metricResult != null && Object.hasOwnProperty.call(message, \"metricResult\"))\n $root.perfetto.protos.ComputeMetricResult.encode(message.metricResult, writer.uint32(/* id 205, wireType 2 =*/1642).fork()).ldelim();\n if (message.metricDescriptors != null && Object.hasOwnProperty.call(message, \"metricDescriptors\"))\n $root.perfetto.protos.DescriptorSet.encode(message.metricDescriptors, writer.uint32(/* id 206, wireType 2 =*/1650).fork()).ldelim();\n if (message.metatrace != null && Object.hasOwnProperty.call(message, \"metatrace\"))\n $root.perfetto.protos.DisableAndReadMetatraceResult.encode(message.metatrace, writer.uint32(/* id 209, wireType 2 =*/1674).fork()).ldelim();\n if (message.status != null && Object.hasOwnProperty.call(message, \"status\"))\n $root.perfetto.protos.StatusResult.encode(message.status, writer.uint32(/* id 210, wireType 2 =*/1682).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified TraceProcessorRpc message, length delimited. Does not implicitly {@link perfetto.protos.TraceProcessorRpc.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.TraceProcessorRpc\n * @static\n * @param {perfetto.protos.ITraceProcessorRpc} message TraceProcessorRpc message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n TraceProcessorRpc.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a TraceProcessorRpc message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.TraceProcessorRpc\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.TraceProcessorRpc} TraceProcessorRpc\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n TraceProcessorRpc.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.TraceProcessorRpc();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.seq = reader.int64();\n break;\n case 5:\n message.fatalError = reader.string();\n break;\n case 2:\n message.request = reader.int32();\n break;\n case 3:\n message.response = reader.int32();\n break;\n case 4:\n message.invalidRequest = reader.int32();\n break;\n case 101:\n message.appendTraceData = reader.bytes();\n break;\n case 103:\n message.queryArgs = $root.perfetto.protos.QueryArgs.decode(reader, reader.uint32());\n break;\n case 104:\n message.rawQueryArgs = $root.perfetto.protos.RawQueryArgs.decode(reader, reader.uint32());\n break;\n case 105:\n message.computeMetricArgs = $root.perfetto.protos.ComputeMetricArgs.decode(reader, reader.uint32());\n break;\n case 201:\n message.appendResult = $root.perfetto.protos.AppendTraceDataResult.decode(reader, reader.uint32());\n break;\n case 203:\n message.queryResult = $root.perfetto.protos.QueryResult.decode(reader, reader.uint32());\n break;\n case 204:\n message.rawQueryResult = $root.perfetto.protos.RawQueryResult.decode(reader, reader.uint32());\n break;\n case 205:\n message.metricResult = $root.perfetto.protos.ComputeMetricResult.decode(reader, reader.uint32());\n break;\n case 206:\n message.metricDescriptors = $root.perfetto.protos.DescriptorSet.decode(reader, reader.uint32());\n break;\n case 209:\n message.metatrace = $root.perfetto.protos.DisableAndReadMetatraceResult.decode(reader, reader.uint32());\n break;\n case 210:\n message.status = $root.perfetto.protos.StatusResult.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a TraceProcessorRpc message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.TraceProcessorRpc\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.TraceProcessorRpc} TraceProcessorRpc\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n TraceProcessorRpc.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a TraceProcessorRpc message.\n * @function verify\n * @memberof perfetto.protos.TraceProcessorRpc\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n TraceProcessorRpc.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n var properties = {};\n if (message.seq != null && message.hasOwnProperty(\"seq\"))\n if (!$util.isInteger(message.seq) && !(message.seq && $util.isInteger(message.seq.low) && $util.isInteger(message.seq.high)))\n return \"seq: integer|Long expected\";\n if (message.fatalError != null && message.hasOwnProperty(\"fatalError\"))\n if (!$util.isString(message.fatalError))\n return \"fatalError: string expected\";\n if (message.request != null && message.hasOwnProperty(\"request\")) {\n properties.type = 1;\n switch (message.request) {\n default:\n return \"request: enum value expected\";\n case 0:\n case 1:\n case 2:\n case 3:\n case 4:\n case 5:\n case 6:\n case 7:\n case 8:\n case 9:\n case 10:\n break;\n }\n }\n if (message.response != null && message.hasOwnProperty(\"response\")) {\n if (properties.type === 1)\n return \"type: multiple values\";\n properties.type = 1;\n switch (message.response) {\n default:\n return \"response: enum value expected\";\n case 0:\n case 1:\n case 2:\n case 3:\n case 4:\n case 5:\n case 6:\n case 7:\n case 8:\n case 9:\n case 10:\n break;\n }\n }\n if (message.invalidRequest != null && message.hasOwnProperty(\"invalidRequest\")) {\n if (properties.type === 1)\n return \"type: multiple values\";\n properties.type = 1;\n switch (message.invalidRequest) {\n default:\n return \"invalidRequest: enum value expected\";\n case 0:\n case 1:\n case 2:\n case 3:\n case 4:\n case 5:\n case 6:\n case 7:\n case 8:\n case 9:\n case 10:\n break;\n }\n }\n if (message.appendTraceData != null && message.hasOwnProperty(\"appendTraceData\")) {\n properties.args = 1;\n if (!(message.appendTraceData && typeof message.appendTraceData.length === \"number\" || $util.isString(message.appendTraceData)))\n return \"appendTraceData: buffer expected\";\n }\n if (message.queryArgs != null && message.hasOwnProperty(\"queryArgs\")) {\n if (properties.args === 1)\n return \"args: multiple values\";\n properties.args = 1;\n {\n var error = $root.perfetto.protos.QueryArgs.verify(message.queryArgs);\n if (error)\n return \"queryArgs.\" + error;\n }\n }\n if (message.rawQueryArgs != null && message.hasOwnProperty(\"rawQueryArgs\")) {\n if (properties.args === 1)\n return \"args: multiple values\";\n properties.args = 1;\n {\n var error = $root.perfetto.protos.RawQueryArgs.verify(message.rawQueryArgs);\n if (error)\n return \"rawQueryArgs.\" + error;\n }\n }\n if (message.computeMetricArgs != null && message.hasOwnProperty(\"computeMetricArgs\")) {\n if (properties.args === 1)\n return \"args: multiple values\";\n properties.args = 1;\n {\n var error = $root.perfetto.protos.ComputeMetricArgs.verify(message.computeMetricArgs);\n if (error)\n return \"computeMetricArgs.\" + error;\n }\n }\n if (message.appendResult != null && message.hasOwnProperty(\"appendResult\")) {\n if (properties.args === 1)\n return \"args: multiple values\";\n properties.args = 1;\n {\n var error = $root.perfetto.protos.AppendTraceDataResult.verify(message.appendResult);\n if (error)\n return \"appendResult.\" + error;\n }\n }\n if (message.queryResult != null && message.hasOwnProperty(\"queryResult\")) {\n if (properties.args === 1)\n return \"args: multiple values\";\n properties.args = 1;\n {\n var error = $root.perfetto.protos.QueryResult.verify(message.queryResult);\n if (error)\n return \"queryResult.\" + error;\n }\n }\n if (message.rawQueryResult != null && message.hasOwnProperty(\"rawQueryResult\")) {\n if (properties.args === 1)\n return \"args: multiple values\";\n properties.args = 1;\n {\n var error = $root.perfetto.protos.RawQueryResult.verify(message.rawQueryResult);\n if (error)\n return \"rawQueryResult.\" + error;\n }\n }\n if (message.metricResult != null && message.hasOwnProperty(\"metricResult\")) {\n if (properties.args === 1)\n return \"args: multiple values\";\n properties.args = 1;\n {\n var error = $root.perfetto.protos.ComputeMetricResult.verify(message.metricResult);\n if (error)\n return \"metricResult.\" + error;\n }\n }\n if (message.metricDescriptors != null && message.hasOwnProperty(\"metricDescriptors\")) {\n if (properties.args === 1)\n return \"args: multiple values\";\n properties.args = 1;\n {\n var error = $root.perfetto.protos.DescriptorSet.verify(message.metricDescriptors);\n if (error)\n return \"metricDescriptors.\" + error;\n }\n }\n if (message.metatrace != null && message.hasOwnProperty(\"metatrace\")) {\n if (properties.args === 1)\n return \"args: multiple values\";\n properties.args = 1;\n {\n var error = $root.perfetto.protos.DisableAndReadMetatraceResult.verify(message.metatrace);\n if (error)\n return \"metatrace.\" + error;\n }\n }\n if (message.status != null && message.hasOwnProperty(\"status\")) {\n if (properties.args === 1)\n return \"args: multiple values\";\n properties.args = 1;\n {\n var error = $root.perfetto.protos.StatusResult.verify(message.status);\n if (error)\n return \"status.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates a TraceProcessorRpc message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.TraceProcessorRpc\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.TraceProcessorRpc} TraceProcessorRpc\n */\n TraceProcessorRpc.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.TraceProcessorRpc)\n return object;\n var message = new $root.perfetto.protos.TraceProcessorRpc();\n if (object.seq != null)\n if ($util.Long)\n (message.seq = $util.Long.fromValue(object.seq)).unsigned = false;\n else if (typeof object.seq === \"string\")\n message.seq = parseInt(object.seq, 10);\n else if (typeof object.seq === \"number\")\n message.seq = object.seq;\n else if (typeof object.seq === \"object\")\n message.seq = new $util.LongBits(object.seq.low >>> 0, object.seq.high >>> 0).toNumber();\n if (object.fatalError != null)\n message.fatalError = String(object.fatalError);\n switch (object.request) {\n case \"TPM_UNSPECIFIED\":\n case 0:\n message.request = 0;\n break;\n case \"TPM_APPEND_TRACE_DATA\":\n case 1:\n message.request = 1;\n break;\n case \"TPM_FINALIZE_TRACE_DATA\":\n case 2:\n message.request = 2;\n break;\n case \"TPM_QUERY_STREAMING\":\n case 3:\n message.request = 3;\n break;\n case \"TPM_QUERY_RAW_DEPRECATED\":\n case 4:\n message.request = 4;\n break;\n case \"TPM_COMPUTE_METRIC\":\n case 5:\n message.request = 5;\n break;\n case \"TPM_GET_METRIC_DESCRIPTORS\":\n case 6:\n message.request = 6;\n break;\n case \"TPM_RESTORE_INITIAL_TABLES\":\n case 7:\n message.request = 7;\n break;\n case \"TPM_ENABLE_METATRACE\":\n case 8:\n message.request = 8;\n break;\n case \"TPM_DISABLE_AND_READ_METATRACE\":\n case 9:\n message.request = 9;\n break;\n case \"TPM_GET_STATUS\":\n case 10:\n message.request = 10;\n break;\n }\n switch (object.response) {\n case \"TPM_UNSPECIFIED\":\n case 0:\n message.response = 0;\n break;\n case \"TPM_APPEND_TRACE_DATA\":\n case 1:\n message.response = 1;\n break;\n case \"TPM_FINALIZE_TRACE_DATA\":\n case 2:\n message.response = 2;\n break;\n case \"TPM_QUERY_STREAMING\":\n case 3:\n message.response = 3;\n break;\n case \"TPM_QUERY_RAW_DEPRECATED\":\n case 4:\n message.response = 4;\n break;\n case \"TPM_COMPUTE_METRIC\":\n case 5:\n message.response = 5;\n break;\n case \"TPM_GET_METRIC_DESCRIPTORS\":\n case 6:\n message.response = 6;\n break;\n case \"TPM_RESTORE_INITIAL_TABLES\":\n case 7:\n message.response = 7;\n break;\n case \"TPM_ENABLE_METATRACE\":\n case 8:\n message.response = 8;\n break;\n case \"TPM_DISABLE_AND_READ_METATRACE\":\n case 9:\n message.response = 9;\n break;\n case \"TPM_GET_STATUS\":\n case 10:\n message.response = 10;\n break;\n }\n switch (object.invalidRequest) {\n case \"TPM_UNSPECIFIED\":\n case 0:\n message.invalidRequest = 0;\n break;\n case \"TPM_APPEND_TRACE_DATA\":\n case 1:\n message.invalidRequest = 1;\n break;\n case \"TPM_FINALIZE_TRACE_DATA\":\n case 2:\n message.invalidRequest = 2;\n break;\n case \"TPM_QUERY_STREAMING\":\n case 3:\n message.invalidRequest = 3;\n break;\n case \"TPM_QUERY_RAW_DEPRECATED\":\n case 4:\n message.invalidRequest = 4;\n break;\n case \"TPM_COMPUTE_METRIC\":\n case 5:\n message.invalidRequest = 5;\n break;\n case \"TPM_GET_METRIC_DESCRIPTORS\":\n case 6:\n message.invalidRequest = 6;\n break;\n case \"TPM_RESTORE_INITIAL_TABLES\":\n case 7:\n message.invalidRequest = 7;\n break;\n case \"TPM_ENABLE_METATRACE\":\n case 8:\n message.invalidRequest = 8;\n break;\n case \"TPM_DISABLE_AND_READ_METATRACE\":\n case 9:\n message.invalidRequest = 9;\n break;\n case \"TPM_GET_STATUS\":\n case 10:\n message.invalidRequest = 10;\n break;\n }\n if (object.appendTraceData != null)\n if (typeof object.appendTraceData === \"string\")\n $util.base64.decode(object.appendTraceData, message.appendTraceData = $util.newBuffer($util.base64.length(object.appendTraceData)), 0);\n else if (object.appendTraceData.length)\n message.appendTraceData = object.appendTraceData;\n if (object.queryArgs != null) {\n if (typeof object.queryArgs !== \"object\")\n throw TypeError(\".perfetto.protos.TraceProcessorRpc.queryArgs: object expected\");\n message.queryArgs = $root.perfetto.protos.QueryArgs.fromObject(object.queryArgs);\n }\n if (object.rawQueryArgs != null) {\n if (typeof object.rawQueryArgs !== \"object\")\n throw TypeError(\".perfetto.protos.TraceProcessorRpc.rawQueryArgs: object expected\");\n message.rawQueryArgs = $root.perfetto.protos.RawQueryArgs.fromObject(object.rawQueryArgs);\n }\n if (object.computeMetricArgs != null) {\n if (typeof object.computeMetricArgs !== \"object\")\n throw TypeError(\".perfetto.protos.TraceProcessorRpc.computeMetricArgs: object expected\");\n message.computeMetricArgs = $root.perfetto.protos.ComputeMetricArgs.fromObject(object.computeMetricArgs);\n }\n if (object.appendResult != null) {\n if (typeof object.appendResult !== \"object\")\n throw TypeError(\".perfetto.protos.TraceProcessorRpc.appendResult: object expected\");\n message.appendResult = $root.perfetto.protos.AppendTraceDataResult.fromObject(object.appendResult);\n }\n if (object.queryResult != null) {\n if (typeof object.queryResult !== \"object\")\n throw TypeError(\".perfetto.protos.TraceProcessorRpc.queryResult: object expected\");\n message.queryResult = $root.perfetto.protos.QueryResult.fromObject(object.queryResult);\n }\n if (object.rawQueryResult != null) {\n if (typeof object.rawQueryResult !== \"object\")\n throw TypeError(\".perfetto.protos.TraceProcessorRpc.rawQueryResult: object expected\");\n message.rawQueryResult = $root.perfetto.protos.RawQueryResult.fromObject(object.rawQueryResult);\n }\n if (object.metricResult != null) {\n if (typeof object.metricResult !== \"object\")\n throw TypeError(\".perfetto.protos.TraceProcessorRpc.metricResult: object expected\");\n message.metricResult = $root.perfetto.protos.ComputeMetricResult.fromObject(object.metricResult);\n }\n if (object.metricDescriptors != null) {\n if (typeof object.metricDescriptors !== \"object\")\n throw TypeError(\".perfetto.protos.TraceProcessorRpc.metricDescriptors: object expected\");\n message.metricDescriptors = $root.perfetto.protos.DescriptorSet.fromObject(object.metricDescriptors);\n }\n if (object.metatrace != null) {\n if (typeof object.metatrace !== \"object\")\n throw TypeError(\".perfetto.protos.TraceProcessorRpc.metatrace: object expected\");\n message.metatrace = $root.perfetto.protos.DisableAndReadMetatraceResult.fromObject(object.metatrace);\n }\n if (object.status != null) {\n if (typeof object.status !== \"object\")\n throw TypeError(\".perfetto.protos.TraceProcessorRpc.status: object expected\");\n message.status = $root.perfetto.protos.StatusResult.fromObject(object.status);\n }\n return message;\n };\n\n /**\n * Creates a plain object from a TraceProcessorRpc message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.TraceProcessorRpc\n * @static\n * @param {perfetto.protos.TraceProcessorRpc} message TraceProcessorRpc\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n TraceProcessorRpc.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.seq = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.seq = options.longs === String ? \"0\" : 0;\n object.fatalError = \"\";\n }\n if (message.seq != null && message.hasOwnProperty(\"seq\"))\n if (typeof message.seq === \"number\")\n object.seq = options.longs === String ? String(message.seq) : message.seq;\n else\n object.seq = options.longs === String ? $util.Long.prototype.toString.call(message.seq) : options.longs === Number ? new $util.LongBits(message.seq.low >>> 0, message.seq.high >>> 0).toNumber() : message.seq;\n if (message.request != null && message.hasOwnProperty(\"request\")) {\n object.request = options.enums === String ? $root.perfetto.protos.TraceProcessorRpc.TraceProcessorMethod[message.request] : message.request;\n if (options.oneofs)\n object.type = \"request\";\n }\n if (message.response != null && message.hasOwnProperty(\"response\")) {\n object.response = options.enums === String ? $root.perfetto.protos.TraceProcessorRpc.TraceProcessorMethod[message.response] : message.response;\n if (options.oneofs)\n object.type = \"response\";\n }\n if (message.invalidRequest != null && message.hasOwnProperty(\"invalidRequest\")) {\n object.invalidRequest = options.enums === String ? $root.perfetto.protos.TraceProcessorRpc.TraceProcessorMethod[message.invalidRequest] : message.invalidRequest;\n if (options.oneofs)\n object.type = \"invalidRequest\";\n }\n if (message.fatalError != null && message.hasOwnProperty(\"fatalError\"))\n object.fatalError = message.fatalError;\n if (message.appendTraceData != null && message.hasOwnProperty(\"appendTraceData\")) {\n object.appendTraceData = options.bytes === String ? $util.base64.encode(message.appendTraceData, 0, message.appendTraceData.length) : options.bytes === Array ? Array.prototype.slice.call(message.appendTraceData) : message.appendTraceData;\n if (options.oneofs)\n object.args = \"appendTraceData\";\n }\n if (message.queryArgs != null && message.hasOwnProperty(\"queryArgs\")) {\n object.queryArgs = $root.perfetto.protos.QueryArgs.toObject(message.queryArgs, options);\n if (options.oneofs)\n object.args = \"queryArgs\";\n }\n if (message.rawQueryArgs != null && message.hasOwnProperty(\"rawQueryArgs\")) {\n object.rawQueryArgs = $root.perfetto.protos.RawQueryArgs.toObject(message.rawQueryArgs, options);\n if (options.oneofs)\n object.args = \"rawQueryArgs\";\n }\n if (message.computeMetricArgs != null && message.hasOwnProperty(\"computeMetricArgs\")) {\n object.computeMetricArgs = $root.perfetto.protos.ComputeMetricArgs.toObject(message.computeMetricArgs, options);\n if (options.oneofs)\n object.args = \"computeMetricArgs\";\n }\n if (message.appendResult != null && message.hasOwnProperty(\"appendResult\")) {\n object.appendResult = $root.perfetto.protos.AppendTraceDataResult.toObject(message.appendResult, options);\n if (options.oneofs)\n object.args = \"appendResult\";\n }\n if (message.queryResult != null && message.hasOwnProperty(\"queryResult\")) {\n object.queryResult = $root.perfetto.protos.QueryResult.toObject(message.queryResult, options);\n if (options.oneofs)\n object.args = \"queryResult\";\n }\n if (message.rawQueryResult != null && message.hasOwnProperty(\"rawQueryResult\")) {\n object.rawQueryResult = $root.perfetto.protos.RawQueryResult.toObject(message.rawQueryResult, options);\n if (options.oneofs)\n object.args = \"rawQueryResult\";\n }\n if (message.metricResult != null && message.hasOwnProperty(\"metricResult\")) {\n object.metricResult = $root.perfetto.protos.ComputeMetricResult.toObject(message.metricResult, options);\n if (options.oneofs)\n object.args = \"metricResult\";\n }\n if (message.metricDescriptors != null && message.hasOwnProperty(\"metricDescriptors\")) {\n object.metricDescriptors = $root.perfetto.protos.DescriptorSet.toObject(message.metricDescriptors, options);\n if (options.oneofs)\n object.args = \"metricDescriptors\";\n }\n if (message.metatrace != null && message.hasOwnProperty(\"metatrace\")) {\n object.metatrace = $root.perfetto.protos.DisableAndReadMetatraceResult.toObject(message.metatrace, options);\n if (options.oneofs)\n object.args = \"metatrace\";\n }\n if (message.status != null && message.hasOwnProperty(\"status\")) {\n object.status = $root.perfetto.protos.StatusResult.toObject(message.status, options);\n if (options.oneofs)\n object.args = \"status\";\n }\n return object;\n };\n\n /**\n * Converts this TraceProcessorRpc to JSON.\n * @function toJSON\n * @memberof perfetto.protos.TraceProcessorRpc\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n TraceProcessorRpc.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n /**\n * TraceProcessorMethod enum.\n * @name perfetto.protos.TraceProcessorRpc.TraceProcessorMethod\n * @enum {number}\n * @property {number} TPM_UNSPECIFIED=0 TPM_UNSPECIFIED value\n * @property {number} TPM_APPEND_TRACE_DATA=1 TPM_APPEND_TRACE_DATA value\n * @property {number} TPM_FINALIZE_TRACE_DATA=2 TPM_FINALIZE_TRACE_DATA value\n * @property {number} TPM_QUERY_STREAMING=3 TPM_QUERY_STREAMING value\n * @property {number} TPM_QUERY_RAW_DEPRECATED=4 TPM_QUERY_RAW_DEPRECATED value\n * @property {number} TPM_COMPUTE_METRIC=5 TPM_COMPUTE_METRIC value\n * @property {number} TPM_GET_METRIC_DESCRIPTORS=6 TPM_GET_METRIC_DESCRIPTORS value\n * @property {number} TPM_RESTORE_INITIAL_TABLES=7 TPM_RESTORE_INITIAL_TABLES value\n * @property {number} TPM_ENABLE_METATRACE=8 TPM_ENABLE_METATRACE value\n * @property {number} TPM_DISABLE_AND_READ_METATRACE=9 TPM_DISABLE_AND_READ_METATRACE value\n * @property {number} TPM_GET_STATUS=10 TPM_GET_STATUS value\n */\n TraceProcessorRpc.TraceProcessorMethod = (function() {\n var valuesById = {}, values = Object.create(valuesById);\n values[valuesById[0] = \"TPM_UNSPECIFIED\"] = 0;\n values[valuesById[1] = \"TPM_APPEND_TRACE_DATA\"] = 1;\n values[valuesById[2] = \"TPM_FINALIZE_TRACE_DATA\"] = 2;\n values[valuesById[3] = \"TPM_QUERY_STREAMING\"] = 3;\n values[valuesById[4] = \"TPM_QUERY_RAW_DEPRECATED\"] = 4;\n values[valuesById[5] = \"TPM_COMPUTE_METRIC\"] = 5;\n values[valuesById[6] = \"TPM_GET_METRIC_DESCRIPTORS\"] = 6;\n values[valuesById[7] = \"TPM_RESTORE_INITIAL_TABLES\"] = 7;\n values[valuesById[8] = \"TPM_ENABLE_METATRACE\"] = 8;\n values[valuesById[9] = \"TPM_DISABLE_AND_READ_METATRACE\"] = 9;\n values[valuesById[10] = \"TPM_GET_STATUS\"] = 10;\n return values;\n })();\n\n return TraceProcessorRpc;\n })();\n\n protos.AppendTraceDataResult = (function() {\n\n /**\n * Properties of an AppendTraceDataResult.\n * @memberof perfetto.protos\n * @interface IAppendTraceDataResult\n * @property {number|null} [totalBytesParsed] AppendTraceDataResult totalBytesParsed\n * @property {string|null} [error] AppendTraceDataResult error\n */\n\n /**\n * Constructs a new AppendTraceDataResult.\n * @memberof perfetto.protos\n * @classdesc Represents an AppendTraceDataResult.\n * @implements IAppendTraceDataResult\n * @constructor\n * @param {perfetto.protos.IAppendTraceDataResult=} [properties] Properties to set\n */\n function AppendTraceDataResult(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * AppendTraceDataResult totalBytesParsed.\n * @member {number} totalBytesParsed\n * @memberof perfetto.protos.AppendTraceDataResult\n * @instance\n */\n AppendTraceDataResult.prototype.totalBytesParsed = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * AppendTraceDataResult error.\n * @member {string} error\n * @memberof perfetto.protos.AppendTraceDataResult\n * @instance\n */\n AppendTraceDataResult.prototype.error = \"\";\n\n /**\n * Creates a new AppendTraceDataResult instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AppendTraceDataResult\n * @static\n * @param {perfetto.protos.IAppendTraceDataResult=} [properties] Properties to set\n * @returns {perfetto.protos.AppendTraceDataResult} AppendTraceDataResult instance\n */\n AppendTraceDataResult.create = function create(properties) {\n return new AppendTraceDataResult(properties);\n };\n\n /**\n * Encodes the specified AppendTraceDataResult message. Does not implicitly {@link perfetto.protos.AppendTraceDataResult.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AppendTraceDataResult\n * @static\n * @param {perfetto.protos.IAppendTraceDataResult} message AppendTraceDataResult message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n AppendTraceDataResult.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.totalBytesParsed != null && Object.hasOwnProperty.call(message, \"totalBytesParsed\"))\n writer.uint32(/* id 1, wireType 0 =*/8).int64(message.totalBytesParsed);\n if (message.error != null && Object.hasOwnProperty.call(message, \"error\"))\n writer.uint32(/* id 2, wireType 2 =*/18).string(message.error);\n return writer;\n };\n\n /**\n * Encodes the specified AppendTraceDataResult message, length delimited. Does not implicitly {@link perfetto.protos.AppendTraceDataResult.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AppendTraceDataResult\n * @static\n * @param {perfetto.protos.IAppendTraceDataResult} message AppendTraceDataResult message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n AppendTraceDataResult.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes an AppendTraceDataResult message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AppendTraceDataResult\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AppendTraceDataResult} AppendTraceDataResult\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n AppendTraceDataResult.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AppendTraceDataResult();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.totalBytesParsed = reader.int64();\n break;\n case 2:\n message.error = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes an AppendTraceDataResult message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AppendTraceDataResult\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AppendTraceDataResult} AppendTraceDataResult\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n AppendTraceDataResult.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies an AppendTraceDataResult message.\n * @function verify\n * @memberof perfetto.protos.AppendTraceDataResult\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n AppendTraceDataResult.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.totalBytesParsed != null && message.hasOwnProperty(\"totalBytesParsed\"))\n if (!$util.isInteger(message.totalBytesParsed) && !(message.totalBytesParsed && $util.isInteger(message.totalBytesParsed.low) && $util.isInteger(message.totalBytesParsed.high)))\n return \"totalBytesParsed: integer|Long expected\";\n if (message.error != null && message.hasOwnProperty(\"error\"))\n if (!$util.isString(message.error))\n return \"error: string expected\";\n return null;\n };\n\n /**\n * Creates an AppendTraceDataResult message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AppendTraceDataResult\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AppendTraceDataResult} AppendTraceDataResult\n */\n AppendTraceDataResult.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AppendTraceDataResult)\n return object;\n var message = new $root.perfetto.protos.AppendTraceDataResult();\n if (object.totalBytesParsed != null)\n if ($util.Long)\n (message.totalBytesParsed = $util.Long.fromValue(object.totalBytesParsed)).unsigned = false;\n else if (typeof object.totalBytesParsed === \"string\")\n message.totalBytesParsed = parseInt(object.totalBytesParsed, 10);\n else if (typeof object.totalBytesParsed === \"number\")\n message.totalBytesParsed = object.totalBytesParsed;\n else if (typeof object.totalBytesParsed === \"object\")\n message.totalBytesParsed = new $util.LongBits(object.totalBytesParsed.low >>> 0, object.totalBytesParsed.high >>> 0).toNumber();\n if (object.error != null)\n message.error = String(object.error);\n return message;\n };\n\n /**\n * Creates a plain object from an AppendTraceDataResult message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AppendTraceDataResult\n * @static\n * @param {perfetto.protos.AppendTraceDataResult} message AppendTraceDataResult\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n AppendTraceDataResult.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.totalBytesParsed = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.totalBytesParsed = options.longs === String ? \"0\" : 0;\n object.error = \"\";\n }\n if (message.totalBytesParsed != null && message.hasOwnProperty(\"totalBytesParsed\"))\n if (typeof message.totalBytesParsed === \"number\")\n object.totalBytesParsed = options.longs === String ? String(message.totalBytesParsed) : message.totalBytesParsed;\n else\n object.totalBytesParsed = options.longs === String ? $util.Long.prototype.toString.call(message.totalBytesParsed) : options.longs === Number ? new $util.LongBits(message.totalBytesParsed.low >>> 0, message.totalBytesParsed.high >>> 0).toNumber() : message.totalBytesParsed;\n if (message.error != null && message.hasOwnProperty(\"error\"))\n object.error = message.error;\n return object;\n };\n\n /**\n * Converts this AppendTraceDataResult to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AppendTraceDataResult\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n AppendTraceDataResult.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return AppendTraceDataResult;\n })();\n\n protos.QueryArgs = (function() {\n\n /**\n * Properties of a QueryArgs.\n * @memberof perfetto.protos\n * @interface IQueryArgs\n * @property {string|null} [sqlQuery] QueryArgs sqlQuery\n * @property {number|null} [timeQueuedNs] QueryArgs timeQueuedNs\n */\n\n /**\n * Constructs a new QueryArgs.\n * @memberof perfetto.protos\n * @classdesc Represents a QueryArgs.\n * @implements IQueryArgs\n * @constructor\n * @param {perfetto.protos.IQueryArgs=} [properties] Properties to set\n */\n function QueryArgs(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * QueryArgs sqlQuery.\n * @member {string} sqlQuery\n * @memberof perfetto.protos.QueryArgs\n * @instance\n */\n QueryArgs.prototype.sqlQuery = \"\";\n\n /**\n * QueryArgs timeQueuedNs.\n * @member {number} timeQueuedNs\n * @memberof perfetto.protos.QueryArgs\n * @instance\n */\n QueryArgs.prototype.timeQueuedNs = $util.Long ? $util.Long.fromBits(0,0,true) : 0;\n\n /**\n * Creates a new QueryArgs instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.QueryArgs\n * @static\n * @param {perfetto.protos.IQueryArgs=} [properties] Properties to set\n * @returns {perfetto.protos.QueryArgs} QueryArgs instance\n */\n QueryArgs.create = function create(properties) {\n return new QueryArgs(properties);\n };\n\n /**\n * Encodes the specified QueryArgs message. Does not implicitly {@link perfetto.protos.QueryArgs.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.QueryArgs\n * @static\n * @param {perfetto.protos.IQueryArgs} message QueryArgs message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n QueryArgs.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.sqlQuery != null && Object.hasOwnProperty.call(message, \"sqlQuery\"))\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.sqlQuery);\n if (message.timeQueuedNs != null && Object.hasOwnProperty.call(message, \"timeQueuedNs\"))\n writer.uint32(/* id 2, wireType 0 =*/16).uint64(message.timeQueuedNs);\n return writer;\n };\n\n /**\n * Encodes the specified QueryArgs message, length delimited. Does not implicitly {@link perfetto.protos.QueryArgs.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.QueryArgs\n * @static\n * @param {perfetto.protos.IQueryArgs} message QueryArgs message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n QueryArgs.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a QueryArgs message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.QueryArgs\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.QueryArgs} QueryArgs\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n QueryArgs.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.QueryArgs();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.sqlQuery = reader.string();\n break;\n case 2:\n message.timeQueuedNs = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a QueryArgs message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.QueryArgs\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.QueryArgs} QueryArgs\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n QueryArgs.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a QueryArgs message.\n * @function verify\n * @memberof perfetto.protos.QueryArgs\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n QueryArgs.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.sqlQuery != null && message.hasOwnProperty(\"sqlQuery\"))\n if (!$util.isString(message.sqlQuery))\n return \"sqlQuery: string expected\";\n if (message.timeQueuedNs != null && message.hasOwnProperty(\"timeQueuedNs\"))\n if (!$util.isInteger(message.timeQueuedNs) && !(message.timeQueuedNs && $util.isInteger(message.timeQueuedNs.low) && $util.isInteger(message.timeQueuedNs.high)))\n return \"timeQueuedNs: integer|Long expected\";\n return null;\n };\n\n /**\n * Creates a QueryArgs message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.QueryArgs\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.QueryArgs} QueryArgs\n */\n QueryArgs.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.QueryArgs)\n return object;\n var message = new $root.perfetto.protos.QueryArgs();\n if (object.sqlQuery != null)\n message.sqlQuery = String(object.sqlQuery);\n if (object.timeQueuedNs != null)\n if ($util.Long)\n (message.timeQueuedNs = $util.Long.fromValue(object.timeQueuedNs)).unsigned = true;\n else if (typeof object.timeQueuedNs === \"string\")\n message.timeQueuedNs = parseInt(object.timeQueuedNs, 10);\n else if (typeof object.timeQueuedNs === \"number\")\n message.timeQueuedNs = object.timeQueuedNs;\n else if (typeof object.timeQueuedNs === \"object\")\n message.timeQueuedNs = new $util.LongBits(object.timeQueuedNs.low >>> 0, object.timeQueuedNs.high >>> 0).toNumber(true);\n return message;\n };\n\n /**\n * Creates a plain object from a QueryArgs message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.QueryArgs\n * @static\n * @param {perfetto.protos.QueryArgs} message QueryArgs\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n QueryArgs.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.sqlQuery = \"\";\n if ($util.Long) {\n var long = new $util.Long(0, 0, true);\n object.timeQueuedNs = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.timeQueuedNs = options.longs === String ? \"0\" : 0;\n }\n if (message.sqlQuery != null && message.hasOwnProperty(\"sqlQuery\"))\n object.sqlQuery = message.sqlQuery;\n if (message.timeQueuedNs != null && message.hasOwnProperty(\"timeQueuedNs\"))\n if (typeof message.timeQueuedNs === \"number\")\n object.timeQueuedNs = options.longs === String ? String(message.timeQueuedNs) : message.timeQueuedNs;\n else\n object.timeQueuedNs = options.longs === String ? $util.Long.prototype.toString.call(message.timeQueuedNs) : options.longs === Number ? new $util.LongBits(message.timeQueuedNs.low >>> 0, message.timeQueuedNs.high >>> 0).toNumber(true) : message.timeQueuedNs;\n return object;\n };\n\n /**\n * Converts this QueryArgs to JSON.\n * @function toJSON\n * @memberof perfetto.protos.QueryArgs\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n QueryArgs.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return QueryArgs;\n })();\n\n protos.RawQueryArgs = (function() {\n\n /**\n * Properties of a RawQueryArgs.\n * @memberof perfetto.protos\n * @interface IRawQueryArgs\n * @property {string|null} [sqlQuery] RawQueryArgs sqlQuery\n * @property {number|null} [timeQueuedNs] RawQueryArgs timeQueuedNs\n */\n\n /**\n * Constructs a new RawQueryArgs.\n * @memberof perfetto.protos\n * @classdesc Represents a RawQueryArgs.\n * @implements IRawQueryArgs\n * @constructor\n * @param {perfetto.protos.IRawQueryArgs=} [properties] Properties to set\n */\n function RawQueryArgs(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * RawQueryArgs sqlQuery.\n * @member {string} sqlQuery\n * @memberof perfetto.protos.RawQueryArgs\n * @instance\n */\n RawQueryArgs.prototype.sqlQuery = \"\";\n\n /**\n * RawQueryArgs timeQueuedNs.\n * @member {number} timeQueuedNs\n * @memberof perfetto.protos.RawQueryArgs\n * @instance\n */\n RawQueryArgs.prototype.timeQueuedNs = $util.Long ? $util.Long.fromBits(0,0,true) : 0;\n\n /**\n * Creates a new RawQueryArgs instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.RawQueryArgs\n * @static\n * @param {perfetto.protos.IRawQueryArgs=} [properties] Properties to set\n * @returns {perfetto.protos.RawQueryArgs} RawQueryArgs instance\n */\n RawQueryArgs.create = function create(properties) {\n return new RawQueryArgs(properties);\n };\n\n /**\n * Encodes the specified RawQueryArgs message. Does not implicitly {@link perfetto.protos.RawQueryArgs.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.RawQueryArgs\n * @static\n * @param {perfetto.protos.IRawQueryArgs} message RawQueryArgs message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n RawQueryArgs.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.sqlQuery != null && Object.hasOwnProperty.call(message, \"sqlQuery\"))\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.sqlQuery);\n if (message.timeQueuedNs != null && Object.hasOwnProperty.call(message, \"timeQueuedNs\"))\n writer.uint32(/* id 2, wireType 0 =*/16).uint64(message.timeQueuedNs);\n return writer;\n };\n\n /**\n * Encodes the specified RawQueryArgs message, length delimited. Does not implicitly {@link perfetto.protos.RawQueryArgs.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.RawQueryArgs\n * @static\n * @param {perfetto.protos.IRawQueryArgs} message RawQueryArgs message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n RawQueryArgs.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a RawQueryArgs message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.RawQueryArgs\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.RawQueryArgs} RawQueryArgs\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n RawQueryArgs.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.RawQueryArgs();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.sqlQuery = reader.string();\n break;\n case 2:\n message.timeQueuedNs = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a RawQueryArgs message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.RawQueryArgs\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.RawQueryArgs} RawQueryArgs\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n RawQueryArgs.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a RawQueryArgs message.\n * @function verify\n * @memberof perfetto.protos.RawQueryArgs\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n RawQueryArgs.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.sqlQuery != null && message.hasOwnProperty(\"sqlQuery\"))\n if (!$util.isString(message.sqlQuery))\n return \"sqlQuery: string expected\";\n if (message.timeQueuedNs != null && message.hasOwnProperty(\"timeQueuedNs\"))\n if (!$util.isInteger(message.timeQueuedNs) && !(message.timeQueuedNs && $util.isInteger(message.timeQueuedNs.low) && $util.isInteger(message.timeQueuedNs.high)))\n return \"timeQueuedNs: integer|Long expected\";\n return null;\n };\n\n /**\n * Creates a RawQueryArgs message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.RawQueryArgs\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.RawQueryArgs} RawQueryArgs\n */\n RawQueryArgs.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.RawQueryArgs)\n return object;\n var message = new $root.perfetto.protos.RawQueryArgs();\n if (object.sqlQuery != null)\n message.sqlQuery = String(object.sqlQuery);\n if (object.timeQueuedNs != null)\n if ($util.Long)\n (message.timeQueuedNs = $util.Long.fromValue(object.timeQueuedNs)).unsigned = true;\n else if (typeof object.timeQueuedNs === \"string\")\n message.timeQueuedNs = parseInt(object.timeQueuedNs, 10);\n else if (typeof object.timeQueuedNs === \"number\")\n message.timeQueuedNs = object.timeQueuedNs;\n else if (typeof object.timeQueuedNs === \"object\")\n message.timeQueuedNs = new $util.LongBits(object.timeQueuedNs.low >>> 0, object.timeQueuedNs.high >>> 0).toNumber(true);\n return message;\n };\n\n /**\n * Creates a plain object from a RawQueryArgs message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.RawQueryArgs\n * @static\n * @param {perfetto.protos.RawQueryArgs} message RawQueryArgs\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n RawQueryArgs.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.sqlQuery = \"\";\n if ($util.Long) {\n var long = new $util.Long(0, 0, true);\n object.timeQueuedNs = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.timeQueuedNs = options.longs === String ? \"0\" : 0;\n }\n if (message.sqlQuery != null && message.hasOwnProperty(\"sqlQuery\"))\n object.sqlQuery = message.sqlQuery;\n if (message.timeQueuedNs != null && message.hasOwnProperty(\"timeQueuedNs\"))\n if (typeof message.timeQueuedNs === \"number\")\n object.timeQueuedNs = options.longs === String ? String(message.timeQueuedNs) : message.timeQueuedNs;\n else\n object.timeQueuedNs = options.longs === String ? $util.Long.prototype.toString.call(message.timeQueuedNs) : options.longs === Number ? new $util.LongBits(message.timeQueuedNs.low >>> 0, message.timeQueuedNs.high >>> 0).toNumber(true) : message.timeQueuedNs;\n return object;\n };\n\n /**\n * Converts this RawQueryArgs to JSON.\n * @function toJSON\n * @memberof perfetto.protos.RawQueryArgs\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n RawQueryArgs.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return RawQueryArgs;\n })();\n\n protos.RawQueryResult = (function() {\n\n /**\n * Properties of a RawQueryResult.\n * @memberof perfetto.protos\n * @interface IRawQueryResult\n * @property {Array.<perfetto.protos.RawQueryResult.IColumnDesc>|null} [columnDescriptors] RawQueryResult columnDescriptors\n * @property {number|null} [numRecords] RawQueryResult numRecords\n * @property {Array.<perfetto.protos.RawQueryResult.IColumnValues>|null} [columns] RawQueryResult columns\n * @property {string|null} [error] RawQueryResult error\n * @property {number|null} [executionTimeNs] RawQueryResult executionTimeNs\n */\n\n /**\n * Constructs a new RawQueryResult.\n * @memberof perfetto.protos\n * @classdesc Represents a RawQueryResult.\n * @implements IRawQueryResult\n * @constructor\n * @param {perfetto.protos.IRawQueryResult=} [properties] Properties to set\n */\n function RawQueryResult(properties) {\n this.columnDescriptors = [];\n this.columns = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * RawQueryResult columnDescriptors.\n * @member {Array.<perfetto.protos.RawQueryResult.IColumnDesc>} columnDescriptors\n * @memberof perfetto.protos.RawQueryResult\n * @instance\n */\n RawQueryResult.prototype.columnDescriptors = $util.emptyArray;\n\n /**\n * RawQueryResult numRecords.\n * @member {number} numRecords\n * @memberof perfetto.protos.RawQueryResult\n * @instance\n */\n RawQueryResult.prototype.numRecords = $util.Long ? $util.Long.fromBits(0,0,true) : 0;\n\n /**\n * RawQueryResult columns.\n * @member {Array.<perfetto.protos.RawQueryResult.IColumnValues>} columns\n * @memberof perfetto.protos.RawQueryResult\n * @instance\n */\n RawQueryResult.prototype.columns = $util.emptyArray;\n\n /**\n * RawQueryResult error.\n * @member {string} error\n * @memberof perfetto.protos.RawQueryResult\n * @instance\n */\n RawQueryResult.prototype.error = \"\";\n\n /**\n * RawQueryResult executionTimeNs.\n * @member {number} executionTimeNs\n * @memberof perfetto.protos.RawQueryResult\n * @instance\n */\n RawQueryResult.prototype.executionTimeNs = $util.Long ? $util.Long.fromBits(0,0,true) : 0;\n\n /**\n * Creates a new RawQueryResult instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.RawQueryResult\n * @static\n * @param {perfetto.protos.IRawQueryResult=} [properties] Properties to set\n * @returns {perfetto.protos.RawQueryResult} RawQueryResult instance\n */\n RawQueryResult.create = function create(properties) {\n return new RawQueryResult(properties);\n };\n\n /**\n * Encodes the specified RawQueryResult message. Does not implicitly {@link perfetto.protos.RawQueryResult.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.RawQueryResult\n * @static\n * @param {perfetto.protos.IRawQueryResult} message RawQueryResult message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n RawQueryResult.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.columnDescriptors != null && message.columnDescriptors.length)\n for (var i = 0; i < message.columnDescriptors.length; ++i)\n $root.perfetto.protos.RawQueryResult.ColumnDesc.encode(message.columnDescriptors[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n if (message.numRecords != null && Object.hasOwnProperty.call(message, \"numRecords\"))\n writer.uint32(/* id 2, wireType 0 =*/16).uint64(message.numRecords);\n if (message.columns != null && message.columns.length)\n for (var i = 0; i < message.columns.length; ++i)\n $root.perfetto.protos.RawQueryResult.ColumnValues.encode(message.columns[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();\n if (message.error != null && Object.hasOwnProperty.call(message, \"error\"))\n writer.uint32(/* id 4, wireType 2 =*/34).string(message.error);\n if (message.executionTimeNs != null && Object.hasOwnProperty.call(message, \"executionTimeNs\"))\n writer.uint32(/* id 5, wireType 0 =*/40).uint64(message.executionTimeNs);\n return writer;\n };\n\n /**\n * Encodes the specified RawQueryResult message, length delimited. Does not implicitly {@link perfetto.protos.RawQueryResult.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.RawQueryResult\n * @static\n * @param {perfetto.protos.IRawQueryResult} message RawQueryResult message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n RawQueryResult.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a RawQueryResult message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.RawQueryResult\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.RawQueryResult} RawQueryResult\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n RawQueryResult.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.RawQueryResult();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (!(message.columnDescriptors && message.columnDescriptors.length))\n message.columnDescriptors = [];\n message.columnDescriptors.push($root.perfetto.protos.RawQueryResult.ColumnDesc.decode(reader, reader.uint32()));\n break;\n case 2:\n message.numRecords = reader.uint64();\n break;\n case 3:\n if (!(message.columns && message.columns.length))\n message.columns = [];\n message.columns.push($root.perfetto.protos.RawQueryResult.ColumnValues.decode(reader, reader.uint32()));\n break;\n case 4:\n message.error = reader.string();\n break;\n case 5:\n message.executionTimeNs = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a RawQueryResult message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.RawQueryResult\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.RawQueryResult} RawQueryResult\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n RawQueryResult.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a RawQueryResult message.\n * @function verify\n * @memberof perfetto.protos.RawQueryResult\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n RawQueryResult.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.columnDescriptors != null && message.hasOwnProperty(\"columnDescriptors\")) {\n if (!Array.isArray(message.columnDescriptors))\n return \"columnDescriptors: array expected\";\n for (var i = 0; i < message.columnDescriptors.length; ++i) {\n var error = $root.perfetto.protos.RawQueryResult.ColumnDesc.verify(message.columnDescriptors[i]);\n if (error)\n return \"columnDescriptors.\" + error;\n }\n }\n if (message.numRecords != null && message.hasOwnProperty(\"numRecords\"))\n if (!$util.isInteger(message.numRecords) && !(message.numRecords && $util.isInteger(message.numRecords.low) && $util.isInteger(message.numRecords.high)))\n return \"numRecords: integer|Long expected\";\n if (message.columns != null && message.hasOwnProperty(\"columns\")) {\n if (!Array.isArray(message.columns))\n return \"columns: array expected\";\n for (var i = 0; i < message.columns.length; ++i) {\n var error = $root.perfetto.protos.RawQueryResult.ColumnValues.verify(message.columns[i]);\n if (error)\n return \"columns.\" + error;\n }\n }\n if (message.error != null && message.hasOwnProperty(\"error\"))\n if (!$util.isString(message.error))\n return \"error: string expected\";\n if (message.executionTimeNs != null && message.hasOwnProperty(\"executionTimeNs\"))\n if (!$util.isInteger(message.executionTimeNs) && !(message.executionTimeNs && $util.isInteger(message.executionTimeNs.low) && $util.isInteger(message.executionTimeNs.high)))\n return \"executionTimeNs: integer|Long expected\";\n return null;\n };\n\n /**\n * Creates a RawQueryResult message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.RawQueryResult\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.RawQueryResult} RawQueryResult\n */\n RawQueryResult.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.RawQueryResult)\n return object;\n var message = new $root.perfetto.protos.RawQueryResult();\n if (object.columnDescriptors) {\n if (!Array.isArray(object.columnDescriptors))\n throw TypeError(\".perfetto.protos.RawQueryResult.columnDescriptors: array expected\");\n message.columnDescriptors = [];\n for (var i = 0; i < object.columnDescriptors.length; ++i) {\n if (typeof object.columnDescriptors[i] !== \"object\")\n throw TypeError(\".perfetto.protos.RawQueryResult.columnDescriptors: object expected\");\n message.columnDescriptors[i] = $root.perfetto.protos.RawQueryResult.ColumnDesc.fromObject(object.columnDescriptors[i]);\n }\n }\n if (object.numRecords != null)\n if ($util.Long)\n (message.numRecords = $util.Long.fromValue(object.numRecords)).unsigned = true;\n else if (typeof object.numRecords === \"string\")\n message.numRecords = parseInt(object.numRecords, 10);\n else if (typeof object.numRecords === \"number\")\n message.numRecords = object.numRecords;\n else if (typeof object.numRecords === \"object\")\n message.numRecords = new $util.LongBits(object.numRecords.low >>> 0, object.numRecords.high >>> 0).toNumber(true);\n if (object.columns) {\n if (!Array.isArray(object.columns))\n throw TypeError(\".perfetto.protos.RawQueryResult.columns: array expected\");\n message.columns = [];\n for (var i = 0; i < object.columns.length; ++i) {\n if (typeof object.columns[i] !== \"object\")\n throw TypeError(\".perfetto.protos.RawQueryResult.columns: object expected\");\n message.columns[i] = $root.perfetto.protos.RawQueryResult.ColumnValues.fromObject(object.columns[i]);\n }\n }\n if (object.error != null)\n message.error = String(object.error);\n if (object.executionTimeNs != null)\n if ($util.Long)\n (message.executionTimeNs = $util.Long.fromValue(object.executionTimeNs)).unsigned = true;\n else if (typeof object.executionTimeNs === \"string\")\n message.executionTimeNs = parseInt(object.executionTimeNs, 10);\n else if (typeof object.executionTimeNs === \"number\")\n message.executionTimeNs = object.executionTimeNs;\n else if (typeof object.executionTimeNs === \"object\")\n message.executionTimeNs = new $util.LongBits(object.executionTimeNs.low >>> 0, object.executionTimeNs.high >>> 0).toNumber(true);\n return message;\n };\n\n /**\n * Creates a plain object from a RawQueryResult message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.RawQueryResult\n * @static\n * @param {perfetto.protos.RawQueryResult} message RawQueryResult\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n RawQueryResult.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults) {\n object.columnDescriptors = [];\n object.columns = [];\n }\n if (options.defaults) {\n if ($util.Long) {\n var long = new $util.Long(0, 0, true);\n object.numRecords = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.numRecords = options.longs === String ? \"0\" : 0;\n object.error = \"\";\n if ($util.Long) {\n var long = new $util.Long(0, 0, true);\n object.executionTimeNs = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.executionTimeNs = options.longs === String ? \"0\" : 0;\n }\n if (message.columnDescriptors && message.columnDescriptors.length) {\n object.columnDescriptors = [];\n for (var j = 0; j < message.columnDescriptors.length; ++j)\n object.columnDescriptors[j] = $root.perfetto.protos.RawQueryResult.ColumnDesc.toObject(message.columnDescriptors[j], options);\n }\n if (message.numRecords != null && message.hasOwnProperty(\"numRecords\"))\n if (typeof message.numRecords === \"number\")\n object.numRecords = options.longs === String ? String(message.numRecords) : message.numRecords;\n else\n object.numRecords = options.longs === String ? $util.Long.prototype.toString.call(message.numRecords) : options.longs === Number ? new $util.LongBits(message.numRecords.low >>> 0, message.numRecords.high >>> 0).toNumber(true) : message.numRecords;\n if (message.columns && message.columns.length) {\n object.columns = [];\n for (var j = 0; j < message.columns.length; ++j)\n object.columns[j] = $root.perfetto.protos.RawQueryResult.ColumnValues.toObject(message.columns[j], options);\n }\n if (message.error != null && message.hasOwnProperty(\"error\"))\n object.error = message.error;\n if (message.executionTimeNs != null && message.hasOwnProperty(\"executionTimeNs\"))\n if (typeof message.executionTimeNs === \"number\")\n object.executionTimeNs = options.longs === String ? String(message.executionTimeNs) : message.executionTimeNs;\n else\n object.executionTimeNs = options.longs === String ? $util.Long.prototype.toString.call(message.executionTimeNs) : options.longs === Number ? new $util.LongBits(message.executionTimeNs.low >>> 0, message.executionTimeNs.high >>> 0).toNumber(true) : message.executionTimeNs;\n return object;\n };\n\n /**\n * Converts this RawQueryResult to JSON.\n * @function toJSON\n * @memberof perfetto.protos.RawQueryResult\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n RawQueryResult.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n RawQueryResult.ColumnDesc = (function() {\n\n /**\n * Properties of a ColumnDesc.\n * @memberof perfetto.protos.RawQueryResult\n * @interface IColumnDesc\n * @property {string|null} [name] ColumnDesc name\n * @property {perfetto.protos.RawQueryResult.ColumnDesc.Type|null} [type] ColumnDesc type\n */\n\n /**\n * Constructs a new ColumnDesc.\n * @memberof perfetto.protos.RawQueryResult\n * @classdesc Represents a ColumnDesc.\n * @implements IColumnDesc\n * @constructor\n * @param {perfetto.protos.RawQueryResult.IColumnDesc=} [properties] Properties to set\n */\n function ColumnDesc(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * ColumnDesc name.\n * @member {string} name\n * @memberof perfetto.protos.RawQueryResult.ColumnDesc\n * @instance\n */\n ColumnDesc.prototype.name = \"\";\n\n /**\n * ColumnDesc type.\n * @member {perfetto.protos.RawQueryResult.ColumnDesc.Type} type\n * @memberof perfetto.protos.RawQueryResult.ColumnDesc\n * @instance\n */\n ColumnDesc.prototype.type = 0;\n\n /**\n * Creates a new ColumnDesc instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.RawQueryResult.ColumnDesc\n * @static\n * @param {perfetto.protos.RawQueryResult.IColumnDesc=} [properties] Properties to set\n * @returns {perfetto.protos.RawQueryResult.ColumnDesc} ColumnDesc instance\n */\n ColumnDesc.create = function create(properties) {\n return new ColumnDesc(properties);\n };\n\n /**\n * Encodes the specified ColumnDesc message. Does not implicitly {@link perfetto.protos.RawQueryResult.ColumnDesc.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.RawQueryResult.ColumnDesc\n * @static\n * @param {perfetto.protos.RawQueryResult.IColumnDesc} message ColumnDesc message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ColumnDesc.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.name != null && Object.hasOwnProperty.call(message, \"name\"))\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.name);\n if (message.type != null && Object.hasOwnProperty.call(message, \"type\"))\n writer.uint32(/* id 2, wireType 0 =*/16).int32(message.type);\n return writer;\n };\n\n /**\n * Encodes the specified ColumnDesc message, length delimited. Does not implicitly {@link perfetto.protos.RawQueryResult.ColumnDesc.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.RawQueryResult.ColumnDesc\n * @static\n * @param {perfetto.protos.RawQueryResult.IColumnDesc} message ColumnDesc message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ColumnDesc.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a ColumnDesc message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.RawQueryResult.ColumnDesc\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.RawQueryResult.ColumnDesc} ColumnDesc\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ColumnDesc.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.RawQueryResult.ColumnDesc();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.name = reader.string();\n break;\n case 2:\n message.type = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a ColumnDesc message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.RawQueryResult.ColumnDesc\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.RawQueryResult.ColumnDesc} ColumnDesc\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ColumnDesc.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a ColumnDesc message.\n * @function verify\n * @memberof perfetto.protos.RawQueryResult.ColumnDesc\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n ColumnDesc.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.name != null && message.hasOwnProperty(\"name\"))\n if (!$util.isString(message.name))\n return \"name: string expected\";\n if (message.type != null && message.hasOwnProperty(\"type\"))\n switch (message.type) {\n default:\n return \"type: enum value expected\";\n case 0:\n case 1:\n case 2:\n case 3:\n break;\n }\n return null;\n };\n\n /**\n * Creates a ColumnDesc message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.RawQueryResult.ColumnDesc\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.RawQueryResult.ColumnDesc} ColumnDesc\n */\n ColumnDesc.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.RawQueryResult.ColumnDesc)\n return object;\n var message = new $root.perfetto.protos.RawQueryResult.ColumnDesc();\n if (object.name != null)\n message.name = String(object.name);\n switch (object.type) {\n case \"UNKNOWN\":\n case 0:\n message.type = 0;\n break;\n case \"LONG\":\n case 1:\n message.type = 1;\n break;\n case \"DOUBLE\":\n case 2:\n message.type = 2;\n break;\n case \"STRING\":\n case 3:\n message.type = 3;\n break;\n }\n return message;\n };\n\n /**\n * Creates a plain object from a ColumnDesc message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.RawQueryResult.ColumnDesc\n * @static\n * @param {perfetto.protos.RawQueryResult.ColumnDesc} message ColumnDesc\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n ColumnDesc.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.name = \"\";\n object.type = options.enums === String ? \"UNKNOWN\" : 0;\n }\n if (message.name != null && message.hasOwnProperty(\"name\"))\n object.name = message.name;\n if (message.type != null && message.hasOwnProperty(\"type\"))\n object.type = options.enums === String ? $root.perfetto.protos.RawQueryResult.ColumnDesc.Type[message.type] : message.type;\n return object;\n };\n\n /**\n * Converts this ColumnDesc to JSON.\n * @function toJSON\n * @memberof perfetto.protos.RawQueryResult.ColumnDesc\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n ColumnDesc.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n /**\n * Type enum.\n * @name perfetto.protos.RawQueryResult.ColumnDesc.Type\n * @enum {number}\n * @property {number} UNKNOWN=0 UNKNOWN value\n * @property {number} LONG=1 LONG value\n * @property {number} DOUBLE=2 DOUBLE value\n * @property {number} STRING=3 STRING value\n */\n ColumnDesc.Type = (function() {\n var valuesById = {}, values = Object.create(valuesById);\n values[valuesById[0] = \"UNKNOWN\"] = 0;\n values[valuesById[1] = \"LONG\"] = 1;\n values[valuesById[2] = \"DOUBLE\"] = 2;\n values[valuesById[3] = \"STRING\"] = 3;\n return values;\n })();\n\n return ColumnDesc;\n })();\n\n RawQueryResult.ColumnValues = (function() {\n\n /**\n * Properties of a ColumnValues.\n * @memberof perfetto.protos.RawQueryResult\n * @interface IColumnValues\n * @property {Array.<number>|null} [longValues] ColumnValues longValues\n * @property {Array.<number>|null} [doubleValues] ColumnValues doubleValues\n * @property {Array.<string>|null} [stringValues] ColumnValues stringValues\n * @property {Array.<boolean>|null} [isNulls] ColumnValues isNulls\n */\n\n /**\n * Constructs a new ColumnValues.\n * @memberof perfetto.protos.RawQueryResult\n * @classdesc Represents a ColumnValues.\n * @implements IColumnValues\n * @constructor\n * @param {perfetto.protos.RawQueryResult.IColumnValues=} [properties] Properties to set\n */\n function ColumnValues(properties) {\n this.longValues = [];\n this.doubleValues = [];\n this.stringValues = [];\n this.isNulls = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * ColumnValues longValues.\n * @member {Array.<number>} longValues\n * @memberof perfetto.protos.RawQueryResult.ColumnValues\n * @instance\n */\n ColumnValues.prototype.longValues = $util.emptyArray;\n\n /**\n * ColumnValues doubleValues.\n * @member {Array.<number>} doubleValues\n * @memberof perfetto.protos.RawQueryResult.ColumnValues\n * @instance\n */\n ColumnValues.prototype.doubleValues = $util.emptyArray;\n\n /**\n * ColumnValues stringValues.\n * @member {Array.<string>} stringValues\n * @memberof perfetto.protos.RawQueryResult.ColumnValues\n * @instance\n */\n ColumnValues.prototype.stringValues = $util.emptyArray;\n\n /**\n * ColumnValues isNulls.\n * @member {Array.<boolean>} isNulls\n * @memberof perfetto.protos.RawQueryResult.ColumnValues\n * @instance\n */\n ColumnValues.prototype.isNulls = $util.emptyArray;\n\n /**\n * Creates a new ColumnValues instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.RawQueryResult.ColumnValues\n * @static\n * @param {perfetto.protos.RawQueryResult.IColumnValues=} [properties] Properties to set\n * @returns {perfetto.protos.RawQueryResult.ColumnValues} ColumnValues instance\n */\n ColumnValues.create = function create(properties) {\n return new ColumnValues(properties);\n };\n\n /**\n * Encodes the specified ColumnValues message. Does not implicitly {@link perfetto.protos.RawQueryResult.ColumnValues.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.RawQueryResult.ColumnValues\n * @static\n * @param {perfetto.protos.RawQueryResult.IColumnValues} message ColumnValues message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ColumnValues.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.longValues != null && message.longValues.length)\n for (var i = 0; i < message.longValues.length; ++i)\n writer.uint32(/* id 1, wireType 0 =*/8).int64(message.longValues[i]);\n if (message.doubleValues != null && message.doubleValues.length)\n for (var i = 0; i < message.doubleValues.length; ++i)\n writer.uint32(/* id 2, wireType 1 =*/17).double(message.doubleValues[i]);\n if (message.stringValues != null && message.stringValues.length)\n for (var i = 0; i < message.stringValues.length; ++i)\n writer.uint32(/* id 3, wireType 2 =*/26).string(message.stringValues[i]);\n if (message.isNulls != null && message.isNulls.length)\n for (var i = 0; i < message.isNulls.length; ++i)\n writer.uint32(/* id 4, wireType 0 =*/32).bool(message.isNulls[i]);\n return writer;\n };\n\n /**\n * Encodes the specified ColumnValues message, length delimited. Does not implicitly {@link perfetto.protos.RawQueryResult.ColumnValues.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.RawQueryResult.ColumnValues\n * @static\n * @param {perfetto.protos.RawQueryResult.IColumnValues} message ColumnValues message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ColumnValues.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a ColumnValues message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.RawQueryResult.ColumnValues\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.RawQueryResult.ColumnValues} ColumnValues\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ColumnValues.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.RawQueryResult.ColumnValues();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (!(message.longValues && message.longValues.length))\n message.longValues = [];\n if ((tag & 7) === 2) {\n var end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2)\n message.longValues.push(reader.int64());\n } else\n message.longValues.push(reader.int64());\n break;\n case 2:\n if (!(message.doubleValues && message.doubleValues.length))\n message.doubleValues = [];\n if ((tag & 7) === 2) {\n var end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2)\n message.doubleValues.push(reader.double());\n } else\n message.doubleValues.push(reader.double());\n break;\n case 3:\n if (!(message.stringValues && message.stringValues.length))\n message.stringValues = [];\n message.stringValues.push(reader.string());\n break;\n case 4:\n if (!(message.isNulls && message.isNulls.length))\n message.isNulls = [];\n if ((tag & 7) === 2) {\n var end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2)\n message.isNulls.push(reader.bool());\n } else\n message.isNulls.push(reader.bool());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a ColumnValues message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.RawQueryResult.ColumnValues\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.RawQueryResult.ColumnValues} ColumnValues\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ColumnValues.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a ColumnValues message.\n * @function verify\n * @memberof perfetto.protos.RawQueryResult.ColumnValues\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n ColumnValues.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.longValues != null && message.hasOwnProperty(\"longValues\")) {\n if (!Array.isArray(message.longValues))\n return \"longValues: array expected\";\n for (var i = 0; i < message.longValues.length; ++i)\n if (!$util.isInteger(message.longValues[i]) && !(message.longValues[i] && $util.isInteger(message.longValues[i].low) && $util.isInteger(message.longValues[i].high)))\n return \"longValues: integer|Long[] expected\";\n }\n if (message.doubleValues != null && message.hasOwnProperty(\"doubleValues\")) {\n if (!Array.isArray(message.doubleValues))\n return \"doubleValues: array expected\";\n for (var i = 0; i < message.doubleValues.length; ++i)\n if (typeof message.doubleValues[i] !== \"number\")\n return \"doubleValues: number[] expected\";\n }\n if (message.stringValues != null && message.hasOwnProperty(\"stringValues\")) {\n if (!Array.isArray(message.stringValues))\n return \"stringValues: array expected\";\n for (var i = 0; i < message.stringValues.length; ++i)\n if (!$util.isString(message.stringValues[i]))\n return \"stringValues: string[] expected\";\n }\n if (message.isNulls != null && message.hasOwnProperty(\"isNulls\")) {\n if (!Array.isArray(message.isNulls))\n return \"isNulls: array expected\";\n for (var i = 0; i < message.isNulls.length; ++i)\n if (typeof message.isNulls[i] !== \"boolean\")\n return \"isNulls: boolean[] expected\";\n }\n return null;\n };\n\n /**\n * Creates a ColumnValues message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.RawQueryResult.ColumnValues\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.RawQueryResult.ColumnValues} ColumnValues\n */\n ColumnValues.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.RawQueryResult.ColumnValues)\n return object;\n var message = new $root.perfetto.protos.RawQueryResult.ColumnValues();\n if (object.longValues) {\n if (!Array.isArray(object.longValues))\n throw TypeError(\".perfetto.protos.RawQueryResult.ColumnValues.longValues: array expected\");\n message.longValues = [];\n for (var i = 0; i < object.longValues.length; ++i)\n if ($util.Long)\n (message.longValues[i] = $util.Long.fromValue(object.longValues[i])).unsigned = false;\n else if (typeof object.longValues[i] === \"string\")\n message.longValues[i] = parseInt(object.longValues[i], 10);\n else if (typeof object.longValues[i] === \"number\")\n message.longValues[i] = object.longValues[i];\n else if (typeof object.longValues[i] === \"object\")\n message.longValues[i] = new $util.LongBits(object.longValues[i].low >>> 0, object.longValues[i].high >>> 0).toNumber();\n }\n if (object.doubleValues) {\n if (!Array.isArray(object.doubleValues))\n throw TypeError(\".perfetto.protos.RawQueryResult.ColumnValues.doubleValues: array expected\");\n message.doubleValues = [];\n for (var i = 0; i < object.doubleValues.length; ++i)\n message.doubleValues[i] = Number(object.doubleValues[i]);\n }\n if (object.stringValues) {\n if (!Array.isArray(object.stringValues))\n throw TypeError(\".perfetto.protos.RawQueryResult.ColumnValues.stringValues: array expected\");\n message.stringValues = [];\n for (var i = 0; i < object.stringValues.length; ++i)\n message.stringValues[i] = String(object.stringValues[i]);\n }\n if (object.isNulls) {\n if (!Array.isArray(object.isNulls))\n throw TypeError(\".perfetto.protos.RawQueryResult.ColumnValues.isNulls: array expected\");\n message.isNulls = [];\n for (var i = 0; i < object.isNulls.length; ++i)\n message.isNulls[i] = Boolean(object.isNulls[i]);\n }\n return message;\n };\n\n /**\n * Creates a plain object from a ColumnValues message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.RawQueryResult.ColumnValues\n * @static\n * @param {perfetto.protos.RawQueryResult.ColumnValues} message ColumnValues\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n ColumnValues.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults) {\n object.longValues = [];\n object.doubleValues = [];\n object.stringValues = [];\n object.isNulls = [];\n }\n if (message.longValues && message.longValues.length) {\n object.longValues = [];\n for (var j = 0; j < message.longValues.length; ++j)\n if (typeof message.longValues[j] === \"number\")\n object.longValues[j] = options.longs === String ? String(message.longValues[j]) : message.longValues[j];\n else\n object.longValues[j] = options.longs === String ? $util.Long.prototype.toString.call(message.longValues[j]) : options.longs === Number ? new $util.LongBits(message.longValues[j].low >>> 0, message.longValues[j].high >>> 0).toNumber() : message.longValues[j];\n }\n if (message.doubleValues && message.doubleValues.length) {\n object.doubleValues = [];\n for (var j = 0; j < message.doubleValues.length; ++j)\n object.doubleValues[j] = options.json && !isFinite(message.doubleValues[j]) ? String(message.doubleValues[j]) : message.doubleValues[j];\n }\n if (message.stringValues && message.stringValues.length) {\n object.stringValues = [];\n for (var j = 0; j < message.stringValues.length; ++j)\n object.stringValues[j] = message.stringValues[j];\n }\n if (message.isNulls && message.isNulls.length) {\n object.isNulls = [];\n for (var j = 0; j < message.isNulls.length; ++j)\n object.isNulls[j] = message.isNulls[j];\n }\n return object;\n };\n\n /**\n * Converts this ColumnValues to JSON.\n * @function toJSON\n * @memberof perfetto.protos.RawQueryResult.ColumnValues\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n ColumnValues.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return ColumnValues;\n })();\n\n return RawQueryResult;\n })();\n\n protos.QueryResult = (function() {\n\n /**\n * Properties of a QueryResult.\n * @memberof perfetto.protos\n * @interface IQueryResult\n * @property {Array.<string>|null} [columnNames] QueryResult columnNames\n * @property {string|null} [error] QueryResult error\n * @property {Array.<perfetto.protos.QueryResult.ICellsBatch>|null} [batch] QueryResult batch\n */\n\n /**\n * Constructs a new QueryResult.\n * @memberof perfetto.protos\n * @classdesc Represents a QueryResult.\n * @implements IQueryResult\n * @constructor\n * @param {perfetto.protos.IQueryResult=} [properties] Properties to set\n */\n function QueryResult(properties) {\n this.columnNames = [];\n this.batch = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * QueryResult columnNames.\n * @member {Array.<string>} columnNames\n * @memberof perfetto.protos.QueryResult\n * @instance\n */\n QueryResult.prototype.columnNames = $util.emptyArray;\n\n /**\n * QueryResult error.\n * @member {string} error\n * @memberof perfetto.protos.QueryResult\n * @instance\n */\n QueryResult.prototype.error = \"\";\n\n /**\n * QueryResult batch.\n * @member {Array.<perfetto.protos.QueryResult.ICellsBatch>} batch\n * @memberof perfetto.protos.QueryResult\n * @instance\n */\n QueryResult.prototype.batch = $util.emptyArray;\n\n /**\n * Creates a new QueryResult instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.QueryResult\n * @static\n * @param {perfetto.protos.IQueryResult=} [properties] Properties to set\n * @returns {perfetto.protos.QueryResult} QueryResult instance\n */\n QueryResult.create = function create(properties) {\n return new QueryResult(properties);\n };\n\n /**\n * Encodes the specified QueryResult message. Does not implicitly {@link perfetto.protos.QueryResult.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.QueryResult\n * @static\n * @param {perfetto.protos.IQueryResult} message QueryResult message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n QueryResult.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.columnNames != null && message.columnNames.length)\n for (var i = 0; i < message.columnNames.length; ++i)\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.columnNames[i]);\n if (message.error != null && Object.hasOwnProperty.call(message, \"error\"))\n writer.uint32(/* id 2, wireType 2 =*/18).string(message.error);\n if (message.batch != null && message.batch.length)\n for (var i = 0; i < message.batch.length; ++i)\n $root.perfetto.protos.QueryResult.CellsBatch.encode(message.batch[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified QueryResult message, length delimited. Does not implicitly {@link perfetto.protos.QueryResult.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.QueryResult\n * @static\n * @param {perfetto.protos.IQueryResult} message QueryResult message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n QueryResult.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a QueryResult message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.QueryResult\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.QueryResult} QueryResult\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n QueryResult.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.QueryResult();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (!(message.columnNames && message.columnNames.length))\n message.columnNames = [];\n message.columnNames.push(reader.string());\n break;\n case 2:\n message.error = reader.string();\n break;\n case 3:\n if (!(message.batch && message.batch.length))\n message.batch = [];\n message.batch.push($root.perfetto.protos.QueryResult.CellsBatch.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a QueryResult message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.QueryResult\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.QueryResult} QueryResult\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n QueryResult.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a QueryResult message.\n * @function verify\n * @memberof perfetto.protos.QueryResult\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n QueryResult.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.columnNames != null && message.hasOwnProperty(\"columnNames\")) {\n if (!Array.isArray(message.columnNames))\n return \"columnNames: array expected\";\n for (var i = 0; i < message.columnNames.length; ++i)\n if (!$util.isString(message.columnNames[i]))\n return \"columnNames: string[] expected\";\n }\n if (message.error != null && message.hasOwnProperty(\"error\"))\n if (!$util.isString(message.error))\n return \"error: string expected\";\n if (message.batch != null && message.hasOwnProperty(\"batch\")) {\n if (!Array.isArray(message.batch))\n return \"batch: array expected\";\n for (var i = 0; i < message.batch.length; ++i) {\n var error = $root.perfetto.protos.QueryResult.CellsBatch.verify(message.batch[i]);\n if (error)\n return \"batch.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates a QueryResult message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.QueryResult\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.QueryResult} QueryResult\n */\n QueryResult.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.QueryResult)\n return object;\n var message = new $root.perfetto.protos.QueryResult();\n if (object.columnNames) {\n if (!Array.isArray(object.columnNames))\n throw TypeError(\".perfetto.protos.QueryResult.columnNames: array expected\");\n message.columnNames = [];\n for (var i = 0; i < object.columnNames.length; ++i)\n message.columnNames[i] = String(object.columnNames[i]);\n }\n if (object.error != null)\n message.error = String(object.error);\n if (object.batch) {\n if (!Array.isArray(object.batch))\n throw TypeError(\".perfetto.protos.QueryResult.batch: array expected\");\n message.batch = [];\n for (var i = 0; i < object.batch.length; ++i) {\n if (typeof object.batch[i] !== \"object\")\n throw TypeError(\".perfetto.protos.QueryResult.batch: object expected\");\n message.batch[i] = $root.perfetto.protos.QueryResult.CellsBatch.fromObject(object.batch[i]);\n }\n }\n return message;\n };\n\n /**\n * Creates a plain object from a QueryResult message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.QueryResult\n * @static\n * @param {perfetto.protos.QueryResult} message QueryResult\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n QueryResult.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults) {\n object.columnNames = [];\n object.batch = [];\n }\n if (options.defaults)\n object.error = \"\";\n if (message.columnNames && message.columnNames.length) {\n object.columnNames = [];\n for (var j = 0; j < message.columnNames.length; ++j)\n object.columnNames[j] = message.columnNames[j];\n }\n if (message.error != null && message.hasOwnProperty(\"error\"))\n object.error = message.error;\n if (message.batch && message.batch.length) {\n object.batch = [];\n for (var j = 0; j < message.batch.length; ++j)\n object.batch[j] = $root.perfetto.protos.QueryResult.CellsBatch.toObject(message.batch[j], options);\n }\n return object;\n };\n\n /**\n * Converts this QueryResult to JSON.\n * @function toJSON\n * @memberof perfetto.protos.QueryResult\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n QueryResult.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n QueryResult.CellsBatch = (function() {\n\n /**\n * Properties of a CellsBatch.\n * @memberof perfetto.protos.QueryResult\n * @interface ICellsBatch\n * @property {Array.<perfetto.protos.QueryResult.CellsBatch.CellType>|null} [cells] CellsBatch cells\n * @property {Array.<number>|null} [varintCells] CellsBatch varintCells\n * @property {Array.<number>|null} [float64Cells] CellsBatch float64Cells\n * @property {Array.<Uint8Array>|null} [blobCells] CellsBatch blobCells\n * @property {string|null} [stringCells] CellsBatch stringCells\n * @property {boolean|null} [isLastBatch] CellsBatch isLastBatch\n */\n\n /**\n * Constructs a new CellsBatch.\n * @memberof perfetto.protos.QueryResult\n * @classdesc Represents a CellsBatch.\n * @implements ICellsBatch\n * @constructor\n * @param {perfetto.protos.QueryResult.ICellsBatch=} [properties] Properties to set\n */\n function CellsBatch(properties) {\n this.cells = [];\n this.varintCells = [];\n this.float64Cells = [];\n this.blobCells = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * CellsBatch cells.\n * @member {Array.<perfetto.protos.QueryResult.CellsBatch.CellType>} cells\n * @memberof perfetto.protos.QueryResult.CellsBatch\n * @instance\n */\n CellsBatch.prototype.cells = $util.emptyArray;\n\n /**\n * CellsBatch varintCells.\n * @member {Array.<number>} varintCells\n * @memberof perfetto.protos.QueryResult.CellsBatch\n * @instance\n */\n CellsBatch.prototype.varintCells = $util.emptyArray;\n\n /**\n * CellsBatch float64Cells.\n * @member {Array.<number>} float64Cells\n * @memberof perfetto.protos.QueryResult.CellsBatch\n * @instance\n */\n CellsBatch.prototype.float64Cells = $util.emptyArray;\n\n /**\n * CellsBatch blobCells.\n * @member {Array.<Uint8Array>} blobCells\n * @memberof perfetto.protos.QueryResult.CellsBatch\n * @instance\n */\n CellsBatch.prototype.blobCells = $util.emptyArray;\n\n /**\n * CellsBatch stringCells.\n * @member {string} stringCells\n * @memberof perfetto.protos.QueryResult.CellsBatch\n * @instance\n */\n CellsBatch.prototype.stringCells = \"\";\n\n /**\n * CellsBatch isLastBatch.\n * @member {boolean} isLastBatch\n * @memberof perfetto.protos.QueryResult.CellsBatch\n * @instance\n */\n CellsBatch.prototype.isLastBatch = false;\n\n /**\n * Creates a new CellsBatch instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.QueryResult.CellsBatch\n * @static\n * @param {perfetto.protos.QueryResult.ICellsBatch=} [properties] Properties to set\n * @returns {perfetto.protos.QueryResult.CellsBatch} CellsBatch instance\n */\n CellsBatch.create = function create(properties) {\n return new CellsBatch(properties);\n };\n\n /**\n * Encodes the specified CellsBatch message. Does not implicitly {@link perfetto.protos.QueryResult.CellsBatch.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.QueryResult.CellsBatch\n * @static\n * @param {perfetto.protos.QueryResult.ICellsBatch} message CellsBatch message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n CellsBatch.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.cells != null && message.cells.length) {\n writer.uint32(/* id 1, wireType 2 =*/10).fork();\n for (var i = 0; i < message.cells.length; ++i)\n writer.int32(message.cells[i]);\n writer.ldelim();\n }\n if (message.varintCells != null && message.varintCells.length) {\n writer.uint32(/* id 2, wireType 2 =*/18).fork();\n for (var i = 0; i < message.varintCells.length; ++i)\n writer.int64(message.varintCells[i]);\n writer.ldelim();\n }\n if (message.float64Cells != null && message.float64Cells.length) {\n writer.uint32(/* id 3, wireType 2 =*/26).fork();\n for (var i = 0; i < message.float64Cells.length; ++i)\n writer.double(message.float64Cells[i]);\n writer.ldelim();\n }\n if (message.blobCells != null && message.blobCells.length)\n for (var i = 0; i < message.blobCells.length; ++i)\n writer.uint32(/* id 4, wireType 2 =*/34).bytes(message.blobCells[i]);\n if (message.stringCells != null && Object.hasOwnProperty.call(message, \"stringCells\"))\n writer.uint32(/* id 5, wireType 2 =*/42).string(message.stringCells);\n if (message.isLastBatch != null && Object.hasOwnProperty.call(message, \"isLastBatch\"))\n writer.uint32(/* id 6, wireType 0 =*/48).bool(message.isLastBatch);\n return writer;\n };\n\n /**\n * Encodes the specified CellsBatch message, length delimited. Does not implicitly {@link perfetto.protos.QueryResult.CellsBatch.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.QueryResult.CellsBatch\n * @static\n * @param {perfetto.protos.QueryResult.ICellsBatch} message CellsBatch message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n CellsBatch.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a CellsBatch message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.QueryResult.CellsBatch\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.QueryResult.CellsBatch} CellsBatch\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n CellsBatch.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.QueryResult.CellsBatch();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (!(message.cells && message.cells.length))\n message.cells = [];\n if ((tag & 7) === 2) {\n var end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2)\n message.cells.push(reader.int32());\n } else\n message.cells.push(reader.int32());\n break;\n case 2:\n if (!(message.varintCells && message.varintCells.length))\n message.varintCells = [];\n if ((tag & 7) === 2) {\n var end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2)\n message.varintCells.push(reader.int64());\n } else\n message.varintCells.push(reader.int64());\n break;\n case 3:\n if (!(message.float64Cells && message.float64Cells.length))\n message.float64Cells = [];\n if ((tag & 7) === 2) {\n var end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2)\n message.float64Cells.push(reader.double());\n } else\n message.float64Cells.push(reader.double());\n break;\n case 4:\n if (!(message.blobCells && message.blobCells.length))\n message.blobCells = [];\n message.blobCells.push(reader.bytes());\n break;\n case 5:\n message.stringCells = reader.string();\n break;\n case 6:\n message.isLastBatch = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a CellsBatch message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.QueryResult.CellsBatch\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.QueryResult.CellsBatch} CellsBatch\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n CellsBatch.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a CellsBatch message.\n * @function verify\n * @memberof perfetto.protos.QueryResult.CellsBatch\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n CellsBatch.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.cells != null && message.hasOwnProperty(\"cells\")) {\n if (!Array.isArray(message.cells))\n return \"cells: array expected\";\n for (var i = 0; i < message.cells.length; ++i)\n switch (message.cells[i]) {\n default:\n return \"cells: enum value[] expected\";\n case 0:\n case 1:\n case 2:\n case 3:\n case 4:\n case 5:\n break;\n }\n }\n if (message.varintCells != null && message.hasOwnProperty(\"varintCells\")) {\n if (!Array.isArray(message.varintCells))\n return \"varintCells: array expected\";\n for (var i = 0; i < message.varintCells.length; ++i)\n if (!$util.isInteger(message.varintCells[i]) && !(message.varintCells[i] && $util.isInteger(message.varintCells[i].low) && $util.isInteger(message.varintCells[i].high)))\n return \"varintCells: integer|Long[] expected\";\n }\n if (message.float64Cells != null && message.hasOwnProperty(\"float64Cells\")) {\n if (!Array.isArray(message.float64Cells))\n return \"float64Cells: array expected\";\n for (var i = 0; i < message.float64Cells.length; ++i)\n if (typeof message.float64Cells[i] !== \"number\")\n return \"float64Cells: number[] expected\";\n }\n if (message.blobCells != null && message.hasOwnProperty(\"blobCells\")) {\n if (!Array.isArray(message.blobCells))\n return \"blobCells: array expected\";\n for (var i = 0; i < message.blobCells.length; ++i)\n if (!(message.blobCells[i] && typeof message.blobCells[i].length === \"number\" || $util.isString(message.blobCells[i])))\n return \"blobCells: buffer[] expected\";\n }\n if (message.stringCells != null && message.hasOwnProperty(\"stringCells\"))\n if (!$util.isString(message.stringCells))\n return \"stringCells: string expected\";\n if (message.isLastBatch != null && message.hasOwnProperty(\"isLastBatch\"))\n if (typeof message.isLastBatch !== \"boolean\")\n return \"isLastBatch: boolean expected\";\n return null;\n };\n\n /**\n * Creates a CellsBatch message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.QueryResult.CellsBatch\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.QueryResult.CellsBatch} CellsBatch\n */\n CellsBatch.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.QueryResult.CellsBatch)\n return object;\n var message = new $root.perfetto.protos.QueryResult.CellsBatch();\n if (object.cells) {\n if (!Array.isArray(object.cells))\n throw TypeError(\".perfetto.protos.QueryResult.CellsBatch.cells: array expected\");\n message.cells = [];\n for (var i = 0; i < object.cells.length; ++i)\n switch (object.cells[i]) {\n default:\n case \"CELL_INVALID\":\n case 0:\n message.cells[i] = 0;\n break;\n case \"CELL_NULL\":\n case 1:\n message.cells[i] = 1;\n break;\n case \"CELL_VARINT\":\n case 2:\n message.cells[i] = 2;\n break;\n case \"CELL_FLOAT64\":\n case 3:\n message.cells[i] = 3;\n break;\n case \"CELL_STRING\":\n case 4:\n message.cells[i] = 4;\n break;\n case \"CELL_BLOB\":\n case 5:\n message.cells[i] = 5;\n break;\n }\n }\n if (object.varintCells) {\n if (!Array.isArray(object.varintCells))\n throw TypeError(\".perfetto.protos.QueryResult.CellsBatch.varintCells: array expected\");\n message.varintCells = [];\n for (var i = 0; i < object.varintCells.length; ++i)\n if ($util.Long)\n (message.varintCells[i] = $util.Long.fromValue(object.varintCells[i])).unsigned = false;\n else if (typeof object.varintCells[i] === \"string\")\n message.varintCells[i] = parseInt(object.varintCells[i], 10);\n else if (typeof object.varintCells[i] === \"number\")\n message.varintCells[i] = object.varintCells[i];\n else if (typeof object.varintCells[i] === \"object\")\n message.varintCells[i] = new $util.LongBits(object.varintCells[i].low >>> 0, object.varintCells[i].high >>> 0).toNumber();\n }\n if (object.float64Cells) {\n if (!Array.isArray(object.float64Cells))\n throw TypeError(\".perfetto.protos.QueryResult.CellsBatch.float64Cells: array expected\");\n message.float64Cells = [];\n for (var i = 0; i < object.float64Cells.length; ++i)\n message.float64Cells[i] = Number(object.float64Cells[i]);\n }\n if (object.blobCells) {\n if (!Array.isArray(object.blobCells))\n throw TypeError(\".perfetto.protos.QueryResult.CellsBatch.blobCells: array expected\");\n message.blobCells = [];\n for (var i = 0; i < object.blobCells.length; ++i)\n if (typeof object.blobCells[i] === \"string\")\n $util.base64.decode(object.blobCells[i], message.blobCells[i] = $util.newBuffer($util.base64.length(object.blobCells[i])), 0);\n else if (object.blobCells[i].length)\n message.blobCells[i] = object.blobCells[i];\n }\n if (object.stringCells != null)\n message.stringCells = String(object.stringCells);\n if (object.isLastBatch != null)\n message.isLastBatch = Boolean(object.isLastBatch);\n return message;\n };\n\n /**\n * Creates a plain object from a CellsBatch message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.QueryResult.CellsBatch\n * @static\n * @param {perfetto.protos.QueryResult.CellsBatch} message CellsBatch\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n CellsBatch.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults) {\n object.cells = [];\n object.varintCells = [];\n object.float64Cells = [];\n object.blobCells = [];\n }\n if (options.defaults) {\n object.stringCells = \"\";\n object.isLastBatch = false;\n }\n if (message.cells && message.cells.length) {\n object.cells = [];\n for (var j = 0; j < message.cells.length; ++j)\n object.cells[j] = options.enums === String ? $root.perfetto.protos.QueryResult.CellsBatch.CellType[message.cells[j]] : message.cells[j];\n }\n if (message.varintCells && message.varintCells.length) {\n object.varintCells = [];\n for (var j = 0; j < message.varintCells.length; ++j)\n if (typeof message.varintCells[j] === \"number\")\n object.varintCells[j] = options.longs === String ? String(message.varintCells[j]) : message.varintCells[j];\n else\n object.varintCells[j] = options.longs === String ? $util.Long.prototype.toString.call(message.varintCells[j]) : options.longs === Number ? new $util.LongBits(message.varintCells[j].low >>> 0, message.varintCells[j].high >>> 0).toNumber() : message.varintCells[j];\n }\n if (message.float64Cells && message.float64Cells.length) {\n object.float64Cells = [];\n for (var j = 0; j < message.float64Cells.length; ++j)\n object.float64Cells[j] = options.json && !isFinite(message.float64Cells[j]) ? String(message.float64Cells[j]) : message.float64Cells[j];\n }\n if (message.blobCells && message.blobCells.length) {\n object.blobCells = [];\n for (var j = 0; j < message.blobCells.length; ++j)\n object.blobCells[j] = options.bytes === String ? $util.base64.encode(message.blobCells[j], 0, message.blobCells[j].length) : options.bytes === Array ? Array.prototype.slice.call(message.blobCells[j]) : message.blobCells[j];\n }\n if (message.stringCells != null && message.hasOwnProperty(\"stringCells\"))\n object.stringCells = message.stringCells;\n if (message.isLastBatch != null && message.hasOwnProperty(\"isLastBatch\"))\n object.isLastBatch = message.isLastBatch;\n return object;\n };\n\n /**\n * Converts this CellsBatch to JSON.\n * @function toJSON\n * @memberof perfetto.protos.QueryResult.CellsBatch\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n CellsBatch.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n /**\n * CellType enum.\n * @name perfetto.protos.QueryResult.CellsBatch.CellType\n * @enum {number}\n * @property {number} CELL_INVALID=0 CELL_INVALID value\n * @property {number} CELL_NULL=1 CELL_NULL value\n * @property {number} CELL_VARINT=2 CELL_VARINT value\n * @property {number} CELL_FLOAT64=3 CELL_FLOAT64 value\n * @property {number} CELL_STRING=4 CELL_STRING value\n * @property {number} CELL_BLOB=5 CELL_BLOB value\n */\n CellsBatch.CellType = (function() {\n var valuesById = {}, values = Object.create(valuesById);\n values[valuesById[0] = \"CELL_INVALID\"] = 0;\n values[valuesById[1] = \"CELL_NULL\"] = 1;\n values[valuesById[2] = \"CELL_VARINT\"] = 2;\n values[valuesById[3] = \"CELL_FLOAT64\"] = 3;\n values[valuesById[4] = \"CELL_STRING\"] = 4;\n values[valuesById[5] = \"CELL_BLOB\"] = 5;\n return values;\n })();\n\n return CellsBatch;\n })();\n\n return QueryResult;\n })();\n\n protos.StatusArgs = (function() {\n\n /**\n * Properties of a StatusArgs.\n * @memberof perfetto.protos\n * @interface IStatusArgs\n */\n\n /**\n * Constructs a new StatusArgs.\n * @memberof perfetto.protos\n * @classdesc Represents a StatusArgs.\n * @implements IStatusArgs\n * @constructor\n * @param {perfetto.protos.IStatusArgs=} [properties] Properties to set\n */\n function StatusArgs(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * Creates a new StatusArgs instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.StatusArgs\n * @static\n * @param {perfetto.protos.IStatusArgs=} [properties] Properties to set\n * @returns {perfetto.protos.StatusArgs} StatusArgs instance\n */\n StatusArgs.create = function create(properties) {\n return new StatusArgs(properties);\n };\n\n /**\n * Encodes the specified StatusArgs message. Does not implicitly {@link perfetto.protos.StatusArgs.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.StatusArgs\n * @static\n * @param {perfetto.protos.IStatusArgs} message StatusArgs message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n StatusArgs.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n return writer;\n };\n\n /**\n * Encodes the specified StatusArgs message, length delimited. Does not implicitly {@link perfetto.protos.StatusArgs.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.StatusArgs\n * @static\n * @param {perfetto.protos.IStatusArgs} message StatusArgs message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n StatusArgs.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a StatusArgs message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.StatusArgs\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.StatusArgs} StatusArgs\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n StatusArgs.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.StatusArgs();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a StatusArgs message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.StatusArgs\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.StatusArgs} StatusArgs\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n StatusArgs.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a StatusArgs message.\n * @function verify\n * @memberof perfetto.protos.StatusArgs\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n StatusArgs.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n return null;\n };\n\n /**\n * Creates a StatusArgs message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.StatusArgs\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.StatusArgs} StatusArgs\n */\n StatusArgs.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.StatusArgs)\n return object;\n return new $root.perfetto.protos.StatusArgs();\n };\n\n /**\n * Creates a plain object from a StatusArgs message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.StatusArgs\n * @static\n * @param {perfetto.protos.StatusArgs} message StatusArgs\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n StatusArgs.toObject = function toObject() {\n return {};\n };\n\n /**\n * Converts this StatusArgs to JSON.\n * @function toJSON\n * @memberof perfetto.protos.StatusArgs\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n StatusArgs.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return StatusArgs;\n })();\n\n protos.StatusResult = (function() {\n\n /**\n * Properties of a StatusResult.\n * @memberof perfetto.protos\n * @interface IStatusResult\n * @property {string|null} [loadedTraceName] StatusResult loadedTraceName\n * @property {string|null} [humanReadableVersion] StatusResult humanReadableVersion\n * @property {number|null} [apiVersion] StatusResult apiVersion\n */\n\n /**\n * Constructs a new StatusResult.\n * @memberof perfetto.protos\n * @classdesc Represents a StatusResult.\n * @implements IStatusResult\n * @constructor\n * @param {perfetto.protos.IStatusResult=} [properties] Properties to set\n */\n function StatusResult(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * StatusResult loadedTraceName.\n * @member {string} loadedTraceName\n * @memberof perfetto.protos.StatusResult\n * @instance\n */\n StatusResult.prototype.loadedTraceName = \"\";\n\n /**\n * StatusResult humanReadableVersion.\n * @member {string} humanReadableVersion\n * @memberof perfetto.protos.StatusResult\n * @instance\n */\n StatusResult.prototype.humanReadableVersion = \"\";\n\n /**\n * StatusResult apiVersion.\n * @member {number} apiVersion\n * @memberof perfetto.protos.StatusResult\n * @instance\n */\n StatusResult.prototype.apiVersion = 0;\n\n /**\n * Creates a new StatusResult instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.StatusResult\n * @static\n * @param {perfetto.protos.IStatusResult=} [properties] Properties to set\n * @returns {perfetto.protos.StatusResult} StatusResult instance\n */\n StatusResult.create = function create(properties) {\n return new StatusResult(properties);\n };\n\n /**\n * Encodes the specified StatusResult message. Does not implicitly {@link perfetto.protos.StatusResult.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.StatusResult\n * @static\n * @param {perfetto.protos.IStatusResult} message StatusResult message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n StatusResult.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.loadedTraceName != null && Object.hasOwnProperty.call(message, \"loadedTraceName\"))\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.loadedTraceName);\n if (message.humanReadableVersion != null && Object.hasOwnProperty.call(message, \"humanReadableVersion\"))\n writer.uint32(/* id 2, wireType 2 =*/18).string(message.humanReadableVersion);\n if (message.apiVersion != null && Object.hasOwnProperty.call(message, \"apiVersion\"))\n writer.uint32(/* id 3, wireType 0 =*/24).int32(message.apiVersion);\n return writer;\n };\n\n /**\n * Encodes the specified StatusResult message, length delimited. Does not implicitly {@link perfetto.protos.StatusResult.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.StatusResult\n * @static\n * @param {perfetto.protos.IStatusResult} message StatusResult message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n StatusResult.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a StatusResult message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.StatusResult\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.StatusResult} StatusResult\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n StatusResult.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.StatusResult();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.loadedTraceName = reader.string();\n break;\n case 2:\n message.humanReadableVersion = reader.string();\n break;\n case 3:\n message.apiVersion = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a StatusResult message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.StatusResult\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.StatusResult} StatusResult\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n StatusResult.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a StatusResult message.\n * @function verify\n * @memberof perfetto.protos.StatusResult\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n StatusResult.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.loadedTraceName != null && message.hasOwnProperty(\"loadedTraceName\"))\n if (!$util.isString(message.loadedTraceName))\n return \"loadedTraceName: string expected\";\n if (message.humanReadableVersion != null && message.hasOwnProperty(\"humanReadableVersion\"))\n if (!$util.isString(message.humanReadableVersion))\n return \"humanReadableVersion: string expected\";\n if (message.apiVersion != null && message.hasOwnProperty(\"apiVersion\"))\n if (!$util.isInteger(message.apiVersion))\n return \"apiVersion: integer expected\";\n return null;\n };\n\n /**\n * Creates a StatusResult message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.StatusResult\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.StatusResult} StatusResult\n */\n StatusResult.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.StatusResult)\n return object;\n var message = new $root.perfetto.protos.StatusResult();\n if (object.loadedTraceName != null)\n message.loadedTraceName = String(object.loadedTraceName);\n if (object.humanReadableVersion != null)\n message.humanReadableVersion = String(object.humanReadableVersion);\n if (object.apiVersion != null)\n message.apiVersion = object.apiVersion | 0;\n return message;\n };\n\n /**\n * Creates a plain object from a StatusResult message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.StatusResult\n * @static\n * @param {perfetto.protos.StatusResult} message StatusResult\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n StatusResult.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.loadedTraceName = \"\";\n object.humanReadableVersion = \"\";\n object.apiVersion = 0;\n }\n if (message.loadedTraceName != null && message.hasOwnProperty(\"loadedTraceName\"))\n object.loadedTraceName = message.loadedTraceName;\n if (message.humanReadableVersion != null && message.hasOwnProperty(\"humanReadableVersion\"))\n object.humanReadableVersion = message.humanReadableVersion;\n if (message.apiVersion != null && message.hasOwnProperty(\"apiVersion\"))\n object.apiVersion = message.apiVersion;\n return object;\n };\n\n /**\n * Converts this StatusResult to JSON.\n * @function toJSON\n * @memberof perfetto.protos.StatusResult\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n StatusResult.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return StatusResult;\n })();\n\n protos.ComputeMetricArgs = (function() {\n\n /**\n * Properties of a ComputeMetricArgs.\n * @memberof perfetto.protos\n * @interface IComputeMetricArgs\n * @property {Array.<string>|null} [metricNames] ComputeMetricArgs metricNames\n * @property {perfetto.protos.ComputeMetricArgs.ResultFormat|null} [format] ComputeMetricArgs format\n */\n\n /**\n * Constructs a new ComputeMetricArgs.\n * @memberof perfetto.protos\n * @classdesc Represents a ComputeMetricArgs.\n * @implements IComputeMetricArgs\n * @constructor\n * @param {perfetto.protos.IComputeMetricArgs=} [properties] Properties to set\n */\n function ComputeMetricArgs(properties) {\n this.metricNames = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * ComputeMetricArgs metricNames.\n * @member {Array.<string>} metricNames\n * @memberof perfetto.protos.ComputeMetricArgs\n * @instance\n */\n ComputeMetricArgs.prototype.metricNames = $util.emptyArray;\n\n /**\n * ComputeMetricArgs format.\n * @member {perfetto.protos.ComputeMetricArgs.ResultFormat} format\n * @memberof perfetto.protos.ComputeMetricArgs\n * @instance\n */\n ComputeMetricArgs.prototype.format = 0;\n\n /**\n * Creates a new ComputeMetricArgs instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.ComputeMetricArgs\n * @static\n * @param {perfetto.protos.IComputeMetricArgs=} [properties] Properties to set\n * @returns {perfetto.protos.ComputeMetricArgs} ComputeMetricArgs instance\n */\n ComputeMetricArgs.create = function create(properties) {\n return new ComputeMetricArgs(properties);\n };\n\n /**\n * Encodes the specified ComputeMetricArgs message. Does not implicitly {@link perfetto.protos.ComputeMetricArgs.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.ComputeMetricArgs\n * @static\n * @param {perfetto.protos.IComputeMetricArgs} message ComputeMetricArgs message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ComputeMetricArgs.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.metricNames != null && message.metricNames.length)\n for (var i = 0; i < message.metricNames.length; ++i)\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.metricNames[i]);\n if (message.format != null && Object.hasOwnProperty.call(message, \"format\"))\n writer.uint32(/* id 2, wireType 0 =*/16).int32(message.format);\n return writer;\n };\n\n /**\n * Encodes the specified ComputeMetricArgs message, length delimited. Does not implicitly {@link perfetto.protos.ComputeMetricArgs.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.ComputeMetricArgs\n * @static\n * @param {perfetto.protos.IComputeMetricArgs} message ComputeMetricArgs message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ComputeMetricArgs.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a ComputeMetricArgs message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.ComputeMetricArgs\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.ComputeMetricArgs} ComputeMetricArgs\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ComputeMetricArgs.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.ComputeMetricArgs();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (!(message.metricNames && message.metricNames.length))\n message.metricNames = [];\n message.metricNames.push(reader.string());\n break;\n case 2:\n message.format = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a ComputeMetricArgs message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.ComputeMetricArgs\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.ComputeMetricArgs} ComputeMetricArgs\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ComputeMetricArgs.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a ComputeMetricArgs message.\n * @function verify\n * @memberof perfetto.protos.ComputeMetricArgs\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n ComputeMetricArgs.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.metricNames != null && message.hasOwnProperty(\"metricNames\")) {\n if (!Array.isArray(message.metricNames))\n return \"metricNames: array expected\";\n for (var i = 0; i < message.metricNames.length; ++i)\n if (!$util.isString(message.metricNames[i]))\n return \"metricNames: string[] expected\";\n }\n if (message.format != null && message.hasOwnProperty(\"format\"))\n switch (message.format) {\n default:\n return \"format: enum value expected\";\n case 0:\n case 1:\n break;\n }\n return null;\n };\n\n /**\n * Creates a ComputeMetricArgs message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.ComputeMetricArgs\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.ComputeMetricArgs} ComputeMetricArgs\n */\n ComputeMetricArgs.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.ComputeMetricArgs)\n return object;\n var message = new $root.perfetto.protos.ComputeMetricArgs();\n if (object.metricNames) {\n if (!Array.isArray(object.metricNames))\n throw TypeError(\".perfetto.protos.ComputeMetricArgs.metricNames: array expected\");\n message.metricNames = [];\n for (var i = 0; i < object.metricNames.length; ++i)\n message.metricNames[i] = String(object.metricNames[i]);\n }\n switch (object.format) {\n case \"BINARY_PROTOBUF\":\n case 0:\n message.format = 0;\n break;\n case \"TEXTPROTO\":\n case 1:\n message.format = 1;\n break;\n }\n return message;\n };\n\n /**\n * Creates a plain object from a ComputeMetricArgs message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.ComputeMetricArgs\n * @static\n * @param {perfetto.protos.ComputeMetricArgs} message ComputeMetricArgs\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n ComputeMetricArgs.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.metricNames = [];\n if (options.defaults)\n object.format = options.enums === String ? \"BINARY_PROTOBUF\" : 0;\n if (message.metricNames && message.metricNames.length) {\n object.metricNames = [];\n for (var j = 0; j < message.metricNames.length; ++j)\n object.metricNames[j] = message.metricNames[j];\n }\n if (message.format != null && message.hasOwnProperty(\"format\"))\n object.format = options.enums === String ? $root.perfetto.protos.ComputeMetricArgs.ResultFormat[message.format] : message.format;\n return object;\n };\n\n /**\n * Converts this ComputeMetricArgs to JSON.\n * @function toJSON\n * @memberof perfetto.protos.ComputeMetricArgs\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n ComputeMetricArgs.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n /**\n * ResultFormat enum.\n * @name perfetto.protos.ComputeMetricArgs.ResultFormat\n * @enum {number}\n * @property {number} BINARY_PROTOBUF=0 BINARY_PROTOBUF value\n * @property {number} TEXTPROTO=1 TEXTPROTO value\n */\n ComputeMetricArgs.ResultFormat = (function() {\n var valuesById = {}, values = Object.create(valuesById);\n values[valuesById[0] = \"BINARY_PROTOBUF\"] = 0;\n values[valuesById[1] = \"TEXTPROTO\"] = 1;\n return values;\n })();\n\n return ComputeMetricArgs;\n })();\n\n protos.ComputeMetricResult = (function() {\n\n /**\n * Properties of a ComputeMetricResult.\n * @memberof perfetto.protos\n * @interface IComputeMetricResult\n * @property {Uint8Array|null} [metrics] ComputeMetricResult metrics\n * @property {string|null} [metricsAsPrototext] ComputeMetricResult metricsAsPrototext\n * @property {string|null} [error] ComputeMetricResult error\n */\n\n /**\n * Constructs a new ComputeMetricResult.\n * @memberof perfetto.protos\n * @classdesc Represents a ComputeMetricResult.\n * @implements IComputeMetricResult\n * @constructor\n * @param {perfetto.protos.IComputeMetricResult=} [properties] Properties to set\n */\n function ComputeMetricResult(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * ComputeMetricResult metrics.\n * @member {Uint8Array} metrics\n * @memberof perfetto.protos.ComputeMetricResult\n * @instance\n */\n ComputeMetricResult.prototype.metrics = $util.newBuffer([]);\n\n /**\n * ComputeMetricResult metricsAsPrototext.\n * @member {string} metricsAsPrototext\n * @memberof perfetto.protos.ComputeMetricResult\n * @instance\n */\n ComputeMetricResult.prototype.metricsAsPrototext = \"\";\n\n /**\n * ComputeMetricResult error.\n * @member {string} error\n * @memberof perfetto.protos.ComputeMetricResult\n * @instance\n */\n ComputeMetricResult.prototype.error = \"\";\n\n // OneOf field names bound to virtual getters and setters\n var $oneOfFields;\n\n /**\n * ComputeMetricResult result.\n * @member {\"metrics\"|\"metricsAsPrototext\"|undefined} result\n * @memberof perfetto.protos.ComputeMetricResult\n * @instance\n */\n Object.defineProperty(ComputeMetricResult.prototype, \"result\", {\n get: $util.oneOfGetter($oneOfFields = [\"metrics\", \"metricsAsPrototext\"]),\n set: $util.oneOfSetter($oneOfFields)\n });\n\n /**\n * Creates a new ComputeMetricResult instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.ComputeMetricResult\n * @static\n * @param {perfetto.protos.IComputeMetricResult=} [properties] Properties to set\n * @returns {perfetto.protos.ComputeMetricResult} ComputeMetricResult instance\n */\n ComputeMetricResult.create = function create(properties) {\n return new ComputeMetricResult(properties);\n };\n\n /**\n * Encodes the specified ComputeMetricResult message. Does not implicitly {@link perfetto.protos.ComputeMetricResult.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.ComputeMetricResult\n * @static\n * @param {perfetto.protos.IComputeMetricResult} message ComputeMetricResult message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ComputeMetricResult.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.metrics != null && Object.hasOwnProperty.call(message, \"metrics\"))\n writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.metrics);\n if (message.error != null && Object.hasOwnProperty.call(message, \"error\"))\n writer.uint32(/* id 2, wireType 2 =*/18).string(message.error);\n if (message.metricsAsPrototext != null && Object.hasOwnProperty.call(message, \"metricsAsPrototext\"))\n writer.uint32(/* id 3, wireType 2 =*/26).string(message.metricsAsPrototext);\n return writer;\n };\n\n /**\n * Encodes the specified ComputeMetricResult message, length delimited. Does not implicitly {@link perfetto.protos.ComputeMetricResult.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.ComputeMetricResult\n * @static\n * @param {perfetto.protos.IComputeMetricResult} message ComputeMetricResult message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ComputeMetricResult.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a ComputeMetricResult message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.ComputeMetricResult\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.ComputeMetricResult} ComputeMetricResult\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ComputeMetricResult.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.ComputeMetricResult();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.metrics = reader.bytes();\n break;\n case 3:\n message.metricsAsPrototext = reader.string();\n break;\n case 2:\n message.error = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a ComputeMetricResult message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.ComputeMetricResult\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.ComputeMetricResult} ComputeMetricResult\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ComputeMetricResult.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a ComputeMetricResult message.\n * @function verify\n * @memberof perfetto.protos.ComputeMetricResult\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n ComputeMetricResult.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n var properties = {};\n if (message.metrics != null && message.hasOwnProperty(\"metrics\")) {\n properties.result = 1;\n if (!(message.metrics && typeof message.metrics.length === \"number\" || $util.isString(message.metrics)))\n return \"metrics: buffer expected\";\n }\n if (message.metricsAsPrototext != null && message.hasOwnProperty(\"metricsAsPrototext\")) {\n if (properties.result === 1)\n return \"result: multiple values\";\n properties.result = 1;\n if (!$util.isString(message.metricsAsPrototext))\n return \"metricsAsPrototext: string expected\";\n }\n if (message.error != null && message.hasOwnProperty(\"error\"))\n if (!$util.isString(message.error))\n return \"error: string expected\";\n return null;\n };\n\n /**\n * Creates a ComputeMetricResult message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.ComputeMetricResult\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.ComputeMetricResult} ComputeMetricResult\n */\n ComputeMetricResult.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.ComputeMetricResult)\n return object;\n var message = new $root.perfetto.protos.ComputeMetricResult();\n if (object.metrics != null)\n if (typeof object.metrics === \"string\")\n $util.base64.decode(object.metrics, message.metrics = $util.newBuffer($util.base64.length(object.metrics)), 0);\n else if (object.metrics.length)\n message.metrics = object.metrics;\n if (object.metricsAsPrototext != null)\n message.metricsAsPrototext = String(object.metricsAsPrototext);\n if (object.error != null)\n message.error = String(object.error);\n return message;\n };\n\n /**\n * Creates a plain object from a ComputeMetricResult message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.ComputeMetricResult\n * @static\n * @param {perfetto.protos.ComputeMetricResult} message ComputeMetricResult\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n ComputeMetricResult.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults)\n object.error = \"\";\n if (message.metrics != null && message.hasOwnProperty(\"metrics\")) {\n object.metrics = options.bytes === String ? $util.base64.encode(message.metrics, 0, message.metrics.length) : options.bytes === Array ? Array.prototype.slice.call(message.metrics) : message.metrics;\n if (options.oneofs)\n object.result = \"metrics\";\n }\n if (message.error != null && message.hasOwnProperty(\"error\"))\n object.error = message.error;\n if (message.metricsAsPrototext != null && message.hasOwnProperty(\"metricsAsPrototext\")) {\n object.metricsAsPrototext = message.metricsAsPrototext;\n if (options.oneofs)\n object.result = \"metricsAsPrototext\";\n }\n return object;\n };\n\n /**\n * Converts this ComputeMetricResult to JSON.\n * @function toJSON\n * @memberof perfetto.protos.ComputeMetricResult\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n ComputeMetricResult.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return ComputeMetricResult;\n })();\n\n protos.EnableMetatraceArgs = (function() {\n\n /**\n * Properties of an EnableMetatraceArgs.\n * @memberof perfetto.protos\n * @interface IEnableMetatraceArgs\n */\n\n /**\n * Constructs a new EnableMetatraceArgs.\n * @memberof perfetto.protos\n * @classdesc Represents an EnableMetatraceArgs.\n * @implements IEnableMetatraceArgs\n * @constructor\n * @param {perfetto.protos.IEnableMetatraceArgs=} [properties] Properties to set\n */\n function EnableMetatraceArgs(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * Creates a new EnableMetatraceArgs instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.EnableMetatraceArgs\n * @static\n * @param {perfetto.protos.IEnableMetatraceArgs=} [properties] Properties to set\n * @returns {perfetto.protos.EnableMetatraceArgs} EnableMetatraceArgs instance\n */\n EnableMetatraceArgs.create = function create(properties) {\n return new EnableMetatraceArgs(properties);\n };\n\n /**\n * Encodes the specified EnableMetatraceArgs message. Does not implicitly {@link perfetto.protos.EnableMetatraceArgs.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.EnableMetatraceArgs\n * @static\n * @param {perfetto.protos.IEnableMetatraceArgs} message EnableMetatraceArgs message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n EnableMetatraceArgs.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n return writer;\n };\n\n /**\n * Encodes the specified EnableMetatraceArgs message, length delimited. Does not implicitly {@link perfetto.protos.EnableMetatraceArgs.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.EnableMetatraceArgs\n * @static\n * @param {perfetto.protos.IEnableMetatraceArgs} message EnableMetatraceArgs message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n EnableMetatraceArgs.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes an EnableMetatraceArgs message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.EnableMetatraceArgs\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.EnableMetatraceArgs} EnableMetatraceArgs\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n EnableMetatraceArgs.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.EnableMetatraceArgs();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes an EnableMetatraceArgs message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.EnableMetatraceArgs\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.EnableMetatraceArgs} EnableMetatraceArgs\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n EnableMetatraceArgs.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies an EnableMetatraceArgs message.\n * @function verify\n * @memberof perfetto.protos.EnableMetatraceArgs\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n EnableMetatraceArgs.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n return null;\n };\n\n /**\n * Creates an EnableMetatraceArgs message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.EnableMetatraceArgs\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.EnableMetatraceArgs} EnableMetatraceArgs\n */\n EnableMetatraceArgs.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.EnableMetatraceArgs)\n return object;\n return new $root.perfetto.protos.EnableMetatraceArgs();\n };\n\n /**\n * Creates a plain object from an EnableMetatraceArgs message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.EnableMetatraceArgs\n * @static\n * @param {perfetto.protos.EnableMetatraceArgs} message EnableMetatraceArgs\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n EnableMetatraceArgs.toObject = function toObject() {\n return {};\n };\n\n /**\n * Converts this EnableMetatraceArgs to JSON.\n * @function toJSON\n * @memberof perfetto.protos.EnableMetatraceArgs\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n EnableMetatraceArgs.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return EnableMetatraceArgs;\n })();\n\n protos.EnableMetatraceResult = (function() {\n\n /**\n * Properties of an EnableMetatraceResult.\n * @memberof perfetto.protos\n * @interface IEnableMetatraceResult\n */\n\n /**\n * Constructs a new EnableMetatraceResult.\n * @memberof perfetto.protos\n * @classdesc Represents an EnableMetatraceResult.\n * @implements IEnableMetatraceResult\n * @constructor\n * @param {perfetto.protos.IEnableMetatraceResult=} [properties] Properties to set\n */\n function EnableMetatraceResult(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * Creates a new EnableMetatraceResult instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.EnableMetatraceResult\n * @static\n * @param {perfetto.protos.IEnableMetatraceResult=} [properties] Properties to set\n * @returns {perfetto.protos.EnableMetatraceResult} EnableMetatraceResult instance\n */\n EnableMetatraceResult.create = function create(properties) {\n return new EnableMetatraceResult(properties);\n };\n\n /**\n * Encodes the specified EnableMetatraceResult message. Does not implicitly {@link perfetto.protos.EnableMetatraceResult.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.EnableMetatraceResult\n * @static\n * @param {perfetto.protos.IEnableMetatraceResult} message EnableMetatraceResult message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n EnableMetatraceResult.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n return writer;\n };\n\n /**\n * Encodes the specified EnableMetatraceResult message, length delimited. Does not implicitly {@link perfetto.protos.EnableMetatraceResult.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.EnableMetatraceResult\n * @static\n * @param {perfetto.protos.IEnableMetatraceResult} message EnableMetatraceResult message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n EnableMetatraceResult.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes an EnableMetatraceResult message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.EnableMetatraceResult\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.EnableMetatraceResult} EnableMetatraceResult\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n EnableMetatraceResult.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.EnableMetatraceResult();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes an EnableMetatraceResult message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.EnableMetatraceResult\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.EnableMetatraceResult} EnableMetatraceResult\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n EnableMetatraceResult.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies an EnableMetatraceResult message.\n * @function verify\n * @memberof perfetto.protos.EnableMetatraceResult\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n EnableMetatraceResult.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n return null;\n };\n\n /**\n * Creates an EnableMetatraceResult message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.EnableMetatraceResult\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.EnableMetatraceResult} EnableMetatraceResult\n */\n EnableMetatraceResult.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.EnableMetatraceResult)\n return object;\n return new $root.perfetto.protos.EnableMetatraceResult();\n };\n\n /**\n * Creates a plain object from an EnableMetatraceResult message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.EnableMetatraceResult\n * @static\n * @param {perfetto.protos.EnableMetatraceResult} message EnableMetatraceResult\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n EnableMetatraceResult.toObject = function toObject() {\n return {};\n };\n\n /**\n * Converts this EnableMetatraceResult to JSON.\n * @function toJSON\n * @memberof perfetto.protos.EnableMetatraceResult\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n EnableMetatraceResult.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return EnableMetatraceResult;\n })();\n\n protos.DisableAndReadMetatraceArgs = (function() {\n\n /**\n * Properties of a DisableAndReadMetatraceArgs.\n * @memberof perfetto.protos\n * @interface IDisableAndReadMetatraceArgs\n */\n\n /**\n * Constructs a new DisableAndReadMetatraceArgs.\n * @memberof perfetto.protos\n * @classdesc Represents a DisableAndReadMetatraceArgs.\n * @implements IDisableAndReadMetatraceArgs\n * @constructor\n * @param {perfetto.protos.IDisableAndReadMetatraceArgs=} [properties] Properties to set\n */\n function DisableAndReadMetatraceArgs(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * Creates a new DisableAndReadMetatraceArgs instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.DisableAndReadMetatraceArgs\n * @static\n * @param {perfetto.protos.IDisableAndReadMetatraceArgs=} [properties] Properties to set\n * @returns {perfetto.protos.DisableAndReadMetatraceArgs} DisableAndReadMetatraceArgs instance\n */\n DisableAndReadMetatraceArgs.create = function create(properties) {\n return new DisableAndReadMetatraceArgs(properties);\n };\n\n /**\n * Encodes the specified DisableAndReadMetatraceArgs message. Does not implicitly {@link perfetto.protos.DisableAndReadMetatraceArgs.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.DisableAndReadMetatraceArgs\n * @static\n * @param {perfetto.protos.IDisableAndReadMetatraceArgs} message DisableAndReadMetatraceArgs message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n DisableAndReadMetatraceArgs.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n return writer;\n };\n\n /**\n * Encodes the specified DisableAndReadMetatraceArgs message, length delimited. Does not implicitly {@link perfetto.protos.DisableAndReadMetatraceArgs.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.DisableAndReadMetatraceArgs\n * @static\n * @param {perfetto.protos.IDisableAndReadMetatraceArgs} message DisableAndReadMetatraceArgs message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n DisableAndReadMetatraceArgs.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a DisableAndReadMetatraceArgs message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.DisableAndReadMetatraceArgs\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.DisableAndReadMetatraceArgs} DisableAndReadMetatraceArgs\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n DisableAndReadMetatraceArgs.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.DisableAndReadMetatraceArgs();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a DisableAndReadMetatraceArgs message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.DisableAndReadMetatraceArgs\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.DisableAndReadMetatraceArgs} DisableAndReadMetatraceArgs\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n DisableAndReadMetatraceArgs.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a DisableAndReadMetatraceArgs message.\n * @function verify\n * @memberof perfetto.protos.DisableAndReadMetatraceArgs\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n DisableAndReadMetatraceArgs.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n return null;\n };\n\n /**\n * Creates a DisableAndReadMetatraceArgs message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.DisableAndReadMetatraceArgs\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.DisableAndReadMetatraceArgs} DisableAndReadMetatraceArgs\n */\n DisableAndReadMetatraceArgs.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.DisableAndReadMetatraceArgs)\n return object;\n return new $root.perfetto.protos.DisableAndReadMetatraceArgs();\n };\n\n /**\n * Creates a plain object from a DisableAndReadMetatraceArgs message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.DisableAndReadMetatraceArgs\n * @static\n * @param {perfetto.protos.DisableAndReadMetatraceArgs} message DisableAndReadMetatraceArgs\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n DisableAndReadMetatraceArgs.toObject = function toObject() {\n return {};\n };\n\n /**\n * Converts this DisableAndReadMetatraceArgs to JSON.\n * @function toJSON\n * @memberof perfetto.protos.DisableAndReadMetatraceArgs\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n DisableAndReadMetatraceArgs.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return DisableAndReadMetatraceArgs;\n })();\n\n protos.DisableAndReadMetatraceResult = (function() {\n\n /**\n * Properties of a DisableAndReadMetatraceResult.\n * @memberof perfetto.protos\n * @interface IDisableAndReadMetatraceResult\n * @property {Uint8Array|null} [metatrace] DisableAndReadMetatraceResult metatrace\n * @property {string|null} [error] DisableAndReadMetatraceResult error\n */\n\n /**\n * Constructs a new DisableAndReadMetatraceResult.\n * @memberof perfetto.protos\n * @classdesc Represents a DisableAndReadMetatraceResult.\n * @implements IDisableAndReadMetatraceResult\n * @constructor\n * @param {perfetto.protos.IDisableAndReadMetatraceResult=} [properties] Properties to set\n */\n function DisableAndReadMetatraceResult(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * DisableAndReadMetatraceResult metatrace.\n * @member {Uint8Array} metatrace\n * @memberof perfetto.protos.DisableAndReadMetatraceResult\n * @instance\n */\n DisableAndReadMetatraceResult.prototype.metatrace = $util.newBuffer([]);\n\n /**\n * DisableAndReadMetatraceResult error.\n * @member {string} error\n * @memberof perfetto.protos.DisableAndReadMetatraceResult\n * @instance\n */\n DisableAndReadMetatraceResult.prototype.error = \"\";\n\n /**\n * Creates a new DisableAndReadMetatraceResult instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.DisableAndReadMetatraceResult\n * @static\n * @param {perfetto.protos.IDisableAndReadMetatraceResult=} [properties] Properties to set\n * @returns {perfetto.protos.DisableAndReadMetatraceResult} DisableAndReadMetatraceResult instance\n */\n DisableAndReadMetatraceResult.create = function create(properties) {\n return new DisableAndReadMetatraceResult(properties);\n };\n\n /**\n * Encodes the specified DisableAndReadMetatraceResult message. Does not implicitly {@link perfetto.protos.DisableAndReadMetatraceResult.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.DisableAndReadMetatraceResult\n * @static\n * @param {perfetto.protos.IDisableAndReadMetatraceResult} message DisableAndReadMetatraceResult message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n DisableAndReadMetatraceResult.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.metatrace != null && Object.hasOwnProperty.call(message, \"metatrace\"))\n writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.metatrace);\n if (message.error != null && Object.hasOwnProperty.call(message, \"error\"))\n writer.uint32(/* id 2, wireType 2 =*/18).string(message.error);\n return writer;\n };\n\n /**\n * Encodes the specified DisableAndReadMetatraceResult message, length delimited. Does not implicitly {@link perfetto.protos.DisableAndReadMetatraceResult.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.DisableAndReadMetatraceResult\n * @static\n * @param {perfetto.protos.IDisableAndReadMetatraceResult} message DisableAndReadMetatraceResult message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n DisableAndReadMetatraceResult.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a DisableAndReadMetatraceResult message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.DisableAndReadMetatraceResult\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.DisableAndReadMetatraceResult} DisableAndReadMetatraceResult\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n DisableAndReadMetatraceResult.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.DisableAndReadMetatraceResult();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.metatrace = reader.bytes();\n break;\n case 2:\n message.error = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a DisableAndReadMetatraceResult message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.DisableAndReadMetatraceResult\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.DisableAndReadMetatraceResult} DisableAndReadMetatraceResult\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n DisableAndReadMetatraceResult.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a DisableAndReadMetatraceResult message.\n * @function verify\n * @memberof perfetto.protos.DisableAndReadMetatraceResult\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n DisableAndReadMetatraceResult.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.metatrace != null && message.hasOwnProperty(\"metatrace\"))\n if (!(message.metatrace && typeof message.metatrace.length === \"number\" || $util.isString(message.metatrace)))\n return \"metatrace: buffer expected\";\n if (message.error != null && message.hasOwnProperty(\"error\"))\n if (!$util.isString(message.error))\n return \"error: string expected\";\n return null;\n };\n\n /**\n * Creates a DisableAndReadMetatraceResult message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.DisableAndReadMetatraceResult\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.DisableAndReadMetatraceResult} DisableAndReadMetatraceResult\n */\n DisableAndReadMetatraceResult.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.DisableAndReadMetatraceResult)\n return object;\n var message = new $root.perfetto.protos.DisableAndReadMetatraceResult();\n if (object.metatrace != null)\n if (typeof object.metatrace === \"string\")\n $util.base64.decode(object.metatrace, message.metatrace = $util.newBuffer($util.base64.length(object.metatrace)), 0);\n else if (object.metatrace.length)\n message.metatrace = object.metatrace;\n if (object.error != null)\n message.error = String(object.error);\n return message;\n };\n\n /**\n * Creates a plain object from a DisableAndReadMetatraceResult message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.DisableAndReadMetatraceResult\n * @static\n * @param {perfetto.protos.DisableAndReadMetatraceResult} message DisableAndReadMetatraceResult\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n DisableAndReadMetatraceResult.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n if (options.bytes === String)\n object.metatrace = \"\";\n else {\n object.metatrace = [];\n if (options.bytes !== Array)\n object.metatrace = $util.newBuffer(object.metatrace);\n }\n object.error = \"\";\n }\n if (message.metatrace != null && message.hasOwnProperty(\"metatrace\"))\n object.metatrace = options.bytes === String ? $util.base64.encode(message.metatrace, 0, message.metatrace.length) : options.bytes === Array ? Array.prototype.slice.call(message.metatrace) : message.metatrace;\n if (message.error != null && message.hasOwnProperty(\"error\"))\n object.error = message.error;\n return object;\n };\n\n /**\n * Converts this DisableAndReadMetatraceResult to JSON.\n * @function toJSON\n * @memberof perfetto.protos.DisableAndReadMetatraceResult\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n DisableAndReadMetatraceResult.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return DisableAndReadMetatraceResult;\n })();\n\n protos.DescriptorSet = (function() {\n\n /**\n * Properties of a DescriptorSet.\n * @memberof perfetto.protos\n * @interface IDescriptorSet\n * @property {Array.<perfetto.protos.IDescriptorProto>|null} [descriptors] DescriptorSet descriptors\n */\n\n /**\n * Constructs a new DescriptorSet.\n * @memberof perfetto.protos\n * @classdesc Represents a DescriptorSet.\n * @implements IDescriptorSet\n * @constructor\n * @param {perfetto.protos.IDescriptorSet=} [properties] Properties to set\n */\n function DescriptorSet(properties) {\n this.descriptors = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * DescriptorSet descriptors.\n * @member {Array.<perfetto.protos.IDescriptorProto>} descriptors\n * @memberof perfetto.protos.DescriptorSet\n * @instance\n */\n DescriptorSet.prototype.descriptors = $util.emptyArray;\n\n /**\n * Creates a new DescriptorSet instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.DescriptorSet\n * @static\n * @param {perfetto.protos.IDescriptorSet=} [properties] Properties to set\n * @returns {perfetto.protos.DescriptorSet} DescriptorSet instance\n */\n DescriptorSet.create = function create(properties) {\n return new DescriptorSet(properties);\n };\n\n /**\n * Encodes the specified DescriptorSet message. Does not implicitly {@link perfetto.protos.DescriptorSet.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.DescriptorSet\n * @static\n * @param {perfetto.protos.IDescriptorSet} message DescriptorSet message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n DescriptorSet.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.descriptors != null && message.descriptors.length)\n for (var i = 0; i < message.descriptors.length; ++i)\n $root.perfetto.protos.DescriptorProto.encode(message.descriptors[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified DescriptorSet message, length delimited. Does not implicitly {@link perfetto.protos.DescriptorSet.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.DescriptorSet\n * @static\n * @param {perfetto.protos.IDescriptorSet} message DescriptorSet message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n DescriptorSet.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a DescriptorSet message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.DescriptorSet\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.DescriptorSet} DescriptorSet\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n DescriptorSet.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.DescriptorSet();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (!(message.descriptors && message.descriptors.length))\n message.descriptors = [];\n message.descriptors.push($root.perfetto.protos.DescriptorProto.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a DescriptorSet message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.DescriptorSet\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.DescriptorSet} DescriptorSet\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n DescriptorSet.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a DescriptorSet message.\n * @function verify\n * @memberof perfetto.protos.DescriptorSet\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n DescriptorSet.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.descriptors != null && message.hasOwnProperty(\"descriptors\")) {\n if (!Array.isArray(message.descriptors))\n return \"descriptors: array expected\";\n for (var i = 0; i < message.descriptors.length; ++i) {\n var error = $root.perfetto.protos.DescriptorProto.verify(message.descriptors[i]);\n if (error)\n return \"descriptors.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates a DescriptorSet message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.DescriptorSet\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.DescriptorSet} DescriptorSet\n */\n DescriptorSet.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.DescriptorSet)\n return object;\n var message = new $root.perfetto.protos.DescriptorSet();\n if (object.descriptors) {\n if (!Array.isArray(object.descriptors))\n throw TypeError(\".perfetto.protos.DescriptorSet.descriptors: array expected\");\n message.descriptors = [];\n for (var i = 0; i < object.descriptors.length; ++i) {\n if (typeof object.descriptors[i] !== \"object\")\n throw TypeError(\".perfetto.protos.DescriptorSet.descriptors: object expected\");\n message.descriptors[i] = $root.perfetto.protos.DescriptorProto.fromObject(object.descriptors[i]);\n }\n }\n return message;\n };\n\n /**\n * Creates a plain object from a DescriptorSet message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.DescriptorSet\n * @static\n * @param {perfetto.protos.DescriptorSet} message DescriptorSet\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n DescriptorSet.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.descriptors = [];\n if (message.descriptors && message.descriptors.length) {\n object.descriptors = [];\n for (var j = 0; j < message.descriptors.length; ++j)\n object.descriptors[j] = $root.perfetto.protos.DescriptorProto.toObject(message.descriptors[j], options);\n }\n return object;\n };\n\n /**\n * Converts this DescriptorSet to JSON.\n * @function toJSON\n * @memberof perfetto.protos.DescriptorSet\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n DescriptorSet.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return DescriptorSet;\n })();\n\n protos.FileDescriptorSet = (function() {\n\n /**\n * Properties of a FileDescriptorSet.\n * @memberof perfetto.protos\n * @interface IFileDescriptorSet\n * @property {Array.<perfetto.protos.IFileDescriptorProto>|null} [file] FileDescriptorSet file\n */\n\n /**\n * Constructs a new FileDescriptorSet.\n * @memberof perfetto.protos\n * @classdesc Represents a FileDescriptorSet.\n * @implements IFileDescriptorSet\n * @constructor\n * @param {perfetto.protos.IFileDescriptorSet=} [properties] Properties to set\n */\n function FileDescriptorSet(properties) {\n this.file = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * FileDescriptorSet file.\n * @member {Array.<perfetto.protos.IFileDescriptorProto>} file\n * @memberof perfetto.protos.FileDescriptorSet\n * @instance\n */\n FileDescriptorSet.prototype.file = $util.emptyArray;\n\n /**\n * Creates a new FileDescriptorSet instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.FileDescriptorSet\n * @static\n * @param {perfetto.protos.IFileDescriptorSet=} [properties] Properties to set\n * @returns {perfetto.protos.FileDescriptorSet} FileDescriptorSet instance\n */\n FileDescriptorSet.create = function create(properties) {\n return new FileDescriptorSet(properties);\n };\n\n /**\n * Encodes the specified FileDescriptorSet message. Does not implicitly {@link perfetto.protos.FileDescriptorSet.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.FileDescriptorSet\n * @static\n * @param {perfetto.protos.IFileDescriptorSet} message FileDescriptorSet message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n FileDescriptorSet.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.file != null && message.file.length)\n for (var i = 0; i < message.file.length; ++i)\n $root.perfetto.protos.FileDescriptorProto.encode(message.file[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified FileDescriptorSet message, length delimited. Does not implicitly {@link perfetto.protos.FileDescriptorSet.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.FileDescriptorSet\n * @static\n * @param {perfetto.protos.IFileDescriptorSet} message FileDescriptorSet message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n FileDescriptorSet.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a FileDescriptorSet message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.FileDescriptorSet\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.FileDescriptorSet} FileDescriptorSet\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n FileDescriptorSet.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.FileDescriptorSet();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (!(message.file && message.file.length))\n message.file = [];\n message.file.push($root.perfetto.protos.FileDescriptorProto.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a FileDescriptorSet message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.FileDescriptorSet\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.FileDescriptorSet} FileDescriptorSet\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n FileDescriptorSet.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a FileDescriptorSet message.\n * @function verify\n * @memberof perfetto.protos.FileDescriptorSet\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n FileDescriptorSet.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.file != null && message.hasOwnProperty(\"file\")) {\n if (!Array.isArray(message.file))\n return \"file: array expected\";\n for (var i = 0; i < message.file.length; ++i) {\n var error = $root.perfetto.protos.FileDescriptorProto.verify(message.file[i]);\n if (error)\n return \"file.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates a FileDescriptorSet message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.FileDescriptorSet\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.FileDescriptorSet} FileDescriptorSet\n */\n FileDescriptorSet.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.FileDescriptorSet)\n return object;\n var message = new $root.perfetto.protos.FileDescriptorSet();\n if (object.file) {\n if (!Array.isArray(object.file))\n throw TypeError(\".perfetto.protos.FileDescriptorSet.file: array expected\");\n message.file = [];\n for (var i = 0; i < object.file.length; ++i) {\n if (typeof object.file[i] !== \"object\")\n throw TypeError(\".perfetto.protos.FileDescriptorSet.file: object expected\");\n message.file[i] = $root.perfetto.protos.FileDescriptorProto.fromObject(object.file[i]);\n }\n }\n return message;\n };\n\n /**\n * Creates a plain object from a FileDescriptorSet message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.FileDescriptorSet\n * @static\n * @param {perfetto.protos.FileDescriptorSet} message FileDescriptorSet\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n FileDescriptorSet.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.file = [];\n if (message.file && message.file.length) {\n object.file = [];\n for (var j = 0; j < message.file.length; ++j)\n object.file[j] = $root.perfetto.protos.FileDescriptorProto.toObject(message.file[j], options);\n }\n return object;\n };\n\n /**\n * Converts this FileDescriptorSet to JSON.\n * @function toJSON\n * @memberof perfetto.protos.FileDescriptorSet\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n FileDescriptorSet.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return FileDescriptorSet;\n })();\n\n protos.FileDescriptorProto = (function() {\n\n /**\n * Properties of a FileDescriptorProto.\n * @memberof perfetto.protos\n * @interface IFileDescriptorProto\n * @property {string|null} [name] FileDescriptorProto name\n * @property {string|null} [\"package\"] FileDescriptorProto package\n * @property {Array.<string>|null} [dependency] FileDescriptorProto dependency\n * @property {Array.<number>|null} [publicDependency] FileDescriptorProto publicDependency\n * @property {Array.<number>|null} [weakDependency] FileDescriptorProto weakDependency\n * @property {Array.<perfetto.protos.IDescriptorProto>|null} [messageType] FileDescriptorProto messageType\n * @property {Array.<perfetto.protos.IEnumDescriptorProto>|null} [enumType] FileDescriptorProto enumType\n * @property {Array.<perfetto.protos.IFieldDescriptorProto>|null} [extension] FileDescriptorProto extension\n */\n\n /**\n * Constructs a new FileDescriptorProto.\n * @memberof perfetto.protos\n * @classdesc Represents a FileDescriptorProto.\n * @implements IFileDescriptorProto\n * @constructor\n * @param {perfetto.protos.IFileDescriptorProto=} [properties] Properties to set\n */\n function FileDescriptorProto(properties) {\n this.dependency = [];\n this.publicDependency = [];\n this.weakDependency = [];\n this.messageType = [];\n this.enumType = [];\n this.extension = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * FileDescriptorProto name.\n * @member {string} name\n * @memberof perfetto.protos.FileDescriptorProto\n * @instance\n */\n FileDescriptorProto.prototype.name = \"\";\n\n /**\n * FileDescriptorProto package.\n * @member {string} package\n * @memberof perfetto.protos.FileDescriptorProto\n * @instance\n */\n FileDescriptorProto.prototype[\"package\"] = \"\";\n\n /**\n * FileDescriptorProto dependency.\n * @member {Array.<string>} dependency\n * @memberof perfetto.protos.FileDescriptorProto\n * @instance\n */\n FileDescriptorProto.prototype.dependency = $util.emptyArray;\n\n /**\n * FileDescriptorProto publicDependency.\n * @member {Array.<number>} publicDependency\n * @memberof perfetto.protos.FileDescriptorProto\n * @instance\n */\n FileDescriptorProto.prototype.publicDependency = $util.emptyArray;\n\n /**\n * FileDescriptorProto weakDependency.\n * @member {Array.<number>} weakDependency\n * @memberof perfetto.protos.FileDescriptorProto\n * @instance\n */\n FileDescriptorProto.prototype.weakDependency = $util.emptyArray;\n\n /**\n * FileDescriptorProto messageType.\n * @member {Array.<perfetto.protos.IDescriptorProto>} messageType\n * @memberof perfetto.protos.FileDescriptorProto\n * @instance\n */\n FileDescriptorProto.prototype.messageType = $util.emptyArray;\n\n /**\n * FileDescriptorProto enumType.\n * @member {Array.<perfetto.protos.IEnumDescriptorProto>} enumType\n * @memberof perfetto.protos.FileDescriptorProto\n * @instance\n */\n FileDescriptorProto.prototype.enumType = $util.emptyArray;\n\n /**\n * FileDescriptorProto extension.\n * @member {Array.<perfetto.protos.IFieldDescriptorProto>} extension\n * @memberof perfetto.protos.FileDescriptorProto\n * @instance\n */\n FileDescriptorProto.prototype.extension = $util.emptyArray;\n\n /**\n * Creates a new FileDescriptorProto instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.FileDescriptorProto\n * @static\n * @param {perfetto.protos.IFileDescriptorProto=} [properties] Properties to set\n * @returns {perfetto.protos.FileDescriptorProto} FileDescriptorProto instance\n */\n FileDescriptorProto.create = function create(properties) {\n return new FileDescriptorProto(properties);\n };\n\n /**\n * Encodes the specified FileDescriptorProto message. Does not implicitly {@link perfetto.protos.FileDescriptorProto.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.FileDescriptorProto\n * @static\n * @param {perfetto.protos.IFileDescriptorProto} message FileDescriptorProto message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n FileDescriptorProto.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.name != null && Object.hasOwnProperty.call(message, \"name\"))\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.name);\n if (message[\"package\"] != null && Object.hasOwnProperty.call(message, \"package\"))\n writer.uint32(/* id 2, wireType 2 =*/18).string(message[\"package\"]);\n if (message.dependency != null && message.dependency.length)\n for (var i = 0; i < message.dependency.length; ++i)\n writer.uint32(/* id 3, wireType 2 =*/26).string(message.dependency[i]);\n if (message.messageType != null && message.messageType.length)\n for (var i = 0; i < message.messageType.length; ++i)\n $root.perfetto.protos.DescriptorProto.encode(message.messageType[i], writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim();\n if (message.enumType != null && message.enumType.length)\n for (var i = 0; i < message.enumType.length; ++i)\n $root.perfetto.protos.EnumDescriptorProto.encode(message.enumType[i], writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim();\n if (message.extension != null && message.extension.length)\n for (var i = 0; i < message.extension.length; ++i)\n $root.perfetto.protos.FieldDescriptorProto.encode(message.extension[i], writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim();\n if (message.publicDependency != null && message.publicDependency.length)\n for (var i = 0; i < message.publicDependency.length; ++i)\n writer.uint32(/* id 10, wireType 0 =*/80).int32(message.publicDependency[i]);\n if (message.weakDependency != null && message.weakDependency.length)\n for (var i = 0; i < message.weakDependency.length; ++i)\n writer.uint32(/* id 11, wireType 0 =*/88).int32(message.weakDependency[i]);\n return writer;\n };\n\n /**\n * Encodes the specified FileDescriptorProto message, length delimited. Does not implicitly {@link perfetto.protos.FileDescriptorProto.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.FileDescriptorProto\n * @static\n * @param {perfetto.protos.IFileDescriptorProto} message FileDescriptorProto message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n FileDescriptorProto.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a FileDescriptorProto message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.FileDescriptorProto\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.FileDescriptorProto} FileDescriptorProto\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n FileDescriptorProto.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.FileDescriptorProto();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.name = reader.string();\n break;\n case 2:\n message[\"package\"] = reader.string();\n break;\n case 3:\n if (!(message.dependency && message.dependency.length))\n message.dependency = [];\n message.dependency.push(reader.string());\n break;\n case 10:\n if (!(message.publicDependency && message.publicDependency.length))\n message.publicDependency = [];\n if ((tag & 7) === 2) {\n var end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2)\n message.publicDependency.push(reader.int32());\n } else\n message.publicDependency.push(reader.int32());\n break;\n case 11:\n if (!(message.weakDependency && message.weakDependency.length))\n message.weakDependency = [];\n if ((tag & 7) === 2) {\n var end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2)\n message.weakDependency.push(reader.int32());\n } else\n message.weakDependency.push(reader.int32());\n break;\n case 4:\n if (!(message.messageType && message.messageType.length))\n message.messageType = [];\n message.messageType.push($root.perfetto.protos.DescriptorProto.decode(reader, reader.uint32()));\n break;\n case 5:\n if (!(message.enumType && message.enumType.length))\n message.enumType = [];\n message.enumType.push($root.perfetto.protos.EnumDescriptorProto.decode(reader, reader.uint32()));\n break;\n case 7:\n if (!(message.extension && message.extension.length))\n message.extension = [];\n message.extension.push($root.perfetto.protos.FieldDescriptorProto.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a FileDescriptorProto message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.FileDescriptorProto\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.FileDescriptorProto} FileDescriptorProto\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n FileDescriptorProto.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a FileDescriptorProto message.\n * @function verify\n * @memberof perfetto.protos.FileDescriptorProto\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n FileDescriptorProto.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.name != null && message.hasOwnProperty(\"name\"))\n if (!$util.isString(message.name))\n return \"name: string expected\";\n if (message[\"package\"] != null && message.hasOwnProperty(\"package\"))\n if (!$util.isString(message[\"package\"]))\n return \"package: string expected\";\n if (message.dependency != null && message.hasOwnProperty(\"dependency\")) {\n if (!Array.isArray(message.dependency))\n return \"dependency: array expected\";\n for (var i = 0; i < message.dependency.length; ++i)\n if (!$util.isString(message.dependency[i]))\n return \"dependency: string[] expected\";\n }\n if (message.publicDependency != null && message.hasOwnProperty(\"publicDependency\")) {\n if (!Array.isArray(message.publicDependency))\n return \"publicDependency: array expected\";\n for (var i = 0; i < message.publicDependency.length; ++i)\n if (!$util.isInteger(message.publicDependency[i]))\n return \"publicDependency: integer[] expected\";\n }\n if (message.weakDependency != null && message.hasOwnProperty(\"weakDependency\")) {\n if (!Array.isArray(message.weakDependency))\n return \"weakDependency: array expected\";\n for (var i = 0; i < message.weakDependency.length; ++i)\n if (!$util.isInteger(message.weakDependency[i]))\n return \"weakDependency: integer[] expected\";\n }\n if (message.messageType != null && message.hasOwnProperty(\"messageType\")) {\n if (!Array.isArray(message.messageType))\n return \"messageType: array expected\";\n for (var i = 0; i < message.messageType.length; ++i) {\n var error = $root.perfetto.protos.DescriptorProto.verify(message.messageType[i]);\n if (error)\n return \"messageType.\" + error;\n }\n }\n if (message.enumType != null && message.hasOwnProperty(\"enumType\")) {\n if (!Array.isArray(message.enumType))\n return \"enumType: array expected\";\n for (var i = 0; i < message.enumType.length; ++i) {\n var error = $root.perfetto.protos.EnumDescriptorProto.verify(message.enumType[i]);\n if (error)\n return \"enumType.\" + error;\n }\n }\n if (message.extension != null && message.hasOwnProperty(\"extension\")) {\n if (!Array.isArray(message.extension))\n return \"extension: array expected\";\n for (var i = 0; i < message.extension.length; ++i) {\n var error = $root.perfetto.protos.FieldDescriptorProto.verify(message.extension[i]);\n if (error)\n return \"extension.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates a FileDescriptorProto message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.FileDescriptorProto\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.FileDescriptorProto} FileDescriptorProto\n */\n FileDescriptorProto.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.FileDescriptorProto)\n return object;\n var message = new $root.perfetto.protos.FileDescriptorProto();\n if (object.name != null)\n message.name = String(object.name);\n if (object[\"package\"] != null)\n message[\"package\"] = String(object[\"package\"]);\n if (object.dependency) {\n if (!Array.isArray(object.dependency))\n throw TypeError(\".perfetto.protos.FileDescriptorProto.dependency: array expected\");\n message.dependency = [];\n for (var i = 0; i < object.dependency.length; ++i)\n message.dependency[i] = String(object.dependency[i]);\n }\n if (object.publicDependency) {\n if (!Array.isArray(object.publicDependency))\n throw TypeError(\".perfetto.protos.FileDescriptorProto.publicDependency: array expected\");\n message.publicDependency = [];\n for (var i = 0; i < object.publicDependency.length; ++i)\n message.publicDependency[i] = object.publicDependency[i] | 0;\n }\n if (object.weakDependency) {\n if (!Array.isArray(object.weakDependency))\n throw TypeError(\".perfetto.protos.FileDescriptorProto.weakDependency: array expected\");\n message.weakDependency = [];\n for (var i = 0; i < object.weakDependency.length; ++i)\n message.weakDependency[i] = object.weakDependency[i] | 0;\n }\n if (object.messageType) {\n if (!Array.isArray(object.messageType))\n throw TypeError(\".perfetto.protos.FileDescriptorProto.messageType: array expected\");\n message.messageType = [];\n for (var i = 0; i < object.messageType.length; ++i) {\n if (typeof object.messageType[i] !== \"object\")\n throw TypeError(\".perfetto.protos.FileDescriptorProto.messageType: object expected\");\n message.messageType[i] = $root.perfetto.protos.DescriptorProto.fromObject(object.messageType[i]);\n }\n }\n if (object.enumType) {\n if (!Array.isArray(object.enumType))\n throw TypeError(\".perfetto.protos.FileDescriptorProto.enumType: array expected\");\n message.enumType = [];\n for (var i = 0; i < object.enumType.length; ++i) {\n if (typeof object.enumType[i] !== \"object\")\n throw TypeError(\".perfetto.protos.FileDescriptorProto.enumType: object expected\");\n message.enumType[i] = $root.perfetto.protos.EnumDescriptorProto.fromObject(object.enumType[i]);\n }\n }\n if (object.extension) {\n if (!Array.isArray(object.extension))\n throw TypeError(\".perfetto.protos.FileDescriptorProto.extension: array expected\");\n message.extension = [];\n for (var i = 0; i < object.extension.length; ++i) {\n if (typeof object.extension[i] !== \"object\")\n throw TypeError(\".perfetto.protos.FileDescriptorProto.extension: object expected\");\n message.extension[i] = $root.perfetto.protos.FieldDescriptorProto.fromObject(object.extension[i]);\n }\n }\n return message;\n };\n\n /**\n * Creates a plain object from a FileDescriptorProto message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.FileDescriptorProto\n * @static\n * @param {perfetto.protos.FileDescriptorProto} message FileDescriptorProto\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n FileDescriptorProto.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults) {\n object.dependency = [];\n object.messageType = [];\n object.enumType = [];\n object.extension = [];\n object.publicDependency = [];\n object.weakDependency = [];\n }\n if (options.defaults) {\n object.name = \"\";\n object[\"package\"] = \"\";\n }\n if (message.name != null && message.hasOwnProperty(\"name\"))\n object.name = message.name;\n if (message[\"package\"] != null && message.hasOwnProperty(\"package\"))\n object[\"package\"] = message[\"package\"];\n if (message.dependency && message.dependency.length) {\n object.dependency = [];\n for (var j = 0; j < message.dependency.length; ++j)\n object.dependency[j] = message.dependency[j];\n }\n if (message.messageType && message.messageType.length) {\n object.messageType = [];\n for (var j = 0; j < message.messageType.length; ++j)\n object.messageType[j] = $root.perfetto.protos.DescriptorProto.toObject(message.messageType[j], options);\n }\n if (message.enumType && message.enumType.length) {\n object.enumType = [];\n for (var j = 0; j < message.enumType.length; ++j)\n object.enumType[j] = $root.perfetto.protos.EnumDescriptorProto.toObject(message.enumType[j], options);\n }\n if (message.extension && message.extension.length) {\n object.extension = [];\n for (var j = 0; j < message.extension.length; ++j)\n object.extension[j] = $root.perfetto.protos.FieldDescriptorProto.toObject(message.extension[j], options);\n }\n if (message.publicDependency && message.publicDependency.length) {\n object.publicDependency = [];\n for (var j = 0; j < message.publicDependency.length; ++j)\n object.publicDependency[j] = message.publicDependency[j];\n }\n if (message.weakDependency && message.weakDependency.length) {\n object.weakDependency = [];\n for (var j = 0; j < message.weakDependency.length; ++j)\n object.weakDependency[j] = message.weakDependency[j];\n }\n return object;\n };\n\n /**\n * Converts this FileDescriptorProto to JSON.\n * @function toJSON\n * @memberof perfetto.protos.FileDescriptorProto\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n FileDescriptorProto.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return FileDescriptorProto;\n })();\n\n protos.DescriptorProto = (function() {\n\n /**\n * Properties of a DescriptorProto.\n * @memberof perfetto.protos\n * @interface IDescriptorProto\n * @property {string|null} [name] DescriptorProto name\n * @property {Array.<perfetto.protos.IFieldDescriptorProto>|null} [field] DescriptorProto field\n * @property {Array.<perfetto.protos.IFieldDescriptorProto>|null} [extension] DescriptorProto extension\n * @property {Array.<perfetto.protos.IDescriptorProto>|null} [nestedType] DescriptorProto nestedType\n * @property {Array.<perfetto.protos.IEnumDescriptorProto>|null} [enumType] DescriptorProto enumType\n * @property {Array.<perfetto.protos.IOneofDescriptorProto>|null} [oneofDecl] DescriptorProto oneofDecl\n * @property {Array.<perfetto.protos.DescriptorProto.IReservedRange>|null} [reservedRange] DescriptorProto reservedRange\n * @property {Array.<string>|null} [reservedName] DescriptorProto reservedName\n */\n\n /**\n * Constructs a new DescriptorProto.\n * @memberof perfetto.protos\n * @classdesc Represents a DescriptorProto.\n * @implements IDescriptorProto\n * @constructor\n * @param {perfetto.protos.IDescriptorProto=} [properties] Properties to set\n */\n function DescriptorProto(properties) {\n this.field = [];\n this.extension = [];\n this.nestedType = [];\n this.enumType = [];\n this.oneofDecl = [];\n this.reservedRange = [];\n this.reservedName = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * DescriptorProto name.\n * @member {string} name\n * @memberof perfetto.protos.DescriptorProto\n * @instance\n */\n DescriptorProto.prototype.name = \"\";\n\n /**\n * DescriptorProto field.\n * @member {Array.<perfetto.protos.IFieldDescriptorProto>} field\n * @memberof perfetto.protos.DescriptorProto\n * @instance\n */\n DescriptorProto.prototype.field = $util.emptyArray;\n\n /**\n * DescriptorProto extension.\n * @member {Array.<perfetto.protos.IFieldDescriptorProto>} extension\n * @memberof perfetto.protos.DescriptorProto\n * @instance\n */\n DescriptorProto.prototype.extension = $util.emptyArray;\n\n /**\n * DescriptorProto nestedType.\n * @member {Array.<perfetto.protos.IDescriptorProto>} nestedType\n * @memberof perfetto.protos.DescriptorProto\n * @instance\n */\n DescriptorProto.prototype.nestedType = $util.emptyArray;\n\n /**\n * DescriptorProto enumType.\n * @member {Array.<perfetto.protos.IEnumDescriptorProto>} enumType\n * @memberof perfetto.protos.DescriptorProto\n * @instance\n */\n DescriptorProto.prototype.enumType = $util.emptyArray;\n\n /**\n * DescriptorProto oneofDecl.\n * @member {Array.<perfetto.protos.IOneofDescriptorProto>} oneofDecl\n * @memberof perfetto.protos.DescriptorProto\n * @instance\n */\n DescriptorProto.prototype.oneofDecl = $util.emptyArray;\n\n /**\n * DescriptorProto reservedRange.\n * @member {Array.<perfetto.protos.DescriptorProto.IReservedRange>} reservedRange\n * @memberof perfetto.protos.DescriptorProto\n * @instance\n */\n DescriptorProto.prototype.reservedRange = $util.emptyArray;\n\n /**\n * DescriptorProto reservedName.\n * @member {Array.<string>} reservedName\n * @memberof perfetto.protos.DescriptorProto\n * @instance\n */\n DescriptorProto.prototype.reservedName = $util.emptyArray;\n\n /**\n * Creates a new DescriptorProto instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.DescriptorProto\n * @static\n * @param {perfetto.protos.IDescriptorProto=} [properties] Properties to set\n * @returns {perfetto.protos.DescriptorProto} DescriptorProto instance\n */\n DescriptorProto.create = function create(properties) {\n return new DescriptorProto(properties);\n };\n\n /**\n * Encodes the specified DescriptorProto message. Does not implicitly {@link perfetto.protos.DescriptorProto.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.DescriptorProto\n * @static\n * @param {perfetto.protos.IDescriptorProto} message DescriptorProto message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n DescriptorProto.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.name != null && Object.hasOwnProperty.call(message, \"name\"))\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.name);\n if (message.field != null && message.field.length)\n for (var i = 0; i < message.field.length; ++i)\n $root.perfetto.protos.FieldDescriptorProto.encode(message.field[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n if (message.nestedType != null && message.nestedType.length)\n for (var i = 0; i < message.nestedType.length; ++i)\n $root.perfetto.protos.DescriptorProto.encode(message.nestedType[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();\n if (message.enumType != null && message.enumType.length)\n for (var i = 0; i < message.enumType.length; ++i)\n $root.perfetto.protos.EnumDescriptorProto.encode(message.enumType[i], writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim();\n if (message.extension != null && message.extension.length)\n for (var i = 0; i < message.extension.length; ++i)\n $root.perfetto.protos.FieldDescriptorProto.encode(message.extension[i], writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim();\n if (message.oneofDecl != null && message.oneofDecl.length)\n for (var i = 0; i < message.oneofDecl.length; ++i)\n $root.perfetto.protos.OneofDescriptorProto.encode(message.oneofDecl[i], writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim();\n if (message.reservedRange != null && message.reservedRange.length)\n for (var i = 0; i < message.reservedRange.length; ++i)\n $root.perfetto.protos.DescriptorProto.ReservedRange.encode(message.reservedRange[i], writer.uint32(/* id 9, wireType 2 =*/74).fork()).ldelim();\n if (message.reservedName != null && message.reservedName.length)\n for (var i = 0; i < message.reservedName.length; ++i)\n writer.uint32(/* id 10, wireType 2 =*/82).string(message.reservedName[i]);\n return writer;\n };\n\n /**\n * Encodes the specified DescriptorProto message, length delimited. Does not implicitly {@link perfetto.protos.DescriptorProto.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.DescriptorProto\n * @static\n * @param {perfetto.protos.IDescriptorProto} message DescriptorProto message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n DescriptorProto.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a DescriptorProto message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.DescriptorProto\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.DescriptorProto} DescriptorProto\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n DescriptorProto.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.DescriptorProto();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.name = reader.string();\n break;\n case 2:\n if (!(message.field && message.field.length))\n message.field = [];\n message.field.push($root.perfetto.protos.FieldDescriptorProto.decode(reader, reader.uint32()));\n break;\n case 6:\n if (!(message.extension && message.extension.length))\n message.extension = [];\n message.extension.push($root.perfetto.protos.FieldDescriptorProto.decode(reader, reader.uint32()));\n break;\n case 3:\n if (!(message.nestedType && message.nestedType.length))\n message.nestedType = [];\n message.nestedType.push($root.perfetto.protos.DescriptorProto.decode(reader, reader.uint32()));\n break;\n case 4:\n if (!(message.enumType && message.enumType.length))\n message.enumType = [];\n message.enumType.push($root.perfetto.protos.EnumDescriptorProto.decode(reader, reader.uint32()));\n break;\n case 8:\n if (!(message.oneofDecl && message.oneofDecl.length))\n message.oneofDecl = [];\n message.oneofDecl.push($root.perfetto.protos.OneofDescriptorProto.decode(reader, reader.uint32()));\n break;\n case 9:\n if (!(message.reservedRange && message.reservedRange.length))\n message.reservedRange = [];\n message.reservedRange.push($root.perfetto.protos.DescriptorProto.ReservedRange.decode(reader, reader.uint32()));\n break;\n case 10:\n if (!(message.reservedName && message.reservedName.length))\n message.reservedName = [];\n message.reservedName.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a DescriptorProto message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.DescriptorProto\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.DescriptorProto} DescriptorProto\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n DescriptorProto.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a DescriptorProto message.\n * @function verify\n * @memberof perfetto.protos.DescriptorProto\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n DescriptorProto.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.name != null && message.hasOwnProperty(\"name\"))\n if (!$util.isString(message.name))\n return \"name: string expected\";\n if (message.field != null && message.hasOwnProperty(\"field\")) {\n if (!Array.isArray(message.field))\n return \"field: array expected\";\n for (var i = 0; i < message.field.length; ++i) {\n var error = $root.perfetto.protos.FieldDescriptorProto.verify(message.field[i]);\n if (error)\n return \"field.\" + error;\n }\n }\n if (message.extension != null && message.hasOwnProperty(\"extension\")) {\n if (!Array.isArray(message.extension))\n return \"extension: array expected\";\n for (var i = 0; i < message.extension.length; ++i) {\n var error = $root.perfetto.protos.FieldDescriptorProto.verify(message.extension[i]);\n if (error)\n return \"extension.\" + error;\n }\n }\n if (message.nestedType != null && message.hasOwnProperty(\"nestedType\")) {\n if (!Array.isArray(message.nestedType))\n return \"nestedType: array expected\";\n for (var i = 0; i < message.nestedType.length; ++i) {\n var error = $root.perfetto.protos.DescriptorProto.verify(message.nestedType[i]);\n if (error)\n return \"nestedType.\" + error;\n }\n }\n if (message.enumType != null && message.hasOwnProperty(\"enumType\")) {\n if (!Array.isArray(message.enumType))\n return \"enumType: array expected\";\n for (var i = 0; i < message.enumType.length; ++i) {\n var error = $root.perfetto.protos.EnumDescriptorProto.verify(message.enumType[i]);\n if (error)\n return \"enumType.\" + error;\n }\n }\n if (message.oneofDecl != null && message.hasOwnProperty(\"oneofDecl\")) {\n if (!Array.isArray(message.oneofDecl))\n return \"oneofDecl: array expected\";\n for (var i = 0; i < message.oneofDecl.length; ++i) {\n var error = $root.perfetto.protos.OneofDescriptorProto.verify(message.oneofDecl[i]);\n if (error)\n return \"oneofDecl.\" + error;\n }\n }\n if (message.reservedRange != null && message.hasOwnProperty(\"reservedRange\")) {\n if (!Array.isArray(message.reservedRange))\n return \"reservedRange: array expected\";\n for (var i = 0; i < message.reservedRange.length; ++i) {\n var error = $root.perfetto.protos.DescriptorProto.ReservedRange.verify(message.reservedRange[i]);\n if (error)\n return \"reservedRange.\" + error;\n }\n }\n if (message.reservedName != null && message.hasOwnProperty(\"reservedName\")) {\n if (!Array.isArray(message.reservedName))\n return \"reservedName: array expected\";\n for (var i = 0; i < message.reservedName.length; ++i)\n if (!$util.isString(message.reservedName[i]))\n return \"reservedName: string[] expected\";\n }\n return null;\n };\n\n /**\n * Creates a DescriptorProto message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.DescriptorProto\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.DescriptorProto} DescriptorProto\n */\n DescriptorProto.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.DescriptorProto)\n return object;\n var message = new $root.perfetto.protos.DescriptorProto();\n if (object.name != null)\n message.name = String(object.name);\n if (object.field) {\n if (!Array.isArray(object.field))\n throw TypeError(\".perfetto.protos.DescriptorProto.field: array expected\");\n message.field = [];\n for (var i = 0; i < object.field.length; ++i) {\n if (typeof object.field[i] !== \"object\")\n throw TypeError(\".perfetto.protos.DescriptorProto.field: object expected\");\n message.field[i] = $root.perfetto.protos.FieldDescriptorProto.fromObject(object.field[i]);\n }\n }\n if (object.extension) {\n if (!Array.isArray(object.extension))\n throw TypeError(\".perfetto.protos.DescriptorProto.extension: array expected\");\n message.extension = [];\n for (var i = 0; i < object.extension.length; ++i) {\n if (typeof object.extension[i] !== \"object\")\n throw TypeError(\".perfetto.protos.DescriptorProto.extension: object expected\");\n message.extension[i] = $root.perfetto.protos.FieldDescriptorProto.fromObject(object.extension[i]);\n }\n }\n if (object.nestedType) {\n if (!Array.isArray(object.nestedType))\n throw TypeError(\".perfetto.protos.DescriptorProto.nestedType: array expected\");\n message.nestedType = [];\n for (var i = 0; i < object.nestedType.length; ++i) {\n if (typeof object.nestedType[i] !== \"object\")\n throw TypeError(\".perfetto.protos.DescriptorProto.nestedType: object expected\");\n message.nestedType[i] = $root.perfetto.protos.DescriptorProto.fromObject(object.nestedType[i]);\n }\n }\n if (object.enumType) {\n if (!Array.isArray(object.enumType))\n throw TypeError(\".perfetto.protos.DescriptorProto.enumType: array expected\");\n message.enumType = [];\n for (var i = 0; i < object.enumType.length; ++i) {\n if (typeof object.enumType[i] !== \"object\")\n throw TypeError(\".perfetto.protos.DescriptorProto.enumType: object expected\");\n message.enumType[i] = $root.perfetto.protos.EnumDescriptorProto.fromObject(object.enumType[i]);\n }\n }\n if (object.oneofDecl) {\n if (!Array.isArray(object.oneofDecl))\n throw TypeError(\".perfetto.protos.DescriptorProto.oneofDecl: array expected\");\n message.oneofDecl = [];\n for (var i = 0; i < object.oneofDecl.length; ++i) {\n if (typeof object.oneofDecl[i] !== \"object\")\n throw TypeError(\".perfetto.protos.DescriptorProto.oneofDecl: object expected\");\n message.oneofDecl[i] = $root.perfetto.protos.OneofDescriptorProto.fromObject(object.oneofDecl[i]);\n }\n }\n if (object.reservedRange) {\n if (!Array.isArray(object.reservedRange))\n throw TypeError(\".perfetto.protos.DescriptorProto.reservedRange: array expected\");\n message.reservedRange = [];\n for (var i = 0; i < object.reservedRange.length; ++i) {\n if (typeof object.reservedRange[i] !== \"object\")\n throw TypeError(\".perfetto.protos.DescriptorProto.reservedRange: object expected\");\n message.reservedRange[i] = $root.perfetto.protos.DescriptorProto.ReservedRange.fromObject(object.reservedRange[i]);\n }\n }\n if (object.reservedName) {\n if (!Array.isArray(object.reservedName))\n throw TypeError(\".perfetto.protos.DescriptorProto.reservedName: array expected\");\n message.reservedName = [];\n for (var i = 0; i < object.reservedName.length; ++i)\n message.reservedName[i] = String(object.reservedName[i]);\n }\n return message;\n };\n\n /**\n * Creates a plain object from a DescriptorProto message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.DescriptorProto\n * @static\n * @param {perfetto.protos.DescriptorProto} message DescriptorProto\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n DescriptorProto.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults) {\n object.field = [];\n object.nestedType = [];\n object.enumType = [];\n object.extension = [];\n object.oneofDecl = [];\n object.reservedRange = [];\n object.reservedName = [];\n }\n if (options.defaults)\n object.name = \"\";\n if (message.name != null && message.hasOwnProperty(\"name\"))\n object.name = message.name;\n if (message.field && message.field.length) {\n object.field = [];\n for (var j = 0; j < message.field.length; ++j)\n object.field[j] = $root.perfetto.protos.FieldDescriptorProto.toObject(message.field[j], options);\n }\n if (message.nestedType && message.nestedType.length) {\n object.nestedType = [];\n for (var j = 0; j < message.nestedType.length; ++j)\n object.nestedType[j] = $root.perfetto.protos.DescriptorProto.toObject(message.nestedType[j], options);\n }\n if (message.enumType && message.enumType.length) {\n object.enumType = [];\n for (var j = 0; j < message.enumType.length; ++j)\n object.enumType[j] = $root.perfetto.protos.EnumDescriptorProto.toObject(message.enumType[j], options);\n }\n if (message.extension && message.extension.length) {\n object.extension = [];\n for (var j = 0; j < message.extension.length; ++j)\n object.extension[j] = $root.perfetto.protos.FieldDescriptorProto.toObject(message.extension[j], options);\n }\n if (message.oneofDecl && message.oneofDecl.length) {\n object.oneofDecl = [];\n for (var j = 0; j < message.oneofDecl.length; ++j)\n object.oneofDecl[j] = $root.perfetto.protos.OneofDescriptorProto.toObject(message.oneofDecl[j], options);\n }\n if (message.reservedRange && message.reservedRange.length) {\n object.reservedRange = [];\n for (var j = 0; j < message.reservedRange.length; ++j)\n object.reservedRange[j] = $root.perfetto.protos.DescriptorProto.ReservedRange.toObject(message.reservedRange[j], options);\n }\n if (message.reservedName && message.reservedName.length) {\n object.reservedName = [];\n for (var j = 0; j < message.reservedName.length; ++j)\n object.reservedName[j] = message.reservedName[j];\n }\n return object;\n };\n\n /**\n * Converts this DescriptorProto to JSON.\n * @function toJSON\n * @memberof perfetto.protos.DescriptorProto\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n DescriptorProto.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n DescriptorProto.ReservedRange = (function() {\n\n /**\n * Properties of a ReservedRange.\n * @memberof perfetto.protos.DescriptorProto\n * @interface IReservedRange\n * @property {number|null} [start] ReservedRange start\n * @property {number|null} [end] ReservedRange end\n */\n\n /**\n * Constructs a new ReservedRange.\n * @memberof perfetto.protos.DescriptorProto\n * @classdesc Represents a ReservedRange.\n * @implements IReservedRange\n * @constructor\n * @param {perfetto.protos.DescriptorProto.IReservedRange=} [properties] Properties to set\n */\n function ReservedRange(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * ReservedRange start.\n * @member {number} start\n * @memberof perfetto.protos.DescriptorProto.ReservedRange\n * @instance\n */\n ReservedRange.prototype.start = 0;\n\n /**\n * ReservedRange end.\n * @member {number} end\n * @memberof perfetto.protos.DescriptorProto.ReservedRange\n * @instance\n */\n ReservedRange.prototype.end = 0;\n\n /**\n * Creates a new ReservedRange instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.DescriptorProto.ReservedRange\n * @static\n * @param {perfetto.protos.DescriptorProto.IReservedRange=} [properties] Properties to set\n * @returns {perfetto.protos.DescriptorProto.ReservedRange} ReservedRange instance\n */\n ReservedRange.create = function create(properties) {\n return new ReservedRange(properties);\n };\n\n /**\n * Encodes the specified ReservedRange message. Does not implicitly {@link perfetto.protos.DescriptorProto.ReservedRange.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.DescriptorProto.ReservedRange\n * @static\n * @param {perfetto.protos.DescriptorProto.IReservedRange} message ReservedRange message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ReservedRange.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.start != null && Object.hasOwnProperty.call(message, \"start\"))\n writer.uint32(/* id 1, wireType 0 =*/8).int32(message.start);\n if (message.end != null && Object.hasOwnProperty.call(message, \"end\"))\n writer.uint32(/* id 2, wireType 0 =*/16).int32(message.end);\n return writer;\n };\n\n /**\n * Encodes the specified ReservedRange message, length delimited. Does not implicitly {@link perfetto.protos.DescriptorProto.ReservedRange.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.DescriptorProto.ReservedRange\n * @static\n * @param {perfetto.protos.DescriptorProto.IReservedRange} message ReservedRange message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ReservedRange.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a ReservedRange message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.DescriptorProto.ReservedRange\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.DescriptorProto.ReservedRange} ReservedRange\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ReservedRange.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.DescriptorProto.ReservedRange();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.start = reader.int32();\n break;\n case 2:\n message.end = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a ReservedRange message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.DescriptorProto.ReservedRange\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.DescriptorProto.ReservedRange} ReservedRange\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ReservedRange.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a ReservedRange message.\n * @function verify\n * @memberof perfetto.protos.DescriptorProto.ReservedRange\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n ReservedRange.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.start != null && message.hasOwnProperty(\"start\"))\n if (!$util.isInteger(message.start))\n return \"start: integer expected\";\n if (message.end != null && message.hasOwnProperty(\"end\"))\n if (!$util.isInteger(message.end))\n return \"end: integer expected\";\n return null;\n };\n\n /**\n * Creates a ReservedRange message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.DescriptorProto.ReservedRange\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.DescriptorProto.ReservedRange} ReservedRange\n */\n ReservedRange.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.DescriptorProto.ReservedRange)\n return object;\n var message = new $root.perfetto.protos.DescriptorProto.ReservedRange();\n if (object.start != null)\n message.start = object.start | 0;\n if (object.end != null)\n message.end = object.end | 0;\n return message;\n };\n\n /**\n * Creates a plain object from a ReservedRange message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.DescriptorProto.ReservedRange\n * @static\n * @param {perfetto.protos.DescriptorProto.ReservedRange} message ReservedRange\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n ReservedRange.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.start = 0;\n object.end = 0;\n }\n if (message.start != null && message.hasOwnProperty(\"start\"))\n object.start = message.start;\n if (message.end != null && message.hasOwnProperty(\"end\"))\n object.end = message.end;\n return object;\n };\n\n /**\n * Converts this ReservedRange to JSON.\n * @function toJSON\n * @memberof perfetto.protos.DescriptorProto.ReservedRange\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n ReservedRange.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return ReservedRange;\n })();\n\n return DescriptorProto;\n })();\n\n protos.FieldDescriptorProto = (function() {\n\n /**\n * Properties of a FieldDescriptorProto.\n * @memberof perfetto.protos\n * @interface IFieldDescriptorProto\n * @property {string|null} [name] FieldDescriptorProto name\n * @property {number|null} [number] FieldDescriptorProto number\n * @property {perfetto.protos.FieldDescriptorProto.Label|null} [label] FieldDescriptorProto label\n * @property {perfetto.protos.FieldDescriptorProto.Type|null} [type] FieldDescriptorProto type\n * @property {string|null} [typeName] FieldDescriptorProto typeName\n * @property {string|null} [extendee] FieldDescriptorProto extendee\n * @property {string|null} [defaultValue] FieldDescriptorProto defaultValue\n * @property {number|null} [oneofIndex] FieldDescriptorProto oneofIndex\n */\n\n /**\n * Constructs a new FieldDescriptorProto.\n * @memberof perfetto.protos\n * @classdesc Represents a FieldDescriptorProto.\n * @implements IFieldDescriptorProto\n * @constructor\n * @param {perfetto.protos.IFieldDescriptorProto=} [properties] Properties to set\n */\n function FieldDescriptorProto(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * FieldDescriptorProto name.\n * @member {string} name\n * @memberof perfetto.protos.FieldDescriptorProto\n * @instance\n */\n FieldDescriptorProto.prototype.name = \"\";\n\n /**\n * FieldDescriptorProto number.\n * @member {number} number\n * @memberof perfetto.protos.FieldDescriptorProto\n * @instance\n */\n FieldDescriptorProto.prototype.number = 0;\n\n /**\n * FieldDescriptorProto label.\n * @member {perfetto.protos.FieldDescriptorProto.Label} label\n * @memberof perfetto.protos.FieldDescriptorProto\n * @instance\n */\n FieldDescriptorProto.prototype.label = 1;\n\n /**\n * FieldDescriptorProto type.\n * @member {perfetto.protos.FieldDescriptorProto.Type} type\n * @memberof perfetto.protos.FieldDescriptorProto\n * @instance\n */\n FieldDescriptorProto.prototype.type = 1;\n\n /**\n * FieldDescriptorProto typeName.\n * @member {string} typeName\n * @memberof perfetto.protos.FieldDescriptorProto\n * @instance\n */\n FieldDescriptorProto.prototype.typeName = \"\";\n\n /**\n * FieldDescriptorProto extendee.\n * @member {string} extendee\n * @memberof perfetto.protos.FieldDescriptorProto\n * @instance\n */\n FieldDescriptorProto.prototype.extendee = \"\";\n\n /**\n * FieldDescriptorProto defaultValue.\n * @member {string} defaultValue\n * @memberof perfetto.protos.FieldDescriptorProto\n * @instance\n */\n FieldDescriptorProto.prototype.defaultValue = \"\";\n\n /**\n * FieldDescriptorProto oneofIndex.\n * @member {number} oneofIndex\n * @memberof perfetto.protos.FieldDescriptorProto\n * @instance\n */\n FieldDescriptorProto.prototype.oneofIndex = 0;\n\n /**\n * Creates a new FieldDescriptorProto instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.FieldDescriptorProto\n * @static\n * @param {perfetto.protos.IFieldDescriptorProto=} [properties] Properties to set\n * @returns {perfetto.protos.FieldDescriptorProto} FieldDescriptorProto instance\n */\n FieldDescriptorProto.create = function create(properties) {\n return new FieldDescriptorProto(properties);\n };\n\n /**\n * Encodes the specified FieldDescriptorProto message. Does not implicitly {@link perfetto.protos.FieldDescriptorProto.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.FieldDescriptorProto\n * @static\n * @param {perfetto.protos.IFieldDescriptorProto} message FieldDescriptorProto message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n FieldDescriptorProto.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.name != null && Object.hasOwnProperty.call(message, \"name\"))\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.name);\n if (message.extendee != null && Object.hasOwnProperty.call(message, \"extendee\"))\n writer.uint32(/* id 2, wireType 2 =*/18).string(message.extendee);\n if (message.number != null && Object.hasOwnProperty.call(message, \"number\"))\n writer.uint32(/* id 3, wireType 0 =*/24).int32(message.number);\n if (message.label != null && Object.hasOwnProperty.call(message, \"label\"))\n writer.uint32(/* id 4, wireType 0 =*/32).int32(message.label);\n if (message.type != null && Object.hasOwnProperty.call(message, \"type\"))\n writer.uint32(/* id 5, wireType 0 =*/40).int32(message.type);\n if (message.typeName != null && Object.hasOwnProperty.call(message, \"typeName\"))\n writer.uint32(/* id 6, wireType 2 =*/50).string(message.typeName);\n if (message.defaultValue != null && Object.hasOwnProperty.call(message, \"defaultValue\"))\n writer.uint32(/* id 7, wireType 2 =*/58).string(message.defaultValue);\n if (message.oneofIndex != null && Object.hasOwnProperty.call(message, \"oneofIndex\"))\n writer.uint32(/* id 9, wireType 0 =*/72).int32(message.oneofIndex);\n return writer;\n };\n\n /**\n * Encodes the specified FieldDescriptorProto message, length delimited. Does not implicitly {@link perfetto.protos.FieldDescriptorProto.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.FieldDescriptorProto\n * @static\n * @param {perfetto.protos.IFieldDescriptorProto} message FieldDescriptorProto message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n FieldDescriptorProto.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a FieldDescriptorProto message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.FieldDescriptorProto\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.FieldDescriptorProto} FieldDescriptorProto\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n FieldDescriptorProto.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.FieldDescriptorProto();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.name = reader.string();\n break;\n case 3:\n message.number = reader.int32();\n break;\n case 4:\n message.label = reader.int32();\n break;\n case 5:\n message.type = reader.int32();\n break;\n case 6:\n message.typeName = reader.string();\n break;\n case 2:\n message.extendee = reader.string();\n break;\n case 7:\n message.defaultValue = reader.string();\n break;\n case 9:\n message.oneofIndex = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a FieldDescriptorProto message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.FieldDescriptorProto\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.FieldDescriptorProto} FieldDescriptorProto\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n FieldDescriptorProto.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a FieldDescriptorProto message.\n * @function verify\n * @memberof perfetto.protos.FieldDescriptorProto\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n FieldDescriptorProto.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.name != null && message.hasOwnProperty(\"name\"))\n if (!$util.isString(message.name))\n return \"name: string expected\";\n if (message.number != null && message.hasOwnProperty(\"number\"))\n if (!$util.isInteger(message.number))\n return \"number: integer expected\";\n if (message.label != null && message.hasOwnProperty(\"label\"))\n switch (message.label) {\n default:\n return \"label: enum value expected\";\n case 1:\n case 2:\n case 3:\n break;\n }\n if (message.type != null && message.hasOwnProperty(\"type\"))\n switch (message.type) {\n default:\n return \"type: enum value expected\";\n case 1:\n case 2:\n case 3:\n case 4:\n case 5:\n case 6:\n case 7:\n case 8:\n case 9:\n case 10:\n case 11:\n case 12:\n case 13:\n case 14:\n case 15:\n case 16:\n case 17:\n case 18:\n break;\n }\n if (message.typeName != null && message.hasOwnProperty(\"typeName\"))\n if (!$util.isString(message.typeName))\n return \"typeName: string expected\";\n if (message.extendee != null && message.hasOwnProperty(\"extendee\"))\n if (!$util.isString(message.extendee))\n return \"extendee: string expected\";\n if (message.defaultValue != null && message.hasOwnProperty(\"defaultValue\"))\n if (!$util.isString(message.defaultValue))\n return \"defaultValue: string expected\";\n if (message.oneofIndex != null && message.hasOwnProperty(\"oneofIndex\"))\n if (!$util.isInteger(message.oneofIndex))\n return \"oneofIndex: integer expected\";\n return null;\n };\n\n /**\n * Creates a FieldDescriptorProto message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.FieldDescriptorProto\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.FieldDescriptorProto} FieldDescriptorProto\n */\n FieldDescriptorProto.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.FieldDescriptorProto)\n return object;\n var message = new $root.perfetto.protos.FieldDescriptorProto();\n if (object.name != null)\n message.name = String(object.name);\n if (object.number != null)\n message.number = object.number | 0;\n switch (object.label) {\n case \"LABEL_OPTIONAL\":\n case 1:\n message.label = 1;\n break;\n case \"LABEL_REQUIRED\":\n case 2:\n message.label = 2;\n break;\n case \"LABEL_REPEATED\":\n case 3:\n message.label = 3;\n break;\n }\n switch (object.type) {\n case \"TYPE_DOUBLE\":\n case 1:\n message.type = 1;\n break;\n case \"TYPE_FLOAT\":\n case 2:\n message.type = 2;\n break;\n case \"TYPE_INT64\":\n case 3:\n message.type = 3;\n break;\n case \"TYPE_UINT64\":\n case 4:\n message.type = 4;\n break;\n case \"TYPE_INT32\":\n case 5:\n message.type = 5;\n break;\n case \"TYPE_FIXED64\":\n case 6:\n message.type = 6;\n break;\n case \"TYPE_FIXED32\":\n case 7:\n message.type = 7;\n break;\n case \"TYPE_BOOL\":\n case 8:\n message.type = 8;\n break;\n case \"TYPE_STRING\":\n case 9:\n message.type = 9;\n break;\n case \"TYPE_GROUP\":\n case 10:\n message.type = 10;\n break;\n case \"TYPE_MESSAGE\":\n case 11:\n message.type = 11;\n break;\n case \"TYPE_BYTES\":\n case 12:\n message.type = 12;\n break;\n case \"TYPE_UINT32\":\n case 13:\n message.type = 13;\n break;\n case \"TYPE_ENUM\":\n case 14:\n message.type = 14;\n break;\n case \"TYPE_SFIXED32\":\n case 15:\n message.type = 15;\n break;\n case \"TYPE_SFIXED64\":\n case 16:\n message.type = 16;\n break;\n case \"TYPE_SINT32\":\n case 17:\n message.type = 17;\n break;\n case \"TYPE_SINT64\":\n case 18:\n message.type = 18;\n break;\n }\n if (object.typeName != null)\n message.typeName = String(object.typeName);\n if (object.extendee != null)\n message.extendee = String(object.extendee);\n if (object.defaultValue != null)\n message.defaultValue = String(object.defaultValue);\n if (object.oneofIndex != null)\n message.oneofIndex = object.oneofIndex | 0;\n return message;\n };\n\n /**\n * Creates a plain object from a FieldDescriptorProto message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.FieldDescriptorProto\n * @static\n * @param {perfetto.protos.FieldDescriptorProto} message FieldDescriptorProto\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n FieldDescriptorProto.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.name = \"\";\n object.extendee = \"\";\n object.number = 0;\n object.label = options.enums === String ? \"LABEL_OPTIONAL\" : 1;\n object.type = options.enums === String ? \"TYPE_DOUBLE\" : 1;\n object.typeName = \"\";\n object.defaultValue = \"\";\n object.oneofIndex = 0;\n }\n if (message.name != null && message.hasOwnProperty(\"name\"))\n object.name = message.name;\n if (message.extendee != null && message.hasOwnProperty(\"extendee\"))\n object.extendee = message.extendee;\n if (message.number != null && message.hasOwnProperty(\"number\"))\n object.number = message.number;\n if (message.label != null && message.hasOwnProperty(\"label\"))\n object.label = options.enums === String ? $root.perfetto.protos.FieldDescriptorProto.Label[message.label] : message.label;\n if (message.type != null && message.hasOwnProperty(\"type\"))\n object.type = options.enums === String ? $root.perfetto.protos.FieldDescriptorProto.Type[message.type] : message.type;\n if (message.typeName != null && message.hasOwnProperty(\"typeName\"))\n object.typeName = message.typeName;\n if (message.defaultValue != null && message.hasOwnProperty(\"defaultValue\"))\n object.defaultValue = message.defaultValue;\n if (message.oneofIndex != null && message.hasOwnProperty(\"oneofIndex\"))\n object.oneofIndex = message.oneofIndex;\n return object;\n };\n\n /**\n * Converts this FieldDescriptorProto to JSON.\n * @function toJSON\n * @memberof perfetto.protos.FieldDescriptorProto\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n FieldDescriptorProto.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n /**\n * Type enum.\n * @name perfetto.protos.FieldDescriptorProto.Type\n * @enum {number}\n * @property {number} TYPE_DOUBLE=1 TYPE_DOUBLE value\n * @property {number} TYPE_FLOAT=2 TYPE_FLOAT value\n * @property {number} TYPE_INT64=3 TYPE_INT64 value\n * @property {number} TYPE_UINT64=4 TYPE_UINT64 value\n * @property {number} TYPE_INT32=5 TYPE_INT32 value\n * @property {number} TYPE_FIXED64=6 TYPE_FIXED64 value\n * @property {number} TYPE_FIXED32=7 TYPE_FIXED32 value\n * @property {number} TYPE_BOOL=8 TYPE_BOOL value\n * @property {number} TYPE_STRING=9 TYPE_STRING value\n * @property {number} TYPE_GROUP=10 TYPE_GROUP value\n * @property {number} TYPE_MESSAGE=11 TYPE_MESSAGE value\n * @property {number} TYPE_BYTES=12 TYPE_BYTES value\n * @property {number} TYPE_UINT32=13 TYPE_UINT32 value\n * @property {number} TYPE_ENUM=14 TYPE_ENUM value\n * @property {number} TYPE_SFIXED32=15 TYPE_SFIXED32 value\n * @property {number} TYPE_SFIXED64=16 TYPE_SFIXED64 value\n * @property {number} TYPE_SINT32=17 TYPE_SINT32 value\n * @property {number} TYPE_SINT64=18 TYPE_SINT64 value\n */\n FieldDescriptorProto.Type = (function() {\n var valuesById = {}, values = Object.create(valuesById);\n values[valuesById[1] = \"TYPE_DOUBLE\"] = 1;\n values[valuesById[2] = \"TYPE_FLOAT\"] = 2;\n values[valuesById[3] = \"TYPE_INT64\"] = 3;\n values[valuesById[4] = \"TYPE_UINT64\"] = 4;\n values[valuesById[5] = \"TYPE_INT32\"] = 5;\n values[valuesById[6] = \"TYPE_FIXED64\"] = 6;\n values[valuesById[7] = \"TYPE_FIXED32\"] = 7;\n values[valuesById[8] = \"TYPE_BOOL\"] = 8;\n values[valuesById[9] = \"TYPE_STRING\"] = 9;\n values[valuesById[10] = \"TYPE_GROUP\"] = 10;\n values[valuesById[11] = \"TYPE_MESSAGE\"] = 11;\n values[valuesById[12] = \"TYPE_BYTES\"] = 12;\n values[valuesById[13] = \"TYPE_UINT32\"] = 13;\n values[valuesById[14] = \"TYPE_ENUM\"] = 14;\n values[valuesById[15] = \"TYPE_SFIXED32\"] = 15;\n values[valuesById[16] = \"TYPE_SFIXED64\"] = 16;\n values[valuesById[17] = \"TYPE_SINT32\"] = 17;\n values[valuesById[18] = \"TYPE_SINT64\"] = 18;\n return values;\n })();\n\n /**\n * Label enum.\n * @name perfetto.protos.FieldDescriptorProto.Label\n * @enum {number}\n * @property {number} LABEL_OPTIONAL=1 LABEL_OPTIONAL value\n * @property {number} LABEL_REQUIRED=2 LABEL_REQUIRED value\n * @property {number} LABEL_REPEATED=3 LABEL_REPEATED value\n */\n FieldDescriptorProto.Label = (function() {\n var valuesById = {}, values = Object.create(valuesById);\n values[valuesById[1] = \"LABEL_OPTIONAL\"] = 1;\n values[valuesById[2] = \"LABEL_REQUIRED\"] = 2;\n values[valuesById[3] = \"LABEL_REPEATED\"] = 3;\n return values;\n })();\n\n return FieldDescriptorProto;\n })();\n\n protos.OneofDescriptorProto = (function() {\n\n /**\n * Properties of an OneofDescriptorProto.\n * @memberof perfetto.protos\n * @interface IOneofDescriptorProto\n * @property {string|null} [name] OneofDescriptorProto name\n * @property {perfetto.protos.IOneofOptions|null} [options] OneofDescriptorProto options\n */\n\n /**\n * Constructs a new OneofDescriptorProto.\n * @memberof perfetto.protos\n * @classdesc Represents an OneofDescriptorProto.\n * @implements IOneofDescriptorProto\n * @constructor\n * @param {perfetto.protos.IOneofDescriptorProto=} [properties] Properties to set\n */\n function OneofDescriptorProto(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * OneofDescriptorProto name.\n * @member {string} name\n * @memberof perfetto.protos.OneofDescriptorProto\n * @instance\n */\n OneofDescriptorProto.prototype.name = \"\";\n\n /**\n * OneofDescriptorProto options.\n * @member {perfetto.protos.IOneofOptions|null|undefined} options\n * @memberof perfetto.protos.OneofDescriptorProto\n * @instance\n */\n OneofDescriptorProto.prototype.options = null;\n\n /**\n * Creates a new OneofDescriptorProto instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.OneofDescriptorProto\n * @static\n * @param {perfetto.protos.IOneofDescriptorProto=} [properties] Properties to set\n * @returns {perfetto.protos.OneofDescriptorProto} OneofDescriptorProto instance\n */\n OneofDescriptorProto.create = function create(properties) {\n return new OneofDescriptorProto(properties);\n };\n\n /**\n * Encodes the specified OneofDescriptorProto message. Does not implicitly {@link perfetto.protos.OneofDescriptorProto.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.OneofDescriptorProto\n * @static\n * @param {perfetto.protos.IOneofDescriptorProto} message OneofDescriptorProto message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n OneofDescriptorProto.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.name != null && Object.hasOwnProperty.call(message, \"name\"))\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.name);\n if (message.options != null && Object.hasOwnProperty.call(message, \"options\"))\n $root.perfetto.protos.OneofOptions.encode(message.options, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified OneofDescriptorProto message, length delimited. Does not implicitly {@link perfetto.protos.OneofDescriptorProto.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.OneofDescriptorProto\n * @static\n * @param {perfetto.protos.IOneofDescriptorProto} message OneofDescriptorProto message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n OneofDescriptorProto.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes an OneofDescriptorProto message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.OneofDescriptorProto\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.OneofDescriptorProto} OneofDescriptorProto\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n OneofDescriptorProto.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.OneofDescriptorProto();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.name = reader.string();\n break;\n case 2:\n message.options = $root.perfetto.protos.OneofOptions.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes an OneofDescriptorProto message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.OneofDescriptorProto\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.OneofDescriptorProto} OneofDescriptorProto\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n OneofDescriptorProto.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies an OneofDescriptorProto message.\n * @function verify\n * @memberof perfetto.protos.OneofDescriptorProto\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n OneofDescriptorProto.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.name != null && message.hasOwnProperty(\"name\"))\n if (!$util.isString(message.name))\n return \"name: string expected\";\n if (message.options != null && message.hasOwnProperty(\"options\")) {\n var error = $root.perfetto.protos.OneofOptions.verify(message.options);\n if (error)\n return \"options.\" + error;\n }\n return null;\n };\n\n /**\n * Creates an OneofDescriptorProto message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.OneofDescriptorProto\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.OneofDescriptorProto} OneofDescriptorProto\n */\n OneofDescriptorProto.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.OneofDescriptorProto)\n return object;\n var message = new $root.perfetto.protos.OneofDescriptorProto();\n if (object.name != null)\n message.name = String(object.name);\n if (object.options != null) {\n if (typeof object.options !== \"object\")\n throw TypeError(\".perfetto.protos.OneofDescriptorProto.options: object expected\");\n message.options = $root.perfetto.protos.OneofOptions.fromObject(object.options);\n }\n return message;\n };\n\n /**\n * Creates a plain object from an OneofDescriptorProto message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.OneofDescriptorProto\n * @static\n * @param {perfetto.protos.OneofDescriptorProto} message OneofDescriptorProto\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n OneofDescriptorProto.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.name = \"\";\n object.options = null;\n }\n if (message.name != null && message.hasOwnProperty(\"name\"))\n object.name = message.name;\n if (message.options != null && message.hasOwnProperty(\"options\"))\n object.options = $root.perfetto.protos.OneofOptions.toObject(message.options, options);\n return object;\n };\n\n /**\n * Converts this OneofDescriptorProto to JSON.\n * @function toJSON\n * @memberof perfetto.protos.OneofDescriptorProto\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n OneofDescriptorProto.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return OneofDescriptorProto;\n })();\n\n protos.EnumDescriptorProto = (function() {\n\n /**\n * Properties of an EnumDescriptorProto.\n * @memberof perfetto.protos\n * @interface IEnumDescriptorProto\n * @property {string|null} [name] EnumDescriptorProto name\n * @property {Array.<perfetto.protos.IEnumValueDescriptorProto>|null} [value] EnumDescriptorProto value\n * @property {Array.<string>|null} [reservedName] EnumDescriptorProto reservedName\n */\n\n /**\n * Constructs a new EnumDescriptorProto.\n * @memberof perfetto.protos\n * @classdesc Represents an EnumDescriptorProto.\n * @implements IEnumDescriptorProto\n * @constructor\n * @param {perfetto.protos.IEnumDescriptorProto=} [properties] Properties to set\n */\n function EnumDescriptorProto(properties) {\n this.value = [];\n this.reservedName = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * EnumDescriptorProto name.\n * @member {string} name\n * @memberof perfetto.protos.EnumDescriptorProto\n * @instance\n */\n EnumDescriptorProto.prototype.name = \"\";\n\n /**\n * EnumDescriptorProto value.\n * @member {Array.<perfetto.protos.IEnumValueDescriptorProto>} value\n * @memberof perfetto.protos.EnumDescriptorProto\n * @instance\n */\n EnumDescriptorProto.prototype.value = $util.emptyArray;\n\n /**\n * EnumDescriptorProto reservedName.\n * @member {Array.<string>} reservedName\n * @memberof perfetto.protos.EnumDescriptorProto\n * @instance\n */\n EnumDescriptorProto.prototype.reservedName = $util.emptyArray;\n\n /**\n * Creates a new EnumDescriptorProto instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.EnumDescriptorProto\n * @static\n * @param {perfetto.protos.IEnumDescriptorProto=} [properties] Properties to set\n * @returns {perfetto.protos.EnumDescriptorProto} EnumDescriptorProto instance\n */\n EnumDescriptorProto.create = function create(properties) {\n return new EnumDescriptorProto(properties);\n };\n\n /**\n * Encodes the specified EnumDescriptorProto message. Does not implicitly {@link perfetto.protos.EnumDescriptorProto.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.EnumDescriptorProto\n * @static\n * @param {perfetto.protos.IEnumDescriptorProto} message EnumDescriptorProto message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n EnumDescriptorProto.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.name != null && Object.hasOwnProperty.call(message, \"name\"))\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.name);\n if (message.value != null && message.value.length)\n for (var i = 0; i < message.value.length; ++i)\n $root.perfetto.protos.EnumValueDescriptorProto.encode(message.value[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n if (message.reservedName != null && message.reservedName.length)\n for (var i = 0; i < message.reservedName.length; ++i)\n writer.uint32(/* id 5, wireType 2 =*/42).string(message.reservedName[i]);\n return writer;\n };\n\n /**\n * Encodes the specified EnumDescriptorProto message, length delimited. Does not implicitly {@link perfetto.protos.EnumDescriptorProto.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.EnumDescriptorProto\n * @static\n * @param {perfetto.protos.IEnumDescriptorProto} message EnumDescriptorProto message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n EnumDescriptorProto.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes an EnumDescriptorProto message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.EnumDescriptorProto\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.EnumDescriptorProto} EnumDescriptorProto\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n EnumDescriptorProto.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.EnumDescriptorProto();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.name = reader.string();\n break;\n case 2:\n if (!(message.value && message.value.length))\n message.value = [];\n message.value.push($root.perfetto.protos.EnumValueDescriptorProto.decode(reader, reader.uint32()));\n break;\n case 5:\n if (!(message.reservedName && message.reservedName.length))\n message.reservedName = [];\n message.reservedName.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes an EnumDescriptorProto message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.EnumDescriptorProto\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.EnumDescriptorProto} EnumDescriptorProto\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n EnumDescriptorProto.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies an EnumDescriptorProto message.\n * @function verify\n * @memberof perfetto.protos.EnumDescriptorProto\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n EnumDescriptorProto.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.name != null && message.hasOwnProperty(\"name\"))\n if (!$util.isString(message.name))\n return \"name: string expected\";\n if (message.value != null && message.hasOwnProperty(\"value\")) {\n if (!Array.isArray(message.value))\n return \"value: array expected\";\n for (var i = 0; i < message.value.length; ++i) {\n var error = $root.perfetto.protos.EnumValueDescriptorProto.verify(message.value[i]);\n if (error)\n return \"value.\" + error;\n }\n }\n if (message.reservedName != null && message.hasOwnProperty(\"reservedName\")) {\n if (!Array.isArray(message.reservedName))\n return \"reservedName: array expected\";\n for (var i = 0; i < message.reservedName.length; ++i)\n if (!$util.isString(message.reservedName[i]))\n return \"reservedName: string[] expected\";\n }\n return null;\n };\n\n /**\n * Creates an EnumDescriptorProto message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.EnumDescriptorProto\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.EnumDescriptorProto} EnumDescriptorProto\n */\n EnumDescriptorProto.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.EnumDescriptorProto)\n return object;\n var message = new $root.perfetto.protos.EnumDescriptorProto();\n if (object.name != null)\n message.name = String(object.name);\n if (object.value) {\n if (!Array.isArray(object.value))\n throw TypeError(\".perfetto.protos.EnumDescriptorProto.value: array expected\");\n message.value = [];\n for (var i = 0; i < object.value.length; ++i) {\n if (typeof object.value[i] !== \"object\")\n throw TypeError(\".perfetto.protos.EnumDescriptorProto.value: object expected\");\n message.value[i] = $root.perfetto.protos.EnumValueDescriptorProto.fromObject(object.value[i]);\n }\n }\n if (object.reservedName) {\n if (!Array.isArray(object.reservedName))\n throw TypeError(\".perfetto.protos.EnumDescriptorProto.reservedName: array expected\");\n message.reservedName = [];\n for (var i = 0; i < object.reservedName.length; ++i)\n message.reservedName[i] = String(object.reservedName[i]);\n }\n return message;\n };\n\n /**\n * Creates a plain object from an EnumDescriptorProto message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.EnumDescriptorProto\n * @static\n * @param {perfetto.protos.EnumDescriptorProto} message EnumDescriptorProto\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n EnumDescriptorProto.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults) {\n object.value = [];\n object.reservedName = [];\n }\n if (options.defaults)\n object.name = \"\";\n if (message.name != null && message.hasOwnProperty(\"name\"))\n object.name = message.name;\n if (message.value && message.value.length) {\n object.value = [];\n for (var j = 0; j < message.value.length; ++j)\n object.value[j] = $root.perfetto.protos.EnumValueDescriptorProto.toObject(message.value[j], options);\n }\n if (message.reservedName && message.reservedName.length) {\n object.reservedName = [];\n for (var j = 0; j < message.reservedName.length; ++j)\n object.reservedName[j] = message.reservedName[j];\n }\n return object;\n };\n\n /**\n * Converts this EnumDescriptorProto to JSON.\n * @function toJSON\n * @memberof perfetto.protos.EnumDescriptorProto\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n EnumDescriptorProto.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return EnumDescriptorProto;\n })();\n\n protos.EnumValueDescriptorProto = (function() {\n\n /**\n * Properties of an EnumValueDescriptorProto.\n * @memberof perfetto.protos\n * @interface IEnumValueDescriptorProto\n * @property {string|null} [name] EnumValueDescriptorProto name\n * @property {number|null} [number] EnumValueDescriptorProto number\n */\n\n /**\n * Constructs a new EnumValueDescriptorProto.\n * @memberof perfetto.protos\n * @classdesc Represents an EnumValueDescriptorProto.\n * @implements IEnumValueDescriptorProto\n * @constructor\n * @param {perfetto.protos.IEnumValueDescriptorProto=} [properties] Properties to set\n */\n function EnumValueDescriptorProto(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * EnumValueDescriptorProto name.\n * @member {string} name\n * @memberof perfetto.protos.EnumValueDescriptorProto\n * @instance\n */\n EnumValueDescriptorProto.prototype.name = \"\";\n\n /**\n * EnumValueDescriptorProto number.\n * @member {number} number\n * @memberof perfetto.protos.EnumValueDescriptorProto\n * @instance\n */\n EnumValueDescriptorProto.prototype.number = 0;\n\n /**\n * Creates a new EnumValueDescriptorProto instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.EnumValueDescriptorProto\n * @static\n * @param {perfetto.protos.IEnumValueDescriptorProto=} [properties] Properties to set\n * @returns {perfetto.protos.EnumValueDescriptorProto} EnumValueDescriptorProto instance\n */\n EnumValueDescriptorProto.create = function create(properties) {\n return new EnumValueDescriptorProto(properties);\n };\n\n /**\n * Encodes the specified EnumValueDescriptorProto message. Does not implicitly {@link perfetto.protos.EnumValueDescriptorProto.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.EnumValueDescriptorProto\n * @static\n * @param {perfetto.protos.IEnumValueDescriptorProto} message EnumValueDescriptorProto message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n EnumValueDescriptorProto.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.name != null && Object.hasOwnProperty.call(message, \"name\"))\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.name);\n if (message.number != null && Object.hasOwnProperty.call(message, \"number\"))\n writer.uint32(/* id 2, wireType 0 =*/16).int32(message.number);\n return writer;\n };\n\n /**\n * Encodes the specified EnumValueDescriptorProto message, length delimited. Does not implicitly {@link perfetto.protos.EnumValueDescriptorProto.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.EnumValueDescriptorProto\n * @static\n * @param {perfetto.protos.IEnumValueDescriptorProto} message EnumValueDescriptorProto message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n EnumValueDescriptorProto.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes an EnumValueDescriptorProto message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.EnumValueDescriptorProto\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.EnumValueDescriptorProto} EnumValueDescriptorProto\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n EnumValueDescriptorProto.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.EnumValueDescriptorProto();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.name = reader.string();\n break;\n case 2:\n message.number = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes an EnumValueDescriptorProto message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.EnumValueDescriptorProto\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.EnumValueDescriptorProto} EnumValueDescriptorProto\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n EnumValueDescriptorProto.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies an EnumValueDescriptorProto message.\n * @function verify\n * @memberof perfetto.protos.EnumValueDescriptorProto\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n EnumValueDescriptorProto.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.name != null && message.hasOwnProperty(\"name\"))\n if (!$util.isString(message.name))\n return \"name: string expected\";\n if (message.number != null && message.hasOwnProperty(\"number\"))\n if (!$util.isInteger(message.number))\n return \"number: integer expected\";\n return null;\n };\n\n /**\n * Creates an EnumValueDescriptorProto message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.EnumValueDescriptorProto\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.EnumValueDescriptorProto} EnumValueDescriptorProto\n */\n EnumValueDescriptorProto.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.EnumValueDescriptorProto)\n return object;\n var message = new $root.perfetto.protos.EnumValueDescriptorProto();\n if (object.name != null)\n message.name = String(object.name);\n if (object.number != null)\n message.number = object.number | 0;\n return message;\n };\n\n /**\n * Creates a plain object from an EnumValueDescriptorProto message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.EnumValueDescriptorProto\n * @static\n * @param {perfetto.protos.EnumValueDescriptorProto} message EnumValueDescriptorProto\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n EnumValueDescriptorProto.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.name = \"\";\n object.number = 0;\n }\n if (message.name != null && message.hasOwnProperty(\"name\"))\n object.name = message.name;\n if (message.number != null && message.hasOwnProperty(\"number\"))\n object.number = message.number;\n return object;\n };\n\n /**\n * Converts this EnumValueDescriptorProto to JSON.\n * @function toJSON\n * @memberof perfetto.protos.EnumValueDescriptorProto\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n EnumValueDescriptorProto.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return EnumValueDescriptorProto;\n })();\n\n protos.OneofOptions = (function() {\n\n /**\n * Properties of an OneofOptions.\n * @memberof perfetto.protos\n * @interface IOneofOptions\n */\n\n /**\n * Constructs a new OneofOptions.\n * @memberof perfetto.protos\n * @classdesc Represents an OneofOptions.\n * @implements IOneofOptions\n * @constructor\n * @param {perfetto.protos.IOneofOptions=} [properties] Properties to set\n */\n function OneofOptions(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * Creates a new OneofOptions instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.OneofOptions\n * @static\n * @param {perfetto.protos.IOneofOptions=} [properties] Properties to set\n * @returns {perfetto.protos.OneofOptions} OneofOptions instance\n */\n OneofOptions.create = function create(properties) {\n return new OneofOptions(properties);\n };\n\n /**\n * Encodes the specified OneofOptions message. Does not implicitly {@link perfetto.protos.OneofOptions.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.OneofOptions\n * @static\n * @param {perfetto.protos.IOneofOptions} message OneofOptions message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n OneofOptions.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n return writer;\n };\n\n /**\n * Encodes the specified OneofOptions message, length delimited. Does not implicitly {@link perfetto.protos.OneofOptions.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.OneofOptions\n * @static\n * @param {perfetto.protos.IOneofOptions} message OneofOptions message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n OneofOptions.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes an OneofOptions message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.OneofOptions\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.OneofOptions} OneofOptions\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n OneofOptions.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.OneofOptions();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes an OneofOptions message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.OneofOptions\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.OneofOptions} OneofOptions\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n OneofOptions.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies an OneofOptions message.\n * @function verify\n * @memberof perfetto.protos.OneofOptions\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n OneofOptions.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n return null;\n };\n\n /**\n * Creates an OneofOptions message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.OneofOptions\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.OneofOptions} OneofOptions\n */\n OneofOptions.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.OneofOptions)\n return object;\n return new $root.perfetto.protos.OneofOptions();\n };\n\n /**\n * Creates a plain object from an OneofOptions message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.OneofOptions\n * @static\n * @param {perfetto.protos.OneofOptions} message OneofOptions\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n OneofOptions.toObject = function toObject() {\n return {};\n };\n\n /**\n * Converts this OneofOptions to JSON.\n * @function toJSON\n * @memberof perfetto.protos.OneofOptions\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n OneofOptions.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return OneofOptions;\n })();\n\n protos.TraceStats = (function() {\n\n /**\n * Properties of a TraceStats.\n * @memberof perfetto.protos\n * @interface ITraceStats\n * @property {Array.<perfetto.protos.TraceStats.IBufferStats>|null} [bufferStats] TraceStats bufferStats\n * @property {number|null} [producersConnected] TraceStats producersConnected\n * @property {number|null} [producersSeen] TraceStats producersSeen\n * @property {number|null} [dataSourcesRegistered] TraceStats dataSourcesRegistered\n * @property {number|null} [dataSourcesSeen] TraceStats dataSourcesSeen\n * @property {number|null} [tracingSessions] TraceStats tracingSessions\n * @property {number|null} [totalBuffers] TraceStats totalBuffers\n * @property {number|null} [chunksDiscarded] TraceStats chunksDiscarded\n * @property {number|null} [patchesDiscarded] TraceStats patchesDiscarded\n * @property {number|null} [invalidPackets] TraceStats invalidPackets\n * @property {perfetto.protos.TraceStats.IFilterStats|null} [filterStats] TraceStats filterStats\n */\n\n /**\n * Constructs a new TraceStats.\n * @memberof perfetto.protos\n * @classdesc Represents a TraceStats.\n * @implements ITraceStats\n * @constructor\n * @param {perfetto.protos.ITraceStats=} [properties] Properties to set\n */\n function TraceStats(properties) {\n this.bufferStats = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * TraceStats bufferStats.\n * @member {Array.<perfetto.protos.TraceStats.IBufferStats>} bufferStats\n * @memberof perfetto.protos.TraceStats\n * @instance\n */\n TraceStats.prototype.bufferStats = $util.emptyArray;\n\n /**\n * TraceStats producersConnected.\n * @member {number} producersConnected\n * @memberof perfetto.protos.TraceStats\n * @instance\n */\n TraceStats.prototype.producersConnected = 0;\n\n /**\n * TraceStats producersSeen.\n * @member {number} producersSeen\n * @memberof perfetto.protos.TraceStats\n * @instance\n */\n TraceStats.prototype.producersSeen = $util.Long ? $util.Long.fromBits(0,0,true) : 0;\n\n /**\n * TraceStats dataSourcesRegistered.\n * @member {number} dataSourcesRegistered\n * @memberof perfetto.protos.TraceStats\n * @instance\n */\n TraceStats.prototype.dataSourcesRegistered = 0;\n\n /**\n * TraceStats dataSourcesSeen.\n * @member {number} dataSourcesSeen\n * @memberof perfetto.protos.TraceStats\n * @instance\n */\n TraceStats.prototype.dataSourcesSeen = $util.Long ? $util.Long.fromBits(0,0,true) : 0;\n\n /**\n * TraceStats tracingSessions.\n * @member {number} tracingSessions\n * @memberof perfetto.protos.TraceStats\n * @instance\n */\n TraceStats.prototype.tracingSessions = 0;\n\n /**\n * TraceStats totalBuffers.\n * @member {number} totalBuffers\n * @memberof perfetto.protos.TraceStats\n * @instance\n */\n TraceStats.prototype.totalBuffers = 0;\n\n /**\n * TraceStats chunksDiscarded.\n * @member {number} chunksDiscarded\n * @memberof perfetto.protos.TraceStats\n * @instance\n */\n TraceStats.prototype.chunksDiscarded = $util.Long ? $util.Long.fromBits(0,0,true) : 0;\n\n /**\n * TraceStats patchesDiscarded.\n * @member {number} patchesDiscarded\n * @memberof perfetto.protos.TraceStats\n * @instance\n */\n TraceStats.prototype.patchesDiscarded = $util.Long ? $util.Long.fromBits(0,0,true) : 0;\n\n /**\n * TraceStats invalidPackets.\n * @member {number} invalidPackets\n * @memberof perfetto.protos.TraceStats\n * @instance\n */\n TraceStats.prototype.invalidPackets = $util.Long ? $util.Long.fromBits(0,0,true) : 0;\n\n /**\n * TraceStats filterStats.\n * @member {perfetto.protos.TraceStats.IFilterStats|null|undefined} filterStats\n * @memberof perfetto.protos.TraceStats\n * @instance\n */\n TraceStats.prototype.filterStats = null;\n\n /**\n * Creates a new TraceStats instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.TraceStats\n * @static\n * @param {perfetto.protos.ITraceStats=} [properties] Properties to set\n * @returns {perfetto.protos.TraceStats} TraceStats instance\n */\n TraceStats.create = function create(properties) {\n return new TraceStats(properties);\n };\n\n /**\n * Encodes the specified TraceStats message. Does not implicitly {@link perfetto.protos.TraceStats.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.TraceStats\n * @static\n * @param {perfetto.protos.ITraceStats} message TraceStats message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n TraceStats.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.bufferStats != null && message.bufferStats.length)\n for (var i = 0; i < message.bufferStats.length; ++i)\n $root.perfetto.protos.TraceStats.BufferStats.encode(message.bufferStats[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n if (message.producersConnected != null && Object.hasOwnProperty.call(message, \"producersConnected\"))\n writer.uint32(/* id 2, wireType 0 =*/16).uint32(message.producersConnected);\n if (message.producersSeen != null && Object.hasOwnProperty.call(message, \"producersSeen\"))\n writer.uint32(/* id 3, wireType 0 =*/24).uint64(message.producersSeen);\n if (message.dataSourcesRegistered != null && Object.hasOwnProperty.call(message, \"dataSourcesRegistered\"))\n writer.uint32(/* id 4, wireType 0 =*/32).uint32(message.dataSourcesRegistered);\n if (message.dataSourcesSeen != null && Object.hasOwnProperty.call(message, \"dataSourcesSeen\"))\n writer.uint32(/* id 5, wireType 0 =*/40).uint64(message.dataSourcesSeen);\n if (message.tracingSessions != null && Object.hasOwnProperty.call(message, \"tracingSessions\"))\n writer.uint32(/* id 6, wireType 0 =*/48).uint32(message.tracingSessions);\n if (message.totalBuffers != null && Object.hasOwnProperty.call(message, \"totalBuffers\"))\n writer.uint32(/* id 7, wireType 0 =*/56).uint32(message.totalBuffers);\n if (message.chunksDiscarded != null && Object.hasOwnProperty.call(message, \"chunksDiscarded\"))\n writer.uint32(/* id 8, wireType 0 =*/64).uint64(message.chunksDiscarded);\n if (message.patchesDiscarded != null && Object.hasOwnProperty.call(message, \"patchesDiscarded\"))\n writer.uint32(/* id 9, wireType 0 =*/72).uint64(message.patchesDiscarded);\n if (message.invalidPackets != null && Object.hasOwnProperty.call(message, \"invalidPackets\"))\n writer.uint32(/* id 10, wireType 0 =*/80).uint64(message.invalidPackets);\n if (message.filterStats != null && Object.hasOwnProperty.call(message, \"filterStats\"))\n $root.perfetto.protos.TraceStats.FilterStats.encode(message.filterStats, writer.uint32(/* id 11, wireType 2 =*/90).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified TraceStats message, length delimited. Does not implicitly {@link perfetto.protos.TraceStats.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.TraceStats\n * @static\n * @param {perfetto.protos.ITraceStats} message TraceStats message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n TraceStats.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a TraceStats message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.TraceStats\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.TraceStats} TraceStats\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n TraceStats.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.TraceStats();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (!(message.bufferStats && message.bufferStats.length))\n message.bufferStats = [];\n message.bufferStats.push($root.perfetto.protos.TraceStats.BufferStats.decode(reader, reader.uint32()));\n break;\n case 2:\n message.producersConnected = reader.uint32();\n break;\n case 3:\n message.producersSeen = reader.uint64();\n break;\n case 4:\n message.dataSourcesRegistered = reader.uint32();\n break;\n case 5:\n message.dataSourcesSeen = reader.uint64();\n break;\n case 6:\n message.tracingSessions = reader.uint32();\n break;\n case 7:\n message.totalBuffers = reader.uint32();\n break;\n case 8:\n message.chunksDiscarded = reader.uint64();\n break;\n case 9:\n message.patchesDiscarded = reader.uint64();\n break;\n case 10:\n message.invalidPackets = reader.uint64();\n break;\n case 11:\n message.filterStats = $root.perfetto.protos.TraceStats.FilterStats.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a TraceStats message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.TraceStats\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.TraceStats} TraceStats\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n TraceStats.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a TraceStats message.\n * @function verify\n * @memberof perfetto.protos.TraceStats\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n TraceStats.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.bufferStats != null && message.hasOwnProperty(\"bufferStats\")) {\n if (!Array.isArray(message.bufferStats))\n return \"bufferStats: array expected\";\n for (var i = 0; i < message.bufferStats.length; ++i) {\n var error = $root.perfetto.protos.TraceStats.BufferStats.verify(message.bufferStats[i]);\n if (error)\n return \"bufferStats.\" + error;\n }\n }\n if (message.producersConnected != null && message.hasOwnProperty(\"producersConnected\"))\n if (!$util.isInteger(message.producersConnected))\n return \"producersConnected: integer expected\";\n if (message.producersSeen != null && message.hasOwnProperty(\"producersSeen\"))\n if (!$util.isInteger(message.producersSeen) && !(message.producersSeen && $util.isInteger(message.producersSeen.low) && $util.isInteger(message.producersSeen.high)))\n return \"producersSeen: integer|Long expected\";\n if (message.dataSourcesRegistered != null && message.hasOwnProperty(\"dataSourcesRegistered\"))\n if (!$util.isInteger(message.dataSourcesRegistered))\n return \"dataSourcesRegistered: integer expected\";\n if (message.dataSourcesSeen != null && message.hasOwnProperty(\"dataSourcesSeen\"))\n if (!$util.isInteger(message.dataSourcesSeen) && !(message.dataSourcesSeen && $util.isInteger(message.dataSourcesSeen.low) && $util.isInteger(message.dataSourcesSeen.high)))\n return \"dataSourcesSeen: integer|Long expected\";\n if (message.tracingSessions != null && message.hasOwnProperty(\"tracingSessions\"))\n if (!$util.isInteger(message.tracingSessions))\n return \"tracingSessions: integer expected\";\n if (message.totalBuffers != null && message.hasOwnProperty(\"totalBuffers\"))\n if (!$util.isInteger(message.totalBuffers))\n return \"totalBuffers: integer expected\";\n if (message.chunksDiscarded != null && message.hasOwnProperty(\"chunksDiscarded\"))\n if (!$util.isInteger(message.chunksDiscarded) && !(message.chunksDiscarded && $util.isInteger(message.chunksDiscarded.low) && $util.isInteger(message.chunksDiscarded.high)))\n return \"chunksDiscarded: integer|Long expected\";\n if (message.patchesDiscarded != null && message.hasOwnProperty(\"patchesDiscarded\"))\n if (!$util.isInteger(message.patchesDiscarded) && !(message.patchesDiscarded && $util.isInteger(message.patchesDiscarded.low) && $util.isInteger(message.patchesDiscarded.high)))\n return \"patchesDiscarded: integer|Long expected\";\n if (message.invalidPackets != null && message.hasOwnProperty(\"invalidPackets\"))\n if (!$util.isInteger(message.invalidPackets) && !(message.invalidPackets && $util.isInteger(message.invalidPackets.low) && $util.isInteger(message.invalidPackets.high)))\n return \"invalidPackets: integer|Long expected\";\n if (message.filterStats != null && message.hasOwnProperty(\"filterStats\")) {\n var error = $root.perfetto.protos.TraceStats.FilterStats.verify(message.filterStats);\n if (error)\n return \"filterStats.\" + error;\n }\n return null;\n };\n\n /**\n * Creates a TraceStats message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.TraceStats\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.TraceStats} TraceStats\n */\n TraceStats.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.TraceStats)\n return object;\n var message = new $root.perfetto.protos.TraceStats();\n if (object.bufferStats) {\n if (!Array.isArray(object.bufferStats))\n throw TypeError(\".perfetto.protos.TraceStats.bufferStats: array expected\");\n message.bufferStats = [];\n for (var i = 0; i < object.bufferStats.length; ++i) {\n if (typeof object.bufferStats[i] !== \"object\")\n throw TypeError(\".perfetto.protos.TraceStats.bufferStats: object expected\");\n message.bufferStats[i] = $root.perfetto.protos.TraceStats.BufferStats.fromObject(object.bufferStats[i]);\n }\n }\n if (object.producersConnected != null)\n message.producersConnected = object.producersConnected >>> 0;\n if (object.producersSeen != null)\n if ($util.Long)\n (message.producersSeen = $util.Long.fromValue(object.producersSeen)).unsigned = true;\n else if (typeof object.producersSeen === \"string\")\n message.producersSeen = parseInt(object.producersSeen, 10);\n else if (typeof object.producersSeen === \"number\")\n message.producersSeen = object.producersSeen;\n else if (typeof object.producersSeen === \"object\")\n message.producersSeen = new $util.LongBits(object.producersSeen.low >>> 0, object.producersSeen.high >>> 0).toNumber(true);\n if (object.dataSourcesRegistered != null)\n message.dataSourcesRegistered = object.dataSourcesRegistered >>> 0;\n if (object.dataSourcesSeen != null)\n if ($util.Long)\n (message.dataSourcesSeen = $util.Long.fromValue(object.dataSourcesSeen)).unsigned = true;\n else if (typeof object.dataSourcesSeen === \"string\")\n message.dataSourcesSeen = parseInt(object.dataSourcesSeen, 10);\n else if (typeof object.dataSourcesSeen === \"number\")\n message.dataSourcesSeen = object.dataSourcesSeen;\n else if (typeof object.dataSourcesSeen === \"object\")\n message.dataSourcesSeen = new $util.LongBits(object.dataSourcesSeen.low >>> 0, object.dataSourcesSeen.high >>> 0).toNumber(true);\n if (object.tracingSessions != null)\n message.tracingSessions = object.tracingSessions >>> 0;\n if (object.totalBuffers != null)\n message.totalBuffers = object.totalBuffers >>> 0;\n if (object.chunksDiscarded != null)\n if ($util.Long)\n (message.chunksDiscarded = $util.Long.fromValue(object.chunksDiscarded)).unsigned = true;\n else if (typeof object.chunksDiscarded === \"string\")\n message.chunksDiscarded = parseInt(object.chunksDiscarded, 10);\n else if (typeof object.chunksDiscarded === \"number\")\n message.chunksDiscarded = object.chunksDiscarded;\n else if (typeof object.chunksDiscarded === \"object\")\n message.chunksDiscarded = new $util.LongBits(object.chunksDiscarded.low >>> 0, object.chunksDiscarded.high >>> 0).toNumber(true);\n if (object.patchesDiscarded != null)\n if ($util.Long)\n (message.patchesDiscarded = $util.Long.fromValue(object.patchesDiscarded)).unsigned = true;\n else if (typeof object.patchesDiscarded === \"string\")\n message.patchesDiscarded = parseInt(object.patchesDiscarded, 10);\n else if (typeof object.patchesDiscarded === \"number\")\n message.patchesDiscarded = object.patchesDiscarded;\n else if (typeof object.patchesDiscarded === \"object\")\n message.patchesDiscarded = new $util.LongBits(object.patchesDiscarded.low >>> 0, object.patchesDiscarded.high >>> 0).toNumber(true);\n if (object.invalidPackets != null)\n if ($util.Long)\n (message.invalidPackets = $util.Long.fromValue(object.invalidPackets)).unsigned = true;\n else if (typeof object.invalidPackets === \"string\")\n message.invalidPackets = parseInt(object.invalidPackets, 10);\n else if (typeof object.invalidPackets === \"number\")\n message.invalidPackets = object.invalidPackets;\n else if (typeof object.invalidPackets === \"object\")\n message.invalidPackets = new $util.LongBits(object.invalidPackets.low >>> 0, object.invalidPackets.high >>> 0).toNumber(true);\n if (object.filterStats != null) {\n if (typeof object.filterStats !== \"object\")\n throw TypeError(\".perfetto.protos.TraceStats.filterStats: object expected\");\n message.filterStats = $root.perfetto.protos.TraceStats.FilterStats.fromObject(object.filterStats);\n }\n return message;\n };\n\n /**\n * Creates a plain object from a TraceStats message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.TraceStats\n * @static\n * @param {perfetto.protos.TraceStats} message TraceStats\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n TraceStats.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.bufferStats = [];\n if (options.defaults) {\n object.producersConnected = 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, true);\n object.producersSeen = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.producersSeen = options.longs === String ? \"0\" : 0;\n object.dataSourcesRegistered = 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, true);\n object.dataSourcesSeen = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.dataSourcesSeen = options.longs === String ? \"0\" : 0;\n object.tracingSessions = 0;\n object.totalBuffers = 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, true);\n object.chunksDiscarded = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.chunksDiscarded = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, true);\n object.patchesDiscarded = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.patchesDiscarded = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, true);\n object.invalidPackets = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.invalidPackets = options.longs === String ? \"0\" : 0;\n object.filterStats = null;\n }\n if (message.bufferStats && message.bufferStats.length) {\n object.bufferStats = [];\n for (var j = 0; j < message.bufferStats.length; ++j)\n object.bufferStats[j] = $root.perfetto.protos.TraceStats.BufferStats.toObject(message.bufferStats[j], options);\n }\n if (message.producersConnected != null && message.hasOwnProperty(\"producersConnected\"))\n object.producersConnected = message.producersConnected;\n if (message.producersSeen != null && message.hasOwnProperty(\"producersSeen\"))\n if (typeof message.producersSeen === \"number\")\n object.producersSeen = options.longs === String ? String(message.producersSeen) : message.producersSeen;\n else\n object.producersSeen = options.longs === String ? $util.Long.prototype.toString.call(message.producersSeen) : options.longs === Number ? new $util.LongBits(message.producersSeen.low >>> 0, message.producersSeen.high >>> 0).toNumber(true) : message.producersSeen;\n if (message.dataSourcesRegistered != null && message.hasOwnProperty(\"dataSourcesRegistered\"))\n object.dataSourcesRegistered = message.dataSourcesRegistered;\n if (message.dataSourcesSeen != null && message.hasOwnProperty(\"dataSourcesSeen\"))\n if (typeof message.dataSourcesSeen === \"number\")\n object.dataSourcesSeen = options.longs === String ? String(message.dataSourcesSeen) : message.dataSourcesSeen;\n else\n object.dataSourcesSeen = options.longs === String ? $util.Long.prototype.toString.call(message.dataSourcesSeen) : options.longs === Number ? new $util.LongBits(message.dataSourcesSeen.low >>> 0, message.dataSourcesSeen.high >>> 0).toNumber(true) : message.dataSourcesSeen;\n if (message.tracingSessions != null && message.hasOwnProperty(\"tracingSessions\"))\n object.tracingSessions = message.tracingSessions;\n if (message.totalBuffers != null && message.hasOwnProperty(\"totalBuffers\"))\n object.totalBuffers = message.totalBuffers;\n if (message.chunksDiscarded != null && message.hasOwnProperty(\"chunksDiscarded\"))\n if (typeof message.chunksDiscarded === \"number\")\n object.chunksDiscarded = options.longs === String ? String(message.chunksDiscarded) : message.chunksDiscarded;\n else\n object.chunksDiscarded = options.longs === String ? $util.Long.prototype.toString.call(message.chunksDiscarded) : options.longs === Number ? new $util.LongBits(message.chunksDiscarded.low >>> 0, message.chunksDiscarded.high >>> 0).toNumber(true) : message.chunksDiscarded;\n if (message.patchesDiscarded != null && message.hasOwnProperty(\"patchesDiscarded\"))\n if (typeof message.patchesDiscarded === \"number\")\n object.patchesDiscarded = options.longs === String ? String(message.patchesDiscarded) : message.patchesDiscarded;\n else\n object.patchesDiscarded = options.longs === String ? $util.Long.prototype.toString.call(message.patchesDiscarded) : options.longs === Number ? new $util.LongBits(message.patchesDiscarded.low >>> 0, message.patchesDiscarded.high >>> 0).toNumber(true) : message.patchesDiscarded;\n if (message.invalidPackets != null && message.hasOwnProperty(\"invalidPackets\"))\n if (typeof message.invalidPackets === \"number\")\n object.invalidPackets = options.longs === String ? String(message.invalidPackets) : message.invalidPackets;\n else\n object.invalidPackets = options.longs === String ? $util.Long.prototype.toString.call(message.invalidPackets) : options.longs === Number ? new $util.LongBits(message.invalidPackets.low >>> 0, message.invalidPackets.high >>> 0).toNumber(true) : message.invalidPackets;\n if (message.filterStats != null && message.hasOwnProperty(\"filterStats\"))\n object.filterStats = $root.perfetto.protos.TraceStats.FilterStats.toObject(message.filterStats, options);\n return object;\n };\n\n /**\n * Converts this TraceStats to JSON.\n * @function toJSON\n * @memberof perfetto.protos.TraceStats\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n TraceStats.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n TraceStats.BufferStats = (function() {\n\n /**\n * Properties of a BufferStats.\n * @memberof perfetto.protos.TraceStats\n * @interface IBufferStats\n * @property {number|null} [bufferSize] BufferStats bufferSize\n * @property {number|null} [bytesWritten] BufferStats bytesWritten\n * @property {number|null} [bytesOverwritten] BufferStats bytesOverwritten\n * @property {number|null} [bytesRead] BufferStats bytesRead\n * @property {number|null} [paddingBytesWritten] BufferStats paddingBytesWritten\n * @property {number|null} [paddingBytesCleared] BufferStats paddingBytesCleared\n * @property {number|null} [chunksWritten] BufferStats chunksWritten\n * @property {number|null} [chunksRewritten] BufferStats chunksRewritten\n * @property {number|null} [chunksOverwritten] BufferStats chunksOverwritten\n * @property {number|null} [chunksDiscarded] BufferStats chunksDiscarded\n * @property {number|null} [chunksRead] BufferStats chunksRead\n * @property {number|null} [chunksCommittedOutOfOrder] BufferStats chunksCommittedOutOfOrder\n * @property {number|null} [writeWrapCount] BufferStats writeWrapCount\n * @property {number|null} [patchesSucceeded] BufferStats patchesSucceeded\n * @property {number|null} [patchesFailed] BufferStats patchesFailed\n * @property {number|null} [readaheadsSucceeded] BufferStats readaheadsSucceeded\n * @property {number|null} [readaheadsFailed] BufferStats readaheadsFailed\n * @property {number|null} [abiViolations] BufferStats abiViolations\n * @property {number|null} [traceWriterPacketLoss] BufferStats traceWriterPacketLoss\n */\n\n /**\n * Constructs a new BufferStats.\n * @memberof perfetto.protos.TraceStats\n * @classdesc Represents a BufferStats.\n * @implements IBufferStats\n * @constructor\n * @param {perfetto.protos.TraceStats.IBufferStats=} [properties] Properties to set\n */\n function BufferStats(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * BufferStats bufferSize.\n * @member {number} bufferSize\n * @memberof perfetto.protos.TraceStats.BufferStats\n * @instance\n */\n BufferStats.prototype.bufferSize = $util.Long ? $util.Long.fromBits(0,0,true) : 0;\n\n /**\n * BufferStats bytesWritten.\n * @member {number} bytesWritten\n * @memberof perfetto.protos.TraceStats.BufferStats\n * @instance\n */\n BufferStats.prototype.bytesWritten = $util.Long ? $util.Long.fromBits(0,0,true) : 0;\n\n /**\n * BufferStats bytesOverwritten.\n * @member {number} bytesOverwritten\n * @memberof perfetto.protos.TraceStats.BufferStats\n * @instance\n */\n BufferStats.prototype.bytesOverwritten = $util.Long ? $util.Long.fromBits(0,0,true) : 0;\n\n /**\n * BufferStats bytesRead.\n * @member {number} bytesRead\n * @memberof perfetto.protos.TraceStats.BufferStats\n * @instance\n */\n BufferStats.prototype.bytesRead = $util.Long ? $util.Long.fromBits(0,0,true) : 0;\n\n /**\n * BufferStats paddingBytesWritten.\n * @member {number} paddingBytesWritten\n * @memberof perfetto.protos.TraceStats.BufferStats\n * @instance\n */\n BufferStats.prototype.paddingBytesWritten = $util.Long ? $util.Long.fromBits(0,0,true) : 0;\n\n /**\n * BufferStats paddingBytesCleared.\n * @member {number} paddingBytesCleared\n * @memberof perfetto.protos.TraceStats.BufferStats\n * @instance\n */\n BufferStats.prototype.paddingBytesCleared = $util.Long ? $util.Long.fromBits(0,0,true) : 0;\n\n /**\n * BufferStats chunksWritten.\n * @member {number} chunksWritten\n * @memberof perfetto.protos.TraceStats.BufferStats\n * @instance\n */\n BufferStats.prototype.chunksWritten = $util.Long ? $util.Long.fromBits(0,0,true) : 0;\n\n /**\n * BufferStats chunksRewritten.\n * @member {number} chunksRewritten\n * @memberof perfetto.protos.TraceStats.BufferStats\n * @instance\n */\n BufferStats.prototype.chunksRewritten = $util.Long ? $util.Long.fromBits(0,0,true) : 0;\n\n /**\n * BufferStats chunksOverwritten.\n * @member {number} chunksOverwritten\n * @memberof perfetto.protos.TraceStats.BufferStats\n * @instance\n */\n BufferStats.prototype.chunksOverwritten = $util.Long ? $util.Long.fromBits(0,0,true) : 0;\n\n /**\n * BufferStats chunksDiscarded.\n * @member {number} chunksDiscarded\n * @memberof perfetto.protos.TraceStats.BufferStats\n * @instance\n */\n BufferStats.prototype.chunksDiscarded = $util.Long ? $util.Long.fromBits(0,0,true) : 0;\n\n /**\n * BufferStats chunksRead.\n * @member {number} chunksRead\n * @memberof perfetto.protos.TraceStats.BufferStats\n * @instance\n */\n BufferStats.prototype.chunksRead = $util.Long ? $util.Long.fromBits(0,0,true) : 0;\n\n /**\n * BufferStats chunksCommittedOutOfOrder.\n * @member {number} chunksCommittedOutOfOrder\n * @memberof perfetto.protos.TraceStats.BufferStats\n * @instance\n */\n BufferStats.prototype.chunksCommittedOutOfOrder = $util.Long ? $util.Long.fromBits(0,0,true) : 0;\n\n /**\n * BufferStats writeWrapCount.\n * @member {number} writeWrapCount\n * @memberof perfetto.protos.TraceStats.BufferStats\n * @instance\n */\n BufferStats.prototype.writeWrapCount = $util.Long ? $util.Long.fromBits(0,0,true) : 0;\n\n /**\n * BufferStats patchesSucceeded.\n * @member {number} patchesSucceeded\n * @memberof perfetto.protos.TraceStats.BufferStats\n * @instance\n */\n BufferStats.prototype.patchesSucceeded = $util.Long ? $util.Long.fromBits(0,0,true) : 0;\n\n /**\n * BufferStats patchesFailed.\n * @member {number} patchesFailed\n * @memberof perfetto.protos.TraceStats.BufferStats\n * @instance\n */\n BufferStats.prototype.patchesFailed = $util.Long ? $util.Long.fromBits(0,0,true) : 0;\n\n /**\n * BufferStats readaheadsSucceeded.\n * @member {number} readaheadsSucceeded\n * @memberof perfetto.protos.TraceStats.BufferStats\n * @instance\n */\n BufferStats.prototype.readaheadsSucceeded = $util.Long ? $util.Long.fromBits(0,0,true) : 0;\n\n /**\n * BufferStats readaheadsFailed.\n * @member {number} readaheadsFailed\n * @memberof perfetto.protos.TraceStats.BufferStats\n * @instance\n */\n BufferStats.prototype.readaheadsFailed = $util.Long ? $util.Long.fromBits(0,0,true) : 0;\n\n /**\n * BufferStats abiViolations.\n * @member {number} abiViolations\n * @memberof perfetto.protos.TraceStats.BufferStats\n * @instance\n */\n BufferStats.prototype.abiViolations = $util.Long ? $util.Long.fromBits(0,0,true) : 0;\n\n /**\n * BufferStats traceWriterPacketLoss.\n * @member {number} traceWriterPacketLoss\n * @memberof perfetto.protos.TraceStats.BufferStats\n * @instance\n */\n BufferStats.prototype.traceWriterPacketLoss = $util.Long ? $util.Long.fromBits(0,0,true) : 0;\n\n /**\n * Creates a new BufferStats instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.TraceStats.BufferStats\n * @static\n * @param {perfetto.protos.TraceStats.IBufferStats=} [properties] Properties to set\n * @returns {perfetto.protos.TraceStats.BufferStats} BufferStats instance\n */\n BufferStats.create = function create(properties) {\n return new BufferStats(properties);\n };\n\n /**\n * Encodes the specified BufferStats message. Does not implicitly {@link perfetto.protos.TraceStats.BufferStats.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.TraceStats.BufferStats\n * @static\n * @param {perfetto.protos.TraceStats.IBufferStats} message BufferStats message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n BufferStats.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.bytesWritten != null && Object.hasOwnProperty.call(message, \"bytesWritten\"))\n writer.uint32(/* id 1, wireType 0 =*/8).uint64(message.bytesWritten);\n if (message.chunksWritten != null && Object.hasOwnProperty.call(message, \"chunksWritten\"))\n writer.uint32(/* id 2, wireType 0 =*/16).uint64(message.chunksWritten);\n if (message.chunksOverwritten != null && Object.hasOwnProperty.call(message, \"chunksOverwritten\"))\n writer.uint32(/* id 3, wireType 0 =*/24).uint64(message.chunksOverwritten);\n if (message.writeWrapCount != null && Object.hasOwnProperty.call(message, \"writeWrapCount\"))\n writer.uint32(/* id 4, wireType 0 =*/32).uint64(message.writeWrapCount);\n if (message.patchesSucceeded != null && Object.hasOwnProperty.call(message, \"patchesSucceeded\"))\n writer.uint32(/* id 5, wireType 0 =*/40).uint64(message.patchesSucceeded);\n if (message.patchesFailed != null && Object.hasOwnProperty.call(message, \"patchesFailed\"))\n writer.uint32(/* id 6, wireType 0 =*/48).uint64(message.patchesFailed);\n if (message.readaheadsSucceeded != null && Object.hasOwnProperty.call(message, \"readaheadsSucceeded\"))\n writer.uint32(/* id 7, wireType 0 =*/56).uint64(message.readaheadsSucceeded);\n if (message.readaheadsFailed != null && Object.hasOwnProperty.call(message, \"readaheadsFailed\"))\n writer.uint32(/* id 8, wireType 0 =*/64).uint64(message.readaheadsFailed);\n if (message.abiViolations != null && Object.hasOwnProperty.call(message, \"abiViolations\"))\n writer.uint32(/* id 9, wireType 0 =*/72).uint64(message.abiViolations);\n if (message.chunksRewritten != null && Object.hasOwnProperty.call(message, \"chunksRewritten\"))\n writer.uint32(/* id 10, wireType 0 =*/80).uint64(message.chunksRewritten);\n if (message.chunksCommittedOutOfOrder != null && Object.hasOwnProperty.call(message, \"chunksCommittedOutOfOrder\"))\n writer.uint32(/* id 11, wireType 0 =*/88).uint64(message.chunksCommittedOutOfOrder);\n if (message.bufferSize != null && Object.hasOwnProperty.call(message, \"bufferSize\"))\n writer.uint32(/* id 12, wireType 0 =*/96).uint64(message.bufferSize);\n if (message.bytesOverwritten != null && Object.hasOwnProperty.call(message, \"bytesOverwritten\"))\n writer.uint32(/* id 13, wireType 0 =*/104).uint64(message.bytesOverwritten);\n if (message.bytesRead != null && Object.hasOwnProperty.call(message, \"bytesRead\"))\n writer.uint32(/* id 14, wireType 0 =*/112).uint64(message.bytesRead);\n if (message.paddingBytesWritten != null && Object.hasOwnProperty.call(message, \"paddingBytesWritten\"))\n writer.uint32(/* id 15, wireType 0 =*/120).uint64(message.paddingBytesWritten);\n if (message.paddingBytesCleared != null && Object.hasOwnProperty.call(message, \"paddingBytesCleared\"))\n writer.uint32(/* id 16, wireType 0 =*/128).uint64(message.paddingBytesCleared);\n if (message.chunksRead != null && Object.hasOwnProperty.call(message, \"chunksRead\"))\n writer.uint32(/* id 17, wireType 0 =*/136).uint64(message.chunksRead);\n if (message.chunksDiscarded != null && Object.hasOwnProperty.call(message, \"chunksDiscarded\"))\n writer.uint32(/* id 18, wireType 0 =*/144).uint64(message.chunksDiscarded);\n if (message.traceWriterPacketLoss != null && Object.hasOwnProperty.call(message, \"traceWriterPacketLoss\"))\n writer.uint32(/* id 19, wireType 0 =*/152).uint64(message.traceWriterPacketLoss);\n return writer;\n };\n\n /**\n * Encodes the specified BufferStats message, length delimited. Does not implicitly {@link perfetto.protos.TraceStats.BufferStats.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.TraceStats.BufferStats\n * @static\n * @param {perfetto.protos.TraceStats.IBufferStats} message BufferStats message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n BufferStats.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a BufferStats message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.TraceStats.BufferStats\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.TraceStats.BufferStats} BufferStats\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n BufferStats.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.TraceStats.BufferStats();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 12:\n message.bufferSize = reader.uint64();\n break;\n case 1:\n message.bytesWritten = reader.uint64();\n break;\n case 13:\n message.bytesOverwritten = reader.uint64();\n break;\n case 14:\n message.bytesRead = reader.uint64();\n break;\n case 15:\n message.paddingBytesWritten = reader.uint64();\n break;\n case 16:\n message.paddingBytesCleared = reader.uint64();\n break;\n case 2:\n message.chunksWritten = reader.uint64();\n break;\n case 10:\n message.chunksRewritten = reader.uint64();\n break;\n case 3:\n message.chunksOverwritten = reader.uint64();\n break;\n case 18:\n message.chunksDiscarded = reader.uint64();\n break;\n case 17:\n message.chunksRead = reader.uint64();\n break;\n case 11:\n message.chunksCommittedOutOfOrder = reader.uint64();\n break;\n case 4:\n message.writeWrapCount = reader.uint64();\n break;\n case 5:\n message.patchesSucceeded = reader.uint64();\n break;\n case 6:\n message.patchesFailed = reader.uint64();\n break;\n case 7:\n message.readaheadsSucceeded = reader.uint64();\n break;\n case 8:\n message.readaheadsFailed = reader.uint64();\n break;\n case 9:\n message.abiViolations = reader.uint64();\n break;\n case 19:\n message.traceWriterPacketLoss = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a BufferStats message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.TraceStats.BufferStats\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.TraceStats.BufferStats} BufferStats\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n BufferStats.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a BufferStats message.\n * @function verify\n * @memberof perfetto.protos.TraceStats.BufferStats\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n BufferStats.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.bufferSize != null && message.hasOwnProperty(\"bufferSize\"))\n if (!$util.isInteger(message.bufferSize) && !(message.bufferSize && $util.isInteger(message.bufferSize.low) && $util.isInteger(message.bufferSize.high)))\n return \"bufferSize: integer|Long expected\";\n if (message.bytesWritten != null && message.hasOwnProperty(\"bytesWritten\"))\n if (!$util.isInteger(message.bytesWritten) && !(message.bytesWritten && $util.isInteger(message.bytesWritten.low) && $util.isInteger(message.bytesWritten.high)))\n return \"bytesWritten: integer|Long expected\";\n if (message.bytesOverwritten != null && message.hasOwnProperty(\"bytesOverwritten\"))\n if (!$util.isInteger(message.bytesOverwritten) && !(message.bytesOverwritten && $util.isInteger(message.bytesOverwritten.low) && $util.isInteger(message.bytesOverwritten.high)))\n return \"bytesOverwritten: integer|Long expected\";\n if (message.bytesRead != null && message.hasOwnProperty(\"bytesRead\"))\n if (!$util.isInteger(message.bytesRead) && !(message.bytesRead && $util.isInteger(message.bytesRead.low) && $util.isInteger(message.bytesRead.high)))\n return \"bytesRead: integer|Long expected\";\n if (message.paddingBytesWritten != null && message.hasOwnProperty(\"paddingBytesWritten\"))\n if (!$util.isInteger(message.paddingBytesWritten) && !(message.paddingBytesWritten && $util.isInteger(message.paddingBytesWritten.low) && $util.isInteger(message.paddingBytesWritten.high)))\n return \"paddingBytesWritten: integer|Long expected\";\n if (message.paddingBytesCleared != null && message.hasOwnProperty(\"paddingBytesCleared\"))\n if (!$util.isInteger(message.paddingBytesCleared) && !(message.paddingBytesCleared && $util.isInteger(message.paddingBytesCleared.low) && $util.isInteger(message.paddingBytesCleared.high)))\n return \"paddingBytesCleared: integer|Long expected\";\n if (message.chunksWritten != null && message.hasOwnProperty(\"chunksWritten\"))\n if (!$util.isInteger(message.chunksWritten) && !(message.chunksWritten && $util.isInteger(message.chunksWritten.low) && $util.isInteger(message.chunksWritten.high)))\n return \"chunksWritten: integer|Long expected\";\n if (message.chunksRewritten != null && message.hasOwnProperty(\"chunksRewritten\"))\n if (!$util.isInteger(message.chunksRewritten) && !(message.chunksRewritten && $util.isInteger(message.chunksRewritten.low) && $util.isInteger(message.chunksRewritten.high)))\n return \"chunksRewritten: integer|Long expected\";\n if (message.chunksOverwritten != null && message.hasOwnProperty(\"chunksOverwritten\"))\n if (!$util.isInteger(message.chunksOverwritten) && !(message.chunksOverwritten && $util.isInteger(message.chunksOverwritten.low) && $util.isInteger(message.chunksOverwritten.high)))\n return \"chunksOverwritten: integer|Long expected\";\n if (message.chunksDiscarded != null && message.hasOwnProperty(\"chunksDiscarded\"))\n if (!$util.isInteger(message.chunksDiscarded) && !(message.chunksDiscarded && $util.isInteger(message.chunksDiscarded.low) && $util.isInteger(message.chunksDiscarded.high)))\n return \"chunksDiscarded: integer|Long expected\";\n if (message.chunksRead != null && message.hasOwnProperty(\"chunksRead\"))\n if (!$util.isInteger(message.chunksRead) && !(message.chunksRead && $util.isInteger(message.chunksRead.low) && $util.isInteger(message.chunksRead.high)))\n return \"chunksRead: integer|Long expected\";\n if (message.chunksCommittedOutOfOrder != null && message.hasOwnProperty(\"chunksCommittedOutOfOrder\"))\n if (!$util.isInteger(message.chunksCommittedOutOfOrder) && !(message.chunksCommittedOutOfOrder && $util.isInteger(message.chunksCommittedOutOfOrder.low) && $util.isInteger(message.chunksCommittedOutOfOrder.high)))\n return \"chunksCommittedOutOfOrder: integer|Long expected\";\n if (message.writeWrapCount != null && message.hasOwnProperty(\"writeWrapCount\"))\n if (!$util.isInteger(message.writeWrapCount) && !(message.writeWrapCount && $util.isInteger(message.writeWrapCount.low) && $util.isInteger(message.writeWrapCount.high)))\n return \"writeWrapCount: integer|Long expected\";\n if (message.patchesSucceeded != null && message.hasOwnProperty(\"patchesSucceeded\"))\n if (!$util.isInteger(message.patchesSucceeded) && !(message.patchesSucceeded && $util.isInteger(message.patchesSucceeded.low) && $util.isInteger(message.patchesSucceeded.high)))\n return \"patchesSucceeded: integer|Long expected\";\n if (message.patchesFailed != null && message.hasOwnProperty(\"patchesFailed\"))\n if (!$util.isInteger(message.patchesFailed) && !(message.patchesFailed && $util.isInteger(message.patchesFailed.low) && $util.isInteger(message.patchesFailed.high)))\n return \"patchesFailed: integer|Long expected\";\n if (message.readaheadsSucceeded != null && message.hasOwnProperty(\"readaheadsSucceeded\"))\n if (!$util.isInteger(message.readaheadsSucceeded) && !(message.readaheadsSucceeded && $util.isInteger(message.readaheadsSucceeded.low) && $util.isInteger(message.readaheadsSucceeded.high)))\n return \"readaheadsSucceeded: integer|Long expected\";\n if (message.readaheadsFailed != null && message.hasOwnProperty(\"readaheadsFailed\"))\n if (!$util.isInteger(message.readaheadsFailed) && !(message.readaheadsFailed && $util.isInteger(message.readaheadsFailed.low) && $util.isInteger(message.readaheadsFailed.high)))\n return \"readaheadsFailed: integer|Long expected\";\n if (message.abiViolations != null && message.hasOwnProperty(\"abiViolations\"))\n if (!$util.isInteger(message.abiViolations) && !(message.abiViolations && $util.isInteger(message.abiViolations.low) && $util.isInteger(message.abiViolations.high)))\n return \"abiViolations: integer|Long expected\";\n if (message.traceWriterPacketLoss != null && message.hasOwnProperty(\"traceWriterPacketLoss\"))\n if (!$util.isInteger(message.traceWriterPacketLoss) && !(message.traceWriterPacketLoss && $util.isInteger(message.traceWriterPacketLoss.low) && $util.isInteger(message.traceWriterPacketLoss.high)))\n return \"traceWriterPacketLoss: integer|Long expected\";\n return null;\n };\n\n /**\n * Creates a BufferStats message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.TraceStats.BufferStats\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.TraceStats.BufferStats} BufferStats\n */\n BufferStats.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.TraceStats.BufferStats)\n return object;\n var message = new $root.perfetto.protos.TraceStats.BufferStats();\n if (object.bufferSize != null)\n if ($util.Long)\n (message.bufferSize = $util.Long.fromValue(object.bufferSize)).unsigned = true;\n else if (typeof object.bufferSize === \"string\")\n message.bufferSize = parseInt(object.bufferSize, 10);\n else if (typeof object.bufferSize === \"number\")\n message.bufferSize = object.bufferSize;\n else if (typeof object.bufferSize === \"object\")\n message.bufferSize = new $util.LongBits(object.bufferSize.low >>> 0, object.bufferSize.high >>> 0).toNumber(true);\n if (object.bytesWritten != null)\n if ($util.Long)\n (message.bytesWritten = $util.Long.fromValue(object.bytesWritten)).unsigned = true;\n else if (typeof object.bytesWritten === \"string\")\n message.bytesWritten = parseInt(object.bytesWritten, 10);\n else if (typeof object.bytesWritten === \"number\")\n message.bytesWritten = object.bytesWritten;\n else if (typeof object.bytesWritten === \"object\")\n message.bytesWritten = new $util.LongBits(object.bytesWritten.low >>> 0, object.bytesWritten.high >>> 0).toNumber(true);\n if (object.bytesOverwritten != null)\n if ($util.Long)\n (message.bytesOverwritten = $util.Long.fromValue(object.bytesOverwritten)).unsigned = true;\n else if (typeof object.bytesOverwritten === \"string\")\n message.bytesOverwritten = parseInt(object.bytesOverwritten, 10);\n else if (typeof object.bytesOverwritten === \"number\")\n message.bytesOverwritten = object.bytesOverwritten;\n else if (typeof object.bytesOverwritten === \"object\")\n message.bytesOverwritten = new $util.LongBits(object.bytesOverwritten.low >>> 0, object.bytesOverwritten.high >>> 0).toNumber(true);\n if (object.bytesRead != null)\n if ($util.Long)\n (message.bytesRead = $util.Long.fromValue(object.bytesRead)).unsigned = true;\n else if (typeof object.bytesRead === \"string\")\n message.bytesRead = parseInt(object.bytesRead, 10);\n else if (typeof object.bytesRead === \"number\")\n message.bytesRead = object.bytesRead;\n else if (typeof object.bytesRead === \"object\")\n message.bytesRead = new $util.LongBits(object.bytesRead.low >>> 0, object.bytesRead.high >>> 0).toNumber(true);\n if (object.paddingBytesWritten != null)\n if ($util.Long)\n (message.paddingBytesWritten = $util.Long.fromValue(object.paddingBytesWritten)).unsigned = true;\n else if (typeof object.paddingBytesWritten === \"string\")\n message.paddingBytesWritten = parseInt(object.paddingBytesWritten, 10);\n else if (typeof object.paddingBytesWritten === \"number\")\n message.paddingBytesWritten = object.paddingBytesWritten;\n else if (typeof object.paddingBytesWritten === \"object\")\n message.paddingBytesWritten = new $util.LongBits(object.paddingBytesWritten.low >>> 0, object.paddingBytesWritten.high >>> 0).toNumber(true);\n if (object.paddingBytesCleared != null)\n if ($util.Long)\n (message.paddingBytesCleared = $util.Long.fromValue(object.paddingBytesCleared)).unsigned = true;\n else if (typeof object.paddingBytesCleared === \"string\")\n message.paddingBytesCleared = parseInt(object.paddingBytesCleared, 10);\n else if (typeof object.paddingBytesCleared === \"number\")\n message.paddingBytesCleared = object.paddingBytesCleared;\n else if (typeof object.paddingBytesCleared === \"object\")\n message.paddingBytesCleared = new $util.LongBits(object.paddingBytesCleared.low >>> 0, object.paddingBytesCleared.high >>> 0).toNumber(true);\n if (object.chunksWritten != null)\n if ($util.Long)\n (message.chunksWritten = $util.Long.fromValue(object.chunksWritten)).unsigned = true;\n else if (typeof object.chunksWritten === \"string\")\n message.chunksWritten = parseInt(object.chunksWritten, 10);\n else if (typeof object.chunksWritten === \"number\")\n message.chunksWritten = object.chunksWritten;\n else if (typeof object.chunksWritten === \"object\")\n message.chunksWritten = new $util.LongBits(object.chunksWritten.low >>> 0, object.chunksWritten.high >>> 0).toNumber(true);\n if (object.chunksRewritten != null)\n if ($util.Long)\n (message.chunksRewritten = $util.Long.fromValue(object.chunksRewritten)).unsigned = true;\n else if (typeof object.chunksRewritten === \"string\")\n message.chunksRewritten = parseInt(object.chunksRewritten, 10);\n else if (typeof object.chunksRewritten === \"number\")\n message.chunksRewritten = object.chunksRewritten;\n else if (typeof object.chunksRewritten === \"object\")\n message.chunksRewritten = new $util.LongBits(object.chunksRewritten.low >>> 0, object.chunksRewritten.high >>> 0).toNumber(true);\n if (object.chunksOverwritten != null)\n if ($util.Long)\n (message.chunksOverwritten = $util.Long.fromValue(object.chunksOverwritten)).unsigned = true;\n else if (typeof object.chunksOverwritten === \"string\")\n message.chunksOverwritten = parseInt(object.chunksOverwritten, 10);\n else if (typeof object.chunksOverwritten === \"number\")\n message.chunksOverwritten = object.chunksOverwritten;\n else if (typeof object.chunksOverwritten === \"object\")\n message.chunksOverwritten = new $util.LongBits(object.chunksOverwritten.low >>> 0, object.chunksOverwritten.high >>> 0).toNumber(true);\n if (object.chunksDiscarded != null)\n if ($util.Long)\n (message.chunksDiscarded = $util.Long.fromValue(object.chunksDiscarded)).unsigned = true;\n else if (typeof object.chunksDiscarded === \"string\")\n message.chunksDiscarded = parseInt(object.chunksDiscarded, 10);\n else if (typeof object.chunksDiscarded === \"number\")\n message.chunksDiscarded = object.chunksDiscarded;\n else if (typeof object.chunksDiscarded === \"object\")\n message.chunksDiscarded = new $util.LongBits(object.chunksDiscarded.low >>> 0, object.chunksDiscarded.high >>> 0).toNumber(true);\n if (object.chunksRead != null)\n if ($util.Long)\n (message.chunksRead = $util.Long.fromValue(object.chunksRead)).unsigned = true;\n else if (typeof object.chunksRead === \"string\")\n message.chunksRead = parseInt(object.chunksRead, 10);\n else if (typeof object.chunksRead === \"number\")\n message.chunksRead = object.chunksRead;\n else if (typeof object.chunksRead === \"object\")\n message.chunksRead = new $util.LongBits(object.chunksRead.low >>> 0, object.chunksRead.high >>> 0).toNumber(true);\n if (object.chunksCommittedOutOfOrder != null)\n if ($util.Long)\n (message.chunksCommittedOutOfOrder = $util.Long.fromValue(object.chunksCommittedOutOfOrder)).unsigned = true;\n else if (typeof object.chunksCommittedOutOfOrder === \"string\")\n message.chunksCommittedOutOfOrder = parseInt(object.chunksCommittedOutOfOrder, 10);\n else if (typeof object.chunksCommittedOutOfOrder === \"number\")\n message.chunksCommittedOutOfOrder = object.chunksCommittedOutOfOrder;\n else if (typeof object.chunksCommittedOutOfOrder === \"object\")\n message.chunksCommittedOutOfOrder = new $util.LongBits(object.chunksCommittedOutOfOrder.low >>> 0, object.chunksCommittedOutOfOrder.high >>> 0).toNumber(true);\n if (object.writeWrapCount != null)\n if ($util.Long)\n (message.writeWrapCount = $util.Long.fromValue(object.writeWrapCount)).unsigned = true;\n else if (typeof object.writeWrapCount === \"string\")\n message.writeWrapCount = parseInt(object.writeWrapCount, 10);\n else if (typeof object.writeWrapCount === \"number\")\n message.writeWrapCount = object.writeWrapCount;\n else if (typeof object.writeWrapCount === \"object\")\n message.writeWrapCount = new $util.LongBits(object.writeWrapCount.low >>> 0, object.writeWrapCount.high >>> 0).toNumber(true);\n if (object.patchesSucceeded != null)\n if ($util.Long)\n (message.patchesSucceeded = $util.Long.fromValue(object.patchesSucceeded)).unsigned = true;\n else if (typeof object.patchesSucceeded === \"string\")\n message.patchesSucceeded = parseInt(object.patchesSucceeded, 10);\n else if (typeof object.patchesSucceeded === \"number\")\n message.patchesSucceeded = object.patchesSucceeded;\n else if (typeof object.patchesSucceeded === \"object\")\n message.patchesSucceeded = new $util.LongBits(object.patchesSucceeded.low >>> 0, object.patchesSucceeded.high >>> 0).toNumber(true);\n if (object.patchesFailed != null)\n if ($util.Long)\n (message.patchesFailed = $util.Long.fromValue(object.patchesFailed)).unsigned = true;\n else if (typeof object.patchesFailed === \"string\")\n message.patchesFailed = parseInt(object.patchesFailed, 10);\n else if (typeof object.patchesFailed === \"number\")\n message.patchesFailed = object.patchesFailed;\n else if (typeof object.patchesFailed === \"object\")\n message.patchesFailed = new $util.LongBits(object.patchesFailed.low >>> 0, object.patchesFailed.high >>> 0).toNumber(true);\n if (object.readaheadsSucceeded != null)\n if ($util.Long)\n (message.readaheadsSucceeded = $util.Long.fromValue(object.readaheadsSucceeded)).unsigned = true;\n else if (typeof object.readaheadsSucceeded === \"string\")\n message.readaheadsSucceeded = parseInt(object.readaheadsSucceeded, 10);\n else if (typeof object.readaheadsSucceeded === \"number\")\n message.readaheadsSucceeded = object.readaheadsSucceeded;\n else if (typeof object.readaheadsSucceeded === \"object\")\n message.readaheadsSucceeded = new $util.LongBits(object.readaheadsSucceeded.low >>> 0, object.readaheadsSucceeded.high >>> 0).toNumber(true);\n if (object.readaheadsFailed != null)\n if ($util.Long)\n (message.readaheadsFailed = $util.Long.fromValue(object.readaheadsFailed)).unsigned = true;\n else if (typeof object.readaheadsFailed === \"string\")\n message.readaheadsFailed = parseInt(object.readaheadsFailed, 10);\n else if (typeof object.readaheadsFailed === \"number\")\n message.readaheadsFailed = object.readaheadsFailed;\n else if (typeof object.readaheadsFailed === \"object\")\n message.readaheadsFailed = new $util.LongBits(object.readaheadsFailed.low >>> 0, object.readaheadsFailed.high >>> 0).toNumber(true);\n if (object.abiViolations != null)\n if ($util.Long)\n (message.abiViolations = $util.Long.fromValue(object.abiViolations)).unsigned = true;\n else if (typeof object.abiViolations === \"string\")\n message.abiViolations = parseInt(object.abiViolations, 10);\n else if (typeof object.abiViolations === \"number\")\n message.abiViolations = object.abiViolations;\n else if (typeof object.abiViolations === \"object\")\n message.abiViolations = new $util.LongBits(object.abiViolations.low >>> 0, object.abiViolations.high >>> 0).toNumber(true);\n if (object.traceWriterPacketLoss != null)\n if ($util.Long)\n (message.traceWriterPacketLoss = $util.Long.fromValue(object.traceWriterPacketLoss)).unsigned = true;\n else if (typeof object.traceWriterPacketLoss === \"string\")\n message.traceWriterPacketLoss = parseInt(object.traceWriterPacketLoss, 10);\n else if (typeof object.traceWriterPacketLoss === \"number\")\n message.traceWriterPacketLoss = object.traceWriterPacketLoss;\n else if (typeof object.traceWriterPacketLoss === \"object\")\n message.traceWriterPacketLoss = new $util.LongBits(object.traceWriterPacketLoss.low >>> 0, object.traceWriterPacketLoss.high >>> 0).toNumber(true);\n return message;\n };\n\n /**\n * Creates a plain object from a BufferStats message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.TraceStats.BufferStats\n * @static\n * @param {perfetto.protos.TraceStats.BufferStats} message BufferStats\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n BufferStats.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n if ($util.Long) {\n var long = new $util.Long(0, 0, true);\n object.bytesWritten = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.bytesWritten = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, true);\n object.chunksWritten = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.chunksWritten = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, true);\n object.chunksOverwritten = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.chunksOverwritten = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, true);\n object.writeWrapCount = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.writeWrapCount = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, true);\n object.patchesSucceeded = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.patchesSucceeded = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, true);\n object.patchesFailed = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.patchesFailed = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, true);\n object.readaheadsSucceeded = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.readaheadsSucceeded = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, true);\n object.readaheadsFailed = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.readaheadsFailed = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, true);\n object.abiViolations = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.abiViolations = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, true);\n object.chunksRewritten = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.chunksRewritten = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, true);\n object.chunksCommittedOutOfOrder = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.chunksCommittedOutOfOrder = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, true);\n object.bufferSize = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.bufferSize = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, true);\n object.bytesOverwritten = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.bytesOverwritten = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, true);\n object.bytesRead = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.bytesRead = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, true);\n object.paddingBytesWritten = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.paddingBytesWritten = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, true);\n object.paddingBytesCleared = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.paddingBytesCleared = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, true);\n object.chunksRead = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.chunksRead = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, true);\n object.chunksDiscarded = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.chunksDiscarded = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, true);\n object.traceWriterPacketLoss = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.traceWriterPacketLoss = options.longs === String ? \"0\" : 0;\n }\n if (message.bytesWritten != null && message.hasOwnProperty(\"bytesWritten\"))\n if (typeof message.bytesWritten === \"number\")\n object.bytesWritten = options.longs === String ? String(message.bytesWritten) : message.bytesWritten;\n else\n object.bytesWritten = options.longs === String ? $util.Long.prototype.toString.call(message.bytesWritten) : options.longs === Number ? new $util.LongBits(message.bytesWritten.low >>> 0, message.bytesWritten.high >>> 0).toNumber(true) : message.bytesWritten;\n if (message.chunksWritten != null && message.hasOwnProperty(\"chunksWritten\"))\n if (typeof message.chunksWritten === \"number\")\n object.chunksWritten = options.longs === String ? String(message.chunksWritten) : message.chunksWritten;\n else\n object.chunksWritten = options.longs === String ? $util.Long.prototype.toString.call(message.chunksWritten) : options.longs === Number ? new $util.LongBits(message.chunksWritten.low >>> 0, message.chunksWritten.high >>> 0).toNumber(true) : message.chunksWritten;\n if (message.chunksOverwritten != null && message.hasOwnProperty(\"chunksOverwritten\"))\n if (typeof message.chunksOverwritten === \"number\")\n object.chunksOverwritten = options.longs === String ? String(message.chunksOverwritten) : message.chunksOverwritten;\n else\n object.chunksOverwritten = options.longs === String ? $util.Long.prototype.toString.call(message.chunksOverwritten) : options.longs === Number ? new $util.LongBits(message.chunksOverwritten.low >>> 0, message.chunksOverwritten.high >>> 0).toNumber(true) : message.chunksOverwritten;\n if (message.writeWrapCount != null && message.hasOwnProperty(\"writeWrapCount\"))\n if (typeof message.writeWrapCount === \"number\")\n object.writeWrapCount = options.longs === String ? String(message.writeWrapCount) : message.writeWrapCount;\n else\n object.writeWrapCount = options.longs === String ? $util.Long.prototype.toString.call(message.writeWrapCount) : options.longs === Number ? new $util.LongBits(message.writeWrapCount.low >>> 0, message.writeWrapCount.high >>> 0).toNumber(true) : message.writeWrapCount;\n if (message.patchesSucceeded != null && message.hasOwnProperty(\"patchesSucceeded\"))\n if (typeof message.patchesSucceeded === \"number\")\n object.patchesSucceeded = options.longs === String ? String(message.patchesSucceeded) : message.patchesSucceeded;\n else\n object.patchesSucceeded = options.longs === String ? $util.Long.prototype.toString.call(message.patchesSucceeded) : options.longs === Number ? new $util.LongBits(message.patchesSucceeded.low >>> 0, message.patchesSucceeded.high >>> 0).toNumber(true) : message.patchesSucceeded;\n if (message.patchesFailed != null && message.hasOwnProperty(\"patchesFailed\"))\n if (typeof message.patchesFailed === \"number\")\n object.patchesFailed = options.longs === String ? String(message.patchesFailed) : message.patchesFailed;\n else\n object.patchesFailed = options.longs === String ? $util.Long.prototype.toString.call(message.patchesFailed) : options.longs === Number ? new $util.LongBits(message.patchesFailed.low >>> 0, message.patchesFailed.high >>> 0).toNumber(true) : message.patchesFailed;\n if (message.readaheadsSucceeded != null && message.hasOwnProperty(\"readaheadsSucceeded\"))\n if (typeof message.readaheadsSucceeded === \"number\")\n object.readaheadsSucceeded = options.longs === String ? String(message.readaheadsSucceeded) : message.readaheadsSucceeded;\n else\n object.readaheadsSucceeded = options.longs === String ? $util.Long.prototype.toString.call(message.readaheadsSucceeded) : options.longs === Number ? new $util.LongBits(message.readaheadsSucceeded.low >>> 0, message.readaheadsSucceeded.high >>> 0).toNumber(true) : message.readaheadsSucceeded;\n if (message.readaheadsFailed != null && message.hasOwnProperty(\"readaheadsFailed\"))\n if (typeof message.readaheadsFailed === \"number\")\n object.readaheadsFailed = options.longs === String ? String(message.readaheadsFailed) : message.readaheadsFailed;\n else\n object.readaheadsFailed = options.longs === String ? $util.Long.prototype.toString.call(message.readaheadsFailed) : options.longs === Number ? new $util.LongBits(message.readaheadsFailed.low >>> 0, message.readaheadsFailed.high >>> 0).toNumber(true) : message.readaheadsFailed;\n if (message.abiViolations != null && message.hasOwnProperty(\"abiViolations\"))\n if (typeof message.abiViolations === \"number\")\n object.abiViolations = options.longs === String ? String(message.abiViolations) : message.abiViolations;\n else\n object.abiViolations = options.longs === String ? $util.Long.prototype.toString.call(message.abiViolations) : options.longs === Number ? new $util.LongBits(message.abiViolations.low >>> 0, message.abiViolations.high >>> 0).toNumber(true) : message.abiViolations;\n if (message.chunksRewritten != null && message.hasOwnProperty(\"chunksRewritten\"))\n if (typeof message.chunksRewritten === \"number\")\n object.chunksRewritten = options.longs === String ? String(message.chunksRewritten) : message.chunksRewritten;\n else\n object.chunksRewritten = options.longs === String ? $util.Long.prototype.toString.call(message.chunksRewritten) : options.longs === Number ? new $util.LongBits(message.chunksRewritten.low >>> 0, message.chunksRewritten.high >>> 0).toNumber(true) : message.chunksRewritten;\n if (message.chunksCommittedOutOfOrder != null && message.hasOwnProperty(\"chunksCommittedOutOfOrder\"))\n if (typeof message.chunksCommittedOutOfOrder === \"number\")\n object.chunksCommittedOutOfOrder = options.longs === String ? String(message.chunksCommittedOutOfOrder) : message.chunksCommittedOutOfOrder;\n else\n object.chunksCommittedOutOfOrder = options.longs === String ? $util.Long.prototype.toString.call(message.chunksCommittedOutOfOrder) : options.longs === Number ? new $util.LongBits(message.chunksCommittedOutOfOrder.low >>> 0, message.chunksCommittedOutOfOrder.high >>> 0).toNumber(true) : message.chunksCommittedOutOfOrder;\n if (message.bufferSize != null && message.hasOwnProperty(\"bufferSize\"))\n if (typeof message.bufferSize === \"number\")\n object.bufferSize = options.longs === String ? String(message.bufferSize) : message.bufferSize;\n else\n object.bufferSize = options.longs === String ? $util.Long.prototype.toString.call(message.bufferSize) : options.longs === Number ? new $util.LongBits(message.bufferSize.low >>> 0, message.bufferSize.high >>> 0).toNumber(true) : message.bufferSize;\n if (message.bytesOverwritten != null && message.hasOwnProperty(\"bytesOverwritten\"))\n if (typeof message.bytesOverwritten === \"number\")\n object.bytesOverwritten = options.longs === String ? String(message.bytesOverwritten) : message.bytesOverwritten;\n else\n object.bytesOverwritten = options.longs === String ? $util.Long.prototype.toString.call(message.bytesOverwritten) : options.longs === Number ? new $util.LongBits(message.bytesOverwritten.low >>> 0, message.bytesOverwritten.high >>> 0).toNumber(true) : message.bytesOverwritten;\n if (message.bytesRead != null && message.hasOwnProperty(\"bytesRead\"))\n if (typeof message.bytesRead === \"number\")\n object.bytesRead = options.longs === String ? String(message.bytesRead) : message.bytesRead;\n else\n object.bytesRead = options.longs === String ? $util.Long.prototype.toString.call(message.bytesRead) : options.longs === Number ? new $util.LongBits(message.bytesRead.low >>> 0, message.bytesRead.high >>> 0).toNumber(true) : message.bytesRead;\n if (message.paddingBytesWritten != null && message.hasOwnProperty(\"paddingBytesWritten\"))\n if (typeof message.paddingBytesWritten === \"number\")\n object.paddingBytesWritten = options.longs === String ? String(message.paddingBytesWritten) : message.paddingBytesWritten;\n else\n object.paddingBytesWritten = options.longs === String ? $util.Long.prototype.toString.call(message.paddingBytesWritten) : options.longs === Number ? new $util.LongBits(message.paddingBytesWritten.low >>> 0, message.paddingBytesWritten.high >>> 0).toNumber(true) : message.paddingBytesWritten;\n if (message.paddingBytesCleared != null && message.hasOwnProperty(\"paddingBytesCleared\"))\n if (typeof message.paddingBytesCleared === \"number\")\n object.paddingBytesCleared = options.longs === String ? String(message.paddingBytesCleared) : message.paddingBytesCleared;\n else\n object.paddingBytesCleared = options.longs === String ? $util.Long.prototype.toString.call(message.paddingBytesCleared) : options.longs === Number ? new $util.LongBits(message.paddingBytesCleared.low >>> 0, message.paddingBytesCleared.high >>> 0).toNumber(true) : message.paddingBytesCleared;\n if (message.chunksRead != null && message.hasOwnProperty(\"chunksRead\"))\n if (typeof message.chunksRead === \"number\")\n object.chunksRead = options.longs === String ? String(message.chunksRead) : message.chunksRead;\n else\n object.chunksRead = options.longs === String ? $util.Long.prototype.toString.call(message.chunksRead) : options.longs === Number ? new $util.LongBits(message.chunksRead.low >>> 0, message.chunksRead.high >>> 0).toNumber(true) : message.chunksRead;\n if (message.chunksDiscarded != null && message.hasOwnProperty(\"chunksDiscarded\"))\n if (typeof message.chunksDiscarded === \"number\")\n object.chunksDiscarded = options.longs === String ? String(message.chunksDiscarded) : message.chunksDiscarded;\n else\n object.chunksDiscarded = options.longs === String ? $util.Long.prototype.toString.call(message.chunksDiscarded) : options.longs === Number ? new $util.LongBits(message.chunksDiscarded.low >>> 0, message.chunksDiscarded.high >>> 0).toNumber(true) : message.chunksDiscarded;\n if (message.traceWriterPacketLoss != null && message.hasOwnProperty(\"traceWriterPacketLoss\"))\n if (typeof message.traceWriterPacketLoss === \"number\")\n object.traceWriterPacketLoss = options.longs === String ? String(message.traceWriterPacketLoss) : message.traceWriterPacketLoss;\n else\n object.traceWriterPacketLoss = options.longs === String ? $util.Long.prototype.toString.call(message.traceWriterPacketLoss) : options.longs === Number ? new $util.LongBits(message.traceWriterPacketLoss.low >>> 0, message.traceWriterPacketLoss.high >>> 0).toNumber(true) : message.traceWriterPacketLoss;\n return object;\n };\n\n /**\n * Converts this BufferStats to JSON.\n * @function toJSON\n * @memberof perfetto.protos.TraceStats.BufferStats\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n BufferStats.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return BufferStats;\n })();\n\n TraceStats.FilterStats = (function() {\n\n /**\n * Properties of a FilterStats.\n * @memberof perfetto.protos.TraceStats\n * @interface IFilterStats\n * @property {number|null} [inputPackets] FilterStats inputPackets\n * @property {number|null} [inputBytes] FilterStats inputBytes\n * @property {number|null} [outputBytes] FilterStats outputBytes\n * @property {number|null} [errors] FilterStats errors\n */\n\n /**\n * Constructs a new FilterStats.\n * @memberof perfetto.protos.TraceStats\n * @classdesc Represents a FilterStats.\n * @implements IFilterStats\n * @constructor\n * @param {perfetto.protos.TraceStats.IFilterStats=} [properties] Properties to set\n */\n function FilterStats(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * FilterStats inputPackets.\n * @member {number} inputPackets\n * @memberof perfetto.protos.TraceStats.FilterStats\n * @instance\n */\n FilterStats.prototype.inputPackets = $util.Long ? $util.Long.fromBits(0,0,true) : 0;\n\n /**\n * FilterStats inputBytes.\n * @member {number} inputBytes\n * @memberof perfetto.protos.TraceStats.FilterStats\n * @instance\n */\n FilterStats.prototype.inputBytes = $util.Long ? $util.Long.fromBits(0,0,true) : 0;\n\n /**\n * FilterStats outputBytes.\n * @member {number} outputBytes\n * @memberof perfetto.protos.TraceStats.FilterStats\n * @instance\n */\n FilterStats.prototype.outputBytes = $util.Long ? $util.Long.fromBits(0,0,true) : 0;\n\n /**\n * FilterStats errors.\n * @member {number} errors\n * @memberof perfetto.protos.TraceStats.FilterStats\n * @instance\n */\n FilterStats.prototype.errors = $util.Long ? $util.Long.fromBits(0,0,true) : 0;\n\n /**\n * Creates a new FilterStats instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.TraceStats.FilterStats\n * @static\n * @param {perfetto.protos.TraceStats.IFilterStats=} [properties] Properties to set\n * @returns {perfetto.protos.TraceStats.FilterStats} FilterStats instance\n */\n FilterStats.create = function create(properties) {\n return new FilterStats(properties);\n };\n\n /**\n * Encodes the specified FilterStats message. Does not implicitly {@link perfetto.protos.TraceStats.FilterStats.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.TraceStats.FilterStats\n * @static\n * @param {perfetto.protos.TraceStats.IFilterStats} message FilterStats message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n FilterStats.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.inputPackets != null && Object.hasOwnProperty.call(message, \"inputPackets\"))\n writer.uint32(/* id 1, wireType 0 =*/8).uint64(message.inputPackets);\n if (message.inputBytes != null && Object.hasOwnProperty.call(message, \"inputBytes\"))\n writer.uint32(/* id 2, wireType 0 =*/16).uint64(message.inputBytes);\n if (message.outputBytes != null && Object.hasOwnProperty.call(message, \"outputBytes\"))\n writer.uint32(/* id 3, wireType 0 =*/24).uint64(message.outputBytes);\n if (message.errors != null && Object.hasOwnProperty.call(message, \"errors\"))\n writer.uint32(/* id 4, wireType 0 =*/32).uint64(message.errors);\n return writer;\n };\n\n /**\n * Encodes the specified FilterStats message, length delimited. Does not implicitly {@link perfetto.protos.TraceStats.FilterStats.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.TraceStats.FilterStats\n * @static\n * @param {perfetto.protos.TraceStats.IFilterStats} message FilterStats message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n FilterStats.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a FilterStats message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.TraceStats.FilterStats\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.TraceStats.FilterStats} FilterStats\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n FilterStats.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.TraceStats.FilterStats();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.inputPackets = reader.uint64();\n break;\n case 2:\n message.inputBytes = reader.uint64();\n break;\n case 3:\n message.outputBytes = reader.uint64();\n break;\n case 4:\n message.errors = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a FilterStats message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.TraceStats.FilterStats\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.TraceStats.FilterStats} FilterStats\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n FilterStats.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a FilterStats message.\n * @function verify\n * @memberof perfetto.protos.TraceStats.FilterStats\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n FilterStats.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.inputPackets != null && message.hasOwnProperty(\"inputPackets\"))\n if (!$util.isInteger(message.inputPackets) && !(message.inputPackets && $util.isInteger(message.inputPackets.low) && $util.isInteger(message.inputPackets.high)))\n return \"inputPackets: integer|Long expected\";\n if (message.inputBytes != null && message.hasOwnProperty(\"inputBytes\"))\n if (!$util.isInteger(message.inputBytes) && !(message.inputBytes && $util.isInteger(message.inputBytes.low) && $util.isInteger(message.inputBytes.high)))\n return \"inputBytes: integer|Long expected\";\n if (message.outputBytes != null && message.hasOwnProperty(\"outputBytes\"))\n if (!$util.isInteger(message.outputBytes) && !(message.outputBytes && $util.isInteger(message.outputBytes.low) && $util.isInteger(message.outputBytes.high)))\n return \"outputBytes: integer|Long expected\";\n if (message.errors != null && message.hasOwnProperty(\"errors\"))\n if (!$util.isInteger(message.errors) && !(message.errors && $util.isInteger(message.errors.low) && $util.isInteger(message.errors.high)))\n return \"errors: integer|Long expected\";\n return null;\n };\n\n /**\n * Creates a FilterStats message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.TraceStats.FilterStats\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.TraceStats.FilterStats} FilterStats\n */\n FilterStats.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.TraceStats.FilterStats)\n return object;\n var message = new $root.perfetto.protos.TraceStats.FilterStats();\n if (object.inputPackets != null)\n if ($util.Long)\n (message.inputPackets = $util.Long.fromValue(object.inputPackets)).unsigned = true;\n else if (typeof object.inputPackets === \"string\")\n message.inputPackets = parseInt(object.inputPackets, 10);\n else if (typeof object.inputPackets === \"number\")\n message.inputPackets = object.inputPackets;\n else if (typeof object.inputPackets === \"object\")\n message.inputPackets = new $util.LongBits(object.inputPackets.low >>> 0, object.inputPackets.high >>> 0).toNumber(true);\n if (object.inputBytes != null)\n if ($util.Long)\n (message.inputBytes = $util.Long.fromValue(object.inputBytes)).unsigned = true;\n else if (typeof object.inputBytes === \"string\")\n message.inputBytes = parseInt(object.inputBytes, 10);\n else if (typeof object.inputBytes === \"number\")\n message.inputBytes = object.inputBytes;\n else if (typeof object.inputBytes === \"object\")\n message.inputBytes = new $util.LongBits(object.inputBytes.low >>> 0, object.inputBytes.high >>> 0).toNumber(true);\n if (object.outputBytes != null)\n if ($util.Long)\n (message.outputBytes = $util.Long.fromValue(object.outputBytes)).unsigned = true;\n else if (typeof object.outputBytes === \"string\")\n message.outputBytes = parseInt(object.outputBytes, 10);\n else if (typeof object.outputBytes === \"number\")\n message.outputBytes = object.outputBytes;\n else if (typeof object.outputBytes === \"object\")\n message.outputBytes = new $util.LongBits(object.outputBytes.low >>> 0, object.outputBytes.high >>> 0).toNumber(true);\n if (object.errors != null)\n if ($util.Long)\n (message.errors = $util.Long.fromValue(object.errors)).unsigned = true;\n else if (typeof object.errors === \"string\")\n message.errors = parseInt(object.errors, 10);\n else if (typeof object.errors === \"number\")\n message.errors = object.errors;\n else if (typeof object.errors === \"object\")\n message.errors = new $util.LongBits(object.errors.low >>> 0, object.errors.high >>> 0).toNumber(true);\n return message;\n };\n\n /**\n * Creates a plain object from a FilterStats message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.TraceStats.FilterStats\n * @static\n * @param {perfetto.protos.TraceStats.FilterStats} message FilterStats\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n FilterStats.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n if ($util.Long) {\n var long = new $util.Long(0, 0, true);\n object.inputPackets = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.inputPackets = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, true);\n object.inputBytes = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.inputBytes = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, true);\n object.outputBytes = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.outputBytes = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, true);\n object.errors = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.errors = options.longs === String ? \"0\" : 0;\n }\n if (message.inputPackets != null && message.hasOwnProperty(\"inputPackets\"))\n if (typeof message.inputPackets === \"number\")\n object.inputPackets = options.longs === String ? String(message.inputPackets) : message.inputPackets;\n else\n object.inputPackets = options.longs === String ? $util.Long.prototype.toString.call(message.inputPackets) : options.longs === Number ? new $util.LongBits(message.inputPackets.low >>> 0, message.inputPackets.high >>> 0).toNumber(true) : message.inputPackets;\n if (message.inputBytes != null && message.hasOwnProperty(\"inputBytes\"))\n if (typeof message.inputBytes === \"number\")\n object.inputBytes = options.longs === String ? String(message.inputBytes) : message.inputBytes;\n else\n object.inputBytes = options.longs === String ? $util.Long.prototype.toString.call(message.inputBytes) : options.longs === Number ? new $util.LongBits(message.inputBytes.low >>> 0, message.inputBytes.high >>> 0).toNumber(true) : message.inputBytes;\n if (message.outputBytes != null && message.hasOwnProperty(\"outputBytes\"))\n if (typeof message.outputBytes === \"number\")\n object.outputBytes = options.longs === String ? String(message.outputBytes) : message.outputBytes;\n else\n object.outputBytes = options.longs === String ? $util.Long.prototype.toString.call(message.outputBytes) : options.longs === Number ? new $util.LongBits(message.outputBytes.low >>> 0, message.outputBytes.high >>> 0).toNumber(true) : message.outputBytes;\n if (message.errors != null && message.hasOwnProperty(\"errors\"))\n if (typeof message.errors === \"number\")\n object.errors = options.longs === String ? String(message.errors) : message.errors;\n else\n object.errors = options.longs === String ? $util.Long.prototype.toString.call(message.errors) : options.longs === Number ? new $util.LongBits(message.errors.low >>> 0, message.errors.high >>> 0).toNumber(true) : message.errors;\n return object;\n };\n\n /**\n * Converts this FilterStats to JSON.\n * @function toJSON\n * @memberof perfetto.protos.TraceStats.FilterStats\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n FilterStats.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return FilterStats;\n })();\n\n return TraceStats;\n })();\n\n protos.TracingServiceCapabilities = (function() {\n\n /**\n * Properties of a TracingServiceCapabilities.\n * @memberof perfetto.protos\n * @interface ITracingServiceCapabilities\n * @property {boolean|null} [hasQueryCapabilities] TracingServiceCapabilities hasQueryCapabilities\n * @property {Array.<perfetto.protos.ObservableEvents.Type>|null} [observableEvents] TracingServiceCapabilities observableEvents\n * @property {boolean|null} [hasTraceConfigOutputPath] TracingServiceCapabilities hasTraceConfigOutputPath\n */\n\n /**\n * Constructs a new TracingServiceCapabilities.\n * @memberof perfetto.protos\n * @classdesc Represents a TracingServiceCapabilities.\n * @implements ITracingServiceCapabilities\n * @constructor\n * @param {perfetto.protos.ITracingServiceCapabilities=} [properties] Properties to set\n */\n function TracingServiceCapabilities(properties) {\n this.observableEvents = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * TracingServiceCapabilities hasQueryCapabilities.\n * @member {boolean} hasQueryCapabilities\n * @memberof perfetto.protos.TracingServiceCapabilities\n * @instance\n */\n TracingServiceCapabilities.prototype.hasQueryCapabilities = false;\n\n /**\n * TracingServiceCapabilities observableEvents.\n * @member {Array.<perfetto.protos.ObservableEvents.Type>} observableEvents\n * @memberof perfetto.protos.TracingServiceCapabilities\n * @instance\n */\n TracingServiceCapabilities.prototype.observableEvents = $util.emptyArray;\n\n /**\n * TracingServiceCapabilities hasTraceConfigOutputPath.\n * @member {boolean} hasTraceConfigOutputPath\n * @memberof perfetto.protos.TracingServiceCapabilities\n * @instance\n */\n TracingServiceCapabilities.prototype.hasTraceConfigOutputPath = false;\n\n /**\n * Creates a new TracingServiceCapabilities instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.TracingServiceCapabilities\n * @static\n * @param {perfetto.protos.ITracingServiceCapabilities=} [properties] Properties to set\n * @returns {perfetto.protos.TracingServiceCapabilities} TracingServiceCapabilities instance\n */\n TracingServiceCapabilities.create = function create(properties) {\n return new TracingServiceCapabilities(properties);\n };\n\n /**\n * Encodes the specified TracingServiceCapabilities message. Does not implicitly {@link perfetto.protos.TracingServiceCapabilities.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.TracingServiceCapabilities\n * @static\n * @param {perfetto.protos.ITracingServiceCapabilities} message TracingServiceCapabilities message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n TracingServiceCapabilities.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.hasQueryCapabilities != null && Object.hasOwnProperty.call(message, \"hasQueryCapabilities\"))\n writer.uint32(/* id 1, wireType 0 =*/8).bool(message.hasQueryCapabilities);\n if (message.observableEvents != null && message.observableEvents.length)\n for (var i = 0; i < message.observableEvents.length; ++i)\n writer.uint32(/* id 2, wireType 0 =*/16).int32(message.observableEvents[i]);\n if (message.hasTraceConfigOutputPath != null && Object.hasOwnProperty.call(message, \"hasTraceConfigOutputPath\"))\n writer.uint32(/* id 3, wireType 0 =*/24).bool(message.hasTraceConfigOutputPath);\n return writer;\n };\n\n /**\n * Encodes the specified TracingServiceCapabilities message, length delimited. Does not implicitly {@link perfetto.protos.TracingServiceCapabilities.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.TracingServiceCapabilities\n * @static\n * @param {perfetto.protos.ITracingServiceCapabilities} message TracingServiceCapabilities message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n TracingServiceCapabilities.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a TracingServiceCapabilities message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.TracingServiceCapabilities\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.TracingServiceCapabilities} TracingServiceCapabilities\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n TracingServiceCapabilities.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.TracingServiceCapabilities();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.hasQueryCapabilities = reader.bool();\n break;\n case 2:\n if (!(message.observableEvents && message.observableEvents.length))\n message.observableEvents = [];\n if ((tag & 7) === 2) {\n var end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2)\n message.observableEvents.push(reader.int32());\n } else\n message.observableEvents.push(reader.int32());\n break;\n case 3:\n message.hasTraceConfigOutputPath = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a TracingServiceCapabilities message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.TracingServiceCapabilities\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.TracingServiceCapabilities} TracingServiceCapabilities\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n TracingServiceCapabilities.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a TracingServiceCapabilities message.\n * @function verify\n * @memberof perfetto.protos.TracingServiceCapabilities\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n TracingServiceCapabilities.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.hasQueryCapabilities != null && message.hasOwnProperty(\"hasQueryCapabilities\"))\n if (typeof message.hasQueryCapabilities !== \"boolean\")\n return \"hasQueryCapabilities: boolean expected\";\n if (message.observableEvents != null && message.hasOwnProperty(\"observableEvents\")) {\n if (!Array.isArray(message.observableEvents))\n return \"observableEvents: array expected\";\n for (var i = 0; i < message.observableEvents.length; ++i)\n switch (message.observableEvents[i]) {\n default:\n return \"observableEvents: enum value[] expected\";\n case 0:\n case 1:\n case 2:\n break;\n }\n }\n if (message.hasTraceConfigOutputPath != null && message.hasOwnProperty(\"hasTraceConfigOutputPath\"))\n if (typeof message.hasTraceConfigOutputPath !== \"boolean\")\n return \"hasTraceConfigOutputPath: boolean expected\";\n return null;\n };\n\n /**\n * Creates a TracingServiceCapabilities message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.TracingServiceCapabilities\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.TracingServiceCapabilities} TracingServiceCapabilities\n */\n TracingServiceCapabilities.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.TracingServiceCapabilities)\n return object;\n var message = new $root.perfetto.protos.TracingServiceCapabilities();\n if (object.hasQueryCapabilities != null)\n message.hasQueryCapabilities = Boolean(object.hasQueryCapabilities);\n if (object.observableEvents) {\n if (!Array.isArray(object.observableEvents))\n throw TypeError(\".perfetto.protos.TracingServiceCapabilities.observableEvents: array expected\");\n message.observableEvents = [];\n for (var i = 0; i < object.observableEvents.length; ++i)\n switch (object.observableEvents[i]) {\n default:\n case \"TYPE_UNSPECIFIED\":\n case 0:\n message.observableEvents[i] = 0;\n break;\n case \"TYPE_DATA_SOURCES_INSTANCES\":\n case 1:\n message.observableEvents[i] = 1;\n break;\n case \"TYPE_ALL_DATA_SOURCES_STARTED\":\n case 2:\n message.observableEvents[i] = 2;\n break;\n }\n }\n if (object.hasTraceConfigOutputPath != null)\n message.hasTraceConfigOutputPath = Boolean(object.hasTraceConfigOutputPath);\n return message;\n };\n\n /**\n * Creates a plain object from a TracingServiceCapabilities message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.TracingServiceCapabilities\n * @static\n * @param {perfetto.protos.TracingServiceCapabilities} message TracingServiceCapabilities\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n TracingServiceCapabilities.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.observableEvents = [];\n if (options.defaults) {\n object.hasQueryCapabilities = false;\n object.hasTraceConfigOutputPath = false;\n }\n if (message.hasQueryCapabilities != null && message.hasOwnProperty(\"hasQueryCapabilities\"))\n object.hasQueryCapabilities = message.hasQueryCapabilities;\n if (message.observableEvents && message.observableEvents.length) {\n object.observableEvents = [];\n for (var j = 0; j < message.observableEvents.length; ++j)\n object.observableEvents[j] = options.enums === String ? $root.perfetto.protos.ObservableEvents.Type[message.observableEvents[j]] : message.observableEvents[j];\n }\n if (message.hasTraceConfigOutputPath != null && message.hasOwnProperty(\"hasTraceConfigOutputPath\"))\n object.hasTraceConfigOutputPath = message.hasTraceConfigOutputPath;\n return object;\n };\n\n /**\n * Converts this TracingServiceCapabilities to JSON.\n * @function toJSON\n * @memberof perfetto.protos.TracingServiceCapabilities\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n TracingServiceCapabilities.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return TracingServiceCapabilities;\n })();\n\n protos.ObservableEvents = (function() {\n\n /**\n * Properties of an ObservableEvents.\n * @memberof perfetto.protos\n * @interface IObservableEvents\n * @property {Array.<perfetto.protos.ObservableEvents.IDataSourceInstanceStateChange>|null} [instanceStateChanges] ObservableEvents instanceStateChanges\n * @property {boolean|null} [allDataSourcesStarted] ObservableEvents allDataSourcesStarted\n */\n\n /**\n * Constructs a new ObservableEvents.\n * @memberof perfetto.protos\n * @classdesc Represents an ObservableEvents.\n * @implements IObservableEvents\n * @constructor\n * @param {perfetto.protos.IObservableEvents=} [properties] Properties to set\n */\n function ObservableEvents(properties) {\n this.instanceStateChanges = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * ObservableEvents instanceStateChanges.\n * @member {Array.<perfetto.protos.ObservableEvents.IDataSourceInstanceStateChange>} instanceStateChanges\n * @memberof perfetto.protos.ObservableEvents\n * @instance\n */\n ObservableEvents.prototype.instanceStateChanges = $util.emptyArray;\n\n /**\n * ObservableEvents allDataSourcesStarted.\n * @member {boolean} allDataSourcesStarted\n * @memberof perfetto.protos.ObservableEvents\n * @instance\n */\n ObservableEvents.prototype.allDataSourcesStarted = false;\n\n /**\n * Creates a new ObservableEvents instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.ObservableEvents\n * @static\n * @param {perfetto.protos.IObservableEvents=} [properties] Properties to set\n * @returns {perfetto.protos.ObservableEvents} ObservableEvents instance\n */\n ObservableEvents.create = function create(properties) {\n return new ObservableEvents(properties);\n };\n\n /**\n * Encodes the specified ObservableEvents message. Does not implicitly {@link perfetto.protos.ObservableEvents.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.ObservableEvents\n * @static\n * @param {perfetto.protos.IObservableEvents} message ObservableEvents message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ObservableEvents.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.instanceStateChanges != null && message.instanceStateChanges.length)\n for (var i = 0; i < message.instanceStateChanges.length; ++i)\n $root.perfetto.protos.ObservableEvents.DataSourceInstanceStateChange.encode(message.instanceStateChanges[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n if (message.allDataSourcesStarted != null && Object.hasOwnProperty.call(message, \"allDataSourcesStarted\"))\n writer.uint32(/* id 2, wireType 0 =*/16).bool(message.allDataSourcesStarted);\n return writer;\n };\n\n /**\n * Encodes the specified ObservableEvents message, length delimited. Does not implicitly {@link perfetto.protos.ObservableEvents.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.ObservableEvents\n * @static\n * @param {perfetto.protos.IObservableEvents} message ObservableEvents message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ObservableEvents.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes an ObservableEvents message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.ObservableEvents\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.ObservableEvents} ObservableEvents\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ObservableEvents.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.ObservableEvents();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (!(message.instanceStateChanges && message.instanceStateChanges.length))\n message.instanceStateChanges = [];\n message.instanceStateChanges.push($root.perfetto.protos.ObservableEvents.DataSourceInstanceStateChange.decode(reader, reader.uint32()));\n break;\n case 2:\n message.allDataSourcesStarted = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes an ObservableEvents message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.ObservableEvents\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.ObservableEvents} ObservableEvents\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ObservableEvents.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies an ObservableEvents message.\n * @function verify\n * @memberof perfetto.protos.ObservableEvents\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n ObservableEvents.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.instanceStateChanges != null && message.hasOwnProperty(\"instanceStateChanges\")) {\n if (!Array.isArray(message.instanceStateChanges))\n return \"instanceStateChanges: array expected\";\n for (var i = 0; i < message.instanceStateChanges.length; ++i) {\n var error = $root.perfetto.protos.ObservableEvents.DataSourceInstanceStateChange.verify(message.instanceStateChanges[i]);\n if (error)\n return \"instanceStateChanges.\" + error;\n }\n }\n if (message.allDataSourcesStarted != null && message.hasOwnProperty(\"allDataSourcesStarted\"))\n if (typeof message.allDataSourcesStarted !== \"boolean\")\n return \"allDataSourcesStarted: boolean expected\";\n return null;\n };\n\n /**\n * Creates an ObservableEvents message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.ObservableEvents\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.ObservableEvents} ObservableEvents\n */\n ObservableEvents.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.ObservableEvents)\n return object;\n var message = new $root.perfetto.protos.ObservableEvents();\n if (object.instanceStateChanges) {\n if (!Array.isArray(object.instanceStateChanges))\n throw TypeError(\".perfetto.protos.ObservableEvents.instanceStateChanges: array expected\");\n message.instanceStateChanges = [];\n for (var i = 0; i < object.instanceStateChanges.length; ++i) {\n if (typeof object.instanceStateChanges[i] !== \"object\")\n throw TypeError(\".perfetto.protos.ObservableEvents.instanceStateChanges: object expected\");\n message.instanceStateChanges[i] = $root.perfetto.protos.ObservableEvents.DataSourceInstanceStateChange.fromObject(object.instanceStateChanges[i]);\n }\n }\n if (object.allDataSourcesStarted != null)\n message.allDataSourcesStarted = Boolean(object.allDataSourcesStarted);\n return message;\n };\n\n /**\n * Creates a plain object from an ObservableEvents message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.ObservableEvents\n * @static\n * @param {perfetto.protos.ObservableEvents} message ObservableEvents\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n ObservableEvents.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.instanceStateChanges = [];\n if (options.defaults)\n object.allDataSourcesStarted = false;\n if (message.instanceStateChanges && message.instanceStateChanges.length) {\n object.instanceStateChanges = [];\n for (var j = 0; j < message.instanceStateChanges.length; ++j)\n object.instanceStateChanges[j] = $root.perfetto.protos.ObservableEvents.DataSourceInstanceStateChange.toObject(message.instanceStateChanges[j], options);\n }\n if (message.allDataSourcesStarted != null && message.hasOwnProperty(\"allDataSourcesStarted\"))\n object.allDataSourcesStarted = message.allDataSourcesStarted;\n return object;\n };\n\n /**\n * Converts this ObservableEvents to JSON.\n * @function toJSON\n * @memberof perfetto.protos.ObservableEvents\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n ObservableEvents.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n /**\n * Type enum.\n * @name perfetto.protos.ObservableEvents.Type\n * @enum {number}\n * @property {number} TYPE_UNSPECIFIED=0 TYPE_UNSPECIFIED value\n * @property {number} TYPE_DATA_SOURCES_INSTANCES=1 TYPE_DATA_SOURCES_INSTANCES value\n * @property {number} TYPE_ALL_DATA_SOURCES_STARTED=2 TYPE_ALL_DATA_SOURCES_STARTED value\n */\n ObservableEvents.Type = (function() {\n var valuesById = {}, values = Object.create(valuesById);\n values[valuesById[0] = \"TYPE_UNSPECIFIED\"] = 0;\n values[valuesById[1] = \"TYPE_DATA_SOURCES_INSTANCES\"] = 1;\n values[valuesById[2] = \"TYPE_ALL_DATA_SOURCES_STARTED\"] = 2;\n return values;\n })();\n\n /**\n * DataSourceInstanceState enum.\n * @name perfetto.protos.ObservableEvents.DataSourceInstanceState\n * @enum {number}\n * @property {number} DATA_SOURCE_INSTANCE_STATE_STOPPED=1 DATA_SOURCE_INSTANCE_STATE_STOPPED value\n * @property {number} DATA_SOURCE_INSTANCE_STATE_STARTED=2 DATA_SOURCE_INSTANCE_STATE_STARTED value\n */\n ObservableEvents.DataSourceInstanceState = (function() {\n var valuesById = {}, values = Object.create(valuesById);\n values[valuesById[1] = \"DATA_SOURCE_INSTANCE_STATE_STOPPED\"] = 1;\n values[valuesById[2] = \"DATA_SOURCE_INSTANCE_STATE_STARTED\"] = 2;\n return values;\n })();\n\n ObservableEvents.DataSourceInstanceStateChange = (function() {\n\n /**\n * Properties of a DataSourceInstanceStateChange.\n * @memberof perfetto.protos.ObservableEvents\n * @interface IDataSourceInstanceStateChange\n * @property {string|null} [producerName] DataSourceInstanceStateChange producerName\n * @property {string|null} [dataSourceName] DataSourceInstanceStateChange dataSourceName\n * @property {perfetto.protos.ObservableEvents.DataSourceInstanceState|null} [state] DataSourceInstanceStateChange state\n */\n\n /**\n * Constructs a new DataSourceInstanceStateChange.\n * @memberof perfetto.protos.ObservableEvents\n * @classdesc Represents a DataSourceInstanceStateChange.\n * @implements IDataSourceInstanceStateChange\n * @constructor\n * @param {perfetto.protos.ObservableEvents.IDataSourceInstanceStateChange=} [properties] Properties to set\n */\n function DataSourceInstanceStateChange(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * DataSourceInstanceStateChange producerName.\n * @member {string} producerName\n * @memberof perfetto.protos.ObservableEvents.DataSourceInstanceStateChange\n * @instance\n */\n DataSourceInstanceStateChange.prototype.producerName = \"\";\n\n /**\n * DataSourceInstanceStateChange dataSourceName.\n * @member {string} dataSourceName\n * @memberof perfetto.protos.ObservableEvents.DataSourceInstanceStateChange\n * @instance\n */\n DataSourceInstanceStateChange.prototype.dataSourceName = \"\";\n\n /**\n * DataSourceInstanceStateChange state.\n * @member {perfetto.protos.ObservableEvents.DataSourceInstanceState} state\n * @memberof perfetto.protos.ObservableEvents.DataSourceInstanceStateChange\n * @instance\n */\n DataSourceInstanceStateChange.prototype.state = 1;\n\n /**\n * Creates a new DataSourceInstanceStateChange instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.ObservableEvents.DataSourceInstanceStateChange\n * @static\n * @param {perfetto.protos.ObservableEvents.IDataSourceInstanceStateChange=} [properties] Properties to set\n * @returns {perfetto.protos.ObservableEvents.DataSourceInstanceStateChange} DataSourceInstanceStateChange instance\n */\n DataSourceInstanceStateChange.create = function create(properties) {\n return new DataSourceInstanceStateChange(properties);\n };\n\n /**\n * Encodes the specified DataSourceInstanceStateChange message. Does not implicitly {@link perfetto.protos.ObservableEvents.DataSourceInstanceStateChange.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.ObservableEvents.DataSourceInstanceStateChange\n * @static\n * @param {perfetto.protos.ObservableEvents.IDataSourceInstanceStateChange} message DataSourceInstanceStateChange message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n DataSourceInstanceStateChange.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.producerName != null && Object.hasOwnProperty.call(message, \"producerName\"))\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.producerName);\n if (message.dataSourceName != null && Object.hasOwnProperty.call(message, \"dataSourceName\"))\n writer.uint32(/* id 2, wireType 2 =*/18).string(message.dataSourceName);\n if (message.state != null && Object.hasOwnProperty.call(message, \"state\"))\n writer.uint32(/* id 3, wireType 0 =*/24).int32(message.state);\n return writer;\n };\n\n /**\n * Encodes the specified DataSourceInstanceStateChange message, length delimited. Does not implicitly {@link perfetto.protos.ObservableEvents.DataSourceInstanceStateChange.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.ObservableEvents.DataSourceInstanceStateChange\n * @static\n * @param {perfetto.protos.ObservableEvents.IDataSourceInstanceStateChange} message DataSourceInstanceStateChange message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n DataSourceInstanceStateChange.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a DataSourceInstanceStateChange message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.ObservableEvents.DataSourceInstanceStateChange\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.ObservableEvents.DataSourceInstanceStateChange} DataSourceInstanceStateChange\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n DataSourceInstanceStateChange.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.ObservableEvents.DataSourceInstanceStateChange();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.producerName = reader.string();\n break;\n case 2:\n message.dataSourceName = reader.string();\n break;\n case 3:\n message.state = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a DataSourceInstanceStateChange message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.ObservableEvents.DataSourceInstanceStateChange\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.ObservableEvents.DataSourceInstanceStateChange} DataSourceInstanceStateChange\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n DataSourceInstanceStateChange.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a DataSourceInstanceStateChange message.\n * @function verify\n * @memberof perfetto.protos.ObservableEvents.DataSourceInstanceStateChange\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n DataSourceInstanceStateChange.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.producerName != null && message.hasOwnProperty(\"producerName\"))\n if (!$util.isString(message.producerName))\n return \"producerName: string expected\";\n if (message.dataSourceName != null && message.hasOwnProperty(\"dataSourceName\"))\n if (!$util.isString(message.dataSourceName))\n return \"dataSourceName: string expected\";\n if (message.state != null && message.hasOwnProperty(\"state\"))\n switch (message.state) {\n default:\n return \"state: enum value expected\";\n case 1:\n case 2:\n break;\n }\n return null;\n };\n\n /**\n * Creates a DataSourceInstanceStateChange message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.ObservableEvents.DataSourceInstanceStateChange\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.ObservableEvents.DataSourceInstanceStateChange} DataSourceInstanceStateChange\n */\n DataSourceInstanceStateChange.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.ObservableEvents.DataSourceInstanceStateChange)\n return object;\n var message = new $root.perfetto.protos.ObservableEvents.DataSourceInstanceStateChange();\n if (object.producerName != null)\n message.producerName = String(object.producerName);\n if (object.dataSourceName != null)\n message.dataSourceName = String(object.dataSourceName);\n switch (object.state) {\n case \"DATA_SOURCE_INSTANCE_STATE_STOPPED\":\n case 1:\n message.state = 1;\n break;\n case \"DATA_SOURCE_INSTANCE_STATE_STARTED\":\n case 2:\n message.state = 2;\n break;\n }\n return message;\n };\n\n /**\n * Creates a plain object from a DataSourceInstanceStateChange message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.ObservableEvents.DataSourceInstanceStateChange\n * @static\n * @param {perfetto.protos.ObservableEvents.DataSourceInstanceStateChange} message DataSourceInstanceStateChange\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n DataSourceInstanceStateChange.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.producerName = \"\";\n object.dataSourceName = \"\";\n object.state = options.enums === String ? \"DATA_SOURCE_INSTANCE_STATE_STOPPED\" : 1;\n }\n if (message.producerName != null && message.hasOwnProperty(\"producerName\"))\n object.producerName = message.producerName;\n if (message.dataSourceName != null && message.hasOwnProperty(\"dataSourceName\"))\n object.dataSourceName = message.dataSourceName;\n if (message.state != null && message.hasOwnProperty(\"state\"))\n object.state = options.enums === String ? $root.perfetto.protos.ObservableEvents.DataSourceInstanceState[message.state] : message.state;\n return object;\n };\n\n /**\n * Converts this DataSourceInstanceStateChange to JSON.\n * @function toJSON\n * @memberof perfetto.protos.ObservableEvents.DataSourceInstanceStateChange\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n DataSourceInstanceStateChange.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return DataSourceInstanceStateChange;\n })();\n\n return ObservableEvents;\n })();\n\n protos.GpuCounterDescriptor = (function() {\n\n /**\n * Properties of a GpuCounterDescriptor.\n * @memberof perfetto.protos\n * @interface IGpuCounterDescriptor\n * @property {Array.<perfetto.protos.GpuCounterDescriptor.IGpuCounterSpec>|null} [specs] GpuCounterDescriptor specs\n * @property {Array.<perfetto.protos.GpuCounterDescriptor.IGpuCounterBlock>|null} [blocks] GpuCounterDescriptor blocks\n * @property {number|null} [minSamplingPeriodNs] GpuCounterDescriptor minSamplingPeriodNs\n * @property {number|null} [maxSamplingPeriodNs] GpuCounterDescriptor maxSamplingPeriodNs\n * @property {boolean|null} [supportsInstrumentedSampling] GpuCounterDescriptor supportsInstrumentedSampling\n */\n\n /**\n * Constructs a new GpuCounterDescriptor.\n * @memberof perfetto.protos\n * @classdesc Represents a GpuCounterDescriptor.\n * @implements IGpuCounterDescriptor\n * @constructor\n * @param {perfetto.protos.IGpuCounterDescriptor=} [properties] Properties to set\n */\n function GpuCounterDescriptor(properties) {\n this.specs = [];\n this.blocks = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * GpuCounterDescriptor specs.\n * @member {Array.<perfetto.protos.GpuCounterDescriptor.IGpuCounterSpec>} specs\n * @memberof perfetto.protos.GpuCounterDescriptor\n * @instance\n */\n GpuCounterDescriptor.prototype.specs = $util.emptyArray;\n\n /**\n * GpuCounterDescriptor blocks.\n * @member {Array.<perfetto.protos.GpuCounterDescriptor.IGpuCounterBlock>} blocks\n * @memberof perfetto.protos.GpuCounterDescriptor\n * @instance\n */\n GpuCounterDescriptor.prototype.blocks = $util.emptyArray;\n\n /**\n * GpuCounterDescriptor minSamplingPeriodNs.\n * @member {number} minSamplingPeriodNs\n * @memberof perfetto.protos.GpuCounterDescriptor\n * @instance\n */\n GpuCounterDescriptor.prototype.minSamplingPeriodNs = $util.Long ? $util.Long.fromBits(0,0,true) : 0;\n\n /**\n * GpuCounterDescriptor maxSamplingPeriodNs.\n * @member {number} maxSamplingPeriodNs\n * @memberof perfetto.protos.GpuCounterDescriptor\n * @instance\n */\n GpuCounterDescriptor.prototype.maxSamplingPeriodNs = $util.Long ? $util.Long.fromBits(0,0,true) : 0;\n\n /**\n * GpuCounterDescriptor supportsInstrumentedSampling.\n * @member {boolean} supportsInstrumentedSampling\n * @memberof perfetto.protos.GpuCounterDescriptor\n * @instance\n */\n GpuCounterDescriptor.prototype.supportsInstrumentedSampling = false;\n\n /**\n * Creates a new GpuCounterDescriptor instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.GpuCounterDescriptor\n * @static\n * @param {perfetto.protos.IGpuCounterDescriptor=} [properties] Properties to set\n * @returns {perfetto.protos.GpuCounterDescriptor} GpuCounterDescriptor instance\n */\n GpuCounterDescriptor.create = function create(properties) {\n return new GpuCounterDescriptor(properties);\n };\n\n /**\n * Encodes the specified GpuCounterDescriptor message. Does not implicitly {@link perfetto.protos.GpuCounterDescriptor.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.GpuCounterDescriptor\n * @static\n * @param {perfetto.protos.IGpuCounterDescriptor} message GpuCounterDescriptor message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n GpuCounterDescriptor.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.specs != null && message.specs.length)\n for (var i = 0; i < message.specs.length; ++i)\n $root.perfetto.protos.GpuCounterDescriptor.GpuCounterSpec.encode(message.specs[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n if (message.blocks != null && message.blocks.length)\n for (var i = 0; i < message.blocks.length; ++i)\n $root.perfetto.protos.GpuCounterDescriptor.GpuCounterBlock.encode(message.blocks[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n if (message.minSamplingPeriodNs != null && Object.hasOwnProperty.call(message, \"minSamplingPeriodNs\"))\n writer.uint32(/* id 3, wireType 0 =*/24).uint64(message.minSamplingPeriodNs);\n if (message.maxSamplingPeriodNs != null && Object.hasOwnProperty.call(message, \"maxSamplingPeriodNs\"))\n writer.uint32(/* id 4, wireType 0 =*/32).uint64(message.maxSamplingPeriodNs);\n if (message.supportsInstrumentedSampling != null && Object.hasOwnProperty.call(message, \"supportsInstrumentedSampling\"))\n writer.uint32(/* id 5, wireType 0 =*/40).bool(message.supportsInstrumentedSampling);\n return writer;\n };\n\n /**\n * Encodes the specified GpuCounterDescriptor message, length delimited. Does not implicitly {@link perfetto.protos.GpuCounterDescriptor.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.GpuCounterDescriptor\n * @static\n * @param {perfetto.protos.IGpuCounterDescriptor} message GpuCounterDescriptor message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n GpuCounterDescriptor.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a GpuCounterDescriptor message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.GpuCounterDescriptor\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.GpuCounterDescriptor} GpuCounterDescriptor\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n GpuCounterDescriptor.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.GpuCounterDescriptor();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (!(message.specs && message.specs.length))\n message.specs = [];\n message.specs.push($root.perfetto.protos.GpuCounterDescriptor.GpuCounterSpec.decode(reader, reader.uint32()));\n break;\n case 2:\n if (!(message.blocks && message.blocks.length))\n message.blocks = [];\n message.blocks.push($root.perfetto.protos.GpuCounterDescriptor.GpuCounterBlock.decode(reader, reader.uint32()));\n break;\n case 3:\n message.minSamplingPeriodNs = reader.uint64();\n break;\n case 4:\n message.maxSamplingPeriodNs = reader.uint64();\n break;\n case 5:\n message.supportsInstrumentedSampling = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a GpuCounterDescriptor message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.GpuCounterDescriptor\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.GpuCounterDescriptor} GpuCounterDescriptor\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n GpuCounterDescriptor.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a GpuCounterDescriptor message.\n * @function verify\n * @memberof perfetto.protos.GpuCounterDescriptor\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n GpuCounterDescriptor.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.specs != null && message.hasOwnProperty(\"specs\")) {\n if (!Array.isArray(message.specs))\n return \"specs: array expected\";\n for (var i = 0; i < message.specs.length; ++i) {\n var error = $root.perfetto.protos.GpuCounterDescriptor.GpuCounterSpec.verify(message.specs[i]);\n if (error)\n return \"specs.\" + error;\n }\n }\n if (message.blocks != null && message.hasOwnProperty(\"blocks\")) {\n if (!Array.isArray(message.blocks))\n return \"blocks: array expected\";\n for (var i = 0; i < message.blocks.length; ++i) {\n var error = $root.perfetto.protos.GpuCounterDescriptor.GpuCounterBlock.verify(message.blocks[i]);\n if (error)\n return \"blocks.\" + error;\n }\n }\n if (message.minSamplingPeriodNs != null && message.hasOwnProperty(\"minSamplingPeriodNs\"))\n if (!$util.isInteger(message.minSamplingPeriodNs) && !(message.minSamplingPeriodNs && $util.isInteger(message.minSamplingPeriodNs.low) && $util.isInteger(message.minSamplingPeriodNs.high)))\n return \"minSamplingPeriodNs: integer|Long expected\";\n if (message.maxSamplingPeriodNs != null && message.hasOwnProperty(\"maxSamplingPeriodNs\"))\n if (!$util.isInteger(message.maxSamplingPeriodNs) && !(message.maxSamplingPeriodNs && $util.isInteger(message.maxSamplingPeriodNs.low) && $util.isInteger(message.maxSamplingPeriodNs.high)))\n return \"maxSamplingPeriodNs: integer|Long expected\";\n if (message.supportsInstrumentedSampling != null && message.hasOwnProperty(\"supportsInstrumentedSampling\"))\n if (typeof message.supportsInstrumentedSampling !== \"boolean\")\n return \"supportsInstrumentedSampling: boolean expected\";\n return null;\n };\n\n /**\n * Creates a GpuCounterDescriptor message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.GpuCounterDescriptor\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.GpuCounterDescriptor} GpuCounterDescriptor\n */\n GpuCounterDescriptor.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.GpuCounterDescriptor)\n return object;\n var message = new $root.perfetto.protos.GpuCounterDescriptor();\n if (object.specs) {\n if (!Array.isArray(object.specs))\n throw TypeError(\".perfetto.protos.GpuCounterDescriptor.specs: array expected\");\n message.specs = [];\n for (var i = 0; i < object.specs.length; ++i) {\n if (typeof object.specs[i] !== \"object\")\n throw TypeError(\".perfetto.protos.GpuCounterDescriptor.specs: object expected\");\n message.specs[i] = $root.perfetto.protos.GpuCounterDescriptor.GpuCounterSpec.fromObject(object.specs[i]);\n }\n }\n if (object.blocks) {\n if (!Array.isArray(object.blocks))\n throw TypeError(\".perfetto.protos.GpuCounterDescriptor.blocks: array expected\");\n message.blocks = [];\n for (var i = 0; i < object.blocks.length; ++i) {\n if (typeof object.blocks[i] !== \"object\")\n throw TypeError(\".perfetto.protos.GpuCounterDescriptor.blocks: object expected\");\n message.blocks[i] = $root.perfetto.protos.GpuCounterDescriptor.GpuCounterBlock.fromObject(object.blocks[i]);\n }\n }\n if (object.minSamplingPeriodNs != null)\n if ($util.Long)\n (message.minSamplingPeriodNs = $util.Long.fromValue(object.minSamplingPeriodNs)).unsigned = true;\n else if (typeof object.minSamplingPeriodNs === \"string\")\n message.minSamplingPeriodNs = parseInt(object.minSamplingPeriodNs, 10);\n else if (typeof object.minSamplingPeriodNs === \"number\")\n message.minSamplingPeriodNs = object.minSamplingPeriodNs;\n else if (typeof object.minSamplingPeriodNs === \"object\")\n message.minSamplingPeriodNs = new $util.LongBits(object.minSamplingPeriodNs.low >>> 0, object.minSamplingPeriodNs.high >>> 0).toNumber(true);\n if (object.maxSamplingPeriodNs != null)\n if ($util.Long)\n (message.maxSamplingPeriodNs = $util.Long.fromValue(object.maxSamplingPeriodNs)).unsigned = true;\n else if (typeof object.maxSamplingPeriodNs === \"string\")\n message.maxSamplingPeriodNs = parseInt(object.maxSamplingPeriodNs, 10);\n else if (typeof object.maxSamplingPeriodNs === \"number\")\n message.maxSamplingPeriodNs = object.maxSamplingPeriodNs;\n else if (typeof object.maxSamplingPeriodNs === \"object\")\n message.maxSamplingPeriodNs = new $util.LongBits(object.maxSamplingPeriodNs.low >>> 0, object.maxSamplingPeriodNs.high >>> 0).toNumber(true);\n if (object.supportsInstrumentedSampling != null)\n message.supportsInstrumentedSampling = Boolean(object.supportsInstrumentedSampling);\n return message;\n };\n\n /**\n * Creates a plain object from a GpuCounterDescriptor message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.GpuCounterDescriptor\n * @static\n * @param {perfetto.protos.GpuCounterDescriptor} message GpuCounterDescriptor\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n GpuCounterDescriptor.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults) {\n object.specs = [];\n object.blocks = [];\n }\n if (options.defaults) {\n if ($util.Long) {\n var long = new $util.Long(0, 0, true);\n object.minSamplingPeriodNs = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.minSamplingPeriodNs = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, true);\n object.maxSamplingPeriodNs = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.maxSamplingPeriodNs = options.longs === String ? \"0\" : 0;\n object.supportsInstrumentedSampling = false;\n }\n if (message.specs && message.specs.length) {\n object.specs = [];\n for (var j = 0; j < message.specs.length; ++j)\n object.specs[j] = $root.perfetto.protos.GpuCounterDescriptor.GpuCounterSpec.toObject(message.specs[j], options);\n }\n if (message.blocks && message.blocks.length) {\n object.blocks = [];\n for (var j = 0; j < message.blocks.length; ++j)\n object.blocks[j] = $root.perfetto.protos.GpuCounterDescriptor.GpuCounterBlock.toObject(message.blocks[j], options);\n }\n if (message.minSamplingPeriodNs != null && message.hasOwnProperty(\"minSamplingPeriodNs\"))\n if (typeof message.minSamplingPeriodNs === \"number\")\n object.minSamplingPeriodNs = options.longs === String ? String(message.minSamplingPeriodNs) : message.minSamplingPeriodNs;\n else\n object.minSamplingPeriodNs = options.longs === String ? $util.Long.prototype.toString.call(message.minSamplingPeriodNs) : options.longs === Number ? new $util.LongBits(message.minSamplingPeriodNs.low >>> 0, message.minSamplingPeriodNs.high >>> 0).toNumber(true) : message.minSamplingPeriodNs;\n if (message.maxSamplingPeriodNs != null && message.hasOwnProperty(\"maxSamplingPeriodNs\"))\n if (typeof message.maxSamplingPeriodNs === \"number\")\n object.maxSamplingPeriodNs = options.longs === String ? String(message.maxSamplingPeriodNs) : message.maxSamplingPeriodNs;\n else\n object.maxSamplingPeriodNs = options.longs === String ? $util.Long.prototype.toString.call(message.maxSamplingPeriodNs) : options.longs === Number ? new $util.LongBits(message.maxSamplingPeriodNs.low >>> 0, message.maxSamplingPeriodNs.high >>> 0).toNumber(true) : message.maxSamplingPeriodNs;\n if (message.supportsInstrumentedSampling != null && message.hasOwnProperty(\"supportsInstrumentedSampling\"))\n object.supportsInstrumentedSampling = message.supportsInstrumentedSampling;\n return object;\n };\n\n /**\n * Converts this GpuCounterDescriptor to JSON.\n * @function toJSON\n * @memberof perfetto.protos.GpuCounterDescriptor\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n GpuCounterDescriptor.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n /**\n * GpuCounterGroup enum.\n * @name perfetto.protos.GpuCounterDescriptor.GpuCounterGroup\n * @enum {number}\n * @property {number} UNCLASSIFIED=0 UNCLASSIFIED value\n * @property {number} SYSTEM=1 SYSTEM value\n * @property {number} VERTICES=2 VERTICES value\n * @property {number} FRAGMENTS=3 FRAGMENTS value\n * @property {number} PRIMITIVES=4 PRIMITIVES value\n * @property {number} MEMORY=5 MEMORY value\n * @property {number} COMPUTE=6 COMPUTE value\n */\n GpuCounterDescriptor.GpuCounterGroup = (function() {\n var valuesById = {}, values = Object.create(valuesById);\n values[valuesById[0] = \"UNCLASSIFIED\"] = 0;\n values[valuesById[1] = \"SYSTEM\"] = 1;\n values[valuesById[2] = \"VERTICES\"] = 2;\n values[valuesById[3] = \"FRAGMENTS\"] = 3;\n values[valuesById[4] = \"PRIMITIVES\"] = 4;\n values[valuesById[5] = \"MEMORY\"] = 5;\n values[valuesById[6] = \"COMPUTE\"] = 6;\n return values;\n })();\n\n GpuCounterDescriptor.GpuCounterSpec = (function() {\n\n /**\n * Properties of a GpuCounterSpec.\n * @memberof perfetto.protos.GpuCounterDescriptor\n * @interface IGpuCounterSpec\n * @property {number|null} [counterId] GpuCounterSpec counterId\n * @property {string|null} [name] GpuCounterSpec name\n * @property {string|null} [description] GpuCounterSpec description\n * @property {number|null} [intPeakValue] GpuCounterSpec intPeakValue\n * @property {number|null} [doublePeakValue] GpuCounterSpec doublePeakValue\n * @property {Array.<perfetto.protos.GpuCounterDescriptor.MeasureUnit>|null} [numeratorUnits] GpuCounterSpec numeratorUnits\n * @property {Array.<perfetto.protos.GpuCounterDescriptor.MeasureUnit>|null} [denominatorUnits] GpuCounterSpec denominatorUnits\n * @property {boolean|null} [selectByDefault] GpuCounterSpec selectByDefault\n * @property {Array.<perfetto.protos.GpuCounterDescriptor.GpuCounterGroup>|null} [groups] GpuCounterSpec groups\n */\n\n /**\n * Constructs a new GpuCounterSpec.\n * @memberof perfetto.protos.GpuCounterDescriptor\n * @classdesc Represents a GpuCounterSpec.\n * @implements IGpuCounterSpec\n * @constructor\n * @param {perfetto.protos.GpuCounterDescriptor.IGpuCounterSpec=} [properties] Properties to set\n */\n function GpuCounterSpec(properties) {\n this.numeratorUnits = [];\n this.denominatorUnits = [];\n this.groups = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * GpuCounterSpec counterId.\n * @member {number} counterId\n * @memberof perfetto.protos.GpuCounterDescriptor.GpuCounterSpec\n * @instance\n */\n GpuCounterSpec.prototype.counterId = 0;\n\n /**\n * GpuCounterSpec name.\n * @member {string} name\n * @memberof perfetto.protos.GpuCounterDescriptor.GpuCounterSpec\n * @instance\n */\n GpuCounterSpec.prototype.name = \"\";\n\n /**\n * GpuCounterSpec description.\n * @member {string} description\n * @memberof perfetto.protos.GpuCounterDescriptor.GpuCounterSpec\n * @instance\n */\n GpuCounterSpec.prototype.description = \"\";\n\n /**\n * GpuCounterSpec intPeakValue.\n * @member {number} intPeakValue\n * @memberof perfetto.protos.GpuCounterDescriptor.GpuCounterSpec\n * @instance\n */\n GpuCounterSpec.prototype.intPeakValue = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * GpuCounterSpec doublePeakValue.\n * @member {number} doublePeakValue\n * @memberof perfetto.protos.GpuCounterDescriptor.GpuCounterSpec\n * @instance\n */\n GpuCounterSpec.prototype.doublePeakValue = 0;\n\n /**\n * GpuCounterSpec numeratorUnits.\n * @member {Array.<perfetto.protos.GpuCounterDescriptor.MeasureUnit>} numeratorUnits\n * @memberof perfetto.protos.GpuCounterDescriptor.GpuCounterSpec\n * @instance\n */\n GpuCounterSpec.prototype.numeratorUnits = $util.emptyArray;\n\n /**\n * GpuCounterSpec denominatorUnits.\n * @member {Array.<perfetto.protos.GpuCounterDescriptor.MeasureUnit>} denominatorUnits\n * @memberof perfetto.protos.GpuCounterDescriptor.GpuCounterSpec\n * @instance\n */\n GpuCounterSpec.prototype.denominatorUnits = $util.emptyArray;\n\n /**\n * GpuCounterSpec selectByDefault.\n * @member {boolean} selectByDefault\n * @memberof perfetto.protos.GpuCounterDescriptor.GpuCounterSpec\n * @instance\n */\n GpuCounterSpec.prototype.selectByDefault = false;\n\n /**\n * GpuCounterSpec groups.\n * @member {Array.<perfetto.protos.GpuCounterDescriptor.GpuCounterGroup>} groups\n * @memberof perfetto.protos.GpuCounterDescriptor.GpuCounterSpec\n * @instance\n */\n GpuCounterSpec.prototype.groups = $util.emptyArray;\n\n // OneOf field names bound to virtual getters and setters\n var $oneOfFields;\n\n /**\n * GpuCounterSpec peakValue.\n * @member {\"intPeakValue\"|\"doublePeakValue\"|undefined} peakValue\n * @memberof perfetto.protos.GpuCounterDescriptor.GpuCounterSpec\n * @instance\n */\n Object.defineProperty(GpuCounterSpec.prototype, \"peakValue\", {\n get: $util.oneOfGetter($oneOfFields = [\"intPeakValue\", \"doublePeakValue\"]),\n set: $util.oneOfSetter($oneOfFields)\n });\n\n /**\n * Creates a new GpuCounterSpec instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.GpuCounterDescriptor.GpuCounterSpec\n * @static\n * @param {perfetto.protos.GpuCounterDescriptor.IGpuCounterSpec=} [properties] Properties to set\n * @returns {perfetto.protos.GpuCounterDescriptor.GpuCounterSpec} GpuCounterSpec instance\n */\n GpuCounterSpec.create = function create(properties) {\n return new GpuCounterSpec(properties);\n };\n\n /**\n * Encodes the specified GpuCounterSpec message. Does not implicitly {@link perfetto.protos.GpuCounterDescriptor.GpuCounterSpec.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.GpuCounterDescriptor.GpuCounterSpec\n * @static\n * @param {perfetto.protos.GpuCounterDescriptor.IGpuCounterSpec} message GpuCounterSpec message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n GpuCounterSpec.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.counterId != null && Object.hasOwnProperty.call(message, \"counterId\"))\n writer.uint32(/* id 1, wireType 0 =*/8).uint32(message.counterId);\n if (message.name != null && Object.hasOwnProperty.call(message, \"name\"))\n writer.uint32(/* id 2, wireType 2 =*/18).string(message.name);\n if (message.description != null && Object.hasOwnProperty.call(message, \"description\"))\n writer.uint32(/* id 3, wireType 2 =*/26).string(message.description);\n if (message.intPeakValue != null && Object.hasOwnProperty.call(message, \"intPeakValue\"))\n writer.uint32(/* id 5, wireType 0 =*/40).int64(message.intPeakValue);\n if (message.doublePeakValue != null && Object.hasOwnProperty.call(message, \"doublePeakValue\"))\n writer.uint32(/* id 6, wireType 1 =*/49).double(message.doublePeakValue);\n if (message.numeratorUnits != null && message.numeratorUnits.length)\n for (var i = 0; i < message.numeratorUnits.length; ++i)\n writer.uint32(/* id 7, wireType 0 =*/56).int32(message.numeratorUnits[i]);\n if (message.denominatorUnits != null && message.denominatorUnits.length)\n for (var i = 0; i < message.denominatorUnits.length; ++i)\n writer.uint32(/* id 8, wireType 0 =*/64).int32(message.denominatorUnits[i]);\n if (message.selectByDefault != null && Object.hasOwnProperty.call(message, \"selectByDefault\"))\n writer.uint32(/* id 9, wireType 0 =*/72).bool(message.selectByDefault);\n if (message.groups != null && message.groups.length)\n for (var i = 0; i < message.groups.length; ++i)\n writer.uint32(/* id 10, wireType 0 =*/80).int32(message.groups[i]);\n return writer;\n };\n\n /**\n * Encodes the specified GpuCounterSpec message, length delimited. Does not implicitly {@link perfetto.protos.GpuCounterDescriptor.GpuCounterSpec.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.GpuCounterDescriptor.GpuCounterSpec\n * @static\n * @param {perfetto.protos.GpuCounterDescriptor.IGpuCounterSpec} message GpuCounterSpec message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n GpuCounterSpec.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a GpuCounterSpec message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.GpuCounterDescriptor.GpuCounterSpec\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.GpuCounterDescriptor.GpuCounterSpec} GpuCounterSpec\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n GpuCounterSpec.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.GpuCounterDescriptor.GpuCounterSpec();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.counterId = reader.uint32();\n break;\n case 2:\n message.name = reader.string();\n break;\n case 3:\n message.description = reader.string();\n break;\n case 5:\n message.intPeakValue = reader.int64();\n break;\n case 6:\n message.doublePeakValue = reader.double();\n break;\n case 7:\n if (!(message.numeratorUnits && message.numeratorUnits.length))\n message.numeratorUnits = [];\n if ((tag & 7) === 2) {\n var end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2)\n message.numeratorUnits.push(reader.int32());\n } else\n message.numeratorUnits.push(reader.int32());\n break;\n case 8:\n if (!(message.denominatorUnits && message.denominatorUnits.length))\n message.denominatorUnits = [];\n if ((tag & 7) === 2) {\n var end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2)\n message.denominatorUnits.push(reader.int32());\n } else\n message.denominatorUnits.push(reader.int32());\n break;\n case 9:\n message.selectByDefault = reader.bool();\n break;\n case 10:\n if (!(message.groups && message.groups.length))\n message.groups = [];\n if ((tag & 7) === 2) {\n var end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2)\n message.groups.push(reader.int32());\n } else\n message.groups.push(reader.int32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a GpuCounterSpec message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.GpuCounterDescriptor.GpuCounterSpec\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.GpuCounterDescriptor.GpuCounterSpec} GpuCounterSpec\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n GpuCounterSpec.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a GpuCounterSpec message.\n * @function verify\n * @memberof perfetto.protos.GpuCounterDescriptor.GpuCounterSpec\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n GpuCounterSpec.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n var properties = {};\n if (message.counterId != null && message.hasOwnProperty(\"counterId\"))\n if (!$util.isInteger(message.counterId))\n return \"counterId: integer expected\";\n if (message.name != null && message.hasOwnProperty(\"name\"))\n if (!$util.isString(message.name))\n return \"name: string expected\";\n if (message.description != null && message.hasOwnProperty(\"description\"))\n if (!$util.isString(message.description))\n return \"description: string expected\";\n if (message.intPeakValue != null && message.hasOwnProperty(\"intPeakValue\")) {\n properties.peakValue = 1;\n if (!$util.isInteger(message.intPeakValue) && !(message.intPeakValue && $util.isInteger(message.intPeakValue.low) && $util.isInteger(message.intPeakValue.high)))\n return \"intPeakValue: integer|Long expected\";\n }\n if (message.doublePeakValue != null && message.hasOwnProperty(\"doublePeakValue\")) {\n if (properties.peakValue === 1)\n return \"peakValue: multiple values\";\n properties.peakValue = 1;\n if (typeof message.doublePeakValue !== \"number\")\n return \"doublePeakValue: number expected\";\n }\n if (message.numeratorUnits != null && message.hasOwnProperty(\"numeratorUnits\")) {\n if (!Array.isArray(message.numeratorUnits))\n return \"numeratorUnits: array expected\";\n for (var i = 0; i < message.numeratorUnits.length; ++i)\n switch (message.numeratorUnits[i]) {\n default:\n return \"numeratorUnits: enum value[] expected\";\n case 0:\n case 1:\n case 2:\n case 3:\n case 4:\n case 5:\n case 6:\n case 7:\n case 8:\n case 9:\n case 10:\n case 11:\n case 12:\n case 13:\n case 14:\n case 15:\n case 16:\n case 17:\n case 18:\n case 19:\n case 20:\n case 21:\n case 22:\n case 23:\n case 24:\n case 25:\n case 26:\n case 27:\n case 38:\n case 39:\n case 28:\n case 29:\n case 30:\n case 31:\n case 32:\n case 33:\n case 34:\n case 35:\n case 36:\n case 37:\n case 40:\n break;\n }\n }\n if (message.denominatorUnits != null && message.hasOwnProperty(\"denominatorUnits\")) {\n if (!Array.isArray(message.denominatorUnits))\n return \"denominatorUnits: array expected\";\n for (var i = 0; i < message.denominatorUnits.length; ++i)\n switch (message.denominatorUnits[i]) {\n default:\n return \"denominatorUnits: enum value[] expected\";\n case 0:\n case 1:\n case 2:\n case 3:\n case 4:\n case 5:\n case 6:\n case 7:\n case 8:\n case 9:\n case 10:\n case 11:\n case 12:\n case 13:\n case 14:\n case 15:\n case 16:\n case 17:\n case 18:\n case 19:\n case 20:\n case 21:\n case 22:\n case 23:\n case 24:\n case 25:\n case 26:\n case 27:\n case 38:\n case 39:\n case 28:\n case 29:\n case 30:\n case 31:\n case 32:\n case 33:\n case 34:\n case 35:\n case 36:\n case 37:\n case 40:\n break;\n }\n }\n if (message.selectByDefault != null && message.hasOwnProperty(\"selectByDefault\"))\n if (typeof message.selectByDefault !== \"boolean\")\n return \"selectByDefault: boolean expected\";\n if (message.groups != null && message.hasOwnProperty(\"groups\")) {\n if (!Array.isArray(message.groups))\n return \"groups: array expected\";\n for (var i = 0; i < message.groups.length; ++i)\n switch (message.groups[i]) {\n default:\n return \"groups: enum value[] expected\";\n case 0:\n case 1:\n case 2:\n case 3:\n case 4:\n case 5:\n case 6:\n break;\n }\n }\n return null;\n };\n\n /**\n * Creates a GpuCounterSpec message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.GpuCounterDescriptor.GpuCounterSpec\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.GpuCounterDescriptor.GpuCounterSpec} GpuCounterSpec\n */\n GpuCounterSpec.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.GpuCounterDescriptor.GpuCounterSpec)\n return object;\n var message = new $root.perfetto.protos.GpuCounterDescriptor.GpuCounterSpec();\n if (object.counterId != null)\n message.counterId = object.counterId >>> 0;\n if (object.name != null)\n message.name = String(object.name);\n if (object.description != null)\n message.description = String(object.description);\n if (object.intPeakValue != null)\n if ($util.Long)\n (message.intPeakValue = $util.Long.fromValue(object.intPeakValue)).unsigned = false;\n else if (typeof object.intPeakValue === \"string\")\n message.intPeakValue = parseInt(object.intPeakValue, 10);\n else if (typeof object.intPeakValue === \"number\")\n message.intPeakValue = object.intPeakValue;\n else if (typeof object.intPeakValue === \"object\")\n message.intPeakValue = new $util.LongBits(object.intPeakValue.low >>> 0, object.intPeakValue.high >>> 0).toNumber();\n if (object.doublePeakValue != null)\n message.doublePeakValue = Number(object.doublePeakValue);\n if (object.numeratorUnits) {\n if (!Array.isArray(object.numeratorUnits))\n throw TypeError(\".perfetto.protos.GpuCounterDescriptor.GpuCounterSpec.numeratorUnits: array expected\");\n message.numeratorUnits = [];\n for (var i = 0; i < object.numeratorUnits.length; ++i)\n switch (object.numeratorUnits[i]) {\n default:\n case \"NONE\":\n case 0:\n message.numeratorUnits[i] = 0;\n break;\n case \"BIT\":\n case 1:\n message.numeratorUnits[i] = 1;\n break;\n case \"KILOBIT\":\n case 2:\n message.numeratorUnits[i] = 2;\n break;\n case \"MEGABIT\":\n case 3:\n message.numeratorUnits[i] = 3;\n break;\n case \"GIGABIT\":\n case 4:\n message.numeratorUnits[i] = 4;\n break;\n case \"TERABIT\":\n case 5:\n message.numeratorUnits[i] = 5;\n break;\n case \"PETABIT\":\n case 6:\n message.numeratorUnits[i] = 6;\n break;\n case \"BYTE\":\n case 7:\n message.numeratorUnits[i] = 7;\n break;\n case \"KILOBYTE\":\n case 8:\n message.numeratorUnits[i] = 8;\n break;\n case \"MEGABYTE\":\n case 9:\n message.numeratorUnits[i] = 9;\n break;\n case \"GIGABYTE\":\n case 10:\n message.numeratorUnits[i] = 10;\n break;\n case \"TERABYTE\":\n case 11:\n message.numeratorUnits[i] = 11;\n break;\n case \"PETABYTE\":\n case 12:\n message.numeratorUnits[i] = 12;\n break;\n case \"HERTZ\":\n case 13:\n message.numeratorUnits[i] = 13;\n break;\n case \"KILOHERTZ\":\n case 14:\n message.numeratorUnits[i] = 14;\n break;\n case \"MEGAHERTZ\":\n case 15:\n message.numeratorUnits[i] = 15;\n break;\n case \"GIGAHERTZ\":\n case 16:\n message.numeratorUnits[i] = 16;\n break;\n case \"TERAHERTZ\":\n case 17:\n message.numeratorUnits[i] = 17;\n break;\n case \"PETAHERTZ\":\n case 18:\n message.numeratorUnits[i] = 18;\n break;\n case \"NANOSECOND\":\n case 19:\n message.numeratorUnits[i] = 19;\n break;\n case \"MICROSECOND\":\n case 20:\n message.numeratorUnits[i] = 20;\n break;\n case \"MILLISECOND\":\n case 21:\n message.numeratorUnits[i] = 21;\n break;\n case \"SECOND\":\n case 22:\n message.numeratorUnits[i] = 22;\n break;\n case \"MINUTE\":\n case 23:\n message.numeratorUnits[i] = 23;\n break;\n case \"HOUR\":\n case 24:\n message.numeratorUnits[i] = 24;\n break;\n case \"VERTEX\":\n case 25:\n message.numeratorUnits[i] = 25;\n break;\n case \"PIXEL\":\n case 26:\n message.numeratorUnits[i] = 26;\n break;\n case \"TRIANGLE\":\n case 27:\n message.numeratorUnits[i] = 27;\n break;\n case \"PRIMITIVE\":\n case 38:\n message.numeratorUnits[i] = 38;\n break;\n case \"FRAGMENT\":\n case 39:\n message.numeratorUnits[i] = 39;\n break;\n case \"MILLIWATT\":\n case 28:\n message.numeratorUnits[i] = 28;\n break;\n case \"WATT\":\n case 29:\n message.numeratorUnits[i] = 29;\n break;\n case \"KILOWATT\":\n case 30:\n message.numeratorUnits[i] = 30;\n break;\n case \"JOULE\":\n case 31:\n message.numeratorUnits[i] = 31;\n break;\n case \"VOLT\":\n case 32:\n message.numeratorUnits[i] = 32;\n break;\n case \"AMPERE\":\n case 33:\n message.numeratorUnits[i] = 33;\n break;\n case \"CELSIUS\":\n case 34:\n message.numeratorUnits[i] = 34;\n break;\n case \"FAHRENHEIT\":\n case 35:\n message.numeratorUnits[i] = 35;\n break;\n case \"KELVIN\":\n case 36:\n message.numeratorUnits[i] = 36;\n break;\n case \"PERCENT\":\n case 37:\n message.numeratorUnits[i] = 37;\n break;\n case \"INSTRUCTION\":\n case 40:\n message.numeratorUnits[i] = 40;\n break;\n }\n }\n if (object.denominatorUnits) {\n if (!Array.isArray(object.denominatorUnits))\n throw TypeError(\".perfetto.protos.GpuCounterDescriptor.GpuCounterSpec.denominatorUnits: array expected\");\n message.denominatorUnits = [];\n for (var i = 0; i < object.denominatorUnits.length; ++i)\n switch (object.denominatorUnits[i]) {\n default:\n case \"NONE\":\n case 0:\n message.denominatorUnits[i] = 0;\n break;\n case \"BIT\":\n case 1:\n message.denominatorUnits[i] = 1;\n break;\n case \"KILOBIT\":\n case 2:\n message.denominatorUnits[i] = 2;\n break;\n case \"MEGABIT\":\n case 3:\n message.denominatorUnits[i] = 3;\n break;\n case \"GIGABIT\":\n case 4:\n message.denominatorUnits[i] = 4;\n break;\n case \"TERABIT\":\n case 5:\n message.denominatorUnits[i] = 5;\n break;\n case \"PETABIT\":\n case 6:\n message.denominatorUnits[i] = 6;\n break;\n case \"BYTE\":\n case 7:\n message.denominatorUnits[i] = 7;\n break;\n case \"KILOBYTE\":\n case 8:\n message.denominatorUnits[i] = 8;\n break;\n case \"MEGABYTE\":\n case 9:\n message.denominatorUnits[i] = 9;\n break;\n case \"GIGABYTE\":\n case 10:\n message.denominatorUnits[i] = 10;\n break;\n case \"TERABYTE\":\n case 11:\n message.denominatorUnits[i] = 11;\n break;\n case \"PETABYTE\":\n case 12:\n message.denominatorUnits[i] = 12;\n break;\n case \"HERTZ\":\n case 13:\n message.denominatorUnits[i] = 13;\n break;\n case \"KILOHERTZ\":\n case 14:\n message.denominatorUnits[i] = 14;\n break;\n case \"MEGAHERTZ\":\n case 15:\n message.denominatorUnits[i] = 15;\n break;\n case \"GIGAHERTZ\":\n case 16:\n message.denominatorUnits[i] = 16;\n break;\n case \"TERAHERTZ\":\n case 17:\n message.denominatorUnits[i] = 17;\n break;\n case \"PETAHERTZ\":\n case 18:\n message.denominatorUnits[i] = 18;\n break;\n case \"NANOSECOND\":\n case 19:\n message.denominatorUnits[i] = 19;\n break;\n case \"MICROSECOND\":\n case 20:\n message.denominatorUnits[i] = 20;\n break;\n case \"MILLISECOND\":\n case 21:\n message.denominatorUnits[i] = 21;\n break;\n case \"SECOND\":\n case 22:\n message.denominatorUnits[i] = 22;\n break;\n case \"MINUTE\":\n case 23:\n message.denominatorUnits[i] = 23;\n break;\n case \"HOUR\":\n case 24:\n message.denominatorUnits[i] = 24;\n break;\n case \"VERTEX\":\n case 25:\n message.denominatorUnits[i] = 25;\n break;\n case \"PIXEL\":\n case 26:\n message.denominatorUnits[i] = 26;\n break;\n case \"TRIANGLE\":\n case 27:\n message.denominatorUnits[i] = 27;\n break;\n case \"PRIMITIVE\":\n case 38:\n message.denominatorUnits[i] = 38;\n break;\n case \"FRAGMENT\":\n case 39:\n message.denominatorUnits[i] = 39;\n break;\n case \"MILLIWATT\":\n case 28:\n message.denominatorUnits[i] = 28;\n break;\n case \"WATT\":\n case 29:\n message.denominatorUnits[i] = 29;\n break;\n case \"KILOWATT\":\n case 30:\n message.denominatorUnits[i] = 30;\n break;\n case \"JOULE\":\n case 31:\n message.denominatorUnits[i] = 31;\n break;\n case \"VOLT\":\n case 32:\n message.denominatorUnits[i] = 32;\n break;\n case \"AMPERE\":\n case 33:\n message.denominatorUnits[i] = 33;\n break;\n case \"CELSIUS\":\n case 34:\n message.denominatorUnits[i] = 34;\n break;\n case \"FAHRENHEIT\":\n case 35:\n message.denominatorUnits[i] = 35;\n break;\n case \"KELVIN\":\n case 36:\n message.denominatorUnits[i] = 36;\n break;\n case \"PERCENT\":\n case 37:\n message.denominatorUnits[i] = 37;\n break;\n case \"INSTRUCTION\":\n case 40:\n message.denominatorUnits[i] = 40;\n break;\n }\n }\n if (object.selectByDefault != null)\n message.selectByDefault = Boolean(object.selectByDefault);\n if (object.groups) {\n if (!Array.isArray(object.groups))\n throw TypeError(\".perfetto.protos.GpuCounterDescriptor.GpuCounterSpec.groups: array expected\");\n message.groups = [];\n for (var i = 0; i < object.groups.length; ++i)\n switch (object.groups[i]) {\n default:\n case \"UNCLASSIFIED\":\n case 0:\n message.groups[i] = 0;\n break;\n case \"SYSTEM\":\n case 1:\n message.groups[i] = 1;\n break;\n case \"VERTICES\":\n case 2:\n message.groups[i] = 2;\n break;\n case \"FRAGMENTS\":\n case 3:\n message.groups[i] = 3;\n break;\n case \"PRIMITIVES\":\n case 4:\n message.groups[i] = 4;\n break;\n case \"MEMORY\":\n case 5:\n message.groups[i] = 5;\n break;\n case \"COMPUTE\":\n case 6:\n message.groups[i] = 6;\n break;\n }\n }\n return message;\n };\n\n /**\n * Creates a plain object from a GpuCounterSpec message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.GpuCounterDescriptor.GpuCounterSpec\n * @static\n * @param {perfetto.protos.GpuCounterDescriptor.GpuCounterSpec} message GpuCounterSpec\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n GpuCounterSpec.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults) {\n object.numeratorUnits = [];\n object.denominatorUnits = [];\n object.groups = [];\n }\n if (options.defaults) {\n object.counterId = 0;\n object.name = \"\";\n object.description = \"\";\n object.selectByDefault = false;\n }\n if (message.counterId != null && message.hasOwnProperty(\"counterId\"))\n object.counterId = message.counterId;\n if (message.name != null && message.hasOwnProperty(\"name\"))\n object.name = message.name;\n if (message.description != null && message.hasOwnProperty(\"description\"))\n object.description = message.description;\n if (message.intPeakValue != null && message.hasOwnProperty(\"intPeakValue\")) {\n if (typeof message.intPeakValue === \"number\")\n object.intPeakValue = options.longs === String ? String(message.intPeakValue) : message.intPeakValue;\n else\n object.intPeakValue = options.longs === String ? $util.Long.prototype.toString.call(message.intPeakValue) : options.longs === Number ? new $util.LongBits(message.intPeakValue.low >>> 0, message.intPeakValue.high >>> 0).toNumber() : message.intPeakValue;\n if (options.oneofs)\n object.peakValue = \"intPeakValue\";\n }\n if (message.doublePeakValue != null && message.hasOwnProperty(\"doublePeakValue\")) {\n object.doublePeakValue = options.json && !isFinite(message.doublePeakValue) ? String(message.doublePeakValue) : message.doublePeakValue;\n if (options.oneofs)\n object.peakValue = \"doublePeakValue\";\n }\n if (message.numeratorUnits && message.numeratorUnits.length) {\n object.numeratorUnits = [];\n for (var j = 0; j < message.numeratorUnits.length; ++j)\n object.numeratorUnits[j] = options.enums === String ? $root.perfetto.protos.GpuCounterDescriptor.MeasureUnit[message.numeratorUnits[j]] : message.numeratorUnits[j];\n }\n if (message.denominatorUnits && message.denominatorUnits.length) {\n object.denominatorUnits = [];\n for (var j = 0; j < message.denominatorUnits.length; ++j)\n object.denominatorUnits[j] = options.enums === String ? $root.perfetto.protos.GpuCounterDescriptor.MeasureUnit[message.denominatorUnits[j]] : message.denominatorUnits[j];\n }\n if (message.selectByDefault != null && message.hasOwnProperty(\"selectByDefault\"))\n object.selectByDefault = message.selectByDefault;\n if (message.groups && message.groups.length) {\n object.groups = [];\n for (var j = 0; j < message.groups.length; ++j)\n object.groups[j] = options.enums === String ? $root.perfetto.protos.GpuCounterDescriptor.GpuCounterGroup[message.groups[j]] : message.groups[j];\n }\n return object;\n };\n\n /**\n * Converts this GpuCounterSpec to JSON.\n * @function toJSON\n * @memberof perfetto.protos.GpuCounterDescriptor.GpuCounterSpec\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n GpuCounterSpec.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return GpuCounterSpec;\n })();\n\n GpuCounterDescriptor.GpuCounterBlock = (function() {\n\n /**\n * Properties of a GpuCounterBlock.\n * @memberof perfetto.protos.GpuCounterDescriptor\n * @interface IGpuCounterBlock\n * @property {number|null} [blockId] GpuCounterBlock blockId\n * @property {number|null} [blockCapacity] GpuCounterBlock blockCapacity\n * @property {string|null} [name] GpuCounterBlock name\n * @property {string|null} [description] GpuCounterBlock description\n * @property {Array.<number>|null} [counterIds] GpuCounterBlock counterIds\n */\n\n /**\n * Constructs a new GpuCounterBlock.\n * @memberof perfetto.protos.GpuCounterDescriptor\n * @classdesc Represents a GpuCounterBlock.\n * @implements IGpuCounterBlock\n * @constructor\n * @param {perfetto.protos.GpuCounterDescriptor.IGpuCounterBlock=} [properties] Properties to set\n */\n function GpuCounterBlock(properties) {\n this.counterIds = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * GpuCounterBlock blockId.\n * @member {number} blockId\n * @memberof perfetto.protos.GpuCounterDescriptor.GpuCounterBlock\n * @instance\n */\n GpuCounterBlock.prototype.blockId = 0;\n\n /**\n * GpuCounterBlock blockCapacity.\n * @member {number} blockCapacity\n * @memberof perfetto.protos.GpuCounterDescriptor.GpuCounterBlock\n * @instance\n */\n GpuCounterBlock.prototype.blockCapacity = 0;\n\n /**\n * GpuCounterBlock name.\n * @member {string} name\n * @memberof perfetto.protos.GpuCounterDescriptor.GpuCounterBlock\n * @instance\n */\n GpuCounterBlock.prototype.name = \"\";\n\n /**\n * GpuCounterBlock description.\n * @member {string} description\n * @memberof perfetto.protos.GpuCounterDescriptor.GpuCounterBlock\n * @instance\n */\n GpuCounterBlock.prototype.description = \"\";\n\n /**\n * GpuCounterBlock counterIds.\n * @member {Array.<number>} counterIds\n * @memberof perfetto.protos.GpuCounterDescriptor.GpuCounterBlock\n * @instance\n */\n GpuCounterBlock.prototype.counterIds = $util.emptyArray;\n\n /**\n * Creates a new GpuCounterBlock instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.GpuCounterDescriptor.GpuCounterBlock\n * @static\n * @param {perfetto.protos.GpuCounterDescriptor.IGpuCounterBlock=} [properties] Properties to set\n * @returns {perfetto.protos.GpuCounterDescriptor.GpuCounterBlock} GpuCounterBlock instance\n */\n GpuCounterBlock.create = function create(properties) {\n return new GpuCounterBlock(properties);\n };\n\n /**\n * Encodes the specified GpuCounterBlock message. Does not implicitly {@link perfetto.protos.GpuCounterDescriptor.GpuCounterBlock.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.GpuCounterDescriptor.GpuCounterBlock\n * @static\n * @param {perfetto.protos.GpuCounterDescriptor.IGpuCounterBlock} message GpuCounterBlock message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n GpuCounterBlock.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.blockId != null && Object.hasOwnProperty.call(message, \"blockId\"))\n writer.uint32(/* id 1, wireType 0 =*/8).uint32(message.blockId);\n if (message.blockCapacity != null && Object.hasOwnProperty.call(message, \"blockCapacity\"))\n writer.uint32(/* id 2, wireType 0 =*/16).uint32(message.blockCapacity);\n if (message.name != null && Object.hasOwnProperty.call(message, \"name\"))\n writer.uint32(/* id 3, wireType 2 =*/26).string(message.name);\n if (message.description != null && Object.hasOwnProperty.call(message, \"description\"))\n writer.uint32(/* id 4, wireType 2 =*/34).string(message.description);\n if (message.counterIds != null && message.counterIds.length)\n for (var i = 0; i < message.counterIds.length; ++i)\n writer.uint32(/* id 5, wireType 0 =*/40).uint32(message.counterIds[i]);\n return writer;\n };\n\n /**\n * Encodes the specified GpuCounterBlock message, length delimited. Does not implicitly {@link perfetto.protos.GpuCounterDescriptor.GpuCounterBlock.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.GpuCounterDescriptor.GpuCounterBlock\n * @static\n * @param {perfetto.protos.GpuCounterDescriptor.IGpuCounterBlock} message GpuCounterBlock message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n GpuCounterBlock.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a GpuCounterBlock message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.GpuCounterDescriptor.GpuCounterBlock\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.GpuCounterDescriptor.GpuCounterBlock} GpuCounterBlock\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n GpuCounterBlock.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.GpuCounterDescriptor.GpuCounterBlock();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.blockId = reader.uint32();\n break;\n case 2:\n message.blockCapacity = reader.uint32();\n break;\n case 3:\n message.name = reader.string();\n break;\n case 4:\n message.description = reader.string();\n break;\n case 5:\n if (!(message.counterIds && message.counterIds.length))\n message.counterIds = [];\n if ((tag & 7) === 2) {\n var end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2)\n message.counterIds.push(reader.uint32());\n } else\n message.counterIds.push(reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a GpuCounterBlock message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.GpuCounterDescriptor.GpuCounterBlock\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.GpuCounterDescriptor.GpuCounterBlock} GpuCounterBlock\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n GpuCounterBlock.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a GpuCounterBlock message.\n * @function verify\n * @memberof perfetto.protos.GpuCounterDescriptor.GpuCounterBlock\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n GpuCounterBlock.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.blockId != null && message.hasOwnProperty(\"blockId\"))\n if (!$util.isInteger(message.blockId))\n return \"blockId: integer expected\";\n if (message.blockCapacity != null && message.hasOwnProperty(\"blockCapacity\"))\n if (!$util.isInteger(message.blockCapacity))\n return \"blockCapacity: integer expected\";\n if (message.name != null && message.hasOwnProperty(\"name\"))\n if (!$util.isString(message.name))\n return \"name: string expected\";\n if (message.description != null && message.hasOwnProperty(\"description\"))\n if (!$util.isString(message.description))\n return \"description: string expected\";\n if (message.counterIds != null && message.hasOwnProperty(\"counterIds\")) {\n if (!Array.isArray(message.counterIds))\n return \"counterIds: array expected\";\n for (var i = 0; i < message.counterIds.length; ++i)\n if (!$util.isInteger(message.counterIds[i]))\n return \"counterIds: integer[] expected\";\n }\n return null;\n };\n\n /**\n * Creates a GpuCounterBlock message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.GpuCounterDescriptor.GpuCounterBlock\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.GpuCounterDescriptor.GpuCounterBlock} GpuCounterBlock\n */\n GpuCounterBlock.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.GpuCounterDescriptor.GpuCounterBlock)\n return object;\n var message = new $root.perfetto.protos.GpuCounterDescriptor.GpuCounterBlock();\n if (object.blockId != null)\n message.blockId = object.blockId >>> 0;\n if (object.blockCapacity != null)\n message.blockCapacity = object.blockCapacity >>> 0;\n if (object.name != null)\n message.name = String(object.name);\n if (object.description != null)\n message.description = String(object.description);\n if (object.counterIds) {\n if (!Array.isArray(object.counterIds))\n throw TypeError(\".perfetto.protos.GpuCounterDescriptor.GpuCounterBlock.counterIds: array expected\");\n message.counterIds = [];\n for (var i = 0; i < object.counterIds.length; ++i)\n message.counterIds[i] = object.counterIds[i] >>> 0;\n }\n return message;\n };\n\n /**\n * Creates a plain object from a GpuCounterBlock message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.GpuCounterDescriptor.GpuCounterBlock\n * @static\n * @param {perfetto.protos.GpuCounterDescriptor.GpuCounterBlock} message GpuCounterBlock\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n GpuCounterBlock.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.counterIds = [];\n if (options.defaults) {\n object.blockId = 0;\n object.blockCapacity = 0;\n object.name = \"\";\n object.description = \"\";\n }\n if (message.blockId != null && message.hasOwnProperty(\"blockId\"))\n object.blockId = message.blockId;\n if (message.blockCapacity != null && message.hasOwnProperty(\"blockCapacity\"))\n object.blockCapacity = message.blockCapacity;\n if (message.name != null && message.hasOwnProperty(\"name\"))\n object.name = message.name;\n if (message.description != null && message.hasOwnProperty(\"description\"))\n object.description = message.description;\n if (message.counterIds && message.counterIds.length) {\n object.counterIds = [];\n for (var j = 0; j < message.counterIds.length; ++j)\n object.counterIds[j] = message.counterIds[j];\n }\n return object;\n };\n\n /**\n * Converts this GpuCounterBlock to JSON.\n * @function toJSON\n * @memberof perfetto.protos.GpuCounterDescriptor.GpuCounterBlock\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n GpuCounterBlock.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return GpuCounterBlock;\n })();\n\n /**\n * MeasureUnit enum.\n * @name perfetto.protos.GpuCounterDescriptor.MeasureUnit\n * @enum {number}\n * @property {number} NONE=0 NONE value\n * @property {number} BIT=1 BIT value\n * @property {number} KILOBIT=2 KILOBIT value\n * @property {number} MEGABIT=3 MEGABIT value\n * @property {number} GIGABIT=4 GIGABIT value\n * @property {number} TERABIT=5 TERABIT value\n * @property {number} PETABIT=6 PETABIT value\n * @property {number} BYTE=7 BYTE value\n * @property {number} KILOBYTE=8 KILOBYTE value\n * @property {number} MEGABYTE=9 MEGABYTE value\n * @property {number} GIGABYTE=10 GIGABYTE value\n * @property {number} TERABYTE=11 TERABYTE value\n * @property {number} PETABYTE=12 PETABYTE value\n * @property {number} HERTZ=13 HERTZ value\n * @property {number} KILOHERTZ=14 KILOHERTZ value\n * @property {number} MEGAHERTZ=15 MEGAHERTZ value\n * @property {number} GIGAHERTZ=16 GIGAHERTZ value\n * @property {number} TERAHERTZ=17 TERAHERTZ value\n * @property {number} PETAHERTZ=18 PETAHERTZ value\n * @property {number} NANOSECOND=19 NANOSECOND value\n * @property {number} MICROSECOND=20 MICROSECOND value\n * @property {number} MILLISECOND=21 MILLISECOND value\n * @property {number} SECOND=22 SECOND value\n * @property {number} MINUTE=23 MINUTE value\n * @property {number} HOUR=24 HOUR value\n * @property {number} VERTEX=25 VERTEX value\n * @property {number} PIXEL=26 PIXEL value\n * @property {number} TRIANGLE=27 TRIANGLE value\n * @property {number} PRIMITIVE=38 PRIMITIVE value\n * @property {number} FRAGMENT=39 FRAGMENT value\n * @property {number} MILLIWATT=28 MILLIWATT value\n * @property {number} WATT=29 WATT value\n * @property {number} KILOWATT=30 KILOWATT value\n * @property {number} JOULE=31 JOULE value\n * @property {number} VOLT=32 VOLT value\n * @property {number} AMPERE=33 AMPERE value\n * @property {number} CELSIUS=34 CELSIUS value\n * @property {number} FAHRENHEIT=35 FAHRENHEIT value\n * @property {number} KELVIN=36 KELVIN value\n * @property {number} PERCENT=37 PERCENT value\n * @property {number} INSTRUCTION=40 INSTRUCTION value\n */\n GpuCounterDescriptor.MeasureUnit = (function() {\n var valuesById = {}, values = Object.create(valuesById);\n values[valuesById[0] = \"NONE\"] = 0;\n values[valuesById[1] = \"BIT\"] = 1;\n values[valuesById[2] = \"KILOBIT\"] = 2;\n values[valuesById[3] = \"MEGABIT\"] = 3;\n values[valuesById[4] = \"GIGABIT\"] = 4;\n values[valuesById[5] = \"TERABIT\"] = 5;\n values[valuesById[6] = \"PETABIT\"] = 6;\n values[valuesById[7] = \"BYTE\"] = 7;\n values[valuesById[8] = \"KILOBYTE\"] = 8;\n values[valuesById[9] = \"MEGABYTE\"] = 9;\n values[valuesById[10] = \"GIGABYTE\"] = 10;\n values[valuesById[11] = \"TERABYTE\"] = 11;\n values[valuesById[12] = \"PETABYTE\"] = 12;\n values[valuesById[13] = \"HERTZ\"] = 13;\n values[valuesById[14] = \"KILOHERTZ\"] = 14;\n values[valuesById[15] = \"MEGAHERTZ\"] = 15;\n values[valuesById[16] = \"GIGAHERTZ\"] = 16;\n values[valuesById[17] = \"TERAHERTZ\"] = 17;\n values[valuesById[18] = \"PETAHERTZ\"] = 18;\n values[valuesById[19] = \"NANOSECOND\"] = 19;\n values[valuesById[20] = \"MICROSECOND\"] = 20;\n values[valuesById[21] = \"MILLISECOND\"] = 21;\n values[valuesById[22] = \"SECOND\"] = 22;\n values[valuesById[23] = \"MINUTE\"] = 23;\n values[valuesById[24] = \"HOUR\"] = 24;\n values[valuesById[25] = \"VERTEX\"] = 25;\n values[valuesById[26] = \"PIXEL\"] = 26;\n values[valuesById[27] = \"TRIANGLE\"] = 27;\n values[valuesById[38] = \"PRIMITIVE\"] = 38;\n values[valuesById[39] = \"FRAGMENT\"] = 39;\n values[valuesById[28] = \"MILLIWATT\"] = 28;\n values[valuesById[29] = \"WATT\"] = 29;\n values[valuesById[30] = \"KILOWATT\"] = 30;\n values[valuesById[31] = \"JOULE\"] = 31;\n values[valuesById[32] = \"VOLT\"] = 32;\n values[valuesById[33] = \"AMPERE\"] = 33;\n values[valuesById[34] = \"CELSIUS\"] = 34;\n values[valuesById[35] = \"FAHRENHEIT\"] = 35;\n values[valuesById[36] = \"KELVIN\"] = 36;\n values[valuesById[37] = \"PERCENT\"] = 37;\n values[valuesById[40] = \"INSTRUCTION\"] = 40;\n return values;\n })();\n\n return GpuCounterDescriptor;\n })();\n\n protos.TrackEventCategory = (function() {\n\n /**\n * Properties of a TrackEventCategory.\n * @memberof perfetto.protos\n * @interface ITrackEventCategory\n * @property {string|null} [name] TrackEventCategory name\n * @property {string|null} [description] TrackEventCategory description\n * @property {Array.<string>|null} [tags] TrackEventCategory tags\n */\n\n /**\n * Constructs a new TrackEventCategory.\n * @memberof perfetto.protos\n * @classdesc Represents a TrackEventCategory.\n * @implements ITrackEventCategory\n * @constructor\n * @param {perfetto.protos.ITrackEventCategory=} [properties] Properties to set\n */\n function TrackEventCategory(properties) {\n this.tags = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * TrackEventCategory name.\n * @member {string} name\n * @memberof perfetto.protos.TrackEventCategory\n * @instance\n */\n TrackEventCategory.prototype.name = \"\";\n\n /**\n * TrackEventCategory description.\n * @member {string} description\n * @memberof perfetto.protos.TrackEventCategory\n * @instance\n */\n TrackEventCategory.prototype.description = \"\";\n\n /**\n * TrackEventCategory tags.\n * @member {Array.<string>} tags\n * @memberof perfetto.protos.TrackEventCategory\n * @instance\n */\n TrackEventCategory.prototype.tags = $util.emptyArray;\n\n /**\n * Creates a new TrackEventCategory instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.TrackEventCategory\n * @static\n * @param {perfetto.protos.ITrackEventCategory=} [properties] Properties to set\n * @returns {perfetto.protos.TrackEventCategory} TrackEventCategory instance\n */\n TrackEventCategory.create = function create(properties) {\n return new TrackEventCategory(properties);\n };\n\n /**\n * Encodes the specified TrackEventCategory message. Does not implicitly {@link perfetto.protos.TrackEventCategory.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.TrackEventCategory\n * @static\n * @param {perfetto.protos.ITrackEventCategory} message TrackEventCategory message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n TrackEventCategory.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.name != null && Object.hasOwnProperty.call(message, \"name\"))\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.name);\n if (message.description != null && Object.hasOwnProperty.call(message, \"description\"))\n writer.uint32(/* id 2, wireType 2 =*/18).string(message.description);\n if (message.tags != null && message.tags.length)\n for (var i = 0; i < message.tags.length; ++i)\n writer.uint32(/* id 3, wireType 2 =*/26).string(message.tags[i]);\n return writer;\n };\n\n /**\n * Encodes the specified TrackEventCategory message, length delimited. Does not implicitly {@link perfetto.protos.TrackEventCategory.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.TrackEventCategory\n * @static\n * @param {perfetto.protos.ITrackEventCategory} message TrackEventCategory message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n TrackEventCategory.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a TrackEventCategory message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.TrackEventCategory\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.TrackEventCategory} TrackEventCategory\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n TrackEventCategory.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.TrackEventCategory();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.name = reader.string();\n break;\n case 2:\n message.description = reader.string();\n break;\n case 3:\n if (!(message.tags && message.tags.length))\n message.tags = [];\n message.tags.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a TrackEventCategory message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.TrackEventCategory\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.TrackEventCategory} TrackEventCategory\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n TrackEventCategory.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a TrackEventCategory message.\n * @function verify\n * @memberof perfetto.protos.TrackEventCategory\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n TrackEventCategory.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.name != null && message.hasOwnProperty(\"name\"))\n if (!$util.isString(message.name))\n return \"name: string expected\";\n if (message.description != null && message.hasOwnProperty(\"description\"))\n if (!$util.isString(message.description))\n return \"description: string expected\";\n if (message.tags != null && message.hasOwnProperty(\"tags\")) {\n if (!Array.isArray(message.tags))\n return \"tags: array expected\";\n for (var i = 0; i < message.tags.length; ++i)\n if (!$util.isString(message.tags[i]))\n return \"tags: string[] expected\";\n }\n return null;\n };\n\n /**\n * Creates a TrackEventCategory message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.TrackEventCategory\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.TrackEventCategory} TrackEventCategory\n */\n TrackEventCategory.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.TrackEventCategory)\n return object;\n var message = new $root.perfetto.protos.TrackEventCategory();\n if (object.name != null)\n message.name = String(object.name);\n if (object.description != null)\n message.description = String(object.description);\n if (object.tags) {\n if (!Array.isArray(object.tags))\n throw TypeError(\".perfetto.protos.TrackEventCategory.tags: array expected\");\n message.tags = [];\n for (var i = 0; i < object.tags.length; ++i)\n message.tags[i] = String(object.tags[i]);\n }\n return message;\n };\n\n /**\n * Creates a plain object from a TrackEventCategory message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.TrackEventCategory\n * @static\n * @param {perfetto.protos.TrackEventCategory} message TrackEventCategory\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n TrackEventCategory.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.tags = [];\n if (options.defaults) {\n object.name = \"\";\n object.description = \"\";\n }\n if (message.name != null && message.hasOwnProperty(\"name\"))\n object.name = message.name;\n if (message.description != null && message.hasOwnProperty(\"description\"))\n object.description = message.description;\n if (message.tags && message.tags.length) {\n object.tags = [];\n for (var j = 0; j < message.tags.length; ++j)\n object.tags[j] = message.tags[j];\n }\n return object;\n };\n\n /**\n * Converts this TrackEventCategory to JSON.\n * @function toJSON\n * @memberof perfetto.protos.TrackEventCategory\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n TrackEventCategory.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return TrackEventCategory;\n })();\n\n protos.TrackEventDescriptor = (function() {\n\n /**\n * Properties of a TrackEventDescriptor.\n * @memberof perfetto.protos\n * @interface ITrackEventDescriptor\n * @property {Array.<perfetto.protos.ITrackEventCategory>|null} [availableCategories] TrackEventDescriptor availableCategories\n */\n\n /**\n * Constructs a new TrackEventDescriptor.\n * @memberof perfetto.protos\n * @classdesc Represents a TrackEventDescriptor.\n * @implements ITrackEventDescriptor\n * @constructor\n * @param {perfetto.protos.ITrackEventDescriptor=} [properties] Properties to set\n */\n function TrackEventDescriptor(properties) {\n this.availableCategories = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * TrackEventDescriptor availableCategories.\n * @member {Array.<perfetto.protos.ITrackEventCategory>} availableCategories\n * @memberof perfetto.protos.TrackEventDescriptor\n * @instance\n */\n TrackEventDescriptor.prototype.availableCategories = $util.emptyArray;\n\n /**\n * Creates a new TrackEventDescriptor instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.TrackEventDescriptor\n * @static\n * @param {perfetto.protos.ITrackEventDescriptor=} [properties] Properties to set\n * @returns {perfetto.protos.TrackEventDescriptor} TrackEventDescriptor instance\n */\n TrackEventDescriptor.create = function create(properties) {\n return new TrackEventDescriptor(properties);\n };\n\n /**\n * Encodes the specified TrackEventDescriptor message. Does not implicitly {@link perfetto.protos.TrackEventDescriptor.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.TrackEventDescriptor\n * @static\n * @param {perfetto.protos.ITrackEventDescriptor} message TrackEventDescriptor message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n TrackEventDescriptor.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.availableCategories != null && message.availableCategories.length)\n for (var i = 0; i < message.availableCategories.length; ++i)\n $root.perfetto.protos.TrackEventCategory.encode(message.availableCategories[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified TrackEventDescriptor message, length delimited. Does not implicitly {@link perfetto.protos.TrackEventDescriptor.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.TrackEventDescriptor\n * @static\n * @param {perfetto.protos.ITrackEventDescriptor} message TrackEventDescriptor message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n TrackEventDescriptor.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a TrackEventDescriptor message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.TrackEventDescriptor\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.TrackEventDescriptor} TrackEventDescriptor\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n TrackEventDescriptor.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.TrackEventDescriptor();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (!(message.availableCategories && message.availableCategories.length))\n message.availableCategories = [];\n message.availableCategories.push($root.perfetto.protos.TrackEventCategory.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a TrackEventDescriptor message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.TrackEventDescriptor\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.TrackEventDescriptor} TrackEventDescriptor\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n TrackEventDescriptor.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a TrackEventDescriptor message.\n * @function verify\n * @memberof perfetto.protos.TrackEventDescriptor\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n TrackEventDescriptor.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.availableCategories != null && message.hasOwnProperty(\"availableCategories\")) {\n if (!Array.isArray(message.availableCategories))\n return \"availableCategories: array expected\";\n for (var i = 0; i < message.availableCategories.length; ++i) {\n var error = $root.perfetto.protos.TrackEventCategory.verify(message.availableCategories[i]);\n if (error)\n return \"availableCategories.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates a TrackEventDescriptor message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.TrackEventDescriptor\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.TrackEventDescriptor} TrackEventDescriptor\n */\n TrackEventDescriptor.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.TrackEventDescriptor)\n return object;\n var message = new $root.perfetto.protos.TrackEventDescriptor();\n if (object.availableCategories) {\n if (!Array.isArray(object.availableCategories))\n throw TypeError(\".perfetto.protos.TrackEventDescriptor.availableCategories: array expected\");\n message.availableCategories = [];\n for (var i = 0; i < object.availableCategories.length; ++i) {\n if (typeof object.availableCategories[i] !== \"object\")\n throw TypeError(\".perfetto.protos.TrackEventDescriptor.availableCategories: object expected\");\n message.availableCategories[i] = $root.perfetto.protos.TrackEventCategory.fromObject(object.availableCategories[i]);\n }\n }\n return message;\n };\n\n /**\n * Creates a plain object from a TrackEventDescriptor message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.TrackEventDescriptor\n * @static\n * @param {perfetto.protos.TrackEventDescriptor} message TrackEventDescriptor\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n TrackEventDescriptor.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.availableCategories = [];\n if (message.availableCategories && message.availableCategories.length) {\n object.availableCategories = [];\n for (var j = 0; j < message.availableCategories.length; ++j)\n object.availableCategories[j] = $root.perfetto.protos.TrackEventCategory.toObject(message.availableCategories[j], options);\n }\n return object;\n };\n\n /**\n * Converts this TrackEventDescriptor to JSON.\n * @function toJSON\n * @memberof perfetto.protos.TrackEventDescriptor\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n TrackEventDescriptor.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return TrackEventDescriptor;\n })();\n\n protos.DataSourceDescriptor = (function() {\n\n /**\n * Properties of a DataSourceDescriptor.\n * @memberof perfetto.protos\n * @interface IDataSourceDescriptor\n * @property {string|null} [name] DataSourceDescriptor name\n * @property {number|null} [id] DataSourceDescriptor id\n * @property {boolean|null} [willNotifyOnStop] DataSourceDescriptor willNotifyOnStop\n * @property {boolean|null} [willNotifyOnStart] DataSourceDescriptor willNotifyOnStart\n * @property {boolean|null} [handlesIncrementalStateClear] DataSourceDescriptor handlesIncrementalStateClear\n * @property {perfetto.protos.IGpuCounterDescriptor|null} [gpuCounterDescriptor] DataSourceDescriptor gpuCounterDescriptor\n * @property {perfetto.protos.ITrackEventDescriptor|null} [trackEventDescriptor] DataSourceDescriptor trackEventDescriptor\n */\n\n /**\n * Constructs a new DataSourceDescriptor.\n * @memberof perfetto.protos\n * @classdesc Represents a DataSourceDescriptor.\n * @implements IDataSourceDescriptor\n * @constructor\n * @param {perfetto.protos.IDataSourceDescriptor=} [properties] Properties to set\n */\n function DataSourceDescriptor(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * DataSourceDescriptor name.\n * @member {string} name\n * @memberof perfetto.protos.DataSourceDescriptor\n * @instance\n */\n DataSourceDescriptor.prototype.name = \"\";\n\n /**\n * DataSourceDescriptor id.\n * @member {number} id\n * @memberof perfetto.protos.DataSourceDescriptor\n * @instance\n */\n DataSourceDescriptor.prototype.id = $util.Long ? $util.Long.fromBits(0,0,true) : 0;\n\n /**\n * DataSourceDescriptor willNotifyOnStop.\n * @member {boolean} willNotifyOnStop\n * @memberof perfetto.protos.DataSourceDescriptor\n * @instance\n */\n DataSourceDescriptor.prototype.willNotifyOnStop = false;\n\n /**\n * DataSourceDescriptor willNotifyOnStart.\n * @member {boolean} willNotifyOnStart\n * @memberof perfetto.protos.DataSourceDescriptor\n * @instance\n */\n DataSourceDescriptor.prototype.willNotifyOnStart = false;\n\n /**\n * DataSourceDescriptor handlesIncrementalStateClear.\n * @member {boolean} handlesIncrementalStateClear\n * @memberof perfetto.protos.DataSourceDescriptor\n * @instance\n */\n DataSourceDescriptor.prototype.handlesIncrementalStateClear = false;\n\n /**\n * DataSourceDescriptor gpuCounterDescriptor.\n * @member {perfetto.protos.IGpuCounterDescriptor|null|undefined} gpuCounterDescriptor\n * @memberof perfetto.protos.DataSourceDescriptor\n * @instance\n */\n DataSourceDescriptor.prototype.gpuCounterDescriptor = null;\n\n /**\n * DataSourceDescriptor trackEventDescriptor.\n * @member {perfetto.protos.ITrackEventDescriptor|null|undefined} trackEventDescriptor\n * @memberof perfetto.protos.DataSourceDescriptor\n * @instance\n */\n DataSourceDescriptor.prototype.trackEventDescriptor = null;\n\n /**\n * Creates a new DataSourceDescriptor instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.DataSourceDescriptor\n * @static\n * @param {perfetto.protos.IDataSourceDescriptor=} [properties] Properties to set\n * @returns {perfetto.protos.DataSourceDescriptor} DataSourceDescriptor instance\n */\n DataSourceDescriptor.create = function create(properties) {\n return new DataSourceDescriptor(properties);\n };\n\n /**\n * Encodes the specified DataSourceDescriptor message. Does not implicitly {@link perfetto.protos.DataSourceDescriptor.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.DataSourceDescriptor\n * @static\n * @param {perfetto.protos.IDataSourceDescriptor} message DataSourceDescriptor message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n DataSourceDescriptor.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.name != null && Object.hasOwnProperty.call(message, \"name\"))\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.name);\n if (message.willNotifyOnStop != null && Object.hasOwnProperty.call(message, \"willNotifyOnStop\"))\n writer.uint32(/* id 2, wireType 0 =*/16).bool(message.willNotifyOnStop);\n if (message.willNotifyOnStart != null && Object.hasOwnProperty.call(message, \"willNotifyOnStart\"))\n writer.uint32(/* id 3, wireType 0 =*/24).bool(message.willNotifyOnStart);\n if (message.handlesIncrementalStateClear != null && Object.hasOwnProperty.call(message, \"handlesIncrementalStateClear\"))\n writer.uint32(/* id 4, wireType 0 =*/32).bool(message.handlesIncrementalStateClear);\n if (message.gpuCounterDescriptor != null && Object.hasOwnProperty.call(message, \"gpuCounterDescriptor\"))\n $root.perfetto.protos.GpuCounterDescriptor.encode(message.gpuCounterDescriptor, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim();\n if (message.trackEventDescriptor != null && Object.hasOwnProperty.call(message, \"trackEventDescriptor\"))\n $root.perfetto.protos.TrackEventDescriptor.encode(message.trackEventDescriptor, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim();\n if (message.id != null && Object.hasOwnProperty.call(message, \"id\"))\n writer.uint32(/* id 7, wireType 0 =*/56).uint64(message.id);\n return writer;\n };\n\n /**\n * Encodes the specified DataSourceDescriptor message, length delimited. Does not implicitly {@link perfetto.protos.DataSourceDescriptor.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.DataSourceDescriptor\n * @static\n * @param {perfetto.protos.IDataSourceDescriptor} message DataSourceDescriptor message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n DataSourceDescriptor.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a DataSourceDescriptor message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.DataSourceDescriptor\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.DataSourceDescriptor} DataSourceDescriptor\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n DataSourceDescriptor.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.DataSourceDescriptor();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.name = reader.string();\n break;\n case 7:\n message.id = reader.uint64();\n break;\n case 2:\n message.willNotifyOnStop = reader.bool();\n break;\n case 3:\n message.willNotifyOnStart = reader.bool();\n break;\n case 4:\n message.handlesIncrementalStateClear = reader.bool();\n break;\n case 5:\n message.gpuCounterDescriptor = $root.perfetto.protos.GpuCounterDescriptor.decode(reader, reader.uint32());\n break;\n case 6:\n message.trackEventDescriptor = $root.perfetto.protos.TrackEventDescriptor.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a DataSourceDescriptor message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.DataSourceDescriptor\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.DataSourceDescriptor} DataSourceDescriptor\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n DataSourceDescriptor.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a DataSourceDescriptor message.\n * @function verify\n * @memberof perfetto.protos.DataSourceDescriptor\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n DataSourceDescriptor.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.name != null && message.hasOwnProperty(\"name\"))\n if (!$util.isString(message.name))\n return \"name: string expected\";\n if (message.id != null && message.hasOwnProperty(\"id\"))\n if (!$util.isInteger(message.id) && !(message.id && $util.isInteger(message.id.low) && $util.isInteger(message.id.high)))\n return \"id: integer|Long expected\";\n if (message.willNotifyOnStop != null && message.hasOwnProperty(\"willNotifyOnStop\"))\n if (typeof message.willNotifyOnStop !== \"boolean\")\n return \"willNotifyOnStop: boolean expected\";\n if (message.willNotifyOnStart != null && message.hasOwnProperty(\"willNotifyOnStart\"))\n if (typeof message.willNotifyOnStart !== \"boolean\")\n return \"willNotifyOnStart: boolean expected\";\n if (message.handlesIncrementalStateClear != null && message.hasOwnProperty(\"handlesIncrementalStateClear\"))\n if (typeof message.handlesIncrementalStateClear !== \"boolean\")\n return \"handlesIncrementalStateClear: boolean expected\";\n if (message.gpuCounterDescriptor != null && message.hasOwnProperty(\"gpuCounterDescriptor\")) {\n var error = $root.perfetto.protos.GpuCounterDescriptor.verify(message.gpuCounterDescriptor);\n if (error)\n return \"gpuCounterDescriptor.\" + error;\n }\n if (message.trackEventDescriptor != null && message.hasOwnProperty(\"trackEventDescriptor\")) {\n var error = $root.perfetto.protos.TrackEventDescriptor.verify(message.trackEventDescriptor);\n if (error)\n return \"trackEventDescriptor.\" + error;\n }\n return null;\n };\n\n /**\n * Creates a DataSourceDescriptor message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.DataSourceDescriptor\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.DataSourceDescriptor} DataSourceDescriptor\n */\n DataSourceDescriptor.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.DataSourceDescriptor)\n return object;\n var message = new $root.perfetto.protos.DataSourceDescriptor();\n if (object.name != null)\n message.name = String(object.name);\n if (object.id != null)\n if ($util.Long)\n (message.id = $util.Long.fromValue(object.id)).unsigned = true;\n else if (typeof object.id === \"string\")\n message.id = parseInt(object.id, 10);\n else if (typeof object.id === \"number\")\n message.id = object.id;\n else if (typeof object.id === \"object\")\n message.id = new $util.LongBits(object.id.low >>> 0, object.id.high >>> 0).toNumber(true);\n if (object.willNotifyOnStop != null)\n message.willNotifyOnStop = Boolean(object.willNotifyOnStop);\n if (object.willNotifyOnStart != null)\n message.willNotifyOnStart = Boolean(object.willNotifyOnStart);\n if (object.handlesIncrementalStateClear != null)\n message.handlesIncrementalStateClear = Boolean(object.handlesIncrementalStateClear);\n if (object.gpuCounterDescriptor != null) {\n if (typeof object.gpuCounterDescriptor !== \"object\")\n throw TypeError(\".perfetto.protos.DataSourceDescriptor.gpuCounterDescriptor: object expected\");\n message.gpuCounterDescriptor = $root.perfetto.protos.GpuCounterDescriptor.fromObject(object.gpuCounterDescriptor);\n }\n if (object.trackEventDescriptor != null) {\n if (typeof object.trackEventDescriptor !== \"object\")\n throw TypeError(\".perfetto.protos.DataSourceDescriptor.trackEventDescriptor: object expected\");\n message.trackEventDescriptor = $root.perfetto.protos.TrackEventDescriptor.fromObject(object.trackEventDescriptor);\n }\n return message;\n };\n\n /**\n * Creates a plain object from a DataSourceDescriptor message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.DataSourceDescriptor\n * @static\n * @param {perfetto.protos.DataSourceDescriptor} message DataSourceDescriptor\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n DataSourceDescriptor.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.name = \"\";\n object.willNotifyOnStop = false;\n object.willNotifyOnStart = false;\n object.handlesIncrementalStateClear = false;\n object.gpuCounterDescriptor = null;\n object.trackEventDescriptor = null;\n if ($util.Long) {\n var long = new $util.Long(0, 0, true);\n object.id = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.id = options.longs === String ? \"0\" : 0;\n }\n if (message.name != null && message.hasOwnProperty(\"name\"))\n object.name = message.name;\n if (message.willNotifyOnStop != null && message.hasOwnProperty(\"willNotifyOnStop\"))\n object.willNotifyOnStop = message.willNotifyOnStop;\n if (message.willNotifyOnStart != null && message.hasOwnProperty(\"willNotifyOnStart\"))\n object.willNotifyOnStart = message.willNotifyOnStart;\n if (message.handlesIncrementalStateClear != null && message.hasOwnProperty(\"handlesIncrementalStateClear\"))\n object.handlesIncrementalStateClear = message.handlesIncrementalStateClear;\n if (message.gpuCounterDescriptor != null && message.hasOwnProperty(\"gpuCounterDescriptor\"))\n object.gpuCounterDescriptor = $root.perfetto.protos.GpuCounterDescriptor.toObject(message.gpuCounterDescriptor, options);\n if (message.trackEventDescriptor != null && message.hasOwnProperty(\"trackEventDescriptor\"))\n object.trackEventDescriptor = $root.perfetto.protos.TrackEventDescriptor.toObject(message.trackEventDescriptor, options);\n if (message.id != null && message.hasOwnProperty(\"id\"))\n if (typeof message.id === \"number\")\n object.id = options.longs === String ? String(message.id) : message.id;\n else\n object.id = options.longs === String ? $util.Long.prototype.toString.call(message.id) : options.longs === Number ? new $util.LongBits(message.id.low >>> 0, message.id.high >>> 0).toNumber(true) : message.id;\n return object;\n };\n\n /**\n * Converts this DataSourceDescriptor to JSON.\n * @function toJSON\n * @memberof perfetto.protos.DataSourceDescriptor\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n DataSourceDescriptor.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return DataSourceDescriptor;\n })();\n\n protos.TracingServiceState = (function() {\n\n /**\n * Properties of a TracingServiceState.\n * @memberof perfetto.protos\n * @interface ITracingServiceState\n * @property {Array.<perfetto.protos.TracingServiceState.IProducer>|null} [producers] TracingServiceState producers\n * @property {Array.<perfetto.protos.TracingServiceState.IDataSource>|null} [dataSources] TracingServiceState dataSources\n * @property {number|null} [numSessions] TracingServiceState numSessions\n * @property {number|null} [numSessionsStarted] TracingServiceState numSessionsStarted\n * @property {string|null} [tracingServiceVersion] TracingServiceState tracingServiceVersion\n */\n\n /**\n * Constructs a new TracingServiceState.\n * @memberof perfetto.protos\n * @classdesc Represents a TracingServiceState.\n * @implements ITracingServiceState\n * @constructor\n * @param {perfetto.protos.ITracingServiceState=} [properties] Properties to set\n */\n function TracingServiceState(properties) {\n this.producers = [];\n this.dataSources = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * TracingServiceState producers.\n * @member {Array.<perfetto.protos.TracingServiceState.IProducer>} producers\n * @memberof perfetto.protos.TracingServiceState\n * @instance\n */\n TracingServiceState.prototype.producers = $util.emptyArray;\n\n /**\n * TracingServiceState dataSources.\n * @member {Array.<perfetto.protos.TracingServiceState.IDataSource>} dataSources\n * @memberof perfetto.protos.TracingServiceState\n * @instance\n */\n TracingServiceState.prototype.dataSources = $util.emptyArray;\n\n /**\n * TracingServiceState numSessions.\n * @member {number} numSessions\n * @memberof perfetto.protos.TracingServiceState\n * @instance\n */\n TracingServiceState.prototype.numSessions = 0;\n\n /**\n * TracingServiceState numSessionsStarted.\n * @member {number} numSessionsStarted\n * @memberof perfetto.protos.TracingServiceState\n * @instance\n */\n TracingServiceState.prototype.numSessionsStarted = 0;\n\n /**\n * TracingServiceState tracingServiceVersion.\n * @member {string} tracingServiceVersion\n * @memberof perfetto.protos.TracingServiceState\n * @instance\n */\n TracingServiceState.prototype.tracingServiceVersion = \"\";\n\n /**\n * Creates a new TracingServiceState instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.TracingServiceState\n * @static\n * @param {perfetto.protos.ITracingServiceState=} [properties] Properties to set\n * @returns {perfetto.protos.TracingServiceState} TracingServiceState instance\n */\n TracingServiceState.create = function create(properties) {\n return new TracingServiceState(properties);\n };\n\n /**\n * Encodes the specified TracingServiceState message. Does not implicitly {@link perfetto.protos.TracingServiceState.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.TracingServiceState\n * @static\n * @param {perfetto.protos.ITracingServiceState} message TracingServiceState message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n TracingServiceState.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.producers != null && message.producers.length)\n for (var i = 0; i < message.producers.length; ++i)\n $root.perfetto.protos.TracingServiceState.Producer.encode(message.producers[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n if (message.dataSources != null && message.dataSources.length)\n for (var i = 0; i < message.dataSources.length; ++i)\n $root.perfetto.protos.TracingServiceState.DataSource.encode(message.dataSources[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n if (message.numSessions != null && Object.hasOwnProperty.call(message, \"numSessions\"))\n writer.uint32(/* id 3, wireType 0 =*/24).int32(message.numSessions);\n if (message.numSessionsStarted != null && Object.hasOwnProperty.call(message, \"numSessionsStarted\"))\n writer.uint32(/* id 4, wireType 0 =*/32).int32(message.numSessionsStarted);\n if (message.tracingServiceVersion != null && Object.hasOwnProperty.call(message, \"tracingServiceVersion\"))\n writer.uint32(/* id 5, wireType 2 =*/42).string(message.tracingServiceVersion);\n return writer;\n };\n\n /**\n * Encodes the specified TracingServiceState message, length delimited. Does not implicitly {@link perfetto.protos.TracingServiceState.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.TracingServiceState\n * @static\n * @param {perfetto.protos.ITracingServiceState} message TracingServiceState message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n TracingServiceState.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a TracingServiceState message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.TracingServiceState\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.TracingServiceState} TracingServiceState\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n TracingServiceState.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.TracingServiceState();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (!(message.producers && message.producers.length))\n message.producers = [];\n message.producers.push($root.perfetto.protos.TracingServiceState.Producer.decode(reader, reader.uint32()));\n break;\n case 2:\n if (!(message.dataSources && message.dataSources.length))\n message.dataSources = [];\n message.dataSources.push($root.perfetto.protos.TracingServiceState.DataSource.decode(reader, reader.uint32()));\n break;\n case 3:\n message.numSessions = reader.int32();\n break;\n case 4:\n message.numSessionsStarted = reader.int32();\n break;\n case 5:\n message.tracingServiceVersion = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a TracingServiceState message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.TracingServiceState\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.TracingServiceState} TracingServiceState\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n TracingServiceState.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a TracingServiceState message.\n * @function verify\n * @memberof perfetto.protos.TracingServiceState\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n TracingServiceState.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.producers != null && message.hasOwnProperty(\"producers\")) {\n if (!Array.isArray(message.producers))\n return \"producers: array expected\";\n for (var i = 0; i < message.producers.length; ++i) {\n var error = $root.perfetto.protos.TracingServiceState.Producer.verify(message.producers[i]);\n if (error)\n return \"producers.\" + error;\n }\n }\n if (message.dataSources != null && message.hasOwnProperty(\"dataSources\")) {\n if (!Array.isArray(message.dataSources))\n return \"dataSources: array expected\";\n for (var i = 0; i < message.dataSources.length; ++i) {\n var error = $root.perfetto.protos.TracingServiceState.DataSource.verify(message.dataSources[i]);\n if (error)\n return \"dataSources.\" + error;\n }\n }\n if (message.numSessions != null && message.hasOwnProperty(\"numSessions\"))\n if (!$util.isInteger(message.numSessions))\n return \"numSessions: integer expected\";\n if (message.numSessionsStarted != null && message.hasOwnProperty(\"numSessionsStarted\"))\n if (!$util.isInteger(message.numSessionsStarted))\n return \"numSessionsStarted: integer expected\";\n if (message.tracingServiceVersion != null && message.hasOwnProperty(\"tracingServiceVersion\"))\n if (!$util.isString(message.tracingServiceVersion))\n return \"tracingServiceVersion: string expected\";\n return null;\n };\n\n /**\n * Creates a TracingServiceState message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.TracingServiceState\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.TracingServiceState} TracingServiceState\n */\n TracingServiceState.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.TracingServiceState)\n return object;\n var message = new $root.perfetto.protos.TracingServiceState();\n if (object.producers) {\n if (!Array.isArray(object.producers))\n throw TypeError(\".perfetto.protos.TracingServiceState.producers: array expected\");\n message.producers = [];\n for (var i = 0; i < object.producers.length; ++i) {\n if (typeof object.producers[i] !== \"object\")\n throw TypeError(\".perfetto.protos.TracingServiceState.producers: object expected\");\n message.producers[i] = $root.perfetto.protos.TracingServiceState.Producer.fromObject(object.producers[i]);\n }\n }\n if (object.dataSources) {\n if (!Array.isArray(object.dataSources))\n throw TypeError(\".perfetto.protos.TracingServiceState.dataSources: array expected\");\n message.dataSources = [];\n for (var i = 0; i < object.dataSources.length; ++i) {\n if (typeof object.dataSources[i] !== \"object\")\n throw TypeError(\".perfetto.protos.TracingServiceState.dataSources: object expected\");\n message.dataSources[i] = $root.perfetto.protos.TracingServiceState.DataSource.fromObject(object.dataSources[i]);\n }\n }\n if (object.numSessions != null)\n message.numSessions = object.numSessions | 0;\n if (object.numSessionsStarted != null)\n message.numSessionsStarted = object.numSessionsStarted | 0;\n if (object.tracingServiceVersion != null)\n message.tracingServiceVersion = String(object.tracingServiceVersion);\n return message;\n };\n\n /**\n * Creates a plain object from a TracingServiceState message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.TracingServiceState\n * @static\n * @param {perfetto.protos.TracingServiceState} message TracingServiceState\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n TracingServiceState.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults) {\n object.producers = [];\n object.dataSources = [];\n }\n if (options.defaults) {\n object.numSessions = 0;\n object.numSessionsStarted = 0;\n object.tracingServiceVersion = \"\";\n }\n if (message.producers && message.producers.length) {\n object.producers = [];\n for (var j = 0; j < message.producers.length; ++j)\n object.producers[j] = $root.perfetto.protos.TracingServiceState.Producer.toObject(message.producers[j], options);\n }\n if (message.dataSources && message.dataSources.length) {\n object.dataSources = [];\n for (var j = 0; j < message.dataSources.length; ++j)\n object.dataSources[j] = $root.perfetto.protos.TracingServiceState.DataSource.toObject(message.dataSources[j], options);\n }\n if (message.numSessions != null && message.hasOwnProperty(\"numSessions\"))\n object.numSessions = message.numSessions;\n if (message.numSessionsStarted != null && message.hasOwnProperty(\"numSessionsStarted\"))\n object.numSessionsStarted = message.numSessionsStarted;\n if (message.tracingServiceVersion != null && message.hasOwnProperty(\"tracingServiceVersion\"))\n object.tracingServiceVersion = message.tracingServiceVersion;\n return object;\n };\n\n /**\n * Converts this TracingServiceState to JSON.\n * @function toJSON\n * @memberof perfetto.protos.TracingServiceState\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n TracingServiceState.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n TracingServiceState.Producer = (function() {\n\n /**\n * Properties of a Producer.\n * @memberof perfetto.protos.TracingServiceState\n * @interface IProducer\n * @property {number|null} [id] Producer id\n * @property {string|null} [name] Producer name\n * @property {number|null} [uid] Producer uid\n * @property {string|null} [sdkVersion] Producer sdkVersion\n */\n\n /**\n * Constructs a new Producer.\n * @memberof perfetto.protos.TracingServiceState\n * @classdesc Represents a Producer.\n * @implements IProducer\n * @constructor\n * @param {perfetto.protos.TracingServiceState.IProducer=} [properties] Properties to set\n */\n function Producer(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * Producer id.\n * @member {number} id\n * @memberof perfetto.protos.TracingServiceState.Producer\n * @instance\n */\n Producer.prototype.id = 0;\n\n /**\n * Producer name.\n * @member {string} name\n * @memberof perfetto.protos.TracingServiceState.Producer\n * @instance\n */\n Producer.prototype.name = \"\";\n\n /**\n * Producer uid.\n * @member {number} uid\n * @memberof perfetto.protos.TracingServiceState.Producer\n * @instance\n */\n Producer.prototype.uid = 0;\n\n /**\n * Producer sdkVersion.\n * @member {string} sdkVersion\n * @memberof perfetto.protos.TracingServiceState.Producer\n * @instance\n */\n Producer.prototype.sdkVersion = \"\";\n\n /**\n * Creates a new Producer instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.TracingServiceState.Producer\n * @static\n * @param {perfetto.protos.TracingServiceState.IProducer=} [properties] Properties to set\n * @returns {perfetto.protos.TracingServiceState.Producer} Producer instance\n */\n Producer.create = function create(properties) {\n return new Producer(properties);\n };\n\n /**\n * Encodes the specified Producer message. Does not implicitly {@link perfetto.protos.TracingServiceState.Producer.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.TracingServiceState.Producer\n * @static\n * @param {perfetto.protos.TracingServiceState.IProducer} message Producer message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Producer.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.id != null && Object.hasOwnProperty.call(message, \"id\"))\n writer.uint32(/* id 1, wireType 0 =*/8).int32(message.id);\n if (message.name != null && Object.hasOwnProperty.call(message, \"name\"))\n writer.uint32(/* id 2, wireType 2 =*/18).string(message.name);\n if (message.uid != null && Object.hasOwnProperty.call(message, \"uid\"))\n writer.uint32(/* id 3, wireType 0 =*/24).int32(message.uid);\n if (message.sdkVersion != null && Object.hasOwnProperty.call(message, \"sdkVersion\"))\n writer.uint32(/* id 4, wireType 2 =*/34).string(message.sdkVersion);\n return writer;\n };\n\n /**\n * Encodes the specified Producer message, length delimited. Does not implicitly {@link perfetto.protos.TracingServiceState.Producer.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.TracingServiceState.Producer\n * @static\n * @param {perfetto.protos.TracingServiceState.IProducer} message Producer message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Producer.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a Producer message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.TracingServiceState.Producer\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.TracingServiceState.Producer} Producer\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Producer.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.TracingServiceState.Producer();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.id = reader.int32();\n break;\n case 2:\n message.name = reader.string();\n break;\n case 3:\n message.uid = reader.int32();\n break;\n case 4:\n message.sdkVersion = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a Producer message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.TracingServiceState.Producer\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.TracingServiceState.Producer} Producer\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Producer.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a Producer message.\n * @function verify\n * @memberof perfetto.protos.TracingServiceState.Producer\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n Producer.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.id != null && message.hasOwnProperty(\"id\"))\n if (!$util.isInteger(message.id))\n return \"id: integer expected\";\n if (message.name != null && message.hasOwnProperty(\"name\"))\n if (!$util.isString(message.name))\n return \"name: string expected\";\n if (message.uid != null && message.hasOwnProperty(\"uid\"))\n if (!$util.isInteger(message.uid))\n return \"uid: integer expected\";\n if (message.sdkVersion != null && message.hasOwnProperty(\"sdkVersion\"))\n if (!$util.isString(message.sdkVersion))\n return \"sdkVersion: string expected\";\n return null;\n };\n\n /**\n * Creates a Producer message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.TracingServiceState.Producer\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.TracingServiceState.Producer} Producer\n */\n Producer.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.TracingServiceState.Producer)\n return object;\n var message = new $root.perfetto.protos.TracingServiceState.Producer();\n if (object.id != null)\n message.id = object.id | 0;\n if (object.name != null)\n message.name = String(object.name);\n if (object.uid != null)\n message.uid = object.uid | 0;\n if (object.sdkVersion != null)\n message.sdkVersion = String(object.sdkVersion);\n return message;\n };\n\n /**\n * Creates a plain object from a Producer message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.TracingServiceState.Producer\n * @static\n * @param {perfetto.protos.TracingServiceState.Producer} message Producer\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n Producer.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.id = 0;\n object.name = \"\";\n object.uid = 0;\n object.sdkVersion = \"\";\n }\n if (message.id != null && message.hasOwnProperty(\"id\"))\n object.id = message.id;\n if (message.name != null && message.hasOwnProperty(\"name\"))\n object.name = message.name;\n if (message.uid != null && message.hasOwnProperty(\"uid\"))\n object.uid = message.uid;\n if (message.sdkVersion != null && message.hasOwnProperty(\"sdkVersion\"))\n object.sdkVersion = message.sdkVersion;\n return object;\n };\n\n /**\n * Converts this Producer to JSON.\n * @function toJSON\n * @memberof perfetto.protos.TracingServiceState.Producer\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n Producer.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return Producer;\n })();\n\n TracingServiceState.DataSource = (function() {\n\n /**\n * Properties of a DataSource.\n * @memberof perfetto.protos.TracingServiceState\n * @interface IDataSource\n * @property {perfetto.protos.IDataSourceDescriptor|null} [dsDescriptor] DataSource dsDescriptor\n * @property {number|null} [producerId] DataSource producerId\n */\n\n /**\n * Constructs a new DataSource.\n * @memberof perfetto.protos.TracingServiceState\n * @classdesc Represents a DataSource.\n * @implements IDataSource\n * @constructor\n * @param {perfetto.protos.TracingServiceState.IDataSource=} [properties] Properties to set\n */\n function DataSource(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * DataSource dsDescriptor.\n * @member {perfetto.protos.IDataSourceDescriptor|null|undefined} dsDescriptor\n * @memberof perfetto.protos.TracingServiceState.DataSource\n * @instance\n */\n DataSource.prototype.dsDescriptor = null;\n\n /**\n * DataSource producerId.\n * @member {number} producerId\n * @memberof perfetto.protos.TracingServiceState.DataSource\n * @instance\n */\n DataSource.prototype.producerId = 0;\n\n /**\n * Creates a new DataSource instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.TracingServiceState.DataSource\n * @static\n * @param {perfetto.protos.TracingServiceState.IDataSource=} [properties] Properties to set\n * @returns {perfetto.protos.TracingServiceState.DataSource} DataSource instance\n */\n DataSource.create = function create(properties) {\n return new DataSource(properties);\n };\n\n /**\n * Encodes the specified DataSource message. Does not implicitly {@link perfetto.protos.TracingServiceState.DataSource.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.TracingServiceState.DataSource\n * @static\n * @param {perfetto.protos.TracingServiceState.IDataSource} message DataSource message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n DataSource.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.dsDescriptor != null && Object.hasOwnProperty.call(message, \"dsDescriptor\"))\n $root.perfetto.protos.DataSourceDescriptor.encode(message.dsDescriptor, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n if (message.producerId != null && Object.hasOwnProperty.call(message, \"producerId\"))\n writer.uint32(/* id 2, wireType 0 =*/16).int32(message.producerId);\n return writer;\n };\n\n /**\n * Encodes the specified DataSource message, length delimited. Does not implicitly {@link perfetto.protos.TracingServiceState.DataSource.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.TracingServiceState.DataSource\n * @static\n * @param {perfetto.protos.TracingServiceState.IDataSource} message DataSource message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n DataSource.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a DataSource message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.TracingServiceState.DataSource\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.TracingServiceState.DataSource} DataSource\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n DataSource.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.TracingServiceState.DataSource();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.dsDescriptor = $root.perfetto.protos.DataSourceDescriptor.decode(reader, reader.uint32());\n break;\n case 2:\n message.producerId = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a DataSource message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.TracingServiceState.DataSource\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.TracingServiceState.DataSource} DataSource\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n DataSource.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a DataSource message.\n * @function verify\n * @memberof perfetto.protos.TracingServiceState.DataSource\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n DataSource.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.dsDescriptor != null && message.hasOwnProperty(\"dsDescriptor\")) {\n var error = $root.perfetto.protos.DataSourceDescriptor.verify(message.dsDescriptor);\n if (error)\n return \"dsDescriptor.\" + error;\n }\n if (message.producerId != null && message.hasOwnProperty(\"producerId\"))\n if (!$util.isInteger(message.producerId))\n return \"producerId: integer expected\";\n return null;\n };\n\n /**\n * Creates a DataSource message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.TracingServiceState.DataSource\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.TracingServiceState.DataSource} DataSource\n */\n DataSource.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.TracingServiceState.DataSource)\n return object;\n var message = new $root.perfetto.protos.TracingServiceState.DataSource();\n if (object.dsDescriptor != null) {\n if (typeof object.dsDescriptor !== \"object\")\n throw TypeError(\".perfetto.protos.TracingServiceState.DataSource.dsDescriptor: object expected\");\n message.dsDescriptor = $root.perfetto.protos.DataSourceDescriptor.fromObject(object.dsDescriptor);\n }\n if (object.producerId != null)\n message.producerId = object.producerId | 0;\n return message;\n };\n\n /**\n * Creates a plain object from a DataSource message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.TracingServiceState.DataSource\n * @static\n * @param {perfetto.protos.TracingServiceState.DataSource} message DataSource\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n DataSource.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.dsDescriptor = null;\n object.producerId = 0;\n }\n if (message.dsDescriptor != null && message.hasOwnProperty(\"dsDescriptor\"))\n object.dsDescriptor = $root.perfetto.protos.DataSourceDescriptor.toObject(message.dsDescriptor, options);\n if (message.producerId != null && message.hasOwnProperty(\"producerId\"))\n object.producerId = message.producerId;\n return object;\n };\n\n /**\n * Converts this DataSource to JSON.\n * @function toJSON\n * @memberof perfetto.protos.TracingServiceState.DataSource\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n DataSource.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return DataSource;\n })();\n\n return TracingServiceState;\n })();\n\n /**\n * BuiltinClock enum.\n * @name perfetto.protos.BuiltinClock\n * @enum {number}\n * @property {number} BUILTIN_CLOCK_UNKNOWN=0 BUILTIN_CLOCK_UNKNOWN value\n * @property {number} BUILTIN_CLOCK_REALTIME=1 BUILTIN_CLOCK_REALTIME value\n * @property {number} BUILTIN_CLOCK_REALTIME_COARSE=2 BUILTIN_CLOCK_REALTIME_COARSE value\n * @property {number} BUILTIN_CLOCK_MONOTONIC=3 BUILTIN_CLOCK_MONOTONIC value\n * @property {number} BUILTIN_CLOCK_MONOTONIC_COARSE=4 BUILTIN_CLOCK_MONOTONIC_COARSE value\n * @property {number} BUILTIN_CLOCK_MONOTONIC_RAW=5 BUILTIN_CLOCK_MONOTONIC_RAW value\n * @property {number} BUILTIN_CLOCK_BOOTTIME=6 BUILTIN_CLOCK_BOOTTIME value\n * @property {number} BUILTIN_CLOCK_MAX_ID=63 BUILTIN_CLOCK_MAX_ID value\n */\n protos.BuiltinClock = (function() {\n var valuesById = {}, values = Object.create(valuesById);\n values[valuesById[0] = \"BUILTIN_CLOCK_UNKNOWN\"] = 0;\n values[valuesById[1] = \"BUILTIN_CLOCK_REALTIME\"] = 1;\n values[valuesById[2] = \"BUILTIN_CLOCK_REALTIME_COARSE\"] = 2;\n values[valuesById[3] = \"BUILTIN_CLOCK_MONOTONIC\"] = 3;\n values[valuesById[4] = \"BUILTIN_CLOCK_MONOTONIC_COARSE\"] = 4;\n values[valuesById[5] = \"BUILTIN_CLOCK_MONOTONIC_RAW\"] = 5;\n values[valuesById[6] = \"BUILTIN_CLOCK_BOOTTIME\"] = 6;\n values[valuesById[63] = \"BUILTIN_CLOCK_MAX_ID\"] = 63;\n return values;\n })();\n\n /**\n * AndroidLogId enum.\n * @name perfetto.protos.AndroidLogId\n * @enum {number}\n * @property {number} LID_DEFAULT=0 LID_DEFAULT value\n * @property {number} LID_RADIO=1 LID_RADIO value\n * @property {number} LID_EVENTS=2 LID_EVENTS value\n * @property {number} LID_SYSTEM=3 LID_SYSTEM value\n * @property {number} LID_CRASH=4 LID_CRASH value\n * @property {number} LID_STATS=5 LID_STATS value\n * @property {number} LID_SECURITY=6 LID_SECURITY value\n * @property {number} LID_KERNEL=7 LID_KERNEL value\n */\n protos.AndroidLogId = (function() {\n var valuesById = {}, values = Object.create(valuesById);\n values[valuesById[0] = \"LID_DEFAULT\"] = 0;\n values[valuesById[1] = \"LID_RADIO\"] = 1;\n values[valuesById[2] = \"LID_EVENTS\"] = 2;\n values[valuesById[3] = \"LID_SYSTEM\"] = 3;\n values[valuesById[4] = \"LID_CRASH\"] = 4;\n values[valuesById[5] = \"LID_STATS\"] = 5;\n values[valuesById[6] = \"LID_SECURITY\"] = 6;\n values[valuesById[7] = \"LID_KERNEL\"] = 7;\n return values;\n })();\n\n /**\n * AndroidLogPriority enum.\n * @name perfetto.protos.AndroidLogPriority\n * @enum {number}\n * @property {number} PRIO_UNSPECIFIED=0 PRIO_UNSPECIFIED value\n * @property {number} PRIO_UNUSED=1 PRIO_UNUSED value\n * @property {number} PRIO_VERBOSE=2 PRIO_VERBOSE value\n * @property {number} PRIO_DEBUG=3 PRIO_DEBUG value\n * @property {number} PRIO_INFO=4 PRIO_INFO value\n * @property {number} PRIO_WARN=5 PRIO_WARN value\n * @property {number} PRIO_ERROR=6 PRIO_ERROR value\n * @property {number} PRIO_FATAL=7 PRIO_FATAL value\n */\n protos.AndroidLogPriority = (function() {\n var valuesById = {}, values = Object.create(valuesById);\n values[valuesById[0] = \"PRIO_UNSPECIFIED\"] = 0;\n values[valuesById[1] = \"PRIO_UNUSED\"] = 1;\n values[valuesById[2] = \"PRIO_VERBOSE\"] = 2;\n values[valuesById[3] = \"PRIO_DEBUG\"] = 3;\n values[valuesById[4] = \"PRIO_INFO\"] = 4;\n values[valuesById[5] = \"PRIO_WARN\"] = 5;\n values[valuesById[6] = \"PRIO_ERROR\"] = 6;\n values[valuesById[7] = \"PRIO_FATAL\"] = 7;\n return values;\n })();\n\n protos.AndroidLogConfig = (function() {\n\n /**\n * Properties of an AndroidLogConfig.\n * @memberof perfetto.protos\n * @interface IAndroidLogConfig\n * @property {Array.<perfetto.protos.AndroidLogId>|null} [logIds] AndroidLogConfig logIds\n * @property {perfetto.protos.AndroidLogPriority|null} [minPrio] AndroidLogConfig minPrio\n * @property {Array.<string>|null} [filterTags] AndroidLogConfig filterTags\n */\n\n /**\n * Constructs a new AndroidLogConfig.\n * @memberof perfetto.protos\n * @classdesc Represents an AndroidLogConfig.\n * @implements IAndroidLogConfig\n * @constructor\n * @param {perfetto.protos.IAndroidLogConfig=} [properties] Properties to set\n */\n function AndroidLogConfig(properties) {\n this.logIds = [];\n this.filterTags = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * AndroidLogConfig logIds.\n * @member {Array.<perfetto.protos.AndroidLogId>} logIds\n * @memberof perfetto.protos.AndroidLogConfig\n * @instance\n */\n AndroidLogConfig.prototype.logIds = $util.emptyArray;\n\n /**\n * AndroidLogConfig minPrio.\n * @member {perfetto.protos.AndroidLogPriority} minPrio\n * @memberof perfetto.protos.AndroidLogConfig\n * @instance\n */\n AndroidLogConfig.prototype.minPrio = 0;\n\n /**\n * AndroidLogConfig filterTags.\n * @member {Array.<string>} filterTags\n * @memberof perfetto.protos.AndroidLogConfig\n * @instance\n */\n AndroidLogConfig.prototype.filterTags = $util.emptyArray;\n\n /**\n * Creates a new AndroidLogConfig instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidLogConfig\n * @static\n * @param {perfetto.protos.IAndroidLogConfig=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidLogConfig} AndroidLogConfig instance\n */\n AndroidLogConfig.create = function create(properties) {\n return new AndroidLogConfig(properties);\n };\n\n /**\n * Encodes the specified AndroidLogConfig message. Does not implicitly {@link perfetto.protos.AndroidLogConfig.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidLogConfig\n * @static\n * @param {perfetto.protos.IAndroidLogConfig} message AndroidLogConfig message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n AndroidLogConfig.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.logIds != null && message.logIds.length)\n for (var i = 0; i < message.logIds.length; ++i)\n writer.uint32(/* id 1, wireType 0 =*/8).int32(message.logIds[i]);\n if (message.minPrio != null && Object.hasOwnProperty.call(message, \"minPrio\"))\n writer.uint32(/* id 3, wireType 0 =*/24).int32(message.minPrio);\n if (message.filterTags != null && message.filterTags.length)\n for (var i = 0; i < message.filterTags.length; ++i)\n writer.uint32(/* id 4, wireType 2 =*/34).string(message.filterTags[i]);\n return writer;\n };\n\n /**\n * Encodes the specified AndroidLogConfig message, length delimited. Does not implicitly {@link perfetto.protos.AndroidLogConfig.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidLogConfig\n * @static\n * @param {perfetto.protos.IAndroidLogConfig} message AndroidLogConfig message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n AndroidLogConfig.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes an AndroidLogConfig message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidLogConfig\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidLogConfig} AndroidLogConfig\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n AndroidLogConfig.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidLogConfig();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (!(message.logIds && message.logIds.length))\n message.logIds = [];\n if ((tag & 7) === 2) {\n var end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2)\n message.logIds.push(reader.int32());\n } else\n message.logIds.push(reader.int32());\n break;\n case 3:\n message.minPrio = reader.int32();\n break;\n case 4:\n if (!(message.filterTags && message.filterTags.length))\n message.filterTags = [];\n message.filterTags.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes an AndroidLogConfig message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidLogConfig\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidLogConfig} AndroidLogConfig\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n AndroidLogConfig.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies an AndroidLogConfig message.\n * @function verify\n * @memberof perfetto.protos.AndroidLogConfig\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n AndroidLogConfig.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.logIds != null && message.hasOwnProperty(\"logIds\")) {\n if (!Array.isArray(message.logIds))\n return \"logIds: array expected\";\n for (var i = 0; i < message.logIds.length; ++i)\n switch (message.logIds[i]) {\n default:\n return \"logIds: enum value[] expected\";\n case 0:\n case 1:\n case 2:\n case 3:\n case 4:\n case 5:\n case 6:\n case 7:\n break;\n }\n }\n if (message.minPrio != null && message.hasOwnProperty(\"minPrio\"))\n switch (message.minPrio) {\n default:\n return \"minPrio: enum value expected\";\n case 0:\n case 1:\n case 2:\n case 3:\n case 4:\n case 5:\n case 6:\n case 7:\n break;\n }\n if (message.filterTags != null && message.hasOwnProperty(\"filterTags\")) {\n if (!Array.isArray(message.filterTags))\n return \"filterTags: array expected\";\n for (var i = 0; i < message.filterTags.length; ++i)\n if (!$util.isString(message.filterTags[i]))\n return \"filterTags: string[] expected\";\n }\n return null;\n };\n\n /**\n * Creates an AndroidLogConfig message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidLogConfig\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidLogConfig} AndroidLogConfig\n */\n AndroidLogConfig.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidLogConfig)\n return object;\n var message = new $root.perfetto.protos.AndroidLogConfig();\n if (object.logIds) {\n if (!Array.isArray(object.logIds))\n throw TypeError(\".perfetto.protos.AndroidLogConfig.logIds: array expected\");\n message.logIds = [];\n for (var i = 0; i < object.logIds.length; ++i)\n switch (object.logIds[i]) {\n default:\n case \"LID_DEFAULT\":\n case 0:\n message.logIds[i] = 0;\n break;\n case \"LID_RADIO\":\n case 1:\n message.logIds[i] = 1;\n break;\n case \"LID_EVENTS\":\n case 2:\n message.logIds[i] = 2;\n break;\n case \"LID_SYSTEM\":\n case 3:\n message.logIds[i] = 3;\n break;\n case \"LID_CRASH\":\n case 4:\n message.logIds[i] = 4;\n break;\n case \"LID_STATS\":\n case 5:\n message.logIds[i] = 5;\n break;\n case \"LID_SECURITY\":\n case 6:\n message.logIds[i] = 6;\n break;\n case \"LID_KERNEL\":\n case 7:\n message.logIds[i] = 7;\n break;\n }\n }\n switch (object.minPrio) {\n case \"PRIO_UNSPECIFIED\":\n case 0:\n message.minPrio = 0;\n break;\n case \"PRIO_UNUSED\":\n case 1:\n message.minPrio = 1;\n break;\n case \"PRIO_VERBOSE\":\n case 2:\n message.minPrio = 2;\n break;\n case \"PRIO_DEBUG\":\n case 3:\n message.minPrio = 3;\n break;\n case \"PRIO_INFO\":\n case 4:\n message.minPrio = 4;\n break;\n case \"PRIO_WARN\":\n case 5:\n message.minPrio = 5;\n break;\n case \"PRIO_ERROR\":\n case 6:\n message.minPrio = 6;\n break;\n case \"PRIO_FATAL\":\n case 7:\n message.minPrio = 7;\n break;\n }\n if (object.filterTags) {\n if (!Array.isArray(object.filterTags))\n throw TypeError(\".perfetto.protos.AndroidLogConfig.filterTags: array expected\");\n message.filterTags = [];\n for (var i = 0; i < object.filterTags.length; ++i)\n message.filterTags[i] = String(object.filterTags[i]);\n }\n return message;\n };\n\n /**\n * Creates a plain object from an AndroidLogConfig message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidLogConfig\n * @static\n * @param {perfetto.protos.AndroidLogConfig} message AndroidLogConfig\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n AndroidLogConfig.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults) {\n object.logIds = [];\n object.filterTags = [];\n }\n if (options.defaults)\n object.minPrio = options.enums === String ? \"PRIO_UNSPECIFIED\" : 0;\n if (message.logIds && message.logIds.length) {\n object.logIds = [];\n for (var j = 0; j < message.logIds.length; ++j)\n object.logIds[j] = options.enums === String ? $root.perfetto.protos.AndroidLogId[message.logIds[j]] : message.logIds[j];\n }\n if (message.minPrio != null && message.hasOwnProperty(\"minPrio\"))\n object.minPrio = options.enums === String ? $root.perfetto.protos.AndroidLogPriority[message.minPrio] : message.minPrio;\n if (message.filterTags && message.filterTags.length) {\n object.filterTags = [];\n for (var j = 0; j < message.filterTags.length; ++j)\n object.filterTags[j] = message.filterTags[j];\n }\n return object;\n };\n\n /**\n * Converts this AndroidLogConfig to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidLogConfig\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n AndroidLogConfig.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return AndroidLogConfig;\n })();\n\n protos.AndroidPolledStateConfig = (function() {\n\n /**\n * Properties of an AndroidPolledStateConfig.\n * @memberof perfetto.protos\n * @interface IAndroidPolledStateConfig\n * @property {number|null} [pollMs] AndroidPolledStateConfig pollMs\n */\n\n /**\n * Constructs a new AndroidPolledStateConfig.\n * @memberof perfetto.protos\n * @classdesc Represents an AndroidPolledStateConfig.\n * @implements IAndroidPolledStateConfig\n * @constructor\n * @param {perfetto.protos.IAndroidPolledStateConfig=} [properties] Properties to set\n */\n function AndroidPolledStateConfig(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * AndroidPolledStateConfig pollMs.\n * @member {number} pollMs\n * @memberof perfetto.protos.AndroidPolledStateConfig\n * @instance\n */\n AndroidPolledStateConfig.prototype.pollMs = 0;\n\n /**\n * Creates a new AndroidPolledStateConfig instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidPolledStateConfig\n * @static\n * @param {perfetto.protos.IAndroidPolledStateConfig=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidPolledStateConfig} AndroidPolledStateConfig instance\n */\n AndroidPolledStateConfig.create = function create(properties) {\n return new AndroidPolledStateConfig(properties);\n };\n\n /**\n * Encodes the specified AndroidPolledStateConfig message. Does not implicitly {@link perfetto.protos.AndroidPolledStateConfig.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidPolledStateConfig\n * @static\n * @param {perfetto.protos.IAndroidPolledStateConfig} message AndroidPolledStateConfig message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n AndroidPolledStateConfig.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.pollMs != null && Object.hasOwnProperty.call(message, \"pollMs\"))\n writer.uint32(/* id 1, wireType 0 =*/8).uint32(message.pollMs);\n return writer;\n };\n\n /**\n * Encodes the specified AndroidPolledStateConfig message, length delimited. Does not implicitly {@link perfetto.protos.AndroidPolledStateConfig.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidPolledStateConfig\n * @static\n * @param {perfetto.protos.IAndroidPolledStateConfig} message AndroidPolledStateConfig message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n AndroidPolledStateConfig.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes an AndroidPolledStateConfig message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidPolledStateConfig\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidPolledStateConfig} AndroidPolledStateConfig\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n AndroidPolledStateConfig.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidPolledStateConfig();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.pollMs = reader.uint32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes an AndroidPolledStateConfig message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidPolledStateConfig\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidPolledStateConfig} AndroidPolledStateConfig\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n AndroidPolledStateConfig.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies an AndroidPolledStateConfig message.\n * @function verify\n * @memberof perfetto.protos.AndroidPolledStateConfig\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n AndroidPolledStateConfig.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.pollMs != null && message.hasOwnProperty(\"pollMs\"))\n if (!$util.isInteger(message.pollMs))\n return \"pollMs: integer expected\";\n return null;\n };\n\n /**\n * Creates an AndroidPolledStateConfig message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidPolledStateConfig\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidPolledStateConfig} AndroidPolledStateConfig\n */\n AndroidPolledStateConfig.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidPolledStateConfig)\n return object;\n var message = new $root.perfetto.protos.AndroidPolledStateConfig();\n if (object.pollMs != null)\n message.pollMs = object.pollMs >>> 0;\n return message;\n };\n\n /**\n * Creates a plain object from an AndroidPolledStateConfig message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidPolledStateConfig\n * @static\n * @param {perfetto.protos.AndroidPolledStateConfig} message AndroidPolledStateConfig\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n AndroidPolledStateConfig.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults)\n object.pollMs = 0;\n if (message.pollMs != null && message.hasOwnProperty(\"pollMs\"))\n object.pollMs = message.pollMs;\n return object;\n };\n\n /**\n * Converts this AndroidPolledStateConfig to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidPolledStateConfig\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n AndroidPolledStateConfig.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return AndroidPolledStateConfig;\n })();\n\n protos.PackagesListConfig = (function() {\n\n /**\n * Properties of a PackagesListConfig.\n * @memberof perfetto.protos\n * @interface IPackagesListConfig\n * @property {Array.<string>|null} [packageNameFilter] PackagesListConfig packageNameFilter\n */\n\n /**\n * Constructs a new PackagesListConfig.\n * @memberof perfetto.protos\n * @classdesc Represents a PackagesListConfig.\n * @implements IPackagesListConfig\n * @constructor\n * @param {perfetto.protos.IPackagesListConfig=} [properties] Properties to set\n */\n function PackagesListConfig(properties) {\n this.packageNameFilter = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * PackagesListConfig packageNameFilter.\n * @member {Array.<string>} packageNameFilter\n * @memberof perfetto.protos.PackagesListConfig\n * @instance\n */\n PackagesListConfig.prototype.packageNameFilter = $util.emptyArray;\n\n /**\n * Creates a new PackagesListConfig instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.PackagesListConfig\n * @static\n * @param {perfetto.protos.IPackagesListConfig=} [properties] Properties to set\n * @returns {perfetto.protos.PackagesListConfig} PackagesListConfig instance\n */\n PackagesListConfig.create = function create(properties) {\n return new PackagesListConfig(properties);\n };\n\n /**\n * Encodes the specified PackagesListConfig message. Does not implicitly {@link perfetto.protos.PackagesListConfig.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.PackagesListConfig\n * @static\n * @param {perfetto.protos.IPackagesListConfig} message PackagesListConfig message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n PackagesListConfig.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.packageNameFilter != null && message.packageNameFilter.length)\n for (var i = 0; i < message.packageNameFilter.length; ++i)\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.packageNameFilter[i]);\n return writer;\n };\n\n /**\n * Encodes the specified PackagesListConfig message, length delimited. Does not implicitly {@link perfetto.protos.PackagesListConfig.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.PackagesListConfig\n * @static\n * @param {perfetto.protos.IPackagesListConfig} message PackagesListConfig message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n PackagesListConfig.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a PackagesListConfig message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.PackagesListConfig\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.PackagesListConfig} PackagesListConfig\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n PackagesListConfig.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.PackagesListConfig();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (!(message.packageNameFilter && message.packageNameFilter.length))\n message.packageNameFilter = [];\n message.packageNameFilter.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a PackagesListConfig message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.PackagesListConfig\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.PackagesListConfig} PackagesListConfig\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n PackagesListConfig.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a PackagesListConfig message.\n * @function verify\n * @memberof perfetto.protos.PackagesListConfig\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n PackagesListConfig.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.packageNameFilter != null && message.hasOwnProperty(\"packageNameFilter\")) {\n if (!Array.isArray(message.packageNameFilter))\n return \"packageNameFilter: array expected\";\n for (var i = 0; i < message.packageNameFilter.length; ++i)\n if (!$util.isString(message.packageNameFilter[i]))\n return \"packageNameFilter: string[] expected\";\n }\n return null;\n };\n\n /**\n * Creates a PackagesListConfig message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.PackagesListConfig\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.PackagesListConfig} PackagesListConfig\n */\n PackagesListConfig.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.PackagesListConfig)\n return object;\n var message = new $root.perfetto.protos.PackagesListConfig();\n if (object.packageNameFilter) {\n if (!Array.isArray(object.packageNameFilter))\n throw TypeError(\".perfetto.protos.PackagesListConfig.packageNameFilter: array expected\");\n message.packageNameFilter = [];\n for (var i = 0; i < object.packageNameFilter.length; ++i)\n message.packageNameFilter[i] = String(object.packageNameFilter[i]);\n }\n return message;\n };\n\n /**\n * Creates a plain object from a PackagesListConfig message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.PackagesListConfig\n * @static\n * @param {perfetto.protos.PackagesListConfig} message PackagesListConfig\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n PackagesListConfig.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.packageNameFilter = [];\n if (message.packageNameFilter && message.packageNameFilter.length) {\n object.packageNameFilter = [];\n for (var j = 0; j < message.packageNameFilter.length; ++j)\n object.packageNameFilter[j] = message.packageNameFilter[j];\n }\n return object;\n };\n\n /**\n * Converts this PackagesListConfig to JSON.\n * @function toJSON\n * @memberof perfetto.protos.PackagesListConfig\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n PackagesListConfig.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return PackagesListConfig;\n })();\n\n protos.ChromeConfig = (function() {\n\n /**\n * Properties of a ChromeConfig.\n * @memberof perfetto.protos\n * @interface IChromeConfig\n * @property {string|null} [traceConfig] ChromeConfig traceConfig\n * @property {boolean|null} [privacyFilteringEnabled] ChromeConfig privacyFilteringEnabled\n * @property {boolean|null} [convertToLegacyJson] ChromeConfig convertToLegacyJson\n * @property {perfetto.protos.ChromeConfig.ClientPriority|null} [clientPriority] ChromeConfig clientPriority\n * @property {string|null} [jsonAgentLabelFilter] ChromeConfig jsonAgentLabelFilter\n */\n\n /**\n * Constructs a new ChromeConfig.\n * @memberof perfetto.protos\n * @classdesc Represents a ChromeConfig.\n * @implements IChromeConfig\n * @constructor\n * @param {perfetto.protos.IChromeConfig=} [properties] Properties to set\n */\n function ChromeConfig(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * ChromeConfig traceConfig.\n * @member {string} traceConfig\n * @memberof perfetto.protos.ChromeConfig\n * @instance\n */\n ChromeConfig.prototype.traceConfig = \"\";\n\n /**\n * ChromeConfig privacyFilteringEnabled.\n * @member {boolean} privacyFilteringEnabled\n * @memberof perfetto.protos.ChromeConfig\n * @instance\n */\n ChromeConfig.prototype.privacyFilteringEnabled = false;\n\n /**\n * ChromeConfig convertToLegacyJson.\n * @member {boolean} convertToLegacyJson\n * @memberof perfetto.protos.ChromeConfig\n * @instance\n */\n ChromeConfig.prototype.convertToLegacyJson = false;\n\n /**\n * ChromeConfig clientPriority.\n * @member {perfetto.protos.ChromeConfig.ClientPriority} clientPriority\n * @memberof perfetto.protos.ChromeConfig\n * @instance\n */\n ChromeConfig.prototype.clientPriority = 0;\n\n /**\n * ChromeConfig jsonAgentLabelFilter.\n * @member {string} jsonAgentLabelFilter\n * @memberof perfetto.protos.ChromeConfig\n * @instance\n */\n ChromeConfig.prototype.jsonAgentLabelFilter = \"\";\n\n /**\n * Creates a new ChromeConfig instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.ChromeConfig\n * @static\n * @param {perfetto.protos.IChromeConfig=} [properties] Properties to set\n * @returns {perfetto.protos.ChromeConfig} ChromeConfig instance\n */\n ChromeConfig.create = function create(properties) {\n return new ChromeConfig(properties);\n };\n\n /**\n * Encodes the specified ChromeConfig message. Does not implicitly {@link perfetto.protos.ChromeConfig.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.ChromeConfig\n * @static\n * @param {perfetto.protos.IChromeConfig} message ChromeConfig message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ChromeConfig.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.traceConfig != null && Object.hasOwnProperty.call(message, \"traceConfig\"))\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.traceConfig);\n if (message.privacyFilteringEnabled != null && Object.hasOwnProperty.call(message, \"privacyFilteringEnabled\"))\n writer.uint32(/* id 2, wireType 0 =*/16).bool(message.privacyFilteringEnabled);\n if (message.convertToLegacyJson != null && Object.hasOwnProperty.call(message, \"convertToLegacyJson\"))\n writer.uint32(/* id 3, wireType 0 =*/24).bool(message.convertToLegacyJson);\n if (message.clientPriority != null && Object.hasOwnProperty.call(message, \"clientPriority\"))\n writer.uint32(/* id 4, wireType 0 =*/32).int32(message.clientPriority);\n if (message.jsonAgentLabelFilter != null && Object.hasOwnProperty.call(message, \"jsonAgentLabelFilter\"))\n writer.uint32(/* id 5, wireType 2 =*/42).string(message.jsonAgentLabelFilter);\n return writer;\n };\n\n /**\n * Encodes the specified ChromeConfig message, length delimited. Does not implicitly {@link perfetto.protos.ChromeConfig.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.ChromeConfig\n * @static\n * @param {perfetto.protos.IChromeConfig} message ChromeConfig message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ChromeConfig.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a ChromeConfig message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.ChromeConfig\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.ChromeConfig} ChromeConfig\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ChromeConfig.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.ChromeConfig();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.traceConfig = reader.string();\n break;\n case 2:\n message.privacyFilteringEnabled = reader.bool();\n break;\n case 3:\n message.convertToLegacyJson = reader.bool();\n break;\n case 4:\n message.clientPriority = reader.int32();\n break;\n case 5:\n message.jsonAgentLabelFilter = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a ChromeConfig message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.ChromeConfig\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.ChromeConfig} ChromeConfig\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ChromeConfig.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a ChromeConfig message.\n * @function verify\n * @memberof perfetto.protos.ChromeConfig\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n ChromeConfig.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.traceConfig != null && message.hasOwnProperty(\"traceConfig\"))\n if (!$util.isString(message.traceConfig))\n return \"traceConfig: string expected\";\n if (message.privacyFilteringEnabled != null && message.hasOwnProperty(\"privacyFilteringEnabled\"))\n if (typeof message.privacyFilteringEnabled !== \"boolean\")\n return \"privacyFilteringEnabled: boolean expected\";\n if (message.convertToLegacyJson != null && message.hasOwnProperty(\"convertToLegacyJson\"))\n if (typeof message.convertToLegacyJson !== \"boolean\")\n return \"convertToLegacyJson: boolean expected\";\n if (message.clientPriority != null && message.hasOwnProperty(\"clientPriority\"))\n switch (message.clientPriority) {\n default:\n return \"clientPriority: enum value expected\";\n case 0:\n case 1:\n case 2:\n break;\n }\n if (message.jsonAgentLabelFilter != null && message.hasOwnProperty(\"jsonAgentLabelFilter\"))\n if (!$util.isString(message.jsonAgentLabelFilter))\n return \"jsonAgentLabelFilter: string expected\";\n return null;\n };\n\n /**\n * Creates a ChromeConfig message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.ChromeConfig\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.ChromeConfig} ChromeConfig\n */\n ChromeConfig.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.ChromeConfig)\n return object;\n var message = new $root.perfetto.protos.ChromeConfig();\n if (object.traceConfig != null)\n message.traceConfig = String(object.traceConfig);\n if (object.privacyFilteringEnabled != null)\n message.privacyFilteringEnabled = Boolean(object.privacyFilteringEnabled);\n if (object.convertToLegacyJson != null)\n message.convertToLegacyJson = Boolean(object.convertToLegacyJson);\n switch (object.clientPriority) {\n case \"UNKNOWN\":\n case 0:\n message.clientPriority = 0;\n break;\n case \"BACKGROUND\":\n case 1:\n message.clientPriority = 1;\n break;\n case \"USER_INITIATED\":\n case 2:\n message.clientPriority = 2;\n break;\n }\n if (object.jsonAgentLabelFilter != null)\n message.jsonAgentLabelFilter = String(object.jsonAgentLabelFilter);\n return message;\n };\n\n /**\n * Creates a plain object from a ChromeConfig message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.ChromeConfig\n * @static\n * @param {perfetto.protos.ChromeConfig} message ChromeConfig\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n ChromeConfig.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.traceConfig = \"\";\n object.privacyFilteringEnabled = false;\n object.convertToLegacyJson = false;\n object.clientPriority = options.enums === String ? \"UNKNOWN\" : 0;\n object.jsonAgentLabelFilter = \"\";\n }\n if (message.traceConfig != null && message.hasOwnProperty(\"traceConfig\"))\n object.traceConfig = message.traceConfig;\n if (message.privacyFilteringEnabled != null && message.hasOwnProperty(\"privacyFilteringEnabled\"))\n object.privacyFilteringEnabled = message.privacyFilteringEnabled;\n if (message.convertToLegacyJson != null && message.hasOwnProperty(\"convertToLegacyJson\"))\n object.convertToLegacyJson = message.convertToLegacyJson;\n if (message.clientPriority != null && message.hasOwnProperty(\"clientPriority\"))\n object.clientPriority = options.enums === String ? $root.perfetto.protos.ChromeConfig.ClientPriority[message.clientPriority] : message.clientPriority;\n if (message.jsonAgentLabelFilter != null && message.hasOwnProperty(\"jsonAgentLabelFilter\"))\n object.jsonAgentLabelFilter = message.jsonAgentLabelFilter;\n return object;\n };\n\n /**\n * Converts this ChromeConfig to JSON.\n * @function toJSON\n * @memberof perfetto.protos.ChromeConfig\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n ChromeConfig.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n /**\n * ClientPriority enum.\n * @name perfetto.protos.ChromeConfig.ClientPriority\n * @enum {number}\n * @property {number} UNKNOWN=0 UNKNOWN value\n * @property {number} BACKGROUND=1 BACKGROUND value\n * @property {number} USER_INITIATED=2 USER_INITIATED value\n */\n ChromeConfig.ClientPriority = (function() {\n var valuesById = {}, values = Object.create(valuesById);\n values[valuesById[0] = \"UNKNOWN\"] = 0;\n values[valuesById[1] = \"BACKGROUND\"] = 1;\n values[valuesById[2] = \"USER_INITIATED\"] = 2;\n return values;\n })();\n\n return ChromeConfig;\n })();\n\n protos.FtraceConfig = (function() {\n\n /**\n * Properties of a FtraceConfig.\n * @memberof perfetto.protos\n * @interface IFtraceConfig\n * @property {Array.<string>|null} [ftraceEvents] FtraceConfig ftraceEvents\n * @property {Array.<string>|null} [atraceCategories] FtraceConfig atraceCategories\n * @property {Array.<string>|null} [atraceApps] FtraceConfig atraceApps\n * @property {number|null} [bufferSizeKb] FtraceConfig bufferSizeKb\n * @property {number|null} [drainPeriodMs] FtraceConfig drainPeriodMs\n * @property {perfetto.protos.FtraceConfig.ICompactSchedConfig|null} [compactSched] FtraceConfig compactSched\n * @property {boolean|null} [symbolizeKsyms] FtraceConfig symbolizeKsyms\n * @property {boolean|null} [initializeKsymsSynchronouslyForTesting] FtraceConfig initializeKsymsSynchronouslyForTesting\n * @property {boolean|null} [throttleRssStat] FtraceConfig throttleRssStat\n */\n\n /**\n * Constructs a new FtraceConfig.\n * @memberof perfetto.protos\n * @classdesc Represents a FtraceConfig.\n * @implements IFtraceConfig\n * @constructor\n * @param {perfetto.protos.IFtraceConfig=} [properties] Properties to set\n */\n function FtraceConfig(properties) {\n this.ftraceEvents = [];\n this.atraceCategories = [];\n this.atraceApps = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * FtraceConfig ftraceEvents.\n * @member {Array.<string>} ftraceEvents\n * @memberof perfetto.protos.FtraceConfig\n * @instance\n */\n FtraceConfig.prototype.ftraceEvents = $util.emptyArray;\n\n /**\n * FtraceConfig atraceCategories.\n * @member {Array.<string>} atraceCategories\n * @memberof perfetto.protos.FtraceConfig\n * @instance\n */\n FtraceConfig.prototype.atraceCategories = $util.emptyArray;\n\n /**\n * FtraceConfig atraceApps.\n * @member {Array.<string>} atraceApps\n * @memberof perfetto.protos.FtraceConfig\n * @instance\n */\n FtraceConfig.prototype.atraceApps = $util.emptyArray;\n\n /**\n * FtraceConfig bufferSizeKb.\n * @member {number} bufferSizeKb\n * @memberof perfetto.protos.FtraceConfig\n * @instance\n */\n FtraceConfig.prototype.bufferSizeKb = 0;\n\n /**\n * FtraceConfig drainPeriodMs.\n * @member {number} drainPeriodMs\n * @memberof perfetto.protos.FtraceConfig\n * @instance\n */\n FtraceConfig.prototype.drainPeriodMs = 0;\n\n /**\n * FtraceConfig compactSched.\n * @member {perfetto.protos.FtraceConfig.ICompactSchedConfig|null|undefined} compactSched\n * @memberof perfetto.protos.FtraceConfig\n * @instance\n */\n FtraceConfig.prototype.compactSched = null;\n\n /**\n * FtraceConfig symbolizeKsyms.\n * @member {boolean} symbolizeKsyms\n * @memberof perfetto.protos.FtraceConfig\n * @instance\n */\n FtraceConfig.prototype.symbolizeKsyms = false;\n\n /**\n * FtraceConfig initializeKsymsSynchronouslyForTesting.\n * @member {boolean} initializeKsymsSynchronouslyForTesting\n * @memberof perfetto.protos.FtraceConfig\n * @instance\n */\n FtraceConfig.prototype.initializeKsymsSynchronouslyForTesting = false;\n\n /**\n * FtraceConfig throttleRssStat.\n * @member {boolean} throttleRssStat\n * @memberof perfetto.protos.FtraceConfig\n * @instance\n */\n FtraceConfig.prototype.throttleRssStat = false;\n\n /**\n * Creates a new FtraceConfig instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.FtraceConfig\n * @static\n * @param {perfetto.protos.IFtraceConfig=} [properties] Properties to set\n * @returns {perfetto.protos.FtraceConfig} FtraceConfig instance\n */\n FtraceConfig.create = function create(properties) {\n return new FtraceConfig(properties);\n };\n\n /**\n * Encodes the specified FtraceConfig message. Does not implicitly {@link perfetto.protos.FtraceConfig.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.FtraceConfig\n * @static\n * @param {perfetto.protos.IFtraceConfig} message FtraceConfig message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n FtraceConfig.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.ftraceEvents != null && message.ftraceEvents.length)\n for (var i = 0; i < message.ftraceEvents.length; ++i)\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.ftraceEvents[i]);\n if (message.atraceCategories != null && message.atraceCategories.length)\n for (var i = 0; i < message.atraceCategories.length; ++i)\n writer.uint32(/* id 2, wireType 2 =*/18).string(message.atraceCategories[i]);\n if (message.atraceApps != null && message.atraceApps.length)\n for (var i = 0; i < message.atraceApps.length; ++i)\n writer.uint32(/* id 3, wireType 2 =*/26).string(message.atraceApps[i]);\n if (message.bufferSizeKb != null && Object.hasOwnProperty.call(message, \"bufferSizeKb\"))\n writer.uint32(/* id 10, wireType 0 =*/80).uint32(message.bufferSizeKb);\n if (message.drainPeriodMs != null && Object.hasOwnProperty.call(message, \"drainPeriodMs\"))\n writer.uint32(/* id 11, wireType 0 =*/88).uint32(message.drainPeriodMs);\n if (message.compactSched != null && Object.hasOwnProperty.call(message, \"compactSched\"))\n $root.perfetto.protos.FtraceConfig.CompactSchedConfig.encode(message.compactSched, writer.uint32(/* id 12, wireType 2 =*/98).fork()).ldelim();\n if (message.symbolizeKsyms != null && Object.hasOwnProperty.call(message, \"symbolizeKsyms\"))\n writer.uint32(/* id 13, wireType 0 =*/104).bool(message.symbolizeKsyms);\n if (message.initializeKsymsSynchronouslyForTesting != null && Object.hasOwnProperty.call(message, \"initializeKsymsSynchronouslyForTesting\"))\n writer.uint32(/* id 14, wireType 0 =*/112).bool(message.initializeKsymsSynchronouslyForTesting);\n if (message.throttleRssStat != null && Object.hasOwnProperty.call(message, \"throttleRssStat\"))\n writer.uint32(/* id 15, wireType 0 =*/120).bool(message.throttleRssStat);\n return writer;\n };\n\n /**\n * Encodes the specified FtraceConfig message, length delimited. Does not implicitly {@link perfetto.protos.FtraceConfig.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.FtraceConfig\n * @static\n * @param {perfetto.protos.IFtraceConfig} message FtraceConfig message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n FtraceConfig.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a FtraceConfig message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.FtraceConfig\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.FtraceConfig} FtraceConfig\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n FtraceConfig.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.FtraceConfig();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (!(message.ftraceEvents && message.ftraceEvents.length))\n message.ftraceEvents = [];\n message.ftraceEvents.push(reader.string());\n break;\n case 2:\n if (!(message.atraceCategories && message.atraceCategories.length))\n message.atraceCategories = [];\n message.atraceCategories.push(reader.string());\n break;\n case 3:\n if (!(message.atraceApps && message.atraceApps.length))\n message.atraceApps = [];\n message.atraceApps.push(reader.string());\n break;\n case 10:\n message.bufferSizeKb = reader.uint32();\n break;\n case 11:\n message.drainPeriodMs = reader.uint32();\n break;\n case 12:\n message.compactSched = $root.perfetto.protos.FtraceConfig.CompactSchedConfig.decode(reader, reader.uint32());\n break;\n case 13:\n message.symbolizeKsyms = reader.bool();\n break;\n case 14:\n message.initializeKsymsSynchronouslyForTesting = reader.bool();\n break;\n case 15:\n message.throttleRssStat = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a FtraceConfig message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.FtraceConfig\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.FtraceConfig} FtraceConfig\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n FtraceConfig.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a FtraceConfig message.\n * @function verify\n * @memberof perfetto.protos.FtraceConfig\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n FtraceConfig.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.ftraceEvents != null && message.hasOwnProperty(\"ftraceEvents\")) {\n if (!Array.isArray(message.ftraceEvents))\n return \"ftraceEvents: array expected\";\n for (var i = 0; i < message.ftraceEvents.length; ++i)\n if (!$util.isString(message.ftraceEvents[i]))\n return \"ftraceEvents: string[] expected\";\n }\n if (message.atraceCategories != null && message.hasOwnProperty(\"atraceCategories\")) {\n if (!Array.isArray(message.atraceCategories))\n return \"atraceCategories: array expected\";\n for (var i = 0; i < message.atraceCategories.length; ++i)\n if (!$util.isString(message.atraceCategories[i]))\n return \"atraceCategories: string[] expected\";\n }\n if (message.atraceApps != null && message.hasOwnProperty(\"atraceApps\")) {\n if (!Array.isArray(message.atraceApps))\n return \"atraceApps: array expected\";\n for (var i = 0; i < message.atraceApps.length; ++i)\n if (!$util.isString(message.atraceApps[i]))\n return \"atraceApps: string[] expected\";\n }\n if (message.bufferSizeKb != null && message.hasOwnProperty(\"bufferSizeKb\"))\n if (!$util.isInteger(message.bufferSizeKb))\n return \"bufferSizeKb: integer expected\";\n if (message.drainPeriodMs != null && message.hasOwnProperty(\"drainPeriodMs\"))\n if (!$util.isInteger(message.drainPeriodMs))\n return \"drainPeriodMs: integer expected\";\n if (message.compactSched != null && message.hasOwnProperty(\"compactSched\")) {\n var error = $root.perfetto.protos.FtraceConfig.CompactSchedConfig.verify(message.compactSched);\n if (error)\n return \"compactSched.\" + error;\n }\n if (message.symbolizeKsyms != null && message.hasOwnProperty(\"symbolizeKsyms\"))\n if (typeof message.symbolizeKsyms !== \"boolean\")\n return \"symbolizeKsyms: boolean expected\";\n if (message.initializeKsymsSynchronouslyForTesting != null && message.hasOwnProperty(\"initializeKsymsSynchronouslyForTesting\"))\n if (typeof message.initializeKsymsSynchronouslyForTesting !== \"boolean\")\n return \"initializeKsymsSynchronouslyForTesting: boolean expected\";\n if (message.throttleRssStat != null && message.hasOwnProperty(\"throttleRssStat\"))\n if (typeof message.throttleRssStat !== \"boolean\")\n return \"throttleRssStat: boolean expected\";\n return null;\n };\n\n /**\n * Creates a FtraceConfig message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.FtraceConfig\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.FtraceConfig} FtraceConfig\n */\n FtraceConfig.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.FtraceConfig)\n return object;\n var message = new $root.perfetto.protos.FtraceConfig();\n if (object.ftraceEvents) {\n if (!Array.isArray(object.ftraceEvents))\n throw TypeError(\".perfetto.protos.FtraceConfig.ftraceEvents: array expected\");\n message.ftraceEvents = [];\n for (var i = 0; i < object.ftraceEvents.length; ++i)\n message.ftraceEvents[i] = String(object.ftraceEvents[i]);\n }\n if (object.atraceCategories) {\n if (!Array.isArray(object.atraceCategories))\n throw TypeError(\".perfetto.protos.FtraceConfig.atraceCategories: array expected\");\n message.atraceCategories = [];\n for (var i = 0; i < object.atraceCategories.length; ++i)\n message.atraceCategories[i] = String(object.atraceCategories[i]);\n }\n if (object.atraceApps) {\n if (!Array.isArray(object.atraceApps))\n throw TypeError(\".perfetto.protos.FtraceConfig.atraceApps: array expected\");\n message.atraceApps = [];\n for (var i = 0; i < object.atraceApps.length; ++i)\n message.atraceApps[i] = String(object.atraceApps[i]);\n }\n if (object.bufferSizeKb != null)\n message.bufferSizeKb = object.bufferSizeKb >>> 0;\n if (object.drainPeriodMs != null)\n message.drainPeriodMs = object.drainPeriodMs >>> 0;\n if (object.compactSched != null) {\n if (typeof object.compactSched !== \"object\")\n throw TypeError(\".perfetto.protos.FtraceConfig.compactSched: object expected\");\n message.compactSched = $root.perfetto.protos.FtraceConfig.CompactSchedConfig.fromObject(object.compactSched);\n }\n if (object.symbolizeKsyms != null)\n message.symbolizeKsyms = Boolean(object.symbolizeKsyms);\n if (object.initializeKsymsSynchronouslyForTesting != null)\n message.initializeKsymsSynchronouslyForTesting = Boolean(object.initializeKsymsSynchronouslyForTesting);\n if (object.throttleRssStat != null)\n message.throttleRssStat = Boolean(object.throttleRssStat);\n return message;\n };\n\n /**\n * Creates a plain object from a FtraceConfig message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.FtraceConfig\n * @static\n * @param {perfetto.protos.FtraceConfig} message FtraceConfig\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n FtraceConfig.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults) {\n object.ftraceEvents = [];\n object.atraceCategories = [];\n object.atraceApps = [];\n }\n if (options.defaults) {\n object.bufferSizeKb = 0;\n object.drainPeriodMs = 0;\n object.compactSched = null;\n object.symbolizeKsyms = false;\n object.initializeKsymsSynchronouslyForTesting = false;\n object.throttleRssStat = false;\n }\n if (message.ftraceEvents && message.ftraceEvents.length) {\n object.ftraceEvents = [];\n for (var j = 0; j < message.ftraceEvents.length; ++j)\n object.ftraceEvents[j] = message.ftraceEvents[j];\n }\n if (message.atraceCategories && message.atraceCategories.length) {\n object.atraceCategories = [];\n for (var j = 0; j < message.atraceCategories.length; ++j)\n object.atraceCategories[j] = message.atraceCategories[j];\n }\n if (message.atraceApps && message.atraceApps.length) {\n object.atraceApps = [];\n for (var j = 0; j < message.atraceApps.length; ++j)\n object.atraceApps[j] = message.atraceApps[j];\n }\n if (message.bufferSizeKb != null && message.hasOwnProperty(\"bufferSizeKb\"))\n object.bufferSizeKb = message.bufferSizeKb;\n if (message.drainPeriodMs != null && message.hasOwnProperty(\"drainPeriodMs\"))\n object.drainPeriodMs = message.drainPeriodMs;\n if (message.compactSched != null && message.hasOwnProperty(\"compactSched\"))\n object.compactSched = $root.perfetto.protos.FtraceConfig.CompactSchedConfig.toObject(message.compactSched, options);\n if (message.symbolizeKsyms != null && message.hasOwnProperty(\"symbolizeKsyms\"))\n object.symbolizeKsyms = message.symbolizeKsyms;\n if (message.initializeKsymsSynchronouslyForTesting != null && message.hasOwnProperty(\"initializeKsymsSynchronouslyForTesting\"))\n object.initializeKsymsSynchronouslyForTesting = message.initializeKsymsSynchronouslyForTesting;\n if (message.throttleRssStat != null && message.hasOwnProperty(\"throttleRssStat\"))\n object.throttleRssStat = message.throttleRssStat;\n return object;\n };\n\n /**\n * Converts this FtraceConfig to JSON.\n * @function toJSON\n * @memberof perfetto.protos.FtraceConfig\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n FtraceConfig.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n FtraceConfig.CompactSchedConfig = (function() {\n\n /**\n * Properties of a CompactSchedConfig.\n * @memberof perfetto.protos.FtraceConfig\n * @interface ICompactSchedConfig\n * @property {boolean|null} [enabled] CompactSchedConfig enabled\n */\n\n /**\n * Constructs a new CompactSchedConfig.\n * @memberof perfetto.protos.FtraceConfig\n * @classdesc Represents a CompactSchedConfig.\n * @implements ICompactSchedConfig\n * @constructor\n * @param {perfetto.protos.FtraceConfig.ICompactSchedConfig=} [properties] Properties to set\n */\n function CompactSchedConfig(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * CompactSchedConfig enabled.\n * @member {boolean} enabled\n * @memberof perfetto.protos.FtraceConfig.CompactSchedConfig\n * @instance\n */\n CompactSchedConfig.prototype.enabled = false;\n\n /**\n * Creates a new CompactSchedConfig instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.FtraceConfig.CompactSchedConfig\n * @static\n * @param {perfetto.protos.FtraceConfig.ICompactSchedConfig=} [properties] Properties to set\n * @returns {perfetto.protos.FtraceConfig.CompactSchedConfig} CompactSchedConfig instance\n */\n CompactSchedConfig.create = function create(properties) {\n return new CompactSchedConfig(properties);\n };\n\n /**\n * Encodes the specified CompactSchedConfig message. Does not implicitly {@link perfetto.protos.FtraceConfig.CompactSchedConfig.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.FtraceConfig.CompactSchedConfig\n * @static\n * @param {perfetto.protos.FtraceConfig.ICompactSchedConfig} message CompactSchedConfig message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n CompactSchedConfig.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.enabled != null && Object.hasOwnProperty.call(message, \"enabled\"))\n writer.uint32(/* id 1, wireType 0 =*/8).bool(message.enabled);\n return writer;\n };\n\n /**\n * Encodes the specified CompactSchedConfig message, length delimited. Does not implicitly {@link perfetto.protos.FtraceConfig.CompactSchedConfig.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.FtraceConfig.CompactSchedConfig\n * @static\n * @param {perfetto.protos.FtraceConfig.ICompactSchedConfig} message CompactSchedConfig message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n CompactSchedConfig.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a CompactSchedConfig message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.FtraceConfig.CompactSchedConfig\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.FtraceConfig.CompactSchedConfig} CompactSchedConfig\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n CompactSchedConfig.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.FtraceConfig.CompactSchedConfig();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.enabled = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a CompactSchedConfig message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.FtraceConfig.CompactSchedConfig\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.FtraceConfig.CompactSchedConfig} CompactSchedConfig\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n CompactSchedConfig.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a CompactSchedConfig message.\n * @function verify\n * @memberof perfetto.protos.FtraceConfig.CompactSchedConfig\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n CompactSchedConfig.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.enabled != null && message.hasOwnProperty(\"enabled\"))\n if (typeof message.enabled !== \"boolean\")\n return \"enabled: boolean expected\";\n return null;\n };\n\n /**\n * Creates a CompactSchedConfig message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.FtraceConfig.CompactSchedConfig\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.FtraceConfig.CompactSchedConfig} CompactSchedConfig\n */\n CompactSchedConfig.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.FtraceConfig.CompactSchedConfig)\n return object;\n var message = new $root.perfetto.protos.FtraceConfig.CompactSchedConfig();\n if (object.enabled != null)\n message.enabled = Boolean(object.enabled);\n return message;\n };\n\n /**\n * Creates a plain object from a CompactSchedConfig message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.FtraceConfig.CompactSchedConfig\n * @static\n * @param {perfetto.protos.FtraceConfig.CompactSchedConfig} message CompactSchedConfig\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n CompactSchedConfig.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults)\n object.enabled = false;\n if (message.enabled != null && message.hasOwnProperty(\"enabled\"))\n object.enabled = message.enabled;\n return object;\n };\n\n /**\n * Converts this CompactSchedConfig to JSON.\n * @function toJSON\n * @memberof perfetto.protos.FtraceConfig.CompactSchedConfig\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n CompactSchedConfig.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return CompactSchedConfig;\n })();\n\n return FtraceConfig;\n })();\n\n protos.GpuCounterConfig = (function() {\n\n /**\n * Properties of a GpuCounterConfig.\n * @memberof perfetto.protos\n * @interface IGpuCounterConfig\n * @property {number|null} [counterPeriodNs] GpuCounterConfig counterPeriodNs\n * @property {Array.<number>|null} [counterIds] GpuCounterConfig counterIds\n * @property {boolean|null} [instrumentedSampling] GpuCounterConfig instrumentedSampling\n * @property {boolean|null} [fixGpuClock] GpuCounterConfig fixGpuClock\n */\n\n /**\n * Constructs a new GpuCounterConfig.\n * @memberof perfetto.protos\n * @classdesc Represents a GpuCounterConfig.\n * @implements IGpuCounterConfig\n * @constructor\n * @param {perfetto.protos.IGpuCounterConfig=} [properties] Properties to set\n */\n function GpuCounterConfig(properties) {\n this.counterIds = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * GpuCounterConfig counterPeriodNs.\n * @member {number} counterPeriodNs\n * @memberof perfetto.protos.GpuCounterConfig\n * @instance\n */\n GpuCounterConfig.prototype.counterPeriodNs = $util.Long ? $util.Long.fromBits(0,0,true) : 0;\n\n /**\n * GpuCounterConfig counterIds.\n * @member {Array.<number>} counterIds\n * @memberof perfetto.protos.GpuCounterConfig\n * @instance\n */\n GpuCounterConfig.prototype.counterIds = $util.emptyArray;\n\n /**\n * GpuCounterConfig instrumentedSampling.\n * @member {boolean} instrumentedSampling\n * @memberof perfetto.protos.GpuCounterConfig\n * @instance\n */\n GpuCounterConfig.prototype.instrumentedSampling = false;\n\n /**\n * GpuCounterConfig fixGpuClock.\n * @member {boolean} fixGpuClock\n * @memberof perfetto.protos.GpuCounterConfig\n * @instance\n */\n GpuCounterConfig.prototype.fixGpuClock = false;\n\n /**\n * Creates a new GpuCounterConfig instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.GpuCounterConfig\n * @static\n * @param {perfetto.protos.IGpuCounterConfig=} [properties] Properties to set\n * @returns {perfetto.protos.GpuCounterConfig} GpuCounterConfig instance\n */\n GpuCounterConfig.create = function create(properties) {\n return new GpuCounterConfig(properties);\n };\n\n /**\n * Encodes the specified GpuCounterConfig message. Does not implicitly {@link perfetto.protos.GpuCounterConfig.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.GpuCounterConfig\n * @static\n * @param {perfetto.protos.IGpuCounterConfig} message GpuCounterConfig message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n GpuCounterConfig.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.counterPeriodNs != null && Object.hasOwnProperty.call(message, \"counterPeriodNs\"))\n writer.uint32(/* id 1, wireType 0 =*/8).uint64(message.counterPeriodNs);\n if (message.counterIds != null && message.counterIds.length)\n for (var i = 0; i < message.counterIds.length; ++i)\n writer.uint32(/* id 2, wireType 0 =*/16).uint32(message.counterIds[i]);\n if (message.instrumentedSampling != null && Object.hasOwnProperty.call(message, \"instrumentedSampling\"))\n writer.uint32(/* id 3, wireType 0 =*/24).bool(message.instrumentedSampling);\n if (message.fixGpuClock != null && Object.hasOwnProperty.call(message, \"fixGpuClock\"))\n writer.uint32(/* id 4, wireType 0 =*/32).bool(message.fixGpuClock);\n return writer;\n };\n\n /**\n * Encodes the specified GpuCounterConfig message, length delimited. Does not implicitly {@link perfetto.protos.GpuCounterConfig.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.GpuCounterConfig\n * @static\n * @param {perfetto.protos.IGpuCounterConfig} message GpuCounterConfig message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n GpuCounterConfig.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a GpuCounterConfig message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.GpuCounterConfig\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.GpuCounterConfig} GpuCounterConfig\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n GpuCounterConfig.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.GpuCounterConfig();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.counterPeriodNs = reader.uint64();\n break;\n case 2:\n if (!(message.counterIds && message.counterIds.length))\n message.counterIds = [];\n if ((tag & 7) === 2) {\n var end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2)\n message.counterIds.push(reader.uint32());\n } else\n message.counterIds.push(reader.uint32());\n break;\n case 3:\n message.instrumentedSampling = reader.bool();\n break;\n case 4:\n message.fixGpuClock = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a GpuCounterConfig message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.GpuCounterConfig\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.GpuCounterConfig} GpuCounterConfig\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n GpuCounterConfig.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a GpuCounterConfig message.\n * @function verify\n * @memberof perfetto.protos.GpuCounterConfig\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n GpuCounterConfig.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.counterPeriodNs != null && message.hasOwnProperty(\"counterPeriodNs\"))\n if (!$util.isInteger(message.counterPeriodNs) && !(message.counterPeriodNs && $util.isInteger(message.counterPeriodNs.low) && $util.isInteger(message.counterPeriodNs.high)))\n return \"counterPeriodNs: integer|Long expected\";\n if (message.counterIds != null && message.hasOwnProperty(\"counterIds\")) {\n if (!Array.isArray(message.counterIds))\n return \"counterIds: array expected\";\n for (var i = 0; i < message.counterIds.length; ++i)\n if (!$util.isInteger(message.counterIds[i]))\n return \"counterIds: integer[] expected\";\n }\n if (message.instrumentedSampling != null && message.hasOwnProperty(\"instrumentedSampling\"))\n if (typeof message.instrumentedSampling !== \"boolean\")\n return \"instrumentedSampling: boolean expected\";\n if (message.fixGpuClock != null && message.hasOwnProperty(\"fixGpuClock\"))\n if (typeof message.fixGpuClock !== \"boolean\")\n return \"fixGpuClock: boolean expected\";\n return null;\n };\n\n /**\n * Creates a GpuCounterConfig message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.GpuCounterConfig\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.GpuCounterConfig} GpuCounterConfig\n */\n GpuCounterConfig.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.GpuCounterConfig)\n return object;\n var message = new $root.perfetto.protos.GpuCounterConfig();\n if (object.counterPeriodNs != null)\n if ($util.Long)\n (message.counterPeriodNs = $util.Long.fromValue(object.counterPeriodNs)).unsigned = true;\n else if (typeof object.counterPeriodNs === \"string\")\n message.counterPeriodNs = parseInt(object.counterPeriodNs, 10);\n else if (typeof object.counterPeriodNs === \"number\")\n message.counterPeriodNs = object.counterPeriodNs;\n else if (typeof object.counterPeriodNs === \"object\")\n message.counterPeriodNs = new $util.LongBits(object.counterPeriodNs.low >>> 0, object.counterPeriodNs.high >>> 0).toNumber(true);\n if (object.counterIds) {\n if (!Array.isArray(object.counterIds))\n throw TypeError(\".perfetto.protos.GpuCounterConfig.counterIds: array expected\");\n message.counterIds = [];\n for (var i = 0; i < object.counterIds.length; ++i)\n message.counterIds[i] = object.counterIds[i] >>> 0;\n }\n if (object.instrumentedSampling != null)\n message.instrumentedSampling = Boolean(object.instrumentedSampling);\n if (object.fixGpuClock != null)\n message.fixGpuClock = Boolean(object.fixGpuClock);\n return message;\n };\n\n /**\n * Creates a plain object from a GpuCounterConfig message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.GpuCounterConfig\n * @static\n * @param {perfetto.protos.GpuCounterConfig} message GpuCounterConfig\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n GpuCounterConfig.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.counterIds = [];\n if (options.defaults) {\n if ($util.Long) {\n var long = new $util.Long(0, 0, true);\n object.counterPeriodNs = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.counterPeriodNs = options.longs === String ? \"0\" : 0;\n object.instrumentedSampling = false;\n object.fixGpuClock = false;\n }\n if (message.counterPeriodNs != null && message.hasOwnProperty(\"counterPeriodNs\"))\n if (typeof message.counterPeriodNs === \"number\")\n object.counterPeriodNs = options.longs === String ? String(message.counterPeriodNs) : message.counterPeriodNs;\n else\n object.counterPeriodNs = options.longs === String ? $util.Long.prototype.toString.call(message.counterPeriodNs) : options.longs === Number ? new $util.LongBits(message.counterPeriodNs.low >>> 0, message.counterPeriodNs.high >>> 0).toNumber(true) : message.counterPeriodNs;\n if (message.counterIds && message.counterIds.length) {\n object.counterIds = [];\n for (var j = 0; j < message.counterIds.length; ++j)\n object.counterIds[j] = message.counterIds[j];\n }\n if (message.instrumentedSampling != null && message.hasOwnProperty(\"instrumentedSampling\"))\n object.instrumentedSampling = message.instrumentedSampling;\n if (message.fixGpuClock != null && message.hasOwnProperty(\"fixGpuClock\"))\n object.fixGpuClock = message.fixGpuClock;\n return object;\n };\n\n /**\n * Converts this GpuCounterConfig to JSON.\n * @function toJSON\n * @memberof perfetto.protos.GpuCounterConfig\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n GpuCounterConfig.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return GpuCounterConfig;\n })();\n\n protos.VulkanMemoryConfig = (function() {\n\n /**\n * Properties of a VulkanMemoryConfig.\n * @memberof perfetto.protos\n * @interface IVulkanMemoryConfig\n * @property {boolean|null} [trackDriverMemoryUsage] VulkanMemoryConfig trackDriverMemoryUsage\n * @property {boolean|null} [trackDeviceMemoryUsage] VulkanMemoryConfig trackDeviceMemoryUsage\n */\n\n /**\n * Constructs a new VulkanMemoryConfig.\n * @memberof perfetto.protos\n * @classdesc Represents a VulkanMemoryConfig.\n * @implements IVulkanMemoryConfig\n * @constructor\n * @param {perfetto.protos.IVulkanMemoryConfig=} [properties] Properties to set\n */\n function VulkanMemoryConfig(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * VulkanMemoryConfig trackDriverMemoryUsage.\n * @member {boolean} trackDriverMemoryUsage\n * @memberof perfetto.protos.VulkanMemoryConfig\n * @instance\n */\n VulkanMemoryConfig.prototype.trackDriverMemoryUsage = false;\n\n /**\n * VulkanMemoryConfig trackDeviceMemoryUsage.\n * @member {boolean} trackDeviceMemoryUsage\n * @memberof perfetto.protos.VulkanMemoryConfig\n * @instance\n */\n VulkanMemoryConfig.prototype.trackDeviceMemoryUsage = false;\n\n /**\n * Creates a new VulkanMemoryConfig instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.VulkanMemoryConfig\n * @static\n * @param {perfetto.protos.IVulkanMemoryConfig=} [properties] Properties to set\n * @returns {perfetto.protos.VulkanMemoryConfig} VulkanMemoryConfig instance\n */\n VulkanMemoryConfig.create = function create(properties) {\n return new VulkanMemoryConfig(properties);\n };\n\n /**\n * Encodes the specified VulkanMemoryConfig message. Does not implicitly {@link perfetto.protos.VulkanMemoryConfig.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.VulkanMemoryConfig\n * @static\n * @param {perfetto.protos.IVulkanMemoryConfig} message VulkanMemoryConfig message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n VulkanMemoryConfig.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.trackDriverMemoryUsage != null && Object.hasOwnProperty.call(message, \"trackDriverMemoryUsage\"))\n writer.uint32(/* id 1, wireType 0 =*/8).bool(message.trackDriverMemoryUsage);\n if (message.trackDeviceMemoryUsage != null && Object.hasOwnProperty.call(message, \"trackDeviceMemoryUsage\"))\n writer.uint32(/* id 2, wireType 0 =*/16).bool(message.trackDeviceMemoryUsage);\n return writer;\n };\n\n /**\n * Encodes the specified VulkanMemoryConfig message, length delimited. Does not implicitly {@link perfetto.protos.VulkanMemoryConfig.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.VulkanMemoryConfig\n * @static\n * @param {perfetto.protos.IVulkanMemoryConfig} message VulkanMemoryConfig message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n VulkanMemoryConfig.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a VulkanMemoryConfig message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.VulkanMemoryConfig\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.VulkanMemoryConfig} VulkanMemoryConfig\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n VulkanMemoryConfig.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.VulkanMemoryConfig();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.trackDriverMemoryUsage = reader.bool();\n break;\n case 2:\n message.trackDeviceMemoryUsage = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a VulkanMemoryConfig message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.VulkanMemoryConfig\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.VulkanMemoryConfig} VulkanMemoryConfig\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n VulkanMemoryConfig.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a VulkanMemoryConfig message.\n * @function verify\n * @memberof perfetto.protos.VulkanMemoryConfig\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n VulkanMemoryConfig.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.trackDriverMemoryUsage != null && message.hasOwnProperty(\"trackDriverMemoryUsage\"))\n if (typeof message.trackDriverMemoryUsage !== \"boolean\")\n return \"trackDriverMemoryUsage: boolean expected\";\n if (message.trackDeviceMemoryUsage != null && message.hasOwnProperty(\"trackDeviceMemoryUsage\"))\n if (typeof message.trackDeviceMemoryUsage !== \"boolean\")\n return \"trackDeviceMemoryUsage: boolean expected\";\n return null;\n };\n\n /**\n * Creates a VulkanMemoryConfig message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.VulkanMemoryConfig\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.VulkanMemoryConfig} VulkanMemoryConfig\n */\n VulkanMemoryConfig.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.VulkanMemoryConfig)\n return object;\n var message = new $root.perfetto.protos.VulkanMemoryConfig();\n if (object.trackDriverMemoryUsage != null)\n message.trackDriverMemoryUsage = Boolean(object.trackDriverMemoryUsage);\n if (object.trackDeviceMemoryUsage != null)\n message.trackDeviceMemoryUsage = Boolean(object.trackDeviceMemoryUsage);\n return message;\n };\n\n /**\n * Creates a plain object from a VulkanMemoryConfig message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.VulkanMemoryConfig\n * @static\n * @param {perfetto.protos.VulkanMemoryConfig} message VulkanMemoryConfig\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n VulkanMemoryConfig.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.trackDriverMemoryUsage = false;\n object.trackDeviceMemoryUsage = false;\n }\n if (message.trackDriverMemoryUsage != null && message.hasOwnProperty(\"trackDriverMemoryUsage\"))\n object.trackDriverMemoryUsage = message.trackDriverMemoryUsage;\n if (message.trackDeviceMemoryUsage != null && message.hasOwnProperty(\"trackDeviceMemoryUsage\"))\n object.trackDeviceMemoryUsage = message.trackDeviceMemoryUsage;\n return object;\n };\n\n /**\n * Converts this VulkanMemoryConfig to JSON.\n * @function toJSON\n * @memberof perfetto.protos.VulkanMemoryConfig\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n VulkanMemoryConfig.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return VulkanMemoryConfig;\n })();\n\n protos.InodeFileConfig = (function() {\n\n /**\n * Properties of an InodeFileConfig.\n * @memberof perfetto.protos\n * @interface IInodeFileConfig\n * @property {number|null} [scanIntervalMs] InodeFileConfig scanIntervalMs\n * @property {number|null} [scanDelayMs] InodeFileConfig scanDelayMs\n * @property {number|null} [scanBatchSize] InodeFileConfig scanBatchSize\n * @property {boolean|null} [doNotScan] InodeFileConfig doNotScan\n * @property {Array.<string>|null} [scanMountPoints] InodeFileConfig scanMountPoints\n * @property {Array.<perfetto.protos.InodeFileConfig.IMountPointMappingEntry>|null} [mountPointMapping] InodeFileConfig mountPointMapping\n */\n\n /**\n * Constructs a new InodeFileConfig.\n * @memberof perfetto.protos\n * @classdesc Represents an InodeFileConfig.\n * @implements IInodeFileConfig\n * @constructor\n * @param {perfetto.protos.IInodeFileConfig=} [properties] Properties to set\n */\n function InodeFileConfig(properties) {\n this.scanMountPoints = [];\n this.mountPointMapping = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * InodeFileConfig scanIntervalMs.\n * @member {number} scanIntervalMs\n * @memberof perfetto.protos.InodeFileConfig\n * @instance\n */\n InodeFileConfig.prototype.scanIntervalMs = 0;\n\n /**\n * InodeFileConfig scanDelayMs.\n * @member {number} scanDelayMs\n * @memberof perfetto.protos.InodeFileConfig\n * @instance\n */\n InodeFileConfig.prototype.scanDelayMs = 0;\n\n /**\n * InodeFileConfig scanBatchSize.\n * @member {number} scanBatchSize\n * @memberof perfetto.protos.InodeFileConfig\n * @instance\n */\n InodeFileConfig.prototype.scanBatchSize = 0;\n\n /**\n * InodeFileConfig doNotScan.\n * @member {boolean} doNotScan\n * @memberof perfetto.protos.InodeFileConfig\n * @instance\n */\n InodeFileConfig.prototype.doNotScan = false;\n\n /**\n * InodeFileConfig scanMountPoints.\n * @member {Array.<string>} scanMountPoints\n * @memberof perfetto.protos.InodeFileConfig\n * @instance\n */\n InodeFileConfig.prototype.scanMountPoints = $util.emptyArray;\n\n /**\n * InodeFileConfig mountPointMapping.\n * @member {Array.<perfetto.protos.InodeFileConfig.IMountPointMappingEntry>} mountPointMapping\n * @memberof perfetto.protos.InodeFileConfig\n * @instance\n */\n InodeFileConfig.prototype.mountPointMapping = $util.emptyArray;\n\n /**\n * Creates a new InodeFileConfig instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.InodeFileConfig\n * @static\n * @param {perfetto.protos.IInodeFileConfig=} [properties] Properties to set\n * @returns {perfetto.protos.InodeFileConfig} InodeFileConfig instance\n */\n InodeFileConfig.create = function create(properties) {\n return new InodeFileConfig(properties);\n };\n\n /**\n * Encodes the specified InodeFileConfig message. Does not implicitly {@link perfetto.protos.InodeFileConfig.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.InodeFileConfig\n * @static\n * @param {perfetto.protos.IInodeFileConfig} message InodeFileConfig message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n InodeFileConfig.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.scanIntervalMs != null && Object.hasOwnProperty.call(message, \"scanIntervalMs\"))\n writer.uint32(/* id 1, wireType 0 =*/8).uint32(message.scanIntervalMs);\n if (message.scanDelayMs != null && Object.hasOwnProperty.call(message, \"scanDelayMs\"))\n writer.uint32(/* id 2, wireType 0 =*/16).uint32(message.scanDelayMs);\n if (message.scanBatchSize != null && Object.hasOwnProperty.call(message, \"scanBatchSize\"))\n writer.uint32(/* id 3, wireType 0 =*/24).uint32(message.scanBatchSize);\n if (message.doNotScan != null && Object.hasOwnProperty.call(message, \"doNotScan\"))\n writer.uint32(/* id 4, wireType 0 =*/32).bool(message.doNotScan);\n if (message.scanMountPoints != null && message.scanMountPoints.length)\n for (var i = 0; i < message.scanMountPoints.length; ++i)\n writer.uint32(/* id 5, wireType 2 =*/42).string(message.scanMountPoints[i]);\n if (message.mountPointMapping != null && message.mountPointMapping.length)\n for (var i = 0; i < message.mountPointMapping.length; ++i)\n $root.perfetto.protos.InodeFileConfig.MountPointMappingEntry.encode(message.mountPointMapping[i], writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified InodeFileConfig message, length delimited. Does not implicitly {@link perfetto.protos.InodeFileConfig.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.InodeFileConfig\n * @static\n * @param {perfetto.protos.IInodeFileConfig} message InodeFileConfig message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n InodeFileConfig.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes an InodeFileConfig message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.InodeFileConfig\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.InodeFileConfig} InodeFileConfig\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n InodeFileConfig.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.InodeFileConfig();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.scanIntervalMs = reader.uint32();\n break;\n case 2:\n message.scanDelayMs = reader.uint32();\n break;\n case 3:\n message.scanBatchSize = reader.uint32();\n break;\n case 4:\n message.doNotScan = reader.bool();\n break;\n case 5:\n if (!(message.scanMountPoints && message.scanMountPoints.length))\n message.scanMountPoints = [];\n message.scanMountPoints.push(reader.string());\n break;\n case 6:\n if (!(message.mountPointMapping && message.mountPointMapping.length))\n message.mountPointMapping = [];\n message.mountPointMapping.push($root.perfetto.protos.InodeFileConfig.MountPointMappingEntry.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes an InodeFileConfig message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.InodeFileConfig\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.InodeFileConfig} InodeFileConfig\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n InodeFileConfig.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies an InodeFileConfig message.\n * @function verify\n * @memberof perfetto.protos.InodeFileConfig\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n InodeFileConfig.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.scanIntervalMs != null && message.hasOwnProperty(\"scanIntervalMs\"))\n if (!$util.isInteger(message.scanIntervalMs))\n return \"scanIntervalMs: integer expected\";\n if (message.scanDelayMs != null && message.hasOwnProperty(\"scanDelayMs\"))\n if (!$util.isInteger(message.scanDelayMs))\n return \"scanDelayMs: integer expected\";\n if (message.scanBatchSize != null && message.hasOwnProperty(\"scanBatchSize\"))\n if (!$util.isInteger(message.scanBatchSize))\n return \"scanBatchSize: integer expected\";\n if (message.doNotScan != null && message.hasOwnProperty(\"doNotScan\"))\n if (typeof message.doNotScan !== \"boolean\")\n return \"doNotScan: boolean expected\";\n if (message.scanMountPoints != null && message.hasOwnProperty(\"scanMountPoints\")) {\n if (!Array.isArray(message.scanMountPoints))\n return \"scanMountPoints: array expected\";\n for (var i = 0; i < message.scanMountPoints.length; ++i)\n if (!$util.isString(message.scanMountPoints[i]))\n return \"scanMountPoints: string[] expected\";\n }\n if (message.mountPointMapping != null && message.hasOwnProperty(\"mountPointMapping\")) {\n if (!Array.isArray(message.mountPointMapping))\n return \"mountPointMapping: array expected\";\n for (var i = 0; i < message.mountPointMapping.length; ++i) {\n var error = $root.perfetto.protos.InodeFileConfig.MountPointMappingEntry.verify(message.mountPointMapping[i]);\n if (error)\n return \"mountPointMapping.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates an InodeFileConfig message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.InodeFileConfig\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.InodeFileConfig} InodeFileConfig\n */\n InodeFileConfig.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.InodeFileConfig)\n return object;\n var message = new $root.perfetto.protos.InodeFileConfig();\n if (object.scanIntervalMs != null)\n message.scanIntervalMs = object.scanIntervalMs >>> 0;\n if (object.scanDelayMs != null)\n message.scanDelayMs = object.scanDelayMs >>> 0;\n if (object.scanBatchSize != null)\n message.scanBatchSize = object.scanBatchSize >>> 0;\n if (object.doNotScan != null)\n message.doNotScan = Boolean(object.doNotScan);\n if (object.scanMountPoints) {\n if (!Array.isArray(object.scanMountPoints))\n throw TypeError(\".perfetto.protos.InodeFileConfig.scanMountPoints: array expected\");\n message.scanMountPoints = [];\n for (var i = 0; i < object.scanMountPoints.length; ++i)\n message.scanMountPoints[i] = String(object.scanMountPoints[i]);\n }\n if (object.mountPointMapping) {\n if (!Array.isArray(object.mountPointMapping))\n throw TypeError(\".perfetto.protos.InodeFileConfig.mountPointMapping: array expected\");\n message.mountPointMapping = [];\n for (var i = 0; i < object.mountPointMapping.length; ++i) {\n if (typeof object.mountPointMapping[i] !== \"object\")\n throw TypeError(\".perfetto.protos.InodeFileConfig.mountPointMapping: object expected\");\n message.mountPointMapping[i] = $root.perfetto.protos.InodeFileConfig.MountPointMappingEntry.fromObject(object.mountPointMapping[i]);\n }\n }\n return message;\n };\n\n /**\n * Creates a plain object from an InodeFileConfig message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.InodeFileConfig\n * @static\n * @param {perfetto.protos.InodeFileConfig} message InodeFileConfig\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n InodeFileConfig.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults) {\n object.scanMountPoints = [];\n object.mountPointMapping = [];\n }\n if (options.defaults) {\n object.scanIntervalMs = 0;\n object.scanDelayMs = 0;\n object.scanBatchSize = 0;\n object.doNotScan = false;\n }\n if (message.scanIntervalMs != null && message.hasOwnProperty(\"scanIntervalMs\"))\n object.scanIntervalMs = message.scanIntervalMs;\n if (message.scanDelayMs != null && message.hasOwnProperty(\"scanDelayMs\"))\n object.scanDelayMs = message.scanDelayMs;\n if (message.scanBatchSize != null && message.hasOwnProperty(\"scanBatchSize\"))\n object.scanBatchSize = message.scanBatchSize;\n if (message.doNotScan != null && message.hasOwnProperty(\"doNotScan\"))\n object.doNotScan = message.doNotScan;\n if (message.scanMountPoints && message.scanMountPoints.length) {\n object.scanMountPoints = [];\n for (var j = 0; j < message.scanMountPoints.length; ++j)\n object.scanMountPoints[j] = message.scanMountPoints[j];\n }\n if (message.mountPointMapping && message.mountPointMapping.length) {\n object.mountPointMapping = [];\n for (var j = 0; j < message.mountPointMapping.length; ++j)\n object.mountPointMapping[j] = $root.perfetto.protos.InodeFileConfig.MountPointMappingEntry.toObject(message.mountPointMapping[j], options);\n }\n return object;\n };\n\n /**\n * Converts this InodeFileConfig to JSON.\n * @function toJSON\n * @memberof perfetto.protos.InodeFileConfig\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n InodeFileConfig.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n InodeFileConfig.MountPointMappingEntry = (function() {\n\n /**\n * Properties of a MountPointMappingEntry.\n * @memberof perfetto.protos.InodeFileConfig\n * @interface IMountPointMappingEntry\n * @property {string|null} [mountpoint] MountPointMappingEntry mountpoint\n * @property {Array.<string>|null} [scanRoots] MountPointMappingEntry scanRoots\n */\n\n /**\n * Constructs a new MountPointMappingEntry.\n * @memberof perfetto.protos.InodeFileConfig\n * @classdesc Represents a MountPointMappingEntry.\n * @implements IMountPointMappingEntry\n * @constructor\n * @param {perfetto.protos.InodeFileConfig.IMountPointMappingEntry=} [properties] Properties to set\n */\n function MountPointMappingEntry(properties) {\n this.scanRoots = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * MountPointMappingEntry mountpoint.\n * @member {string} mountpoint\n * @memberof perfetto.protos.InodeFileConfig.MountPointMappingEntry\n * @instance\n */\n MountPointMappingEntry.prototype.mountpoint = \"\";\n\n /**\n * MountPointMappingEntry scanRoots.\n * @member {Array.<string>} scanRoots\n * @memberof perfetto.protos.InodeFileConfig.MountPointMappingEntry\n * @instance\n */\n MountPointMappingEntry.prototype.scanRoots = $util.emptyArray;\n\n /**\n * Creates a new MountPointMappingEntry instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.InodeFileConfig.MountPointMappingEntry\n * @static\n * @param {perfetto.protos.InodeFileConfig.IMountPointMappingEntry=} [properties] Properties to set\n * @returns {perfetto.protos.InodeFileConfig.MountPointMappingEntry} MountPointMappingEntry instance\n */\n MountPointMappingEntry.create = function create(properties) {\n return new MountPointMappingEntry(properties);\n };\n\n /**\n * Encodes the specified MountPointMappingEntry message. Does not implicitly {@link perfetto.protos.InodeFileConfig.MountPointMappingEntry.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.InodeFileConfig.MountPointMappingEntry\n * @static\n * @param {perfetto.protos.InodeFileConfig.IMountPointMappingEntry} message MountPointMappingEntry message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n MountPointMappingEntry.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.mountpoint != null && Object.hasOwnProperty.call(message, \"mountpoint\"))\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.mountpoint);\n if (message.scanRoots != null && message.scanRoots.length)\n for (var i = 0; i < message.scanRoots.length; ++i)\n writer.uint32(/* id 2, wireType 2 =*/18).string(message.scanRoots[i]);\n return writer;\n };\n\n /**\n * Encodes the specified MountPointMappingEntry message, length delimited. Does not implicitly {@link perfetto.protos.InodeFileConfig.MountPointMappingEntry.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.InodeFileConfig.MountPointMappingEntry\n * @static\n * @param {perfetto.protos.InodeFileConfig.IMountPointMappingEntry} message MountPointMappingEntry message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n MountPointMappingEntry.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a MountPointMappingEntry message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.InodeFileConfig.MountPointMappingEntry\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.InodeFileConfig.MountPointMappingEntry} MountPointMappingEntry\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n MountPointMappingEntry.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.InodeFileConfig.MountPointMappingEntry();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.mountpoint = reader.string();\n break;\n case 2:\n if (!(message.scanRoots && message.scanRoots.length))\n message.scanRoots = [];\n message.scanRoots.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a MountPointMappingEntry message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.InodeFileConfig.MountPointMappingEntry\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.InodeFileConfig.MountPointMappingEntry} MountPointMappingEntry\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n MountPointMappingEntry.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a MountPointMappingEntry message.\n * @function verify\n * @memberof perfetto.protos.InodeFileConfig.MountPointMappingEntry\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n MountPointMappingEntry.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.mountpoint != null && message.hasOwnProperty(\"mountpoint\"))\n if (!$util.isString(message.mountpoint))\n return \"mountpoint: string expected\";\n if (message.scanRoots != null && message.hasOwnProperty(\"scanRoots\")) {\n if (!Array.isArray(message.scanRoots))\n return \"scanRoots: array expected\";\n for (var i = 0; i < message.scanRoots.length; ++i)\n if (!$util.isString(message.scanRoots[i]))\n return \"scanRoots: string[] expected\";\n }\n return null;\n };\n\n /**\n * Creates a MountPointMappingEntry message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.InodeFileConfig.MountPointMappingEntry\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.InodeFileConfig.MountPointMappingEntry} MountPointMappingEntry\n */\n MountPointMappingEntry.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.InodeFileConfig.MountPointMappingEntry)\n return object;\n var message = new $root.perfetto.protos.InodeFileConfig.MountPointMappingEntry();\n if (object.mountpoint != null)\n message.mountpoint = String(object.mountpoint);\n if (object.scanRoots) {\n if (!Array.isArray(object.scanRoots))\n throw TypeError(\".perfetto.protos.InodeFileConfig.MountPointMappingEntry.scanRoots: array expected\");\n message.scanRoots = [];\n for (var i = 0; i < object.scanRoots.length; ++i)\n message.scanRoots[i] = String(object.scanRoots[i]);\n }\n return message;\n };\n\n /**\n * Creates a plain object from a MountPointMappingEntry message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.InodeFileConfig.MountPointMappingEntry\n * @static\n * @param {perfetto.protos.InodeFileConfig.MountPointMappingEntry} message MountPointMappingEntry\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n MountPointMappingEntry.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.scanRoots = [];\n if (options.defaults)\n object.mountpoint = \"\";\n if (message.mountpoint != null && message.hasOwnProperty(\"mountpoint\"))\n object.mountpoint = message.mountpoint;\n if (message.scanRoots && message.scanRoots.length) {\n object.scanRoots = [];\n for (var j = 0; j < message.scanRoots.length; ++j)\n object.scanRoots[j] = message.scanRoots[j];\n }\n return object;\n };\n\n /**\n * Converts this MountPointMappingEntry to JSON.\n * @function toJSON\n * @memberof perfetto.protos.InodeFileConfig.MountPointMappingEntry\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n MountPointMappingEntry.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return MountPointMappingEntry;\n })();\n\n return InodeFileConfig;\n })();\n\n protos.ConsoleConfig = (function() {\n\n /**\n * Properties of a ConsoleConfig.\n * @memberof perfetto.protos\n * @interface IConsoleConfig\n * @property {perfetto.protos.ConsoleConfig.Output|null} [output] ConsoleConfig output\n * @property {boolean|null} [enableColors] ConsoleConfig enableColors\n */\n\n /**\n * Constructs a new ConsoleConfig.\n * @memberof perfetto.protos\n * @classdesc Represents a ConsoleConfig.\n * @implements IConsoleConfig\n * @constructor\n * @param {perfetto.protos.IConsoleConfig=} [properties] Properties to set\n */\n function ConsoleConfig(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * ConsoleConfig output.\n * @member {perfetto.protos.ConsoleConfig.Output} output\n * @memberof perfetto.protos.ConsoleConfig\n * @instance\n */\n ConsoleConfig.prototype.output = 0;\n\n /**\n * ConsoleConfig enableColors.\n * @member {boolean} enableColors\n * @memberof perfetto.protos.ConsoleConfig\n * @instance\n */\n ConsoleConfig.prototype.enableColors = false;\n\n /**\n * Creates a new ConsoleConfig instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.ConsoleConfig\n * @static\n * @param {perfetto.protos.IConsoleConfig=} [properties] Properties to set\n * @returns {perfetto.protos.ConsoleConfig} ConsoleConfig instance\n */\n ConsoleConfig.create = function create(properties) {\n return new ConsoleConfig(properties);\n };\n\n /**\n * Encodes the specified ConsoleConfig message. Does not implicitly {@link perfetto.protos.ConsoleConfig.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.ConsoleConfig\n * @static\n * @param {perfetto.protos.IConsoleConfig} message ConsoleConfig message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ConsoleConfig.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.output != null && Object.hasOwnProperty.call(message, \"output\"))\n writer.uint32(/* id 1, wireType 0 =*/8).int32(message.output);\n if (message.enableColors != null && Object.hasOwnProperty.call(message, \"enableColors\"))\n writer.uint32(/* id 2, wireType 0 =*/16).bool(message.enableColors);\n return writer;\n };\n\n /**\n * Encodes the specified ConsoleConfig message, length delimited. Does not implicitly {@link perfetto.protos.ConsoleConfig.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.ConsoleConfig\n * @static\n * @param {perfetto.protos.IConsoleConfig} message ConsoleConfig message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ConsoleConfig.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a ConsoleConfig message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.ConsoleConfig\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.ConsoleConfig} ConsoleConfig\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ConsoleConfig.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.ConsoleConfig();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.output = reader.int32();\n break;\n case 2:\n message.enableColors = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a ConsoleConfig message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.ConsoleConfig\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.ConsoleConfig} ConsoleConfig\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ConsoleConfig.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a ConsoleConfig message.\n * @function verify\n * @memberof perfetto.protos.ConsoleConfig\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n ConsoleConfig.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.output != null && message.hasOwnProperty(\"output\"))\n switch (message.output) {\n default:\n return \"output: enum value expected\";\n case 0:\n case 1:\n case 2:\n break;\n }\n if (message.enableColors != null && message.hasOwnProperty(\"enableColors\"))\n if (typeof message.enableColors !== \"boolean\")\n return \"enableColors: boolean expected\";\n return null;\n };\n\n /**\n * Creates a ConsoleConfig message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.ConsoleConfig\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.ConsoleConfig} ConsoleConfig\n */\n ConsoleConfig.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.ConsoleConfig)\n return object;\n var message = new $root.perfetto.protos.ConsoleConfig();\n switch (object.output) {\n case \"OUTPUT_UNSPECIFIED\":\n case 0:\n message.output = 0;\n break;\n case \"OUTPUT_STDOUT\":\n case 1:\n message.output = 1;\n break;\n case \"OUTPUT_STDERR\":\n case 2:\n message.output = 2;\n break;\n }\n if (object.enableColors != null)\n message.enableColors = Boolean(object.enableColors);\n return message;\n };\n\n /**\n * Creates a plain object from a ConsoleConfig message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.ConsoleConfig\n * @static\n * @param {perfetto.protos.ConsoleConfig} message ConsoleConfig\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n ConsoleConfig.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.output = options.enums === String ? \"OUTPUT_UNSPECIFIED\" : 0;\n object.enableColors = false;\n }\n if (message.output != null && message.hasOwnProperty(\"output\"))\n object.output = options.enums === String ? $root.perfetto.protos.ConsoleConfig.Output[message.output] : message.output;\n if (message.enableColors != null && message.hasOwnProperty(\"enableColors\"))\n object.enableColors = message.enableColors;\n return object;\n };\n\n /**\n * Converts this ConsoleConfig to JSON.\n * @function toJSON\n * @memberof perfetto.protos.ConsoleConfig\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n ConsoleConfig.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n /**\n * Output enum.\n * @name perfetto.protos.ConsoleConfig.Output\n * @enum {number}\n * @property {number} OUTPUT_UNSPECIFIED=0 OUTPUT_UNSPECIFIED value\n * @property {number} OUTPUT_STDOUT=1 OUTPUT_STDOUT value\n * @property {number} OUTPUT_STDERR=2 OUTPUT_STDERR value\n */\n ConsoleConfig.Output = (function() {\n var valuesById = {}, values = Object.create(valuesById);\n values[valuesById[0] = \"OUTPUT_UNSPECIFIED\"] = 0;\n values[valuesById[1] = \"OUTPUT_STDOUT\"] = 1;\n values[valuesById[2] = \"OUTPUT_STDERR\"] = 2;\n return values;\n })();\n\n return ConsoleConfig;\n })();\n\n protos.InterceptorConfig = (function() {\n\n /**\n * Properties of an InterceptorConfig.\n * @memberof perfetto.protos\n * @interface IInterceptorConfig\n * @property {string|null} [name] InterceptorConfig name\n * @property {perfetto.protos.IConsoleConfig|null} [consoleConfig] InterceptorConfig consoleConfig\n */\n\n /**\n * Constructs a new InterceptorConfig.\n * @memberof perfetto.protos\n * @classdesc Represents an InterceptorConfig.\n * @implements IInterceptorConfig\n * @constructor\n * @param {perfetto.protos.IInterceptorConfig=} [properties] Properties to set\n */\n function InterceptorConfig(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * InterceptorConfig name.\n * @member {string} name\n * @memberof perfetto.protos.InterceptorConfig\n * @instance\n */\n InterceptorConfig.prototype.name = \"\";\n\n /**\n * InterceptorConfig consoleConfig.\n * @member {perfetto.protos.IConsoleConfig|null|undefined} consoleConfig\n * @memberof perfetto.protos.InterceptorConfig\n * @instance\n */\n InterceptorConfig.prototype.consoleConfig = null;\n\n /**\n * Creates a new InterceptorConfig instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.InterceptorConfig\n * @static\n * @param {perfetto.protos.IInterceptorConfig=} [properties] Properties to set\n * @returns {perfetto.protos.InterceptorConfig} InterceptorConfig instance\n */\n InterceptorConfig.create = function create(properties) {\n return new InterceptorConfig(properties);\n };\n\n /**\n * Encodes the specified InterceptorConfig message. Does not implicitly {@link perfetto.protos.InterceptorConfig.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.InterceptorConfig\n * @static\n * @param {perfetto.protos.IInterceptorConfig} message InterceptorConfig message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n InterceptorConfig.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.name != null && Object.hasOwnProperty.call(message, \"name\"))\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.name);\n if (message.consoleConfig != null && Object.hasOwnProperty.call(message, \"consoleConfig\"))\n $root.perfetto.protos.ConsoleConfig.encode(message.consoleConfig, writer.uint32(/* id 100, wireType 2 =*/802).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified InterceptorConfig message, length delimited. Does not implicitly {@link perfetto.protos.InterceptorConfig.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.InterceptorConfig\n * @static\n * @param {perfetto.protos.IInterceptorConfig} message InterceptorConfig message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n InterceptorConfig.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes an InterceptorConfig message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.InterceptorConfig\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.InterceptorConfig} InterceptorConfig\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n InterceptorConfig.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.InterceptorConfig();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.name = reader.string();\n break;\n case 100:\n message.consoleConfig = $root.perfetto.protos.ConsoleConfig.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes an InterceptorConfig message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.InterceptorConfig\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.InterceptorConfig} InterceptorConfig\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n InterceptorConfig.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies an InterceptorConfig message.\n * @function verify\n * @memberof perfetto.protos.InterceptorConfig\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n InterceptorConfig.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.name != null && message.hasOwnProperty(\"name\"))\n if (!$util.isString(message.name))\n return \"name: string expected\";\n if (message.consoleConfig != null && message.hasOwnProperty(\"consoleConfig\")) {\n var error = $root.perfetto.protos.ConsoleConfig.verify(message.consoleConfig);\n if (error)\n return \"consoleConfig.\" + error;\n }\n return null;\n };\n\n /**\n * Creates an InterceptorConfig message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.InterceptorConfig\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.InterceptorConfig} InterceptorConfig\n */\n InterceptorConfig.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.InterceptorConfig)\n return object;\n var message = new $root.perfetto.protos.InterceptorConfig();\n if (object.name != null)\n message.name = String(object.name);\n if (object.consoleConfig != null) {\n if (typeof object.consoleConfig !== \"object\")\n throw TypeError(\".perfetto.protos.InterceptorConfig.consoleConfig: object expected\");\n message.consoleConfig = $root.perfetto.protos.ConsoleConfig.fromObject(object.consoleConfig);\n }\n return message;\n };\n\n /**\n * Creates a plain object from an InterceptorConfig message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.InterceptorConfig\n * @static\n * @param {perfetto.protos.InterceptorConfig} message InterceptorConfig\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n InterceptorConfig.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.name = \"\";\n object.consoleConfig = null;\n }\n if (message.name != null && message.hasOwnProperty(\"name\"))\n object.name = message.name;\n if (message.consoleConfig != null && message.hasOwnProperty(\"consoleConfig\"))\n object.consoleConfig = $root.perfetto.protos.ConsoleConfig.toObject(message.consoleConfig, options);\n return object;\n };\n\n /**\n * Converts this InterceptorConfig to JSON.\n * @function toJSON\n * @memberof perfetto.protos.InterceptorConfig\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n InterceptorConfig.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return InterceptorConfig;\n })();\n\n protos.AndroidPowerConfig = (function() {\n\n /**\n * Properties of an AndroidPowerConfig.\n * @memberof perfetto.protos\n * @interface IAndroidPowerConfig\n * @property {number|null} [batteryPollMs] AndroidPowerConfig batteryPollMs\n * @property {Array.<perfetto.protos.AndroidPowerConfig.BatteryCounters>|null} [batteryCounters] AndroidPowerConfig batteryCounters\n * @property {boolean|null} [collectPowerRails] AndroidPowerConfig collectPowerRails\n * @property {boolean|null} [collectEnergyEstimationBreakdown] AndroidPowerConfig collectEnergyEstimationBreakdown\n */\n\n /**\n * Constructs a new AndroidPowerConfig.\n * @memberof perfetto.protos\n * @classdesc Represents an AndroidPowerConfig.\n * @implements IAndroidPowerConfig\n * @constructor\n * @param {perfetto.protos.IAndroidPowerConfig=} [properties] Properties to set\n */\n function AndroidPowerConfig(properties) {\n this.batteryCounters = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * AndroidPowerConfig batteryPollMs.\n * @member {number} batteryPollMs\n * @memberof perfetto.protos.AndroidPowerConfig\n * @instance\n */\n AndroidPowerConfig.prototype.batteryPollMs = 0;\n\n /**\n * AndroidPowerConfig batteryCounters.\n * @member {Array.<perfetto.protos.AndroidPowerConfig.BatteryCounters>} batteryCounters\n * @memberof perfetto.protos.AndroidPowerConfig\n * @instance\n */\n AndroidPowerConfig.prototype.batteryCounters = $util.emptyArray;\n\n /**\n * AndroidPowerConfig collectPowerRails.\n * @member {boolean} collectPowerRails\n * @memberof perfetto.protos.AndroidPowerConfig\n * @instance\n */\n AndroidPowerConfig.prototype.collectPowerRails = false;\n\n /**\n * AndroidPowerConfig collectEnergyEstimationBreakdown.\n * @member {boolean} collectEnergyEstimationBreakdown\n * @memberof perfetto.protos.AndroidPowerConfig\n * @instance\n */\n AndroidPowerConfig.prototype.collectEnergyEstimationBreakdown = false;\n\n /**\n * Creates a new AndroidPowerConfig instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidPowerConfig\n * @static\n * @param {perfetto.protos.IAndroidPowerConfig=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidPowerConfig} AndroidPowerConfig instance\n */\n AndroidPowerConfig.create = function create(properties) {\n return new AndroidPowerConfig(properties);\n };\n\n /**\n * Encodes the specified AndroidPowerConfig message. Does not implicitly {@link perfetto.protos.AndroidPowerConfig.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidPowerConfig\n * @static\n * @param {perfetto.protos.IAndroidPowerConfig} message AndroidPowerConfig message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n AndroidPowerConfig.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.batteryPollMs != null && Object.hasOwnProperty.call(message, \"batteryPollMs\"))\n writer.uint32(/* id 1, wireType 0 =*/8).uint32(message.batteryPollMs);\n if (message.batteryCounters != null && message.batteryCounters.length)\n for (var i = 0; i < message.batteryCounters.length; ++i)\n writer.uint32(/* id 2, wireType 0 =*/16).int32(message.batteryCounters[i]);\n if (message.collectPowerRails != null && Object.hasOwnProperty.call(message, \"collectPowerRails\"))\n writer.uint32(/* id 3, wireType 0 =*/24).bool(message.collectPowerRails);\n if (message.collectEnergyEstimationBreakdown != null && Object.hasOwnProperty.call(message, \"collectEnergyEstimationBreakdown\"))\n writer.uint32(/* id 4, wireType 0 =*/32).bool(message.collectEnergyEstimationBreakdown);\n return writer;\n };\n\n /**\n * Encodes the specified AndroidPowerConfig message, length delimited. Does not implicitly {@link perfetto.protos.AndroidPowerConfig.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidPowerConfig\n * @static\n * @param {perfetto.protos.IAndroidPowerConfig} message AndroidPowerConfig message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n AndroidPowerConfig.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes an AndroidPowerConfig message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidPowerConfig\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidPowerConfig} AndroidPowerConfig\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n AndroidPowerConfig.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidPowerConfig();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.batteryPollMs = reader.uint32();\n break;\n case 2:\n if (!(message.batteryCounters && message.batteryCounters.length))\n message.batteryCounters = [];\n if ((tag & 7) === 2) {\n var end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2)\n message.batteryCounters.push(reader.int32());\n } else\n message.batteryCounters.push(reader.int32());\n break;\n case 3:\n message.collectPowerRails = reader.bool();\n break;\n case 4:\n message.collectEnergyEstimationBreakdown = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes an AndroidPowerConfig message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidPowerConfig\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidPowerConfig} AndroidPowerConfig\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n AndroidPowerConfig.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies an AndroidPowerConfig message.\n * @function verify\n * @memberof perfetto.protos.AndroidPowerConfig\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n AndroidPowerConfig.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.batteryPollMs != null && message.hasOwnProperty(\"batteryPollMs\"))\n if (!$util.isInteger(message.batteryPollMs))\n return \"batteryPollMs: integer expected\";\n if (message.batteryCounters != null && message.hasOwnProperty(\"batteryCounters\")) {\n if (!Array.isArray(message.batteryCounters))\n return \"batteryCounters: array expected\";\n for (var i = 0; i < message.batteryCounters.length; ++i)\n switch (message.batteryCounters[i]) {\n default:\n return \"batteryCounters: enum value[] expected\";\n case 0:\n case 1:\n case 2:\n case 3:\n case 4:\n break;\n }\n }\n if (message.collectPowerRails != null && message.hasOwnProperty(\"collectPowerRails\"))\n if (typeof message.collectPowerRails !== \"boolean\")\n return \"collectPowerRails: boolean expected\";\n if (message.collectEnergyEstimationBreakdown != null && message.hasOwnProperty(\"collectEnergyEstimationBreakdown\"))\n if (typeof message.collectEnergyEstimationBreakdown !== \"boolean\")\n return \"collectEnergyEstimationBreakdown: boolean expected\";\n return null;\n };\n\n /**\n * Creates an AndroidPowerConfig message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidPowerConfig\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidPowerConfig} AndroidPowerConfig\n */\n AndroidPowerConfig.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidPowerConfig)\n return object;\n var message = new $root.perfetto.protos.AndroidPowerConfig();\n if (object.batteryPollMs != null)\n message.batteryPollMs = object.batteryPollMs >>> 0;\n if (object.batteryCounters) {\n if (!Array.isArray(object.batteryCounters))\n throw TypeError(\".perfetto.protos.AndroidPowerConfig.batteryCounters: array expected\");\n message.batteryCounters = [];\n for (var i = 0; i < object.batteryCounters.length; ++i)\n switch (object.batteryCounters[i]) {\n default:\n case \"BATTERY_COUNTER_UNSPECIFIED\":\n case 0:\n message.batteryCounters[i] = 0;\n break;\n case \"BATTERY_COUNTER_CHARGE\":\n case 1:\n message.batteryCounters[i] = 1;\n break;\n case \"BATTERY_COUNTER_CAPACITY_PERCENT\":\n case 2:\n message.batteryCounters[i] = 2;\n break;\n case \"BATTERY_COUNTER_CURRENT\":\n case 3:\n message.batteryCounters[i] = 3;\n break;\n case \"BATTERY_COUNTER_CURRENT_AVG\":\n case 4:\n message.batteryCounters[i] = 4;\n break;\n }\n }\n if (object.collectPowerRails != null)\n message.collectPowerRails = Boolean(object.collectPowerRails);\n if (object.collectEnergyEstimationBreakdown != null)\n message.collectEnergyEstimationBreakdown = Boolean(object.collectEnergyEstimationBreakdown);\n return message;\n };\n\n /**\n * Creates a plain object from an AndroidPowerConfig message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidPowerConfig\n * @static\n * @param {perfetto.protos.AndroidPowerConfig} message AndroidPowerConfig\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n AndroidPowerConfig.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.batteryCounters = [];\n if (options.defaults) {\n object.batteryPollMs = 0;\n object.collectPowerRails = false;\n object.collectEnergyEstimationBreakdown = false;\n }\n if (message.batteryPollMs != null && message.hasOwnProperty(\"batteryPollMs\"))\n object.batteryPollMs = message.batteryPollMs;\n if (message.batteryCounters && message.batteryCounters.length) {\n object.batteryCounters = [];\n for (var j = 0; j < message.batteryCounters.length; ++j)\n object.batteryCounters[j] = options.enums === String ? $root.perfetto.protos.AndroidPowerConfig.BatteryCounters[message.batteryCounters[j]] : message.batteryCounters[j];\n }\n if (message.collectPowerRails != null && message.hasOwnProperty(\"collectPowerRails\"))\n object.collectPowerRails = message.collectPowerRails;\n if (message.collectEnergyEstimationBreakdown != null && message.hasOwnProperty(\"collectEnergyEstimationBreakdown\"))\n object.collectEnergyEstimationBreakdown = message.collectEnergyEstimationBreakdown;\n return object;\n };\n\n /**\n * Converts this AndroidPowerConfig to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidPowerConfig\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n AndroidPowerConfig.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n /**\n * BatteryCounters enum.\n * @name perfetto.protos.AndroidPowerConfig.BatteryCounters\n * @enum {number}\n * @property {number} BATTERY_COUNTER_UNSPECIFIED=0 BATTERY_COUNTER_UNSPECIFIED value\n * @property {number} BATTERY_COUNTER_CHARGE=1 BATTERY_COUNTER_CHARGE value\n * @property {number} BATTERY_COUNTER_CAPACITY_PERCENT=2 BATTERY_COUNTER_CAPACITY_PERCENT value\n * @property {number} BATTERY_COUNTER_CURRENT=3 BATTERY_COUNTER_CURRENT value\n * @property {number} BATTERY_COUNTER_CURRENT_AVG=4 BATTERY_COUNTER_CURRENT_AVG value\n */\n AndroidPowerConfig.BatteryCounters = (function() {\n var valuesById = {}, values = Object.create(valuesById);\n values[valuesById[0] = \"BATTERY_COUNTER_UNSPECIFIED\"] = 0;\n values[valuesById[1] = \"BATTERY_COUNTER_CHARGE\"] = 1;\n values[valuesById[2] = \"BATTERY_COUNTER_CAPACITY_PERCENT\"] = 2;\n values[valuesById[3] = \"BATTERY_COUNTER_CURRENT\"] = 3;\n values[valuesById[4] = \"BATTERY_COUNTER_CURRENT_AVG\"] = 4;\n return values;\n })();\n\n return AndroidPowerConfig;\n })();\n\n protos.ProcessStatsConfig = (function() {\n\n /**\n * Properties of a ProcessStatsConfig.\n * @memberof perfetto.protos\n * @interface IProcessStatsConfig\n * @property {Array.<perfetto.protos.ProcessStatsConfig.Quirks>|null} [quirks] ProcessStatsConfig quirks\n * @property {boolean|null} [scanAllProcessesOnStart] ProcessStatsConfig scanAllProcessesOnStart\n * @property {boolean|null} [recordThreadNames] ProcessStatsConfig recordThreadNames\n * @property {number|null} [procStatsPollMs] ProcessStatsConfig procStatsPollMs\n * @property {number|null} [procStatsCacheTtlMs] ProcessStatsConfig procStatsCacheTtlMs\n * @property {boolean|null} [recordThreadTimeInState] ProcessStatsConfig recordThreadTimeInState\n * @property {number|null} [threadTimeInStateCacheSize] ProcessStatsConfig threadTimeInStateCacheSize\n */\n\n /**\n * Constructs a new ProcessStatsConfig.\n * @memberof perfetto.protos\n * @classdesc Represents a ProcessStatsConfig.\n * @implements IProcessStatsConfig\n * @constructor\n * @param {perfetto.protos.IProcessStatsConfig=} [properties] Properties to set\n */\n function ProcessStatsConfig(properties) {\n this.quirks = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * ProcessStatsConfig quirks.\n * @member {Array.<perfetto.protos.ProcessStatsConfig.Quirks>} quirks\n * @memberof perfetto.protos.ProcessStatsConfig\n * @instance\n */\n ProcessStatsConfig.prototype.quirks = $util.emptyArray;\n\n /**\n * ProcessStatsConfig scanAllProcessesOnStart.\n * @member {boolean} scanAllProcessesOnStart\n * @memberof perfetto.protos.ProcessStatsConfig\n * @instance\n */\n ProcessStatsConfig.prototype.scanAllProcessesOnStart = false;\n\n /**\n * ProcessStatsConfig recordThreadNames.\n * @member {boolean} recordThreadNames\n * @memberof perfetto.protos.ProcessStatsConfig\n * @instance\n */\n ProcessStatsConfig.prototype.recordThreadNames = false;\n\n /**\n * ProcessStatsConfig procStatsPollMs.\n * @member {number} procStatsPollMs\n * @memberof perfetto.protos.ProcessStatsConfig\n * @instance\n */\n ProcessStatsConfig.prototype.procStatsPollMs = 0;\n\n /**\n * ProcessStatsConfig procStatsCacheTtlMs.\n * @member {number} procStatsCacheTtlMs\n * @memberof perfetto.protos.ProcessStatsConfig\n * @instance\n */\n ProcessStatsConfig.prototype.procStatsCacheTtlMs = 0;\n\n /**\n * ProcessStatsConfig recordThreadTimeInState.\n * @member {boolean} recordThreadTimeInState\n * @memberof perfetto.protos.ProcessStatsConfig\n * @instance\n */\n ProcessStatsConfig.prototype.recordThreadTimeInState = false;\n\n /**\n * ProcessStatsConfig threadTimeInStateCacheSize.\n * @member {number} threadTimeInStateCacheSize\n * @memberof perfetto.protos.ProcessStatsConfig\n * @instance\n */\n ProcessStatsConfig.prototype.threadTimeInStateCacheSize = 0;\n\n /**\n * Creates a new ProcessStatsConfig instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.ProcessStatsConfig\n * @static\n * @param {perfetto.protos.IProcessStatsConfig=} [properties] Properties to set\n * @returns {perfetto.protos.ProcessStatsConfig} ProcessStatsConfig instance\n */\n ProcessStatsConfig.create = function create(properties) {\n return new ProcessStatsConfig(properties);\n };\n\n /**\n * Encodes the specified ProcessStatsConfig message. Does not implicitly {@link perfetto.protos.ProcessStatsConfig.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.ProcessStatsConfig\n * @static\n * @param {perfetto.protos.IProcessStatsConfig} message ProcessStatsConfig message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ProcessStatsConfig.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.quirks != null && message.quirks.length)\n for (var i = 0; i < message.quirks.length; ++i)\n writer.uint32(/* id 1, wireType 0 =*/8).int32(message.quirks[i]);\n if (message.scanAllProcessesOnStart != null && Object.hasOwnProperty.call(message, \"scanAllProcessesOnStart\"))\n writer.uint32(/* id 2, wireType 0 =*/16).bool(message.scanAllProcessesOnStart);\n if (message.recordThreadNames != null && Object.hasOwnProperty.call(message, \"recordThreadNames\"))\n writer.uint32(/* id 3, wireType 0 =*/24).bool(message.recordThreadNames);\n if (message.procStatsPollMs != null && Object.hasOwnProperty.call(message, \"procStatsPollMs\"))\n writer.uint32(/* id 4, wireType 0 =*/32).uint32(message.procStatsPollMs);\n if (message.procStatsCacheTtlMs != null && Object.hasOwnProperty.call(message, \"procStatsCacheTtlMs\"))\n writer.uint32(/* id 6, wireType 0 =*/48).uint32(message.procStatsCacheTtlMs);\n if (message.recordThreadTimeInState != null && Object.hasOwnProperty.call(message, \"recordThreadTimeInState\"))\n writer.uint32(/* id 7, wireType 0 =*/56).bool(message.recordThreadTimeInState);\n if (message.threadTimeInStateCacheSize != null && Object.hasOwnProperty.call(message, \"threadTimeInStateCacheSize\"))\n writer.uint32(/* id 8, wireType 0 =*/64).uint32(message.threadTimeInStateCacheSize);\n return writer;\n };\n\n /**\n * Encodes the specified ProcessStatsConfig message, length delimited. Does not implicitly {@link perfetto.protos.ProcessStatsConfig.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.ProcessStatsConfig\n * @static\n * @param {perfetto.protos.IProcessStatsConfig} message ProcessStatsConfig message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ProcessStatsConfig.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a ProcessStatsConfig message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.ProcessStatsConfig\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.ProcessStatsConfig} ProcessStatsConfig\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ProcessStatsConfig.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.ProcessStatsConfig();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (!(message.quirks && message.quirks.length))\n message.quirks = [];\n if ((tag & 7) === 2) {\n var end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2)\n message.quirks.push(reader.int32());\n } else\n message.quirks.push(reader.int32());\n break;\n case 2:\n message.scanAllProcessesOnStart = reader.bool();\n break;\n case 3:\n message.recordThreadNames = reader.bool();\n break;\n case 4:\n message.procStatsPollMs = reader.uint32();\n break;\n case 6:\n message.procStatsCacheTtlMs = reader.uint32();\n break;\n case 7:\n message.recordThreadTimeInState = reader.bool();\n break;\n case 8:\n message.threadTimeInStateCacheSize = reader.uint32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a ProcessStatsConfig message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.ProcessStatsConfig\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.ProcessStatsConfig} ProcessStatsConfig\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ProcessStatsConfig.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a ProcessStatsConfig message.\n * @function verify\n * @memberof perfetto.protos.ProcessStatsConfig\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n ProcessStatsConfig.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.quirks != null && message.hasOwnProperty(\"quirks\")) {\n if (!Array.isArray(message.quirks))\n return \"quirks: array expected\";\n for (var i = 0; i < message.quirks.length; ++i)\n switch (message.quirks[i]) {\n default:\n return \"quirks: enum value[] expected\";\n case 0:\n case 1:\n case 2:\n break;\n }\n }\n if (message.scanAllProcessesOnStart != null && message.hasOwnProperty(\"scanAllProcessesOnStart\"))\n if (typeof message.scanAllProcessesOnStart !== \"boolean\")\n return \"scanAllProcessesOnStart: boolean expected\";\n if (message.recordThreadNames != null && message.hasOwnProperty(\"recordThreadNames\"))\n if (typeof message.recordThreadNames !== \"boolean\")\n return \"recordThreadNames: boolean expected\";\n if (message.procStatsPollMs != null && message.hasOwnProperty(\"procStatsPollMs\"))\n if (!$util.isInteger(message.procStatsPollMs))\n return \"procStatsPollMs: integer expected\";\n if (message.procStatsCacheTtlMs != null && message.hasOwnProperty(\"procStatsCacheTtlMs\"))\n if (!$util.isInteger(message.procStatsCacheTtlMs))\n return \"procStatsCacheTtlMs: integer expected\";\n if (message.recordThreadTimeInState != null && message.hasOwnProperty(\"recordThreadTimeInState\"))\n if (typeof message.recordThreadTimeInState !== \"boolean\")\n return \"recordThreadTimeInState: boolean expected\";\n if (message.threadTimeInStateCacheSize != null && message.hasOwnProperty(\"threadTimeInStateCacheSize\"))\n if (!$util.isInteger(message.threadTimeInStateCacheSize))\n return \"threadTimeInStateCacheSize: integer expected\";\n return null;\n };\n\n /**\n * Creates a ProcessStatsConfig message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.ProcessStatsConfig\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.ProcessStatsConfig} ProcessStatsConfig\n */\n ProcessStatsConfig.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.ProcessStatsConfig)\n return object;\n var message = new $root.perfetto.protos.ProcessStatsConfig();\n if (object.quirks) {\n if (!Array.isArray(object.quirks))\n throw TypeError(\".perfetto.protos.ProcessStatsConfig.quirks: array expected\");\n message.quirks = [];\n for (var i = 0; i < object.quirks.length; ++i)\n switch (object.quirks[i]) {\n default:\n case \"QUIRKS_UNSPECIFIED\":\n case 0:\n message.quirks[i] = 0;\n break;\n case \"DISABLE_INITIAL_DUMP\":\n case 1:\n message.quirks[i] = 1;\n break;\n case \"DISABLE_ON_DEMAND\":\n case 2:\n message.quirks[i] = 2;\n break;\n }\n }\n if (object.scanAllProcessesOnStart != null)\n message.scanAllProcessesOnStart = Boolean(object.scanAllProcessesOnStart);\n if (object.recordThreadNames != null)\n message.recordThreadNames = Boolean(object.recordThreadNames);\n if (object.procStatsPollMs != null)\n message.procStatsPollMs = object.procStatsPollMs >>> 0;\n if (object.procStatsCacheTtlMs != null)\n message.procStatsCacheTtlMs = object.procStatsCacheTtlMs >>> 0;\n if (object.recordThreadTimeInState != null)\n message.recordThreadTimeInState = Boolean(object.recordThreadTimeInState);\n if (object.threadTimeInStateCacheSize != null)\n message.threadTimeInStateCacheSize = object.threadTimeInStateCacheSize >>> 0;\n return message;\n };\n\n /**\n * Creates a plain object from a ProcessStatsConfig message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.ProcessStatsConfig\n * @static\n * @param {perfetto.protos.ProcessStatsConfig} message ProcessStatsConfig\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n ProcessStatsConfig.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.quirks = [];\n if (options.defaults) {\n object.scanAllProcessesOnStart = false;\n object.recordThreadNames = false;\n object.procStatsPollMs = 0;\n object.procStatsCacheTtlMs = 0;\n object.recordThreadTimeInState = false;\n object.threadTimeInStateCacheSize = 0;\n }\n if (message.quirks && message.quirks.length) {\n object.quirks = [];\n for (var j = 0; j < message.quirks.length; ++j)\n object.quirks[j] = options.enums === String ? $root.perfetto.protos.ProcessStatsConfig.Quirks[message.quirks[j]] : message.quirks[j];\n }\n if (message.scanAllProcessesOnStart != null && message.hasOwnProperty(\"scanAllProcessesOnStart\"))\n object.scanAllProcessesOnStart = message.scanAllProcessesOnStart;\n if (message.recordThreadNames != null && message.hasOwnProperty(\"recordThreadNames\"))\n object.recordThreadNames = message.recordThreadNames;\n if (message.procStatsPollMs != null && message.hasOwnProperty(\"procStatsPollMs\"))\n object.procStatsPollMs = message.procStatsPollMs;\n if (message.procStatsCacheTtlMs != null && message.hasOwnProperty(\"procStatsCacheTtlMs\"))\n object.procStatsCacheTtlMs = message.procStatsCacheTtlMs;\n if (message.recordThreadTimeInState != null && message.hasOwnProperty(\"recordThreadTimeInState\"))\n object.recordThreadTimeInState = message.recordThreadTimeInState;\n if (message.threadTimeInStateCacheSize != null && message.hasOwnProperty(\"threadTimeInStateCacheSize\"))\n object.threadTimeInStateCacheSize = message.threadTimeInStateCacheSize;\n return object;\n };\n\n /**\n * Converts this ProcessStatsConfig to JSON.\n * @function toJSON\n * @memberof perfetto.protos.ProcessStatsConfig\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n ProcessStatsConfig.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n /**\n * Quirks enum.\n * @name perfetto.protos.ProcessStatsConfig.Quirks\n * @enum {number}\n * @property {number} QUIRKS_UNSPECIFIED=0 QUIRKS_UNSPECIFIED value\n * @property {number} DISABLE_INITIAL_DUMP=1 DISABLE_INITIAL_DUMP value\n * @property {number} DISABLE_ON_DEMAND=2 DISABLE_ON_DEMAND value\n */\n ProcessStatsConfig.Quirks = (function() {\n var valuesById = {}, values = Object.create(valuesById);\n values[valuesById[0] = \"QUIRKS_UNSPECIFIED\"] = 0;\n values[valuesById[1] = \"DISABLE_INITIAL_DUMP\"] = 1;\n values[valuesById[2] = \"DISABLE_ON_DEMAND\"] = 2;\n return values;\n })();\n\n return ProcessStatsConfig;\n })();\n\n protos.HeapprofdConfig = (function() {\n\n /**\n * Properties of a HeapprofdConfig.\n * @memberof perfetto.protos\n * @interface IHeapprofdConfig\n * @property {number|null} [samplingIntervalBytes] HeapprofdConfig samplingIntervalBytes\n * @property {number|null} [adaptiveSamplingShmemThreshold] HeapprofdConfig adaptiveSamplingShmemThreshold\n * @property {number|null} [adaptiveSamplingMaxSamplingIntervalBytes] HeapprofdConfig adaptiveSamplingMaxSamplingIntervalBytes\n * @property {Array.<string>|null} [processCmdline] HeapprofdConfig processCmdline\n * @property {Array.<number>|null} [pid] HeapprofdConfig pid\n * @property {Array.<string>|null} [targetInstalledBy] HeapprofdConfig targetInstalledBy\n * @property {Array.<string>|null} [heaps] HeapprofdConfig heaps\n * @property {Array.<string>|null} [excludeHeaps] HeapprofdConfig excludeHeaps\n * @property {boolean|null} [streamAllocations] HeapprofdConfig streamAllocations\n * @property {Array.<number>|null} [heapSamplingIntervals] HeapprofdConfig heapSamplingIntervals\n * @property {boolean|null} [allHeaps] HeapprofdConfig allHeaps\n * @property {boolean|null} [all] HeapprofdConfig all\n * @property {number|null} [minAnonymousMemoryKb] HeapprofdConfig minAnonymousMemoryKb\n * @property {number|null} [maxHeapprofdMemoryKb] HeapprofdConfig maxHeapprofdMemoryKb\n * @property {number|null} [maxHeapprofdCpuSecs] HeapprofdConfig maxHeapprofdCpuSecs\n * @property {Array.<string>|null} [skipSymbolPrefix] HeapprofdConfig skipSymbolPrefix\n * @property {perfetto.protos.HeapprofdConfig.IContinuousDumpConfig|null} [continuousDumpConfig] HeapprofdConfig continuousDumpConfig\n * @property {number|null} [shmemSizeBytes] HeapprofdConfig shmemSizeBytes\n * @property {boolean|null} [blockClient] HeapprofdConfig blockClient\n * @property {number|null} [blockClientTimeoutUs] HeapprofdConfig blockClientTimeoutUs\n * @property {boolean|null} [noStartup] HeapprofdConfig noStartup\n * @property {boolean|null} [noRunning] HeapprofdConfig noRunning\n * @property {boolean|null} [dumpAtMax] HeapprofdConfig dumpAtMax\n * @property {boolean|null} [disableForkTeardown] HeapprofdConfig disableForkTeardown\n * @property {boolean|null} [disableVforkDetection] HeapprofdConfig disableVforkDetection\n */\n\n /**\n * Constructs a new HeapprofdConfig.\n * @memberof perfetto.protos\n * @classdesc Represents a HeapprofdConfig.\n * @implements IHeapprofdConfig\n * @constructor\n * @param {perfetto.protos.IHeapprofdConfig=} [properties] Properties to set\n */\n function HeapprofdConfig(properties) {\n this.processCmdline = [];\n this.pid = [];\n this.targetInstalledBy = [];\n this.heaps = [];\n this.excludeHeaps = [];\n this.heapSamplingIntervals = [];\n this.skipSymbolPrefix = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * HeapprofdConfig samplingIntervalBytes.\n * @member {number} samplingIntervalBytes\n * @memberof perfetto.protos.HeapprofdConfig\n * @instance\n */\n HeapprofdConfig.prototype.samplingIntervalBytes = $util.Long ? $util.Long.fromBits(0,0,true) : 0;\n\n /**\n * HeapprofdConfig adaptiveSamplingShmemThreshold.\n * @member {number} adaptiveSamplingShmemThreshold\n * @memberof perfetto.protos.HeapprofdConfig\n * @instance\n */\n HeapprofdConfig.prototype.adaptiveSamplingShmemThreshold = $util.Long ? $util.Long.fromBits(0,0,true) : 0;\n\n /**\n * HeapprofdConfig adaptiveSamplingMaxSamplingIntervalBytes.\n * @member {number} adaptiveSamplingMaxSamplingIntervalBytes\n * @memberof perfetto.protos.HeapprofdConfig\n * @instance\n */\n HeapprofdConfig.prototype.adaptiveSamplingMaxSamplingIntervalBytes = $util.Long ? $util.Long.fromBits(0,0,true) : 0;\n\n /**\n * HeapprofdConfig processCmdline.\n * @member {Array.<string>} processCmdline\n * @memberof perfetto.protos.HeapprofdConfig\n * @instance\n */\n HeapprofdConfig.prototype.processCmdline = $util.emptyArray;\n\n /**\n * HeapprofdConfig pid.\n * @member {Array.<number>} pid\n * @memberof perfetto.protos.HeapprofdConfig\n * @instance\n */\n HeapprofdConfig.prototype.pid = $util.emptyArray;\n\n /**\n * HeapprofdConfig targetInstalledBy.\n * @member {Array.<string>} targetInstalledBy\n * @memberof perfetto.protos.HeapprofdConfig\n * @instance\n */\n HeapprofdConfig.prototype.targetInstalledBy = $util.emptyArray;\n\n /**\n * HeapprofdConfig heaps.\n * @member {Array.<string>} heaps\n * @memberof perfetto.protos.HeapprofdConfig\n * @instance\n */\n HeapprofdConfig.prototype.heaps = $util.emptyArray;\n\n /**\n * HeapprofdConfig excludeHeaps.\n * @member {Array.<string>} excludeHeaps\n * @memberof perfetto.protos.HeapprofdConfig\n * @instance\n */\n HeapprofdConfig.prototype.excludeHeaps = $util.emptyArray;\n\n /**\n * HeapprofdConfig streamAllocations.\n * @member {boolean} streamAllocations\n * @memberof perfetto.protos.HeapprofdConfig\n * @instance\n */\n HeapprofdConfig.prototype.streamAllocations = false;\n\n /**\n * HeapprofdConfig heapSamplingIntervals.\n * @member {Array.<number>} heapSamplingIntervals\n * @memberof perfetto.protos.HeapprofdConfig\n * @instance\n */\n HeapprofdConfig.prototype.heapSamplingIntervals = $util.emptyArray;\n\n /**\n * HeapprofdConfig allHeaps.\n * @member {boolean} allHeaps\n * @memberof perfetto.protos.HeapprofdConfig\n * @instance\n */\n HeapprofdConfig.prototype.allHeaps = false;\n\n /**\n * HeapprofdConfig all.\n * @member {boolean} all\n * @memberof perfetto.protos.HeapprofdConfig\n * @instance\n */\n HeapprofdConfig.prototype.all = false;\n\n /**\n * HeapprofdConfig minAnonymousMemoryKb.\n * @member {number} minAnonymousMemoryKb\n * @memberof perfetto.protos.HeapprofdConfig\n * @instance\n */\n HeapprofdConfig.prototype.minAnonymousMemoryKb = 0;\n\n /**\n * HeapprofdConfig maxHeapprofdMemoryKb.\n * @member {number} maxHeapprofdMemoryKb\n * @memberof perfetto.protos.HeapprofdConfig\n * @instance\n */\n HeapprofdConfig.prototype.maxHeapprofdMemoryKb = 0;\n\n /**\n * HeapprofdConfig maxHeapprofdCpuSecs.\n * @member {number} maxHeapprofdCpuSecs\n * @memberof perfetto.protos.HeapprofdConfig\n * @instance\n */\n HeapprofdConfig.prototype.maxHeapprofdCpuSecs = $util.Long ? $util.Long.fromBits(0,0,true) : 0;\n\n /**\n * HeapprofdConfig skipSymbolPrefix.\n * @member {Array.<string>} skipSymbolPrefix\n * @memberof perfetto.protos.HeapprofdConfig\n * @instance\n */\n HeapprofdConfig.prototype.skipSymbolPrefix = $util.emptyArray;\n\n /**\n * HeapprofdConfig continuousDumpConfig.\n * @member {perfetto.protos.HeapprofdConfig.IContinuousDumpConfig|null|undefined} continuousDumpConfig\n * @memberof perfetto.protos.HeapprofdConfig\n * @instance\n */\n HeapprofdConfig.prototype.continuousDumpConfig = null;\n\n /**\n * HeapprofdConfig shmemSizeBytes.\n * @member {number} shmemSizeBytes\n * @memberof perfetto.protos.HeapprofdConfig\n * @instance\n */\n HeapprofdConfig.prototype.shmemSizeBytes = $util.Long ? $util.Long.fromBits(0,0,true) : 0;\n\n /**\n * HeapprofdConfig blockClient.\n * @member {boolean} blockClient\n * @memberof perfetto.protos.HeapprofdConfig\n * @instance\n */\n HeapprofdConfig.prototype.blockClient = false;\n\n /**\n * HeapprofdConfig blockClientTimeoutUs.\n * @member {number} blockClientTimeoutUs\n * @memberof perfetto.protos.HeapprofdConfig\n * @instance\n */\n HeapprofdConfig.prototype.blockClientTimeoutUs = 0;\n\n /**\n * HeapprofdConfig noStartup.\n * @member {boolean} noStartup\n * @memberof perfetto.protos.HeapprofdConfig\n * @instance\n */\n HeapprofdConfig.prototype.noStartup = false;\n\n /**\n * HeapprofdConfig noRunning.\n * @member {boolean} noRunning\n * @memberof perfetto.protos.HeapprofdConfig\n * @instance\n */\n HeapprofdConfig.prototype.noRunning = false;\n\n /**\n * HeapprofdConfig dumpAtMax.\n * @member {boolean} dumpAtMax\n * @memberof perfetto.protos.HeapprofdConfig\n * @instance\n */\n HeapprofdConfig.prototype.dumpAtMax = false;\n\n /**\n * HeapprofdConfig disableForkTeardown.\n * @member {boolean} disableForkTeardown\n * @memberof perfetto.protos.HeapprofdConfig\n * @instance\n */\n HeapprofdConfig.prototype.disableForkTeardown = false;\n\n /**\n * HeapprofdConfig disableVforkDetection.\n * @member {boolean} disableVforkDetection\n * @memberof perfetto.protos.HeapprofdConfig\n * @instance\n */\n HeapprofdConfig.prototype.disableVforkDetection = false;\n\n /**\n * Creates a new HeapprofdConfig instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.HeapprofdConfig\n * @static\n * @param {perfetto.protos.IHeapprofdConfig=} [properties] Properties to set\n * @returns {perfetto.protos.HeapprofdConfig} HeapprofdConfig instance\n */\n HeapprofdConfig.create = function create(properties) {\n return new HeapprofdConfig(properties);\n };\n\n /**\n * Encodes the specified HeapprofdConfig message. Does not implicitly {@link perfetto.protos.HeapprofdConfig.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.HeapprofdConfig\n * @static\n * @param {perfetto.protos.IHeapprofdConfig} message HeapprofdConfig message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n HeapprofdConfig.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.samplingIntervalBytes != null && Object.hasOwnProperty.call(message, \"samplingIntervalBytes\"))\n writer.uint32(/* id 1, wireType 0 =*/8).uint64(message.samplingIntervalBytes);\n if (message.processCmdline != null && message.processCmdline.length)\n for (var i = 0; i < message.processCmdline.length; ++i)\n writer.uint32(/* id 2, wireType 2 =*/18).string(message.processCmdline[i]);\n if (message.pid != null && message.pid.length)\n for (var i = 0; i < message.pid.length; ++i)\n writer.uint32(/* id 4, wireType 0 =*/32).uint64(message.pid[i]);\n if (message.all != null && Object.hasOwnProperty.call(message, \"all\"))\n writer.uint32(/* id 5, wireType 0 =*/40).bool(message.all);\n if (message.continuousDumpConfig != null && Object.hasOwnProperty.call(message, \"continuousDumpConfig\"))\n $root.perfetto.protos.HeapprofdConfig.ContinuousDumpConfig.encode(message.continuousDumpConfig, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim();\n if (message.skipSymbolPrefix != null && message.skipSymbolPrefix.length)\n for (var i = 0; i < message.skipSymbolPrefix.length; ++i)\n writer.uint32(/* id 7, wireType 2 =*/58).string(message.skipSymbolPrefix[i]);\n if (message.shmemSizeBytes != null && Object.hasOwnProperty.call(message, \"shmemSizeBytes\"))\n writer.uint32(/* id 8, wireType 0 =*/64).uint64(message.shmemSizeBytes);\n if (message.blockClient != null && Object.hasOwnProperty.call(message, \"blockClient\"))\n writer.uint32(/* id 9, wireType 0 =*/72).bool(message.blockClient);\n if (message.noStartup != null && Object.hasOwnProperty.call(message, \"noStartup\"))\n writer.uint32(/* id 10, wireType 0 =*/80).bool(message.noStartup);\n if (message.noRunning != null && Object.hasOwnProperty.call(message, \"noRunning\"))\n writer.uint32(/* id 11, wireType 0 =*/88).bool(message.noRunning);\n if (message.dumpAtMax != null && Object.hasOwnProperty.call(message, \"dumpAtMax\"))\n writer.uint32(/* id 13, wireType 0 =*/104).bool(message.dumpAtMax);\n if (message.blockClientTimeoutUs != null && Object.hasOwnProperty.call(message, \"blockClientTimeoutUs\"))\n writer.uint32(/* id 14, wireType 0 =*/112).uint32(message.blockClientTimeoutUs);\n if (message.minAnonymousMemoryKb != null && Object.hasOwnProperty.call(message, \"minAnonymousMemoryKb\"))\n writer.uint32(/* id 15, wireType 0 =*/120).uint32(message.minAnonymousMemoryKb);\n if (message.maxHeapprofdMemoryKb != null && Object.hasOwnProperty.call(message, \"maxHeapprofdMemoryKb\"))\n writer.uint32(/* id 16, wireType 0 =*/128).uint32(message.maxHeapprofdMemoryKb);\n if (message.maxHeapprofdCpuSecs != null && Object.hasOwnProperty.call(message, \"maxHeapprofdCpuSecs\"))\n writer.uint32(/* id 17, wireType 0 =*/136).uint64(message.maxHeapprofdCpuSecs);\n if (message.disableForkTeardown != null && Object.hasOwnProperty.call(message, \"disableForkTeardown\"))\n writer.uint32(/* id 18, wireType 0 =*/144).bool(message.disableForkTeardown);\n if (message.disableVforkDetection != null && Object.hasOwnProperty.call(message, \"disableVforkDetection\"))\n writer.uint32(/* id 19, wireType 0 =*/152).bool(message.disableVforkDetection);\n if (message.heaps != null && message.heaps.length)\n for (var i = 0; i < message.heaps.length; ++i)\n writer.uint32(/* id 20, wireType 2 =*/162).string(message.heaps[i]);\n if (message.allHeaps != null && Object.hasOwnProperty.call(message, \"allHeaps\"))\n writer.uint32(/* id 21, wireType 0 =*/168).bool(message.allHeaps);\n if (message.heapSamplingIntervals != null && message.heapSamplingIntervals.length)\n for (var i = 0; i < message.heapSamplingIntervals.length; ++i)\n writer.uint32(/* id 22, wireType 0 =*/176).uint64(message.heapSamplingIntervals[i]);\n if (message.streamAllocations != null && Object.hasOwnProperty.call(message, \"streamAllocations\"))\n writer.uint32(/* id 23, wireType 0 =*/184).bool(message.streamAllocations);\n if (message.adaptiveSamplingShmemThreshold != null && Object.hasOwnProperty.call(message, \"adaptiveSamplingShmemThreshold\"))\n writer.uint32(/* id 24, wireType 0 =*/192).uint64(message.adaptiveSamplingShmemThreshold);\n if (message.adaptiveSamplingMaxSamplingIntervalBytes != null && Object.hasOwnProperty.call(message, \"adaptiveSamplingMaxSamplingIntervalBytes\"))\n writer.uint32(/* id 25, wireType 0 =*/200).uint64(message.adaptiveSamplingMaxSamplingIntervalBytes);\n if (message.targetInstalledBy != null && message.targetInstalledBy.length)\n for (var i = 0; i < message.targetInstalledBy.length; ++i)\n writer.uint32(/* id 26, wireType 2 =*/210).string(message.targetInstalledBy[i]);\n if (message.excludeHeaps != null && message.excludeHeaps.length)\n for (var i = 0; i < message.excludeHeaps.length; ++i)\n writer.uint32(/* id 27, wireType 2 =*/218).string(message.excludeHeaps[i]);\n return writer;\n };\n\n /**\n * Encodes the specified HeapprofdConfig message, length delimited. Does not implicitly {@link perfetto.protos.HeapprofdConfig.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.HeapprofdConfig\n * @static\n * @param {perfetto.protos.IHeapprofdConfig} message HeapprofdConfig message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n HeapprofdConfig.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a HeapprofdConfig message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.HeapprofdConfig\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.HeapprofdConfig} HeapprofdConfig\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n HeapprofdConfig.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.HeapprofdConfig();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.samplingIntervalBytes = reader.uint64();\n break;\n case 24:\n message.adaptiveSamplingShmemThreshold = reader.uint64();\n break;\n case 25:\n message.adaptiveSamplingMaxSamplingIntervalBytes = reader.uint64();\n break;\n case 2:\n if (!(message.processCmdline && message.processCmdline.length))\n message.processCmdline = [];\n message.processCmdline.push(reader.string());\n break;\n case 4:\n if (!(message.pid && message.pid.length))\n message.pid = [];\n if ((tag & 7) === 2) {\n var end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2)\n message.pid.push(reader.uint64());\n } else\n message.pid.push(reader.uint64());\n break;\n case 26:\n if (!(message.targetInstalledBy && message.targetInstalledBy.length))\n message.targetInstalledBy = [];\n message.targetInstalledBy.push(reader.string());\n break;\n case 20:\n if (!(message.heaps && message.heaps.length))\n message.heaps = [];\n message.heaps.push(reader.string());\n break;\n case 27:\n if (!(message.excludeHeaps && message.excludeHeaps.length))\n message.excludeHeaps = [];\n message.excludeHeaps.push(reader.string());\n break;\n case 23:\n message.streamAllocations = reader.bool();\n break;\n case 22:\n if (!(message.heapSamplingIntervals && message.heapSamplingIntervals.length))\n message.heapSamplingIntervals = [];\n if ((tag & 7) === 2) {\n var end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2)\n message.heapSamplingIntervals.push(reader.uint64());\n } else\n message.heapSamplingIntervals.push(reader.uint64());\n break;\n case 21:\n message.allHeaps = reader.bool();\n break;\n case 5:\n message.all = reader.bool();\n break;\n case 15:\n message.minAnonymousMemoryKb = reader.uint32();\n break;\n case 16:\n message.maxHeapprofdMemoryKb = reader.uint32();\n break;\n case 17:\n message.maxHeapprofdCpuSecs = reader.uint64();\n break;\n case 7:\n if (!(message.skipSymbolPrefix && message.skipSymbolPrefix.length))\n message.skipSymbolPrefix = [];\n message.skipSymbolPrefix.push(reader.string());\n break;\n case 6:\n message.continuousDumpConfig = $root.perfetto.protos.HeapprofdConfig.ContinuousDumpConfig.decode(reader, reader.uint32());\n break;\n case 8:\n message.shmemSizeBytes = reader.uint64();\n break;\n case 9:\n message.blockClient = reader.bool();\n break;\n case 14:\n message.blockClientTimeoutUs = reader.uint32();\n break;\n case 10:\n message.noStartup = reader.bool();\n break;\n case 11:\n message.noRunning = reader.bool();\n break;\n case 13:\n message.dumpAtMax = reader.bool();\n break;\n case 18:\n message.disableForkTeardown = reader.bool();\n break;\n case 19:\n message.disableVforkDetection = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a HeapprofdConfig message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.HeapprofdConfig\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.HeapprofdConfig} HeapprofdConfig\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n HeapprofdConfig.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a HeapprofdConfig message.\n * @function verify\n * @memberof perfetto.protos.HeapprofdConfig\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n HeapprofdConfig.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.samplingIntervalBytes != null && message.hasOwnProperty(\"samplingIntervalBytes\"))\n if (!$util.isInteger(message.samplingIntervalBytes) && !(message.samplingIntervalBytes && $util.isInteger(message.samplingIntervalBytes.low) && $util.isInteger(message.samplingIntervalBytes.high)))\n return \"samplingIntervalBytes: integer|Long expected\";\n if (message.adaptiveSamplingShmemThreshold != null && message.hasOwnProperty(\"adaptiveSamplingShmemThreshold\"))\n if (!$util.isInteger(message.adaptiveSamplingShmemThreshold) && !(message.adaptiveSamplingShmemThreshold && $util.isInteger(message.adaptiveSamplingShmemThreshold.low) && $util.isInteger(message.adaptiveSamplingShmemThreshold.high)))\n return \"adaptiveSamplingShmemThreshold: integer|Long expected\";\n if (message.adaptiveSamplingMaxSamplingIntervalBytes != null && message.hasOwnProperty(\"adaptiveSamplingMaxSamplingIntervalBytes\"))\n if (!$util.isInteger(message.adaptiveSamplingMaxSamplingIntervalBytes) && !(message.adaptiveSamplingMaxSamplingIntervalBytes && $util.isInteger(message.adaptiveSamplingMaxSamplingIntervalBytes.low) && $util.isInteger(message.adaptiveSamplingMaxSamplingIntervalBytes.high)))\n return \"adaptiveSamplingMaxSamplingIntervalBytes: integer|Long expected\";\n if (message.processCmdline != null && message.hasOwnProperty(\"processCmdline\")) {\n if (!Array.isArray(message.processCmdline))\n return \"processCmdline: array expected\";\n for (var i = 0; i < message.processCmdline.length; ++i)\n if (!$util.isString(message.processCmdline[i]))\n return \"processCmdline: string[] expected\";\n }\n if (message.pid != null && message.hasOwnProperty(\"pid\")) {\n if (!Array.isArray(message.pid))\n return \"pid: array expected\";\n for (var i = 0; i < message.pid.length; ++i)\n if (!$util.isInteger(message.pid[i]) && !(message.pid[i] && $util.isInteger(message.pid[i].low) && $util.isInteger(message.pid[i].high)))\n return \"pid: integer|Long[] expected\";\n }\n if (message.targetInstalledBy != null && message.hasOwnProperty(\"targetInstalledBy\")) {\n if (!Array.isArray(message.targetInstalledBy))\n return \"targetInstalledBy: array expected\";\n for (var i = 0; i < message.targetInstalledBy.length; ++i)\n if (!$util.isString(message.targetInstalledBy[i]))\n return \"targetInstalledBy: string[] expected\";\n }\n if (message.heaps != null && message.hasOwnProperty(\"heaps\")) {\n if (!Array.isArray(message.heaps))\n return \"heaps: array expected\";\n for (var i = 0; i < message.heaps.length; ++i)\n if (!$util.isString(message.heaps[i]))\n return \"heaps: string[] expected\";\n }\n if (message.excludeHeaps != null && message.hasOwnProperty(\"excludeHeaps\")) {\n if (!Array.isArray(message.excludeHeaps))\n return \"excludeHeaps: array expected\";\n for (var i = 0; i < message.excludeHeaps.length; ++i)\n if (!$util.isString(message.excludeHeaps[i]))\n return \"excludeHeaps: string[] expected\";\n }\n if (message.streamAllocations != null && message.hasOwnProperty(\"streamAllocations\"))\n if (typeof message.streamAllocations !== \"boolean\")\n return \"streamAllocations: boolean expected\";\n if (message.heapSamplingIntervals != null && message.hasOwnProperty(\"heapSamplingIntervals\")) {\n if (!Array.isArray(message.heapSamplingIntervals))\n return \"heapSamplingIntervals: array expected\";\n for (var i = 0; i < message.heapSamplingIntervals.length; ++i)\n if (!$util.isInteger(message.heapSamplingIntervals[i]) && !(message.heapSamplingIntervals[i] && $util.isInteger(message.heapSamplingIntervals[i].low) && $util.isInteger(message.heapSamplingIntervals[i].high)))\n return \"heapSamplingIntervals: integer|Long[] expected\";\n }\n if (message.allHeaps != null && message.hasOwnProperty(\"allHeaps\"))\n if (typeof message.allHeaps !== \"boolean\")\n return \"allHeaps: boolean expected\";\n if (message.all != null && message.hasOwnProperty(\"all\"))\n if (typeof message.all !== \"boolean\")\n return \"all: boolean expected\";\n if (message.minAnonymousMemoryKb != null && message.hasOwnProperty(\"minAnonymousMemoryKb\"))\n if (!$util.isInteger(message.minAnonymousMemoryKb))\n return \"minAnonymousMemoryKb: integer expected\";\n if (message.maxHeapprofdMemoryKb != null && message.hasOwnProperty(\"maxHeapprofdMemoryKb\"))\n if (!$util.isInteger(message.maxHeapprofdMemoryKb))\n return \"maxHeapprofdMemoryKb: integer expected\";\n if (message.maxHeapprofdCpuSecs != null && message.hasOwnProperty(\"maxHeapprofdCpuSecs\"))\n if (!$util.isInteger(message.maxHeapprofdCpuSecs) && !(message.maxHeapprofdCpuSecs && $util.isInteger(message.maxHeapprofdCpuSecs.low) && $util.isInteger(message.maxHeapprofdCpuSecs.high)))\n return \"maxHeapprofdCpuSecs: integer|Long expected\";\n if (message.skipSymbolPrefix != null && message.hasOwnProperty(\"skipSymbolPrefix\")) {\n if (!Array.isArray(message.skipSymbolPrefix))\n return \"skipSymbolPrefix: array expected\";\n for (var i = 0; i < message.skipSymbolPrefix.length; ++i)\n if (!$util.isString(message.skipSymbolPrefix[i]))\n return \"skipSymbolPrefix: string[] expected\";\n }\n if (message.continuousDumpConfig != null && message.hasOwnProperty(\"continuousDumpConfig\")) {\n var error = $root.perfetto.protos.HeapprofdConfig.ContinuousDumpConfig.verify(message.continuousDumpConfig);\n if (error)\n return \"continuousDumpConfig.\" + error;\n }\n if (message.shmemSizeBytes != null && message.hasOwnProperty(\"shmemSizeBytes\"))\n if (!$util.isInteger(message.shmemSizeBytes) && !(message.shmemSizeBytes && $util.isInteger(message.shmemSizeBytes.low) && $util.isInteger(message.shmemSizeBytes.high)))\n return \"shmemSizeBytes: integer|Long expected\";\n if (message.blockClient != null && message.hasOwnProperty(\"blockClient\"))\n if (typeof message.blockClient !== \"boolean\")\n return \"blockClient: boolean expected\";\n if (message.blockClientTimeoutUs != null && message.hasOwnProperty(\"blockClientTimeoutUs\"))\n if (!$util.isInteger(message.blockClientTimeoutUs))\n return \"blockClientTimeoutUs: integer expected\";\n if (message.noStartup != null && message.hasOwnProperty(\"noStartup\"))\n if (typeof message.noStartup !== \"boolean\")\n return \"noStartup: boolean expected\";\n if (message.noRunning != null && message.hasOwnProperty(\"noRunning\"))\n if (typeof message.noRunning !== \"boolean\")\n return \"noRunning: boolean expected\";\n if (message.dumpAtMax != null && message.hasOwnProperty(\"dumpAtMax\"))\n if (typeof message.dumpAtMax !== \"boolean\")\n return \"dumpAtMax: boolean expected\";\n if (message.disableForkTeardown != null && message.hasOwnProperty(\"disableForkTeardown\"))\n if (typeof message.disableForkTeardown !== \"boolean\")\n return \"disableForkTeardown: boolean expected\";\n if (message.disableVforkDetection != null && message.hasOwnProperty(\"disableVforkDetection\"))\n if (typeof message.disableVforkDetection !== \"boolean\")\n return \"disableVforkDetection: boolean expected\";\n return null;\n };\n\n /**\n * Creates a HeapprofdConfig message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.HeapprofdConfig\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.HeapprofdConfig} HeapprofdConfig\n */\n HeapprofdConfig.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.HeapprofdConfig)\n return object;\n var message = new $root.perfetto.protos.HeapprofdConfig();\n if (object.samplingIntervalBytes != null)\n if ($util.Long)\n (message.samplingIntervalBytes = $util.Long.fromValue(object.samplingIntervalBytes)).unsigned = true;\n else if (typeof object.samplingIntervalBytes === \"string\")\n message.samplingIntervalBytes = parseInt(object.samplingIntervalBytes, 10);\n else if (typeof object.samplingIntervalBytes === \"number\")\n message.samplingIntervalBytes = object.samplingIntervalBytes;\n else if (typeof object.samplingIntervalBytes === \"object\")\n message.samplingIntervalBytes = new $util.LongBits(object.samplingIntervalBytes.low >>> 0, object.samplingIntervalBytes.high >>> 0).toNumber(true);\n if (object.adaptiveSamplingShmemThreshold != null)\n if ($util.Long)\n (message.adaptiveSamplingShmemThreshold = $util.Long.fromValue(object.adaptiveSamplingShmemThreshold)).unsigned = true;\n else if (typeof object.adaptiveSamplingShmemThreshold === \"string\")\n message.adaptiveSamplingShmemThreshold = parseInt(object.adaptiveSamplingShmemThreshold, 10);\n else if (typeof object.adaptiveSamplingShmemThreshold === \"number\")\n message.adaptiveSamplingShmemThreshold = object.adaptiveSamplingShmemThreshold;\n else if (typeof object.adaptiveSamplingShmemThreshold === \"object\")\n message.adaptiveSamplingShmemThreshold = new $util.LongBits(object.adaptiveSamplingShmemThreshold.low >>> 0, object.adaptiveSamplingShmemThreshold.high >>> 0).toNumber(true);\n if (object.adaptiveSamplingMaxSamplingIntervalBytes != null)\n if ($util.Long)\n (message.adaptiveSamplingMaxSamplingIntervalBytes = $util.Long.fromValue(object.adaptiveSamplingMaxSamplingIntervalBytes)).unsigned = true;\n else if (typeof object.adaptiveSamplingMaxSamplingIntervalBytes === \"string\")\n message.adaptiveSamplingMaxSamplingIntervalBytes = parseInt(object.adaptiveSamplingMaxSamplingIntervalBytes, 10);\n else if (typeof object.adaptiveSamplingMaxSamplingIntervalBytes === \"number\")\n message.adaptiveSamplingMaxSamplingIntervalBytes = object.adaptiveSamplingMaxSamplingIntervalBytes;\n else if (typeof object.adaptiveSamplingMaxSamplingIntervalBytes === \"object\")\n message.adaptiveSamplingMaxSamplingIntervalBytes = new $util.LongBits(object.adaptiveSamplingMaxSamplingIntervalBytes.low >>> 0, object.adaptiveSamplingMaxSamplingIntervalBytes.high >>> 0).toNumber(true);\n if (object.processCmdline) {\n if (!Array.isArray(object.processCmdline))\n throw TypeError(\".perfetto.protos.HeapprofdConfig.processCmdline: array expected\");\n message.processCmdline = [];\n for (var i = 0; i < object.processCmdline.length; ++i)\n message.processCmdline[i] = String(object.processCmdline[i]);\n }\n if (object.pid) {\n if (!Array.isArray(object.pid))\n throw TypeError(\".perfetto.protos.HeapprofdConfig.pid: array expected\");\n message.pid = [];\n for (var i = 0; i < object.pid.length; ++i)\n if ($util.Long)\n (message.pid[i] = $util.Long.fromValue(object.pid[i])).unsigned = true;\n else if (typeof object.pid[i] === \"string\")\n message.pid[i] = parseInt(object.pid[i], 10);\n else if (typeof object.pid[i] === \"number\")\n message.pid[i] = object.pid[i];\n else if (typeof object.pid[i] === \"object\")\n message.pid[i] = new $util.LongBits(object.pid[i].low >>> 0, object.pid[i].high >>> 0).toNumber(true);\n }\n if (object.targetInstalledBy) {\n if (!Array.isArray(object.targetInstalledBy))\n throw TypeError(\".perfetto.protos.HeapprofdConfig.targetInstalledBy: array expected\");\n message.targetInstalledBy = [];\n for (var i = 0; i < object.targetInstalledBy.length; ++i)\n message.targetInstalledBy[i] = String(object.targetInstalledBy[i]);\n }\n if (object.heaps) {\n if (!Array.isArray(object.heaps))\n throw TypeError(\".perfetto.protos.HeapprofdConfig.heaps: array expected\");\n message.heaps = [];\n for (var i = 0; i < object.heaps.length; ++i)\n message.heaps[i] = String(object.heaps[i]);\n }\n if (object.excludeHeaps) {\n if (!Array.isArray(object.excludeHeaps))\n throw TypeError(\".perfetto.protos.HeapprofdConfig.excludeHeaps: array expected\");\n message.excludeHeaps = [];\n for (var i = 0; i < object.excludeHeaps.length; ++i)\n message.excludeHeaps[i] = String(object.excludeHeaps[i]);\n }\n if (object.streamAllocations != null)\n message.streamAllocations = Boolean(object.streamAllocations);\n if (object.heapSamplingIntervals) {\n if (!Array.isArray(object.heapSamplingIntervals))\n throw TypeError(\".perfetto.protos.HeapprofdConfig.heapSamplingIntervals: array expected\");\n message.heapSamplingIntervals = [];\n for (var i = 0; i < object.heapSamplingIntervals.length; ++i)\n if ($util.Long)\n (message.heapSamplingIntervals[i] = $util.Long.fromValue(object.heapSamplingIntervals[i])).unsigned = true;\n else if (typeof object.heapSamplingIntervals[i] === \"string\")\n message.heapSamplingIntervals[i] = parseInt(object.heapSamplingIntervals[i], 10);\n else if (typeof object.heapSamplingIntervals[i] === \"number\")\n message.heapSamplingIntervals[i] = object.heapSamplingIntervals[i];\n else if (typeof object.heapSamplingIntervals[i] === \"object\")\n message.heapSamplingIntervals[i] = new $util.LongBits(object.heapSamplingIntervals[i].low >>> 0, object.heapSamplingIntervals[i].high >>> 0).toNumber(true);\n }\n if (object.allHeaps != null)\n message.allHeaps = Boolean(object.allHeaps);\n if (object.all != null)\n message.all = Boolean(object.all);\n if (object.minAnonymousMemoryKb != null)\n message.minAnonymousMemoryKb = object.minAnonymousMemoryKb >>> 0;\n if (object.maxHeapprofdMemoryKb != null)\n message.maxHeapprofdMemoryKb = object.maxHeapprofdMemoryKb >>> 0;\n if (object.maxHeapprofdCpuSecs != null)\n if ($util.Long)\n (message.maxHeapprofdCpuSecs = $util.Long.fromValue(object.maxHeapprofdCpuSecs)).unsigned = true;\n else if (typeof object.maxHeapprofdCpuSecs === \"string\")\n message.maxHeapprofdCpuSecs = parseInt(object.maxHeapprofdCpuSecs, 10);\n else if (typeof object.maxHeapprofdCpuSecs === \"number\")\n message.maxHeapprofdCpuSecs = object.maxHeapprofdCpuSecs;\n else if (typeof object.maxHeapprofdCpuSecs === \"object\")\n message.maxHeapprofdCpuSecs = new $util.LongBits(object.maxHeapprofdCpuSecs.low >>> 0, object.maxHeapprofdCpuSecs.high >>> 0).toNumber(true);\n if (object.skipSymbolPrefix) {\n if (!Array.isArray(object.skipSymbolPrefix))\n throw TypeError(\".perfetto.protos.HeapprofdConfig.skipSymbolPrefix: array expected\");\n message.skipSymbolPrefix = [];\n for (var i = 0; i < object.skipSymbolPrefix.length; ++i)\n message.skipSymbolPrefix[i] = String(object.skipSymbolPrefix[i]);\n }\n if (object.continuousDumpConfig != null) {\n if (typeof object.continuousDumpConfig !== \"object\")\n throw TypeError(\".perfetto.protos.HeapprofdConfig.continuousDumpConfig: object expected\");\n message.continuousDumpConfig = $root.perfetto.protos.HeapprofdConfig.ContinuousDumpConfig.fromObject(object.continuousDumpConfig);\n }\n if (object.shmemSizeBytes != null)\n if ($util.Long)\n (message.shmemSizeBytes = $util.Long.fromValue(object.shmemSizeBytes)).unsigned = true;\n else if (typeof object.shmemSizeBytes === \"string\")\n message.shmemSizeBytes = parseInt(object.shmemSizeBytes, 10);\n else if (typeof object.shmemSizeBytes === \"number\")\n message.shmemSizeBytes = object.shmemSizeBytes;\n else if (typeof object.shmemSizeBytes === \"object\")\n message.shmemSizeBytes = new $util.LongBits(object.shmemSizeBytes.low >>> 0, object.shmemSizeBytes.high >>> 0).toNumber(true);\n if (object.blockClient != null)\n message.blockClient = Boolean(object.blockClient);\n if (object.blockClientTimeoutUs != null)\n message.blockClientTimeoutUs = object.blockClientTimeoutUs >>> 0;\n if (object.noStartup != null)\n message.noStartup = Boolean(object.noStartup);\n if (object.noRunning != null)\n message.noRunning = Boolean(object.noRunning);\n if (object.dumpAtMax != null)\n message.dumpAtMax = Boolean(object.dumpAtMax);\n if (object.disableForkTeardown != null)\n message.disableForkTeardown = Boolean(object.disableForkTeardown);\n if (object.disableVforkDetection != null)\n message.disableVforkDetection = Boolean(object.disableVforkDetection);\n return message;\n };\n\n /**\n * Creates a plain object from a HeapprofdConfig message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.HeapprofdConfig\n * @static\n * @param {perfetto.protos.HeapprofdConfig} message HeapprofdConfig\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n HeapprofdConfig.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults) {\n object.processCmdline = [];\n object.pid = [];\n object.skipSymbolPrefix = [];\n object.heaps = [];\n object.heapSamplingIntervals = [];\n object.targetInstalledBy = [];\n object.excludeHeaps = [];\n }\n if (options.defaults) {\n if ($util.Long) {\n var long = new $util.Long(0, 0, true);\n object.samplingIntervalBytes = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.samplingIntervalBytes = options.longs === String ? \"0\" : 0;\n object.all = false;\n object.continuousDumpConfig = null;\n if ($util.Long) {\n var long = new $util.Long(0, 0, true);\n object.shmemSizeBytes = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.shmemSizeBytes = options.longs === String ? \"0\" : 0;\n object.blockClient = false;\n object.noStartup = false;\n object.noRunning = false;\n object.dumpAtMax = false;\n object.blockClientTimeoutUs = 0;\n object.minAnonymousMemoryKb = 0;\n object.maxHeapprofdMemoryKb = 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, true);\n object.maxHeapprofdCpuSecs = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.maxHeapprofdCpuSecs = options.longs === String ? \"0\" : 0;\n object.disableForkTeardown = false;\n object.disableVforkDetection = false;\n object.allHeaps = false;\n object.streamAllocations = false;\n if ($util.Long) {\n var long = new $util.Long(0, 0, true);\n object.adaptiveSamplingShmemThreshold = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.adaptiveSamplingShmemThreshold = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, true);\n object.adaptiveSamplingMaxSamplingIntervalBytes = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.adaptiveSamplingMaxSamplingIntervalBytes = options.longs === String ? \"0\" : 0;\n }\n if (message.samplingIntervalBytes != null && message.hasOwnProperty(\"samplingIntervalBytes\"))\n if (typeof message.samplingIntervalBytes === \"number\")\n object.samplingIntervalBytes = options.longs === String ? String(message.samplingIntervalBytes) : message.samplingIntervalBytes;\n else\n object.samplingIntervalBytes = options.longs === String ? $util.Long.prototype.toString.call(message.samplingIntervalBytes) : options.longs === Number ? new $util.LongBits(message.samplingIntervalBytes.low >>> 0, message.samplingIntervalBytes.high >>> 0).toNumber(true) : message.samplingIntervalBytes;\n if (message.processCmdline && message.processCmdline.length) {\n object.processCmdline = [];\n for (var j = 0; j < message.processCmdline.length; ++j)\n object.processCmdline[j] = message.processCmdline[j];\n }\n if (message.pid && message.pid.length) {\n object.pid = [];\n for (var j = 0; j < message.pid.length; ++j)\n if (typeof message.pid[j] === \"number\")\n object.pid[j] = options.longs === String ? String(message.pid[j]) : message.pid[j];\n else\n object.pid[j] = options.longs === String ? $util.Long.prototype.toString.call(message.pid[j]) : options.longs === Number ? new $util.LongBits(message.pid[j].low >>> 0, message.pid[j].high >>> 0).toNumber(true) : message.pid[j];\n }\n if (message.all != null && message.hasOwnProperty(\"all\"))\n object.all = message.all;\n if (message.continuousDumpConfig != null && message.hasOwnProperty(\"continuousDumpConfig\"))\n object.continuousDumpConfig = $root.perfetto.protos.HeapprofdConfig.ContinuousDumpConfig.toObject(message.continuousDumpConfig, options);\n if (message.skipSymbolPrefix && message.skipSymbolPrefix.length) {\n object.skipSymbolPrefix = [];\n for (var j = 0; j < message.skipSymbolPrefix.length; ++j)\n object.skipSymbolPrefix[j] = message.skipSymbolPrefix[j];\n }\n if (message.shmemSizeBytes != null && message.hasOwnProperty(\"shmemSizeBytes\"))\n if (typeof message.shmemSizeBytes === \"number\")\n object.shmemSizeBytes = options.longs === String ? String(message.shmemSizeBytes) : message.shmemSizeBytes;\n else\n object.shmemSizeBytes = options.longs === String ? $util.Long.prototype.toString.call(message.shmemSizeBytes) : options.longs === Number ? new $util.LongBits(message.shmemSizeBytes.low >>> 0, message.shmemSizeBytes.high >>> 0).toNumber(true) : message.shmemSizeBytes;\n if (message.blockClient != null && message.hasOwnProperty(\"blockClient\"))\n object.blockClient = message.blockClient;\n if (message.noStartup != null && message.hasOwnProperty(\"noStartup\"))\n object.noStartup = message.noStartup;\n if (message.noRunning != null && message.hasOwnProperty(\"noRunning\"))\n object.noRunning = message.noRunning;\n if (message.dumpAtMax != null && message.hasOwnProperty(\"dumpAtMax\"))\n object.dumpAtMax = message.dumpAtMax;\n if (message.blockClientTimeoutUs != null && message.hasOwnProperty(\"blockClientTimeoutUs\"))\n object.blockClientTimeoutUs = message.blockClientTimeoutUs;\n if (message.minAnonymousMemoryKb != null && message.hasOwnProperty(\"minAnonymousMemoryKb\"))\n object.minAnonymousMemoryKb = message.minAnonymousMemoryKb;\n if (message.maxHeapprofdMemoryKb != null && message.hasOwnProperty(\"maxHeapprofdMemoryKb\"))\n object.maxHeapprofdMemoryKb = message.maxHeapprofdMemoryKb;\n if (message.maxHeapprofdCpuSecs != null && message.hasOwnProperty(\"maxHeapprofdCpuSecs\"))\n if (typeof message.maxHeapprofdCpuSecs === \"number\")\n object.maxHeapprofdCpuSecs = options.longs === String ? String(message.maxHeapprofdCpuSecs) : message.maxHeapprofdCpuSecs;\n else\n object.maxHeapprofdCpuSecs = options.longs === String ? $util.Long.prototype.toString.call(message.maxHeapprofdCpuSecs) : options.longs === Number ? new $util.LongBits(message.maxHeapprofdCpuSecs.low >>> 0, message.maxHeapprofdCpuSecs.high >>> 0).toNumber(true) : message.maxHeapprofdCpuSecs;\n if (message.disableForkTeardown != null && message.hasOwnProperty(\"disableForkTeardown\"))\n object.disableForkTeardown = message.disableForkTeardown;\n if (message.disableVforkDetection != null && message.hasOwnProperty(\"disableVforkDetection\"))\n object.disableVforkDetection = message.disableVforkDetection;\n if (message.heaps && message.heaps.length) {\n object.heaps = [];\n for (var j = 0; j < message.heaps.length; ++j)\n object.heaps[j] = message.heaps[j];\n }\n if (message.allHeaps != null && message.hasOwnProperty(\"allHeaps\"))\n object.allHeaps = message.allHeaps;\n if (message.heapSamplingIntervals && message.heapSamplingIntervals.length) {\n object.heapSamplingIntervals = [];\n for (var j = 0; j < message.heapSamplingIntervals.length; ++j)\n if (typeof message.heapSamplingIntervals[j] === \"number\")\n object.heapSamplingIntervals[j] = options.longs === String ? String(message.heapSamplingIntervals[j]) : message.heapSamplingIntervals[j];\n else\n object.heapSamplingIntervals[j] = options.longs === String ? $util.Long.prototype.toString.call(message.heapSamplingIntervals[j]) : options.longs === Number ? new $util.LongBits(message.heapSamplingIntervals[j].low >>> 0, message.heapSamplingIntervals[j].high >>> 0).toNumber(true) : message.heapSamplingIntervals[j];\n }\n if (message.streamAllocations != null && message.hasOwnProperty(\"streamAllocations\"))\n object.streamAllocations = message.streamAllocations;\n if (message.adaptiveSamplingShmemThreshold != null && message.hasOwnProperty(\"adaptiveSamplingShmemThreshold\"))\n if (typeof message.adaptiveSamplingShmemThreshold === \"number\")\n object.adaptiveSamplingShmemThreshold = options.longs === String ? String(message.adaptiveSamplingShmemThreshold) : message.adaptiveSamplingShmemThreshold;\n else\n object.adaptiveSamplingShmemThreshold = options.longs === String ? $util.Long.prototype.toString.call(message.adaptiveSamplingShmemThreshold) : options.longs === Number ? new $util.LongBits(message.adaptiveSamplingShmemThreshold.low >>> 0, message.adaptiveSamplingShmemThreshold.high >>> 0).toNumber(true) : message.adaptiveSamplingShmemThreshold;\n if (message.adaptiveSamplingMaxSamplingIntervalBytes != null && message.hasOwnProperty(\"adaptiveSamplingMaxSamplingIntervalBytes\"))\n if (typeof message.adaptiveSamplingMaxSamplingIntervalBytes === \"number\")\n object.adaptiveSamplingMaxSamplingIntervalBytes = options.longs === String ? String(message.adaptiveSamplingMaxSamplingIntervalBytes) : message.adaptiveSamplingMaxSamplingIntervalBytes;\n else\n object.adaptiveSamplingMaxSamplingIntervalBytes = options.longs === String ? $util.Long.prototype.toString.call(message.adaptiveSamplingMaxSamplingIntervalBytes) : options.longs === Number ? new $util.LongBits(message.adaptiveSamplingMaxSamplingIntervalBytes.low >>> 0, message.adaptiveSamplingMaxSamplingIntervalBytes.high >>> 0).toNumber(true) : message.adaptiveSamplingMaxSamplingIntervalBytes;\n if (message.targetInstalledBy && message.targetInstalledBy.length) {\n object.targetInstalledBy = [];\n for (var j = 0; j < message.targetInstalledBy.length; ++j)\n object.targetInstalledBy[j] = message.targetInstalledBy[j];\n }\n if (message.excludeHeaps && message.excludeHeaps.length) {\n object.excludeHeaps = [];\n for (var j = 0; j < message.excludeHeaps.length; ++j)\n object.excludeHeaps[j] = message.excludeHeaps[j];\n }\n return object;\n };\n\n /**\n * Converts this HeapprofdConfig to JSON.\n * @function toJSON\n * @memberof perfetto.protos.HeapprofdConfig\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n HeapprofdConfig.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n HeapprofdConfig.ContinuousDumpConfig = (function() {\n\n /**\n * Properties of a ContinuousDumpConfig.\n * @memberof perfetto.protos.HeapprofdConfig\n * @interface IContinuousDumpConfig\n * @property {number|null} [dumpPhaseMs] ContinuousDumpConfig dumpPhaseMs\n * @property {number|null} [dumpIntervalMs] ContinuousDumpConfig dumpIntervalMs\n */\n\n /**\n * Constructs a new ContinuousDumpConfig.\n * @memberof perfetto.protos.HeapprofdConfig\n * @classdesc Represents a ContinuousDumpConfig.\n * @implements IContinuousDumpConfig\n * @constructor\n * @param {perfetto.protos.HeapprofdConfig.IContinuousDumpConfig=} [properties] Properties to set\n */\n function ContinuousDumpConfig(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * ContinuousDumpConfig dumpPhaseMs.\n * @member {number} dumpPhaseMs\n * @memberof perfetto.protos.HeapprofdConfig.ContinuousDumpConfig\n * @instance\n */\n ContinuousDumpConfig.prototype.dumpPhaseMs = 0;\n\n /**\n * ContinuousDumpConfig dumpIntervalMs.\n * @member {number} dumpIntervalMs\n * @memberof perfetto.protos.HeapprofdConfig.ContinuousDumpConfig\n * @instance\n */\n ContinuousDumpConfig.prototype.dumpIntervalMs = 0;\n\n /**\n * Creates a new ContinuousDumpConfig instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.HeapprofdConfig.ContinuousDumpConfig\n * @static\n * @param {perfetto.protos.HeapprofdConfig.IContinuousDumpConfig=} [properties] Properties to set\n * @returns {perfetto.protos.HeapprofdConfig.ContinuousDumpConfig} ContinuousDumpConfig instance\n */\n ContinuousDumpConfig.create = function create(properties) {\n return new ContinuousDumpConfig(properties);\n };\n\n /**\n * Encodes the specified ContinuousDumpConfig message. Does not implicitly {@link perfetto.protos.HeapprofdConfig.ContinuousDumpConfig.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.HeapprofdConfig.ContinuousDumpConfig\n * @static\n * @param {perfetto.protos.HeapprofdConfig.IContinuousDumpConfig} message ContinuousDumpConfig message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ContinuousDumpConfig.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.dumpPhaseMs != null && Object.hasOwnProperty.call(message, \"dumpPhaseMs\"))\n writer.uint32(/* id 5, wireType 0 =*/40).uint32(message.dumpPhaseMs);\n if (message.dumpIntervalMs != null && Object.hasOwnProperty.call(message, \"dumpIntervalMs\"))\n writer.uint32(/* id 6, wireType 0 =*/48).uint32(message.dumpIntervalMs);\n return writer;\n };\n\n /**\n * Encodes the specified ContinuousDumpConfig message, length delimited. Does not implicitly {@link perfetto.protos.HeapprofdConfig.ContinuousDumpConfig.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.HeapprofdConfig.ContinuousDumpConfig\n * @static\n * @param {perfetto.protos.HeapprofdConfig.IContinuousDumpConfig} message ContinuousDumpConfig message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ContinuousDumpConfig.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a ContinuousDumpConfig message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.HeapprofdConfig.ContinuousDumpConfig\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.HeapprofdConfig.ContinuousDumpConfig} ContinuousDumpConfig\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ContinuousDumpConfig.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.HeapprofdConfig.ContinuousDumpConfig();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 5:\n message.dumpPhaseMs = reader.uint32();\n break;\n case 6:\n message.dumpIntervalMs = reader.uint32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a ContinuousDumpConfig message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.HeapprofdConfig.ContinuousDumpConfig\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.HeapprofdConfig.ContinuousDumpConfig} ContinuousDumpConfig\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ContinuousDumpConfig.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a ContinuousDumpConfig message.\n * @function verify\n * @memberof perfetto.protos.HeapprofdConfig.ContinuousDumpConfig\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n ContinuousDumpConfig.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.dumpPhaseMs != null && message.hasOwnProperty(\"dumpPhaseMs\"))\n if (!$util.isInteger(message.dumpPhaseMs))\n return \"dumpPhaseMs: integer expected\";\n if (message.dumpIntervalMs != null && message.hasOwnProperty(\"dumpIntervalMs\"))\n if (!$util.isInteger(message.dumpIntervalMs))\n return \"dumpIntervalMs: integer expected\";\n return null;\n };\n\n /**\n * Creates a ContinuousDumpConfig message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.HeapprofdConfig.ContinuousDumpConfig\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.HeapprofdConfig.ContinuousDumpConfig} ContinuousDumpConfig\n */\n ContinuousDumpConfig.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.HeapprofdConfig.ContinuousDumpConfig)\n return object;\n var message = new $root.perfetto.protos.HeapprofdConfig.ContinuousDumpConfig();\n if (object.dumpPhaseMs != null)\n message.dumpPhaseMs = object.dumpPhaseMs >>> 0;\n if (object.dumpIntervalMs != null)\n message.dumpIntervalMs = object.dumpIntervalMs >>> 0;\n return message;\n };\n\n /**\n * Creates a plain object from a ContinuousDumpConfig message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.HeapprofdConfig.ContinuousDumpConfig\n * @static\n * @param {perfetto.protos.HeapprofdConfig.ContinuousDumpConfig} message ContinuousDumpConfig\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n ContinuousDumpConfig.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.dumpPhaseMs = 0;\n object.dumpIntervalMs = 0;\n }\n if (message.dumpPhaseMs != null && message.hasOwnProperty(\"dumpPhaseMs\"))\n object.dumpPhaseMs = message.dumpPhaseMs;\n if (message.dumpIntervalMs != null && message.hasOwnProperty(\"dumpIntervalMs\"))\n object.dumpIntervalMs = message.dumpIntervalMs;\n return object;\n };\n\n /**\n * Converts this ContinuousDumpConfig to JSON.\n * @function toJSON\n * @memberof perfetto.protos.HeapprofdConfig.ContinuousDumpConfig\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n ContinuousDumpConfig.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return ContinuousDumpConfig;\n })();\n\n return HeapprofdConfig;\n })();\n\n protos.JavaHprofConfig = (function() {\n\n /**\n * Properties of a JavaHprofConfig.\n * @memberof perfetto.protos\n * @interface IJavaHprofConfig\n * @property {Array.<string>|null} [processCmdline] JavaHprofConfig processCmdline\n * @property {Array.<number>|null} [pid] JavaHprofConfig pid\n * @property {Array.<string>|null} [targetInstalledBy] JavaHprofConfig targetInstalledBy\n * @property {perfetto.protos.JavaHprofConfig.IContinuousDumpConfig|null} [continuousDumpConfig] JavaHprofConfig continuousDumpConfig\n * @property {number|null} [minAnonymousMemoryKb] JavaHprofConfig minAnonymousMemoryKb\n * @property {boolean|null} [dumpSmaps] JavaHprofConfig dumpSmaps\n * @property {Array.<string>|null} [ignoredTypes] JavaHprofConfig ignoredTypes\n */\n\n /**\n * Constructs a new JavaHprofConfig.\n * @memberof perfetto.protos\n * @classdesc Represents a JavaHprofConfig.\n * @implements IJavaHprofConfig\n * @constructor\n * @param {perfetto.protos.IJavaHprofConfig=} [properties] Properties to set\n */\n function JavaHprofConfig(properties) {\n this.processCmdline = [];\n this.pid = [];\n this.targetInstalledBy = [];\n this.ignoredTypes = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * JavaHprofConfig processCmdline.\n * @member {Array.<string>} processCmdline\n * @memberof perfetto.protos.JavaHprofConfig\n * @instance\n */\n JavaHprofConfig.prototype.processCmdline = $util.emptyArray;\n\n /**\n * JavaHprofConfig pid.\n * @member {Array.<number>} pid\n * @memberof perfetto.protos.JavaHprofConfig\n * @instance\n */\n JavaHprofConfig.prototype.pid = $util.emptyArray;\n\n /**\n * JavaHprofConfig targetInstalledBy.\n * @member {Array.<string>} targetInstalledBy\n * @memberof perfetto.protos.JavaHprofConfig\n * @instance\n */\n JavaHprofConfig.prototype.targetInstalledBy = $util.emptyArray;\n\n /**\n * JavaHprofConfig continuousDumpConfig.\n * @member {perfetto.protos.JavaHprofConfig.IContinuousDumpConfig|null|undefined} continuousDumpConfig\n * @memberof perfetto.protos.JavaHprofConfig\n * @instance\n */\n JavaHprofConfig.prototype.continuousDumpConfig = null;\n\n /**\n * JavaHprofConfig minAnonymousMemoryKb.\n * @member {number} minAnonymousMemoryKb\n * @memberof perfetto.protos.JavaHprofConfig\n * @instance\n */\n JavaHprofConfig.prototype.minAnonymousMemoryKb = 0;\n\n /**\n * JavaHprofConfig dumpSmaps.\n * @member {boolean} dumpSmaps\n * @memberof perfetto.protos.JavaHprofConfig\n * @instance\n */\n JavaHprofConfig.prototype.dumpSmaps = false;\n\n /**\n * JavaHprofConfig ignoredTypes.\n * @member {Array.<string>} ignoredTypes\n * @memberof perfetto.protos.JavaHprofConfig\n * @instance\n */\n JavaHprofConfig.prototype.ignoredTypes = $util.emptyArray;\n\n /**\n * Creates a new JavaHprofConfig instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.JavaHprofConfig\n * @static\n * @param {perfetto.protos.IJavaHprofConfig=} [properties] Properties to set\n * @returns {perfetto.protos.JavaHprofConfig} JavaHprofConfig instance\n */\n JavaHprofConfig.create = function create(properties) {\n return new JavaHprofConfig(properties);\n };\n\n /**\n * Encodes the specified JavaHprofConfig message. Does not implicitly {@link perfetto.protos.JavaHprofConfig.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.JavaHprofConfig\n * @static\n * @param {perfetto.protos.IJavaHprofConfig} message JavaHprofConfig message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n JavaHprofConfig.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.processCmdline != null && message.processCmdline.length)\n for (var i = 0; i < message.processCmdline.length; ++i)\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.processCmdline[i]);\n if (message.pid != null && message.pid.length)\n for (var i = 0; i < message.pid.length; ++i)\n writer.uint32(/* id 2, wireType 0 =*/16).uint64(message.pid[i]);\n if (message.continuousDumpConfig != null && Object.hasOwnProperty.call(message, \"continuousDumpConfig\"))\n $root.perfetto.protos.JavaHprofConfig.ContinuousDumpConfig.encode(message.continuousDumpConfig, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();\n if (message.minAnonymousMemoryKb != null && Object.hasOwnProperty.call(message, \"minAnonymousMemoryKb\"))\n writer.uint32(/* id 4, wireType 0 =*/32).uint32(message.minAnonymousMemoryKb);\n if (message.dumpSmaps != null && Object.hasOwnProperty.call(message, \"dumpSmaps\"))\n writer.uint32(/* id 5, wireType 0 =*/40).bool(message.dumpSmaps);\n if (message.ignoredTypes != null && message.ignoredTypes.length)\n for (var i = 0; i < message.ignoredTypes.length; ++i)\n writer.uint32(/* id 6, wireType 2 =*/50).string(message.ignoredTypes[i]);\n if (message.targetInstalledBy != null && message.targetInstalledBy.length)\n for (var i = 0; i < message.targetInstalledBy.length; ++i)\n writer.uint32(/* id 7, wireType 2 =*/58).string(message.targetInstalledBy[i]);\n return writer;\n };\n\n /**\n * Encodes the specified JavaHprofConfig message, length delimited. Does not implicitly {@link perfetto.protos.JavaHprofConfig.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.JavaHprofConfig\n * @static\n * @param {perfetto.protos.IJavaHprofConfig} message JavaHprofConfig message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n JavaHprofConfig.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a JavaHprofConfig message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.JavaHprofConfig\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.JavaHprofConfig} JavaHprofConfig\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n JavaHprofConfig.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.JavaHprofConfig();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (!(message.processCmdline && message.processCmdline.length))\n message.processCmdline = [];\n message.processCmdline.push(reader.string());\n break;\n case 2:\n if (!(message.pid && message.pid.length))\n message.pid = [];\n if ((tag & 7) === 2) {\n var end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2)\n message.pid.push(reader.uint64());\n } else\n message.pid.push(reader.uint64());\n break;\n case 7:\n if (!(message.targetInstalledBy && message.targetInstalledBy.length))\n message.targetInstalledBy = [];\n message.targetInstalledBy.push(reader.string());\n break;\n case 3:\n message.continuousDumpConfig = $root.perfetto.protos.JavaHprofConfig.ContinuousDumpConfig.decode(reader, reader.uint32());\n break;\n case 4:\n message.minAnonymousMemoryKb = reader.uint32();\n break;\n case 5:\n message.dumpSmaps = reader.bool();\n break;\n case 6:\n if (!(message.ignoredTypes && message.ignoredTypes.length))\n message.ignoredTypes = [];\n message.ignoredTypes.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a JavaHprofConfig message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.JavaHprofConfig\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.JavaHprofConfig} JavaHprofConfig\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n JavaHprofConfig.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a JavaHprofConfig message.\n * @function verify\n * @memberof perfetto.protos.JavaHprofConfig\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n JavaHprofConfig.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.processCmdline != null && message.hasOwnProperty(\"processCmdline\")) {\n if (!Array.isArray(message.processCmdline))\n return \"processCmdline: array expected\";\n for (var i = 0; i < message.processCmdline.length; ++i)\n if (!$util.isString(message.processCmdline[i]))\n return \"processCmdline: string[] expected\";\n }\n if (message.pid != null && message.hasOwnProperty(\"pid\")) {\n if (!Array.isArray(message.pid))\n return \"pid: array expected\";\n for (var i = 0; i < message.pid.length; ++i)\n if (!$util.isInteger(message.pid[i]) && !(message.pid[i] && $util.isInteger(message.pid[i].low) && $util.isInteger(message.pid[i].high)))\n return \"pid: integer|Long[] expected\";\n }\n if (message.targetInstalledBy != null && message.hasOwnProperty(\"targetInstalledBy\")) {\n if (!Array.isArray(message.targetInstalledBy))\n return \"targetInstalledBy: array expected\";\n for (var i = 0; i < message.targetInstalledBy.length; ++i)\n if (!$util.isString(message.targetInstalledBy[i]))\n return \"targetInstalledBy: string[] expected\";\n }\n if (message.continuousDumpConfig != null && message.hasOwnProperty(\"continuousDumpConfig\")) {\n var error = $root.perfetto.protos.JavaHprofConfig.ContinuousDumpConfig.verify(message.continuousDumpConfig);\n if (error)\n return \"continuousDumpConfig.\" + error;\n }\n if (message.minAnonymousMemoryKb != null && message.hasOwnProperty(\"minAnonymousMemoryKb\"))\n if (!$util.isInteger(message.minAnonymousMemoryKb))\n return \"minAnonymousMemoryKb: integer expected\";\n if (message.dumpSmaps != null && message.hasOwnProperty(\"dumpSmaps\"))\n if (typeof message.dumpSmaps !== \"boolean\")\n return \"dumpSmaps: boolean expected\";\n if (message.ignoredTypes != null && message.hasOwnProperty(\"ignoredTypes\")) {\n if (!Array.isArray(message.ignoredTypes))\n return \"ignoredTypes: array expected\";\n for (var i = 0; i < message.ignoredTypes.length; ++i)\n if (!$util.isString(message.ignoredTypes[i]))\n return \"ignoredTypes: string[] expected\";\n }\n return null;\n };\n\n /**\n * Creates a JavaHprofConfig message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.JavaHprofConfig\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.JavaHprofConfig} JavaHprofConfig\n */\n JavaHprofConfig.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.JavaHprofConfig)\n return object;\n var message = new $root.perfetto.protos.JavaHprofConfig();\n if (object.processCmdline) {\n if (!Array.isArray(object.processCmdline))\n throw TypeError(\".perfetto.protos.JavaHprofConfig.processCmdline: array expected\");\n message.processCmdline = [];\n for (var i = 0; i < object.processCmdline.length; ++i)\n message.processCmdline[i] = String(object.processCmdline[i]);\n }\n if (object.pid) {\n if (!Array.isArray(object.pid))\n throw TypeError(\".perfetto.protos.JavaHprofConfig.pid: array expected\");\n message.pid = [];\n for (var i = 0; i < object.pid.length; ++i)\n if ($util.Long)\n (message.pid[i] = $util.Long.fromValue(object.pid[i])).unsigned = true;\n else if (typeof object.pid[i] === \"string\")\n message.pid[i] = parseInt(object.pid[i], 10);\n else if (typeof object.pid[i] === \"number\")\n message.pid[i] = object.pid[i];\n else if (typeof object.pid[i] === \"object\")\n message.pid[i] = new $util.LongBits(object.pid[i].low >>> 0, object.pid[i].high >>> 0).toNumber(true);\n }\n if (object.targetInstalledBy) {\n if (!Array.isArray(object.targetInstalledBy))\n throw TypeError(\".perfetto.protos.JavaHprofConfig.targetInstalledBy: array expected\");\n message.targetInstalledBy = [];\n for (var i = 0; i < object.targetInstalledBy.length; ++i)\n message.targetInstalledBy[i] = String(object.targetInstalledBy[i]);\n }\n if (object.continuousDumpConfig != null) {\n if (typeof object.continuousDumpConfig !== \"object\")\n throw TypeError(\".perfetto.protos.JavaHprofConfig.continuousDumpConfig: object expected\");\n message.continuousDumpConfig = $root.perfetto.protos.JavaHprofConfig.ContinuousDumpConfig.fromObject(object.continuousDumpConfig);\n }\n if (object.minAnonymousMemoryKb != null)\n message.minAnonymousMemoryKb = object.minAnonymousMemoryKb >>> 0;\n if (object.dumpSmaps != null)\n message.dumpSmaps = Boolean(object.dumpSmaps);\n if (object.ignoredTypes) {\n if (!Array.isArray(object.ignoredTypes))\n throw TypeError(\".perfetto.protos.JavaHprofConfig.ignoredTypes: array expected\");\n message.ignoredTypes = [];\n for (var i = 0; i < object.ignoredTypes.length; ++i)\n message.ignoredTypes[i] = String(object.ignoredTypes[i]);\n }\n return message;\n };\n\n /**\n * Creates a plain object from a JavaHprofConfig message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.JavaHprofConfig\n * @static\n * @param {perfetto.protos.JavaHprofConfig} message JavaHprofConfig\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n JavaHprofConfig.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults) {\n object.processCmdline = [];\n object.pid = [];\n object.ignoredTypes = [];\n object.targetInstalledBy = [];\n }\n if (options.defaults) {\n object.continuousDumpConfig = null;\n object.minAnonymousMemoryKb = 0;\n object.dumpSmaps = false;\n }\n if (message.processCmdline && message.processCmdline.length) {\n object.processCmdline = [];\n for (var j = 0; j < message.processCmdline.length; ++j)\n object.processCmdline[j] = message.processCmdline[j];\n }\n if (message.pid && message.pid.length) {\n object.pid = [];\n for (var j = 0; j < message.pid.length; ++j)\n if (typeof message.pid[j] === \"number\")\n object.pid[j] = options.longs === String ? String(message.pid[j]) : message.pid[j];\n else\n object.pid[j] = options.longs === String ? $util.Long.prototype.toString.call(message.pid[j]) : options.longs === Number ? new $util.LongBits(message.pid[j].low >>> 0, message.pid[j].high >>> 0).toNumber(true) : message.pid[j];\n }\n if (message.continuousDumpConfig != null && message.hasOwnProperty(\"continuousDumpConfig\"))\n object.continuousDumpConfig = $root.perfetto.protos.JavaHprofConfig.ContinuousDumpConfig.toObject(message.continuousDumpConfig, options);\n if (message.minAnonymousMemoryKb != null && message.hasOwnProperty(\"minAnonymousMemoryKb\"))\n object.minAnonymousMemoryKb = message.minAnonymousMemoryKb;\n if (message.dumpSmaps != null && message.hasOwnProperty(\"dumpSmaps\"))\n object.dumpSmaps = message.dumpSmaps;\n if (message.ignoredTypes && message.ignoredTypes.length) {\n object.ignoredTypes = [];\n for (var j = 0; j < message.ignoredTypes.length; ++j)\n object.ignoredTypes[j] = message.ignoredTypes[j];\n }\n if (message.targetInstalledBy && message.targetInstalledBy.length) {\n object.targetInstalledBy = [];\n for (var j = 0; j < message.targetInstalledBy.length; ++j)\n object.targetInstalledBy[j] = message.targetInstalledBy[j];\n }\n return object;\n };\n\n /**\n * Converts this JavaHprofConfig to JSON.\n * @function toJSON\n * @memberof perfetto.protos.JavaHprofConfig\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n JavaHprofConfig.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n JavaHprofConfig.ContinuousDumpConfig = (function() {\n\n /**\n * Properties of a ContinuousDumpConfig.\n * @memberof perfetto.protos.JavaHprofConfig\n * @interface IContinuousDumpConfig\n * @property {number|null} [dumpPhaseMs] ContinuousDumpConfig dumpPhaseMs\n * @property {number|null} [dumpIntervalMs] ContinuousDumpConfig dumpIntervalMs\n * @property {boolean|null} [scanPidsOnlyOnStart] ContinuousDumpConfig scanPidsOnlyOnStart\n */\n\n /**\n * Constructs a new ContinuousDumpConfig.\n * @memberof perfetto.protos.JavaHprofConfig\n * @classdesc Represents a ContinuousDumpConfig.\n * @implements IContinuousDumpConfig\n * @constructor\n * @param {perfetto.protos.JavaHprofConfig.IContinuousDumpConfig=} [properties] Properties to set\n */\n function ContinuousDumpConfig(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * ContinuousDumpConfig dumpPhaseMs.\n * @member {number} dumpPhaseMs\n * @memberof perfetto.protos.JavaHprofConfig.ContinuousDumpConfig\n * @instance\n */\n ContinuousDumpConfig.prototype.dumpPhaseMs = 0;\n\n /**\n * ContinuousDumpConfig dumpIntervalMs.\n * @member {number} dumpIntervalMs\n * @memberof perfetto.protos.JavaHprofConfig.ContinuousDumpConfig\n * @instance\n */\n ContinuousDumpConfig.prototype.dumpIntervalMs = 0;\n\n /**\n * ContinuousDumpConfig scanPidsOnlyOnStart.\n * @member {boolean} scanPidsOnlyOnStart\n * @memberof perfetto.protos.JavaHprofConfig.ContinuousDumpConfig\n * @instance\n */\n ContinuousDumpConfig.prototype.scanPidsOnlyOnStart = false;\n\n /**\n * Creates a new ContinuousDumpConfig instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.JavaHprofConfig.ContinuousDumpConfig\n * @static\n * @param {perfetto.protos.JavaHprofConfig.IContinuousDumpConfig=} [properties] Properties to set\n * @returns {perfetto.protos.JavaHprofConfig.ContinuousDumpConfig} ContinuousDumpConfig instance\n */\n ContinuousDumpConfig.create = function create(properties) {\n return new ContinuousDumpConfig(properties);\n };\n\n /**\n * Encodes the specified ContinuousDumpConfig message. Does not implicitly {@link perfetto.protos.JavaHprofConfig.ContinuousDumpConfig.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.JavaHprofConfig.ContinuousDumpConfig\n * @static\n * @param {perfetto.protos.JavaHprofConfig.IContinuousDumpConfig} message ContinuousDumpConfig message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ContinuousDumpConfig.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.dumpPhaseMs != null && Object.hasOwnProperty.call(message, \"dumpPhaseMs\"))\n writer.uint32(/* id 1, wireType 0 =*/8).uint32(message.dumpPhaseMs);\n if (message.dumpIntervalMs != null && Object.hasOwnProperty.call(message, \"dumpIntervalMs\"))\n writer.uint32(/* id 2, wireType 0 =*/16).uint32(message.dumpIntervalMs);\n if (message.scanPidsOnlyOnStart != null && Object.hasOwnProperty.call(message, \"scanPidsOnlyOnStart\"))\n writer.uint32(/* id 3, wireType 0 =*/24).bool(message.scanPidsOnlyOnStart);\n return writer;\n };\n\n /**\n * Encodes the specified ContinuousDumpConfig message, length delimited. Does not implicitly {@link perfetto.protos.JavaHprofConfig.ContinuousDumpConfig.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.JavaHprofConfig.ContinuousDumpConfig\n * @static\n * @param {perfetto.protos.JavaHprofConfig.IContinuousDumpConfig} message ContinuousDumpConfig message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ContinuousDumpConfig.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a ContinuousDumpConfig message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.JavaHprofConfig.ContinuousDumpConfig\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.JavaHprofConfig.ContinuousDumpConfig} ContinuousDumpConfig\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ContinuousDumpConfig.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.JavaHprofConfig.ContinuousDumpConfig();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.dumpPhaseMs = reader.uint32();\n break;\n case 2:\n message.dumpIntervalMs = reader.uint32();\n break;\n case 3:\n message.scanPidsOnlyOnStart = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a ContinuousDumpConfig message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.JavaHprofConfig.ContinuousDumpConfig\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.JavaHprofConfig.ContinuousDumpConfig} ContinuousDumpConfig\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ContinuousDumpConfig.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a ContinuousDumpConfig message.\n * @function verify\n * @memberof perfetto.protos.JavaHprofConfig.ContinuousDumpConfig\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n ContinuousDumpConfig.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.dumpPhaseMs != null && message.hasOwnProperty(\"dumpPhaseMs\"))\n if (!$util.isInteger(message.dumpPhaseMs))\n return \"dumpPhaseMs: integer expected\";\n if (message.dumpIntervalMs != null && message.hasOwnProperty(\"dumpIntervalMs\"))\n if (!$util.isInteger(message.dumpIntervalMs))\n return \"dumpIntervalMs: integer expected\";\n if (message.scanPidsOnlyOnStart != null && message.hasOwnProperty(\"scanPidsOnlyOnStart\"))\n if (typeof message.scanPidsOnlyOnStart !== \"boolean\")\n return \"scanPidsOnlyOnStart: boolean expected\";\n return null;\n };\n\n /**\n * Creates a ContinuousDumpConfig message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.JavaHprofConfig.ContinuousDumpConfig\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.JavaHprofConfig.ContinuousDumpConfig} ContinuousDumpConfig\n */\n ContinuousDumpConfig.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.JavaHprofConfig.ContinuousDumpConfig)\n return object;\n var message = new $root.perfetto.protos.JavaHprofConfig.ContinuousDumpConfig();\n if (object.dumpPhaseMs != null)\n message.dumpPhaseMs = object.dumpPhaseMs >>> 0;\n if (object.dumpIntervalMs != null)\n message.dumpIntervalMs = object.dumpIntervalMs >>> 0;\n if (object.scanPidsOnlyOnStart != null)\n message.scanPidsOnlyOnStart = Boolean(object.scanPidsOnlyOnStart);\n return message;\n };\n\n /**\n * Creates a plain object from a ContinuousDumpConfig message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.JavaHprofConfig.ContinuousDumpConfig\n * @static\n * @param {perfetto.protos.JavaHprofConfig.ContinuousDumpConfig} message ContinuousDumpConfig\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n ContinuousDumpConfig.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.dumpPhaseMs = 0;\n object.dumpIntervalMs = 0;\n object.scanPidsOnlyOnStart = false;\n }\n if (message.dumpPhaseMs != null && message.hasOwnProperty(\"dumpPhaseMs\"))\n object.dumpPhaseMs = message.dumpPhaseMs;\n if (message.dumpIntervalMs != null && message.hasOwnProperty(\"dumpIntervalMs\"))\n object.dumpIntervalMs = message.dumpIntervalMs;\n if (message.scanPidsOnlyOnStart != null && message.hasOwnProperty(\"scanPidsOnlyOnStart\"))\n object.scanPidsOnlyOnStart = message.scanPidsOnlyOnStart;\n return object;\n };\n\n /**\n * Converts this ContinuousDumpConfig to JSON.\n * @function toJSON\n * @memberof perfetto.protos.JavaHprofConfig.ContinuousDumpConfig\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n ContinuousDumpConfig.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return ContinuousDumpConfig;\n })();\n\n return JavaHprofConfig;\n })();\n\n protos.PerfEvents = (function() {\n\n /**\n * Properties of a PerfEvents.\n * @memberof perfetto.protos\n * @interface IPerfEvents\n */\n\n /**\n * Constructs a new PerfEvents.\n * @memberof perfetto.protos\n * @classdesc Represents a PerfEvents.\n * @implements IPerfEvents\n * @constructor\n * @param {perfetto.protos.IPerfEvents=} [properties] Properties to set\n */\n function PerfEvents(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * Creates a new PerfEvents instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.PerfEvents\n * @static\n * @param {perfetto.protos.IPerfEvents=} [properties] Properties to set\n * @returns {perfetto.protos.PerfEvents} PerfEvents instance\n */\n PerfEvents.create = function create(properties) {\n return new PerfEvents(properties);\n };\n\n /**\n * Encodes the specified PerfEvents message. Does not implicitly {@link perfetto.protos.PerfEvents.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.PerfEvents\n * @static\n * @param {perfetto.protos.IPerfEvents} message PerfEvents message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n PerfEvents.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n return writer;\n };\n\n /**\n * Encodes the specified PerfEvents message, length delimited. Does not implicitly {@link perfetto.protos.PerfEvents.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.PerfEvents\n * @static\n * @param {perfetto.protos.IPerfEvents} message PerfEvents message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n PerfEvents.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a PerfEvents message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.PerfEvents\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.PerfEvents} PerfEvents\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n PerfEvents.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.PerfEvents();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a PerfEvents message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.PerfEvents\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.PerfEvents} PerfEvents\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n PerfEvents.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a PerfEvents message.\n * @function verify\n * @memberof perfetto.protos.PerfEvents\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n PerfEvents.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n return null;\n };\n\n /**\n * Creates a PerfEvents message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.PerfEvents\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.PerfEvents} PerfEvents\n */\n PerfEvents.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.PerfEvents)\n return object;\n return new $root.perfetto.protos.PerfEvents();\n };\n\n /**\n * Creates a plain object from a PerfEvents message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.PerfEvents\n * @static\n * @param {perfetto.protos.PerfEvents} message PerfEvents\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n PerfEvents.toObject = function toObject() {\n return {};\n };\n\n /**\n * Converts this PerfEvents to JSON.\n * @function toJSON\n * @memberof perfetto.protos.PerfEvents\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n PerfEvents.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n PerfEvents.Timebase = (function() {\n\n /**\n * Properties of a Timebase.\n * @memberof perfetto.protos.PerfEvents\n * @interface ITimebase\n * @property {number|null} [frequency] Timebase frequency\n * @property {number|null} [period] Timebase period\n * @property {perfetto.protos.PerfEvents.Counter|null} [counter] Timebase counter\n * @property {perfetto.protos.PerfEvents.ITracepoint|null} [tracepoint] Timebase tracepoint\n * @property {perfetto.protos.PerfEvents.IRawEvent|null} [rawEvent] Timebase rawEvent\n * @property {perfetto.protos.PerfEvents.PerfClock|null} [timestampClock] Timebase timestampClock\n * @property {string|null} [name] Timebase name\n */\n\n /**\n * Constructs a new Timebase.\n * @memberof perfetto.protos.PerfEvents\n * @classdesc Represents a Timebase.\n * @implements ITimebase\n * @constructor\n * @param {perfetto.protos.PerfEvents.ITimebase=} [properties] Properties to set\n */\n function Timebase(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * Timebase frequency.\n * @member {number} frequency\n * @memberof perfetto.protos.PerfEvents.Timebase\n * @instance\n */\n Timebase.prototype.frequency = $util.Long ? $util.Long.fromBits(0,0,true) : 0;\n\n /**\n * Timebase period.\n * @member {number} period\n * @memberof perfetto.protos.PerfEvents.Timebase\n * @instance\n */\n Timebase.prototype.period = $util.Long ? $util.Long.fromBits(0,0,true) : 0;\n\n /**\n * Timebase counter.\n * @member {perfetto.protos.PerfEvents.Counter} counter\n * @memberof perfetto.protos.PerfEvents.Timebase\n * @instance\n */\n Timebase.prototype.counter = 0;\n\n /**\n * Timebase tracepoint.\n * @member {perfetto.protos.PerfEvents.ITracepoint|null|undefined} tracepoint\n * @memberof perfetto.protos.PerfEvents.Timebase\n * @instance\n */\n Timebase.prototype.tracepoint = null;\n\n /**\n * Timebase rawEvent.\n * @member {perfetto.protos.PerfEvents.IRawEvent|null|undefined} rawEvent\n * @memberof perfetto.protos.PerfEvents.Timebase\n * @instance\n */\n Timebase.prototype.rawEvent = null;\n\n /**\n * Timebase timestampClock.\n * @member {perfetto.protos.PerfEvents.PerfClock} timestampClock\n * @memberof perfetto.protos.PerfEvents.Timebase\n * @instance\n */\n Timebase.prototype.timestampClock = 0;\n\n /**\n * Timebase name.\n * @member {string} name\n * @memberof perfetto.protos.PerfEvents.Timebase\n * @instance\n */\n Timebase.prototype.name = \"\";\n\n // OneOf field names bound to virtual getters and setters\n var $oneOfFields;\n\n /**\n * Timebase interval.\n * @member {\"frequency\"|\"period\"|undefined} interval\n * @memberof perfetto.protos.PerfEvents.Timebase\n * @instance\n */\n Object.defineProperty(Timebase.prototype, \"interval\", {\n get: $util.oneOfGetter($oneOfFields = [\"frequency\", \"period\"]),\n set: $util.oneOfSetter($oneOfFields)\n });\n\n /**\n * Timebase event.\n * @member {\"counter\"|\"tracepoint\"|\"rawEvent\"|undefined} event\n * @memberof perfetto.protos.PerfEvents.Timebase\n * @instance\n */\n Object.defineProperty(Timebase.prototype, \"event\", {\n get: $util.oneOfGetter($oneOfFields = [\"counter\", \"tracepoint\", \"rawEvent\"]),\n set: $util.oneOfSetter($oneOfFields)\n });\n\n /**\n * Creates a new Timebase instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.PerfEvents.Timebase\n * @static\n * @param {perfetto.protos.PerfEvents.ITimebase=} [properties] Properties to set\n * @returns {perfetto.protos.PerfEvents.Timebase} Timebase instance\n */\n Timebase.create = function create(properties) {\n return new Timebase(properties);\n };\n\n /**\n * Encodes the specified Timebase message. Does not implicitly {@link perfetto.protos.PerfEvents.Timebase.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.PerfEvents.Timebase\n * @static\n * @param {perfetto.protos.PerfEvents.ITimebase} message Timebase message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Timebase.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.period != null && Object.hasOwnProperty.call(message, \"period\"))\n writer.uint32(/* id 1, wireType 0 =*/8).uint64(message.period);\n if (message.frequency != null && Object.hasOwnProperty.call(message, \"frequency\"))\n writer.uint32(/* id 2, wireType 0 =*/16).uint64(message.frequency);\n if (message.tracepoint != null && Object.hasOwnProperty.call(message, \"tracepoint\"))\n $root.perfetto.protos.PerfEvents.Tracepoint.encode(message.tracepoint, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();\n if (message.counter != null && Object.hasOwnProperty.call(message, \"counter\"))\n writer.uint32(/* id 4, wireType 0 =*/32).int32(message.counter);\n if (message.rawEvent != null && Object.hasOwnProperty.call(message, \"rawEvent\"))\n $root.perfetto.protos.PerfEvents.RawEvent.encode(message.rawEvent, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim();\n if (message.name != null && Object.hasOwnProperty.call(message, \"name\"))\n writer.uint32(/* id 10, wireType 2 =*/82).string(message.name);\n if (message.timestampClock != null && Object.hasOwnProperty.call(message, \"timestampClock\"))\n writer.uint32(/* id 11, wireType 0 =*/88).int32(message.timestampClock);\n return writer;\n };\n\n /**\n * Encodes the specified Timebase message, length delimited. Does not implicitly {@link perfetto.protos.PerfEvents.Timebase.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.PerfEvents.Timebase\n * @static\n * @param {perfetto.protos.PerfEvents.ITimebase} message Timebase message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Timebase.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a Timebase message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.PerfEvents.Timebase\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.PerfEvents.Timebase} Timebase\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Timebase.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.PerfEvents.Timebase();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 2:\n message.frequency = reader.uint64();\n break;\n case 1:\n message.period = reader.uint64();\n break;\n case 4:\n message.counter = reader.int32();\n break;\n case 3:\n message.tracepoint = $root.perfetto.protos.PerfEvents.Tracepoint.decode(reader, reader.uint32());\n break;\n case 5:\n message.rawEvent = $root.perfetto.protos.PerfEvents.RawEvent.decode(reader, reader.uint32());\n break;\n case 11:\n message.timestampClock = reader.int32();\n break;\n case 10:\n message.name = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a Timebase message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.PerfEvents.Timebase\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.PerfEvents.Timebase} Timebase\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Timebase.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a Timebase message.\n * @function verify\n * @memberof perfetto.protos.PerfEvents.Timebase\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n Timebase.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n var properties = {};\n if (message.frequency != null && message.hasOwnProperty(\"frequency\")) {\n properties.interval = 1;\n if (!$util.isInteger(message.frequency) && !(message.frequency && $util.isInteger(message.frequency.low) && $util.isInteger(message.frequency.high)))\n return \"frequency: integer|Long expected\";\n }\n if (message.period != null && message.hasOwnProperty(\"period\")) {\n if (properties.interval === 1)\n return \"interval: multiple values\";\n properties.interval = 1;\n if (!$util.isInteger(message.period) && !(message.period && $util.isInteger(message.period.low) && $util.isInteger(message.period.high)))\n return \"period: integer|Long expected\";\n }\n if (message.counter != null && message.hasOwnProperty(\"counter\")) {\n properties.event = 1;\n switch (message.counter) {\n default:\n return \"counter: enum value expected\";\n case 0:\n case 1:\n case 2:\n case 10:\n case 11:\n break;\n }\n }\n if (message.tracepoint != null && message.hasOwnProperty(\"tracepoint\")) {\n if (properties.event === 1)\n return \"event: multiple values\";\n properties.event = 1;\n {\n var error = $root.perfetto.protos.PerfEvents.Tracepoint.verify(message.tracepoint);\n if (error)\n return \"tracepoint.\" + error;\n }\n }\n if (message.rawEvent != null && message.hasOwnProperty(\"rawEvent\")) {\n if (properties.event === 1)\n return \"event: multiple values\";\n properties.event = 1;\n {\n var error = $root.perfetto.protos.PerfEvents.RawEvent.verify(message.rawEvent);\n if (error)\n return \"rawEvent.\" + error;\n }\n }\n if (message.timestampClock != null && message.hasOwnProperty(\"timestampClock\"))\n switch (message.timestampClock) {\n default:\n return \"timestampClock: enum value expected\";\n case 0:\n case 1:\n case 2:\n case 3:\n case 4:\n break;\n }\n if (message.name != null && message.hasOwnProperty(\"name\"))\n if (!$util.isString(message.name))\n return \"name: string expected\";\n return null;\n };\n\n /**\n * Creates a Timebase message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.PerfEvents.Timebase\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.PerfEvents.Timebase} Timebase\n */\n Timebase.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.PerfEvents.Timebase)\n return object;\n var message = new $root.perfetto.protos.PerfEvents.Timebase();\n if (object.frequency != null)\n if ($util.Long)\n (message.frequency = $util.Long.fromValue(object.frequency)).unsigned = true;\n else if (typeof object.frequency === \"string\")\n message.frequency = parseInt(object.frequency, 10);\n else if (typeof object.frequency === \"number\")\n message.frequency = object.frequency;\n else if (typeof object.frequency === \"object\")\n message.frequency = new $util.LongBits(object.frequency.low >>> 0, object.frequency.high >>> 0).toNumber(true);\n if (object.period != null)\n if ($util.Long)\n (message.period = $util.Long.fromValue(object.period)).unsigned = true;\n else if (typeof object.period === \"string\")\n message.period = parseInt(object.period, 10);\n else if (typeof object.period === \"number\")\n message.period = object.period;\n else if (typeof object.period === \"object\")\n message.period = new $util.LongBits(object.period.low >>> 0, object.period.high >>> 0).toNumber(true);\n switch (object.counter) {\n case \"UNKNOWN_COUNTER\":\n case 0:\n message.counter = 0;\n break;\n case \"SW_CPU_CLOCK\":\n case 1:\n message.counter = 1;\n break;\n case \"SW_PAGE_FAULTS\":\n case 2:\n message.counter = 2;\n break;\n case \"HW_CPU_CYCLES\":\n case 10:\n message.counter = 10;\n break;\n case \"HW_INSTRUCTIONS\":\n case 11:\n message.counter = 11;\n break;\n }\n if (object.tracepoint != null) {\n if (typeof object.tracepoint !== \"object\")\n throw TypeError(\".perfetto.protos.PerfEvents.Timebase.tracepoint: object expected\");\n message.tracepoint = $root.perfetto.protos.PerfEvents.Tracepoint.fromObject(object.tracepoint);\n }\n if (object.rawEvent != null) {\n if (typeof object.rawEvent !== \"object\")\n throw TypeError(\".perfetto.protos.PerfEvents.Timebase.rawEvent: object expected\");\n message.rawEvent = $root.perfetto.protos.PerfEvents.RawEvent.fromObject(object.rawEvent);\n }\n switch (object.timestampClock) {\n case \"UNKNOWN_PERF_CLOCK\":\n case 0:\n message.timestampClock = 0;\n break;\n case \"PERF_CLOCK_REALTIME\":\n case 1:\n message.timestampClock = 1;\n break;\n case \"PERF_CLOCK_MONOTONIC\":\n case 2:\n message.timestampClock = 2;\n break;\n case \"PERF_CLOCK_MONOTONIC_RAW\":\n case 3:\n message.timestampClock = 3;\n break;\n case \"PERF_CLOCK_BOOTTIME\":\n case 4:\n message.timestampClock = 4;\n break;\n }\n if (object.name != null)\n message.name = String(object.name);\n return message;\n };\n\n /**\n * Creates a plain object from a Timebase message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.PerfEvents.Timebase\n * @static\n * @param {perfetto.protos.PerfEvents.Timebase} message Timebase\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n Timebase.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.name = \"\";\n object.timestampClock = options.enums === String ? \"UNKNOWN_PERF_CLOCK\" : 0;\n }\n if (message.period != null && message.hasOwnProperty(\"period\")) {\n if (typeof message.period === \"number\")\n object.period = options.longs === String ? String(message.period) : message.period;\n else\n object.period = options.longs === String ? $util.Long.prototype.toString.call(message.period) : options.longs === Number ? new $util.LongBits(message.period.low >>> 0, message.period.high >>> 0).toNumber(true) : message.period;\n if (options.oneofs)\n object.interval = \"period\";\n }\n if (message.frequency != null && message.hasOwnProperty(\"frequency\")) {\n if (typeof message.frequency === \"number\")\n object.frequency = options.longs === String ? String(message.frequency) : message.frequency;\n else\n object.frequency = options.longs === String ? $util.Long.prototype.toString.call(message.frequency) : options.longs === Number ? new $util.LongBits(message.frequency.low >>> 0, message.frequency.high >>> 0).toNumber(true) : message.frequency;\n if (options.oneofs)\n object.interval = \"frequency\";\n }\n if (message.tracepoint != null && message.hasOwnProperty(\"tracepoint\")) {\n object.tracepoint = $root.perfetto.protos.PerfEvents.Tracepoint.toObject(message.tracepoint, options);\n if (options.oneofs)\n object.event = \"tracepoint\";\n }\n if (message.counter != null && message.hasOwnProperty(\"counter\")) {\n object.counter = options.enums === String ? $root.perfetto.protos.PerfEvents.Counter[message.counter] : message.counter;\n if (options.oneofs)\n object.event = \"counter\";\n }\n if (message.rawEvent != null && message.hasOwnProperty(\"rawEvent\")) {\n object.rawEvent = $root.perfetto.protos.PerfEvents.RawEvent.toObject(message.rawEvent, options);\n if (options.oneofs)\n object.event = \"rawEvent\";\n }\n if (message.name != null && message.hasOwnProperty(\"name\"))\n object.name = message.name;\n if (message.timestampClock != null && message.hasOwnProperty(\"timestampClock\"))\n object.timestampClock = options.enums === String ? $root.perfetto.protos.PerfEvents.PerfClock[message.timestampClock] : message.timestampClock;\n return object;\n };\n\n /**\n * Converts this Timebase to JSON.\n * @function toJSON\n * @memberof perfetto.protos.PerfEvents.Timebase\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n Timebase.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return Timebase;\n })();\n\n /**\n * Counter enum.\n * @name perfetto.protos.PerfEvents.Counter\n * @enum {number}\n * @property {number} UNKNOWN_COUNTER=0 UNKNOWN_COUNTER value\n * @property {number} SW_CPU_CLOCK=1 SW_CPU_CLOCK value\n * @property {number} SW_PAGE_FAULTS=2 SW_PAGE_FAULTS value\n * @property {number} HW_CPU_CYCLES=10 HW_CPU_CYCLES value\n * @property {number} HW_INSTRUCTIONS=11 HW_INSTRUCTIONS value\n */\n PerfEvents.Counter = (function() {\n var valuesById = {}, values = Object.create(valuesById);\n values[valuesById[0] = \"UNKNOWN_COUNTER\"] = 0;\n values[valuesById[1] = \"SW_CPU_CLOCK\"] = 1;\n values[valuesById[2] = \"SW_PAGE_FAULTS\"] = 2;\n values[valuesById[10] = \"HW_CPU_CYCLES\"] = 10;\n values[valuesById[11] = \"HW_INSTRUCTIONS\"] = 11;\n return values;\n })();\n\n PerfEvents.Tracepoint = (function() {\n\n /**\n * Properties of a Tracepoint.\n * @memberof perfetto.protos.PerfEvents\n * @interface ITracepoint\n * @property {string|null} [name] Tracepoint name\n * @property {string|null} [filter] Tracepoint filter\n */\n\n /**\n * Constructs a new Tracepoint.\n * @memberof perfetto.protos.PerfEvents\n * @classdesc Represents a Tracepoint.\n * @implements ITracepoint\n * @constructor\n * @param {perfetto.protos.PerfEvents.ITracepoint=} [properties] Properties to set\n */\n function Tracepoint(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * Tracepoint name.\n * @member {string} name\n * @memberof perfetto.protos.PerfEvents.Tracepoint\n * @instance\n */\n Tracepoint.prototype.name = \"\";\n\n /**\n * Tracepoint filter.\n * @member {string} filter\n * @memberof perfetto.protos.PerfEvents.Tracepoint\n * @instance\n */\n Tracepoint.prototype.filter = \"\";\n\n /**\n * Creates a new Tracepoint instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.PerfEvents.Tracepoint\n * @static\n * @param {perfetto.protos.PerfEvents.ITracepoint=} [properties] Properties to set\n * @returns {perfetto.protos.PerfEvents.Tracepoint} Tracepoint instance\n */\n Tracepoint.create = function create(properties) {\n return new Tracepoint(properties);\n };\n\n /**\n * Encodes the specified Tracepoint message. Does not implicitly {@link perfetto.protos.PerfEvents.Tracepoint.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.PerfEvents.Tracepoint\n * @static\n * @param {perfetto.protos.PerfEvents.ITracepoint} message Tracepoint message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Tracepoint.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.name != null && Object.hasOwnProperty.call(message, \"name\"))\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.name);\n if (message.filter != null && Object.hasOwnProperty.call(message, \"filter\"))\n writer.uint32(/* id 2, wireType 2 =*/18).string(message.filter);\n return writer;\n };\n\n /**\n * Encodes the specified Tracepoint message, length delimited. Does not implicitly {@link perfetto.protos.PerfEvents.Tracepoint.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.PerfEvents.Tracepoint\n * @static\n * @param {perfetto.protos.PerfEvents.ITracepoint} message Tracepoint message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Tracepoint.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a Tracepoint message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.PerfEvents.Tracepoint\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.PerfEvents.Tracepoint} Tracepoint\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Tracepoint.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.PerfEvents.Tracepoint();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.name = reader.string();\n break;\n case 2:\n message.filter = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a Tracepoint message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.PerfEvents.Tracepoint\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.PerfEvents.Tracepoint} Tracepoint\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Tracepoint.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a Tracepoint message.\n * @function verify\n * @memberof perfetto.protos.PerfEvents.Tracepoint\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n Tracepoint.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.name != null && message.hasOwnProperty(\"name\"))\n if (!$util.isString(message.name))\n return \"name: string expected\";\n if (message.filter != null && message.hasOwnProperty(\"filter\"))\n if (!$util.isString(message.filter))\n return \"filter: string expected\";\n return null;\n };\n\n /**\n * Creates a Tracepoint message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.PerfEvents.Tracepoint\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.PerfEvents.Tracepoint} Tracepoint\n */\n Tracepoint.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.PerfEvents.Tracepoint)\n return object;\n var message = new $root.perfetto.protos.PerfEvents.Tracepoint();\n if (object.name != null)\n message.name = String(object.name);\n if (object.filter != null)\n message.filter = String(object.filter);\n return message;\n };\n\n /**\n * Creates a plain object from a Tracepoint message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.PerfEvents.Tracepoint\n * @static\n * @param {perfetto.protos.PerfEvents.Tracepoint} message Tracepoint\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n Tracepoint.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.name = \"\";\n object.filter = \"\";\n }\n if (message.name != null && message.hasOwnProperty(\"name\"))\n object.name = message.name;\n if (message.filter != null && message.hasOwnProperty(\"filter\"))\n object.filter = message.filter;\n return object;\n };\n\n /**\n * Converts this Tracepoint to JSON.\n * @function toJSON\n * @memberof perfetto.protos.PerfEvents.Tracepoint\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n Tracepoint.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return Tracepoint;\n })();\n\n PerfEvents.RawEvent = (function() {\n\n /**\n * Properties of a RawEvent.\n * @memberof perfetto.protos.PerfEvents\n * @interface IRawEvent\n * @property {number|null} [type] RawEvent type\n * @property {number|null} [config] RawEvent config\n * @property {number|null} [config1] RawEvent config1\n * @property {number|null} [config2] RawEvent config2\n */\n\n /**\n * Constructs a new RawEvent.\n * @memberof perfetto.protos.PerfEvents\n * @classdesc Represents a RawEvent.\n * @implements IRawEvent\n * @constructor\n * @param {perfetto.protos.PerfEvents.IRawEvent=} [properties] Properties to set\n */\n function RawEvent(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * RawEvent type.\n * @member {number} type\n * @memberof perfetto.protos.PerfEvents.RawEvent\n * @instance\n */\n RawEvent.prototype.type = 0;\n\n /**\n * RawEvent config.\n * @member {number} config\n * @memberof perfetto.protos.PerfEvents.RawEvent\n * @instance\n */\n RawEvent.prototype.config = $util.Long ? $util.Long.fromBits(0,0,true) : 0;\n\n /**\n * RawEvent config1.\n * @member {number} config1\n * @memberof perfetto.protos.PerfEvents.RawEvent\n * @instance\n */\n RawEvent.prototype.config1 = $util.Long ? $util.Long.fromBits(0,0,true) : 0;\n\n /**\n * RawEvent config2.\n * @member {number} config2\n * @memberof perfetto.protos.PerfEvents.RawEvent\n * @instance\n */\n RawEvent.prototype.config2 = $util.Long ? $util.Long.fromBits(0,0,true) : 0;\n\n /**\n * Creates a new RawEvent instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.PerfEvents.RawEvent\n * @static\n * @param {perfetto.protos.PerfEvents.IRawEvent=} [properties] Properties to set\n * @returns {perfetto.protos.PerfEvents.RawEvent} RawEvent instance\n */\n RawEvent.create = function create(properties) {\n return new RawEvent(properties);\n };\n\n /**\n * Encodes the specified RawEvent message. Does not implicitly {@link perfetto.protos.PerfEvents.RawEvent.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.PerfEvents.RawEvent\n * @static\n * @param {perfetto.protos.PerfEvents.IRawEvent} message RawEvent message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n RawEvent.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.type != null && Object.hasOwnProperty.call(message, \"type\"))\n writer.uint32(/* id 1, wireType 0 =*/8).uint32(message.type);\n if (message.config != null && Object.hasOwnProperty.call(message, \"config\"))\n writer.uint32(/* id 2, wireType 0 =*/16).uint64(message.config);\n if (message.config1 != null && Object.hasOwnProperty.call(message, \"config1\"))\n writer.uint32(/* id 3, wireType 0 =*/24).uint64(message.config1);\n if (message.config2 != null && Object.hasOwnProperty.call(message, \"config2\"))\n writer.uint32(/* id 4, wireType 0 =*/32).uint64(message.config2);\n return writer;\n };\n\n /**\n * Encodes the specified RawEvent message, length delimited. Does not implicitly {@link perfetto.protos.PerfEvents.RawEvent.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.PerfEvents.RawEvent\n * @static\n * @param {perfetto.protos.PerfEvents.IRawEvent} message RawEvent message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n RawEvent.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a RawEvent message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.PerfEvents.RawEvent\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.PerfEvents.RawEvent} RawEvent\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n RawEvent.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.PerfEvents.RawEvent();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.type = reader.uint32();\n break;\n case 2:\n message.config = reader.uint64();\n break;\n case 3:\n message.config1 = reader.uint64();\n break;\n case 4:\n message.config2 = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a RawEvent message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.PerfEvents.RawEvent\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.PerfEvents.RawEvent} RawEvent\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n RawEvent.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a RawEvent message.\n * @function verify\n * @memberof perfetto.protos.PerfEvents.RawEvent\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n RawEvent.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.type != null && message.hasOwnProperty(\"type\"))\n if (!$util.isInteger(message.type))\n return \"type: integer expected\";\n if (message.config != null && message.hasOwnProperty(\"config\"))\n if (!$util.isInteger(message.config) && !(message.config && $util.isInteger(message.config.low) && $util.isInteger(message.config.high)))\n return \"config: integer|Long expected\";\n if (message.config1 != null && message.hasOwnProperty(\"config1\"))\n if (!$util.isInteger(message.config1) && !(message.config1 && $util.isInteger(message.config1.low) && $util.isInteger(message.config1.high)))\n return \"config1: integer|Long expected\";\n if (message.config2 != null && message.hasOwnProperty(\"config2\"))\n if (!$util.isInteger(message.config2) && !(message.config2 && $util.isInteger(message.config2.low) && $util.isInteger(message.config2.high)))\n return \"config2: integer|Long expected\";\n return null;\n };\n\n /**\n * Creates a RawEvent message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.PerfEvents.RawEvent\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.PerfEvents.RawEvent} RawEvent\n */\n RawEvent.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.PerfEvents.RawEvent)\n return object;\n var message = new $root.perfetto.protos.PerfEvents.RawEvent();\n if (object.type != null)\n message.type = object.type >>> 0;\n if (object.config != null)\n if ($util.Long)\n (message.config = $util.Long.fromValue(object.config)).unsigned = true;\n else if (typeof object.config === \"string\")\n message.config = parseInt(object.config, 10);\n else if (typeof object.config === \"number\")\n message.config = object.config;\n else if (typeof object.config === \"object\")\n message.config = new $util.LongBits(object.config.low >>> 0, object.config.high >>> 0).toNumber(true);\n if (object.config1 != null)\n if ($util.Long)\n (message.config1 = $util.Long.fromValue(object.config1)).unsigned = true;\n else if (typeof object.config1 === \"string\")\n message.config1 = parseInt(object.config1, 10);\n else if (typeof object.config1 === \"number\")\n message.config1 = object.config1;\n else if (typeof object.config1 === \"object\")\n message.config1 = new $util.LongBits(object.config1.low >>> 0, object.config1.high >>> 0).toNumber(true);\n if (object.config2 != null)\n if ($util.Long)\n (message.config2 = $util.Long.fromValue(object.config2)).unsigned = true;\n else if (typeof object.config2 === \"string\")\n message.config2 = parseInt(object.config2, 10);\n else if (typeof object.config2 === \"number\")\n message.config2 = object.config2;\n else if (typeof object.config2 === \"object\")\n message.config2 = new $util.LongBits(object.config2.low >>> 0, object.config2.high >>> 0).toNumber(true);\n return message;\n };\n\n /**\n * Creates a plain object from a RawEvent message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.PerfEvents.RawEvent\n * @static\n * @param {perfetto.protos.PerfEvents.RawEvent} message RawEvent\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n RawEvent.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.type = 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, true);\n object.config = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.config = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, true);\n object.config1 = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.config1 = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, true);\n object.config2 = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.config2 = options.longs === String ? \"0\" : 0;\n }\n if (message.type != null && message.hasOwnProperty(\"type\"))\n object.type = message.type;\n if (message.config != null && message.hasOwnProperty(\"config\"))\n if (typeof message.config === \"number\")\n object.config = options.longs === String ? String(message.config) : message.config;\n else\n object.config = options.longs === String ? $util.Long.prototype.toString.call(message.config) : options.longs === Number ? new $util.LongBits(message.config.low >>> 0, message.config.high >>> 0).toNumber(true) : message.config;\n if (message.config1 != null && message.hasOwnProperty(\"config1\"))\n if (typeof message.config1 === \"number\")\n object.config1 = options.longs === String ? String(message.config1) : message.config1;\n else\n object.config1 = options.longs === String ? $util.Long.prototype.toString.call(message.config1) : options.longs === Number ? new $util.LongBits(message.config1.low >>> 0, message.config1.high >>> 0).toNumber(true) : message.config1;\n if (message.config2 != null && message.hasOwnProperty(\"config2\"))\n if (typeof message.config2 === \"number\")\n object.config2 = options.longs === String ? String(message.config2) : message.config2;\n else\n object.config2 = options.longs === String ? $util.Long.prototype.toString.call(message.config2) : options.longs === Number ? new $util.LongBits(message.config2.low >>> 0, message.config2.high >>> 0).toNumber(true) : message.config2;\n return object;\n };\n\n /**\n * Converts this RawEvent to JSON.\n * @function toJSON\n * @memberof perfetto.protos.PerfEvents.RawEvent\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n RawEvent.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return RawEvent;\n })();\n\n /**\n * PerfClock enum.\n * @name perfetto.protos.PerfEvents.PerfClock\n * @enum {number}\n * @property {number} UNKNOWN_PERF_CLOCK=0 UNKNOWN_PERF_CLOCK value\n * @property {number} PERF_CLOCK_REALTIME=1 PERF_CLOCK_REALTIME value\n * @property {number} PERF_CLOCK_MONOTONIC=2 PERF_CLOCK_MONOTONIC value\n * @property {number} PERF_CLOCK_MONOTONIC_RAW=3 PERF_CLOCK_MONOTONIC_RAW value\n * @property {number} PERF_CLOCK_BOOTTIME=4 PERF_CLOCK_BOOTTIME value\n */\n PerfEvents.PerfClock = (function() {\n var valuesById = {}, values = Object.create(valuesById);\n values[valuesById[0] = \"UNKNOWN_PERF_CLOCK\"] = 0;\n values[valuesById[1] = \"PERF_CLOCK_REALTIME\"] = 1;\n values[valuesById[2] = \"PERF_CLOCK_MONOTONIC\"] = 2;\n values[valuesById[3] = \"PERF_CLOCK_MONOTONIC_RAW\"] = 3;\n values[valuesById[4] = \"PERF_CLOCK_BOOTTIME\"] = 4;\n return values;\n })();\n\n return PerfEvents;\n })();\n\n protos.PerfEventConfig = (function() {\n\n /**\n * Properties of a PerfEventConfig.\n * @memberof perfetto.protos\n * @interface IPerfEventConfig\n * @property {perfetto.protos.PerfEvents.ITimebase|null} [timebase] PerfEventConfig timebase\n * @property {perfetto.protos.PerfEventConfig.ICallstackSampling|null} [callstackSampling] PerfEventConfig callstackSampling\n * @property {number|null} [ringBufferReadPeriodMs] PerfEventConfig ringBufferReadPeriodMs\n * @property {number|null} [ringBufferPages] PerfEventConfig ringBufferPages\n * @property {number|null} [maxEnqueuedFootprintKb] PerfEventConfig maxEnqueuedFootprintKb\n * @property {number|null} [maxDaemonMemoryKb] PerfEventConfig maxDaemonMemoryKb\n * @property {number|null} [remoteDescriptorTimeoutMs] PerfEventConfig remoteDescriptorTimeoutMs\n * @property {number|null} [unwindStateClearPeriodMs] PerfEventConfig unwindStateClearPeriodMs\n * @property {Array.<string>|null} [targetInstalledBy] PerfEventConfig targetInstalledBy\n * @property {boolean|null} [allCpus] PerfEventConfig allCpus\n * @property {number|null} [samplingFrequency] PerfEventConfig samplingFrequency\n * @property {boolean|null} [kernelFrames] PerfEventConfig kernelFrames\n * @property {Array.<number>|null} [targetPid] PerfEventConfig targetPid\n * @property {Array.<string>|null} [targetCmdline] PerfEventConfig targetCmdline\n * @property {Array.<number>|null} [excludePid] PerfEventConfig excludePid\n * @property {Array.<string>|null} [excludeCmdline] PerfEventConfig excludeCmdline\n * @property {number|null} [additionalCmdlineCount] PerfEventConfig additionalCmdlineCount\n */\n\n /**\n * Constructs a new PerfEventConfig.\n * @memberof perfetto.protos\n * @classdesc Represents a PerfEventConfig.\n * @implements IPerfEventConfig\n * @constructor\n * @param {perfetto.protos.IPerfEventConfig=} [properties] Properties to set\n */\n function PerfEventConfig(properties) {\n this.targetInstalledBy = [];\n this.targetPid = [];\n this.targetCmdline = [];\n this.excludePid = [];\n this.excludeCmdline = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * PerfEventConfig timebase.\n * @member {perfetto.protos.PerfEvents.ITimebase|null|undefined} timebase\n * @memberof perfetto.protos.PerfEventConfig\n * @instance\n */\n PerfEventConfig.prototype.timebase = null;\n\n /**\n * PerfEventConfig callstackSampling.\n * @member {perfetto.protos.PerfEventConfig.ICallstackSampling|null|undefined} callstackSampling\n * @memberof perfetto.protos.PerfEventConfig\n * @instance\n */\n PerfEventConfig.prototype.callstackSampling = null;\n\n /**\n * PerfEventConfig ringBufferReadPeriodMs.\n * @member {number} ringBufferReadPeriodMs\n * @memberof perfetto.protos.PerfEventConfig\n * @instance\n */\n PerfEventConfig.prototype.ringBufferReadPeriodMs = 0;\n\n /**\n * PerfEventConfig ringBufferPages.\n * @member {number} ringBufferPages\n * @memberof perfetto.protos.PerfEventConfig\n * @instance\n */\n PerfEventConfig.prototype.ringBufferPages = 0;\n\n /**\n * PerfEventConfig maxEnqueuedFootprintKb.\n * @member {number} maxEnqueuedFootprintKb\n * @memberof perfetto.protos.PerfEventConfig\n * @instance\n */\n PerfEventConfig.prototype.maxEnqueuedFootprintKb = $util.Long ? $util.Long.fromBits(0,0,true) : 0;\n\n /**\n * PerfEventConfig maxDaemonMemoryKb.\n * @member {number} maxDaemonMemoryKb\n * @memberof perfetto.protos.PerfEventConfig\n * @instance\n */\n PerfEventConfig.prototype.maxDaemonMemoryKb = 0;\n\n /**\n * PerfEventConfig remoteDescriptorTimeoutMs.\n * @member {number} remoteDescriptorTimeoutMs\n * @memberof perfetto.protos.PerfEventConfig\n * @instance\n */\n PerfEventConfig.prototype.remoteDescriptorTimeoutMs = 0;\n\n /**\n * PerfEventConfig unwindStateClearPeriodMs.\n * @member {number} unwindStateClearPeriodMs\n * @memberof perfetto.protos.PerfEventConfig\n * @instance\n */\n PerfEventConfig.prototype.unwindStateClearPeriodMs = 0;\n\n /**\n * PerfEventConfig targetInstalledBy.\n * @member {Array.<string>} targetInstalledBy\n * @memberof perfetto.protos.PerfEventConfig\n * @instance\n */\n PerfEventConfig.prototype.targetInstalledBy = $util.emptyArray;\n\n /**\n * PerfEventConfig allCpus.\n * @member {boolean} allCpus\n * @memberof perfetto.protos.PerfEventConfig\n * @instance\n */\n PerfEventConfig.prototype.allCpus = false;\n\n /**\n * PerfEventConfig samplingFrequency.\n * @member {number} samplingFrequency\n * @memberof perfetto.protos.PerfEventConfig\n * @instance\n */\n PerfEventConfig.prototype.samplingFrequency = 0;\n\n /**\n * PerfEventConfig kernelFrames.\n * @member {boolean} kernelFrames\n * @memberof perfetto.protos.PerfEventConfig\n * @instance\n */\n PerfEventConfig.prototype.kernelFrames = false;\n\n /**\n * PerfEventConfig targetPid.\n * @member {Array.<number>} targetPid\n * @memberof perfetto.protos.PerfEventConfig\n * @instance\n */\n PerfEventConfig.prototype.targetPid = $util.emptyArray;\n\n /**\n * PerfEventConfig targetCmdline.\n * @member {Array.<string>} targetCmdline\n * @memberof perfetto.protos.PerfEventConfig\n * @instance\n */\n PerfEventConfig.prototype.targetCmdline = $util.emptyArray;\n\n /**\n * PerfEventConfig excludePid.\n * @member {Array.<number>} excludePid\n * @memberof perfetto.protos.PerfEventConfig\n * @instance\n */\n PerfEventConfig.prototype.excludePid = $util.emptyArray;\n\n /**\n * PerfEventConfig excludeCmdline.\n * @member {Array.<string>} excludeCmdline\n * @memberof perfetto.protos.PerfEventConfig\n * @instance\n */\n PerfEventConfig.prototype.excludeCmdline = $util.emptyArray;\n\n /**\n * PerfEventConfig additionalCmdlineCount.\n * @member {number} additionalCmdlineCount\n * @memberof perfetto.protos.PerfEventConfig\n * @instance\n */\n PerfEventConfig.prototype.additionalCmdlineCount = 0;\n\n /**\n * Creates a new PerfEventConfig instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.PerfEventConfig\n * @static\n * @param {perfetto.protos.IPerfEventConfig=} [properties] Properties to set\n * @returns {perfetto.protos.PerfEventConfig} PerfEventConfig instance\n */\n PerfEventConfig.create = function create(properties) {\n return new PerfEventConfig(properties);\n };\n\n /**\n * Encodes the specified PerfEventConfig message. Does not implicitly {@link perfetto.protos.PerfEventConfig.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.PerfEventConfig\n * @static\n * @param {perfetto.protos.IPerfEventConfig} message PerfEventConfig message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n PerfEventConfig.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.allCpus != null && Object.hasOwnProperty.call(message, \"allCpus\"))\n writer.uint32(/* id 1, wireType 0 =*/8).bool(message.allCpus);\n if (message.samplingFrequency != null && Object.hasOwnProperty.call(message, \"samplingFrequency\"))\n writer.uint32(/* id 2, wireType 0 =*/16).uint32(message.samplingFrequency);\n if (message.ringBufferPages != null && Object.hasOwnProperty.call(message, \"ringBufferPages\"))\n writer.uint32(/* id 3, wireType 0 =*/24).uint32(message.ringBufferPages);\n if (message.targetPid != null && message.targetPid.length)\n for (var i = 0; i < message.targetPid.length; ++i)\n writer.uint32(/* id 4, wireType 0 =*/32).int32(message.targetPid[i]);\n if (message.targetCmdline != null && message.targetCmdline.length)\n for (var i = 0; i < message.targetCmdline.length; ++i)\n writer.uint32(/* id 5, wireType 2 =*/42).string(message.targetCmdline[i]);\n if (message.excludePid != null && message.excludePid.length)\n for (var i = 0; i < message.excludePid.length; ++i)\n writer.uint32(/* id 6, wireType 0 =*/48).int32(message.excludePid[i]);\n if (message.excludeCmdline != null && message.excludeCmdline.length)\n for (var i = 0; i < message.excludeCmdline.length; ++i)\n writer.uint32(/* id 7, wireType 2 =*/58).string(message.excludeCmdline[i]);\n if (message.ringBufferReadPeriodMs != null && Object.hasOwnProperty.call(message, \"ringBufferReadPeriodMs\"))\n writer.uint32(/* id 8, wireType 0 =*/64).uint32(message.ringBufferReadPeriodMs);\n if (message.remoteDescriptorTimeoutMs != null && Object.hasOwnProperty.call(message, \"remoteDescriptorTimeoutMs\"))\n writer.uint32(/* id 9, wireType 0 =*/72).uint32(message.remoteDescriptorTimeoutMs);\n if (message.unwindStateClearPeriodMs != null && Object.hasOwnProperty.call(message, \"unwindStateClearPeriodMs\"))\n writer.uint32(/* id 10, wireType 0 =*/80).uint32(message.unwindStateClearPeriodMs);\n if (message.additionalCmdlineCount != null && Object.hasOwnProperty.call(message, \"additionalCmdlineCount\"))\n writer.uint32(/* id 11, wireType 0 =*/88).uint32(message.additionalCmdlineCount);\n if (message.kernelFrames != null && Object.hasOwnProperty.call(message, \"kernelFrames\"))\n writer.uint32(/* id 12, wireType 0 =*/96).bool(message.kernelFrames);\n if (message.maxDaemonMemoryKb != null && Object.hasOwnProperty.call(message, \"maxDaemonMemoryKb\"))\n writer.uint32(/* id 13, wireType 0 =*/104).uint32(message.maxDaemonMemoryKb);\n if (message.timebase != null && Object.hasOwnProperty.call(message, \"timebase\"))\n $root.perfetto.protos.PerfEvents.Timebase.encode(message.timebase, writer.uint32(/* id 15, wireType 2 =*/122).fork()).ldelim();\n if (message.callstackSampling != null && Object.hasOwnProperty.call(message, \"callstackSampling\"))\n $root.perfetto.protos.PerfEventConfig.CallstackSampling.encode(message.callstackSampling, writer.uint32(/* id 16, wireType 2 =*/130).fork()).ldelim();\n if (message.maxEnqueuedFootprintKb != null && Object.hasOwnProperty.call(message, \"maxEnqueuedFootprintKb\"))\n writer.uint32(/* id 17, wireType 0 =*/136).uint64(message.maxEnqueuedFootprintKb);\n if (message.targetInstalledBy != null && message.targetInstalledBy.length)\n for (var i = 0; i < message.targetInstalledBy.length; ++i)\n writer.uint32(/* id 18, wireType 2 =*/146).string(message.targetInstalledBy[i]);\n return writer;\n };\n\n /**\n * Encodes the specified PerfEventConfig message, length delimited. Does not implicitly {@link perfetto.protos.PerfEventConfig.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.PerfEventConfig\n * @static\n * @param {perfetto.protos.IPerfEventConfig} message PerfEventConfig message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n PerfEventConfig.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a PerfEventConfig message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.PerfEventConfig\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.PerfEventConfig} PerfEventConfig\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n PerfEventConfig.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.PerfEventConfig();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 15:\n message.timebase = $root.perfetto.protos.PerfEvents.Timebase.decode(reader, reader.uint32());\n break;\n case 16:\n message.callstackSampling = $root.perfetto.protos.PerfEventConfig.CallstackSampling.decode(reader, reader.uint32());\n break;\n case 8:\n message.ringBufferReadPeriodMs = reader.uint32();\n break;\n case 3:\n message.ringBufferPages = reader.uint32();\n break;\n case 17:\n message.maxEnqueuedFootprintKb = reader.uint64();\n break;\n case 13:\n message.maxDaemonMemoryKb = reader.uint32();\n break;\n case 9:\n message.remoteDescriptorTimeoutMs = reader.uint32();\n break;\n case 10:\n message.unwindStateClearPeriodMs = reader.uint32();\n break;\n case 18:\n if (!(message.targetInstalledBy && message.targetInstalledBy.length))\n message.targetInstalledBy = [];\n message.targetInstalledBy.push(reader.string());\n break;\n case 1:\n message.allCpus = reader.bool();\n break;\n case 2:\n message.samplingFrequency = reader.uint32();\n break;\n case 12:\n message.kernelFrames = reader.bool();\n break;\n case 4:\n if (!(message.targetPid && message.targetPid.length))\n message.targetPid = [];\n if ((tag & 7) === 2) {\n var end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2)\n message.targetPid.push(reader.int32());\n } else\n message.targetPid.push(reader.int32());\n break;\n case 5:\n if (!(message.targetCmdline && message.targetCmdline.length))\n message.targetCmdline = [];\n message.targetCmdline.push(reader.string());\n break;\n case 6:\n if (!(message.excludePid && message.excludePid.length))\n message.excludePid = [];\n if ((tag & 7) === 2) {\n var end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2)\n message.excludePid.push(reader.int32());\n } else\n message.excludePid.push(reader.int32());\n break;\n case 7:\n if (!(message.excludeCmdline && message.excludeCmdline.length))\n message.excludeCmdline = [];\n message.excludeCmdline.push(reader.string());\n break;\n case 11:\n message.additionalCmdlineCount = reader.uint32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a PerfEventConfig message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.PerfEventConfig\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.PerfEventConfig} PerfEventConfig\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n PerfEventConfig.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a PerfEventConfig message.\n * @function verify\n * @memberof perfetto.protos.PerfEventConfig\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n PerfEventConfig.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.timebase != null && message.hasOwnProperty(\"timebase\")) {\n var error = $root.perfetto.protos.PerfEvents.Timebase.verify(message.timebase);\n if (error)\n return \"timebase.\" + error;\n }\n if (message.callstackSampling != null && message.hasOwnProperty(\"callstackSampling\")) {\n var error = $root.perfetto.protos.PerfEventConfig.CallstackSampling.verify(message.callstackSampling);\n if (error)\n return \"callstackSampling.\" + error;\n }\n if (message.ringBufferReadPeriodMs != null && message.hasOwnProperty(\"ringBufferReadPeriodMs\"))\n if (!$util.isInteger(message.ringBufferReadPeriodMs))\n return \"ringBufferReadPeriodMs: integer expected\";\n if (message.ringBufferPages != null && message.hasOwnProperty(\"ringBufferPages\"))\n if (!$util.isInteger(message.ringBufferPages))\n return \"ringBufferPages: integer expected\";\n if (message.maxEnqueuedFootprintKb != null && message.hasOwnProperty(\"maxEnqueuedFootprintKb\"))\n if (!$util.isInteger(message.maxEnqueuedFootprintKb) && !(message.maxEnqueuedFootprintKb && $util.isInteger(message.maxEnqueuedFootprintKb.low) && $util.isInteger(message.maxEnqueuedFootprintKb.high)))\n return \"maxEnqueuedFootprintKb: integer|Long expected\";\n if (message.maxDaemonMemoryKb != null && message.hasOwnProperty(\"maxDaemonMemoryKb\"))\n if (!$util.isInteger(message.maxDaemonMemoryKb))\n return \"maxDaemonMemoryKb: integer expected\";\n if (message.remoteDescriptorTimeoutMs != null && message.hasOwnProperty(\"remoteDescriptorTimeoutMs\"))\n if (!$util.isInteger(message.remoteDescriptorTimeoutMs))\n return \"remoteDescriptorTimeoutMs: integer expected\";\n if (message.unwindStateClearPeriodMs != null && message.hasOwnProperty(\"unwindStateClearPeriodMs\"))\n if (!$util.isInteger(message.unwindStateClearPeriodMs))\n return \"unwindStateClearPeriodMs: integer expected\";\n if (message.targetInstalledBy != null && message.hasOwnProperty(\"targetInstalledBy\")) {\n if (!Array.isArray(message.targetInstalledBy))\n return \"targetInstalledBy: array expected\";\n for (var i = 0; i < message.targetInstalledBy.length; ++i)\n if (!$util.isString(message.targetInstalledBy[i]))\n return \"targetInstalledBy: string[] expected\";\n }\n if (message.allCpus != null && message.hasOwnProperty(\"allCpus\"))\n if (typeof message.allCpus !== \"boolean\")\n return \"allCpus: boolean expected\";\n if (message.samplingFrequency != null && message.hasOwnProperty(\"samplingFrequency\"))\n if (!$util.isInteger(message.samplingFrequency))\n return \"samplingFrequency: integer expected\";\n if (message.kernelFrames != null && message.hasOwnProperty(\"kernelFrames\"))\n if (typeof message.kernelFrames !== \"boolean\")\n return \"kernelFrames: boolean expected\";\n if (message.targetPid != null && message.hasOwnProperty(\"targetPid\")) {\n if (!Array.isArray(message.targetPid))\n return \"targetPid: array expected\";\n for (var i = 0; i < message.targetPid.length; ++i)\n if (!$util.isInteger(message.targetPid[i]))\n return \"targetPid: integer[] expected\";\n }\n if (message.targetCmdline != null && message.hasOwnProperty(\"targetCmdline\")) {\n if (!Array.isArray(message.targetCmdline))\n return \"targetCmdline: array expected\";\n for (var i = 0; i < message.targetCmdline.length; ++i)\n if (!$util.isString(message.targetCmdline[i]))\n return \"targetCmdline: string[] expected\";\n }\n if (message.excludePid != null && message.hasOwnProperty(\"excludePid\")) {\n if (!Array.isArray(message.excludePid))\n return \"excludePid: array expected\";\n for (var i = 0; i < message.excludePid.length; ++i)\n if (!$util.isInteger(message.excludePid[i]))\n return \"excludePid: integer[] expected\";\n }\n if (message.excludeCmdline != null && message.hasOwnProperty(\"excludeCmdline\")) {\n if (!Array.isArray(message.excludeCmdline))\n return \"excludeCmdline: array expected\";\n for (var i = 0; i < message.excludeCmdline.length; ++i)\n if (!$util.isString(message.excludeCmdline[i]))\n return \"excludeCmdline: string[] expected\";\n }\n if (message.additionalCmdlineCount != null && message.hasOwnProperty(\"additionalCmdlineCount\"))\n if (!$util.isInteger(message.additionalCmdlineCount))\n return \"additionalCmdlineCount: integer expected\";\n return null;\n };\n\n /**\n * Creates a PerfEventConfig message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.PerfEventConfig\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.PerfEventConfig} PerfEventConfig\n */\n PerfEventConfig.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.PerfEventConfig)\n return object;\n var message = new $root.perfetto.protos.PerfEventConfig();\n if (object.timebase != null) {\n if (typeof object.timebase !== \"object\")\n throw TypeError(\".perfetto.protos.PerfEventConfig.timebase: object expected\");\n message.timebase = $root.perfetto.protos.PerfEvents.Timebase.fromObject(object.timebase);\n }\n if (object.callstackSampling != null) {\n if (typeof object.callstackSampling !== \"object\")\n throw TypeError(\".perfetto.protos.PerfEventConfig.callstackSampling: object expected\");\n message.callstackSampling = $root.perfetto.protos.PerfEventConfig.CallstackSampling.fromObject(object.callstackSampling);\n }\n if (object.ringBufferReadPeriodMs != null)\n message.ringBufferReadPeriodMs = object.ringBufferReadPeriodMs >>> 0;\n if (object.ringBufferPages != null)\n message.ringBufferPages = object.ringBufferPages >>> 0;\n if (object.maxEnqueuedFootprintKb != null)\n if ($util.Long)\n (message.maxEnqueuedFootprintKb = $util.Long.fromValue(object.maxEnqueuedFootprintKb)).unsigned = true;\n else if (typeof object.maxEnqueuedFootprintKb === \"string\")\n message.maxEnqueuedFootprintKb = parseInt(object.maxEnqueuedFootprintKb, 10);\n else if (typeof object.maxEnqueuedFootprintKb === \"number\")\n message.maxEnqueuedFootprintKb = object.maxEnqueuedFootprintKb;\n else if (typeof object.maxEnqueuedFootprintKb === \"object\")\n message.maxEnqueuedFootprintKb = new $util.LongBits(object.maxEnqueuedFootprintKb.low >>> 0, object.maxEnqueuedFootprintKb.high >>> 0).toNumber(true);\n if (object.maxDaemonMemoryKb != null)\n message.maxDaemonMemoryKb = object.maxDaemonMemoryKb >>> 0;\n if (object.remoteDescriptorTimeoutMs != null)\n message.remoteDescriptorTimeoutMs = object.remoteDescriptorTimeoutMs >>> 0;\n if (object.unwindStateClearPeriodMs != null)\n message.unwindStateClearPeriodMs = object.unwindStateClearPeriodMs >>> 0;\n if (object.targetInstalledBy) {\n if (!Array.isArray(object.targetInstalledBy))\n throw TypeError(\".perfetto.protos.PerfEventConfig.targetInstalledBy: array expected\");\n message.targetInstalledBy = [];\n for (var i = 0; i < object.targetInstalledBy.length; ++i)\n message.targetInstalledBy[i] = String(object.targetInstalledBy[i]);\n }\n if (object.allCpus != null)\n message.allCpus = Boolean(object.allCpus);\n if (object.samplingFrequency != null)\n message.samplingFrequency = object.samplingFrequency >>> 0;\n if (object.kernelFrames != null)\n message.kernelFrames = Boolean(object.kernelFrames);\n if (object.targetPid) {\n if (!Array.isArray(object.targetPid))\n throw TypeError(\".perfetto.protos.PerfEventConfig.targetPid: array expected\");\n message.targetPid = [];\n for (var i = 0; i < object.targetPid.length; ++i)\n message.targetPid[i] = object.targetPid[i] | 0;\n }\n if (object.targetCmdline) {\n if (!Array.isArray(object.targetCmdline))\n throw TypeError(\".perfetto.protos.PerfEventConfig.targetCmdline: array expected\");\n message.targetCmdline = [];\n for (var i = 0; i < object.targetCmdline.length; ++i)\n message.targetCmdline[i] = String(object.targetCmdline[i]);\n }\n if (object.excludePid) {\n if (!Array.isArray(object.excludePid))\n throw TypeError(\".perfetto.protos.PerfEventConfig.excludePid: array expected\");\n message.excludePid = [];\n for (var i = 0; i < object.excludePid.length; ++i)\n message.excludePid[i] = object.excludePid[i] | 0;\n }\n if (object.excludeCmdline) {\n if (!Array.isArray(object.excludeCmdline))\n throw TypeError(\".perfetto.protos.PerfEventConfig.excludeCmdline: array expected\");\n message.excludeCmdline = [];\n for (var i = 0; i < object.excludeCmdline.length; ++i)\n message.excludeCmdline[i] = String(object.excludeCmdline[i]);\n }\n if (object.additionalCmdlineCount != null)\n message.additionalCmdlineCount = object.additionalCmdlineCount >>> 0;\n return message;\n };\n\n /**\n * Creates a plain object from a PerfEventConfig message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.PerfEventConfig\n * @static\n * @param {perfetto.protos.PerfEventConfig} message PerfEventConfig\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n PerfEventConfig.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults) {\n object.targetPid = [];\n object.targetCmdline = [];\n object.excludePid = [];\n object.excludeCmdline = [];\n object.targetInstalledBy = [];\n }\n if (options.defaults) {\n object.allCpus = false;\n object.samplingFrequency = 0;\n object.ringBufferPages = 0;\n object.ringBufferReadPeriodMs = 0;\n object.remoteDescriptorTimeoutMs = 0;\n object.unwindStateClearPeriodMs = 0;\n object.additionalCmdlineCount = 0;\n object.kernelFrames = false;\n object.maxDaemonMemoryKb = 0;\n object.timebase = null;\n object.callstackSampling = null;\n if ($util.Long) {\n var long = new $util.Long(0, 0, true);\n object.maxEnqueuedFootprintKb = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.maxEnqueuedFootprintKb = options.longs === String ? \"0\" : 0;\n }\n if (message.allCpus != null && message.hasOwnProperty(\"allCpus\"))\n object.allCpus = message.allCpus;\n if (message.samplingFrequency != null && message.hasOwnProperty(\"samplingFrequency\"))\n object.samplingFrequency = message.samplingFrequency;\n if (message.ringBufferPages != null && message.hasOwnProperty(\"ringBufferPages\"))\n object.ringBufferPages = message.ringBufferPages;\n if (message.targetPid && message.targetPid.length) {\n object.targetPid = [];\n for (var j = 0; j < message.targetPid.length; ++j)\n object.targetPid[j] = message.targetPid[j];\n }\n if (message.targetCmdline && message.targetCmdline.length) {\n object.targetCmdline = [];\n for (var j = 0; j < message.targetCmdline.length; ++j)\n object.targetCmdline[j] = message.targetCmdline[j];\n }\n if (message.excludePid && message.excludePid.length) {\n object.excludePid = [];\n for (var j = 0; j < message.excludePid.length; ++j)\n object.excludePid[j] = message.excludePid[j];\n }\n if (message.excludeCmdline && message.excludeCmdline.length) {\n object.excludeCmdline = [];\n for (var j = 0; j < message.excludeCmdline.length; ++j)\n object.excludeCmdline[j] = message.excludeCmdline[j];\n }\n if (message.ringBufferReadPeriodMs != null && message.hasOwnProperty(\"ringBufferReadPeriodMs\"))\n object.ringBufferReadPeriodMs = message.ringBufferReadPeriodMs;\n if (message.remoteDescriptorTimeoutMs != null && message.hasOwnProperty(\"remoteDescriptorTimeoutMs\"))\n object.remoteDescriptorTimeoutMs = message.remoteDescriptorTimeoutMs;\n if (message.unwindStateClearPeriodMs != null && message.hasOwnProperty(\"unwindStateClearPeriodMs\"))\n object.unwindStateClearPeriodMs = message.unwindStateClearPeriodMs;\n if (message.additionalCmdlineCount != null && message.hasOwnProperty(\"additionalCmdlineCount\"))\n object.additionalCmdlineCount = message.additionalCmdlineCount;\n if (message.kernelFrames != null && message.hasOwnProperty(\"kernelFrames\"))\n object.kernelFrames = message.kernelFrames;\n if (message.maxDaemonMemoryKb != null && message.hasOwnProperty(\"maxDaemonMemoryKb\"))\n object.maxDaemonMemoryKb = message.maxDaemonMemoryKb;\n if (message.timebase != null && message.hasOwnProperty(\"timebase\"))\n object.timebase = $root.perfetto.protos.PerfEvents.Timebase.toObject(message.timebase, options);\n if (message.callstackSampling != null && message.hasOwnProperty(\"callstackSampling\"))\n object.callstackSampling = $root.perfetto.protos.PerfEventConfig.CallstackSampling.toObject(message.callstackSampling, options);\n if (message.maxEnqueuedFootprintKb != null && message.hasOwnProperty(\"maxEnqueuedFootprintKb\"))\n if (typeof message.maxEnqueuedFootprintKb === \"number\")\n object.maxEnqueuedFootprintKb = options.longs === String ? String(message.maxEnqueuedFootprintKb) : message.maxEnqueuedFootprintKb;\n else\n object.maxEnqueuedFootprintKb = options.longs === String ? $util.Long.prototype.toString.call(message.maxEnqueuedFootprintKb) : options.longs === Number ? new $util.LongBits(message.maxEnqueuedFootprintKb.low >>> 0, message.maxEnqueuedFootprintKb.high >>> 0).toNumber(true) : message.maxEnqueuedFootprintKb;\n if (message.targetInstalledBy && message.targetInstalledBy.length) {\n object.targetInstalledBy = [];\n for (var j = 0; j < message.targetInstalledBy.length; ++j)\n object.targetInstalledBy[j] = message.targetInstalledBy[j];\n }\n return object;\n };\n\n /**\n * Converts this PerfEventConfig to JSON.\n * @function toJSON\n * @memberof perfetto.protos.PerfEventConfig\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n PerfEventConfig.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n PerfEventConfig.CallstackSampling = (function() {\n\n /**\n * Properties of a CallstackSampling.\n * @memberof perfetto.protos.PerfEventConfig\n * @interface ICallstackSampling\n * @property {perfetto.protos.PerfEventConfig.IScope|null} [scope] CallstackSampling scope\n * @property {boolean|null} [kernelFrames] CallstackSampling kernelFrames\n */\n\n /**\n * Constructs a new CallstackSampling.\n * @memberof perfetto.protos.PerfEventConfig\n * @classdesc Represents a CallstackSampling.\n * @implements ICallstackSampling\n * @constructor\n * @param {perfetto.protos.PerfEventConfig.ICallstackSampling=} [properties] Properties to set\n */\n function CallstackSampling(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * CallstackSampling scope.\n * @member {perfetto.protos.PerfEventConfig.IScope|null|undefined} scope\n * @memberof perfetto.protos.PerfEventConfig.CallstackSampling\n * @instance\n */\n CallstackSampling.prototype.scope = null;\n\n /**\n * CallstackSampling kernelFrames.\n * @member {boolean} kernelFrames\n * @memberof perfetto.protos.PerfEventConfig.CallstackSampling\n * @instance\n */\n CallstackSampling.prototype.kernelFrames = false;\n\n /**\n * Creates a new CallstackSampling instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.PerfEventConfig.CallstackSampling\n * @static\n * @param {perfetto.protos.PerfEventConfig.ICallstackSampling=} [properties] Properties to set\n * @returns {perfetto.protos.PerfEventConfig.CallstackSampling} CallstackSampling instance\n */\n CallstackSampling.create = function create(properties) {\n return new CallstackSampling(properties);\n };\n\n /**\n * Encodes the specified CallstackSampling message. Does not implicitly {@link perfetto.protos.PerfEventConfig.CallstackSampling.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.PerfEventConfig.CallstackSampling\n * @static\n * @param {perfetto.protos.PerfEventConfig.ICallstackSampling} message CallstackSampling message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n CallstackSampling.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.scope != null && Object.hasOwnProperty.call(message, \"scope\"))\n $root.perfetto.protos.PerfEventConfig.Scope.encode(message.scope, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n if (message.kernelFrames != null && Object.hasOwnProperty.call(message, \"kernelFrames\"))\n writer.uint32(/* id 2, wireType 0 =*/16).bool(message.kernelFrames);\n return writer;\n };\n\n /**\n * Encodes the specified CallstackSampling message, length delimited. Does not implicitly {@link perfetto.protos.PerfEventConfig.CallstackSampling.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.PerfEventConfig.CallstackSampling\n * @static\n * @param {perfetto.protos.PerfEventConfig.ICallstackSampling} message CallstackSampling message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n CallstackSampling.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a CallstackSampling message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.PerfEventConfig.CallstackSampling\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.PerfEventConfig.CallstackSampling} CallstackSampling\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n CallstackSampling.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.PerfEventConfig.CallstackSampling();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.scope = $root.perfetto.protos.PerfEventConfig.Scope.decode(reader, reader.uint32());\n break;\n case 2:\n message.kernelFrames = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a CallstackSampling message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.PerfEventConfig.CallstackSampling\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.PerfEventConfig.CallstackSampling} CallstackSampling\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n CallstackSampling.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a CallstackSampling message.\n * @function verify\n * @memberof perfetto.protos.PerfEventConfig.CallstackSampling\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n CallstackSampling.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.scope != null && message.hasOwnProperty(\"scope\")) {\n var error = $root.perfetto.protos.PerfEventConfig.Scope.verify(message.scope);\n if (error)\n return \"scope.\" + error;\n }\n if (message.kernelFrames != null && message.hasOwnProperty(\"kernelFrames\"))\n if (typeof message.kernelFrames !== \"boolean\")\n return \"kernelFrames: boolean expected\";\n return null;\n };\n\n /**\n * Creates a CallstackSampling message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.PerfEventConfig.CallstackSampling\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.PerfEventConfig.CallstackSampling} CallstackSampling\n */\n CallstackSampling.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.PerfEventConfig.CallstackSampling)\n return object;\n var message = new $root.perfetto.protos.PerfEventConfig.CallstackSampling();\n if (object.scope != null) {\n if (typeof object.scope !== \"object\")\n throw TypeError(\".perfetto.protos.PerfEventConfig.CallstackSampling.scope: object expected\");\n message.scope = $root.perfetto.protos.PerfEventConfig.Scope.fromObject(object.scope);\n }\n if (object.kernelFrames != null)\n message.kernelFrames = Boolean(object.kernelFrames);\n return message;\n };\n\n /**\n * Creates a plain object from a CallstackSampling message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.PerfEventConfig.CallstackSampling\n * @static\n * @param {perfetto.protos.PerfEventConfig.CallstackSampling} message CallstackSampling\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n CallstackSampling.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.scope = null;\n object.kernelFrames = false;\n }\n if (message.scope != null && message.hasOwnProperty(\"scope\"))\n object.scope = $root.perfetto.protos.PerfEventConfig.Scope.toObject(message.scope, options);\n if (message.kernelFrames != null && message.hasOwnProperty(\"kernelFrames\"))\n object.kernelFrames = message.kernelFrames;\n return object;\n };\n\n /**\n * Converts this CallstackSampling to JSON.\n * @function toJSON\n * @memberof perfetto.protos.PerfEventConfig.CallstackSampling\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n CallstackSampling.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return CallstackSampling;\n })();\n\n PerfEventConfig.Scope = (function() {\n\n /**\n * Properties of a Scope.\n * @memberof perfetto.protos.PerfEventConfig\n * @interface IScope\n * @property {Array.<number>|null} [targetPid] Scope targetPid\n * @property {Array.<string>|null} [targetCmdline] Scope targetCmdline\n * @property {Array.<number>|null} [excludePid] Scope excludePid\n * @property {Array.<string>|null} [excludeCmdline] Scope excludeCmdline\n * @property {number|null} [additionalCmdlineCount] Scope additionalCmdlineCount\n */\n\n /**\n * Constructs a new Scope.\n * @memberof perfetto.protos.PerfEventConfig\n * @classdesc Represents a Scope.\n * @implements IScope\n * @constructor\n * @param {perfetto.protos.PerfEventConfig.IScope=} [properties] Properties to set\n */\n function Scope(properties) {\n this.targetPid = [];\n this.targetCmdline = [];\n this.excludePid = [];\n this.excludeCmdline = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * Scope targetPid.\n * @member {Array.<number>} targetPid\n * @memberof perfetto.protos.PerfEventConfig.Scope\n * @instance\n */\n Scope.prototype.targetPid = $util.emptyArray;\n\n /**\n * Scope targetCmdline.\n * @member {Array.<string>} targetCmdline\n * @memberof perfetto.protos.PerfEventConfig.Scope\n * @instance\n */\n Scope.prototype.targetCmdline = $util.emptyArray;\n\n /**\n * Scope excludePid.\n * @member {Array.<number>} excludePid\n * @memberof perfetto.protos.PerfEventConfig.Scope\n * @instance\n */\n Scope.prototype.excludePid = $util.emptyArray;\n\n /**\n * Scope excludeCmdline.\n * @member {Array.<string>} excludeCmdline\n * @memberof perfetto.protos.PerfEventConfig.Scope\n * @instance\n */\n Scope.prototype.excludeCmdline = $util.emptyArray;\n\n /**\n * Scope additionalCmdlineCount.\n * @member {number} additionalCmdlineCount\n * @memberof perfetto.protos.PerfEventConfig.Scope\n * @instance\n */\n Scope.prototype.additionalCmdlineCount = 0;\n\n /**\n * Creates a new Scope instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.PerfEventConfig.Scope\n * @static\n * @param {perfetto.protos.PerfEventConfig.IScope=} [properties] Properties to set\n * @returns {perfetto.protos.PerfEventConfig.Scope} Scope instance\n */\n Scope.create = function create(properties) {\n return new Scope(properties);\n };\n\n /**\n * Encodes the specified Scope message. Does not implicitly {@link perfetto.protos.PerfEventConfig.Scope.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.PerfEventConfig.Scope\n * @static\n * @param {perfetto.protos.PerfEventConfig.IScope} message Scope message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Scope.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.targetPid != null && message.targetPid.length)\n for (var i = 0; i < message.targetPid.length; ++i)\n writer.uint32(/* id 1, wireType 0 =*/8).int32(message.targetPid[i]);\n if (message.targetCmdline != null && message.targetCmdline.length)\n for (var i = 0; i < message.targetCmdline.length; ++i)\n writer.uint32(/* id 2, wireType 2 =*/18).string(message.targetCmdline[i]);\n if (message.excludePid != null && message.excludePid.length)\n for (var i = 0; i < message.excludePid.length; ++i)\n writer.uint32(/* id 3, wireType 0 =*/24).int32(message.excludePid[i]);\n if (message.excludeCmdline != null && message.excludeCmdline.length)\n for (var i = 0; i < message.excludeCmdline.length; ++i)\n writer.uint32(/* id 4, wireType 2 =*/34).string(message.excludeCmdline[i]);\n if (message.additionalCmdlineCount != null && Object.hasOwnProperty.call(message, \"additionalCmdlineCount\"))\n writer.uint32(/* id 5, wireType 0 =*/40).uint32(message.additionalCmdlineCount);\n return writer;\n };\n\n /**\n * Encodes the specified Scope message, length delimited. Does not implicitly {@link perfetto.protos.PerfEventConfig.Scope.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.PerfEventConfig.Scope\n * @static\n * @param {perfetto.protos.PerfEventConfig.IScope} message Scope message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Scope.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a Scope message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.PerfEventConfig.Scope\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.PerfEventConfig.Scope} Scope\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Scope.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.PerfEventConfig.Scope();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (!(message.targetPid && message.targetPid.length))\n message.targetPid = [];\n if ((tag & 7) === 2) {\n var end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2)\n message.targetPid.push(reader.int32());\n } else\n message.targetPid.push(reader.int32());\n break;\n case 2:\n if (!(message.targetCmdline && message.targetCmdline.length))\n message.targetCmdline = [];\n message.targetCmdline.push(reader.string());\n break;\n case 3:\n if (!(message.excludePid && message.excludePid.length))\n message.excludePid = [];\n if ((tag & 7) === 2) {\n var end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2)\n message.excludePid.push(reader.int32());\n } else\n message.excludePid.push(reader.int32());\n break;\n case 4:\n if (!(message.excludeCmdline && message.excludeCmdline.length))\n message.excludeCmdline = [];\n message.excludeCmdline.push(reader.string());\n break;\n case 5:\n message.additionalCmdlineCount = reader.uint32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a Scope message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.PerfEventConfig.Scope\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.PerfEventConfig.Scope} Scope\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Scope.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a Scope message.\n * @function verify\n * @memberof perfetto.protos.PerfEventConfig.Scope\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n Scope.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.targetPid != null && message.hasOwnProperty(\"targetPid\")) {\n if (!Array.isArray(message.targetPid))\n return \"targetPid: array expected\";\n for (var i = 0; i < message.targetPid.length; ++i)\n if (!$util.isInteger(message.targetPid[i]))\n return \"targetPid: integer[] expected\";\n }\n if (message.targetCmdline != null && message.hasOwnProperty(\"targetCmdline\")) {\n if (!Array.isArray(message.targetCmdline))\n return \"targetCmdline: array expected\";\n for (var i = 0; i < message.targetCmdline.length; ++i)\n if (!$util.isString(message.targetCmdline[i]))\n return \"targetCmdline: string[] expected\";\n }\n if (message.excludePid != null && message.hasOwnProperty(\"excludePid\")) {\n if (!Array.isArray(message.excludePid))\n return \"excludePid: array expected\";\n for (var i = 0; i < message.excludePid.length; ++i)\n if (!$util.isInteger(message.excludePid[i]))\n return \"excludePid: integer[] expected\";\n }\n if (message.excludeCmdline != null && message.hasOwnProperty(\"excludeCmdline\")) {\n if (!Array.isArray(message.excludeCmdline))\n return \"excludeCmdline: array expected\";\n for (var i = 0; i < message.excludeCmdline.length; ++i)\n if (!$util.isString(message.excludeCmdline[i]))\n return \"excludeCmdline: string[] expected\";\n }\n if (message.additionalCmdlineCount != null && message.hasOwnProperty(\"additionalCmdlineCount\"))\n if (!$util.isInteger(message.additionalCmdlineCount))\n return \"additionalCmdlineCount: integer expected\";\n return null;\n };\n\n /**\n * Creates a Scope message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.PerfEventConfig.Scope\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.PerfEventConfig.Scope} Scope\n */\n Scope.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.PerfEventConfig.Scope)\n return object;\n var message = new $root.perfetto.protos.PerfEventConfig.Scope();\n if (object.targetPid) {\n if (!Array.isArray(object.targetPid))\n throw TypeError(\".perfetto.protos.PerfEventConfig.Scope.targetPid: array expected\");\n message.targetPid = [];\n for (var i = 0; i < object.targetPid.length; ++i)\n message.targetPid[i] = object.targetPid[i] | 0;\n }\n if (object.targetCmdline) {\n if (!Array.isArray(object.targetCmdline))\n throw TypeError(\".perfetto.protos.PerfEventConfig.Scope.targetCmdline: array expected\");\n message.targetCmdline = [];\n for (var i = 0; i < object.targetCmdline.length; ++i)\n message.targetCmdline[i] = String(object.targetCmdline[i]);\n }\n if (object.excludePid) {\n if (!Array.isArray(object.excludePid))\n throw TypeError(\".perfetto.protos.PerfEventConfig.Scope.excludePid: array expected\");\n message.excludePid = [];\n for (var i = 0; i < object.excludePid.length; ++i)\n message.excludePid[i] = object.excludePid[i] | 0;\n }\n if (object.excludeCmdline) {\n if (!Array.isArray(object.excludeCmdline))\n throw TypeError(\".perfetto.protos.PerfEventConfig.Scope.excludeCmdline: array expected\");\n message.excludeCmdline = [];\n for (var i = 0; i < object.excludeCmdline.length; ++i)\n message.excludeCmdline[i] = String(object.excludeCmdline[i]);\n }\n if (object.additionalCmdlineCount != null)\n message.additionalCmdlineCount = object.additionalCmdlineCount >>> 0;\n return message;\n };\n\n /**\n * Creates a plain object from a Scope message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.PerfEventConfig.Scope\n * @static\n * @param {perfetto.protos.PerfEventConfig.Scope} message Scope\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n Scope.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults) {\n object.targetPid = [];\n object.targetCmdline = [];\n object.excludePid = [];\n object.excludeCmdline = [];\n }\n if (options.defaults)\n object.additionalCmdlineCount = 0;\n if (message.targetPid && message.targetPid.length) {\n object.targetPid = [];\n for (var j = 0; j < message.targetPid.length; ++j)\n object.targetPid[j] = message.targetPid[j];\n }\n if (message.targetCmdline && message.targetCmdline.length) {\n object.targetCmdline = [];\n for (var j = 0; j < message.targetCmdline.length; ++j)\n object.targetCmdline[j] = message.targetCmdline[j];\n }\n if (message.excludePid && message.excludePid.length) {\n object.excludePid = [];\n for (var j = 0; j < message.excludePid.length; ++j)\n object.excludePid[j] = message.excludePid[j];\n }\n if (message.excludeCmdline && message.excludeCmdline.length) {\n object.excludeCmdline = [];\n for (var j = 0; j < message.excludeCmdline.length; ++j)\n object.excludeCmdline[j] = message.excludeCmdline[j];\n }\n if (message.additionalCmdlineCount != null && message.hasOwnProperty(\"additionalCmdlineCount\"))\n object.additionalCmdlineCount = message.additionalCmdlineCount;\n return object;\n };\n\n /**\n * Converts this Scope to JSON.\n * @function toJSON\n * @memberof perfetto.protos.PerfEventConfig.Scope\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n Scope.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return Scope;\n })();\n\n return PerfEventConfig;\n })();\n\n /**\n * MeminfoCounters enum.\n * @name perfetto.protos.MeminfoCounters\n * @enum {number}\n * @property {number} MEMINFO_UNSPECIFIED=0 MEMINFO_UNSPECIFIED value\n * @property {number} MEMINFO_MEM_TOTAL=1 MEMINFO_MEM_TOTAL value\n * @property {number} MEMINFO_MEM_FREE=2 MEMINFO_MEM_FREE value\n * @property {number} MEMINFO_MEM_AVAILABLE=3 MEMINFO_MEM_AVAILABLE value\n * @property {number} MEMINFO_BUFFERS=4 MEMINFO_BUFFERS value\n * @property {number} MEMINFO_CACHED=5 MEMINFO_CACHED value\n * @property {number} MEMINFO_SWAP_CACHED=6 MEMINFO_SWAP_CACHED value\n * @property {number} MEMINFO_ACTIVE=7 MEMINFO_ACTIVE value\n * @property {number} MEMINFO_INACTIVE=8 MEMINFO_INACTIVE value\n * @property {number} MEMINFO_ACTIVE_ANON=9 MEMINFO_ACTIVE_ANON value\n * @property {number} MEMINFO_INACTIVE_ANON=10 MEMINFO_INACTIVE_ANON value\n * @property {number} MEMINFO_ACTIVE_FILE=11 MEMINFO_ACTIVE_FILE value\n * @property {number} MEMINFO_INACTIVE_FILE=12 MEMINFO_INACTIVE_FILE value\n * @property {number} MEMINFO_UNEVICTABLE=13 MEMINFO_UNEVICTABLE value\n * @property {number} MEMINFO_MLOCKED=14 MEMINFO_MLOCKED value\n * @property {number} MEMINFO_SWAP_TOTAL=15 MEMINFO_SWAP_TOTAL value\n * @property {number} MEMINFO_SWAP_FREE=16 MEMINFO_SWAP_FREE value\n * @property {number} MEMINFO_DIRTY=17 MEMINFO_DIRTY value\n * @property {number} MEMINFO_WRITEBACK=18 MEMINFO_WRITEBACK value\n * @property {number} MEMINFO_ANON_PAGES=19 MEMINFO_ANON_PAGES value\n * @property {number} MEMINFO_MAPPED=20 MEMINFO_MAPPED value\n * @property {number} MEMINFO_SHMEM=21 MEMINFO_SHMEM value\n * @property {number} MEMINFO_SLAB=22 MEMINFO_SLAB value\n * @property {number} MEMINFO_SLAB_RECLAIMABLE=23 MEMINFO_SLAB_RECLAIMABLE value\n * @property {number} MEMINFO_SLAB_UNRECLAIMABLE=24 MEMINFO_SLAB_UNRECLAIMABLE value\n * @property {number} MEMINFO_KERNEL_STACK=25 MEMINFO_KERNEL_STACK value\n * @property {number} MEMINFO_PAGE_TABLES=26 MEMINFO_PAGE_TABLES value\n * @property {number} MEMINFO_COMMIT_LIMIT=27 MEMINFO_COMMIT_LIMIT value\n * @property {number} MEMINFO_COMMITED_AS=28 MEMINFO_COMMITED_AS value\n * @property {number} MEMINFO_VMALLOC_TOTAL=29 MEMINFO_VMALLOC_TOTAL value\n * @property {number} MEMINFO_VMALLOC_USED=30 MEMINFO_VMALLOC_USED value\n * @property {number} MEMINFO_VMALLOC_CHUNK=31 MEMINFO_VMALLOC_CHUNK value\n * @property {number} MEMINFO_CMA_TOTAL=32 MEMINFO_CMA_TOTAL value\n * @property {number} MEMINFO_CMA_FREE=33 MEMINFO_CMA_FREE value\n */\n protos.MeminfoCounters = (function() {\n var valuesById = {}, values = Object.create(valuesById);\n values[valuesById[0] = \"MEMINFO_UNSPECIFIED\"] = 0;\n values[valuesById[1] = \"MEMINFO_MEM_TOTAL\"] = 1;\n values[valuesById[2] = \"MEMINFO_MEM_FREE\"] = 2;\n values[valuesById[3] = \"MEMINFO_MEM_AVAILABLE\"] = 3;\n values[valuesById[4] = \"MEMINFO_BUFFERS\"] = 4;\n values[valuesById[5] = \"MEMINFO_CACHED\"] = 5;\n values[valuesById[6] = \"MEMINFO_SWAP_CACHED\"] = 6;\n values[valuesById[7] = \"MEMINFO_ACTIVE\"] = 7;\n values[valuesById[8] = \"MEMINFO_INACTIVE\"] = 8;\n values[valuesById[9] = \"MEMINFO_ACTIVE_ANON\"] = 9;\n values[valuesById[10] = \"MEMINFO_INACTIVE_ANON\"] = 10;\n values[valuesById[11] = \"MEMINFO_ACTIVE_FILE\"] = 11;\n values[valuesById[12] = \"MEMINFO_INACTIVE_FILE\"] = 12;\n values[valuesById[13] = \"MEMINFO_UNEVICTABLE\"] = 13;\n values[valuesById[14] = \"MEMINFO_MLOCKED\"] = 14;\n values[valuesById[15] = \"MEMINFO_SWAP_TOTAL\"] = 15;\n values[valuesById[16] = \"MEMINFO_SWAP_FREE\"] = 16;\n values[valuesById[17] = \"MEMINFO_DIRTY\"] = 17;\n values[valuesById[18] = \"MEMINFO_WRITEBACK\"] = 18;\n values[valuesById[19] = \"MEMINFO_ANON_PAGES\"] = 19;\n values[valuesById[20] = \"MEMINFO_MAPPED\"] = 20;\n values[valuesById[21] = \"MEMINFO_SHMEM\"] = 21;\n values[valuesById[22] = \"MEMINFO_SLAB\"] = 22;\n values[valuesById[23] = \"MEMINFO_SLAB_RECLAIMABLE\"] = 23;\n values[valuesById[24] = \"MEMINFO_SLAB_UNRECLAIMABLE\"] = 24;\n values[valuesById[25] = \"MEMINFO_KERNEL_STACK\"] = 25;\n values[valuesById[26] = \"MEMINFO_PAGE_TABLES\"] = 26;\n values[valuesById[27] = \"MEMINFO_COMMIT_LIMIT\"] = 27;\n values[valuesById[28] = \"MEMINFO_COMMITED_AS\"] = 28;\n values[valuesById[29] = \"MEMINFO_VMALLOC_TOTAL\"] = 29;\n values[valuesById[30] = \"MEMINFO_VMALLOC_USED\"] = 30;\n values[valuesById[31] = \"MEMINFO_VMALLOC_CHUNK\"] = 31;\n values[valuesById[32] = \"MEMINFO_CMA_TOTAL\"] = 32;\n values[valuesById[33] = \"MEMINFO_CMA_FREE\"] = 33;\n return values;\n })();\n\n /**\n * VmstatCounters enum.\n * @name perfetto.protos.VmstatCounters\n * @enum {number}\n * @property {number} VMSTAT_UNSPECIFIED=0 VMSTAT_UNSPECIFIED value\n * @property {number} VMSTAT_NR_FREE_PAGES=1 VMSTAT_NR_FREE_PAGES value\n * @property {number} VMSTAT_NR_ALLOC_BATCH=2 VMSTAT_NR_ALLOC_BATCH value\n * @property {number} VMSTAT_NR_INACTIVE_ANON=3 VMSTAT_NR_INACTIVE_ANON value\n * @property {number} VMSTAT_NR_ACTIVE_ANON=4 VMSTAT_NR_ACTIVE_ANON value\n * @property {number} VMSTAT_NR_INACTIVE_FILE=5 VMSTAT_NR_INACTIVE_FILE value\n * @property {number} VMSTAT_NR_ACTIVE_FILE=6 VMSTAT_NR_ACTIVE_FILE value\n * @property {number} VMSTAT_NR_UNEVICTABLE=7 VMSTAT_NR_UNEVICTABLE value\n * @property {number} VMSTAT_NR_MLOCK=8 VMSTAT_NR_MLOCK value\n * @property {number} VMSTAT_NR_ANON_PAGES=9 VMSTAT_NR_ANON_PAGES value\n * @property {number} VMSTAT_NR_MAPPED=10 VMSTAT_NR_MAPPED value\n * @property {number} VMSTAT_NR_FILE_PAGES=11 VMSTAT_NR_FILE_PAGES value\n * @property {number} VMSTAT_NR_DIRTY=12 VMSTAT_NR_DIRTY value\n * @property {number} VMSTAT_NR_WRITEBACK=13 VMSTAT_NR_WRITEBACK value\n * @property {number} VMSTAT_NR_SLAB_RECLAIMABLE=14 VMSTAT_NR_SLAB_RECLAIMABLE value\n * @property {number} VMSTAT_NR_SLAB_UNRECLAIMABLE=15 VMSTAT_NR_SLAB_UNRECLAIMABLE value\n * @property {number} VMSTAT_NR_PAGE_TABLE_PAGES=16 VMSTAT_NR_PAGE_TABLE_PAGES value\n * @property {number} VMSTAT_NR_KERNEL_STACK=17 VMSTAT_NR_KERNEL_STACK value\n * @property {number} VMSTAT_NR_OVERHEAD=18 VMSTAT_NR_OVERHEAD value\n * @property {number} VMSTAT_NR_UNSTABLE=19 VMSTAT_NR_UNSTABLE value\n * @property {number} VMSTAT_NR_BOUNCE=20 VMSTAT_NR_BOUNCE value\n * @property {number} VMSTAT_NR_VMSCAN_WRITE=21 VMSTAT_NR_VMSCAN_WRITE value\n * @property {number} VMSTAT_NR_VMSCAN_IMMEDIATE_RECLAIM=22 VMSTAT_NR_VMSCAN_IMMEDIATE_RECLAIM value\n * @property {number} VMSTAT_NR_WRITEBACK_TEMP=23 VMSTAT_NR_WRITEBACK_TEMP value\n * @property {number} VMSTAT_NR_ISOLATED_ANON=24 VMSTAT_NR_ISOLATED_ANON value\n * @property {number} VMSTAT_NR_ISOLATED_FILE=25 VMSTAT_NR_ISOLATED_FILE value\n * @property {number} VMSTAT_NR_SHMEM=26 VMSTAT_NR_SHMEM value\n * @property {number} VMSTAT_NR_DIRTIED=27 VMSTAT_NR_DIRTIED value\n * @property {number} VMSTAT_NR_WRITTEN=28 VMSTAT_NR_WRITTEN value\n * @property {number} VMSTAT_NR_PAGES_SCANNED=29 VMSTAT_NR_PAGES_SCANNED value\n * @property {number} VMSTAT_WORKINGSET_REFAULT=30 VMSTAT_WORKINGSET_REFAULT value\n * @property {number} VMSTAT_WORKINGSET_ACTIVATE=31 VMSTAT_WORKINGSET_ACTIVATE value\n * @property {number} VMSTAT_WORKINGSET_NODERECLAIM=32 VMSTAT_WORKINGSET_NODERECLAIM value\n * @property {number} VMSTAT_NR_ANON_TRANSPARENT_HUGEPAGES=33 VMSTAT_NR_ANON_TRANSPARENT_HUGEPAGES value\n * @property {number} VMSTAT_NR_FREE_CMA=34 VMSTAT_NR_FREE_CMA value\n * @property {number} VMSTAT_NR_SWAPCACHE=35 VMSTAT_NR_SWAPCACHE value\n * @property {number} VMSTAT_NR_DIRTY_THRESHOLD=36 VMSTAT_NR_DIRTY_THRESHOLD value\n * @property {number} VMSTAT_NR_DIRTY_BACKGROUND_THRESHOLD=37 VMSTAT_NR_DIRTY_BACKGROUND_THRESHOLD value\n * @property {number} VMSTAT_PGPGIN=38 VMSTAT_PGPGIN value\n * @property {number} VMSTAT_PGPGOUT=39 VMSTAT_PGPGOUT value\n * @property {number} VMSTAT_PGPGOUTCLEAN=40 VMSTAT_PGPGOUTCLEAN value\n * @property {number} VMSTAT_PSWPIN=41 VMSTAT_PSWPIN value\n * @property {number} VMSTAT_PSWPOUT=42 VMSTAT_PSWPOUT value\n * @property {number} VMSTAT_PGALLOC_DMA=43 VMSTAT_PGALLOC_DMA value\n * @property {number} VMSTAT_PGALLOC_NORMAL=44 VMSTAT_PGALLOC_NORMAL value\n * @property {number} VMSTAT_PGALLOC_MOVABLE=45 VMSTAT_PGALLOC_MOVABLE value\n * @property {number} VMSTAT_PGFREE=46 VMSTAT_PGFREE value\n * @property {number} VMSTAT_PGACTIVATE=47 VMSTAT_PGACTIVATE value\n * @property {number} VMSTAT_PGDEACTIVATE=48 VMSTAT_PGDEACTIVATE value\n * @property {number} VMSTAT_PGFAULT=49 VMSTAT_PGFAULT value\n * @property {number} VMSTAT_PGMAJFAULT=50 VMSTAT_PGMAJFAULT value\n * @property {number} VMSTAT_PGREFILL_DMA=51 VMSTAT_PGREFILL_DMA value\n * @property {number} VMSTAT_PGREFILL_NORMAL=52 VMSTAT_PGREFILL_NORMAL value\n * @property {number} VMSTAT_PGREFILL_MOVABLE=53 VMSTAT_PGREFILL_MOVABLE value\n * @property {number} VMSTAT_PGSTEAL_KSWAPD_DMA=54 VMSTAT_PGSTEAL_KSWAPD_DMA value\n * @property {number} VMSTAT_PGSTEAL_KSWAPD_NORMAL=55 VMSTAT_PGSTEAL_KSWAPD_NORMAL value\n * @property {number} VMSTAT_PGSTEAL_KSWAPD_MOVABLE=56 VMSTAT_PGSTEAL_KSWAPD_MOVABLE value\n * @property {number} VMSTAT_PGSTEAL_DIRECT_DMA=57 VMSTAT_PGSTEAL_DIRECT_DMA value\n * @property {number} VMSTAT_PGSTEAL_DIRECT_NORMAL=58 VMSTAT_PGSTEAL_DIRECT_NORMAL value\n * @property {number} VMSTAT_PGSTEAL_DIRECT_MOVABLE=59 VMSTAT_PGSTEAL_DIRECT_MOVABLE value\n * @property {number} VMSTAT_PGSCAN_KSWAPD_DMA=60 VMSTAT_PGSCAN_KSWAPD_DMA value\n * @property {number} VMSTAT_PGSCAN_KSWAPD_NORMAL=61 VMSTAT_PGSCAN_KSWAPD_NORMAL value\n * @property {number} VMSTAT_PGSCAN_KSWAPD_MOVABLE=62 VMSTAT_PGSCAN_KSWAPD_MOVABLE value\n * @property {number} VMSTAT_PGSCAN_DIRECT_DMA=63 VMSTAT_PGSCAN_DIRECT_DMA value\n * @property {number} VMSTAT_PGSCAN_DIRECT_NORMAL=64 VMSTAT_PGSCAN_DIRECT_NORMAL value\n * @property {number} VMSTAT_PGSCAN_DIRECT_MOVABLE=65 VMSTAT_PGSCAN_DIRECT_MOVABLE value\n * @property {number} VMSTAT_PGSCAN_DIRECT_THROTTLE=66 VMSTAT_PGSCAN_DIRECT_THROTTLE value\n * @property {number} VMSTAT_PGINODESTEAL=67 VMSTAT_PGINODESTEAL value\n * @property {number} VMSTAT_SLABS_SCANNED=68 VMSTAT_SLABS_SCANNED value\n * @property {number} VMSTAT_KSWAPD_INODESTEAL=69 VMSTAT_KSWAPD_INODESTEAL value\n * @property {number} VMSTAT_KSWAPD_LOW_WMARK_HIT_QUICKLY=70 VMSTAT_KSWAPD_LOW_WMARK_HIT_QUICKLY value\n * @property {number} VMSTAT_KSWAPD_HIGH_WMARK_HIT_QUICKLY=71 VMSTAT_KSWAPD_HIGH_WMARK_HIT_QUICKLY value\n * @property {number} VMSTAT_PAGEOUTRUN=72 VMSTAT_PAGEOUTRUN value\n * @property {number} VMSTAT_ALLOCSTALL=73 VMSTAT_ALLOCSTALL value\n * @property {number} VMSTAT_PGROTATED=74 VMSTAT_PGROTATED value\n * @property {number} VMSTAT_DROP_PAGECACHE=75 VMSTAT_DROP_PAGECACHE value\n * @property {number} VMSTAT_DROP_SLAB=76 VMSTAT_DROP_SLAB value\n * @property {number} VMSTAT_PGMIGRATE_SUCCESS=77 VMSTAT_PGMIGRATE_SUCCESS value\n * @property {number} VMSTAT_PGMIGRATE_FAIL=78 VMSTAT_PGMIGRATE_FAIL value\n * @property {number} VMSTAT_COMPACT_MIGRATE_SCANNED=79 VMSTAT_COMPACT_MIGRATE_SCANNED value\n * @property {number} VMSTAT_COMPACT_FREE_SCANNED=80 VMSTAT_COMPACT_FREE_SCANNED value\n * @property {number} VMSTAT_COMPACT_ISOLATED=81 VMSTAT_COMPACT_ISOLATED value\n * @property {number} VMSTAT_COMPACT_STALL=82 VMSTAT_COMPACT_STALL value\n * @property {number} VMSTAT_COMPACT_FAIL=83 VMSTAT_COMPACT_FAIL value\n * @property {number} VMSTAT_COMPACT_SUCCESS=84 VMSTAT_COMPACT_SUCCESS value\n * @property {number} VMSTAT_COMPACT_DAEMON_WAKE=85 VMSTAT_COMPACT_DAEMON_WAKE value\n * @property {number} VMSTAT_UNEVICTABLE_PGS_CULLED=86 VMSTAT_UNEVICTABLE_PGS_CULLED value\n * @property {number} VMSTAT_UNEVICTABLE_PGS_SCANNED=87 VMSTAT_UNEVICTABLE_PGS_SCANNED value\n * @property {number} VMSTAT_UNEVICTABLE_PGS_RESCUED=88 VMSTAT_UNEVICTABLE_PGS_RESCUED value\n * @property {number} VMSTAT_UNEVICTABLE_PGS_MLOCKED=89 VMSTAT_UNEVICTABLE_PGS_MLOCKED value\n * @property {number} VMSTAT_UNEVICTABLE_PGS_MUNLOCKED=90 VMSTAT_UNEVICTABLE_PGS_MUNLOCKED value\n * @property {number} VMSTAT_UNEVICTABLE_PGS_CLEARED=91 VMSTAT_UNEVICTABLE_PGS_CLEARED value\n * @property {number} VMSTAT_UNEVICTABLE_PGS_STRANDED=92 VMSTAT_UNEVICTABLE_PGS_STRANDED value\n * @property {number} VMSTAT_NR_ZSPAGES=93 VMSTAT_NR_ZSPAGES value\n * @property {number} VMSTAT_NR_ION_HEAP=94 VMSTAT_NR_ION_HEAP value\n * @property {number} VMSTAT_NR_GPU_HEAP=95 VMSTAT_NR_GPU_HEAP value\n * @property {number} VMSTAT_ALLOCSTALL_DMA=96 VMSTAT_ALLOCSTALL_DMA value\n * @property {number} VMSTAT_ALLOCSTALL_MOVABLE=97 VMSTAT_ALLOCSTALL_MOVABLE value\n * @property {number} VMSTAT_ALLOCSTALL_NORMAL=98 VMSTAT_ALLOCSTALL_NORMAL value\n * @property {number} VMSTAT_COMPACT_DAEMON_FREE_SCANNED=99 VMSTAT_COMPACT_DAEMON_FREE_SCANNED value\n * @property {number} VMSTAT_COMPACT_DAEMON_MIGRATE_SCANNED=100 VMSTAT_COMPACT_DAEMON_MIGRATE_SCANNED value\n * @property {number} VMSTAT_NR_FASTRPC=101 VMSTAT_NR_FASTRPC value\n * @property {number} VMSTAT_NR_INDIRECTLY_RECLAIMABLE=102 VMSTAT_NR_INDIRECTLY_RECLAIMABLE value\n * @property {number} VMSTAT_NR_ION_HEAP_POOL=103 VMSTAT_NR_ION_HEAP_POOL value\n * @property {number} VMSTAT_NR_KERNEL_MISC_RECLAIMABLE=104 VMSTAT_NR_KERNEL_MISC_RECLAIMABLE value\n * @property {number} VMSTAT_NR_SHADOW_CALL_STACK_BYTES=105 VMSTAT_NR_SHADOW_CALL_STACK_BYTES value\n * @property {number} VMSTAT_NR_SHMEM_HUGEPAGES=106 VMSTAT_NR_SHMEM_HUGEPAGES value\n * @property {number} VMSTAT_NR_SHMEM_PMDMAPPED=107 VMSTAT_NR_SHMEM_PMDMAPPED value\n * @property {number} VMSTAT_NR_UNRECLAIMABLE_PAGES=108 VMSTAT_NR_UNRECLAIMABLE_PAGES value\n * @property {number} VMSTAT_NR_ZONE_ACTIVE_ANON=109 VMSTAT_NR_ZONE_ACTIVE_ANON value\n * @property {number} VMSTAT_NR_ZONE_ACTIVE_FILE=110 VMSTAT_NR_ZONE_ACTIVE_FILE value\n * @property {number} VMSTAT_NR_ZONE_INACTIVE_ANON=111 VMSTAT_NR_ZONE_INACTIVE_ANON value\n * @property {number} VMSTAT_NR_ZONE_INACTIVE_FILE=112 VMSTAT_NR_ZONE_INACTIVE_FILE value\n * @property {number} VMSTAT_NR_ZONE_UNEVICTABLE=113 VMSTAT_NR_ZONE_UNEVICTABLE value\n * @property {number} VMSTAT_NR_ZONE_WRITE_PENDING=114 VMSTAT_NR_ZONE_WRITE_PENDING value\n * @property {number} VMSTAT_OOM_KILL=115 VMSTAT_OOM_KILL value\n * @property {number} VMSTAT_PGLAZYFREE=116 VMSTAT_PGLAZYFREE value\n * @property {number} VMSTAT_PGLAZYFREED=117 VMSTAT_PGLAZYFREED value\n * @property {number} VMSTAT_PGREFILL=118 VMSTAT_PGREFILL value\n * @property {number} VMSTAT_PGSCAN_DIRECT=119 VMSTAT_PGSCAN_DIRECT value\n * @property {number} VMSTAT_PGSCAN_KSWAPD=120 VMSTAT_PGSCAN_KSWAPD value\n * @property {number} VMSTAT_PGSKIP_DMA=121 VMSTAT_PGSKIP_DMA value\n * @property {number} VMSTAT_PGSKIP_MOVABLE=122 VMSTAT_PGSKIP_MOVABLE value\n * @property {number} VMSTAT_PGSKIP_NORMAL=123 VMSTAT_PGSKIP_NORMAL value\n * @property {number} VMSTAT_PGSTEAL_DIRECT=124 VMSTAT_PGSTEAL_DIRECT value\n * @property {number} VMSTAT_PGSTEAL_KSWAPD=125 VMSTAT_PGSTEAL_KSWAPD value\n * @property {number} VMSTAT_SWAP_RA=126 VMSTAT_SWAP_RA value\n * @property {number} VMSTAT_SWAP_RA_HIT=127 VMSTAT_SWAP_RA_HIT value\n * @property {number} VMSTAT_WORKINGSET_RESTORE=128 VMSTAT_WORKINGSET_RESTORE value\n */\n protos.VmstatCounters = (function() {\n var valuesById = {}, values = Object.create(valuesById);\n values[valuesById[0] = \"VMSTAT_UNSPECIFIED\"] = 0;\n values[valuesById[1] = \"VMSTAT_NR_FREE_PAGES\"] = 1;\n values[valuesById[2] = \"VMSTAT_NR_ALLOC_BATCH\"] = 2;\n values[valuesById[3] = \"VMSTAT_NR_INACTIVE_ANON\"] = 3;\n values[valuesById[4] = \"VMSTAT_NR_ACTIVE_ANON\"] = 4;\n values[valuesById[5] = \"VMSTAT_NR_INACTIVE_FILE\"] = 5;\n values[valuesById[6] = \"VMSTAT_NR_ACTIVE_FILE\"] = 6;\n values[valuesById[7] = \"VMSTAT_NR_UNEVICTABLE\"] = 7;\n values[valuesById[8] = \"VMSTAT_NR_MLOCK\"] = 8;\n values[valuesById[9] = \"VMSTAT_NR_ANON_PAGES\"] = 9;\n values[valuesById[10] = \"VMSTAT_NR_MAPPED\"] = 10;\n values[valuesById[11] = \"VMSTAT_NR_FILE_PAGES\"] = 11;\n values[valuesById[12] = \"VMSTAT_NR_DIRTY\"] = 12;\n values[valuesById[13] = \"VMSTAT_NR_WRITEBACK\"] = 13;\n values[valuesById[14] = \"VMSTAT_NR_SLAB_RECLAIMABLE\"] = 14;\n values[valuesById[15] = \"VMSTAT_NR_SLAB_UNRECLAIMABLE\"] = 15;\n values[valuesById[16] = \"VMSTAT_NR_PAGE_TABLE_PAGES\"] = 16;\n values[valuesById[17] = \"VMSTAT_NR_KERNEL_STACK\"] = 17;\n values[valuesById[18] = \"VMSTAT_NR_OVERHEAD\"] = 18;\n values[valuesById[19] = \"VMSTAT_NR_UNSTABLE\"] = 19;\n values[valuesById[20] = \"VMSTAT_NR_BOUNCE\"] = 20;\n values[valuesById[21] = \"VMSTAT_NR_VMSCAN_WRITE\"] = 21;\n values[valuesById[22] = \"VMSTAT_NR_VMSCAN_IMMEDIATE_RECLAIM\"] = 22;\n values[valuesById[23] = \"VMSTAT_NR_WRITEBACK_TEMP\"] = 23;\n values[valuesById[24] = \"VMSTAT_NR_ISOLATED_ANON\"] = 24;\n values[valuesById[25] = \"VMSTAT_NR_ISOLATED_FILE\"] = 25;\n values[valuesById[26] = \"VMSTAT_NR_SHMEM\"] = 26;\n values[valuesById[27] = \"VMSTAT_NR_DIRTIED\"] = 27;\n values[valuesById[28] = \"VMSTAT_NR_WRITTEN\"] = 28;\n values[valuesById[29] = \"VMSTAT_NR_PAGES_SCANNED\"] = 29;\n values[valuesById[30] = \"VMSTAT_WORKINGSET_REFAULT\"] = 30;\n values[valuesById[31] = \"VMSTAT_WORKINGSET_ACTIVATE\"] = 31;\n values[valuesById[32] = \"VMSTAT_WORKINGSET_NODERECLAIM\"] = 32;\n values[valuesById[33] = \"VMSTAT_NR_ANON_TRANSPARENT_HUGEPAGES\"] = 33;\n values[valuesById[34] = \"VMSTAT_NR_FREE_CMA\"] = 34;\n values[valuesById[35] = \"VMSTAT_NR_SWAPCACHE\"] = 35;\n values[valuesById[36] = \"VMSTAT_NR_DIRTY_THRESHOLD\"] = 36;\n values[valuesById[37] = \"VMSTAT_NR_DIRTY_BACKGROUND_THRESHOLD\"] = 37;\n values[valuesById[38] = \"VMSTAT_PGPGIN\"] = 38;\n values[valuesById[39] = \"VMSTAT_PGPGOUT\"] = 39;\n values[valuesById[40] = \"VMSTAT_PGPGOUTCLEAN\"] = 40;\n values[valuesById[41] = \"VMSTAT_PSWPIN\"] = 41;\n values[valuesById[42] = \"VMSTAT_PSWPOUT\"] = 42;\n values[valuesById[43] = \"VMSTAT_PGALLOC_DMA\"] = 43;\n values[valuesById[44] = \"VMSTAT_PGALLOC_NORMAL\"] = 44;\n values[valuesById[45] = \"VMSTAT_PGALLOC_MOVABLE\"] = 45;\n values[valuesById[46] = \"VMSTAT_PGFREE\"] = 46;\n values[valuesById[47] = \"VMSTAT_PGACTIVATE\"] = 47;\n values[valuesById[48] = \"VMSTAT_PGDEACTIVATE\"] = 48;\n values[valuesById[49] = \"VMSTAT_PGFAULT\"] = 49;\n values[valuesById[50] = \"VMSTAT_PGMAJFAULT\"] = 50;\n values[valuesById[51] = \"VMSTAT_PGREFILL_DMA\"] = 51;\n values[valuesById[52] = \"VMSTAT_PGREFILL_NORMAL\"] = 52;\n values[valuesById[53] = \"VMSTAT_PGREFILL_MOVABLE\"] = 53;\n values[valuesById[54] = \"VMSTAT_PGSTEAL_KSWAPD_DMA\"] = 54;\n values[valuesById[55] = \"VMSTAT_PGSTEAL_KSWAPD_NORMAL\"] = 55;\n values[valuesById[56] = \"VMSTAT_PGSTEAL_KSWAPD_MOVABLE\"] = 56;\n values[valuesById[57] = \"VMSTAT_PGSTEAL_DIRECT_DMA\"] = 57;\n values[valuesById[58] = \"VMSTAT_PGSTEAL_DIRECT_NORMAL\"] = 58;\n values[valuesById[59] = \"VMSTAT_PGSTEAL_DIRECT_MOVABLE\"] = 59;\n values[valuesById[60] = \"VMSTAT_PGSCAN_KSWAPD_DMA\"] = 60;\n values[valuesById[61] = \"VMSTAT_PGSCAN_KSWAPD_NORMAL\"] = 61;\n values[valuesById[62] = \"VMSTAT_PGSCAN_KSWAPD_MOVABLE\"] = 62;\n values[valuesById[63] = \"VMSTAT_PGSCAN_DIRECT_DMA\"] = 63;\n values[valuesById[64] = \"VMSTAT_PGSCAN_DIRECT_NORMAL\"] = 64;\n values[valuesById[65] = \"VMSTAT_PGSCAN_DIRECT_MOVABLE\"] = 65;\n values[valuesById[66] = \"VMSTAT_PGSCAN_DIRECT_THROTTLE\"] = 66;\n values[valuesById[67] = \"VMSTAT_PGINODESTEAL\"] = 67;\n values[valuesById[68] = \"VMSTAT_SLABS_SCANNED\"] = 68;\n values[valuesById[69] = \"VMSTAT_KSWAPD_INODESTEAL\"] = 69;\n values[valuesById[70] = \"VMSTAT_KSWAPD_LOW_WMARK_HIT_QUICKLY\"] = 70;\n values[valuesById[71] = \"VMSTAT_KSWAPD_HIGH_WMARK_HIT_QUICKLY\"] = 71;\n values[valuesById[72] = \"VMSTAT_PAGEOUTRUN\"] = 72;\n values[valuesById[73] = \"VMSTAT_ALLOCSTALL\"] = 73;\n values[valuesById[74] = \"VMSTAT_PGROTATED\"] = 74;\n values[valuesById[75] = \"VMSTAT_DROP_PAGECACHE\"] = 75;\n values[valuesById[76] = \"VMSTAT_DROP_SLAB\"] = 76;\n values[valuesById[77] = \"VMSTAT_PGMIGRATE_SUCCESS\"] = 77;\n values[valuesById[78] = \"VMSTAT_PGMIGRATE_FAIL\"] = 78;\n values[valuesById[79] = \"VMSTAT_COMPACT_MIGRATE_SCANNED\"] = 79;\n values[valuesById[80] = \"VMSTAT_COMPACT_FREE_SCANNED\"] = 80;\n values[valuesById[81] = \"VMSTAT_COMPACT_ISOLATED\"] = 81;\n values[valuesById[82] = \"VMSTAT_COMPACT_STALL\"] = 82;\n values[valuesById[83] = \"VMSTAT_COMPACT_FAIL\"] = 83;\n values[valuesById[84] = \"VMSTAT_COMPACT_SUCCESS\"] = 84;\n values[valuesById[85] = \"VMSTAT_COMPACT_DAEMON_WAKE\"] = 85;\n values[valuesById[86] = \"VMSTAT_UNEVICTABLE_PGS_CULLED\"] = 86;\n values[valuesById[87] = \"VMSTAT_UNEVICTABLE_PGS_SCANNED\"] = 87;\n values[valuesById[88] = \"VMSTAT_UNEVICTABLE_PGS_RESCUED\"] = 88;\n values[valuesById[89] = \"VMSTAT_UNEVICTABLE_PGS_MLOCKED\"] = 89;\n values[valuesById[90] = \"VMSTAT_UNEVICTABLE_PGS_MUNLOCKED\"] = 90;\n values[valuesById[91] = \"VMSTAT_UNEVICTABLE_PGS_CLEARED\"] = 91;\n values[valuesById[92] = \"VMSTAT_UNEVICTABLE_PGS_STRANDED\"] = 92;\n values[valuesById[93] = \"VMSTAT_NR_ZSPAGES\"] = 93;\n values[valuesById[94] = \"VMSTAT_NR_ION_HEAP\"] = 94;\n values[valuesById[95] = \"VMSTAT_NR_GPU_HEAP\"] = 95;\n values[valuesById[96] = \"VMSTAT_ALLOCSTALL_DMA\"] = 96;\n values[valuesById[97] = \"VMSTAT_ALLOCSTALL_MOVABLE\"] = 97;\n values[valuesById[98] = \"VMSTAT_ALLOCSTALL_NORMAL\"] = 98;\n values[valuesById[99] = \"VMSTAT_COMPACT_DAEMON_FREE_SCANNED\"] = 99;\n values[valuesById[100] = \"VMSTAT_COMPACT_DAEMON_MIGRATE_SCANNED\"] = 100;\n values[valuesById[101] = \"VMSTAT_NR_FASTRPC\"] = 101;\n values[valuesById[102] = \"VMSTAT_NR_INDIRECTLY_RECLAIMABLE\"] = 102;\n values[valuesById[103] = \"VMSTAT_NR_ION_HEAP_POOL\"] = 103;\n values[valuesById[104] = \"VMSTAT_NR_KERNEL_MISC_RECLAIMABLE\"] = 104;\n values[valuesById[105] = \"VMSTAT_NR_SHADOW_CALL_STACK_BYTES\"] = 105;\n values[valuesById[106] = \"VMSTAT_NR_SHMEM_HUGEPAGES\"] = 106;\n values[valuesById[107] = \"VMSTAT_NR_SHMEM_PMDMAPPED\"] = 107;\n values[valuesById[108] = \"VMSTAT_NR_UNRECLAIMABLE_PAGES\"] = 108;\n values[valuesById[109] = \"VMSTAT_NR_ZONE_ACTIVE_ANON\"] = 109;\n values[valuesById[110] = \"VMSTAT_NR_ZONE_ACTIVE_FILE\"] = 110;\n values[valuesById[111] = \"VMSTAT_NR_ZONE_INACTIVE_ANON\"] = 111;\n values[valuesById[112] = \"VMSTAT_NR_ZONE_INACTIVE_FILE\"] = 112;\n values[valuesById[113] = \"VMSTAT_NR_ZONE_UNEVICTABLE\"] = 113;\n values[valuesById[114] = \"VMSTAT_NR_ZONE_WRITE_PENDING\"] = 114;\n values[valuesById[115] = \"VMSTAT_OOM_KILL\"] = 115;\n values[valuesById[116] = \"VMSTAT_PGLAZYFREE\"] = 116;\n values[valuesById[117] = \"VMSTAT_PGLAZYFREED\"] = 117;\n values[valuesById[118] = \"VMSTAT_PGREFILL\"] = 118;\n values[valuesById[119] = \"VMSTAT_PGSCAN_DIRECT\"] = 119;\n values[valuesById[120] = \"VMSTAT_PGSCAN_KSWAPD\"] = 120;\n values[valuesById[121] = \"VMSTAT_PGSKIP_DMA\"] = 121;\n values[valuesById[122] = \"VMSTAT_PGSKIP_MOVABLE\"] = 122;\n values[valuesById[123] = \"VMSTAT_PGSKIP_NORMAL\"] = 123;\n values[valuesById[124] = \"VMSTAT_PGSTEAL_DIRECT\"] = 124;\n values[valuesById[125] = \"VMSTAT_PGSTEAL_KSWAPD\"] = 125;\n values[valuesById[126] = \"VMSTAT_SWAP_RA\"] = 126;\n values[valuesById[127] = \"VMSTAT_SWAP_RA_HIT\"] = 127;\n values[valuesById[128] = \"VMSTAT_WORKINGSET_RESTORE\"] = 128;\n return values;\n })();\n\n protos.SysStatsConfig = (function() {\n\n /**\n * Properties of a SysStatsConfig.\n * @memberof perfetto.protos\n * @interface ISysStatsConfig\n * @property {number|null} [meminfoPeriodMs] SysStatsConfig meminfoPeriodMs\n * @property {Array.<perfetto.protos.MeminfoCounters>|null} [meminfoCounters] SysStatsConfig meminfoCounters\n * @property {number|null} [vmstatPeriodMs] SysStatsConfig vmstatPeriodMs\n * @property {Array.<perfetto.protos.VmstatCounters>|null} [vmstatCounters] SysStatsConfig vmstatCounters\n * @property {number|null} [statPeriodMs] SysStatsConfig statPeriodMs\n * @property {Array.<perfetto.protos.SysStatsConfig.StatCounters>|null} [statCounters] SysStatsConfig statCounters\n * @property {number|null} [devfreqPeriodMs] SysStatsConfig devfreqPeriodMs\n */\n\n /**\n * Constructs a new SysStatsConfig.\n * @memberof perfetto.protos\n * @classdesc Represents a SysStatsConfig.\n * @implements ISysStatsConfig\n * @constructor\n * @param {perfetto.protos.ISysStatsConfig=} [properties] Properties to set\n */\n function SysStatsConfig(properties) {\n this.meminfoCounters = [];\n this.vmstatCounters = [];\n this.statCounters = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * SysStatsConfig meminfoPeriodMs.\n * @member {number} meminfoPeriodMs\n * @memberof perfetto.protos.SysStatsConfig\n * @instance\n */\n SysStatsConfig.prototype.meminfoPeriodMs = 0;\n\n /**\n * SysStatsConfig meminfoCounters.\n * @member {Array.<perfetto.protos.MeminfoCounters>} meminfoCounters\n * @memberof perfetto.protos.SysStatsConfig\n * @instance\n */\n SysStatsConfig.prototype.meminfoCounters = $util.emptyArray;\n\n /**\n * SysStatsConfig vmstatPeriodMs.\n * @member {number} vmstatPeriodMs\n * @memberof perfetto.protos.SysStatsConfig\n * @instance\n */\n SysStatsConfig.prototype.vmstatPeriodMs = 0;\n\n /**\n * SysStatsConfig vmstatCounters.\n * @member {Array.<perfetto.protos.VmstatCounters>} vmstatCounters\n * @memberof perfetto.protos.SysStatsConfig\n * @instance\n */\n SysStatsConfig.prototype.vmstatCounters = $util.emptyArray;\n\n /**\n * SysStatsConfig statPeriodMs.\n * @member {number} statPeriodMs\n * @memberof perfetto.protos.SysStatsConfig\n * @instance\n */\n SysStatsConfig.prototype.statPeriodMs = 0;\n\n /**\n * SysStatsConfig statCounters.\n * @member {Array.<perfetto.protos.SysStatsConfig.StatCounters>} statCounters\n * @memberof perfetto.protos.SysStatsConfig\n * @instance\n */\n SysStatsConfig.prototype.statCounters = $util.emptyArray;\n\n /**\n * SysStatsConfig devfreqPeriodMs.\n * @member {number} devfreqPeriodMs\n * @memberof perfetto.protos.SysStatsConfig\n * @instance\n */\n SysStatsConfig.prototype.devfreqPeriodMs = 0;\n\n /**\n * Creates a new SysStatsConfig instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.SysStatsConfig\n * @static\n * @param {perfetto.protos.ISysStatsConfig=} [properties] Properties to set\n * @returns {perfetto.protos.SysStatsConfig} SysStatsConfig instance\n */\n SysStatsConfig.create = function create(properties) {\n return new SysStatsConfig(properties);\n };\n\n /**\n * Encodes the specified SysStatsConfig message. Does not implicitly {@link perfetto.protos.SysStatsConfig.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.SysStatsConfig\n * @static\n * @param {perfetto.protos.ISysStatsConfig} message SysStatsConfig message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n SysStatsConfig.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.meminfoPeriodMs != null && Object.hasOwnProperty.call(message, \"meminfoPeriodMs\"))\n writer.uint32(/* id 1, wireType 0 =*/8).uint32(message.meminfoPeriodMs);\n if (message.meminfoCounters != null && message.meminfoCounters.length)\n for (var i = 0; i < message.meminfoCounters.length; ++i)\n writer.uint32(/* id 2, wireType 0 =*/16).int32(message.meminfoCounters[i]);\n if (message.vmstatPeriodMs != null && Object.hasOwnProperty.call(message, \"vmstatPeriodMs\"))\n writer.uint32(/* id 3, wireType 0 =*/24).uint32(message.vmstatPeriodMs);\n if (message.vmstatCounters != null && message.vmstatCounters.length)\n for (var i = 0; i < message.vmstatCounters.length; ++i)\n writer.uint32(/* id 4, wireType 0 =*/32).int32(message.vmstatCounters[i]);\n if (message.statPeriodMs != null && Object.hasOwnProperty.call(message, \"statPeriodMs\"))\n writer.uint32(/* id 5, wireType 0 =*/40).uint32(message.statPeriodMs);\n if (message.statCounters != null && message.statCounters.length)\n for (var i = 0; i < message.statCounters.length; ++i)\n writer.uint32(/* id 6, wireType 0 =*/48).int32(message.statCounters[i]);\n if (message.devfreqPeriodMs != null && Object.hasOwnProperty.call(message, \"devfreqPeriodMs\"))\n writer.uint32(/* id 7, wireType 0 =*/56).uint32(message.devfreqPeriodMs);\n return writer;\n };\n\n /**\n * Encodes the specified SysStatsConfig message, length delimited. Does not implicitly {@link perfetto.protos.SysStatsConfig.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.SysStatsConfig\n * @static\n * @param {perfetto.protos.ISysStatsConfig} message SysStatsConfig message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n SysStatsConfig.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a SysStatsConfig message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.SysStatsConfig\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.SysStatsConfig} SysStatsConfig\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n SysStatsConfig.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.SysStatsConfig();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.meminfoPeriodMs = reader.uint32();\n break;\n case 2:\n if (!(message.meminfoCounters && message.meminfoCounters.length))\n message.meminfoCounters = [];\n if ((tag & 7) === 2) {\n var end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2)\n message.meminfoCounters.push(reader.int32());\n } else\n message.meminfoCounters.push(reader.int32());\n break;\n case 3:\n message.vmstatPeriodMs = reader.uint32();\n break;\n case 4:\n if (!(message.vmstatCounters && message.vmstatCounters.length))\n message.vmstatCounters = [];\n if ((tag & 7) === 2) {\n var end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2)\n message.vmstatCounters.push(reader.int32());\n } else\n message.vmstatCounters.push(reader.int32());\n break;\n case 5:\n message.statPeriodMs = reader.uint32();\n break;\n case 6:\n if (!(message.statCounters && message.statCounters.length))\n message.statCounters = [];\n if ((tag & 7) === 2) {\n var end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2)\n message.statCounters.push(reader.int32());\n } else\n message.statCounters.push(reader.int32());\n break;\n case 7:\n message.devfreqPeriodMs = reader.uint32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a SysStatsConfig message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.SysStatsConfig\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.SysStatsConfig} SysStatsConfig\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n SysStatsConfig.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a SysStatsConfig message.\n * @function verify\n * @memberof perfetto.protos.SysStatsConfig\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n SysStatsConfig.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.meminfoPeriodMs != null && message.hasOwnProperty(\"meminfoPeriodMs\"))\n if (!$util.isInteger(message.meminfoPeriodMs))\n return \"meminfoPeriodMs: integer expected\";\n if (message.meminfoCounters != null && message.hasOwnProperty(\"meminfoCounters\")) {\n if (!Array.isArray(message.meminfoCounters))\n return \"meminfoCounters: array expected\";\n for (var i = 0; i < message.meminfoCounters.length; ++i)\n switch (message.meminfoCounters[i]) {\n default:\n return \"meminfoCounters: enum value[] expected\";\n case 0:\n case 1:\n case 2:\n case 3:\n case 4:\n case 5:\n case 6:\n case 7:\n case 8:\n case 9:\n case 10:\n case 11:\n case 12:\n case 13:\n case 14:\n case 15:\n case 16:\n case 17:\n case 18:\n case 19:\n case 20:\n case 21:\n case 22:\n case 23:\n case 24:\n case 25:\n case 26:\n case 27:\n case 28:\n case 29:\n case 30:\n case 31:\n case 32:\n case 33:\n break;\n }\n }\n if (message.vmstatPeriodMs != null && message.hasOwnProperty(\"vmstatPeriodMs\"))\n if (!$util.isInteger(message.vmstatPeriodMs))\n return \"vmstatPeriodMs: integer expected\";\n if (message.vmstatCounters != null && message.hasOwnProperty(\"vmstatCounters\")) {\n if (!Array.isArray(message.vmstatCounters))\n return \"vmstatCounters: array expected\";\n for (var i = 0; i < message.vmstatCounters.length; ++i)\n switch (message.vmstatCounters[i]) {\n default:\n return \"vmstatCounters: enum value[] expected\";\n case 0:\n case 1:\n case 2:\n case 3:\n case 4:\n case 5:\n case 6:\n case 7:\n case 8:\n case 9:\n case 10:\n case 11:\n case 12:\n case 13:\n case 14:\n case 15:\n case 16:\n case 17:\n case 18:\n case 19:\n case 20:\n case 21:\n case 22:\n case 23:\n case 24:\n case 25:\n case 26:\n case 27:\n case 28:\n case 29:\n case 30:\n case 31:\n case 32:\n case 33:\n case 34:\n case 35:\n case 36:\n case 37:\n case 38:\n case 39:\n case 40:\n case 41:\n case 42:\n case 43:\n case 44:\n case 45:\n case 46:\n case 47:\n case 48:\n case 49:\n case 50:\n case 51:\n case 52:\n case 53:\n case 54:\n case 55:\n case 56:\n case 57:\n case 58:\n case 59:\n case 60:\n case 61:\n case 62:\n case 63:\n case 64:\n case 65:\n case 66:\n case 67:\n case 68:\n case 69:\n case 70:\n case 71:\n case 72:\n case 73:\n case 74:\n case 75:\n case 76:\n case 77:\n case 78:\n case 79:\n case 80:\n case 81:\n case 82:\n case 83:\n case 84:\n case 85:\n case 86:\n case 87:\n case 88:\n case 89:\n case 90:\n case 91:\n case 92:\n case 93:\n case 94:\n case 95:\n case 96:\n case 97:\n case 98:\n case 99:\n case 100:\n case 101:\n case 102:\n case 103:\n case 104:\n case 105:\n case 106:\n case 107:\n case 108:\n case 109:\n case 110:\n case 111:\n case 112:\n case 113:\n case 114:\n case 115:\n case 116:\n case 117:\n case 118:\n case 119:\n case 120:\n case 121:\n case 122:\n case 123:\n case 124:\n case 125:\n case 126:\n case 127:\n case 128:\n break;\n }\n }\n if (message.statPeriodMs != null && message.hasOwnProperty(\"statPeriodMs\"))\n if (!$util.isInteger(message.statPeriodMs))\n return \"statPeriodMs: integer expected\";\n if (message.statCounters != null && message.hasOwnProperty(\"statCounters\")) {\n if (!Array.isArray(message.statCounters))\n return \"statCounters: array expected\";\n for (var i = 0; i < message.statCounters.length; ++i)\n switch (message.statCounters[i]) {\n default:\n return \"statCounters: enum value[] expected\";\n case 0:\n case 1:\n case 2:\n case 3:\n case 4:\n break;\n }\n }\n if (message.devfreqPeriodMs != null && message.hasOwnProperty(\"devfreqPeriodMs\"))\n if (!$util.isInteger(message.devfreqPeriodMs))\n return \"devfreqPeriodMs: integer expected\";\n return null;\n };\n\n /**\n * Creates a SysStatsConfig message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.SysStatsConfig\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.SysStatsConfig} SysStatsConfig\n */\n SysStatsConfig.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.SysStatsConfig)\n return object;\n var message = new $root.perfetto.protos.SysStatsConfig();\n if (object.meminfoPeriodMs != null)\n message.meminfoPeriodMs = object.meminfoPeriodMs >>> 0;\n if (object.meminfoCounters) {\n if (!Array.isArray(object.meminfoCounters))\n throw TypeError(\".perfetto.protos.SysStatsConfig.meminfoCounters: array expected\");\n message.meminfoCounters = [];\n for (var i = 0; i < object.meminfoCounters.length; ++i)\n switch (object.meminfoCounters[i]) {\n default:\n case \"MEMINFO_UNSPECIFIED\":\n case 0:\n message.meminfoCounters[i] = 0;\n break;\n case \"MEMINFO_MEM_TOTAL\":\n case 1:\n message.meminfoCounters[i] = 1;\n break;\n case \"MEMINFO_MEM_FREE\":\n case 2:\n message.meminfoCounters[i] = 2;\n break;\n case \"MEMINFO_MEM_AVAILABLE\":\n case 3:\n message.meminfoCounters[i] = 3;\n break;\n case \"MEMINFO_BUFFERS\":\n case 4:\n message.meminfoCounters[i] = 4;\n break;\n case \"MEMINFO_CACHED\":\n case 5:\n message.meminfoCounters[i] = 5;\n break;\n case \"MEMINFO_SWAP_CACHED\":\n case 6:\n message.meminfoCounters[i] = 6;\n break;\n case \"MEMINFO_ACTIVE\":\n case 7:\n message.meminfoCounters[i] = 7;\n break;\n case \"MEMINFO_INACTIVE\":\n case 8:\n message.meminfoCounters[i] = 8;\n break;\n case \"MEMINFO_ACTIVE_ANON\":\n case 9:\n message.meminfoCounters[i] = 9;\n break;\n case \"MEMINFO_INACTIVE_ANON\":\n case 10:\n message.meminfoCounters[i] = 10;\n break;\n case \"MEMINFO_ACTIVE_FILE\":\n case 11:\n message.meminfoCounters[i] = 11;\n break;\n case \"MEMINFO_INACTIVE_FILE\":\n case 12:\n message.meminfoCounters[i] = 12;\n break;\n case \"MEMINFO_UNEVICTABLE\":\n case 13:\n message.meminfoCounters[i] = 13;\n break;\n case \"MEMINFO_MLOCKED\":\n case 14:\n message.meminfoCounters[i] = 14;\n break;\n case \"MEMINFO_SWAP_TOTAL\":\n case 15:\n message.meminfoCounters[i] = 15;\n break;\n case \"MEMINFO_SWAP_FREE\":\n case 16:\n message.meminfoCounters[i] = 16;\n break;\n case \"MEMINFO_DIRTY\":\n case 17:\n message.meminfoCounters[i] = 17;\n break;\n case \"MEMINFO_WRITEBACK\":\n case 18:\n message.meminfoCounters[i] = 18;\n break;\n case \"MEMINFO_ANON_PAGES\":\n case 19:\n message.meminfoCounters[i] = 19;\n break;\n case \"MEMINFO_MAPPED\":\n case 20:\n message.meminfoCounters[i] = 20;\n break;\n case \"MEMINFO_SHMEM\":\n case 21:\n message.meminfoCounters[i] = 21;\n break;\n case \"MEMINFO_SLAB\":\n case 22:\n message.meminfoCounters[i] = 22;\n break;\n case \"MEMINFO_SLAB_RECLAIMABLE\":\n case 23:\n message.meminfoCounters[i] = 23;\n break;\n case \"MEMINFO_SLAB_UNRECLAIMABLE\":\n case 24:\n message.meminfoCounters[i] = 24;\n break;\n case \"MEMINFO_KERNEL_STACK\":\n case 25:\n message.meminfoCounters[i] = 25;\n break;\n case \"MEMINFO_PAGE_TABLES\":\n case 26:\n message.meminfoCounters[i] = 26;\n break;\n case \"MEMINFO_COMMIT_LIMIT\":\n case 27:\n message.meminfoCounters[i] = 27;\n break;\n case \"MEMINFO_COMMITED_AS\":\n case 28:\n message.meminfoCounters[i] = 28;\n break;\n case \"MEMINFO_VMALLOC_TOTAL\":\n case 29:\n message.meminfoCounters[i] = 29;\n break;\n case \"MEMINFO_VMALLOC_USED\":\n case 30:\n message.meminfoCounters[i] = 30;\n break;\n case \"MEMINFO_VMALLOC_CHUNK\":\n case 31:\n message.meminfoCounters[i] = 31;\n break;\n case \"MEMINFO_CMA_TOTAL\":\n case 32:\n message.meminfoCounters[i] = 32;\n break;\n case \"MEMINFO_CMA_FREE\":\n case 33:\n message.meminfoCounters[i] = 33;\n break;\n }\n }\n if (object.vmstatPeriodMs != null)\n message.vmstatPeriodMs = object.vmstatPeriodMs >>> 0;\n if (object.vmstatCounters) {\n if (!Array.isArray(object.vmstatCounters))\n throw TypeError(\".perfetto.protos.SysStatsConfig.vmstatCounters: array expected\");\n message.vmstatCounters = [];\n for (var i = 0; i < object.vmstatCounters.length; ++i)\n switch (object.vmstatCounters[i]) {\n default:\n case \"VMSTAT_UNSPECIFIED\":\n case 0:\n message.vmstatCounters[i] = 0;\n break;\n case \"VMSTAT_NR_FREE_PAGES\":\n case 1:\n message.vmstatCounters[i] = 1;\n break;\n case \"VMSTAT_NR_ALLOC_BATCH\":\n case 2:\n message.vmstatCounters[i] = 2;\n break;\n case \"VMSTAT_NR_INACTIVE_ANON\":\n case 3:\n message.vmstatCounters[i] = 3;\n break;\n case \"VMSTAT_NR_ACTIVE_ANON\":\n case 4:\n message.vmstatCounters[i] = 4;\n break;\n case \"VMSTAT_NR_INACTIVE_FILE\":\n case 5:\n message.vmstatCounters[i] = 5;\n break;\n case \"VMSTAT_NR_ACTIVE_FILE\":\n case 6:\n message.vmstatCounters[i] = 6;\n break;\n case \"VMSTAT_NR_UNEVICTABLE\":\n case 7:\n message.vmstatCounters[i] = 7;\n break;\n case \"VMSTAT_NR_MLOCK\":\n case 8:\n message.vmstatCounters[i] = 8;\n break;\n case \"VMSTAT_NR_ANON_PAGES\":\n case 9:\n message.vmstatCounters[i] = 9;\n break;\n case \"VMSTAT_NR_MAPPED\":\n case 10:\n message.vmstatCounters[i] = 10;\n break;\n case \"VMSTAT_NR_FILE_PAGES\":\n case 11:\n message.vmstatCounters[i] = 11;\n break;\n case \"VMSTAT_NR_DIRTY\":\n case 12:\n message.vmstatCounters[i] = 12;\n break;\n case \"VMSTAT_NR_WRITEBACK\":\n case 13:\n message.vmstatCounters[i] = 13;\n break;\n case \"VMSTAT_NR_SLAB_RECLAIMABLE\":\n case 14:\n message.vmstatCounters[i] = 14;\n break;\n case \"VMSTAT_NR_SLAB_UNRECLAIMABLE\":\n case 15:\n message.vmstatCounters[i] = 15;\n break;\n case \"VMSTAT_NR_PAGE_TABLE_PAGES\":\n case 16:\n message.vmstatCounters[i] = 16;\n break;\n case \"VMSTAT_NR_KERNEL_STACK\":\n case 17:\n message.vmstatCounters[i] = 17;\n break;\n case \"VMSTAT_NR_OVERHEAD\":\n case 18:\n message.vmstatCounters[i] = 18;\n break;\n case \"VMSTAT_NR_UNSTABLE\":\n case 19:\n message.vmstatCounters[i] = 19;\n break;\n case \"VMSTAT_NR_BOUNCE\":\n case 20:\n message.vmstatCounters[i] = 20;\n break;\n case \"VMSTAT_NR_VMSCAN_WRITE\":\n case 21:\n message.vmstatCounters[i] = 21;\n break;\n case \"VMSTAT_NR_VMSCAN_IMMEDIATE_RECLAIM\":\n case 22:\n message.vmstatCounters[i] = 22;\n break;\n case \"VMSTAT_NR_WRITEBACK_TEMP\":\n case 23:\n message.vmstatCounters[i] = 23;\n break;\n case \"VMSTAT_NR_ISOLATED_ANON\":\n case 24:\n message.vmstatCounters[i] = 24;\n break;\n case \"VMSTAT_NR_ISOLATED_FILE\":\n case 25:\n message.vmstatCounters[i] = 25;\n break;\n case \"VMSTAT_NR_SHMEM\":\n case 26:\n message.vmstatCounters[i] = 26;\n break;\n case \"VMSTAT_NR_DIRTIED\":\n case 27:\n message.vmstatCounters[i] = 27;\n break;\n case \"VMSTAT_NR_WRITTEN\":\n case 28:\n message.vmstatCounters[i] = 28;\n break;\n case \"VMSTAT_NR_PAGES_SCANNED\":\n case 29:\n message.vmstatCounters[i] = 29;\n break;\n case \"VMSTAT_WORKINGSET_REFAULT\":\n case 30:\n message.vmstatCounters[i] = 30;\n break;\n case \"VMSTAT_WORKINGSET_ACTIVATE\":\n case 31:\n message.vmstatCounters[i] = 31;\n break;\n case \"VMSTAT_WORKINGSET_NODERECLAIM\":\n case 32:\n message.vmstatCounters[i] = 32;\n break;\n case \"VMSTAT_NR_ANON_TRANSPARENT_HUGEPAGES\":\n case 33:\n message.vmstatCounters[i] = 33;\n break;\n case \"VMSTAT_NR_FREE_CMA\":\n case 34:\n message.vmstatCounters[i] = 34;\n break;\n case \"VMSTAT_NR_SWAPCACHE\":\n case 35:\n message.vmstatCounters[i] = 35;\n break;\n case \"VMSTAT_NR_DIRTY_THRESHOLD\":\n case 36:\n message.vmstatCounters[i] = 36;\n break;\n case \"VMSTAT_NR_DIRTY_BACKGROUND_THRESHOLD\":\n case 37:\n message.vmstatCounters[i] = 37;\n break;\n case \"VMSTAT_PGPGIN\":\n case 38:\n message.vmstatCounters[i] = 38;\n break;\n case \"VMSTAT_PGPGOUT\":\n case 39:\n message.vmstatCounters[i] = 39;\n break;\n case \"VMSTAT_PGPGOUTCLEAN\":\n case 40:\n message.vmstatCounters[i] = 40;\n break;\n case \"VMSTAT_PSWPIN\":\n case 41:\n message.vmstatCounters[i] = 41;\n break;\n case \"VMSTAT_PSWPOUT\":\n case 42:\n message.vmstatCounters[i] = 42;\n break;\n case \"VMSTAT_PGALLOC_DMA\":\n case 43:\n message.vmstatCounters[i] = 43;\n break;\n case \"VMSTAT_PGALLOC_NORMAL\":\n case 44:\n message.vmstatCounters[i] = 44;\n break;\n case \"VMSTAT_PGALLOC_MOVABLE\":\n case 45:\n message.vmstatCounters[i] = 45;\n break;\n case \"VMSTAT_PGFREE\":\n case 46:\n message.vmstatCounters[i] = 46;\n break;\n case \"VMSTAT_PGACTIVATE\":\n case 47:\n message.vmstatCounters[i] = 47;\n break;\n case \"VMSTAT_PGDEACTIVATE\":\n case 48:\n message.vmstatCounters[i] = 48;\n break;\n case \"VMSTAT_PGFAULT\":\n case 49:\n message.vmstatCounters[i] = 49;\n break;\n case \"VMSTAT_PGMAJFAULT\":\n case 50:\n message.vmstatCounters[i] = 50;\n break;\n case \"VMSTAT_PGREFILL_DMA\":\n case 51:\n message.vmstatCounters[i] = 51;\n break;\n case \"VMSTAT_PGREFILL_NORMAL\":\n case 52:\n message.vmstatCounters[i] = 52;\n break;\n case \"VMSTAT_PGREFILL_MOVABLE\":\n case 53:\n message.vmstatCounters[i] = 53;\n break;\n case \"VMSTAT_PGSTEAL_KSWAPD_DMA\":\n case 54:\n message.vmstatCounters[i] = 54;\n break;\n case \"VMSTAT_PGSTEAL_KSWAPD_NORMAL\":\n case 55:\n message.vmstatCounters[i] = 55;\n break;\n case \"VMSTAT_PGSTEAL_KSWAPD_MOVABLE\":\n case 56:\n message.vmstatCounters[i] = 56;\n break;\n case \"VMSTAT_PGSTEAL_DIRECT_DMA\":\n case 57:\n message.vmstatCounters[i] = 57;\n break;\n case \"VMSTAT_PGSTEAL_DIRECT_NORMAL\":\n case 58:\n message.vmstatCounters[i] = 58;\n break;\n case \"VMSTAT_PGSTEAL_DIRECT_MOVABLE\":\n case 59:\n message.vmstatCounters[i] = 59;\n break;\n case \"VMSTAT_PGSCAN_KSWAPD_DMA\":\n case 60:\n message.vmstatCounters[i] = 60;\n break;\n case \"VMSTAT_PGSCAN_KSWAPD_NORMAL\":\n case 61:\n message.vmstatCounters[i] = 61;\n break;\n case \"VMSTAT_PGSCAN_KSWAPD_MOVABLE\":\n case 62:\n message.vmstatCounters[i] = 62;\n break;\n case \"VMSTAT_PGSCAN_DIRECT_DMA\":\n case 63:\n message.vmstatCounters[i] = 63;\n break;\n case \"VMSTAT_PGSCAN_DIRECT_NORMAL\":\n case 64:\n message.vmstatCounters[i] = 64;\n break;\n case \"VMSTAT_PGSCAN_DIRECT_MOVABLE\":\n case 65:\n message.vmstatCounters[i] = 65;\n break;\n case \"VMSTAT_PGSCAN_DIRECT_THROTTLE\":\n case 66:\n message.vmstatCounters[i] = 66;\n break;\n case \"VMSTAT_PGINODESTEAL\":\n case 67:\n message.vmstatCounters[i] = 67;\n break;\n case \"VMSTAT_SLABS_SCANNED\":\n case 68:\n message.vmstatCounters[i] = 68;\n break;\n case \"VMSTAT_KSWAPD_INODESTEAL\":\n case 69:\n message.vmstatCounters[i] = 69;\n break;\n case \"VMSTAT_KSWAPD_LOW_WMARK_HIT_QUICKLY\":\n case 70:\n message.vmstatCounters[i] = 70;\n break;\n case \"VMSTAT_KSWAPD_HIGH_WMARK_HIT_QUICKLY\":\n case 71:\n message.vmstatCounters[i] = 71;\n break;\n case \"VMSTAT_PAGEOUTRUN\":\n case 72:\n message.vmstatCounters[i] = 72;\n break;\n case \"VMSTAT_ALLOCSTALL\":\n case 73:\n message.vmstatCounters[i] = 73;\n break;\n case \"VMSTAT_PGROTATED\":\n case 74:\n message.vmstatCounters[i] = 74;\n break;\n case \"VMSTAT_DROP_PAGECACHE\":\n case 75:\n message.vmstatCounters[i] = 75;\n break;\n case \"VMSTAT_DROP_SLAB\":\n case 76:\n message.vmstatCounters[i] = 76;\n break;\n case \"VMSTAT_PGMIGRATE_SUCCESS\":\n case 77:\n message.vmstatCounters[i] = 77;\n break;\n case \"VMSTAT_PGMIGRATE_FAIL\":\n case 78:\n message.vmstatCounters[i] = 78;\n break;\n case \"VMSTAT_COMPACT_MIGRATE_SCANNED\":\n case 79:\n message.vmstatCounters[i] = 79;\n break;\n case \"VMSTAT_COMPACT_FREE_SCANNED\":\n case 80:\n message.vmstatCounters[i] = 80;\n break;\n case \"VMSTAT_COMPACT_ISOLATED\":\n case 81:\n message.vmstatCounters[i] = 81;\n break;\n case \"VMSTAT_COMPACT_STALL\":\n case 82:\n message.vmstatCounters[i] = 82;\n break;\n case \"VMSTAT_COMPACT_FAIL\":\n case 83:\n message.vmstatCounters[i] = 83;\n break;\n case \"VMSTAT_COMPACT_SUCCESS\":\n case 84:\n message.vmstatCounters[i] = 84;\n break;\n case \"VMSTAT_COMPACT_DAEMON_WAKE\":\n case 85:\n message.vmstatCounters[i] = 85;\n break;\n case \"VMSTAT_UNEVICTABLE_PGS_CULLED\":\n case 86:\n message.vmstatCounters[i] = 86;\n break;\n case \"VMSTAT_UNEVICTABLE_PGS_SCANNED\":\n case 87:\n message.vmstatCounters[i] = 87;\n break;\n case \"VMSTAT_UNEVICTABLE_PGS_RESCUED\":\n case 88:\n message.vmstatCounters[i] = 88;\n break;\n case \"VMSTAT_UNEVICTABLE_PGS_MLOCKED\":\n case 89:\n message.vmstatCounters[i] = 89;\n break;\n case \"VMSTAT_UNEVICTABLE_PGS_MUNLOCKED\":\n case 90:\n message.vmstatCounters[i] = 90;\n break;\n case \"VMSTAT_UNEVICTABLE_PGS_CLEARED\":\n case 91:\n message.vmstatCounters[i] = 91;\n break;\n case \"VMSTAT_UNEVICTABLE_PGS_STRANDED\":\n case 92:\n message.vmstatCounters[i] = 92;\n break;\n case \"VMSTAT_NR_ZSPAGES\":\n case 93:\n message.vmstatCounters[i] = 93;\n break;\n case \"VMSTAT_NR_ION_HEAP\":\n case 94:\n message.vmstatCounters[i] = 94;\n break;\n case \"VMSTAT_NR_GPU_HEAP\":\n case 95:\n message.vmstatCounters[i] = 95;\n break;\n case \"VMSTAT_ALLOCSTALL_DMA\":\n case 96:\n message.vmstatCounters[i] = 96;\n break;\n case \"VMSTAT_ALLOCSTALL_MOVABLE\":\n case 97:\n message.vmstatCounters[i] = 97;\n break;\n case \"VMSTAT_ALLOCSTALL_NORMAL\":\n case 98:\n message.vmstatCounters[i] = 98;\n break;\n case \"VMSTAT_COMPACT_DAEMON_FREE_SCANNED\":\n case 99:\n message.vmstatCounters[i] = 99;\n break;\n case \"VMSTAT_COMPACT_DAEMON_MIGRATE_SCANNED\":\n case 100:\n message.vmstatCounters[i] = 100;\n break;\n case \"VMSTAT_NR_FASTRPC\":\n case 101:\n message.vmstatCounters[i] = 101;\n break;\n case \"VMSTAT_NR_INDIRECTLY_RECLAIMABLE\":\n case 102:\n message.vmstatCounters[i] = 102;\n break;\n case \"VMSTAT_NR_ION_HEAP_POOL\":\n case 103:\n message.vmstatCounters[i] = 103;\n break;\n case \"VMSTAT_NR_KERNEL_MISC_RECLAIMABLE\":\n case 104:\n message.vmstatCounters[i] = 104;\n break;\n case \"VMSTAT_NR_SHADOW_CALL_STACK_BYTES\":\n case 105:\n message.vmstatCounters[i] = 105;\n break;\n case \"VMSTAT_NR_SHMEM_HUGEPAGES\":\n case 106:\n message.vmstatCounters[i] = 106;\n break;\n case \"VMSTAT_NR_SHMEM_PMDMAPPED\":\n case 107:\n message.vmstatCounters[i] = 107;\n break;\n case \"VMSTAT_NR_UNRECLAIMABLE_PAGES\":\n case 108:\n message.vmstatCounters[i] = 108;\n break;\n case \"VMSTAT_NR_ZONE_ACTIVE_ANON\":\n case 109:\n message.vmstatCounters[i] = 109;\n break;\n case \"VMSTAT_NR_ZONE_ACTIVE_FILE\":\n case 110:\n message.vmstatCounters[i] = 110;\n break;\n case \"VMSTAT_NR_ZONE_INACTIVE_ANON\":\n case 111:\n message.vmstatCounters[i] = 111;\n break;\n case \"VMSTAT_NR_ZONE_INACTIVE_FILE\":\n case 112:\n message.vmstatCounters[i] = 112;\n break;\n case \"VMSTAT_NR_ZONE_UNEVICTABLE\":\n case 113:\n message.vmstatCounters[i] = 113;\n break;\n case \"VMSTAT_NR_ZONE_WRITE_PENDING\":\n case 114:\n message.vmstatCounters[i] = 114;\n break;\n case \"VMSTAT_OOM_KILL\":\n case 115:\n message.vmstatCounters[i] = 115;\n break;\n case \"VMSTAT_PGLAZYFREE\":\n case 116:\n message.vmstatCounters[i] = 116;\n break;\n case \"VMSTAT_PGLAZYFREED\":\n case 117:\n message.vmstatCounters[i] = 117;\n break;\n case \"VMSTAT_PGREFILL\":\n case 118:\n message.vmstatCounters[i] = 118;\n break;\n case \"VMSTAT_PGSCAN_DIRECT\":\n case 119:\n message.vmstatCounters[i] = 119;\n break;\n case \"VMSTAT_PGSCAN_KSWAPD\":\n case 120:\n message.vmstatCounters[i] = 120;\n break;\n case \"VMSTAT_PGSKIP_DMA\":\n case 121:\n message.vmstatCounters[i] = 121;\n break;\n case \"VMSTAT_PGSKIP_MOVABLE\":\n case 122:\n message.vmstatCounters[i] = 122;\n break;\n case \"VMSTAT_PGSKIP_NORMAL\":\n case 123:\n message.vmstatCounters[i] = 123;\n break;\n case \"VMSTAT_PGSTEAL_DIRECT\":\n case 124:\n message.vmstatCounters[i] = 124;\n break;\n case \"VMSTAT_PGSTEAL_KSWAPD\":\n case 125:\n message.vmstatCounters[i] = 125;\n break;\n case \"VMSTAT_SWAP_RA\":\n case 126:\n message.vmstatCounters[i] = 126;\n break;\n case \"VMSTAT_SWAP_RA_HIT\":\n case 127:\n message.vmstatCounters[i] = 127;\n break;\n case \"VMSTAT_WORKINGSET_RESTORE\":\n case 128:\n message.vmstatCounters[i] = 128;\n break;\n }\n }\n if (object.statPeriodMs != null)\n message.statPeriodMs = object.statPeriodMs >>> 0;\n if (object.statCounters) {\n if (!Array.isArray(object.statCounters))\n throw TypeError(\".perfetto.protos.SysStatsConfig.statCounters: array expected\");\n message.statCounters = [];\n for (var i = 0; i < object.statCounters.length; ++i)\n switch (object.statCounters[i]) {\n default:\n case \"STAT_UNSPECIFIED\":\n case 0:\n message.statCounters[i] = 0;\n break;\n case \"STAT_CPU_TIMES\":\n case 1:\n message.statCounters[i] = 1;\n break;\n case \"STAT_IRQ_COUNTS\":\n case 2:\n message.statCounters[i] = 2;\n break;\n case \"STAT_SOFTIRQ_COUNTS\":\n case 3:\n message.statCounters[i] = 3;\n break;\n case \"STAT_FORK_COUNT\":\n case 4:\n message.statCounters[i] = 4;\n break;\n }\n }\n if (object.devfreqPeriodMs != null)\n message.devfreqPeriodMs = object.devfreqPeriodMs >>> 0;\n return message;\n };\n\n /**\n * Creates a plain object from a SysStatsConfig message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.SysStatsConfig\n * @static\n * @param {perfetto.protos.SysStatsConfig} message SysStatsConfig\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n SysStatsConfig.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults) {\n object.meminfoCounters = [];\n object.vmstatCounters = [];\n object.statCounters = [];\n }\n if (options.defaults) {\n object.meminfoPeriodMs = 0;\n object.vmstatPeriodMs = 0;\n object.statPeriodMs = 0;\n object.devfreqPeriodMs = 0;\n }\n if (message.meminfoPeriodMs != null && message.hasOwnProperty(\"meminfoPeriodMs\"))\n object.meminfoPeriodMs = message.meminfoPeriodMs;\n if (message.meminfoCounters && message.meminfoCounters.length) {\n object.meminfoCounters = [];\n for (var j = 0; j < message.meminfoCounters.length; ++j)\n object.meminfoCounters[j] = options.enums === String ? $root.perfetto.protos.MeminfoCounters[message.meminfoCounters[j]] : message.meminfoCounters[j];\n }\n if (message.vmstatPeriodMs != null && message.hasOwnProperty(\"vmstatPeriodMs\"))\n object.vmstatPeriodMs = message.vmstatPeriodMs;\n if (message.vmstatCounters && message.vmstatCounters.length) {\n object.vmstatCounters = [];\n for (var j = 0; j < message.vmstatCounters.length; ++j)\n object.vmstatCounters[j] = options.enums === String ? $root.perfetto.protos.VmstatCounters[message.vmstatCounters[j]] : message.vmstatCounters[j];\n }\n if (message.statPeriodMs != null && message.hasOwnProperty(\"statPeriodMs\"))\n object.statPeriodMs = message.statPeriodMs;\n if (message.statCounters && message.statCounters.length) {\n object.statCounters = [];\n for (var j = 0; j < message.statCounters.length; ++j)\n object.statCounters[j] = options.enums === String ? $root.perfetto.protos.SysStatsConfig.StatCounters[message.statCounters[j]] : message.statCounters[j];\n }\n if (message.devfreqPeriodMs != null && message.hasOwnProperty(\"devfreqPeriodMs\"))\n object.devfreqPeriodMs = message.devfreqPeriodMs;\n return object;\n };\n\n /**\n * Converts this SysStatsConfig to JSON.\n * @function toJSON\n * @memberof perfetto.protos.SysStatsConfig\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n SysStatsConfig.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n /**\n * StatCounters enum.\n * @name perfetto.protos.SysStatsConfig.StatCounters\n * @enum {number}\n * @property {number} STAT_UNSPECIFIED=0 STAT_UNSPECIFIED value\n * @property {number} STAT_CPU_TIMES=1 STAT_CPU_TIMES value\n * @property {number} STAT_IRQ_COUNTS=2 STAT_IRQ_COUNTS value\n * @property {number} STAT_SOFTIRQ_COUNTS=3 STAT_SOFTIRQ_COUNTS value\n * @property {number} STAT_FORK_COUNT=4 STAT_FORK_COUNT value\n */\n SysStatsConfig.StatCounters = (function() {\n var valuesById = {}, values = Object.create(valuesById);\n values[valuesById[0] = \"STAT_UNSPECIFIED\"] = 0;\n values[valuesById[1] = \"STAT_CPU_TIMES\"] = 1;\n values[valuesById[2] = \"STAT_IRQ_COUNTS\"] = 2;\n values[valuesById[3] = \"STAT_SOFTIRQ_COUNTS\"] = 3;\n values[valuesById[4] = \"STAT_FORK_COUNT\"] = 4;\n return values;\n })();\n\n return SysStatsConfig;\n })();\n\n protos.TestConfig = (function() {\n\n /**\n * Properties of a TestConfig.\n * @memberof perfetto.protos\n * @interface ITestConfig\n * @property {number|null} [messageCount] TestConfig messageCount\n * @property {number|null} [maxMessagesPerSecond] TestConfig maxMessagesPerSecond\n * @property {number|null} [seed] TestConfig seed\n * @property {number|null} [messageSize] TestConfig messageSize\n * @property {boolean|null} [sendBatchOnRegister] TestConfig sendBatchOnRegister\n * @property {perfetto.protos.TestConfig.IDummyFields|null} [dummyFields] TestConfig dummyFields\n */\n\n /**\n * Constructs a new TestConfig.\n * @memberof perfetto.protos\n * @classdesc Represents a TestConfig.\n * @implements ITestConfig\n * @constructor\n * @param {perfetto.protos.ITestConfig=} [properties] Properties to set\n */\n function TestConfig(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * TestConfig messageCount.\n * @member {number} messageCount\n * @memberof perfetto.protos.TestConfig\n * @instance\n */\n TestConfig.prototype.messageCount = 0;\n\n /**\n * TestConfig maxMessagesPerSecond.\n * @member {number} maxMessagesPerSecond\n * @memberof perfetto.protos.TestConfig\n * @instance\n */\n TestConfig.prototype.maxMessagesPerSecond = 0;\n\n /**\n * TestConfig seed.\n * @member {number} seed\n * @memberof perfetto.protos.TestConfig\n * @instance\n */\n TestConfig.prototype.seed = 0;\n\n /**\n * TestConfig messageSize.\n * @member {number} messageSize\n * @memberof perfetto.protos.TestConfig\n * @instance\n */\n TestConfig.prototype.messageSize = 0;\n\n /**\n * TestConfig sendBatchOnRegister.\n * @member {boolean} sendBatchOnRegister\n * @memberof perfetto.protos.TestConfig\n * @instance\n */\n TestConfig.prototype.sendBatchOnRegister = false;\n\n /**\n * TestConfig dummyFields.\n * @member {perfetto.protos.TestConfig.IDummyFields|null|undefined} dummyFields\n * @memberof perfetto.protos.TestConfig\n * @instance\n */\n TestConfig.prototype.dummyFields = null;\n\n /**\n * Creates a new TestConfig instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.TestConfig\n * @static\n * @param {perfetto.protos.ITestConfig=} [properties] Properties to set\n * @returns {perfetto.protos.TestConfig} TestConfig instance\n */\n TestConfig.create = function create(properties) {\n return new TestConfig(properties);\n };\n\n /**\n * Encodes the specified TestConfig message. Does not implicitly {@link perfetto.protos.TestConfig.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.TestConfig\n * @static\n * @param {perfetto.protos.ITestConfig} message TestConfig message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n TestConfig.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.messageCount != null && Object.hasOwnProperty.call(message, \"messageCount\"))\n writer.uint32(/* id 1, wireType 0 =*/8).uint32(message.messageCount);\n if (message.maxMessagesPerSecond != null && Object.hasOwnProperty.call(message, \"maxMessagesPerSecond\"))\n writer.uint32(/* id 2, wireType 0 =*/16).uint32(message.maxMessagesPerSecond);\n if (message.seed != null && Object.hasOwnProperty.call(message, \"seed\"))\n writer.uint32(/* id 3, wireType 0 =*/24).uint32(message.seed);\n if (message.messageSize != null && Object.hasOwnProperty.call(message, \"messageSize\"))\n writer.uint32(/* id 4, wireType 0 =*/32).uint32(message.messageSize);\n if (message.sendBatchOnRegister != null && Object.hasOwnProperty.call(message, \"sendBatchOnRegister\"))\n writer.uint32(/* id 5, wireType 0 =*/40).bool(message.sendBatchOnRegister);\n if (message.dummyFields != null && Object.hasOwnProperty.call(message, \"dummyFields\"))\n $root.perfetto.protos.TestConfig.DummyFields.encode(message.dummyFields, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified TestConfig message, length delimited. Does not implicitly {@link perfetto.protos.TestConfig.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.TestConfig\n * @static\n * @param {perfetto.protos.ITestConfig} message TestConfig message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n TestConfig.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a TestConfig message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.TestConfig\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.TestConfig} TestConfig\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n TestConfig.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.TestConfig();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.messageCount = reader.uint32();\n break;\n case 2:\n message.maxMessagesPerSecond = reader.uint32();\n break;\n case 3:\n message.seed = reader.uint32();\n break;\n case 4:\n message.messageSize = reader.uint32();\n break;\n case 5:\n message.sendBatchOnRegister = reader.bool();\n break;\n case 6:\n message.dummyFields = $root.perfetto.protos.TestConfig.DummyFields.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a TestConfig message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.TestConfig\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.TestConfig} TestConfig\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n TestConfig.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a TestConfig message.\n * @function verify\n * @memberof perfetto.protos.TestConfig\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n TestConfig.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.messageCount != null && message.hasOwnProperty(\"messageCount\"))\n if (!$util.isInteger(message.messageCount))\n return \"messageCount: integer expected\";\n if (message.maxMessagesPerSecond != null && message.hasOwnProperty(\"maxMessagesPerSecond\"))\n if (!$util.isInteger(message.maxMessagesPerSecond))\n return \"maxMessagesPerSecond: integer expected\";\n if (message.seed != null && message.hasOwnProperty(\"seed\"))\n if (!$util.isInteger(message.seed))\n return \"seed: integer expected\";\n if (message.messageSize != null && message.hasOwnProperty(\"messageSize\"))\n if (!$util.isInteger(message.messageSize))\n return \"messageSize: integer expected\";\n if (message.sendBatchOnRegister != null && message.hasOwnProperty(\"sendBatchOnRegister\"))\n if (typeof message.sendBatchOnRegister !== \"boolean\")\n return \"sendBatchOnRegister: boolean expected\";\n if (message.dummyFields != null && message.hasOwnProperty(\"dummyFields\")) {\n var error = $root.perfetto.protos.TestConfig.DummyFields.verify(message.dummyFields);\n if (error)\n return \"dummyFields.\" + error;\n }\n return null;\n };\n\n /**\n * Creates a TestConfig message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.TestConfig\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.TestConfig} TestConfig\n */\n TestConfig.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.TestConfig)\n return object;\n var message = new $root.perfetto.protos.TestConfig();\n if (object.messageCount != null)\n message.messageCount = object.messageCount >>> 0;\n if (object.maxMessagesPerSecond != null)\n message.maxMessagesPerSecond = object.maxMessagesPerSecond >>> 0;\n if (object.seed != null)\n message.seed = object.seed >>> 0;\n if (object.messageSize != null)\n message.messageSize = object.messageSize >>> 0;\n if (object.sendBatchOnRegister != null)\n message.sendBatchOnRegister = Boolean(object.sendBatchOnRegister);\n if (object.dummyFields != null) {\n if (typeof object.dummyFields !== \"object\")\n throw TypeError(\".perfetto.protos.TestConfig.dummyFields: object expected\");\n message.dummyFields = $root.perfetto.protos.TestConfig.DummyFields.fromObject(object.dummyFields);\n }\n return message;\n };\n\n /**\n * Creates a plain object from a TestConfig message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.TestConfig\n * @static\n * @param {perfetto.protos.TestConfig} message TestConfig\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n TestConfig.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.messageCount = 0;\n object.maxMessagesPerSecond = 0;\n object.seed = 0;\n object.messageSize = 0;\n object.sendBatchOnRegister = false;\n object.dummyFields = null;\n }\n if (message.messageCount != null && message.hasOwnProperty(\"messageCount\"))\n object.messageCount = message.messageCount;\n if (message.maxMessagesPerSecond != null && message.hasOwnProperty(\"maxMessagesPerSecond\"))\n object.maxMessagesPerSecond = message.maxMessagesPerSecond;\n if (message.seed != null && message.hasOwnProperty(\"seed\"))\n object.seed = message.seed;\n if (message.messageSize != null && message.hasOwnProperty(\"messageSize\"))\n object.messageSize = message.messageSize;\n if (message.sendBatchOnRegister != null && message.hasOwnProperty(\"sendBatchOnRegister\"))\n object.sendBatchOnRegister = message.sendBatchOnRegister;\n if (message.dummyFields != null && message.hasOwnProperty(\"dummyFields\"))\n object.dummyFields = $root.perfetto.protos.TestConfig.DummyFields.toObject(message.dummyFields, options);\n return object;\n };\n\n /**\n * Converts this TestConfig to JSON.\n * @function toJSON\n * @memberof perfetto.protos.TestConfig\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n TestConfig.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n TestConfig.DummyFields = (function() {\n\n /**\n * Properties of a DummyFields.\n * @memberof perfetto.protos.TestConfig\n * @interface IDummyFields\n * @property {number|null} [fieldUint32] DummyFields fieldUint32\n * @property {number|null} [fieldInt32] DummyFields fieldInt32\n * @property {number|null} [fieldUint64] DummyFields fieldUint64\n * @property {number|null} [fieldInt64] DummyFields fieldInt64\n * @property {number|null} [fieldFixed64] DummyFields fieldFixed64\n * @property {number|null} [fieldSfixed64] DummyFields fieldSfixed64\n * @property {number|null} [fieldFixed32] DummyFields fieldFixed32\n * @property {number|null} [fieldSfixed32] DummyFields fieldSfixed32\n * @property {number|null} [fieldDouble] DummyFields fieldDouble\n * @property {number|null} [fieldFloat] DummyFields fieldFloat\n * @property {number|null} [fieldSint64] DummyFields fieldSint64\n * @property {number|null} [fieldSint32] DummyFields fieldSint32\n * @property {string|null} [fieldString] DummyFields fieldString\n * @property {Uint8Array|null} [fieldBytes] DummyFields fieldBytes\n */\n\n /**\n * Constructs a new DummyFields.\n * @memberof perfetto.protos.TestConfig\n * @classdesc Represents a DummyFields.\n * @implements IDummyFields\n * @constructor\n * @param {perfetto.protos.TestConfig.IDummyFields=} [properties] Properties to set\n */\n function DummyFields(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * DummyFields fieldUint32.\n * @member {number} fieldUint32\n * @memberof perfetto.protos.TestConfig.DummyFields\n * @instance\n */\n DummyFields.prototype.fieldUint32 = 0;\n\n /**\n * DummyFields fieldInt32.\n * @member {number} fieldInt32\n * @memberof perfetto.protos.TestConfig.DummyFields\n * @instance\n */\n DummyFields.prototype.fieldInt32 = 0;\n\n /**\n * DummyFields fieldUint64.\n * @member {number} fieldUint64\n * @memberof perfetto.protos.TestConfig.DummyFields\n * @instance\n */\n DummyFields.prototype.fieldUint64 = $util.Long ? $util.Long.fromBits(0,0,true) : 0;\n\n /**\n * DummyFields fieldInt64.\n * @member {number} fieldInt64\n * @memberof perfetto.protos.TestConfig.DummyFields\n * @instance\n */\n DummyFields.prototype.fieldInt64 = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * DummyFields fieldFixed64.\n * @member {number} fieldFixed64\n * @memberof perfetto.protos.TestConfig.DummyFields\n * @instance\n */\n DummyFields.prototype.fieldFixed64 = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * DummyFields fieldSfixed64.\n * @member {number} fieldSfixed64\n * @memberof perfetto.protos.TestConfig.DummyFields\n * @instance\n */\n DummyFields.prototype.fieldSfixed64 = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * DummyFields fieldFixed32.\n * @member {number} fieldFixed32\n * @memberof perfetto.protos.TestConfig.DummyFields\n * @instance\n */\n DummyFields.prototype.fieldFixed32 = 0;\n\n /**\n * DummyFields fieldSfixed32.\n * @member {number} fieldSfixed32\n * @memberof perfetto.protos.TestConfig.DummyFields\n * @instance\n */\n DummyFields.prototype.fieldSfixed32 = 0;\n\n /**\n * DummyFields fieldDouble.\n * @member {number} fieldDouble\n * @memberof perfetto.protos.TestConfig.DummyFields\n * @instance\n */\n DummyFields.prototype.fieldDouble = 0;\n\n /**\n * DummyFields fieldFloat.\n * @member {number} fieldFloat\n * @memberof perfetto.protos.TestConfig.DummyFields\n * @instance\n */\n DummyFields.prototype.fieldFloat = 0;\n\n /**\n * DummyFields fieldSint64.\n * @member {number} fieldSint64\n * @memberof perfetto.protos.TestConfig.DummyFields\n * @instance\n */\n DummyFields.prototype.fieldSint64 = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * DummyFields fieldSint32.\n * @member {number} fieldSint32\n * @memberof perfetto.protos.TestConfig.DummyFields\n * @instance\n */\n DummyFields.prototype.fieldSint32 = 0;\n\n /**\n * DummyFields fieldString.\n * @member {string} fieldString\n * @memberof perfetto.protos.TestConfig.DummyFields\n * @instance\n */\n DummyFields.prototype.fieldString = \"\";\n\n /**\n * DummyFields fieldBytes.\n * @member {Uint8Array} fieldBytes\n * @memberof perfetto.protos.TestConfig.DummyFields\n * @instance\n */\n DummyFields.prototype.fieldBytes = $util.newBuffer([]);\n\n /**\n * Creates a new DummyFields instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.TestConfig.DummyFields\n * @static\n * @param {perfetto.protos.TestConfig.IDummyFields=} [properties] Properties to set\n * @returns {perfetto.protos.TestConfig.DummyFields} DummyFields instance\n */\n DummyFields.create = function create(properties) {\n return new DummyFields(properties);\n };\n\n /**\n * Encodes the specified DummyFields message. Does not implicitly {@link perfetto.protos.TestConfig.DummyFields.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.TestConfig.DummyFields\n * @static\n * @param {perfetto.protos.TestConfig.IDummyFields} message DummyFields message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n DummyFields.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.fieldUint32 != null && Object.hasOwnProperty.call(message, \"fieldUint32\"))\n writer.uint32(/* id 1, wireType 0 =*/8).uint32(message.fieldUint32);\n if (message.fieldInt32 != null && Object.hasOwnProperty.call(message, \"fieldInt32\"))\n writer.uint32(/* id 2, wireType 0 =*/16).int32(message.fieldInt32);\n if (message.fieldUint64 != null && Object.hasOwnProperty.call(message, \"fieldUint64\"))\n writer.uint32(/* id 3, wireType 0 =*/24).uint64(message.fieldUint64);\n if (message.fieldInt64 != null && Object.hasOwnProperty.call(message, \"fieldInt64\"))\n writer.uint32(/* id 4, wireType 0 =*/32).int64(message.fieldInt64);\n if (message.fieldFixed64 != null && Object.hasOwnProperty.call(message, \"fieldFixed64\"))\n writer.uint32(/* id 5, wireType 1 =*/41).fixed64(message.fieldFixed64);\n if (message.fieldSfixed64 != null && Object.hasOwnProperty.call(message, \"fieldSfixed64\"))\n writer.uint32(/* id 6, wireType 1 =*/49).sfixed64(message.fieldSfixed64);\n if (message.fieldFixed32 != null && Object.hasOwnProperty.call(message, \"fieldFixed32\"))\n writer.uint32(/* id 7, wireType 5 =*/61).fixed32(message.fieldFixed32);\n if (message.fieldSfixed32 != null && Object.hasOwnProperty.call(message, \"fieldSfixed32\"))\n writer.uint32(/* id 8, wireType 5 =*/69).sfixed32(message.fieldSfixed32);\n if (message.fieldDouble != null && Object.hasOwnProperty.call(message, \"fieldDouble\"))\n writer.uint32(/* id 9, wireType 1 =*/73).double(message.fieldDouble);\n if (message.fieldFloat != null && Object.hasOwnProperty.call(message, \"fieldFloat\"))\n writer.uint32(/* id 10, wireType 5 =*/85).float(message.fieldFloat);\n if (message.fieldSint64 != null && Object.hasOwnProperty.call(message, \"fieldSint64\"))\n writer.uint32(/* id 11, wireType 0 =*/88).sint64(message.fieldSint64);\n if (message.fieldSint32 != null && Object.hasOwnProperty.call(message, \"fieldSint32\"))\n writer.uint32(/* id 12, wireType 0 =*/96).sint32(message.fieldSint32);\n if (message.fieldString != null && Object.hasOwnProperty.call(message, \"fieldString\"))\n writer.uint32(/* id 13, wireType 2 =*/106).string(message.fieldString);\n if (message.fieldBytes != null && Object.hasOwnProperty.call(message, \"fieldBytes\"))\n writer.uint32(/* id 14, wireType 2 =*/114).bytes(message.fieldBytes);\n return writer;\n };\n\n /**\n * Encodes the specified DummyFields message, length delimited. Does not implicitly {@link perfetto.protos.TestConfig.DummyFields.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.TestConfig.DummyFields\n * @static\n * @param {perfetto.protos.TestConfig.IDummyFields} message DummyFields message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n DummyFields.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a DummyFields message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.TestConfig.DummyFields\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.TestConfig.DummyFields} DummyFields\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n DummyFields.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.TestConfig.DummyFields();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.fieldUint32 = reader.uint32();\n break;\n case 2:\n message.fieldInt32 = reader.int32();\n break;\n case 3:\n message.fieldUint64 = reader.uint64();\n break;\n case 4:\n message.fieldInt64 = reader.int64();\n break;\n case 5:\n message.fieldFixed64 = reader.fixed64();\n break;\n case 6:\n message.fieldSfixed64 = reader.sfixed64();\n break;\n case 7:\n message.fieldFixed32 = reader.fixed32();\n break;\n case 8:\n message.fieldSfixed32 = reader.sfixed32();\n break;\n case 9:\n message.fieldDouble = reader.double();\n break;\n case 10:\n message.fieldFloat = reader.float();\n break;\n case 11:\n message.fieldSint64 = reader.sint64();\n break;\n case 12:\n message.fieldSint32 = reader.sint32();\n break;\n case 13:\n message.fieldString = reader.string();\n break;\n case 14:\n message.fieldBytes = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a DummyFields message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.TestConfig.DummyFields\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.TestConfig.DummyFields} DummyFields\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n DummyFields.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a DummyFields message.\n * @function verify\n * @memberof perfetto.protos.TestConfig.DummyFields\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n DummyFields.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.fieldUint32 != null && message.hasOwnProperty(\"fieldUint32\"))\n if (!$util.isInteger(message.fieldUint32))\n return \"fieldUint32: integer expected\";\n if (message.fieldInt32 != null && message.hasOwnProperty(\"fieldInt32\"))\n if (!$util.isInteger(message.fieldInt32))\n return \"fieldInt32: integer expected\";\n if (message.fieldUint64 != null && message.hasOwnProperty(\"fieldUint64\"))\n if (!$util.isInteger(message.fieldUint64) && !(message.fieldUint64 && $util.isInteger(message.fieldUint64.low) && $util.isInteger(message.fieldUint64.high)))\n return \"fieldUint64: integer|Long expected\";\n if (message.fieldInt64 != null && message.hasOwnProperty(\"fieldInt64\"))\n if (!$util.isInteger(message.fieldInt64) && !(message.fieldInt64 && $util.isInteger(message.fieldInt64.low) && $util.isInteger(message.fieldInt64.high)))\n return \"fieldInt64: integer|Long expected\";\n if (message.fieldFixed64 != null && message.hasOwnProperty(\"fieldFixed64\"))\n if (!$util.isInteger(message.fieldFixed64) && !(message.fieldFixed64 && $util.isInteger(message.fieldFixed64.low) && $util.isInteger(message.fieldFixed64.high)))\n return \"fieldFixed64: integer|Long expected\";\n if (message.fieldSfixed64 != null && message.hasOwnProperty(\"fieldSfixed64\"))\n if (!$util.isInteger(message.fieldSfixed64) && !(message.fieldSfixed64 && $util.isInteger(message.fieldSfixed64.low) && $util.isInteger(message.fieldSfixed64.high)))\n return \"fieldSfixed64: integer|Long expected\";\n if (message.fieldFixed32 != null && message.hasOwnProperty(\"fieldFixed32\"))\n if (!$util.isInteger(message.fieldFixed32))\n return \"fieldFixed32: integer expected\";\n if (message.fieldSfixed32 != null && message.hasOwnProperty(\"fieldSfixed32\"))\n if (!$util.isInteger(message.fieldSfixed32))\n return \"fieldSfixed32: integer expected\";\n if (message.fieldDouble != null && message.hasOwnProperty(\"fieldDouble\"))\n if (typeof message.fieldDouble !== \"number\")\n return \"fieldDouble: number expected\";\n if (message.fieldFloat != null && message.hasOwnProperty(\"fieldFloat\"))\n if (typeof message.fieldFloat !== \"number\")\n return \"fieldFloat: number expected\";\n if (message.fieldSint64 != null && message.hasOwnProperty(\"fieldSint64\"))\n if (!$util.isInteger(message.fieldSint64) && !(message.fieldSint64 && $util.isInteger(message.fieldSint64.low) && $util.isInteger(message.fieldSint64.high)))\n return \"fieldSint64: integer|Long expected\";\n if (message.fieldSint32 != null && message.hasOwnProperty(\"fieldSint32\"))\n if (!$util.isInteger(message.fieldSint32))\n return \"fieldSint32: integer expected\";\n if (message.fieldString != null && message.hasOwnProperty(\"fieldString\"))\n if (!$util.isString(message.fieldString))\n return \"fieldString: string expected\";\n if (message.fieldBytes != null && message.hasOwnProperty(\"fieldBytes\"))\n if (!(message.fieldBytes && typeof message.fieldBytes.length === \"number\" || $util.isString(message.fieldBytes)))\n return \"fieldBytes: buffer expected\";\n return null;\n };\n\n /**\n * Creates a DummyFields message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.TestConfig.DummyFields\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.TestConfig.DummyFields} DummyFields\n */\n DummyFields.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.TestConfig.DummyFields)\n return object;\n var message = new $root.perfetto.protos.TestConfig.DummyFields();\n if (object.fieldUint32 != null)\n message.fieldUint32 = object.fieldUint32 >>> 0;\n if (object.fieldInt32 != null)\n message.fieldInt32 = object.fieldInt32 | 0;\n if (object.fieldUint64 != null)\n if ($util.Long)\n (message.fieldUint64 = $util.Long.fromValue(object.fieldUint64)).unsigned = true;\n else if (typeof object.fieldUint64 === \"string\")\n message.fieldUint64 = parseInt(object.fieldUint64, 10);\n else if (typeof object.fieldUint64 === \"number\")\n message.fieldUint64 = object.fieldUint64;\n else if (typeof object.fieldUint64 === \"object\")\n message.fieldUint64 = new $util.LongBits(object.fieldUint64.low >>> 0, object.fieldUint64.high >>> 0).toNumber(true);\n if (object.fieldInt64 != null)\n if ($util.Long)\n (message.fieldInt64 = $util.Long.fromValue(object.fieldInt64)).unsigned = false;\n else if (typeof object.fieldInt64 === \"string\")\n message.fieldInt64 = parseInt(object.fieldInt64, 10);\n else if (typeof object.fieldInt64 === \"number\")\n message.fieldInt64 = object.fieldInt64;\n else if (typeof object.fieldInt64 === \"object\")\n message.fieldInt64 = new $util.LongBits(object.fieldInt64.low >>> 0, object.fieldInt64.high >>> 0).toNumber();\n if (object.fieldFixed64 != null)\n if ($util.Long)\n (message.fieldFixed64 = $util.Long.fromValue(object.fieldFixed64)).unsigned = false;\n else if (typeof object.fieldFixed64 === \"string\")\n message.fieldFixed64 = parseInt(object.fieldFixed64, 10);\n else if (typeof object.fieldFixed64 === \"number\")\n message.fieldFixed64 = object.fieldFixed64;\n else if (typeof object.fieldFixed64 === \"object\")\n message.fieldFixed64 = new $util.LongBits(object.fieldFixed64.low >>> 0, object.fieldFixed64.high >>> 0).toNumber();\n if (object.fieldSfixed64 != null)\n if ($util.Long)\n (message.fieldSfixed64 = $util.Long.fromValue(object.fieldSfixed64)).unsigned = false;\n else if (typeof object.fieldSfixed64 === \"string\")\n message.fieldSfixed64 = parseInt(object.fieldSfixed64, 10);\n else if (typeof object.fieldSfixed64 === \"number\")\n message.fieldSfixed64 = object.fieldSfixed64;\n else if (typeof object.fieldSfixed64 === \"object\")\n message.fieldSfixed64 = new $util.LongBits(object.fieldSfixed64.low >>> 0, object.fieldSfixed64.high >>> 0).toNumber();\n if (object.fieldFixed32 != null)\n message.fieldFixed32 = object.fieldFixed32 >>> 0;\n if (object.fieldSfixed32 != null)\n message.fieldSfixed32 = object.fieldSfixed32 | 0;\n if (object.fieldDouble != null)\n message.fieldDouble = Number(object.fieldDouble);\n if (object.fieldFloat != null)\n message.fieldFloat = Number(object.fieldFloat);\n if (object.fieldSint64 != null)\n if ($util.Long)\n (message.fieldSint64 = $util.Long.fromValue(object.fieldSint64)).unsigned = false;\n else if (typeof object.fieldSint64 === \"string\")\n message.fieldSint64 = parseInt(object.fieldSint64, 10);\n else if (typeof object.fieldSint64 === \"number\")\n message.fieldSint64 = object.fieldSint64;\n else if (typeof object.fieldSint64 === \"object\")\n message.fieldSint64 = new $util.LongBits(object.fieldSint64.low >>> 0, object.fieldSint64.high >>> 0).toNumber();\n if (object.fieldSint32 != null)\n message.fieldSint32 = object.fieldSint32 | 0;\n if (object.fieldString != null)\n message.fieldString = String(object.fieldString);\n if (object.fieldBytes != null)\n if (typeof object.fieldBytes === \"string\")\n $util.base64.decode(object.fieldBytes, message.fieldBytes = $util.newBuffer($util.base64.length(object.fieldBytes)), 0);\n else if (object.fieldBytes.length)\n message.fieldBytes = object.fieldBytes;\n return message;\n };\n\n /**\n * Creates a plain object from a DummyFields message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.TestConfig.DummyFields\n * @static\n * @param {perfetto.protos.TestConfig.DummyFields} message DummyFields\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n DummyFields.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.fieldUint32 = 0;\n object.fieldInt32 = 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, true);\n object.fieldUint64 = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.fieldUint64 = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.fieldInt64 = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.fieldInt64 = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.fieldFixed64 = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.fieldFixed64 = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.fieldSfixed64 = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.fieldSfixed64 = options.longs === String ? \"0\" : 0;\n object.fieldFixed32 = 0;\n object.fieldSfixed32 = 0;\n object.fieldDouble = 0;\n object.fieldFloat = 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.fieldSint64 = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.fieldSint64 = options.longs === String ? \"0\" : 0;\n object.fieldSint32 = 0;\n object.fieldString = \"\";\n if (options.bytes === String)\n object.fieldBytes = \"\";\n else {\n object.fieldBytes = [];\n if (options.bytes !== Array)\n object.fieldBytes = $util.newBuffer(object.fieldBytes);\n }\n }\n if (message.fieldUint32 != null && message.hasOwnProperty(\"fieldUint32\"))\n object.fieldUint32 = message.fieldUint32;\n if (message.fieldInt32 != null && message.hasOwnProperty(\"fieldInt32\"))\n object.fieldInt32 = message.fieldInt32;\n if (message.fieldUint64 != null && message.hasOwnProperty(\"fieldUint64\"))\n if (typeof message.fieldUint64 === \"number\")\n object.fieldUint64 = options.longs === String ? String(message.fieldUint64) : message.fieldUint64;\n else\n object.fieldUint64 = options.longs === String ? $util.Long.prototype.toString.call(message.fieldUint64) : options.longs === Number ? new $util.LongBits(message.fieldUint64.low >>> 0, message.fieldUint64.high >>> 0).toNumber(true) : message.fieldUint64;\n if (message.fieldInt64 != null && message.hasOwnProperty(\"fieldInt64\"))\n if (typeof message.fieldInt64 === \"number\")\n object.fieldInt64 = options.longs === String ? String(message.fieldInt64) : message.fieldInt64;\n else\n object.fieldInt64 = options.longs === String ? $util.Long.prototype.toString.call(message.fieldInt64) : options.longs === Number ? new $util.LongBits(message.fieldInt64.low >>> 0, message.fieldInt64.high >>> 0).toNumber() : message.fieldInt64;\n if (message.fieldFixed64 != null && message.hasOwnProperty(\"fieldFixed64\"))\n if (typeof message.fieldFixed64 === \"number\")\n object.fieldFixed64 = options.longs === String ? String(message.fieldFixed64) : message.fieldFixed64;\n else\n object.fieldFixed64 = options.longs === String ? $util.Long.prototype.toString.call(message.fieldFixed64) : options.longs === Number ? new $util.LongBits(message.fieldFixed64.low >>> 0, message.fieldFixed64.high >>> 0).toNumber() : message.fieldFixed64;\n if (message.fieldSfixed64 != null && message.hasOwnProperty(\"fieldSfixed64\"))\n if (typeof message.fieldSfixed64 === \"number\")\n object.fieldSfixed64 = options.longs === String ? String(message.fieldSfixed64) : message.fieldSfixed64;\n else\n object.fieldSfixed64 = options.longs === String ? $util.Long.prototype.toString.call(message.fieldSfixed64) : options.longs === Number ? new $util.LongBits(message.fieldSfixed64.low >>> 0, message.fieldSfixed64.high >>> 0).toNumber() : message.fieldSfixed64;\n if (message.fieldFixed32 != null && message.hasOwnProperty(\"fieldFixed32\"))\n object.fieldFixed32 = message.fieldFixed32;\n if (message.fieldSfixed32 != null && message.hasOwnProperty(\"fieldSfixed32\"))\n object.fieldSfixed32 = message.fieldSfixed32;\n if (message.fieldDouble != null && message.hasOwnProperty(\"fieldDouble\"))\n object.fieldDouble = options.json && !isFinite(message.fieldDouble) ? String(message.fieldDouble) : message.fieldDouble;\n if (message.fieldFloat != null && message.hasOwnProperty(\"fieldFloat\"))\n object.fieldFloat = options.json && !isFinite(message.fieldFloat) ? String(message.fieldFloat) : message.fieldFloat;\n if (message.fieldSint64 != null && message.hasOwnProperty(\"fieldSint64\"))\n if (typeof message.fieldSint64 === \"number\")\n object.fieldSint64 = options.longs === String ? String(message.fieldSint64) : message.fieldSint64;\n else\n object.fieldSint64 = options.longs === String ? $util.Long.prototype.toString.call(message.fieldSint64) : options.longs === Number ? new $util.LongBits(message.fieldSint64.low >>> 0, message.fieldSint64.high >>> 0).toNumber() : message.fieldSint64;\n if (message.fieldSint32 != null && message.hasOwnProperty(\"fieldSint32\"))\n object.fieldSint32 = message.fieldSint32;\n if (message.fieldString != null && message.hasOwnProperty(\"fieldString\"))\n object.fieldString = message.fieldString;\n if (message.fieldBytes != null && message.hasOwnProperty(\"fieldBytes\"))\n object.fieldBytes = options.bytes === String ? $util.base64.encode(message.fieldBytes, 0, message.fieldBytes.length) : options.bytes === Array ? Array.prototype.slice.call(message.fieldBytes) : message.fieldBytes;\n return object;\n };\n\n /**\n * Converts this DummyFields to JSON.\n * @function toJSON\n * @memberof perfetto.protos.TestConfig.DummyFields\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n DummyFields.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return DummyFields;\n })();\n\n return TestConfig;\n })();\n\n protos.TrackEventConfig = (function() {\n\n /**\n * Properties of a TrackEventConfig.\n * @memberof perfetto.protos\n * @interface ITrackEventConfig\n * @property {Array.<string>|null} [disabledCategories] TrackEventConfig disabledCategories\n * @property {Array.<string>|null} [enabledCategories] TrackEventConfig enabledCategories\n * @property {Array.<string>|null} [disabledTags] TrackEventConfig disabledTags\n * @property {Array.<string>|null} [enabledTags] TrackEventConfig enabledTags\n */\n\n /**\n * Constructs a new TrackEventConfig.\n * @memberof perfetto.protos\n * @classdesc Represents a TrackEventConfig.\n * @implements ITrackEventConfig\n * @constructor\n * @param {perfetto.protos.ITrackEventConfig=} [properties] Properties to set\n */\n function TrackEventConfig(properties) {\n this.disabledCategories = [];\n this.enabledCategories = [];\n this.disabledTags = [];\n this.enabledTags = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * TrackEventConfig disabledCategories.\n * @member {Array.<string>} disabledCategories\n * @memberof perfetto.protos.TrackEventConfig\n * @instance\n */\n TrackEventConfig.prototype.disabledCategories = $util.emptyArray;\n\n /**\n * TrackEventConfig enabledCategories.\n * @member {Array.<string>} enabledCategories\n * @memberof perfetto.protos.TrackEventConfig\n * @instance\n */\n TrackEventConfig.prototype.enabledCategories = $util.emptyArray;\n\n /**\n * TrackEventConfig disabledTags.\n * @member {Array.<string>} disabledTags\n * @memberof perfetto.protos.TrackEventConfig\n * @instance\n */\n TrackEventConfig.prototype.disabledTags = $util.emptyArray;\n\n /**\n * TrackEventConfig enabledTags.\n * @member {Array.<string>} enabledTags\n * @memberof perfetto.protos.TrackEventConfig\n * @instance\n */\n TrackEventConfig.prototype.enabledTags = $util.emptyArray;\n\n /**\n * Creates a new TrackEventConfig instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.TrackEventConfig\n * @static\n * @param {perfetto.protos.ITrackEventConfig=} [properties] Properties to set\n * @returns {perfetto.protos.TrackEventConfig} TrackEventConfig instance\n */\n TrackEventConfig.create = function create(properties) {\n return new TrackEventConfig(properties);\n };\n\n /**\n * Encodes the specified TrackEventConfig message. Does not implicitly {@link perfetto.protos.TrackEventConfig.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.TrackEventConfig\n * @static\n * @param {perfetto.protos.ITrackEventConfig} message TrackEventConfig message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n TrackEventConfig.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.disabledCategories != null && message.disabledCategories.length)\n for (var i = 0; i < message.disabledCategories.length; ++i)\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.disabledCategories[i]);\n if (message.enabledCategories != null && message.enabledCategories.length)\n for (var i = 0; i < message.enabledCategories.length; ++i)\n writer.uint32(/* id 2, wireType 2 =*/18).string(message.enabledCategories[i]);\n if (message.disabledTags != null && message.disabledTags.length)\n for (var i = 0; i < message.disabledTags.length; ++i)\n writer.uint32(/* id 3, wireType 2 =*/26).string(message.disabledTags[i]);\n if (message.enabledTags != null && message.enabledTags.length)\n for (var i = 0; i < message.enabledTags.length; ++i)\n writer.uint32(/* id 4, wireType 2 =*/34).string(message.enabledTags[i]);\n return writer;\n };\n\n /**\n * Encodes the specified TrackEventConfig message, length delimited. Does not implicitly {@link perfetto.protos.TrackEventConfig.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.TrackEventConfig\n * @static\n * @param {perfetto.protos.ITrackEventConfig} message TrackEventConfig message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n TrackEventConfig.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a TrackEventConfig message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.TrackEventConfig\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.TrackEventConfig} TrackEventConfig\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n TrackEventConfig.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.TrackEventConfig();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (!(message.disabledCategories && message.disabledCategories.length))\n message.disabledCategories = [];\n message.disabledCategories.push(reader.string());\n break;\n case 2:\n if (!(message.enabledCategories && message.enabledCategories.length))\n message.enabledCategories = [];\n message.enabledCategories.push(reader.string());\n break;\n case 3:\n if (!(message.disabledTags && message.disabledTags.length))\n message.disabledTags = [];\n message.disabledTags.push(reader.string());\n break;\n case 4:\n if (!(message.enabledTags && message.enabledTags.length))\n message.enabledTags = [];\n message.enabledTags.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a TrackEventConfig message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.TrackEventConfig\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.TrackEventConfig} TrackEventConfig\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n TrackEventConfig.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a TrackEventConfig message.\n * @function verify\n * @memberof perfetto.protos.TrackEventConfig\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n TrackEventConfig.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.disabledCategories != null && message.hasOwnProperty(\"disabledCategories\")) {\n if (!Array.isArray(message.disabledCategories))\n return \"disabledCategories: array expected\";\n for (var i = 0; i < message.disabledCategories.length; ++i)\n if (!$util.isString(message.disabledCategories[i]))\n return \"disabledCategories: string[] expected\";\n }\n if (message.enabledCategories != null && message.hasOwnProperty(\"enabledCategories\")) {\n if (!Array.isArray(message.enabledCategories))\n return \"enabledCategories: array expected\";\n for (var i = 0; i < message.enabledCategories.length; ++i)\n if (!$util.isString(message.enabledCategories[i]))\n return \"enabledCategories: string[] expected\";\n }\n if (message.disabledTags != null && message.hasOwnProperty(\"disabledTags\")) {\n if (!Array.isArray(message.disabledTags))\n return \"disabledTags: array expected\";\n for (var i = 0; i < message.disabledTags.length; ++i)\n if (!$util.isString(message.disabledTags[i]))\n return \"disabledTags: string[] expected\";\n }\n if (message.enabledTags != null && message.hasOwnProperty(\"enabledTags\")) {\n if (!Array.isArray(message.enabledTags))\n return \"enabledTags: array expected\";\n for (var i = 0; i < message.enabledTags.length; ++i)\n if (!$util.isString(message.enabledTags[i]))\n return \"enabledTags: string[] expected\";\n }\n return null;\n };\n\n /**\n * Creates a TrackEventConfig message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.TrackEventConfig\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.TrackEventConfig} TrackEventConfig\n */\n TrackEventConfig.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.TrackEventConfig)\n return object;\n var message = new $root.perfetto.protos.TrackEventConfig();\n if (object.disabledCategories) {\n if (!Array.isArray(object.disabledCategories))\n throw TypeError(\".perfetto.protos.TrackEventConfig.disabledCategories: array expected\");\n message.disabledCategories = [];\n for (var i = 0; i < object.disabledCategories.length; ++i)\n message.disabledCategories[i] = String(object.disabledCategories[i]);\n }\n if (object.enabledCategories) {\n if (!Array.isArray(object.enabledCategories))\n throw TypeError(\".perfetto.protos.TrackEventConfig.enabledCategories: array expected\");\n message.enabledCategories = [];\n for (var i = 0; i < object.enabledCategories.length; ++i)\n message.enabledCategories[i] = String(object.enabledCategories[i]);\n }\n if (object.disabledTags) {\n if (!Array.isArray(object.disabledTags))\n throw TypeError(\".perfetto.protos.TrackEventConfig.disabledTags: array expected\");\n message.disabledTags = [];\n for (var i = 0; i < object.disabledTags.length; ++i)\n message.disabledTags[i] = String(object.disabledTags[i]);\n }\n if (object.enabledTags) {\n if (!Array.isArray(object.enabledTags))\n throw TypeError(\".perfetto.protos.TrackEventConfig.enabledTags: array expected\");\n message.enabledTags = [];\n for (var i = 0; i < object.enabledTags.length; ++i)\n message.enabledTags[i] = String(object.enabledTags[i]);\n }\n return message;\n };\n\n /**\n * Creates a plain object from a TrackEventConfig message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.TrackEventConfig\n * @static\n * @param {perfetto.protos.TrackEventConfig} message TrackEventConfig\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n TrackEventConfig.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults) {\n object.disabledCategories = [];\n object.enabledCategories = [];\n object.disabledTags = [];\n object.enabledTags = [];\n }\n if (message.disabledCategories && message.disabledCategories.length) {\n object.disabledCategories = [];\n for (var j = 0; j < message.disabledCategories.length; ++j)\n object.disabledCategories[j] = message.disabledCategories[j];\n }\n if (message.enabledCategories && message.enabledCategories.length) {\n object.enabledCategories = [];\n for (var j = 0; j < message.enabledCategories.length; ++j)\n object.enabledCategories[j] = message.enabledCategories[j];\n }\n if (message.disabledTags && message.disabledTags.length) {\n object.disabledTags = [];\n for (var j = 0; j < message.disabledTags.length; ++j)\n object.disabledTags[j] = message.disabledTags[j];\n }\n if (message.enabledTags && message.enabledTags.length) {\n object.enabledTags = [];\n for (var j = 0; j < message.enabledTags.length; ++j)\n object.enabledTags[j] = message.enabledTags[j];\n }\n return object;\n };\n\n /**\n * Converts this TrackEventConfig to JSON.\n * @function toJSON\n * @memberof perfetto.protos.TrackEventConfig\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n TrackEventConfig.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return TrackEventConfig;\n })();\n\n protos.DataSourceConfig = (function() {\n\n /**\n * Properties of a DataSourceConfig.\n * @memberof perfetto.protos\n * @interface IDataSourceConfig\n * @property {string|null} [name] DataSourceConfig name\n * @property {number|null} [targetBuffer] DataSourceConfig targetBuffer\n * @property {number|null} [traceDurationMs] DataSourceConfig traceDurationMs\n * @property {number|null} [stopTimeoutMs] DataSourceConfig stopTimeoutMs\n * @property {boolean|null} [enableExtraGuardrails] DataSourceConfig enableExtraGuardrails\n * @property {perfetto.protos.DataSourceConfig.SessionInitiator|null} [sessionInitiator] DataSourceConfig sessionInitiator\n * @property {number|null} [tracingSessionId] DataSourceConfig tracingSessionId\n * @property {perfetto.protos.IFtraceConfig|null} [ftraceConfig] DataSourceConfig ftraceConfig\n * @property {perfetto.protos.IInodeFileConfig|null} [inodeFileConfig] DataSourceConfig inodeFileConfig\n * @property {perfetto.protos.IProcessStatsConfig|null} [processStatsConfig] DataSourceConfig processStatsConfig\n * @property {perfetto.protos.ISysStatsConfig|null} [sysStatsConfig] DataSourceConfig sysStatsConfig\n * @property {perfetto.protos.IHeapprofdConfig|null} [heapprofdConfig] DataSourceConfig heapprofdConfig\n * @property {perfetto.protos.IJavaHprofConfig|null} [javaHprofConfig] DataSourceConfig javaHprofConfig\n * @property {perfetto.protos.IAndroidPowerConfig|null} [androidPowerConfig] DataSourceConfig androidPowerConfig\n * @property {perfetto.protos.IAndroidLogConfig|null} [androidLogConfig] DataSourceConfig androidLogConfig\n * @property {perfetto.protos.IGpuCounterConfig|null} [gpuCounterConfig] DataSourceConfig gpuCounterConfig\n * @property {perfetto.protos.IPackagesListConfig|null} [packagesListConfig] DataSourceConfig packagesListConfig\n * @property {perfetto.protos.IPerfEventConfig|null} [perfEventConfig] DataSourceConfig perfEventConfig\n * @property {perfetto.protos.IVulkanMemoryConfig|null} [vulkanMemoryConfig] DataSourceConfig vulkanMemoryConfig\n * @property {perfetto.protos.ITrackEventConfig|null} [trackEventConfig] DataSourceConfig trackEventConfig\n * @property {perfetto.protos.IAndroidPolledStateConfig|null} [androidPolledStateConfig] DataSourceConfig androidPolledStateConfig\n * @property {perfetto.protos.IChromeConfig|null} [chromeConfig] DataSourceConfig chromeConfig\n * @property {perfetto.protos.IInterceptorConfig|null} [interceptorConfig] DataSourceConfig interceptorConfig\n * @property {string|null} [legacyConfig] DataSourceConfig legacyConfig\n * @property {perfetto.protos.ITestConfig|null} [forTesting] DataSourceConfig forTesting\n */\n\n /**\n * Constructs a new DataSourceConfig.\n * @memberof perfetto.protos\n * @classdesc Represents a DataSourceConfig.\n * @implements IDataSourceConfig\n * @constructor\n * @param {perfetto.protos.IDataSourceConfig=} [properties] Properties to set\n */\n function DataSourceConfig(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * DataSourceConfig name.\n * @member {string} name\n * @memberof perfetto.protos.DataSourceConfig\n * @instance\n */\n DataSourceConfig.prototype.name = \"\";\n\n /**\n * DataSourceConfig targetBuffer.\n * @member {number} targetBuffer\n * @memberof perfetto.protos.DataSourceConfig\n * @instance\n */\n DataSourceConfig.prototype.targetBuffer = 0;\n\n /**\n * DataSourceConfig traceDurationMs.\n * @member {number} traceDurationMs\n * @memberof perfetto.protos.DataSourceConfig\n * @instance\n */\n DataSourceConfig.prototype.traceDurationMs = 0;\n\n /**\n * DataSourceConfig stopTimeoutMs.\n * @member {number} stopTimeoutMs\n * @memberof perfetto.protos.DataSourceConfig\n * @instance\n */\n DataSourceConfig.prototype.stopTimeoutMs = 0;\n\n /**\n * DataSourceConfig enableExtraGuardrails.\n * @member {boolean} enableExtraGuardrails\n * @memberof perfetto.protos.DataSourceConfig\n * @instance\n */\n DataSourceConfig.prototype.enableExtraGuardrails = false;\n\n /**\n * DataSourceConfig sessionInitiator.\n * @member {perfetto.protos.DataSourceConfig.SessionInitiator} sessionInitiator\n * @memberof perfetto.protos.DataSourceConfig\n * @instance\n */\n DataSourceConfig.prototype.sessionInitiator = 0;\n\n /**\n * DataSourceConfig tracingSessionId.\n * @member {number} tracingSessionId\n * @memberof perfetto.protos.DataSourceConfig\n * @instance\n */\n DataSourceConfig.prototype.tracingSessionId = $util.Long ? $util.Long.fromBits(0,0,true) : 0;\n\n /**\n * DataSourceConfig ftraceConfig.\n * @member {perfetto.protos.IFtraceConfig|null|undefined} ftraceConfig\n * @memberof perfetto.protos.DataSourceConfig\n * @instance\n */\n DataSourceConfig.prototype.ftraceConfig = null;\n\n /**\n * DataSourceConfig inodeFileConfig.\n * @member {perfetto.protos.IInodeFileConfig|null|undefined} inodeFileConfig\n * @memberof perfetto.protos.DataSourceConfig\n * @instance\n */\n DataSourceConfig.prototype.inodeFileConfig = null;\n\n /**\n * DataSourceConfig processStatsConfig.\n * @member {perfetto.protos.IProcessStatsConfig|null|undefined} processStatsConfig\n * @memberof perfetto.protos.DataSourceConfig\n * @instance\n */\n DataSourceConfig.prototype.processStatsConfig = null;\n\n /**\n * DataSourceConfig sysStatsConfig.\n * @member {perfetto.protos.ISysStatsConfig|null|undefined} sysStatsConfig\n * @memberof perfetto.protos.DataSourceConfig\n * @instance\n */\n DataSourceConfig.prototype.sysStatsConfig = null;\n\n /**\n * DataSourceConfig heapprofdConfig.\n * @member {perfetto.protos.IHeapprofdConfig|null|undefined} heapprofdConfig\n * @memberof perfetto.protos.DataSourceConfig\n * @instance\n */\n DataSourceConfig.prototype.heapprofdConfig = null;\n\n /**\n * DataSourceConfig javaHprofConfig.\n * @member {perfetto.protos.IJavaHprofConfig|null|undefined} javaHprofConfig\n * @memberof perfetto.protos.DataSourceConfig\n * @instance\n */\n DataSourceConfig.prototype.javaHprofConfig = null;\n\n /**\n * DataSourceConfig androidPowerConfig.\n * @member {perfetto.protos.IAndroidPowerConfig|null|undefined} androidPowerConfig\n * @memberof perfetto.protos.DataSourceConfig\n * @instance\n */\n DataSourceConfig.prototype.androidPowerConfig = null;\n\n /**\n * DataSourceConfig androidLogConfig.\n * @member {perfetto.protos.IAndroidLogConfig|null|undefined} androidLogConfig\n * @memberof perfetto.protos.DataSourceConfig\n * @instance\n */\n DataSourceConfig.prototype.androidLogConfig = null;\n\n /**\n * DataSourceConfig gpuCounterConfig.\n * @member {perfetto.protos.IGpuCounterConfig|null|undefined} gpuCounterConfig\n * @memberof perfetto.protos.DataSourceConfig\n * @instance\n */\n DataSourceConfig.prototype.gpuCounterConfig = null;\n\n /**\n * DataSourceConfig packagesListConfig.\n * @member {perfetto.protos.IPackagesListConfig|null|undefined} packagesListConfig\n * @memberof perfetto.protos.DataSourceConfig\n * @instance\n */\n DataSourceConfig.prototype.packagesListConfig = null;\n\n /**\n * DataSourceConfig perfEventConfig.\n * @member {perfetto.protos.IPerfEventConfig|null|undefined} perfEventConfig\n * @memberof perfetto.protos.DataSourceConfig\n * @instance\n */\n DataSourceConfig.prototype.perfEventConfig = null;\n\n /**\n * DataSourceConfig vulkanMemoryConfig.\n * @member {perfetto.protos.IVulkanMemoryConfig|null|undefined} vulkanMemoryConfig\n * @memberof perfetto.protos.DataSourceConfig\n * @instance\n */\n DataSourceConfig.prototype.vulkanMemoryConfig = null;\n\n /**\n * DataSourceConfig trackEventConfig.\n * @member {perfetto.protos.ITrackEventConfig|null|undefined} trackEventConfig\n * @memberof perfetto.protos.DataSourceConfig\n * @instance\n */\n DataSourceConfig.prototype.trackEventConfig = null;\n\n /**\n * DataSourceConfig androidPolledStateConfig.\n * @member {perfetto.protos.IAndroidPolledStateConfig|null|undefined} androidPolledStateConfig\n * @memberof perfetto.protos.DataSourceConfig\n * @instance\n */\n DataSourceConfig.prototype.androidPolledStateConfig = null;\n\n /**\n * DataSourceConfig chromeConfig.\n * @member {perfetto.protos.IChromeConfig|null|undefined} chromeConfig\n * @memberof perfetto.protos.DataSourceConfig\n * @instance\n */\n DataSourceConfig.prototype.chromeConfig = null;\n\n /**\n * DataSourceConfig interceptorConfig.\n * @member {perfetto.protos.IInterceptorConfig|null|undefined} interceptorConfig\n * @memberof perfetto.protos.DataSourceConfig\n * @instance\n */\n DataSourceConfig.prototype.interceptorConfig = null;\n\n /**\n * DataSourceConfig legacyConfig.\n * @member {string} legacyConfig\n * @memberof perfetto.protos.DataSourceConfig\n * @instance\n */\n DataSourceConfig.prototype.legacyConfig = \"\";\n\n /**\n * DataSourceConfig forTesting.\n * @member {perfetto.protos.ITestConfig|null|undefined} forTesting\n * @memberof perfetto.protos.DataSourceConfig\n * @instance\n */\n DataSourceConfig.prototype.forTesting = null;\n\n /**\n * Creates a new DataSourceConfig instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.DataSourceConfig\n * @static\n * @param {perfetto.protos.IDataSourceConfig=} [properties] Properties to set\n * @returns {perfetto.protos.DataSourceConfig} DataSourceConfig instance\n */\n DataSourceConfig.create = function create(properties) {\n return new DataSourceConfig(properties);\n };\n\n /**\n * Encodes the specified DataSourceConfig message. Does not implicitly {@link perfetto.protos.DataSourceConfig.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.DataSourceConfig\n * @static\n * @param {perfetto.protos.IDataSourceConfig} message DataSourceConfig message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n DataSourceConfig.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.name != null && Object.hasOwnProperty.call(message, \"name\"))\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.name);\n if (message.targetBuffer != null && Object.hasOwnProperty.call(message, \"targetBuffer\"))\n writer.uint32(/* id 2, wireType 0 =*/16).uint32(message.targetBuffer);\n if (message.traceDurationMs != null && Object.hasOwnProperty.call(message, \"traceDurationMs\"))\n writer.uint32(/* id 3, wireType 0 =*/24).uint32(message.traceDurationMs);\n if (message.tracingSessionId != null && Object.hasOwnProperty.call(message, \"tracingSessionId\"))\n writer.uint32(/* id 4, wireType 0 =*/32).uint64(message.tracingSessionId);\n if (message.enableExtraGuardrails != null && Object.hasOwnProperty.call(message, \"enableExtraGuardrails\"))\n writer.uint32(/* id 6, wireType 0 =*/48).bool(message.enableExtraGuardrails);\n if (message.stopTimeoutMs != null && Object.hasOwnProperty.call(message, \"stopTimeoutMs\"))\n writer.uint32(/* id 7, wireType 0 =*/56).uint32(message.stopTimeoutMs);\n if (message.sessionInitiator != null && Object.hasOwnProperty.call(message, \"sessionInitiator\"))\n writer.uint32(/* id 8, wireType 0 =*/64).int32(message.sessionInitiator);\n if (message.ftraceConfig != null && Object.hasOwnProperty.call(message, \"ftraceConfig\"))\n $root.perfetto.protos.FtraceConfig.encode(message.ftraceConfig, writer.uint32(/* id 100, wireType 2 =*/802).fork()).ldelim();\n if (message.chromeConfig != null && Object.hasOwnProperty.call(message, \"chromeConfig\"))\n $root.perfetto.protos.ChromeConfig.encode(message.chromeConfig, writer.uint32(/* id 101, wireType 2 =*/810).fork()).ldelim();\n if (message.inodeFileConfig != null && Object.hasOwnProperty.call(message, \"inodeFileConfig\"))\n $root.perfetto.protos.InodeFileConfig.encode(message.inodeFileConfig, writer.uint32(/* id 102, wireType 2 =*/818).fork()).ldelim();\n if (message.processStatsConfig != null && Object.hasOwnProperty.call(message, \"processStatsConfig\"))\n $root.perfetto.protos.ProcessStatsConfig.encode(message.processStatsConfig, writer.uint32(/* id 103, wireType 2 =*/826).fork()).ldelim();\n if (message.sysStatsConfig != null && Object.hasOwnProperty.call(message, \"sysStatsConfig\"))\n $root.perfetto.protos.SysStatsConfig.encode(message.sysStatsConfig, writer.uint32(/* id 104, wireType 2 =*/834).fork()).ldelim();\n if (message.heapprofdConfig != null && Object.hasOwnProperty.call(message, \"heapprofdConfig\"))\n $root.perfetto.protos.HeapprofdConfig.encode(message.heapprofdConfig, writer.uint32(/* id 105, wireType 2 =*/842).fork()).ldelim();\n if (message.androidPowerConfig != null && Object.hasOwnProperty.call(message, \"androidPowerConfig\"))\n $root.perfetto.protos.AndroidPowerConfig.encode(message.androidPowerConfig, writer.uint32(/* id 106, wireType 2 =*/850).fork()).ldelim();\n if (message.androidLogConfig != null && Object.hasOwnProperty.call(message, \"androidLogConfig\"))\n $root.perfetto.protos.AndroidLogConfig.encode(message.androidLogConfig, writer.uint32(/* id 107, wireType 2 =*/858).fork()).ldelim();\n if (message.gpuCounterConfig != null && Object.hasOwnProperty.call(message, \"gpuCounterConfig\"))\n $root.perfetto.protos.GpuCounterConfig.encode(message.gpuCounterConfig, writer.uint32(/* id 108, wireType 2 =*/866).fork()).ldelim();\n if (message.packagesListConfig != null && Object.hasOwnProperty.call(message, \"packagesListConfig\"))\n $root.perfetto.protos.PackagesListConfig.encode(message.packagesListConfig, writer.uint32(/* id 109, wireType 2 =*/874).fork()).ldelim();\n if (message.javaHprofConfig != null && Object.hasOwnProperty.call(message, \"javaHprofConfig\"))\n $root.perfetto.protos.JavaHprofConfig.encode(message.javaHprofConfig, writer.uint32(/* id 110, wireType 2 =*/882).fork()).ldelim();\n if (message.perfEventConfig != null && Object.hasOwnProperty.call(message, \"perfEventConfig\"))\n $root.perfetto.protos.PerfEventConfig.encode(message.perfEventConfig, writer.uint32(/* id 111, wireType 2 =*/890).fork()).ldelim();\n if (message.vulkanMemoryConfig != null && Object.hasOwnProperty.call(message, \"vulkanMemoryConfig\"))\n $root.perfetto.protos.VulkanMemoryConfig.encode(message.vulkanMemoryConfig, writer.uint32(/* id 112, wireType 2 =*/898).fork()).ldelim();\n if (message.trackEventConfig != null && Object.hasOwnProperty.call(message, \"trackEventConfig\"))\n $root.perfetto.protos.TrackEventConfig.encode(message.trackEventConfig, writer.uint32(/* id 113, wireType 2 =*/906).fork()).ldelim();\n if (message.androidPolledStateConfig != null && Object.hasOwnProperty.call(message, \"androidPolledStateConfig\"))\n $root.perfetto.protos.AndroidPolledStateConfig.encode(message.androidPolledStateConfig, writer.uint32(/* id 114, wireType 2 =*/914).fork()).ldelim();\n if (message.interceptorConfig != null && Object.hasOwnProperty.call(message, \"interceptorConfig\"))\n $root.perfetto.protos.InterceptorConfig.encode(message.interceptorConfig, writer.uint32(/* id 115, wireType 2 =*/922).fork()).ldelim();\n if (message.legacyConfig != null && Object.hasOwnProperty.call(message, \"legacyConfig\"))\n writer.uint32(/* id 1000, wireType 2 =*/8002).string(message.legacyConfig);\n if (message.forTesting != null && Object.hasOwnProperty.call(message, \"forTesting\"))\n $root.perfetto.protos.TestConfig.encode(message.forTesting, writer.uint32(/* id 1001, wireType 2 =*/8010).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified DataSourceConfig message, length delimited. Does not implicitly {@link perfetto.protos.DataSourceConfig.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.DataSourceConfig\n * @static\n * @param {perfetto.protos.IDataSourceConfig} message DataSourceConfig message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n DataSourceConfig.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a DataSourceConfig message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.DataSourceConfig\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.DataSourceConfig} DataSourceConfig\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n DataSourceConfig.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.DataSourceConfig();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.name = reader.string();\n break;\n case 2:\n message.targetBuffer = reader.uint32();\n break;\n case 3:\n message.traceDurationMs = reader.uint32();\n break;\n case 7:\n message.stopTimeoutMs = reader.uint32();\n break;\n case 6:\n message.enableExtraGuardrails = reader.bool();\n break;\n case 8:\n message.sessionInitiator = reader.int32();\n break;\n case 4:\n message.tracingSessionId = reader.uint64();\n break;\n case 100:\n message.ftraceConfig = $root.perfetto.protos.FtraceConfig.decode(reader, reader.uint32());\n break;\n case 102:\n message.inodeFileConfig = $root.perfetto.protos.InodeFileConfig.decode(reader, reader.uint32());\n break;\n case 103:\n message.processStatsConfig = $root.perfetto.protos.ProcessStatsConfig.decode(reader, reader.uint32());\n break;\n case 104:\n message.sysStatsConfig = $root.perfetto.protos.SysStatsConfig.decode(reader, reader.uint32());\n break;\n case 105:\n message.heapprofdConfig = $root.perfetto.protos.HeapprofdConfig.decode(reader, reader.uint32());\n break;\n case 110:\n message.javaHprofConfig = $root.perfetto.protos.JavaHprofConfig.decode(reader, reader.uint32());\n break;\n case 106:\n message.androidPowerConfig = $root.perfetto.protos.AndroidPowerConfig.decode(reader, reader.uint32());\n break;\n case 107:\n message.androidLogConfig = $root.perfetto.protos.AndroidLogConfig.decode(reader, reader.uint32());\n break;\n case 108:\n message.gpuCounterConfig = $root.perfetto.protos.GpuCounterConfig.decode(reader, reader.uint32());\n break;\n case 109:\n message.packagesListConfig = $root.perfetto.protos.PackagesListConfig.decode(reader, reader.uint32());\n break;\n case 111:\n message.perfEventConfig = $root.perfetto.protos.PerfEventConfig.decode(reader, reader.uint32());\n break;\n case 112:\n message.vulkanMemoryConfig = $root.perfetto.protos.VulkanMemoryConfig.decode(reader, reader.uint32());\n break;\n case 113:\n message.trackEventConfig = $root.perfetto.protos.TrackEventConfig.decode(reader, reader.uint32());\n break;\n case 114:\n message.androidPolledStateConfig = $root.perfetto.protos.AndroidPolledStateConfig.decode(reader, reader.uint32());\n break;\n case 101:\n message.chromeConfig = $root.perfetto.protos.ChromeConfig.decode(reader, reader.uint32());\n break;\n case 115:\n message.interceptorConfig = $root.perfetto.protos.InterceptorConfig.decode(reader, reader.uint32());\n break;\n case 1000:\n message.legacyConfig = reader.string();\n break;\n case 1001:\n message.forTesting = $root.perfetto.protos.TestConfig.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a DataSourceConfig message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.DataSourceConfig\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.DataSourceConfig} DataSourceConfig\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n DataSourceConfig.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a DataSourceConfig message.\n * @function verify\n * @memberof perfetto.protos.DataSourceConfig\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n DataSourceConfig.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.name != null && message.hasOwnProperty(\"name\"))\n if (!$util.isString(message.name))\n return \"name: string expected\";\n if (message.targetBuffer != null && message.hasOwnProperty(\"targetBuffer\"))\n if (!$util.isInteger(message.targetBuffer))\n return \"targetBuffer: integer expected\";\n if (message.traceDurationMs != null && message.hasOwnProperty(\"traceDurationMs\"))\n if (!$util.isInteger(message.traceDurationMs))\n return \"traceDurationMs: integer expected\";\n if (message.stopTimeoutMs != null && message.hasOwnProperty(\"stopTimeoutMs\"))\n if (!$util.isInteger(message.stopTimeoutMs))\n return \"stopTimeoutMs: integer expected\";\n if (message.enableExtraGuardrails != null && message.hasOwnProperty(\"enableExtraGuardrails\"))\n if (typeof message.enableExtraGuardrails !== \"boolean\")\n return \"enableExtraGuardrails: boolean expected\";\n if (message.sessionInitiator != null && message.hasOwnProperty(\"sessionInitiator\"))\n switch (message.sessionInitiator) {\n default:\n return \"sessionInitiator: enum value expected\";\n case 0:\n case 1:\n break;\n }\n if (message.tracingSessionId != null && message.hasOwnProperty(\"tracingSessionId\"))\n if (!$util.isInteger(message.tracingSessionId) && !(message.tracingSessionId && $util.isInteger(message.tracingSessionId.low) && $util.isInteger(message.tracingSessionId.high)))\n return \"tracingSessionId: integer|Long expected\";\n if (message.ftraceConfig != null && message.hasOwnProperty(\"ftraceConfig\")) {\n var error = $root.perfetto.protos.FtraceConfig.verify(message.ftraceConfig);\n if (error)\n return \"ftraceConfig.\" + error;\n }\n if (message.inodeFileConfig != null && message.hasOwnProperty(\"inodeFileConfig\")) {\n var error = $root.perfetto.protos.InodeFileConfig.verify(message.inodeFileConfig);\n if (error)\n return \"inodeFileConfig.\" + error;\n }\n if (message.processStatsConfig != null && message.hasOwnProperty(\"processStatsConfig\")) {\n var error = $root.perfetto.protos.ProcessStatsConfig.verify(message.processStatsConfig);\n if (error)\n return \"processStatsConfig.\" + error;\n }\n if (message.sysStatsConfig != null && message.hasOwnProperty(\"sysStatsConfig\")) {\n var error = $root.perfetto.protos.SysStatsConfig.verify(message.sysStatsConfig);\n if (error)\n return \"sysStatsConfig.\" + error;\n }\n if (message.heapprofdConfig != null && message.hasOwnProperty(\"heapprofdConfig\")) {\n var error = $root.perfetto.protos.HeapprofdConfig.verify(message.heapprofdConfig);\n if (error)\n return \"heapprofdConfig.\" + error;\n }\n if (message.javaHprofConfig != null && message.hasOwnProperty(\"javaHprofConfig\")) {\n var error = $root.perfetto.protos.JavaHprofConfig.verify(message.javaHprofConfig);\n if (error)\n return \"javaHprofConfig.\" + error;\n }\n if (message.androidPowerConfig != null && message.hasOwnProperty(\"androidPowerConfig\")) {\n var error = $root.perfetto.protos.AndroidPowerConfig.verify(message.androidPowerConfig);\n if (error)\n return \"androidPowerConfig.\" + error;\n }\n if (message.androidLogConfig != null && message.hasOwnProperty(\"androidLogConfig\")) {\n var error = $root.perfetto.protos.AndroidLogConfig.verify(message.androidLogConfig);\n if (error)\n return \"androidLogConfig.\" + error;\n }\n if (message.gpuCounterConfig != null && message.hasOwnProperty(\"gpuCounterConfig\")) {\n var error = $root.perfetto.protos.GpuCounterConfig.verify(message.gpuCounterConfig);\n if (error)\n return \"gpuCounterConfig.\" + error;\n }\n if (message.packagesListConfig != null && message.hasOwnProperty(\"packagesListConfig\")) {\n var error = $root.perfetto.protos.PackagesListConfig.verify(message.packagesListConfig);\n if (error)\n return \"packagesListConfig.\" + error;\n }\n if (message.perfEventConfig != null && message.hasOwnProperty(\"perfEventConfig\")) {\n var error = $root.perfetto.protos.PerfEventConfig.verify(message.perfEventConfig);\n if (error)\n return \"perfEventConfig.\" + error;\n }\n if (message.vulkanMemoryConfig != null && message.hasOwnProperty(\"vulkanMemoryConfig\")) {\n var error = $root.perfetto.protos.VulkanMemoryConfig.verify(message.vulkanMemoryConfig);\n if (error)\n return \"vulkanMemoryConfig.\" + error;\n }\n if (message.trackEventConfig != null && message.hasOwnProperty(\"trackEventConfig\")) {\n var error = $root.perfetto.protos.TrackEventConfig.verify(message.trackEventConfig);\n if (error)\n return \"trackEventConfig.\" + error;\n }\n if (message.androidPolledStateConfig != null && message.hasOwnProperty(\"androidPolledStateConfig\")) {\n var error = $root.perfetto.protos.AndroidPolledStateConfig.verify(message.androidPolledStateConfig);\n if (error)\n return \"androidPolledStateConfig.\" + error;\n }\n if (message.chromeConfig != null && message.hasOwnProperty(\"chromeConfig\")) {\n var error = $root.perfetto.protos.ChromeConfig.verify(message.chromeConfig);\n if (error)\n return \"chromeConfig.\" + error;\n }\n if (message.interceptorConfig != null && message.hasOwnProperty(\"interceptorConfig\")) {\n var error = $root.perfetto.protos.InterceptorConfig.verify(message.interceptorConfig);\n if (error)\n return \"interceptorConfig.\" + error;\n }\n if (message.legacyConfig != null && message.hasOwnProperty(\"legacyConfig\"))\n if (!$util.isString(message.legacyConfig))\n return \"legacyConfig: string expected\";\n if (message.forTesting != null && message.hasOwnProperty(\"forTesting\")) {\n var error = $root.perfetto.protos.TestConfig.verify(message.forTesting);\n if (error)\n return \"forTesting.\" + error;\n }\n return null;\n };\n\n /**\n * Creates a DataSourceConfig message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.DataSourceConfig\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.DataSourceConfig} DataSourceConfig\n */\n DataSourceConfig.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.DataSourceConfig)\n return object;\n var message = new $root.perfetto.protos.DataSourceConfig();\n if (object.name != null)\n message.name = String(object.name);\n if (object.targetBuffer != null)\n message.targetBuffer = object.targetBuffer >>> 0;\n if (object.traceDurationMs != null)\n message.traceDurationMs = object.traceDurationMs >>> 0;\n if (object.stopTimeoutMs != null)\n message.stopTimeoutMs = object.stopTimeoutMs >>> 0;\n if (object.enableExtraGuardrails != null)\n message.enableExtraGuardrails = Boolean(object.enableExtraGuardrails);\n switch (object.sessionInitiator) {\n case \"SESSION_INITIATOR_UNSPECIFIED\":\n case 0:\n message.sessionInitiator = 0;\n break;\n case \"SESSION_INITIATOR_TRUSTED_SYSTEM\":\n case 1:\n message.sessionInitiator = 1;\n break;\n }\n if (object.tracingSessionId != null)\n if ($util.Long)\n (message.tracingSessionId = $util.Long.fromValue(object.tracingSessionId)).unsigned = true;\n else if (typeof object.tracingSessionId === \"string\")\n message.tracingSessionId = parseInt(object.tracingSessionId, 10);\n else if (typeof object.tracingSessionId === \"number\")\n message.tracingSessionId = object.tracingSessionId;\n else if (typeof object.tracingSessionId === \"object\")\n message.tracingSessionId = new $util.LongBits(object.tracingSessionId.low >>> 0, object.tracingSessionId.high >>> 0).toNumber(true);\n if (object.ftraceConfig != null) {\n if (typeof object.ftraceConfig !== \"object\")\n throw TypeError(\".perfetto.protos.DataSourceConfig.ftraceConfig: object expected\");\n message.ftraceConfig = $root.perfetto.protos.FtraceConfig.fromObject(object.ftraceConfig);\n }\n if (object.inodeFileConfig != null) {\n if (typeof object.inodeFileConfig !== \"object\")\n throw TypeError(\".perfetto.protos.DataSourceConfig.inodeFileConfig: object expected\");\n message.inodeFileConfig = $root.perfetto.protos.InodeFileConfig.fromObject(object.inodeFileConfig);\n }\n if (object.processStatsConfig != null) {\n if (typeof object.processStatsConfig !== \"object\")\n throw TypeError(\".perfetto.protos.DataSourceConfig.processStatsConfig: object expected\");\n message.processStatsConfig = $root.perfetto.protos.ProcessStatsConfig.fromObject(object.processStatsConfig);\n }\n if (object.sysStatsConfig != null) {\n if (typeof object.sysStatsConfig !== \"object\")\n throw TypeError(\".perfetto.protos.DataSourceConfig.sysStatsConfig: object expected\");\n message.sysStatsConfig = $root.perfetto.protos.SysStatsConfig.fromObject(object.sysStatsConfig);\n }\n if (object.heapprofdConfig != null) {\n if (typeof object.heapprofdConfig !== \"object\")\n throw TypeError(\".perfetto.protos.DataSourceConfig.heapprofdConfig: object expected\");\n message.heapprofdConfig = $root.perfetto.protos.HeapprofdConfig.fromObject(object.heapprofdConfig);\n }\n if (object.javaHprofConfig != null) {\n if (typeof object.javaHprofConfig !== \"object\")\n throw TypeError(\".perfetto.protos.DataSourceConfig.javaHprofConfig: object expected\");\n message.javaHprofConfig = $root.perfetto.protos.JavaHprofConfig.fromObject(object.javaHprofConfig);\n }\n if (object.androidPowerConfig != null) {\n if (typeof object.androidPowerConfig !== \"object\")\n throw TypeError(\".perfetto.protos.DataSourceConfig.androidPowerConfig: object expected\");\n message.androidPowerConfig = $root.perfetto.protos.AndroidPowerConfig.fromObject(object.androidPowerConfig);\n }\n if (object.androidLogConfig != null) {\n if (typeof object.androidLogConfig !== \"object\")\n throw TypeError(\".perfetto.protos.DataSourceConfig.androidLogConfig: object expected\");\n message.androidLogConfig = $root.perfetto.protos.AndroidLogConfig.fromObject(object.androidLogConfig);\n }\n if (object.gpuCounterConfig != null) {\n if (typeof object.gpuCounterConfig !== \"object\")\n throw TypeError(\".perfetto.protos.DataSourceConfig.gpuCounterConfig: object expected\");\n message.gpuCounterConfig = $root.perfetto.protos.GpuCounterConfig.fromObject(object.gpuCounterConfig);\n }\n if (object.packagesListConfig != null) {\n if (typeof object.packagesListConfig !== \"object\")\n throw TypeError(\".perfetto.protos.DataSourceConfig.packagesListConfig: object expected\");\n message.packagesListConfig = $root.perfetto.protos.PackagesListConfig.fromObject(object.packagesListConfig);\n }\n if (object.perfEventConfig != null) {\n if (typeof object.perfEventConfig !== \"object\")\n throw TypeError(\".perfetto.protos.DataSourceConfig.perfEventConfig: object expected\");\n message.perfEventConfig = $root.perfetto.protos.PerfEventConfig.fromObject(object.perfEventConfig);\n }\n if (object.vulkanMemoryConfig != null) {\n if (typeof object.vulkanMemoryConfig !== \"object\")\n throw TypeError(\".perfetto.protos.DataSourceConfig.vulkanMemoryConfig: object expected\");\n message.vulkanMemoryConfig = $root.perfetto.protos.VulkanMemoryConfig.fromObject(object.vulkanMemoryConfig);\n }\n if (object.trackEventConfig != null) {\n if (typeof object.trackEventConfig !== \"object\")\n throw TypeError(\".perfetto.protos.DataSourceConfig.trackEventConfig: object expected\");\n message.trackEventConfig = $root.perfetto.protos.TrackEventConfig.fromObject(object.trackEventConfig);\n }\n if (object.androidPolledStateConfig != null) {\n if (typeof object.androidPolledStateConfig !== \"object\")\n throw TypeError(\".perfetto.protos.DataSourceConfig.androidPolledStateConfig: object expected\");\n message.androidPolledStateConfig = $root.perfetto.protos.AndroidPolledStateConfig.fromObject(object.androidPolledStateConfig);\n }\n if (object.chromeConfig != null) {\n if (typeof object.chromeConfig !== \"object\")\n throw TypeError(\".perfetto.protos.DataSourceConfig.chromeConfig: object expected\");\n message.chromeConfig = $root.perfetto.protos.ChromeConfig.fromObject(object.chromeConfig);\n }\n if (object.interceptorConfig != null) {\n if (typeof object.interceptorConfig !== \"object\")\n throw TypeError(\".perfetto.protos.DataSourceConfig.interceptorConfig: object expected\");\n message.interceptorConfig = $root.perfetto.protos.InterceptorConfig.fromObject(object.interceptorConfig);\n }\n if (object.legacyConfig != null)\n message.legacyConfig = String(object.legacyConfig);\n if (object.forTesting != null) {\n if (typeof object.forTesting !== \"object\")\n throw TypeError(\".perfetto.protos.DataSourceConfig.forTesting: object expected\");\n message.forTesting = $root.perfetto.protos.TestConfig.fromObject(object.forTesting);\n }\n return message;\n };\n\n /**\n * Creates a plain object from a DataSourceConfig message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.DataSourceConfig\n * @static\n * @param {perfetto.protos.DataSourceConfig} message DataSourceConfig\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n DataSourceConfig.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.name = \"\";\n object.targetBuffer = 0;\n object.traceDurationMs = 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, true);\n object.tracingSessionId = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.tracingSessionId = options.longs === String ? \"0\" : 0;\n object.enableExtraGuardrails = false;\n object.stopTimeoutMs = 0;\n object.sessionInitiator = options.enums === String ? \"SESSION_INITIATOR_UNSPECIFIED\" : 0;\n object.ftraceConfig = null;\n object.chromeConfig = null;\n object.inodeFileConfig = null;\n object.processStatsConfig = null;\n object.sysStatsConfig = null;\n object.heapprofdConfig = null;\n object.androidPowerConfig = null;\n object.androidLogConfig = null;\n object.gpuCounterConfig = null;\n object.packagesListConfig = null;\n object.javaHprofConfig = null;\n object.perfEventConfig = null;\n object.vulkanMemoryConfig = null;\n object.trackEventConfig = null;\n object.androidPolledStateConfig = null;\n object.interceptorConfig = null;\n object.legacyConfig = \"\";\n object.forTesting = null;\n }\n if (message.name != null && message.hasOwnProperty(\"name\"))\n object.name = message.name;\n if (message.targetBuffer != null && message.hasOwnProperty(\"targetBuffer\"))\n object.targetBuffer = message.targetBuffer;\n if (message.traceDurationMs != null && message.hasOwnProperty(\"traceDurationMs\"))\n object.traceDurationMs = message.traceDurationMs;\n if (message.tracingSessionId != null && message.hasOwnProperty(\"tracingSessionId\"))\n if (typeof message.tracingSessionId === \"number\")\n object.tracingSessionId = options.longs === String ? String(message.tracingSessionId) : message.tracingSessionId;\n else\n object.tracingSessionId = options.longs === String ? $util.Long.prototype.toString.call(message.tracingSessionId) : options.longs === Number ? new $util.LongBits(message.tracingSessionId.low >>> 0, message.tracingSessionId.high >>> 0).toNumber(true) : message.tracingSessionId;\n if (message.enableExtraGuardrails != null && message.hasOwnProperty(\"enableExtraGuardrails\"))\n object.enableExtraGuardrails = message.enableExtraGuardrails;\n if (message.stopTimeoutMs != null && message.hasOwnProperty(\"stopTimeoutMs\"))\n object.stopTimeoutMs = message.stopTimeoutMs;\n if (message.sessionInitiator != null && message.hasOwnProperty(\"sessionInitiator\"))\n object.sessionInitiator = options.enums === String ? $root.perfetto.protos.DataSourceConfig.SessionInitiator[message.sessionInitiator] : message.sessionInitiator;\n if (message.ftraceConfig != null && message.hasOwnProperty(\"ftraceConfig\"))\n object.ftraceConfig = $root.perfetto.protos.FtraceConfig.toObject(message.ftraceConfig, options);\n if (message.chromeConfig != null && message.hasOwnProperty(\"chromeConfig\"))\n object.chromeConfig = $root.perfetto.protos.ChromeConfig.toObject(message.chromeConfig, options);\n if (message.inodeFileConfig != null && message.hasOwnProperty(\"inodeFileConfig\"))\n object.inodeFileConfig = $root.perfetto.protos.InodeFileConfig.toObject(message.inodeFileConfig, options);\n if (message.processStatsConfig != null && message.hasOwnProperty(\"processStatsConfig\"))\n object.processStatsConfig = $root.perfetto.protos.ProcessStatsConfig.toObject(message.processStatsConfig, options);\n if (message.sysStatsConfig != null && message.hasOwnProperty(\"sysStatsConfig\"))\n object.sysStatsConfig = $root.perfetto.protos.SysStatsConfig.toObject(message.sysStatsConfig, options);\n if (message.heapprofdConfig != null && message.hasOwnProperty(\"heapprofdConfig\"))\n object.heapprofdConfig = $root.perfetto.protos.HeapprofdConfig.toObject(message.heapprofdConfig, options);\n if (message.androidPowerConfig != null && message.hasOwnProperty(\"androidPowerConfig\"))\n object.androidPowerConfig = $root.perfetto.protos.AndroidPowerConfig.toObject(message.androidPowerConfig, options);\n if (message.androidLogConfig != null && message.hasOwnProperty(\"androidLogConfig\"))\n object.androidLogConfig = $root.perfetto.protos.AndroidLogConfig.toObject(message.androidLogConfig, options);\n if (message.gpuCounterConfig != null && message.hasOwnProperty(\"gpuCounterConfig\"))\n object.gpuCounterConfig = $root.perfetto.protos.GpuCounterConfig.toObject(message.gpuCounterConfig, options);\n if (message.packagesListConfig != null && message.hasOwnProperty(\"packagesListConfig\"))\n object.packagesListConfig = $root.perfetto.protos.PackagesListConfig.toObject(message.packagesListConfig, options);\n if (message.javaHprofConfig != null && message.hasOwnProperty(\"javaHprofConfig\"))\n object.javaHprofConfig = $root.perfetto.protos.JavaHprofConfig.toObject(message.javaHprofConfig, options);\n if (message.perfEventConfig != null && message.hasOwnProperty(\"perfEventConfig\"))\n object.perfEventConfig = $root.perfetto.protos.PerfEventConfig.toObject(message.perfEventConfig, options);\n if (message.vulkanMemoryConfig != null && message.hasOwnProperty(\"vulkanMemoryConfig\"))\n object.vulkanMemoryConfig = $root.perfetto.protos.VulkanMemoryConfig.toObject(message.vulkanMemoryConfig, options);\n if (message.trackEventConfig != null && message.hasOwnProperty(\"trackEventConfig\"))\n object.trackEventConfig = $root.perfetto.protos.TrackEventConfig.toObject(message.trackEventConfig, options);\n if (message.androidPolledStateConfig != null && message.hasOwnProperty(\"androidPolledStateConfig\"))\n object.androidPolledStateConfig = $root.perfetto.protos.AndroidPolledStateConfig.toObject(message.androidPolledStateConfig, options);\n if (message.interceptorConfig != null && message.hasOwnProperty(\"interceptorConfig\"))\n object.interceptorConfig = $root.perfetto.protos.InterceptorConfig.toObject(message.interceptorConfig, options);\n if (message.legacyConfig != null && message.hasOwnProperty(\"legacyConfig\"))\n object.legacyConfig = message.legacyConfig;\n if (message.forTesting != null && message.hasOwnProperty(\"forTesting\"))\n object.forTesting = $root.perfetto.protos.TestConfig.toObject(message.forTesting, options);\n return object;\n };\n\n /**\n * Converts this DataSourceConfig to JSON.\n * @function toJSON\n * @memberof perfetto.protos.DataSourceConfig\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n DataSourceConfig.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n /**\n * SessionInitiator enum.\n * @name perfetto.protos.DataSourceConfig.SessionInitiator\n * @enum {number}\n * @property {number} SESSION_INITIATOR_UNSPECIFIED=0 SESSION_INITIATOR_UNSPECIFIED value\n * @property {number} SESSION_INITIATOR_TRUSTED_SYSTEM=1 SESSION_INITIATOR_TRUSTED_SYSTEM value\n */\n DataSourceConfig.SessionInitiator = (function() {\n var valuesById = {}, values = Object.create(valuesById);\n values[valuesById[0] = \"SESSION_INITIATOR_UNSPECIFIED\"] = 0;\n values[valuesById[1] = \"SESSION_INITIATOR_TRUSTED_SYSTEM\"] = 1;\n return values;\n })();\n\n return DataSourceConfig;\n })();\n\n protos.TraceConfig = (function() {\n\n /**\n * Properties of a TraceConfig.\n * @memberof perfetto.protos\n * @interface ITraceConfig\n * @property {Array.<perfetto.protos.TraceConfig.IBufferConfig>|null} [buffers] TraceConfig buffers\n * @property {Array.<perfetto.protos.TraceConfig.IDataSource>|null} [dataSources] TraceConfig dataSources\n * @property {perfetto.protos.TraceConfig.IBuiltinDataSource|null} [builtinDataSources] TraceConfig builtinDataSources\n * @property {number|null} [durationMs] TraceConfig durationMs\n * @property {boolean|null} [enableExtraGuardrails] TraceConfig enableExtraGuardrails\n * @property {perfetto.protos.TraceConfig.LockdownModeOperation|null} [lockdownMode] TraceConfig lockdownMode\n * @property {Array.<perfetto.protos.TraceConfig.IProducerConfig>|null} [producers] TraceConfig producers\n * @property {perfetto.protos.TraceConfig.IStatsdMetadata|null} [statsdMetadata] TraceConfig statsdMetadata\n * @property {boolean|null} [writeIntoFile] TraceConfig writeIntoFile\n * @property {string|null} [outputPath] TraceConfig outputPath\n * @property {number|null} [fileWritePeriodMs] TraceConfig fileWritePeriodMs\n * @property {number|null} [maxFileSizeBytes] TraceConfig maxFileSizeBytes\n * @property {perfetto.protos.TraceConfig.IGuardrailOverrides|null} [guardrailOverrides] TraceConfig guardrailOverrides\n * @property {boolean|null} [deferredStart] TraceConfig deferredStart\n * @property {number|null} [flushPeriodMs] TraceConfig flushPeriodMs\n * @property {number|null} [flushTimeoutMs] TraceConfig flushTimeoutMs\n * @property {number|null} [dataSourceStopTimeoutMs] TraceConfig dataSourceStopTimeoutMs\n * @property {boolean|null} [notifyTraceur] TraceConfig notifyTraceur\n * @property {number|null} [bugreportScore] TraceConfig bugreportScore\n * @property {perfetto.protos.TraceConfig.ITriggerConfig|null} [triggerConfig] TraceConfig triggerConfig\n * @property {Array.<string>|null} [activateTriggers] TraceConfig activateTriggers\n * @property {perfetto.protos.TraceConfig.IIncrementalStateConfig|null} [incrementalStateConfig] TraceConfig incrementalStateConfig\n * @property {boolean|null} [allowUserBuildTracing] TraceConfig allowUserBuildTracing\n * @property {string|null} [uniqueSessionName] TraceConfig uniqueSessionName\n * @property {perfetto.protos.TraceConfig.CompressionType|null} [compressionType] TraceConfig compressionType\n * @property {perfetto.protos.TraceConfig.IIncidentReportConfig|null} [incidentReportConfig] TraceConfig incidentReportConfig\n * @property {perfetto.protos.TraceConfig.StatsdLogging|null} [statsdLogging] TraceConfig statsdLogging\n * @property {number|null} [traceUuidMsb] TraceConfig traceUuidMsb\n * @property {number|null} [traceUuidLsb] TraceConfig traceUuidLsb\n * @property {perfetto.protos.TraceConfig.ITraceFilter|null} [traceFilter] TraceConfig traceFilter\n */\n\n /**\n * Constructs a new TraceConfig.\n * @memberof perfetto.protos\n * @classdesc Represents a TraceConfig.\n * @implements ITraceConfig\n * @constructor\n * @param {perfetto.protos.ITraceConfig=} [properties] Properties to set\n */\n function TraceConfig(properties) {\n this.buffers = [];\n this.dataSources = [];\n this.producers = [];\n this.activateTriggers = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * TraceConfig buffers.\n * @member {Array.<perfetto.protos.TraceConfig.IBufferConfig>} buffers\n * @memberof perfetto.protos.TraceConfig\n * @instance\n */\n TraceConfig.prototype.buffers = $util.emptyArray;\n\n /**\n * TraceConfig dataSources.\n * @member {Array.<perfetto.protos.TraceConfig.IDataSource>} dataSources\n * @memberof perfetto.protos.TraceConfig\n * @instance\n */\n TraceConfig.prototype.dataSources = $util.emptyArray;\n\n /**\n * TraceConfig builtinDataSources.\n * @member {perfetto.protos.TraceConfig.IBuiltinDataSource|null|undefined} builtinDataSources\n * @memberof perfetto.protos.TraceConfig\n * @instance\n */\n TraceConfig.prototype.builtinDataSources = null;\n\n /**\n * TraceConfig durationMs.\n * @member {number} durationMs\n * @memberof perfetto.protos.TraceConfig\n * @instance\n */\n TraceConfig.prototype.durationMs = 0;\n\n /**\n * TraceConfig enableExtraGuardrails.\n * @member {boolean} enableExtraGuardrails\n * @memberof perfetto.protos.TraceConfig\n * @instance\n */\n TraceConfig.prototype.enableExtraGuardrails = false;\n\n /**\n * TraceConfig lockdownMode.\n * @member {perfetto.protos.TraceConfig.LockdownModeOperation} lockdownMode\n * @memberof perfetto.protos.TraceConfig\n * @instance\n */\n TraceConfig.prototype.lockdownMode = 0;\n\n /**\n * TraceConfig producers.\n * @member {Array.<perfetto.protos.TraceConfig.IProducerConfig>} producers\n * @memberof perfetto.protos.TraceConfig\n * @instance\n */\n TraceConfig.prototype.producers = $util.emptyArray;\n\n /**\n * TraceConfig statsdMetadata.\n * @member {perfetto.protos.TraceConfig.IStatsdMetadata|null|undefined} statsdMetadata\n * @memberof perfetto.protos.TraceConfig\n * @instance\n */\n TraceConfig.prototype.statsdMetadata = null;\n\n /**\n * TraceConfig writeIntoFile.\n * @member {boolean} writeIntoFile\n * @memberof perfetto.protos.TraceConfig\n * @instance\n */\n TraceConfig.prototype.writeIntoFile = false;\n\n /**\n * TraceConfig outputPath.\n * @member {string} outputPath\n * @memberof perfetto.protos.TraceConfig\n * @instance\n */\n TraceConfig.prototype.outputPath = \"\";\n\n /**\n * TraceConfig fileWritePeriodMs.\n * @member {number} fileWritePeriodMs\n * @memberof perfetto.protos.TraceConfig\n * @instance\n */\n TraceConfig.prototype.fileWritePeriodMs = 0;\n\n /**\n * TraceConfig maxFileSizeBytes.\n * @member {number} maxFileSizeBytes\n * @memberof perfetto.protos.TraceConfig\n * @instance\n */\n TraceConfig.prototype.maxFileSizeBytes = $util.Long ? $util.Long.fromBits(0,0,true) : 0;\n\n /**\n * TraceConfig guardrailOverrides.\n * @member {perfetto.protos.TraceConfig.IGuardrailOverrides|null|undefined} guardrailOverrides\n * @memberof perfetto.protos.TraceConfig\n * @instance\n */\n TraceConfig.prototype.guardrailOverrides = null;\n\n /**\n * TraceConfig deferredStart.\n * @member {boolean} deferredStart\n * @memberof perfetto.protos.TraceConfig\n * @instance\n */\n TraceConfig.prototype.deferredStart = false;\n\n /**\n * TraceConfig flushPeriodMs.\n * @member {number} flushPeriodMs\n * @memberof perfetto.protos.TraceConfig\n * @instance\n */\n TraceConfig.prototype.flushPeriodMs = 0;\n\n /**\n * TraceConfig flushTimeoutMs.\n * @member {number} flushTimeoutMs\n * @memberof perfetto.protos.TraceConfig\n * @instance\n */\n TraceConfig.prototype.flushTimeoutMs = 0;\n\n /**\n * TraceConfig dataSourceStopTimeoutMs.\n * @member {number} dataSourceStopTimeoutMs\n * @memberof perfetto.protos.TraceConfig\n * @instance\n */\n TraceConfig.prototype.dataSourceStopTimeoutMs = 0;\n\n /**\n * TraceConfig notifyTraceur.\n * @member {boolean} notifyTraceur\n * @memberof perfetto.protos.TraceConfig\n * @instance\n */\n TraceConfig.prototype.notifyTraceur = false;\n\n /**\n * TraceConfig bugreportScore.\n * @member {number} bugreportScore\n * @memberof perfetto.protos.TraceConfig\n * @instance\n */\n TraceConfig.prototype.bugreportScore = 0;\n\n /**\n * TraceConfig triggerConfig.\n * @member {perfetto.protos.TraceConfig.ITriggerConfig|null|undefined} triggerConfig\n * @memberof perfetto.protos.TraceConfig\n * @instance\n */\n TraceConfig.prototype.triggerConfig = null;\n\n /**\n * TraceConfig activateTriggers.\n * @member {Array.<string>} activateTriggers\n * @memberof perfetto.protos.TraceConfig\n * @instance\n */\n TraceConfig.prototype.activateTriggers = $util.emptyArray;\n\n /**\n * TraceConfig incrementalStateConfig.\n * @member {perfetto.protos.TraceConfig.IIncrementalStateConfig|null|undefined} incrementalStateConfig\n * @memberof perfetto.protos.TraceConfig\n * @instance\n */\n TraceConfig.prototype.incrementalStateConfig = null;\n\n /**\n * TraceConfig allowUserBuildTracing.\n * @member {boolean} allowUserBuildTracing\n * @memberof perfetto.protos.TraceConfig\n * @instance\n */\n TraceConfig.prototype.allowUserBuildTracing = false;\n\n /**\n * TraceConfig uniqueSessionName.\n * @member {string} uniqueSessionName\n * @memberof perfetto.protos.TraceConfig\n * @instance\n */\n TraceConfig.prototype.uniqueSessionName = \"\";\n\n /**\n * TraceConfig compressionType.\n * @member {perfetto.protos.TraceConfig.CompressionType} compressionType\n * @memberof perfetto.protos.TraceConfig\n * @instance\n */\n TraceConfig.prototype.compressionType = 0;\n\n /**\n * TraceConfig incidentReportConfig.\n * @member {perfetto.protos.TraceConfig.IIncidentReportConfig|null|undefined} incidentReportConfig\n * @memberof perfetto.protos.TraceConfig\n * @instance\n */\n TraceConfig.prototype.incidentReportConfig = null;\n\n /**\n * TraceConfig statsdLogging.\n * @member {perfetto.protos.TraceConfig.StatsdLogging} statsdLogging\n * @memberof perfetto.protos.TraceConfig\n * @instance\n */\n TraceConfig.prototype.statsdLogging = 0;\n\n /**\n * TraceConfig traceUuidMsb.\n * @member {number} traceUuidMsb\n * @memberof perfetto.protos.TraceConfig\n * @instance\n */\n TraceConfig.prototype.traceUuidMsb = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * TraceConfig traceUuidLsb.\n * @member {number} traceUuidLsb\n * @memberof perfetto.protos.TraceConfig\n * @instance\n */\n TraceConfig.prototype.traceUuidLsb = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * TraceConfig traceFilter.\n * @member {perfetto.protos.TraceConfig.ITraceFilter|null|undefined} traceFilter\n * @memberof perfetto.protos.TraceConfig\n * @instance\n */\n TraceConfig.prototype.traceFilter = null;\n\n /**\n * Creates a new TraceConfig instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.TraceConfig\n * @static\n * @param {perfetto.protos.ITraceConfig=} [properties] Properties to set\n * @returns {perfetto.protos.TraceConfig} TraceConfig instance\n */\n TraceConfig.create = function create(properties) {\n return new TraceConfig(properties);\n };\n\n /**\n * Encodes the specified TraceConfig message. Does not implicitly {@link perfetto.protos.TraceConfig.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.TraceConfig\n * @static\n * @param {perfetto.protos.ITraceConfig} message TraceConfig message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n TraceConfig.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.buffers != null && message.buffers.length)\n for (var i = 0; i < message.buffers.length; ++i)\n $root.perfetto.protos.TraceConfig.BufferConfig.encode(message.buffers[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n if (message.dataSources != null && message.dataSources.length)\n for (var i = 0; i < message.dataSources.length; ++i)\n $root.perfetto.protos.TraceConfig.DataSource.encode(message.dataSources[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n if (message.durationMs != null && Object.hasOwnProperty.call(message, \"durationMs\"))\n writer.uint32(/* id 3, wireType 0 =*/24).uint32(message.durationMs);\n if (message.enableExtraGuardrails != null && Object.hasOwnProperty.call(message, \"enableExtraGuardrails\"))\n writer.uint32(/* id 4, wireType 0 =*/32).bool(message.enableExtraGuardrails);\n if (message.lockdownMode != null && Object.hasOwnProperty.call(message, \"lockdownMode\"))\n writer.uint32(/* id 5, wireType 0 =*/40).int32(message.lockdownMode);\n if (message.producers != null && message.producers.length)\n for (var i = 0; i < message.producers.length; ++i)\n $root.perfetto.protos.TraceConfig.ProducerConfig.encode(message.producers[i], writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim();\n if (message.statsdMetadata != null && Object.hasOwnProperty.call(message, \"statsdMetadata\"))\n $root.perfetto.protos.TraceConfig.StatsdMetadata.encode(message.statsdMetadata, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim();\n if (message.writeIntoFile != null && Object.hasOwnProperty.call(message, \"writeIntoFile\"))\n writer.uint32(/* id 8, wireType 0 =*/64).bool(message.writeIntoFile);\n if (message.fileWritePeriodMs != null && Object.hasOwnProperty.call(message, \"fileWritePeriodMs\"))\n writer.uint32(/* id 9, wireType 0 =*/72).uint32(message.fileWritePeriodMs);\n if (message.maxFileSizeBytes != null && Object.hasOwnProperty.call(message, \"maxFileSizeBytes\"))\n writer.uint32(/* id 10, wireType 0 =*/80).uint64(message.maxFileSizeBytes);\n if (message.guardrailOverrides != null && Object.hasOwnProperty.call(message, \"guardrailOverrides\"))\n $root.perfetto.protos.TraceConfig.GuardrailOverrides.encode(message.guardrailOverrides, writer.uint32(/* id 11, wireType 2 =*/90).fork()).ldelim();\n if (message.deferredStart != null && Object.hasOwnProperty.call(message, \"deferredStart\"))\n writer.uint32(/* id 12, wireType 0 =*/96).bool(message.deferredStart);\n if (message.flushPeriodMs != null && Object.hasOwnProperty.call(message, \"flushPeriodMs\"))\n writer.uint32(/* id 13, wireType 0 =*/104).uint32(message.flushPeriodMs);\n if (message.flushTimeoutMs != null && Object.hasOwnProperty.call(message, \"flushTimeoutMs\"))\n writer.uint32(/* id 14, wireType 0 =*/112).uint32(message.flushTimeoutMs);\n if (message.notifyTraceur != null && Object.hasOwnProperty.call(message, \"notifyTraceur\"))\n writer.uint32(/* id 16, wireType 0 =*/128).bool(message.notifyTraceur);\n if (message.triggerConfig != null && Object.hasOwnProperty.call(message, \"triggerConfig\"))\n $root.perfetto.protos.TraceConfig.TriggerConfig.encode(message.triggerConfig, writer.uint32(/* id 17, wireType 2 =*/138).fork()).ldelim();\n if (message.activateTriggers != null && message.activateTriggers.length)\n for (var i = 0; i < message.activateTriggers.length; ++i)\n writer.uint32(/* id 18, wireType 2 =*/146).string(message.activateTriggers[i]);\n if (message.allowUserBuildTracing != null && Object.hasOwnProperty.call(message, \"allowUserBuildTracing\"))\n writer.uint32(/* id 19, wireType 0 =*/152).bool(message.allowUserBuildTracing);\n if (message.builtinDataSources != null && Object.hasOwnProperty.call(message, \"builtinDataSources\"))\n $root.perfetto.protos.TraceConfig.BuiltinDataSource.encode(message.builtinDataSources, writer.uint32(/* id 20, wireType 2 =*/162).fork()).ldelim();\n if (message.incrementalStateConfig != null && Object.hasOwnProperty.call(message, \"incrementalStateConfig\"))\n $root.perfetto.protos.TraceConfig.IncrementalStateConfig.encode(message.incrementalStateConfig, writer.uint32(/* id 21, wireType 2 =*/170).fork()).ldelim();\n if (message.uniqueSessionName != null && Object.hasOwnProperty.call(message, \"uniqueSessionName\"))\n writer.uint32(/* id 22, wireType 2 =*/178).string(message.uniqueSessionName);\n if (message.dataSourceStopTimeoutMs != null && Object.hasOwnProperty.call(message, \"dataSourceStopTimeoutMs\"))\n writer.uint32(/* id 23, wireType 0 =*/184).uint32(message.dataSourceStopTimeoutMs);\n if (message.compressionType != null && Object.hasOwnProperty.call(message, \"compressionType\"))\n writer.uint32(/* id 24, wireType 0 =*/192).int32(message.compressionType);\n if (message.incidentReportConfig != null && Object.hasOwnProperty.call(message, \"incidentReportConfig\"))\n $root.perfetto.protos.TraceConfig.IncidentReportConfig.encode(message.incidentReportConfig, writer.uint32(/* id 25, wireType 2 =*/202).fork()).ldelim();\n if (message.traceUuidMsb != null && Object.hasOwnProperty.call(message, \"traceUuidMsb\"))\n writer.uint32(/* id 27, wireType 0 =*/216).int64(message.traceUuidMsb);\n if (message.traceUuidLsb != null && Object.hasOwnProperty.call(message, \"traceUuidLsb\"))\n writer.uint32(/* id 28, wireType 0 =*/224).int64(message.traceUuidLsb);\n if (message.outputPath != null && Object.hasOwnProperty.call(message, \"outputPath\"))\n writer.uint32(/* id 29, wireType 2 =*/234).string(message.outputPath);\n if (message.bugreportScore != null && Object.hasOwnProperty.call(message, \"bugreportScore\"))\n writer.uint32(/* id 30, wireType 0 =*/240).int32(message.bugreportScore);\n if (message.statsdLogging != null && Object.hasOwnProperty.call(message, \"statsdLogging\"))\n writer.uint32(/* id 31, wireType 0 =*/248).int32(message.statsdLogging);\n if (message.traceFilter != null && Object.hasOwnProperty.call(message, \"traceFilter\"))\n $root.perfetto.protos.TraceConfig.TraceFilter.encode(message.traceFilter, writer.uint32(/* id 33, wireType 2 =*/266).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified TraceConfig message, length delimited. Does not implicitly {@link perfetto.protos.TraceConfig.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.TraceConfig\n * @static\n * @param {perfetto.protos.ITraceConfig} message TraceConfig message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n TraceConfig.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a TraceConfig message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.TraceConfig\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.TraceConfig} TraceConfig\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n TraceConfig.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.TraceConfig();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (!(message.buffers && message.buffers.length))\n message.buffers = [];\n message.buffers.push($root.perfetto.protos.TraceConfig.BufferConfig.decode(reader, reader.uint32()));\n break;\n case 2:\n if (!(message.dataSources && message.dataSources.length))\n message.dataSources = [];\n message.dataSources.push($root.perfetto.protos.TraceConfig.DataSource.decode(reader, reader.uint32()));\n break;\n case 20:\n message.builtinDataSources = $root.perfetto.protos.TraceConfig.BuiltinDataSource.decode(reader, reader.uint32());\n break;\n case 3:\n message.durationMs = reader.uint32();\n break;\n case 4:\n message.enableExtraGuardrails = reader.bool();\n break;\n case 5:\n message.lockdownMode = reader.int32();\n break;\n case 6:\n if (!(message.producers && message.producers.length))\n message.producers = [];\n message.producers.push($root.perfetto.protos.TraceConfig.ProducerConfig.decode(reader, reader.uint32()));\n break;\n case 7:\n message.statsdMetadata = $root.perfetto.protos.TraceConfig.StatsdMetadata.decode(reader, reader.uint32());\n break;\n case 8:\n message.writeIntoFile = reader.bool();\n break;\n case 29:\n message.outputPath = reader.string();\n break;\n case 9:\n message.fileWritePeriodMs = reader.uint32();\n break;\n case 10:\n message.maxFileSizeBytes = reader.uint64();\n break;\n case 11:\n message.guardrailOverrides = $root.perfetto.protos.TraceConfig.GuardrailOverrides.decode(reader, reader.uint32());\n break;\n case 12:\n message.deferredStart = reader.bool();\n break;\n case 13:\n message.flushPeriodMs = reader.uint32();\n break;\n case 14:\n message.flushTimeoutMs = reader.uint32();\n break;\n case 23:\n message.dataSourceStopTimeoutMs = reader.uint32();\n break;\n case 16:\n message.notifyTraceur = reader.bool();\n break;\n case 30:\n message.bugreportScore = reader.int32();\n break;\n case 17:\n message.triggerConfig = $root.perfetto.protos.TraceConfig.TriggerConfig.decode(reader, reader.uint32());\n break;\n case 18:\n if (!(message.activateTriggers && message.activateTriggers.length))\n message.activateTriggers = [];\n message.activateTriggers.push(reader.string());\n break;\n case 21:\n message.incrementalStateConfig = $root.perfetto.protos.TraceConfig.IncrementalStateConfig.decode(reader, reader.uint32());\n break;\n case 19:\n message.allowUserBuildTracing = reader.bool();\n break;\n case 22:\n message.uniqueSessionName = reader.string();\n break;\n case 24:\n message.compressionType = reader.int32();\n break;\n case 25:\n message.incidentReportConfig = $root.perfetto.protos.TraceConfig.IncidentReportConfig.decode(reader, reader.uint32());\n break;\n case 31:\n message.statsdLogging = reader.int32();\n break;\n case 27:\n message.traceUuidMsb = reader.int64();\n break;\n case 28:\n message.traceUuidLsb = reader.int64();\n break;\n case 33:\n message.traceFilter = $root.perfetto.protos.TraceConfig.TraceFilter.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a TraceConfig message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.TraceConfig\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.TraceConfig} TraceConfig\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n TraceConfig.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a TraceConfig message.\n * @function verify\n * @memberof perfetto.protos.TraceConfig\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n TraceConfig.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.buffers != null && message.hasOwnProperty(\"buffers\")) {\n if (!Array.isArray(message.buffers))\n return \"buffers: array expected\";\n for (var i = 0; i < message.buffers.length; ++i) {\n var error = $root.perfetto.protos.TraceConfig.BufferConfig.verify(message.buffers[i]);\n if (error)\n return \"buffers.\" + error;\n }\n }\n if (message.dataSources != null && message.hasOwnProperty(\"dataSources\")) {\n if (!Array.isArray(message.dataSources))\n return \"dataSources: array expected\";\n for (var i = 0; i < message.dataSources.length; ++i) {\n var error = $root.perfetto.protos.TraceConfig.DataSource.verify(message.dataSources[i]);\n if (error)\n return \"dataSources.\" + error;\n }\n }\n if (message.builtinDataSources != null && message.hasOwnProperty(\"builtinDataSources\")) {\n var error = $root.perfetto.protos.TraceConfig.BuiltinDataSource.verify(message.builtinDataSources);\n if (error)\n return \"builtinDataSources.\" + error;\n }\n if (message.durationMs != null && message.hasOwnProperty(\"durationMs\"))\n if (!$util.isInteger(message.durationMs))\n return \"durationMs: integer expected\";\n if (message.enableExtraGuardrails != null && message.hasOwnProperty(\"enableExtraGuardrails\"))\n if (typeof message.enableExtraGuardrails !== \"boolean\")\n return \"enableExtraGuardrails: boolean expected\";\n if (message.lockdownMode != null && message.hasOwnProperty(\"lockdownMode\"))\n switch (message.lockdownMode) {\n default:\n return \"lockdownMode: enum value expected\";\n case 0:\n case 1:\n case 2:\n break;\n }\n if (message.producers != null && message.hasOwnProperty(\"producers\")) {\n if (!Array.isArray(message.producers))\n return \"producers: array expected\";\n for (var i = 0; i < message.producers.length; ++i) {\n var error = $root.perfetto.protos.TraceConfig.ProducerConfig.verify(message.producers[i]);\n if (error)\n return \"producers.\" + error;\n }\n }\n if (message.statsdMetadata != null && message.hasOwnProperty(\"statsdMetadata\")) {\n var error = $root.perfetto.protos.TraceConfig.StatsdMetadata.verify(message.statsdMetadata);\n if (error)\n return \"statsdMetadata.\" + error;\n }\n if (message.writeIntoFile != null && message.hasOwnProperty(\"writeIntoFile\"))\n if (typeof message.writeIntoFile !== \"boolean\")\n return \"writeIntoFile: boolean expected\";\n if (message.outputPath != null && message.hasOwnProperty(\"outputPath\"))\n if (!$util.isString(message.outputPath))\n return \"outputPath: string expected\";\n if (message.fileWritePeriodMs != null && message.hasOwnProperty(\"fileWritePeriodMs\"))\n if (!$util.isInteger(message.fileWritePeriodMs))\n return \"fileWritePeriodMs: integer expected\";\n if (message.maxFileSizeBytes != null && message.hasOwnProperty(\"maxFileSizeBytes\"))\n if (!$util.isInteger(message.maxFileSizeBytes) && !(message.maxFileSizeBytes && $util.isInteger(message.maxFileSizeBytes.low) && $util.isInteger(message.maxFileSizeBytes.high)))\n return \"maxFileSizeBytes: integer|Long expected\";\n if (message.guardrailOverrides != null && message.hasOwnProperty(\"guardrailOverrides\")) {\n var error = $root.perfetto.protos.TraceConfig.GuardrailOverrides.verify(message.guardrailOverrides);\n if (error)\n return \"guardrailOverrides.\" + error;\n }\n if (message.deferredStart != null && message.hasOwnProperty(\"deferredStart\"))\n if (typeof message.deferredStart !== \"boolean\")\n return \"deferredStart: boolean expected\";\n if (message.flushPeriodMs != null && message.hasOwnProperty(\"flushPeriodMs\"))\n if (!$util.isInteger(message.flushPeriodMs))\n return \"flushPeriodMs: integer expected\";\n if (message.flushTimeoutMs != null && message.hasOwnProperty(\"flushTimeoutMs\"))\n if (!$util.isInteger(message.flushTimeoutMs))\n return \"flushTimeoutMs: integer expected\";\n if (message.dataSourceStopTimeoutMs != null && message.hasOwnProperty(\"dataSourceStopTimeoutMs\"))\n if (!$util.isInteger(message.dataSourceStopTimeoutMs))\n return \"dataSourceStopTimeoutMs: integer expected\";\n if (message.notifyTraceur != null && message.hasOwnProperty(\"notifyTraceur\"))\n if (typeof message.notifyTraceur !== \"boolean\")\n return \"notifyTraceur: boolean expected\";\n if (message.bugreportScore != null && message.hasOwnProperty(\"bugreportScore\"))\n if (!$util.isInteger(message.bugreportScore))\n return \"bugreportScore: integer expected\";\n if (message.triggerConfig != null && message.hasOwnProperty(\"triggerConfig\")) {\n var error = $root.perfetto.protos.TraceConfig.TriggerConfig.verify(message.triggerConfig);\n if (error)\n return \"triggerConfig.\" + error;\n }\n if (message.activateTriggers != null && message.hasOwnProperty(\"activateTriggers\")) {\n if (!Array.isArray(message.activateTriggers))\n return \"activateTriggers: array expected\";\n for (var i = 0; i < message.activateTriggers.length; ++i)\n if (!$util.isString(message.activateTriggers[i]))\n return \"activateTriggers: string[] expected\";\n }\n if (message.incrementalStateConfig != null && message.hasOwnProperty(\"incrementalStateConfig\")) {\n var error = $root.perfetto.protos.TraceConfig.IncrementalStateConfig.verify(message.incrementalStateConfig);\n if (error)\n return \"incrementalStateConfig.\" + error;\n }\n if (message.allowUserBuildTracing != null && message.hasOwnProperty(\"allowUserBuildTracing\"))\n if (typeof message.allowUserBuildTracing !== \"boolean\")\n return \"allowUserBuildTracing: boolean expected\";\n if (message.uniqueSessionName != null && message.hasOwnProperty(\"uniqueSessionName\"))\n if (!$util.isString(message.uniqueSessionName))\n return \"uniqueSessionName: string expected\";\n if (message.compressionType != null && message.hasOwnProperty(\"compressionType\"))\n switch (message.compressionType) {\n default:\n return \"compressionType: enum value expected\";\n case 0:\n case 1:\n break;\n }\n if (message.incidentReportConfig != null && message.hasOwnProperty(\"incidentReportConfig\")) {\n var error = $root.perfetto.protos.TraceConfig.IncidentReportConfig.verify(message.incidentReportConfig);\n if (error)\n return \"incidentReportConfig.\" + error;\n }\n if (message.statsdLogging != null && message.hasOwnProperty(\"statsdLogging\"))\n switch (message.statsdLogging) {\n default:\n return \"statsdLogging: enum value expected\";\n case 0:\n case 1:\n case 2:\n break;\n }\n if (message.traceUuidMsb != null && message.hasOwnProperty(\"traceUuidMsb\"))\n if (!$util.isInteger(message.traceUuidMsb) && !(message.traceUuidMsb && $util.isInteger(message.traceUuidMsb.low) && $util.isInteger(message.traceUuidMsb.high)))\n return \"traceUuidMsb: integer|Long expected\";\n if (message.traceUuidLsb != null && message.hasOwnProperty(\"traceUuidLsb\"))\n if (!$util.isInteger(message.traceUuidLsb) && !(message.traceUuidLsb && $util.isInteger(message.traceUuidLsb.low) && $util.isInteger(message.traceUuidLsb.high)))\n return \"traceUuidLsb: integer|Long expected\";\n if (message.traceFilter != null && message.hasOwnProperty(\"traceFilter\")) {\n var error = $root.perfetto.protos.TraceConfig.TraceFilter.verify(message.traceFilter);\n if (error)\n return \"traceFilter.\" + error;\n }\n return null;\n };\n\n /**\n * Creates a TraceConfig message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.TraceConfig\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.TraceConfig} TraceConfig\n */\n TraceConfig.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.TraceConfig)\n return object;\n var message = new $root.perfetto.protos.TraceConfig();\n if (object.buffers) {\n if (!Array.isArray(object.buffers))\n throw TypeError(\".perfetto.protos.TraceConfig.buffers: array expected\");\n message.buffers = [];\n for (var i = 0; i < object.buffers.length; ++i) {\n if (typeof object.buffers[i] !== \"object\")\n throw TypeError(\".perfetto.protos.TraceConfig.buffers: object expected\");\n message.buffers[i] = $root.perfetto.protos.TraceConfig.BufferConfig.fromObject(object.buffers[i]);\n }\n }\n if (object.dataSources) {\n if (!Array.isArray(object.dataSources))\n throw TypeError(\".perfetto.protos.TraceConfig.dataSources: array expected\");\n message.dataSources = [];\n for (var i = 0; i < object.dataSources.length; ++i) {\n if (typeof object.dataSources[i] !== \"object\")\n throw TypeError(\".perfetto.protos.TraceConfig.dataSources: object expected\");\n message.dataSources[i] = $root.perfetto.protos.TraceConfig.DataSource.fromObject(object.dataSources[i]);\n }\n }\n if (object.builtinDataSources != null) {\n if (typeof object.builtinDataSources !== \"object\")\n throw TypeError(\".perfetto.protos.TraceConfig.builtinDataSources: object expected\");\n message.builtinDataSources = $root.perfetto.protos.TraceConfig.BuiltinDataSource.fromObject(object.builtinDataSources);\n }\n if (object.durationMs != null)\n message.durationMs = object.durationMs >>> 0;\n if (object.enableExtraGuardrails != null)\n message.enableExtraGuardrails = Boolean(object.enableExtraGuardrails);\n switch (object.lockdownMode) {\n case \"LOCKDOWN_UNCHANGED\":\n case 0:\n message.lockdownMode = 0;\n break;\n case \"LOCKDOWN_CLEAR\":\n case 1:\n message.lockdownMode = 1;\n break;\n case \"LOCKDOWN_SET\":\n case 2:\n message.lockdownMode = 2;\n break;\n }\n if (object.producers) {\n if (!Array.isArray(object.producers))\n throw TypeError(\".perfetto.protos.TraceConfig.producers: array expected\");\n message.producers = [];\n for (var i = 0; i < object.producers.length; ++i) {\n if (typeof object.producers[i] !== \"object\")\n throw TypeError(\".perfetto.protos.TraceConfig.producers: object expected\");\n message.producers[i] = $root.perfetto.protos.TraceConfig.ProducerConfig.fromObject(object.producers[i]);\n }\n }\n if (object.statsdMetadata != null) {\n if (typeof object.statsdMetadata !== \"object\")\n throw TypeError(\".perfetto.protos.TraceConfig.statsdMetadata: object expected\");\n message.statsdMetadata = $root.perfetto.protos.TraceConfig.StatsdMetadata.fromObject(object.statsdMetadata);\n }\n if (object.writeIntoFile != null)\n message.writeIntoFile = Boolean(object.writeIntoFile);\n if (object.outputPath != null)\n message.outputPath = String(object.outputPath);\n if (object.fileWritePeriodMs != null)\n message.fileWritePeriodMs = object.fileWritePeriodMs >>> 0;\n if (object.maxFileSizeBytes != null)\n if ($util.Long)\n (message.maxFileSizeBytes = $util.Long.fromValue(object.maxFileSizeBytes)).unsigned = true;\n else if (typeof object.maxFileSizeBytes === \"string\")\n message.maxFileSizeBytes = parseInt(object.maxFileSizeBytes, 10);\n else if (typeof object.maxFileSizeBytes === \"number\")\n message.maxFileSizeBytes = object.maxFileSizeBytes;\n else if (typeof object.maxFileSizeBytes === \"object\")\n message.maxFileSizeBytes = new $util.LongBits(object.maxFileSizeBytes.low >>> 0, object.maxFileSizeBytes.high >>> 0).toNumber(true);\n if (object.guardrailOverrides != null) {\n if (typeof object.guardrailOverrides !== \"object\")\n throw TypeError(\".perfetto.protos.TraceConfig.guardrailOverrides: object expected\");\n message.guardrailOverrides = $root.perfetto.protos.TraceConfig.GuardrailOverrides.fromObject(object.guardrailOverrides);\n }\n if (object.deferredStart != null)\n message.deferredStart = Boolean(object.deferredStart);\n if (object.flushPeriodMs != null)\n message.flushPeriodMs = object.flushPeriodMs >>> 0;\n if (object.flushTimeoutMs != null)\n message.flushTimeoutMs = object.flushTimeoutMs >>> 0;\n if (object.dataSourceStopTimeoutMs != null)\n message.dataSourceStopTimeoutMs = object.dataSourceStopTimeoutMs >>> 0;\n if (object.notifyTraceur != null)\n message.notifyTraceur = Boolean(object.notifyTraceur);\n if (object.bugreportScore != null)\n message.bugreportScore = object.bugreportScore | 0;\n if (object.triggerConfig != null) {\n if (typeof object.triggerConfig !== \"object\")\n throw TypeError(\".perfetto.protos.TraceConfig.triggerConfig: object expected\");\n message.triggerConfig = $root.perfetto.protos.TraceConfig.TriggerConfig.fromObject(object.triggerConfig);\n }\n if (object.activateTriggers) {\n if (!Array.isArray(object.activateTriggers))\n throw TypeError(\".perfetto.protos.TraceConfig.activateTriggers: array expected\");\n message.activateTriggers = [];\n for (var i = 0; i < object.activateTriggers.length; ++i)\n message.activateTriggers[i] = String(object.activateTriggers[i]);\n }\n if (object.incrementalStateConfig != null) {\n if (typeof object.incrementalStateConfig !== \"object\")\n throw TypeError(\".perfetto.protos.TraceConfig.incrementalStateConfig: object expected\");\n message.incrementalStateConfig = $root.perfetto.protos.TraceConfig.IncrementalStateConfig.fromObject(object.incrementalStateConfig);\n }\n if (object.allowUserBuildTracing != null)\n message.allowUserBuildTracing = Boolean(object.allowUserBuildTracing);\n if (object.uniqueSessionName != null)\n message.uniqueSessionName = String(object.uniqueSessionName);\n switch (object.compressionType) {\n case \"COMPRESSION_TYPE_UNSPECIFIED\":\n case 0:\n message.compressionType = 0;\n break;\n case \"COMPRESSION_TYPE_DEFLATE\":\n case 1:\n message.compressionType = 1;\n break;\n }\n if (object.incidentReportConfig != null) {\n if (typeof object.incidentReportConfig !== \"object\")\n throw TypeError(\".perfetto.protos.TraceConfig.incidentReportConfig: object expected\");\n message.incidentReportConfig = $root.perfetto.protos.TraceConfig.IncidentReportConfig.fromObject(object.incidentReportConfig);\n }\n switch (object.statsdLogging) {\n case \"STATSD_LOGGING_UNSPECIFIED\":\n case 0:\n message.statsdLogging = 0;\n break;\n case \"STATSD_LOGGING_ENABLED\":\n case 1:\n message.statsdLogging = 1;\n break;\n case \"STATSD_LOGGING_DISABLED\":\n case 2:\n message.statsdLogging = 2;\n break;\n }\n if (object.traceUuidMsb != null)\n if ($util.Long)\n (message.traceUuidMsb = $util.Long.fromValue(object.traceUuidMsb)).unsigned = false;\n else if (typeof object.traceUuidMsb === \"string\")\n message.traceUuidMsb = parseInt(object.traceUuidMsb, 10);\n else if (typeof object.traceUuidMsb === \"number\")\n message.traceUuidMsb = object.traceUuidMsb;\n else if (typeof object.traceUuidMsb === \"object\")\n message.traceUuidMsb = new $util.LongBits(object.traceUuidMsb.low >>> 0, object.traceUuidMsb.high >>> 0).toNumber();\n if (object.traceUuidLsb != null)\n if ($util.Long)\n (message.traceUuidLsb = $util.Long.fromValue(object.traceUuidLsb)).unsigned = false;\n else if (typeof object.traceUuidLsb === \"string\")\n message.traceUuidLsb = parseInt(object.traceUuidLsb, 10);\n else if (typeof object.traceUuidLsb === \"number\")\n message.traceUuidLsb = object.traceUuidLsb;\n else if (typeof object.traceUuidLsb === \"object\")\n message.traceUuidLsb = new $util.LongBits(object.traceUuidLsb.low >>> 0, object.traceUuidLsb.high >>> 0).toNumber();\n if (object.traceFilter != null) {\n if (typeof object.traceFilter !== \"object\")\n throw TypeError(\".perfetto.protos.TraceConfig.traceFilter: object expected\");\n message.traceFilter = $root.perfetto.protos.TraceConfig.TraceFilter.fromObject(object.traceFilter);\n }\n return message;\n };\n\n /**\n * Creates a plain object from a TraceConfig message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.TraceConfig\n * @static\n * @param {perfetto.protos.TraceConfig} message TraceConfig\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n TraceConfig.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults) {\n object.buffers = [];\n object.dataSources = [];\n object.producers = [];\n object.activateTriggers = [];\n }\n if (options.defaults) {\n object.durationMs = 0;\n object.enableExtraGuardrails = false;\n object.lockdownMode = options.enums === String ? \"LOCKDOWN_UNCHANGED\" : 0;\n object.statsdMetadata = null;\n object.writeIntoFile = false;\n object.fileWritePeriodMs = 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, true);\n object.maxFileSizeBytes = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.maxFileSizeBytes = options.longs === String ? \"0\" : 0;\n object.guardrailOverrides = null;\n object.deferredStart = false;\n object.flushPeriodMs = 0;\n object.flushTimeoutMs = 0;\n object.notifyTraceur = false;\n object.triggerConfig = null;\n object.allowUserBuildTracing = false;\n object.builtinDataSources = null;\n object.incrementalStateConfig = null;\n object.uniqueSessionName = \"\";\n object.dataSourceStopTimeoutMs = 0;\n object.compressionType = options.enums === String ? \"COMPRESSION_TYPE_UNSPECIFIED\" : 0;\n object.incidentReportConfig = null;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.traceUuidMsb = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.traceUuidMsb = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.traceUuidLsb = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.traceUuidLsb = options.longs === String ? \"0\" : 0;\n object.outputPath = \"\";\n object.bugreportScore = 0;\n object.statsdLogging = options.enums === String ? \"STATSD_LOGGING_UNSPECIFIED\" : 0;\n object.traceFilter = null;\n }\n if (message.buffers && message.buffers.length) {\n object.buffers = [];\n for (var j = 0; j < message.buffers.length; ++j)\n object.buffers[j] = $root.perfetto.protos.TraceConfig.BufferConfig.toObject(message.buffers[j], options);\n }\n if (message.dataSources && message.dataSources.length) {\n object.dataSources = [];\n for (var j = 0; j < message.dataSources.length; ++j)\n object.dataSources[j] = $root.perfetto.protos.TraceConfig.DataSource.toObject(message.dataSources[j], options);\n }\n if (message.durationMs != null && message.hasOwnProperty(\"durationMs\"))\n object.durationMs = message.durationMs;\n if (message.enableExtraGuardrails != null && message.hasOwnProperty(\"enableExtraGuardrails\"))\n object.enableExtraGuardrails = message.enableExtraGuardrails;\n if (message.lockdownMode != null && message.hasOwnProperty(\"lockdownMode\"))\n object.lockdownMode = options.enums === String ? $root.perfetto.protos.TraceConfig.LockdownModeOperation[message.lockdownMode] : message.lockdownMode;\n if (message.producers && message.producers.length) {\n object.producers = [];\n for (var j = 0; j < message.producers.length; ++j)\n object.producers[j] = $root.perfetto.protos.TraceConfig.ProducerConfig.toObject(message.producers[j], options);\n }\n if (message.statsdMetadata != null && message.hasOwnProperty(\"statsdMetadata\"))\n object.statsdMetadata = $root.perfetto.protos.TraceConfig.StatsdMetadata.toObject(message.statsdMetadata, options);\n if (message.writeIntoFile != null && message.hasOwnProperty(\"writeIntoFile\"))\n object.writeIntoFile = message.writeIntoFile;\n if (message.fileWritePeriodMs != null && message.hasOwnProperty(\"fileWritePeriodMs\"))\n object.fileWritePeriodMs = message.fileWritePeriodMs;\n if (message.maxFileSizeBytes != null && message.hasOwnProperty(\"maxFileSizeBytes\"))\n if (typeof message.maxFileSizeBytes === \"number\")\n object.maxFileSizeBytes = options.longs === String ? String(message.maxFileSizeBytes) : message.maxFileSizeBytes;\n else\n object.maxFileSizeBytes = options.longs === String ? $util.Long.prototype.toString.call(message.maxFileSizeBytes) : options.longs === Number ? new $util.LongBits(message.maxFileSizeBytes.low >>> 0, message.maxFileSizeBytes.high >>> 0).toNumber(true) : message.maxFileSizeBytes;\n if (message.guardrailOverrides != null && message.hasOwnProperty(\"guardrailOverrides\"))\n object.guardrailOverrides = $root.perfetto.protos.TraceConfig.GuardrailOverrides.toObject(message.guardrailOverrides, options);\n if (message.deferredStart != null && message.hasOwnProperty(\"deferredStart\"))\n object.deferredStart = message.deferredStart;\n if (message.flushPeriodMs != null && message.hasOwnProperty(\"flushPeriodMs\"))\n object.flushPeriodMs = message.flushPeriodMs;\n if (message.flushTimeoutMs != null && message.hasOwnProperty(\"flushTimeoutMs\"))\n object.flushTimeoutMs = message.flushTimeoutMs;\n if (message.notifyTraceur != null && message.hasOwnProperty(\"notifyTraceur\"))\n object.notifyTraceur = message.notifyTraceur;\n if (message.triggerConfig != null && message.hasOwnProperty(\"triggerConfig\"))\n object.triggerConfig = $root.perfetto.protos.TraceConfig.TriggerConfig.toObject(message.triggerConfig, options);\n if (message.activateTriggers && message.activateTriggers.length) {\n object.activateTriggers = [];\n for (var j = 0; j < message.activateTriggers.length; ++j)\n object.activateTriggers[j] = message.activateTriggers[j];\n }\n if (message.allowUserBuildTracing != null && message.hasOwnProperty(\"allowUserBuildTracing\"))\n object.allowUserBuildTracing = message.allowUserBuildTracing;\n if (message.builtinDataSources != null && message.hasOwnProperty(\"builtinDataSources\"))\n object.builtinDataSources = $root.perfetto.protos.TraceConfig.BuiltinDataSource.toObject(message.builtinDataSources, options);\n if (message.incrementalStateConfig != null && message.hasOwnProperty(\"incrementalStateConfig\"))\n object.incrementalStateConfig = $root.perfetto.protos.TraceConfig.IncrementalStateConfig.toObject(message.incrementalStateConfig, options);\n if (message.uniqueSessionName != null && message.hasOwnProperty(\"uniqueSessionName\"))\n object.uniqueSessionName = message.uniqueSessionName;\n if (message.dataSourceStopTimeoutMs != null && message.hasOwnProperty(\"dataSourceStopTimeoutMs\"))\n object.dataSourceStopTimeoutMs = message.dataSourceStopTimeoutMs;\n if (message.compressionType != null && message.hasOwnProperty(\"compressionType\"))\n object.compressionType = options.enums === String ? $root.perfetto.protos.TraceConfig.CompressionType[message.compressionType] : message.compressionType;\n if (message.incidentReportConfig != null && message.hasOwnProperty(\"incidentReportConfig\"))\n object.incidentReportConfig = $root.perfetto.protos.TraceConfig.IncidentReportConfig.toObject(message.incidentReportConfig, options);\n if (message.traceUuidMsb != null && message.hasOwnProperty(\"traceUuidMsb\"))\n if (typeof message.traceUuidMsb === \"number\")\n object.traceUuidMsb = options.longs === String ? String(message.traceUuidMsb) : message.traceUuidMsb;\n else\n object.traceUuidMsb = options.longs === String ? $util.Long.prototype.toString.call(message.traceUuidMsb) : options.longs === Number ? new $util.LongBits(message.traceUuidMsb.low >>> 0, message.traceUuidMsb.high >>> 0).toNumber() : message.traceUuidMsb;\n if (message.traceUuidLsb != null && message.hasOwnProperty(\"traceUuidLsb\"))\n if (typeof message.traceUuidLsb === \"number\")\n object.traceUuidLsb = options.longs === String ? String(message.traceUuidLsb) : message.traceUuidLsb;\n else\n object.traceUuidLsb = options.longs === String ? $util.Long.prototype.toString.call(message.traceUuidLsb) : options.longs === Number ? new $util.LongBits(message.traceUuidLsb.low >>> 0, message.traceUuidLsb.high >>> 0).toNumber() : message.traceUuidLsb;\n if (message.outputPath != null && message.hasOwnProperty(\"outputPath\"))\n object.outputPath = message.outputPath;\n if (message.bugreportScore != null && message.hasOwnProperty(\"bugreportScore\"))\n object.bugreportScore = message.bugreportScore;\n if (message.statsdLogging != null && message.hasOwnProperty(\"statsdLogging\"))\n object.statsdLogging = options.enums === String ? $root.perfetto.protos.TraceConfig.StatsdLogging[message.statsdLogging] : message.statsdLogging;\n if (message.traceFilter != null && message.hasOwnProperty(\"traceFilter\"))\n object.traceFilter = $root.perfetto.protos.TraceConfig.TraceFilter.toObject(message.traceFilter, options);\n return object;\n };\n\n /**\n * Converts this TraceConfig to JSON.\n * @function toJSON\n * @memberof perfetto.protos.TraceConfig\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n TraceConfig.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n TraceConfig.BufferConfig = (function() {\n\n /**\n * Properties of a BufferConfig.\n * @memberof perfetto.protos.TraceConfig\n * @interface IBufferConfig\n * @property {number|null} [sizeKb] BufferConfig sizeKb\n * @property {perfetto.protos.TraceConfig.BufferConfig.FillPolicy|null} [fillPolicy] BufferConfig fillPolicy\n */\n\n /**\n * Constructs a new BufferConfig.\n * @memberof perfetto.protos.TraceConfig\n * @classdesc Represents a BufferConfig.\n * @implements IBufferConfig\n * @constructor\n * @param {perfetto.protos.TraceConfig.IBufferConfig=} [properties] Properties to set\n */\n function BufferConfig(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * BufferConfig sizeKb.\n * @member {number} sizeKb\n * @memberof perfetto.protos.TraceConfig.BufferConfig\n * @instance\n */\n BufferConfig.prototype.sizeKb = 0;\n\n /**\n * BufferConfig fillPolicy.\n * @member {perfetto.protos.TraceConfig.BufferConfig.FillPolicy} fillPolicy\n * @memberof perfetto.protos.TraceConfig.BufferConfig\n * @instance\n */\n BufferConfig.prototype.fillPolicy = 0;\n\n /**\n * Creates a new BufferConfig instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.TraceConfig.BufferConfig\n * @static\n * @param {perfetto.protos.TraceConfig.IBufferConfig=} [properties] Properties to set\n * @returns {perfetto.protos.TraceConfig.BufferConfig} BufferConfig instance\n */\n BufferConfig.create = function create(properties) {\n return new BufferConfig(properties);\n };\n\n /**\n * Encodes the specified BufferConfig message. Does not implicitly {@link perfetto.protos.TraceConfig.BufferConfig.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.TraceConfig.BufferConfig\n * @static\n * @param {perfetto.protos.TraceConfig.IBufferConfig} message BufferConfig message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n BufferConfig.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.sizeKb != null && Object.hasOwnProperty.call(message, \"sizeKb\"))\n writer.uint32(/* id 1, wireType 0 =*/8).uint32(message.sizeKb);\n if (message.fillPolicy != null && Object.hasOwnProperty.call(message, \"fillPolicy\"))\n writer.uint32(/* id 4, wireType 0 =*/32).int32(message.fillPolicy);\n return writer;\n };\n\n /**\n * Encodes the specified BufferConfig message, length delimited. Does not implicitly {@link perfetto.protos.TraceConfig.BufferConfig.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.TraceConfig.BufferConfig\n * @static\n * @param {perfetto.protos.TraceConfig.IBufferConfig} message BufferConfig message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n BufferConfig.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a BufferConfig message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.TraceConfig.BufferConfig\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.TraceConfig.BufferConfig} BufferConfig\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n BufferConfig.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.TraceConfig.BufferConfig();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.sizeKb = reader.uint32();\n break;\n case 4:\n message.fillPolicy = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a BufferConfig message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.TraceConfig.BufferConfig\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.TraceConfig.BufferConfig} BufferConfig\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n BufferConfig.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a BufferConfig message.\n * @function verify\n * @memberof perfetto.protos.TraceConfig.BufferConfig\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n BufferConfig.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.sizeKb != null && message.hasOwnProperty(\"sizeKb\"))\n if (!$util.isInteger(message.sizeKb))\n return \"sizeKb: integer expected\";\n if (message.fillPolicy != null && message.hasOwnProperty(\"fillPolicy\"))\n switch (message.fillPolicy) {\n default:\n return \"fillPolicy: enum value expected\";\n case 0:\n case 1:\n case 2:\n break;\n }\n return null;\n };\n\n /**\n * Creates a BufferConfig message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.TraceConfig.BufferConfig\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.TraceConfig.BufferConfig} BufferConfig\n */\n BufferConfig.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.TraceConfig.BufferConfig)\n return object;\n var message = new $root.perfetto.protos.TraceConfig.BufferConfig();\n if (object.sizeKb != null)\n message.sizeKb = object.sizeKb >>> 0;\n switch (object.fillPolicy) {\n case \"UNSPECIFIED\":\n case 0:\n message.fillPolicy = 0;\n break;\n case \"RING_BUFFER\":\n case 1:\n message.fillPolicy = 1;\n break;\n case \"DISCARD\":\n case 2:\n message.fillPolicy = 2;\n break;\n }\n return message;\n };\n\n /**\n * Creates a plain object from a BufferConfig message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.TraceConfig.BufferConfig\n * @static\n * @param {perfetto.protos.TraceConfig.BufferConfig} message BufferConfig\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n BufferConfig.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.sizeKb = 0;\n object.fillPolicy = options.enums === String ? \"UNSPECIFIED\" : 0;\n }\n if (message.sizeKb != null && message.hasOwnProperty(\"sizeKb\"))\n object.sizeKb = message.sizeKb;\n if (message.fillPolicy != null && message.hasOwnProperty(\"fillPolicy\"))\n object.fillPolicy = options.enums === String ? $root.perfetto.protos.TraceConfig.BufferConfig.FillPolicy[message.fillPolicy] : message.fillPolicy;\n return object;\n };\n\n /**\n * Converts this BufferConfig to JSON.\n * @function toJSON\n * @memberof perfetto.protos.TraceConfig.BufferConfig\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n BufferConfig.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n /**\n * FillPolicy enum.\n * @name perfetto.protos.TraceConfig.BufferConfig.FillPolicy\n * @enum {number}\n * @property {number} UNSPECIFIED=0 UNSPECIFIED value\n * @property {number} RING_BUFFER=1 RING_BUFFER value\n * @property {number} DISCARD=2 DISCARD value\n */\n BufferConfig.FillPolicy = (function() {\n var valuesById = {}, values = Object.create(valuesById);\n values[valuesById[0] = \"UNSPECIFIED\"] = 0;\n values[valuesById[1] = \"RING_BUFFER\"] = 1;\n values[valuesById[2] = \"DISCARD\"] = 2;\n return values;\n })();\n\n return BufferConfig;\n })();\n\n TraceConfig.DataSource = (function() {\n\n /**\n * Properties of a DataSource.\n * @memberof perfetto.protos.TraceConfig\n * @interface IDataSource\n * @property {perfetto.protos.IDataSourceConfig|null} [config] DataSource config\n * @property {Array.<string>|null} [producerNameFilter] DataSource producerNameFilter\n * @property {Array.<string>|null} [producerNameRegexFilter] DataSource producerNameRegexFilter\n */\n\n /**\n * Constructs a new DataSource.\n * @memberof perfetto.protos.TraceConfig\n * @classdesc Represents a DataSource.\n * @implements IDataSource\n * @constructor\n * @param {perfetto.protos.TraceConfig.IDataSource=} [properties] Properties to set\n */\n function DataSource(properties) {\n this.producerNameFilter = [];\n this.producerNameRegexFilter = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * DataSource config.\n * @member {perfetto.protos.IDataSourceConfig|null|undefined} config\n * @memberof perfetto.protos.TraceConfig.DataSource\n * @instance\n */\n DataSource.prototype.config = null;\n\n /**\n * DataSource producerNameFilter.\n * @member {Array.<string>} producerNameFilter\n * @memberof perfetto.protos.TraceConfig.DataSource\n * @instance\n */\n DataSource.prototype.producerNameFilter = $util.emptyArray;\n\n /**\n * DataSource producerNameRegexFilter.\n * @member {Array.<string>} producerNameRegexFilter\n * @memberof perfetto.protos.TraceConfig.DataSource\n * @instance\n */\n DataSource.prototype.producerNameRegexFilter = $util.emptyArray;\n\n /**\n * Creates a new DataSource instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.TraceConfig.DataSource\n * @static\n * @param {perfetto.protos.TraceConfig.IDataSource=} [properties] Properties to set\n * @returns {perfetto.protos.TraceConfig.DataSource} DataSource instance\n */\n DataSource.create = function create(properties) {\n return new DataSource(properties);\n };\n\n /**\n * Encodes the specified DataSource message. Does not implicitly {@link perfetto.protos.TraceConfig.DataSource.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.TraceConfig.DataSource\n * @static\n * @param {perfetto.protos.TraceConfig.IDataSource} message DataSource message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n DataSource.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.config != null && Object.hasOwnProperty.call(message, \"config\"))\n $root.perfetto.protos.DataSourceConfig.encode(message.config, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n if (message.producerNameFilter != null && message.producerNameFilter.length)\n for (var i = 0; i < message.producerNameFilter.length; ++i)\n writer.uint32(/* id 2, wireType 2 =*/18).string(message.producerNameFilter[i]);\n if (message.producerNameRegexFilter != null && message.producerNameRegexFilter.length)\n for (var i = 0; i < message.producerNameRegexFilter.length; ++i)\n writer.uint32(/* id 3, wireType 2 =*/26).string(message.producerNameRegexFilter[i]);\n return writer;\n };\n\n /**\n * Encodes the specified DataSource message, length delimited. Does not implicitly {@link perfetto.protos.TraceConfig.DataSource.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.TraceConfig.DataSource\n * @static\n * @param {perfetto.protos.TraceConfig.IDataSource} message DataSource message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n DataSource.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a DataSource message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.TraceConfig.DataSource\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.TraceConfig.DataSource} DataSource\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n DataSource.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.TraceConfig.DataSource();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.config = $root.perfetto.protos.DataSourceConfig.decode(reader, reader.uint32());\n break;\n case 2:\n if (!(message.producerNameFilter && message.producerNameFilter.length))\n message.producerNameFilter = [];\n message.producerNameFilter.push(reader.string());\n break;\n case 3:\n if (!(message.producerNameRegexFilter && message.producerNameRegexFilter.length))\n message.producerNameRegexFilter = [];\n message.producerNameRegexFilter.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a DataSource message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.TraceConfig.DataSource\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.TraceConfig.DataSource} DataSource\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n DataSource.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a DataSource message.\n * @function verify\n * @memberof perfetto.protos.TraceConfig.DataSource\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n DataSource.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.config != null && message.hasOwnProperty(\"config\")) {\n var error = $root.perfetto.protos.DataSourceConfig.verify(message.config);\n if (error)\n return \"config.\" + error;\n }\n if (message.producerNameFilter != null && message.hasOwnProperty(\"producerNameFilter\")) {\n if (!Array.isArray(message.producerNameFilter))\n return \"producerNameFilter: array expected\";\n for (var i = 0; i < message.producerNameFilter.length; ++i)\n if (!$util.isString(message.producerNameFilter[i]))\n return \"producerNameFilter: string[] expected\";\n }\n if (message.producerNameRegexFilter != null && message.hasOwnProperty(\"producerNameRegexFilter\")) {\n if (!Array.isArray(message.producerNameRegexFilter))\n return \"producerNameRegexFilter: array expected\";\n for (var i = 0; i < message.producerNameRegexFilter.length; ++i)\n if (!$util.isString(message.producerNameRegexFilter[i]))\n return \"producerNameRegexFilter: string[] expected\";\n }\n return null;\n };\n\n /**\n * Creates a DataSource message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.TraceConfig.DataSource\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.TraceConfig.DataSource} DataSource\n */\n DataSource.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.TraceConfig.DataSource)\n return object;\n var message = new $root.perfetto.protos.TraceConfig.DataSource();\n if (object.config != null) {\n if (typeof object.config !== \"object\")\n throw TypeError(\".perfetto.protos.TraceConfig.DataSource.config: object expected\");\n message.config = $root.perfetto.protos.DataSourceConfig.fromObject(object.config);\n }\n if (object.producerNameFilter) {\n if (!Array.isArray(object.producerNameFilter))\n throw TypeError(\".perfetto.protos.TraceConfig.DataSource.producerNameFilter: array expected\");\n message.producerNameFilter = [];\n for (var i = 0; i < object.producerNameFilter.length; ++i)\n message.producerNameFilter[i] = String(object.producerNameFilter[i]);\n }\n if (object.producerNameRegexFilter) {\n if (!Array.isArray(object.producerNameRegexFilter))\n throw TypeError(\".perfetto.protos.TraceConfig.DataSource.producerNameRegexFilter: array expected\");\n message.producerNameRegexFilter = [];\n for (var i = 0; i < object.producerNameRegexFilter.length; ++i)\n message.producerNameRegexFilter[i] = String(object.producerNameRegexFilter[i]);\n }\n return message;\n };\n\n /**\n * Creates a plain object from a DataSource message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.TraceConfig.DataSource\n * @static\n * @param {perfetto.protos.TraceConfig.DataSource} message DataSource\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n DataSource.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults) {\n object.producerNameFilter = [];\n object.producerNameRegexFilter = [];\n }\n if (options.defaults)\n object.config = null;\n if (message.config != null && message.hasOwnProperty(\"config\"))\n object.config = $root.perfetto.protos.DataSourceConfig.toObject(message.config, options);\n if (message.producerNameFilter && message.producerNameFilter.length) {\n object.producerNameFilter = [];\n for (var j = 0; j < message.producerNameFilter.length; ++j)\n object.producerNameFilter[j] = message.producerNameFilter[j];\n }\n if (message.producerNameRegexFilter && message.producerNameRegexFilter.length) {\n object.producerNameRegexFilter = [];\n for (var j = 0; j < message.producerNameRegexFilter.length; ++j)\n object.producerNameRegexFilter[j] = message.producerNameRegexFilter[j];\n }\n return object;\n };\n\n /**\n * Converts this DataSource to JSON.\n * @function toJSON\n * @memberof perfetto.protos.TraceConfig.DataSource\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n DataSource.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return DataSource;\n })();\n\n TraceConfig.BuiltinDataSource = (function() {\n\n /**\n * Properties of a BuiltinDataSource.\n * @memberof perfetto.protos.TraceConfig\n * @interface IBuiltinDataSource\n * @property {boolean|null} [disableClockSnapshotting] BuiltinDataSource disableClockSnapshotting\n * @property {boolean|null} [disableTraceConfig] BuiltinDataSource disableTraceConfig\n * @property {boolean|null} [disableSystemInfo] BuiltinDataSource disableSystemInfo\n * @property {boolean|null} [disableServiceEvents] BuiltinDataSource disableServiceEvents\n * @property {perfetto.protos.BuiltinClock|null} [primaryTraceClock] BuiltinDataSource primaryTraceClock\n * @property {number|null} [snapshotIntervalMs] BuiltinDataSource snapshotIntervalMs\n * @property {boolean|null} [preferSuspendClockForSnapshot] BuiltinDataSource preferSuspendClockForSnapshot\n */\n\n /**\n * Constructs a new BuiltinDataSource.\n * @memberof perfetto.protos.TraceConfig\n * @classdesc Represents a BuiltinDataSource.\n * @implements IBuiltinDataSource\n * @constructor\n * @param {perfetto.protos.TraceConfig.IBuiltinDataSource=} [properties] Properties to set\n */\n function BuiltinDataSource(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * BuiltinDataSource disableClockSnapshotting.\n * @member {boolean} disableClockSnapshotting\n * @memberof perfetto.protos.TraceConfig.BuiltinDataSource\n * @instance\n */\n BuiltinDataSource.prototype.disableClockSnapshotting = false;\n\n /**\n * BuiltinDataSource disableTraceConfig.\n * @member {boolean} disableTraceConfig\n * @memberof perfetto.protos.TraceConfig.BuiltinDataSource\n * @instance\n */\n BuiltinDataSource.prototype.disableTraceConfig = false;\n\n /**\n * BuiltinDataSource disableSystemInfo.\n * @member {boolean} disableSystemInfo\n * @memberof perfetto.protos.TraceConfig.BuiltinDataSource\n * @instance\n */\n BuiltinDataSource.prototype.disableSystemInfo = false;\n\n /**\n * BuiltinDataSource disableServiceEvents.\n * @member {boolean} disableServiceEvents\n * @memberof perfetto.protos.TraceConfig.BuiltinDataSource\n * @instance\n */\n BuiltinDataSource.prototype.disableServiceEvents = false;\n\n /**\n * BuiltinDataSource primaryTraceClock.\n * @member {perfetto.protos.BuiltinClock} primaryTraceClock\n * @memberof perfetto.protos.TraceConfig.BuiltinDataSource\n * @instance\n */\n BuiltinDataSource.prototype.primaryTraceClock = 0;\n\n /**\n * BuiltinDataSource snapshotIntervalMs.\n * @member {number} snapshotIntervalMs\n * @memberof perfetto.protos.TraceConfig.BuiltinDataSource\n * @instance\n */\n BuiltinDataSource.prototype.snapshotIntervalMs = 0;\n\n /**\n * BuiltinDataSource preferSuspendClockForSnapshot.\n * @member {boolean} preferSuspendClockForSnapshot\n * @memberof perfetto.protos.TraceConfig.BuiltinDataSource\n * @instance\n */\n BuiltinDataSource.prototype.preferSuspendClockForSnapshot = false;\n\n /**\n * Creates a new BuiltinDataSource instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.TraceConfig.BuiltinDataSource\n * @static\n * @param {perfetto.protos.TraceConfig.IBuiltinDataSource=} [properties] Properties to set\n * @returns {perfetto.protos.TraceConfig.BuiltinDataSource} BuiltinDataSource instance\n */\n BuiltinDataSource.create = function create(properties) {\n return new BuiltinDataSource(properties);\n };\n\n /**\n * Encodes the specified BuiltinDataSource message. Does not implicitly {@link perfetto.protos.TraceConfig.BuiltinDataSource.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.TraceConfig.BuiltinDataSource\n * @static\n * @param {perfetto.protos.TraceConfig.IBuiltinDataSource} message BuiltinDataSource message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n BuiltinDataSource.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.disableClockSnapshotting != null && Object.hasOwnProperty.call(message, \"disableClockSnapshotting\"))\n writer.uint32(/* id 1, wireType 0 =*/8).bool(message.disableClockSnapshotting);\n if (message.disableTraceConfig != null && Object.hasOwnProperty.call(message, \"disableTraceConfig\"))\n writer.uint32(/* id 2, wireType 0 =*/16).bool(message.disableTraceConfig);\n if (message.disableSystemInfo != null && Object.hasOwnProperty.call(message, \"disableSystemInfo\"))\n writer.uint32(/* id 3, wireType 0 =*/24).bool(message.disableSystemInfo);\n if (message.disableServiceEvents != null && Object.hasOwnProperty.call(message, \"disableServiceEvents\"))\n writer.uint32(/* id 4, wireType 0 =*/32).bool(message.disableServiceEvents);\n if (message.primaryTraceClock != null && Object.hasOwnProperty.call(message, \"primaryTraceClock\"))\n writer.uint32(/* id 5, wireType 0 =*/40).int32(message.primaryTraceClock);\n if (message.snapshotIntervalMs != null && Object.hasOwnProperty.call(message, \"snapshotIntervalMs\"))\n writer.uint32(/* id 6, wireType 0 =*/48).uint32(message.snapshotIntervalMs);\n if (message.preferSuspendClockForSnapshot != null && Object.hasOwnProperty.call(message, \"preferSuspendClockForSnapshot\"))\n writer.uint32(/* id 7, wireType 0 =*/56).bool(message.preferSuspendClockForSnapshot);\n return writer;\n };\n\n /**\n * Encodes the specified BuiltinDataSource message, length delimited. Does not implicitly {@link perfetto.protos.TraceConfig.BuiltinDataSource.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.TraceConfig.BuiltinDataSource\n * @static\n * @param {perfetto.protos.TraceConfig.IBuiltinDataSource} message BuiltinDataSource message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n BuiltinDataSource.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a BuiltinDataSource message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.TraceConfig.BuiltinDataSource\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.TraceConfig.BuiltinDataSource} BuiltinDataSource\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n BuiltinDataSource.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.TraceConfig.BuiltinDataSource();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.disableClockSnapshotting = reader.bool();\n break;\n case 2:\n message.disableTraceConfig = reader.bool();\n break;\n case 3:\n message.disableSystemInfo = reader.bool();\n break;\n case 4:\n message.disableServiceEvents = reader.bool();\n break;\n case 5:\n message.primaryTraceClock = reader.int32();\n break;\n case 6:\n message.snapshotIntervalMs = reader.uint32();\n break;\n case 7:\n message.preferSuspendClockForSnapshot = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a BuiltinDataSource message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.TraceConfig.BuiltinDataSource\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.TraceConfig.BuiltinDataSource} BuiltinDataSource\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n BuiltinDataSource.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a BuiltinDataSource message.\n * @function verify\n * @memberof perfetto.protos.TraceConfig.BuiltinDataSource\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n BuiltinDataSource.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.disableClockSnapshotting != null && message.hasOwnProperty(\"disableClockSnapshotting\"))\n if (typeof message.disableClockSnapshotting !== \"boolean\")\n return \"disableClockSnapshotting: boolean expected\";\n if (message.disableTraceConfig != null && message.hasOwnProperty(\"disableTraceConfig\"))\n if (typeof message.disableTraceConfig !== \"boolean\")\n return \"disableTraceConfig: boolean expected\";\n if (message.disableSystemInfo != null && message.hasOwnProperty(\"disableSystemInfo\"))\n if (typeof message.disableSystemInfo !== \"boolean\")\n return \"disableSystemInfo: boolean expected\";\n if (message.disableServiceEvents != null && message.hasOwnProperty(\"disableServiceEvents\"))\n if (typeof message.disableServiceEvents !== \"boolean\")\n return \"disableServiceEvents: boolean expected\";\n if (message.primaryTraceClock != null && message.hasOwnProperty(\"primaryTraceClock\"))\n switch (message.primaryTraceClock) {\n default:\n return \"primaryTraceClock: enum value expected\";\n case 0:\n case 1:\n case 2:\n case 3:\n case 4:\n case 5:\n case 6:\n case 63:\n break;\n }\n if (message.snapshotIntervalMs != null && message.hasOwnProperty(\"snapshotIntervalMs\"))\n if (!$util.isInteger(message.snapshotIntervalMs))\n return \"snapshotIntervalMs: integer expected\";\n if (message.preferSuspendClockForSnapshot != null && message.hasOwnProperty(\"preferSuspendClockForSnapshot\"))\n if (typeof message.preferSuspendClockForSnapshot !== \"boolean\")\n return \"preferSuspendClockForSnapshot: boolean expected\";\n return null;\n };\n\n /**\n * Creates a BuiltinDataSource message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.TraceConfig.BuiltinDataSource\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.TraceConfig.BuiltinDataSource} BuiltinDataSource\n */\n BuiltinDataSource.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.TraceConfig.BuiltinDataSource)\n return object;\n var message = new $root.perfetto.protos.TraceConfig.BuiltinDataSource();\n if (object.disableClockSnapshotting != null)\n message.disableClockSnapshotting = Boolean(object.disableClockSnapshotting);\n if (object.disableTraceConfig != null)\n message.disableTraceConfig = Boolean(object.disableTraceConfig);\n if (object.disableSystemInfo != null)\n message.disableSystemInfo = Boolean(object.disableSystemInfo);\n if (object.disableServiceEvents != null)\n message.disableServiceEvents = Boolean(object.disableServiceEvents);\n switch (object.primaryTraceClock) {\n case \"BUILTIN_CLOCK_UNKNOWN\":\n case 0:\n message.primaryTraceClock = 0;\n break;\n case \"BUILTIN_CLOCK_REALTIME\":\n case 1:\n message.primaryTraceClock = 1;\n break;\n case \"BUILTIN_CLOCK_REALTIME_COARSE\":\n case 2:\n message.primaryTraceClock = 2;\n break;\n case \"BUILTIN_CLOCK_MONOTONIC\":\n case 3:\n message.primaryTraceClock = 3;\n break;\n case \"BUILTIN_CLOCK_MONOTONIC_COARSE\":\n case 4:\n message.primaryTraceClock = 4;\n break;\n case \"BUILTIN_CLOCK_MONOTONIC_RAW\":\n case 5:\n message.primaryTraceClock = 5;\n break;\n case \"BUILTIN_CLOCK_BOOTTIME\":\n case 6:\n message.primaryTraceClock = 6;\n break;\n case \"BUILTIN_CLOCK_MAX_ID\":\n case 63:\n message.primaryTraceClock = 63;\n break;\n }\n if (object.snapshotIntervalMs != null)\n message.snapshotIntervalMs = object.snapshotIntervalMs >>> 0;\n if (object.preferSuspendClockForSnapshot != null)\n message.preferSuspendClockForSnapshot = Boolean(object.preferSuspendClockForSnapshot);\n return message;\n };\n\n /**\n * Creates a plain object from a BuiltinDataSource message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.TraceConfig.BuiltinDataSource\n * @static\n * @param {perfetto.protos.TraceConfig.BuiltinDataSource} message BuiltinDataSource\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n BuiltinDataSource.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.disableClockSnapshotting = false;\n object.disableTraceConfig = false;\n object.disableSystemInfo = false;\n object.disableServiceEvents = false;\n object.primaryTraceClock = options.enums === String ? \"BUILTIN_CLOCK_UNKNOWN\" : 0;\n object.snapshotIntervalMs = 0;\n object.preferSuspendClockForSnapshot = false;\n }\n if (message.disableClockSnapshotting != null && message.hasOwnProperty(\"disableClockSnapshotting\"))\n object.disableClockSnapshotting = message.disableClockSnapshotting;\n if (message.disableTraceConfig != null && message.hasOwnProperty(\"disableTraceConfig\"))\n object.disableTraceConfig = message.disableTraceConfig;\n if (message.disableSystemInfo != null && message.hasOwnProperty(\"disableSystemInfo\"))\n object.disableSystemInfo = message.disableSystemInfo;\n if (message.disableServiceEvents != null && message.hasOwnProperty(\"disableServiceEvents\"))\n object.disableServiceEvents = message.disableServiceEvents;\n if (message.primaryTraceClock != null && message.hasOwnProperty(\"primaryTraceClock\"))\n object.primaryTraceClock = options.enums === String ? $root.perfetto.protos.BuiltinClock[message.primaryTraceClock] : message.primaryTraceClock;\n if (message.snapshotIntervalMs != null && message.hasOwnProperty(\"snapshotIntervalMs\"))\n object.snapshotIntervalMs = message.snapshotIntervalMs;\n if (message.preferSuspendClockForSnapshot != null && message.hasOwnProperty(\"preferSuspendClockForSnapshot\"))\n object.preferSuspendClockForSnapshot = message.preferSuspendClockForSnapshot;\n return object;\n };\n\n /**\n * Converts this BuiltinDataSource to JSON.\n * @function toJSON\n * @memberof perfetto.protos.TraceConfig.BuiltinDataSource\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n BuiltinDataSource.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return BuiltinDataSource;\n })();\n\n /**\n * LockdownModeOperation enum.\n * @name perfetto.protos.TraceConfig.LockdownModeOperation\n * @enum {number}\n * @property {number} LOCKDOWN_UNCHANGED=0 LOCKDOWN_UNCHANGED value\n * @property {number} LOCKDOWN_CLEAR=1 LOCKDOWN_CLEAR value\n * @property {number} LOCKDOWN_SET=2 LOCKDOWN_SET value\n */\n TraceConfig.LockdownModeOperation = (function() {\n var valuesById = {}, values = Object.create(valuesById);\n values[valuesById[0] = \"LOCKDOWN_UNCHANGED\"] = 0;\n values[valuesById[1] = \"LOCKDOWN_CLEAR\"] = 1;\n values[valuesById[2] = \"LOCKDOWN_SET\"] = 2;\n return values;\n })();\n\n TraceConfig.ProducerConfig = (function() {\n\n /**\n * Properties of a ProducerConfig.\n * @memberof perfetto.protos.TraceConfig\n * @interface IProducerConfig\n * @property {string|null} [producerName] ProducerConfig producerName\n * @property {number|null} [shmSizeKb] ProducerConfig shmSizeKb\n * @property {number|null} [pageSizeKb] ProducerConfig pageSizeKb\n */\n\n /**\n * Constructs a new ProducerConfig.\n * @memberof perfetto.protos.TraceConfig\n * @classdesc Represents a ProducerConfig.\n * @implements IProducerConfig\n * @constructor\n * @param {perfetto.protos.TraceConfig.IProducerConfig=} [properties] Properties to set\n */\n function ProducerConfig(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * ProducerConfig producerName.\n * @member {string} producerName\n * @memberof perfetto.protos.TraceConfig.ProducerConfig\n * @instance\n */\n ProducerConfig.prototype.producerName = \"\";\n\n /**\n * ProducerConfig shmSizeKb.\n * @member {number} shmSizeKb\n * @memberof perfetto.protos.TraceConfig.ProducerConfig\n * @instance\n */\n ProducerConfig.prototype.shmSizeKb = 0;\n\n /**\n * ProducerConfig pageSizeKb.\n * @member {number} pageSizeKb\n * @memberof perfetto.protos.TraceConfig.ProducerConfig\n * @instance\n */\n ProducerConfig.prototype.pageSizeKb = 0;\n\n /**\n * Creates a new ProducerConfig instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.TraceConfig.ProducerConfig\n * @static\n * @param {perfetto.protos.TraceConfig.IProducerConfig=} [properties] Properties to set\n * @returns {perfetto.protos.TraceConfig.ProducerConfig} ProducerConfig instance\n */\n ProducerConfig.create = function create(properties) {\n return new ProducerConfig(properties);\n };\n\n /**\n * Encodes the specified ProducerConfig message. Does not implicitly {@link perfetto.protos.TraceConfig.ProducerConfig.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.TraceConfig.ProducerConfig\n * @static\n * @param {perfetto.protos.TraceConfig.IProducerConfig} message ProducerConfig message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ProducerConfig.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.producerName != null && Object.hasOwnProperty.call(message, \"producerName\"))\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.producerName);\n if (message.shmSizeKb != null && Object.hasOwnProperty.call(message, \"shmSizeKb\"))\n writer.uint32(/* id 2, wireType 0 =*/16).uint32(message.shmSizeKb);\n if (message.pageSizeKb != null && Object.hasOwnProperty.call(message, \"pageSizeKb\"))\n writer.uint32(/* id 3, wireType 0 =*/24).uint32(message.pageSizeKb);\n return writer;\n };\n\n /**\n * Encodes the specified ProducerConfig message, length delimited. Does not implicitly {@link perfetto.protos.TraceConfig.ProducerConfig.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.TraceConfig.ProducerConfig\n * @static\n * @param {perfetto.protos.TraceConfig.IProducerConfig} message ProducerConfig message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ProducerConfig.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a ProducerConfig message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.TraceConfig.ProducerConfig\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.TraceConfig.ProducerConfig} ProducerConfig\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ProducerConfig.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.TraceConfig.ProducerConfig();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.producerName = reader.string();\n break;\n case 2:\n message.shmSizeKb = reader.uint32();\n break;\n case 3:\n message.pageSizeKb = reader.uint32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a ProducerConfig message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.TraceConfig.ProducerConfig\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.TraceConfig.ProducerConfig} ProducerConfig\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ProducerConfig.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a ProducerConfig message.\n * @function verify\n * @memberof perfetto.protos.TraceConfig.ProducerConfig\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n ProducerConfig.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.producerName != null && message.hasOwnProperty(\"producerName\"))\n if (!$util.isString(message.producerName))\n return \"producerName: string expected\";\n if (message.shmSizeKb != null && message.hasOwnProperty(\"shmSizeKb\"))\n if (!$util.isInteger(message.shmSizeKb))\n return \"shmSizeKb: integer expected\";\n if (message.pageSizeKb != null && message.hasOwnProperty(\"pageSizeKb\"))\n if (!$util.isInteger(message.pageSizeKb))\n return \"pageSizeKb: integer expected\";\n return null;\n };\n\n /**\n * Creates a ProducerConfig message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.TraceConfig.ProducerConfig\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.TraceConfig.ProducerConfig} ProducerConfig\n */\n ProducerConfig.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.TraceConfig.ProducerConfig)\n return object;\n var message = new $root.perfetto.protos.TraceConfig.ProducerConfig();\n if (object.producerName != null)\n message.producerName = String(object.producerName);\n if (object.shmSizeKb != null)\n message.shmSizeKb = object.shmSizeKb >>> 0;\n if (object.pageSizeKb != null)\n message.pageSizeKb = object.pageSizeKb >>> 0;\n return message;\n };\n\n /**\n * Creates a plain object from a ProducerConfig message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.TraceConfig.ProducerConfig\n * @static\n * @param {perfetto.protos.TraceConfig.ProducerConfig} message ProducerConfig\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n ProducerConfig.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.producerName = \"\";\n object.shmSizeKb = 0;\n object.pageSizeKb = 0;\n }\n if (message.producerName != null && message.hasOwnProperty(\"producerName\"))\n object.producerName = message.producerName;\n if (message.shmSizeKb != null && message.hasOwnProperty(\"shmSizeKb\"))\n object.shmSizeKb = message.shmSizeKb;\n if (message.pageSizeKb != null && message.hasOwnProperty(\"pageSizeKb\"))\n object.pageSizeKb = message.pageSizeKb;\n return object;\n };\n\n /**\n * Converts this ProducerConfig to JSON.\n * @function toJSON\n * @memberof perfetto.protos.TraceConfig.ProducerConfig\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n ProducerConfig.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return ProducerConfig;\n })();\n\n TraceConfig.StatsdMetadata = (function() {\n\n /**\n * Properties of a StatsdMetadata.\n * @memberof perfetto.protos.TraceConfig\n * @interface IStatsdMetadata\n * @property {number|null} [triggeringAlertId] StatsdMetadata triggeringAlertId\n * @property {number|null} [triggeringConfigUid] StatsdMetadata triggeringConfigUid\n * @property {number|null} [triggeringConfigId] StatsdMetadata triggeringConfigId\n * @property {number|null} [triggeringSubscriptionId] StatsdMetadata triggeringSubscriptionId\n */\n\n /**\n * Constructs a new StatsdMetadata.\n * @memberof perfetto.protos.TraceConfig\n * @classdesc Represents a StatsdMetadata.\n * @implements IStatsdMetadata\n * @constructor\n * @param {perfetto.protos.TraceConfig.IStatsdMetadata=} [properties] Properties to set\n */\n function StatsdMetadata(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * StatsdMetadata triggeringAlertId.\n * @member {number} triggeringAlertId\n * @memberof perfetto.protos.TraceConfig.StatsdMetadata\n * @instance\n */\n StatsdMetadata.prototype.triggeringAlertId = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * StatsdMetadata triggeringConfigUid.\n * @member {number} triggeringConfigUid\n * @memberof perfetto.protos.TraceConfig.StatsdMetadata\n * @instance\n */\n StatsdMetadata.prototype.triggeringConfigUid = 0;\n\n /**\n * StatsdMetadata triggeringConfigId.\n * @member {number} triggeringConfigId\n * @memberof perfetto.protos.TraceConfig.StatsdMetadata\n * @instance\n */\n StatsdMetadata.prototype.triggeringConfigId = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * StatsdMetadata triggeringSubscriptionId.\n * @member {number} triggeringSubscriptionId\n * @memberof perfetto.protos.TraceConfig.StatsdMetadata\n * @instance\n */\n StatsdMetadata.prototype.triggeringSubscriptionId = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * Creates a new StatsdMetadata instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.TraceConfig.StatsdMetadata\n * @static\n * @param {perfetto.protos.TraceConfig.IStatsdMetadata=} [properties] Properties to set\n * @returns {perfetto.protos.TraceConfig.StatsdMetadata} StatsdMetadata instance\n */\n StatsdMetadata.create = function create(properties) {\n return new StatsdMetadata(properties);\n };\n\n /**\n * Encodes the specified StatsdMetadata message. Does not implicitly {@link perfetto.protos.TraceConfig.StatsdMetadata.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.TraceConfig.StatsdMetadata\n * @static\n * @param {perfetto.protos.TraceConfig.IStatsdMetadata} message StatsdMetadata message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n StatsdMetadata.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.triggeringAlertId != null && Object.hasOwnProperty.call(message, \"triggeringAlertId\"))\n writer.uint32(/* id 1, wireType 0 =*/8).int64(message.triggeringAlertId);\n if (message.triggeringConfigUid != null && Object.hasOwnProperty.call(message, \"triggeringConfigUid\"))\n writer.uint32(/* id 2, wireType 0 =*/16).int32(message.triggeringConfigUid);\n if (message.triggeringConfigId != null && Object.hasOwnProperty.call(message, \"triggeringConfigId\"))\n writer.uint32(/* id 3, wireType 0 =*/24).int64(message.triggeringConfigId);\n if (message.triggeringSubscriptionId != null && Object.hasOwnProperty.call(message, \"triggeringSubscriptionId\"))\n writer.uint32(/* id 4, wireType 0 =*/32).int64(message.triggeringSubscriptionId);\n return writer;\n };\n\n /**\n * Encodes the specified StatsdMetadata message, length delimited. Does not implicitly {@link perfetto.protos.TraceConfig.StatsdMetadata.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.TraceConfig.StatsdMetadata\n * @static\n * @param {perfetto.protos.TraceConfig.IStatsdMetadata} message StatsdMetadata message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n StatsdMetadata.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a StatsdMetadata message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.TraceConfig.StatsdMetadata\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.TraceConfig.StatsdMetadata} StatsdMetadata\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n StatsdMetadata.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.TraceConfig.StatsdMetadata();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.triggeringAlertId = reader.int64();\n break;\n case 2:\n message.triggeringConfigUid = reader.int32();\n break;\n case 3:\n message.triggeringConfigId = reader.int64();\n break;\n case 4:\n message.triggeringSubscriptionId = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a StatsdMetadata message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.TraceConfig.StatsdMetadata\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.TraceConfig.StatsdMetadata} StatsdMetadata\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n StatsdMetadata.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a StatsdMetadata message.\n * @function verify\n * @memberof perfetto.protos.TraceConfig.StatsdMetadata\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n StatsdMetadata.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.triggeringAlertId != null && message.hasOwnProperty(\"triggeringAlertId\"))\n if (!$util.isInteger(message.triggeringAlertId) && !(message.triggeringAlertId && $util.isInteger(message.triggeringAlertId.low) && $util.isInteger(message.triggeringAlertId.high)))\n return \"triggeringAlertId: integer|Long expected\";\n if (message.triggeringConfigUid != null && message.hasOwnProperty(\"triggeringConfigUid\"))\n if (!$util.isInteger(message.triggeringConfigUid))\n return \"triggeringConfigUid: integer expected\";\n if (message.triggeringConfigId != null && message.hasOwnProperty(\"triggeringConfigId\"))\n if (!$util.isInteger(message.triggeringConfigId) && !(message.triggeringConfigId && $util.isInteger(message.triggeringConfigId.low) && $util.isInteger(message.triggeringConfigId.high)))\n return \"triggeringConfigId: integer|Long expected\";\n if (message.triggeringSubscriptionId != null && message.hasOwnProperty(\"triggeringSubscriptionId\"))\n if (!$util.isInteger(message.triggeringSubscriptionId) && !(message.triggeringSubscriptionId && $util.isInteger(message.triggeringSubscriptionId.low) && $util.isInteger(message.triggeringSubscriptionId.high)))\n return \"triggeringSubscriptionId: integer|Long expected\";\n return null;\n };\n\n /**\n * Creates a StatsdMetadata message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.TraceConfig.StatsdMetadata\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.TraceConfig.StatsdMetadata} StatsdMetadata\n */\n StatsdMetadata.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.TraceConfig.StatsdMetadata)\n return object;\n var message = new $root.perfetto.protos.TraceConfig.StatsdMetadata();\n if (object.triggeringAlertId != null)\n if ($util.Long)\n (message.triggeringAlertId = $util.Long.fromValue(object.triggeringAlertId)).unsigned = false;\n else if (typeof object.triggeringAlertId === \"string\")\n message.triggeringAlertId = parseInt(object.triggeringAlertId, 10);\n else if (typeof object.triggeringAlertId === \"number\")\n message.triggeringAlertId = object.triggeringAlertId;\n else if (typeof object.triggeringAlertId === \"object\")\n message.triggeringAlertId = new $util.LongBits(object.triggeringAlertId.low >>> 0, object.triggeringAlertId.high >>> 0).toNumber();\n if (object.triggeringConfigUid != null)\n message.triggeringConfigUid = object.triggeringConfigUid | 0;\n if (object.triggeringConfigId != null)\n if ($util.Long)\n (message.triggeringConfigId = $util.Long.fromValue(object.triggeringConfigId)).unsigned = false;\n else if (typeof object.triggeringConfigId === \"string\")\n message.triggeringConfigId = parseInt(object.triggeringConfigId, 10);\n else if (typeof object.triggeringConfigId === \"number\")\n message.triggeringConfigId = object.triggeringConfigId;\n else if (typeof object.triggeringConfigId === \"object\")\n message.triggeringConfigId = new $util.LongBits(object.triggeringConfigId.low >>> 0, object.triggeringConfigId.high >>> 0).toNumber();\n if (object.triggeringSubscriptionId != null)\n if ($util.Long)\n (message.triggeringSubscriptionId = $util.Long.fromValue(object.triggeringSubscriptionId)).unsigned = false;\n else if (typeof object.triggeringSubscriptionId === \"string\")\n message.triggeringSubscriptionId = parseInt(object.triggeringSubscriptionId, 10);\n else if (typeof object.triggeringSubscriptionId === \"number\")\n message.triggeringSubscriptionId = object.triggeringSubscriptionId;\n else if (typeof object.triggeringSubscriptionId === \"object\")\n message.triggeringSubscriptionId = new $util.LongBits(object.triggeringSubscriptionId.low >>> 0, object.triggeringSubscriptionId.high >>> 0).toNumber();\n return message;\n };\n\n /**\n * Creates a plain object from a StatsdMetadata message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.TraceConfig.StatsdMetadata\n * @static\n * @param {perfetto.protos.TraceConfig.StatsdMetadata} message StatsdMetadata\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n StatsdMetadata.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.triggeringAlertId = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.triggeringAlertId = options.longs === String ? \"0\" : 0;\n object.triggeringConfigUid = 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.triggeringConfigId = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.triggeringConfigId = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.triggeringSubscriptionId = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.triggeringSubscriptionId = options.longs === String ? \"0\" : 0;\n }\n if (message.triggeringAlertId != null && message.hasOwnProperty(\"triggeringAlertId\"))\n if (typeof message.triggeringAlertId === \"number\")\n object.triggeringAlertId = options.longs === String ? String(message.triggeringAlertId) : message.triggeringAlertId;\n else\n object.triggeringAlertId = options.longs === String ? $util.Long.prototype.toString.call(message.triggeringAlertId) : options.longs === Number ? new $util.LongBits(message.triggeringAlertId.low >>> 0, message.triggeringAlertId.high >>> 0).toNumber() : message.triggeringAlertId;\n if (message.triggeringConfigUid != null && message.hasOwnProperty(\"triggeringConfigUid\"))\n object.triggeringConfigUid = message.triggeringConfigUid;\n if (message.triggeringConfigId != null && message.hasOwnProperty(\"triggeringConfigId\"))\n if (typeof message.triggeringConfigId === \"number\")\n object.triggeringConfigId = options.longs === String ? String(message.triggeringConfigId) : message.triggeringConfigId;\n else\n object.triggeringConfigId = options.longs === String ? $util.Long.prototype.toString.call(message.triggeringConfigId) : options.longs === Number ? new $util.LongBits(message.triggeringConfigId.low >>> 0, message.triggeringConfigId.high >>> 0).toNumber() : message.triggeringConfigId;\n if (message.triggeringSubscriptionId != null && message.hasOwnProperty(\"triggeringSubscriptionId\"))\n if (typeof message.triggeringSubscriptionId === \"number\")\n object.triggeringSubscriptionId = options.longs === String ? String(message.triggeringSubscriptionId) : message.triggeringSubscriptionId;\n else\n object.triggeringSubscriptionId = options.longs === String ? $util.Long.prototype.toString.call(message.triggeringSubscriptionId) : options.longs === Number ? new $util.LongBits(message.triggeringSubscriptionId.low >>> 0, message.triggeringSubscriptionId.high >>> 0).toNumber() : message.triggeringSubscriptionId;\n return object;\n };\n\n /**\n * Converts this StatsdMetadata to JSON.\n * @function toJSON\n * @memberof perfetto.protos.TraceConfig.StatsdMetadata\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n StatsdMetadata.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return StatsdMetadata;\n })();\n\n TraceConfig.GuardrailOverrides = (function() {\n\n /**\n * Properties of a GuardrailOverrides.\n * @memberof perfetto.protos.TraceConfig\n * @interface IGuardrailOverrides\n * @property {number|null} [maxUploadPerDayBytes] GuardrailOverrides maxUploadPerDayBytes\n */\n\n /**\n * Constructs a new GuardrailOverrides.\n * @memberof perfetto.protos.TraceConfig\n * @classdesc Represents a GuardrailOverrides.\n * @implements IGuardrailOverrides\n * @constructor\n * @param {perfetto.protos.TraceConfig.IGuardrailOverrides=} [properties] Properties to set\n */\n function GuardrailOverrides(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * GuardrailOverrides maxUploadPerDayBytes.\n * @member {number} maxUploadPerDayBytes\n * @memberof perfetto.protos.TraceConfig.GuardrailOverrides\n * @instance\n */\n GuardrailOverrides.prototype.maxUploadPerDayBytes = $util.Long ? $util.Long.fromBits(0,0,true) : 0;\n\n /**\n * Creates a new GuardrailOverrides instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.TraceConfig.GuardrailOverrides\n * @static\n * @param {perfetto.protos.TraceConfig.IGuardrailOverrides=} [properties] Properties to set\n * @returns {perfetto.protos.TraceConfig.GuardrailOverrides} GuardrailOverrides instance\n */\n GuardrailOverrides.create = function create(properties) {\n return new GuardrailOverrides(properties);\n };\n\n /**\n * Encodes the specified GuardrailOverrides message. Does not implicitly {@link perfetto.protos.TraceConfig.GuardrailOverrides.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.TraceConfig.GuardrailOverrides\n * @static\n * @param {perfetto.protos.TraceConfig.IGuardrailOverrides} message GuardrailOverrides message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n GuardrailOverrides.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.maxUploadPerDayBytes != null && Object.hasOwnProperty.call(message, \"maxUploadPerDayBytes\"))\n writer.uint32(/* id 1, wireType 0 =*/8).uint64(message.maxUploadPerDayBytes);\n return writer;\n };\n\n /**\n * Encodes the specified GuardrailOverrides message, length delimited. Does not implicitly {@link perfetto.protos.TraceConfig.GuardrailOverrides.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.TraceConfig.GuardrailOverrides\n * @static\n * @param {perfetto.protos.TraceConfig.IGuardrailOverrides} message GuardrailOverrides message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n GuardrailOverrides.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a GuardrailOverrides message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.TraceConfig.GuardrailOverrides\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.TraceConfig.GuardrailOverrides} GuardrailOverrides\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n GuardrailOverrides.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.TraceConfig.GuardrailOverrides();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.maxUploadPerDayBytes = reader.uint64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a GuardrailOverrides message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.TraceConfig.GuardrailOverrides\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.TraceConfig.GuardrailOverrides} GuardrailOverrides\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n GuardrailOverrides.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a GuardrailOverrides message.\n * @function verify\n * @memberof perfetto.protos.TraceConfig.GuardrailOverrides\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n GuardrailOverrides.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.maxUploadPerDayBytes != null && message.hasOwnProperty(\"maxUploadPerDayBytes\"))\n if (!$util.isInteger(message.maxUploadPerDayBytes) && !(message.maxUploadPerDayBytes && $util.isInteger(message.maxUploadPerDayBytes.low) && $util.isInteger(message.maxUploadPerDayBytes.high)))\n return \"maxUploadPerDayBytes: integer|Long expected\";\n return null;\n };\n\n /**\n * Creates a GuardrailOverrides message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.TraceConfig.GuardrailOverrides\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.TraceConfig.GuardrailOverrides} GuardrailOverrides\n */\n GuardrailOverrides.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.TraceConfig.GuardrailOverrides)\n return object;\n var message = new $root.perfetto.protos.TraceConfig.GuardrailOverrides();\n if (object.maxUploadPerDayBytes != null)\n if ($util.Long)\n (message.maxUploadPerDayBytes = $util.Long.fromValue(object.maxUploadPerDayBytes)).unsigned = true;\n else if (typeof object.maxUploadPerDayBytes === \"string\")\n message.maxUploadPerDayBytes = parseInt(object.maxUploadPerDayBytes, 10);\n else if (typeof object.maxUploadPerDayBytes === \"number\")\n message.maxUploadPerDayBytes = object.maxUploadPerDayBytes;\n else if (typeof object.maxUploadPerDayBytes === \"object\")\n message.maxUploadPerDayBytes = new $util.LongBits(object.maxUploadPerDayBytes.low >>> 0, object.maxUploadPerDayBytes.high >>> 0).toNumber(true);\n return message;\n };\n\n /**\n * Creates a plain object from a GuardrailOverrides message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.TraceConfig.GuardrailOverrides\n * @static\n * @param {perfetto.protos.TraceConfig.GuardrailOverrides} message GuardrailOverrides\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n GuardrailOverrides.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults)\n if ($util.Long) {\n var long = new $util.Long(0, 0, true);\n object.maxUploadPerDayBytes = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.maxUploadPerDayBytes = options.longs === String ? \"0\" : 0;\n if (message.maxUploadPerDayBytes != null && message.hasOwnProperty(\"maxUploadPerDayBytes\"))\n if (typeof message.maxUploadPerDayBytes === \"number\")\n object.maxUploadPerDayBytes = options.longs === String ? String(message.maxUploadPerDayBytes) : message.maxUploadPerDayBytes;\n else\n object.maxUploadPerDayBytes = options.longs === String ? $util.Long.prototype.toString.call(message.maxUploadPerDayBytes) : options.longs === Number ? new $util.LongBits(message.maxUploadPerDayBytes.low >>> 0, message.maxUploadPerDayBytes.high >>> 0).toNumber(true) : message.maxUploadPerDayBytes;\n return object;\n };\n\n /**\n * Converts this GuardrailOverrides to JSON.\n * @function toJSON\n * @memberof perfetto.protos.TraceConfig.GuardrailOverrides\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n GuardrailOverrides.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return GuardrailOverrides;\n })();\n\n TraceConfig.TriggerConfig = (function() {\n\n /**\n * Properties of a TriggerConfig.\n * @memberof perfetto.protos.TraceConfig\n * @interface ITriggerConfig\n * @property {perfetto.protos.TraceConfig.TriggerConfig.TriggerMode|null} [triggerMode] TriggerConfig triggerMode\n * @property {Array.<perfetto.protos.TraceConfig.TriggerConfig.ITrigger>|null} [triggers] TriggerConfig triggers\n * @property {number|null} [triggerTimeoutMs] TriggerConfig triggerTimeoutMs\n */\n\n /**\n * Constructs a new TriggerConfig.\n * @memberof perfetto.protos.TraceConfig\n * @classdesc Represents a TriggerConfig.\n * @implements ITriggerConfig\n * @constructor\n * @param {perfetto.protos.TraceConfig.ITriggerConfig=} [properties] Properties to set\n */\n function TriggerConfig(properties) {\n this.triggers = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * TriggerConfig triggerMode.\n * @member {perfetto.protos.TraceConfig.TriggerConfig.TriggerMode} triggerMode\n * @memberof perfetto.protos.TraceConfig.TriggerConfig\n * @instance\n */\n TriggerConfig.prototype.triggerMode = 0;\n\n /**\n * TriggerConfig triggers.\n * @member {Array.<perfetto.protos.TraceConfig.TriggerConfig.ITrigger>} triggers\n * @memberof perfetto.protos.TraceConfig.TriggerConfig\n * @instance\n */\n TriggerConfig.prototype.triggers = $util.emptyArray;\n\n /**\n * TriggerConfig triggerTimeoutMs.\n * @member {number} triggerTimeoutMs\n * @memberof perfetto.protos.TraceConfig.TriggerConfig\n * @instance\n */\n TriggerConfig.prototype.triggerTimeoutMs = 0;\n\n /**\n * Creates a new TriggerConfig instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.TraceConfig.TriggerConfig\n * @static\n * @param {perfetto.protos.TraceConfig.ITriggerConfig=} [properties] Properties to set\n * @returns {perfetto.protos.TraceConfig.TriggerConfig} TriggerConfig instance\n */\n TriggerConfig.create = function create(properties) {\n return new TriggerConfig(properties);\n };\n\n /**\n * Encodes the specified TriggerConfig message. Does not implicitly {@link perfetto.protos.TraceConfig.TriggerConfig.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.TraceConfig.TriggerConfig\n * @static\n * @param {perfetto.protos.TraceConfig.ITriggerConfig} message TriggerConfig message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n TriggerConfig.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.triggerMode != null && Object.hasOwnProperty.call(message, \"triggerMode\"))\n writer.uint32(/* id 1, wireType 0 =*/8).int32(message.triggerMode);\n if (message.triggers != null && message.triggers.length)\n for (var i = 0; i < message.triggers.length; ++i)\n $root.perfetto.protos.TraceConfig.TriggerConfig.Trigger.encode(message.triggers[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n if (message.triggerTimeoutMs != null && Object.hasOwnProperty.call(message, \"triggerTimeoutMs\"))\n writer.uint32(/* id 3, wireType 0 =*/24).uint32(message.triggerTimeoutMs);\n return writer;\n };\n\n /**\n * Encodes the specified TriggerConfig message, length delimited. Does not implicitly {@link perfetto.protos.TraceConfig.TriggerConfig.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.TraceConfig.TriggerConfig\n * @static\n * @param {perfetto.protos.TraceConfig.ITriggerConfig} message TriggerConfig message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n TriggerConfig.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a TriggerConfig message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.TraceConfig.TriggerConfig\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.TraceConfig.TriggerConfig} TriggerConfig\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n TriggerConfig.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.TraceConfig.TriggerConfig();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.triggerMode = reader.int32();\n break;\n case 2:\n if (!(message.triggers && message.triggers.length))\n message.triggers = [];\n message.triggers.push($root.perfetto.protos.TraceConfig.TriggerConfig.Trigger.decode(reader, reader.uint32()));\n break;\n case 3:\n message.triggerTimeoutMs = reader.uint32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a TriggerConfig message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.TraceConfig.TriggerConfig\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.TraceConfig.TriggerConfig} TriggerConfig\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n TriggerConfig.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a TriggerConfig message.\n * @function verify\n * @memberof perfetto.protos.TraceConfig.TriggerConfig\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n TriggerConfig.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.triggerMode != null && message.hasOwnProperty(\"triggerMode\"))\n switch (message.triggerMode) {\n default:\n return \"triggerMode: enum value expected\";\n case 0:\n case 1:\n case 2:\n break;\n }\n if (message.triggers != null && message.hasOwnProperty(\"triggers\")) {\n if (!Array.isArray(message.triggers))\n return \"triggers: array expected\";\n for (var i = 0; i < message.triggers.length; ++i) {\n var error = $root.perfetto.protos.TraceConfig.TriggerConfig.Trigger.verify(message.triggers[i]);\n if (error)\n return \"triggers.\" + error;\n }\n }\n if (message.triggerTimeoutMs != null && message.hasOwnProperty(\"triggerTimeoutMs\"))\n if (!$util.isInteger(message.triggerTimeoutMs))\n return \"triggerTimeoutMs: integer expected\";\n return null;\n };\n\n /**\n * Creates a TriggerConfig message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.TraceConfig.TriggerConfig\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.TraceConfig.TriggerConfig} TriggerConfig\n */\n TriggerConfig.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.TraceConfig.TriggerConfig)\n return object;\n var message = new $root.perfetto.protos.TraceConfig.TriggerConfig();\n switch (object.triggerMode) {\n case \"UNSPECIFIED\":\n case 0:\n message.triggerMode = 0;\n break;\n case \"START_TRACING\":\n case 1:\n message.triggerMode = 1;\n break;\n case \"STOP_TRACING\":\n case 2:\n message.triggerMode = 2;\n break;\n }\n if (object.triggers) {\n if (!Array.isArray(object.triggers))\n throw TypeError(\".perfetto.protos.TraceConfig.TriggerConfig.triggers: array expected\");\n message.triggers = [];\n for (var i = 0; i < object.triggers.length; ++i) {\n if (typeof object.triggers[i] !== \"object\")\n throw TypeError(\".perfetto.protos.TraceConfig.TriggerConfig.triggers: object expected\");\n message.triggers[i] = $root.perfetto.protos.TraceConfig.TriggerConfig.Trigger.fromObject(object.triggers[i]);\n }\n }\n if (object.triggerTimeoutMs != null)\n message.triggerTimeoutMs = object.triggerTimeoutMs >>> 0;\n return message;\n };\n\n /**\n * Creates a plain object from a TriggerConfig message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.TraceConfig.TriggerConfig\n * @static\n * @param {perfetto.protos.TraceConfig.TriggerConfig} message TriggerConfig\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n TriggerConfig.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.triggers = [];\n if (options.defaults) {\n object.triggerMode = options.enums === String ? \"UNSPECIFIED\" : 0;\n object.triggerTimeoutMs = 0;\n }\n if (message.triggerMode != null && message.hasOwnProperty(\"triggerMode\"))\n object.triggerMode = options.enums === String ? $root.perfetto.protos.TraceConfig.TriggerConfig.TriggerMode[message.triggerMode] : message.triggerMode;\n if (message.triggers && message.triggers.length) {\n object.triggers = [];\n for (var j = 0; j < message.triggers.length; ++j)\n object.triggers[j] = $root.perfetto.protos.TraceConfig.TriggerConfig.Trigger.toObject(message.triggers[j], options);\n }\n if (message.triggerTimeoutMs != null && message.hasOwnProperty(\"triggerTimeoutMs\"))\n object.triggerTimeoutMs = message.triggerTimeoutMs;\n return object;\n };\n\n /**\n * Converts this TriggerConfig to JSON.\n * @function toJSON\n * @memberof perfetto.protos.TraceConfig.TriggerConfig\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n TriggerConfig.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n /**\n * TriggerMode enum.\n * @name perfetto.protos.TraceConfig.TriggerConfig.TriggerMode\n * @enum {number}\n * @property {number} UNSPECIFIED=0 UNSPECIFIED value\n * @property {number} START_TRACING=1 START_TRACING value\n * @property {number} STOP_TRACING=2 STOP_TRACING value\n */\n TriggerConfig.TriggerMode = (function() {\n var valuesById = {}, values = Object.create(valuesById);\n values[valuesById[0] = \"UNSPECIFIED\"] = 0;\n values[valuesById[1] = \"START_TRACING\"] = 1;\n values[valuesById[2] = \"STOP_TRACING\"] = 2;\n return values;\n })();\n\n TriggerConfig.Trigger = (function() {\n\n /**\n * Properties of a Trigger.\n * @memberof perfetto.protos.TraceConfig.TriggerConfig\n * @interface ITrigger\n * @property {string|null} [name] Trigger name\n * @property {string|null} [producerNameRegex] Trigger producerNameRegex\n * @property {number|null} [stopDelayMs] Trigger stopDelayMs\n * @property {number|null} [maxPer_24H] Trigger maxPer_24H\n * @property {number|null} [skipProbability] Trigger skipProbability\n */\n\n /**\n * Constructs a new Trigger.\n * @memberof perfetto.protos.TraceConfig.TriggerConfig\n * @classdesc Represents a Trigger.\n * @implements ITrigger\n * @constructor\n * @param {perfetto.protos.TraceConfig.TriggerConfig.ITrigger=} [properties] Properties to set\n */\n function Trigger(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * Trigger name.\n * @member {string} name\n * @memberof perfetto.protos.TraceConfig.TriggerConfig.Trigger\n * @instance\n */\n Trigger.prototype.name = \"\";\n\n /**\n * Trigger producerNameRegex.\n * @member {string} producerNameRegex\n * @memberof perfetto.protos.TraceConfig.TriggerConfig.Trigger\n * @instance\n */\n Trigger.prototype.producerNameRegex = \"\";\n\n /**\n * Trigger stopDelayMs.\n * @member {number} stopDelayMs\n * @memberof perfetto.protos.TraceConfig.TriggerConfig.Trigger\n * @instance\n */\n Trigger.prototype.stopDelayMs = 0;\n\n /**\n * Trigger maxPer_24H.\n * @member {number} maxPer_24H\n * @memberof perfetto.protos.TraceConfig.TriggerConfig.Trigger\n * @instance\n */\n Trigger.prototype.maxPer_24H = 0;\n\n /**\n * Trigger skipProbability.\n * @member {number} skipProbability\n * @memberof perfetto.protos.TraceConfig.TriggerConfig.Trigger\n * @instance\n */\n Trigger.prototype.skipProbability = 0;\n\n /**\n * Creates a new Trigger instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.TraceConfig.TriggerConfig.Trigger\n * @static\n * @param {perfetto.protos.TraceConfig.TriggerConfig.ITrigger=} [properties] Properties to set\n * @returns {perfetto.protos.TraceConfig.TriggerConfig.Trigger} Trigger instance\n */\n Trigger.create = function create(properties) {\n return new Trigger(properties);\n };\n\n /**\n * Encodes the specified Trigger message. Does not implicitly {@link perfetto.protos.TraceConfig.TriggerConfig.Trigger.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.TraceConfig.TriggerConfig.Trigger\n * @static\n * @param {perfetto.protos.TraceConfig.TriggerConfig.ITrigger} message Trigger message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Trigger.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.name != null && Object.hasOwnProperty.call(message, \"name\"))\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.name);\n if (message.producerNameRegex != null && Object.hasOwnProperty.call(message, \"producerNameRegex\"))\n writer.uint32(/* id 2, wireType 2 =*/18).string(message.producerNameRegex);\n if (message.stopDelayMs != null && Object.hasOwnProperty.call(message, \"stopDelayMs\"))\n writer.uint32(/* id 3, wireType 0 =*/24).uint32(message.stopDelayMs);\n if (message.maxPer_24H != null && Object.hasOwnProperty.call(message, \"maxPer_24H\"))\n writer.uint32(/* id 4, wireType 0 =*/32).uint32(message.maxPer_24H);\n if (message.skipProbability != null && Object.hasOwnProperty.call(message, \"skipProbability\"))\n writer.uint32(/* id 5, wireType 1 =*/41).double(message.skipProbability);\n return writer;\n };\n\n /**\n * Encodes the specified Trigger message, length delimited. Does not implicitly {@link perfetto.protos.TraceConfig.TriggerConfig.Trigger.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.TraceConfig.TriggerConfig.Trigger\n * @static\n * @param {perfetto.protos.TraceConfig.TriggerConfig.ITrigger} message Trigger message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Trigger.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a Trigger message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.TraceConfig.TriggerConfig.Trigger\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.TraceConfig.TriggerConfig.Trigger} Trigger\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Trigger.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.TraceConfig.TriggerConfig.Trigger();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.name = reader.string();\n break;\n case 2:\n message.producerNameRegex = reader.string();\n break;\n case 3:\n message.stopDelayMs = reader.uint32();\n break;\n case 4:\n message.maxPer_24H = reader.uint32();\n break;\n case 5:\n message.skipProbability = reader.double();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a Trigger message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.TraceConfig.TriggerConfig.Trigger\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.TraceConfig.TriggerConfig.Trigger} Trigger\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Trigger.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a Trigger message.\n * @function verify\n * @memberof perfetto.protos.TraceConfig.TriggerConfig.Trigger\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n Trigger.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.name != null && message.hasOwnProperty(\"name\"))\n if (!$util.isString(message.name))\n return \"name: string expected\";\n if (message.producerNameRegex != null && message.hasOwnProperty(\"producerNameRegex\"))\n if (!$util.isString(message.producerNameRegex))\n return \"producerNameRegex: string expected\";\n if (message.stopDelayMs != null && message.hasOwnProperty(\"stopDelayMs\"))\n if (!$util.isInteger(message.stopDelayMs))\n return \"stopDelayMs: integer expected\";\n if (message.maxPer_24H != null && message.hasOwnProperty(\"maxPer_24H\"))\n if (!$util.isInteger(message.maxPer_24H))\n return \"maxPer_24H: integer expected\";\n if (message.skipProbability != null && message.hasOwnProperty(\"skipProbability\"))\n if (typeof message.skipProbability !== \"number\")\n return \"skipProbability: number expected\";\n return null;\n };\n\n /**\n * Creates a Trigger message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.TraceConfig.TriggerConfig.Trigger\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.TraceConfig.TriggerConfig.Trigger} Trigger\n */\n Trigger.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.TraceConfig.TriggerConfig.Trigger)\n return object;\n var message = new $root.perfetto.protos.TraceConfig.TriggerConfig.Trigger();\n if (object.name != null)\n message.name = String(object.name);\n if (object.producerNameRegex != null)\n message.producerNameRegex = String(object.producerNameRegex);\n if (object.stopDelayMs != null)\n message.stopDelayMs = object.stopDelayMs >>> 0;\n if (object.maxPer_24H != null)\n message.maxPer_24H = object.maxPer_24H >>> 0;\n if (object.skipProbability != null)\n message.skipProbability = Number(object.skipProbability);\n return message;\n };\n\n /**\n * Creates a plain object from a Trigger message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.TraceConfig.TriggerConfig.Trigger\n * @static\n * @param {perfetto.protos.TraceConfig.TriggerConfig.Trigger} message Trigger\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n Trigger.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.name = \"\";\n object.producerNameRegex = \"\";\n object.stopDelayMs = 0;\n object.maxPer_24H = 0;\n object.skipProbability = 0;\n }\n if (message.name != null && message.hasOwnProperty(\"name\"))\n object.name = message.name;\n if (message.producerNameRegex != null && message.hasOwnProperty(\"producerNameRegex\"))\n object.producerNameRegex = message.producerNameRegex;\n if (message.stopDelayMs != null && message.hasOwnProperty(\"stopDelayMs\"))\n object.stopDelayMs = message.stopDelayMs;\n if (message.maxPer_24H != null && message.hasOwnProperty(\"maxPer_24H\"))\n object.maxPer_24H = message.maxPer_24H;\n if (message.skipProbability != null && message.hasOwnProperty(\"skipProbability\"))\n object.skipProbability = options.json && !isFinite(message.skipProbability) ? String(message.skipProbability) : message.skipProbability;\n return object;\n };\n\n /**\n * Converts this Trigger to JSON.\n * @function toJSON\n * @memberof perfetto.protos.TraceConfig.TriggerConfig.Trigger\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n Trigger.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return Trigger;\n })();\n\n return TriggerConfig;\n })();\n\n TraceConfig.IncrementalStateConfig = (function() {\n\n /**\n * Properties of an IncrementalStateConfig.\n * @memberof perfetto.protos.TraceConfig\n * @interface IIncrementalStateConfig\n * @property {number|null} [clearPeriodMs] IncrementalStateConfig clearPeriodMs\n */\n\n /**\n * Constructs a new IncrementalStateConfig.\n * @memberof perfetto.protos.TraceConfig\n * @classdesc Represents an IncrementalStateConfig.\n * @implements IIncrementalStateConfig\n * @constructor\n * @param {perfetto.protos.TraceConfig.IIncrementalStateConfig=} [properties] Properties to set\n */\n function IncrementalStateConfig(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * IncrementalStateConfig clearPeriodMs.\n * @member {number} clearPeriodMs\n * @memberof perfetto.protos.TraceConfig.IncrementalStateConfig\n * @instance\n */\n IncrementalStateConfig.prototype.clearPeriodMs = 0;\n\n /**\n * Creates a new IncrementalStateConfig instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.TraceConfig.IncrementalStateConfig\n * @static\n * @param {perfetto.protos.TraceConfig.IIncrementalStateConfig=} [properties] Properties to set\n * @returns {perfetto.protos.TraceConfig.IncrementalStateConfig} IncrementalStateConfig instance\n */\n IncrementalStateConfig.create = function create(properties) {\n return new IncrementalStateConfig(properties);\n };\n\n /**\n * Encodes the specified IncrementalStateConfig message. Does not implicitly {@link perfetto.protos.TraceConfig.IncrementalStateConfig.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.TraceConfig.IncrementalStateConfig\n * @static\n * @param {perfetto.protos.TraceConfig.IIncrementalStateConfig} message IncrementalStateConfig message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n IncrementalStateConfig.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.clearPeriodMs != null && Object.hasOwnProperty.call(message, \"clearPeriodMs\"))\n writer.uint32(/* id 1, wireType 0 =*/8).uint32(message.clearPeriodMs);\n return writer;\n };\n\n /**\n * Encodes the specified IncrementalStateConfig message, length delimited. Does not implicitly {@link perfetto.protos.TraceConfig.IncrementalStateConfig.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.TraceConfig.IncrementalStateConfig\n * @static\n * @param {perfetto.protos.TraceConfig.IIncrementalStateConfig} message IncrementalStateConfig message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n IncrementalStateConfig.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes an IncrementalStateConfig message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.TraceConfig.IncrementalStateConfig\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.TraceConfig.IncrementalStateConfig} IncrementalStateConfig\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n IncrementalStateConfig.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.TraceConfig.IncrementalStateConfig();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.clearPeriodMs = reader.uint32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes an IncrementalStateConfig message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.TraceConfig.IncrementalStateConfig\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.TraceConfig.IncrementalStateConfig} IncrementalStateConfig\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n IncrementalStateConfig.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies an IncrementalStateConfig message.\n * @function verify\n * @memberof perfetto.protos.TraceConfig.IncrementalStateConfig\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n IncrementalStateConfig.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.clearPeriodMs != null && message.hasOwnProperty(\"clearPeriodMs\"))\n if (!$util.isInteger(message.clearPeriodMs))\n return \"clearPeriodMs: integer expected\";\n return null;\n };\n\n /**\n * Creates an IncrementalStateConfig message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.TraceConfig.IncrementalStateConfig\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.TraceConfig.IncrementalStateConfig} IncrementalStateConfig\n */\n IncrementalStateConfig.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.TraceConfig.IncrementalStateConfig)\n return object;\n var message = new $root.perfetto.protos.TraceConfig.IncrementalStateConfig();\n if (object.clearPeriodMs != null)\n message.clearPeriodMs = object.clearPeriodMs >>> 0;\n return message;\n };\n\n /**\n * Creates a plain object from an IncrementalStateConfig message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.TraceConfig.IncrementalStateConfig\n * @static\n * @param {perfetto.protos.TraceConfig.IncrementalStateConfig} message IncrementalStateConfig\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n IncrementalStateConfig.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults)\n object.clearPeriodMs = 0;\n if (message.clearPeriodMs != null && message.hasOwnProperty(\"clearPeriodMs\"))\n object.clearPeriodMs = message.clearPeriodMs;\n return object;\n };\n\n /**\n * Converts this IncrementalStateConfig to JSON.\n * @function toJSON\n * @memberof perfetto.protos.TraceConfig.IncrementalStateConfig\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n IncrementalStateConfig.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return IncrementalStateConfig;\n })();\n\n /**\n * CompressionType enum.\n * @name perfetto.protos.TraceConfig.CompressionType\n * @enum {number}\n * @property {number} COMPRESSION_TYPE_UNSPECIFIED=0 COMPRESSION_TYPE_UNSPECIFIED value\n * @property {number} COMPRESSION_TYPE_DEFLATE=1 COMPRESSION_TYPE_DEFLATE value\n */\n TraceConfig.CompressionType = (function() {\n var valuesById = {}, values = Object.create(valuesById);\n values[valuesById[0] = \"COMPRESSION_TYPE_UNSPECIFIED\"] = 0;\n values[valuesById[1] = \"COMPRESSION_TYPE_DEFLATE\"] = 1;\n return values;\n })();\n\n TraceConfig.IncidentReportConfig = (function() {\n\n /**\n * Properties of an IncidentReportConfig.\n * @memberof perfetto.protos.TraceConfig\n * @interface IIncidentReportConfig\n * @property {string|null} [destinationPackage] IncidentReportConfig destinationPackage\n * @property {string|null} [destinationClass] IncidentReportConfig destinationClass\n * @property {number|null} [privacyLevel] IncidentReportConfig privacyLevel\n * @property {boolean|null} [skipIncidentd] IncidentReportConfig skipIncidentd\n * @property {boolean|null} [skipDropbox] IncidentReportConfig skipDropbox\n */\n\n /**\n * Constructs a new IncidentReportConfig.\n * @memberof perfetto.protos.TraceConfig\n * @classdesc Represents an IncidentReportConfig.\n * @implements IIncidentReportConfig\n * @constructor\n * @param {perfetto.protos.TraceConfig.IIncidentReportConfig=} [properties] Properties to set\n */\n function IncidentReportConfig(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * IncidentReportConfig destinationPackage.\n * @member {string} destinationPackage\n * @memberof perfetto.protos.TraceConfig.IncidentReportConfig\n * @instance\n */\n IncidentReportConfig.prototype.destinationPackage = \"\";\n\n /**\n * IncidentReportConfig destinationClass.\n * @member {string} destinationClass\n * @memberof perfetto.protos.TraceConfig.IncidentReportConfig\n * @instance\n */\n IncidentReportConfig.prototype.destinationClass = \"\";\n\n /**\n * IncidentReportConfig privacyLevel.\n * @member {number} privacyLevel\n * @memberof perfetto.protos.TraceConfig.IncidentReportConfig\n * @instance\n */\n IncidentReportConfig.prototype.privacyLevel = 0;\n\n /**\n * IncidentReportConfig skipIncidentd.\n * @member {boolean} skipIncidentd\n * @memberof perfetto.protos.TraceConfig.IncidentReportConfig\n * @instance\n */\n IncidentReportConfig.prototype.skipIncidentd = false;\n\n /**\n * IncidentReportConfig skipDropbox.\n * @member {boolean} skipDropbox\n * @memberof perfetto.protos.TraceConfig.IncidentReportConfig\n * @instance\n */\n IncidentReportConfig.prototype.skipDropbox = false;\n\n /**\n * Creates a new IncidentReportConfig instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.TraceConfig.IncidentReportConfig\n * @static\n * @param {perfetto.protos.TraceConfig.IIncidentReportConfig=} [properties] Properties to set\n * @returns {perfetto.protos.TraceConfig.IncidentReportConfig} IncidentReportConfig instance\n */\n IncidentReportConfig.create = function create(properties) {\n return new IncidentReportConfig(properties);\n };\n\n /**\n * Encodes the specified IncidentReportConfig message. Does not implicitly {@link perfetto.protos.TraceConfig.IncidentReportConfig.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.TraceConfig.IncidentReportConfig\n * @static\n * @param {perfetto.protos.TraceConfig.IIncidentReportConfig} message IncidentReportConfig message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n IncidentReportConfig.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.destinationPackage != null && Object.hasOwnProperty.call(message, \"destinationPackage\"))\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.destinationPackage);\n if (message.destinationClass != null && Object.hasOwnProperty.call(message, \"destinationClass\"))\n writer.uint32(/* id 2, wireType 2 =*/18).string(message.destinationClass);\n if (message.privacyLevel != null && Object.hasOwnProperty.call(message, \"privacyLevel\"))\n writer.uint32(/* id 3, wireType 0 =*/24).int32(message.privacyLevel);\n if (message.skipDropbox != null && Object.hasOwnProperty.call(message, \"skipDropbox\"))\n writer.uint32(/* id 4, wireType 0 =*/32).bool(message.skipDropbox);\n if (message.skipIncidentd != null && Object.hasOwnProperty.call(message, \"skipIncidentd\"))\n writer.uint32(/* id 5, wireType 0 =*/40).bool(message.skipIncidentd);\n return writer;\n };\n\n /**\n * Encodes the specified IncidentReportConfig message, length delimited. Does not implicitly {@link perfetto.protos.TraceConfig.IncidentReportConfig.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.TraceConfig.IncidentReportConfig\n * @static\n * @param {perfetto.protos.TraceConfig.IIncidentReportConfig} message IncidentReportConfig message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n IncidentReportConfig.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes an IncidentReportConfig message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.TraceConfig.IncidentReportConfig\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.TraceConfig.IncidentReportConfig} IncidentReportConfig\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n IncidentReportConfig.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.TraceConfig.IncidentReportConfig();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.destinationPackage = reader.string();\n break;\n case 2:\n message.destinationClass = reader.string();\n break;\n case 3:\n message.privacyLevel = reader.int32();\n break;\n case 5:\n message.skipIncidentd = reader.bool();\n break;\n case 4:\n message.skipDropbox = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes an IncidentReportConfig message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.TraceConfig.IncidentReportConfig\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.TraceConfig.IncidentReportConfig} IncidentReportConfig\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n IncidentReportConfig.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies an IncidentReportConfig message.\n * @function verify\n * @memberof perfetto.protos.TraceConfig.IncidentReportConfig\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n IncidentReportConfig.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.destinationPackage != null && message.hasOwnProperty(\"destinationPackage\"))\n if (!$util.isString(message.destinationPackage))\n return \"destinationPackage: string expected\";\n if (message.destinationClass != null && message.hasOwnProperty(\"destinationClass\"))\n if (!$util.isString(message.destinationClass))\n return \"destinationClass: string expected\";\n if (message.privacyLevel != null && message.hasOwnProperty(\"privacyLevel\"))\n if (!$util.isInteger(message.privacyLevel))\n return \"privacyLevel: integer expected\";\n if (message.skipIncidentd != null && message.hasOwnProperty(\"skipIncidentd\"))\n if (typeof message.skipIncidentd !== \"boolean\")\n return \"skipIncidentd: boolean expected\";\n if (message.skipDropbox != null && message.hasOwnProperty(\"skipDropbox\"))\n if (typeof message.skipDropbox !== \"boolean\")\n return \"skipDropbox: boolean expected\";\n return null;\n };\n\n /**\n * Creates an IncidentReportConfig message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.TraceConfig.IncidentReportConfig\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.TraceConfig.IncidentReportConfig} IncidentReportConfig\n */\n IncidentReportConfig.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.TraceConfig.IncidentReportConfig)\n return object;\n var message = new $root.perfetto.protos.TraceConfig.IncidentReportConfig();\n if (object.destinationPackage != null)\n message.destinationPackage = String(object.destinationPackage);\n if (object.destinationClass != null)\n message.destinationClass = String(object.destinationClass);\n if (object.privacyLevel != null)\n message.privacyLevel = object.privacyLevel | 0;\n if (object.skipIncidentd != null)\n message.skipIncidentd = Boolean(object.skipIncidentd);\n if (object.skipDropbox != null)\n message.skipDropbox = Boolean(object.skipDropbox);\n return message;\n };\n\n /**\n * Creates a plain object from an IncidentReportConfig message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.TraceConfig.IncidentReportConfig\n * @static\n * @param {perfetto.protos.TraceConfig.IncidentReportConfig} message IncidentReportConfig\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n IncidentReportConfig.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.destinationPackage = \"\";\n object.destinationClass = \"\";\n object.privacyLevel = 0;\n object.skipDropbox = false;\n object.skipIncidentd = false;\n }\n if (message.destinationPackage != null && message.hasOwnProperty(\"destinationPackage\"))\n object.destinationPackage = message.destinationPackage;\n if (message.destinationClass != null && message.hasOwnProperty(\"destinationClass\"))\n object.destinationClass = message.destinationClass;\n if (message.privacyLevel != null && message.hasOwnProperty(\"privacyLevel\"))\n object.privacyLevel = message.privacyLevel;\n if (message.skipDropbox != null && message.hasOwnProperty(\"skipDropbox\"))\n object.skipDropbox = message.skipDropbox;\n if (message.skipIncidentd != null && message.hasOwnProperty(\"skipIncidentd\"))\n object.skipIncidentd = message.skipIncidentd;\n return object;\n };\n\n /**\n * Converts this IncidentReportConfig to JSON.\n * @function toJSON\n * @memberof perfetto.protos.TraceConfig.IncidentReportConfig\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n IncidentReportConfig.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return IncidentReportConfig;\n })();\n\n /**\n * StatsdLogging enum.\n * @name perfetto.protos.TraceConfig.StatsdLogging\n * @enum {number}\n * @property {number} STATSD_LOGGING_UNSPECIFIED=0 STATSD_LOGGING_UNSPECIFIED value\n * @property {number} STATSD_LOGGING_ENABLED=1 STATSD_LOGGING_ENABLED value\n * @property {number} STATSD_LOGGING_DISABLED=2 STATSD_LOGGING_DISABLED value\n */\n TraceConfig.StatsdLogging = (function() {\n var valuesById = {}, values = Object.create(valuesById);\n values[valuesById[0] = \"STATSD_LOGGING_UNSPECIFIED\"] = 0;\n values[valuesById[1] = \"STATSD_LOGGING_ENABLED\"] = 1;\n values[valuesById[2] = \"STATSD_LOGGING_DISABLED\"] = 2;\n return values;\n })();\n\n TraceConfig.TraceFilter = (function() {\n\n /**\n * Properties of a TraceFilter.\n * @memberof perfetto.protos.TraceConfig\n * @interface ITraceFilter\n * @property {Uint8Array|null} [bytecode] TraceFilter bytecode\n */\n\n /**\n * Constructs a new TraceFilter.\n * @memberof perfetto.protos.TraceConfig\n * @classdesc Represents a TraceFilter.\n * @implements ITraceFilter\n * @constructor\n * @param {perfetto.protos.TraceConfig.ITraceFilter=} [properties] Properties to set\n */\n function TraceFilter(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * TraceFilter bytecode.\n * @member {Uint8Array} bytecode\n * @memberof perfetto.protos.TraceConfig.TraceFilter\n * @instance\n */\n TraceFilter.prototype.bytecode = $util.newBuffer([]);\n\n /**\n * Creates a new TraceFilter instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.TraceConfig.TraceFilter\n * @static\n * @param {perfetto.protos.TraceConfig.ITraceFilter=} [properties] Properties to set\n * @returns {perfetto.protos.TraceConfig.TraceFilter} TraceFilter instance\n */\n TraceFilter.create = function create(properties) {\n return new TraceFilter(properties);\n };\n\n /**\n * Encodes the specified TraceFilter message. Does not implicitly {@link perfetto.protos.TraceConfig.TraceFilter.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.TraceConfig.TraceFilter\n * @static\n * @param {perfetto.protos.TraceConfig.ITraceFilter} message TraceFilter message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n TraceFilter.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.bytecode != null && Object.hasOwnProperty.call(message, \"bytecode\"))\n writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.bytecode);\n return writer;\n };\n\n /**\n * Encodes the specified TraceFilter message, length delimited. Does not implicitly {@link perfetto.protos.TraceConfig.TraceFilter.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.TraceConfig.TraceFilter\n * @static\n * @param {perfetto.protos.TraceConfig.ITraceFilter} message TraceFilter message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n TraceFilter.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a TraceFilter message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.TraceConfig.TraceFilter\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.TraceConfig.TraceFilter} TraceFilter\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n TraceFilter.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.TraceConfig.TraceFilter();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.bytecode = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a TraceFilter message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.TraceConfig.TraceFilter\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.TraceConfig.TraceFilter} TraceFilter\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n TraceFilter.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a TraceFilter message.\n * @function verify\n * @memberof perfetto.protos.TraceConfig.TraceFilter\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n TraceFilter.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.bytecode != null && message.hasOwnProperty(\"bytecode\"))\n if (!(message.bytecode && typeof message.bytecode.length === \"number\" || $util.isString(message.bytecode)))\n return \"bytecode: buffer expected\";\n return null;\n };\n\n /**\n * Creates a TraceFilter message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.TraceConfig.TraceFilter\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.TraceConfig.TraceFilter} TraceFilter\n */\n TraceFilter.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.TraceConfig.TraceFilter)\n return object;\n var message = new $root.perfetto.protos.TraceConfig.TraceFilter();\n if (object.bytecode != null)\n if (typeof object.bytecode === \"string\")\n $util.base64.decode(object.bytecode, message.bytecode = $util.newBuffer($util.base64.length(object.bytecode)), 0);\n else if (object.bytecode.length)\n message.bytecode = object.bytecode;\n return message;\n };\n\n /**\n * Creates a plain object from a TraceFilter message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.TraceConfig.TraceFilter\n * @static\n * @param {perfetto.protos.TraceConfig.TraceFilter} message TraceFilter\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n TraceFilter.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults)\n if (options.bytes === String)\n object.bytecode = \"\";\n else {\n object.bytecode = [];\n if (options.bytes !== Array)\n object.bytecode = $util.newBuffer(object.bytecode);\n }\n if (message.bytecode != null && message.hasOwnProperty(\"bytecode\"))\n object.bytecode = options.bytes === String ? $util.base64.encode(message.bytecode, 0, message.bytecode.length) : options.bytes === Array ? Array.prototype.slice.call(message.bytecode) : message.bytecode;\n return object;\n };\n\n /**\n * Converts this TraceFilter to JSON.\n * @function toJSON\n * @memberof perfetto.protos.TraceConfig.TraceFilter\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n TraceFilter.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return TraceFilter;\n })();\n\n return TraceConfig;\n })();\n\n protos.ConsumerPort = (function() {\n\n /**\n * Constructs a new ConsumerPort service.\n * @memberof perfetto.protos\n * @classdesc Represents a ConsumerPort\n * @extends $protobuf.rpc.Service\n * @constructor\n * @param {$protobuf.RPCImpl} rpcImpl RPC implementation\n * @param {boolean} [requestDelimited=false] Whether requests are length-delimited\n * @param {boolean} [responseDelimited=false] Whether responses are length-delimited\n */\n function ConsumerPort(rpcImpl, requestDelimited, responseDelimited) {\n $protobuf.rpc.Service.call(this, rpcImpl, requestDelimited, responseDelimited);\n }\n\n (ConsumerPort.prototype = Object.create($protobuf.rpc.Service.prototype)).constructor = ConsumerPort;\n\n /**\n * Creates new ConsumerPort service using the specified rpc implementation.\n * @function create\n * @memberof perfetto.protos.ConsumerPort\n * @static\n * @param {$protobuf.RPCImpl} rpcImpl RPC implementation\n * @param {boolean} [requestDelimited=false] Whether requests are length-delimited\n * @param {boolean} [responseDelimited=false] Whether responses are length-delimited\n * @returns {ConsumerPort} RPC service. Useful where requests and/or responses are streamed.\n */\n ConsumerPort.create = function create(rpcImpl, requestDelimited, responseDelimited) {\n return new this(rpcImpl, requestDelimited, responseDelimited);\n };\n\n /**\n * Callback as used by {@link perfetto.protos.ConsumerPort#enableTracing}.\n * @memberof perfetto.protos.ConsumerPort\n * @typedef EnableTracingCallback\n * @type {function}\n * @param {Error|null} error Error, if any\n * @param {perfetto.protos.EnableTracingResponse} [response] EnableTracingResponse\n */\n\n /**\n * Calls EnableTracing.\n * @function enableTracing\n * @memberof perfetto.protos.ConsumerPort\n * @instance\n * @param {perfetto.protos.IEnableTracingRequest} request EnableTracingRequest message or plain object\n * @param {perfetto.protos.ConsumerPort.EnableTracingCallback} callback Node-style callback called with the error, if any, and EnableTracingResponse\n * @returns {undefined}\n * @variation 1\n */\n Object.defineProperty(ConsumerPort.prototype.enableTracing = function enableTracing(request, callback) {\n return this.rpcCall(enableTracing, $root.perfetto.protos.EnableTracingRequest, $root.perfetto.protos.EnableTracingResponse, request, callback);\n }, \"name\", { value: \"EnableTracing\" });\n\n /**\n * Calls EnableTracing.\n * @function enableTracing\n * @memberof perfetto.protos.ConsumerPort\n * @instance\n * @param {perfetto.protos.IEnableTracingRequest} request EnableTracingRequest message or plain object\n * @returns {Promise<perfetto.protos.EnableTracingResponse>} Promise\n * @variation 2\n */\n\n /**\n * Callback as used by {@link perfetto.protos.ConsumerPort#disableTracing}.\n * @memberof perfetto.protos.ConsumerPort\n * @typedef DisableTracingCallback\n * @type {function}\n * @param {Error|null} error Error, if any\n * @param {perfetto.protos.DisableTracingResponse} [response] DisableTracingResponse\n */\n\n /**\n * Calls DisableTracing.\n * @function disableTracing\n * @memberof perfetto.protos.ConsumerPort\n * @instance\n * @param {perfetto.protos.IDisableTracingRequest} request DisableTracingRequest message or plain object\n * @param {perfetto.protos.ConsumerPort.DisableTracingCallback} callback Node-style callback called with the error, if any, and DisableTracingResponse\n * @returns {undefined}\n * @variation 1\n */\n Object.defineProperty(ConsumerPort.prototype.disableTracing = function disableTracing(request, callback) {\n return this.rpcCall(disableTracing, $root.perfetto.protos.DisableTracingRequest, $root.perfetto.protos.DisableTracingResponse, request, callback);\n }, \"name\", { value: \"DisableTracing\" });\n\n /**\n * Calls DisableTracing.\n * @function disableTracing\n * @memberof perfetto.protos.ConsumerPort\n * @instance\n * @param {perfetto.protos.IDisableTracingRequest} request DisableTracingRequest message or plain object\n * @returns {Promise<perfetto.protos.DisableTracingResponse>} Promise\n * @variation 2\n */\n\n /**\n * Callback as used by {@link perfetto.protos.ConsumerPort#readBuffers}.\n * @memberof perfetto.protos.ConsumerPort\n * @typedef ReadBuffersCallback\n * @type {function}\n * @param {Error|null} error Error, if any\n * @param {perfetto.protos.ReadBuffersResponse} [response] ReadBuffersResponse\n */\n\n /**\n * Calls ReadBuffers.\n * @function readBuffers\n * @memberof perfetto.protos.ConsumerPort\n * @instance\n * @param {perfetto.protos.IReadBuffersRequest} request ReadBuffersRequest message or plain object\n * @param {perfetto.protos.ConsumerPort.ReadBuffersCallback} callback Node-style callback called with the error, if any, and ReadBuffersResponse\n * @returns {undefined}\n * @variation 1\n */\n Object.defineProperty(ConsumerPort.prototype.readBuffers = function readBuffers(request, callback) {\n return this.rpcCall(readBuffers, $root.perfetto.protos.ReadBuffersRequest, $root.perfetto.protos.ReadBuffersResponse, request, callback);\n }, \"name\", { value: \"ReadBuffers\" });\n\n /**\n * Calls ReadBuffers.\n * @function readBuffers\n * @memberof perfetto.protos.ConsumerPort\n * @instance\n * @param {perfetto.protos.IReadBuffersRequest} request ReadBuffersRequest message or plain object\n * @returns {Promise<perfetto.protos.ReadBuffersResponse>} Promise\n * @variation 2\n */\n\n /**\n * Callback as used by {@link perfetto.protos.ConsumerPort#freeBuffers}.\n * @memberof perfetto.protos.ConsumerPort\n * @typedef FreeBuffersCallback\n * @type {function}\n * @param {Error|null} error Error, if any\n * @param {perfetto.protos.FreeBuffersResponse} [response] FreeBuffersResponse\n */\n\n /**\n * Calls FreeBuffers.\n * @function freeBuffers\n * @memberof perfetto.protos.ConsumerPort\n * @instance\n * @param {perfetto.protos.IFreeBuffersRequest} request FreeBuffersRequest message or plain object\n * @param {perfetto.protos.ConsumerPort.FreeBuffersCallback} callback Node-style callback called with the error, if any, and FreeBuffersResponse\n * @returns {undefined}\n * @variation 1\n */\n Object.defineProperty(ConsumerPort.prototype.freeBuffers = function freeBuffers(request, callback) {\n return this.rpcCall(freeBuffers, $root.perfetto.protos.FreeBuffersRequest, $root.perfetto.protos.FreeBuffersResponse, request, callback);\n }, \"name\", { value: \"FreeBuffers\" });\n\n /**\n * Calls FreeBuffers.\n * @function freeBuffers\n * @memberof perfetto.protos.ConsumerPort\n * @instance\n * @param {perfetto.protos.IFreeBuffersRequest} request FreeBuffersRequest message or plain object\n * @returns {Promise<perfetto.protos.FreeBuffersResponse>} Promise\n * @variation 2\n */\n\n /**\n * Callback as used by {@link perfetto.protos.ConsumerPort#flush}.\n * @memberof perfetto.protos.ConsumerPort\n * @typedef FlushCallback\n * @type {function}\n * @param {Error|null} error Error, if any\n * @param {perfetto.protos.FlushResponse} [response] FlushResponse\n */\n\n /**\n * Calls Flush.\n * @function flush\n * @memberof perfetto.protos.ConsumerPort\n * @instance\n * @param {perfetto.protos.IFlushRequest} request FlushRequest message or plain object\n * @param {perfetto.protos.ConsumerPort.FlushCallback} callback Node-style callback called with the error, if any, and FlushResponse\n * @returns {undefined}\n * @variation 1\n */\n Object.defineProperty(ConsumerPort.prototype.flush = function flush(request, callback) {\n return this.rpcCall(flush, $root.perfetto.protos.FlushRequest, $root.perfetto.protos.FlushResponse, request, callback);\n }, \"name\", { value: \"Flush\" });\n\n /**\n * Calls Flush.\n * @function flush\n * @memberof perfetto.protos.ConsumerPort\n * @instance\n * @param {perfetto.protos.IFlushRequest} request FlushRequest message or plain object\n * @returns {Promise<perfetto.protos.FlushResponse>} Promise\n * @variation 2\n */\n\n /**\n * Callback as used by {@link perfetto.protos.ConsumerPort#startTracing}.\n * @memberof perfetto.protos.ConsumerPort\n * @typedef StartTracingCallback\n * @type {function}\n * @param {Error|null} error Error, if any\n * @param {perfetto.protos.StartTracingResponse} [response] StartTracingResponse\n */\n\n /**\n * Calls StartTracing.\n * @function startTracing\n * @memberof perfetto.protos.ConsumerPort\n * @instance\n * @param {perfetto.protos.IStartTracingRequest} request StartTracingRequest message or plain object\n * @param {perfetto.protos.ConsumerPort.StartTracingCallback} callback Node-style callback called with the error, if any, and StartTracingResponse\n * @returns {undefined}\n * @variation 1\n */\n Object.defineProperty(ConsumerPort.prototype.startTracing = function startTracing(request, callback) {\n return this.rpcCall(startTracing, $root.perfetto.protos.StartTracingRequest, $root.perfetto.protos.StartTracingResponse, request, callback);\n }, \"name\", { value: \"StartTracing\" });\n\n /**\n * Calls StartTracing.\n * @function startTracing\n * @memberof perfetto.protos.ConsumerPort\n * @instance\n * @param {perfetto.protos.IStartTracingRequest} request StartTracingRequest message or plain object\n * @returns {Promise<perfetto.protos.StartTracingResponse>} Promise\n * @variation 2\n */\n\n /**\n * Callback as used by {@link perfetto.protos.ConsumerPort#changeTraceConfig}.\n * @memberof perfetto.protos.ConsumerPort\n * @typedef ChangeTraceConfigCallback\n * @type {function}\n * @param {Error|null} error Error, if any\n * @param {perfetto.protos.ChangeTraceConfigResponse} [response] ChangeTraceConfigResponse\n */\n\n /**\n * Calls ChangeTraceConfig.\n * @function changeTraceConfig\n * @memberof perfetto.protos.ConsumerPort\n * @instance\n * @param {perfetto.protos.IChangeTraceConfigRequest} request ChangeTraceConfigRequest message or plain object\n * @param {perfetto.protos.ConsumerPort.ChangeTraceConfigCallback} callback Node-style callback called with the error, if any, and ChangeTraceConfigResponse\n * @returns {undefined}\n * @variation 1\n */\n Object.defineProperty(ConsumerPort.prototype.changeTraceConfig = function changeTraceConfig(request, callback) {\n return this.rpcCall(changeTraceConfig, $root.perfetto.protos.ChangeTraceConfigRequest, $root.perfetto.protos.ChangeTraceConfigResponse, request, callback);\n }, \"name\", { value: \"ChangeTraceConfig\" });\n\n /**\n * Calls ChangeTraceConfig.\n * @function changeTraceConfig\n * @memberof perfetto.protos.ConsumerPort\n * @instance\n * @param {perfetto.protos.IChangeTraceConfigRequest} request ChangeTraceConfigRequest message or plain object\n * @returns {Promise<perfetto.protos.ChangeTraceConfigResponse>} Promise\n * @variation 2\n */\n\n /**\n * Callback as used by {@link perfetto.protos.ConsumerPort#detach}.\n * @memberof perfetto.protos.ConsumerPort\n * @typedef DetachCallback\n * @type {function}\n * @param {Error|null} error Error, if any\n * @param {perfetto.protos.DetachResponse} [response] DetachResponse\n */\n\n /**\n * Calls Detach.\n * @function detach\n * @memberof perfetto.protos.ConsumerPort\n * @instance\n * @param {perfetto.protos.IDetachRequest} request DetachRequest message or plain object\n * @param {perfetto.protos.ConsumerPort.DetachCallback} callback Node-style callback called with the error, if any, and DetachResponse\n * @returns {undefined}\n * @variation 1\n */\n Object.defineProperty(ConsumerPort.prototype.detach = function detach(request, callback) {\n return this.rpcCall(detach, $root.perfetto.protos.DetachRequest, $root.perfetto.protos.DetachResponse, request, callback);\n }, \"name\", { value: \"Detach\" });\n\n /**\n * Calls Detach.\n * @function detach\n * @memberof perfetto.protos.ConsumerPort\n * @instance\n * @param {perfetto.protos.IDetachRequest} request DetachRequest message or plain object\n * @returns {Promise<perfetto.protos.DetachResponse>} Promise\n * @variation 2\n */\n\n /**\n * Callback as used by {@link perfetto.protos.ConsumerPort#attach}.\n * @memberof perfetto.protos.ConsumerPort\n * @typedef AttachCallback\n * @type {function}\n * @param {Error|null} error Error, if any\n * @param {perfetto.protos.AttachResponse} [response] AttachResponse\n */\n\n /**\n * Calls Attach.\n * @function attach\n * @memberof perfetto.protos.ConsumerPort\n * @instance\n * @param {perfetto.protos.IAttachRequest} request AttachRequest message or plain object\n * @param {perfetto.protos.ConsumerPort.AttachCallback} callback Node-style callback called with the error, if any, and AttachResponse\n * @returns {undefined}\n * @variation 1\n */\n Object.defineProperty(ConsumerPort.prototype.attach = function attach(request, callback) {\n return this.rpcCall(attach, $root.perfetto.protos.AttachRequest, $root.perfetto.protos.AttachResponse, request, callback);\n }, \"name\", { value: \"Attach\" });\n\n /**\n * Calls Attach.\n * @function attach\n * @memberof perfetto.protos.ConsumerPort\n * @instance\n * @param {perfetto.protos.IAttachRequest} request AttachRequest message or plain object\n * @returns {Promise<perfetto.protos.AttachResponse>} Promise\n * @variation 2\n */\n\n /**\n * Callback as used by {@link perfetto.protos.ConsumerPort#getTraceStats}.\n * @memberof perfetto.protos.ConsumerPort\n * @typedef GetTraceStatsCallback\n * @type {function}\n * @param {Error|null} error Error, if any\n * @param {perfetto.protos.GetTraceStatsResponse} [response] GetTraceStatsResponse\n */\n\n /**\n * Calls GetTraceStats.\n * @function getTraceStats\n * @memberof perfetto.protos.ConsumerPort\n * @instance\n * @param {perfetto.protos.IGetTraceStatsRequest} request GetTraceStatsRequest message or plain object\n * @param {perfetto.protos.ConsumerPort.GetTraceStatsCallback} callback Node-style callback called with the error, if any, and GetTraceStatsResponse\n * @returns {undefined}\n * @variation 1\n */\n Object.defineProperty(ConsumerPort.prototype.getTraceStats = function getTraceStats(request, callback) {\n return this.rpcCall(getTraceStats, $root.perfetto.protos.GetTraceStatsRequest, $root.perfetto.protos.GetTraceStatsResponse, request, callback);\n }, \"name\", { value: \"GetTraceStats\" });\n\n /**\n * Calls GetTraceStats.\n * @function getTraceStats\n * @memberof perfetto.protos.ConsumerPort\n * @instance\n * @param {perfetto.protos.IGetTraceStatsRequest} request GetTraceStatsRequest message or plain object\n * @returns {Promise<perfetto.protos.GetTraceStatsResponse>} Promise\n * @variation 2\n */\n\n /**\n * Callback as used by {@link perfetto.protos.ConsumerPort#observeEvents}.\n * @memberof perfetto.protos.ConsumerPort\n * @typedef ObserveEventsCallback\n * @type {function}\n * @param {Error|null} error Error, if any\n * @param {perfetto.protos.ObserveEventsResponse} [response] ObserveEventsResponse\n */\n\n /**\n * Calls ObserveEvents.\n * @function observeEvents\n * @memberof perfetto.protos.ConsumerPort\n * @instance\n * @param {perfetto.protos.IObserveEventsRequest} request ObserveEventsRequest message or plain object\n * @param {perfetto.protos.ConsumerPort.ObserveEventsCallback} callback Node-style callback called with the error, if any, and ObserveEventsResponse\n * @returns {undefined}\n * @variation 1\n */\n Object.defineProperty(ConsumerPort.prototype.observeEvents = function observeEvents(request, callback) {\n return this.rpcCall(observeEvents, $root.perfetto.protos.ObserveEventsRequest, $root.perfetto.protos.ObserveEventsResponse, request, callback);\n }, \"name\", { value: \"ObserveEvents\" });\n\n /**\n * Calls ObserveEvents.\n * @function observeEvents\n * @memberof perfetto.protos.ConsumerPort\n * @instance\n * @param {perfetto.protos.IObserveEventsRequest} request ObserveEventsRequest message or plain object\n * @returns {Promise<perfetto.protos.ObserveEventsResponse>} Promise\n * @variation 2\n */\n\n /**\n * Callback as used by {@link perfetto.protos.ConsumerPort#queryServiceState}.\n * @memberof perfetto.protos.ConsumerPort\n * @typedef QueryServiceStateCallback\n * @type {function}\n * @param {Error|null} error Error, if any\n * @param {perfetto.protos.QueryServiceStateResponse} [response] QueryServiceStateResponse\n */\n\n /**\n * Calls QueryServiceState.\n * @function queryServiceState\n * @memberof perfetto.protos.ConsumerPort\n * @instance\n * @param {perfetto.protos.IQueryServiceStateRequest} request QueryServiceStateRequest message or plain object\n * @param {perfetto.protos.ConsumerPort.QueryServiceStateCallback} callback Node-style callback called with the error, if any, and QueryServiceStateResponse\n * @returns {undefined}\n * @variation 1\n */\n Object.defineProperty(ConsumerPort.prototype.queryServiceState = function queryServiceState(request, callback) {\n return this.rpcCall(queryServiceState, $root.perfetto.protos.QueryServiceStateRequest, $root.perfetto.protos.QueryServiceStateResponse, request, callback);\n }, \"name\", { value: \"QueryServiceState\" });\n\n /**\n * Calls QueryServiceState.\n * @function queryServiceState\n * @memberof perfetto.protos.ConsumerPort\n * @instance\n * @param {perfetto.protos.IQueryServiceStateRequest} request QueryServiceStateRequest message or plain object\n * @returns {Promise<perfetto.protos.QueryServiceStateResponse>} Promise\n * @variation 2\n */\n\n /**\n * Callback as used by {@link perfetto.protos.ConsumerPort#queryCapabilities}.\n * @memberof perfetto.protos.ConsumerPort\n * @typedef QueryCapabilitiesCallback\n * @type {function}\n * @param {Error|null} error Error, if any\n * @param {perfetto.protos.QueryCapabilitiesResponse} [response] QueryCapabilitiesResponse\n */\n\n /**\n * Calls QueryCapabilities.\n * @function queryCapabilities\n * @memberof perfetto.protos.ConsumerPort\n * @instance\n * @param {perfetto.protos.IQueryCapabilitiesRequest} request QueryCapabilitiesRequest message or plain object\n * @param {perfetto.protos.ConsumerPort.QueryCapabilitiesCallback} callback Node-style callback called with the error, if any, and QueryCapabilitiesResponse\n * @returns {undefined}\n * @variation 1\n */\n Object.defineProperty(ConsumerPort.prototype.queryCapabilities = function queryCapabilities(request, callback) {\n return this.rpcCall(queryCapabilities, $root.perfetto.protos.QueryCapabilitiesRequest, $root.perfetto.protos.QueryCapabilitiesResponse, request, callback);\n }, \"name\", { value: \"QueryCapabilities\" });\n\n /**\n * Calls QueryCapabilities.\n * @function queryCapabilities\n * @memberof perfetto.protos.ConsumerPort\n * @instance\n * @param {perfetto.protos.IQueryCapabilitiesRequest} request QueryCapabilitiesRequest message or plain object\n * @returns {Promise<perfetto.protos.QueryCapabilitiesResponse>} Promise\n * @variation 2\n */\n\n /**\n * Callback as used by {@link perfetto.protos.ConsumerPort#saveTraceForBugreport}.\n * @memberof perfetto.protos.ConsumerPort\n * @typedef SaveTraceForBugreportCallback\n * @type {function}\n * @param {Error|null} error Error, if any\n * @param {perfetto.protos.SaveTraceForBugreportResponse} [response] SaveTraceForBugreportResponse\n */\n\n /**\n * Calls SaveTraceForBugreport.\n * @function saveTraceForBugreport\n * @memberof perfetto.protos.ConsumerPort\n * @instance\n * @param {perfetto.protos.ISaveTraceForBugreportRequest} request SaveTraceForBugreportRequest message or plain object\n * @param {perfetto.protos.ConsumerPort.SaveTraceForBugreportCallback} callback Node-style callback called with the error, if any, and SaveTraceForBugreportResponse\n * @returns {undefined}\n * @variation 1\n */\n Object.defineProperty(ConsumerPort.prototype.saveTraceForBugreport = function saveTraceForBugreport(request, callback) {\n return this.rpcCall(saveTraceForBugreport, $root.perfetto.protos.SaveTraceForBugreportRequest, $root.perfetto.protos.SaveTraceForBugreportResponse, request, callback);\n }, \"name\", { value: \"SaveTraceForBugreport\" });\n\n /**\n * Calls SaveTraceForBugreport.\n * @function saveTraceForBugreport\n * @memberof perfetto.protos.ConsumerPort\n * @instance\n * @param {perfetto.protos.ISaveTraceForBugreportRequest} request SaveTraceForBugreportRequest message or plain object\n * @returns {Promise<perfetto.protos.SaveTraceForBugreportResponse>} Promise\n * @variation 2\n */\n\n return ConsumerPort;\n })();\n\n protos.EnableTracingRequest = (function() {\n\n /**\n * Properties of an EnableTracingRequest.\n * @memberof perfetto.protos\n * @interface IEnableTracingRequest\n * @property {perfetto.protos.ITraceConfig|null} [traceConfig] EnableTracingRequest traceConfig\n * @property {boolean|null} [attachNotificationOnly] EnableTracingRequest attachNotificationOnly\n */\n\n /**\n * Constructs a new EnableTracingRequest.\n * @memberof perfetto.protos\n * @classdesc Represents an EnableTracingRequest.\n * @implements IEnableTracingRequest\n * @constructor\n * @param {perfetto.protos.IEnableTracingRequest=} [properties] Properties to set\n */\n function EnableTracingRequest(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * EnableTracingRequest traceConfig.\n * @member {perfetto.protos.ITraceConfig|null|undefined} traceConfig\n * @memberof perfetto.protos.EnableTracingRequest\n * @instance\n */\n EnableTracingRequest.prototype.traceConfig = null;\n\n /**\n * EnableTracingRequest attachNotificationOnly.\n * @member {boolean} attachNotificationOnly\n * @memberof perfetto.protos.EnableTracingRequest\n * @instance\n */\n EnableTracingRequest.prototype.attachNotificationOnly = false;\n\n /**\n * Creates a new EnableTracingRequest instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.EnableTracingRequest\n * @static\n * @param {perfetto.protos.IEnableTracingRequest=} [properties] Properties to set\n * @returns {perfetto.protos.EnableTracingRequest} EnableTracingRequest instance\n */\n EnableTracingRequest.create = function create(properties) {\n return new EnableTracingRequest(properties);\n };\n\n /**\n * Encodes the specified EnableTracingRequest message. Does not implicitly {@link perfetto.protos.EnableTracingRequest.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.EnableTracingRequest\n * @static\n * @param {perfetto.protos.IEnableTracingRequest} message EnableTracingRequest message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n EnableTracingRequest.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.traceConfig != null && Object.hasOwnProperty.call(message, \"traceConfig\"))\n $root.perfetto.protos.TraceConfig.encode(message.traceConfig, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n if (message.attachNotificationOnly != null && Object.hasOwnProperty.call(message, \"attachNotificationOnly\"))\n writer.uint32(/* id 2, wireType 0 =*/16).bool(message.attachNotificationOnly);\n return writer;\n };\n\n /**\n * Encodes the specified EnableTracingRequest message, length delimited. Does not implicitly {@link perfetto.protos.EnableTracingRequest.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.EnableTracingRequest\n * @static\n * @param {perfetto.protos.IEnableTracingRequest} message EnableTracingRequest message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n EnableTracingRequest.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes an EnableTracingRequest message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.EnableTracingRequest\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.EnableTracingRequest} EnableTracingRequest\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n EnableTracingRequest.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.EnableTracingRequest();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.traceConfig = $root.perfetto.protos.TraceConfig.decode(reader, reader.uint32());\n break;\n case 2:\n message.attachNotificationOnly = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes an EnableTracingRequest message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.EnableTracingRequest\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.EnableTracingRequest} EnableTracingRequest\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n EnableTracingRequest.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies an EnableTracingRequest message.\n * @function verify\n * @memberof perfetto.protos.EnableTracingRequest\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n EnableTracingRequest.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.traceConfig != null && message.hasOwnProperty(\"traceConfig\")) {\n var error = $root.perfetto.protos.TraceConfig.verify(message.traceConfig);\n if (error)\n return \"traceConfig.\" + error;\n }\n if (message.attachNotificationOnly != null && message.hasOwnProperty(\"attachNotificationOnly\"))\n if (typeof message.attachNotificationOnly !== \"boolean\")\n return \"attachNotificationOnly: boolean expected\";\n return null;\n };\n\n /**\n * Creates an EnableTracingRequest message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.EnableTracingRequest\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.EnableTracingRequest} EnableTracingRequest\n */\n EnableTracingRequest.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.EnableTracingRequest)\n return object;\n var message = new $root.perfetto.protos.EnableTracingRequest();\n if (object.traceConfig != null) {\n if (typeof object.traceConfig !== \"object\")\n throw TypeError(\".perfetto.protos.EnableTracingRequest.traceConfig: object expected\");\n message.traceConfig = $root.perfetto.protos.TraceConfig.fromObject(object.traceConfig);\n }\n if (object.attachNotificationOnly != null)\n message.attachNotificationOnly = Boolean(object.attachNotificationOnly);\n return message;\n };\n\n /**\n * Creates a plain object from an EnableTracingRequest message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.EnableTracingRequest\n * @static\n * @param {perfetto.protos.EnableTracingRequest} message EnableTracingRequest\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n EnableTracingRequest.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.traceConfig = null;\n object.attachNotificationOnly = false;\n }\n if (message.traceConfig != null && message.hasOwnProperty(\"traceConfig\"))\n object.traceConfig = $root.perfetto.protos.TraceConfig.toObject(message.traceConfig, options);\n if (message.attachNotificationOnly != null && message.hasOwnProperty(\"attachNotificationOnly\"))\n object.attachNotificationOnly = message.attachNotificationOnly;\n return object;\n };\n\n /**\n * Converts this EnableTracingRequest to JSON.\n * @function toJSON\n * @memberof perfetto.protos.EnableTracingRequest\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n EnableTracingRequest.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return EnableTracingRequest;\n })();\n\n protos.EnableTracingResponse = (function() {\n\n /**\n * Properties of an EnableTracingResponse.\n * @memberof perfetto.protos\n * @interface IEnableTracingResponse\n * @property {boolean|null} [disabled] EnableTracingResponse disabled\n * @property {string|null} [error] EnableTracingResponse error\n */\n\n /**\n * Constructs a new EnableTracingResponse.\n * @memberof perfetto.protos\n * @classdesc Represents an EnableTracingResponse.\n * @implements IEnableTracingResponse\n * @constructor\n * @param {perfetto.protos.IEnableTracingResponse=} [properties] Properties to set\n */\n function EnableTracingResponse(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * EnableTracingResponse disabled.\n * @member {boolean} disabled\n * @memberof perfetto.protos.EnableTracingResponse\n * @instance\n */\n EnableTracingResponse.prototype.disabled = false;\n\n /**\n * EnableTracingResponse error.\n * @member {string} error\n * @memberof perfetto.protos.EnableTracingResponse\n * @instance\n */\n EnableTracingResponse.prototype.error = \"\";\n\n // OneOf field names bound to virtual getters and setters\n var $oneOfFields;\n\n /**\n * EnableTracingResponse state.\n * @member {\"disabled\"|undefined} state\n * @memberof perfetto.protos.EnableTracingResponse\n * @instance\n */\n Object.defineProperty(EnableTracingResponse.prototype, \"state\", {\n get: $util.oneOfGetter($oneOfFields = [\"disabled\"]),\n set: $util.oneOfSetter($oneOfFields)\n });\n\n /**\n * Creates a new EnableTracingResponse instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.EnableTracingResponse\n * @static\n * @param {perfetto.protos.IEnableTracingResponse=} [properties] Properties to set\n * @returns {perfetto.protos.EnableTracingResponse} EnableTracingResponse instance\n */\n EnableTracingResponse.create = function create(properties) {\n return new EnableTracingResponse(properties);\n };\n\n /**\n * Encodes the specified EnableTracingResponse message. Does not implicitly {@link perfetto.protos.EnableTracingResponse.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.EnableTracingResponse\n * @static\n * @param {perfetto.protos.IEnableTracingResponse} message EnableTracingResponse message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n EnableTracingResponse.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.disabled != null && Object.hasOwnProperty.call(message, \"disabled\"))\n writer.uint32(/* id 1, wireType 0 =*/8).bool(message.disabled);\n if (message.error != null && Object.hasOwnProperty.call(message, \"error\"))\n writer.uint32(/* id 3, wireType 2 =*/26).string(message.error);\n return writer;\n };\n\n /**\n * Encodes the specified EnableTracingResponse message, length delimited. Does not implicitly {@link perfetto.protos.EnableTracingResponse.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.EnableTracingResponse\n * @static\n * @param {perfetto.protos.IEnableTracingResponse} message EnableTracingResponse message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n EnableTracingResponse.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes an EnableTracingResponse message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.EnableTracingResponse\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.EnableTracingResponse} EnableTracingResponse\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n EnableTracingResponse.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.EnableTracingResponse();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.disabled = reader.bool();\n break;\n case 3:\n message.error = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes an EnableTracingResponse message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.EnableTracingResponse\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.EnableTracingResponse} EnableTracingResponse\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n EnableTracingResponse.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies an EnableTracingResponse message.\n * @function verify\n * @memberof perfetto.protos.EnableTracingResponse\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n EnableTracingResponse.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n var properties = {};\n if (message.disabled != null && message.hasOwnProperty(\"disabled\")) {\n properties.state = 1;\n if (typeof message.disabled !== \"boolean\")\n return \"disabled: boolean expected\";\n }\n if (message.error != null && message.hasOwnProperty(\"error\"))\n if (!$util.isString(message.error))\n return \"error: string expected\";\n return null;\n };\n\n /**\n * Creates an EnableTracingResponse message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.EnableTracingResponse\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.EnableTracingResponse} EnableTracingResponse\n */\n EnableTracingResponse.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.EnableTracingResponse)\n return object;\n var message = new $root.perfetto.protos.EnableTracingResponse();\n if (object.disabled != null)\n message.disabled = Boolean(object.disabled);\n if (object.error != null)\n message.error = String(object.error);\n return message;\n };\n\n /**\n * Creates a plain object from an EnableTracingResponse message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.EnableTracingResponse\n * @static\n * @param {perfetto.protos.EnableTracingResponse} message EnableTracingResponse\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n EnableTracingResponse.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults)\n object.error = \"\";\n if (message.disabled != null && message.hasOwnProperty(\"disabled\")) {\n object.disabled = message.disabled;\n if (options.oneofs)\n object.state = \"disabled\";\n }\n if (message.error != null && message.hasOwnProperty(\"error\"))\n object.error = message.error;\n return object;\n };\n\n /**\n * Converts this EnableTracingResponse to JSON.\n * @function toJSON\n * @memberof perfetto.protos.EnableTracingResponse\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n EnableTracingResponse.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return EnableTracingResponse;\n })();\n\n protos.StartTracingRequest = (function() {\n\n /**\n * Properties of a StartTracingRequest.\n * @memberof perfetto.protos\n * @interface IStartTracingRequest\n */\n\n /**\n * Constructs a new StartTracingRequest.\n * @memberof perfetto.protos\n * @classdesc Represents a StartTracingRequest.\n * @implements IStartTracingRequest\n * @constructor\n * @param {perfetto.protos.IStartTracingRequest=} [properties] Properties to set\n */\n function StartTracingRequest(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * Creates a new StartTracingRequest instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.StartTracingRequest\n * @static\n * @param {perfetto.protos.IStartTracingRequest=} [properties] Properties to set\n * @returns {perfetto.protos.StartTracingRequest} StartTracingRequest instance\n */\n StartTracingRequest.create = function create(properties) {\n return new StartTracingRequest(properties);\n };\n\n /**\n * Encodes the specified StartTracingRequest message. Does not implicitly {@link perfetto.protos.StartTracingRequest.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.StartTracingRequest\n * @static\n * @param {perfetto.protos.IStartTracingRequest} message StartTracingRequest message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n StartTracingRequest.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n return writer;\n };\n\n /**\n * Encodes the specified StartTracingRequest message, length delimited. Does not implicitly {@link perfetto.protos.StartTracingRequest.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.StartTracingRequest\n * @static\n * @param {perfetto.protos.IStartTracingRequest} message StartTracingRequest message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n StartTracingRequest.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a StartTracingRequest message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.StartTracingRequest\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.StartTracingRequest} StartTracingRequest\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n StartTracingRequest.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.StartTracingRequest();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a StartTracingRequest message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.StartTracingRequest\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.StartTracingRequest} StartTracingRequest\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n StartTracingRequest.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a StartTracingRequest message.\n * @function verify\n * @memberof perfetto.protos.StartTracingRequest\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n StartTracingRequest.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n return null;\n };\n\n /**\n * Creates a StartTracingRequest message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.StartTracingRequest\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.StartTracingRequest} StartTracingRequest\n */\n StartTracingRequest.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.StartTracingRequest)\n return object;\n return new $root.perfetto.protos.StartTracingRequest();\n };\n\n /**\n * Creates a plain object from a StartTracingRequest message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.StartTracingRequest\n * @static\n * @param {perfetto.protos.StartTracingRequest} message StartTracingRequest\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n StartTracingRequest.toObject = function toObject() {\n return {};\n };\n\n /**\n * Converts this StartTracingRequest to JSON.\n * @function toJSON\n * @memberof perfetto.protos.StartTracingRequest\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n StartTracingRequest.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return StartTracingRequest;\n })();\n\n protos.StartTracingResponse = (function() {\n\n /**\n * Properties of a StartTracingResponse.\n * @memberof perfetto.protos\n * @interface IStartTracingResponse\n */\n\n /**\n * Constructs a new StartTracingResponse.\n * @memberof perfetto.protos\n * @classdesc Represents a StartTracingResponse.\n * @implements IStartTracingResponse\n * @constructor\n * @param {perfetto.protos.IStartTracingResponse=} [properties] Properties to set\n */\n function StartTracingResponse(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * Creates a new StartTracingResponse instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.StartTracingResponse\n * @static\n * @param {perfetto.protos.IStartTracingResponse=} [properties] Properties to set\n * @returns {perfetto.protos.StartTracingResponse} StartTracingResponse instance\n */\n StartTracingResponse.create = function create(properties) {\n return new StartTracingResponse(properties);\n };\n\n /**\n * Encodes the specified StartTracingResponse message. Does not implicitly {@link perfetto.protos.StartTracingResponse.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.StartTracingResponse\n * @static\n * @param {perfetto.protos.IStartTracingResponse} message StartTracingResponse message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n StartTracingResponse.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n return writer;\n };\n\n /**\n * Encodes the specified StartTracingResponse message, length delimited. Does not implicitly {@link perfetto.protos.StartTracingResponse.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.StartTracingResponse\n * @static\n * @param {perfetto.protos.IStartTracingResponse} message StartTracingResponse message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n StartTracingResponse.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a StartTracingResponse message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.StartTracingResponse\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.StartTracingResponse} StartTracingResponse\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n StartTracingResponse.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.StartTracingResponse();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a StartTracingResponse message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.StartTracingResponse\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.StartTracingResponse} StartTracingResponse\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n StartTracingResponse.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a StartTracingResponse message.\n * @function verify\n * @memberof perfetto.protos.StartTracingResponse\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n StartTracingResponse.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n return null;\n };\n\n /**\n * Creates a StartTracingResponse message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.StartTracingResponse\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.StartTracingResponse} StartTracingResponse\n */\n StartTracingResponse.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.StartTracingResponse)\n return object;\n return new $root.perfetto.protos.StartTracingResponse();\n };\n\n /**\n * Creates a plain object from a StartTracingResponse message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.StartTracingResponse\n * @static\n * @param {perfetto.protos.StartTracingResponse} message StartTracingResponse\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n StartTracingResponse.toObject = function toObject() {\n return {};\n };\n\n /**\n * Converts this StartTracingResponse to JSON.\n * @function toJSON\n * @memberof perfetto.protos.StartTracingResponse\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n StartTracingResponse.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return StartTracingResponse;\n })();\n\n protos.ChangeTraceConfigRequest = (function() {\n\n /**\n * Properties of a ChangeTraceConfigRequest.\n * @memberof perfetto.protos\n * @interface IChangeTraceConfigRequest\n * @property {perfetto.protos.ITraceConfig|null} [traceConfig] ChangeTraceConfigRequest traceConfig\n */\n\n /**\n * Constructs a new ChangeTraceConfigRequest.\n * @memberof perfetto.protos\n * @classdesc Represents a ChangeTraceConfigRequest.\n * @implements IChangeTraceConfigRequest\n * @constructor\n * @param {perfetto.protos.IChangeTraceConfigRequest=} [properties] Properties to set\n */\n function ChangeTraceConfigRequest(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * ChangeTraceConfigRequest traceConfig.\n * @member {perfetto.protos.ITraceConfig|null|undefined} traceConfig\n * @memberof perfetto.protos.ChangeTraceConfigRequest\n * @instance\n */\n ChangeTraceConfigRequest.prototype.traceConfig = null;\n\n /**\n * Creates a new ChangeTraceConfigRequest instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.ChangeTraceConfigRequest\n * @static\n * @param {perfetto.protos.IChangeTraceConfigRequest=} [properties] Properties to set\n * @returns {perfetto.protos.ChangeTraceConfigRequest} ChangeTraceConfigRequest instance\n */\n ChangeTraceConfigRequest.create = function create(properties) {\n return new ChangeTraceConfigRequest(properties);\n };\n\n /**\n * Encodes the specified ChangeTraceConfigRequest message. Does not implicitly {@link perfetto.protos.ChangeTraceConfigRequest.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.ChangeTraceConfigRequest\n * @static\n * @param {perfetto.protos.IChangeTraceConfigRequest} message ChangeTraceConfigRequest message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ChangeTraceConfigRequest.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.traceConfig != null && Object.hasOwnProperty.call(message, \"traceConfig\"))\n $root.perfetto.protos.TraceConfig.encode(message.traceConfig, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified ChangeTraceConfigRequest message, length delimited. Does not implicitly {@link perfetto.protos.ChangeTraceConfigRequest.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.ChangeTraceConfigRequest\n * @static\n * @param {perfetto.protos.IChangeTraceConfigRequest} message ChangeTraceConfigRequest message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ChangeTraceConfigRequest.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a ChangeTraceConfigRequest message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.ChangeTraceConfigRequest\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.ChangeTraceConfigRequest} ChangeTraceConfigRequest\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ChangeTraceConfigRequest.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.ChangeTraceConfigRequest();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.traceConfig = $root.perfetto.protos.TraceConfig.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a ChangeTraceConfigRequest message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.ChangeTraceConfigRequest\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.ChangeTraceConfigRequest} ChangeTraceConfigRequest\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ChangeTraceConfigRequest.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a ChangeTraceConfigRequest message.\n * @function verify\n * @memberof perfetto.protos.ChangeTraceConfigRequest\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n ChangeTraceConfigRequest.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.traceConfig != null && message.hasOwnProperty(\"traceConfig\")) {\n var error = $root.perfetto.protos.TraceConfig.verify(message.traceConfig);\n if (error)\n return \"traceConfig.\" + error;\n }\n return null;\n };\n\n /**\n * Creates a ChangeTraceConfigRequest message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.ChangeTraceConfigRequest\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.ChangeTraceConfigRequest} ChangeTraceConfigRequest\n */\n ChangeTraceConfigRequest.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.ChangeTraceConfigRequest)\n return object;\n var message = new $root.perfetto.protos.ChangeTraceConfigRequest();\n if (object.traceConfig != null) {\n if (typeof object.traceConfig !== \"object\")\n throw TypeError(\".perfetto.protos.ChangeTraceConfigRequest.traceConfig: object expected\");\n message.traceConfig = $root.perfetto.protos.TraceConfig.fromObject(object.traceConfig);\n }\n return message;\n };\n\n /**\n * Creates a plain object from a ChangeTraceConfigRequest message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.ChangeTraceConfigRequest\n * @static\n * @param {perfetto.protos.ChangeTraceConfigRequest} message ChangeTraceConfigRequest\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n ChangeTraceConfigRequest.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults)\n object.traceConfig = null;\n if (message.traceConfig != null && message.hasOwnProperty(\"traceConfig\"))\n object.traceConfig = $root.perfetto.protos.TraceConfig.toObject(message.traceConfig, options);\n return object;\n };\n\n /**\n * Converts this ChangeTraceConfigRequest to JSON.\n * @function toJSON\n * @memberof perfetto.protos.ChangeTraceConfigRequest\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n ChangeTraceConfigRequest.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return ChangeTraceConfigRequest;\n })();\n\n protos.ChangeTraceConfigResponse = (function() {\n\n /**\n * Properties of a ChangeTraceConfigResponse.\n * @memberof perfetto.protos\n * @interface IChangeTraceConfigResponse\n */\n\n /**\n * Constructs a new ChangeTraceConfigResponse.\n * @memberof perfetto.protos\n * @classdesc Represents a ChangeTraceConfigResponse.\n * @implements IChangeTraceConfigResponse\n * @constructor\n * @param {perfetto.protos.IChangeTraceConfigResponse=} [properties] Properties to set\n */\n function ChangeTraceConfigResponse(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * Creates a new ChangeTraceConfigResponse instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.ChangeTraceConfigResponse\n * @static\n * @param {perfetto.protos.IChangeTraceConfigResponse=} [properties] Properties to set\n * @returns {perfetto.protos.ChangeTraceConfigResponse} ChangeTraceConfigResponse instance\n */\n ChangeTraceConfigResponse.create = function create(properties) {\n return new ChangeTraceConfigResponse(properties);\n };\n\n /**\n * Encodes the specified ChangeTraceConfigResponse message. Does not implicitly {@link perfetto.protos.ChangeTraceConfigResponse.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.ChangeTraceConfigResponse\n * @static\n * @param {perfetto.protos.IChangeTraceConfigResponse} message ChangeTraceConfigResponse message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ChangeTraceConfigResponse.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n return writer;\n };\n\n /**\n * Encodes the specified ChangeTraceConfigResponse message, length delimited. Does not implicitly {@link perfetto.protos.ChangeTraceConfigResponse.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.ChangeTraceConfigResponse\n * @static\n * @param {perfetto.protos.IChangeTraceConfigResponse} message ChangeTraceConfigResponse message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ChangeTraceConfigResponse.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a ChangeTraceConfigResponse message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.ChangeTraceConfigResponse\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.ChangeTraceConfigResponse} ChangeTraceConfigResponse\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ChangeTraceConfigResponse.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.ChangeTraceConfigResponse();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a ChangeTraceConfigResponse message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.ChangeTraceConfigResponse\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.ChangeTraceConfigResponse} ChangeTraceConfigResponse\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ChangeTraceConfigResponse.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a ChangeTraceConfigResponse message.\n * @function verify\n * @memberof perfetto.protos.ChangeTraceConfigResponse\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n ChangeTraceConfigResponse.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n return null;\n };\n\n /**\n * Creates a ChangeTraceConfigResponse message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.ChangeTraceConfigResponse\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.ChangeTraceConfigResponse} ChangeTraceConfigResponse\n */\n ChangeTraceConfigResponse.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.ChangeTraceConfigResponse)\n return object;\n return new $root.perfetto.protos.ChangeTraceConfigResponse();\n };\n\n /**\n * Creates a plain object from a ChangeTraceConfigResponse message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.ChangeTraceConfigResponse\n * @static\n * @param {perfetto.protos.ChangeTraceConfigResponse} message ChangeTraceConfigResponse\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n ChangeTraceConfigResponse.toObject = function toObject() {\n return {};\n };\n\n /**\n * Converts this ChangeTraceConfigResponse to JSON.\n * @function toJSON\n * @memberof perfetto.protos.ChangeTraceConfigResponse\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n ChangeTraceConfigResponse.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return ChangeTraceConfigResponse;\n })();\n\n protos.DisableTracingRequest = (function() {\n\n /**\n * Properties of a DisableTracingRequest.\n * @memberof perfetto.protos\n * @interface IDisableTracingRequest\n */\n\n /**\n * Constructs a new DisableTracingRequest.\n * @memberof perfetto.protos\n * @classdesc Represents a DisableTracingRequest.\n * @implements IDisableTracingRequest\n * @constructor\n * @param {perfetto.protos.IDisableTracingRequest=} [properties] Properties to set\n */\n function DisableTracingRequest(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * Creates a new DisableTracingRequest instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.DisableTracingRequest\n * @static\n * @param {perfetto.protos.IDisableTracingRequest=} [properties] Properties to set\n * @returns {perfetto.protos.DisableTracingRequest} DisableTracingRequest instance\n */\n DisableTracingRequest.create = function create(properties) {\n return new DisableTracingRequest(properties);\n };\n\n /**\n * Encodes the specified DisableTracingRequest message. Does not implicitly {@link perfetto.protos.DisableTracingRequest.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.DisableTracingRequest\n * @static\n * @param {perfetto.protos.IDisableTracingRequest} message DisableTracingRequest message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n DisableTracingRequest.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n return writer;\n };\n\n /**\n * Encodes the specified DisableTracingRequest message, length delimited. Does not implicitly {@link perfetto.protos.DisableTracingRequest.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.DisableTracingRequest\n * @static\n * @param {perfetto.protos.IDisableTracingRequest} message DisableTracingRequest message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n DisableTracingRequest.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a DisableTracingRequest message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.DisableTracingRequest\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.DisableTracingRequest} DisableTracingRequest\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n DisableTracingRequest.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.DisableTracingRequest();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a DisableTracingRequest message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.DisableTracingRequest\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.DisableTracingRequest} DisableTracingRequest\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n DisableTracingRequest.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a DisableTracingRequest message.\n * @function verify\n * @memberof perfetto.protos.DisableTracingRequest\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n DisableTracingRequest.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n return null;\n };\n\n /**\n * Creates a DisableTracingRequest message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.DisableTracingRequest\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.DisableTracingRequest} DisableTracingRequest\n */\n DisableTracingRequest.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.DisableTracingRequest)\n return object;\n return new $root.perfetto.protos.DisableTracingRequest();\n };\n\n /**\n * Creates a plain object from a DisableTracingRequest message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.DisableTracingRequest\n * @static\n * @param {perfetto.protos.DisableTracingRequest} message DisableTracingRequest\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n DisableTracingRequest.toObject = function toObject() {\n return {};\n };\n\n /**\n * Converts this DisableTracingRequest to JSON.\n * @function toJSON\n * @memberof perfetto.protos.DisableTracingRequest\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n DisableTracingRequest.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return DisableTracingRequest;\n })();\n\n protos.DisableTracingResponse = (function() {\n\n /**\n * Properties of a DisableTracingResponse.\n * @memberof perfetto.protos\n * @interface IDisableTracingResponse\n */\n\n /**\n * Constructs a new DisableTracingResponse.\n * @memberof perfetto.protos\n * @classdesc Represents a DisableTracingResponse.\n * @implements IDisableTracingResponse\n * @constructor\n * @param {perfetto.protos.IDisableTracingResponse=} [properties] Properties to set\n */\n function DisableTracingResponse(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * Creates a new DisableTracingResponse instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.DisableTracingResponse\n * @static\n * @param {perfetto.protos.IDisableTracingResponse=} [properties] Properties to set\n * @returns {perfetto.protos.DisableTracingResponse} DisableTracingResponse instance\n */\n DisableTracingResponse.create = function create(properties) {\n return new DisableTracingResponse(properties);\n };\n\n /**\n * Encodes the specified DisableTracingResponse message. Does not implicitly {@link perfetto.protos.DisableTracingResponse.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.DisableTracingResponse\n * @static\n * @param {perfetto.protos.IDisableTracingResponse} message DisableTracingResponse message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n DisableTracingResponse.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n return writer;\n };\n\n /**\n * Encodes the specified DisableTracingResponse message, length delimited. Does not implicitly {@link perfetto.protos.DisableTracingResponse.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.DisableTracingResponse\n * @static\n * @param {perfetto.protos.IDisableTracingResponse} message DisableTracingResponse message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n DisableTracingResponse.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a DisableTracingResponse message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.DisableTracingResponse\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.DisableTracingResponse} DisableTracingResponse\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n DisableTracingResponse.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.DisableTracingResponse();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a DisableTracingResponse message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.DisableTracingResponse\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.DisableTracingResponse} DisableTracingResponse\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n DisableTracingResponse.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a DisableTracingResponse message.\n * @function verify\n * @memberof perfetto.protos.DisableTracingResponse\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n DisableTracingResponse.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n return null;\n };\n\n /**\n * Creates a DisableTracingResponse message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.DisableTracingResponse\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.DisableTracingResponse} DisableTracingResponse\n */\n DisableTracingResponse.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.DisableTracingResponse)\n return object;\n return new $root.perfetto.protos.DisableTracingResponse();\n };\n\n /**\n * Creates a plain object from a DisableTracingResponse message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.DisableTracingResponse\n * @static\n * @param {perfetto.protos.DisableTracingResponse} message DisableTracingResponse\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n DisableTracingResponse.toObject = function toObject() {\n return {};\n };\n\n /**\n * Converts this DisableTracingResponse to JSON.\n * @function toJSON\n * @memberof perfetto.protos.DisableTracingResponse\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n DisableTracingResponse.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return DisableTracingResponse;\n })();\n\n protos.ReadBuffersRequest = (function() {\n\n /**\n * Properties of a ReadBuffersRequest.\n * @memberof perfetto.protos\n * @interface IReadBuffersRequest\n */\n\n /**\n * Constructs a new ReadBuffersRequest.\n * @memberof perfetto.protos\n * @classdesc Represents a ReadBuffersRequest.\n * @implements IReadBuffersRequest\n * @constructor\n * @param {perfetto.protos.IReadBuffersRequest=} [properties] Properties to set\n */\n function ReadBuffersRequest(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * Creates a new ReadBuffersRequest instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.ReadBuffersRequest\n * @static\n * @param {perfetto.protos.IReadBuffersRequest=} [properties] Properties to set\n * @returns {perfetto.protos.ReadBuffersRequest} ReadBuffersRequest instance\n */\n ReadBuffersRequest.create = function create(properties) {\n return new ReadBuffersRequest(properties);\n };\n\n /**\n * Encodes the specified ReadBuffersRequest message. Does not implicitly {@link perfetto.protos.ReadBuffersRequest.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.ReadBuffersRequest\n * @static\n * @param {perfetto.protos.IReadBuffersRequest} message ReadBuffersRequest message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ReadBuffersRequest.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n return writer;\n };\n\n /**\n * Encodes the specified ReadBuffersRequest message, length delimited. Does not implicitly {@link perfetto.protos.ReadBuffersRequest.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.ReadBuffersRequest\n * @static\n * @param {perfetto.protos.IReadBuffersRequest} message ReadBuffersRequest message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ReadBuffersRequest.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a ReadBuffersRequest message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.ReadBuffersRequest\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.ReadBuffersRequest} ReadBuffersRequest\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ReadBuffersRequest.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.ReadBuffersRequest();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a ReadBuffersRequest message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.ReadBuffersRequest\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.ReadBuffersRequest} ReadBuffersRequest\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ReadBuffersRequest.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a ReadBuffersRequest message.\n * @function verify\n * @memberof perfetto.protos.ReadBuffersRequest\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n ReadBuffersRequest.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n return null;\n };\n\n /**\n * Creates a ReadBuffersRequest message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.ReadBuffersRequest\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.ReadBuffersRequest} ReadBuffersRequest\n */\n ReadBuffersRequest.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.ReadBuffersRequest)\n return object;\n return new $root.perfetto.protos.ReadBuffersRequest();\n };\n\n /**\n * Creates a plain object from a ReadBuffersRequest message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.ReadBuffersRequest\n * @static\n * @param {perfetto.protos.ReadBuffersRequest} message ReadBuffersRequest\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n ReadBuffersRequest.toObject = function toObject() {\n return {};\n };\n\n /**\n * Converts this ReadBuffersRequest to JSON.\n * @function toJSON\n * @memberof perfetto.protos.ReadBuffersRequest\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n ReadBuffersRequest.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return ReadBuffersRequest;\n })();\n\n protos.ReadBuffersResponse = (function() {\n\n /**\n * Properties of a ReadBuffersResponse.\n * @memberof perfetto.protos\n * @interface IReadBuffersResponse\n * @property {Array.<perfetto.protos.ReadBuffersResponse.ISlice>|null} [slices] ReadBuffersResponse slices\n */\n\n /**\n * Constructs a new ReadBuffersResponse.\n * @memberof perfetto.protos\n * @classdesc Represents a ReadBuffersResponse.\n * @implements IReadBuffersResponse\n * @constructor\n * @param {perfetto.protos.IReadBuffersResponse=} [properties] Properties to set\n */\n function ReadBuffersResponse(properties) {\n this.slices = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * ReadBuffersResponse slices.\n * @member {Array.<perfetto.protos.ReadBuffersResponse.ISlice>} slices\n * @memberof perfetto.protos.ReadBuffersResponse\n * @instance\n */\n ReadBuffersResponse.prototype.slices = $util.emptyArray;\n\n /**\n * Creates a new ReadBuffersResponse instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.ReadBuffersResponse\n * @static\n * @param {perfetto.protos.IReadBuffersResponse=} [properties] Properties to set\n * @returns {perfetto.protos.ReadBuffersResponse} ReadBuffersResponse instance\n */\n ReadBuffersResponse.create = function create(properties) {\n return new ReadBuffersResponse(properties);\n };\n\n /**\n * Encodes the specified ReadBuffersResponse message. Does not implicitly {@link perfetto.protos.ReadBuffersResponse.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.ReadBuffersResponse\n * @static\n * @param {perfetto.protos.IReadBuffersResponse} message ReadBuffersResponse message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ReadBuffersResponse.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.slices != null && message.slices.length)\n for (var i = 0; i < message.slices.length; ++i)\n $root.perfetto.protos.ReadBuffersResponse.Slice.encode(message.slices[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified ReadBuffersResponse message, length delimited. Does not implicitly {@link perfetto.protos.ReadBuffersResponse.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.ReadBuffersResponse\n * @static\n * @param {perfetto.protos.IReadBuffersResponse} message ReadBuffersResponse message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ReadBuffersResponse.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a ReadBuffersResponse message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.ReadBuffersResponse\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.ReadBuffersResponse} ReadBuffersResponse\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ReadBuffersResponse.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.ReadBuffersResponse();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 2:\n if (!(message.slices && message.slices.length))\n message.slices = [];\n message.slices.push($root.perfetto.protos.ReadBuffersResponse.Slice.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a ReadBuffersResponse message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.ReadBuffersResponse\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.ReadBuffersResponse} ReadBuffersResponse\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ReadBuffersResponse.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a ReadBuffersResponse message.\n * @function verify\n * @memberof perfetto.protos.ReadBuffersResponse\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n ReadBuffersResponse.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.slices != null && message.hasOwnProperty(\"slices\")) {\n if (!Array.isArray(message.slices))\n return \"slices: array expected\";\n for (var i = 0; i < message.slices.length; ++i) {\n var error = $root.perfetto.protos.ReadBuffersResponse.Slice.verify(message.slices[i]);\n if (error)\n return \"slices.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates a ReadBuffersResponse message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.ReadBuffersResponse\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.ReadBuffersResponse} ReadBuffersResponse\n */\n ReadBuffersResponse.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.ReadBuffersResponse)\n return object;\n var message = new $root.perfetto.protos.ReadBuffersResponse();\n if (object.slices) {\n if (!Array.isArray(object.slices))\n throw TypeError(\".perfetto.protos.ReadBuffersResponse.slices: array expected\");\n message.slices = [];\n for (var i = 0; i < object.slices.length; ++i) {\n if (typeof object.slices[i] !== \"object\")\n throw TypeError(\".perfetto.protos.ReadBuffersResponse.slices: object expected\");\n message.slices[i] = $root.perfetto.protos.ReadBuffersResponse.Slice.fromObject(object.slices[i]);\n }\n }\n return message;\n };\n\n /**\n * Creates a plain object from a ReadBuffersResponse message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.ReadBuffersResponse\n * @static\n * @param {perfetto.protos.ReadBuffersResponse} message ReadBuffersResponse\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n ReadBuffersResponse.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.slices = [];\n if (message.slices && message.slices.length) {\n object.slices = [];\n for (var j = 0; j < message.slices.length; ++j)\n object.slices[j] = $root.perfetto.protos.ReadBuffersResponse.Slice.toObject(message.slices[j], options);\n }\n return object;\n };\n\n /**\n * Converts this ReadBuffersResponse to JSON.\n * @function toJSON\n * @memberof perfetto.protos.ReadBuffersResponse\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n ReadBuffersResponse.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n ReadBuffersResponse.Slice = (function() {\n\n /**\n * Properties of a Slice.\n * @memberof perfetto.protos.ReadBuffersResponse\n * @interface ISlice\n * @property {Uint8Array|null} [data] Slice data\n * @property {boolean|null} [lastSliceForPacket] Slice lastSliceForPacket\n */\n\n /**\n * Constructs a new Slice.\n * @memberof perfetto.protos.ReadBuffersResponse\n * @classdesc Represents a Slice.\n * @implements ISlice\n * @constructor\n * @param {perfetto.protos.ReadBuffersResponse.ISlice=} [properties] Properties to set\n */\n function Slice(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * Slice data.\n * @member {Uint8Array} data\n * @memberof perfetto.protos.ReadBuffersResponse.Slice\n * @instance\n */\n Slice.prototype.data = $util.newBuffer([]);\n\n /**\n * Slice lastSliceForPacket.\n * @member {boolean} lastSliceForPacket\n * @memberof perfetto.protos.ReadBuffersResponse.Slice\n * @instance\n */\n Slice.prototype.lastSliceForPacket = false;\n\n /**\n * Creates a new Slice instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.ReadBuffersResponse.Slice\n * @static\n * @param {perfetto.protos.ReadBuffersResponse.ISlice=} [properties] Properties to set\n * @returns {perfetto.protos.ReadBuffersResponse.Slice} Slice instance\n */\n Slice.create = function create(properties) {\n return new Slice(properties);\n };\n\n /**\n * Encodes the specified Slice message. Does not implicitly {@link perfetto.protos.ReadBuffersResponse.Slice.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.ReadBuffersResponse.Slice\n * @static\n * @param {perfetto.protos.ReadBuffersResponse.ISlice} message Slice message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Slice.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.data != null && Object.hasOwnProperty.call(message, \"data\"))\n writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.data);\n if (message.lastSliceForPacket != null && Object.hasOwnProperty.call(message, \"lastSliceForPacket\"))\n writer.uint32(/* id 2, wireType 0 =*/16).bool(message.lastSliceForPacket);\n return writer;\n };\n\n /**\n * Encodes the specified Slice message, length delimited. Does not implicitly {@link perfetto.protos.ReadBuffersResponse.Slice.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.ReadBuffersResponse.Slice\n * @static\n * @param {perfetto.protos.ReadBuffersResponse.ISlice} message Slice message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Slice.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a Slice message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.ReadBuffersResponse.Slice\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.ReadBuffersResponse.Slice} Slice\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Slice.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.ReadBuffersResponse.Slice();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.data = reader.bytes();\n break;\n case 2:\n message.lastSliceForPacket = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a Slice message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.ReadBuffersResponse.Slice\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.ReadBuffersResponse.Slice} Slice\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Slice.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a Slice message.\n * @function verify\n * @memberof perfetto.protos.ReadBuffersResponse.Slice\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n Slice.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.data != null && message.hasOwnProperty(\"data\"))\n if (!(message.data && typeof message.data.length === \"number\" || $util.isString(message.data)))\n return \"data: buffer expected\";\n if (message.lastSliceForPacket != null && message.hasOwnProperty(\"lastSliceForPacket\"))\n if (typeof message.lastSliceForPacket !== \"boolean\")\n return \"lastSliceForPacket: boolean expected\";\n return null;\n };\n\n /**\n * Creates a Slice message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.ReadBuffersResponse.Slice\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.ReadBuffersResponse.Slice} Slice\n */\n Slice.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.ReadBuffersResponse.Slice)\n return object;\n var message = new $root.perfetto.protos.ReadBuffersResponse.Slice();\n if (object.data != null)\n if (typeof object.data === \"string\")\n $util.base64.decode(object.data, message.data = $util.newBuffer($util.base64.length(object.data)), 0);\n else if (object.data.length)\n message.data = object.data;\n if (object.lastSliceForPacket != null)\n message.lastSliceForPacket = Boolean(object.lastSliceForPacket);\n return message;\n };\n\n /**\n * Creates a plain object from a Slice message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.ReadBuffersResponse.Slice\n * @static\n * @param {perfetto.protos.ReadBuffersResponse.Slice} message Slice\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n Slice.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n if (options.bytes === String)\n object.data = \"\";\n else {\n object.data = [];\n if (options.bytes !== Array)\n object.data = $util.newBuffer(object.data);\n }\n object.lastSliceForPacket = false;\n }\n if (message.data != null && message.hasOwnProperty(\"data\"))\n object.data = options.bytes === String ? $util.base64.encode(message.data, 0, message.data.length) : options.bytes === Array ? Array.prototype.slice.call(message.data) : message.data;\n if (message.lastSliceForPacket != null && message.hasOwnProperty(\"lastSliceForPacket\"))\n object.lastSliceForPacket = message.lastSliceForPacket;\n return object;\n };\n\n /**\n * Converts this Slice to JSON.\n * @function toJSON\n * @memberof perfetto.protos.ReadBuffersResponse.Slice\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n Slice.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return Slice;\n })();\n\n return ReadBuffersResponse;\n })();\n\n protos.FreeBuffersRequest = (function() {\n\n /**\n * Properties of a FreeBuffersRequest.\n * @memberof perfetto.protos\n * @interface IFreeBuffersRequest\n * @property {Array.<number>|null} [bufferIds] FreeBuffersRequest bufferIds\n */\n\n /**\n * Constructs a new FreeBuffersRequest.\n * @memberof perfetto.protos\n * @classdesc Represents a FreeBuffersRequest.\n * @implements IFreeBuffersRequest\n * @constructor\n * @param {perfetto.protos.IFreeBuffersRequest=} [properties] Properties to set\n */\n function FreeBuffersRequest(properties) {\n this.bufferIds = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * FreeBuffersRequest bufferIds.\n * @member {Array.<number>} bufferIds\n * @memberof perfetto.protos.FreeBuffersRequest\n * @instance\n */\n FreeBuffersRequest.prototype.bufferIds = $util.emptyArray;\n\n /**\n * Creates a new FreeBuffersRequest instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.FreeBuffersRequest\n * @static\n * @param {perfetto.protos.IFreeBuffersRequest=} [properties] Properties to set\n * @returns {perfetto.protos.FreeBuffersRequest} FreeBuffersRequest instance\n */\n FreeBuffersRequest.create = function create(properties) {\n return new FreeBuffersRequest(properties);\n };\n\n /**\n * Encodes the specified FreeBuffersRequest message. Does not implicitly {@link perfetto.protos.FreeBuffersRequest.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.FreeBuffersRequest\n * @static\n * @param {perfetto.protos.IFreeBuffersRequest} message FreeBuffersRequest message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n FreeBuffersRequest.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.bufferIds != null && message.bufferIds.length)\n for (var i = 0; i < message.bufferIds.length; ++i)\n writer.uint32(/* id 1, wireType 0 =*/8).uint32(message.bufferIds[i]);\n return writer;\n };\n\n /**\n * Encodes the specified FreeBuffersRequest message, length delimited. Does not implicitly {@link perfetto.protos.FreeBuffersRequest.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.FreeBuffersRequest\n * @static\n * @param {perfetto.protos.IFreeBuffersRequest} message FreeBuffersRequest message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n FreeBuffersRequest.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a FreeBuffersRequest message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.FreeBuffersRequest\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.FreeBuffersRequest} FreeBuffersRequest\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n FreeBuffersRequest.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.FreeBuffersRequest();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (!(message.bufferIds && message.bufferIds.length))\n message.bufferIds = [];\n if ((tag & 7) === 2) {\n var end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2)\n message.bufferIds.push(reader.uint32());\n } else\n message.bufferIds.push(reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a FreeBuffersRequest message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.FreeBuffersRequest\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.FreeBuffersRequest} FreeBuffersRequest\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n FreeBuffersRequest.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a FreeBuffersRequest message.\n * @function verify\n * @memberof perfetto.protos.FreeBuffersRequest\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n FreeBuffersRequest.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.bufferIds != null && message.hasOwnProperty(\"bufferIds\")) {\n if (!Array.isArray(message.bufferIds))\n return \"bufferIds: array expected\";\n for (var i = 0; i < message.bufferIds.length; ++i)\n if (!$util.isInteger(message.bufferIds[i]))\n return \"bufferIds: integer[] expected\";\n }\n return null;\n };\n\n /**\n * Creates a FreeBuffersRequest message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.FreeBuffersRequest\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.FreeBuffersRequest} FreeBuffersRequest\n */\n FreeBuffersRequest.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.FreeBuffersRequest)\n return object;\n var message = new $root.perfetto.protos.FreeBuffersRequest();\n if (object.bufferIds) {\n if (!Array.isArray(object.bufferIds))\n throw TypeError(\".perfetto.protos.FreeBuffersRequest.bufferIds: array expected\");\n message.bufferIds = [];\n for (var i = 0; i < object.bufferIds.length; ++i)\n message.bufferIds[i] = object.bufferIds[i] >>> 0;\n }\n return message;\n };\n\n /**\n * Creates a plain object from a FreeBuffersRequest message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.FreeBuffersRequest\n * @static\n * @param {perfetto.protos.FreeBuffersRequest} message FreeBuffersRequest\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n FreeBuffersRequest.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.bufferIds = [];\n if (message.bufferIds && message.bufferIds.length) {\n object.bufferIds = [];\n for (var j = 0; j < message.bufferIds.length; ++j)\n object.bufferIds[j] = message.bufferIds[j];\n }\n return object;\n };\n\n /**\n * Converts this FreeBuffersRequest to JSON.\n * @function toJSON\n * @memberof perfetto.protos.FreeBuffersRequest\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n FreeBuffersRequest.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return FreeBuffersRequest;\n })();\n\n protos.FreeBuffersResponse = (function() {\n\n /**\n * Properties of a FreeBuffersResponse.\n * @memberof perfetto.protos\n * @interface IFreeBuffersResponse\n */\n\n /**\n * Constructs a new FreeBuffersResponse.\n * @memberof perfetto.protos\n * @classdesc Represents a FreeBuffersResponse.\n * @implements IFreeBuffersResponse\n * @constructor\n * @param {perfetto.protos.IFreeBuffersResponse=} [properties] Properties to set\n */\n function FreeBuffersResponse(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * Creates a new FreeBuffersResponse instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.FreeBuffersResponse\n * @static\n * @param {perfetto.protos.IFreeBuffersResponse=} [properties] Properties to set\n * @returns {perfetto.protos.FreeBuffersResponse} FreeBuffersResponse instance\n */\n FreeBuffersResponse.create = function create(properties) {\n return new FreeBuffersResponse(properties);\n };\n\n /**\n * Encodes the specified FreeBuffersResponse message. Does not implicitly {@link perfetto.protos.FreeBuffersResponse.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.FreeBuffersResponse\n * @static\n * @param {perfetto.protos.IFreeBuffersResponse} message FreeBuffersResponse message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n FreeBuffersResponse.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n return writer;\n };\n\n /**\n * Encodes the specified FreeBuffersResponse message, length delimited. Does not implicitly {@link perfetto.protos.FreeBuffersResponse.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.FreeBuffersResponse\n * @static\n * @param {perfetto.protos.IFreeBuffersResponse} message FreeBuffersResponse message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n FreeBuffersResponse.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a FreeBuffersResponse message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.FreeBuffersResponse\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.FreeBuffersResponse} FreeBuffersResponse\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n FreeBuffersResponse.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.FreeBuffersResponse();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a FreeBuffersResponse message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.FreeBuffersResponse\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.FreeBuffersResponse} FreeBuffersResponse\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n FreeBuffersResponse.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a FreeBuffersResponse message.\n * @function verify\n * @memberof perfetto.protos.FreeBuffersResponse\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n FreeBuffersResponse.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n return null;\n };\n\n /**\n * Creates a FreeBuffersResponse message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.FreeBuffersResponse\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.FreeBuffersResponse} FreeBuffersResponse\n */\n FreeBuffersResponse.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.FreeBuffersResponse)\n return object;\n return new $root.perfetto.protos.FreeBuffersResponse();\n };\n\n /**\n * Creates a plain object from a FreeBuffersResponse message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.FreeBuffersResponse\n * @static\n * @param {perfetto.protos.FreeBuffersResponse} message FreeBuffersResponse\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n FreeBuffersResponse.toObject = function toObject() {\n return {};\n };\n\n /**\n * Converts this FreeBuffersResponse to JSON.\n * @function toJSON\n * @memberof perfetto.protos.FreeBuffersResponse\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n FreeBuffersResponse.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return FreeBuffersResponse;\n })();\n\n protos.FlushRequest = (function() {\n\n /**\n * Properties of a FlushRequest.\n * @memberof perfetto.protos\n * @interface IFlushRequest\n * @property {number|null} [timeoutMs] FlushRequest timeoutMs\n */\n\n /**\n * Constructs a new FlushRequest.\n * @memberof perfetto.protos\n * @classdesc Represents a FlushRequest.\n * @implements IFlushRequest\n * @constructor\n * @param {perfetto.protos.IFlushRequest=} [properties] Properties to set\n */\n function FlushRequest(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * FlushRequest timeoutMs.\n * @member {number} timeoutMs\n * @memberof perfetto.protos.FlushRequest\n * @instance\n */\n FlushRequest.prototype.timeoutMs = 0;\n\n /**\n * Creates a new FlushRequest instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.FlushRequest\n * @static\n * @param {perfetto.protos.IFlushRequest=} [properties] Properties to set\n * @returns {perfetto.protos.FlushRequest} FlushRequest instance\n */\n FlushRequest.create = function create(properties) {\n return new FlushRequest(properties);\n };\n\n /**\n * Encodes the specified FlushRequest message. Does not implicitly {@link perfetto.protos.FlushRequest.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.FlushRequest\n * @static\n * @param {perfetto.protos.IFlushRequest} message FlushRequest message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n FlushRequest.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.timeoutMs != null && Object.hasOwnProperty.call(message, \"timeoutMs\"))\n writer.uint32(/* id 1, wireType 0 =*/8).uint32(message.timeoutMs);\n return writer;\n };\n\n /**\n * Encodes the specified FlushRequest message, length delimited. Does not implicitly {@link perfetto.protos.FlushRequest.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.FlushRequest\n * @static\n * @param {perfetto.protos.IFlushRequest} message FlushRequest message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n FlushRequest.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a FlushRequest message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.FlushRequest\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.FlushRequest} FlushRequest\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n FlushRequest.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.FlushRequest();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.timeoutMs = reader.uint32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a FlushRequest message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.FlushRequest\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.FlushRequest} FlushRequest\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n FlushRequest.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a FlushRequest message.\n * @function verify\n * @memberof perfetto.protos.FlushRequest\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n FlushRequest.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.timeoutMs != null && message.hasOwnProperty(\"timeoutMs\"))\n if (!$util.isInteger(message.timeoutMs))\n return \"timeoutMs: integer expected\";\n return null;\n };\n\n /**\n * Creates a FlushRequest message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.FlushRequest\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.FlushRequest} FlushRequest\n */\n FlushRequest.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.FlushRequest)\n return object;\n var message = new $root.perfetto.protos.FlushRequest();\n if (object.timeoutMs != null)\n message.timeoutMs = object.timeoutMs >>> 0;\n return message;\n };\n\n /**\n * Creates a plain object from a FlushRequest message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.FlushRequest\n * @static\n * @param {perfetto.protos.FlushRequest} message FlushRequest\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n FlushRequest.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults)\n object.timeoutMs = 0;\n if (message.timeoutMs != null && message.hasOwnProperty(\"timeoutMs\"))\n object.timeoutMs = message.timeoutMs;\n return object;\n };\n\n /**\n * Converts this FlushRequest to JSON.\n * @function toJSON\n * @memberof perfetto.protos.FlushRequest\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n FlushRequest.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return FlushRequest;\n })();\n\n protos.FlushResponse = (function() {\n\n /**\n * Properties of a FlushResponse.\n * @memberof perfetto.protos\n * @interface IFlushResponse\n */\n\n /**\n * Constructs a new FlushResponse.\n * @memberof perfetto.protos\n * @classdesc Represents a FlushResponse.\n * @implements IFlushResponse\n * @constructor\n * @param {perfetto.protos.IFlushResponse=} [properties] Properties to set\n */\n function FlushResponse(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * Creates a new FlushResponse instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.FlushResponse\n * @static\n * @param {perfetto.protos.IFlushResponse=} [properties] Properties to set\n * @returns {perfetto.protos.FlushResponse} FlushResponse instance\n */\n FlushResponse.create = function create(properties) {\n return new FlushResponse(properties);\n };\n\n /**\n * Encodes the specified FlushResponse message. Does not implicitly {@link perfetto.protos.FlushResponse.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.FlushResponse\n * @static\n * @param {perfetto.protos.IFlushResponse} message FlushResponse message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n FlushResponse.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n return writer;\n };\n\n /**\n * Encodes the specified FlushResponse message, length delimited. Does not implicitly {@link perfetto.protos.FlushResponse.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.FlushResponse\n * @static\n * @param {perfetto.protos.IFlushResponse} message FlushResponse message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n FlushResponse.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a FlushResponse message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.FlushResponse\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.FlushResponse} FlushResponse\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n FlushResponse.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.FlushResponse();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a FlushResponse message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.FlushResponse\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.FlushResponse} FlushResponse\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n FlushResponse.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a FlushResponse message.\n * @function verify\n * @memberof perfetto.protos.FlushResponse\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n FlushResponse.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n return null;\n };\n\n /**\n * Creates a FlushResponse message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.FlushResponse\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.FlushResponse} FlushResponse\n */\n FlushResponse.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.FlushResponse)\n return object;\n return new $root.perfetto.protos.FlushResponse();\n };\n\n /**\n * Creates a plain object from a FlushResponse message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.FlushResponse\n * @static\n * @param {perfetto.protos.FlushResponse} message FlushResponse\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n FlushResponse.toObject = function toObject() {\n return {};\n };\n\n /**\n * Converts this FlushResponse to JSON.\n * @function toJSON\n * @memberof perfetto.protos.FlushResponse\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n FlushResponse.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return FlushResponse;\n })();\n\n protos.DetachRequest = (function() {\n\n /**\n * Properties of a DetachRequest.\n * @memberof perfetto.protos\n * @interface IDetachRequest\n * @property {string|null} [key] DetachRequest key\n */\n\n /**\n * Constructs a new DetachRequest.\n * @memberof perfetto.protos\n * @classdesc Represents a DetachRequest.\n * @implements IDetachRequest\n * @constructor\n * @param {perfetto.protos.IDetachRequest=} [properties] Properties to set\n */\n function DetachRequest(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * DetachRequest key.\n * @member {string} key\n * @memberof perfetto.protos.DetachRequest\n * @instance\n */\n DetachRequest.prototype.key = \"\";\n\n /**\n * Creates a new DetachRequest instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.DetachRequest\n * @static\n * @param {perfetto.protos.IDetachRequest=} [properties] Properties to set\n * @returns {perfetto.protos.DetachRequest} DetachRequest instance\n */\n DetachRequest.create = function create(properties) {\n return new DetachRequest(properties);\n };\n\n /**\n * Encodes the specified DetachRequest message. Does not implicitly {@link perfetto.protos.DetachRequest.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.DetachRequest\n * @static\n * @param {perfetto.protos.IDetachRequest} message DetachRequest message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n DetachRequest.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.key != null && Object.hasOwnProperty.call(message, \"key\"))\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.key);\n return writer;\n };\n\n /**\n * Encodes the specified DetachRequest message, length delimited. Does not implicitly {@link perfetto.protos.DetachRequest.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.DetachRequest\n * @static\n * @param {perfetto.protos.IDetachRequest} message DetachRequest message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n DetachRequest.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a DetachRequest message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.DetachRequest\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.DetachRequest} DetachRequest\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n DetachRequest.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.DetachRequest();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a DetachRequest message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.DetachRequest\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.DetachRequest} DetachRequest\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n DetachRequest.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a DetachRequest message.\n * @function verify\n * @memberof perfetto.protos.DetachRequest\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n DetachRequest.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.key != null && message.hasOwnProperty(\"key\"))\n if (!$util.isString(message.key))\n return \"key: string expected\";\n return null;\n };\n\n /**\n * Creates a DetachRequest message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.DetachRequest\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.DetachRequest} DetachRequest\n */\n DetachRequest.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.DetachRequest)\n return object;\n var message = new $root.perfetto.protos.DetachRequest();\n if (object.key != null)\n message.key = String(object.key);\n return message;\n };\n\n /**\n * Creates a plain object from a DetachRequest message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.DetachRequest\n * @static\n * @param {perfetto.protos.DetachRequest} message DetachRequest\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n DetachRequest.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults)\n object.key = \"\";\n if (message.key != null && message.hasOwnProperty(\"key\"))\n object.key = message.key;\n return object;\n };\n\n /**\n * Converts this DetachRequest to JSON.\n * @function toJSON\n * @memberof perfetto.protos.DetachRequest\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n DetachRequest.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return DetachRequest;\n })();\n\n protos.DetachResponse = (function() {\n\n /**\n * Properties of a DetachResponse.\n * @memberof perfetto.protos\n * @interface IDetachResponse\n */\n\n /**\n * Constructs a new DetachResponse.\n * @memberof perfetto.protos\n * @classdesc Represents a DetachResponse.\n * @implements IDetachResponse\n * @constructor\n * @param {perfetto.protos.IDetachResponse=} [properties] Properties to set\n */\n function DetachResponse(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * Creates a new DetachResponse instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.DetachResponse\n * @static\n * @param {perfetto.protos.IDetachResponse=} [properties] Properties to set\n * @returns {perfetto.protos.DetachResponse} DetachResponse instance\n */\n DetachResponse.create = function create(properties) {\n return new DetachResponse(properties);\n };\n\n /**\n * Encodes the specified DetachResponse message. Does not implicitly {@link perfetto.protos.DetachResponse.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.DetachResponse\n * @static\n * @param {perfetto.protos.IDetachResponse} message DetachResponse message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n DetachResponse.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n return writer;\n };\n\n /**\n * Encodes the specified DetachResponse message, length delimited. Does not implicitly {@link perfetto.protos.DetachResponse.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.DetachResponse\n * @static\n * @param {perfetto.protos.IDetachResponse} message DetachResponse message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n DetachResponse.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a DetachResponse message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.DetachResponse\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.DetachResponse} DetachResponse\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n DetachResponse.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.DetachResponse();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a DetachResponse message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.DetachResponse\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.DetachResponse} DetachResponse\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n DetachResponse.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a DetachResponse message.\n * @function verify\n * @memberof perfetto.protos.DetachResponse\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n DetachResponse.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n return null;\n };\n\n /**\n * Creates a DetachResponse message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.DetachResponse\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.DetachResponse} DetachResponse\n */\n DetachResponse.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.DetachResponse)\n return object;\n return new $root.perfetto.protos.DetachResponse();\n };\n\n /**\n * Creates a plain object from a DetachResponse message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.DetachResponse\n * @static\n * @param {perfetto.protos.DetachResponse} message DetachResponse\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n DetachResponse.toObject = function toObject() {\n return {};\n };\n\n /**\n * Converts this DetachResponse to JSON.\n * @function toJSON\n * @memberof perfetto.protos.DetachResponse\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n DetachResponse.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return DetachResponse;\n })();\n\n protos.AttachRequest = (function() {\n\n /**\n * Properties of an AttachRequest.\n * @memberof perfetto.protos\n * @interface IAttachRequest\n * @property {string|null} [key] AttachRequest key\n */\n\n /**\n * Constructs a new AttachRequest.\n * @memberof perfetto.protos\n * @classdesc Represents an AttachRequest.\n * @implements IAttachRequest\n * @constructor\n * @param {perfetto.protos.IAttachRequest=} [properties] Properties to set\n */\n function AttachRequest(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * AttachRequest key.\n * @member {string} key\n * @memberof perfetto.protos.AttachRequest\n * @instance\n */\n AttachRequest.prototype.key = \"\";\n\n /**\n * Creates a new AttachRequest instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AttachRequest\n * @static\n * @param {perfetto.protos.IAttachRequest=} [properties] Properties to set\n * @returns {perfetto.protos.AttachRequest} AttachRequest instance\n */\n AttachRequest.create = function create(properties) {\n return new AttachRequest(properties);\n };\n\n /**\n * Encodes the specified AttachRequest message. Does not implicitly {@link perfetto.protos.AttachRequest.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AttachRequest\n * @static\n * @param {perfetto.protos.IAttachRequest} message AttachRequest message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n AttachRequest.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.key != null && Object.hasOwnProperty.call(message, \"key\"))\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.key);\n return writer;\n };\n\n /**\n * Encodes the specified AttachRequest message, length delimited. Does not implicitly {@link perfetto.protos.AttachRequest.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AttachRequest\n * @static\n * @param {perfetto.protos.IAttachRequest} message AttachRequest message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n AttachRequest.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes an AttachRequest message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AttachRequest\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AttachRequest} AttachRequest\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n AttachRequest.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AttachRequest();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes an AttachRequest message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AttachRequest\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AttachRequest} AttachRequest\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n AttachRequest.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies an AttachRequest message.\n * @function verify\n * @memberof perfetto.protos.AttachRequest\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n AttachRequest.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.key != null && message.hasOwnProperty(\"key\"))\n if (!$util.isString(message.key))\n return \"key: string expected\";\n return null;\n };\n\n /**\n * Creates an AttachRequest message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AttachRequest\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AttachRequest} AttachRequest\n */\n AttachRequest.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AttachRequest)\n return object;\n var message = new $root.perfetto.protos.AttachRequest();\n if (object.key != null)\n message.key = String(object.key);\n return message;\n };\n\n /**\n * Creates a plain object from an AttachRequest message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AttachRequest\n * @static\n * @param {perfetto.protos.AttachRequest} message AttachRequest\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n AttachRequest.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults)\n object.key = \"\";\n if (message.key != null && message.hasOwnProperty(\"key\"))\n object.key = message.key;\n return object;\n };\n\n /**\n * Converts this AttachRequest to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AttachRequest\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n AttachRequest.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return AttachRequest;\n })();\n\n protos.AttachResponse = (function() {\n\n /**\n * Properties of an AttachResponse.\n * @memberof perfetto.protos\n * @interface IAttachResponse\n * @property {perfetto.protos.ITraceConfig|null} [traceConfig] AttachResponse traceConfig\n */\n\n /**\n * Constructs a new AttachResponse.\n * @memberof perfetto.protos\n * @classdesc Represents an AttachResponse.\n * @implements IAttachResponse\n * @constructor\n * @param {perfetto.protos.IAttachResponse=} [properties] Properties to set\n */\n function AttachResponse(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * AttachResponse traceConfig.\n * @member {perfetto.protos.ITraceConfig|null|undefined} traceConfig\n * @memberof perfetto.protos.AttachResponse\n * @instance\n */\n AttachResponse.prototype.traceConfig = null;\n\n /**\n * Creates a new AttachResponse instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AttachResponse\n * @static\n * @param {perfetto.protos.IAttachResponse=} [properties] Properties to set\n * @returns {perfetto.protos.AttachResponse} AttachResponse instance\n */\n AttachResponse.create = function create(properties) {\n return new AttachResponse(properties);\n };\n\n /**\n * Encodes the specified AttachResponse message. Does not implicitly {@link perfetto.protos.AttachResponse.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AttachResponse\n * @static\n * @param {perfetto.protos.IAttachResponse} message AttachResponse message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n AttachResponse.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.traceConfig != null && Object.hasOwnProperty.call(message, \"traceConfig\"))\n $root.perfetto.protos.TraceConfig.encode(message.traceConfig, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified AttachResponse message, length delimited. Does not implicitly {@link perfetto.protos.AttachResponse.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AttachResponse\n * @static\n * @param {perfetto.protos.IAttachResponse} message AttachResponse message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n AttachResponse.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes an AttachResponse message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AttachResponse\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AttachResponse} AttachResponse\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n AttachResponse.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AttachResponse();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.traceConfig = $root.perfetto.protos.TraceConfig.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes an AttachResponse message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AttachResponse\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AttachResponse} AttachResponse\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n AttachResponse.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies an AttachResponse message.\n * @function verify\n * @memberof perfetto.protos.AttachResponse\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n AttachResponse.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.traceConfig != null && message.hasOwnProperty(\"traceConfig\")) {\n var error = $root.perfetto.protos.TraceConfig.verify(message.traceConfig);\n if (error)\n return \"traceConfig.\" + error;\n }\n return null;\n };\n\n /**\n * Creates an AttachResponse message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AttachResponse\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AttachResponse} AttachResponse\n */\n AttachResponse.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AttachResponse)\n return object;\n var message = new $root.perfetto.protos.AttachResponse();\n if (object.traceConfig != null) {\n if (typeof object.traceConfig !== \"object\")\n throw TypeError(\".perfetto.protos.AttachResponse.traceConfig: object expected\");\n message.traceConfig = $root.perfetto.protos.TraceConfig.fromObject(object.traceConfig);\n }\n return message;\n };\n\n /**\n * Creates a plain object from an AttachResponse message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AttachResponse\n * @static\n * @param {perfetto.protos.AttachResponse} message AttachResponse\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n AttachResponse.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults)\n object.traceConfig = null;\n if (message.traceConfig != null && message.hasOwnProperty(\"traceConfig\"))\n object.traceConfig = $root.perfetto.protos.TraceConfig.toObject(message.traceConfig, options);\n return object;\n };\n\n /**\n * Converts this AttachResponse to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AttachResponse\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n AttachResponse.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return AttachResponse;\n })();\n\n protos.GetTraceStatsRequest = (function() {\n\n /**\n * Properties of a GetTraceStatsRequest.\n * @memberof perfetto.protos\n * @interface IGetTraceStatsRequest\n */\n\n /**\n * Constructs a new GetTraceStatsRequest.\n * @memberof perfetto.protos\n * @classdesc Represents a GetTraceStatsRequest.\n * @implements IGetTraceStatsRequest\n * @constructor\n * @param {perfetto.protos.IGetTraceStatsRequest=} [properties] Properties to set\n */\n function GetTraceStatsRequest(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * Creates a new GetTraceStatsRequest instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.GetTraceStatsRequest\n * @static\n * @param {perfetto.protos.IGetTraceStatsRequest=} [properties] Properties to set\n * @returns {perfetto.protos.GetTraceStatsRequest} GetTraceStatsRequest instance\n */\n GetTraceStatsRequest.create = function create(properties) {\n return new GetTraceStatsRequest(properties);\n };\n\n /**\n * Encodes the specified GetTraceStatsRequest message. Does not implicitly {@link perfetto.protos.GetTraceStatsRequest.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.GetTraceStatsRequest\n * @static\n * @param {perfetto.protos.IGetTraceStatsRequest} message GetTraceStatsRequest message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n GetTraceStatsRequest.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n return writer;\n };\n\n /**\n * Encodes the specified GetTraceStatsRequest message, length delimited. Does not implicitly {@link perfetto.protos.GetTraceStatsRequest.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.GetTraceStatsRequest\n * @static\n * @param {perfetto.protos.IGetTraceStatsRequest} message GetTraceStatsRequest message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n GetTraceStatsRequest.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a GetTraceStatsRequest message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.GetTraceStatsRequest\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.GetTraceStatsRequest} GetTraceStatsRequest\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n GetTraceStatsRequest.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.GetTraceStatsRequest();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a GetTraceStatsRequest message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.GetTraceStatsRequest\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.GetTraceStatsRequest} GetTraceStatsRequest\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n GetTraceStatsRequest.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a GetTraceStatsRequest message.\n * @function verify\n * @memberof perfetto.protos.GetTraceStatsRequest\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n GetTraceStatsRequest.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n return null;\n };\n\n /**\n * Creates a GetTraceStatsRequest message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.GetTraceStatsRequest\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.GetTraceStatsRequest} GetTraceStatsRequest\n */\n GetTraceStatsRequest.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.GetTraceStatsRequest)\n return object;\n return new $root.perfetto.protos.GetTraceStatsRequest();\n };\n\n /**\n * Creates a plain object from a GetTraceStatsRequest message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.GetTraceStatsRequest\n * @static\n * @param {perfetto.protos.GetTraceStatsRequest} message GetTraceStatsRequest\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n GetTraceStatsRequest.toObject = function toObject() {\n return {};\n };\n\n /**\n * Converts this GetTraceStatsRequest to JSON.\n * @function toJSON\n * @memberof perfetto.protos.GetTraceStatsRequest\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n GetTraceStatsRequest.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return GetTraceStatsRequest;\n })();\n\n protos.GetTraceStatsResponse = (function() {\n\n /**\n * Properties of a GetTraceStatsResponse.\n * @memberof perfetto.protos\n * @interface IGetTraceStatsResponse\n * @property {perfetto.protos.ITraceStats|null} [traceStats] GetTraceStatsResponse traceStats\n */\n\n /**\n * Constructs a new GetTraceStatsResponse.\n * @memberof perfetto.protos\n * @classdesc Represents a GetTraceStatsResponse.\n * @implements IGetTraceStatsResponse\n * @constructor\n * @param {perfetto.protos.IGetTraceStatsResponse=} [properties] Properties to set\n */\n function GetTraceStatsResponse(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * GetTraceStatsResponse traceStats.\n * @member {perfetto.protos.ITraceStats|null|undefined} traceStats\n * @memberof perfetto.protos.GetTraceStatsResponse\n * @instance\n */\n GetTraceStatsResponse.prototype.traceStats = null;\n\n /**\n * Creates a new GetTraceStatsResponse instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.GetTraceStatsResponse\n * @static\n * @param {perfetto.protos.IGetTraceStatsResponse=} [properties] Properties to set\n * @returns {perfetto.protos.GetTraceStatsResponse} GetTraceStatsResponse instance\n */\n GetTraceStatsResponse.create = function create(properties) {\n return new GetTraceStatsResponse(properties);\n };\n\n /**\n * Encodes the specified GetTraceStatsResponse message. Does not implicitly {@link perfetto.protos.GetTraceStatsResponse.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.GetTraceStatsResponse\n * @static\n * @param {perfetto.protos.IGetTraceStatsResponse} message GetTraceStatsResponse message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n GetTraceStatsResponse.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.traceStats != null && Object.hasOwnProperty.call(message, \"traceStats\"))\n $root.perfetto.protos.TraceStats.encode(message.traceStats, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified GetTraceStatsResponse message, length delimited. Does not implicitly {@link perfetto.protos.GetTraceStatsResponse.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.GetTraceStatsResponse\n * @static\n * @param {perfetto.protos.IGetTraceStatsResponse} message GetTraceStatsResponse message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n GetTraceStatsResponse.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a GetTraceStatsResponse message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.GetTraceStatsResponse\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.GetTraceStatsResponse} GetTraceStatsResponse\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n GetTraceStatsResponse.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.GetTraceStatsResponse();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.traceStats = $root.perfetto.protos.TraceStats.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a GetTraceStatsResponse message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.GetTraceStatsResponse\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.GetTraceStatsResponse} GetTraceStatsResponse\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n GetTraceStatsResponse.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a GetTraceStatsResponse message.\n * @function verify\n * @memberof perfetto.protos.GetTraceStatsResponse\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n GetTraceStatsResponse.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.traceStats != null && message.hasOwnProperty(\"traceStats\")) {\n var error = $root.perfetto.protos.TraceStats.verify(message.traceStats);\n if (error)\n return \"traceStats.\" + error;\n }\n return null;\n };\n\n /**\n * Creates a GetTraceStatsResponse message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.GetTraceStatsResponse\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.GetTraceStatsResponse} GetTraceStatsResponse\n */\n GetTraceStatsResponse.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.GetTraceStatsResponse)\n return object;\n var message = new $root.perfetto.protos.GetTraceStatsResponse();\n if (object.traceStats != null) {\n if (typeof object.traceStats !== \"object\")\n throw TypeError(\".perfetto.protos.GetTraceStatsResponse.traceStats: object expected\");\n message.traceStats = $root.perfetto.protos.TraceStats.fromObject(object.traceStats);\n }\n return message;\n };\n\n /**\n * Creates a plain object from a GetTraceStatsResponse message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.GetTraceStatsResponse\n * @static\n * @param {perfetto.protos.GetTraceStatsResponse} message GetTraceStatsResponse\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n GetTraceStatsResponse.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults)\n object.traceStats = null;\n if (message.traceStats != null && message.hasOwnProperty(\"traceStats\"))\n object.traceStats = $root.perfetto.protos.TraceStats.toObject(message.traceStats, options);\n return object;\n };\n\n /**\n * Converts this GetTraceStatsResponse to JSON.\n * @function toJSON\n * @memberof perfetto.protos.GetTraceStatsResponse\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n GetTraceStatsResponse.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return GetTraceStatsResponse;\n })();\n\n protos.ObserveEventsRequest = (function() {\n\n /**\n * Properties of an ObserveEventsRequest.\n * @memberof perfetto.protos\n * @interface IObserveEventsRequest\n * @property {Array.<perfetto.protos.ObservableEvents.Type>|null} [eventsToObserve] ObserveEventsRequest eventsToObserve\n */\n\n /**\n * Constructs a new ObserveEventsRequest.\n * @memberof perfetto.protos\n * @classdesc Represents an ObserveEventsRequest.\n * @implements IObserveEventsRequest\n * @constructor\n * @param {perfetto.protos.IObserveEventsRequest=} [properties] Properties to set\n */\n function ObserveEventsRequest(properties) {\n this.eventsToObserve = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * ObserveEventsRequest eventsToObserve.\n * @member {Array.<perfetto.protos.ObservableEvents.Type>} eventsToObserve\n * @memberof perfetto.protos.ObserveEventsRequest\n * @instance\n */\n ObserveEventsRequest.prototype.eventsToObserve = $util.emptyArray;\n\n /**\n * Creates a new ObserveEventsRequest instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.ObserveEventsRequest\n * @static\n * @param {perfetto.protos.IObserveEventsRequest=} [properties] Properties to set\n * @returns {perfetto.protos.ObserveEventsRequest} ObserveEventsRequest instance\n */\n ObserveEventsRequest.create = function create(properties) {\n return new ObserveEventsRequest(properties);\n };\n\n /**\n * Encodes the specified ObserveEventsRequest message. Does not implicitly {@link perfetto.protos.ObserveEventsRequest.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.ObserveEventsRequest\n * @static\n * @param {perfetto.protos.IObserveEventsRequest} message ObserveEventsRequest message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ObserveEventsRequest.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.eventsToObserve != null && message.eventsToObserve.length)\n for (var i = 0; i < message.eventsToObserve.length; ++i)\n writer.uint32(/* id 1, wireType 0 =*/8).int32(message.eventsToObserve[i]);\n return writer;\n };\n\n /**\n * Encodes the specified ObserveEventsRequest message, length delimited. Does not implicitly {@link perfetto.protos.ObserveEventsRequest.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.ObserveEventsRequest\n * @static\n * @param {perfetto.protos.IObserveEventsRequest} message ObserveEventsRequest message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ObserveEventsRequest.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes an ObserveEventsRequest message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.ObserveEventsRequest\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.ObserveEventsRequest} ObserveEventsRequest\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ObserveEventsRequest.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.ObserveEventsRequest();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (!(message.eventsToObserve && message.eventsToObserve.length))\n message.eventsToObserve = [];\n if ((tag & 7) === 2) {\n var end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2)\n message.eventsToObserve.push(reader.int32());\n } else\n message.eventsToObserve.push(reader.int32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes an ObserveEventsRequest message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.ObserveEventsRequest\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.ObserveEventsRequest} ObserveEventsRequest\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ObserveEventsRequest.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies an ObserveEventsRequest message.\n * @function verify\n * @memberof perfetto.protos.ObserveEventsRequest\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n ObserveEventsRequest.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.eventsToObserve != null && message.hasOwnProperty(\"eventsToObserve\")) {\n if (!Array.isArray(message.eventsToObserve))\n return \"eventsToObserve: array expected\";\n for (var i = 0; i < message.eventsToObserve.length; ++i)\n switch (message.eventsToObserve[i]) {\n default:\n return \"eventsToObserve: enum value[] expected\";\n case 0:\n case 1:\n case 2:\n break;\n }\n }\n return null;\n };\n\n /**\n * Creates an ObserveEventsRequest message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.ObserveEventsRequest\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.ObserveEventsRequest} ObserveEventsRequest\n */\n ObserveEventsRequest.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.ObserveEventsRequest)\n return object;\n var message = new $root.perfetto.protos.ObserveEventsRequest();\n if (object.eventsToObserve) {\n if (!Array.isArray(object.eventsToObserve))\n throw TypeError(\".perfetto.protos.ObserveEventsRequest.eventsToObserve: array expected\");\n message.eventsToObserve = [];\n for (var i = 0; i < object.eventsToObserve.length; ++i)\n switch (object.eventsToObserve[i]) {\n default:\n case \"TYPE_UNSPECIFIED\":\n case 0:\n message.eventsToObserve[i] = 0;\n break;\n case \"TYPE_DATA_SOURCES_INSTANCES\":\n case 1:\n message.eventsToObserve[i] = 1;\n break;\n case \"TYPE_ALL_DATA_SOURCES_STARTED\":\n case 2:\n message.eventsToObserve[i] = 2;\n break;\n }\n }\n return message;\n };\n\n /**\n * Creates a plain object from an ObserveEventsRequest message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.ObserveEventsRequest\n * @static\n * @param {perfetto.protos.ObserveEventsRequest} message ObserveEventsRequest\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n ObserveEventsRequest.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.eventsToObserve = [];\n if (message.eventsToObserve && message.eventsToObserve.length) {\n object.eventsToObserve = [];\n for (var j = 0; j < message.eventsToObserve.length; ++j)\n object.eventsToObserve[j] = options.enums === String ? $root.perfetto.protos.ObservableEvents.Type[message.eventsToObserve[j]] : message.eventsToObserve[j];\n }\n return object;\n };\n\n /**\n * Converts this ObserveEventsRequest to JSON.\n * @function toJSON\n * @memberof perfetto.protos.ObserveEventsRequest\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n ObserveEventsRequest.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return ObserveEventsRequest;\n })();\n\n protos.ObserveEventsResponse = (function() {\n\n /**\n * Properties of an ObserveEventsResponse.\n * @memberof perfetto.protos\n * @interface IObserveEventsResponse\n * @property {perfetto.protos.IObservableEvents|null} [events] ObserveEventsResponse events\n */\n\n /**\n * Constructs a new ObserveEventsResponse.\n * @memberof perfetto.protos\n * @classdesc Represents an ObserveEventsResponse.\n * @implements IObserveEventsResponse\n * @constructor\n * @param {perfetto.protos.IObserveEventsResponse=} [properties] Properties to set\n */\n function ObserveEventsResponse(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * ObserveEventsResponse events.\n * @member {perfetto.protos.IObservableEvents|null|undefined} events\n * @memberof perfetto.protos.ObserveEventsResponse\n * @instance\n */\n ObserveEventsResponse.prototype.events = null;\n\n /**\n * Creates a new ObserveEventsResponse instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.ObserveEventsResponse\n * @static\n * @param {perfetto.protos.IObserveEventsResponse=} [properties] Properties to set\n * @returns {perfetto.protos.ObserveEventsResponse} ObserveEventsResponse instance\n */\n ObserveEventsResponse.create = function create(properties) {\n return new ObserveEventsResponse(properties);\n };\n\n /**\n * Encodes the specified ObserveEventsResponse message. Does not implicitly {@link perfetto.protos.ObserveEventsResponse.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.ObserveEventsResponse\n * @static\n * @param {perfetto.protos.IObserveEventsResponse} message ObserveEventsResponse message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ObserveEventsResponse.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.events != null && Object.hasOwnProperty.call(message, \"events\"))\n $root.perfetto.protos.ObservableEvents.encode(message.events, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified ObserveEventsResponse message, length delimited. Does not implicitly {@link perfetto.protos.ObserveEventsResponse.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.ObserveEventsResponse\n * @static\n * @param {perfetto.protos.IObserveEventsResponse} message ObserveEventsResponse message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ObserveEventsResponse.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes an ObserveEventsResponse message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.ObserveEventsResponse\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.ObserveEventsResponse} ObserveEventsResponse\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ObserveEventsResponse.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.ObserveEventsResponse();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.events = $root.perfetto.protos.ObservableEvents.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes an ObserveEventsResponse message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.ObserveEventsResponse\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.ObserveEventsResponse} ObserveEventsResponse\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ObserveEventsResponse.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies an ObserveEventsResponse message.\n * @function verify\n * @memberof perfetto.protos.ObserveEventsResponse\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n ObserveEventsResponse.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.events != null && message.hasOwnProperty(\"events\")) {\n var error = $root.perfetto.protos.ObservableEvents.verify(message.events);\n if (error)\n return \"events.\" + error;\n }\n return null;\n };\n\n /**\n * Creates an ObserveEventsResponse message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.ObserveEventsResponse\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.ObserveEventsResponse} ObserveEventsResponse\n */\n ObserveEventsResponse.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.ObserveEventsResponse)\n return object;\n var message = new $root.perfetto.protos.ObserveEventsResponse();\n if (object.events != null) {\n if (typeof object.events !== \"object\")\n throw TypeError(\".perfetto.protos.ObserveEventsResponse.events: object expected\");\n message.events = $root.perfetto.protos.ObservableEvents.fromObject(object.events);\n }\n return message;\n };\n\n /**\n * Creates a plain object from an ObserveEventsResponse message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.ObserveEventsResponse\n * @static\n * @param {perfetto.protos.ObserveEventsResponse} message ObserveEventsResponse\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n ObserveEventsResponse.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults)\n object.events = null;\n if (message.events != null && message.hasOwnProperty(\"events\"))\n object.events = $root.perfetto.protos.ObservableEvents.toObject(message.events, options);\n return object;\n };\n\n /**\n * Converts this ObserveEventsResponse to JSON.\n * @function toJSON\n * @memberof perfetto.protos.ObserveEventsResponse\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n ObserveEventsResponse.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return ObserveEventsResponse;\n })();\n\n protos.QueryServiceStateRequest = (function() {\n\n /**\n * Properties of a QueryServiceStateRequest.\n * @memberof perfetto.protos\n * @interface IQueryServiceStateRequest\n */\n\n /**\n * Constructs a new QueryServiceStateRequest.\n * @memberof perfetto.protos\n * @classdesc Represents a QueryServiceStateRequest.\n * @implements IQueryServiceStateRequest\n * @constructor\n * @param {perfetto.protos.IQueryServiceStateRequest=} [properties] Properties to set\n */\n function QueryServiceStateRequest(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * Creates a new QueryServiceStateRequest instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.QueryServiceStateRequest\n * @static\n * @param {perfetto.protos.IQueryServiceStateRequest=} [properties] Properties to set\n * @returns {perfetto.protos.QueryServiceStateRequest} QueryServiceStateRequest instance\n */\n QueryServiceStateRequest.create = function create(properties) {\n return new QueryServiceStateRequest(properties);\n };\n\n /**\n * Encodes the specified QueryServiceStateRequest message. Does not implicitly {@link perfetto.protos.QueryServiceStateRequest.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.QueryServiceStateRequest\n * @static\n * @param {perfetto.protos.IQueryServiceStateRequest} message QueryServiceStateRequest message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n QueryServiceStateRequest.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n return writer;\n };\n\n /**\n * Encodes the specified QueryServiceStateRequest message, length delimited. Does not implicitly {@link perfetto.protos.QueryServiceStateRequest.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.QueryServiceStateRequest\n * @static\n * @param {perfetto.protos.IQueryServiceStateRequest} message QueryServiceStateRequest message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n QueryServiceStateRequest.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a QueryServiceStateRequest message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.QueryServiceStateRequest\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.QueryServiceStateRequest} QueryServiceStateRequest\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n QueryServiceStateRequest.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.QueryServiceStateRequest();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a QueryServiceStateRequest message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.QueryServiceStateRequest\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.QueryServiceStateRequest} QueryServiceStateRequest\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n QueryServiceStateRequest.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a QueryServiceStateRequest message.\n * @function verify\n * @memberof perfetto.protos.QueryServiceStateRequest\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n QueryServiceStateRequest.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n return null;\n };\n\n /**\n * Creates a QueryServiceStateRequest message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.QueryServiceStateRequest\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.QueryServiceStateRequest} QueryServiceStateRequest\n */\n QueryServiceStateRequest.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.QueryServiceStateRequest)\n return object;\n return new $root.perfetto.protos.QueryServiceStateRequest();\n };\n\n /**\n * Creates a plain object from a QueryServiceStateRequest message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.QueryServiceStateRequest\n * @static\n * @param {perfetto.protos.QueryServiceStateRequest} message QueryServiceStateRequest\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n QueryServiceStateRequest.toObject = function toObject() {\n return {};\n };\n\n /**\n * Converts this QueryServiceStateRequest to JSON.\n * @function toJSON\n * @memberof perfetto.protos.QueryServiceStateRequest\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n QueryServiceStateRequest.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return QueryServiceStateRequest;\n })();\n\n protos.QueryServiceStateResponse = (function() {\n\n /**\n * Properties of a QueryServiceStateResponse.\n * @memberof perfetto.protos\n * @interface IQueryServiceStateResponse\n * @property {perfetto.protos.ITracingServiceState|null} [serviceState] QueryServiceStateResponse serviceState\n */\n\n /**\n * Constructs a new QueryServiceStateResponse.\n * @memberof perfetto.protos\n * @classdesc Represents a QueryServiceStateResponse.\n * @implements IQueryServiceStateResponse\n * @constructor\n * @param {perfetto.protos.IQueryServiceStateResponse=} [properties] Properties to set\n */\n function QueryServiceStateResponse(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * QueryServiceStateResponse serviceState.\n * @member {perfetto.protos.ITracingServiceState|null|undefined} serviceState\n * @memberof perfetto.protos.QueryServiceStateResponse\n * @instance\n */\n QueryServiceStateResponse.prototype.serviceState = null;\n\n /**\n * Creates a new QueryServiceStateResponse instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.QueryServiceStateResponse\n * @static\n * @param {perfetto.protos.IQueryServiceStateResponse=} [properties] Properties to set\n * @returns {perfetto.protos.QueryServiceStateResponse} QueryServiceStateResponse instance\n */\n QueryServiceStateResponse.create = function create(properties) {\n return new QueryServiceStateResponse(properties);\n };\n\n /**\n * Encodes the specified QueryServiceStateResponse message. Does not implicitly {@link perfetto.protos.QueryServiceStateResponse.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.QueryServiceStateResponse\n * @static\n * @param {perfetto.protos.IQueryServiceStateResponse} message QueryServiceStateResponse message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n QueryServiceStateResponse.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.serviceState != null && Object.hasOwnProperty.call(message, \"serviceState\"))\n $root.perfetto.protos.TracingServiceState.encode(message.serviceState, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified QueryServiceStateResponse message, length delimited. Does not implicitly {@link perfetto.protos.QueryServiceStateResponse.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.QueryServiceStateResponse\n * @static\n * @param {perfetto.protos.IQueryServiceStateResponse} message QueryServiceStateResponse message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n QueryServiceStateResponse.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a QueryServiceStateResponse message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.QueryServiceStateResponse\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.QueryServiceStateResponse} QueryServiceStateResponse\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n QueryServiceStateResponse.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.QueryServiceStateResponse();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.serviceState = $root.perfetto.protos.TracingServiceState.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a QueryServiceStateResponse message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.QueryServiceStateResponse\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.QueryServiceStateResponse} QueryServiceStateResponse\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n QueryServiceStateResponse.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a QueryServiceStateResponse message.\n * @function verify\n * @memberof perfetto.protos.QueryServiceStateResponse\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n QueryServiceStateResponse.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.serviceState != null && message.hasOwnProperty(\"serviceState\")) {\n var error = $root.perfetto.protos.TracingServiceState.verify(message.serviceState);\n if (error)\n return \"serviceState.\" + error;\n }\n return null;\n };\n\n /**\n * Creates a QueryServiceStateResponse message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.QueryServiceStateResponse\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.QueryServiceStateResponse} QueryServiceStateResponse\n */\n QueryServiceStateResponse.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.QueryServiceStateResponse)\n return object;\n var message = new $root.perfetto.protos.QueryServiceStateResponse();\n if (object.serviceState != null) {\n if (typeof object.serviceState !== \"object\")\n throw TypeError(\".perfetto.protos.QueryServiceStateResponse.serviceState: object expected\");\n message.serviceState = $root.perfetto.protos.TracingServiceState.fromObject(object.serviceState);\n }\n return message;\n };\n\n /**\n * Creates a plain object from a QueryServiceStateResponse message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.QueryServiceStateResponse\n * @static\n * @param {perfetto.protos.QueryServiceStateResponse} message QueryServiceStateResponse\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n QueryServiceStateResponse.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults)\n object.serviceState = null;\n if (message.serviceState != null && message.hasOwnProperty(\"serviceState\"))\n object.serviceState = $root.perfetto.protos.TracingServiceState.toObject(message.serviceState, options);\n return object;\n };\n\n /**\n * Converts this QueryServiceStateResponse to JSON.\n * @function toJSON\n * @memberof perfetto.protos.QueryServiceStateResponse\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n QueryServiceStateResponse.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return QueryServiceStateResponse;\n })();\n\n protos.QueryCapabilitiesRequest = (function() {\n\n /**\n * Properties of a QueryCapabilitiesRequest.\n * @memberof perfetto.protos\n * @interface IQueryCapabilitiesRequest\n */\n\n /**\n * Constructs a new QueryCapabilitiesRequest.\n * @memberof perfetto.protos\n * @classdesc Represents a QueryCapabilitiesRequest.\n * @implements IQueryCapabilitiesRequest\n * @constructor\n * @param {perfetto.protos.IQueryCapabilitiesRequest=} [properties] Properties to set\n */\n function QueryCapabilitiesRequest(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * Creates a new QueryCapabilitiesRequest instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.QueryCapabilitiesRequest\n * @static\n * @param {perfetto.protos.IQueryCapabilitiesRequest=} [properties] Properties to set\n * @returns {perfetto.protos.QueryCapabilitiesRequest} QueryCapabilitiesRequest instance\n */\n QueryCapabilitiesRequest.create = function create(properties) {\n return new QueryCapabilitiesRequest(properties);\n };\n\n /**\n * Encodes the specified QueryCapabilitiesRequest message. Does not implicitly {@link perfetto.protos.QueryCapabilitiesRequest.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.QueryCapabilitiesRequest\n * @static\n * @param {perfetto.protos.IQueryCapabilitiesRequest} message QueryCapabilitiesRequest message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n QueryCapabilitiesRequest.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n return writer;\n };\n\n /**\n * Encodes the specified QueryCapabilitiesRequest message, length delimited. Does not implicitly {@link perfetto.protos.QueryCapabilitiesRequest.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.QueryCapabilitiesRequest\n * @static\n * @param {perfetto.protos.IQueryCapabilitiesRequest} message QueryCapabilitiesRequest message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n QueryCapabilitiesRequest.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a QueryCapabilitiesRequest message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.QueryCapabilitiesRequest\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.QueryCapabilitiesRequest} QueryCapabilitiesRequest\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n QueryCapabilitiesRequest.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.QueryCapabilitiesRequest();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a QueryCapabilitiesRequest message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.QueryCapabilitiesRequest\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.QueryCapabilitiesRequest} QueryCapabilitiesRequest\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n QueryCapabilitiesRequest.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a QueryCapabilitiesRequest message.\n * @function verify\n * @memberof perfetto.protos.QueryCapabilitiesRequest\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n QueryCapabilitiesRequest.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n return null;\n };\n\n /**\n * Creates a QueryCapabilitiesRequest message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.QueryCapabilitiesRequest\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.QueryCapabilitiesRequest} QueryCapabilitiesRequest\n */\n QueryCapabilitiesRequest.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.QueryCapabilitiesRequest)\n return object;\n return new $root.perfetto.protos.QueryCapabilitiesRequest();\n };\n\n /**\n * Creates a plain object from a QueryCapabilitiesRequest message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.QueryCapabilitiesRequest\n * @static\n * @param {perfetto.protos.QueryCapabilitiesRequest} message QueryCapabilitiesRequest\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n QueryCapabilitiesRequest.toObject = function toObject() {\n return {};\n };\n\n /**\n * Converts this QueryCapabilitiesRequest to JSON.\n * @function toJSON\n * @memberof perfetto.protos.QueryCapabilitiesRequest\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n QueryCapabilitiesRequest.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return QueryCapabilitiesRequest;\n })();\n\n protos.QueryCapabilitiesResponse = (function() {\n\n /**\n * Properties of a QueryCapabilitiesResponse.\n * @memberof perfetto.protos\n * @interface IQueryCapabilitiesResponse\n * @property {perfetto.protos.ITracingServiceCapabilities|null} [capabilities] QueryCapabilitiesResponse capabilities\n */\n\n /**\n * Constructs a new QueryCapabilitiesResponse.\n * @memberof perfetto.protos\n * @classdesc Represents a QueryCapabilitiesResponse.\n * @implements IQueryCapabilitiesResponse\n * @constructor\n * @param {perfetto.protos.IQueryCapabilitiesResponse=} [properties] Properties to set\n */\n function QueryCapabilitiesResponse(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * QueryCapabilitiesResponse capabilities.\n * @member {perfetto.protos.ITracingServiceCapabilities|null|undefined} capabilities\n * @memberof perfetto.protos.QueryCapabilitiesResponse\n * @instance\n */\n QueryCapabilitiesResponse.prototype.capabilities = null;\n\n /**\n * Creates a new QueryCapabilitiesResponse instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.QueryCapabilitiesResponse\n * @static\n * @param {perfetto.protos.IQueryCapabilitiesResponse=} [properties] Properties to set\n * @returns {perfetto.protos.QueryCapabilitiesResponse} QueryCapabilitiesResponse instance\n */\n QueryCapabilitiesResponse.create = function create(properties) {\n return new QueryCapabilitiesResponse(properties);\n };\n\n /**\n * Encodes the specified QueryCapabilitiesResponse message. Does not implicitly {@link perfetto.protos.QueryCapabilitiesResponse.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.QueryCapabilitiesResponse\n * @static\n * @param {perfetto.protos.IQueryCapabilitiesResponse} message QueryCapabilitiesResponse message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n QueryCapabilitiesResponse.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.capabilities != null && Object.hasOwnProperty.call(message, \"capabilities\"))\n $root.perfetto.protos.TracingServiceCapabilities.encode(message.capabilities, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified QueryCapabilitiesResponse message, length delimited. Does not implicitly {@link perfetto.protos.QueryCapabilitiesResponse.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.QueryCapabilitiesResponse\n * @static\n * @param {perfetto.protos.IQueryCapabilitiesResponse} message QueryCapabilitiesResponse message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n QueryCapabilitiesResponse.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a QueryCapabilitiesResponse message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.QueryCapabilitiesResponse\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.QueryCapabilitiesResponse} QueryCapabilitiesResponse\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n QueryCapabilitiesResponse.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.QueryCapabilitiesResponse();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.capabilities = $root.perfetto.protos.TracingServiceCapabilities.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a QueryCapabilitiesResponse message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.QueryCapabilitiesResponse\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.QueryCapabilitiesResponse} QueryCapabilitiesResponse\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n QueryCapabilitiesResponse.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a QueryCapabilitiesResponse message.\n * @function verify\n * @memberof perfetto.protos.QueryCapabilitiesResponse\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n QueryCapabilitiesResponse.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.capabilities != null && message.hasOwnProperty(\"capabilities\")) {\n var error = $root.perfetto.protos.TracingServiceCapabilities.verify(message.capabilities);\n if (error)\n return \"capabilities.\" + error;\n }\n return null;\n };\n\n /**\n * Creates a QueryCapabilitiesResponse message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.QueryCapabilitiesResponse\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.QueryCapabilitiesResponse} QueryCapabilitiesResponse\n */\n QueryCapabilitiesResponse.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.QueryCapabilitiesResponse)\n return object;\n var message = new $root.perfetto.protos.QueryCapabilitiesResponse();\n if (object.capabilities != null) {\n if (typeof object.capabilities !== \"object\")\n throw TypeError(\".perfetto.protos.QueryCapabilitiesResponse.capabilities: object expected\");\n message.capabilities = $root.perfetto.protos.TracingServiceCapabilities.fromObject(object.capabilities);\n }\n return message;\n };\n\n /**\n * Creates a plain object from a QueryCapabilitiesResponse message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.QueryCapabilitiesResponse\n * @static\n * @param {perfetto.protos.QueryCapabilitiesResponse} message QueryCapabilitiesResponse\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n QueryCapabilitiesResponse.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults)\n object.capabilities = null;\n if (message.capabilities != null && message.hasOwnProperty(\"capabilities\"))\n object.capabilities = $root.perfetto.protos.TracingServiceCapabilities.toObject(message.capabilities, options);\n return object;\n };\n\n /**\n * Converts this QueryCapabilitiesResponse to JSON.\n * @function toJSON\n * @memberof perfetto.protos.QueryCapabilitiesResponse\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n QueryCapabilitiesResponse.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return QueryCapabilitiesResponse;\n })();\n\n protos.SaveTraceForBugreportRequest = (function() {\n\n /**\n * Properties of a SaveTraceForBugreportRequest.\n * @memberof perfetto.protos\n * @interface ISaveTraceForBugreportRequest\n */\n\n /**\n * Constructs a new SaveTraceForBugreportRequest.\n * @memberof perfetto.protos\n * @classdesc Represents a SaveTraceForBugreportRequest.\n * @implements ISaveTraceForBugreportRequest\n * @constructor\n * @param {perfetto.protos.ISaveTraceForBugreportRequest=} [properties] Properties to set\n */\n function SaveTraceForBugreportRequest(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * Creates a new SaveTraceForBugreportRequest instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.SaveTraceForBugreportRequest\n * @static\n * @param {perfetto.protos.ISaveTraceForBugreportRequest=} [properties] Properties to set\n * @returns {perfetto.protos.SaveTraceForBugreportRequest} SaveTraceForBugreportRequest instance\n */\n SaveTraceForBugreportRequest.create = function create(properties) {\n return new SaveTraceForBugreportRequest(properties);\n };\n\n /**\n * Encodes the specified SaveTraceForBugreportRequest message. Does not implicitly {@link perfetto.protos.SaveTraceForBugreportRequest.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.SaveTraceForBugreportRequest\n * @static\n * @param {perfetto.protos.ISaveTraceForBugreportRequest} message SaveTraceForBugreportRequest message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n SaveTraceForBugreportRequest.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n return writer;\n };\n\n /**\n * Encodes the specified SaveTraceForBugreportRequest message, length delimited. Does not implicitly {@link perfetto.protos.SaveTraceForBugreportRequest.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.SaveTraceForBugreportRequest\n * @static\n * @param {perfetto.protos.ISaveTraceForBugreportRequest} message SaveTraceForBugreportRequest message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n SaveTraceForBugreportRequest.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a SaveTraceForBugreportRequest message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.SaveTraceForBugreportRequest\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.SaveTraceForBugreportRequest} SaveTraceForBugreportRequest\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n SaveTraceForBugreportRequest.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.SaveTraceForBugreportRequest();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a SaveTraceForBugreportRequest message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.SaveTraceForBugreportRequest\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.SaveTraceForBugreportRequest} SaveTraceForBugreportRequest\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n SaveTraceForBugreportRequest.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a SaveTraceForBugreportRequest message.\n * @function verify\n * @memberof perfetto.protos.SaveTraceForBugreportRequest\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n SaveTraceForBugreportRequest.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n return null;\n };\n\n /**\n * Creates a SaveTraceForBugreportRequest message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.SaveTraceForBugreportRequest\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.SaveTraceForBugreportRequest} SaveTraceForBugreportRequest\n */\n SaveTraceForBugreportRequest.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.SaveTraceForBugreportRequest)\n return object;\n return new $root.perfetto.protos.SaveTraceForBugreportRequest();\n };\n\n /**\n * Creates a plain object from a SaveTraceForBugreportRequest message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.SaveTraceForBugreportRequest\n * @static\n * @param {perfetto.protos.SaveTraceForBugreportRequest} message SaveTraceForBugreportRequest\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n SaveTraceForBugreportRequest.toObject = function toObject() {\n return {};\n };\n\n /**\n * Converts this SaveTraceForBugreportRequest to JSON.\n * @function toJSON\n * @memberof perfetto.protos.SaveTraceForBugreportRequest\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n SaveTraceForBugreportRequest.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return SaveTraceForBugreportRequest;\n })();\n\n protos.SaveTraceForBugreportResponse = (function() {\n\n /**\n * Properties of a SaveTraceForBugreportResponse.\n * @memberof perfetto.protos\n * @interface ISaveTraceForBugreportResponse\n * @property {boolean|null} [success] SaveTraceForBugreportResponse success\n * @property {string|null} [msg] SaveTraceForBugreportResponse msg\n */\n\n /**\n * Constructs a new SaveTraceForBugreportResponse.\n * @memberof perfetto.protos\n * @classdesc Represents a SaveTraceForBugreportResponse.\n * @implements ISaveTraceForBugreportResponse\n * @constructor\n * @param {perfetto.protos.ISaveTraceForBugreportResponse=} [properties] Properties to set\n */\n function SaveTraceForBugreportResponse(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * SaveTraceForBugreportResponse success.\n * @member {boolean} success\n * @memberof perfetto.protos.SaveTraceForBugreportResponse\n * @instance\n */\n SaveTraceForBugreportResponse.prototype.success = false;\n\n /**\n * SaveTraceForBugreportResponse msg.\n * @member {string} msg\n * @memberof perfetto.protos.SaveTraceForBugreportResponse\n * @instance\n */\n SaveTraceForBugreportResponse.prototype.msg = \"\";\n\n /**\n * Creates a new SaveTraceForBugreportResponse instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.SaveTraceForBugreportResponse\n * @static\n * @param {perfetto.protos.ISaveTraceForBugreportResponse=} [properties] Properties to set\n * @returns {perfetto.protos.SaveTraceForBugreportResponse} SaveTraceForBugreportResponse instance\n */\n SaveTraceForBugreportResponse.create = function create(properties) {\n return new SaveTraceForBugreportResponse(properties);\n };\n\n /**\n * Encodes the specified SaveTraceForBugreportResponse message. Does not implicitly {@link perfetto.protos.SaveTraceForBugreportResponse.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.SaveTraceForBugreportResponse\n * @static\n * @param {perfetto.protos.ISaveTraceForBugreportResponse} message SaveTraceForBugreportResponse message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n SaveTraceForBugreportResponse.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.success != null && Object.hasOwnProperty.call(message, \"success\"))\n writer.uint32(/* id 1, wireType 0 =*/8).bool(message.success);\n if (message.msg != null && Object.hasOwnProperty.call(message, \"msg\"))\n writer.uint32(/* id 2, wireType 2 =*/18).string(message.msg);\n return writer;\n };\n\n /**\n * Encodes the specified SaveTraceForBugreportResponse message, length delimited. Does not implicitly {@link perfetto.protos.SaveTraceForBugreportResponse.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.SaveTraceForBugreportResponse\n * @static\n * @param {perfetto.protos.ISaveTraceForBugreportResponse} message SaveTraceForBugreportResponse message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n SaveTraceForBugreportResponse.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a SaveTraceForBugreportResponse message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.SaveTraceForBugreportResponse\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.SaveTraceForBugreportResponse} SaveTraceForBugreportResponse\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n SaveTraceForBugreportResponse.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.SaveTraceForBugreportResponse();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.success = reader.bool();\n break;\n case 2:\n message.msg = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a SaveTraceForBugreportResponse message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.SaveTraceForBugreportResponse\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.SaveTraceForBugreportResponse} SaveTraceForBugreportResponse\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n SaveTraceForBugreportResponse.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a SaveTraceForBugreportResponse message.\n * @function verify\n * @memberof perfetto.protos.SaveTraceForBugreportResponse\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n SaveTraceForBugreportResponse.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.success != null && message.hasOwnProperty(\"success\"))\n if (typeof message.success !== \"boolean\")\n return \"success: boolean expected\";\n if (message.msg != null && message.hasOwnProperty(\"msg\"))\n if (!$util.isString(message.msg))\n return \"msg: string expected\";\n return null;\n };\n\n /**\n * Creates a SaveTraceForBugreportResponse message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.SaveTraceForBugreportResponse\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.SaveTraceForBugreportResponse} SaveTraceForBugreportResponse\n */\n SaveTraceForBugreportResponse.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.SaveTraceForBugreportResponse)\n return object;\n var message = new $root.perfetto.protos.SaveTraceForBugreportResponse();\n if (object.success != null)\n message.success = Boolean(object.success);\n if (object.msg != null)\n message.msg = String(object.msg);\n return message;\n };\n\n /**\n * Creates a plain object from a SaveTraceForBugreportResponse message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.SaveTraceForBugreportResponse\n * @static\n * @param {perfetto.protos.SaveTraceForBugreportResponse} message SaveTraceForBugreportResponse\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n SaveTraceForBugreportResponse.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.success = false;\n object.msg = \"\";\n }\n if (message.success != null && message.hasOwnProperty(\"success\"))\n object.success = message.success;\n if (message.msg != null && message.hasOwnProperty(\"msg\"))\n object.msg = message.msg;\n return object;\n };\n\n /**\n * Converts this SaveTraceForBugreportResponse to JSON.\n * @function toJSON\n * @memberof perfetto.protos.SaveTraceForBugreportResponse\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n SaveTraceForBugreportResponse.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return SaveTraceForBugreportResponse;\n })();\n\n protos.IPCFrame = (function() {\n\n /**\n * Properties of a IPCFrame.\n * @memberof perfetto.protos\n * @interface IIPCFrame\n * @property {number|null} [requestId] IPCFrame requestId\n * @property {perfetto.protos.IPCFrame.IBindService|null} [msgBindService] IPCFrame msgBindService\n * @property {perfetto.protos.IPCFrame.IBindServiceReply|null} [msgBindServiceReply] IPCFrame msgBindServiceReply\n * @property {perfetto.protos.IPCFrame.IInvokeMethod|null} [msgInvokeMethod] IPCFrame msgInvokeMethod\n * @property {perfetto.protos.IPCFrame.IInvokeMethodReply|null} [msgInvokeMethodReply] IPCFrame msgInvokeMethodReply\n * @property {perfetto.protos.IPCFrame.IRequestError|null} [msgRequestError] IPCFrame msgRequestError\n * @property {Array.<Uint8Array>|null} [dataForTesting] IPCFrame dataForTesting\n */\n\n /**\n * Constructs a new IPCFrame.\n * @memberof perfetto.protos\n * @classdesc Represents a IPCFrame.\n * @implements IIPCFrame\n * @constructor\n * @param {perfetto.protos.IIPCFrame=} [properties] Properties to set\n */\n function IPCFrame(properties) {\n this.dataForTesting = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * IPCFrame requestId.\n * @member {number} requestId\n * @memberof perfetto.protos.IPCFrame\n * @instance\n */\n IPCFrame.prototype.requestId = $util.Long ? $util.Long.fromBits(0,0,true) : 0;\n\n /**\n * IPCFrame msgBindService.\n * @member {perfetto.protos.IPCFrame.IBindService|null|undefined} msgBindService\n * @memberof perfetto.protos.IPCFrame\n * @instance\n */\n IPCFrame.prototype.msgBindService = null;\n\n /**\n * IPCFrame msgBindServiceReply.\n * @member {perfetto.protos.IPCFrame.IBindServiceReply|null|undefined} msgBindServiceReply\n * @memberof perfetto.protos.IPCFrame\n * @instance\n */\n IPCFrame.prototype.msgBindServiceReply = null;\n\n /**\n * IPCFrame msgInvokeMethod.\n * @member {perfetto.protos.IPCFrame.IInvokeMethod|null|undefined} msgInvokeMethod\n * @memberof perfetto.protos.IPCFrame\n * @instance\n */\n IPCFrame.prototype.msgInvokeMethod = null;\n\n /**\n * IPCFrame msgInvokeMethodReply.\n * @member {perfetto.protos.IPCFrame.IInvokeMethodReply|null|undefined} msgInvokeMethodReply\n * @memberof perfetto.protos.IPCFrame\n * @instance\n */\n IPCFrame.prototype.msgInvokeMethodReply = null;\n\n /**\n * IPCFrame msgRequestError.\n * @member {perfetto.protos.IPCFrame.IRequestError|null|undefined} msgRequestError\n * @memberof perfetto.protos.IPCFrame\n * @instance\n */\n IPCFrame.prototype.msgRequestError = null;\n\n /**\n * IPCFrame dataForTesting.\n * @member {Array.<Uint8Array>} dataForTesting\n * @memberof perfetto.protos.IPCFrame\n * @instance\n */\n IPCFrame.prototype.dataForTesting = $util.emptyArray;\n\n // OneOf field names bound to virtual getters and setters\n var $oneOfFields;\n\n /**\n * IPCFrame msg.\n * @member {\"msgBindService\"|\"msgBindServiceReply\"|\"msgInvokeMethod\"|\"msgInvokeMethodReply\"|\"msgRequestError\"|undefined} msg\n * @memberof perfetto.protos.IPCFrame\n * @instance\n */\n Object.defineProperty(IPCFrame.prototype, \"msg\", {\n get: $util.oneOfGetter($oneOfFields = [\"msgBindService\", \"msgBindServiceReply\", \"msgInvokeMethod\", \"msgInvokeMethodReply\", \"msgRequestError\"]),\n set: $util.oneOfSetter($oneOfFields)\n });\n\n /**\n * Creates a new IPCFrame instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.IPCFrame\n * @static\n * @param {perfetto.protos.IIPCFrame=} [properties] Properties to set\n * @returns {perfetto.protos.IPCFrame} IPCFrame instance\n */\n IPCFrame.create = function create(properties) {\n return new IPCFrame(properties);\n };\n\n /**\n * Encodes the specified IPCFrame message. Does not implicitly {@link perfetto.protos.IPCFrame.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.IPCFrame\n * @static\n * @param {perfetto.protos.IIPCFrame} message IPCFrame message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n IPCFrame.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.dataForTesting != null && message.dataForTesting.length)\n for (var i = 0; i < message.dataForTesting.length; ++i)\n writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.dataForTesting[i]);\n if (message.requestId != null && Object.hasOwnProperty.call(message, \"requestId\"))\n writer.uint32(/* id 2, wireType 0 =*/16).uint64(message.requestId);\n if (message.msgBindService != null && Object.hasOwnProperty.call(message, \"msgBindService\"))\n $root.perfetto.protos.IPCFrame.BindService.encode(message.msgBindService, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();\n if (message.msgBindServiceReply != null && Object.hasOwnProperty.call(message, \"msgBindServiceReply\"))\n $root.perfetto.protos.IPCFrame.BindServiceReply.encode(message.msgBindServiceReply, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim();\n if (message.msgInvokeMethod != null && Object.hasOwnProperty.call(message, \"msgInvokeMethod\"))\n $root.perfetto.protos.IPCFrame.InvokeMethod.encode(message.msgInvokeMethod, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim();\n if (message.msgInvokeMethodReply != null && Object.hasOwnProperty.call(message, \"msgInvokeMethodReply\"))\n $root.perfetto.protos.IPCFrame.InvokeMethodReply.encode(message.msgInvokeMethodReply, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim();\n if (message.msgRequestError != null && Object.hasOwnProperty.call(message, \"msgRequestError\"))\n $root.perfetto.protos.IPCFrame.RequestError.encode(message.msgRequestError, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified IPCFrame message, length delimited. Does not implicitly {@link perfetto.protos.IPCFrame.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.IPCFrame\n * @static\n * @param {perfetto.protos.IIPCFrame} message IPCFrame message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n IPCFrame.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a IPCFrame message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.IPCFrame\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.IPCFrame} IPCFrame\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n IPCFrame.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.IPCFrame();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 2:\n message.requestId = reader.uint64();\n break;\n case 3:\n message.msgBindService = $root.perfetto.protos.IPCFrame.BindService.decode(reader, reader.uint32());\n break;\n case 4:\n message.msgBindServiceReply = $root.perfetto.protos.IPCFrame.BindServiceReply.decode(reader, reader.uint32());\n break;\n case 5:\n message.msgInvokeMethod = $root.perfetto.protos.IPCFrame.InvokeMethod.decode(reader, reader.uint32());\n break;\n case 6:\n message.msgInvokeMethodReply = $root.perfetto.protos.IPCFrame.InvokeMethodReply.decode(reader, reader.uint32());\n break;\n case 7:\n message.msgRequestError = $root.perfetto.protos.IPCFrame.RequestError.decode(reader, reader.uint32());\n break;\n case 1:\n if (!(message.dataForTesting && message.dataForTesting.length))\n message.dataForTesting = [];\n message.dataForTesting.push(reader.bytes());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a IPCFrame message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.IPCFrame\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.IPCFrame} IPCFrame\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n IPCFrame.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a IPCFrame message.\n * @function verify\n * @memberof perfetto.protos.IPCFrame\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n IPCFrame.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n var properties = {};\n if (message.requestId != null && message.hasOwnProperty(\"requestId\"))\n if (!$util.isInteger(message.requestId) && !(message.requestId && $util.isInteger(message.requestId.low) && $util.isInteger(message.requestId.high)))\n return \"requestId: integer|Long expected\";\n if (message.msgBindService != null && message.hasOwnProperty(\"msgBindService\")) {\n properties.msg = 1;\n {\n var error = $root.perfetto.protos.IPCFrame.BindService.verify(message.msgBindService);\n if (error)\n return \"msgBindService.\" + error;\n }\n }\n if (message.msgBindServiceReply != null && message.hasOwnProperty(\"msgBindServiceReply\")) {\n if (properties.msg === 1)\n return \"msg: multiple values\";\n properties.msg = 1;\n {\n var error = $root.perfetto.protos.IPCFrame.BindServiceReply.verify(message.msgBindServiceReply);\n if (error)\n return \"msgBindServiceReply.\" + error;\n }\n }\n if (message.msgInvokeMethod != null && message.hasOwnProperty(\"msgInvokeMethod\")) {\n if (properties.msg === 1)\n return \"msg: multiple values\";\n properties.msg = 1;\n {\n var error = $root.perfetto.protos.IPCFrame.InvokeMethod.verify(message.msgInvokeMethod);\n if (error)\n return \"msgInvokeMethod.\" + error;\n }\n }\n if (message.msgInvokeMethodReply != null && message.hasOwnProperty(\"msgInvokeMethodReply\")) {\n if (properties.msg === 1)\n return \"msg: multiple values\";\n properties.msg = 1;\n {\n var error = $root.perfetto.protos.IPCFrame.InvokeMethodReply.verify(message.msgInvokeMethodReply);\n if (error)\n return \"msgInvokeMethodReply.\" + error;\n }\n }\n if (message.msgRequestError != null && message.hasOwnProperty(\"msgRequestError\")) {\n if (properties.msg === 1)\n return \"msg: multiple values\";\n properties.msg = 1;\n {\n var error = $root.perfetto.protos.IPCFrame.RequestError.verify(message.msgRequestError);\n if (error)\n return \"msgRequestError.\" + error;\n }\n }\n if (message.dataForTesting != null && message.hasOwnProperty(\"dataForTesting\")) {\n if (!Array.isArray(message.dataForTesting))\n return \"dataForTesting: array expected\";\n for (var i = 0; i < message.dataForTesting.length; ++i)\n if (!(message.dataForTesting[i] && typeof message.dataForTesting[i].length === \"number\" || $util.isString(message.dataForTesting[i])))\n return \"dataForTesting: buffer[] expected\";\n }\n return null;\n };\n\n /**\n * Creates a IPCFrame message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.IPCFrame\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.IPCFrame} IPCFrame\n */\n IPCFrame.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.IPCFrame)\n return object;\n var message = new $root.perfetto.protos.IPCFrame();\n if (object.requestId != null)\n if ($util.Long)\n (message.requestId = $util.Long.fromValue(object.requestId)).unsigned = true;\n else if (typeof object.requestId === \"string\")\n message.requestId = parseInt(object.requestId, 10);\n else if (typeof object.requestId === \"number\")\n message.requestId = object.requestId;\n else if (typeof object.requestId === \"object\")\n message.requestId = new $util.LongBits(object.requestId.low >>> 0, object.requestId.high >>> 0).toNumber(true);\n if (object.msgBindService != null) {\n if (typeof object.msgBindService !== \"object\")\n throw TypeError(\".perfetto.protos.IPCFrame.msgBindService: object expected\");\n message.msgBindService = $root.perfetto.protos.IPCFrame.BindService.fromObject(object.msgBindService);\n }\n if (object.msgBindServiceReply != null) {\n if (typeof object.msgBindServiceReply !== \"object\")\n throw TypeError(\".perfetto.protos.IPCFrame.msgBindServiceReply: object expected\");\n message.msgBindServiceReply = $root.perfetto.protos.IPCFrame.BindServiceReply.fromObject(object.msgBindServiceReply);\n }\n if (object.msgInvokeMethod != null) {\n if (typeof object.msgInvokeMethod !== \"object\")\n throw TypeError(\".perfetto.protos.IPCFrame.msgInvokeMethod: object expected\");\n message.msgInvokeMethod = $root.perfetto.protos.IPCFrame.InvokeMethod.fromObject(object.msgInvokeMethod);\n }\n if (object.msgInvokeMethodReply != null) {\n if (typeof object.msgInvokeMethodReply !== \"object\")\n throw TypeError(\".perfetto.protos.IPCFrame.msgInvokeMethodReply: object expected\");\n message.msgInvokeMethodReply = $root.perfetto.protos.IPCFrame.InvokeMethodReply.fromObject(object.msgInvokeMethodReply);\n }\n if (object.msgRequestError != null) {\n if (typeof object.msgRequestError !== \"object\")\n throw TypeError(\".perfetto.protos.IPCFrame.msgRequestError: object expected\");\n message.msgRequestError = $root.perfetto.protos.IPCFrame.RequestError.fromObject(object.msgRequestError);\n }\n if (object.dataForTesting) {\n if (!Array.isArray(object.dataForTesting))\n throw TypeError(\".perfetto.protos.IPCFrame.dataForTesting: array expected\");\n message.dataForTesting = [];\n for (var i = 0; i < object.dataForTesting.length; ++i)\n if (typeof object.dataForTesting[i] === \"string\")\n $util.base64.decode(object.dataForTesting[i], message.dataForTesting[i] = $util.newBuffer($util.base64.length(object.dataForTesting[i])), 0);\n else if (object.dataForTesting[i].length)\n message.dataForTesting[i] = object.dataForTesting[i];\n }\n return message;\n };\n\n /**\n * Creates a plain object from a IPCFrame message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.IPCFrame\n * @static\n * @param {perfetto.protos.IPCFrame} message IPCFrame\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n IPCFrame.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.dataForTesting = [];\n if (options.defaults)\n if ($util.Long) {\n var long = new $util.Long(0, 0, true);\n object.requestId = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.requestId = options.longs === String ? \"0\" : 0;\n if (message.dataForTesting && message.dataForTesting.length) {\n object.dataForTesting = [];\n for (var j = 0; j < message.dataForTesting.length; ++j)\n object.dataForTesting[j] = options.bytes === String ? $util.base64.encode(message.dataForTesting[j], 0, message.dataForTesting[j].length) : options.bytes === Array ? Array.prototype.slice.call(message.dataForTesting[j]) : message.dataForTesting[j];\n }\n if (message.requestId != null && message.hasOwnProperty(\"requestId\"))\n if (typeof message.requestId === \"number\")\n object.requestId = options.longs === String ? String(message.requestId) : message.requestId;\n else\n object.requestId = options.longs === String ? $util.Long.prototype.toString.call(message.requestId) : options.longs === Number ? new $util.LongBits(message.requestId.low >>> 0, message.requestId.high >>> 0).toNumber(true) : message.requestId;\n if (message.msgBindService != null && message.hasOwnProperty(\"msgBindService\")) {\n object.msgBindService = $root.perfetto.protos.IPCFrame.BindService.toObject(message.msgBindService, options);\n if (options.oneofs)\n object.msg = \"msgBindService\";\n }\n if (message.msgBindServiceReply != null && message.hasOwnProperty(\"msgBindServiceReply\")) {\n object.msgBindServiceReply = $root.perfetto.protos.IPCFrame.BindServiceReply.toObject(message.msgBindServiceReply, options);\n if (options.oneofs)\n object.msg = \"msgBindServiceReply\";\n }\n if (message.msgInvokeMethod != null && message.hasOwnProperty(\"msgInvokeMethod\")) {\n object.msgInvokeMethod = $root.perfetto.protos.IPCFrame.InvokeMethod.toObject(message.msgInvokeMethod, options);\n if (options.oneofs)\n object.msg = \"msgInvokeMethod\";\n }\n if (message.msgInvokeMethodReply != null && message.hasOwnProperty(\"msgInvokeMethodReply\")) {\n object.msgInvokeMethodReply = $root.perfetto.protos.IPCFrame.InvokeMethodReply.toObject(message.msgInvokeMethodReply, options);\n if (options.oneofs)\n object.msg = \"msgInvokeMethodReply\";\n }\n if (message.msgRequestError != null && message.hasOwnProperty(\"msgRequestError\")) {\n object.msgRequestError = $root.perfetto.protos.IPCFrame.RequestError.toObject(message.msgRequestError, options);\n if (options.oneofs)\n object.msg = \"msgRequestError\";\n }\n return object;\n };\n\n /**\n * Converts this IPCFrame to JSON.\n * @function toJSON\n * @memberof perfetto.protos.IPCFrame\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n IPCFrame.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n IPCFrame.BindService = (function() {\n\n /**\n * Properties of a BindService.\n * @memberof perfetto.protos.IPCFrame\n * @interface IBindService\n * @property {string|null} [serviceName] BindService serviceName\n */\n\n /**\n * Constructs a new BindService.\n * @memberof perfetto.protos.IPCFrame\n * @classdesc Represents a BindService.\n * @implements IBindService\n * @constructor\n * @param {perfetto.protos.IPCFrame.IBindService=} [properties] Properties to set\n */\n function BindService(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * BindService serviceName.\n * @member {string} serviceName\n * @memberof perfetto.protos.IPCFrame.BindService\n * @instance\n */\n BindService.prototype.serviceName = \"\";\n\n /**\n * Creates a new BindService instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.IPCFrame.BindService\n * @static\n * @param {perfetto.protos.IPCFrame.IBindService=} [properties] Properties to set\n * @returns {perfetto.protos.IPCFrame.BindService} BindService instance\n */\n BindService.create = function create(properties) {\n return new BindService(properties);\n };\n\n /**\n * Encodes the specified BindService message. Does not implicitly {@link perfetto.protos.IPCFrame.BindService.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.IPCFrame.BindService\n * @static\n * @param {perfetto.protos.IPCFrame.IBindService} message BindService message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n BindService.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.serviceName != null && Object.hasOwnProperty.call(message, \"serviceName\"))\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.serviceName);\n return writer;\n };\n\n /**\n * Encodes the specified BindService message, length delimited. Does not implicitly {@link perfetto.protos.IPCFrame.BindService.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.IPCFrame.BindService\n * @static\n * @param {perfetto.protos.IPCFrame.IBindService} message BindService message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n BindService.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a BindService message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.IPCFrame.BindService\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.IPCFrame.BindService} BindService\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n BindService.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.IPCFrame.BindService();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.serviceName = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a BindService message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.IPCFrame.BindService\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.IPCFrame.BindService} BindService\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n BindService.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a BindService message.\n * @function verify\n * @memberof perfetto.protos.IPCFrame.BindService\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n BindService.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.serviceName != null && message.hasOwnProperty(\"serviceName\"))\n if (!$util.isString(message.serviceName))\n return \"serviceName: string expected\";\n return null;\n };\n\n /**\n * Creates a BindService message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.IPCFrame.BindService\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.IPCFrame.BindService} BindService\n */\n BindService.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.IPCFrame.BindService)\n return object;\n var message = new $root.perfetto.protos.IPCFrame.BindService();\n if (object.serviceName != null)\n message.serviceName = String(object.serviceName);\n return message;\n };\n\n /**\n * Creates a plain object from a BindService message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.IPCFrame.BindService\n * @static\n * @param {perfetto.protos.IPCFrame.BindService} message BindService\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n BindService.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults)\n object.serviceName = \"\";\n if (message.serviceName != null && message.hasOwnProperty(\"serviceName\"))\n object.serviceName = message.serviceName;\n return object;\n };\n\n /**\n * Converts this BindService to JSON.\n * @function toJSON\n * @memberof perfetto.protos.IPCFrame.BindService\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n BindService.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return BindService;\n })();\n\n IPCFrame.BindServiceReply = (function() {\n\n /**\n * Properties of a BindServiceReply.\n * @memberof perfetto.protos.IPCFrame\n * @interface IBindServiceReply\n * @property {boolean|null} [success] BindServiceReply success\n * @property {number|null} [serviceId] BindServiceReply serviceId\n * @property {Array.<perfetto.protos.IPCFrame.BindServiceReply.IMethodInfo>|null} [methods] BindServiceReply methods\n */\n\n /**\n * Constructs a new BindServiceReply.\n * @memberof perfetto.protos.IPCFrame\n * @classdesc Represents a BindServiceReply.\n * @implements IBindServiceReply\n * @constructor\n * @param {perfetto.protos.IPCFrame.IBindServiceReply=} [properties] Properties to set\n */\n function BindServiceReply(properties) {\n this.methods = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * BindServiceReply success.\n * @member {boolean} success\n * @memberof perfetto.protos.IPCFrame.BindServiceReply\n * @instance\n */\n BindServiceReply.prototype.success = false;\n\n /**\n * BindServiceReply serviceId.\n * @member {number} serviceId\n * @memberof perfetto.protos.IPCFrame.BindServiceReply\n * @instance\n */\n BindServiceReply.prototype.serviceId = 0;\n\n /**\n * BindServiceReply methods.\n * @member {Array.<perfetto.protos.IPCFrame.BindServiceReply.IMethodInfo>} methods\n * @memberof perfetto.protos.IPCFrame.BindServiceReply\n * @instance\n */\n BindServiceReply.prototype.methods = $util.emptyArray;\n\n /**\n * Creates a new BindServiceReply instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.IPCFrame.BindServiceReply\n * @static\n * @param {perfetto.protos.IPCFrame.IBindServiceReply=} [properties] Properties to set\n * @returns {perfetto.protos.IPCFrame.BindServiceReply} BindServiceReply instance\n */\n BindServiceReply.create = function create(properties) {\n return new BindServiceReply(properties);\n };\n\n /**\n * Encodes the specified BindServiceReply message. Does not implicitly {@link perfetto.protos.IPCFrame.BindServiceReply.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.IPCFrame.BindServiceReply\n * @static\n * @param {perfetto.protos.IPCFrame.IBindServiceReply} message BindServiceReply message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n BindServiceReply.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.success != null && Object.hasOwnProperty.call(message, \"success\"))\n writer.uint32(/* id 1, wireType 0 =*/8).bool(message.success);\n if (message.serviceId != null && Object.hasOwnProperty.call(message, \"serviceId\"))\n writer.uint32(/* id 2, wireType 0 =*/16).uint32(message.serviceId);\n if (message.methods != null && message.methods.length)\n for (var i = 0; i < message.methods.length; ++i)\n $root.perfetto.protos.IPCFrame.BindServiceReply.MethodInfo.encode(message.methods[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified BindServiceReply message, length delimited. Does not implicitly {@link perfetto.protos.IPCFrame.BindServiceReply.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.IPCFrame.BindServiceReply\n * @static\n * @param {perfetto.protos.IPCFrame.IBindServiceReply} message BindServiceReply message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n BindServiceReply.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a BindServiceReply message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.IPCFrame.BindServiceReply\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.IPCFrame.BindServiceReply} BindServiceReply\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n BindServiceReply.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.IPCFrame.BindServiceReply();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.success = reader.bool();\n break;\n case 2:\n message.serviceId = reader.uint32();\n break;\n case 3:\n if (!(message.methods && message.methods.length))\n message.methods = [];\n message.methods.push($root.perfetto.protos.IPCFrame.BindServiceReply.MethodInfo.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a BindServiceReply message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.IPCFrame.BindServiceReply\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.IPCFrame.BindServiceReply} BindServiceReply\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n BindServiceReply.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a BindServiceReply message.\n * @function verify\n * @memberof perfetto.protos.IPCFrame.BindServiceReply\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n BindServiceReply.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.success != null && message.hasOwnProperty(\"success\"))\n if (typeof message.success !== \"boolean\")\n return \"success: boolean expected\";\n if (message.serviceId != null && message.hasOwnProperty(\"serviceId\"))\n if (!$util.isInteger(message.serviceId))\n return \"serviceId: integer expected\";\n if (message.methods != null && message.hasOwnProperty(\"methods\")) {\n if (!Array.isArray(message.methods))\n return \"methods: array expected\";\n for (var i = 0; i < message.methods.length; ++i) {\n var error = $root.perfetto.protos.IPCFrame.BindServiceReply.MethodInfo.verify(message.methods[i]);\n if (error)\n return \"methods.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates a BindServiceReply message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.IPCFrame.BindServiceReply\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.IPCFrame.BindServiceReply} BindServiceReply\n */\n BindServiceReply.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.IPCFrame.BindServiceReply)\n return object;\n var message = new $root.perfetto.protos.IPCFrame.BindServiceReply();\n if (object.success != null)\n message.success = Boolean(object.success);\n if (object.serviceId != null)\n message.serviceId = object.serviceId >>> 0;\n if (object.methods) {\n if (!Array.isArray(object.methods))\n throw TypeError(\".perfetto.protos.IPCFrame.BindServiceReply.methods: array expected\");\n message.methods = [];\n for (var i = 0; i < object.methods.length; ++i) {\n if (typeof object.methods[i] !== \"object\")\n throw TypeError(\".perfetto.protos.IPCFrame.BindServiceReply.methods: object expected\");\n message.methods[i] = $root.perfetto.protos.IPCFrame.BindServiceReply.MethodInfo.fromObject(object.methods[i]);\n }\n }\n return message;\n };\n\n /**\n * Creates a plain object from a BindServiceReply message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.IPCFrame.BindServiceReply\n * @static\n * @param {perfetto.protos.IPCFrame.BindServiceReply} message BindServiceReply\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n BindServiceReply.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.methods = [];\n if (options.defaults) {\n object.success = false;\n object.serviceId = 0;\n }\n if (message.success != null && message.hasOwnProperty(\"success\"))\n object.success = message.success;\n if (message.serviceId != null && message.hasOwnProperty(\"serviceId\"))\n object.serviceId = message.serviceId;\n if (message.methods && message.methods.length) {\n object.methods = [];\n for (var j = 0; j < message.methods.length; ++j)\n object.methods[j] = $root.perfetto.protos.IPCFrame.BindServiceReply.MethodInfo.toObject(message.methods[j], options);\n }\n return object;\n };\n\n /**\n * Converts this BindServiceReply to JSON.\n * @function toJSON\n * @memberof perfetto.protos.IPCFrame.BindServiceReply\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n BindServiceReply.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n BindServiceReply.MethodInfo = (function() {\n\n /**\n * Properties of a MethodInfo.\n * @memberof perfetto.protos.IPCFrame.BindServiceReply\n * @interface IMethodInfo\n * @property {number|null} [id] MethodInfo id\n * @property {string|null} [name] MethodInfo name\n */\n\n /**\n * Constructs a new MethodInfo.\n * @memberof perfetto.protos.IPCFrame.BindServiceReply\n * @classdesc Represents a MethodInfo.\n * @implements IMethodInfo\n * @constructor\n * @param {perfetto.protos.IPCFrame.BindServiceReply.IMethodInfo=} [properties] Properties to set\n */\n function MethodInfo(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * MethodInfo id.\n * @member {number} id\n * @memberof perfetto.protos.IPCFrame.BindServiceReply.MethodInfo\n * @instance\n */\n MethodInfo.prototype.id = 0;\n\n /**\n * MethodInfo name.\n * @member {string} name\n * @memberof perfetto.protos.IPCFrame.BindServiceReply.MethodInfo\n * @instance\n */\n MethodInfo.prototype.name = \"\";\n\n /**\n * Creates a new MethodInfo instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.IPCFrame.BindServiceReply.MethodInfo\n * @static\n * @param {perfetto.protos.IPCFrame.BindServiceReply.IMethodInfo=} [properties] Properties to set\n * @returns {perfetto.protos.IPCFrame.BindServiceReply.MethodInfo} MethodInfo instance\n */\n MethodInfo.create = function create(properties) {\n return new MethodInfo(properties);\n };\n\n /**\n * Encodes the specified MethodInfo message. Does not implicitly {@link perfetto.protos.IPCFrame.BindServiceReply.MethodInfo.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.IPCFrame.BindServiceReply.MethodInfo\n * @static\n * @param {perfetto.protos.IPCFrame.BindServiceReply.IMethodInfo} message MethodInfo message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n MethodInfo.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.id != null && Object.hasOwnProperty.call(message, \"id\"))\n writer.uint32(/* id 1, wireType 0 =*/8).uint32(message.id);\n if (message.name != null && Object.hasOwnProperty.call(message, \"name\"))\n writer.uint32(/* id 2, wireType 2 =*/18).string(message.name);\n return writer;\n };\n\n /**\n * Encodes the specified MethodInfo message, length delimited. Does not implicitly {@link perfetto.protos.IPCFrame.BindServiceReply.MethodInfo.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.IPCFrame.BindServiceReply.MethodInfo\n * @static\n * @param {perfetto.protos.IPCFrame.BindServiceReply.IMethodInfo} message MethodInfo message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n MethodInfo.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a MethodInfo message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.IPCFrame.BindServiceReply.MethodInfo\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.IPCFrame.BindServiceReply.MethodInfo} MethodInfo\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n MethodInfo.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.IPCFrame.BindServiceReply.MethodInfo();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.id = reader.uint32();\n break;\n case 2:\n message.name = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a MethodInfo message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.IPCFrame.BindServiceReply.MethodInfo\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.IPCFrame.BindServiceReply.MethodInfo} MethodInfo\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n MethodInfo.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a MethodInfo message.\n * @function verify\n * @memberof perfetto.protos.IPCFrame.BindServiceReply.MethodInfo\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n MethodInfo.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.id != null && message.hasOwnProperty(\"id\"))\n if (!$util.isInteger(message.id))\n return \"id: integer expected\";\n if (message.name != null && message.hasOwnProperty(\"name\"))\n if (!$util.isString(message.name))\n return \"name: string expected\";\n return null;\n };\n\n /**\n * Creates a MethodInfo message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.IPCFrame.BindServiceReply.MethodInfo\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.IPCFrame.BindServiceReply.MethodInfo} MethodInfo\n */\n MethodInfo.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.IPCFrame.BindServiceReply.MethodInfo)\n return object;\n var message = new $root.perfetto.protos.IPCFrame.BindServiceReply.MethodInfo();\n if (object.id != null)\n message.id = object.id >>> 0;\n if (object.name != null)\n message.name = String(object.name);\n return message;\n };\n\n /**\n * Creates a plain object from a MethodInfo message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.IPCFrame.BindServiceReply.MethodInfo\n * @static\n * @param {perfetto.protos.IPCFrame.BindServiceReply.MethodInfo} message MethodInfo\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n MethodInfo.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.id = 0;\n object.name = \"\";\n }\n if (message.id != null && message.hasOwnProperty(\"id\"))\n object.id = message.id;\n if (message.name != null && message.hasOwnProperty(\"name\"))\n object.name = message.name;\n return object;\n };\n\n /**\n * Converts this MethodInfo to JSON.\n * @function toJSON\n * @memberof perfetto.protos.IPCFrame.BindServiceReply.MethodInfo\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n MethodInfo.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return MethodInfo;\n })();\n\n return BindServiceReply;\n })();\n\n IPCFrame.InvokeMethod = (function() {\n\n /**\n * Properties of an InvokeMethod.\n * @memberof perfetto.protos.IPCFrame\n * @interface IInvokeMethod\n * @property {number|null} [serviceId] InvokeMethod serviceId\n * @property {number|null} [methodId] InvokeMethod methodId\n * @property {Uint8Array|null} [argsProto] InvokeMethod argsProto\n * @property {boolean|null} [dropReply] InvokeMethod dropReply\n */\n\n /**\n * Constructs a new InvokeMethod.\n * @memberof perfetto.protos.IPCFrame\n * @classdesc Represents an InvokeMethod.\n * @implements IInvokeMethod\n * @constructor\n * @param {perfetto.protos.IPCFrame.IInvokeMethod=} [properties] Properties to set\n */\n function InvokeMethod(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * InvokeMethod serviceId.\n * @member {number} serviceId\n * @memberof perfetto.protos.IPCFrame.InvokeMethod\n * @instance\n */\n InvokeMethod.prototype.serviceId = 0;\n\n /**\n * InvokeMethod methodId.\n * @member {number} methodId\n * @memberof perfetto.protos.IPCFrame.InvokeMethod\n * @instance\n */\n InvokeMethod.prototype.methodId = 0;\n\n /**\n * InvokeMethod argsProto.\n * @member {Uint8Array} argsProto\n * @memberof perfetto.protos.IPCFrame.InvokeMethod\n * @instance\n */\n InvokeMethod.prototype.argsProto = $util.newBuffer([]);\n\n /**\n * InvokeMethod dropReply.\n * @member {boolean} dropReply\n * @memberof perfetto.protos.IPCFrame.InvokeMethod\n * @instance\n */\n InvokeMethod.prototype.dropReply = false;\n\n /**\n * Creates a new InvokeMethod instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.IPCFrame.InvokeMethod\n * @static\n * @param {perfetto.protos.IPCFrame.IInvokeMethod=} [properties] Properties to set\n * @returns {perfetto.protos.IPCFrame.InvokeMethod} InvokeMethod instance\n */\n InvokeMethod.create = function create(properties) {\n return new InvokeMethod(properties);\n };\n\n /**\n * Encodes the specified InvokeMethod message. Does not implicitly {@link perfetto.protos.IPCFrame.InvokeMethod.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.IPCFrame.InvokeMethod\n * @static\n * @param {perfetto.protos.IPCFrame.IInvokeMethod} message InvokeMethod message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n InvokeMethod.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.serviceId != null && Object.hasOwnProperty.call(message, \"serviceId\"))\n writer.uint32(/* id 1, wireType 0 =*/8).uint32(message.serviceId);\n if (message.methodId != null && Object.hasOwnProperty.call(message, \"methodId\"))\n writer.uint32(/* id 2, wireType 0 =*/16).uint32(message.methodId);\n if (message.argsProto != null && Object.hasOwnProperty.call(message, \"argsProto\"))\n writer.uint32(/* id 3, wireType 2 =*/26).bytes(message.argsProto);\n if (message.dropReply != null && Object.hasOwnProperty.call(message, \"dropReply\"))\n writer.uint32(/* id 4, wireType 0 =*/32).bool(message.dropReply);\n return writer;\n };\n\n /**\n * Encodes the specified InvokeMethod message, length delimited. Does not implicitly {@link perfetto.protos.IPCFrame.InvokeMethod.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.IPCFrame.InvokeMethod\n * @static\n * @param {perfetto.protos.IPCFrame.IInvokeMethod} message InvokeMethod message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n InvokeMethod.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes an InvokeMethod message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.IPCFrame.InvokeMethod\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.IPCFrame.InvokeMethod} InvokeMethod\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n InvokeMethod.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.IPCFrame.InvokeMethod();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.serviceId = reader.uint32();\n break;\n case 2:\n message.methodId = reader.uint32();\n break;\n case 3:\n message.argsProto = reader.bytes();\n break;\n case 4:\n message.dropReply = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes an InvokeMethod message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.IPCFrame.InvokeMethod\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.IPCFrame.InvokeMethod} InvokeMethod\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n InvokeMethod.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies an InvokeMethod message.\n * @function verify\n * @memberof perfetto.protos.IPCFrame.InvokeMethod\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n InvokeMethod.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.serviceId != null && message.hasOwnProperty(\"serviceId\"))\n if (!$util.isInteger(message.serviceId))\n return \"serviceId: integer expected\";\n if (message.methodId != null && message.hasOwnProperty(\"methodId\"))\n if (!$util.isInteger(message.methodId))\n return \"methodId: integer expected\";\n if (message.argsProto != null && message.hasOwnProperty(\"argsProto\"))\n if (!(message.argsProto && typeof message.argsProto.length === \"number\" || $util.isString(message.argsProto)))\n return \"argsProto: buffer expected\";\n if (message.dropReply != null && message.hasOwnProperty(\"dropReply\"))\n if (typeof message.dropReply !== \"boolean\")\n return \"dropReply: boolean expected\";\n return null;\n };\n\n /**\n * Creates an InvokeMethod message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.IPCFrame.InvokeMethod\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.IPCFrame.InvokeMethod} InvokeMethod\n */\n InvokeMethod.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.IPCFrame.InvokeMethod)\n return object;\n var message = new $root.perfetto.protos.IPCFrame.InvokeMethod();\n if (object.serviceId != null)\n message.serviceId = object.serviceId >>> 0;\n if (object.methodId != null)\n message.methodId = object.methodId >>> 0;\n if (object.argsProto != null)\n if (typeof object.argsProto === \"string\")\n $util.base64.decode(object.argsProto, message.argsProto = $util.newBuffer($util.base64.length(object.argsProto)), 0);\n else if (object.argsProto.length)\n message.argsProto = object.argsProto;\n if (object.dropReply != null)\n message.dropReply = Boolean(object.dropReply);\n return message;\n };\n\n /**\n * Creates a plain object from an InvokeMethod message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.IPCFrame.InvokeMethod\n * @static\n * @param {perfetto.protos.IPCFrame.InvokeMethod} message InvokeMethod\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n InvokeMethod.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.serviceId = 0;\n object.methodId = 0;\n if (options.bytes === String)\n object.argsProto = \"\";\n else {\n object.argsProto = [];\n if (options.bytes !== Array)\n object.argsProto = $util.newBuffer(object.argsProto);\n }\n object.dropReply = false;\n }\n if (message.serviceId != null && message.hasOwnProperty(\"serviceId\"))\n object.serviceId = message.serviceId;\n if (message.methodId != null && message.hasOwnProperty(\"methodId\"))\n object.methodId = message.methodId;\n if (message.argsProto != null && message.hasOwnProperty(\"argsProto\"))\n object.argsProto = options.bytes === String ? $util.base64.encode(message.argsProto, 0, message.argsProto.length) : options.bytes === Array ? Array.prototype.slice.call(message.argsProto) : message.argsProto;\n if (message.dropReply != null && message.hasOwnProperty(\"dropReply\"))\n object.dropReply = message.dropReply;\n return object;\n };\n\n /**\n * Converts this InvokeMethod to JSON.\n * @function toJSON\n * @memberof perfetto.protos.IPCFrame.InvokeMethod\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n InvokeMethod.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return InvokeMethod;\n })();\n\n IPCFrame.InvokeMethodReply = (function() {\n\n /**\n * Properties of an InvokeMethodReply.\n * @memberof perfetto.protos.IPCFrame\n * @interface IInvokeMethodReply\n * @property {boolean|null} [success] InvokeMethodReply success\n * @property {boolean|null} [hasMore] InvokeMethodReply hasMore\n * @property {Uint8Array|null} [replyProto] InvokeMethodReply replyProto\n */\n\n /**\n * Constructs a new InvokeMethodReply.\n * @memberof perfetto.protos.IPCFrame\n * @classdesc Represents an InvokeMethodReply.\n * @implements IInvokeMethodReply\n * @constructor\n * @param {perfetto.protos.IPCFrame.IInvokeMethodReply=} [properties] Properties to set\n */\n function InvokeMethodReply(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * InvokeMethodReply success.\n * @member {boolean} success\n * @memberof perfetto.protos.IPCFrame.InvokeMethodReply\n * @instance\n */\n InvokeMethodReply.prototype.success = false;\n\n /**\n * InvokeMethodReply hasMore.\n * @member {boolean} hasMore\n * @memberof perfetto.protos.IPCFrame.InvokeMethodReply\n * @instance\n */\n InvokeMethodReply.prototype.hasMore = false;\n\n /**\n * InvokeMethodReply replyProto.\n * @member {Uint8Array} replyProto\n * @memberof perfetto.protos.IPCFrame.InvokeMethodReply\n * @instance\n */\n InvokeMethodReply.prototype.replyProto = $util.newBuffer([]);\n\n /**\n * Creates a new InvokeMethodReply instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.IPCFrame.InvokeMethodReply\n * @static\n * @param {perfetto.protos.IPCFrame.IInvokeMethodReply=} [properties] Properties to set\n * @returns {perfetto.protos.IPCFrame.InvokeMethodReply} InvokeMethodReply instance\n */\n InvokeMethodReply.create = function create(properties) {\n return new InvokeMethodReply(properties);\n };\n\n /**\n * Encodes the specified InvokeMethodReply message. Does not implicitly {@link perfetto.protos.IPCFrame.InvokeMethodReply.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.IPCFrame.InvokeMethodReply\n * @static\n * @param {perfetto.protos.IPCFrame.IInvokeMethodReply} message InvokeMethodReply message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n InvokeMethodReply.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.success != null && Object.hasOwnProperty.call(message, \"success\"))\n writer.uint32(/* id 1, wireType 0 =*/8).bool(message.success);\n if (message.hasMore != null && Object.hasOwnProperty.call(message, \"hasMore\"))\n writer.uint32(/* id 2, wireType 0 =*/16).bool(message.hasMore);\n if (message.replyProto != null && Object.hasOwnProperty.call(message, \"replyProto\"))\n writer.uint32(/* id 3, wireType 2 =*/26).bytes(message.replyProto);\n return writer;\n };\n\n /**\n * Encodes the specified InvokeMethodReply message, length delimited. Does not implicitly {@link perfetto.protos.IPCFrame.InvokeMethodReply.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.IPCFrame.InvokeMethodReply\n * @static\n * @param {perfetto.protos.IPCFrame.IInvokeMethodReply} message InvokeMethodReply message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n InvokeMethodReply.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes an InvokeMethodReply message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.IPCFrame.InvokeMethodReply\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.IPCFrame.InvokeMethodReply} InvokeMethodReply\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n InvokeMethodReply.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.IPCFrame.InvokeMethodReply();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.success = reader.bool();\n break;\n case 2:\n message.hasMore = reader.bool();\n break;\n case 3:\n message.replyProto = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes an InvokeMethodReply message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.IPCFrame.InvokeMethodReply\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.IPCFrame.InvokeMethodReply} InvokeMethodReply\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n InvokeMethodReply.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies an InvokeMethodReply message.\n * @function verify\n * @memberof perfetto.protos.IPCFrame.InvokeMethodReply\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n InvokeMethodReply.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.success != null && message.hasOwnProperty(\"success\"))\n if (typeof message.success !== \"boolean\")\n return \"success: boolean expected\";\n if (message.hasMore != null && message.hasOwnProperty(\"hasMore\"))\n if (typeof message.hasMore !== \"boolean\")\n return \"hasMore: boolean expected\";\n if (message.replyProto != null && message.hasOwnProperty(\"replyProto\"))\n if (!(message.replyProto && typeof message.replyProto.length === \"number\" || $util.isString(message.replyProto)))\n return \"replyProto: buffer expected\";\n return null;\n };\n\n /**\n * Creates an InvokeMethodReply message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.IPCFrame.InvokeMethodReply\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.IPCFrame.InvokeMethodReply} InvokeMethodReply\n */\n InvokeMethodReply.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.IPCFrame.InvokeMethodReply)\n return object;\n var message = new $root.perfetto.protos.IPCFrame.InvokeMethodReply();\n if (object.success != null)\n message.success = Boolean(object.success);\n if (object.hasMore != null)\n message.hasMore = Boolean(object.hasMore);\n if (object.replyProto != null)\n if (typeof object.replyProto === \"string\")\n $util.base64.decode(object.replyProto, message.replyProto = $util.newBuffer($util.base64.length(object.replyProto)), 0);\n else if (object.replyProto.length)\n message.replyProto = object.replyProto;\n return message;\n };\n\n /**\n * Creates a plain object from an InvokeMethodReply message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.IPCFrame.InvokeMethodReply\n * @static\n * @param {perfetto.protos.IPCFrame.InvokeMethodReply} message InvokeMethodReply\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n InvokeMethodReply.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.success = false;\n object.hasMore = false;\n if (options.bytes === String)\n object.replyProto = \"\";\n else {\n object.replyProto = [];\n if (options.bytes !== Array)\n object.replyProto = $util.newBuffer(object.replyProto);\n }\n }\n if (message.success != null && message.hasOwnProperty(\"success\"))\n object.success = message.success;\n if (message.hasMore != null && message.hasOwnProperty(\"hasMore\"))\n object.hasMore = message.hasMore;\n if (message.replyProto != null && message.hasOwnProperty(\"replyProto\"))\n object.replyProto = options.bytes === String ? $util.base64.encode(message.replyProto, 0, message.replyProto.length) : options.bytes === Array ? Array.prototype.slice.call(message.replyProto) : message.replyProto;\n return object;\n };\n\n /**\n * Converts this InvokeMethodReply to JSON.\n * @function toJSON\n * @memberof perfetto.protos.IPCFrame.InvokeMethodReply\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n InvokeMethodReply.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return InvokeMethodReply;\n })();\n\n IPCFrame.RequestError = (function() {\n\n /**\n * Properties of a RequestError.\n * @memberof perfetto.protos.IPCFrame\n * @interface IRequestError\n * @property {string|null} [error] RequestError error\n */\n\n /**\n * Constructs a new RequestError.\n * @memberof perfetto.protos.IPCFrame\n * @classdesc Represents a RequestError.\n * @implements IRequestError\n * @constructor\n * @param {perfetto.protos.IPCFrame.IRequestError=} [properties] Properties to set\n */\n function RequestError(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * RequestError error.\n * @member {string} error\n * @memberof perfetto.protos.IPCFrame.RequestError\n * @instance\n */\n RequestError.prototype.error = \"\";\n\n /**\n * Creates a new RequestError instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.IPCFrame.RequestError\n * @static\n * @param {perfetto.protos.IPCFrame.IRequestError=} [properties] Properties to set\n * @returns {perfetto.protos.IPCFrame.RequestError} RequestError instance\n */\n RequestError.create = function create(properties) {\n return new RequestError(properties);\n };\n\n /**\n * Encodes the specified RequestError message. Does not implicitly {@link perfetto.protos.IPCFrame.RequestError.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.IPCFrame.RequestError\n * @static\n * @param {perfetto.protos.IPCFrame.IRequestError} message RequestError message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n RequestError.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.error != null && Object.hasOwnProperty.call(message, \"error\"))\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.error);\n return writer;\n };\n\n /**\n * Encodes the specified RequestError message, length delimited. Does not implicitly {@link perfetto.protos.IPCFrame.RequestError.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.IPCFrame.RequestError\n * @static\n * @param {perfetto.protos.IPCFrame.IRequestError} message RequestError message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n RequestError.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a RequestError message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.IPCFrame.RequestError\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.IPCFrame.RequestError} RequestError\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n RequestError.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.IPCFrame.RequestError();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.error = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a RequestError message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.IPCFrame.RequestError\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.IPCFrame.RequestError} RequestError\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n RequestError.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a RequestError message.\n * @function verify\n * @memberof perfetto.protos.IPCFrame.RequestError\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n RequestError.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.error != null && message.hasOwnProperty(\"error\"))\n if (!$util.isString(message.error))\n return \"error: string expected\";\n return null;\n };\n\n /**\n * Creates a RequestError message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.IPCFrame.RequestError\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.IPCFrame.RequestError} RequestError\n */\n RequestError.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.IPCFrame.RequestError)\n return object;\n var message = new $root.perfetto.protos.IPCFrame.RequestError();\n if (object.error != null)\n message.error = String(object.error);\n return message;\n };\n\n /**\n * Creates a plain object from a RequestError message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.IPCFrame.RequestError\n * @static\n * @param {perfetto.protos.IPCFrame.RequestError} message RequestError\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n RequestError.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults)\n object.error = \"\";\n if (message.error != null && message.hasOwnProperty(\"error\"))\n object.error = message.error;\n return object;\n };\n\n /**\n * Converts this RequestError to JSON.\n * @function toJSON\n * @memberof perfetto.protos.IPCFrame.RequestError\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n RequestError.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return RequestError;\n })();\n\n return IPCFrame;\n })();\n\n protos.TraceMetadata = (function() {\n\n /**\n * Properties of a TraceMetadata.\n * @memberof perfetto.protos\n * @interface ITraceMetadata\n * @property {number|null} [traceDurationNs] TraceMetadata traceDurationNs\n * @property {string|null} [traceUuid] TraceMetadata traceUuid\n * @property {string|null} [androidBuildFingerprint] TraceMetadata androidBuildFingerprint\n * @property {number|null} [statsdTriggeringSubscriptionId] TraceMetadata statsdTriggeringSubscriptionId\n * @property {number|null} [traceSizeBytes] TraceMetadata traceSizeBytes\n * @property {Array.<string>|null} [traceTrigger] TraceMetadata traceTrigger\n * @property {string|null} [uniqueSessionName] TraceMetadata uniqueSessionName\n * @property {string|null} [traceConfigPbtxt] TraceMetadata traceConfigPbtxt\n * @property {number|null} [schedDurationNs] TraceMetadata schedDurationNs\n */\n\n /**\n * Constructs a new TraceMetadata.\n * @memberof perfetto.protos\n * @classdesc Represents a TraceMetadata.\n * @implements ITraceMetadata\n * @constructor\n * @param {perfetto.protos.ITraceMetadata=} [properties] Properties to set\n */\n function TraceMetadata(properties) {\n this.traceTrigger = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * TraceMetadata traceDurationNs.\n * @member {number} traceDurationNs\n * @memberof perfetto.protos.TraceMetadata\n * @instance\n */\n TraceMetadata.prototype.traceDurationNs = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * TraceMetadata traceUuid.\n * @member {string} traceUuid\n * @memberof perfetto.protos.TraceMetadata\n * @instance\n */\n TraceMetadata.prototype.traceUuid = \"\";\n\n /**\n * TraceMetadata androidBuildFingerprint.\n * @member {string} androidBuildFingerprint\n * @memberof perfetto.protos.TraceMetadata\n * @instance\n */\n TraceMetadata.prototype.androidBuildFingerprint = \"\";\n\n /**\n * TraceMetadata statsdTriggeringSubscriptionId.\n * @member {number} statsdTriggeringSubscriptionId\n * @memberof perfetto.protos.TraceMetadata\n * @instance\n */\n TraceMetadata.prototype.statsdTriggeringSubscriptionId = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * TraceMetadata traceSizeBytes.\n * @member {number} traceSizeBytes\n * @memberof perfetto.protos.TraceMetadata\n * @instance\n */\n TraceMetadata.prototype.traceSizeBytes = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * TraceMetadata traceTrigger.\n * @member {Array.<string>} traceTrigger\n * @memberof perfetto.protos.TraceMetadata\n * @instance\n */\n TraceMetadata.prototype.traceTrigger = $util.emptyArray;\n\n /**\n * TraceMetadata uniqueSessionName.\n * @member {string} uniqueSessionName\n * @memberof perfetto.protos.TraceMetadata\n * @instance\n */\n TraceMetadata.prototype.uniqueSessionName = \"\";\n\n /**\n * TraceMetadata traceConfigPbtxt.\n * @member {string} traceConfigPbtxt\n * @memberof perfetto.protos.TraceMetadata\n * @instance\n */\n TraceMetadata.prototype.traceConfigPbtxt = \"\";\n\n /**\n * TraceMetadata schedDurationNs.\n * @member {number} schedDurationNs\n * @memberof perfetto.protos.TraceMetadata\n * @instance\n */\n TraceMetadata.prototype.schedDurationNs = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * Creates a new TraceMetadata instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.TraceMetadata\n * @static\n * @param {perfetto.protos.ITraceMetadata=} [properties] Properties to set\n * @returns {perfetto.protos.TraceMetadata} TraceMetadata instance\n */\n TraceMetadata.create = function create(properties) {\n return new TraceMetadata(properties);\n };\n\n /**\n * Encodes the specified TraceMetadata message. Does not implicitly {@link perfetto.protos.TraceMetadata.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.TraceMetadata\n * @static\n * @param {perfetto.protos.ITraceMetadata} message TraceMetadata message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n TraceMetadata.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.traceDurationNs != null && Object.hasOwnProperty.call(message, \"traceDurationNs\"))\n writer.uint32(/* id 2, wireType 0 =*/16).int64(message.traceDurationNs);\n if (message.traceUuid != null && Object.hasOwnProperty.call(message, \"traceUuid\"))\n writer.uint32(/* id 3, wireType 2 =*/26).string(message.traceUuid);\n if (message.androidBuildFingerprint != null && Object.hasOwnProperty.call(message, \"androidBuildFingerprint\"))\n writer.uint32(/* id 4, wireType 2 =*/34).string(message.androidBuildFingerprint);\n if (message.statsdTriggeringSubscriptionId != null && Object.hasOwnProperty.call(message, \"statsdTriggeringSubscriptionId\"))\n writer.uint32(/* id 5, wireType 0 =*/40).int64(message.statsdTriggeringSubscriptionId);\n if (message.traceSizeBytes != null && Object.hasOwnProperty.call(message, \"traceSizeBytes\"))\n writer.uint32(/* id 6, wireType 0 =*/48).int64(message.traceSizeBytes);\n if (message.traceTrigger != null && message.traceTrigger.length)\n for (var i = 0; i < message.traceTrigger.length; ++i)\n writer.uint32(/* id 7, wireType 2 =*/58).string(message.traceTrigger[i]);\n if (message.uniqueSessionName != null && Object.hasOwnProperty.call(message, \"uniqueSessionName\"))\n writer.uint32(/* id 8, wireType 2 =*/66).string(message.uniqueSessionName);\n if (message.traceConfigPbtxt != null && Object.hasOwnProperty.call(message, \"traceConfigPbtxt\"))\n writer.uint32(/* id 9, wireType 2 =*/74).string(message.traceConfigPbtxt);\n if (message.schedDurationNs != null && Object.hasOwnProperty.call(message, \"schedDurationNs\"))\n writer.uint32(/* id 10, wireType 0 =*/80).int64(message.schedDurationNs);\n return writer;\n };\n\n /**\n * Encodes the specified TraceMetadata message, length delimited. Does not implicitly {@link perfetto.protos.TraceMetadata.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.TraceMetadata\n * @static\n * @param {perfetto.protos.ITraceMetadata} message TraceMetadata message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n TraceMetadata.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a TraceMetadata message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.TraceMetadata\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.TraceMetadata} TraceMetadata\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n TraceMetadata.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.TraceMetadata();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 2:\n message.traceDurationNs = reader.int64();\n break;\n case 3:\n message.traceUuid = reader.string();\n break;\n case 4:\n message.androidBuildFingerprint = reader.string();\n break;\n case 5:\n message.statsdTriggeringSubscriptionId = reader.int64();\n break;\n case 6:\n message.traceSizeBytes = reader.int64();\n break;\n case 7:\n if (!(message.traceTrigger && message.traceTrigger.length))\n message.traceTrigger = [];\n message.traceTrigger.push(reader.string());\n break;\n case 8:\n message.uniqueSessionName = reader.string();\n break;\n case 9:\n message.traceConfigPbtxt = reader.string();\n break;\n case 10:\n message.schedDurationNs = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a TraceMetadata message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.TraceMetadata\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.TraceMetadata} TraceMetadata\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n TraceMetadata.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a TraceMetadata message.\n * @function verify\n * @memberof perfetto.protos.TraceMetadata\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n TraceMetadata.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.traceDurationNs != null && message.hasOwnProperty(\"traceDurationNs\"))\n if (!$util.isInteger(message.traceDurationNs) && !(message.traceDurationNs && $util.isInteger(message.traceDurationNs.low) && $util.isInteger(message.traceDurationNs.high)))\n return \"traceDurationNs: integer|Long expected\";\n if (message.traceUuid != null && message.hasOwnProperty(\"traceUuid\"))\n if (!$util.isString(message.traceUuid))\n return \"traceUuid: string expected\";\n if (message.androidBuildFingerprint != null && message.hasOwnProperty(\"androidBuildFingerprint\"))\n if (!$util.isString(message.androidBuildFingerprint))\n return \"androidBuildFingerprint: string expected\";\n if (message.statsdTriggeringSubscriptionId != null && message.hasOwnProperty(\"statsdTriggeringSubscriptionId\"))\n if (!$util.isInteger(message.statsdTriggeringSubscriptionId) && !(message.statsdTriggeringSubscriptionId && $util.isInteger(message.statsdTriggeringSubscriptionId.low) && $util.isInteger(message.statsdTriggeringSubscriptionId.high)))\n return \"statsdTriggeringSubscriptionId: integer|Long expected\";\n if (message.traceSizeBytes != null && message.hasOwnProperty(\"traceSizeBytes\"))\n if (!$util.isInteger(message.traceSizeBytes) && !(message.traceSizeBytes && $util.isInteger(message.traceSizeBytes.low) && $util.isInteger(message.traceSizeBytes.high)))\n return \"traceSizeBytes: integer|Long expected\";\n if (message.traceTrigger != null && message.hasOwnProperty(\"traceTrigger\")) {\n if (!Array.isArray(message.traceTrigger))\n return \"traceTrigger: array expected\";\n for (var i = 0; i < message.traceTrigger.length; ++i)\n if (!$util.isString(message.traceTrigger[i]))\n return \"traceTrigger: string[] expected\";\n }\n if (message.uniqueSessionName != null && message.hasOwnProperty(\"uniqueSessionName\"))\n if (!$util.isString(message.uniqueSessionName))\n return \"uniqueSessionName: string expected\";\n if (message.traceConfigPbtxt != null && message.hasOwnProperty(\"traceConfigPbtxt\"))\n if (!$util.isString(message.traceConfigPbtxt))\n return \"traceConfigPbtxt: string expected\";\n if (message.schedDurationNs != null && message.hasOwnProperty(\"schedDurationNs\"))\n if (!$util.isInteger(message.schedDurationNs) && !(message.schedDurationNs && $util.isInteger(message.schedDurationNs.low) && $util.isInteger(message.schedDurationNs.high)))\n return \"schedDurationNs: integer|Long expected\";\n return null;\n };\n\n /**\n * Creates a TraceMetadata message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.TraceMetadata\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.TraceMetadata} TraceMetadata\n */\n TraceMetadata.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.TraceMetadata)\n return object;\n var message = new $root.perfetto.protos.TraceMetadata();\n if (object.traceDurationNs != null)\n if ($util.Long)\n (message.traceDurationNs = $util.Long.fromValue(object.traceDurationNs)).unsigned = false;\n else if (typeof object.traceDurationNs === \"string\")\n message.traceDurationNs = parseInt(object.traceDurationNs, 10);\n else if (typeof object.traceDurationNs === \"number\")\n message.traceDurationNs = object.traceDurationNs;\n else if (typeof object.traceDurationNs === \"object\")\n message.traceDurationNs = new $util.LongBits(object.traceDurationNs.low >>> 0, object.traceDurationNs.high >>> 0).toNumber();\n if (object.traceUuid != null)\n message.traceUuid = String(object.traceUuid);\n if (object.androidBuildFingerprint != null)\n message.androidBuildFingerprint = String(object.androidBuildFingerprint);\n if (object.statsdTriggeringSubscriptionId != null)\n if ($util.Long)\n (message.statsdTriggeringSubscriptionId = $util.Long.fromValue(object.statsdTriggeringSubscriptionId)).unsigned = false;\n else if (typeof object.statsdTriggeringSubscriptionId === \"string\")\n message.statsdTriggeringSubscriptionId = parseInt(object.statsdTriggeringSubscriptionId, 10);\n else if (typeof object.statsdTriggeringSubscriptionId === \"number\")\n message.statsdTriggeringSubscriptionId = object.statsdTriggeringSubscriptionId;\n else if (typeof object.statsdTriggeringSubscriptionId === \"object\")\n message.statsdTriggeringSubscriptionId = new $util.LongBits(object.statsdTriggeringSubscriptionId.low >>> 0, object.statsdTriggeringSubscriptionId.high >>> 0).toNumber();\n if (object.traceSizeBytes != null)\n if ($util.Long)\n (message.traceSizeBytes = $util.Long.fromValue(object.traceSizeBytes)).unsigned = false;\n else if (typeof object.traceSizeBytes === \"string\")\n message.traceSizeBytes = parseInt(object.traceSizeBytes, 10);\n else if (typeof object.traceSizeBytes === \"number\")\n message.traceSizeBytes = object.traceSizeBytes;\n else if (typeof object.traceSizeBytes === \"object\")\n message.traceSizeBytes = new $util.LongBits(object.traceSizeBytes.low >>> 0, object.traceSizeBytes.high >>> 0).toNumber();\n if (object.traceTrigger) {\n if (!Array.isArray(object.traceTrigger))\n throw TypeError(\".perfetto.protos.TraceMetadata.traceTrigger: array expected\");\n message.traceTrigger = [];\n for (var i = 0; i < object.traceTrigger.length; ++i)\n message.traceTrigger[i] = String(object.traceTrigger[i]);\n }\n if (object.uniqueSessionName != null)\n message.uniqueSessionName = String(object.uniqueSessionName);\n if (object.traceConfigPbtxt != null)\n message.traceConfigPbtxt = String(object.traceConfigPbtxt);\n if (object.schedDurationNs != null)\n if ($util.Long)\n (message.schedDurationNs = $util.Long.fromValue(object.schedDurationNs)).unsigned = false;\n else if (typeof object.schedDurationNs === \"string\")\n message.schedDurationNs = parseInt(object.schedDurationNs, 10);\n else if (typeof object.schedDurationNs === \"number\")\n message.schedDurationNs = object.schedDurationNs;\n else if (typeof object.schedDurationNs === \"object\")\n message.schedDurationNs = new $util.LongBits(object.schedDurationNs.low >>> 0, object.schedDurationNs.high >>> 0).toNumber();\n return message;\n };\n\n /**\n * Creates a plain object from a TraceMetadata message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.TraceMetadata\n * @static\n * @param {perfetto.protos.TraceMetadata} message TraceMetadata\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n TraceMetadata.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.traceTrigger = [];\n if (options.defaults) {\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.traceDurationNs = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.traceDurationNs = options.longs === String ? \"0\" : 0;\n object.traceUuid = \"\";\n object.androidBuildFingerprint = \"\";\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.statsdTriggeringSubscriptionId = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.statsdTriggeringSubscriptionId = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.traceSizeBytes = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.traceSizeBytes = options.longs === String ? \"0\" : 0;\n object.uniqueSessionName = \"\";\n object.traceConfigPbtxt = \"\";\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.schedDurationNs = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.schedDurationNs = options.longs === String ? \"0\" : 0;\n }\n if (message.traceDurationNs != null && message.hasOwnProperty(\"traceDurationNs\"))\n if (typeof message.traceDurationNs === \"number\")\n object.traceDurationNs = options.longs === String ? String(message.traceDurationNs) : message.traceDurationNs;\n else\n object.traceDurationNs = options.longs === String ? $util.Long.prototype.toString.call(message.traceDurationNs) : options.longs === Number ? new $util.LongBits(message.traceDurationNs.low >>> 0, message.traceDurationNs.high >>> 0).toNumber() : message.traceDurationNs;\n if (message.traceUuid != null && message.hasOwnProperty(\"traceUuid\"))\n object.traceUuid = message.traceUuid;\n if (message.androidBuildFingerprint != null && message.hasOwnProperty(\"androidBuildFingerprint\"))\n object.androidBuildFingerprint = message.androidBuildFingerprint;\n if (message.statsdTriggeringSubscriptionId != null && message.hasOwnProperty(\"statsdTriggeringSubscriptionId\"))\n if (typeof message.statsdTriggeringSubscriptionId === \"number\")\n object.statsdTriggeringSubscriptionId = options.longs === String ? String(message.statsdTriggeringSubscriptionId) : message.statsdTriggeringSubscriptionId;\n else\n object.statsdTriggeringSubscriptionId = options.longs === String ? $util.Long.prototype.toString.call(message.statsdTriggeringSubscriptionId) : options.longs === Number ? new $util.LongBits(message.statsdTriggeringSubscriptionId.low >>> 0, message.statsdTriggeringSubscriptionId.high >>> 0).toNumber() : message.statsdTriggeringSubscriptionId;\n if (message.traceSizeBytes != null && message.hasOwnProperty(\"traceSizeBytes\"))\n if (typeof message.traceSizeBytes === \"number\")\n object.traceSizeBytes = options.longs === String ? String(message.traceSizeBytes) : message.traceSizeBytes;\n else\n object.traceSizeBytes = options.longs === String ? $util.Long.prototype.toString.call(message.traceSizeBytes) : options.longs === Number ? new $util.LongBits(message.traceSizeBytes.low >>> 0, message.traceSizeBytes.high >>> 0).toNumber() : message.traceSizeBytes;\n if (message.traceTrigger && message.traceTrigger.length) {\n object.traceTrigger = [];\n for (var j = 0; j < message.traceTrigger.length; ++j)\n object.traceTrigger[j] = message.traceTrigger[j];\n }\n if (message.uniqueSessionName != null && message.hasOwnProperty(\"uniqueSessionName\"))\n object.uniqueSessionName = message.uniqueSessionName;\n if (message.traceConfigPbtxt != null && message.hasOwnProperty(\"traceConfigPbtxt\"))\n object.traceConfigPbtxt = message.traceConfigPbtxt;\n if (message.schedDurationNs != null && message.hasOwnProperty(\"schedDurationNs\"))\n if (typeof message.schedDurationNs === \"number\")\n object.schedDurationNs = options.longs === String ? String(message.schedDurationNs) : message.schedDurationNs;\n else\n object.schedDurationNs = options.longs === String ? $util.Long.prototype.toString.call(message.schedDurationNs) : options.longs === Number ? new $util.LongBits(message.schedDurationNs.low >>> 0, message.schedDurationNs.high >>> 0).toNumber() : message.schedDurationNs;\n return object;\n };\n\n /**\n * Converts this TraceMetadata to JSON.\n * @function toJSON\n * @memberof perfetto.protos.TraceMetadata\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n TraceMetadata.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return TraceMetadata;\n })();\n\n protos.TraceAnalysisStats = (function() {\n\n /**\n * Properties of a TraceAnalysisStats.\n * @memberof perfetto.protos\n * @interface ITraceAnalysisStats\n * @property {Array.<perfetto.protos.TraceAnalysisStats.IStat>|null} [stat] TraceAnalysisStats stat\n */\n\n /**\n * Constructs a new TraceAnalysisStats.\n * @memberof perfetto.protos\n * @classdesc Represents a TraceAnalysisStats.\n * @implements ITraceAnalysisStats\n * @constructor\n * @param {perfetto.protos.ITraceAnalysisStats=} [properties] Properties to set\n */\n function TraceAnalysisStats(properties) {\n this.stat = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * TraceAnalysisStats stat.\n * @member {Array.<perfetto.protos.TraceAnalysisStats.IStat>} stat\n * @memberof perfetto.protos.TraceAnalysisStats\n * @instance\n */\n TraceAnalysisStats.prototype.stat = $util.emptyArray;\n\n /**\n * Creates a new TraceAnalysisStats instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.TraceAnalysisStats\n * @static\n * @param {perfetto.protos.ITraceAnalysisStats=} [properties] Properties to set\n * @returns {perfetto.protos.TraceAnalysisStats} TraceAnalysisStats instance\n */\n TraceAnalysisStats.create = function create(properties) {\n return new TraceAnalysisStats(properties);\n };\n\n /**\n * Encodes the specified TraceAnalysisStats message. Does not implicitly {@link perfetto.protos.TraceAnalysisStats.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.TraceAnalysisStats\n * @static\n * @param {perfetto.protos.ITraceAnalysisStats} message TraceAnalysisStats message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n TraceAnalysisStats.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.stat != null && message.stat.length)\n for (var i = 0; i < message.stat.length; ++i)\n $root.perfetto.protos.TraceAnalysisStats.Stat.encode(message.stat[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified TraceAnalysisStats message, length delimited. Does not implicitly {@link perfetto.protos.TraceAnalysisStats.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.TraceAnalysisStats\n * @static\n * @param {perfetto.protos.ITraceAnalysisStats} message TraceAnalysisStats message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n TraceAnalysisStats.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a TraceAnalysisStats message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.TraceAnalysisStats\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.TraceAnalysisStats} TraceAnalysisStats\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n TraceAnalysisStats.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.TraceAnalysisStats();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (!(message.stat && message.stat.length))\n message.stat = [];\n message.stat.push($root.perfetto.protos.TraceAnalysisStats.Stat.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a TraceAnalysisStats message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.TraceAnalysisStats\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.TraceAnalysisStats} TraceAnalysisStats\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n TraceAnalysisStats.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a TraceAnalysisStats message.\n * @function verify\n * @memberof perfetto.protos.TraceAnalysisStats\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n TraceAnalysisStats.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.stat != null && message.hasOwnProperty(\"stat\")) {\n if (!Array.isArray(message.stat))\n return \"stat: array expected\";\n for (var i = 0; i < message.stat.length; ++i) {\n var error = $root.perfetto.protos.TraceAnalysisStats.Stat.verify(message.stat[i]);\n if (error)\n return \"stat.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates a TraceAnalysisStats message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.TraceAnalysisStats\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.TraceAnalysisStats} TraceAnalysisStats\n */\n TraceAnalysisStats.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.TraceAnalysisStats)\n return object;\n var message = new $root.perfetto.protos.TraceAnalysisStats();\n if (object.stat) {\n if (!Array.isArray(object.stat))\n throw TypeError(\".perfetto.protos.TraceAnalysisStats.stat: array expected\");\n message.stat = [];\n for (var i = 0; i < object.stat.length; ++i) {\n if (typeof object.stat[i] !== \"object\")\n throw TypeError(\".perfetto.protos.TraceAnalysisStats.stat: object expected\");\n message.stat[i] = $root.perfetto.protos.TraceAnalysisStats.Stat.fromObject(object.stat[i]);\n }\n }\n return message;\n };\n\n /**\n * Creates a plain object from a TraceAnalysisStats message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.TraceAnalysisStats\n * @static\n * @param {perfetto.protos.TraceAnalysisStats} message TraceAnalysisStats\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n TraceAnalysisStats.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.stat = [];\n if (message.stat && message.stat.length) {\n object.stat = [];\n for (var j = 0; j < message.stat.length; ++j)\n object.stat[j] = $root.perfetto.protos.TraceAnalysisStats.Stat.toObject(message.stat[j], options);\n }\n return object;\n };\n\n /**\n * Converts this TraceAnalysisStats to JSON.\n * @function toJSON\n * @memberof perfetto.protos.TraceAnalysisStats\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n TraceAnalysisStats.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n /**\n * Severity enum.\n * @name perfetto.protos.TraceAnalysisStats.Severity\n * @enum {number}\n * @property {number} SEVERITY_UNKNOWN=0 SEVERITY_UNKNOWN value\n * @property {number} SEVERITY_INFO=1 SEVERITY_INFO value\n * @property {number} SEVERITY_DATA_LOSS=2 SEVERITY_DATA_LOSS value\n * @property {number} SEVERITY_ERROR=3 SEVERITY_ERROR value\n */\n TraceAnalysisStats.Severity = (function() {\n var valuesById = {}, values = Object.create(valuesById);\n values[valuesById[0] = \"SEVERITY_UNKNOWN\"] = 0;\n values[valuesById[1] = \"SEVERITY_INFO\"] = 1;\n values[valuesById[2] = \"SEVERITY_DATA_LOSS\"] = 2;\n values[valuesById[3] = \"SEVERITY_ERROR\"] = 3;\n return values;\n })();\n\n /**\n * Source enum.\n * @name perfetto.protos.TraceAnalysisStats.Source\n * @enum {number}\n * @property {number} SOURCE_UNKNOWN=0 SOURCE_UNKNOWN value\n * @property {number} SOURCE_TRACE=1 SOURCE_TRACE value\n * @property {number} SOURCE_ANALYSIS=2 SOURCE_ANALYSIS value\n */\n TraceAnalysisStats.Source = (function() {\n var valuesById = {}, values = Object.create(valuesById);\n values[valuesById[0] = \"SOURCE_UNKNOWN\"] = 0;\n values[valuesById[1] = \"SOURCE_TRACE\"] = 1;\n values[valuesById[2] = \"SOURCE_ANALYSIS\"] = 2;\n return values;\n })();\n\n TraceAnalysisStats.Stat = (function() {\n\n /**\n * Properties of a Stat.\n * @memberof perfetto.protos.TraceAnalysisStats\n * @interface IStat\n * @property {string|null} [name] Stat name\n * @property {number|null} [idx] Stat idx\n * @property {perfetto.protos.TraceAnalysisStats.Severity|null} [severity] Stat severity\n * @property {perfetto.protos.TraceAnalysisStats.Source|null} [source] Stat source\n * @property {number|null} [count] Stat count\n */\n\n /**\n * Constructs a new Stat.\n * @memberof perfetto.protos.TraceAnalysisStats\n * @classdesc Represents a Stat.\n * @implements IStat\n * @constructor\n * @param {perfetto.protos.TraceAnalysisStats.IStat=} [properties] Properties to set\n */\n function Stat(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * Stat name.\n * @member {string} name\n * @memberof perfetto.protos.TraceAnalysisStats.Stat\n * @instance\n */\n Stat.prototype.name = \"\";\n\n /**\n * Stat idx.\n * @member {number} idx\n * @memberof perfetto.protos.TraceAnalysisStats.Stat\n * @instance\n */\n Stat.prototype.idx = 0;\n\n /**\n * Stat severity.\n * @member {perfetto.protos.TraceAnalysisStats.Severity} severity\n * @memberof perfetto.protos.TraceAnalysisStats.Stat\n * @instance\n */\n Stat.prototype.severity = 0;\n\n /**\n * Stat source.\n * @member {perfetto.protos.TraceAnalysisStats.Source} source\n * @memberof perfetto.protos.TraceAnalysisStats.Stat\n * @instance\n */\n Stat.prototype.source = 0;\n\n /**\n * Stat count.\n * @member {number} count\n * @memberof perfetto.protos.TraceAnalysisStats.Stat\n * @instance\n */\n Stat.prototype.count = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * Creates a new Stat instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.TraceAnalysisStats.Stat\n * @static\n * @param {perfetto.protos.TraceAnalysisStats.IStat=} [properties] Properties to set\n * @returns {perfetto.protos.TraceAnalysisStats.Stat} Stat instance\n */\n Stat.create = function create(properties) {\n return new Stat(properties);\n };\n\n /**\n * Encodes the specified Stat message. Does not implicitly {@link perfetto.protos.TraceAnalysisStats.Stat.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.TraceAnalysisStats.Stat\n * @static\n * @param {perfetto.protos.TraceAnalysisStats.IStat} message Stat message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Stat.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.name != null && Object.hasOwnProperty.call(message, \"name\"))\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.name);\n if (message.idx != null && Object.hasOwnProperty.call(message, \"idx\"))\n writer.uint32(/* id 2, wireType 0 =*/16).uint32(message.idx);\n if (message.severity != null && Object.hasOwnProperty.call(message, \"severity\"))\n writer.uint32(/* id 3, wireType 0 =*/24).int32(message.severity);\n if (message.source != null && Object.hasOwnProperty.call(message, \"source\"))\n writer.uint32(/* id 4, wireType 0 =*/32).int32(message.source);\n if (message.count != null && Object.hasOwnProperty.call(message, \"count\"))\n writer.uint32(/* id 5, wireType 0 =*/40).int64(message.count);\n return writer;\n };\n\n /**\n * Encodes the specified Stat message, length delimited. Does not implicitly {@link perfetto.protos.TraceAnalysisStats.Stat.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.TraceAnalysisStats.Stat\n * @static\n * @param {perfetto.protos.TraceAnalysisStats.IStat} message Stat message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Stat.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a Stat message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.TraceAnalysisStats.Stat\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.TraceAnalysisStats.Stat} Stat\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Stat.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.TraceAnalysisStats.Stat();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.name = reader.string();\n break;\n case 2:\n message.idx = reader.uint32();\n break;\n case 3:\n message.severity = reader.int32();\n break;\n case 4:\n message.source = reader.int32();\n break;\n case 5:\n message.count = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a Stat message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.TraceAnalysisStats.Stat\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.TraceAnalysisStats.Stat} Stat\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Stat.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a Stat message.\n * @function verify\n * @memberof perfetto.protos.TraceAnalysisStats.Stat\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n Stat.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.name != null && message.hasOwnProperty(\"name\"))\n if (!$util.isString(message.name))\n return \"name: string expected\";\n if (message.idx != null && message.hasOwnProperty(\"idx\"))\n if (!$util.isInteger(message.idx))\n return \"idx: integer expected\";\n if (message.severity != null && message.hasOwnProperty(\"severity\"))\n switch (message.severity) {\n default:\n return \"severity: enum value expected\";\n case 0:\n case 1:\n case 2:\n case 3:\n break;\n }\n if (message.source != null && message.hasOwnProperty(\"source\"))\n switch (message.source) {\n default:\n return \"source: enum value expected\";\n case 0:\n case 1:\n case 2:\n break;\n }\n if (message.count != null && message.hasOwnProperty(\"count\"))\n if (!$util.isInteger(message.count) && !(message.count && $util.isInteger(message.count.low) && $util.isInteger(message.count.high)))\n return \"count: integer|Long expected\";\n return null;\n };\n\n /**\n * Creates a Stat message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.TraceAnalysisStats.Stat\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.TraceAnalysisStats.Stat} Stat\n */\n Stat.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.TraceAnalysisStats.Stat)\n return object;\n var message = new $root.perfetto.protos.TraceAnalysisStats.Stat();\n if (object.name != null)\n message.name = String(object.name);\n if (object.idx != null)\n message.idx = object.idx >>> 0;\n switch (object.severity) {\n case \"SEVERITY_UNKNOWN\":\n case 0:\n message.severity = 0;\n break;\n case \"SEVERITY_INFO\":\n case 1:\n message.severity = 1;\n break;\n case \"SEVERITY_DATA_LOSS\":\n case 2:\n message.severity = 2;\n break;\n case \"SEVERITY_ERROR\":\n case 3:\n message.severity = 3;\n break;\n }\n switch (object.source) {\n case \"SOURCE_UNKNOWN\":\n case 0:\n message.source = 0;\n break;\n case \"SOURCE_TRACE\":\n case 1:\n message.source = 1;\n break;\n case \"SOURCE_ANALYSIS\":\n case 2:\n message.source = 2;\n break;\n }\n if (object.count != null)\n if ($util.Long)\n (message.count = $util.Long.fromValue(object.count)).unsigned = false;\n else if (typeof object.count === \"string\")\n message.count = parseInt(object.count, 10);\n else if (typeof object.count === \"number\")\n message.count = object.count;\n else if (typeof object.count === \"object\")\n message.count = new $util.LongBits(object.count.low >>> 0, object.count.high >>> 0).toNumber();\n return message;\n };\n\n /**\n * Creates a plain object from a Stat message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.TraceAnalysisStats.Stat\n * @static\n * @param {perfetto.protos.TraceAnalysisStats.Stat} message Stat\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n Stat.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.name = \"\";\n object.idx = 0;\n object.severity = options.enums === String ? \"SEVERITY_UNKNOWN\" : 0;\n object.source = options.enums === String ? \"SOURCE_UNKNOWN\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.count = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.count = options.longs === String ? \"0\" : 0;\n }\n if (message.name != null && message.hasOwnProperty(\"name\"))\n object.name = message.name;\n if (message.idx != null && message.hasOwnProperty(\"idx\"))\n object.idx = message.idx;\n if (message.severity != null && message.hasOwnProperty(\"severity\"))\n object.severity = options.enums === String ? $root.perfetto.protos.TraceAnalysisStats.Severity[message.severity] : message.severity;\n if (message.source != null && message.hasOwnProperty(\"source\"))\n object.source = options.enums === String ? $root.perfetto.protos.TraceAnalysisStats.Source[message.source] : message.source;\n if (message.count != null && message.hasOwnProperty(\"count\"))\n if (typeof message.count === \"number\")\n object.count = options.longs === String ? String(message.count) : message.count;\n else\n object.count = options.longs === String ? $util.Long.prototype.toString.call(message.count) : options.longs === Number ? new $util.LongBits(message.count.low >>> 0, message.count.high >>> 0).toNumber() : message.count;\n return object;\n };\n\n /**\n * Converts this Stat to JSON.\n * @function toJSON\n * @memberof perfetto.protos.TraceAnalysisStats.Stat\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n Stat.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return Stat;\n })();\n\n return TraceAnalysisStats;\n })();\n\n protos.TraceMetrics = (function() {\n\n /**\n * Properties of a TraceMetrics.\n * @memberof perfetto.protos\n * @interface ITraceMetrics\n * @property {perfetto.protos.IAndroidBatteryMetric|null} [androidBatt] TraceMetrics androidBatt\n * @property {perfetto.protos.IAndroidCpuMetric|null} [androidCpu] TraceMetrics androidCpu\n * @property {perfetto.protos.IAndroidMemoryMetric|null} [androidMem] TraceMetrics androidMem\n * @property {perfetto.protos.IAndroidMemoryUnaggregatedMetric|null} [androidMemUnagg] TraceMetrics androidMemUnagg\n * @property {perfetto.protos.IAndroidPackageList|null} [androidPackageList] TraceMetrics androidPackageList\n * @property {perfetto.protos.IAndroidIonMetric|null} [androidIon] TraceMetrics androidIon\n * @property {perfetto.protos.IAndroidFastrpcMetric|null} [androidFastrpc] TraceMetrics androidFastrpc\n * @property {perfetto.protos.IAndroidLmkMetric|null} [androidLmk] TraceMetrics androidLmk\n * @property {perfetto.protos.IAndroidPowerRails|null} [androidPowrails] TraceMetrics androidPowrails\n * @property {perfetto.protos.IAndroidStartupMetric|null} [androidStartup] TraceMetrics androidStartup\n * @property {perfetto.protos.ITraceMetadata|null} [traceMetadata] TraceMetrics traceMetadata\n * @property {perfetto.protos.ITraceAnalysisStats|null} [traceStats] TraceMetrics traceStats\n * @property {perfetto.protos.IUnsymbolizedFrames|null} [unsymbolizedFrames] TraceMetrics unsymbolizedFrames\n * @property {perfetto.protos.IJavaHeapStats|null} [javaHeapStats] TraceMetrics javaHeapStats\n * @property {perfetto.protos.IJavaHeapHistogram|null} [javaHeapHistogram] TraceMetrics javaHeapHistogram\n * @property {perfetto.protos.IAndroidLmkReasonMetric|null} [androidLmkReason] TraceMetrics androidLmkReason\n * @property {perfetto.protos.IAndroidHwuiMetric|null} [androidHwuiMetric] TraceMetrics androidHwuiMetric\n * @property {perfetto.protos.IAndroidDisplayMetrics|null} [displayMetrics] TraceMetrics displayMetrics\n * @property {perfetto.protos.IAndroidTaskNames|null} [androidTaskNames] TraceMetrics androidTaskNames\n * @property {perfetto.protos.IAndroidThreadTimeInStateMetric|null} [androidThreadTimeInState] TraceMetrics androidThreadTimeInState\n * @property {perfetto.protos.IAndroidSurfaceflingerMetric|null} [androidSurfaceflinger] TraceMetrics androidSurfaceflinger\n * @property {perfetto.protos.IAndroidGpuMetric|null} [androidGpu] TraceMetrics androidGpu\n * @property {perfetto.protos.IAndroidSysUiCujMetrics|null} [androidSysuiCuj] TraceMetrics androidSysuiCuj\n * @property {perfetto.protos.IAndroidHwcomposerMetrics|null} [androidHwcomposer] TraceMetrics androidHwcomposer\n * @property {perfetto.protos.IAndroidJankMetrics|null} [androidJank] TraceMetrics androidJank\n * @property {perfetto.protos.IG2dMetrics|null} [g2d] TraceMetrics g2d\n * @property {perfetto.protos.IAndroidDmaHeapMetric|null} [androidDmaHeap] TraceMetrics androidDmaHeap\n * @property {perfetto.protos.IAndroidTraceQualityMetric|null} [androidTraceQuality] TraceMetrics androidTraceQuality\n * @property {perfetto.protos.IProfilerSmaps|null} [profilerSmaps] TraceMetrics profilerSmaps\n * @property {perfetto.protos.IAndroidMultiuserMetric|null} [androidMultiuser] TraceMetrics androidMultiuser\n * @property {perfetto.protos.IAndroidSimpleperfMetric|null} [androidSimpleperf] TraceMetrics androidSimpleperf\n * @property {perfetto.protos.IAndroidCameraMetric|null} [androidCamera] TraceMetrics androidCamera\n * @property {perfetto.protos.IAndroidDvfsMetric|null} [androidDvfs] TraceMetrics androidDvfs\n * @property {perfetto.protos.IAndroidNetworkMetric|null} [androidNetperf] TraceMetrics androidNetperf\n * @property {perfetto.protos.IAndroidCameraUnaggregatedMetric|null} [androidCameraUnagg] TraceMetrics androidCameraUnagg\n */\n\n /**\n * Constructs a new TraceMetrics.\n * @memberof perfetto.protos\n * @classdesc Represents a TraceMetrics.\n * @implements ITraceMetrics\n * @constructor\n * @param {perfetto.protos.ITraceMetrics=} [properties] Properties to set\n */\n function TraceMetrics(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * TraceMetrics androidBatt.\n * @member {perfetto.protos.IAndroidBatteryMetric|null|undefined} androidBatt\n * @memberof perfetto.protos.TraceMetrics\n * @instance\n */\n TraceMetrics.prototype.androidBatt = null;\n\n /**\n * TraceMetrics androidCpu.\n * @member {perfetto.protos.IAndroidCpuMetric|null|undefined} androidCpu\n * @memberof perfetto.protos.TraceMetrics\n * @instance\n */\n TraceMetrics.prototype.androidCpu = null;\n\n /**\n * TraceMetrics androidMem.\n * @member {perfetto.protos.IAndroidMemoryMetric|null|undefined} androidMem\n * @memberof perfetto.protos.TraceMetrics\n * @instance\n */\n TraceMetrics.prototype.androidMem = null;\n\n /**\n * TraceMetrics androidMemUnagg.\n * @member {perfetto.protos.IAndroidMemoryUnaggregatedMetric|null|undefined} androidMemUnagg\n * @memberof perfetto.protos.TraceMetrics\n * @instance\n */\n TraceMetrics.prototype.androidMemUnagg = null;\n\n /**\n * TraceMetrics androidPackageList.\n * @member {perfetto.protos.IAndroidPackageList|null|undefined} androidPackageList\n * @memberof perfetto.protos.TraceMetrics\n * @instance\n */\n TraceMetrics.prototype.androidPackageList = null;\n\n /**\n * TraceMetrics androidIon.\n * @member {perfetto.protos.IAndroidIonMetric|null|undefined} androidIon\n * @memberof perfetto.protos.TraceMetrics\n * @instance\n */\n TraceMetrics.prototype.androidIon = null;\n\n /**\n * TraceMetrics androidFastrpc.\n * @member {perfetto.protos.IAndroidFastrpcMetric|null|undefined} androidFastrpc\n * @memberof perfetto.protos.TraceMetrics\n * @instance\n */\n TraceMetrics.prototype.androidFastrpc = null;\n\n /**\n * TraceMetrics androidLmk.\n * @member {perfetto.protos.IAndroidLmkMetric|null|undefined} androidLmk\n * @memberof perfetto.protos.TraceMetrics\n * @instance\n */\n TraceMetrics.prototype.androidLmk = null;\n\n /**\n * TraceMetrics androidPowrails.\n * @member {perfetto.protos.IAndroidPowerRails|null|undefined} androidPowrails\n * @memberof perfetto.protos.TraceMetrics\n * @instance\n */\n TraceMetrics.prototype.androidPowrails = null;\n\n /**\n * TraceMetrics androidStartup.\n * @member {perfetto.protos.IAndroidStartupMetric|null|undefined} androidStartup\n * @memberof perfetto.protos.TraceMetrics\n * @instance\n */\n TraceMetrics.prototype.androidStartup = null;\n\n /**\n * TraceMetrics traceMetadata.\n * @member {perfetto.protos.ITraceMetadata|null|undefined} traceMetadata\n * @memberof perfetto.protos.TraceMetrics\n * @instance\n */\n TraceMetrics.prototype.traceMetadata = null;\n\n /**\n * TraceMetrics traceStats.\n * @member {perfetto.protos.ITraceAnalysisStats|null|undefined} traceStats\n * @memberof perfetto.protos.TraceMetrics\n * @instance\n */\n TraceMetrics.prototype.traceStats = null;\n\n /**\n * TraceMetrics unsymbolizedFrames.\n * @member {perfetto.protos.IUnsymbolizedFrames|null|undefined} unsymbolizedFrames\n * @memberof perfetto.protos.TraceMetrics\n * @instance\n */\n TraceMetrics.prototype.unsymbolizedFrames = null;\n\n /**\n * TraceMetrics javaHeapStats.\n * @member {perfetto.protos.IJavaHeapStats|null|undefined} javaHeapStats\n * @memberof perfetto.protos.TraceMetrics\n * @instance\n */\n TraceMetrics.prototype.javaHeapStats = null;\n\n /**\n * TraceMetrics javaHeapHistogram.\n * @member {perfetto.protos.IJavaHeapHistogram|null|undefined} javaHeapHistogram\n * @memberof perfetto.protos.TraceMetrics\n * @instance\n */\n TraceMetrics.prototype.javaHeapHistogram = null;\n\n /**\n * TraceMetrics androidLmkReason.\n * @member {perfetto.protos.IAndroidLmkReasonMetric|null|undefined} androidLmkReason\n * @memberof perfetto.protos.TraceMetrics\n * @instance\n */\n TraceMetrics.prototype.androidLmkReason = null;\n\n /**\n * TraceMetrics androidHwuiMetric.\n * @member {perfetto.protos.IAndroidHwuiMetric|null|undefined} androidHwuiMetric\n * @memberof perfetto.protos.TraceMetrics\n * @instance\n */\n TraceMetrics.prototype.androidHwuiMetric = null;\n\n /**\n * TraceMetrics displayMetrics.\n * @member {perfetto.protos.IAndroidDisplayMetrics|null|undefined} displayMetrics\n * @memberof perfetto.protos.TraceMetrics\n * @instance\n */\n TraceMetrics.prototype.displayMetrics = null;\n\n /**\n * TraceMetrics androidTaskNames.\n * @member {perfetto.protos.IAndroidTaskNames|null|undefined} androidTaskNames\n * @memberof perfetto.protos.TraceMetrics\n * @instance\n */\n TraceMetrics.prototype.androidTaskNames = null;\n\n /**\n * TraceMetrics androidThreadTimeInState.\n * @member {perfetto.protos.IAndroidThreadTimeInStateMetric|null|undefined} androidThreadTimeInState\n * @memberof perfetto.protos.TraceMetrics\n * @instance\n */\n TraceMetrics.prototype.androidThreadTimeInState = null;\n\n /**\n * TraceMetrics androidSurfaceflinger.\n * @member {perfetto.protos.IAndroidSurfaceflingerMetric|null|undefined} androidSurfaceflinger\n * @memberof perfetto.protos.TraceMetrics\n * @instance\n */\n TraceMetrics.prototype.androidSurfaceflinger = null;\n\n /**\n * TraceMetrics androidGpu.\n * @member {perfetto.protos.IAndroidGpuMetric|null|undefined} androidGpu\n * @memberof perfetto.protos.TraceMetrics\n * @instance\n */\n TraceMetrics.prototype.androidGpu = null;\n\n /**\n * TraceMetrics androidSysuiCuj.\n * @member {perfetto.protos.IAndroidSysUiCujMetrics|null|undefined} androidSysuiCuj\n * @memberof perfetto.protos.TraceMetrics\n * @instance\n */\n TraceMetrics.prototype.androidSysuiCuj = null;\n\n /**\n * TraceMetrics androidHwcomposer.\n * @member {perfetto.protos.IAndroidHwcomposerMetrics|null|undefined} androidHwcomposer\n * @memberof perfetto.protos.TraceMetrics\n * @instance\n */\n TraceMetrics.prototype.androidHwcomposer = null;\n\n /**\n * TraceMetrics androidJank.\n * @member {perfetto.protos.IAndroidJankMetrics|null|undefined} androidJank\n * @memberof perfetto.protos.TraceMetrics\n * @instance\n */\n TraceMetrics.prototype.androidJank = null;\n\n /**\n * TraceMetrics g2d.\n * @member {perfetto.protos.IG2dMetrics|null|undefined} g2d\n * @memberof perfetto.protos.TraceMetrics\n * @instance\n */\n TraceMetrics.prototype.g2d = null;\n\n /**\n * TraceMetrics androidDmaHeap.\n * @member {perfetto.protos.IAndroidDmaHeapMetric|null|undefined} androidDmaHeap\n * @memberof perfetto.protos.TraceMetrics\n * @instance\n */\n TraceMetrics.prototype.androidDmaHeap = null;\n\n /**\n * TraceMetrics androidTraceQuality.\n * @member {perfetto.protos.IAndroidTraceQualityMetric|null|undefined} androidTraceQuality\n * @memberof perfetto.protos.TraceMetrics\n * @instance\n */\n TraceMetrics.prototype.androidTraceQuality = null;\n\n /**\n * TraceMetrics profilerSmaps.\n * @member {perfetto.protos.IProfilerSmaps|null|undefined} profilerSmaps\n * @memberof perfetto.protos.TraceMetrics\n * @instance\n */\n TraceMetrics.prototype.profilerSmaps = null;\n\n /**\n * TraceMetrics androidMultiuser.\n * @member {perfetto.protos.IAndroidMultiuserMetric|null|undefined} androidMultiuser\n * @memberof perfetto.protos.TraceMetrics\n * @instance\n */\n TraceMetrics.prototype.androidMultiuser = null;\n\n /**\n * TraceMetrics androidSimpleperf.\n * @member {perfetto.protos.IAndroidSimpleperfMetric|null|undefined} androidSimpleperf\n * @memberof perfetto.protos.TraceMetrics\n * @instance\n */\n TraceMetrics.prototype.androidSimpleperf = null;\n\n /**\n * TraceMetrics androidCamera.\n * @member {perfetto.protos.IAndroidCameraMetric|null|undefined} androidCamera\n * @memberof perfetto.protos.TraceMetrics\n * @instance\n */\n TraceMetrics.prototype.androidCamera = null;\n\n /**\n * TraceMetrics androidDvfs.\n * @member {perfetto.protos.IAndroidDvfsMetric|null|undefined} androidDvfs\n * @memberof perfetto.protos.TraceMetrics\n * @instance\n */\n TraceMetrics.prototype.androidDvfs = null;\n\n /**\n * TraceMetrics androidNetperf.\n * @member {perfetto.protos.IAndroidNetworkMetric|null|undefined} androidNetperf\n * @memberof perfetto.protos.TraceMetrics\n * @instance\n */\n TraceMetrics.prototype.androidNetperf = null;\n\n /**\n * TraceMetrics androidCameraUnagg.\n * @member {perfetto.protos.IAndroidCameraUnaggregatedMetric|null|undefined} androidCameraUnagg\n * @memberof perfetto.protos.TraceMetrics\n * @instance\n */\n TraceMetrics.prototype.androidCameraUnagg = null;\n\n /**\n * Creates a new TraceMetrics instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.TraceMetrics\n * @static\n * @param {perfetto.protos.ITraceMetrics=} [properties] Properties to set\n * @returns {perfetto.protos.TraceMetrics} TraceMetrics instance\n */\n TraceMetrics.create = function create(properties) {\n return new TraceMetrics(properties);\n };\n\n /**\n * Encodes the specified TraceMetrics message. Does not implicitly {@link perfetto.protos.TraceMetrics.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.TraceMetrics\n * @static\n * @param {perfetto.protos.ITraceMetrics} message TraceMetrics message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n TraceMetrics.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.androidMem != null && Object.hasOwnProperty.call(message, \"androidMem\"))\n $root.perfetto.protos.AndroidMemoryMetric.encode(message.androidMem, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n if (message.androidStartup != null && Object.hasOwnProperty.call(message, \"androidStartup\"))\n $root.perfetto.protos.AndroidStartupMetric.encode(message.androidStartup, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n if (message.traceMetadata != null && Object.hasOwnProperty.call(message, \"traceMetadata\"))\n $root.perfetto.protos.TraceMetadata.encode(message.traceMetadata, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();\n if (message.androidBatt != null && Object.hasOwnProperty.call(message, \"androidBatt\"))\n $root.perfetto.protos.AndroidBatteryMetric.encode(message.androidBatt, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim();\n if (message.androidCpu != null && Object.hasOwnProperty.call(message, \"androidCpu\"))\n $root.perfetto.protos.AndroidCpuMetric.encode(message.androidCpu, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim();\n if (message.androidPowrails != null && Object.hasOwnProperty.call(message, \"androidPowrails\"))\n $root.perfetto.protos.AndroidPowerRails.encode(message.androidPowrails, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim();\n if (message.androidLmk != null && Object.hasOwnProperty.call(message, \"androidLmk\"))\n $root.perfetto.protos.AndroidLmkMetric.encode(message.androidLmk, writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim();\n if (message.androidIon != null && Object.hasOwnProperty.call(message, \"androidIon\"))\n $root.perfetto.protos.AndroidIonMetric.encode(message.androidIon, writer.uint32(/* id 9, wireType 2 =*/74).fork()).ldelim();\n if (message.androidMemUnagg != null && Object.hasOwnProperty.call(message, \"androidMemUnagg\"))\n $root.perfetto.protos.AndroidMemoryUnaggregatedMetric.encode(message.androidMemUnagg, writer.uint32(/* id 11, wireType 2 =*/90).fork()).ldelim();\n if (message.androidPackageList != null && Object.hasOwnProperty.call(message, \"androidPackageList\"))\n $root.perfetto.protos.AndroidPackageList.encode(message.androidPackageList, writer.uint32(/* id 12, wireType 2 =*/98).fork()).ldelim();\n if (message.unsymbolizedFrames != null && Object.hasOwnProperty.call(message, \"unsymbolizedFrames\"))\n $root.perfetto.protos.UnsymbolizedFrames.encode(message.unsymbolizedFrames, writer.uint32(/* id 15, wireType 2 =*/122).fork()).ldelim();\n if (message.javaHeapStats != null && Object.hasOwnProperty.call(message, \"javaHeapStats\"))\n $root.perfetto.protos.JavaHeapStats.encode(message.javaHeapStats, writer.uint32(/* id 17, wireType 2 =*/138).fork()).ldelim();\n if (message.androidLmkReason != null && Object.hasOwnProperty.call(message, \"androidLmkReason\"))\n $root.perfetto.protos.AndroidLmkReasonMetric.encode(message.androidLmkReason, writer.uint32(/* id 18, wireType 2 =*/146).fork()).ldelim();\n if (message.androidHwuiMetric != null && Object.hasOwnProperty.call(message, \"androidHwuiMetric\"))\n $root.perfetto.protos.AndroidHwuiMetric.encode(message.androidHwuiMetric, writer.uint32(/* id 20, wireType 2 =*/162).fork()).ldelim();\n if (message.javaHeapHistogram != null && Object.hasOwnProperty.call(message, \"javaHeapHistogram\"))\n $root.perfetto.protos.JavaHeapHistogram.encode(message.javaHeapHistogram, writer.uint32(/* id 21, wireType 2 =*/170).fork()).ldelim();\n if (message.displayMetrics != null && Object.hasOwnProperty.call(message, \"displayMetrics\"))\n $root.perfetto.protos.AndroidDisplayMetrics.encode(message.displayMetrics, writer.uint32(/* id 22, wireType 2 =*/178).fork()).ldelim();\n if (message.androidTaskNames != null && Object.hasOwnProperty.call(message, \"androidTaskNames\"))\n $root.perfetto.protos.AndroidTaskNames.encode(message.androidTaskNames, writer.uint32(/* id 23, wireType 2 =*/186).fork()).ldelim();\n if (message.androidThreadTimeInState != null && Object.hasOwnProperty.call(message, \"androidThreadTimeInState\"))\n $root.perfetto.protos.AndroidThreadTimeInStateMetric.encode(message.androidThreadTimeInState, writer.uint32(/* id 24, wireType 2 =*/194).fork()).ldelim();\n if (message.androidSurfaceflinger != null && Object.hasOwnProperty.call(message, \"androidSurfaceflinger\"))\n $root.perfetto.protos.AndroidSurfaceflingerMetric.encode(message.androidSurfaceflinger, writer.uint32(/* id 25, wireType 2 =*/202).fork()).ldelim();\n if (message.androidGpu != null && Object.hasOwnProperty.call(message, \"androidGpu\"))\n $root.perfetto.protos.AndroidGpuMetric.encode(message.androidGpu, writer.uint32(/* id 26, wireType 2 =*/210).fork()).ldelim();\n if (message.androidSysuiCuj != null && Object.hasOwnProperty.call(message, \"androidSysuiCuj\"))\n $root.perfetto.protos.AndroidSysUiCujMetrics.encode(message.androidSysuiCuj, writer.uint32(/* id 27, wireType 2 =*/218).fork()).ldelim();\n if (message.androidHwcomposer != null && Object.hasOwnProperty.call(message, \"androidHwcomposer\"))\n $root.perfetto.protos.AndroidHwcomposerMetrics.encode(message.androidHwcomposer, writer.uint32(/* id 28, wireType 2 =*/226).fork()).ldelim();\n if (message.androidJank != null && Object.hasOwnProperty.call(message, \"androidJank\"))\n $root.perfetto.protos.AndroidJankMetrics.encode(message.androidJank, writer.uint32(/* id 29, wireType 2 =*/234).fork()).ldelim();\n if (message.g2d != null && Object.hasOwnProperty.call(message, \"g2d\"))\n $root.perfetto.protos.G2dMetrics.encode(message.g2d, writer.uint32(/* id 30, wireType 2 =*/242).fork()).ldelim();\n if (message.androidFastrpc != null && Object.hasOwnProperty.call(message, \"androidFastrpc\"))\n $root.perfetto.protos.AndroidFastrpcMetric.encode(message.androidFastrpc, writer.uint32(/* id 31, wireType 2 =*/250).fork()).ldelim();\n if (message.androidDmaHeap != null && Object.hasOwnProperty.call(message, \"androidDmaHeap\"))\n $root.perfetto.protos.AndroidDmaHeapMetric.encode(message.androidDmaHeap, writer.uint32(/* id 32, wireType 2 =*/258).fork()).ldelim();\n if (message.traceStats != null && Object.hasOwnProperty.call(message, \"traceStats\"))\n $root.perfetto.protos.TraceAnalysisStats.encode(message.traceStats, writer.uint32(/* id 33, wireType 2 =*/266).fork()).ldelim();\n if (message.androidTraceQuality != null && Object.hasOwnProperty.call(message, \"androidTraceQuality\"))\n $root.perfetto.protos.AndroidTraceQualityMetric.encode(message.androidTraceQuality, writer.uint32(/* id 34, wireType 2 =*/274).fork()).ldelim();\n if (message.profilerSmaps != null && Object.hasOwnProperty.call(message, \"profilerSmaps\"))\n $root.perfetto.protos.ProfilerSmaps.encode(message.profilerSmaps, writer.uint32(/* id 35, wireType 2 =*/282).fork()).ldelim();\n if (message.androidMultiuser != null && Object.hasOwnProperty.call(message, \"androidMultiuser\"))\n $root.perfetto.protos.AndroidMultiuserMetric.encode(message.androidMultiuser, writer.uint32(/* id 36, wireType 2 =*/290).fork()).ldelim();\n if (message.androidSimpleperf != null && Object.hasOwnProperty.call(message, \"androidSimpleperf\"))\n $root.perfetto.protos.AndroidSimpleperfMetric.encode(message.androidSimpleperf, writer.uint32(/* id 37, wireType 2 =*/298).fork()).ldelim();\n if (message.androidCamera != null && Object.hasOwnProperty.call(message, \"androidCamera\"))\n $root.perfetto.protos.AndroidCameraMetric.encode(message.androidCamera, writer.uint32(/* id 38, wireType 2 =*/306).fork()).ldelim();\n if (message.androidDvfs != null && Object.hasOwnProperty.call(message, \"androidDvfs\"))\n $root.perfetto.protos.AndroidDvfsMetric.encode(message.androidDvfs, writer.uint32(/* id 39, wireType 2 =*/314).fork()).ldelim();\n if (message.androidNetperf != null && Object.hasOwnProperty.call(message, \"androidNetperf\"))\n $root.perfetto.protos.AndroidNetworkMetric.encode(message.androidNetperf, writer.uint32(/* id 40, wireType 2 =*/322).fork()).ldelim();\n if (message.androidCameraUnagg != null && Object.hasOwnProperty.call(message, \"androidCameraUnagg\"))\n $root.perfetto.protos.AndroidCameraUnaggregatedMetric.encode(message.androidCameraUnagg, writer.uint32(/* id 41, wireType 2 =*/330).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified TraceMetrics message, length delimited. Does not implicitly {@link perfetto.protos.TraceMetrics.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.TraceMetrics\n * @static\n * @param {perfetto.protos.ITraceMetrics} message TraceMetrics message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n TraceMetrics.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a TraceMetrics message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.TraceMetrics\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.TraceMetrics} TraceMetrics\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n TraceMetrics.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.TraceMetrics();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 5:\n message.androidBatt = $root.perfetto.protos.AndroidBatteryMetric.decode(reader, reader.uint32());\n break;\n case 6:\n message.androidCpu = $root.perfetto.protos.AndroidCpuMetric.decode(reader, reader.uint32());\n break;\n case 1:\n message.androidMem = $root.perfetto.protos.AndroidMemoryMetric.decode(reader, reader.uint32());\n break;\n case 11:\n message.androidMemUnagg = $root.perfetto.protos.AndroidMemoryUnaggregatedMetric.decode(reader, reader.uint32());\n break;\n case 12:\n message.androidPackageList = $root.perfetto.protos.AndroidPackageList.decode(reader, reader.uint32());\n break;\n case 9:\n message.androidIon = $root.perfetto.protos.AndroidIonMetric.decode(reader, reader.uint32());\n break;\n case 31:\n message.androidFastrpc = $root.perfetto.protos.AndroidFastrpcMetric.decode(reader, reader.uint32());\n break;\n case 8:\n message.androidLmk = $root.perfetto.protos.AndroidLmkMetric.decode(reader, reader.uint32());\n break;\n case 7:\n message.androidPowrails = $root.perfetto.protos.AndroidPowerRails.decode(reader, reader.uint32());\n break;\n case 2:\n message.androidStartup = $root.perfetto.protos.AndroidStartupMetric.decode(reader, reader.uint32());\n break;\n case 3:\n message.traceMetadata = $root.perfetto.protos.TraceMetadata.decode(reader, reader.uint32());\n break;\n case 33:\n message.traceStats = $root.perfetto.protos.TraceAnalysisStats.decode(reader, reader.uint32());\n break;\n case 15:\n message.unsymbolizedFrames = $root.perfetto.protos.UnsymbolizedFrames.decode(reader, reader.uint32());\n break;\n case 17:\n message.javaHeapStats = $root.perfetto.protos.JavaHeapStats.decode(reader, reader.uint32());\n break;\n case 21:\n message.javaHeapHistogram = $root.perfetto.protos.JavaHeapHistogram.decode(reader, reader.uint32());\n break;\n case 18:\n message.androidLmkReason = $root.perfetto.protos.AndroidLmkReasonMetric.decode(reader, reader.uint32());\n break;\n case 20:\n message.androidHwuiMetric = $root.perfetto.protos.AndroidHwuiMetric.decode(reader, reader.uint32());\n break;\n case 22:\n message.displayMetrics = $root.perfetto.protos.AndroidDisplayMetrics.decode(reader, reader.uint32());\n break;\n case 23:\n message.androidTaskNames = $root.perfetto.protos.AndroidTaskNames.decode(reader, reader.uint32());\n break;\n case 24:\n message.androidThreadTimeInState = $root.perfetto.protos.AndroidThreadTimeInStateMetric.decode(reader, reader.uint32());\n break;\n case 25:\n message.androidSurfaceflinger = $root.perfetto.protos.AndroidSurfaceflingerMetric.decode(reader, reader.uint32());\n break;\n case 26:\n message.androidGpu = $root.perfetto.protos.AndroidGpuMetric.decode(reader, reader.uint32());\n break;\n case 27:\n message.androidSysuiCuj = $root.perfetto.protos.AndroidSysUiCujMetrics.decode(reader, reader.uint32());\n break;\n case 28:\n message.androidHwcomposer = $root.perfetto.protos.AndroidHwcomposerMetrics.decode(reader, reader.uint32());\n break;\n case 29:\n message.androidJank = $root.perfetto.protos.AndroidJankMetrics.decode(reader, reader.uint32());\n break;\n case 30:\n message.g2d = $root.perfetto.protos.G2dMetrics.decode(reader, reader.uint32());\n break;\n case 32:\n message.androidDmaHeap = $root.perfetto.protos.AndroidDmaHeapMetric.decode(reader, reader.uint32());\n break;\n case 34:\n message.androidTraceQuality = $root.perfetto.protos.AndroidTraceQualityMetric.decode(reader, reader.uint32());\n break;\n case 35:\n message.profilerSmaps = $root.perfetto.protos.ProfilerSmaps.decode(reader, reader.uint32());\n break;\n case 36:\n message.androidMultiuser = $root.perfetto.protos.AndroidMultiuserMetric.decode(reader, reader.uint32());\n break;\n case 37:\n message.androidSimpleperf = $root.perfetto.protos.AndroidSimpleperfMetric.decode(reader, reader.uint32());\n break;\n case 38:\n message.androidCamera = $root.perfetto.protos.AndroidCameraMetric.decode(reader, reader.uint32());\n break;\n case 39:\n message.androidDvfs = $root.perfetto.protos.AndroidDvfsMetric.decode(reader, reader.uint32());\n break;\n case 40:\n message.androidNetperf = $root.perfetto.protos.AndroidNetworkMetric.decode(reader, reader.uint32());\n break;\n case 41:\n message.androidCameraUnagg = $root.perfetto.protos.AndroidCameraUnaggregatedMetric.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a TraceMetrics message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.TraceMetrics\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.TraceMetrics} TraceMetrics\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n TraceMetrics.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a TraceMetrics message.\n * @function verify\n * @memberof perfetto.protos.TraceMetrics\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n TraceMetrics.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.androidBatt != null && message.hasOwnProperty(\"androidBatt\")) {\n var error = $root.perfetto.protos.AndroidBatteryMetric.verify(message.androidBatt);\n if (error)\n return \"androidBatt.\" + error;\n }\n if (message.androidCpu != null && message.hasOwnProperty(\"androidCpu\")) {\n var error = $root.perfetto.protos.AndroidCpuMetric.verify(message.androidCpu);\n if (error)\n return \"androidCpu.\" + error;\n }\n if (message.androidMem != null && message.hasOwnProperty(\"androidMem\")) {\n var error = $root.perfetto.protos.AndroidMemoryMetric.verify(message.androidMem);\n if (error)\n return \"androidMem.\" + error;\n }\n if (message.androidMemUnagg != null && message.hasOwnProperty(\"androidMemUnagg\")) {\n var error = $root.perfetto.protos.AndroidMemoryUnaggregatedMetric.verify(message.androidMemUnagg);\n if (error)\n return \"androidMemUnagg.\" + error;\n }\n if (message.androidPackageList != null && message.hasOwnProperty(\"androidPackageList\")) {\n var error = $root.perfetto.protos.AndroidPackageList.verify(message.androidPackageList);\n if (error)\n return \"androidPackageList.\" + error;\n }\n if (message.androidIon != null && message.hasOwnProperty(\"androidIon\")) {\n var error = $root.perfetto.protos.AndroidIonMetric.verify(message.androidIon);\n if (error)\n return \"androidIon.\" + error;\n }\n if (message.androidFastrpc != null && message.hasOwnProperty(\"androidFastrpc\")) {\n var error = $root.perfetto.protos.AndroidFastrpcMetric.verify(message.androidFastrpc);\n if (error)\n return \"androidFastrpc.\" + error;\n }\n if (message.androidLmk != null && message.hasOwnProperty(\"androidLmk\")) {\n var error = $root.perfetto.protos.AndroidLmkMetric.verify(message.androidLmk);\n if (error)\n return \"androidLmk.\" + error;\n }\n if (message.androidPowrails != null && message.hasOwnProperty(\"androidPowrails\")) {\n var error = $root.perfetto.protos.AndroidPowerRails.verify(message.androidPowrails);\n if (error)\n return \"androidPowrails.\" + error;\n }\n if (message.androidStartup != null && message.hasOwnProperty(\"androidStartup\")) {\n var error = $root.perfetto.protos.AndroidStartupMetric.verify(message.androidStartup);\n if (error)\n return \"androidStartup.\" + error;\n }\n if (message.traceMetadata != null && message.hasOwnProperty(\"traceMetadata\")) {\n var error = $root.perfetto.protos.TraceMetadata.verify(message.traceMetadata);\n if (error)\n return \"traceMetadata.\" + error;\n }\n if (message.traceStats != null && message.hasOwnProperty(\"traceStats\")) {\n var error = $root.perfetto.protos.TraceAnalysisStats.verify(message.traceStats);\n if (error)\n return \"traceStats.\" + error;\n }\n if (message.unsymbolizedFrames != null && message.hasOwnProperty(\"unsymbolizedFrames\")) {\n var error = $root.perfetto.protos.UnsymbolizedFrames.verify(message.unsymbolizedFrames);\n if (error)\n return \"unsymbolizedFrames.\" + error;\n }\n if (message.javaHeapStats != null && message.hasOwnProperty(\"javaHeapStats\")) {\n var error = $root.perfetto.protos.JavaHeapStats.verify(message.javaHeapStats);\n if (error)\n return \"javaHeapStats.\" + error;\n }\n if (message.javaHeapHistogram != null && message.hasOwnProperty(\"javaHeapHistogram\")) {\n var error = $root.perfetto.protos.JavaHeapHistogram.verify(message.javaHeapHistogram);\n if (error)\n return \"javaHeapHistogram.\" + error;\n }\n if (message.androidLmkReason != null && message.hasOwnProperty(\"androidLmkReason\")) {\n var error = $root.perfetto.protos.AndroidLmkReasonMetric.verify(message.androidLmkReason);\n if (error)\n return \"androidLmkReason.\" + error;\n }\n if (message.androidHwuiMetric != null && message.hasOwnProperty(\"androidHwuiMetric\")) {\n var error = $root.perfetto.protos.AndroidHwuiMetric.verify(message.androidHwuiMetric);\n if (error)\n return \"androidHwuiMetric.\" + error;\n }\n if (message.displayMetrics != null && message.hasOwnProperty(\"displayMetrics\")) {\n var error = $root.perfetto.protos.AndroidDisplayMetrics.verify(message.displayMetrics);\n if (error)\n return \"displayMetrics.\" + error;\n }\n if (message.androidTaskNames != null && message.hasOwnProperty(\"androidTaskNames\")) {\n var error = $root.perfetto.protos.AndroidTaskNames.verify(message.androidTaskNames);\n if (error)\n return \"androidTaskNames.\" + error;\n }\n if (message.androidThreadTimeInState != null && message.hasOwnProperty(\"androidThreadTimeInState\")) {\n var error = $root.perfetto.protos.AndroidThreadTimeInStateMetric.verify(message.androidThreadTimeInState);\n if (error)\n return \"androidThreadTimeInState.\" + error;\n }\n if (message.androidSurfaceflinger != null && message.hasOwnProperty(\"androidSurfaceflinger\")) {\n var error = $root.perfetto.protos.AndroidSurfaceflingerMetric.verify(message.androidSurfaceflinger);\n if (error)\n return \"androidSurfaceflinger.\" + error;\n }\n if (message.androidGpu != null && message.hasOwnProperty(\"androidGpu\")) {\n var error = $root.perfetto.protos.AndroidGpuMetric.verify(message.androidGpu);\n if (error)\n return \"androidGpu.\" + error;\n }\n if (message.androidSysuiCuj != null && message.hasOwnProperty(\"androidSysuiCuj\")) {\n var error = $root.perfetto.protos.AndroidSysUiCujMetrics.verify(message.androidSysuiCuj);\n if (error)\n return \"androidSysuiCuj.\" + error;\n }\n if (message.androidHwcomposer != null && message.hasOwnProperty(\"androidHwcomposer\")) {\n var error = $root.perfetto.protos.AndroidHwcomposerMetrics.verify(message.androidHwcomposer);\n if (error)\n return \"androidHwcomposer.\" + error;\n }\n if (message.androidJank != null && message.hasOwnProperty(\"androidJank\")) {\n var error = $root.perfetto.protos.AndroidJankMetrics.verify(message.androidJank);\n if (error)\n return \"androidJank.\" + error;\n }\n if (message.g2d != null && message.hasOwnProperty(\"g2d\")) {\n var error = $root.perfetto.protos.G2dMetrics.verify(message.g2d);\n if (error)\n return \"g2d.\" + error;\n }\n if (message.androidDmaHeap != null && message.hasOwnProperty(\"androidDmaHeap\")) {\n var error = $root.perfetto.protos.AndroidDmaHeapMetric.verify(message.androidDmaHeap);\n if (error)\n return \"androidDmaHeap.\" + error;\n }\n if (message.androidTraceQuality != null && message.hasOwnProperty(\"androidTraceQuality\")) {\n var error = $root.perfetto.protos.AndroidTraceQualityMetric.verify(message.androidTraceQuality);\n if (error)\n return \"androidTraceQuality.\" + error;\n }\n if (message.profilerSmaps != null && message.hasOwnProperty(\"profilerSmaps\")) {\n var error = $root.perfetto.protos.ProfilerSmaps.verify(message.profilerSmaps);\n if (error)\n return \"profilerSmaps.\" + error;\n }\n if (message.androidMultiuser != null && message.hasOwnProperty(\"androidMultiuser\")) {\n var error = $root.perfetto.protos.AndroidMultiuserMetric.verify(message.androidMultiuser);\n if (error)\n return \"androidMultiuser.\" + error;\n }\n if (message.androidSimpleperf != null && message.hasOwnProperty(\"androidSimpleperf\")) {\n var error = $root.perfetto.protos.AndroidSimpleperfMetric.verify(message.androidSimpleperf);\n if (error)\n return \"androidSimpleperf.\" + error;\n }\n if (message.androidCamera != null && message.hasOwnProperty(\"androidCamera\")) {\n var error = $root.perfetto.protos.AndroidCameraMetric.verify(message.androidCamera);\n if (error)\n return \"androidCamera.\" + error;\n }\n if (message.androidDvfs != null && message.hasOwnProperty(\"androidDvfs\")) {\n var error = $root.perfetto.protos.AndroidDvfsMetric.verify(message.androidDvfs);\n if (error)\n return \"androidDvfs.\" + error;\n }\n if (message.androidNetperf != null && message.hasOwnProperty(\"androidNetperf\")) {\n var error = $root.perfetto.protos.AndroidNetworkMetric.verify(message.androidNetperf);\n if (error)\n return \"androidNetperf.\" + error;\n }\n if (message.androidCameraUnagg != null && message.hasOwnProperty(\"androidCameraUnagg\")) {\n var error = $root.perfetto.protos.AndroidCameraUnaggregatedMetric.verify(message.androidCameraUnagg);\n if (error)\n return \"androidCameraUnagg.\" + error;\n }\n return null;\n };\n\n /**\n * Creates a TraceMetrics message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.TraceMetrics\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.TraceMetrics} TraceMetrics\n */\n TraceMetrics.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.TraceMetrics)\n return object;\n var message = new $root.perfetto.protos.TraceMetrics();\n if (object.androidBatt != null) {\n if (typeof object.androidBatt !== \"object\")\n throw TypeError(\".perfetto.protos.TraceMetrics.androidBatt: object expected\");\n message.androidBatt = $root.perfetto.protos.AndroidBatteryMetric.fromObject(object.androidBatt);\n }\n if (object.androidCpu != null) {\n if (typeof object.androidCpu !== \"object\")\n throw TypeError(\".perfetto.protos.TraceMetrics.androidCpu: object expected\");\n message.androidCpu = $root.perfetto.protos.AndroidCpuMetric.fromObject(object.androidCpu);\n }\n if (object.androidMem != null) {\n if (typeof object.androidMem !== \"object\")\n throw TypeError(\".perfetto.protos.TraceMetrics.androidMem: object expected\");\n message.androidMem = $root.perfetto.protos.AndroidMemoryMetric.fromObject(object.androidMem);\n }\n if (object.androidMemUnagg != null) {\n if (typeof object.androidMemUnagg !== \"object\")\n throw TypeError(\".perfetto.protos.TraceMetrics.androidMemUnagg: object expected\");\n message.androidMemUnagg = $root.perfetto.protos.AndroidMemoryUnaggregatedMetric.fromObject(object.androidMemUnagg);\n }\n if (object.androidPackageList != null) {\n if (typeof object.androidPackageList !== \"object\")\n throw TypeError(\".perfetto.protos.TraceMetrics.androidPackageList: object expected\");\n message.androidPackageList = $root.perfetto.protos.AndroidPackageList.fromObject(object.androidPackageList);\n }\n if (object.androidIon != null) {\n if (typeof object.androidIon !== \"object\")\n throw TypeError(\".perfetto.protos.TraceMetrics.androidIon: object expected\");\n message.androidIon = $root.perfetto.protos.AndroidIonMetric.fromObject(object.androidIon);\n }\n if (object.androidFastrpc != null) {\n if (typeof object.androidFastrpc !== \"object\")\n throw TypeError(\".perfetto.protos.TraceMetrics.androidFastrpc: object expected\");\n message.androidFastrpc = $root.perfetto.protos.AndroidFastrpcMetric.fromObject(object.androidFastrpc);\n }\n if (object.androidLmk != null) {\n if (typeof object.androidLmk !== \"object\")\n throw TypeError(\".perfetto.protos.TraceMetrics.androidLmk: object expected\");\n message.androidLmk = $root.perfetto.protos.AndroidLmkMetric.fromObject(object.androidLmk);\n }\n if (object.androidPowrails != null) {\n if (typeof object.androidPowrails !== \"object\")\n throw TypeError(\".perfetto.protos.TraceMetrics.androidPowrails: object expected\");\n message.androidPowrails = $root.perfetto.protos.AndroidPowerRails.fromObject(object.androidPowrails);\n }\n if (object.androidStartup != null) {\n if (typeof object.androidStartup !== \"object\")\n throw TypeError(\".perfetto.protos.TraceMetrics.androidStartup: object expected\");\n message.androidStartup = $root.perfetto.protos.AndroidStartupMetric.fromObject(object.androidStartup);\n }\n if (object.traceMetadata != null) {\n if (typeof object.traceMetadata !== \"object\")\n throw TypeError(\".perfetto.protos.TraceMetrics.traceMetadata: object expected\");\n message.traceMetadata = $root.perfetto.protos.TraceMetadata.fromObject(object.traceMetadata);\n }\n if (object.traceStats != null) {\n if (typeof object.traceStats !== \"object\")\n throw TypeError(\".perfetto.protos.TraceMetrics.traceStats: object expected\");\n message.traceStats = $root.perfetto.protos.TraceAnalysisStats.fromObject(object.traceStats);\n }\n if (object.unsymbolizedFrames != null) {\n if (typeof object.unsymbolizedFrames !== \"object\")\n throw TypeError(\".perfetto.protos.TraceMetrics.unsymbolizedFrames: object expected\");\n message.unsymbolizedFrames = $root.perfetto.protos.UnsymbolizedFrames.fromObject(object.unsymbolizedFrames);\n }\n if (object.javaHeapStats != null) {\n if (typeof object.javaHeapStats !== \"object\")\n throw TypeError(\".perfetto.protos.TraceMetrics.javaHeapStats: object expected\");\n message.javaHeapStats = $root.perfetto.protos.JavaHeapStats.fromObject(object.javaHeapStats);\n }\n if (object.javaHeapHistogram != null) {\n if (typeof object.javaHeapHistogram !== \"object\")\n throw TypeError(\".perfetto.protos.TraceMetrics.javaHeapHistogram: object expected\");\n message.javaHeapHistogram = $root.perfetto.protos.JavaHeapHistogram.fromObject(object.javaHeapHistogram);\n }\n if (object.androidLmkReason != null) {\n if (typeof object.androidLmkReason !== \"object\")\n throw TypeError(\".perfetto.protos.TraceMetrics.androidLmkReason: object expected\");\n message.androidLmkReason = $root.perfetto.protos.AndroidLmkReasonMetric.fromObject(object.androidLmkReason);\n }\n if (object.androidHwuiMetric != null) {\n if (typeof object.androidHwuiMetric !== \"object\")\n throw TypeError(\".perfetto.protos.TraceMetrics.androidHwuiMetric: object expected\");\n message.androidHwuiMetric = $root.perfetto.protos.AndroidHwuiMetric.fromObject(object.androidHwuiMetric);\n }\n if (object.displayMetrics != null) {\n if (typeof object.displayMetrics !== \"object\")\n throw TypeError(\".perfetto.protos.TraceMetrics.displayMetrics: object expected\");\n message.displayMetrics = $root.perfetto.protos.AndroidDisplayMetrics.fromObject(object.displayMetrics);\n }\n if (object.androidTaskNames != null) {\n if (typeof object.androidTaskNames !== \"object\")\n throw TypeError(\".perfetto.protos.TraceMetrics.androidTaskNames: object expected\");\n message.androidTaskNames = $root.perfetto.protos.AndroidTaskNames.fromObject(object.androidTaskNames);\n }\n if (object.androidThreadTimeInState != null) {\n if (typeof object.androidThreadTimeInState !== \"object\")\n throw TypeError(\".perfetto.protos.TraceMetrics.androidThreadTimeInState: object expected\");\n message.androidThreadTimeInState = $root.perfetto.protos.AndroidThreadTimeInStateMetric.fromObject(object.androidThreadTimeInState);\n }\n if (object.androidSurfaceflinger != null) {\n if (typeof object.androidSurfaceflinger !== \"object\")\n throw TypeError(\".perfetto.protos.TraceMetrics.androidSurfaceflinger: object expected\");\n message.androidSurfaceflinger = $root.perfetto.protos.AndroidSurfaceflingerMetric.fromObject(object.androidSurfaceflinger);\n }\n if (object.androidGpu != null) {\n if (typeof object.androidGpu !== \"object\")\n throw TypeError(\".perfetto.protos.TraceMetrics.androidGpu: object expected\");\n message.androidGpu = $root.perfetto.protos.AndroidGpuMetric.fromObject(object.androidGpu);\n }\n if (object.androidSysuiCuj != null) {\n if (typeof object.androidSysuiCuj !== \"object\")\n throw TypeError(\".perfetto.protos.TraceMetrics.androidSysuiCuj: object expected\");\n message.androidSysuiCuj = $root.perfetto.protos.AndroidSysUiCujMetrics.fromObject(object.androidSysuiCuj);\n }\n if (object.androidHwcomposer != null) {\n if (typeof object.androidHwcomposer !== \"object\")\n throw TypeError(\".perfetto.protos.TraceMetrics.androidHwcomposer: object expected\");\n message.androidHwcomposer = $root.perfetto.protos.AndroidHwcomposerMetrics.fromObject(object.androidHwcomposer);\n }\n if (object.androidJank != null) {\n if (typeof object.androidJank !== \"object\")\n throw TypeError(\".perfetto.protos.TraceMetrics.androidJank: object expected\");\n message.androidJank = $root.perfetto.protos.AndroidJankMetrics.fromObject(object.androidJank);\n }\n if (object.g2d != null) {\n if (typeof object.g2d !== \"object\")\n throw TypeError(\".perfetto.protos.TraceMetrics.g2d: object expected\");\n message.g2d = $root.perfetto.protos.G2dMetrics.fromObject(object.g2d);\n }\n if (object.androidDmaHeap != null) {\n if (typeof object.androidDmaHeap !== \"object\")\n throw TypeError(\".perfetto.protos.TraceMetrics.androidDmaHeap: object expected\");\n message.androidDmaHeap = $root.perfetto.protos.AndroidDmaHeapMetric.fromObject(object.androidDmaHeap);\n }\n if (object.androidTraceQuality != null) {\n if (typeof object.androidTraceQuality !== \"object\")\n throw TypeError(\".perfetto.protos.TraceMetrics.androidTraceQuality: object expected\");\n message.androidTraceQuality = $root.perfetto.protos.AndroidTraceQualityMetric.fromObject(object.androidTraceQuality);\n }\n if (object.profilerSmaps != null) {\n if (typeof object.profilerSmaps !== \"object\")\n throw TypeError(\".perfetto.protos.TraceMetrics.profilerSmaps: object expected\");\n message.profilerSmaps = $root.perfetto.protos.ProfilerSmaps.fromObject(object.profilerSmaps);\n }\n if (object.androidMultiuser != null) {\n if (typeof object.androidMultiuser !== \"object\")\n throw TypeError(\".perfetto.protos.TraceMetrics.androidMultiuser: object expected\");\n message.androidMultiuser = $root.perfetto.protos.AndroidMultiuserMetric.fromObject(object.androidMultiuser);\n }\n if (object.androidSimpleperf != null) {\n if (typeof object.androidSimpleperf !== \"object\")\n throw TypeError(\".perfetto.protos.TraceMetrics.androidSimpleperf: object expected\");\n message.androidSimpleperf = $root.perfetto.protos.AndroidSimpleperfMetric.fromObject(object.androidSimpleperf);\n }\n if (object.androidCamera != null) {\n if (typeof object.androidCamera !== \"object\")\n throw TypeError(\".perfetto.protos.TraceMetrics.androidCamera: object expected\");\n message.androidCamera = $root.perfetto.protos.AndroidCameraMetric.fromObject(object.androidCamera);\n }\n if (object.androidDvfs != null) {\n if (typeof object.androidDvfs !== \"object\")\n throw TypeError(\".perfetto.protos.TraceMetrics.androidDvfs: object expected\");\n message.androidDvfs = $root.perfetto.protos.AndroidDvfsMetric.fromObject(object.androidDvfs);\n }\n if (object.androidNetperf != null) {\n if (typeof object.androidNetperf !== \"object\")\n throw TypeError(\".perfetto.protos.TraceMetrics.androidNetperf: object expected\");\n message.androidNetperf = $root.perfetto.protos.AndroidNetworkMetric.fromObject(object.androidNetperf);\n }\n if (object.androidCameraUnagg != null) {\n if (typeof object.androidCameraUnagg !== \"object\")\n throw TypeError(\".perfetto.protos.TraceMetrics.androidCameraUnagg: object expected\");\n message.androidCameraUnagg = $root.perfetto.protos.AndroidCameraUnaggregatedMetric.fromObject(object.androidCameraUnagg);\n }\n return message;\n };\n\n /**\n * Creates a plain object from a TraceMetrics message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.TraceMetrics\n * @static\n * @param {perfetto.protos.TraceMetrics} message TraceMetrics\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n TraceMetrics.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.androidMem = null;\n object.androidStartup = null;\n object.traceMetadata = null;\n object.androidBatt = null;\n object.androidCpu = null;\n object.androidPowrails = null;\n object.androidLmk = null;\n object.androidIon = null;\n object.androidMemUnagg = null;\n object.androidPackageList = null;\n object.unsymbolizedFrames = null;\n object.javaHeapStats = null;\n object.androidLmkReason = null;\n object.androidHwuiMetric = null;\n object.javaHeapHistogram = null;\n object.displayMetrics = null;\n object.androidTaskNames = null;\n object.androidThreadTimeInState = null;\n object.androidSurfaceflinger = null;\n object.androidGpu = null;\n object.androidSysuiCuj = null;\n object.androidHwcomposer = null;\n object.androidJank = null;\n object.g2d = null;\n object.androidFastrpc = null;\n object.androidDmaHeap = null;\n object.traceStats = null;\n object.androidTraceQuality = null;\n object.profilerSmaps = null;\n object.androidMultiuser = null;\n object.androidSimpleperf = null;\n object.androidCamera = null;\n object.androidDvfs = null;\n object.androidNetperf = null;\n object.androidCameraUnagg = null;\n }\n if (message.androidMem != null && message.hasOwnProperty(\"androidMem\"))\n object.androidMem = $root.perfetto.protos.AndroidMemoryMetric.toObject(message.androidMem, options);\n if (message.androidStartup != null && message.hasOwnProperty(\"androidStartup\"))\n object.androidStartup = $root.perfetto.protos.AndroidStartupMetric.toObject(message.androidStartup, options);\n if (message.traceMetadata != null && message.hasOwnProperty(\"traceMetadata\"))\n object.traceMetadata = $root.perfetto.protos.TraceMetadata.toObject(message.traceMetadata, options);\n if (message.androidBatt != null && message.hasOwnProperty(\"androidBatt\"))\n object.androidBatt = $root.perfetto.protos.AndroidBatteryMetric.toObject(message.androidBatt, options);\n if (message.androidCpu != null && message.hasOwnProperty(\"androidCpu\"))\n object.androidCpu = $root.perfetto.protos.AndroidCpuMetric.toObject(message.androidCpu, options);\n if (message.androidPowrails != null && message.hasOwnProperty(\"androidPowrails\"))\n object.androidPowrails = $root.perfetto.protos.AndroidPowerRails.toObject(message.androidPowrails, options);\n if (message.androidLmk != null && message.hasOwnProperty(\"androidLmk\"))\n object.androidLmk = $root.perfetto.protos.AndroidLmkMetric.toObject(message.androidLmk, options);\n if (message.androidIon != null && message.hasOwnProperty(\"androidIon\"))\n object.androidIon = $root.perfetto.protos.AndroidIonMetric.toObject(message.androidIon, options);\n if (message.androidMemUnagg != null && message.hasOwnProperty(\"androidMemUnagg\"))\n object.androidMemUnagg = $root.perfetto.protos.AndroidMemoryUnaggregatedMetric.toObject(message.androidMemUnagg, options);\n if (message.androidPackageList != null && message.hasOwnProperty(\"androidPackageList\"))\n object.androidPackageList = $root.perfetto.protos.AndroidPackageList.toObject(message.androidPackageList, options);\n if (message.unsymbolizedFrames != null && message.hasOwnProperty(\"unsymbolizedFrames\"))\n object.unsymbolizedFrames = $root.perfetto.protos.UnsymbolizedFrames.toObject(message.unsymbolizedFrames, options);\n if (message.javaHeapStats != null && message.hasOwnProperty(\"javaHeapStats\"))\n object.javaHeapStats = $root.perfetto.protos.JavaHeapStats.toObject(message.javaHeapStats, options);\n if (message.androidLmkReason != null && message.hasOwnProperty(\"androidLmkReason\"))\n object.androidLmkReason = $root.perfetto.protos.AndroidLmkReasonMetric.toObject(message.androidLmkReason, options);\n if (message.androidHwuiMetric != null && message.hasOwnProperty(\"androidHwuiMetric\"))\n object.androidHwuiMetric = $root.perfetto.protos.AndroidHwuiMetric.toObject(message.androidHwuiMetric, options);\n if (message.javaHeapHistogram != null && message.hasOwnProperty(\"javaHeapHistogram\"))\n object.javaHeapHistogram = $root.perfetto.protos.JavaHeapHistogram.toObject(message.javaHeapHistogram, options);\n if (message.displayMetrics != null && message.hasOwnProperty(\"displayMetrics\"))\n object.displayMetrics = $root.perfetto.protos.AndroidDisplayMetrics.toObject(message.displayMetrics, options);\n if (message.androidTaskNames != null && message.hasOwnProperty(\"androidTaskNames\"))\n object.androidTaskNames = $root.perfetto.protos.AndroidTaskNames.toObject(message.androidTaskNames, options);\n if (message.androidThreadTimeInState != null && message.hasOwnProperty(\"androidThreadTimeInState\"))\n object.androidThreadTimeInState = $root.perfetto.protos.AndroidThreadTimeInStateMetric.toObject(message.androidThreadTimeInState, options);\n if (message.androidSurfaceflinger != null && message.hasOwnProperty(\"androidSurfaceflinger\"))\n object.androidSurfaceflinger = $root.perfetto.protos.AndroidSurfaceflingerMetric.toObject(message.androidSurfaceflinger, options);\n if (message.androidGpu != null && message.hasOwnProperty(\"androidGpu\"))\n object.androidGpu = $root.perfetto.protos.AndroidGpuMetric.toObject(message.androidGpu, options);\n if (message.androidSysuiCuj != null && message.hasOwnProperty(\"androidSysuiCuj\"))\n object.androidSysuiCuj = $root.perfetto.protos.AndroidSysUiCujMetrics.toObject(message.androidSysuiCuj, options);\n if (message.androidHwcomposer != null && message.hasOwnProperty(\"androidHwcomposer\"))\n object.androidHwcomposer = $root.perfetto.protos.AndroidHwcomposerMetrics.toObject(message.androidHwcomposer, options);\n if (message.androidJank != null && message.hasOwnProperty(\"androidJank\"))\n object.androidJank = $root.perfetto.protos.AndroidJankMetrics.toObject(message.androidJank, options);\n if (message.g2d != null && message.hasOwnProperty(\"g2d\"))\n object.g2d = $root.perfetto.protos.G2dMetrics.toObject(message.g2d, options);\n if (message.androidFastrpc != null && message.hasOwnProperty(\"androidFastrpc\"))\n object.androidFastrpc = $root.perfetto.protos.AndroidFastrpcMetric.toObject(message.androidFastrpc, options);\n if (message.androidDmaHeap != null && message.hasOwnProperty(\"androidDmaHeap\"))\n object.androidDmaHeap = $root.perfetto.protos.AndroidDmaHeapMetric.toObject(message.androidDmaHeap, options);\n if (message.traceStats != null && message.hasOwnProperty(\"traceStats\"))\n object.traceStats = $root.perfetto.protos.TraceAnalysisStats.toObject(message.traceStats, options);\n if (message.androidTraceQuality != null && message.hasOwnProperty(\"androidTraceQuality\"))\n object.androidTraceQuality = $root.perfetto.protos.AndroidTraceQualityMetric.toObject(message.androidTraceQuality, options);\n if (message.profilerSmaps != null && message.hasOwnProperty(\"profilerSmaps\"))\n object.profilerSmaps = $root.perfetto.protos.ProfilerSmaps.toObject(message.profilerSmaps, options);\n if (message.androidMultiuser != null && message.hasOwnProperty(\"androidMultiuser\"))\n object.androidMultiuser = $root.perfetto.protos.AndroidMultiuserMetric.toObject(message.androidMultiuser, options);\n if (message.androidSimpleperf != null && message.hasOwnProperty(\"androidSimpleperf\"))\n object.androidSimpleperf = $root.perfetto.protos.AndroidSimpleperfMetric.toObject(message.androidSimpleperf, options);\n if (message.androidCamera != null && message.hasOwnProperty(\"androidCamera\"))\n object.androidCamera = $root.perfetto.protos.AndroidCameraMetric.toObject(message.androidCamera, options);\n if (message.androidDvfs != null && message.hasOwnProperty(\"androidDvfs\"))\n object.androidDvfs = $root.perfetto.protos.AndroidDvfsMetric.toObject(message.androidDvfs, options);\n if (message.androidNetperf != null && message.hasOwnProperty(\"androidNetperf\"))\n object.androidNetperf = $root.perfetto.protos.AndroidNetworkMetric.toObject(message.androidNetperf, options);\n if (message.androidCameraUnagg != null && message.hasOwnProperty(\"androidCameraUnagg\"))\n object.androidCameraUnagg = $root.perfetto.protos.AndroidCameraUnaggregatedMetric.toObject(message.androidCameraUnagg, options);\n return object;\n };\n\n /**\n * Converts this TraceMetrics to JSON.\n * @function toJSON\n * @memberof perfetto.protos.TraceMetrics\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n TraceMetrics.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return TraceMetrics;\n })();\n\n protos.AndroidBatteryMetric = (function() {\n\n /**\n * Properties of an AndroidBatteryMetric.\n * @memberof perfetto.protos\n * @interface IAndroidBatteryMetric\n * @property {Array.<perfetto.protos.AndroidBatteryMetric.IBatteryCounters>|null} [batteryCounters] AndroidBatteryMetric batteryCounters\n * @property {perfetto.protos.AndroidBatteryMetric.IBatteryAggregates|null} [batteryAggregates] AndroidBatteryMetric batteryAggregates\n * @property {Array.<perfetto.protos.AndroidBatteryMetric.ISuspendPeriod>|null} [suspendPeriod] AndroidBatteryMetric suspendPeriod\n */\n\n /**\n * Constructs a new AndroidBatteryMetric.\n * @memberof perfetto.protos\n * @classdesc Represents an AndroidBatteryMetric.\n * @implements IAndroidBatteryMetric\n * @constructor\n * @param {perfetto.protos.IAndroidBatteryMetric=} [properties] Properties to set\n */\n function AndroidBatteryMetric(properties) {\n this.batteryCounters = [];\n this.suspendPeriod = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * AndroidBatteryMetric batteryCounters.\n * @member {Array.<perfetto.protos.AndroidBatteryMetric.IBatteryCounters>} batteryCounters\n * @memberof perfetto.protos.AndroidBatteryMetric\n * @instance\n */\n AndroidBatteryMetric.prototype.batteryCounters = $util.emptyArray;\n\n /**\n * AndroidBatteryMetric batteryAggregates.\n * @member {perfetto.protos.AndroidBatteryMetric.IBatteryAggregates|null|undefined} batteryAggregates\n * @memberof perfetto.protos.AndroidBatteryMetric\n * @instance\n */\n AndroidBatteryMetric.prototype.batteryAggregates = null;\n\n /**\n * AndroidBatteryMetric suspendPeriod.\n * @member {Array.<perfetto.protos.AndroidBatteryMetric.ISuspendPeriod>} suspendPeriod\n * @memberof perfetto.protos.AndroidBatteryMetric\n * @instance\n */\n AndroidBatteryMetric.prototype.suspendPeriod = $util.emptyArray;\n\n /**\n * Creates a new AndroidBatteryMetric instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidBatteryMetric\n * @static\n * @param {perfetto.protos.IAndroidBatteryMetric=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidBatteryMetric} AndroidBatteryMetric instance\n */\n AndroidBatteryMetric.create = function create(properties) {\n return new AndroidBatteryMetric(properties);\n };\n\n /**\n * Encodes the specified AndroidBatteryMetric message. Does not implicitly {@link perfetto.protos.AndroidBatteryMetric.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidBatteryMetric\n * @static\n * @param {perfetto.protos.IAndroidBatteryMetric} message AndroidBatteryMetric message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n AndroidBatteryMetric.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.batteryCounters != null && message.batteryCounters.length)\n for (var i = 0; i < message.batteryCounters.length; ++i)\n $root.perfetto.protos.AndroidBatteryMetric.BatteryCounters.encode(message.batteryCounters[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n if (message.batteryAggregates != null && Object.hasOwnProperty.call(message, \"batteryAggregates\"))\n $root.perfetto.protos.AndroidBatteryMetric.BatteryAggregates.encode(message.batteryAggregates, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n if (message.suspendPeriod != null && message.suspendPeriod.length)\n for (var i = 0; i < message.suspendPeriod.length; ++i)\n $root.perfetto.protos.AndroidBatteryMetric.SuspendPeriod.encode(message.suspendPeriod[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified AndroidBatteryMetric message, length delimited. Does not implicitly {@link perfetto.protos.AndroidBatteryMetric.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidBatteryMetric\n * @static\n * @param {perfetto.protos.IAndroidBatteryMetric} message AndroidBatteryMetric message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n AndroidBatteryMetric.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes an AndroidBatteryMetric message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidBatteryMetric\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidBatteryMetric} AndroidBatteryMetric\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n AndroidBatteryMetric.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidBatteryMetric();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (!(message.batteryCounters && message.batteryCounters.length))\n message.batteryCounters = [];\n message.batteryCounters.push($root.perfetto.protos.AndroidBatteryMetric.BatteryCounters.decode(reader, reader.uint32()));\n break;\n case 2:\n message.batteryAggregates = $root.perfetto.protos.AndroidBatteryMetric.BatteryAggregates.decode(reader, reader.uint32());\n break;\n case 3:\n if (!(message.suspendPeriod && message.suspendPeriod.length))\n message.suspendPeriod = [];\n message.suspendPeriod.push($root.perfetto.protos.AndroidBatteryMetric.SuspendPeriod.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes an AndroidBatteryMetric message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidBatteryMetric\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidBatteryMetric} AndroidBatteryMetric\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n AndroidBatteryMetric.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies an AndroidBatteryMetric message.\n * @function verify\n * @memberof perfetto.protos.AndroidBatteryMetric\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n AndroidBatteryMetric.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.batteryCounters != null && message.hasOwnProperty(\"batteryCounters\")) {\n if (!Array.isArray(message.batteryCounters))\n return \"batteryCounters: array expected\";\n for (var i = 0; i < message.batteryCounters.length; ++i) {\n var error = $root.perfetto.protos.AndroidBatteryMetric.BatteryCounters.verify(message.batteryCounters[i]);\n if (error)\n return \"batteryCounters.\" + error;\n }\n }\n if (message.batteryAggregates != null && message.hasOwnProperty(\"batteryAggregates\")) {\n var error = $root.perfetto.protos.AndroidBatteryMetric.BatteryAggregates.verify(message.batteryAggregates);\n if (error)\n return \"batteryAggregates.\" + error;\n }\n if (message.suspendPeriod != null && message.hasOwnProperty(\"suspendPeriod\")) {\n if (!Array.isArray(message.suspendPeriod))\n return \"suspendPeriod: array expected\";\n for (var i = 0; i < message.suspendPeriod.length; ++i) {\n var error = $root.perfetto.protos.AndroidBatteryMetric.SuspendPeriod.verify(message.suspendPeriod[i]);\n if (error)\n return \"suspendPeriod.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates an AndroidBatteryMetric message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidBatteryMetric\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidBatteryMetric} AndroidBatteryMetric\n */\n AndroidBatteryMetric.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidBatteryMetric)\n return object;\n var message = new $root.perfetto.protos.AndroidBatteryMetric();\n if (object.batteryCounters) {\n if (!Array.isArray(object.batteryCounters))\n throw TypeError(\".perfetto.protos.AndroidBatteryMetric.batteryCounters: array expected\");\n message.batteryCounters = [];\n for (var i = 0; i < object.batteryCounters.length; ++i) {\n if (typeof object.batteryCounters[i] !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidBatteryMetric.batteryCounters: object expected\");\n message.batteryCounters[i] = $root.perfetto.protos.AndroidBatteryMetric.BatteryCounters.fromObject(object.batteryCounters[i]);\n }\n }\n if (object.batteryAggregates != null) {\n if (typeof object.batteryAggregates !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidBatteryMetric.batteryAggregates: object expected\");\n message.batteryAggregates = $root.perfetto.protos.AndroidBatteryMetric.BatteryAggregates.fromObject(object.batteryAggregates);\n }\n if (object.suspendPeriod) {\n if (!Array.isArray(object.suspendPeriod))\n throw TypeError(\".perfetto.protos.AndroidBatteryMetric.suspendPeriod: array expected\");\n message.suspendPeriod = [];\n for (var i = 0; i < object.suspendPeriod.length; ++i) {\n if (typeof object.suspendPeriod[i] !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidBatteryMetric.suspendPeriod: object expected\");\n message.suspendPeriod[i] = $root.perfetto.protos.AndroidBatteryMetric.SuspendPeriod.fromObject(object.suspendPeriod[i]);\n }\n }\n return message;\n };\n\n /**\n * Creates a plain object from an AndroidBatteryMetric message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidBatteryMetric\n * @static\n * @param {perfetto.protos.AndroidBatteryMetric} message AndroidBatteryMetric\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n AndroidBatteryMetric.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults) {\n object.batteryCounters = [];\n object.suspendPeriod = [];\n }\n if (options.defaults)\n object.batteryAggregates = null;\n if (message.batteryCounters && message.batteryCounters.length) {\n object.batteryCounters = [];\n for (var j = 0; j < message.batteryCounters.length; ++j)\n object.batteryCounters[j] = $root.perfetto.protos.AndroidBatteryMetric.BatteryCounters.toObject(message.batteryCounters[j], options);\n }\n if (message.batteryAggregates != null && message.hasOwnProperty(\"batteryAggregates\"))\n object.batteryAggregates = $root.perfetto.protos.AndroidBatteryMetric.BatteryAggregates.toObject(message.batteryAggregates, options);\n if (message.suspendPeriod && message.suspendPeriod.length) {\n object.suspendPeriod = [];\n for (var j = 0; j < message.suspendPeriod.length; ++j)\n object.suspendPeriod[j] = $root.perfetto.protos.AndroidBatteryMetric.SuspendPeriod.toObject(message.suspendPeriod[j], options);\n }\n return object;\n };\n\n /**\n * Converts this AndroidBatteryMetric to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidBatteryMetric\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n AndroidBatteryMetric.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n AndroidBatteryMetric.BatteryCounters = (function() {\n\n /**\n * Properties of a BatteryCounters.\n * @memberof perfetto.protos.AndroidBatteryMetric\n * @interface IBatteryCounters\n * @property {number|null} [timestampNs] BatteryCounters timestampNs\n * @property {number|null} [chargeCounterUah] BatteryCounters chargeCounterUah\n * @property {number|null} [capacityPercent] BatteryCounters capacityPercent\n * @property {number|null} [currentUa] BatteryCounters currentUa\n * @property {number|null} [currentAvgUa] BatteryCounters currentAvgUa\n */\n\n /**\n * Constructs a new BatteryCounters.\n * @memberof perfetto.protos.AndroidBatteryMetric\n * @classdesc Represents a BatteryCounters.\n * @implements IBatteryCounters\n * @constructor\n * @param {perfetto.protos.AndroidBatteryMetric.IBatteryCounters=} [properties] Properties to set\n */\n function BatteryCounters(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * BatteryCounters timestampNs.\n * @member {number} timestampNs\n * @memberof perfetto.protos.AndroidBatteryMetric.BatteryCounters\n * @instance\n */\n BatteryCounters.prototype.timestampNs = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * BatteryCounters chargeCounterUah.\n * @member {number} chargeCounterUah\n * @memberof perfetto.protos.AndroidBatteryMetric.BatteryCounters\n * @instance\n */\n BatteryCounters.prototype.chargeCounterUah = 0;\n\n /**\n * BatteryCounters capacityPercent.\n * @member {number} capacityPercent\n * @memberof perfetto.protos.AndroidBatteryMetric.BatteryCounters\n * @instance\n */\n BatteryCounters.prototype.capacityPercent = 0;\n\n /**\n * BatteryCounters currentUa.\n * @member {number} currentUa\n * @memberof perfetto.protos.AndroidBatteryMetric.BatteryCounters\n * @instance\n */\n BatteryCounters.prototype.currentUa = 0;\n\n /**\n * BatteryCounters currentAvgUa.\n * @member {number} currentAvgUa\n * @memberof perfetto.protos.AndroidBatteryMetric.BatteryCounters\n * @instance\n */\n BatteryCounters.prototype.currentAvgUa = 0;\n\n /**\n * Creates a new BatteryCounters instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidBatteryMetric.BatteryCounters\n * @static\n * @param {perfetto.protos.AndroidBatteryMetric.IBatteryCounters=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidBatteryMetric.BatteryCounters} BatteryCounters instance\n */\n BatteryCounters.create = function create(properties) {\n return new BatteryCounters(properties);\n };\n\n /**\n * Encodes the specified BatteryCounters message. Does not implicitly {@link perfetto.protos.AndroidBatteryMetric.BatteryCounters.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidBatteryMetric.BatteryCounters\n * @static\n * @param {perfetto.protos.AndroidBatteryMetric.IBatteryCounters} message BatteryCounters message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n BatteryCounters.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.timestampNs != null && Object.hasOwnProperty.call(message, \"timestampNs\"))\n writer.uint32(/* id 1, wireType 0 =*/8).int64(message.timestampNs);\n if (message.chargeCounterUah != null && Object.hasOwnProperty.call(message, \"chargeCounterUah\"))\n writer.uint32(/* id 2, wireType 1 =*/17).double(message.chargeCounterUah);\n if (message.capacityPercent != null && Object.hasOwnProperty.call(message, \"capacityPercent\"))\n writer.uint32(/* id 3, wireType 5 =*/29).float(message.capacityPercent);\n if (message.currentUa != null && Object.hasOwnProperty.call(message, \"currentUa\"))\n writer.uint32(/* id 4, wireType 1 =*/33).double(message.currentUa);\n if (message.currentAvgUa != null && Object.hasOwnProperty.call(message, \"currentAvgUa\"))\n writer.uint32(/* id 5, wireType 1 =*/41).double(message.currentAvgUa);\n return writer;\n };\n\n /**\n * Encodes the specified BatteryCounters message, length delimited. Does not implicitly {@link perfetto.protos.AndroidBatteryMetric.BatteryCounters.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidBatteryMetric.BatteryCounters\n * @static\n * @param {perfetto.protos.AndroidBatteryMetric.IBatteryCounters} message BatteryCounters message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n BatteryCounters.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a BatteryCounters message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidBatteryMetric.BatteryCounters\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidBatteryMetric.BatteryCounters} BatteryCounters\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n BatteryCounters.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidBatteryMetric.BatteryCounters();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.timestampNs = reader.int64();\n break;\n case 2:\n message.chargeCounterUah = reader.double();\n break;\n case 3:\n message.capacityPercent = reader.float();\n break;\n case 4:\n message.currentUa = reader.double();\n break;\n case 5:\n message.currentAvgUa = reader.double();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a BatteryCounters message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidBatteryMetric.BatteryCounters\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidBatteryMetric.BatteryCounters} BatteryCounters\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n BatteryCounters.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a BatteryCounters message.\n * @function verify\n * @memberof perfetto.protos.AndroidBatteryMetric.BatteryCounters\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n BatteryCounters.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.timestampNs != null && message.hasOwnProperty(\"timestampNs\"))\n if (!$util.isInteger(message.timestampNs) && !(message.timestampNs && $util.isInteger(message.timestampNs.low) && $util.isInteger(message.timestampNs.high)))\n return \"timestampNs: integer|Long expected\";\n if (message.chargeCounterUah != null && message.hasOwnProperty(\"chargeCounterUah\"))\n if (typeof message.chargeCounterUah !== \"number\")\n return \"chargeCounterUah: number expected\";\n if (message.capacityPercent != null && message.hasOwnProperty(\"capacityPercent\"))\n if (typeof message.capacityPercent !== \"number\")\n return \"capacityPercent: number expected\";\n if (message.currentUa != null && message.hasOwnProperty(\"currentUa\"))\n if (typeof message.currentUa !== \"number\")\n return \"currentUa: number expected\";\n if (message.currentAvgUa != null && message.hasOwnProperty(\"currentAvgUa\"))\n if (typeof message.currentAvgUa !== \"number\")\n return \"currentAvgUa: number expected\";\n return null;\n };\n\n /**\n * Creates a BatteryCounters message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidBatteryMetric.BatteryCounters\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidBatteryMetric.BatteryCounters} BatteryCounters\n */\n BatteryCounters.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidBatteryMetric.BatteryCounters)\n return object;\n var message = new $root.perfetto.protos.AndroidBatteryMetric.BatteryCounters();\n if (object.timestampNs != null)\n if ($util.Long)\n (message.timestampNs = $util.Long.fromValue(object.timestampNs)).unsigned = false;\n else if (typeof object.timestampNs === \"string\")\n message.timestampNs = parseInt(object.timestampNs, 10);\n else if (typeof object.timestampNs === \"number\")\n message.timestampNs = object.timestampNs;\n else if (typeof object.timestampNs === \"object\")\n message.timestampNs = new $util.LongBits(object.timestampNs.low >>> 0, object.timestampNs.high >>> 0).toNumber();\n if (object.chargeCounterUah != null)\n message.chargeCounterUah = Number(object.chargeCounterUah);\n if (object.capacityPercent != null)\n message.capacityPercent = Number(object.capacityPercent);\n if (object.currentUa != null)\n message.currentUa = Number(object.currentUa);\n if (object.currentAvgUa != null)\n message.currentAvgUa = Number(object.currentAvgUa);\n return message;\n };\n\n /**\n * Creates a plain object from a BatteryCounters message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidBatteryMetric.BatteryCounters\n * @static\n * @param {perfetto.protos.AndroidBatteryMetric.BatteryCounters} message BatteryCounters\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n BatteryCounters.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.timestampNs = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.timestampNs = options.longs === String ? \"0\" : 0;\n object.chargeCounterUah = 0;\n object.capacityPercent = 0;\n object.currentUa = 0;\n object.currentAvgUa = 0;\n }\n if (message.timestampNs != null && message.hasOwnProperty(\"timestampNs\"))\n if (typeof message.timestampNs === \"number\")\n object.timestampNs = options.longs === String ? String(message.timestampNs) : message.timestampNs;\n else\n object.timestampNs = options.longs === String ? $util.Long.prototype.toString.call(message.timestampNs) : options.longs === Number ? new $util.LongBits(message.timestampNs.low >>> 0, message.timestampNs.high >>> 0).toNumber() : message.timestampNs;\n if (message.chargeCounterUah != null && message.hasOwnProperty(\"chargeCounterUah\"))\n object.chargeCounterUah = options.json && !isFinite(message.chargeCounterUah) ? String(message.chargeCounterUah) : message.chargeCounterUah;\n if (message.capacityPercent != null && message.hasOwnProperty(\"capacityPercent\"))\n object.capacityPercent = options.json && !isFinite(message.capacityPercent) ? String(message.capacityPercent) : message.capacityPercent;\n if (message.currentUa != null && message.hasOwnProperty(\"currentUa\"))\n object.currentUa = options.json && !isFinite(message.currentUa) ? String(message.currentUa) : message.currentUa;\n if (message.currentAvgUa != null && message.hasOwnProperty(\"currentAvgUa\"))\n object.currentAvgUa = options.json && !isFinite(message.currentAvgUa) ? String(message.currentAvgUa) : message.currentAvgUa;\n return object;\n };\n\n /**\n * Converts this BatteryCounters to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidBatteryMetric.BatteryCounters\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n BatteryCounters.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return BatteryCounters;\n })();\n\n AndroidBatteryMetric.BatteryAggregates = (function() {\n\n /**\n * Properties of a BatteryAggregates.\n * @memberof perfetto.protos.AndroidBatteryMetric\n * @interface IBatteryAggregates\n * @property {number|null} [totalScreenOffNs] BatteryAggregates totalScreenOffNs\n * @property {number|null} [totalScreenOnNs] BatteryAggregates totalScreenOnNs\n * @property {number|null} [totalScreenDozeNs] BatteryAggregates totalScreenDozeNs\n * @property {number|null} [totalWakelockNs] BatteryAggregates totalWakelockNs\n * @property {number|null} [sleepNs] BatteryAggregates sleepNs\n * @property {number|null} [sleepScreenOffNs] BatteryAggregates sleepScreenOffNs\n * @property {number|null} [sleepScreenOnNs] BatteryAggregates sleepScreenOnNs\n * @property {number|null} [sleepScreenDozeNs] BatteryAggregates sleepScreenDozeNs\n */\n\n /**\n * Constructs a new BatteryAggregates.\n * @memberof perfetto.protos.AndroidBatteryMetric\n * @classdesc Represents a BatteryAggregates.\n * @implements IBatteryAggregates\n * @constructor\n * @param {perfetto.protos.AndroidBatteryMetric.IBatteryAggregates=} [properties] Properties to set\n */\n function BatteryAggregates(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * BatteryAggregates totalScreenOffNs.\n * @member {number} totalScreenOffNs\n * @memberof perfetto.protos.AndroidBatteryMetric.BatteryAggregates\n * @instance\n */\n BatteryAggregates.prototype.totalScreenOffNs = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * BatteryAggregates totalScreenOnNs.\n * @member {number} totalScreenOnNs\n * @memberof perfetto.protos.AndroidBatteryMetric.BatteryAggregates\n * @instance\n */\n BatteryAggregates.prototype.totalScreenOnNs = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * BatteryAggregates totalScreenDozeNs.\n * @member {number} totalScreenDozeNs\n * @memberof perfetto.protos.AndroidBatteryMetric.BatteryAggregates\n * @instance\n */\n BatteryAggregates.prototype.totalScreenDozeNs = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * BatteryAggregates totalWakelockNs.\n * @member {number} totalWakelockNs\n * @memberof perfetto.protos.AndroidBatteryMetric.BatteryAggregates\n * @instance\n */\n BatteryAggregates.prototype.totalWakelockNs = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * BatteryAggregates sleepNs.\n * @member {number} sleepNs\n * @memberof perfetto.protos.AndroidBatteryMetric.BatteryAggregates\n * @instance\n */\n BatteryAggregates.prototype.sleepNs = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * BatteryAggregates sleepScreenOffNs.\n * @member {number} sleepScreenOffNs\n * @memberof perfetto.protos.AndroidBatteryMetric.BatteryAggregates\n * @instance\n */\n BatteryAggregates.prototype.sleepScreenOffNs = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * BatteryAggregates sleepScreenOnNs.\n * @member {number} sleepScreenOnNs\n * @memberof perfetto.protos.AndroidBatteryMetric.BatteryAggregates\n * @instance\n */\n BatteryAggregates.prototype.sleepScreenOnNs = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * BatteryAggregates sleepScreenDozeNs.\n * @member {number} sleepScreenDozeNs\n * @memberof perfetto.protos.AndroidBatteryMetric.BatteryAggregates\n * @instance\n */\n BatteryAggregates.prototype.sleepScreenDozeNs = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * Creates a new BatteryAggregates instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidBatteryMetric.BatteryAggregates\n * @static\n * @param {perfetto.protos.AndroidBatteryMetric.IBatteryAggregates=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidBatteryMetric.BatteryAggregates} BatteryAggregates instance\n */\n BatteryAggregates.create = function create(properties) {\n return new BatteryAggregates(properties);\n };\n\n /**\n * Encodes the specified BatteryAggregates message. Does not implicitly {@link perfetto.protos.AndroidBatteryMetric.BatteryAggregates.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidBatteryMetric.BatteryAggregates\n * @static\n * @param {perfetto.protos.AndroidBatteryMetric.IBatteryAggregates} message BatteryAggregates message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n BatteryAggregates.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.totalScreenOffNs != null && Object.hasOwnProperty.call(message, \"totalScreenOffNs\"))\n writer.uint32(/* id 1, wireType 0 =*/8).int64(message.totalScreenOffNs);\n if (message.totalScreenOnNs != null && Object.hasOwnProperty.call(message, \"totalScreenOnNs\"))\n writer.uint32(/* id 2, wireType 0 =*/16).int64(message.totalScreenOnNs);\n if (message.totalScreenDozeNs != null && Object.hasOwnProperty.call(message, \"totalScreenDozeNs\"))\n writer.uint32(/* id 3, wireType 0 =*/24).int64(message.totalScreenDozeNs);\n if (message.totalWakelockNs != null && Object.hasOwnProperty.call(message, \"totalWakelockNs\"))\n writer.uint32(/* id 4, wireType 0 =*/32).int64(message.totalWakelockNs);\n if (message.sleepNs != null && Object.hasOwnProperty.call(message, \"sleepNs\"))\n writer.uint32(/* id 5, wireType 0 =*/40).int64(message.sleepNs);\n if (message.sleepScreenOffNs != null && Object.hasOwnProperty.call(message, \"sleepScreenOffNs\"))\n writer.uint32(/* id 6, wireType 0 =*/48).int64(message.sleepScreenOffNs);\n if (message.sleepScreenOnNs != null && Object.hasOwnProperty.call(message, \"sleepScreenOnNs\"))\n writer.uint32(/* id 7, wireType 0 =*/56).int64(message.sleepScreenOnNs);\n if (message.sleepScreenDozeNs != null && Object.hasOwnProperty.call(message, \"sleepScreenDozeNs\"))\n writer.uint32(/* id 8, wireType 0 =*/64).int64(message.sleepScreenDozeNs);\n return writer;\n };\n\n /**\n * Encodes the specified BatteryAggregates message, length delimited. Does not implicitly {@link perfetto.protos.AndroidBatteryMetric.BatteryAggregates.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidBatteryMetric.BatteryAggregates\n * @static\n * @param {perfetto.protos.AndroidBatteryMetric.IBatteryAggregates} message BatteryAggregates message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n BatteryAggregates.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a BatteryAggregates message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidBatteryMetric.BatteryAggregates\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidBatteryMetric.BatteryAggregates} BatteryAggregates\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n BatteryAggregates.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidBatteryMetric.BatteryAggregates();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.totalScreenOffNs = reader.int64();\n break;\n case 2:\n message.totalScreenOnNs = reader.int64();\n break;\n case 3:\n message.totalScreenDozeNs = reader.int64();\n break;\n case 4:\n message.totalWakelockNs = reader.int64();\n break;\n case 5:\n message.sleepNs = reader.int64();\n break;\n case 6:\n message.sleepScreenOffNs = reader.int64();\n break;\n case 7:\n message.sleepScreenOnNs = reader.int64();\n break;\n case 8:\n message.sleepScreenDozeNs = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a BatteryAggregates message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidBatteryMetric.BatteryAggregates\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidBatteryMetric.BatteryAggregates} BatteryAggregates\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n BatteryAggregates.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a BatteryAggregates message.\n * @function verify\n * @memberof perfetto.protos.AndroidBatteryMetric.BatteryAggregates\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n BatteryAggregates.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.totalScreenOffNs != null && message.hasOwnProperty(\"totalScreenOffNs\"))\n if (!$util.isInteger(message.totalScreenOffNs) && !(message.totalScreenOffNs && $util.isInteger(message.totalScreenOffNs.low) && $util.isInteger(message.totalScreenOffNs.high)))\n return \"totalScreenOffNs: integer|Long expected\";\n if (message.totalScreenOnNs != null && message.hasOwnProperty(\"totalScreenOnNs\"))\n if (!$util.isInteger(message.totalScreenOnNs) && !(message.totalScreenOnNs && $util.isInteger(message.totalScreenOnNs.low) && $util.isInteger(message.totalScreenOnNs.high)))\n return \"totalScreenOnNs: integer|Long expected\";\n if (message.totalScreenDozeNs != null && message.hasOwnProperty(\"totalScreenDozeNs\"))\n if (!$util.isInteger(message.totalScreenDozeNs) && !(message.totalScreenDozeNs && $util.isInteger(message.totalScreenDozeNs.low) && $util.isInteger(message.totalScreenDozeNs.high)))\n return \"totalScreenDozeNs: integer|Long expected\";\n if (message.totalWakelockNs != null && message.hasOwnProperty(\"totalWakelockNs\"))\n if (!$util.isInteger(message.totalWakelockNs) && !(message.totalWakelockNs && $util.isInteger(message.totalWakelockNs.low) && $util.isInteger(message.totalWakelockNs.high)))\n return \"totalWakelockNs: integer|Long expected\";\n if (message.sleepNs != null && message.hasOwnProperty(\"sleepNs\"))\n if (!$util.isInteger(message.sleepNs) && !(message.sleepNs && $util.isInteger(message.sleepNs.low) && $util.isInteger(message.sleepNs.high)))\n return \"sleepNs: integer|Long expected\";\n if (message.sleepScreenOffNs != null && message.hasOwnProperty(\"sleepScreenOffNs\"))\n if (!$util.isInteger(message.sleepScreenOffNs) && !(message.sleepScreenOffNs && $util.isInteger(message.sleepScreenOffNs.low) && $util.isInteger(message.sleepScreenOffNs.high)))\n return \"sleepScreenOffNs: integer|Long expected\";\n if (message.sleepScreenOnNs != null && message.hasOwnProperty(\"sleepScreenOnNs\"))\n if (!$util.isInteger(message.sleepScreenOnNs) && !(message.sleepScreenOnNs && $util.isInteger(message.sleepScreenOnNs.low) && $util.isInteger(message.sleepScreenOnNs.high)))\n return \"sleepScreenOnNs: integer|Long expected\";\n if (message.sleepScreenDozeNs != null && message.hasOwnProperty(\"sleepScreenDozeNs\"))\n if (!$util.isInteger(message.sleepScreenDozeNs) && !(message.sleepScreenDozeNs && $util.isInteger(message.sleepScreenDozeNs.low) && $util.isInteger(message.sleepScreenDozeNs.high)))\n return \"sleepScreenDozeNs: integer|Long expected\";\n return null;\n };\n\n /**\n * Creates a BatteryAggregates message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidBatteryMetric.BatteryAggregates\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidBatteryMetric.BatteryAggregates} BatteryAggregates\n */\n BatteryAggregates.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidBatteryMetric.BatteryAggregates)\n return object;\n var message = new $root.perfetto.protos.AndroidBatteryMetric.BatteryAggregates();\n if (object.totalScreenOffNs != null)\n if ($util.Long)\n (message.totalScreenOffNs = $util.Long.fromValue(object.totalScreenOffNs)).unsigned = false;\n else if (typeof object.totalScreenOffNs === \"string\")\n message.totalScreenOffNs = parseInt(object.totalScreenOffNs, 10);\n else if (typeof object.totalScreenOffNs === \"number\")\n message.totalScreenOffNs = object.totalScreenOffNs;\n else if (typeof object.totalScreenOffNs === \"object\")\n message.totalScreenOffNs = new $util.LongBits(object.totalScreenOffNs.low >>> 0, object.totalScreenOffNs.high >>> 0).toNumber();\n if (object.totalScreenOnNs != null)\n if ($util.Long)\n (message.totalScreenOnNs = $util.Long.fromValue(object.totalScreenOnNs)).unsigned = false;\n else if (typeof object.totalScreenOnNs === \"string\")\n message.totalScreenOnNs = parseInt(object.totalScreenOnNs, 10);\n else if (typeof object.totalScreenOnNs === \"number\")\n message.totalScreenOnNs = object.totalScreenOnNs;\n else if (typeof object.totalScreenOnNs === \"object\")\n message.totalScreenOnNs = new $util.LongBits(object.totalScreenOnNs.low >>> 0, object.totalScreenOnNs.high >>> 0).toNumber();\n if (object.totalScreenDozeNs != null)\n if ($util.Long)\n (message.totalScreenDozeNs = $util.Long.fromValue(object.totalScreenDozeNs)).unsigned = false;\n else if (typeof object.totalScreenDozeNs === \"string\")\n message.totalScreenDozeNs = parseInt(object.totalScreenDozeNs, 10);\n else if (typeof object.totalScreenDozeNs === \"number\")\n message.totalScreenDozeNs = object.totalScreenDozeNs;\n else if (typeof object.totalScreenDozeNs === \"object\")\n message.totalScreenDozeNs = new $util.LongBits(object.totalScreenDozeNs.low >>> 0, object.totalScreenDozeNs.high >>> 0).toNumber();\n if (object.totalWakelockNs != null)\n if ($util.Long)\n (message.totalWakelockNs = $util.Long.fromValue(object.totalWakelockNs)).unsigned = false;\n else if (typeof object.totalWakelockNs === \"string\")\n message.totalWakelockNs = parseInt(object.totalWakelockNs, 10);\n else if (typeof object.totalWakelockNs === \"number\")\n message.totalWakelockNs = object.totalWakelockNs;\n else if (typeof object.totalWakelockNs === \"object\")\n message.totalWakelockNs = new $util.LongBits(object.totalWakelockNs.low >>> 0, object.totalWakelockNs.high >>> 0).toNumber();\n if (object.sleepNs != null)\n if ($util.Long)\n (message.sleepNs = $util.Long.fromValue(object.sleepNs)).unsigned = false;\n else if (typeof object.sleepNs === \"string\")\n message.sleepNs = parseInt(object.sleepNs, 10);\n else if (typeof object.sleepNs === \"number\")\n message.sleepNs = object.sleepNs;\n else if (typeof object.sleepNs === \"object\")\n message.sleepNs = new $util.LongBits(object.sleepNs.low >>> 0, object.sleepNs.high >>> 0).toNumber();\n if (object.sleepScreenOffNs != null)\n if ($util.Long)\n (message.sleepScreenOffNs = $util.Long.fromValue(object.sleepScreenOffNs)).unsigned = false;\n else if (typeof object.sleepScreenOffNs === \"string\")\n message.sleepScreenOffNs = parseInt(object.sleepScreenOffNs, 10);\n else if (typeof object.sleepScreenOffNs === \"number\")\n message.sleepScreenOffNs = object.sleepScreenOffNs;\n else if (typeof object.sleepScreenOffNs === \"object\")\n message.sleepScreenOffNs = new $util.LongBits(object.sleepScreenOffNs.low >>> 0, object.sleepScreenOffNs.high >>> 0).toNumber();\n if (object.sleepScreenOnNs != null)\n if ($util.Long)\n (message.sleepScreenOnNs = $util.Long.fromValue(object.sleepScreenOnNs)).unsigned = false;\n else if (typeof object.sleepScreenOnNs === \"string\")\n message.sleepScreenOnNs = parseInt(object.sleepScreenOnNs, 10);\n else if (typeof object.sleepScreenOnNs === \"number\")\n message.sleepScreenOnNs = object.sleepScreenOnNs;\n else if (typeof object.sleepScreenOnNs === \"object\")\n message.sleepScreenOnNs = new $util.LongBits(object.sleepScreenOnNs.low >>> 0, object.sleepScreenOnNs.high >>> 0).toNumber();\n if (object.sleepScreenDozeNs != null)\n if ($util.Long)\n (message.sleepScreenDozeNs = $util.Long.fromValue(object.sleepScreenDozeNs)).unsigned = false;\n else if (typeof object.sleepScreenDozeNs === \"string\")\n message.sleepScreenDozeNs = parseInt(object.sleepScreenDozeNs, 10);\n else if (typeof object.sleepScreenDozeNs === \"number\")\n message.sleepScreenDozeNs = object.sleepScreenDozeNs;\n else if (typeof object.sleepScreenDozeNs === \"object\")\n message.sleepScreenDozeNs = new $util.LongBits(object.sleepScreenDozeNs.low >>> 0, object.sleepScreenDozeNs.high >>> 0).toNumber();\n return message;\n };\n\n /**\n * Creates a plain object from a BatteryAggregates message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidBatteryMetric.BatteryAggregates\n * @static\n * @param {perfetto.protos.AndroidBatteryMetric.BatteryAggregates} message BatteryAggregates\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n BatteryAggregates.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.totalScreenOffNs = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.totalScreenOffNs = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.totalScreenOnNs = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.totalScreenOnNs = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.totalScreenDozeNs = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.totalScreenDozeNs = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.totalWakelockNs = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.totalWakelockNs = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.sleepNs = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.sleepNs = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.sleepScreenOffNs = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.sleepScreenOffNs = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.sleepScreenOnNs = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.sleepScreenOnNs = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.sleepScreenDozeNs = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.sleepScreenDozeNs = options.longs === String ? \"0\" : 0;\n }\n if (message.totalScreenOffNs != null && message.hasOwnProperty(\"totalScreenOffNs\"))\n if (typeof message.totalScreenOffNs === \"number\")\n object.totalScreenOffNs = options.longs === String ? String(message.totalScreenOffNs) : message.totalScreenOffNs;\n else\n object.totalScreenOffNs = options.longs === String ? $util.Long.prototype.toString.call(message.totalScreenOffNs) : options.longs === Number ? new $util.LongBits(message.totalScreenOffNs.low >>> 0, message.totalScreenOffNs.high >>> 0).toNumber() : message.totalScreenOffNs;\n if (message.totalScreenOnNs != null && message.hasOwnProperty(\"totalScreenOnNs\"))\n if (typeof message.totalScreenOnNs === \"number\")\n object.totalScreenOnNs = options.longs === String ? String(message.totalScreenOnNs) : message.totalScreenOnNs;\n else\n object.totalScreenOnNs = options.longs === String ? $util.Long.prototype.toString.call(message.totalScreenOnNs) : options.longs === Number ? new $util.LongBits(message.totalScreenOnNs.low >>> 0, message.totalScreenOnNs.high >>> 0).toNumber() : message.totalScreenOnNs;\n if (message.totalScreenDozeNs != null && message.hasOwnProperty(\"totalScreenDozeNs\"))\n if (typeof message.totalScreenDozeNs === \"number\")\n object.totalScreenDozeNs = options.longs === String ? String(message.totalScreenDozeNs) : message.totalScreenDozeNs;\n else\n object.totalScreenDozeNs = options.longs === String ? $util.Long.prototype.toString.call(message.totalScreenDozeNs) : options.longs === Number ? new $util.LongBits(message.totalScreenDozeNs.low >>> 0, message.totalScreenDozeNs.high >>> 0).toNumber() : message.totalScreenDozeNs;\n if (message.totalWakelockNs != null && message.hasOwnProperty(\"totalWakelockNs\"))\n if (typeof message.totalWakelockNs === \"number\")\n object.totalWakelockNs = options.longs === String ? String(message.totalWakelockNs) : message.totalWakelockNs;\n else\n object.totalWakelockNs = options.longs === String ? $util.Long.prototype.toString.call(message.totalWakelockNs) : options.longs === Number ? new $util.LongBits(message.totalWakelockNs.low >>> 0, message.totalWakelockNs.high >>> 0).toNumber() : message.totalWakelockNs;\n if (message.sleepNs != null && message.hasOwnProperty(\"sleepNs\"))\n if (typeof message.sleepNs === \"number\")\n object.sleepNs = options.longs === String ? String(message.sleepNs) : message.sleepNs;\n else\n object.sleepNs = options.longs === String ? $util.Long.prototype.toString.call(message.sleepNs) : options.longs === Number ? new $util.LongBits(message.sleepNs.low >>> 0, message.sleepNs.high >>> 0).toNumber() : message.sleepNs;\n if (message.sleepScreenOffNs != null && message.hasOwnProperty(\"sleepScreenOffNs\"))\n if (typeof message.sleepScreenOffNs === \"number\")\n object.sleepScreenOffNs = options.longs === String ? String(message.sleepScreenOffNs) : message.sleepScreenOffNs;\n else\n object.sleepScreenOffNs = options.longs === String ? $util.Long.prototype.toString.call(message.sleepScreenOffNs) : options.longs === Number ? new $util.LongBits(message.sleepScreenOffNs.low >>> 0, message.sleepScreenOffNs.high >>> 0).toNumber() : message.sleepScreenOffNs;\n if (message.sleepScreenOnNs != null && message.hasOwnProperty(\"sleepScreenOnNs\"))\n if (typeof message.sleepScreenOnNs === \"number\")\n object.sleepScreenOnNs = options.longs === String ? String(message.sleepScreenOnNs) : message.sleepScreenOnNs;\n else\n object.sleepScreenOnNs = options.longs === String ? $util.Long.prototype.toString.call(message.sleepScreenOnNs) : options.longs === Number ? new $util.LongBits(message.sleepScreenOnNs.low >>> 0, message.sleepScreenOnNs.high >>> 0).toNumber() : message.sleepScreenOnNs;\n if (message.sleepScreenDozeNs != null && message.hasOwnProperty(\"sleepScreenDozeNs\"))\n if (typeof message.sleepScreenDozeNs === \"number\")\n object.sleepScreenDozeNs = options.longs === String ? String(message.sleepScreenDozeNs) : message.sleepScreenDozeNs;\n else\n object.sleepScreenDozeNs = options.longs === String ? $util.Long.prototype.toString.call(message.sleepScreenDozeNs) : options.longs === Number ? new $util.LongBits(message.sleepScreenDozeNs.low >>> 0, message.sleepScreenDozeNs.high >>> 0).toNumber() : message.sleepScreenDozeNs;\n return object;\n };\n\n /**\n * Converts this BatteryAggregates to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidBatteryMetric.BatteryAggregates\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n BatteryAggregates.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return BatteryAggregates;\n })();\n\n AndroidBatteryMetric.SuspendPeriod = (function() {\n\n /**\n * Properties of a SuspendPeriod.\n * @memberof perfetto.protos.AndroidBatteryMetric\n * @interface ISuspendPeriod\n * @property {number|null} [timestampNs] SuspendPeriod timestampNs\n * @property {number|null} [durationNs] SuspendPeriod durationNs\n */\n\n /**\n * Constructs a new SuspendPeriod.\n * @memberof perfetto.protos.AndroidBatteryMetric\n * @classdesc Represents a SuspendPeriod.\n * @implements ISuspendPeriod\n * @constructor\n * @param {perfetto.protos.AndroidBatteryMetric.ISuspendPeriod=} [properties] Properties to set\n */\n function SuspendPeriod(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * SuspendPeriod timestampNs.\n * @member {number} timestampNs\n * @memberof perfetto.protos.AndroidBatteryMetric.SuspendPeriod\n * @instance\n */\n SuspendPeriod.prototype.timestampNs = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * SuspendPeriod durationNs.\n * @member {number} durationNs\n * @memberof perfetto.protos.AndroidBatteryMetric.SuspendPeriod\n * @instance\n */\n SuspendPeriod.prototype.durationNs = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * Creates a new SuspendPeriod instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidBatteryMetric.SuspendPeriod\n * @static\n * @param {perfetto.protos.AndroidBatteryMetric.ISuspendPeriod=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidBatteryMetric.SuspendPeriod} SuspendPeriod instance\n */\n SuspendPeriod.create = function create(properties) {\n return new SuspendPeriod(properties);\n };\n\n /**\n * Encodes the specified SuspendPeriod message. Does not implicitly {@link perfetto.protos.AndroidBatteryMetric.SuspendPeriod.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidBatteryMetric.SuspendPeriod\n * @static\n * @param {perfetto.protos.AndroidBatteryMetric.ISuspendPeriod} message SuspendPeriod message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n SuspendPeriod.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.timestampNs != null && Object.hasOwnProperty.call(message, \"timestampNs\"))\n writer.uint32(/* id 1, wireType 0 =*/8).int64(message.timestampNs);\n if (message.durationNs != null && Object.hasOwnProperty.call(message, \"durationNs\"))\n writer.uint32(/* id 2, wireType 0 =*/16).int64(message.durationNs);\n return writer;\n };\n\n /**\n * Encodes the specified SuspendPeriod message, length delimited. Does not implicitly {@link perfetto.protos.AndroidBatteryMetric.SuspendPeriod.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidBatteryMetric.SuspendPeriod\n * @static\n * @param {perfetto.protos.AndroidBatteryMetric.ISuspendPeriod} message SuspendPeriod message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n SuspendPeriod.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a SuspendPeriod message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidBatteryMetric.SuspendPeriod\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidBatteryMetric.SuspendPeriod} SuspendPeriod\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n SuspendPeriod.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidBatteryMetric.SuspendPeriod();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.timestampNs = reader.int64();\n break;\n case 2:\n message.durationNs = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a SuspendPeriod message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidBatteryMetric.SuspendPeriod\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidBatteryMetric.SuspendPeriod} SuspendPeriod\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n SuspendPeriod.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a SuspendPeriod message.\n * @function verify\n * @memberof perfetto.protos.AndroidBatteryMetric.SuspendPeriod\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n SuspendPeriod.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.timestampNs != null && message.hasOwnProperty(\"timestampNs\"))\n if (!$util.isInteger(message.timestampNs) && !(message.timestampNs && $util.isInteger(message.timestampNs.low) && $util.isInteger(message.timestampNs.high)))\n return \"timestampNs: integer|Long expected\";\n if (message.durationNs != null && message.hasOwnProperty(\"durationNs\"))\n if (!$util.isInteger(message.durationNs) && !(message.durationNs && $util.isInteger(message.durationNs.low) && $util.isInteger(message.durationNs.high)))\n return \"durationNs: integer|Long expected\";\n return null;\n };\n\n /**\n * Creates a SuspendPeriod message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidBatteryMetric.SuspendPeriod\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidBatteryMetric.SuspendPeriod} SuspendPeriod\n */\n SuspendPeriod.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidBatteryMetric.SuspendPeriod)\n return object;\n var message = new $root.perfetto.protos.AndroidBatteryMetric.SuspendPeriod();\n if (object.timestampNs != null)\n if ($util.Long)\n (message.timestampNs = $util.Long.fromValue(object.timestampNs)).unsigned = false;\n else if (typeof object.timestampNs === \"string\")\n message.timestampNs = parseInt(object.timestampNs, 10);\n else if (typeof object.timestampNs === \"number\")\n message.timestampNs = object.timestampNs;\n else if (typeof object.timestampNs === \"object\")\n message.timestampNs = new $util.LongBits(object.timestampNs.low >>> 0, object.timestampNs.high >>> 0).toNumber();\n if (object.durationNs != null)\n if ($util.Long)\n (message.durationNs = $util.Long.fromValue(object.durationNs)).unsigned = false;\n else if (typeof object.durationNs === \"string\")\n message.durationNs = parseInt(object.durationNs, 10);\n else if (typeof object.durationNs === \"number\")\n message.durationNs = object.durationNs;\n else if (typeof object.durationNs === \"object\")\n message.durationNs = new $util.LongBits(object.durationNs.low >>> 0, object.durationNs.high >>> 0).toNumber();\n return message;\n };\n\n /**\n * Creates a plain object from a SuspendPeriod message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidBatteryMetric.SuspendPeriod\n * @static\n * @param {perfetto.protos.AndroidBatteryMetric.SuspendPeriod} message SuspendPeriod\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n SuspendPeriod.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.timestampNs = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.timestampNs = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.durationNs = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.durationNs = options.longs === String ? \"0\" : 0;\n }\n if (message.timestampNs != null && message.hasOwnProperty(\"timestampNs\"))\n if (typeof message.timestampNs === \"number\")\n object.timestampNs = options.longs === String ? String(message.timestampNs) : message.timestampNs;\n else\n object.timestampNs = options.longs === String ? $util.Long.prototype.toString.call(message.timestampNs) : options.longs === Number ? new $util.LongBits(message.timestampNs.low >>> 0, message.timestampNs.high >>> 0).toNumber() : message.timestampNs;\n if (message.durationNs != null && message.hasOwnProperty(\"durationNs\"))\n if (typeof message.durationNs === \"number\")\n object.durationNs = options.longs === String ? String(message.durationNs) : message.durationNs;\n else\n object.durationNs = options.longs === String ? $util.Long.prototype.toString.call(message.durationNs) : options.longs === Number ? new $util.LongBits(message.durationNs.low >>> 0, message.durationNs.high >>> 0).toNumber() : message.durationNs;\n return object;\n };\n\n /**\n * Converts this SuspendPeriod to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidBatteryMetric.SuspendPeriod\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n SuspendPeriod.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return SuspendPeriod;\n })();\n\n return AndroidBatteryMetric;\n })();\n\n protos.AndroidCpuMetric = (function() {\n\n /**\n * Properties of an AndroidCpuMetric.\n * @memberof perfetto.protos\n * @interface IAndroidCpuMetric\n * @property {Array.<perfetto.protos.AndroidCpuMetric.IProcess>|null} [processInfo] AndroidCpuMetric processInfo\n */\n\n /**\n * Constructs a new AndroidCpuMetric.\n * @memberof perfetto.protos\n * @classdesc Represents an AndroidCpuMetric.\n * @implements IAndroidCpuMetric\n * @constructor\n * @param {perfetto.protos.IAndroidCpuMetric=} [properties] Properties to set\n */\n function AndroidCpuMetric(properties) {\n this.processInfo = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * AndroidCpuMetric processInfo.\n * @member {Array.<perfetto.protos.AndroidCpuMetric.IProcess>} processInfo\n * @memberof perfetto.protos.AndroidCpuMetric\n * @instance\n */\n AndroidCpuMetric.prototype.processInfo = $util.emptyArray;\n\n /**\n * Creates a new AndroidCpuMetric instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidCpuMetric\n * @static\n * @param {perfetto.protos.IAndroidCpuMetric=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidCpuMetric} AndroidCpuMetric instance\n */\n AndroidCpuMetric.create = function create(properties) {\n return new AndroidCpuMetric(properties);\n };\n\n /**\n * Encodes the specified AndroidCpuMetric message. Does not implicitly {@link perfetto.protos.AndroidCpuMetric.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidCpuMetric\n * @static\n * @param {perfetto.protos.IAndroidCpuMetric} message AndroidCpuMetric message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n AndroidCpuMetric.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.processInfo != null && message.processInfo.length)\n for (var i = 0; i < message.processInfo.length; ++i)\n $root.perfetto.protos.AndroidCpuMetric.Process.encode(message.processInfo[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified AndroidCpuMetric message, length delimited. Does not implicitly {@link perfetto.protos.AndroidCpuMetric.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidCpuMetric\n * @static\n * @param {perfetto.protos.IAndroidCpuMetric} message AndroidCpuMetric message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n AndroidCpuMetric.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes an AndroidCpuMetric message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidCpuMetric\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidCpuMetric} AndroidCpuMetric\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n AndroidCpuMetric.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidCpuMetric();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (!(message.processInfo && message.processInfo.length))\n message.processInfo = [];\n message.processInfo.push($root.perfetto.protos.AndroidCpuMetric.Process.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes an AndroidCpuMetric message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidCpuMetric\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidCpuMetric} AndroidCpuMetric\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n AndroidCpuMetric.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies an AndroidCpuMetric message.\n * @function verify\n * @memberof perfetto.protos.AndroidCpuMetric\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n AndroidCpuMetric.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.processInfo != null && message.hasOwnProperty(\"processInfo\")) {\n if (!Array.isArray(message.processInfo))\n return \"processInfo: array expected\";\n for (var i = 0; i < message.processInfo.length; ++i) {\n var error = $root.perfetto.protos.AndroidCpuMetric.Process.verify(message.processInfo[i]);\n if (error)\n return \"processInfo.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates an AndroidCpuMetric message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidCpuMetric\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidCpuMetric} AndroidCpuMetric\n */\n AndroidCpuMetric.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidCpuMetric)\n return object;\n var message = new $root.perfetto.protos.AndroidCpuMetric();\n if (object.processInfo) {\n if (!Array.isArray(object.processInfo))\n throw TypeError(\".perfetto.protos.AndroidCpuMetric.processInfo: array expected\");\n message.processInfo = [];\n for (var i = 0; i < object.processInfo.length; ++i) {\n if (typeof object.processInfo[i] !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidCpuMetric.processInfo: object expected\");\n message.processInfo[i] = $root.perfetto.protos.AndroidCpuMetric.Process.fromObject(object.processInfo[i]);\n }\n }\n return message;\n };\n\n /**\n * Creates a plain object from an AndroidCpuMetric message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidCpuMetric\n * @static\n * @param {perfetto.protos.AndroidCpuMetric} message AndroidCpuMetric\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n AndroidCpuMetric.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.processInfo = [];\n if (message.processInfo && message.processInfo.length) {\n object.processInfo = [];\n for (var j = 0; j < message.processInfo.length; ++j)\n object.processInfo[j] = $root.perfetto.protos.AndroidCpuMetric.Process.toObject(message.processInfo[j], options);\n }\n return object;\n };\n\n /**\n * Converts this AndroidCpuMetric to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidCpuMetric\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n AndroidCpuMetric.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n AndroidCpuMetric.Metrics = (function() {\n\n /**\n * Properties of a Metrics.\n * @memberof perfetto.protos.AndroidCpuMetric\n * @interface IMetrics\n * @property {number|null} [mcycles] Metrics mcycles\n * @property {number|null} [runtimeNs] Metrics runtimeNs\n * @property {number|null} [minFreqKhz] Metrics minFreqKhz\n * @property {number|null} [maxFreqKhz] Metrics maxFreqKhz\n * @property {number|null} [avgFreqKhz] Metrics avgFreqKhz\n */\n\n /**\n * Constructs a new Metrics.\n * @memberof perfetto.protos.AndroidCpuMetric\n * @classdesc Represents a Metrics.\n * @implements IMetrics\n * @constructor\n * @param {perfetto.protos.AndroidCpuMetric.IMetrics=} [properties] Properties to set\n */\n function Metrics(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * Metrics mcycles.\n * @member {number} mcycles\n * @memberof perfetto.protos.AndroidCpuMetric.Metrics\n * @instance\n */\n Metrics.prototype.mcycles = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * Metrics runtimeNs.\n * @member {number} runtimeNs\n * @memberof perfetto.protos.AndroidCpuMetric.Metrics\n * @instance\n */\n Metrics.prototype.runtimeNs = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * Metrics minFreqKhz.\n * @member {number} minFreqKhz\n * @memberof perfetto.protos.AndroidCpuMetric.Metrics\n * @instance\n */\n Metrics.prototype.minFreqKhz = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * Metrics maxFreqKhz.\n * @member {number} maxFreqKhz\n * @memberof perfetto.protos.AndroidCpuMetric.Metrics\n * @instance\n */\n Metrics.prototype.maxFreqKhz = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * Metrics avgFreqKhz.\n * @member {number} avgFreqKhz\n * @memberof perfetto.protos.AndroidCpuMetric.Metrics\n * @instance\n */\n Metrics.prototype.avgFreqKhz = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * Creates a new Metrics instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidCpuMetric.Metrics\n * @static\n * @param {perfetto.protos.AndroidCpuMetric.IMetrics=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidCpuMetric.Metrics} Metrics instance\n */\n Metrics.create = function create(properties) {\n return new Metrics(properties);\n };\n\n /**\n * Encodes the specified Metrics message. Does not implicitly {@link perfetto.protos.AndroidCpuMetric.Metrics.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidCpuMetric.Metrics\n * @static\n * @param {perfetto.protos.AndroidCpuMetric.IMetrics} message Metrics message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Metrics.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.mcycles != null && Object.hasOwnProperty.call(message, \"mcycles\"))\n writer.uint32(/* id 1, wireType 0 =*/8).int64(message.mcycles);\n if (message.runtimeNs != null && Object.hasOwnProperty.call(message, \"runtimeNs\"))\n writer.uint32(/* id 2, wireType 0 =*/16).int64(message.runtimeNs);\n if (message.minFreqKhz != null && Object.hasOwnProperty.call(message, \"minFreqKhz\"))\n writer.uint32(/* id 3, wireType 0 =*/24).int64(message.minFreqKhz);\n if (message.maxFreqKhz != null && Object.hasOwnProperty.call(message, \"maxFreqKhz\"))\n writer.uint32(/* id 4, wireType 0 =*/32).int64(message.maxFreqKhz);\n if (message.avgFreqKhz != null && Object.hasOwnProperty.call(message, \"avgFreqKhz\"))\n writer.uint32(/* id 5, wireType 0 =*/40).int64(message.avgFreqKhz);\n return writer;\n };\n\n /**\n * Encodes the specified Metrics message, length delimited. Does not implicitly {@link perfetto.protos.AndroidCpuMetric.Metrics.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidCpuMetric.Metrics\n * @static\n * @param {perfetto.protos.AndroidCpuMetric.IMetrics} message Metrics message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Metrics.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a Metrics message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidCpuMetric.Metrics\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidCpuMetric.Metrics} Metrics\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Metrics.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidCpuMetric.Metrics();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.mcycles = reader.int64();\n break;\n case 2:\n message.runtimeNs = reader.int64();\n break;\n case 3:\n message.minFreqKhz = reader.int64();\n break;\n case 4:\n message.maxFreqKhz = reader.int64();\n break;\n case 5:\n message.avgFreqKhz = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a Metrics message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidCpuMetric.Metrics\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidCpuMetric.Metrics} Metrics\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Metrics.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a Metrics message.\n * @function verify\n * @memberof perfetto.protos.AndroidCpuMetric.Metrics\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n Metrics.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.mcycles != null && message.hasOwnProperty(\"mcycles\"))\n if (!$util.isInteger(message.mcycles) && !(message.mcycles && $util.isInteger(message.mcycles.low) && $util.isInteger(message.mcycles.high)))\n return \"mcycles: integer|Long expected\";\n if (message.runtimeNs != null && message.hasOwnProperty(\"runtimeNs\"))\n if (!$util.isInteger(message.runtimeNs) && !(message.runtimeNs && $util.isInteger(message.runtimeNs.low) && $util.isInteger(message.runtimeNs.high)))\n return \"runtimeNs: integer|Long expected\";\n if (message.minFreqKhz != null && message.hasOwnProperty(\"minFreqKhz\"))\n if (!$util.isInteger(message.minFreqKhz) && !(message.minFreqKhz && $util.isInteger(message.minFreqKhz.low) && $util.isInteger(message.minFreqKhz.high)))\n return \"minFreqKhz: integer|Long expected\";\n if (message.maxFreqKhz != null && message.hasOwnProperty(\"maxFreqKhz\"))\n if (!$util.isInteger(message.maxFreqKhz) && !(message.maxFreqKhz && $util.isInteger(message.maxFreqKhz.low) && $util.isInteger(message.maxFreqKhz.high)))\n return \"maxFreqKhz: integer|Long expected\";\n if (message.avgFreqKhz != null && message.hasOwnProperty(\"avgFreqKhz\"))\n if (!$util.isInteger(message.avgFreqKhz) && !(message.avgFreqKhz && $util.isInteger(message.avgFreqKhz.low) && $util.isInteger(message.avgFreqKhz.high)))\n return \"avgFreqKhz: integer|Long expected\";\n return null;\n };\n\n /**\n * Creates a Metrics message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidCpuMetric.Metrics\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidCpuMetric.Metrics} Metrics\n */\n Metrics.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidCpuMetric.Metrics)\n return object;\n var message = new $root.perfetto.protos.AndroidCpuMetric.Metrics();\n if (object.mcycles != null)\n if ($util.Long)\n (message.mcycles = $util.Long.fromValue(object.mcycles)).unsigned = false;\n else if (typeof object.mcycles === \"string\")\n message.mcycles = parseInt(object.mcycles, 10);\n else if (typeof object.mcycles === \"number\")\n message.mcycles = object.mcycles;\n else if (typeof object.mcycles === \"object\")\n message.mcycles = new $util.LongBits(object.mcycles.low >>> 0, object.mcycles.high >>> 0).toNumber();\n if (object.runtimeNs != null)\n if ($util.Long)\n (message.runtimeNs = $util.Long.fromValue(object.runtimeNs)).unsigned = false;\n else if (typeof object.runtimeNs === \"string\")\n message.runtimeNs = parseInt(object.runtimeNs, 10);\n else if (typeof object.runtimeNs === \"number\")\n message.runtimeNs = object.runtimeNs;\n else if (typeof object.runtimeNs === \"object\")\n message.runtimeNs = new $util.LongBits(object.runtimeNs.low >>> 0, object.runtimeNs.high >>> 0).toNumber();\n if (object.minFreqKhz != null)\n if ($util.Long)\n (message.minFreqKhz = $util.Long.fromValue(object.minFreqKhz)).unsigned = false;\n else if (typeof object.minFreqKhz === \"string\")\n message.minFreqKhz = parseInt(object.minFreqKhz, 10);\n else if (typeof object.minFreqKhz === \"number\")\n message.minFreqKhz = object.minFreqKhz;\n else if (typeof object.minFreqKhz === \"object\")\n message.minFreqKhz = new $util.LongBits(object.minFreqKhz.low >>> 0, object.minFreqKhz.high >>> 0).toNumber();\n if (object.maxFreqKhz != null)\n if ($util.Long)\n (message.maxFreqKhz = $util.Long.fromValue(object.maxFreqKhz)).unsigned = false;\n else if (typeof object.maxFreqKhz === \"string\")\n message.maxFreqKhz = parseInt(object.maxFreqKhz, 10);\n else if (typeof object.maxFreqKhz === \"number\")\n message.maxFreqKhz = object.maxFreqKhz;\n else if (typeof object.maxFreqKhz === \"object\")\n message.maxFreqKhz = new $util.LongBits(object.maxFreqKhz.low >>> 0, object.maxFreqKhz.high >>> 0).toNumber();\n if (object.avgFreqKhz != null)\n if ($util.Long)\n (message.avgFreqKhz = $util.Long.fromValue(object.avgFreqKhz)).unsigned = false;\n else if (typeof object.avgFreqKhz === \"string\")\n message.avgFreqKhz = parseInt(object.avgFreqKhz, 10);\n else if (typeof object.avgFreqKhz === \"number\")\n message.avgFreqKhz = object.avgFreqKhz;\n else if (typeof object.avgFreqKhz === \"object\")\n message.avgFreqKhz = new $util.LongBits(object.avgFreqKhz.low >>> 0, object.avgFreqKhz.high >>> 0).toNumber();\n return message;\n };\n\n /**\n * Creates a plain object from a Metrics message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidCpuMetric.Metrics\n * @static\n * @param {perfetto.protos.AndroidCpuMetric.Metrics} message Metrics\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n Metrics.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.mcycles = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.mcycles = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.runtimeNs = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.runtimeNs = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.minFreqKhz = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.minFreqKhz = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.maxFreqKhz = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.maxFreqKhz = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.avgFreqKhz = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.avgFreqKhz = options.longs === String ? \"0\" : 0;\n }\n if (message.mcycles != null && message.hasOwnProperty(\"mcycles\"))\n if (typeof message.mcycles === \"number\")\n object.mcycles = options.longs === String ? String(message.mcycles) : message.mcycles;\n else\n object.mcycles = options.longs === String ? $util.Long.prototype.toString.call(message.mcycles) : options.longs === Number ? new $util.LongBits(message.mcycles.low >>> 0, message.mcycles.high >>> 0).toNumber() : message.mcycles;\n if (message.runtimeNs != null && message.hasOwnProperty(\"runtimeNs\"))\n if (typeof message.runtimeNs === \"number\")\n object.runtimeNs = options.longs === String ? String(message.runtimeNs) : message.runtimeNs;\n else\n object.runtimeNs = options.longs === String ? $util.Long.prototype.toString.call(message.runtimeNs) : options.longs === Number ? new $util.LongBits(message.runtimeNs.low >>> 0, message.runtimeNs.high >>> 0).toNumber() : message.runtimeNs;\n if (message.minFreqKhz != null && message.hasOwnProperty(\"minFreqKhz\"))\n if (typeof message.minFreqKhz === \"number\")\n object.minFreqKhz = options.longs === String ? String(message.minFreqKhz) : message.minFreqKhz;\n else\n object.minFreqKhz = options.longs === String ? $util.Long.prototype.toString.call(message.minFreqKhz) : options.longs === Number ? new $util.LongBits(message.minFreqKhz.low >>> 0, message.minFreqKhz.high >>> 0).toNumber() : message.minFreqKhz;\n if (message.maxFreqKhz != null && message.hasOwnProperty(\"maxFreqKhz\"))\n if (typeof message.maxFreqKhz === \"number\")\n object.maxFreqKhz = options.longs === String ? String(message.maxFreqKhz) : message.maxFreqKhz;\n else\n object.maxFreqKhz = options.longs === String ? $util.Long.prototype.toString.call(message.maxFreqKhz) : options.longs === Number ? new $util.LongBits(message.maxFreqKhz.low >>> 0, message.maxFreqKhz.high >>> 0).toNumber() : message.maxFreqKhz;\n if (message.avgFreqKhz != null && message.hasOwnProperty(\"avgFreqKhz\"))\n if (typeof message.avgFreqKhz === \"number\")\n object.avgFreqKhz = options.longs === String ? String(message.avgFreqKhz) : message.avgFreqKhz;\n else\n object.avgFreqKhz = options.longs === String ? $util.Long.prototype.toString.call(message.avgFreqKhz) : options.longs === Number ? new $util.LongBits(message.avgFreqKhz.low >>> 0, message.avgFreqKhz.high >>> 0).toNumber() : message.avgFreqKhz;\n return object;\n };\n\n /**\n * Converts this Metrics to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidCpuMetric.Metrics\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n Metrics.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return Metrics;\n })();\n\n AndroidCpuMetric.CoreData = (function() {\n\n /**\n * Properties of a CoreData.\n * @memberof perfetto.protos.AndroidCpuMetric\n * @interface ICoreData\n * @property {number|null} [id] CoreData id\n * @property {perfetto.protos.AndroidCpuMetric.IMetrics|null} [metrics] CoreData metrics\n */\n\n /**\n * Constructs a new CoreData.\n * @memberof perfetto.protos.AndroidCpuMetric\n * @classdesc Represents a CoreData.\n * @implements ICoreData\n * @constructor\n * @param {perfetto.protos.AndroidCpuMetric.ICoreData=} [properties] Properties to set\n */\n function CoreData(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * CoreData id.\n * @member {number} id\n * @memberof perfetto.protos.AndroidCpuMetric.CoreData\n * @instance\n */\n CoreData.prototype.id = 0;\n\n /**\n * CoreData metrics.\n * @member {perfetto.protos.AndroidCpuMetric.IMetrics|null|undefined} metrics\n * @memberof perfetto.protos.AndroidCpuMetric.CoreData\n * @instance\n */\n CoreData.prototype.metrics = null;\n\n /**\n * Creates a new CoreData instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidCpuMetric.CoreData\n * @static\n * @param {perfetto.protos.AndroidCpuMetric.ICoreData=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidCpuMetric.CoreData} CoreData instance\n */\n CoreData.create = function create(properties) {\n return new CoreData(properties);\n };\n\n /**\n * Encodes the specified CoreData message. Does not implicitly {@link perfetto.protos.AndroidCpuMetric.CoreData.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidCpuMetric.CoreData\n * @static\n * @param {perfetto.protos.AndroidCpuMetric.ICoreData} message CoreData message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n CoreData.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.id != null && Object.hasOwnProperty.call(message, \"id\"))\n writer.uint32(/* id 1, wireType 0 =*/8).uint32(message.id);\n if (message.metrics != null && Object.hasOwnProperty.call(message, \"metrics\"))\n $root.perfetto.protos.AndroidCpuMetric.Metrics.encode(message.metrics, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified CoreData message, length delimited. Does not implicitly {@link perfetto.protos.AndroidCpuMetric.CoreData.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidCpuMetric.CoreData\n * @static\n * @param {perfetto.protos.AndroidCpuMetric.ICoreData} message CoreData message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n CoreData.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a CoreData message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidCpuMetric.CoreData\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidCpuMetric.CoreData} CoreData\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n CoreData.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidCpuMetric.CoreData();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.id = reader.uint32();\n break;\n case 6:\n message.metrics = $root.perfetto.protos.AndroidCpuMetric.Metrics.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a CoreData message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidCpuMetric.CoreData\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidCpuMetric.CoreData} CoreData\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n CoreData.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a CoreData message.\n * @function verify\n * @memberof perfetto.protos.AndroidCpuMetric.CoreData\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n CoreData.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.id != null && message.hasOwnProperty(\"id\"))\n if (!$util.isInteger(message.id))\n return \"id: integer expected\";\n if (message.metrics != null && message.hasOwnProperty(\"metrics\")) {\n var error = $root.perfetto.protos.AndroidCpuMetric.Metrics.verify(message.metrics);\n if (error)\n return \"metrics.\" + error;\n }\n return null;\n };\n\n /**\n * Creates a CoreData message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidCpuMetric.CoreData\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidCpuMetric.CoreData} CoreData\n */\n CoreData.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidCpuMetric.CoreData)\n return object;\n var message = new $root.perfetto.protos.AndroidCpuMetric.CoreData();\n if (object.id != null)\n message.id = object.id >>> 0;\n if (object.metrics != null) {\n if (typeof object.metrics !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidCpuMetric.CoreData.metrics: object expected\");\n message.metrics = $root.perfetto.protos.AndroidCpuMetric.Metrics.fromObject(object.metrics);\n }\n return message;\n };\n\n /**\n * Creates a plain object from a CoreData message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidCpuMetric.CoreData\n * @static\n * @param {perfetto.protos.AndroidCpuMetric.CoreData} message CoreData\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n CoreData.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.id = 0;\n object.metrics = null;\n }\n if (message.id != null && message.hasOwnProperty(\"id\"))\n object.id = message.id;\n if (message.metrics != null && message.hasOwnProperty(\"metrics\"))\n object.metrics = $root.perfetto.protos.AndroidCpuMetric.Metrics.toObject(message.metrics, options);\n return object;\n };\n\n /**\n * Converts this CoreData to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidCpuMetric.CoreData\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n CoreData.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return CoreData;\n })();\n\n AndroidCpuMetric.CoreTypeData = (function() {\n\n /**\n * Properties of a CoreTypeData.\n * @memberof perfetto.protos.AndroidCpuMetric\n * @interface ICoreTypeData\n * @property {string|null} [type] CoreTypeData type\n * @property {perfetto.protos.AndroidCpuMetric.IMetrics|null} [metrics] CoreTypeData metrics\n */\n\n /**\n * Constructs a new CoreTypeData.\n * @memberof perfetto.protos.AndroidCpuMetric\n * @classdesc Represents a CoreTypeData.\n * @implements ICoreTypeData\n * @constructor\n * @param {perfetto.protos.AndroidCpuMetric.ICoreTypeData=} [properties] Properties to set\n */\n function CoreTypeData(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * CoreTypeData type.\n * @member {string} type\n * @memberof perfetto.protos.AndroidCpuMetric.CoreTypeData\n * @instance\n */\n CoreTypeData.prototype.type = \"\";\n\n /**\n * CoreTypeData metrics.\n * @member {perfetto.protos.AndroidCpuMetric.IMetrics|null|undefined} metrics\n * @memberof perfetto.protos.AndroidCpuMetric.CoreTypeData\n * @instance\n */\n CoreTypeData.prototype.metrics = null;\n\n /**\n * Creates a new CoreTypeData instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidCpuMetric.CoreTypeData\n * @static\n * @param {perfetto.protos.AndroidCpuMetric.ICoreTypeData=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidCpuMetric.CoreTypeData} CoreTypeData instance\n */\n CoreTypeData.create = function create(properties) {\n return new CoreTypeData(properties);\n };\n\n /**\n * Encodes the specified CoreTypeData message. Does not implicitly {@link perfetto.protos.AndroidCpuMetric.CoreTypeData.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidCpuMetric.CoreTypeData\n * @static\n * @param {perfetto.protos.AndroidCpuMetric.ICoreTypeData} message CoreTypeData message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n CoreTypeData.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.type != null && Object.hasOwnProperty.call(message, \"type\"))\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.type);\n if (message.metrics != null && Object.hasOwnProperty.call(message, \"metrics\"))\n $root.perfetto.protos.AndroidCpuMetric.Metrics.encode(message.metrics, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified CoreTypeData message, length delimited. Does not implicitly {@link perfetto.protos.AndroidCpuMetric.CoreTypeData.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidCpuMetric.CoreTypeData\n * @static\n * @param {perfetto.protos.AndroidCpuMetric.ICoreTypeData} message CoreTypeData message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n CoreTypeData.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a CoreTypeData message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidCpuMetric.CoreTypeData\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidCpuMetric.CoreTypeData} CoreTypeData\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n CoreTypeData.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidCpuMetric.CoreTypeData();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.type = reader.string();\n break;\n case 2:\n message.metrics = $root.perfetto.protos.AndroidCpuMetric.Metrics.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a CoreTypeData message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidCpuMetric.CoreTypeData\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidCpuMetric.CoreTypeData} CoreTypeData\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n CoreTypeData.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a CoreTypeData message.\n * @function verify\n * @memberof perfetto.protos.AndroidCpuMetric.CoreTypeData\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n CoreTypeData.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.type != null && message.hasOwnProperty(\"type\"))\n if (!$util.isString(message.type))\n return \"type: string expected\";\n if (message.metrics != null && message.hasOwnProperty(\"metrics\")) {\n var error = $root.perfetto.protos.AndroidCpuMetric.Metrics.verify(message.metrics);\n if (error)\n return \"metrics.\" + error;\n }\n return null;\n };\n\n /**\n * Creates a CoreTypeData message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidCpuMetric.CoreTypeData\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidCpuMetric.CoreTypeData} CoreTypeData\n */\n CoreTypeData.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidCpuMetric.CoreTypeData)\n return object;\n var message = new $root.perfetto.protos.AndroidCpuMetric.CoreTypeData();\n if (object.type != null)\n message.type = String(object.type);\n if (object.metrics != null) {\n if (typeof object.metrics !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidCpuMetric.CoreTypeData.metrics: object expected\");\n message.metrics = $root.perfetto.protos.AndroidCpuMetric.Metrics.fromObject(object.metrics);\n }\n return message;\n };\n\n /**\n * Creates a plain object from a CoreTypeData message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidCpuMetric.CoreTypeData\n * @static\n * @param {perfetto.protos.AndroidCpuMetric.CoreTypeData} message CoreTypeData\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n CoreTypeData.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.type = \"\";\n object.metrics = null;\n }\n if (message.type != null && message.hasOwnProperty(\"type\"))\n object.type = message.type;\n if (message.metrics != null && message.hasOwnProperty(\"metrics\"))\n object.metrics = $root.perfetto.protos.AndroidCpuMetric.Metrics.toObject(message.metrics, options);\n return object;\n };\n\n /**\n * Converts this CoreTypeData to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidCpuMetric.CoreTypeData\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n CoreTypeData.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return CoreTypeData;\n })();\n\n AndroidCpuMetric.Thread = (function() {\n\n /**\n * Properties of a Thread.\n * @memberof perfetto.protos.AndroidCpuMetric\n * @interface IThread\n * @property {string|null} [name] Thread name\n * @property {perfetto.protos.AndroidCpuMetric.IMetrics|null} [metrics] Thread metrics\n * @property {Array.<perfetto.protos.AndroidCpuMetric.ICoreData>|null} [core] Thread core\n * @property {Array.<perfetto.protos.AndroidCpuMetric.ICoreTypeData>|null} [coreType] Thread coreType\n */\n\n /**\n * Constructs a new Thread.\n * @memberof perfetto.protos.AndroidCpuMetric\n * @classdesc Represents a Thread.\n * @implements IThread\n * @constructor\n * @param {perfetto.protos.AndroidCpuMetric.IThread=} [properties] Properties to set\n */\n function Thread(properties) {\n this.core = [];\n this.coreType = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * Thread name.\n * @member {string} name\n * @memberof perfetto.protos.AndroidCpuMetric.Thread\n * @instance\n */\n Thread.prototype.name = \"\";\n\n /**\n * Thread metrics.\n * @member {perfetto.protos.AndroidCpuMetric.IMetrics|null|undefined} metrics\n * @memberof perfetto.protos.AndroidCpuMetric.Thread\n * @instance\n */\n Thread.prototype.metrics = null;\n\n /**\n * Thread core.\n * @member {Array.<perfetto.protos.AndroidCpuMetric.ICoreData>} core\n * @memberof perfetto.protos.AndroidCpuMetric.Thread\n * @instance\n */\n Thread.prototype.core = $util.emptyArray;\n\n /**\n * Thread coreType.\n * @member {Array.<perfetto.protos.AndroidCpuMetric.ICoreTypeData>} coreType\n * @memberof perfetto.protos.AndroidCpuMetric.Thread\n * @instance\n */\n Thread.prototype.coreType = $util.emptyArray;\n\n /**\n * Creates a new Thread instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidCpuMetric.Thread\n * @static\n * @param {perfetto.protos.AndroidCpuMetric.IThread=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidCpuMetric.Thread} Thread instance\n */\n Thread.create = function create(properties) {\n return new Thread(properties);\n };\n\n /**\n * Encodes the specified Thread message. Does not implicitly {@link perfetto.protos.AndroidCpuMetric.Thread.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidCpuMetric.Thread\n * @static\n * @param {perfetto.protos.AndroidCpuMetric.IThread} message Thread message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Thread.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.name != null && Object.hasOwnProperty.call(message, \"name\"))\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.name);\n if (message.core != null && message.core.length)\n for (var i = 0; i < message.core.length; ++i)\n $root.perfetto.protos.AndroidCpuMetric.CoreData.encode(message.core[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n if (message.metrics != null && Object.hasOwnProperty.call(message, \"metrics\"))\n $root.perfetto.protos.AndroidCpuMetric.Metrics.encode(message.metrics, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim();\n if (message.coreType != null && message.coreType.length)\n for (var i = 0; i < message.coreType.length; ++i)\n $root.perfetto.protos.AndroidCpuMetric.CoreTypeData.encode(message.coreType[i], writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified Thread message, length delimited. Does not implicitly {@link perfetto.protos.AndroidCpuMetric.Thread.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidCpuMetric.Thread\n * @static\n * @param {perfetto.protos.AndroidCpuMetric.IThread} message Thread message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Thread.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a Thread message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidCpuMetric.Thread\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidCpuMetric.Thread} Thread\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Thread.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidCpuMetric.Thread();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.name = reader.string();\n break;\n case 4:\n message.metrics = $root.perfetto.protos.AndroidCpuMetric.Metrics.decode(reader, reader.uint32());\n break;\n case 2:\n if (!(message.core && message.core.length))\n message.core = [];\n message.core.push($root.perfetto.protos.AndroidCpuMetric.CoreData.decode(reader, reader.uint32()));\n break;\n case 5:\n if (!(message.coreType && message.coreType.length))\n message.coreType = [];\n message.coreType.push($root.perfetto.protos.AndroidCpuMetric.CoreTypeData.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a Thread message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidCpuMetric.Thread\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidCpuMetric.Thread} Thread\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Thread.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a Thread message.\n * @function verify\n * @memberof perfetto.protos.AndroidCpuMetric.Thread\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n Thread.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.name != null && message.hasOwnProperty(\"name\"))\n if (!$util.isString(message.name))\n return \"name: string expected\";\n if (message.metrics != null && message.hasOwnProperty(\"metrics\")) {\n var error = $root.perfetto.protos.AndroidCpuMetric.Metrics.verify(message.metrics);\n if (error)\n return \"metrics.\" + error;\n }\n if (message.core != null && message.hasOwnProperty(\"core\")) {\n if (!Array.isArray(message.core))\n return \"core: array expected\";\n for (var i = 0; i < message.core.length; ++i) {\n var error = $root.perfetto.protos.AndroidCpuMetric.CoreData.verify(message.core[i]);\n if (error)\n return \"core.\" + error;\n }\n }\n if (message.coreType != null && message.hasOwnProperty(\"coreType\")) {\n if (!Array.isArray(message.coreType))\n return \"coreType: array expected\";\n for (var i = 0; i < message.coreType.length; ++i) {\n var error = $root.perfetto.protos.AndroidCpuMetric.CoreTypeData.verify(message.coreType[i]);\n if (error)\n return \"coreType.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates a Thread message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidCpuMetric.Thread\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidCpuMetric.Thread} Thread\n */\n Thread.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidCpuMetric.Thread)\n return object;\n var message = new $root.perfetto.protos.AndroidCpuMetric.Thread();\n if (object.name != null)\n message.name = String(object.name);\n if (object.metrics != null) {\n if (typeof object.metrics !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidCpuMetric.Thread.metrics: object expected\");\n message.metrics = $root.perfetto.protos.AndroidCpuMetric.Metrics.fromObject(object.metrics);\n }\n if (object.core) {\n if (!Array.isArray(object.core))\n throw TypeError(\".perfetto.protos.AndroidCpuMetric.Thread.core: array expected\");\n message.core = [];\n for (var i = 0; i < object.core.length; ++i) {\n if (typeof object.core[i] !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidCpuMetric.Thread.core: object expected\");\n message.core[i] = $root.perfetto.protos.AndroidCpuMetric.CoreData.fromObject(object.core[i]);\n }\n }\n if (object.coreType) {\n if (!Array.isArray(object.coreType))\n throw TypeError(\".perfetto.protos.AndroidCpuMetric.Thread.coreType: array expected\");\n message.coreType = [];\n for (var i = 0; i < object.coreType.length; ++i) {\n if (typeof object.coreType[i] !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidCpuMetric.Thread.coreType: object expected\");\n message.coreType[i] = $root.perfetto.protos.AndroidCpuMetric.CoreTypeData.fromObject(object.coreType[i]);\n }\n }\n return message;\n };\n\n /**\n * Creates a plain object from a Thread message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidCpuMetric.Thread\n * @static\n * @param {perfetto.protos.AndroidCpuMetric.Thread} message Thread\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n Thread.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults) {\n object.core = [];\n object.coreType = [];\n }\n if (options.defaults) {\n object.name = \"\";\n object.metrics = null;\n }\n if (message.name != null && message.hasOwnProperty(\"name\"))\n object.name = message.name;\n if (message.core && message.core.length) {\n object.core = [];\n for (var j = 0; j < message.core.length; ++j)\n object.core[j] = $root.perfetto.protos.AndroidCpuMetric.CoreData.toObject(message.core[j], options);\n }\n if (message.metrics != null && message.hasOwnProperty(\"metrics\"))\n object.metrics = $root.perfetto.protos.AndroidCpuMetric.Metrics.toObject(message.metrics, options);\n if (message.coreType && message.coreType.length) {\n object.coreType = [];\n for (var j = 0; j < message.coreType.length; ++j)\n object.coreType[j] = $root.perfetto.protos.AndroidCpuMetric.CoreTypeData.toObject(message.coreType[j], options);\n }\n return object;\n };\n\n /**\n * Converts this Thread to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidCpuMetric.Thread\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n Thread.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return Thread;\n })();\n\n AndroidCpuMetric.Process = (function() {\n\n /**\n * Properties of a Process.\n * @memberof perfetto.protos.AndroidCpuMetric\n * @interface IProcess\n * @property {string|null} [name] Process name\n * @property {perfetto.protos.AndroidCpuMetric.IMetrics|null} [metrics] Process metrics\n * @property {Array.<perfetto.protos.AndroidCpuMetric.IThread>|null} [threads] Process threads\n * @property {Array.<perfetto.protos.AndroidCpuMetric.ICoreData>|null} [core] Process core\n * @property {Array.<perfetto.protos.AndroidCpuMetric.ICoreTypeData>|null} [coreType] Process coreType\n */\n\n /**\n * Constructs a new Process.\n * @memberof perfetto.protos.AndroidCpuMetric\n * @classdesc Represents a Process.\n * @implements IProcess\n * @constructor\n * @param {perfetto.protos.AndroidCpuMetric.IProcess=} [properties] Properties to set\n */\n function Process(properties) {\n this.threads = [];\n this.core = [];\n this.coreType = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * Process name.\n * @member {string} name\n * @memberof perfetto.protos.AndroidCpuMetric.Process\n * @instance\n */\n Process.prototype.name = \"\";\n\n /**\n * Process metrics.\n * @member {perfetto.protos.AndroidCpuMetric.IMetrics|null|undefined} metrics\n * @memberof perfetto.protos.AndroidCpuMetric.Process\n * @instance\n */\n Process.prototype.metrics = null;\n\n /**\n * Process threads.\n * @member {Array.<perfetto.protos.AndroidCpuMetric.IThread>} threads\n * @memberof perfetto.protos.AndroidCpuMetric.Process\n * @instance\n */\n Process.prototype.threads = $util.emptyArray;\n\n /**\n * Process core.\n * @member {Array.<perfetto.protos.AndroidCpuMetric.ICoreData>} core\n * @memberof perfetto.protos.AndroidCpuMetric.Process\n * @instance\n */\n Process.prototype.core = $util.emptyArray;\n\n /**\n * Process coreType.\n * @member {Array.<perfetto.protos.AndroidCpuMetric.ICoreTypeData>} coreType\n * @memberof perfetto.protos.AndroidCpuMetric.Process\n * @instance\n */\n Process.prototype.coreType = $util.emptyArray;\n\n /**\n * Creates a new Process instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidCpuMetric.Process\n * @static\n * @param {perfetto.protos.AndroidCpuMetric.IProcess=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidCpuMetric.Process} Process instance\n */\n Process.create = function create(properties) {\n return new Process(properties);\n };\n\n /**\n * Encodes the specified Process message. Does not implicitly {@link perfetto.protos.AndroidCpuMetric.Process.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidCpuMetric.Process\n * @static\n * @param {perfetto.protos.AndroidCpuMetric.IProcess} message Process message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Process.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.name != null && Object.hasOwnProperty.call(message, \"name\"))\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.name);\n if (message.metrics != null && Object.hasOwnProperty.call(message, \"metrics\"))\n $root.perfetto.protos.AndroidCpuMetric.Metrics.encode(message.metrics, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim();\n if (message.coreType != null && message.coreType.length)\n for (var i = 0; i < message.coreType.length; ++i)\n $root.perfetto.protos.AndroidCpuMetric.CoreTypeData.encode(message.coreType[i], writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim();\n if (message.threads != null && message.threads.length)\n for (var i = 0; i < message.threads.length; ++i)\n $root.perfetto.protos.AndroidCpuMetric.Thread.encode(message.threads[i], writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim();\n if (message.core != null && message.core.length)\n for (var i = 0; i < message.core.length; ++i)\n $root.perfetto.protos.AndroidCpuMetric.CoreData.encode(message.core[i], writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified Process message, length delimited. Does not implicitly {@link perfetto.protos.AndroidCpuMetric.Process.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidCpuMetric.Process\n * @static\n * @param {perfetto.protos.AndroidCpuMetric.IProcess} message Process message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Process.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a Process message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidCpuMetric.Process\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidCpuMetric.Process} Process\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Process.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidCpuMetric.Process();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.name = reader.string();\n break;\n case 4:\n message.metrics = $root.perfetto.protos.AndroidCpuMetric.Metrics.decode(reader, reader.uint32());\n break;\n case 6:\n if (!(message.threads && message.threads.length))\n message.threads = [];\n message.threads.push($root.perfetto.protos.AndroidCpuMetric.Thread.decode(reader, reader.uint32()));\n break;\n case 7:\n if (!(message.core && message.core.length))\n message.core = [];\n message.core.push($root.perfetto.protos.AndroidCpuMetric.CoreData.decode(reader, reader.uint32()));\n break;\n case 5:\n if (!(message.coreType && message.coreType.length))\n message.coreType = [];\n message.coreType.push($root.perfetto.protos.AndroidCpuMetric.CoreTypeData.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a Process message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidCpuMetric.Process\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidCpuMetric.Process} Process\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Process.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a Process message.\n * @function verify\n * @memberof perfetto.protos.AndroidCpuMetric.Process\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n Process.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.name != null && message.hasOwnProperty(\"name\"))\n if (!$util.isString(message.name))\n return \"name: string expected\";\n if (message.metrics != null && message.hasOwnProperty(\"metrics\")) {\n var error = $root.perfetto.protos.AndroidCpuMetric.Metrics.verify(message.metrics);\n if (error)\n return \"metrics.\" + error;\n }\n if (message.threads != null && message.hasOwnProperty(\"threads\")) {\n if (!Array.isArray(message.threads))\n return \"threads: array expected\";\n for (var i = 0; i < message.threads.length; ++i) {\n var error = $root.perfetto.protos.AndroidCpuMetric.Thread.verify(message.threads[i]);\n if (error)\n return \"threads.\" + error;\n }\n }\n if (message.core != null && message.hasOwnProperty(\"core\")) {\n if (!Array.isArray(message.core))\n return \"core: array expected\";\n for (var i = 0; i < message.core.length; ++i) {\n var error = $root.perfetto.protos.AndroidCpuMetric.CoreData.verify(message.core[i]);\n if (error)\n return \"core.\" + error;\n }\n }\n if (message.coreType != null && message.hasOwnProperty(\"coreType\")) {\n if (!Array.isArray(message.coreType))\n return \"coreType: array expected\";\n for (var i = 0; i < message.coreType.length; ++i) {\n var error = $root.perfetto.protos.AndroidCpuMetric.CoreTypeData.verify(message.coreType[i]);\n if (error)\n return \"coreType.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates a Process message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidCpuMetric.Process\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidCpuMetric.Process} Process\n */\n Process.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidCpuMetric.Process)\n return object;\n var message = new $root.perfetto.protos.AndroidCpuMetric.Process();\n if (object.name != null)\n message.name = String(object.name);\n if (object.metrics != null) {\n if (typeof object.metrics !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidCpuMetric.Process.metrics: object expected\");\n message.metrics = $root.perfetto.protos.AndroidCpuMetric.Metrics.fromObject(object.metrics);\n }\n if (object.threads) {\n if (!Array.isArray(object.threads))\n throw TypeError(\".perfetto.protos.AndroidCpuMetric.Process.threads: array expected\");\n message.threads = [];\n for (var i = 0; i < object.threads.length; ++i) {\n if (typeof object.threads[i] !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidCpuMetric.Process.threads: object expected\");\n message.threads[i] = $root.perfetto.protos.AndroidCpuMetric.Thread.fromObject(object.threads[i]);\n }\n }\n if (object.core) {\n if (!Array.isArray(object.core))\n throw TypeError(\".perfetto.protos.AndroidCpuMetric.Process.core: array expected\");\n message.core = [];\n for (var i = 0; i < object.core.length; ++i) {\n if (typeof object.core[i] !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidCpuMetric.Process.core: object expected\");\n message.core[i] = $root.perfetto.protos.AndroidCpuMetric.CoreData.fromObject(object.core[i]);\n }\n }\n if (object.coreType) {\n if (!Array.isArray(object.coreType))\n throw TypeError(\".perfetto.protos.AndroidCpuMetric.Process.coreType: array expected\");\n message.coreType = [];\n for (var i = 0; i < object.coreType.length; ++i) {\n if (typeof object.coreType[i] !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidCpuMetric.Process.coreType: object expected\");\n message.coreType[i] = $root.perfetto.protos.AndroidCpuMetric.CoreTypeData.fromObject(object.coreType[i]);\n }\n }\n return message;\n };\n\n /**\n * Creates a plain object from a Process message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidCpuMetric.Process\n * @static\n * @param {perfetto.protos.AndroidCpuMetric.Process} message Process\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n Process.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults) {\n object.coreType = [];\n object.threads = [];\n object.core = [];\n }\n if (options.defaults) {\n object.name = \"\";\n object.metrics = null;\n }\n if (message.name != null && message.hasOwnProperty(\"name\"))\n object.name = message.name;\n if (message.metrics != null && message.hasOwnProperty(\"metrics\"))\n object.metrics = $root.perfetto.protos.AndroidCpuMetric.Metrics.toObject(message.metrics, options);\n if (message.coreType && message.coreType.length) {\n object.coreType = [];\n for (var j = 0; j < message.coreType.length; ++j)\n object.coreType[j] = $root.perfetto.protos.AndroidCpuMetric.CoreTypeData.toObject(message.coreType[j], options);\n }\n if (message.threads && message.threads.length) {\n object.threads = [];\n for (var j = 0; j < message.threads.length; ++j)\n object.threads[j] = $root.perfetto.protos.AndroidCpuMetric.Thread.toObject(message.threads[j], options);\n }\n if (message.core && message.core.length) {\n object.core = [];\n for (var j = 0; j < message.core.length; ++j)\n object.core[j] = $root.perfetto.protos.AndroidCpuMetric.CoreData.toObject(message.core[j], options);\n }\n return object;\n };\n\n /**\n * Converts this Process to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidCpuMetric.Process\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n Process.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return Process;\n })();\n\n return AndroidCpuMetric;\n })();\n\n protos.AndroidCameraMetric = (function() {\n\n /**\n * Properties of an AndroidCameraMetric.\n * @memberof perfetto.protos\n * @interface IAndroidCameraMetric\n * @property {perfetto.protos.AndroidCameraMetric.ICounter|null} [gcRssAndDma] AndroidCameraMetric gcRssAndDma\n */\n\n /**\n * Constructs a new AndroidCameraMetric.\n * @memberof perfetto.protos\n * @classdesc Represents an AndroidCameraMetric.\n * @implements IAndroidCameraMetric\n * @constructor\n * @param {perfetto.protos.IAndroidCameraMetric=} [properties] Properties to set\n */\n function AndroidCameraMetric(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * AndroidCameraMetric gcRssAndDma.\n * @member {perfetto.protos.AndroidCameraMetric.ICounter|null|undefined} gcRssAndDma\n * @memberof perfetto.protos.AndroidCameraMetric\n * @instance\n */\n AndroidCameraMetric.prototype.gcRssAndDma = null;\n\n /**\n * Creates a new AndroidCameraMetric instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidCameraMetric\n * @static\n * @param {perfetto.protos.IAndroidCameraMetric=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidCameraMetric} AndroidCameraMetric instance\n */\n AndroidCameraMetric.create = function create(properties) {\n return new AndroidCameraMetric(properties);\n };\n\n /**\n * Encodes the specified AndroidCameraMetric message. Does not implicitly {@link perfetto.protos.AndroidCameraMetric.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidCameraMetric\n * @static\n * @param {perfetto.protos.IAndroidCameraMetric} message AndroidCameraMetric message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n AndroidCameraMetric.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.gcRssAndDma != null && Object.hasOwnProperty.call(message, \"gcRssAndDma\"))\n $root.perfetto.protos.AndroidCameraMetric.Counter.encode(message.gcRssAndDma, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified AndroidCameraMetric message, length delimited. Does not implicitly {@link perfetto.protos.AndroidCameraMetric.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidCameraMetric\n * @static\n * @param {perfetto.protos.IAndroidCameraMetric} message AndroidCameraMetric message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n AndroidCameraMetric.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes an AndroidCameraMetric message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidCameraMetric\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidCameraMetric} AndroidCameraMetric\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n AndroidCameraMetric.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidCameraMetric();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.gcRssAndDma = $root.perfetto.protos.AndroidCameraMetric.Counter.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes an AndroidCameraMetric message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidCameraMetric\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidCameraMetric} AndroidCameraMetric\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n AndroidCameraMetric.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies an AndroidCameraMetric message.\n * @function verify\n * @memberof perfetto.protos.AndroidCameraMetric\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n AndroidCameraMetric.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.gcRssAndDma != null && message.hasOwnProperty(\"gcRssAndDma\")) {\n var error = $root.perfetto.protos.AndroidCameraMetric.Counter.verify(message.gcRssAndDma);\n if (error)\n return \"gcRssAndDma.\" + error;\n }\n return null;\n };\n\n /**\n * Creates an AndroidCameraMetric message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidCameraMetric\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidCameraMetric} AndroidCameraMetric\n */\n AndroidCameraMetric.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidCameraMetric)\n return object;\n var message = new $root.perfetto.protos.AndroidCameraMetric();\n if (object.gcRssAndDma != null) {\n if (typeof object.gcRssAndDma !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidCameraMetric.gcRssAndDma: object expected\");\n message.gcRssAndDma = $root.perfetto.protos.AndroidCameraMetric.Counter.fromObject(object.gcRssAndDma);\n }\n return message;\n };\n\n /**\n * Creates a plain object from an AndroidCameraMetric message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidCameraMetric\n * @static\n * @param {perfetto.protos.AndroidCameraMetric} message AndroidCameraMetric\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n AndroidCameraMetric.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults)\n object.gcRssAndDma = null;\n if (message.gcRssAndDma != null && message.hasOwnProperty(\"gcRssAndDma\"))\n object.gcRssAndDma = $root.perfetto.protos.AndroidCameraMetric.Counter.toObject(message.gcRssAndDma, options);\n return object;\n };\n\n /**\n * Converts this AndroidCameraMetric to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidCameraMetric\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n AndroidCameraMetric.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n AndroidCameraMetric.Counter = (function() {\n\n /**\n * Properties of a Counter.\n * @memberof perfetto.protos.AndroidCameraMetric\n * @interface ICounter\n * @property {number|null} [min] Counter min\n * @property {number|null} [max] Counter max\n * @property {number|null} [avg] Counter avg\n */\n\n /**\n * Constructs a new Counter.\n * @memberof perfetto.protos.AndroidCameraMetric\n * @classdesc Represents a Counter.\n * @implements ICounter\n * @constructor\n * @param {perfetto.protos.AndroidCameraMetric.ICounter=} [properties] Properties to set\n */\n function Counter(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * Counter min.\n * @member {number} min\n * @memberof perfetto.protos.AndroidCameraMetric.Counter\n * @instance\n */\n Counter.prototype.min = 0;\n\n /**\n * Counter max.\n * @member {number} max\n * @memberof perfetto.protos.AndroidCameraMetric.Counter\n * @instance\n */\n Counter.prototype.max = 0;\n\n /**\n * Counter avg.\n * @member {number} avg\n * @memberof perfetto.protos.AndroidCameraMetric.Counter\n * @instance\n */\n Counter.prototype.avg = 0;\n\n /**\n * Creates a new Counter instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidCameraMetric.Counter\n * @static\n * @param {perfetto.protos.AndroidCameraMetric.ICounter=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidCameraMetric.Counter} Counter instance\n */\n Counter.create = function create(properties) {\n return new Counter(properties);\n };\n\n /**\n * Encodes the specified Counter message. Does not implicitly {@link perfetto.protos.AndroidCameraMetric.Counter.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidCameraMetric.Counter\n * @static\n * @param {perfetto.protos.AndroidCameraMetric.ICounter} message Counter message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Counter.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.min != null && Object.hasOwnProperty.call(message, \"min\"))\n writer.uint32(/* id 1, wireType 1 =*/9).double(message.min);\n if (message.max != null && Object.hasOwnProperty.call(message, \"max\"))\n writer.uint32(/* id 2, wireType 1 =*/17).double(message.max);\n if (message.avg != null && Object.hasOwnProperty.call(message, \"avg\"))\n writer.uint32(/* id 3, wireType 1 =*/25).double(message.avg);\n return writer;\n };\n\n /**\n * Encodes the specified Counter message, length delimited. Does not implicitly {@link perfetto.protos.AndroidCameraMetric.Counter.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidCameraMetric.Counter\n * @static\n * @param {perfetto.protos.AndroidCameraMetric.ICounter} message Counter message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Counter.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a Counter message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidCameraMetric.Counter\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidCameraMetric.Counter} Counter\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Counter.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidCameraMetric.Counter();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.min = reader.double();\n break;\n case 2:\n message.max = reader.double();\n break;\n case 3:\n message.avg = reader.double();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a Counter message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidCameraMetric.Counter\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidCameraMetric.Counter} Counter\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Counter.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a Counter message.\n * @function verify\n * @memberof perfetto.protos.AndroidCameraMetric.Counter\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n Counter.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.min != null && message.hasOwnProperty(\"min\"))\n if (typeof message.min !== \"number\")\n return \"min: number expected\";\n if (message.max != null && message.hasOwnProperty(\"max\"))\n if (typeof message.max !== \"number\")\n return \"max: number expected\";\n if (message.avg != null && message.hasOwnProperty(\"avg\"))\n if (typeof message.avg !== \"number\")\n return \"avg: number expected\";\n return null;\n };\n\n /**\n * Creates a Counter message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidCameraMetric.Counter\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidCameraMetric.Counter} Counter\n */\n Counter.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidCameraMetric.Counter)\n return object;\n var message = new $root.perfetto.protos.AndroidCameraMetric.Counter();\n if (object.min != null)\n message.min = Number(object.min);\n if (object.max != null)\n message.max = Number(object.max);\n if (object.avg != null)\n message.avg = Number(object.avg);\n return message;\n };\n\n /**\n * Creates a plain object from a Counter message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidCameraMetric.Counter\n * @static\n * @param {perfetto.protos.AndroidCameraMetric.Counter} message Counter\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n Counter.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.min = 0;\n object.max = 0;\n object.avg = 0;\n }\n if (message.min != null && message.hasOwnProperty(\"min\"))\n object.min = options.json && !isFinite(message.min) ? String(message.min) : message.min;\n if (message.max != null && message.hasOwnProperty(\"max\"))\n object.max = options.json && !isFinite(message.max) ? String(message.max) : message.max;\n if (message.avg != null && message.hasOwnProperty(\"avg\"))\n object.avg = options.json && !isFinite(message.avg) ? String(message.avg) : message.avg;\n return object;\n };\n\n /**\n * Converts this Counter to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidCameraMetric.Counter\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n Counter.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return Counter;\n })();\n\n return AndroidCameraMetric;\n })();\n\n protos.AndroidCameraUnaggregatedMetric = (function() {\n\n /**\n * Properties of an AndroidCameraUnaggregatedMetric.\n * @memberof perfetto.protos\n * @interface IAndroidCameraUnaggregatedMetric\n * @property {Array.<perfetto.protos.AndroidCameraUnaggregatedMetric.IValue>|null} [gcRssAndDma] AndroidCameraUnaggregatedMetric gcRssAndDma\n */\n\n /**\n * Constructs a new AndroidCameraUnaggregatedMetric.\n * @memberof perfetto.protos\n * @classdesc Represents an AndroidCameraUnaggregatedMetric.\n * @implements IAndroidCameraUnaggregatedMetric\n * @constructor\n * @param {perfetto.protos.IAndroidCameraUnaggregatedMetric=} [properties] Properties to set\n */\n function AndroidCameraUnaggregatedMetric(properties) {\n this.gcRssAndDma = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * AndroidCameraUnaggregatedMetric gcRssAndDma.\n * @member {Array.<perfetto.protos.AndroidCameraUnaggregatedMetric.IValue>} gcRssAndDma\n * @memberof perfetto.protos.AndroidCameraUnaggregatedMetric\n * @instance\n */\n AndroidCameraUnaggregatedMetric.prototype.gcRssAndDma = $util.emptyArray;\n\n /**\n * Creates a new AndroidCameraUnaggregatedMetric instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidCameraUnaggregatedMetric\n * @static\n * @param {perfetto.protos.IAndroidCameraUnaggregatedMetric=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidCameraUnaggregatedMetric} AndroidCameraUnaggregatedMetric instance\n */\n AndroidCameraUnaggregatedMetric.create = function create(properties) {\n return new AndroidCameraUnaggregatedMetric(properties);\n };\n\n /**\n * Encodes the specified AndroidCameraUnaggregatedMetric message. Does not implicitly {@link perfetto.protos.AndroidCameraUnaggregatedMetric.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidCameraUnaggregatedMetric\n * @static\n * @param {perfetto.protos.IAndroidCameraUnaggregatedMetric} message AndroidCameraUnaggregatedMetric message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n AndroidCameraUnaggregatedMetric.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.gcRssAndDma != null && message.gcRssAndDma.length)\n for (var i = 0; i < message.gcRssAndDma.length; ++i)\n $root.perfetto.protos.AndroidCameraUnaggregatedMetric.Value.encode(message.gcRssAndDma[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified AndroidCameraUnaggregatedMetric message, length delimited. Does not implicitly {@link perfetto.protos.AndroidCameraUnaggregatedMetric.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidCameraUnaggregatedMetric\n * @static\n * @param {perfetto.protos.IAndroidCameraUnaggregatedMetric} message AndroidCameraUnaggregatedMetric message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n AndroidCameraUnaggregatedMetric.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes an AndroidCameraUnaggregatedMetric message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidCameraUnaggregatedMetric\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidCameraUnaggregatedMetric} AndroidCameraUnaggregatedMetric\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n AndroidCameraUnaggregatedMetric.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidCameraUnaggregatedMetric();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (!(message.gcRssAndDma && message.gcRssAndDma.length))\n message.gcRssAndDma = [];\n message.gcRssAndDma.push($root.perfetto.protos.AndroidCameraUnaggregatedMetric.Value.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes an AndroidCameraUnaggregatedMetric message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidCameraUnaggregatedMetric\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidCameraUnaggregatedMetric} AndroidCameraUnaggregatedMetric\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n AndroidCameraUnaggregatedMetric.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies an AndroidCameraUnaggregatedMetric message.\n * @function verify\n * @memberof perfetto.protos.AndroidCameraUnaggregatedMetric\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n AndroidCameraUnaggregatedMetric.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.gcRssAndDma != null && message.hasOwnProperty(\"gcRssAndDma\")) {\n if (!Array.isArray(message.gcRssAndDma))\n return \"gcRssAndDma: array expected\";\n for (var i = 0; i < message.gcRssAndDma.length; ++i) {\n var error = $root.perfetto.protos.AndroidCameraUnaggregatedMetric.Value.verify(message.gcRssAndDma[i]);\n if (error)\n return \"gcRssAndDma.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates an AndroidCameraUnaggregatedMetric message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidCameraUnaggregatedMetric\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidCameraUnaggregatedMetric} AndroidCameraUnaggregatedMetric\n */\n AndroidCameraUnaggregatedMetric.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidCameraUnaggregatedMetric)\n return object;\n var message = new $root.perfetto.protos.AndroidCameraUnaggregatedMetric();\n if (object.gcRssAndDma) {\n if (!Array.isArray(object.gcRssAndDma))\n throw TypeError(\".perfetto.protos.AndroidCameraUnaggregatedMetric.gcRssAndDma: array expected\");\n message.gcRssAndDma = [];\n for (var i = 0; i < object.gcRssAndDma.length; ++i) {\n if (typeof object.gcRssAndDma[i] !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidCameraUnaggregatedMetric.gcRssAndDma: object expected\");\n message.gcRssAndDma[i] = $root.perfetto.protos.AndroidCameraUnaggregatedMetric.Value.fromObject(object.gcRssAndDma[i]);\n }\n }\n return message;\n };\n\n /**\n * Creates a plain object from an AndroidCameraUnaggregatedMetric message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidCameraUnaggregatedMetric\n * @static\n * @param {perfetto.protos.AndroidCameraUnaggregatedMetric} message AndroidCameraUnaggregatedMetric\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n AndroidCameraUnaggregatedMetric.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.gcRssAndDma = [];\n if (message.gcRssAndDma && message.gcRssAndDma.length) {\n object.gcRssAndDma = [];\n for (var j = 0; j < message.gcRssAndDma.length; ++j)\n object.gcRssAndDma[j] = $root.perfetto.protos.AndroidCameraUnaggregatedMetric.Value.toObject(message.gcRssAndDma[j], options);\n }\n return object;\n };\n\n /**\n * Converts this AndroidCameraUnaggregatedMetric to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidCameraUnaggregatedMetric\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n AndroidCameraUnaggregatedMetric.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n AndroidCameraUnaggregatedMetric.Value = (function() {\n\n /**\n * Properties of a Value.\n * @memberof perfetto.protos.AndroidCameraUnaggregatedMetric\n * @interface IValue\n * @property {number|null} [ts] Value ts\n * @property {number|null} [value] Value value\n */\n\n /**\n * Constructs a new Value.\n * @memberof perfetto.protos.AndroidCameraUnaggregatedMetric\n * @classdesc Represents a Value.\n * @implements IValue\n * @constructor\n * @param {perfetto.protos.AndroidCameraUnaggregatedMetric.IValue=} [properties] Properties to set\n */\n function Value(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * Value ts.\n * @member {number} ts\n * @memberof perfetto.protos.AndroidCameraUnaggregatedMetric.Value\n * @instance\n */\n Value.prototype.ts = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * Value value.\n * @member {number} value\n * @memberof perfetto.protos.AndroidCameraUnaggregatedMetric.Value\n * @instance\n */\n Value.prototype.value = 0;\n\n /**\n * Creates a new Value instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidCameraUnaggregatedMetric.Value\n * @static\n * @param {perfetto.protos.AndroidCameraUnaggregatedMetric.IValue=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidCameraUnaggregatedMetric.Value} Value instance\n */\n Value.create = function create(properties) {\n return new Value(properties);\n };\n\n /**\n * Encodes the specified Value message. Does not implicitly {@link perfetto.protos.AndroidCameraUnaggregatedMetric.Value.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidCameraUnaggregatedMetric.Value\n * @static\n * @param {perfetto.protos.AndroidCameraUnaggregatedMetric.IValue} message Value message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Value.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.ts != null && Object.hasOwnProperty.call(message, \"ts\"))\n writer.uint32(/* id 1, wireType 0 =*/8).int64(message.ts);\n if (message.value != null && Object.hasOwnProperty.call(message, \"value\"))\n writer.uint32(/* id 2, wireType 1 =*/17).double(message.value);\n return writer;\n };\n\n /**\n * Encodes the specified Value message, length delimited. Does not implicitly {@link perfetto.protos.AndroidCameraUnaggregatedMetric.Value.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidCameraUnaggregatedMetric.Value\n * @static\n * @param {perfetto.protos.AndroidCameraUnaggregatedMetric.IValue} message Value message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Value.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a Value message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidCameraUnaggregatedMetric.Value\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidCameraUnaggregatedMetric.Value} Value\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Value.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidCameraUnaggregatedMetric.Value();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.ts = reader.int64();\n break;\n case 2:\n message.value = reader.double();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a Value message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidCameraUnaggregatedMetric.Value\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidCameraUnaggregatedMetric.Value} Value\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Value.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a Value message.\n * @function verify\n * @memberof perfetto.protos.AndroidCameraUnaggregatedMetric.Value\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n Value.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.ts != null && message.hasOwnProperty(\"ts\"))\n if (!$util.isInteger(message.ts) && !(message.ts && $util.isInteger(message.ts.low) && $util.isInteger(message.ts.high)))\n return \"ts: integer|Long expected\";\n if (message.value != null && message.hasOwnProperty(\"value\"))\n if (typeof message.value !== \"number\")\n return \"value: number expected\";\n return null;\n };\n\n /**\n * Creates a Value message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidCameraUnaggregatedMetric.Value\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidCameraUnaggregatedMetric.Value} Value\n */\n Value.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidCameraUnaggregatedMetric.Value)\n return object;\n var message = new $root.perfetto.protos.AndroidCameraUnaggregatedMetric.Value();\n if (object.ts != null)\n if ($util.Long)\n (message.ts = $util.Long.fromValue(object.ts)).unsigned = false;\n else if (typeof object.ts === \"string\")\n message.ts = parseInt(object.ts, 10);\n else if (typeof object.ts === \"number\")\n message.ts = object.ts;\n else if (typeof object.ts === \"object\")\n message.ts = new $util.LongBits(object.ts.low >>> 0, object.ts.high >>> 0).toNumber();\n if (object.value != null)\n message.value = Number(object.value);\n return message;\n };\n\n /**\n * Creates a plain object from a Value message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidCameraUnaggregatedMetric.Value\n * @static\n * @param {perfetto.protos.AndroidCameraUnaggregatedMetric.Value} message Value\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n Value.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.ts = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.ts = options.longs === String ? \"0\" : 0;\n object.value = 0;\n }\n if (message.ts != null && message.hasOwnProperty(\"ts\"))\n if (typeof message.ts === \"number\")\n object.ts = options.longs === String ? String(message.ts) : message.ts;\n else\n object.ts = options.longs === String ? $util.Long.prototype.toString.call(message.ts) : options.longs === Number ? new $util.LongBits(message.ts.low >>> 0, message.ts.high >>> 0).toNumber() : message.ts;\n if (message.value != null && message.hasOwnProperty(\"value\"))\n object.value = options.json && !isFinite(message.value) ? String(message.value) : message.value;\n return object;\n };\n\n /**\n * Converts this Value to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidCameraUnaggregatedMetric.Value\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n Value.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return Value;\n })();\n\n return AndroidCameraUnaggregatedMetric;\n })();\n\n protos.AndroidDisplayMetrics = (function() {\n\n /**\n * Properties of an AndroidDisplayMetrics.\n * @memberof perfetto.protos\n * @interface IAndroidDisplayMetrics\n * @property {number|null} [totalDuplicateFrames] AndroidDisplayMetrics totalDuplicateFrames\n * @property {number|null} [duplicateFramesLogged] AndroidDisplayMetrics duplicateFramesLogged\n * @property {number|null} [totalDpuUnderrunCount] AndroidDisplayMetrics totalDpuUnderrunCount\n * @property {number|null} [refreshRateSwitches] AndroidDisplayMetrics refreshRateSwitches\n * @property {Array.<perfetto.protos.AndroidDisplayMetrics.IRefreshRateStat>|null} [refreshRateStats] AndroidDisplayMetrics refreshRateStats\n */\n\n /**\n * Constructs a new AndroidDisplayMetrics.\n * @memberof perfetto.protos\n * @classdesc Represents an AndroidDisplayMetrics.\n * @implements IAndroidDisplayMetrics\n * @constructor\n * @param {perfetto.protos.IAndroidDisplayMetrics=} [properties] Properties to set\n */\n function AndroidDisplayMetrics(properties) {\n this.refreshRateStats = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * AndroidDisplayMetrics totalDuplicateFrames.\n * @member {number} totalDuplicateFrames\n * @memberof perfetto.protos.AndroidDisplayMetrics\n * @instance\n */\n AndroidDisplayMetrics.prototype.totalDuplicateFrames = 0;\n\n /**\n * AndroidDisplayMetrics duplicateFramesLogged.\n * @member {number} duplicateFramesLogged\n * @memberof perfetto.protos.AndroidDisplayMetrics\n * @instance\n */\n AndroidDisplayMetrics.prototype.duplicateFramesLogged = 0;\n\n /**\n * AndroidDisplayMetrics totalDpuUnderrunCount.\n * @member {number} totalDpuUnderrunCount\n * @memberof perfetto.protos.AndroidDisplayMetrics\n * @instance\n */\n AndroidDisplayMetrics.prototype.totalDpuUnderrunCount = 0;\n\n /**\n * AndroidDisplayMetrics refreshRateSwitches.\n * @member {number} refreshRateSwitches\n * @memberof perfetto.protos.AndroidDisplayMetrics\n * @instance\n */\n AndroidDisplayMetrics.prototype.refreshRateSwitches = 0;\n\n /**\n * AndroidDisplayMetrics refreshRateStats.\n * @member {Array.<perfetto.protos.AndroidDisplayMetrics.IRefreshRateStat>} refreshRateStats\n * @memberof perfetto.protos.AndroidDisplayMetrics\n * @instance\n */\n AndroidDisplayMetrics.prototype.refreshRateStats = $util.emptyArray;\n\n /**\n * Creates a new AndroidDisplayMetrics instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidDisplayMetrics\n * @static\n * @param {perfetto.protos.IAndroidDisplayMetrics=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidDisplayMetrics} AndroidDisplayMetrics instance\n */\n AndroidDisplayMetrics.create = function create(properties) {\n return new AndroidDisplayMetrics(properties);\n };\n\n /**\n * Encodes the specified AndroidDisplayMetrics message. Does not implicitly {@link perfetto.protos.AndroidDisplayMetrics.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidDisplayMetrics\n * @static\n * @param {perfetto.protos.IAndroidDisplayMetrics} message AndroidDisplayMetrics message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n AndroidDisplayMetrics.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.totalDuplicateFrames != null && Object.hasOwnProperty.call(message, \"totalDuplicateFrames\"))\n writer.uint32(/* id 1, wireType 0 =*/8).uint32(message.totalDuplicateFrames);\n if (message.duplicateFramesLogged != null && Object.hasOwnProperty.call(message, \"duplicateFramesLogged\"))\n writer.uint32(/* id 2, wireType 0 =*/16).uint32(message.duplicateFramesLogged);\n if (message.totalDpuUnderrunCount != null && Object.hasOwnProperty.call(message, \"totalDpuUnderrunCount\"))\n writer.uint32(/* id 3, wireType 0 =*/24).uint32(message.totalDpuUnderrunCount);\n if (message.refreshRateSwitches != null && Object.hasOwnProperty.call(message, \"refreshRateSwitches\"))\n writer.uint32(/* id 4, wireType 0 =*/32).uint32(message.refreshRateSwitches);\n if (message.refreshRateStats != null && message.refreshRateStats.length)\n for (var i = 0; i < message.refreshRateStats.length; ++i)\n $root.perfetto.protos.AndroidDisplayMetrics.RefreshRateStat.encode(message.refreshRateStats[i], writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified AndroidDisplayMetrics message, length delimited. Does not implicitly {@link perfetto.protos.AndroidDisplayMetrics.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidDisplayMetrics\n * @static\n * @param {perfetto.protos.IAndroidDisplayMetrics} message AndroidDisplayMetrics message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n AndroidDisplayMetrics.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes an AndroidDisplayMetrics message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidDisplayMetrics\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidDisplayMetrics} AndroidDisplayMetrics\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n AndroidDisplayMetrics.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidDisplayMetrics();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.totalDuplicateFrames = reader.uint32();\n break;\n case 2:\n message.duplicateFramesLogged = reader.uint32();\n break;\n case 3:\n message.totalDpuUnderrunCount = reader.uint32();\n break;\n case 4:\n message.refreshRateSwitches = reader.uint32();\n break;\n case 5:\n if (!(message.refreshRateStats && message.refreshRateStats.length))\n message.refreshRateStats = [];\n message.refreshRateStats.push($root.perfetto.protos.AndroidDisplayMetrics.RefreshRateStat.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes an AndroidDisplayMetrics message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidDisplayMetrics\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidDisplayMetrics} AndroidDisplayMetrics\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n AndroidDisplayMetrics.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies an AndroidDisplayMetrics message.\n * @function verify\n * @memberof perfetto.protos.AndroidDisplayMetrics\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n AndroidDisplayMetrics.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.totalDuplicateFrames != null && message.hasOwnProperty(\"totalDuplicateFrames\"))\n if (!$util.isInteger(message.totalDuplicateFrames))\n return \"totalDuplicateFrames: integer expected\";\n if (message.duplicateFramesLogged != null && message.hasOwnProperty(\"duplicateFramesLogged\"))\n if (!$util.isInteger(message.duplicateFramesLogged))\n return \"duplicateFramesLogged: integer expected\";\n if (message.totalDpuUnderrunCount != null && message.hasOwnProperty(\"totalDpuUnderrunCount\"))\n if (!$util.isInteger(message.totalDpuUnderrunCount))\n return \"totalDpuUnderrunCount: integer expected\";\n if (message.refreshRateSwitches != null && message.hasOwnProperty(\"refreshRateSwitches\"))\n if (!$util.isInteger(message.refreshRateSwitches))\n return \"refreshRateSwitches: integer expected\";\n if (message.refreshRateStats != null && message.hasOwnProperty(\"refreshRateStats\")) {\n if (!Array.isArray(message.refreshRateStats))\n return \"refreshRateStats: array expected\";\n for (var i = 0; i < message.refreshRateStats.length; ++i) {\n var error = $root.perfetto.protos.AndroidDisplayMetrics.RefreshRateStat.verify(message.refreshRateStats[i]);\n if (error)\n return \"refreshRateStats.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates an AndroidDisplayMetrics message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidDisplayMetrics\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidDisplayMetrics} AndroidDisplayMetrics\n */\n AndroidDisplayMetrics.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidDisplayMetrics)\n return object;\n var message = new $root.perfetto.protos.AndroidDisplayMetrics();\n if (object.totalDuplicateFrames != null)\n message.totalDuplicateFrames = object.totalDuplicateFrames >>> 0;\n if (object.duplicateFramesLogged != null)\n message.duplicateFramesLogged = object.duplicateFramesLogged >>> 0;\n if (object.totalDpuUnderrunCount != null)\n message.totalDpuUnderrunCount = object.totalDpuUnderrunCount >>> 0;\n if (object.refreshRateSwitches != null)\n message.refreshRateSwitches = object.refreshRateSwitches >>> 0;\n if (object.refreshRateStats) {\n if (!Array.isArray(object.refreshRateStats))\n throw TypeError(\".perfetto.protos.AndroidDisplayMetrics.refreshRateStats: array expected\");\n message.refreshRateStats = [];\n for (var i = 0; i < object.refreshRateStats.length; ++i) {\n if (typeof object.refreshRateStats[i] !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidDisplayMetrics.refreshRateStats: object expected\");\n message.refreshRateStats[i] = $root.perfetto.protos.AndroidDisplayMetrics.RefreshRateStat.fromObject(object.refreshRateStats[i]);\n }\n }\n return message;\n };\n\n /**\n * Creates a plain object from an AndroidDisplayMetrics message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidDisplayMetrics\n * @static\n * @param {perfetto.protos.AndroidDisplayMetrics} message AndroidDisplayMetrics\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n AndroidDisplayMetrics.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.refreshRateStats = [];\n if (options.defaults) {\n object.totalDuplicateFrames = 0;\n object.duplicateFramesLogged = 0;\n object.totalDpuUnderrunCount = 0;\n object.refreshRateSwitches = 0;\n }\n if (message.totalDuplicateFrames != null && message.hasOwnProperty(\"totalDuplicateFrames\"))\n object.totalDuplicateFrames = message.totalDuplicateFrames;\n if (message.duplicateFramesLogged != null && message.hasOwnProperty(\"duplicateFramesLogged\"))\n object.duplicateFramesLogged = message.duplicateFramesLogged;\n if (message.totalDpuUnderrunCount != null && message.hasOwnProperty(\"totalDpuUnderrunCount\"))\n object.totalDpuUnderrunCount = message.totalDpuUnderrunCount;\n if (message.refreshRateSwitches != null && message.hasOwnProperty(\"refreshRateSwitches\"))\n object.refreshRateSwitches = message.refreshRateSwitches;\n if (message.refreshRateStats && message.refreshRateStats.length) {\n object.refreshRateStats = [];\n for (var j = 0; j < message.refreshRateStats.length; ++j)\n object.refreshRateStats[j] = $root.perfetto.protos.AndroidDisplayMetrics.RefreshRateStat.toObject(message.refreshRateStats[j], options);\n }\n return object;\n };\n\n /**\n * Converts this AndroidDisplayMetrics to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidDisplayMetrics\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n AndroidDisplayMetrics.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n AndroidDisplayMetrics.RefreshRateStat = (function() {\n\n /**\n * Properties of a RefreshRateStat.\n * @memberof perfetto.protos.AndroidDisplayMetrics\n * @interface IRefreshRateStat\n * @property {number|null} [refreshRateFps] RefreshRateStat refreshRateFps\n * @property {number|null} [count] RefreshRateStat count\n * @property {number|null} [totalDurMs] RefreshRateStat totalDurMs\n * @property {number|null} [avgDurMs] RefreshRateStat avgDurMs\n */\n\n /**\n * Constructs a new RefreshRateStat.\n * @memberof perfetto.protos.AndroidDisplayMetrics\n * @classdesc Represents a RefreshRateStat.\n * @implements IRefreshRateStat\n * @constructor\n * @param {perfetto.protos.AndroidDisplayMetrics.IRefreshRateStat=} [properties] Properties to set\n */\n function RefreshRateStat(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * RefreshRateStat refreshRateFps.\n * @member {number} refreshRateFps\n * @memberof perfetto.protos.AndroidDisplayMetrics.RefreshRateStat\n * @instance\n */\n RefreshRateStat.prototype.refreshRateFps = 0;\n\n /**\n * RefreshRateStat count.\n * @member {number} count\n * @memberof perfetto.protos.AndroidDisplayMetrics.RefreshRateStat\n * @instance\n */\n RefreshRateStat.prototype.count = 0;\n\n /**\n * RefreshRateStat totalDurMs.\n * @member {number} totalDurMs\n * @memberof perfetto.protos.AndroidDisplayMetrics.RefreshRateStat\n * @instance\n */\n RefreshRateStat.prototype.totalDurMs = 0;\n\n /**\n * RefreshRateStat avgDurMs.\n * @member {number} avgDurMs\n * @memberof perfetto.protos.AndroidDisplayMetrics.RefreshRateStat\n * @instance\n */\n RefreshRateStat.prototype.avgDurMs = 0;\n\n /**\n * Creates a new RefreshRateStat instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidDisplayMetrics.RefreshRateStat\n * @static\n * @param {perfetto.protos.AndroidDisplayMetrics.IRefreshRateStat=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidDisplayMetrics.RefreshRateStat} RefreshRateStat instance\n */\n RefreshRateStat.create = function create(properties) {\n return new RefreshRateStat(properties);\n };\n\n /**\n * Encodes the specified RefreshRateStat message. Does not implicitly {@link perfetto.protos.AndroidDisplayMetrics.RefreshRateStat.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidDisplayMetrics.RefreshRateStat\n * @static\n * @param {perfetto.protos.AndroidDisplayMetrics.IRefreshRateStat} message RefreshRateStat message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n RefreshRateStat.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.refreshRateFps != null && Object.hasOwnProperty.call(message, \"refreshRateFps\"))\n writer.uint32(/* id 1, wireType 0 =*/8).uint32(message.refreshRateFps);\n if (message.count != null && Object.hasOwnProperty.call(message, \"count\"))\n writer.uint32(/* id 2, wireType 0 =*/16).uint32(message.count);\n if (message.totalDurMs != null && Object.hasOwnProperty.call(message, \"totalDurMs\"))\n writer.uint32(/* id 3, wireType 1 =*/25).double(message.totalDurMs);\n if (message.avgDurMs != null && Object.hasOwnProperty.call(message, \"avgDurMs\"))\n writer.uint32(/* id 4, wireType 1 =*/33).double(message.avgDurMs);\n return writer;\n };\n\n /**\n * Encodes the specified RefreshRateStat message, length delimited. Does not implicitly {@link perfetto.protos.AndroidDisplayMetrics.RefreshRateStat.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidDisplayMetrics.RefreshRateStat\n * @static\n * @param {perfetto.protos.AndroidDisplayMetrics.IRefreshRateStat} message RefreshRateStat message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n RefreshRateStat.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a RefreshRateStat message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidDisplayMetrics.RefreshRateStat\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidDisplayMetrics.RefreshRateStat} RefreshRateStat\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n RefreshRateStat.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidDisplayMetrics.RefreshRateStat();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.refreshRateFps = reader.uint32();\n break;\n case 2:\n message.count = reader.uint32();\n break;\n case 3:\n message.totalDurMs = reader.double();\n break;\n case 4:\n message.avgDurMs = reader.double();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a RefreshRateStat message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidDisplayMetrics.RefreshRateStat\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidDisplayMetrics.RefreshRateStat} RefreshRateStat\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n RefreshRateStat.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a RefreshRateStat message.\n * @function verify\n * @memberof perfetto.protos.AndroidDisplayMetrics.RefreshRateStat\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n RefreshRateStat.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.refreshRateFps != null && message.hasOwnProperty(\"refreshRateFps\"))\n if (!$util.isInteger(message.refreshRateFps))\n return \"refreshRateFps: integer expected\";\n if (message.count != null && message.hasOwnProperty(\"count\"))\n if (!$util.isInteger(message.count))\n return \"count: integer expected\";\n if (message.totalDurMs != null && message.hasOwnProperty(\"totalDurMs\"))\n if (typeof message.totalDurMs !== \"number\")\n return \"totalDurMs: number expected\";\n if (message.avgDurMs != null && message.hasOwnProperty(\"avgDurMs\"))\n if (typeof message.avgDurMs !== \"number\")\n return \"avgDurMs: number expected\";\n return null;\n };\n\n /**\n * Creates a RefreshRateStat message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidDisplayMetrics.RefreshRateStat\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidDisplayMetrics.RefreshRateStat} RefreshRateStat\n */\n RefreshRateStat.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidDisplayMetrics.RefreshRateStat)\n return object;\n var message = new $root.perfetto.protos.AndroidDisplayMetrics.RefreshRateStat();\n if (object.refreshRateFps != null)\n message.refreshRateFps = object.refreshRateFps >>> 0;\n if (object.count != null)\n message.count = object.count >>> 0;\n if (object.totalDurMs != null)\n message.totalDurMs = Number(object.totalDurMs);\n if (object.avgDurMs != null)\n message.avgDurMs = Number(object.avgDurMs);\n return message;\n };\n\n /**\n * Creates a plain object from a RefreshRateStat message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidDisplayMetrics.RefreshRateStat\n * @static\n * @param {perfetto.protos.AndroidDisplayMetrics.RefreshRateStat} message RefreshRateStat\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n RefreshRateStat.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.refreshRateFps = 0;\n object.count = 0;\n object.totalDurMs = 0;\n object.avgDurMs = 0;\n }\n if (message.refreshRateFps != null && message.hasOwnProperty(\"refreshRateFps\"))\n object.refreshRateFps = message.refreshRateFps;\n if (message.count != null && message.hasOwnProperty(\"count\"))\n object.count = message.count;\n if (message.totalDurMs != null && message.hasOwnProperty(\"totalDurMs\"))\n object.totalDurMs = options.json && !isFinite(message.totalDurMs) ? String(message.totalDurMs) : message.totalDurMs;\n if (message.avgDurMs != null && message.hasOwnProperty(\"avgDurMs\"))\n object.avgDurMs = options.json && !isFinite(message.avgDurMs) ? String(message.avgDurMs) : message.avgDurMs;\n return object;\n };\n\n /**\n * Converts this RefreshRateStat to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidDisplayMetrics.RefreshRateStat\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n RefreshRateStat.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return RefreshRateStat;\n })();\n\n return AndroidDisplayMetrics;\n })();\n\n protos.AndroidDmaHeapMetric = (function() {\n\n /**\n * Properties of an AndroidDmaHeapMetric.\n * @memberof perfetto.protos\n * @interface IAndroidDmaHeapMetric\n * @property {number|null} [avgSizeBytes] AndroidDmaHeapMetric avgSizeBytes\n * @property {number|null} [minSizeBytes] AndroidDmaHeapMetric minSizeBytes\n * @property {number|null} [maxSizeBytes] AndroidDmaHeapMetric maxSizeBytes\n * @property {number|null} [totalAllocSizeBytes] AndroidDmaHeapMetric totalAllocSizeBytes\n */\n\n /**\n * Constructs a new AndroidDmaHeapMetric.\n * @memberof perfetto.protos\n * @classdesc Represents an AndroidDmaHeapMetric.\n * @implements IAndroidDmaHeapMetric\n * @constructor\n * @param {perfetto.protos.IAndroidDmaHeapMetric=} [properties] Properties to set\n */\n function AndroidDmaHeapMetric(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * AndroidDmaHeapMetric avgSizeBytes.\n * @member {number} avgSizeBytes\n * @memberof perfetto.protos.AndroidDmaHeapMetric\n * @instance\n */\n AndroidDmaHeapMetric.prototype.avgSizeBytes = 0;\n\n /**\n * AndroidDmaHeapMetric minSizeBytes.\n * @member {number} minSizeBytes\n * @memberof perfetto.protos.AndroidDmaHeapMetric\n * @instance\n */\n AndroidDmaHeapMetric.prototype.minSizeBytes = 0;\n\n /**\n * AndroidDmaHeapMetric maxSizeBytes.\n * @member {number} maxSizeBytes\n * @memberof perfetto.protos.AndroidDmaHeapMetric\n * @instance\n */\n AndroidDmaHeapMetric.prototype.maxSizeBytes = 0;\n\n /**\n * AndroidDmaHeapMetric totalAllocSizeBytes.\n * @member {number} totalAllocSizeBytes\n * @memberof perfetto.protos.AndroidDmaHeapMetric\n * @instance\n */\n AndroidDmaHeapMetric.prototype.totalAllocSizeBytes = 0;\n\n /**\n * Creates a new AndroidDmaHeapMetric instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidDmaHeapMetric\n * @static\n * @param {perfetto.protos.IAndroidDmaHeapMetric=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidDmaHeapMetric} AndroidDmaHeapMetric instance\n */\n AndroidDmaHeapMetric.create = function create(properties) {\n return new AndroidDmaHeapMetric(properties);\n };\n\n /**\n * Encodes the specified AndroidDmaHeapMetric message. Does not implicitly {@link perfetto.protos.AndroidDmaHeapMetric.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidDmaHeapMetric\n * @static\n * @param {perfetto.protos.IAndroidDmaHeapMetric} message AndroidDmaHeapMetric message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n AndroidDmaHeapMetric.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.avgSizeBytes != null && Object.hasOwnProperty.call(message, \"avgSizeBytes\"))\n writer.uint32(/* id 1, wireType 1 =*/9).double(message.avgSizeBytes);\n if (message.minSizeBytes != null && Object.hasOwnProperty.call(message, \"minSizeBytes\"))\n writer.uint32(/* id 2, wireType 1 =*/17).double(message.minSizeBytes);\n if (message.maxSizeBytes != null && Object.hasOwnProperty.call(message, \"maxSizeBytes\"))\n writer.uint32(/* id 3, wireType 1 =*/25).double(message.maxSizeBytes);\n if (message.totalAllocSizeBytes != null && Object.hasOwnProperty.call(message, \"totalAllocSizeBytes\"))\n writer.uint32(/* id 4, wireType 1 =*/33).double(message.totalAllocSizeBytes);\n return writer;\n };\n\n /**\n * Encodes the specified AndroidDmaHeapMetric message, length delimited. Does not implicitly {@link perfetto.protos.AndroidDmaHeapMetric.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidDmaHeapMetric\n * @static\n * @param {perfetto.protos.IAndroidDmaHeapMetric} message AndroidDmaHeapMetric message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n AndroidDmaHeapMetric.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes an AndroidDmaHeapMetric message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidDmaHeapMetric\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidDmaHeapMetric} AndroidDmaHeapMetric\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n AndroidDmaHeapMetric.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidDmaHeapMetric();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.avgSizeBytes = reader.double();\n break;\n case 2:\n message.minSizeBytes = reader.double();\n break;\n case 3:\n message.maxSizeBytes = reader.double();\n break;\n case 4:\n message.totalAllocSizeBytes = reader.double();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes an AndroidDmaHeapMetric message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidDmaHeapMetric\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidDmaHeapMetric} AndroidDmaHeapMetric\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n AndroidDmaHeapMetric.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies an AndroidDmaHeapMetric message.\n * @function verify\n * @memberof perfetto.protos.AndroidDmaHeapMetric\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n AndroidDmaHeapMetric.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.avgSizeBytes != null && message.hasOwnProperty(\"avgSizeBytes\"))\n if (typeof message.avgSizeBytes !== \"number\")\n return \"avgSizeBytes: number expected\";\n if (message.minSizeBytes != null && message.hasOwnProperty(\"minSizeBytes\"))\n if (typeof message.minSizeBytes !== \"number\")\n return \"minSizeBytes: number expected\";\n if (message.maxSizeBytes != null && message.hasOwnProperty(\"maxSizeBytes\"))\n if (typeof message.maxSizeBytes !== \"number\")\n return \"maxSizeBytes: number expected\";\n if (message.totalAllocSizeBytes != null && message.hasOwnProperty(\"totalAllocSizeBytes\"))\n if (typeof message.totalAllocSizeBytes !== \"number\")\n return \"totalAllocSizeBytes: number expected\";\n return null;\n };\n\n /**\n * Creates an AndroidDmaHeapMetric message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidDmaHeapMetric\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidDmaHeapMetric} AndroidDmaHeapMetric\n */\n AndroidDmaHeapMetric.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidDmaHeapMetric)\n return object;\n var message = new $root.perfetto.protos.AndroidDmaHeapMetric();\n if (object.avgSizeBytes != null)\n message.avgSizeBytes = Number(object.avgSizeBytes);\n if (object.minSizeBytes != null)\n message.minSizeBytes = Number(object.minSizeBytes);\n if (object.maxSizeBytes != null)\n message.maxSizeBytes = Number(object.maxSizeBytes);\n if (object.totalAllocSizeBytes != null)\n message.totalAllocSizeBytes = Number(object.totalAllocSizeBytes);\n return message;\n };\n\n /**\n * Creates a plain object from an AndroidDmaHeapMetric message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidDmaHeapMetric\n * @static\n * @param {perfetto.protos.AndroidDmaHeapMetric} message AndroidDmaHeapMetric\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n AndroidDmaHeapMetric.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.avgSizeBytes = 0;\n object.minSizeBytes = 0;\n object.maxSizeBytes = 0;\n object.totalAllocSizeBytes = 0;\n }\n if (message.avgSizeBytes != null && message.hasOwnProperty(\"avgSizeBytes\"))\n object.avgSizeBytes = options.json && !isFinite(message.avgSizeBytes) ? String(message.avgSizeBytes) : message.avgSizeBytes;\n if (message.minSizeBytes != null && message.hasOwnProperty(\"minSizeBytes\"))\n object.minSizeBytes = options.json && !isFinite(message.minSizeBytes) ? String(message.minSizeBytes) : message.minSizeBytes;\n if (message.maxSizeBytes != null && message.hasOwnProperty(\"maxSizeBytes\"))\n object.maxSizeBytes = options.json && !isFinite(message.maxSizeBytes) ? String(message.maxSizeBytes) : message.maxSizeBytes;\n if (message.totalAllocSizeBytes != null && message.hasOwnProperty(\"totalAllocSizeBytes\"))\n object.totalAllocSizeBytes = options.json && !isFinite(message.totalAllocSizeBytes) ? String(message.totalAllocSizeBytes) : message.totalAllocSizeBytes;\n return object;\n };\n\n /**\n * Converts this AndroidDmaHeapMetric to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidDmaHeapMetric\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n AndroidDmaHeapMetric.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return AndroidDmaHeapMetric;\n })();\n\n protos.AndroidDvfsMetric = (function() {\n\n /**\n * Properties of an AndroidDvfsMetric.\n * @memberof perfetto.protos\n * @interface IAndroidDvfsMetric\n * @property {Array.<perfetto.protos.AndroidDvfsMetric.IFrequencyResidency>|null} [freqResidencies] AndroidDvfsMetric freqResidencies\n */\n\n /**\n * Constructs a new AndroidDvfsMetric.\n * @memberof perfetto.protos\n * @classdesc Represents an AndroidDvfsMetric.\n * @implements IAndroidDvfsMetric\n * @constructor\n * @param {perfetto.protos.IAndroidDvfsMetric=} [properties] Properties to set\n */\n function AndroidDvfsMetric(properties) {\n this.freqResidencies = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * AndroidDvfsMetric freqResidencies.\n * @member {Array.<perfetto.protos.AndroidDvfsMetric.IFrequencyResidency>} freqResidencies\n * @memberof perfetto.protos.AndroidDvfsMetric\n * @instance\n */\n AndroidDvfsMetric.prototype.freqResidencies = $util.emptyArray;\n\n /**\n * Creates a new AndroidDvfsMetric instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidDvfsMetric\n * @static\n * @param {perfetto.protos.IAndroidDvfsMetric=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidDvfsMetric} AndroidDvfsMetric instance\n */\n AndroidDvfsMetric.create = function create(properties) {\n return new AndroidDvfsMetric(properties);\n };\n\n /**\n * Encodes the specified AndroidDvfsMetric message. Does not implicitly {@link perfetto.protos.AndroidDvfsMetric.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidDvfsMetric\n * @static\n * @param {perfetto.protos.IAndroidDvfsMetric} message AndroidDvfsMetric message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n AndroidDvfsMetric.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.freqResidencies != null && message.freqResidencies.length)\n for (var i = 0; i < message.freqResidencies.length; ++i)\n $root.perfetto.protos.AndroidDvfsMetric.FrequencyResidency.encode(message.freqResidencies[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified AndroidDvfsMetric message, length delimited. Does not implicitly {@link perfetto.protos.AndroidDvfsMetric.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidDvfsMetric\n * @static\n * @param {perfetto.protos.IAndroidDvfsMetric} message AndroidDvfsMetric message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n AndroidDvfsMetric.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes an AndroidDvfsMetric message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidDvfsMetric\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidDvfsMetric} AndroidDvfsMetric\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n AndroidDvfsMetric.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidDvfsMetric();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (!(message.freqResidencies && message.freqResidencies.length))\n message.freqResidencies = [];\n message.freqResidencies.push($root.perfetto.protos.AndroidDvfsMetric.FrequencyResidency.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes an AndroidDvfsMetric message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidDvfsMetric\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidDvfsMetric} AndroidDvfsMetric\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n AndroidDvfsMetric.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies an AndroidDvfsMetric message.\n * @function verify\n * @memberof perfetto.protos.AndroidDvfsMetric\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n AndroidDvfsMetric.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.freqResidencies != null && message.hasOwnProperty(\"freqResidencies\")) {\n if (!Array.isArray(message.freqResidencies))\n return \"freqResidencies: array expected\";\n for (var i = 0; i < message.freqResidencies.length; ++i) {\n var error = $root.perfetto.protos.AndroidDvfsMetric.FrequencyResidency.verify(message.freqResidencies[i]);\n if (error)\n return \"freqResidencies.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates an AndroidDvfsMetric message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidDvfsMetric\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidDvfsMetric} AndroidDvfsMetric\n */\n AndroidDvfsMetric.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidDvfsMetric)\n return object;\n var message = new $root.perfetto.protos.AndroidDvfsMetric();\n if (object.freqResidencies) {\n if (!Array.isArray(object.freqResidencies))\n throw TypeError(\".perfetto.protos.AndroidDvfsMetric.freqResidencies: array expected\");\n message.freqResidencies = [];\n for (var i = 0; i < object.freqResidencies.length; ++i) {\n if (typeof object.freqResidencies[i] !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidDvfsMetric.freqResidencies: object expected\");\n message.freqResidencies[i] = $root.perfetto.protos.AndroidDvfsMetric.FrequencyResidency.fromObject(object.freqResidencies[i]);\n }\n }\n return message;\n };\n\n /**\n * Creates a plain object from an AndroidDvfsMetric message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidDvfsMetric\n * @static\n * @param {perfetto.protos.AndroidDvfsMetric} message AndroidDvfsMetric\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n AndroidDvfsMetric.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.freqResidencies = [];\n if (message.freqResidencies && message.freqResidencies.length) {\n object.freqResidencies = [];\n for (var j = 0; j < message.freqResidencies.length; ++j)\n object.freqResidencies[j] = $root.perfetto.protos.AndroidDvfsMetric.FrequencyResidency.toObject(message.freqResidencies[j], options);\n }\n return object;\n };\n\n /**\n * Converts this AndroidDvfsMetric to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidDvfsMetric\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n AndroidDvfsMetric.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n AndroidDvfsMetric.BandStat = (function() {\n\n /**\n * Properties of a BandStat.\n * @memberof perfetto.protos.AndroidDvfsMetric\n * @interface IBandStat\n * @property {number|null} [freqValue] BandStat freqValue\n * @property {number|null} [percentage] BandStat percentage\n * @property {number|null} [durationNs] BandStat durationNs\n */\n\n /**\n * Constructs a new BandStat.\n * @memberof perfetto.protos.AndroidDvfsMetric\n * @classdesc Represents a BandStat.\n * @implements IBandStat\n * @constructor\n * @param {perfetto.protos.AndroidDvfsMetric.IBandStat=} [properties] Properties to set\n */\n function BandStat(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * BandStat freqValue.\n * @member {number} freqValue\n * @memberof perfetto.protos.AndroidDvfsMetric.BandStat\n * @instance\n */\n BandStat.prototype.freqValue = 0;\n\n /**\n * BandStat percentage.\n * @member {number} percentage\n * @memberof perfetto.protos.AndroidDvfsMetric.BandStat\n * @instance\n */\n BandStat.prototype.percentage = 0;\n\n /**\n * BandStat durationNs.\n * @member {number} durationNs\n * @memberof perfetto.protos.AndroidDvfsMetric.BandStat\n * @instance\n */\n BandStat.prototype.durationNs = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * Creates a new BandStat instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidDvfsMetric.BandStat\n * @static\n * @param {perfetto.protos.AndroidDvfsMetric.IBandStat=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidDvfsMetric.BandStat} BandStat instance\n */\n BandStat.create = function create(properties) {\n return new BandStat(properties);\n };\n\n /**\n * Encodes the specified BandStat message. Does not implicitly {@link perfetto.protos.AndroidDvfsMetric.BandStat.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidDvfsMetric.BandStat\n * @static\n * @param {perfetto.protos.AndroidDvfsMetric.IBandStat} message BandStat message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n BandStat.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.freqValue != null && Object.hasOwnProperty.call(message, \"freqValue\"))\n writer.uint32(/* id 1, wireType 0 =*/8).int32(message.freqValue);\n if (message.percentage != null && Object.hasOwnProperty.call(message, \"percentage\"))\n writer.uint32(/* id 2, wireType 1 =*/17).double(message.percentage);\n if (message.durationNs != null && Object.hasOwnProperty.call(message, \"durationNs\"))\n writer.uint32(/* id 3, wireType 0 =*/24).int64(message.durationNs);\n return writer;\n };\n\n /**\n * Encodes the specified BandStat message, length delimited. Does not implicitly {@link perfetto.protos.AndroidDvfsMetric.BandStat.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidDvfsMetric.BandStat\n * @static\n * @param {perfetto.protos.AndroidDvfsMetric.IBandStat} message BandStat message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n BandStat.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a BandStat message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidDvfsMetric.BandStat\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidDvfsMetric.BandStat} BandStat\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n BandStat.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidDvfsMetric.BandStat();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.freqValue = reader.int32();\n break;\n case 2:\n message.percentage = reader.double();\n break;\n case 3:\n message.durationNs = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a BandStat message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidDvfsMetric.BandStat\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidDvfsMetric.BandStat} BandStat\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n BandStat.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a BandStat message.\n * @function verify\n * @memberof perfetto.protos.AndroidDvfsMetric.BandStat\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n BandStat.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.freqValue != null && message.hasOwnProperty(\"freqValue\"))\n if (!$util.isInteger(message.freqValue))\n return \"freqValue: integer expected\";\n if (message.percentage != null && message.hasOwnProperty(\"percentage\"))\n if (typeof message.percentage !== \"number\")\n return \"percentage: number expected\";\n if (message.durationNs != null && message.hasOwnProperty(\"durationNs\"))\n if (!$util.isInteger(message.durationNs) && !(message.durationNs && $util.isInteger(message.durationNs.low) && $util.isInteger(message.durationNs.high)))\n return \"durationNs: integer|Long expected\";\n return null;\n };\n\n /**\n * Creates a BandStat message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidDvfsMetric.BandStat\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidDvfsMetric.BandStat} BandStat\n */\n BandStat.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidDvfsMetric.BandStat)\n return object;\n var message = new $root.perfetto.protos.AndroidDvfsMetric.BandStat();\n if (object.freqValue != null)\n message.freqValue = object.freqValue | 0;\n if (object.percentage != null)\n message.percentage = Number(object.percentage);\n if (object.durationNs != null)\n if ($util.Long)\n (message.durationNs = $util.Long.fromValue(object.durationNs)).unsigned = false;\n else if (typeof object.durationNs === \"string\")\n message.durationNs = parseInt(object.durationNs, 10);\n else if (typeof object.durationNs === \"number\")\n message.durationNs = object.durationNs;\n else if (typeof object.durationNs === \"object\")\n message.durationNs = new $util.LongBits(object.durationNs.low >>> 0, object.durationNs.high >>> 0).toNumber();\n return message;\n };\n\n /**\n * Creates a plain object from a BandStat message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidDvfsMetric.BandStat\n * @static\n * @param {perfetto.protos.AndroidDvfsMetric.BandStat} message BandStat\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n BandStat.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.freqValue = 0;\n object.percentage = 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.durationNs = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.durationNs = options.longs === String ? \"0\" : 0;\n }\n if (message.freqValue != null && message.hasOwnProperty(\"freqValue\"))\n object.freqValue = message.freqValue;\n if (message.percentage != null && message.hasOwnProperty(\"percentage\"))\n object.percentage = options.json && !isFinite(message.percentage) ? String(message.percentage) : message.percentage;\n if (message.durationNs != null && message.hasOwnProperty(\"durationNs\"))\n if (typeof message.durationNs === \"number\")\n object.durationNs = options.longs === String ? String(message.durationNs) : message.durationNs;\n else\n object.durationNs = options.longs === String ? $util.Long.prototype.toString.call(message.durationNs) : options.longs === Number ? new $util.LongBits(message.durationNs.low >>> 0, message.durationNs.high >>> 0).toNumber() : message.durationNs;\n return object;\n };\n\n /**\n * Converts this BandStat to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidDvfsMetric.BandStat\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n BandStat.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return BandStat;\n })();\n\n AndroidDvfsMetric.FrequencyResidency = (function() {\n\n /**\n * Properties of a FrequencyResidency.\n * @memberof perfetto.protos.AndroidDvfsMetric\n * @interface IFrequencyResidency\n * @property {string|null} [freqName] FrequencyResidency freqName\n * @property {Array.<perfetto.protos.AndroidDvfsMetric.IBandStat>|null} [bandStat] FrequencyResidency bandStat\n */\n\n /**\n * Constructs a new FrequencyResidency.\n * @memberof perfetto.protos.AndroidDvfsMetric\n * @classdesc Represents a FrequencyResidency.\n * @implements IFrequencyResidency\n * @constructor\n * @param {perfetto.protos.AndroidDvfsMetric.IFrequencyResidency=} [properties] Properties to set\n */\n function FrequencyResidency(properties) {\n this.bandStat = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * FrequencyResidency freqName.\n * @member {string} freqName\n * @memberof perfetto.protos.AndroidDvfsMetric.FrequencyResidency\n * @instance\n */\n FrequencyResidency.prototype.freqName = \"\";\n\n /**\n * FrequencyResidency bandStat.\n * @member {Array.<perfetto.protos.AndroidDvfsMetric.IBandStat>} bandStat\n * @memberof perfetto.protos.AndroidDvfsMetric.FrequencyResidency\n * @instance\n */\n FrequencyResidency.prototype.bandStat = $util.emptyArray;\n\n /**\n * Creates a new FrequencyResidency instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidDvfsMetric.FrequencyResidency\n * @static\n * @param {perfetto.protos.AndroidDvfsMetric.IFrequencyResidency=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidDvfsMetric.FrequencyResidency} FrequencyResidency instance\n */\n FrequencyResidency.create = function create(properties) {\n return new FrequencyResidency(properties);\n };\n\n /**\n * Encodes the specified FrequencyResidency message. Does not implicitly {@link perfetto.protos.AndroidDvfsMetric.FrequencyResidency.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidDvfsMetric.FrequencyResidency\n * @static\n * @param {perfetto.protos.AndroidDvfsMetric.IFrequencyResidency} message FrequencyResidency message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n FrequencyResidency.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.freqName != null && Object.hasOwnProperty.call(message, \"freqName\"))\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.freqName);\n if (message.bandStat != null && message.bandStat.length)\n for (var i = 0; i < message.bandStat.length; ++i)\n $root.perfetto.protos.AndroidDvfsMetric.BandStat.encode(message.bandStat[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified FrequencyResidency message, length delimited. Does not implicitly {@link perfetto.protos.AndroidDvfsMetric.FrequencyResidency.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidDvfsMetric.FrequencyResidency\n * @static\n * @param {perfetto.protos.AndroidDvfsMetric.IFrequencyResidency} message FrequencyResidency message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n FrequencyResidency.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a FrequencyResidency message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidDvfsMetric.FrequencyResidency\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidDvfsMetric.FrequencyResidency} FrequencyResidency\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n FrequencyResidency.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidDvfsMetric.FrequencyResidency();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.freqName = reader.string();\n break;\n case 2:\n if (!(message.bandStat && message.bandStat.length))\n message.bandStat = [];\n message.bandStat.push($root.perfetto.protos.AndroidDvfsMetric.BandStat.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a FrequencyResidency message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidDvfsMetric.FrequencyResidency\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidDvfsMetric.FrequencyResidency} FrequencyResidency\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n FrequencyResidency.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a FrequencyResidency message.\n * @function verify\n * @memberof perfetto.protos.AndroidDvfsMetric.FrequencyResidency\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n FrequencyResidency.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.freqName != null && message.hasOwnProperty(\"freqName\"))\n if (!$util.isString(message.freqName))\n return \"freqName: string expected\";\n if (message.bandStat != null && message.hasOwnProperty(\"bandStat\")) {\n if (!Array.isArray(message.bandStat))\n return \"bandStat: array expected\";\n for (var i = 0; i < message.bandStat.length; ++i) {\n var error = $root.perfetto.protos.AndroidDvfsMetric.BandStat.verify(message.bandStat[i]);\n if (error)\n return \"bandStat.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates a FrequencyResidency message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidDvfsMetric.FrequencyResidency\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidDvfsMetric.FrequencyResidency} FrequencyResidency\n */\n FrequencyResidency.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidDvfsMetric.FrequencyResidency)\n return object;\n var message = new $root.perfetto.protos.AndroidDvfsMetric.FrequencyResidency();\n if (object.freqName != null)\n message.freqName = String(object.freqName);\n if (object.bandStat) {\n if (!Array.isArray(object.bandStat))\n throw TypeError(\".perfetto.protos.AndroidDvfsMetric.FrequencyResidency.bandStat: array expected\");\n message.bandStat = [];\n for (var i = 0; i < object.bandStat.length; ++i) {\n if (typeof object.bandStat[i] !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidDvfsMetric.FrequencyResidency.bandStat: object expected\");\n message.bandStat[i] = $root.perfetto.protos.AndroidDvfsMetric.BandStat.fromObject(object.bandStat[i]);\n }\n }\n return message;\n };\n\n /**\n * Creates a plain object from a FrequencyResidency message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidDvfsMetric.FrequencyResidency\n * @static\n * @param {perfetto.protos.AndroidDvfsMetric.FrequencyResidency} message FrequencyResidency\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n FrequencyResidency.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.bandStat = [];\n if (options.defaults)\n object.freqName = \"\";\n if (message.freqName != null && message.hasOwnProperty(\"freqName\"))\n object.freqName = message.freqName;\n if (message.bandStat && message.bandStat.length) {\n object.bandStat = [];\n for (var j = 0; j < message.bandStat.length; ++j)\n object.bandStat[j] = $root.perfetto.protos.AndroidDvfsMetric.BandStat.toObject(message.bandStat[j], options);\n }\n return object;\n };\n\n /**\n * Converts this FrequencyResidency to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidDvfsMetric.FrequencyResidency\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n FrequencyResidency.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return FrequencyResidency;\n })();\n\n return AndroidDvfsMetric;\n })();\n\n protos.AndroidFastrpcMetric = (function() {\n\n /**\n * Properties of an AndroidFastrpcMetric.\n * @memberof perfetto.protos\n * @interface IAndroidFastrpcMetric\n * @property {Array.<perfetto.protos.AndroidFastrpcMetric.ISubsystem>|null} [subsystem] AndroidFastrpcMetric subsystem\n */\n\n /**\n * Constructs a new AndroidFastrpcMetric.\n * @memberof perfetto.protos\n * @classdesc Represents an AndroidFastrpcMetric.\n * @implements IAndroidFastrpcMetric\n * @constructor\n * @param {perfetto.protos.IAndroidFastrpcMetric=} [properties] Properties to set\n */\n function AndroidFastrpcMetric(properties) {\n this.subsystem = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * AndroidFastrpcMetric subsystem.\n * @member {Array.<perfetto.protos.AndroidFastrpcMetric.ISubsystem>} subsystem\n * @memberof perfetto.protos.AndroidFastrpcMetric\n * @instance\n */\n AndroidFastrpcMetric.prototype.subsystem = $util.emptyArray;\n\n /**\n * Creates a new AndroidFastrpcMetric instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidFastrpcMetric\n * @static\n * @param {perfetto.protos.IAndroidFastrpcMetric=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidFastrpcMetric} AndroidFastrpcMetric instance\n */\n AndroidFastrpcMetric.create = function create(properties) {\n return new AndroidFastrpcMetric(properties);\n };\n\n /**\n * Encodes the specified AndroidFastrpcMetric message. Does not implicitly {@link perfetto.protos.AndroidFastrpcMetric.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidFastrpcMetric\n * @static\n * @param {perfetto.protos.IAndroidFastrpcMetric} message AndroidFastrpcMetric message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n AndroidFastrpcMetric.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.subsystem != null && message.subsystem.length)\n for (var i = 0; i < message.subsystem.length; ++i)\n $root.perfetto.protos.AndroidFastrpcMetric.Subsystem.encode(message.subsystem[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified AndroidFastrpcMetric message, length delimited. Does not implicitly {@link perfetto.protos.AndroidFastrpcMetric.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidFastrpcMetric\n * @static\n * @param {perfetto.protos.IAndroidFastrpcMetric} message AndroidFastrpcMetric message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n AndroidFastrpcMetric.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes an AndroidFastrpcMetric message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidFastrpcMetric\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidFastrpcMetric} AndroidFastrpcMetric\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n AndroidFastrpcMetric.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidFastrpcMetric();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (!(message.subsystem && message.subsystem.length))\n message.subsystem = [];\n message.subsystem.push($root.perfetto.protos.AndroidFastrpcMetric.Subsystem.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes an AndroidFastrpcMetric message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidFastrpcMetric\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidFastrpcMetric} AndroidFastrpcMetric\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n AndroidFastrpcMetric.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies an AndroidFastrpcMetric message.\n * @function verify\n * @memberof perfetto.protos.AndroidFastrpcMetric\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n AndroidFastrpcMetric.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.subsystem != null && message.hasOwnProperty(\"subsystem\")) {\n if (!Array.isArray(message.subsystem))\n return \"subsystem: array expected\";\n for (var i = 0; i < message.subsystem.length; ++i) {\n var error = $root.perfetto.protos.AndroidFastrpcMetric.Subsystem.verify(message.subsystem[i]);\n if (error)\n return \"subsystem.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates an AndroidFastrpcMetric message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidFastrpcMetric\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidFastrpcMetric} AndroidFastrpcMetric\n */\n AndroidFastrpcMetric.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidFastrpcMetric)\n return object;\n var message = new $root.perfetto.protos.AndroidFastrpcMetric();\n if (object.subsystem) {\n if (!Array.isArray(object.subsystem))\n throw TypeError(\".perfetto.protos.AndroidFastrpcMetric.subsystem: array expected\");\n message.subsystem = [];\n for (var i = 0; i < object.subsystem.length; ++i) {\n if (typeof object.subsystem[i] !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidFastrpcMetric.subsystem: object expected\");\n message.subsystem[i] = $root.perfetto.protos.AndroidFastrpcMetric.Subsystem.fromObject(object.subsystem[i]);\n }\n }\n return message;\n };\n\n /**\n * Creates a plain object from an AndroidFastrpcMetric message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidFastrpcMetric\n * @static\n * @param {perfetto.protos.AndroidFastrpcMetric} message AndroidFastrpcMetric\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n AndroidFastrpcMetric.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.subsystem = [];\n if (message.subsystem && message.subsystem.length) {\n object.subsystem = [];\n for (var j = 0; j < message.subsystem.length; ++j)\n object.subsystem[j] = $root.perfetto.protos.AndroidFastrpcMetric.Subsystem.toObject(message.subsystem[j], options);\n }\n return object;\n };\n\n /**\n * Converts this AndroidFastrpcMetric to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidFastrpcMetric\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n AndroidFastrpcMetric.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n AndroidFastrpcMetric.Subsystem = (function() {\n\n /**\n * Properties of a Subsystem.\n * @memberof perfetto.protos.AndroidFastrpcMetric\n * @interface ISubsystem\n * @property {string|null} [name] Subsystem name\n * @property {number|null} [avgSizeBytes] Subsystem avgSizeBytes\n * @property {number|null} [minSizeBytes] Subsystem minSizeBytes\n * @property {number|null} [maxSizeBytes] Subsystem maxSizeBytes\n * @property {number|null} [totalAllocSizeBytes] Subsystem totalAllocSizeBytes\n */\n\n /**\n * Constructs a new Subsystem.\n * @memberof perfetto.protos.AndroidFastrpcMetric\n * @classdesc Represents a Subsystem.\n * @implements ISubsystem\n * @constructor\n * @param {perfetto.protos.AndroidFastrpcMetric.ISubsystem=} [properties] Properties to set\n */\n function Subsystem(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * Subsystem name.\n * @member {string} name\n * @memberof perfetto.protos.AndroidFastrpcMetric.Subsystem\n * @instance\n */\n Subsystem.prototype.name = \"\";\n\n /**\n * Subsystem avgSizeBytes.\n * @member {number} avgSizeBytes\n * @memberof perfetto.protos.AndroidFastrpcMetric.Subsystem\n * @instance\n */\n Subsystem.prototype.avgSizeBytes = 0;\n\n /**\n * Subsystem minSizeBytes.\n * @member {number} minSizeBytes\n * @memberof perfetto.protos.AndroidFastrpcMetric.Subsystem\n * @instance\n */\n Subsystem.prototype.minSizeBytes = 0;\n\n /**\n * Subsystem maxSizeBytes.\n * @member {number} maxSizeBytes\n * @memberof perfetto.protos.AndroidFastrpcMetric.Subsystem\n * @instance\n */\n Subsystem.prototype.maxSizeBytes = 0;\n\n /**\n * Subsystem totalAllocSizeBytes.\n * @member {number} totalAllocSizeBytes\n * @memberof perfetto.protos.AndroidFastrpcMetric.Subsystem\n * @instance\n */\n Subsystem.prototype.totalAllocSizeBytes = 0;\n\n /**\n * Creates a new Subsystem instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidFastrpcMetric.Subsystem\n * @static\n * @param {perfetto.protos.AndroidFastrpcMetric.ISubsystem=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidFastrpcMetric.Subsystem} Subsystem instance\n */\n Subsystem.create = function create(properties) {\n return new Subsystem(properties);\n };\n\n /**\n * Encodes the specified Subsystem message. Does not implicitly {@link perfetto.protos.AndroidFastrpcMetric.Subsystem.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidFastrpcMetric.Subsystem\n * @static\n * @param {perfetto.protos.AndroidFastrpcMetric.ISubsystem} message Subsystem message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Subsystem.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.name != null && Object.hasOwnProperty.call(message, \"name\"))\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.name);\n if (message.avgSizeBytes != null && Object.hasOwnProperty.call(message, \"avgSizeBytes\"))\n writer.uint32(/* id 2, wireType 1 =*/17).double(message.avgSizeBytes);\n if (message.minSizeBytes != null && Object.hasOwnProperty.call(message, \"minSizeBytes\"))\n writer.uint32(/* id 3, wireType 1 =*/25).double(message.minSizeBytes);\n if (message.maxSizeBytes != null && Object.hasOwnProperty.call(message, \"maxSizeBytes\"))\n writer.uint32(/* id 4, wireType 1 =*/33).double(message.maxSizeBytes);\n if (message.totalAllocSizeBytes != null && Object.hasOwnProperty.call(message, \"totalAllocSizeBytes\"))\n writer.uint32(/* id 5, wireType 1 =*/41).double(message.totalAllocSizeBytes);\n return writer;\n };\n\n /**\n * Encodes the specified Subsystem message, length delimited. Does not implicitly {@link perfetto.protos.AndroidFastrpcMetric.Subsystem.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidFastrpcMetric.Subsystem\n * @static\n * @param {perfetto.protos.AndroidFastrpcMetric.ISubsystem} message Subsystem message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Subsystem.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a Subsystem message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidFastrpcMetric.Subsystem\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidFastrpcMetric.Subsystem} Subsystem\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Subsystem.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidFastrpcMetric.Subsystem();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.name = reader.string();\n break;\n case 2:\n message.avgSizeBytes = reader.double();\n break;\n case 3:\n message.minSizeBytes = reader.double();\n break;\n case 4:\n message.maxSizeBytes = reader.double();\n break;\n case 5:\n message.totalAllocSizeBytes = reader.double();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a Subsystem message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidFastrpcMetric.Subsystem\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidFastrpcMetric.Subsystem} Subsystem\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Subsystem.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a Subsystem message.\n * @function verify\n * @memberof perfetto.protos.AndroidFastrpcMetric.Subsystem\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n Subsystem.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.name != null && message.hasOwnProperty(\"name\"))\n if (!$util.isString(message.name))\n return \"name: string expected\";\n if (message.avgSizeBytes != null && message.hasOwnProperty(\"avgSizeBytes\"))\n if (typeof message.avgSizeBytes !== \"number\")\n return \"avgSizeBytes: number expected\";\n if (message.minSizeBytes != null && message.hasOwnProperty(\"minSizeBytes\"))\n if (typeof message.minSizeBytes !== \"number\")\n return \"minSizeBytes: number expected\";\n if (message.maxSizeBytes != null && message.hasOwnProperty(\"maxSizeBytes\"))\n if (typeof message.maxSizeBytes !== \"number\")\n return \"maxSizeBytes: number expected\";\n if (message.totalAllocSizeBytes != null && message.hasOwnProperty(\"totalAllocSizeBytes\"))\n if (typeof message.totalAllocSizeBytes !== \"number\")\n return \"totalAllocSizeBytes: number expected\";\n return null;\n };\n\n /**\n * Creates a Subsystem message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidFastrpcMetric.Subsystem\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidFastrpcMetric.Subsystem} Subsystem\n */\n Subsystem.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidFastrpcMetric.Subsystem)\n return object;\n var message = new $root.perfetto.protos.AndroidFastrpcMetric.Subsystem();\n if (object.name != null)\n message.name = String(object.name);\n if (object.avgSizeBytes != null)\n message.avgSizeBytes = Number(object.avgSizeBytes);\n if (object.minSizeBytes != null)\n message.minSizeBytes = Number(object.minSizeBytes);\n if (object.maxSizeBytes != null)\n message.maxSizeBytes = Number(object.maxSizeBytes);\n if (object.totalAllocSizeBytes != null)\n message.totalAllocSizeBytes = Number(object.totalAllocSizeBytes);\n return message;\n };\n\n /**\n * Creates a plain object from a Subsystem message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidFastrpcMetric.Subsystem\n * @static\n * @param {perfetto.protos.AndroidFastrpcMetric.Subsystem} message Subsystem\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n Subsystem.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.name = \"\";\n object.avgSizeBytes = 0;\n object.minSizeBytes = 0;\n object.maxSizeBytes = 0;\n object.totalAllocSizeBytes = 0;\n }\n if (message.name != null && message.hasOwnProperty(\"name\"))\n object.name = message.name;\n if (message.avgSizeBytes != null && message.hasOwnProperty(\"avgSizeBytes\"))\n object.avgSizeBytes = options.json && !isFinite(message.avgSizeBytes) ? String(message.avgSizeBytes) : message.avgSizeBytes;\n if (message.minSizeBytes != null && message.hasOwnProperty(\"minSizeBytes\"))\n object.minSizeBytes = options.json && !isFinite(message.minSizeBytes) ? String(message.minSizeBytes) : message.minSizeBytes;\n if (message.maxSizeBytes != null && message.hasOwnProperty(\"maxSizeBytes\"))\n object.maxSizeBytes = options.json && !isFinite(message.maxSizeBytes) ? String(message.maxSizeBytes) : message.maxSizeBytes;\n if (message.totalAllocSizeBytes != null && message.hasOwnProperty(\"totalAllocSizeBytes\"))\n object.totalAllocSizeBytes = options.json && !isFinite(message.totalAllocSizeBytes) ? String(message.totalAllocSizeBytes) : message.totalAllocSizeBytes;\n return object;\n };\n\n /**\n * Converts this Subsystem to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidFastrpcMetric.Subsystem\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n Subsystem.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return Subsystem;\n })();\n\n return AndroidFastrpcMetric;\n })();\n\n protos.G2dMetrics = (function() {\n\n /**\n * Properties of a G2dMetrics.\n * @memberof perfetto.protos\n * @interface IG2dMetrics\n * @property {perfetto.protos.G2dMetrics.IG2dMetric|null} [g2dHw] G2dMetrics g2dHw\n * @property {perfetto.protos.G2dMetrics.IG2dMetric|null} [g2dSw] G2dMetrics g2dSw\n */\n\n /**\n * Constructs a new G2dMetrics.\n * @memberof perfetto.protos\n * @classdesc Represents a G2dMetrics.\n * @implements IG2dMetrics\n * @constructor\n * @param {perfetto.protos.IG2dMetrics=} [properties] Properties to set\n */\n function G2dMetrics(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * G2dMetrics g2dHw.\n * @member {perfetto.protos.G2dMetrics.IG2dMetric|null|undefined} g2dHw\n * @memberof perfetto.protos.G2dMetrics\n * @instance\n */\n G2dMetrics.prototype.g2dHw = null;\n\n /**\n * G2dMetrics g2dSw.\n * @member {perfetto.protos.G2dMetrics.IG2dMetric|null|undefined} g2dSw\n * @memberof perfetto.protos.G2dMetrics\n * @instance\n */\n G2dMetrics.prototype.g2dSw = null;\n\n /**\n * Creates a new G2dMetrics instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.G2dMetrics\n * @static\n * @param {perfetto.protos.IG2dMetrics=} [properties] Properties to set\n * @returns {perfetto.protos.G2dMetrics} G2dMetrics instance\n */\n G2dMetrics.create = function create(properties) {\n return new G2dMetrics(properties);\n };\n\n /**\n * Encodes the specified G2dMetrics message. Does not implicitly {@link perfetto.protos.G2dMetrics.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.G2dMetrics\n * @static\n * @param {perfetto.protos.IG2dMetrics} message G2dMetrics message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n G2dMetrics.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.g2dHw != null && Object.hasOwnProperty.call(message, \"g2dHw\"))\n $root.perfetto.protos.G2dMetrics.G2dMetric.encode(message.g2dHw, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n if (message.g2dSw != null && Object.hasOwnProperty.call(message, \"g2dSw\"))\n $root.perfetto.protos.G2dMetrics.G2dMetric.encode(message.g2dSw, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified G2dMetrics message, length delimited. Does not implicitly {@link perfetto.protos.G2dMetrics.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.G2dMetrics\n * @static\n * @param {perfetto.protos.IG2dMetrics} message G2dMetrics message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n G2dMetrics.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a G2dMetrics message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.G2dMetrics\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.G2dMetrics} G2dMetrics\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n G2dMetrics.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.G2dMetrics();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.g2dHw = $root.perfetto.protos.G2dMetrics.G2dMetric.decode(reader, reader.uint32());\n break;\n case 2:\n message.g2dSw = $root.perfetto.protos.G2dMetrics.G2dMetric.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a G2dMetrics message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.G2dMetrics\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.G2dMetrics} G2dMetrics\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n G2dMetrics.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a G2dMetrics message.\n * @function verify\n * @memberof perfetto.protos.G2dMetrics\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n G2dMetrics.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.g2dHw != null && message.hasOwnProperty(\"g2dHw\")) {\n var error = $root.perfetto.protos.G2dMetrics.G2dMetric.verify(message.g2dHw);\n if (error)\n return \"g2dHw.\" + error;\n }\n if (message.g2dSw != null && message.hasOwnProperty(\"g2dSw\")) {\n var error = $root.perfetto.protos.G2dMetrics.G2dMetric.verify(message.g2dSw);\n if (error)\n return \"g2dSw.\" + error;\n }\n return null;\n };\n\n /**\n * Creates a G2dMetrics message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.G2dMetrics\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.G2dMetrics} G2dMetrics\n */\n G2dMetrics.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.G2dMetrics)\n return object;\n var message = new $root.perfetto.protos.G2dMetrics();\n if (object.g2dHw != null) {\n if (typeof object.g2dHw !== \"object\")\n throw TypeError(\".perfetto.protos.G2dMetrics.g2dHw: object expected\");\n message.g2dHw = $root.perfetto.protos.G2dMetrics.G2dMetric.fromObject(object.g2dHw);\n }\n if (object.g2dSw != null) {\n if (typeof object.g2dSw !== \"object\")\n throw TypeError(\".perfetto.protos.G2dMetrics.g2dSw: object expected\");\n message.g2dSw = $root.perfetto.protos.G2dMetrics.G2dMetric.fromObject(object.g2dSw);\n }\n return message;\n };\n\n /**\n * Creates a plain object from a G2dMetrics message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.G2dMetrics\n * @static\n * @param {perfetto.protos.G2dMetrics} message G2dMetrics\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n G2dMetrics.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.g2dHw = null;\n object.g2dSw = null;\n }\n if (message.g2dHw != null && message.hasOwnProperty(\"g2dHw\"))\n object.g2dHw = $root.perfetto.protos.G2dMetrics.G2dMetric.toObject(message.g2dHw, options);\n if (message.g2dSw != null && message.hasOwnProperty(\"g2dSw\"))\n object.g2dSw = $root.perfetto.protos.G2dMetrics.G2dMetric.toObject(message.g2dSw, options);\n return object;\n };\n\n /**\n * Converts this G2dMetrics to JSON.\n * @function toJSON\n * @memberof perfetto.protos.G2dMetrics\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n G2dMetrics.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n G2dMetrics.G2dInstance = (function() {\n\n /**\n * Properties of a G2dInstance.\n * @memberof perfetto.protos.G2dMetrics\n * @interface IG2dInstance\n * @property {string|null} [name] G2dInstance name\n * @property {number|null} [frameCount] G2dInstance frameCount\n * @property {number|null} [errorCount] G2dInstance errorCount\n * @property {number|null} [maxDurMs] G2dInstance maxDurMs\n * @property {number|null} [minDurMs] G2dInstance minDurMs\n * @property {number|null} [avgDurMs] G2dInstance avgDurMs\n */\n\n /**\n * Constructs a new G2dInstance.\n * @memberof perfetto.protos.G2dMetrics\n * @classdesc Represents a G2dInstance.\n * @implements IG2dInstance\n * @constructor\n * @param {perfetto.protos.G2dMetrics.IG2dInstance=} [properties] Properties to set\n */\n function G2dInstance(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * G2dInstance name.\n * @member {string} name\n * @memberof perfetto.protos.G2dMetrics.G2dInstance\n * @instance\n */\n G2dInstance.prototype.name = \"\";\n\n /**\n * G2dInstance frameCount.\n * @member {number} frameCount\n * @memberof perfetto.protos.G2dMetrics.G2dInstance\n * @instance\n */\n G2dInstance.prototype.frameCount = 0;\n\n /**\n * G2dInstance errorCount.\n * @member {number} errorCount\n * @memberof perfetto.protos.G2dMetrics.G2dInstance\n * @instance\n */\n G2dInstance.prototype.errorCount = 0;\n\n /**\n * G2dInstance maxDurMs.\n * @member {number} maxDurMs\n * @memberof perfetto.protos.G2dMetrics.G2dInstance\n * @instance\n */\n G2dInstance.prototype.maxDurMs = 0;\n\n /**\n * G2dInstance minDurMs.\n * @member {number} minDurMs\n * @memberof perfetto.protos.G2dMetrics.G2dInstance\n * @instance\n */\n G2dInstance.prototype.minDurMs = 0;\n\n /**\n * G2dInstance avgDurMs.\n * @member {number} avgDurMs\n * @memberof perfetto.protos.G2dMetrics.G2dInstance\n * @instance\n */\n G2dInstance.prototype.avgDurMs = 0;\n\n /**\n * Creates a new G2dInstance instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.G2dMetrics.G2dInstance\n * @static\n * @param {perfetto.protos.G2dMetrics.IG2dInstance=} [properties] Properties to set\n * @returns {perfetto.protos.G2dMetrics.G2dInstance} G2dInstance instance\n */\n G2dInstance.create = function create(properties) {\n return new G2dInstance(properties);\n };\n\n /**\n * Encodes the specified G2dInstance message. Does not implicitly {@link perfetto.protos.G2dMetrics.G2dInstance.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.G2dMetrics.G2dInstance\n * @static\n * @param {perfetto.protos.G2dMetrics.IG2dInstance} message G2dInstance message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n G2dInstance.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.name != null && Object.hasOwnProperty.call(message, \"name\"))\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.name);\n if (message.frameCount != null && Object.hasOwnProperty.call(message, \"frameCount\"))\n writer.uint32(/* id 5, wireType 0 =*/40).uint32(message.frameCount);\n if (message.errorCount != null && Object.hasOwnProperty.call(message, \"errorCount\"))\n writer.uint32(/* id 6, wireType 0 =*/48).uint32(message.errorCount);\n if (message.maxDurMs != null && Object.hasOwnProperty.call(message, \"maxDurMs\"))\n writer.uint32(/* id 7, wireType 1 =*/57).double(message.maxDurMs);\n if (message.minDurMs != null && Object.hasOwnProperty.call(message, \"minDurMs\"))\n writer.uint32(/* id 8, wireType 1 =*/65).double(message.minDurMs);\n if (message.avgDurMs != null && Object.hasOwnProperty.call(message, \"avgDurMs\"))\n writer.uint32(/* id 9, wireType 1 =*/73).double(message.avgDurMs);\n return writer;\n };\n\n /**\n * Encodes the specified G2dInstance message, length delimited. Does not implicitly {@link perfetto.protos.G2dMetrics.G2dInstance.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.G2dMetrics.G2dInstance\n * @static\n * @param {perfetto.protos.G2dMetrics.IG2dInstance} message G2dInstance message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n G2dInstance.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a G2dInstance message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.G2dMetrics.G2dInstance\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.G2dMetrics.G2dInstance} G2dInstance\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n G2dInstance.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.G2dMetrics.G2dInstance();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.name = reader.string();\n break;\n case 5:\n message.frameCount = reader.uint32();\n break;\n case 6:\n message.errorCount = reader.uint32();\n break;\n case 7:\n message.maxDurMs = reader.double();\n break;\n case 8:\n message.minDurMs = reader.double();\n break;\n case 9:\n message.avgDurMs = reader.double();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a G2dInstance message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.G2dMetrics.G2dInstance\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.G2dMetrics.G2dInstance} G2dInstance\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n G2dInstance.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a G2dInstance message.\n * @function verify\n * @memberof perfetto.protos.G2dMetrics.G2dInstance\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n G2dInstance.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.name != null && message.hasOwnProperty(\"name\"))\n if (!$util.isString(message.name))\n return \"name: string expected\";\n if (message.frameCount != null && message.hasOwnProperty(\"frameCount\"))\n if (!$util.isInteger(message.frameCount))\n return \"frameCount: integer expected\";\n if (message.errorCount != null && message.hasOwnProperty(\"errorCount\"))\n if (!$util.isInteger(message.errorCount))\n return \"errorCount: integer expected\";\n if (message.maxDurMs != null && message.hasOwnProperty(\"maxDurMs\"))\n if (typeof message.maxDurMs !== \"number\")\n return \"maxDurMs: number expected\";\n if (message.minDurMs != null && message.hasOwnProperty(\"minDurMs\"))\n if (typeof message.minDurMs !== \"number\")\n return \"minDurMs: number expected\";\n if (message.avgDurMs != null && message.hasOwnProperty(\"avgDurMs\"))\n if (typeof message.avgDurMs !== \"number\")\n return \"avgDurMs: number expected\";\n return null;\n };\n\n /**\n * Creates a G2dInstance message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.G2dMetrics.G2dInstance\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.G2dMetrics.G2dInstance} G2dInstance\n */\n G2dInstance.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.G2dMetrics.G2dInstance)\n return object;\n var message = new $root.perfetto.protos.G2dMetrics.G2dInstance();\n if (object.name != null)\n message.name = String(object.name);\n if (object.frameCount != null)\n message.frameCount = object.frameCount >>> 0;\n if (object.errorCount != null)\n message.errorCount = object.errorCount >>> 0;\n if (object.maxDurMs != null)\n message.maxDurMs = Number(object.maxDurMs);\n if (object.minDurMs != null)\n message.minDurMs = Number(object.minDurMs);\n if (object.avgDurMs != null)\n message.avgDurMs = Number(object.avgDurMs);\n return message;\n };\n\n /**\n * Creates a plain object from a G2dInstance message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.G2dMetrics.G2dInstance\n * @static\n * @param {perfetto.protos.G2dMetrics.G2dInstance} message G2dInstance\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n G2dInstance.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.name = \"\";\n object.frameCount = 0;\n object.errorCount = 0;\n object.maxDurMs = 0;\n object.minDurMs = 0;\n object.avgDurMs = 0;\n }\n if (message.name != null && message.hasOwnProperty(\"name\"))\n object.name = message.name;\n if (message.frameCount != null && message.hasOwnProperty(\"frameCount\"))\n object.frameCount = message.frameCount;\n if (message.errorCount != null && message.hasOwnProperty(\"errorCount\"))\n object.errorCount = message.errorCount;\n if (message.maxDurMs != null && message.hasOwnProperty(\"maxDurMs\"))\n object.maxDurMs = options.json && !isFinite(message.maxDurMs) ? String(message.maxDurMs) : message.maxDurMs;\n if (message.minDurMs != null && message.hasOwnProperty(\"minDurMs\"))\n object.minDurMs = options.json && !isFinite(message.minDurMs) ? String(message.minDurMs) : message.minDurMs;\n if (message.avgDurMs != null && message.hasOwnProperty(\"avgDurMs\"))\n object.avgDurMs = options.json && !isFinite(message.avgDurMs) ? String(message.avgDurMs) : message.avgDurMs;\n return object;\n };\n\n /**\n * Converts this G2dInstance to JSON.\n * @function toJSON\n * @memberof perfetto.protos.G2dMetrics.G2dInstance\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n G2dInstance.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return G2dInstance;\n })();\n\n G2dMetrics.G2dMetric = (function() {\n\n /**\n * Properties of a G2dMetric.\n * @memberof perfetto.protos.G2dMetrics\n * @interface IG2dMetric\n * @property {Array.<perfetto.protos.G2dMetrics.IG2dInstance>|null} [instances] G2dMetric instances\n * @property {number|null} [frameCount] G2dMetric frameCount\n * @property {number|null} [errorCount] G2dMetric errorCount\n * @property {number|null} [maxDurMs] G2dMetric maxDurMs\n * @property {number|null} [minDurMs] G2dMetric minDurMs\n * @property {number|null} [avgDurMs] G2dMetric avgDurMs\n */\n\n /**\n * Constructs a new G2dMetric.\n * @memberof perfetto.protos.G2dMetrics\n * @classdesc Represents a G2dMetric.\n * @implements IG2dMetric\n * @constructor\n * @param {perfetto.protos.G2dMetrics.IG2dMetric=} [properties] Properties to set\n */\n function G2dMetric(properties) {\n this.instances = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * G2dMetric instances.\n * @member {Array.<perfetto.protos.G2dMetrics.IG2dInstance>} instances\n * @memberof perfetto.protos.G2dMetrics.G2dMetric\n * @instance\n */\n G2dMetric.prototype.instances = $util.emptyArray;\n\n /**\n * G2dMetric frameCount.\n * @member {number} frameCount\n * @memberof perfetto.protos.G2dMetrics.G2dMetric\n * @instance\n */\n G2dMetric.prototype.frameCount = 0;\n\n /**\n * G2dMetric errorCount.\n * @member {number} errorCount\n * @memberof perfetto.protos.G2dMetrics.G2dMetric\n * @instance\n */\n G2dMetric.prototype.errorCount = 0;\n\n /**\n * G2dMetric maxDurMs.\n * @member {number} maxDurMs\n * @memberof perfetto.protos.G2dMetrics.G2dMetric\n * @instance\n */\n G2dMetric.prototype.maxDurMs = 0;\n\n /**\n * G2dMetric minDurMs.\n * @member {number} minDurMs\n * @memberof perfetto.protos.G2dMetrics.G2dMetric\n * @instance\n */\n G2dMetric.prototype.minDurMs = 0;\n\n /**\n * G2dMetric avgDurMs.\n * @member {number} avgDurMs\n * @memberof perfetto.protos.G2dMetrics.G2dMetric\n * @instance\n */\n G2dMetric.prototype.avgDurMs = 0;\n\n /**\n * Creates a new G2dMetric instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.G2dMetrics.G2dMetric\n * @static\n * @param {perfetto.protos.G2dMetrics.IG2dMetric=} [properties] Properties to set\n * @returns {perfetto.protos.G2dMetrics.G2dMetric} G2dMetric instance\n */\n G2dMetric.create = function create(properties) {\n return new G2dMetric(properties);\n };\n\n /**\n * Encodes the specified G2dMetric message. Does not implicitly {@link perfetto.protos.G2dMetrics.G2dMetric.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.G2dMetrics.G2dMetric\n * @static\n * @param {perfetto.protos.G2dMetrics.IG2dMetric} message G2dMetric message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n G2dMetric.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.instances != null && message.instances.length)\n for (var i = 0; i < message.instances.length; ++i)\n $root.perfetto.protos.G2dMetrics.G2dInstance.encode(message.instances[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n if (message.frameCount != null && Object.hasOwnProperty.call(message, \"frameCount\"))\n writer.uint32(/* id 5, wireType 0 =*/40).uint32(message.frameCount);\n if (message.errorCount != null && Object.hasOwnProperty.call(message, \"errorCount\"))\n writer.uint32(/* id 6, wireType 0 =*/48).uint32(message.errorCount);\n if (message.maxDurMs != null && Object.hasOwnProperty.call(message, \"maxDurMs\"))\n writer.uint32(/* id 7, wireType 1 =*/57).double(message.maxDurMs);\n if (message.minDurMs != null && Object.hasOwnProperty.call(message, \"minDurMs\"))\n writer.uint32(/* id 8, wireType 1 =*/65).double(message.minDurMs);\n if (message.avgDurMs != null && Object.hasOwnProperty.call(message, \"avgDurMs\"))\n writer.uint32(/* id 9, wireType 1 =*/73).double(message.avgDurMs);\n return writer;\n };\n\n /**\n * Encodes the specified G2dMetric message, length delimited. Does not implicitly {@link perfetto.protos.G2dMetrics.G2dMetric.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.G2dMetrics.G2dMetric\n * @static\n * @param {perfetto.protos.G2dMetrics.IG2dMetric} message G2dMetric message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n G2dMetric.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a G2dMetric message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.G2dMetrics.G2dMetric\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.G2dMetrics.G2dMetric} G2dMetric\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n G2dMetric.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.G2dMetrics.G2dMetric();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (!(message.instances && message.instances.length))\n message.instances = [];\n message.instances.push($root.perfetto.protos.G2dMetrics.G2dInstance.decode(reader, reader.uint32()));\n break;\n case 5:\n message.frameCount = reader.uint32();\n break;\n case 6:\n message.errorCount = reader.uint32();\n break;\n case 7:\n message.maxDurMs = reader.double();\n break;\n case 8:\n message.minDurMs = reader.double();\n break;\n case 9:\n message.avgDurMs = reader.double();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a G2dMetric message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.G2dMetrics.G2dMetric\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.G2dMetrics.G2dMetric} G2dMetric\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n G2dMetric.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a G2dMetric message.\n * @function verify\n * @memberof perfetto.protos.G2dMetrics.G2dMetric\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n G2dMetric.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.instances != null && message.hasOwnProperty(\"instances\")) {\n if (!Array.isArray(message.instances))\n return \"instances: array expected\";\n for (var i = 0; i < message.instances.length; ++i) {\n var error = $root.perfetto.protos.G2dMetrics.G2dInstance.verify(message.instances[i]);\n if (error)\n return \"instances.\" + error;\n }\n }\n if (message.frameCount != null && message.hasOwnProperty(\"frameCount\"))\n if (!$util.isInteger(message.frameCount))\n return \"frameCount: integer expected\";\n if (message.errorCount != null && message.hasOwnProperty(\"errorCount\"))\n if (!$util.isInteger(message.errorCount))\n return \"errorCount: integer expected\";\n if (message.maxDurMs != null && message.hasOwnProperty(\"maxDurMs\"))\n if (typeof message.maxDurMs !== \"number\")\n return \"maxDurMs: number expected\";\n if (message.minDurMs != null && message.hasOwnProperty(\"minDurMs\"))\n if (typeof message.minDurMs !== \"number\")\n return \"minDurMs: number expected\";\n if (message.avgDurMs != null && message.hasOwnProperty(\"avgDurMs\"))\n if (typeof message.avgDurMs !== \"number\")\n return \"avgDurMs: number expected\";\n return null;\n };\n\n /**\n * Creates a G2dMetric message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.G2dMetrics.G2dMetric\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.G2dMetrics.G2dMetric} G2dMetric\n */\n G2dMetric.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.G2dMetrics.G2dMetric)\n return object;\n var message = new $root.perfetto.protos.G2dMetrics.G2dMetric();\n if (object.instances) {\n if (!Array.isArray(object.instances))\n throw TypeError(\".perfetto.protos.G2dMetrics.G2dMetric.instances: array expected\");\n message.instances = [];\n for (var i = 0; i < object.instances.length; ++i) {\n if (typeof object.instances[i] !== \"object\")\n throw TypeError(\".perfetto.protos.G2dMetrics.G2dMetric.instances: object expected\");\n message.instances[i] = $root.perfetto.protos.G2dMetrics.G2dInstance.fromObject(object.instances[i]);\n }\n }\n if (object.frameCount != null)\n message.frameCount = object.frameCount >>> 0;\n if (object.errorCount != null)\n message.errorCount = object.errorCount >>> 0;\n if (object.maxDurMs != null)\n message.maxDurMs = Number(object.maxDurMs);\n if (object.minDurMs != null)\n message.minDurMs = Number(object.minDurMs);\n if (object.avgDurMs != null)\n message.avgDurMs = Number(object.avgDurMs);\n return message;\n };\n\n /**\n * Creates a plain object from a G2dMetric message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.G2dMetrics.G2dMetric\n * @static\n * @param {perfetto.protos.G2dMetrics.G2dMetric} message G2dMetric\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n G2dMetric.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.instances = [];\n if (options.defaults) {\n object.frameCount = 0;\n object.errorCount = 0;\n object.maxDurMs = 0;\n object.minDurMs = 0;\n object.avgDurMs = 0;\n }\n if (message.instances && message.instances.length) {\n object.instances = [];\n for (var j = 0; j < message.instances.length; ++j)\n object.instances[j] = $root.perfetto.protos.G2dMetrics.G2dInstance.toObject(message.instances[j], options);\n }\n if (message.frameCount != null && message.hasOwnProperty(\"frameCount\"))\n object.frameCount = message.frameCount;\n if (message.errorCount != null && message.hasOwnProperty(\"errorCount\"))\n object.errorCount = message.errorCount;\n if (message.maxDurMs != null && message.hasOwnProperty(\"maxDurMs\"))\n object.maxDurMs = options.json && !isFinite(message.maxDurMs) ? String(message.maxDurMs) : message.maxDurMs;\n if (message.minDurMs != null && message.hasOwnProperty(\"minDurMs\"))\n object.minDurMs = options.json && !isFinite(message.minDurMs) ? String(message.minDurMs) : message.minDurMs;\n if (message.avgDurMs != null && message.hasOwnProperty(\"avgDurMs\"))\n object.avgDurMs = options.json && !isFinite(message.avgDurMs) ? String(message.avgDurMs) : message.avgDurMs;\n return object;\n };\n\n /**\n * Converts this G2dMetric to JSON.\n * @function toJSON\n * @memberof perfetto.protos.G2dMetrics.G2dMetric\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n G2dMetric.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return G2dMetric;\n })();\n\n return G2dMetrics;\n })();\n\n protos.AndroidGpuMetric = (function() {\n\n /**\n * Properties of an AndroidGpuMetric.\n * @memberof perfetto.protos\n * @interface IAndroidGpuMetric\n * @property {Array.<perfetto.protos.AndroidGpuMetric.IProcess>|null} [processes] AndroidGpuMetric processes\n * @property {number|null} [memMax] AndroidGpuMetric memMax\n * @property {number|null} [memMin] AndroidGpuMetric memMin\n * @property {number|null} [memAvg] AndroidGpuMetric memAvg\n * @property {Array.<perfetto.protos.AndroidGpuMetric.IFrequencyMetric>|null} [freqMetrics] AndroidGpuMetric freqMetrics\n */\n\n /**\n * Constructs a new AndroidGpuMetric.\n * @memberof perfetto.protos\n * @classdesc Represents an AndroidGpuMetric.\n * @implements IAndroidGpuMetric\n * @constructor\n * @param {perfetto.protos.IAndroidGpuMetric=} [properties] Properties to set\n */\n function AndroidGpuMetric(properties) {\n this.processes = [];\n this.freqMetrics = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * AndroidGpuMetric processes.\n * @member {Array.<perfetto.protos.AndroidGpuMetric.IProcess>} processes\n * @memberof perfetto.protos.AndroidGpuMetric\n * @instance\n */\n AndroidGpuMetric.prototype.processes = $util.emptyArray;\n\n /**\n * AndroidGpuMetric memMax.\n * @member {number} memMax\n * @memberof perfetto.protos.AndroidGpuMetric\n * @instance\n */\n AndroidGpuMetric.prototype.memMax = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * AndroidGpuMetric memMin.\n * @member {number} memMin\n * @memberof perfetto.protos.AndroidGpuMetric\n * @instance\n */\n AndroidGpuMetric.prototype.memMin = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * AndroidGpuMetric memAvg.\n * @member {number} memAvg\n * @memberof perfetto.protos.AndroidGpuMetric\n * @instance\n */\n AndroidGpuMetric.prototype.memAvg = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * AndroidGpuMetric freqMetrics.\n * @member {Array.<perfetto.protos.AndroidGpuMetric.IFrequencyMetric>} freqMetrics\n * @memberof perfetto.protos.AndroidGpuMetric\n * @instance\n */\n AndroidGpuMetric.prototype.freqMetrics = $util.emptyArray;\n\n /**\n * Creates a new AndroidGpuMetric instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidGpuMetric\n * @static\n * @param {perfetto.protos.IAndroidGpuMetric=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidGpuMetric} AndroidGpuMetric instance\n */\n AndroidGpuMetric.create = function create(properties) {\n return new AndroidGpuMetric(properties);\n };\n\n /**\n * Encodes the specified AndroidGpuMetric message. Does not implicitly {@link perfetto.protos.AndroidGpuMetric.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidGpuMetric\n * @static\n * @param {perfetto.protos.IAndroidGpuMetric} message AndroidGpuMetric message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n AndroidGpuMetric.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.processes != null && message.processes.length)\n for (var i = 0; i < message.processes.length; ++i)\n $root.perfetto.protos.AndroidGpuMetric.Process.encode(message.processes[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n if (message.memMax != null && Object.hasOwnProperty.call(message, \"memMax\"))\n writer.uint32(/* id 2, wireType 0 =*/16).int64(message.memMax);\n if (message.memMin != null && Object.hasOwnProperty.call(message, \"memMin\"))\n writer.uint32(/* id 3, wireType 0 =*/24).int64(message.memMin);\n if (message.memAvg != null && Object.hasOwnProperty.call(message, \"memAvg\"))\n writer.uint32(/* id 4, wireType 0 =*/32).int64(message.memAvg);\n if (message.freqMetrics != null && message.freqMetrics.length)\n for (var i = 0; i < message.freqMetrics.length; ++i)\n $root.perfetto.protos.AndroidGpuMetric.FrequencyMetric.encode(message.freqMetrics[i], writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified AndroidGpuMetric message, length delimited. Does not implicitly {@link perfetto.protos.AndroidGpuMetric.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidGpuMetric\n * @static\n * @param {perfetto.protos.IAndroidGpuMetric} message AndroidGpuMetric message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n AndroidGpuMetric.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes an AndroidGpuMetric message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidGpuMetric\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidGpuMetric} AndroidGpuMetric\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n AndroidGpuMetric.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidGpuMetric();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (!(message.processes && message.processes.length))\n message.processes = [];\n message.processes.push($root.perfetto.protos.AndroidGpuMetric.Process.decode(reader, reader.uint32()));\n break;\n case 2:\n message.memMax = reader.int64();\n break;\n case 3:\n message.memMin = reader.int64();\n break;\n case 4:\n message.memAvg = reader.int64();\n break;\n case 5:\n if (!(message.freqMetrics && message.freqMetrics.length))\n message.freqMetrics = [];\n message.freqMetrics.push($root.perfetto.protos.AndroidGpuMetric.FrequencyMetric.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes an AndroidGpuMetric message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidGpuMetric\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidGpuMetric} AndroidGpuMetric\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n AndroidGpuMetric.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies an AndroidGpuMetric message.\n * @function verify\n * @memberof perfetto.protos.AndroidGpuMetric\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n AndroidGpuMetric.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.processes != null && message.hasOwnProperty(\"processes\")) {\n if (!Array.isArray(message.processes))\n return \"processes: array expected\";\n for (var i = 0; i < message.processes.length; ++i) {\n var error = $root.perfetto.protos.AndroidGpuMetric.Process.verify(message.processes[i]);\n if (error)\n return \"processes.\" + error;\n }\n }\n if (message.memMax != null && message.hasOwnProperty(\"memMax\"))\n if (!$util.isInteger(message.memMax) && !(message.memMax && $util.isInteger(message.memMax.low) && $util.isInteger(message.memMax.high)))\n return \"memMax: integer|Long expected\";\n if (message.memMin != null && message.hasOwnProperty(\"memMin\"))\n if (!$util.isInteger(message.memMin) && !(message.memMin && $util.isInteger(message.memMin.low) && $util.isInteger(message.memMin.high)))\n return \"memMin: integer|Long expected\";\n if (message.memAvg != null && message.hasOwnProperty(\"memAvg\"))\n if (!$util.isInteger(message.memAvg) && !(message.memAvg && $util.isInteger(message.memAvg.low) && $util.isInteger(message.memAvg.high)))\n return \"memAvg: integer|Long expected\";\n if (message.freqMetrics != null && message.hasOwnProperty(\"freqMetrics\")) {\n if (!Array.isArray(message.freqMetrics))\n return \"freqMetrics: array expected\";\n for (var i = 0; i < message.freqMetrics.length; ++i) {\n var error = $root.perfetto.protos.AndroidGpuMetric.FrequencyMetric.verify(message.freqMetrics[i]);\n if (error)\n return \"freqMetrics.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates an AndroidGpuMetric message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidGpuMetric\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidGpuMetric} AndroidGpuMetric\n */\n AndroidGpuMetric.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidGpuMetric)\n return object;\n var message = new $root.perfetto.protos.AndroidGpuMetric();\n if (object.processes) {\n if (!Array.isArray(object.processes))\n throw TypeError(\".perfetto.protos.AndroidGpuMetric.processes: array expected\");\n message.processes = [];\n for (var i = 0; i < object.processes.length; ++i) {\n if (typeof object.processes[i] !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidGpuMetric.processes: object expected\");\n message.processes[i] = $root.perfetto.protos.AndroidGpuMetric.Process.fromObject(object.processes[i]);\n }\n }\n if (object.memMax != null)\n if ($util.Long)\n (message.memMax = $util.Long.fromValue(object.memMax)).unsigned = false;\n else if (typeof object.memMax === \"string\")\n message.memMax = parseInt(object.memMax, 10);\n else if (typeof object.memMax === \"number\")\n message.memMax = object.memMax;\n else if (typeof object.memMax === \"object\")\n message.memMax = new $util.LongBits(object.memMax.low >>> 0, object.memMax.high >>> 0).toNumber();\n if (object.memMin != null)\n if ($util.Long)\n (message.memMin = $util.Long.fromValue(object.memMin)).unsigned = false;\n else if (typeof object.memMin === \"string\")\n message.memMin = parseInt(object.memMin, 10);\n else if (typeof object.memMin === \"number\")\n message.memMin = object.memMin;\n else if (typeof object.memMin === \"object\")\n message.memMin = new $util.LongBits(object.memMin.low >>> 0, object.memMin.high >>> 0).toNumber();\n if (object.memAvg != null)\n if ($util.Long)\n (message.memAvg = $util.Long.fromValue(object.memAvg)).unsigned = false;\n else if (typeof object.memAvg === \"string\")\n message.memAvg = parseInt(object.memAvg, 10);\n else if (typeof object.memAvg === \"number\")\n message.memAvg = object.memAvg;\n else if (typeof object.memAvg === \"object\")\n message.memAvg = new $util.LongBits(object.memAvg.low >>> 0, object.memAvg.high >>> 0).toNumber();\n if (object.freqMetrics) {\n if (!Array.isArray(object.freqMetrics))\n throw TypeError(\".perfetto.protos.AndroidGpuMetric.freqMetrics: array expected\");\n message.freqMetrics = [];\n for (var i = 0; i < object.freqMetrics.length; ++i) {\n if (typeof object.freqMetrics[i] !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidGpuMetric.freqMetrics: object expected\");\n message.freqMetrics[i] = $root.perfetto.protos.AndroidGpuMetric.FrequencyMetric.fromObject(object.freqMetrics[i]);\n }\n }\n return message;\n };\n\n /**\n * Creates a plain object from an AndroidGpuMetric message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidGpuMetric\n * @static\n * @param {perfetto.protos.AndroidGpuMetric} message AndroidGpuMetric\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n AndroidGpuMetric.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults) {\n object.processes = [];\n object.freqMetrics = [];\n }\n if (options.defaults) {\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.memMax = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.memMax = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.memMin = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.memMin = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.memAvg = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.memAvg = options.longs === String ? \"0\" : 0;\n }\n if (message.processes && message.processes.length) {\n object.processes = [];\n for (var j = 0; j < message.processes.length; ++j)\n object.processes[j] = $root.perfetto.protos.AndroidGpuMetric.Process.toObject(message.processes[j], options);\n }\n if (message.memMax != null && message.hasOwnProperty(\"memMax\"))\n if (typeof message.memMax === \"number\")\n object.memMax = options.longs === String ? String(message.memMax) : message.memMax;\n else\n object.memMax = options.longs === String ? $util.Long.prototype.toString.call(message.memMax) : options.longs === Number ? new $util.LongBits(message.memMax.low >>> 0, message.memMax.high >>> 0).toNumber() : message.memMax;\n if (message.memMin != null && message.hasOwnProperty(\"memMin\"))\n if (typeof message.memMin === \"number\")\n object.memMin = options.longs === String ? String(message.memMin) : message.memMin;\n else\n object.memMin = options.longs === String ? $util.Long.prototype.toString.call(message.memMin) : options.longs === Number ? new $util.LongBits(message.memMin.low >>> 0, message.memMin.high >>> 0).toNumber() : message.memMin;\n if (message.memAvg != null && message.hasOwnProperty(\"memAvg\"))\n if (typeof message.memAvg === \"number\")\n object.memAvg = options.longs === String ? String(message.memAvg) : message.memAvg;\n else\n object.memAvg = options.longs === String ? $util.Long.prototype.toString.call(message.memAvg) : options.longs === Number ? new $util.LongBits(message.memAvg.low >>> 0, message.memAvg.high >>> 0).toNumber() : message.memAvg;\n if (message.freqMetrics && message.freqMetrics.length) {\n object.freqMetrics = [];\n for (var j = 0; j < message.freqMetrics.length; ++j)\n object.freqMetrics[j] = $root.perfetto.protos.AndroidGpuMetric.FrequencyMetric.toObject(message.freqMetrics[j], options);\n }\n return object;\n };\n\n /**\n * Converts this AndroidGpuMetric to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidGpuMetric\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n AndroidGpuMetric.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n AndroidGpuMetric.Process = (function() {\n\n /**\n * Properties of a Process.\n * @memberof perfetto.protos.AndroidGpuMetric\n * @interface IProcess\n * @property {string|null} [name] Process name\n * @property {number|null} [memMax] Process memMax\n * @property {number|null} [memMin] Process memMin\n * @property {number|null} [memAvg] Process memAvg\n */\n\n /**\n * Constructs a new Process.\n * @memberof perfetto.protos.AndroidGpuMetric\n * @classdesc Represents a Process.\n * @implements IProcess\n * @constructor\n * @param {perfetto.protos.AndroidGpuMetric.IProcess=} [properties] Properties to set\n */\n function Process(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * Process name.\n * @member {string} name\n * @memberof perfetto.protos.AndroidGpuMetric.Process\n * @instance\n */\n Process.prototype.name = \"\";\n\n /**\n * Process memMax.\n * @member {number} memMax\n * @memberof perfetto.protos.AndroidGpuMetric.Process\n * @instance\n */\n Process.prototype.memMax = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * Process memMin.\n * @member {number} memMin\n * @memberof perfetto.protos.AndroidGpuMetric.Process\n * @instance\n */\n Process.prototype.memMin = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * Process memAvg.\n * @member {number} memAvg\n * @memberof perfetto.protos.AndroidGpuMetric.Process\n * @instance\n */\n Process.prototype.memAvg = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * Creates a new Process instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidGpuMetric.Process\n * @static\n * @param {perfetto.protos.AndroidGpuMetric.IProcess=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidGpuMetric.Process} Process instance\n */\n Process.create = function create(properties) {\n return new Process(properties);\n };\n\n /**\n * Encodes the specified Process message. Does not implicitly {@link perfetto.protos.AndroidGpuMetric.Process.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidGpuMetric.Process\n * @static\n * @param {perfetto.protos.AndroidGpuMetric.IProcess} message Process message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Process.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.name != null && Object.hasOwnProperty.call(message, \"name\"))\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.name);\n if (message.memMax != null && Object.hasOwnProperty.call(message, \"memMax\"))\n writer.uint32(/* id 2, wireType 0 =*/16).int64(message.memMax);\n if (message.memMin != null && Object.hasOwnProperty.call(message, \"memMin\"))\n writer.uint32(/* id 3, wireType 0 =*/24).int64(message.memMin);\n if (message.memAvg != null && Object.hasOwnProperty.call(message, \"memAvg\"))\n writer.uint32(/* id 4, wireType 0 =*/32).int64(message.memAvg);\n return writer;\n };\n\n /**\n * Encodes the specified Process message, length delimited. Does not implicitly {@link perfetto.protos.AndroidGpuMetric.Process.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidGpuMetric.Process\n * @static\n * @param {perfetto.protos.AndroidGpuMetric.IProcess} message Process message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Process.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a Process message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidGpuMetric.Process\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidGpuMetric.Process} Process\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Process.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidGpuMetric.Process();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.name = reader.string();\n break;\n case 2:\n message.memMax = reader.int64();\n break;\n case 3:\n message.memMin = reader.int64();\n break;\n case 4:\n message.memAvg = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a Process message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidGpuMetric.Process\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidGpuMetric.Process} Process\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Process.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a Process message.\n * @function verify\n * @memberof perfetto.protos.AndroidGpuMetric.Process\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n Process.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.name != null && message.hasOwnProperty(\"name\"))\n if (!$util.isString(message.name))\n return \"name: string expected\";\n if (message.memMax != null && message.hasOwnProperty(\"memMax\"))\n if (!$util.isInteger(message.memMax) && !(message.memMax && $util.isInteger(message.memMax.low) && $util.isInteger(message.memMax.high)))\n return \"memMax: integer|Long expected\";\n if (message.memMin != null && message.hasOwnProperty(\"memMin\"))\n if (!$util.isInteger(message.memMin) && !(message.memMin && $util.isInteger(message.memMin.low) && $util.isInteger(message.memMin.high)))\n return \"memMin: integer|Long expected\";\n if (message.memAvg != null && message.hasOwnProperty(\"memAvg\"))\n if (!$util.isInteger(message.memAvg) && !(message.memAvg && $util.isInteger(message.memAvg.low) && $util.isInteger(message.memAvg.high)))\n return \"memAvg: integer|Long expected\";\n return null;\n };\n\n /**\n * Creates a Process message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidGpuMetric.Process\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidGpuMetric.Process} Process\n */\n Process.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidGpuMetric.Process)\n return object;\n var message = new $root.perfetto.protos.AndroidGpuMetric.Process();\n if (object.name != null)\n message.name = String(object.name);\n if (object.memMax != null)\n if ($util.Long)\n (message.memMax = $util.Long.fromValue(object.memMax)).unsigned = false;\n else if (typeof object.memMax === \"string\")\n message.memMax = parseInt(object.memMax, 10);\n else if (typeof object.memMax === \"number\")\n message.memMax = object.memMax;\n else if (typeof object.memMax === \"object\")\n message.memMax = new $util.LongBits(object.memMax.low >>> 0, object.memMax.high >>> 0).toNumber();\n if (object.memMin != null)\n if ($util.Long)\n (message.memMin = $util.Long.fromValue(object.memMin)).unsigned = false;\n else if (typeof object.memMin === \"string\")\n message.memMin = parseInt(object.memMin, 10);\n else if (typeof object.memMin === \"number\")\n message.memMin = object.memMin;\n else if (typeof object.memMin === \"object\")\n message.memMin = new $util.LongBits(object.memMin.low >>> 0, object.memMin.high >>> 0).toNumber();\n if (object.memAvg != null)\n if ($util.Long)\n (message.memAvg = $util.Long.fromValue(object.memAvg)).unsigned = false;\n else if (typeof object.memAvg === \"string\")\n message.memAvg = parseInt(object.memAvg, 10);\n else if (typeof object.memAvg === \"number\")\n message.memAvg = object.memAvg;\n else if (typeof object.memAvg === \"object\")\n message.memAvg = new $util.LongBits(object.memAvg.low >>> 0, object.memAvg.high >>> 0).toNumber();\n return message;\n };\n\n /**\n * Creates a plain object from a Process message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidGpuMetric.Process\n * @static\n * @param {perfetto.protos.AndroidGpuMetric.Process} message Process\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n Process.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.name = \"\";\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.memMax = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.memMax = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.memMin = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.memMin = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.memAvg = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.memAvg = options.longs === String ? \"0\" : 0;\n }\n if (message.name != null && message.hasOwnProperty(\"name\"))\n object.name = message.name;\n if (message.memMax != null && message.hasOwnProperty(\"memMax\"))\n if (typeof message.memMax === \"number\")\n object.memMax = options.longs === String ? String(message.memMax) : message.memMax;\n else\n object.memMax = options.longs === String ? $util.Long.prototype.toString.call(message.memMax) : options.longs === Number ? new $util.LongBits(message.memMax.low >>> 0, message.memMax.high >>> 0).toNumber() : message.memMax;\n if (message.memMin != null && message.hasOwnProperty(\"memMin\"))\n if (typeof message.memMin === \"number\")\n object.memMin = options.longs === String ? String(message.memMin) : message.memMin;\n else\n object.memMin = options.longs === String ? $util.Long.prototype.toString.call(message.memMin) : options.longs === Number ? new $util.LongBits(message.memMin.low >>> 0, message.memMin.high >>> 0).toNumber() : message.memMin;\n if (message.memAvg != null && message.hasOwnProperty(\"memAvg\"))\n if (typeof message.memAvg === \"number\")\n object.memAvg = options.longs === String ? String(message.memAvg) : message.memAvg;\n else\n object.memAvg = options.longs === String ? $util.Long.prototype.toString.call(message.memAvg) : options.longs === Number ? new $util.LongBits(message.memAvg.low >>> 0, message.memAvg.high >>> 0).toNumber() : message.memAvg;\n return object;\n };\n\n /**\n * Converts this Process to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidGpuMetric.Process\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n Process.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return Process;\n })();\n\n AndroidGpuMetric.FrequencyMetric = (function() {\n\n /**\n * Properties of a FrequencyMetric.\n * @memberof perfetto.protos.AndroidGpuMetric\n * @interface IFrequencyMetric\n * @property {number|null} [gpuId] FrequencyMetric gpuId\n * @property {number|null} [freqMax] FrequencyMetric freqMax\n * @property {number|null} [freqMin] FrequencyMetric freqMin\n * @property {number|null} [freqAvg] FrequencyMetric freqAvg\n * @property {Array.<perfetto.protos.AndroidGpuMetric.FrequencyMetric.IMetricsPerFrequency>|null} [usedFreqs] FrequencyMetric usedFreqs\n */\n\n /**\n * Constructs a new FrequencyMetric.\n * @memberof perfetto.protos.AndroidGpuMetric\n * @classdesc Represents a FrequencyMetric.\n * @implements IFrequencyMetric\n * @constructor\n * @param {perfetto.protos.AndroidGpuMetric.IFrequencyMetric=} [properties] Properties to set\n */\n function FrequencyMetric(properties) {\n this.usedFreqs = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * FrequencyMetric gpuId.\n * @member {number} gpuId\n * @memberof perfetto.protos.AndroidGpuMetric.FrequencyMetric\n * @instance\n */\n FrequencyMetric.prototype.gpuId = 0;\n\n /**\n * FrequencyMetric freqMax.\n * @member {number} freqMax\n * @memberof perfetto.protos.AndroidGpuMetric.FrequencyMetric\n * @instance\n */\n FrequencyMetric.prototype.freqMax = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * FrequencyMetric freqMin.\n * @member {number} freqMin\n * @memberof perfetto.protos.AndroidGpuMetric.FrequencyMetric\n * @instance\n */\n FrequencyMetric.prototype.freqMin = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * FrequencyMetric freqAvg.\n * @member {number} freqAvg\n * @memberof perfetto.protos.AndroidGpuMetric.FrequencyMetric\n * @instance\n */\n FrequencyMetric.prototype.freqAvg = 0;\n\n /**\n * FrequencyMetric usedFreqs.\n * @member {Array.<perfetto.protos.AndroidGpuMetric.FrequencyMetric.IMetricsPerFrequency>} usedFreqs\n * @memberof perfetto.protos.AndroidGpuMetric.FrequencyMetric\n * @instance\n */\n FrequencyMetric.prototype.usedFreqs = $util.emptyArray;\n\n /**\n * Creates a new FrequencyMetric instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidGpuMetric.FrequencyMetric\n * @static\n * @param {perfetto.protos.AndroidGpuMetric.IFrequencyMetric=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidGpuMetric.FrequencyMetric} FrequencyMetric instance\n */\n FrequencyMetric.create = function create(properties) {\n return new FrequencyMetric(properties);\n };\n\n /**\n * Encodes the specified FrequencyMetric message. Does not implicitly {@link perfetto.protos.AndroidGpuMetric.FrequencyMetric.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidGpuMetric.FrequencyMetric\n * @static\n * @param {perfetto.protos.AndroidGpuMetric.IFrequencyMetric} message FrequencyMetric message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n FrequencyMetric.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.gpuId != null && Object.hasOwnProperty.call(message, \"gpuId\"))\n writer.uint32(/* id 1, wireType 0 =*/8).uint32(message.gpuId);\n if (message.freqMax != null && Object.hasOwnProperty.call(message, \"freqMax\"))\n writer.uint32(/* id 2, wireType 0 =*/16).int64(message.freqMax);\n if (message.freqMin != null && Object.hasOwnProperty.call(message, \"freqMin\"))\n writer.uint32(/* id 3, wireType 0 =*/24).int64(message.freqMin);\n if (message.freqAvg != null && Object.hasOwnProperty.call(message, \"freqAvg\"))\n writer.uint32(/* id 4, wireType 1 =*/33).double(message.freqAvg);\n if (message.usedFreqs != null && message.usedFreqs.length)\n for (var i = 0; i < message.usedFreqs.length; ++i)\n $root.perfetto.protos.AndroidGpuMetric.FrequencyMetric.MetricsPerFrequency.encode(message.usedFreqs[i], writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified FrequencyMetric message, length delimited. Does not implicitly {@link perfetto.protos.AndroidGpuMetric.FrequencyMetric.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidGpuMetric.FrequencyMetric\n * @static\n * @param {perfetto.protos.AndroidGpuMetric.IFrequencyMetric} message FrequencyMetric message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n FrequencyMetric.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a FrequencyMetric message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidGpuMetric.FrequencyMetric\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidGpuMetric.FrequencyMetric} FrequencyMetric\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n FrequencyMetric.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidGpuMetric.FrequencyMetric();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.gpuId = reader.uint32();\n break;\n case 2:\n message.freqMax = reader.int64();\n break;\n case 3:\n message.freqMin = reader.int64();\n break;\n case 4:\n message.freqAvg = reader.double();\n break;\n case 5:\n if (!(message.usedFreqs && message.usedFreqs.length))\n message.usedFreqs = [];\n message.usedFreqs.push($root.perfetto.protos.AndroidGpuMetric.FrequencyMetric.MetricsPerFrequency.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a FrequencyMetric message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidGpuMetric.FrequencyMetric\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidGpuMetric.FrequencyMetric} FrequencyMetric\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n FrequencyMetric.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a FrequencyMetric message.\n * @function verify\n * @memberof perfetto.protos.AndroidGpuMetric.FrequencyMetric\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n FrequencyMetric.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.gpuId != null && message.hasOwnProperty(\"gpuId\"))\n if (!$util.isInteger(message.gpuId))\n return \"gpuId: integer expected\";\n if (message.freqMax != null && message.hasOwnProperty(\"freqMax\"))\n if (!$util.isInteger(message.freqMax) && !(message.freqMax && $util.isInteger(message.freqMax.low) && $util.isInteger(message.freqMax.high)))\n return \"freqMax: integer|Long expected\";\n if (message.freqMin != null && message.hasOwnProperty(\"freqMin\"))\n if (!$util.isInteger(message.freqMin) && !(message.freqMin && $util.isInteger(message.freqMin.low) && $util.isInteger(message.freqMin.high)))\n return \"freqMin: integer|Long expected\";\n if (message.freqAvg != null && message.hasOwnProperty(\"freqAvg\"))\n if (typeof message.freqAvg !== \"number\")\n return \"freqAvg: number expected\";\n if (message.usedFreqs != null && message.hasOwnProperty(\"usedFreqs\")) {\n if (!Array.isArray(message.usedFreqs))\n return \"usedFreqs: array expected\";\n for (var i = 0; i < message.usedFreqs.length; ++i) {\n var error = $root.perfetto.protos.AndroidGpuMetric.FrequencyMetric.MetricsPerFrequency.verify(message.usedFreqs[i]);\n if (error)\n return \"usedFreqs.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates a FrequencyMetric message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidGpuMetric.FrequencyMetric\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidGpuMetric.FrequencyMetric} FrequencyMetric\n */\n FrequencyMetric.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidGpuMetric.FrequencyMetric)\n return object;\n var message = new $root.perfetto.protos.AndroidGpuMetric.FrequencyMetric();\n if (object.gpuId != null)\n message.gpuId = object.gpuId >>> 0;\n if (object.freqMax != null)\n if ($util.Long)\n (message.freqMax = $util.Long.fromValue(object.freqMax)).unsigned = false;\n else if (typeof object.freqMax === \"string\")\n message.freqMax = parseInt(object.freqMax, 10);\n else if (typeof object.freqMax === \"number\")\n message.freqMax = object.freqMax;\n else if (typeof object.freqMax === \"object\")\n message.freqMax = new $util.LongBits(object.freqMax.low >>> 0, object.freqMax.high >>> 0).toNumber();\n if (object.freqMin != null)\n if ($util.Long)\n (message.freqMin = $util.Long.fromValue(object.freqMin)).unsigned = false;\n else if (typeof object.freqMin === \"string\")\n message.freqMin = parseInt(object.freqMin, 10);\n else if (typeof object.freqMin === \"number\")\n message.freqMin = object.freqMin;\n else if (typeof object.freqMin === \"object\")\n message.freqMin = new $util.LongBits(object.freqMin.low >>> 0, object.freqMin.high >>> 0).toNumber();\n if (object.freqAvg != null)\n message.freqAvg = Number(object.freqAvg);\n if (object.usedFreqs) {\n if (!Array.isArray(object.usedFreqs))\n throw TypeError(\".perfetto.protos.AndroidGpuMetric.FrequencyMetric.usedFreqs: array expected\");\n message.usedFreqs = [];\n for (var i = 0; i < object.usedFreqs.length; ++i) {\n if (typeof object.usedFreqs[i] !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidGpuMetric.FrequencyMetric.usedFreqs: object expected\");\n message.usedFreqs[i] = $root.perfetto.protos.AndroidGpuMetric.FrequencyMetric.MetricsPerFrequency.fromObject(object.usedFreqs[i]);\n }\n }\n return message;\n };\n\n /**\n * Creates a plain object from a FrequencyMetric message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidGpuMetric.FrequencyMetric\n * @static\n * @param {perfetto.protos.AndroidGpuMetric.FrequencyMetric} message FrequencyMetric\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n FrequencyMetric.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.usedFreqs = [];\n if (options.defaults) {\n object.gpuId = 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.freqMax = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.freqMax = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.freqMin = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.freqMin = options.longs === String ? \"0\" : 0;\n object.freqAvg = 0;\n }\n if (message.gpuId != null && message.hasOwnProperty(\"gpuId\"))\n object.gpuId = message.gpuId;\n if (message.freqMax != null && message.hasOwnProperty(\"freqMax\"))\n if (typeof message.freqMax === \"number\")\n object.freqMax = options.longs === String ? String(message.freqMax) : message.freqMax;\n else\n object.freqMax = options.longs === String ? $util.Long.prototype.toString.call(message.freqMax) : options.longs === Number ? new $util.LongBits(message.freqMax.low >>> 0, message.freqMax.high >>> 0).toNumber() : message.freqMax;\n if (message.freqMin != null && message.hasOwnProperty(\"freqMin\"))\n if (typeof message.freqMin === \"number\")\n object.freqMin = options.longs === String ? String(message.freqMin) : message.freqMin;\n else\n object.freqMin = options.longs === String ? $util.Long.prototype.toString.call(message.freqMin) : options.longs === Number ? new $util.LongBits(message.freqMin.low >>> 0, message.freqMin.high >>> 0).toNumber() : message.freqMin;\n if (message.freqAvg != null && message.hasOwnProperty(\"freqAvg\"))\n object.freqAvg = options.json && !isFinite(message.freqAvg) ? String(message.freqAvg) : message.freqAvg;\n if (message.usedFreqs && message.usedFreqs.length) {\n object.usedFreqs = [];\n for (var j = 0; j < message.usedFreqs.length; ++j)\n object.usedFreqs[j] = $root.perfetto.protos.AndroidGpuMetric.FrequencyMetric.MetricsPerFrequency.toObject(message.usedFreqs[j], options);\n }\n return object;\n };\n\n /**\n * Converts this FrequencyMetric to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidGpuMetric.FrequencyMetric\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n FrequencyMetric.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n FrequencyMetric.MetricsPerFrequency = (function() {\n\n /**\n * Properties of a MetricsPerFrequency.\n * @memberof perfetto.protos.AndroidGpuMetric.FrequencyMetric\n * @interface IMetricsPerFrequency\n * @property {number|null} [freq] MetricsPerFrequency freq\n * @property {number|null} [durMs] MetricsPerFrequency durMs\n * @property {number|null} [percentage] MetricsPerFrequency percentage\n */\n\n /**\n * Constructs a new MetricsPerFrequency.\n * @memberof perfetto.protos.AndroidGpuMetric.FrequencyMetric\n * @classdesc Represents a MetricsPerFrequency.\n * @implements IMetricsPerFrequency\n * @constructor\n * @param {perfetto.protos.AndroidGpuMetric.FrequencyMetric.IMetricsPerFrequency=} [properties] Properties to set\n */\n function MetricsPerFrequency(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * MetricsPerFrequency freq.\n * @member {number} freq\n * @memberof perfetto.protos.AndroidGpuMetric.FrequencyMetric.MetricsPerFrequency\n * @instance\n */\n MetricsPerFrequency.prototype.freq = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * MetricsPerFrequency durMs.\n * @member {number} durMs\n * @memberof perfetto.protos.AndroidGpuMetric.FrequencyMetric.MetricsPerFrequency\n * @instance\n */\n MetricsPerFrequency.prototype.durMs = 0;\n\n /**\n * MetricsPerFrequency percentage.\n * @member {number} percentage\n * @memberof perfetto.protos.AndroidGpuMetric.FrequencyMetric.MetricsPerFrequency\n * @instance\n */\n MetricsPerFrequency.prototype.percentage = 0;\n\n /**\n * Creates a new MetricsPerFrequency instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidGpuMetric.FrequencyMetric.MetricsPerFrequency\n * @static\n * @param {perfetto.protos.AndroidGpuMetric.FrequencyMetric.IMetricsPerFrequency=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidGpuMetric.FrequencyMetric.MetricsPerFrequency} MetricsPerFrequency instance\n */\n MetricsPerFrequency.create = function create(properties) {\n return new MetricsPerFrequency(properties);\n };\n\n /**\n * Encodes the specified MetricsPerFrequency message. Does not implicitly {@link perfetto.protos.AndroidGpuMetric.FrequencyMetric.MetricsPerFrequency.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidGpuMetric.FrequencyMetric.MetricsPerFrequency\n * @static\n * @param {perfetto.protos.AndroidGpuMetric.FrequencyMetric.IMetricsPerFrequency} message MetricsPerFrequency message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n MetricsPerFrequency.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.freq != null && Object.hasOwnProperty.call(message, \"freq\"))\n writer.uint32(/* id 1, wireType 0 =*/8).int64(message.freq);\n if (message.durMs != null && Object.hasOwnProperty.call(message, \"durMs\"))\n writer.uint32(/* id 2, wireType 1 =*/17).double(message.durMs);\n if (message.percentage != null && Object.hasOwnProperty.call(message, \"percentage\"))\n writer.uint32(/* id 3, wireType 1 =*/25).double(message.percentage);\n return writer;\n };\n\n /**\n * Encodes the specified MetricsPerFrequency message, length delimited. Does not implicitly {@link perfetto.protos.AndroidGpuMetric.FrequencyMetric.MetricsPerFrequency.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidGpuMetric.FrequencyMetric.MetricsPerFrequency\n * @static\n * @param {perfetto.protos.AndroidGpuMetric.FrequencyMetric.IMetricsPerFrequency} message MetricsPerFrequency message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n MetricsPerFrequency.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a MetricsPerFrequency message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidGpuMetric.FrequencyMetric.MetricsPerFrequency\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidGpuMetric.FrequencyMetric.MetricsPerFrequency} MetricsPerFrequency\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n MetricsPerFrequency.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidGpuMetric.FrequencyMetric.MetricsPerFrequency();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.freq = reader.int64();\n break;\n case 2:\n message.durMs = reader.double();\n break;\n case 3:\n message.percentage = reader.double();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a MetricsPerFrequency message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidGpuMetric.FrequencyMetric.MetricsPerFrequency\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidGpuMetric.FrequencyMetric.MetricsPerFrequency} MetricsPerFrequency\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n MetricsPerFrequency.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a MetricsPerFrequency message.\n * @function verify\n * @memberof perfetto.protos.AndroidGpuMetric.FrequencyMetric.MetricsPerFrequency\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n MetricsPerFrequency.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.freq != null && message.hasOwnProperty(\"freq\"))\n if (!$util.isInteger(message.freq) && !(message.freq && $util.isInteger(message.freq.low) && $util.isInteger(message.freq.high)))\n return \"freq: integer|Long expected\";\n if (message.durMs != null && message.hasOwnProperty(\"durMs\"))\n if (typeof message.durMs !== \"number\")\n return \"durMs: number expected\";\n if (message.percentage != null && message.hasOwnProperty(\"percentage\"))\n if (typeof message.percentage !== \"number\")\n return \"percentage: number expected\";\n return null;\n };\n\n /**\n * Creates a MetricsPerFrequency message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidGpuMetric.FrequencyMetric.MetricsPerFrequency\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidGpuMetric.FrequencyMetric.MetricsPerFrequency} MetricsPerFrequency\n */\n MetricsPerFrequency.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidGpuMetric.FrequencyMetric.MetricsPerFrequency)\n return object;\n var message = new $root.perfetto.protos.AndroidGpuMetric.FrequencyMetric.MetricsPerFrequency();\n if (object.freq != null)\n if ($util.Long)\n (message.freq = $util.Long.fromValue(object.freq)).unsigned = false;\n else if (typeof object.freq === \"string\")\n message.freq = parseInt(object.freq, 10);\n else if (typeof object.freq === \"number\")\n message.freq = object.freq;\n else if (typeof object.freq === \"object\")\n message.freq = new $util.LongBits(object.freq.low >>> 0, object.freq.high >>> 0).toNumber();\n if (object.durMs != null)\n message.durMs = Number(object.durMs);\n if (object.percentage != null)\n message.percentage = Number(object.percentage);\n return message;\n };\n\n /**\n * Creates a plain object from a MetricsPerFrequency message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidGpuMetric.FrequencyMetric.MetricsPerFrequency\n * @static\n * @param {perfetto.protos.AndroidGpuMetric.FrequencyMetric.MetricsPerFrequency} message MetricsPerFrequency\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n MetricsPerFrequency.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.freq = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.freq = options.longs === String ? \"0\" : 0;\n object.durMs = 0;\n object.percentage = 0;\n }\n if (message.freq != null && message.hasOwnProperty(\"freq\"))\n if (typeof message.freq === \"number\")\n object.freq = options.longs === String ? String(message.freq) : message.freq;\n else\n object.freq = options.longs === String ? $util.Long.prototype.toString.call(message.freq) : options.longs === Number ? new $util.LongBits(message.freq.low >>> 0, message.freq.high >>> 0).toNumber() : message.freq;\n if (message.durMs != null && message.hasOwnProperty(\"durMs\"))\n object.durMs = options.json && !isFinite(message.durMs) ? String(message.durMs) : message.durMs;\n if (message.percentage != null && message.hasOwnProperty(\"percentage\"))\n object.percentage = options.json && !isFinite(message.percentage) ? String(message.percentage) : message.percentage;\n return object;\n };\n\n /**\n * Converts this MetricsPerFrequency to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidGpuMetric.FrequencyMetric.MetricsPerFrequency\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n MetricsPerFrequency.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return MetricsPerFrequency;\n })();\n\n return FrequencyMetric;\n })();\n\n return AndroidGpuMetric;\n })();\n\n protos.AndroidHwcomposerMetrics = (function() {\n\n /**\n * Properties of an AndroidHwcomposerMetrics.\n * @memberof perfetto.protos\n * @interface IAndroidHwcomposerMetrics\n * @property {number|null} [compositionTotalLayers] AndroidHwcomposerMetrics compositionTotalLayers\n * @property {number|null} [compositionDpuLayers] AndroidHwcomposerMetrics compositionDpuLayers\n * @property {number|null} [compositionGpuLayers] AndroidHwcomposerMetrics compositionGpuLayers\n * @property {number|null} [compositionDpuCachedLayers] AndroidHwcomposerMetrics compositionDpuCachedLayers\n * @property {number|null} [compositionSfCachedLayers] AndroidHwcomposerMetrics compositionSfCachedLayers\n * @property {number|null} [skippedValidationCount] AndroidHwcomposerMetrics skippedValidationCount\n * @property {number|null} [unskippedValidationCount] AndroidHwcomposerMetrics unskippedValidationCount\n * @property {number|null} [separatedValidationCount] AndroidHwcomposerMetrics separatedValidationCount\n * @property {number|null} [unknownValidationCount] AndroidHwcomposerMetrics unknownValidationCount\n * @property {number|null} [avgAllExecutionTimeMs] AndroidHwcomposerMetrics avgAllExecutionTimeMs\n * @property {number|null} [avgSkippedExecutionTimeMs] AndroidHwcomposerMetrics avgSkippedExecutionTimeMs\n * @property {number|null} [avgUnskippedExecutionTimeMs] AndroidHwcomposerMetrics avgUnskippedExecutionTimeMs\n * @property {number|null} [avgSeparatedExecutionTimeMs] AndroidHwcomposerMetrics avgSeparatedExecutionTimeMs\n * @property {Array.<perfetto.protos.AndroidHwcomposerMetrics.IDpuVoteMetrics>|null} [dpuVoteMetrics] AndroidHwcomposerMetrics dpuVoteMetrics\n */\n\n /**\n * Constructs a new AndroidHwcomposerMetrics.\n * @memberof perfetto.protos\n * @classdesc Represents an AndroidHwcomposerMetrics.\n * @implements IAndroidHwcomposerMetrics\n * @constructor\n * @param {perfetto.protos.IAndroidHwcomposerMetrics=} [properties] Properties to set\n */\n function AndroidHwcomposerMetrics(properties) {\n this.dpuVoteMetrics = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * AndroidHwcomposerMetrics compositionTotalLayers.\n * @member {number} compositionTotalLayers\n * @memberof perfetto.protos.AndroidHwcomposerMetrics\n * @instance\n */\n AndroidHwcomposerMetrics.prototype.compositionTotalLayers = 0;\n\n /**\n * AndroidHwcomposerMetrics compositionDpuLayers.\n * @member {number} compositionDpuLayers\n * @memberof perfetto.protos.AndroidHwcomposerMetrics\n * @instance\n */\n AndroidHwcomposerMetrics.prototype.compositionDpuLayers = 0;\n\n /**\n * AndroidHwcomposerMetrics compositionGpuLayers.\n * @member {number} compositionGpuLayers\n * @memberof perfetto.protos.AndroidHwcomposerMetrics\n * @instance\n */\n AndroidHwcomposerMetrics.prototype.compositionGpuLayers = 0;\n\n /**\n * AndroidHwcomposerMetrics compositionDpuCachedLayers.\n * @member {number} compositionDpuCachedLayers\n * @memberof perfetto.protos.AndroidHwcomposerMetrics\n * @instance\n */\n AndroidHwcomposerMetrics.prototype.compositionDpuCachedLayers = 0;\n\n /**\n * AndroidHwcomposerMetrics compositionSfCachedLayers.\n * @member {number} compositionSfCachedLayers\n * @memberof perfetto.protos.AndroidHwcomposerMetrics\n * @instance\n */\n AndroidHwcomposerMetrics.prototype.compositionSfCachedLayers = 0;\n\n /**\n * AndroidHwcomposerMetrics skippedValidationCount.\n * @member {number} skippedValidationCount\n * @memberof perfetto.protos.AndroidHwcomposerMetrics\n * @instance\n */\n AndroidHwcomposerMetrics.prototype.skippedValidationCount = 0;\n\n /**\n * AndroidHwcomposerMetrics unskippedValidationCount.\n * @member {number} unskippedValidationCount\n * @memberof perfetto.protos.AndroidHwcomposerMetrics\n * @instance\n */\n AndroidHwcomposerMetrics.prototype.unskippedValidationCount = 0;\n\n /**\n * AndroidHwcomposerMetrics separatedValidationCount.\n * @member {number} separatedValidationCount\n * @memberof perfetto.protos.AndroidHwcomposerMetrics\n * @instance\n */\n AndroidHwcomposerMetrics.prototype.separatedValidationCount = 0;\n\n /**\n * AndroidHwcomposerMetrics unknownValidationCount.\n * @member {number} unknownValidationCount\n * @memberof perfetto.protos.AndroidHwcomposerMetrics\n * @instance\n */\n AndroidHwcomposerMetrics.prototype.unknownValidationCount = 0;\n\n /**\n * AndroidHwcomposerMetrics avgAllExecutionTimeMs.\n * @member {number} avgAllExecutionTimeMs\n * @memberof perfetto.protos.AndroidHwcomposerMetrics\n * @instance\n */\n AndroidHwcomposerMetrics.prototype.avgAllExecutionTimeMs = 0;\n\n /**\n * AndroidHwcomposerMetrics avgSkippedExecutionTimeMs.\n * @member {number} avgSkippedExecutionTimeMs\n * @memberof perfetto.protos.AndroidHwcomposerMetrics\n * @instance\n */\n AndroidHwcomposerMetrics.prototype.avgSkippedExecutionTimeMs = 0;\n\n /**\n * AndroidHwcomposerMetrics avgUnskippedExecutionTimeMs.\n * @member {number} avgUnskippedExecutionTimeMs\n * @memberof perfetto.protos.AndroidHwcomposerMetrics\n * @instance\n */\n AndroidHwcomposerMetrics.prototype.avgUnskippedExecutionTimeMs = 0;\n\n /**\n * AndroidHwcomposerMetrics avgSeparatedExecutionTimeMs.\n * @member {number} avgSeparatedExecutionTimeMs\n * @memberof perfetto.protos.AndroidHwcomposerMetrics\n * @instance\n */\n AndroidHwcomposerMetrics.prototype.avgSeparatedExecutionTimeMs = 0;\n\n /**\n * AndroidHwcomposerMetrics dpuVoteMetrics.\n * @member {Array.<perfetto.protos.AndroidHwcomposerMetrics.IDpuVoteMetrics>} dpuVoteMetrics\n * @memberof perfetto.protos.AndroidHwcomposerMetrics\n * @instance\n */\n AndroidHwcomposerMetrics.prototype.dpuVoteMetrics = $util.emptyArray;\n\n /**\n * Creates a new AndroidHwcomposerMetrics instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidHwcomposerMetrics\n * @static\n * @param {perfetto.protos.IAndroidHwcomposerMetrics=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidHwcomposerMetrics} AndroidHwcomposerMetrics instance\n */\n AndroidHwcomposerMetrics.create = function create(properties) {\n return new AndroidHwcomposerMetrics(properties);\n };\n\n /**\n * Encodes the specified AndroidHwcomposerMetrics message. Does not implicitly {@link perfetto.protos.AndroidHwcomposerMetrics.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidHwcomposerMetrics\n * @static\n * @param {perfetto.protos.IAndroidHwcomposerMetrics} message AndroidHwcomposerMetrics message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n AndroidHwcomposerMetrics.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.compositionTotalLayers != null && Object.hasOwnProperty.call(message, \"compositionTotalLayers\"))\n writer.uint32(/* id 1, wireType 1 =*/9).double(message.compositionTotalLayers);\n if (message.compositionDpuLayers != null && Object.hasOwnProperty.call(message, \"compositionDpuLayers\"))\n writer.uint32(/* id 2, wireType 1 =*/17).double(message.compositionDpuLayers);\n if (message.compositionGpuLayers != null && Object.hasOwnProperty.call(message, \"compositionGpuLayers\"))\n writer.uint32(/* id 3, wireType 1 =*/25).double(message.compositionGpuLayers);\n if (message.compositionDpuCachedLayers != null && Object.hasOwnProperty.call(message, \"compositionDpuCachedLayers\"))\n writer.uint32(/* id 4, wireType 1 =*/33).double(message.compositionDpuCachedLayers);\n if (message.compositionSfCachedLayers != null && Object.hasOwnProperty.call(message, \"compositionSfCachedLayers\"))\n writer.uint32(/* id 5, wireType 1 =*/41).double(message.compositionSfCachedLayers);\n if (message.skippedValidationCount != null && Object.hasOwnProperty.call(message, \"skippedValidationCount\"))\n writer.uint32(/* id 6, wireType 0 =*/48).int32(message.skippedValidationCount);\n if (message.unskippedValidationCount != null && Object.hasOwnProperty.call(message, \"unskippedValidationCount\"))\n writer.uint32(/* id 7, wireType 0 =*/56).int32(message.unskippedValidationCount);\n if (message.separatedValidationCount != null && Object.hasOwnProperty.call(message, \"separatedValidationCount\"))\n writer.uint32(/* id 8, wireType 0 =*/64).int32(message.separatedValidationCount);\n if (message.unknownValidationCount != null && Object.hasOwnProperty.call(message, \"unknownValidationCount\"))\n writer.uint32(/* id 9, wireType 0 =*/72).int32(message.unknownValidationCount);\n if (message.avgAllExecutionTimeMs != null && Object.hasOwnProperty.call(message, \"avgAllExecutionTimeMs\"))\n writer.uint32(/* id 10, wireType 1 =*/81).double(message.avgAllExecutionTimeMs);\n if (message.avgSkippedExecutionTimeMs != null && Object.hasOwnProperty.call(message, \"avgSkippedExecutionTimeMs\"))\n writer.uint32(/* id 11, wireType 1 =*/89).double(message.avgSkippedExecutionTimeMs);\n if (message.avgUnskippedExecutionTimeMs != null && Object.hasOwnProperty.call(message, \"avgUnskippedExecutionTimeMs\"))\n writer.uint32(/* id 12, wireType 1 =*/97).double(message.avgUnskippedExecutionTimeMs);\n if (message.avgSeparatedExecutionTimeMs != null && Object.hasOwnProperty.call(message, \"avgSeparatedExecutionTimeMs\"))\n writer.uint32(/* id 13, wireType 1 =*/105).double(message.avgSeparatedExecutionTimeMs);\n if (message.dpuVoteMetrics != null && message.dpuVoteMetrics.length)\n for (var i = 0; i < message.dpuVoteMetrics.length; ++i)\n $root.perfetto.protos.AndroidHwcomposerMetrics.DpuVoteMetrics.encode(message.dpuVoteMetrics[i], writer.uint32(/* id 14, wireType 2 =*/114).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified AndroidHwcomposerMetrics message, length delimited. Does not implicitly {@link perfetto.protos.AndroidHwcomposerMetrics.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidHwcomposerMetrics\n * @static\n * @param {perfetto.protos.IAndroidHwcomposerMetrics} message AndroidHwcomposerMetrics message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n AndroidHwcomposerMetrics.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes an AndroidHwcomposerMetrics message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidHwcomposerMetrics\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidHwcomposerMetrics} AndroidHwcomposerMetrics\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n AndroidHwcomposerMetrics.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidHwcomposerMetrics();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.compositionTotalLayers = reader.double();\n break;\n case 2:\n message.compositionDpuLayers = reader.double();\n break;\n case 3:\n message.compositionGpuLayers = reader.double();\n break;\n case 4:\n message.compositionDpuCachedLayers = reader.double();\n break;\n case 5:\n message.compositionSfCachedLayers = reader.double();\n break;\n case 6:\n message.skippedValidationCount = reader.int32();\n break;\n case 7:\n message.unskippedValidationCount = reader.int32();\n break;\n case 8:\n message.separatedValidationCount = reader.int32();\n break;\n case 9:\n message.unknownValidationCount = reader.int32();\n break;\n case 10:\n message.avgAllExecutionTimeMs = reader.double();\n break;\n case 11:\n message.avgSkippedExecutionTimeMs = reader.double();\n break;\n case 12:\n message.avgUnskippedExecutionTimeMs = reader.double();\n break;\n case 13:\n message.avgSeparatedExecutionTimeMs = reader.double();\n break;\n case 14:\n if (!(message.dpuVoteMetrics && message.dpuVoteMetrics.length))\n message.dpuVoteMetrics = [];\n message.dpuVoteMetrics.push($root.perfetto.protos.AndroidHwcomposerMetrics.DpuVoteMetrics.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes an AndroidHwcomposerMetrics message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidHwcomposerMetrics\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidHwcomposerMetrics} AndroidHwcomposerMetrics\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n AndroidHwcomposerMetrics.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies an AndroidHwcomposerMetrics message.\n * @function verify\n * @memberof perfetto.protos.AndroidHwcomposerMetrics\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n AndroidHwcomposerMetrics.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.compositionTotalLayers != null && message.hasOwnProperty(\"compositionTotalLayers\"))\n if (typeof message.compositionTotalLayers !== \"number\")\n return \"compositionTotalLayers: number expected\";\n if (message.compositionDpuLayers != null && message.hasOwnProperty(\"compositionDpuLayers\"))\n if (typeof message.compositionDpuLayers !== \"number\")\n return \"compositionDpuLayers: number expected\";\n if (message.compositionGpuLayers != null && message.hasOwnProperty(\"compositionGpuLayers\"))\n if (typeof message.compositionGpuLayers !== \"number\")\n return \"compositionGpuLayers: number expected\";\n if (message.compositionDpuCachedLayers != null && message.hasOwnProperty(\"compositionDpuCachedLayers\"))\n if (typeof message.compositionDpuCachedLayers !== \"number\")\n return \"compositionDpuCachedLayers: number expected\";\n if (message.compositionSfCachedLayers != null && message.hasOwnProperty(\"compositionSfCachedLayers\"))\n if (typeof message.compositionSfCachedLayers !== \"number\")\n return \"compositionSfCachedLayers: number expected\";\n if (message.skippedValidationCount != null && message.hasOwnProperty(\"skippedValidationCount\"))\n if (!$util.isInteger(message.skippedValidationCount))\n return \"skippedValidationCount: integer expected\";\n if (message.unskippedValidationCount != null && message.hasOwnProperty(\"unskippedValidationCount\"))\n if (!$util.isInteger(message.unskippedValidationCount))\n return \"unskippedValidationCount: integer expected\";\n if (message.separatedValidationCount != null && message.hasOwnProperty(\"separatedValidationCount\"))\n if (!$util.isInteger(message.separatedValidationCount))\n return \"separatedValidationCount: integer expected\";\n if (message.unknownValidationCount != null && message.hasOwnProperty(\"unknownValidationCount\"))\n if (!$util.isInteger(message.unknownValidationCount))\n return \"unknownValidationCount: integer expected\";\n if (message.avgAllExecutionTimeMs != null && message.hasOwnProperty(\"avgAllExecutionTimeMs\"))\n if (typeof message.avgAllExecutionTimeMs !== \"number\")\n return \"avgAllExecutionTimeMs: number expected\";\n if (message.avgSkippedExecutionTimeMs != null && message.hasOwnProperty(\"avgSkippedExecutionTimeMs\"))\n if (typeof message.avgSkippedExecutionTimeMs !== \"number\")\n return \"avgSkippedExecutionTimeMs: number expected\";\n if (message.avgUnskippedExecutionTimeMs != null && message.hasOwnProperty(\"avgUnskippedExecutionTimeMs\"))\n if (typeof message.avgUnskippedExecutionTimeMs !== \"number\")\n return \"avgUnskippedExecutionTimeMs: number expected\";\n if (message.avgSeparatedExecutionTimeMs != null && message.hasOwnProperty(\"avgSeparatedExecutionTimeMs\"))\n if (typeof message.avgSeparatedExecutionTimeMs !== \"number\")\n return \"avgSeparatedExecutionTimeMs: number expected\";\n if (message.dpuVoteMetrics != null && message.hasOwnProperty(\"dpuVoteMetrics\")) {\n if (!Array.isArray(message.dpuVoteMetrics))\n return \"dpuVoteMetrics: array expected\";\n for (var i = 0; i < message.dpuVoteMetrics.length; ++i) {\n var error = $root.perfetto.protos.AndroidHwcomposerMetrics.DpuVoteMetrics.verify(message.dpuVoteMetrics[i]);\n if (error)\n return \"dpuVoteMetrics.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates an AndroidHwcomposerMetrics message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidHwcomposerMetrics\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidHwcomposerMetrics} AndroidHwcomposerMetrics\n */\n AndroidHwcomposerMetrics.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidHwcomposerMetrics)\n return object;\n var message = new $root.perfetto.protos.AndroidHwcomposerMetrics();\n if (object.compositionTotalLayers != null)\n message.compositionTotalLayers = Number(object.compositionTotalLayers);\n if (object.compositionDpuLayers != null)\n message.compositionDpuLayers = Number(object.compositionDpuLayers);\n if (object.compositionGpuLayers != null)\n message.compositionGpuLayers = Number(object.compositionGpuLayers);\n if (object.compositionDpuCachedLayers != null)\n message.compositionDpuCachedLayers = Number(object.compositionDpuCachedLayers);\n if (object.compositionSfCachedLayers != null)\n message.compositionSfCachedLayers = Number(object.compositionSfCachedLayers);\n if (object.skippedValidationCount != null)\n message.skippedValidationCount = object.skippedValidationCount | 0;\n if (object.unskippedValidationCount != null)\n message.unskippedValidationCount = object.unskippedValidationCount | 0;\n if (object.separatedValidationCount != null)\n message.separatedValidationCount = object.separatedValidationCount | 0;\n if (object.unknownValidationCount != null)\n message.unknownValidationCount = object.unknownValidationCount | 0;\n if (object.avgAllExecutionTimeMs != null)\n message.avgAllExecutionTimeMs = Number(object.avgAllExecutionTimeMs);\n if (object.avgSkippedExecutionTimeMs != null)\n message.avgSkippedExecutionTimeMs = Number(object.avgSkippedExecutionTimeMs);\n if (object.avgUnskippedExecutionTimeMs != null)\n message.avgUnskippedExecutionTimeMs = Number(object.avgUnskippedExecutionTimeMs);\n if (object.avgSeparatedExecutionTimeMs != null)\n message.avgSeparatedExecutionTimeMs = Number(object.avgSeparatedExecutionTimeMs);\n if (object.dpuVoteMetrics) {\n if (!Array.isArray(object.dpuVoteMetrics))\n throw TypeError(\".perfetto.protos.AndroidHwcomposerMetrics.dpuVoteMetrics: array expected\");\n message.dpuVoteMetrics = [];\n for (var i = 0; i < object.dpuVoteMetrics.length; ++i) {\n if (typeof object.dpuVoteMetrics[i] !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidHwcomposerMetrics.dpuVoteMetrics: object expected\");\n message.dpuVoteMetrics[i] = $root.perfetto.protos.AndroidHwcomposerMetrics.DpuVoteMetrics.fromObject(object.dpuVoteMetrics[i]);\n }\n }\n return message;\n };\n\n /**\n * Creates a plain object from an AndroidHwcomposerMetrics message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidHwcomposerMetrics\n * @static\n * @param {perfetto.protos.AndroidHwcomposerMetrics} message AndroidHwcomposerMetrics\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n AndroidHwcomposerMetrics.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.dpuVoteMetrics = [];\n if (options.defaults) {\n object.compositionTotalLayers = 0;\n object.compositionDpuLayers = 0;\n object.compositionGpuLayers = 0;\n object.compositionDpuCachedLayers = 0;\n object.compositionSfCachedLayers = 0;\n object.skippedValidationCount = 0;\n object.unskippedValidationCount = 0;\n object.separatedValidationCount = 0;\n object.unknownValidationCount = 0;\n object.avgAllExecutionTimeMs = 0;\n object.avgSkippedExecutionTimeMs = 0;\n object.avgUnskippedExecutionTimeMs = 0;\n object.avgSeparatedExecutionTimeMs = 0;\n }\n if (message.compositionTotalLayers != null && message.hasOwnProperty(\"compositionTotalLayers\"))\n object.compositionTotalLayers = options.json && !isFinite(message.compositionTotalLayers) ? String(message.compositionTotalLayers) : message.compositionTotalLayers;\n if (message.compositionDpuLayers != null && message.hasOwnProperty(\"compositionDpuLayers\"))\n object.compositionDpuLayers = options.json && !isFinite(message.compositionDpuLayers) ? String(message.compositionDpuLayers) : message.compositionDpuLayers;\n if (message.compositionGpuLayers != null && message.hasOwnProperty(\"compositionGpuLayers\"))\n object.compositionGpuLayers = options.json && !isFinite(message.compositionGpuLayers) ? String(message.compositionGpuLayers) : message.compositionGpuLayers;\n if (message.compositionDpuCachedLayers != null && message.hasOwnProperty(\"compositionDpuCachedLayers\"))\n object.compositionDpuCachedLayers = options.json && !isFinite(message.compositionDpuCachedLayers) ? String(message.compositionDpuCachedLayers) : message.compositionDpuCachedLayers;\n if (message.compositionSfCachedLayers != null && message.hasOwnProperty(\"compositionSfCachedLayers\"))\n object.compositionSfCachedLayers = options.json && !isFinite(message.compositionSfCachedLayers) ? String(message.compositionSfCachedLayers) : message.compositionSfCachedLayers;\n if (message.skippedValidationCount != null && message.hasOwnProperty(\"skippedValidationCount\"))\n object.skippedValidationCount = message.skippedValidationCount;\n if (message.unskippedValidationCount != null && message.hasOwnProperty(\"unskippedValidationCount\"))\n object.unskippedValidationCount = message.unskippedValidationCount;\n if (message.separatedValidationCount != null && message.hasOwnProperty(\"separatedValidationCount\"))\n object.separatedValidationCount = message.separatedValidationCount;\n if (message.unknownValidationCount != null && message.hasOwnProperty(\"unknownValidationCount\"))\n object.unknownValidationCount = message.unknownValidationCount;\n if (message.avgAllExecutionTimeMs != null && message.hasOwnProperty(\"avgAllExecutionTimeMs\"))\n object.avgAllExecutionTimeMs = options.json && !isFinite(message.avgAllExecutionTimeMs) ? String(message.avgAllExecutionTimeMs) : message.avgAllExecutionTimeMs;\n if (message.avgSkippedExecutionTimeMs != null && message.hasOwnProperty(\"avgSkippedExecutionTimeMs\"))\n object.avgSkippedExecutionTimeMs = options.json && !isFinite(message.avgSkippedExecutionTimeMs) ? String(message.avgSkippedExecutionTimeMs) : message.avgSkippedExecutionTimeMs;\n if (message.avgUnskippedExecutionTimeMs != null && message.hasOwnProperty(\"avgUnskippedExecutionTimeMs\"))\n object.avgUnskippedExecutionTimeMs = options.json && !isFinite(message.avgUnskippedExecutionTimeMs) ? String(message.avgUnskippedExecutionTimeMs) : message.avgUnskippedExecutionTimeMs;\n if (message.avgSeparatedExecutionTimeMs != null && message.hasOwnProperty(\"avgSeparatedExecutionTimeMs\"))\n object.avgSeparatedExecutionTimeMs = options.json && !isFinite(message.avgSeparatedExecutionTimeMs) ? String(message.avgSeparatedExecutionTimeMs) : message.avgSeparatedExecutionTimeMs;\n if (message.dpuVoteMetrics && message.dpuVoteMetrics.length) {\n object.dpuVoteMetrics = [];\n for (var j = 0; j < message.dpuVoteMetrics.length; ++j)\n object.dpuVoteMetrics[j] = $root.perfetto.protos.AndroidHwcomposerMetrics.DpuVoteMetrics.toObject(message.dpuVoteMetrics[j], options);\n }\n return object;\n };\n\n /**\n * Converts this AndroidHwcomposerMetrics to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidHwcomposerMetrics\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n AndroidHwcomposerMetrics.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n AndroidHwcomposerMetrics.DpuVoteMetrics = (function() {\n\n /**\n * Properties of a DpuVoteMetrics.\n * @memberof perfetto.protos.AndroidHwcomposerMetrics\n * @interface IDpuVoteMetrics\n * @property {number|null} [tid] DpuVoteMetrics tid\n * @property {number|null} [avgDpuVoteClock] DpuVoteMetrics avgDpuVoteClock\n * @property {number|null} [avgDpuVoteAvgBw] DpuVoteMetrics avgDpuVoteAvgBw\n * @property {number|null} [avgDpuVotePeakBw] DpuVoteMetrics avgDpuVotePeakBw\n * @property {number|null} [avgDpuVoteRtBw] DpuVoteMetrics avgDpuVoteRtBw\n */\n\n /**\n * Constructs a new DpuVoteMetrics.\n * @memberof perfetto.protos.AndroidHwcomposerMetrics\n * @classdesc Represents a DpuVoteMetrics.\n * @implements IDpuVoteMetrics\n * @constructor\n * @param {perfetto.protos.AndroidHwcomposerMetrics.IDpuVoteMetrics=} [properties] Properties to set\n */\n function DpuVoteMetrics(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * DpuVoteMetrics tid.\n * @member {number} tid\n * @memberof perfetto.protos.AndroidHwcomposerMetrics.DpuVoteMetrics\n * @instance\n */\n DpuVoteMetrics.prototype.tid = 0;\n\n /**\n * DpuVoteMetrics avgDpuVoteClock.\n * @member {number} avgDpuVoteClock\n * @memberof perfetto.protos.AndroidHwcomposerMetrics.DpuVoteMetrics\n * @instance\n */\n DpuVoteMetrics.prototype.avgDpuVoteClock = 0;\n\n /**\n * DpuVoteMetrics avgDpuVoteAvgBw.\n * @member {number} avgDpuVoteAvgBw\n * @memberof perfetto.protos.AndroidHwcomposerMetrics.DpuVoteMetrics\n * @instance\n */\n DpuVoteMetrics.prototype.avgDpuVoteAvgBw = 0;\n\n /**\n * DpuVoteMetrics avgDpuVotePeakBw.\n * @member {number} avgDpuVotePeakBw\n * @memberof perfetto.protos.AndroidHwcomposerMetrics.DpuVoteMetrics\n * @instance\n */\n DpuVoteMetrics.prototype.avgDpuVotePeakBw = 0;\n\n /**\n * DpuVoteMetrics avgDpuVoteRtBw.\n * @member {number} avgDpuVoteRtBw\n * @memberof perfetto.protos.AndroidHwcomposerMetrics.DpuVoteMetrics\n * @instance\n */\n DpuVoteMetrics.prototype.avgDpuVoteRtBw = 0;\n\n /**\n * Creates a new DpuVoteMetrics instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidHwcomposerMetrics.DpuVoteMetrics\n * @static\n * @param {perfetto.protos.AndroidHwcomposerMetrics.IDpuVoteMetrics=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidHwcomposerMetrics.DpuVoteMetrics} DpuVoteMetrics instance\n */\n DpuVoteMetrics.create = function create(properties) {\n return new DpuVoteMetrics(properties);\n };\n\n /**\n * Encodes the specified DpuVoteMetrics message. Does not implicitly {@link perfetto.protos.AndroidHwcomposerMetrics.DpuVoteMetrics.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidHwcomposerMetrics.DpuVoteMetrics\n * @static\n * @param {perfetto.protos.AndroidHwcomposerMetrics.IDpuVoteMetrics} message DpuVoteMetrics message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n DpuVoteMetrics.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.tid != null && Object.hasOwnProperty.call(message, \"tid\"))\n writer.uint32(/* id 1, wireType 0 =*/8).uint32(message.tid);\n if (message.avgDpuVoteClock != null && Object.hasOwnProperty.call(message, \"avgDpuVoteClock\"))\n writer.uint32(/* id 2, wireType 1 =*/17).double(message.avgDpuVoteClock);\n if (message.avgDpuVoteAvgBw != null && Object.hasOwnProperty.call(message, \"avgDpuVoteAvgBw\"))\n writer.uint32(/* id 3, wireType 1 =*/25).double(message.avgDpuVoteAvgBw);\n if (message.avgDpuVotePeakBw != null && Object.hasOwnProperty.call(message, \"avgDpuVotePeakBw\"))\n writer.uint32(/* id 4, wireType 1 =*/33).double(message.avgDpuVotePeakBw);\n if (message.avgDpuVoteRtBw != null && Object.hasOwnProperty.call(message, \"avgDpuVoteRtBw\"))\n writer.uint32(/* id 5, wireType 1 =*/41).double(message.avgDpuVoteRtBw);\n return writer;\n };\n\n /**\n * Encodes the specified DpuVoteMetrics message, length delimited. Does not implicitly {@link perfetto.protos.AndroidHwcomposerMetrics.DpuVoteMetrics.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidHwcomposerMetrics.DpuVoteMetrics\n * @static\n * @param {perfetto.protos.AndroidHwcomposerMetrics.IDpuVoteMetrics} message DpuVoteMetrics message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n DpuVoteMetrics.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a DpuVoteMetrics message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidHwcomposerMetrics.DpuVoteMetrics\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidHwcomposerMetrics.DpuVoteMetrics} DpuVoteMetrics\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n DpuVoteMetrics.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidHwcomposerMetrics.DpuVoteMetrics();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.tid = reader.uint32();\n break;\n case 2:\n message.avgDpuVoteClock = reader.double();\n break;\n case 3:\n message.avgDpuVoteAvgBw = reader.double();\n break;\n case 4:\n message.avgDpuVotePeakBw = reader.double();\n break;\n case 5:\n message.avgDpuVoteRtBw = reader.double();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a DpuVoteMetrics message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidHwcomposerMetrics.DpuVoteMetrics\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidHwcomposerMetrics.DpuVoteMetrics} DpuVoteMetrics\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n DpuVoteMetrics.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a DpuVoteMetrics message.\n * @function verify\n * @memberof perfetto.protos.AndroidHwcomposerMetrics.DpuVoteMetrics\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n DpuVoteMetrics.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.tid != null && message.hasOwnProperty(\"tid\"))\n if (!$util.isInteger(message.tid))\n return \"tid: integer expected\";\n if (message.avgDpuVoteClock != null && message.hasOwnProperty(\"avgDpuVoteClock\"))\n if (typeof message.avgDpuVoteClock !== \"number\")\n return \"avgDpuVoteClock: number expected\";\n if (message.avgDpuVoteAvgBw != null && message.hasOwnProperty(\"avgDpuVoteAvgBw\"))\n if (typeof message.avgDpuVoteAvgBw !== \"number\")\n return \"avgDpuVoteAvgBw: number expected\";\n if (message.avgDpuVotePeakBw != null && message.hasOwnProperty(\"avgDpuVotePeakBw\"))\n if (typeof message.avgDpuVotePeakBw !== \"number\")\n return \"avgDpuVotePeakBw: number expected\";\n if (message.avgDpuVoteRtBw != null && message.hasOwnProperty(\"avgDpuVoteRtBw\"))\n if (typeof message.avgDpuVoteRtBw !== \"number\")\n return \"avgDpuVoteRtBw: number expected\";\n return null;\n };\n\n /**\n * Creates a DpuVoteMetrics message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidHwcomposerMetrics.DpuVoteMetrics\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidHwcomposerMetrics.DpuVoteMetrics} DpuVoteMetrics\n */\n DpuVoteMetrics.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidHwcomposerMetrics.DpuVoteMetrics)\n return object;\n var message = new $root.perfetto.protos.AndroidHwcomposerMetrics.DpuVoteMetrics();\n if (object.tid != null)\n message.tid = object.tid >>> 0;\n if (object.avgDpuVoteClock != null)\n message.avgDpuVoteClock = Number(object.avgDpuVoteClock);\n if (object.avgDpuVoteAvgBw != null)\n message.avgDpuVoteAvgBw = Number(object.avgDpuVoteAvgBw);\n if (object.avgDpuVotePeakBw != null)\n message.avgDpuVotePeakBw = Number(object.avgDpuVotePeakBw);\n if (object.avgDpuVoteRtBw != null)\n message.avgDpuVoteRtBw = Number(object.avgDpuVoteRtBw);\n return message;\n };\n\n /**\n * Creates a plain object from a DpuVoteMetrics message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidHwcomposerMetrics.DpuVoteMetrics\n * @static\n * @param {perfetto.protos.AndroidHwcomposerMetrics.DpuVoteMetrics} message DpuVoteMetrics\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n DpuVoteMetrics.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.tid = 0;\n object.avgDpuVoteClock = 0;\n object.avgDpuVoteAvgBw = 0;\n object.avgDpuVotePeakBw = 0;\n object.avgDpuVoteRtBw = 0;\n }\n if (message.tid != null && message.hasOwnProperty(\"tid\"))\n object.tid = message.tid;\n if (message.avgDpuVoteClock != null && message.hasOwnProperty(\"avgDpuVoteClock\"))\n object.avgDpuVoteClock = options.json && !isFinite(message.avgDpuVoteClock) ? String(message.avgDpuVoteClock) : message.avgDpuVoteClock;\n if (message.avgDpuVoteAvgBw != null && message.hasOwnProperty(\"avgDpuVoteAvgBw\"))\n object.avgDpuVoteAvgBw = options.json && !isFinite(message.avgDpuVoteAvgBw) ? String(message.avgDpuVoteAvgBw) : message.avgDpuVoteAvgBw;\n if (message.avgDpuVotePeakBw != null && message.hasOwnProperty(\"avgDpuVotePeakBw\"))\n object.avgDpuVotePeakBw = options.json && !isFinite(message.avgDpuVotePeakBw) ? String(message.avgDpuVotePeakBw) : message.avgDpuVotePeakBw;\n if (message.avgDpuVoteRtBw != null && message.hasOwnProperty(\"avgDpuVoteRtBw\"))\n object.avgDpuVoteRtBw = options.json && !isFinite(message.avgDpuVoteRtBw) ? String(message.avgDpuVoteRtBw) : message.avgDpuVoteRtBw;\n return object;\n };\n\n /**\n * Converts this DpuVoteMetrics to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidHwcomposerMetrics.DpuVoteMetrics\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n DpuVoteMetrics.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return DpuVoteMetrics;\n })();\n\n return AndroidHwcomposerMetrics;\n })();\n\n protos.ProcessRenderInfo = (function() {\n\n /**\n * Properties of a ProcessRenderInfo.\n * @memberof perfetto.protos\n * @interface IProcessRenderInfo\n * @property {string|null} [processName] ProcessRenderInfo processName\n * @property {number|null} [rtCpuTimeMs] ProcessRenderInfo rtCpuTimeMs\n * @property {number|null} [drawFrameCount] ProcessRenderInfo drawFrameCount\n * @property {number|null} [drawFrameMax] ProcessRenderInfo drawFrameMax\n * @property {number|null} [drawFrameMin] ProcessRenderInfo drawFrameMin\n * @property {number|null} [drawFrameAvg] ProcessRenderInfo drawFrameAvg\n * @property {number|null} [flushCount] ProcessRenderInfo flushCount\n * @property {number|null} [flushMax] ProcessRenderInfo flushMax\n * @property {number|null} [flushMin] ProcessRenderInfo flushMin\n * @property {number|null} [flushAvg] ProcessRenderInfo flushAvg\n * @property {number|null} [prepareTreeCount] ProcessRenderInfo prepareTreeCount\n * @property {number|null} [prepareTreeMax] ProcessRenderInfo prepareTreeMax\n * @property {number|null} [prepareTreeMin] ProcessRenderInfo prepareTreeMin\n * @property {number|null} [prepareTreeAvg] ProcessRenderInfo prepareTreeAvg\n * @property {number|null} [gpuCompletionCount] ProcessRenderInfo gpuCompletionCount\n * @property {number|null} [gpuCompletionMax] ProcessRenderInfo gpuCompletionMax\n * @property {number|null} [gpuCompletionMin] ProcessRenderInfo gpuCompletionMin\n * @property {number|null} [gpuCompletionAvg] ProcessRenderInfo gpuCompletionAvg\n * @property {number|null} [uiRecordCount] ProcessRenderInfo uiRecordCount\n * @property {number|null} [uiRecordMax] ProcessRenderInfo uiRecordMax\n * @property {number|null} [uiRecordMin] ProcessRenderInfo uiRecordMin\n * @property {number|null} [uiRecordAvg] ProcessRenderInfo uiRecordAvg\n * @property {number|null} [shaderCompileCount] ProcessRenderInfo shaderCompileCount\n * @property {number|null} [shaderCompileTime] ProcessRenderInfo shaderCompileTime\n * @property {number|null} [shaderCompileAvg] ProcessRenderInfo shaderCompileAvg\n * @property {number|null} [cacheHitCount] ProcessRenderInfo cacheHitCount\n * @property {number|null} [cacheHitTime] ProcessRenderInfo cacheHitTime\n * @property {number|null} [cacheHitAvg] ProcessRenderInfo cacheHitAvg\n * @property {number|null} [cacheMissCount] ProcessRenderInfo cacheMissCount\n * @property {number|null} [cacheMissTime] ProcessRenderInfo cacheMissTime\n * @property {number|null} [cacheMissAvg] ProcessRenderInfo cacheMissAvg\n * @property {number|null} [graphicsCpuMemMax] ProcessRenderInfo graphicsCpuMemMax\n * @property {number|null} [graphicsCpuMemMin] ProcessRenderInfo graphicsCpuMemMin\n * @property {number|null} [graphicsCpuMemAvg] ProcessRenderInfo graphicsCpuMemAvg\n * @property {number|null} [graphicsGpuMemMax] ProcessRenderInfo graphicsGpuMemMax\n * @property {number|null} [graphicsGpuMemMin] ProcessRenderInfo graphicsGpuMemMin\n * @property {number|null} [graphicsGpuMemAvg] ProcessRenderInfo graphicsGpuMemAvg\n * @property {number|null} [textureMemMax] ProcessRenderInfo textureMemMax\n * @property {number|null} [textureMemMin] ProcessRenderInfo textureMemMin\n * @property {number|null} [textureMemAvg] ProcessRenderInfo textureMemAvg\n * @property {number|null} [allMemMax] ProcessRenderInfo allMemMax\n * @property {number|null} [allMemMin] ProcessRenderInfo allMemMin\n * @property {number|null} [allMemAvg] ProcessRenderInfo allMemAvg\n */\n\n /**\n * Constructs a new ProcessRenderInfo.\n * @memberof perfetto.protos\n * @classdesc Represents a ProcessRenderInfo.\n * @implements IProcessRenderInfo\n * @constructor\n * @param {perfetto.protos.IProcessRenderInfo=} [properties] Properties to set\n */\n function ProcessRenderInfo(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * ProcessRenderInfo processName.\n * @member {string} processName\n * @memberof perfetto.protos.ProcessRenderInfo\n * @instance\n */\n ProcessRenderInfo.prototype.processName = \"\";\n\n /**\n * ProcessRenderInfo rtCpuTimeMs.\n * @member {number} rtCpuTimeMs\n * @memberof perfetto.protos.ProcessRenderInfo\n * @instance\n */\n ProcessRenderInfo.prototype.rtCpuTimeMs = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * ProcessRenderInfo drawFrameCount.\n * @member {number} drawFrameCount\n * @memberof perfetto.protos.ProcessRenderInfo\n * @instance\n */\n ProcessRenderInfo.prototype.drawFrameCount = 0;\n\n /**\n * ProcessRenderInfo drawFrameMax.\n * @member {number} drawFrameMax\n * @memberof perfetto.protos.ProcessRenderInfo\n * @instance\n */\n ProcessRenderInfo.prototype.drawFrameMax = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * ProcessRenderInfo drawFrameMin.\n * @member {number} drawFrameMin\n * @memberof perfetto.protos.ProcessRenderInfo\n * @instance\n */\n ProcessRenderInfo.prototype.drawFrameMin = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * ProcessRenderInfo drawFrameAvg.\n * @member {number} drawFrameAvg\n * @memberof perfetto.protos.ProcessRenderInfo\n * @instance\n */\n ProcessRenderInfo.prototype.drawFrameAvg = 0;\n\n /**\n * ProcessRenderInfo flushCount.\n * @member {number} flushCount\n * @memberof perfetto.protos.ProcessRenderInfo\n * @instance\n */\n ProcessRenderInfo.prototype.flushCount = 0;\n\n /**\n * ProcessRenderInfo flushMax.\n * @member {number} flushMax\n * @memberof perfetto.protos.ProcessRenderInfo\n * @instance\n */\n ProcessRenderInfo.prototype.flushMax = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * ProcessRenderInfo flushMin.\n * @member {number} flushMin\n * @memberof perfetto.protos.ProcessRenderInfo\n * @instance\n */\n ProcessRenderInfo.prototype.flushMin = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * ProcessRenderInfo flushAvg.\n * @member {number} flushAvg\n * @memberof perfetto.protos.ProcessRenderInfo\n * @instance\n */\n ProcessRenderInfo.prototype.flushAvg = 0;\n\n /**\n * ProcessRenderInfo prepareTreeCount.\n * @member {number} prepareTreeCount\n * @memberof perfetto.protos.ProcessRenderInfo\n * @instance\n */\n ProcessRenderInfo.prototype.prepareTreeCount = 0;\n\n /**\n * ProcessRenderInfo prepareTreeMax.\n * @member {number} prepareTreeMax\n * @memberof perfetto.protos.ProcessRenderInfo\n * @instance\n */\n ProcessRenderInfo.prototype.prepareTreeMax = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * ProcessRenderInfo prepareTreeMin.\n * @member {number} prepareTreeMin\n * @memberof perfetto.protos.ProcessRenderInfo\n * @instance\n */\n ProcessRenderInfo.prototype.prepareTreeMin = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * ProcessRenderInfo prepareTreeAvg.\n * @member {number} prepareTreeAvg\n * @memberof perfetto.protos.ProcessRenderInfo\n * @instance\n */\n ProcessRenderInfo.prototype.prepareTreeAvg = 0;\n\n /**\n * ProcessRenderInfo gpuCompletionCount.\n * @member {number} gpuCompletionCount\n * @memberof perfetto.protos.ProcessRenderInfo\n * @instance\n */\n ProcessRenderInfo.prototype.gpuCompletionCount = 0;\n\n /**\n * ProcessRenderInfo gpuCompletionMax.\n * @member {number} gpuCompletionMax\n * @memberof perfetto.protos.ProcessRenderInfo\n * @instance\n */\n ProcessRenderInfo.prototype.gpuCompletionMax = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * ProcessRenderInfo gpuCompletionMin.\n * @member {number} gpuCompletionMin\n * @memberof perfetto.protos.ProcessRenderInfo\n * @instance\n */\n ProcessRenderInfo.prototype.gpuCompletionMin = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * ProcessRenderInfo gpuCompletionAvg.\n * @member {number} gpuCompletionAvg\n * @memberof perfetto.protos.ProcessRenderInfo\n * @instance\n */\n ProcessRenderInfo.prototype.gpuCompletionAvg = 0;\n\n /**\n * ProcessRenderInfo uiRecordCount.\n * @member {number} uiRecordCount\n * @memberof perfetto.protos.ProcessRenderInfo\n * @instance\n */\n ProcessRenderInfo.prototype.uiRecordCount = 0;\n\n /**\n * ProcessRenderInfo uiRecordMax.\n * @member {number} uiRecordMax\n * @memberof perfetto.protos.ProcessRenderInfo\n * @instance\n */\n ProcessRenderInfo.prototype.uiRecordMax = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * ProcessRenderInfo uiRecordMin.\n * @member {number} uiRecordMin\n * @memberof perfetto.protos.ProcessRenderInfo\n * @instance\n */\n ProcessRenderInfo.prototype.uiRecordMin = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * ProcessRenderInfo uiRecordAvg.\n * @member {number} uiRecordAvg\n * @memberof perfetto.protos.ProcessRenderInfo\n * @instance\n */\n ProcessRenderInfo.prototype.uiRecordAvg = 0;\n\n /**\n * ProcessRenderInfo shaderCompileCount.\n * @member {number} shaderCompileCount\n * @memberof perfetto.protos.ProcessRenderInfo\n * @instance\n */\n ProcessRenderInfo.prototype.shaderCompileCount = 0;\n\n /**\n * ProcessRenderInfo shaderCompileTime.\n * @member {number} shaderCompileTime\n * @memberof perfetto.protos.ProcessRenderInfo\n * @instance\n */\n ProcessRenderInfo.prototype.shaderCompileTime = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * ProcessRenderInfo shaderCompileAvg.\n * @member {number} shaderCompileAvg\n * @memberof perfetto.protos.ProcessRenderInfo\n * @instance\n */\n ProcessRenderInfo.prototype.shaderCompileAvg = 0;\n\n /**\n * ProcessRenderInfo cacheHitCount.\n * @member {number} cacheHitCount\n * @memberof perfetto.protos.ProcessRenderInfo\n * @instance\n */\n ProcessRenderInfo.prototype.cacheHitCount = 0;\n\n /**\n * ProcessRenderInfo cacheHitTime.\n * @member {number} cacheHitTime\n * @memberof perfetto.protos.ProcessRenderInfo\n * @instance\n */\n ProcessRenderInfo.prototype.cacheHitTime = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * ProcessRenderInfo cacheHitAvg.\n * @member {number} cacheHitAvg\n * @memberof perfetto.protos.ProcessRenderInfo\n * @instance\n */\n ProcessRenderInfo.prototype.cacheHitAvg = 0;\n\n /**\n * ProcessRenderInfo cacheMissCount.\n * @member {number} cacheMissCount\n * @memberof perfetto.protos.ProcessRenderInfo\n * @instance\n */\n ProcessRenderInfo.prototype.cacheMissCount = 0;\n\n /**\n * ProcessRenderInfo cacheMissTime.\n * @member {number} cacheMissTime\n * @memberof perfetto.protos.ProcessRenderInfo\n * @instance\n */\n ProcessRenderInfo.prototype.cacheMissTime = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * ProcessRenderInfo cacheMissAvg.\n * @member {number} cacheMissAvg\n * @memberof perfetto.protos.ProcessRenderInfo\n * @instance\n */\n ProcessRenderInfo.prototype.cacheMissAvg = 0;\n\n /**\n * ProcessRenderInfo graphicsCpuMemMax.\n * @member {number} graphicsCpuMemMax\n * @memberof perfetto.protos.ProcessRenderInfo\n * @instance\n */\n ProcessRenderInfo.prototype.graphicsCpuMemMax = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * ProcessRenderInfo graphicsCpuMemMin.\n * @member {number} graphicsCpuMemMin\n * @memberof perfetto.protos.ProcessRenderInfo\n * @instance\n */\n ProcessRenderInfo.prototype.graphicsCpuMemMin = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * ProcessRenderInfo graphicsCpuMemAvg.\n * @member {number} graphicsCpuMemAvg\n * @memberof perfetto.protos.ProcessRenderInfo\n * @instance\n */\n ProcessRenderInfo.prototype.graphicsCpuMemAvg = 0;\n\n /**\n * ProcessRenderInfo graphicsGpuMemMax.\n * @member {number} graphicsGpuMemMax\n * @memberof perfetto.protos.ProcessRenderInfo\n * @instance\n */\n ProcessRenderInfo.prototype.graphicsGpuMemMax = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * ProcessRenderInfo graphicsGpuMemMin.\n * @member {number} graphicsGpuMemMin\n * @memberof perfetto.protos.ProcessRenderInfo\n * @instance\n */\n ProcessRenderInfo.prototype.graphicsGpuMemMin = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * ProcessRenderInfo graphicsGpuMemAvg.\n * @member {number} graphicsGpuMemAvg\n * @memberof perfetto.protos.ProcessRenderInfo\n * @instance\n */\n ProcessRenderInfo.prototype.graphicsGpuMemAvg = 0;\n\n /**\n * ProcessRenderInfo textureMemMax.\n * @member {number} textureMemMax\n * @memberof perfetto.protos.ProcessRenderInfo\n * @instance\n */\n ProcessRenderInfo.prototype.textureMemMax = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * ProcessRenderInfo textureMemMin.\n * @member {number} textureMemMin\n * @memberof perfetto.protos.ProcessRenderInfo\n * @instance\n */\n ProcessRenderInfo.prototype.textureMemMin = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * ProcessRenderInfo textureMemAvg.\n * @member {number} textureMemAvg\n * @memberof perfetto.protos.ProcessRenderInfo\n * @instance\n */\n ProcessRenderInfo.prototype.textureMemAvg = 0;\n\n /**\n * ProcessRenderInfo allMemMax.\n * @member {number} allMemMax\n * @memberof perfetto.protos.ProcessRenderInfo\n * @instance\n */\n ProcessRenderInfo.prototype.allMemMax = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * ProcessRenderInfo allMemMin.\n * @member {number} allMemMin\n * @memberof perfetto.protos.ProcessRenderInfo\n * @instance\n */\n ProcessRenderInfo.prototype.allMemMin = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * ProcessRenderInfo allMemAvg.\n * @member {number} allMemAvg\n * @memberof perfetto.protos.ProcessRenderInfo\n * @instance\n */\n ProcessRenderInfo.prototype.allMemAvg = 0;\n\n /**\n * Creates a new ProcessRenderInfo instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.ProcessRenderInfo\n * @static\n * @param {perfetto.protos.IProcessRenderInfo=} [properties] Properties to set\n * @returns {perfetto.protos.ProcessRenderInfo} ProcessRenderInfo instance\n */\n ProcessRenderInfo.create = function create(properties) {\n return new ProcessRenderInfo(properties);\n };\n\n /**\n * Encodes the specified ProcessRenderInfo message. Does not implicitly {@link perfetto.protos.ProcessRenderInfo.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.ProcessRenderInfo\n * @static\n * @param {perfetto.protos.IProcessRenderInfo} message ProcessRenderInfo message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ProcessRenderInfo.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.processName != null && Object.hasOwnProperty.call(message, \"processName\"))\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.processName);\n if (message.rtCpuTimeMs != null && Object.hasOwnProperty.call(message, \"rtCpuTimeMs\"))\n writer.uint32(/* id 2, wireType 0 =*/16).int64(message.rtCpuTimeMs);\n if (message.drawFrameCount != null && Object.hasOwnProperty.call(message, \"drawFrameCount\"))\n writer.uint32(/* id 3, wireType 0 =*/24).uint32(message.drawFrameCount);\n if (message.drawFrameMax != null && Object.hasOwnProperty.call(message, \"drawFrameMax\"))\n writer.uint32(/* id 4, wireType 0 =*/32).int64(message.drawFrameMax);\n if (message.drawFrameMin != null && Object.hasOwnProperty.call(message, \"drawFrameMin\"))\n writer.uint32(/* id 5, wireType 0 =*/40).int64(message.drawFrameMin);\n if (message.drawFrameAvg != null && Object.hasOwnProperty.call(message, \"drawFrameAvg\"))\n writer.uint32(/* id 6, wireType 1 =*/49).double(message.drawFrameAvg);\n if (message.flushCount != null && Object.hasOwnProperty.call(message, \"flushCount\"))\n writer.uint32(/* id 7, wireType 0 =*/56).uint32(message.flushCount);\n if (message.flushMax != null && Object.hasOwnProperty.call(message, \"flushMax\"))\n writer.uint32(/* id 8, wireType 0 =*/64).int64(message.flushMax);\n if (message.flushMin != null && Object.hasOwnProperty.call(message, \"flushMin\"))\n writer.uint32(/* id 9, wireType 0 =*/72).int64(message.flushMin);\n if (message.flushAvg != null && Object.hasOwnProperty.call(message, \"flushAvg\"))\n writer.uint32(/* id 10, wireType 1 =*/81).double(message.flushAvg);\n if (message.prepareTreeCount != null && Object.hasOwnProperty.call(message, \"prepareTreeCount\"))\n writer.uint32(/* id 11, wireType 0 =*/88).uint32(message.prepareTreeCount);\n if (message.prepareTreeMax != null && Object.hasOwnProperty.call(message, \"prepareTreeMax\"))\n writer.uint32(/* id 12, wireType 0 =*/96).int64(message.prepareTreeMax);\n if (message.prepareTreeMin != null && Object.hasOwnProperty.call(message, \"prepareTreeMin\"))\n writer.uint32(/* id 13, wireType 0 =*/104).int64(message.prepareTreeMin);\n if (message.prepareTreeAvg != null && Object.hasOwnProperty.call(message, \"prepareTreeAvg\"))\n writer.uint32(/* id 14, wireType 1 =*/113).double(message.prepareTreeAvg);\n if (message.gpuCompletionCount != null && Object.hasOwnProperty.call(message, \"gpuCompletionCount\"))\n writer.uint32(/* id 15, wireType 0 =*/120).uint32(message.gpuCompletionCount);\n if (message.gpuCompletionMax != null && Object.hasOwnProperty.call(message, \"gpuCompletionMax\"))\n writer.uint32(/* id 16, wireType 0 =*/128).int64(message.gpuCompletionMax);\n if (message.gpuCompletionMin != null && Object.hasOwnProperty.call(message, \"gpuCompletionMin\"))\n writer.uint32(/* id 17, wireType 0 =*/136).int64(message.gpuCompletionMin);\n if (message.gpuCompletionAvg != null && Object.hasOwnProperty.call(message, \"gpuCompletionAvg\"))\n writer.uint32(/* id 18, wireType 1 =*/145).double(message.gpuCompletionAvg);\n if (message.uiRecordCount != null && Object.hasOwnProperty.call(message, \"uiRecordCount\"))\n writer.uint32(/* id 19, wireType 0 =*/152).uint32(message.uiRecordCount);\n if (message.uiRecordMax != null && Object.hasOwnProperty.call(message, \"uiRecordMax\"))\n writer.uint32(/* id 20, wireType 0 =*/160).int64(message.uiRecordMax);\n if (message.uiRecordMin != null && Object.hasOwnProperty.call(message, \"uiRecordMin\"))\n writer.uint32(/* id 21, wireType 0 =*/168).int64(message.uiRecordMin);\n if (message.uiRecordAvg != null && Object.hasOwnProperty.call(message, \"uiRecordAvg\"))\n writer.uint32(/* id 22, wireType 1 =*/177).double(message.uiRecordAvg);\n if (message.shaderCompileCount != null && Object.hasOwnProperty.call(message, \"shaderCompileCount\"))\n writer.uint32(/* id 23, wireType 0 =*/184).uint32(message.shaderCompileCount);\n if (message.shaderCompileTime != null && Object.hasOwnProperty.call(message, \"shaderCompileTime\"))\n writer.uint32(/* id 24, wireType 0 =*/192).int64(message.shaderCompileTime);\n if (message.shaderCompileAvg != null && Object.hasOwnProperty.call(message, \"shaderCompileAvg\"))\n writer.uint32(/* id 25, wireType 1 =*/201).double(message.shaderCompileAvg);\n if (message.cacheHitCount != null && Object.hasOwnProperty.call(message, \"cacheHitCount\"))\n writer.uint32(/* id 26, wireType 0 =*/208).uint32(message.cacheHitCount);\n if (message.cacheHitTime != null && Object.hasOwnProperty.call(message, \"cacheHitTime\"))\n writer.uint32(/* id 27, wireType 0 =*/216).int64(message.cacheHitTime);\n if (message.cacheHitAvg != null && Object.hasOwnProperty.call(message, \"cacheHitAvg\"))\n writer.uint32(/* id 28, wireType 1 =*/225).double(message.cacheHitAvg);\n if (message.cacheMissCount != null && Object.hasOwnProperty.call(message, \"cacheMissCount\"))\n writer.uint32(/* id 29, wireType 0 =*/232).uint32(message.cacheMissCount);\n if (message.cacheMissTime != null && Object.hasOwnProperty.call(message, \"cacheMissTime\"))\n writer.uint32(/* id 30, wireType 0 =*/240).int64(message.cacheMissTime);\n if (message.cacheMissAvg != null && Object.hasOwnProperty.call(message, \"cacheMissAvg\"))\n writer.uint32(/* id 31, wireType 1 =*/249).double(message.cacheMissAvg);\n if (message.graphicsCpuMemMax != null && Object.hasOwnProperty.call(message, \"graphicsCpuMemMax\"))\n writer.uint32(/* id 32, wireType 0 =*/256).int64(message.graphicsCpuMemMax);\n if (message.graphicsCpuMemMin != null && Object.hasOwnProperty.call(message, \"graphicsCpuMemMin\"))\n writer.uint32(/* id 33, wireType 0 =*/264).int64(message.graphicsCpuMemMin);\n if (message.graphicsCpuMemAvg != null && Object.hasOwnProperty.call(message, \"graphicsCpuMemAvg\"))\n writer.uint32(/* id 34, wireType 1 =*/273).double(message.graphicsCpuMemAvg);\n if (message.graphicsGpuMemMax != null && Object.hasOwnProperty.call(message, \"graphicsGpuMemMax\"))\n writer.uint32(/* id 35, wireType 0 =*/280).int64(message.graphicsGpuMemMax);\n if (message.graphicsGpuMemMin != null && Object.hasOwnProperty.call(message, \"graphicsGpuMemMin\"))\n writer.uint32(/* id 36, wireType 0 =*/288).int64(message.graphicsGpuMemMin);\n if (message.graphicsGpuMemAvg != null && Object.hasOwnProperty.call(message, \"graphicsGpuMemAvg\"))\n writer.uint32(/* id 37, wireType 1 =*/297).double(message.graphicsGpuMemAvg);\n if (message.textureMemMax != null && Object.hasOwnProperty.call(message, \"textureMemMax\"))\n writer.uint32(/* id 38, wireType 0 =*/304).int64(message.textureMemMax);\n if (message.textureMemMin != null && Object.hasOwnProperty.call(message, \"textureMemMin\"))\n writer.uint32(/* id 39, wireType 0 =*/312).int64(message.textureMemMin);\n if (message.textureMemAvg != null && Object.hasOwnProperty.call(message, \"textureMemAvg\"))\n writer.uint32(/* id 40, wireType 1 =*/321).double(message.textureMemAvg);\n if (message.allMemMax != null && Object.hasOwnProperty.call(message, \"allMemMax\"))\n writer.uint32(/* id 41, wireType 0 =*/328).int64(message.allMemMax);\n if (message.allMemMin != null && Object.hasOwnProperty.call(message, \"allMemMin\"))\n writer.uint32(/* id 42, wireType 0 =*/336).int64(message.allMemMin);\n if (message.allMemAvg != null && Object.hasOwnProperty.call(message, \"allMemAvg\"))\n writer.uint32(/* id 43, wireType 1 =*/345).double(message.allMemAvg);\n return writer;\n };\n\n /**\n * Encodes the specified ProcessRenderInfo message, length delimited. Does not implicitly {@link perfetto.protos.ProcessRenderInfo.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.ProcessRenderInfo\n * @static\n * @param {perfetto.protos.IProcessRenderInfo} message ProcessRenderInfo message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ProcessRenderInfo.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a ProcessRenderInfo message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.ProcessRenderInfo\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.ProcessRenderInfo} ProcessRenderInfo\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ProcessRenderInfo.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.ProcessRenderInfo();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.processName = reader.string();\n break;\n case 2:\n message.rtCpuTimeMs = reader.int64();\n break;\n case 3:\n message.drawFrameCount = reader.uint32();\n break;\n case 4:\n message.drawFrameMax = reader.int64();\n break;\n case 5:\n message.drawFrameMin = reader.int64();\n break;\n case 6:\n message.drawFrameAvg = reader.double();\n break;\n case 7:\n message.flushCount = reader.uint32();\n break;\n case 8:\n message.flushMax = reader.int64();\n break;\n case 9:\n message.flushMin = reader.int64();\n break;\n case 10:\n message.flushAvg = reader.double();\n break;\n case 11:\n message.prepareTreeCount = reader.uint32();\n break;\n case 12:\n message.prepareTreeMax = reader.int64();\n break;\n case 13:\n message.prepareTreeMin = reader.int64();\n break;\n case 14:\n message.prepareTreeAvg = reader.double();\n break;\n case 15:\n message.gpuCompletionCount = reader.uint32();\n break;\n case 16:\n message.gpuCompletionMax = reader.int64();\n break;\n case 17:\n message.gpuCompletionMin = reader.int64();\n break;\n case 18:\n message.gpuCompletionAvg = reader.double();\n break;\n case 19:\n message.uiRecordCount = reader.uint32();\n break;\n case 20:\n message.uiRecordMax = reader.int64();\n break;\n case 21:\n message.uiRecordMin = reader.int64();\n break;\n case 22:\n message.uiRecordAvg = reader.double();\n break;\n case 23:\n message.shaderCompileCount = reader.uint32();\n break;\n case 24:\n message.shaderCompileTime = reader.int64();\n break;\n case 25:\n message.shaderCompileAvg = reader.double();\n break;\n case 26:\n message.cacheHitCount = reader.uint32();\n break;\n case 27:\n message.cacheHitTime = reader.int64();\n break;\n case 28:\n message.cacheHitAvg = reader.double();\n break;\n case 29:\n message.cacheMissCount = reader.uint32();\n break;\n case 30:\n message.cacheMissTime = reader.int64();\n break;\n case 31:\n message.cacheMissAvg = reader.double();\n break;\n case 32:\n message.graphicsCpuMemMax = reader.int64();\n break;\n case 33:\n message.graphicsCpuMemMin = reader.int64();\n break;\n case 34:\n message.graphicsCpuMemAvg = reader.double();\n break;\n case 35:\n message.graphicsGpuMemMax = reader.int64();\n break;\n case 36:\n message.graphicsGpuMemMin = reader.int64();\n break;\n case 37:\n message.graphicsGpuMemAvg = reader.double();\n break;\n case 38:\n message.textureMemMax = reader.int64();\n break;\n case 39:\n message.textureMemMin = reader.int64();\n break;\n case 40:\n message.textureMemAvg = reader.double();\n break;\n case 41:\n message.allMemMax = reader.int64();\n break;\n case 42:\n message.allMemMin = reader.int64();\n break;\n case 43:\n message.allMemAvg = reader.double();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a ProcessRenderInfo message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.ProcessRenderInfo\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.ProcessRenderInfo} ProcessRenderInfo\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ProcessRenderInfo.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a ProcessRenderInfo message.\n * @function verify\n * @memberof perfetto.protos.ProcessRenderInfo\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n ProcessRenderInfo.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.processName != null && message.hasOwnProperty(\"processName\"))\n if (!$util.isString(message.processName))\n return \"processName: string expected\";\n if (message.rtCpuTimeMs != null && message.hasOwnProperty(\"rtCpuTimeMs\"))\n if (!$util.isInteger(message.rtCpuTimeMs) && !(message.rtCpuTimeMs && $util.isInteger(message.rtCpuTimeMs.low) && $util.isInteger(message.rtCpuTimeMs.high)))\n return \"rtCpuTimeMs: integer|Long expected\";\n if (message.drawFrameCount != null && message.hasOwnProperty(\"drawFrameCount\"))\n if (!$util.isInteger(message.drawFrameCount))\n return \"drawFrameCount: integer expected\";\n if (message.drawFrameMax != null && message.hasOwnProperty(\"drawFrameMax\"))\n if (!$util.isInteger(message.drawFrameMax) && !(message.drawFrameMax && $util.isInteger(message.drawFrameMax.low) && $util.isInteger(message.drawFrameMax.high)))\n return \"drawFrameMax: integer|Long expected\";\n if (message.drawFrameMin != null && message.hasOwnProperty(\"drawFrameMin\"))\n if (!$util.isInteger(message.drawFrameMin) && !(message.drawFrameMin && $util.isInteger(message.drawFrameMin.low) && $util.isInteger(message.drawFrameMin.high)))\n return \"drawFrameMin: integer|Long expected\";\n if (message.drawFrameAvg != null && message.hasOwnProperty(\"drawFrameAvg\"))\n if (typeof message.drawFrameAvg !== \"number\")\n return \"drawFrameAvg: number expected\";\n if (message.flushCount != null && message.hasOwnProperty(\"flushCount\"))\n if (!$util.isInteger(message.flushCount))\n return \"flushCount: integer expected\";\n if (message.flushMax != null && message.hasOwnProperty(\"flushMax\"))\n if (!$util.isInteger(message.flushMax) && !(message.flushMax && $util.isInteger(message.flushMax.low) && $util.isInteger(message.flushMax.high)))\n return \"flushMax: integer|Long expected\";\n if (message.flushMin != null && message.hasOwnProperty(\"flushMin\"))\n if (!$util.isInteger(message.flushMin) && !(message.flushMin && $util.isInteger(message.flushMin.low) && $util.isInteger(message.flushMin.high)))\n return \"flushMin: integer|Long expected\";\n if (message.flushAvg != null && message.hasOwnProperty(\"flushAvg\"))\n if (typeof message.flushAvg !== \"number\")\n return \"flushAvg: number expected\";\n if (message.prepareTreeCount != null && message.hasOwnProperty(\"prepareTreeCount\"))\n if (!$util.isInteger(message.prepareTreeCount))\n return \"prepareTreeCount: integer expected\";\n if (message.prepareTreeMax != null && message.hasOwnProperty(\"prepareTreeMax\"))\n if (!$util.isInteger(message.prepareTreeMax) && !(message.prepareTreeMax && $util.isInteger(message.prepareTreeMax.low) && $util.isInteger(message.prepareTreeMax.high)))\n return \"prepareTreeMax: integer|Long expected\";\n if (message.prepareTreeMin != null && message.hasOwnProperty(\"prepareTreeMin\"))\n if (!$util.isInteger(message.prepareTreeMin) && !(message.prepareTreeMin && $util.isInteger(message.prepareTreeMin.low) && $util.isInteger(message.prepareTreeMin.high)))\n return \"prepareTreeMin: integer|Long expected\";\n if (message.prepareTreeAvg != null && message.hasOwnProperty(\"prepareTreeAvg\"))\n if (typeof message.prepareTreeAvg !== \"number\")\n return \"prepareTreeAvg: number expected\";\n if (message.gpuCompletionCount != null && message.hasOwnProperty(\"gpuCompletionCount\"))\n if (!$util.isInteger(message.gpuCompletionCount))\n return \"gpuCompletionCount: integer expected\";\n if (message.gpuCompletionMax != null && message.hasOwnProperty(\"gpuCompletionMax\"))\n if (!$util.isInteger(message.gpuCompletionMax) && !(message.gpuCompletionMax && $util.isInteger(message.gpuCompletionMax.low) && $util.isInteger(message.gpuCompletionMax.high)))\n return \"gpuCompletionMax: integer|Long expected\";\n if (message.gpuCompletionMin != null && message.hasOwnProperty(\"gpuCompletionMin\"))\n if (!$util.isInteger(message.gpuCompletionMin) && !(message.gpuCompletionMin && $util.isInteger(message.gpuCompletionMin.low) && $util.isInteger(message.gpuCompletionMin.high)))\n return \"gpuCompletionMin: integer|Long expected\";\n if (message.gpuCompletionAvg != null && message.hasOwnProperty(\"gpuCompletionAvg\"))\n if (typeof message.gpuCompletionAvg !== \"number\")\n return \"gpuCompletionAvg: number expected\";\n if (message.uiRecordCount != null && message.hasOwnProperty(\"uiRecordCount\"))\n if (!$util.isInteger(message.uiRecordCount))\n return \"uiRecordCount: integer expected\";\n if (message.uiRecordMax != null && message.hasOwnProperty(\"uiRecordMax\"))\n if (!$util.isInteger(message.uiRecordMax) && !(message.uiRecordMax && $util.isInteger(message.uiRecordMax.low) && $util.isInteger(message.uiRecordMax.high)))\n return \"uiRecordMax: integer|Long expected\";\n if (message.uiRecordMin != null && message.hasOwnProperty(\"uiRecordMin\"))\n if (!$util.isInteger(message.uiRecordMin) && !(message.uiRecordMin && $util.isInteger(message.uiRecordMin.low) && $util.isInteger(message.uiRecordMin.high)))\n return \"uiRecordMin: integer|Long expected\";\n if (message.uiRecordAvg != null && message.hasOwnProperty(\"uiRecordAvg\"))\n if (typeof message.uiRecordAvg !== \"number\")\n return \"uiRecordAvg: number expected\";\n if (message.shaderCompileCount != null && message.hasOwnProperty(\"shaderCompileCount\"))\n if (!$util.isInteger(message.shaderCompileCount))\n return \"shaderCompileCount: integer expected\";\n if (message.shaderCompileTime != null && message.hasOwnProperty(\"shaderCompileTime\"))\n if (!$util.isInteger(message.shaderCompileTime) && !(message.shaderCompileTime && $util.isInteger(message.shaderCompileTime.low) && $util.isInteger(message.shaderCompileTime.high)))\n return \"shaderCompileTime: integer|Long expected\";\n if (message.shaderCompileAvg != null && message.hasOwnProperty(\"shaderCompileAvg\"))\n if (typeof message.shaderCompileAvg !== \"number\")\n return \"shaderCompileAvg: number expected\";\n if (message.cacheHitCount != null && message.hasOwnProperty(\"cacheHitCount\"))\n if (!$util.isInteger(message.cacheHitCount))\n return \"cacheHitCount: integer expected\";\n if (message.cacheHitTime != null && message.hasOwnProperty(\"cacheHitTime\"))\n if (!$util.isInteger(message.cacheHitTime) && !(message.cacheHitTime && $util.isInteger(message.cacheHitTime.low) && $util.isInteger(message.cacheHitTime.high)))\n return \"cacheHitTime: integer|Long expected\";\n if (message.cacheHitAvg != null && message.hasOwnProperty(\"cacheHitAvg\"))\n if (typeof message.cacheHitAvg !== \"number\")\n return \"cacheHitAvg: number expected\";\n if (message.cacheMissCount != null && message.hasOwnProperty(\"cacheMissCount\"))\n if (!$util.isInteger(message.cacheMissCount))\n return \"cacheMissCount: integer expected\";\n if (message.cacheMissTime != null && message.hasOwnProperty(\"cacheMissTime\"))\n if (!$util.isInteger(message.cacheMissTime) && !(message.cacheMissTime && $util.isInteger(message.cacheMissTime.low) && $util.isInteger(message.cacheMissTime.high)))\n return \"cacheMissTime: integer|Long expected\";\n if (message.cacheMissAvg != null && message.hasOwnProperty(\"cacheMissAvg\"))\n if (typeof message.cacheMissAvg !== \"number\")\n return \"cacheMissAvg: number expected\";\n if (message.graphicsCpuMemMax != null && message.hasOwnProperty(\"graphicsCpuMemMax\"))\n if (!$util.isInteger(message.graphicsCpuMemMax) && !(message.graphicsCpuMemMax && $util.isInteger(message.graphicsCpuMemMax.low) && $util.isInteger(message.graphicsCpuMemMax.high)))\n return \"graphicsCpuMemMax: integer|Long expected\";\n if (message.graphicsCpuMemMin != null && message.hasOwnProperty(\"graphicsCpuMemMin\"))\n if (!$util.isInteger(message.graphicsCpuMemMin) && !(message.graphicsCpuMemMin && $util.isInteger(message.graphicsCpuMemMin.low) && $util.isInteger(message.graphicsCpuMemMin.high)))\n return \"graphicsCpuMemMin: integer|Long expected\";\n if (message.graphicsCpuMemAvg != null && message.hasOwnProperty(\"graphicsCpuMemAvg\"))\n if (typeof message.graphicsCpuMemAvg !== \"number\")\n return \"graphicsCpuMemAvg: number expected\";\n if (message.graphicsGpuMemMax != null && message.hasOwnProperty(\"graphicsGpuMemMax\"))\n if (!$util.isInteger(message.graphicsGpuMemMax) && !(message.graphicsGpuMemMax && $util.isInteger(message.graphicsGpuMemMax.low) && $util.isInteger(message.graphicsGpuMemMax.high)))\n return \"graphicsGpuMemMax: integer|Long expected\";\n if (message.graphicsGpuMemMin != null && message.hasOwnProperty(\"graphicsGpuMemMin\"))\n if (!$util.isInteger(message.graphicsGpuMemMin) && !(message.graphicsGpuMemMin && $util.isInteger(message.graphicsGpuMemMin.low) && $util.isInteger(message.graphicsGpuMemMin.high)))\n return \"graphicsGpuMemMin: integer|Long expected\";\n if (message.graphicsGpuMemAvg != null && message.hasOwnProperty(\"graphicsGpuMemAvg\"))\n if (typeof message.graphicsGpuMemAvg !== \"number\")\n return \"graphicsGpuMemAvg: number expected\";\n if (message.textureMemMax != null && message.hasOwnProperty(\"textureMemMax\"))\n if (!$util.isInteger(message.textureMemMax) && !(message.textureMemMax && $util.isInteger(message.textureMemMax.low) && $util.isInteger(message.textureMemMax.high)))\n return \"textureMemMax: integer|Long expected\";\n if (message.textureMemMin != null && message.hasOwnProperty(\"textureMemMin\"))\n if (!$util.isInteger(message.textureMemMin) && !(message.textureMemMin && $util.isInteger(message.textureMemMin.low) && $util.isInteger(message.textureMemMin.high)))\n return \"textureMemMin: integer|Long expected\";\n if (message.textureMemAvg != null && message.hasOwnProperty(\"textureMemAvg\"))\n if (typeof message.textureMemAvg !== \"number\")\n return \"textureMemAvg: number expected\";\n if (message.allMemMax != null && message.hasOwnProperty(\"allMemMax\"))\n if (!$util.isInteger(message.allMemMax) && !(message.allMemMax && $util.isInteger(message.allMemMax.low) && $util.isInteger(message.allMemMax.high)))\n return \"allMemMax: integer|Long expected\";\n if (message.allMemMin != null && message.hasOwnProperty(\"allMemMin\"))\n if (!$util.isInteger(message.allMemMin) && !(message.allMemMin && $util.isInteger(message.allMemMin.low) && $util.isInteger(message.allMemMin.high)))\n return \"allMemMin: integer|Long expected\";\n if (message.allMemAvg != null && message.hasOwnProperty(\"allMemAvg\"))\n if (typeof message.allMemAvg !== \"number\")\n return \"allMemAvg: number expected\";\n return null;\n };\n\n /**\n * Creates a ProcessRenderInfo message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.ProcessRenderInfo\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.ProcessRenderInfo} ProcessRenderInfo\n */\n ProcessRenderInfo.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.ProcessRenderInfo)\n return object;\n var message = new $root.perfetto.protos.ProcessRenderInfo();\n if (object.processName != null)\n message.processName = String(object.processName);\n if (object.rtCpuTimeMs != null)\n if ($util.Long)\n (message.rtCpuTimeMs = $util.Long.fromValue(object.rtCpuTimeMs)).unsigned = false;\n else if (typeof object.rtCpuTimeMs === \"string\")\n message.rtCpuTimeMs = parseInt(object.rtCpuTimeMs, 10);\n else if (typeof object.rtCpuTimeMs === \"number\")\n message.rtCpuTimeMs = object.rtCpuTimeMs;\n else if (typeof object.rtCpuTimeMs === \"object\")\n message.rtCpuTimeMs = new $util.LongBits(object.rtCpuTimeMs.low >>> 0, object.rtCpuTimeMs.high >>> 0).toNumber();\n if (object.drawFrameCount != null)\n message.drawFrameCount = object.drawFrameCount >>> 0;\n if (object.drawFrameMax != null)\n if ($util.Long)\n (message.drawFrameMax = $util.Long.fromValue(object.drawFrameMax)).unsigned = false;\n else if (typeof object.drawFrameMax === \"string\")\n message.drawFrameMax = parseInt(object.drawFrameMax, 10);\n else if (typeof object.drawFrameMax === \"number\")\n message.drawFrameMax = object.drawFrameMax;\n else if (typeof object.drawFrameMax === \"object\")\n message.drawFrameMax = new $util.LongBits(object.drawFrameMax.low >>> 0, object.drawFrameMax.high >>> 0).toNumber();\n if (object.drawFrameMin != null)\n if ($util.Long)\n (message.drawFrameMin = $util.Long.fromValue(object.drawFrameMin)).unsigned = false;\n else if (typeof object.drawFrameMin === \"string\")\n message.drawFrameMin = parseInt(object.drawFrameMin, 10);\n else if (typeof object.drawFrameMin === \"number\")\n message.drawFrameMin = object.drawFrameMin;\n else if (typeof object.drawFrameMin === \"object\")\n message.drawFrameMin = new $util.LongBits(object.drawFrameMin.low >>> 0, object.drawFrameMin.high >>> 0).toNumber();\n if (object.drawFrameAvg != null)\n message.drawFrameAvg = Number(object.drawFrameAvg);\n if (object.flushCount != null)\n message.flushCount = object.flushCount >>> 0;\n if (object.flushMax != null)\n if ($util.Long)\n (message.flushMax = $util.Long.fromValue(object.flushMax)).unsigned = false;\n else if (typeof object.flushMax === \"string\")\n message.flushMax = parseInt(object.flushMax, 10);\n else if (typeof object.flushMax === \"number\")\n message.flushMax = object.flushMax;\n else if (typeof object.flushMax === \"object\")\n message.flushMax = new $util.LongBits(object.flushMax.low >>> 0, object.flushMax.high >>> 0).toNumber();\n if (object.flushMin != null)\n if ($util.Long)\n (message.flushMin = $util.Long.fromValue(object.flushMin)).unsigned = false;\n else if (typeof object.flushMin === \"string\")\n message.flushMin = parseInt(object.flushMin, 10);\n else if (typeof object.flushMin === \"number\")\n message.flushMin = object.flushMin;\n else if (typeof object.flushMin === \"object\")\n message.flushMin = new $util.LongBits(object.flushMin.low >>> 0, object.flushMin.high >>> 0).toNumber();\n if (object.flushAvg != null)\n message.flushAvg = Number(object.flushAvg);\n if (object.prepareTreeCount != null)\n message.prepareTreeCount = object.prepareTreeCount >>> 0;\n if (object.prepareTreeMax != null)\n if ($util.Long)\n (message.prepareTreeMax = $util.Long.fromValue(object.prepareTreeMax)).unsigned = false;\n else if (typeof object.prepareTreeMax === \"string\")\n message.prepareTreeMax = parseInt(object.prepareTreeMax, 10);\n else if (typeof object.prepareTreeMax === \"number\")\n message.prepareTreeMax = object.prepareTreeMax;\n else if (typeof object.prepareTreeMax === \"object\")\n message.prepareTreeMax = new $util.LongBits(object.prepareTreeMax.low >>> 0, object.prepareTreeMax.high >>> 0).toNumber();\n if (object.prepareTreeMin != null)\n if ($util.Long)\n (message.prepareTreeMin = $util.Long.fromValue(object.prepareTreeMin)).unsigned = false;\n else if (typeof object.prepareTreeMin === \"string\")\n message.prepareTreeMin = parseInt(object.prepareTreeMin, 10);\n else if (typeof object.prepareTreeMin === \"number\")\n message.prepareTreeMin = object.prepareTreeMin;\n else if (typeof object.prepareTreeMin === \"object\")\n message.prepareTreeMin = new $util.LongBits(object.prepareTreeMin.low >>> 0, object.prepareTreeMin.high >>> 0).toNumber();\n if (object.prepareTreeAvg != null)\n message.prepareTreeAvg = Number(object.prepareTreeAvg);\n if (object.gpuCompletionCount != null)\n message.gpuCompletionCount = object.gpuCompletionCount >>> 0;\n if (object.gpuCompletionMax != null)\n if ($util.Long)\n (message.gpuCompletionMax = $util.Long.fromValue(object.gpuCompletionMax)).unsigned = false;\n else if (typeof object.gpuCompletionMax === \"string\")\n message.gpuCompletionMax = parseInt(object.gpuCompletionMax, 10);\n else if (typeof object.gpuCompletionMax === \"number\")\n message.gpuCompletionMax = object.gpuCompletionMax;\n else if (typeof object.gpuCompletionMax === \"object\")\n message.gpuCompletionMax = new $util.LongBits(object.gpuCompletionMax.low >>> 0, object.gpuCompletionMax.high >>> 0).toNumber();\n if (object.gpuCompletionMin != null)\n if ($util.Long)\n (message.gpuCompletionMin = $util.Long.fromValue(object.gpuCompletionMin)).unsigned = false;\n else if (typeof object.gpuCompletionMin === \"string\")\n message.gpuCompletionMin = parseInt(object.gpuCompletionMin, 10);\n else if (typeof object.gpuCompletionMin === \"number\")\n message.gpuCompletionMin = object.gpuCompletionMin;\n else if (typeof object.gpuCompletionMin === \"object\")\n message.gpuCompletionMin = new $util.LongBits(object.gpuCompletionMin.low >>> 0, object.gpuCompletionMin.high >>> 0).toNumber();\n if (object.gpuCompletionAvg != null)\n message.gpuCompletionAvg = Number(object.gpuCompletionAvg);\n if (object.uiRecordCount != null)\n message.uiRecordCount = object.uiRecordCount >>> 0;\n if (object.uiRecordMax != null)\n if ($util.Long)\n (message.uiRecordMax = $util.Long.fromValue(object.uiRecordMax)).unsigned = false;\n else if (typeof object.uiRecordMax === \"string\")\n message.uiRecordMax = parseInt(object.uiRecordMax, 10);\n else if (typeof object.uiRecordMax === \"number\")\n message.uiRecordMax = object.uiRecordMax;\n else if (typeof object.uiRecordMax === \"object\")\n message.uiRecordMax = new $util.LongBits(object.uiRecordMax.low >>> 0, object.uiRecordMax.high >>> 0).toNumber();\n if (object.uiRecordMin != null)\n if ($util.Long)\n (message.uiRecordMin = $util.Long.fromValue(object.uiRecordMin)).unsigned = false;\n else if (typeof object.uiRecordMin === \"string\")\n message.uiRecordMin = parseInt(object.uiRecordMin, 10);\n else if (typeof object.uiRecordMin === \"number\")\n message.uiRecordMin = object.uiRecordMin;\n else if (typeof object.uiRecordMin === \"object\")\n message.uiRecordMin = new $util.LongBits(object.uiRecordMin.low >>> 0, object.uiRecordMin.high >>> 0).toNumber();\n if (object.uiRecordAvg != null)\n message.uiRecordAvg = Number(object.uiRecordAvg);\n if (object.shaderCompileCount != null)\n message.shaderCompileCount = object.shaderCompileCount >>> 0;\n if (object.shaderCompileTime != null)\n if ($util.Long)\n (message.shaderCompileTime = $util.Long.fromValue(object.shaderCompileTime)).unsigned = false;\n else if (typeof object.shaderCompileTime === \"string\")\n message.shaderCompileTime = parseInt(object.shaderCompileTime, 10);\n else if (typeof object.shaderCompileTime === \"number\")\n message.shaderCompileTime = object.shaderCompileTime;\n else if (typeof object.shaderCompileTime === \"object\")\n message.shaderCompileTime = new $util.LongBits(object.shaderCompileTime.low >>> 0, object.shaderCompileTime.high >>> 0).toNumber();\n if (object.shaderCompileAvg != null)\n message.shaderCompileAvg = Number(object.shaderCompileAvg);\n if (object.cacheHitCount != null)\n message.cacheHitCount = object.cacheHitCount >>> 0;\n if (object.cacheHitTime != null)\n if ($util.Long)\n (message.cacheHitTime = $util.Long.fromValue(object.cacheHitTime)).unsigned = false;\n else if (typeof object.cacheHitTime === \"string\")\n message.cacheHitTime = parseInt(object.cacheHitTime, 10);\n else if (typeof object.cacheHitTime === \"number\")\n message.cacheHitTime = object.cacheHitTime;\n else if (typeof object.cacheHitTime === \"object\")\n message.cacheHitTime = new $util.LongBits(object.cacheHitTime.low >>> 0, object.cacheHitTime.high >>> 0).toNumber();\n if (object.cacheHitAvg != null)\n message.cacheHitAvg = Number(object.cacheHitAvg);\n if (object.cacheMissCount != null)\n message.cacheMissCount = object.cacheMissCount >>> 0;\n if (object.cacheMissTime != null)\n if ($util.Long)\n (message.cacheMissTime = $util.Long.fromValue(object.cacheMissTime)).unsigned = false;\n else if (typeof object.cacheMissTime === \"string\")\n message.cacheMissTime = parseInt(object.cacheMissTime, 10);\n else if (typeof object.cacheMissTime === \"number\")\n message.cacheMissTime = object.cacheMissTime;\n else if (typeof object.cacheMissTime === \"object\")\n message.cacheMissTime = new $util.LongBits(object.cacheMissTime.low >>> 0, object.cacheMissTime.high >>> 0).toNumber();\n if (object.cacheMissAvg != null)\n message.cacheMissAvg = Number(object.cacheMissAvg);\n if (object.graphicsCpuMemMax != null)\n if ($util.Long)\n (message.graphicsCpuMemMax = $util.Long.fromValue(object.graphicsCpuMemMax)).unsigned = false;\n else if (typeof object.graphicsCpuMemMax === \"string\")\n message.graphicsCpuMemMax = parseInt(object.graphicsCpuMemMax, 10);\n else if (typeof object.graphicsCpuMemMax === \"number\")\n message.graphicsCpuMemMax = object.graphicsCpuMemMax;\n else if (typeof object.graphicsCpuMemMax === \"object\")\n message.graphicsCpuMemMax = new $util.LongBits(object.graphicsCpuMemMax.low >>> 0, object.graphicsCpuMemMax.high >>> 0).toNumber();\n if (object.graphicsCpuMemMin != null)\n if ($util.Long)\n (message.graphicsCpuMemMin = $util.Long.fromValue(object.graphicsCpuMemMin)).unsigned = false;\n else if (typeof object.graphicsCpuMemMin === \"string\")\n message.graphicsCpuMemMin = parseInt(object.graphicsCpuMemMin, 10);\n else if (typeof object.graphicsCpuMemMin === \"number\")\n message.graphicsCpuMemMin = object.graphicsCpuMemMin;\n else if (typeof object.graphicsCpuMemMin === \"object\")\n message.graphicsCpuMemMin = new $util.LongBits(object.graphicsCpuMemMin.low >>> 0, object.graphicsCpuMemMin.high >>> 0).toNumber();\n if (object.graphicsCpuMemAvg != null)\n message.graphicsCpuMemAvg = Number(object.graphicsCpuMemAvg);\n if (object.graphicsGpuMemMax != null)\n if ($util.Long)\n (message.graphicsGpuMemMax = $util.Long.fromValue(object.graphicsGpuMemMax)).unsigned = false;\n else if (typeof object.graphicsGpuMemMax === \"string\")\n message.graphicsGpuMemMax = parseInt(object.graphicsGpuMemMax, 10);\n else if (typeof object.graphicsGpuMemMax === \"number\")\n message.graphicsGpuMemMax = object.graphicsGpuMemMax;\n else if (typeof object.graphicsGpuMemMax === \"object\")\n message.graphicsGpuMemMax = new $util.LongBits(object.graphicsGpuMemMax.low >>> 0, object.graphicsGpuMemMax.high >>> 0).toNumber();\n if (object.graphicsGpuMemMin != null)\n if ($util.Long)\n (message.graphicsGpuMemMin = $util.Long.fromValue(object.graphicsGpuMemMin)).unsigned = false;\n else if (typeof object.graphicsGpuMemMin === \"string\")\n message.graphicsGpuMemMin = parseInt(object.graphicsGpuMemMin, 10);\n else if (typeof object.graphicsGpuMemMin === \"number\")\n message.graphicsGpuMemMin = object.graphicsGpuMemMin;\n else if (typeof object.graphicsGpuMemMin === \"object\")\n message.graphicsGpuMemMin = new $util.LongBits(object.graphicsGpuMemMin.low >>> 0, object.graphicsGpuMemMin.high >>> 0).toNumber();\n if (object.graphicsGpuMemAvg != null)\n message.graphicsGpuMemAvg = Number(object.graphicsGpuMemAvg);\n if (object.textureMemMax != null)\n if ($util.Long)\n (message.textureMemMax = $util.Long.fromValue(object.textureMemMax)).unsigned = false;\n else if (typeof object.textureMemMax === \"string\")\n message.textureMemMax = parseInt(object.textureMemMax, 10);\n else if (typeof object.textureMemMax === \"number\")\n message.textureMemMax = object.textureMemMax;\n else if (typeof object.textureMemMax === \"object\")\n message.textureMemMax = new $util.LongBits(object.textureMemMax.low >>> 0, object.textureMemMax.high >>> 0).toNumber();\n if (object.textureMemMin != null)\n if ($util.Long)\n (message.textureMemMin = $util.Long.fromValue(object.textureMemMin)).unsigned = false;\n else if (typeof object.textureMemMin === \"string\")\n message.textureMemMin = parseInt(object.textureMemMin, 10);\n else if (typeof object.textureMemMin === \"number\")\n message.textureMemMin = object.textureMemMin;\n else if (typeof object.textureMemMin === \"object\")\n message.textureMemMin = new $util.LongBits(object.textureMemMin.low >>> 0, object.textureMemMin.high >>> 0).toNumber();\n if (object.textureMemAvg != null)\n message.textureMemAvg = Number(object.textureMemAvg);\n if (object.allMemMax != null)\n if ($util.Long)\n (message.allMemMax = $util.Long.fromValue(object.allMemMax)).unsigned = false;\n else if (typeof object.allMemMax === \"string\")\n message.allMemMax = parseInt(object.allMemMax, 10);\n else if (typeof object.allMemMax === \"number\")\n message.allMemMax = object.allMemMax;\n else if (typeof object.allMemMax === \"object\")\n message.allMemMax = new $util.LongBits(object.allMemMax.low >>> 0, object.allMemMax.high >>> 0).toNumber();\n if (object.allMemMin != null)\n if ($util.Long)\n (message.allMemMin = $util.Long.fromValue(object.allMemMin)).unsigned = false;\n else if (typeof object.allMemMin === \"string\")\n message.allMemMin = parseInt(object.allMemMin, 10);\n else if (typeof object.allMemMin === \"number\")\n message.allMemMin = object.allMemMin;\n else if (typeof object.allMemMin === \"object\")\n message.allMemMin = new $util.LongBits(object.allMemMin.low >>> 0, object.allMemMin.high >>> 0).toNumber();\n if (object.allMemAvg != null)\n message.allMemAvg = Number(object.allMemAvg);\n return message;\n };\n\n /**\n * Creates a plain object from a ProcessRenderInfo message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.ProcessRenderInfo\n * @static\n * @param {perfetto.protos.ProcessRenderInfo} message ProcessRenderInfo\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n ProcessRenderInfo.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.processName = \"\";\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.rtCpuTimeMs = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.rtCpuTimeMs = options.longs === String ? \"0\" : 0;\n object.drawFrameCount = 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.drawFrameMax = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.drawFrameMax = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.drawFrameMin = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.drawFrameMin = options.longs === String ? \"0\" : 0;\n object.drawFrameAvg = 0;\n object.flushCount = 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.flushMax = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.flushMax = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.flushMin = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.flushMin = options.longs === String ? \"0\" : 0;\n object.flushAvg = 0;\n object.prepareTreeCount = 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.prepareTreeMax = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.prepareTreeMax = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.prepareTreeMin = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.prepareTreeMin = options.longs === String ? \"0\" : 0;\n object.prepareTreeAvg = 0;\n object.gpuCompletionCount = 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.gpuCompletionMax = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.gpuCompletionMax = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.gpuCompletionMin = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.gpuCompletionMin = options.longs === String ? \"0\" : 0;\n object.gpuCompletionAvg = 0;\n object.uiRecordCount = 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.uiRecordMax = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.uiRecordMax = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.uiRecordMin = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.uiRecordMin = options.longs === String ? \"0\" : 0;\n object.uiRecordAvg = 0;\n object.shaderCompileCount = 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.shaderCompileTime = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.shaderCompileTime = options.longs === String ? \"0\" : 0;\n object.shaderCompileAvg = 0;\n object.cacheHitCount = 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.cacheHitTime = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.cacheHitTime = options.longs === String ? \"0\" : 0;\n object.cacheHitAvg = 0;\n object.cacheMissCount = 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.cacheMissTime = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.cacheMissTime = options.longs === String ? \"0\" : 0;\n object.cacheMissAvg = 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.graphicsCpuMemMax = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.graphicsCpuMemMax = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.graphicsCpuMemMin = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.graphicsCpuMemMin = options.longs === String ? \"0\" : 0;\n object.graphicsCpuMemAvg = 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.graphicsGpuMemMax = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.graphicsGpuMemMax = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.graphicsGpuMemMin = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.graphicsGpuMemMin = options.longs === String ? \"0\" : 0;\n object.graphicsGpuMemAvg = 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.textureMemMax = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.textureMemMax = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.textureMemMin = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.textureMemMin = options.longs === String ? \"0\" : 0;\n object.textureMemAvg = 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.allMemMax = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.allMemMax = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.allMemMin = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.allMemMin = options.longs === String ? \"0\" : 0;\n object.allMemAvg = 0;\n }\n if (message.processName != null && message.hasOwnProperty(\"processName\"))\n object.processName = message.processName;\n if (message.rtCpuTimeMs != null && message.hasOwnProperty(\"rtCpuTimeMs\"))\n if (typeof message.rtCpuTimeMs === \"number\")\n object.rtCpuTimeMs = options.longs === String ? String(message.rtCpuTimeMs) : message.rtCpuTimeMs;\n else\n object.rtCpuTimeMs = options.longs === String ? $util.Long.prototype.toString.call(message.rtCpuTimeMs) : options.longs === Number ? new $util.LongBits(message.rtCpuTimeMs.low >>> 0, message.rtCpuTimeMs.high >>> 0).toNumber() : message.rtCpuTimeMs;\n if (message.drawFrameCount != null && message.hasOwnProperty(\"drawFrameCount\"))\n object.drawFrameCount = message.drawFrameCount;\n if (message.drawFrameMax != null && message.hasOwnProperty(\"drawFrameMax\"))\n if (typeof message.drawFrameMax === \"number\")\n object.drawFrameMax = options.longs === String ? String(message.drawFrameMax) : message.drawFrameMax;\n else\n object.drawFrameMax = options.longs === String ? $util.Long.prototype.toString.call(message.drawFrameMax) : options.longs === Number ? new $util.LongBits(message.drawFrameMax.low >>> 0, message.drawFrameMax.high >>> 0).toNumber() : message.drawFrameMax;\n if (message.drawFrameMin != null && message.hasOwnProperty(\"drawFrameMin\"))\n if (typeof message.drawFrameMin === \"number\")\n object.drawFrameMin = options.longs === String ? String(message.drawFrameMin) : message.drawFrameMin;\n else\n object.drawFrameMin = options.longs === String ? $util.Long.prototype.toString.call(message.drawFrameMin) : options.longs === Number ? new $util.LongBits(message.drawFrameMin.low >>> 0, message.drawFrameMin.high >>> 0).toNumber() : message.drawFrameMin;\n if (message.drawFrameAvg != null && message.hasOwnProperty(\"drawFrameAvg\"))\n object.drawFrameAvg = options.json && !isFinite(message.drawFrameAvg) ? String(message.drawFrameAvg) : message.drawFrameAvg;\n if (message.flushCount != null && message.hasOwnProperty(\"flushCount\"))\n object.flushCount = message.flushCount;\n if (message.flushMax != null && message.hasOwnProperty(\"flushMax\"))\n if (typeof message.flushMax === \"number\")\n object.flushMax = options.longs === String ? String(message.flushMax) : message.flushMax;\n else\n object.flushMax = options.longs === String ? $util.Long.prototype.toString.call(message.flushMax) : options.longs === Number ? new $util.LongBits(message.flushMax.low >>> 0, message.flushMax.high >>> 0).toNumber() : message.flushMax;\n if (message.flushMin != null && message.hasOwnProperty(\"flushMin\"))\n if (typeof message.flushMin === \"number\")\n object.flushMin = options.longs === String ? String(message.flushMin) : message.flushMin;\n else\n object.flushMin = options.longs === String ? $util.Long.prototype.toString.call(message.flushMin) : options.longs === Number ? new $util.LongBits(message.flushMin.low >>> 0, message.flushMin.high >>> 0).toNumber() : message.flushMin;\n if (message.flushAvg != null && message.hasOwnProperty(\"flushAvg\"))\n object.flushAvg = options.json && !isFinite(message.flushAvg) ? String(message.flushAvg) : message.flushAvg;\n if (message.prepareTreeCount != null && message.hasOwnProperty(\"prepareTreeCount\"))\n object.prepareTreeCount = message.prepareTreeCount;\n if (message.prepareTreeMax != null && message.hasOwnProperty(\"prepareTreeMax\"))\n if (typeof message.prepareTreeMax === \"number\")\n object.prepareTreeMax = options.longs === String ? String(message.prepareTreeMax) : message.prepareTreeMax;\n else\n object.prepareTreeMax = options.longs === String ? $util.Long.prototype.toString.call(message.prepareTreeMax) : options.longs === Number ? new $util.LongBits(message.prepareTreeMax.low >>> 0, message.prepareTreeMax.high >>> 0).toNumber() : message.prepareTreeMax;\n if (message.prepareTreeMin != null && message.hasOwnProperty(\"prepareTreeMin\"))\n if (typeof message.prepareTreeMin === \"number\")\n object.prepareTreeMin = options.longs === String ? String(message.prepareTreeMin) : message.prepareTreeMin;\n else\n object.prepareTreeMin = options.longs === String ? $util.Long.prototype.toString.call(message.prepareTreeMin) : options.longs === Number ? new $util.LongBits(message.prepareTreeMin.low >>> 0, message.prepareTreeMin.high >>> 0).toNumber() : message.prepareTreeMin;\n if (message.prepareTreeAvg != null && message.hasOwnProperty(\"prepareTreeAvg\"))\n object.prepareTreeAvg = options.json && !isFinite(message.prepareTreeAvg) ? String(message.prepareTreeAvg) : message.prepareTreeAvg;\n if (message.gpuCompletionCount != null && message.hasOwnProperty(\"gpuCompletionCount\"))\n object.gpuCompletionCount = message.gpuCompletionCount;\n if (message.gpuCompletionMax != null && message.hasOwnProperty(\"gpuCompletionMax\"))\n if (typeof message.gpuCompletionMax === \"number\")\n object.gpuCompletionMax = options.longs === String ? String(message.gpuCompletionMax) : message.gpuCompletionMax;\n else\n object.gpuCompletionMax = options.longs === String ? $util.Long.prototype.toString.call(message.gpuCompletionMax) : options.longs === Number ? new $util.LongBits(message.gpuCompletionMax.low >>> 0, message.gpuCompletionMax.high >>> 0).toNumber() : message.gpuCompletionMax;\n if (message.gpuCompletionMin != null && message.hasOwnProperty(\"gpuCompletionMin\"))\n if (typeof message.gpuCompletionMin === \"number\")\n object.gpuCompletionMin = options.longs === String ? String(message.gpuCompletionMin) : message.gpuCompletionMin;\n else\n object.gpuCompletionMin = options.longs === String ? $util.Long.prototype.toString.call(message.gpuCompletionMin) : options.longs === Number ? new $util.LongBits(message.gpuCompletionMin.low >>> 0, message.gpuCompletionMin.high >>> 0).toNumber() : message.gpuCompletionMin;\n if (message.gpuCompletionAvg != null && message.hasOwnProperty(\"gpuCompletionAvg\"))\n object.gpuCompletionAvg = options.json && !isFinite(message.gpuCompletionAvg) ? String(message.gpuCompletionAvg) : message.gpuCompletionAvg;\n if (message.uiRecordCount != null && message.hasOwnProperty(\"uiRecordCount\"))\n object.uiRecordCount = message.uiRecordCount;\n if (message.uiRecordMax != null && message.hasOwnProperty(\"uiRecordMax\"))\n if (typeof message.uiRecordMax === \"number\")\n object.uiRecordMax = options.longs === String ? String(message.uiRecordMax) : message.uiRecordMax;\n else\n object.uiRecordMax = options.longs === String ? $util.Long.prototype.toString.call(message.uiRecordMax) : options.longs === Number ? new $util.LongBits(message.uiRecordMax.low >>> 0, message.uiRecordMax.high >>> 0).toNumber() : message.uiRecordMax;\n if (message.uiRecordMin != null && message.hasOwnProperty(\"uiRecordMin\"))\n if (typeof message.uiRecordMin === \"number\")\n object.uiRecordMin = options.longs === String ? String(message.uiRecordMin) : message.uiRecordMin;\n else\n object.uiRecordMin = options.longs === String ? $util.Long.prototype.toString.call(message.uiRecordMin) : options.longs === Number ? new $util.LongBits(message.uiRecordMin.low >>> 0, message.uiRecordMin.high >>> 0).toNumber() : message.uiRecordMin;\n if (message.uiRecordAvg != null && message.hasOwnProperty(\"uiRecordAvg\"))\n object.uiRecordAvg = options.json && !isFinite(message.uiRecordAvg) ? String(message.uiRecordAvg) : message.uiRecordAvg;\n if (message.shaderCompileCount != null && message.hasOwnProperty(\"shaderCompileCount\"))\n object.shaderCompileCount = message.shaderCompileCount;\n if (message.shaderCompileTime != null && message.hasOwnProperty(\"shaderCompileTime\"))\n if (typeof message.shaderCompileTime === \"number\")\n object.shaderCompileTime = options.longs === String ? String(message.shaderCompileTime) : message.shaderCompileTime;\n else\n object.shaderCompileTime = options.longs === String ? $util.Long.prototype.toString.call(message.shaderCompileTime) : options.longs === Number ? new $util.LongBits(message.shaderCompileTime.low >>> 0, message.shaderCompileTime.high >>> 0).toNumber() : message.shaderCompileTime;\n if (message.shaderCompileAvg != null && message.hasOwnProperty(\"shaderCompileAvg\"))\n object.shaderCompileAvg = options.json && !isFinite(message.shaderCompileAvg) ? String(message.shaderCompileAvg) : message.shaderCompileAvg;\n if (message.cacheHitCount != null && message.hasOwnProperty(\"cacheHitCount\"))\n object.cacheHitCount = message.cacheHitCount;\n if (message.cacheHitTime != null && message.hasOwnProperty(\"cacheHitTime\"))\n if (typeof message.cacheHitTime === \"number\")\n object.cacheHitTime = options.longs === String ? String(message.cacheHitTime) : message.cacheHitTime;\n else\n object.cacheHitTime = options.longs === String ? $util.Long.prototype.toString.call(message.cacheHitTime) : options.longs === Number ? new $util.LongBits(message.cacheHitTime.low >>> 0, message.cacheHitTime.high >>> 0).toNumber() : message.cacheHitTime;\n if (message.cacheHitAvg != null && message.hasOwnProperty(\"cacheHitAvg\"))\n object.cacheHitAvg = options.json && !isFinite(message.cacheHitAvg) ? String(message.cacheHitAvg) : message.cacheHitAvg;\n if (message.cacheMissCount != null && message.hasOwnProperty(\"cacheMissCount\"))\n object.cacheMissCount = message.cacheMissCount;\n if (message.cacheMissTime != null && message.hasOwnProperty(\"cacheMissTime\"))\n if (typeof message.cacheMissTime === \"number\")\n object.cacheMissTime = options.longs === String ? String(message.cacheMissTime) : message.cacheMissTime;\n else\n object.cacheMissTime = options.longs === String ? $util.Long.prototype.toString.call(message.cacheMissTime) : options.longs === Number ? new $util.LongBits(message.cacheMissTime.low >>> 0, message.cacheMissTime.high >>> 0).toNumber() : message.cacheMissTime;\n if (message.cacheMissAvg != null && message.hasOwnProperty(\"cacheMissAvg\"))\n object.cacheMissAvg = options.json && !isFinite(message.cacheMissAvg) ? String(message.cacheMissAvg) : message.cacheMissAvg;\n if (message.graphicsCpuMemMax != null && message.hasOwnProperty(\"graphicsCpuMemMax\"))\n if (typeof message.graphicsCpuMemMax === \"number\")\n object.graphicsCpuMemMax = options.longs === String ? String(message.graphicsCpuMemMax) : message.graphicsCpuMemMax;\n else\n object.graphicsCpuMemMax = options.longs === String ? $util.Long.prototype.toString.call(message.graphicsCpuMemMax) : options.longs === Number ? new $util.LongBits(message.graphicsCpuMemMax.low >>> 0, message.graphicsCpuMemMax.high >>> 0).toNumber() : message.graphicsCpuMemMax;\n if (message.graphicsCpuMemMin != null && message.hasOwnProperty(\"graphicsCpuMemMin\"))\n if (typeof message.graphicsCpuMemMin === \"number\")\n object.graphicsCpuMemMin = options.longs === String ? String(message.graphicsCpuMemMin) : message.graphicsCpuMemMin;\n else\n object.graphicsCpuMemMin = options.longs === String ? $util.Long.prototype.toString.call(message.graphicsCpuMemMin) : options.longs === Number ? new $util.LongBits(message.graphicsCpuMemMin.low >>> 0, message.graphicsCpuMemMin.high >>> 0).toNumber() : message.graphicsCpuMemMin;\n if (message.graphicsCpuMemAvg != null && message.hasOwnProperty(\"graphicsCpuMemAvg\"))\n object.graphicsCpuMemAvg = options.json && !isFinite(message.graphicsCpuMemAvg) ? String(message.graphicsCpuMemAvg) : message.graphicsCpuMemAvg;\n if (message.graphicsGpuMemMax != null && message.hasOwnProperty(\"graphicsGpuMemMax\"))\n if (typeof message.graphicsGpuMemMax === \"number\")\n object.graphicsGpuMemMax = options.longs === String ? String(message.graphicsGpuMemMax) : message.graphicsGpuMemMax;\n else\n object.graphicsGpuMemMax = options.longs === String ? $util.Long.prototype.toString.call(message.graphicsGpuMemMax) : options.longs === Number ? new $util.LongBits(message.graphicsGpuMemMax.low >>> 0, message.graphicsGpuMemMax.high >>> 0).toNumber() : message.graphicsGpuMemMax;\n if (message.graphicsGpuMemMin != null && message.hasOwnProperty(\"graphicsGpuMemMin\"))\n if (typeof message.graphicsGpuMemMin === \"number\")\n object.graphicsGpuMemMin = options.longs === String ? String(message.graphicsGpuMemMin) : message.graphicsGpuMemMin;\n else\n object.graphicsGpuMemMin = options.longs === String ? $util.Long.prototype.toString.call(message.graphicsGpuMemMin) : options.longs === Number ? new $util.LongBits(message.graphicsGpuMemMin.low >>> 0, message.graphicsGpuMemMin.high >>> 0).toNumber() : message.graphicsGpuMemMin;\n if (message.graphicsGpuMemAvg != null && message.hasOwnProperty(\"graphicsGpuMemAvg\"))\n object.graphicsGpuMemAvg = options.json && !isFinite(message.graphicsGpuMemAvg) ? String(message.graphicsGpuMemAvg) : message.graphicsGpuMemAvg;\n if (message.textureMemMax != null && message.hasOwnProperty(\"textureMemMax\"))\n if (typeof message.textureMemMax === \"number\")\n object.textureMemMax = options.longs === String ? String(message.textureMemMax) : message.textureMemMax;\n else\n object.textureMemMax = options.longs === String ? $util.Long.prototype.toString.call(message.textureMemMax) : options.longs === Number ? new $util.LongBits(message.textureMemMax.low >>> 0, message.textureMemMax.high >>> 0).toNumber() : message.textureMemMax;\n if (message.textureMemMin != null && message.hasOwnProperty(\"textureMemMin\"))\n if (typeof message.textureMemMin === \"number\")\n object.textureMemMin = options.longs === String ? String(message.textureMemMin) : message.textureMemMin;\n else\n object.textureMemMin = options.longs === String ? $util.Long.prototype.toString.call(message.textureMemMin) : options.longs === Number ? new $util.LongBits(message.textureMemMin.low >>> 0, message.textureMemMin.high >>> 0).toNumber() : message.textureMemMin;\n if (message.textureMemAvg != null && message.hasOwnProperty(\"textureMemAvg\"))\n object.textureMemAvg = options.json && !isFinite(message.textureMemAvg) ? String(message.textureMemAvg) : message.textureMemAvg;\n if (message.allMemMax != null && message.hasOwnProperty(\"allMemMax\"))\n if (typeof message.allMemMax === \"number\")\n object.allMemMax = options.longs === String ? String(message.allMemMax) : message.allMemMax;\n else\n object.allMemMax = options.longs === String ? $util.Long.prototype.toString.call(message.allMemMax) : options.longs === Number ? new $util.LongBits(message.allMemMax.low >>> 0, message.allMemMax.high >>> 0).toNumber() : message.allMemMax;\n if (message.allMemMin != null && message.hasOwnProperty(\"allMemMin\"))\n if (typeof message.allMemMin === \"number\")\n object.allMemMin = options.longs === String ? String(message.allMemMin) : message.allMemMin;\n else\n object.allMemMin = options.longs === String ? $util.Long.prototype.toString.call(message.allMemMin) : options.longs === Number ? new $util.LongBits(message.allMemMin.low >>> 0, message.allMemMin.high >>> 0).toNumber() : message.allMemMin;\n if (message.allMemAvg != null && message.hasOwnProperty(\"allMemAvg\"))\n object.allMemAvg = options.json && !isFinite(message.allMemAvg) ? String(message.allMemAvg) : message.allMemAvg;\n return object;\n };\n\n /**\n * Converts this ProcessRenderInfo to JSON.\n * @function toJSON\n * @memberof perfetto.protos.ProcessRenderInfo\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n ProcessRenderInfo.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return ProcessRenderInfo;\n })();\n\n protos.AndroidHwuiMetric = (function() {\n\n /**\n * Properties of an AndroidHwuiMetric.\n * @memberof perfetto.protos\n * @interface IAndroidHwuiMetric\n * @property {Array.<perfetto.protos.IProcessRenderInfo>|null} [processInfo] AndroidHwuiMetric processInfo\n */\n\n /**\n * Constructs a new AndroidHwuiMetric.\n * @memberof perfetto.protos\n * @classdesc Represents an AndroidHwuiMetric.\n * @implements IAndroidHwuiMetric\n * @constructor\n * @param {perfetto.protos.IAndroidHwuiMetric=} [properties] Properties to set\n */\n function AndroidHwuiMetric(properties) {\n this.processInfo = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * AndroidHwuiMetric processInfo.\n * @member {Array.<perfetto.protos.IProcessRenderInfo>} processInfo\n * @memberof perfetto.protos.AndroidHwuiMetric\n * @instance\n */\n AndroidHwuiMetric.prototype.processInfo = $util.emptyArray;\n\n /**\n * Creates a new AndroidHwuiMetric instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidHwuiMetric\n * @static\n * @param {perfetto.protos.IAndroidHwuiMetric=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidHwuiMetric} AndroidHwuiMetric instance\n */\n AndroidHwuiMetric.create = function create(properties) {\n return new AndroidHwuiMetric(properties);\n };\n\n /**\n * Encodes the specified AndroidHwuiMetric message. Does not implicitly {@link perfetto.protos.AndroidHwuiMetric.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidHwuiMetric\n * @static\n * @param {perfetto.protos.IAndroidHwuiMetric} message AndroidHwuiMetric message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n AndroidHwuiMetric.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.processInfo != null && message.processInfo.length)\n for (var i = 0; i < message.processInfo.length; ++i)\n $root.perfetto.protos.ProcessRenderInfo.encode(message.processInfo[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified AndroidHwuiMetric message, length delimited. Does not implicitly {@link perfetto.protos.AndroidHwuiMetric.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidHwuiMetric\n * @static\n * @param {perfetto.protos.IAndroidHwuiMetric} message AndroidHwuiMetric message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n AndroidHwuiMetric.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes an AndroidHwuiMetric message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidHwuiMetric\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidHwuiMetric} AndroidHwuiMetric\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n AndroidHwuiMetric.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidHwuiMetric();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (!(message.processInfo && message.processInfo.length))\n message.processInfo = [];\n message.processInfo.push($root.perfetto.protos.ProcessRenderInfo.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes an AndroidHwuiMetric message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidHwuiMetric\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidHwuiMetric} AndroidHwuiMetric\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n AndroidHwuiMetric.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies an AndroidHwuiMetric message.\n * @function verify\n * @memberof perfetto.protos.AndroidHwuiMetric\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n AndroidHwuiMetric.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.processInfo != null && message.hasOwnProperty(\"processInfo\")) {\n if (!Array.isArray(message.processInfo))\n return \"processInfo: array expected\";\n for (var i = 0; i < message.processInfo.length; ++i) {\n var error = $root.perfetto.protos.ProcessRenderInfo.verify(message.processInfo[i]);\n if (error)\n return \"processInfo.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates an AndroidHwuiMetric message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidHwuiMetric\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidHwuiMetric} AndroidHwuiMetric\n */\n AndroidHwuiMetric.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidHwuiMetric)\n return object;\n var message = new $root.perfetto.protos.AndroidHwuiMetric();\n if (object.processInfo) {\n if (!Array.isArray(object.processInfo))\n throw TypeError(\".perfetto.protos.AndroidHwuiMetric.processInfo: array expected\");\n message.processInfo = [];\n for (var i = 0; i < object.processInfo.length; ++i) {\n if (typeof object.processInfo[i] !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidHwuiMetric.processInfo: object expected\");\n message.processInfo[i] = $root.perfetto.protos.ProcessRenderInfo.fromObject(object.processInfo[i]);\n }\n }\n return message;\n };\n\n /**\n * Creates a plain object from an AndroidHwuiMetric message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidHwuiMetric\n * @static\n * @param {perfetto.protos.AndroidHwuiMetric} message AndroidHwuiMetric\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n AndroidHwuiMetric.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.processInfo = [];\n if (message.processInfo && message.processInfo.length) {\n object.processInfo = [];\n for (var j = 0; j < message.processInfo.length; ++j)\n object.processInfo[j] = $root.perfetto.protos.ProcessRenderInfo.toObject(message.processInfo[j], options);\n }\n return object;\n };\n\n /**\n * Converts this AndroidHwuiMetric to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidHwuiMetric\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n AndroidHwuiMetric.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return AndroidHwuiMetric;\n })();\n\n protos.AndroidIonMetric = (function() {\n\n /**\n * Properties of an AndroidIonMetric.\n * @memberof perfetto.protos\n * @interface IAndroidIonMetric\n * @property {Array.<perfetto.protos.AndroidIonMetric.IBuffer>|null} [buffer] AndroidIonMetric buffer\n */\n\n /**\n * Constructs a new AndroidIonMetric.\n * @memberof perfetto.protos\n * @classdesc Represents an AndroidIonMetric.\n * @implements IAndroidIonMetric\n * @constructor\n * @param {perfetto.protos.IAndroidIonMetric=} [properties] Properties to set\n */\n function AndroidIonMetric(properties) {\n this.buffer = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * AndroidIonMetric buffer.\n * @member {Array.<perfetto.protos.AndroidIonMetric.IBuffer>} buffer\n * @memberof perfetto.protos.AndroidIonMetric\n * @instance\n */\n AndroidIonMetric.prototype.buffer = $util.emptyArray;\n\n /**\n * Creates a new AndroidIonMetric instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidIonMetric\n * @static\n * @param {perfetto.protos.IAndroidIonMetric=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidIonMetric} AndroidIonMetric instance\n */\n AndroidIonMetric.create = function create(properties) {\n return new AndroidIonMetric(properties);\n };\n\n /**\n * Encodes the specified AndroidIonMetric message. Does not implicitly {@link perfetto.protos.AndroidIonMetric.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidIonMetric\n * @static\n * @param {perfetto.protos.IAndroidIonMetric} message AndroidIonMetric message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n AndroidIonMetric.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.buffer != null && message.buffer.length)\n for (var i = 0; i < message.buffer.length; ++i)\n $root.perfetto.protos.AndroidIonMetric.Buffer.encode(message.buffer[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified AndroidIonMetric message, length delimited. Does not implicitly {@link perfetto.protos.AndroidIonMetric.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidIonMetric\n * @static\n * @param {perfetto.protos.IAndroidIonMetric} message AndroidIonMetric message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n AndroidIonMetric.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes an AndroidIonMetric message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidIonMetric\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidIonMetric} AndroidIonMetric\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n AndroidIonMetric.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidIonMetric();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (!(message.buffer && message.buffer.length))\n message.buffer = [];\n message.buffer.push($root.perfetto.protos.AndroidIonMetric.Buffer.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes an AndroidIonMetric message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidIonMetric\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidIonMetric} AndroidIonMetric\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n AndroidIonMetric.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies an AndroidIonMetric message.\n * @function verify\n * @memberof perfetto.protos.AndroidIonMetric\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n AndroidIonMetric.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.buffer != null && message.hasOwnProperty(\"buffer\")) {\n if (!Array.isArray(message.buffer))\n return \"buffer: array expected\";\n for (var i = 0; i < message.buffer.length; ++i) {\n var error = $root.perfetto.protos.AndroidIonMetric.Buffer.verify(message.buffer[i]);\n if (error)\n return \"buffer.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates an AndroidIonMetric message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidIonMetric\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidIonMetric} AndroidIonMetric\n */\n AndroidIonMetric.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidIonMetric)\n return object;\n var message = new $root.perfetto.protos.AndroidIonMetric();\n if (object.buffer) {\n if (!Array.isArray(object.buffer))\n throw TypeError(\".perfetto.protos.AndroidIonMetric.buffer: array expected\");\n message.buffer = [];\n for (var i = 0; i < object.buffer.length; ++i) {\n if (typeof object.buffer[i] !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidIonMetric.buffer: object expected\");\n message.buffer[i] = $root.perfetto.protos.AndroidIonMetric.Buffer.fromObject(object.buffer[i]);\n }\n }\n return message;\n };\n\n /**\n * Creates a plain object from an AndroidIonMetric message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidIonMetric\n * @static\n * @param {perfetto.protos.AndroidIonMetric} message AndroidIonMetric\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n AndroidIonMetric.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.buffer = [];\n if (message.buffer && message.buffer.length) {\n object.buffer = [];\n for (var j = 0; j < message.buffer.length; ++j)\n object.buffer[j] = $root.perfetto.protos.AndroidIonMetric.Buffer.toObject(message.buffer[j], options);\n }\n return object;\n };\n\n /**\n * Converts this AndroidIonMetric to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidIonMetric\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n AndroidIonMetric.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n AndroidIonMetric.Buffer = (function() {\n\n /**\n * Properties of a Buffer.\n * @memberof perfetto.protos.AndroidIonMetric\n * @interface IBuffer\n * @property {string|null} [name] Buffer name\n * @property {number|null} [avgSizeBytes] Buffer avgSizeBytes\n * @property {number|null} [minSizeBytes] Buffer minSizeBytes\n * @property {number|null} [maxSizeBytes] Buffer maxSizeBytes\n * @property {number|null} [totalAllocSizeBytes] Buffer totalAllocSizeBytes\n */\n\n /**\n * Constructs a new Buffer.\n * @memberof perfetto.protos.AndroidIonMetric\n * @classdesc Represents a Buffer.\n * @implements IBuffer\n * @constructor\n * @param {perfetto.protos.AndroidIonMetric.IBuffer=} [properties] Properties to set\n */\n function Buffer(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * Buffer name.\n * @member {string} name\n * @memberof perfetto.protos.AndroidIonMetric.Buffer\n * @instance\n */\n Buffer.prototype.name = \"\";\n\n /**\n * Buffer avgSizeBytes.\n * @member {number} avgSizeBytes\n * @memberof perfetto.protos.AndroidIonMetric.Buffer\n * @instance\n */\n Buffer.prototype.avgSizeBytes = 0;\n\n /**\n * Buffer minSizeBytes.\n * @member {number} minSizeBytes\n * @memberof perfetto.protos.AndroidIonMetric.Buffer\n * @instance\n */\n Buffer.prototype.minSizeBytes = 0;\n\n /**\n * Buffer maxSizeBytes.\n * @member {number} maxSizeBytes\n * @memberof perfetto.protos.AndroidIonMetric.Buffer\n * @instance\n */\n Buffer.prototype.maxSizeBytes = 0;\n\n /**\n * Buffer totalAllocSizeBytes.\n * @member {number} totalAllocSizeBytes\n * @memberof perfetto.protos.AndroidIonMetric.Buffer\n * @instance\n */\n Buffer.prototype.totalAllocSizeBytes = 0;\n\n /**\n * Creates a new Buffer instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidIonMetric.Buffer\n * @static\n * @param {perfetto.protos.AndroidIonMetric.IBuffer=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidIonMetric.Buffer} Buffer instance\n */\n Buffer.create = function create(properties) {\n return new Buffer(properties);\n };\n\n /**\n * Encodes the specified Buffer message. Does not implicitly {@link perfetto.protos.AndroidIonMetric.Buffer.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidIonMetric.Buffer\n * @static\n * @param {perfetto.protos.AndroidIonMetric.IBuffer} message Buffer message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Buffer.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.name != null && Object.hasOwnProperty.call(message, \"name\"))\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.name);\n if (message.avgSizeBytes != null && Object.hasOwnProperty.call(message, \"avgSizeBytes\"))\n writer.uint32(/* id 2, wireType 1 =*/17).double(message.avgSizeBytes);\n if (message.minSizeBytes != null && Object.hasOwnProperty.call(message, \"minSizeBytes\"))\n writer.uint32(/* id 3, wireType 1 =*/25).double(message.minSizeBytes);\n if (message.maxSizeBytes != null && Object.hasOwnProperty.call(message, \"maxSizeBytes\"))\n writer.uint32(/* id 4, wireType 1 =*/33).double(message.maxSizeBytes);\n if (message.totalAllocSizeBytes != null && Object.hasOwnProperty.call(message, \"totalAllocSizeBytes\"))\n writer.uint32(/* id 5, wireType 1 =*/41).double(message.totalAllocSizeBytes);\n return writer;\n };\n\n /**\n * Encodes the specified Buffer message, length delimited. Does not implicitly {@link perfetto.protos.AndroidIonMetric.Buffer.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidIonMetric.Buffer\n * @static\n * @param {perfetto.protos.AndroidIonMetric.IBuffer} message Buffer message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Buffer.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a Buffer message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidIonMetric.Buffer\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidIonMetric.Buffer} Buffer\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Buffer.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidIonMetric.Buffer();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.name = reader.string();\n break;\n case 2:\n message.avgSizeBytes = reader.double();\n break;\n case 3:\n message.minSizeBytes = reader.double();\n break;\n case 4:\n message.maxSizeBytes = reader.double();\n break;\n case 5:\n message.totalAllocSizeBytes = reader.double();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a Buffer message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidIonMetric.Buffer\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidIonMetric.Buffer} Buffer\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Buffer.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a Buffer message.\n * @function verify\n * @memberof perfetto.protos.AndroidIonMetric.Buffer\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n Buffer.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.name != null && message.hasOwnProperty(\"name\"))\n if (!$util.isString(message.name))\n return \"name: string expected\";\n if (message.avgSizeBytes != null && message.hasOwnProperty(\"avgSizeBytes\"))\n if (typeof message.avgSizeBytes !== \"number\")\n return \"avgSizeBytes: number expected\";\n if (message.minSizeBytes != null && message.hasOwnProperty(\"minSizeBytes\"))\n if (typeof message.minSizeBytes !== \"number\")\n return \"minSizeBytes: number expected\";\n if (message.maxSizeBytes != null && message.hasOwnProperty(\"maxSizeBytes\"))\n if (typeof message.maxSizeBytes !== \"number\")\n return \"maxSizeBytes: number expected\";\n if (message.totalAllocSizeBytes != null && message.hasOwnProperty(\"totalAllocSizeBytes\"))\n if (typeof message.totalAllocSizeBytes !== \"number\")\n return \"totalAllocSizeBytes: number expected\";\n return null;\n };\n\n /**\n * Creates a Buffer message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidIonMetric.Buffer\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidIonMetric.Buffer} Buffer\n */\n Buffer.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidIonMetric.Buffer)\n return object;\n var message = new $root.perfetto.protos.AndroidIonMetric.Buffer();\n if (object.name != null)\n message.name = String(object.name);\n if (object.avgSizeBytes != null)\n message.avgSizeBytes = Number(object.avgSizeBytes);\n if (object.minSizeBytes != null)\n message.minSizeBytes = Number(object.minSizeBytes);\n if (object.maxSizeBytes != null)\n message.maxSizeBytes = Number(object.maxSizeBytes);\n if (object.totalAllocSizeBytes != null)\n message.totalAllocSizeBytes = Number(object.totalAllocSizeBytes);\n return message;\n };\n\n /**\n * Creates a plain object from a Buffer message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidIonMetric.Buffer\n * @static\n * @param {perfetto.protos.AndroidIonMetric.Buffer} message Buffer\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n Buffer.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.name = \"\";\n object.avgSizeBytes = 0;\n object.minSizeBytes = 0;\n object.maxSizeBytes = 0;\n object.totalAllocSizeBytes = 0;\n }\n if (message.name != null && message.hasOwnProperty(\"name\"))\n object.name = message.name;\n if (message.avgSizeBytes != null && message.hasOwnProperty(\"avgSizeBytes\"))\n object.avgSizeBytes = options.json && !isFinite(message.avgSizeBytes) ? String(message.avgSizeBytes) : message.avgSizeBytes;\n if (message.minSizeBytes != null && message.hasOwnProperty(\"minSizeBytes\"))\n object.minSizeBytes = options.json && !isFinite(message.minSizeBytes) ? String(message.minSizeBytes) : message.minSizeBytes;\n if (message.maxSizeBytes != null && message.hasOwnProperty(\"maxSizeBytes\"))\n object.maxSizeBytes = options.json && !isFinite(message.maxSizeBytes) ? String(message.maxSizeBytes) : message.maxSizeBytes;\n if (message.totalAllocSizeBytes != null && message.hasOwnProperty(\"totalAllocSizeBytes\"))\n object.totalAllocSizeBytes = options.json && !isFinite(message.totalAllocSizeBytes) ? String(message.totalAllocSizeBytes) : message.totalAllocSizeBytes;\n return object;\n };\n\n /**\n * Converts this Buffer to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidIonMetric.Buffer\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n Buffer.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return Buffer;\n })();\n\n return AndroidIonMetric;\n })();\n\n protos.AndroidJankMetrics = (function() {\n\n /**\n * Properties of an AndroidJankMetrics.\n * @memberof perfetto.protos\n * @interface IAndroidJankMetrics\n * @property {Array.<perfetto.protos.AndroidJankMetrics.IWarning>|null} [warnings] AndroidJankMetrics warnings\n */\n\n /**\n * Constructs a new AndroidJankMetrics.\n * @memberof perfetto.protos\n * @classdesc Represents an AndroidJankMetrics.\n * @implements IAndroidJankMetrics\n * @constructor\n * @param {perfetto.protos.IAndroidJankMetrics=} [properties] Properties to set\n */\n function AndroidJankMetrics(properties) {\n this.warnings = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * AndroidJankMetrics warnings.\n * @member {Array.<perfetto.protos.AndroidJankMetrics.IWarning>} warnings\n * @memberof perfetto.protos.AndroidJankMetrics\n * @instance\n */\n AndroidJankMetrics.prototype.warnings = $util.emptyArray;\n\n /**\n * Creates a new AndroidJankMetrics instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidJankMetrics\n * @static\n * @param {perfetto.protos.IAndroidJankMetrics=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidJankMetrics} AndroidJankMetrics instance\n */\n AndroidJankMetrics.create = function create(properties) {\n return new AndroidJankMetrics(properties);\n };\n\n /**\n * Encodes the specified AndroidJankMetrics message. Does not implicitly {@link perfetto.protos.AndroidJankMetrics.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidJankMetrics\n * @static\n * @param {perfetto.protos.IAndroidJankMetrics} message AndroidJankMetrics message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n AndroidJankMetrics.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.warnings != null && message.warnings.length)\n for (var i = 0; i < message.warnings.length; ++i)\n $root.perfetto.protos.AndroidJankMetrics.Warning.encode(message.warnings[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified AndroidJankMetrics message, length delimited. Does not implicitly {@link perfetto.protos.AndroidJankMetrics.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidJankMetrics\n * @static\n * @param {perfetto.protos.IAndroidJankMetrics} message AndroidJankMetrics message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n AndroidJankMetrics.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes an AndroidJankMetrics message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidJankMetrics\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidJankMetrics} AndroidJankMetrics\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n AndroidJankMetrics.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidJankMetrics();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (!(message.warnings && message.warnings.length))\n message.warnings = [];\n message.warnings.push($root.perfetto.protos.AndroidJankMetrics.Warning.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes an AndroidJankMetrics message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidJankMetrics\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidJankMetrics} AndroidJankMetrics\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n AndroidJankMetrics.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies an AndroidJankMetrics message.\n * @function verify\n * @memberof perfetto.protos.AndroidJankMetrics\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n AndroidJankMetrics.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.warnings != null && message.hasOwnProperty(\"warnings\")) {\n if (!Array.isArray(message.warnings))\n return \"warnings: array expected\";\n for (var i = 0; i < message.warnings.length; ++i) {\n var error = $root.perfetto.protos.AndroidJankMetrics.Warning.verify(message.warnings[i]);\n if (error)\n return \"warnings.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates an AndroidJankMetrics message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidJankMetrics\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidJankMetrics} AndroidJankMetrics\n */\n AndroidJankMetrics.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidJankMetrics)\n return object;\n var message = new $root.perfetto.protos.AndroidJankMetrics();\n if (object.warnings) {\n if (!Array.isArray(object.warnings))\n throw TypeError(\".perfetto.protos.AndroidJankMetrics.warnings: array expected\");\n message.warnings = [];\n for (var i = 0; i < object.warnings.length; ++i) {\n if (typeof object.warnings[i] !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidJankMetrics.warnings: object expected\");\n message.warnings[i] = $root.perfetto.protos.AndroidJankMetrics.Warning.fromObject(object.warnings[i]);\n }\n }\n return message;\n };\n\n /**\n * Creates a plain object from an AndroidJankMetrics message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidJankMetrics\n * @static\n * @param {perfetto.protos.AndroidJankMetrics} message AndroidJankMetrics\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n AndroidJankMetrics.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.warnings = [];\n if (message.warnings && message.warnings.length) {\n object.warnings = [];\n for (var j = 0; j < message.warnings.length; ++j)\n object.warnings[j] = $root.perfetto.protos.AndroidJankMetrics.Warning.toObject(message.warnings[j], options);\n }\n return object;\n };\n\n /**\n * Converts this AndroidJankMetrics to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidJankMetrics\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n AndroidJankMetrics.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n AndroidJankMetrics.Warning = (function() {\n\n /**\n * Properties of a Warning.\n * @memberof perfetto.protos.AndroidJankMetrics\n * @interface IWarning\n * @property {number|null} [ts] Warning ts\n * @property {number|null} [dur] Warning dur\n * @property {string|null} [processName] Warning processName\n * @property {string|null} [warningText] Warning warningText\n */\n\n /**\n * Constructs a new Warning.\n * @memberof perfetto.protos.AndroidJankMetrics\n * @classdesc Represents a Warning.\n * @implements IWarning\n * @constructor\n * @param {perfetto.protos.AndroidJankMetrics.IWarning=} [properties] Properties to set\n */\n function Warning(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * Warning ts.\n * @member {number} ts\n * @memberof perfetto.protos.AndroidJankMetrics.Warning\n * @instance\n */\n Warning.prototype.ts = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * Warning dur.\n * @member {number} dur\n * @memberof perfetto.protos.AndroidJankMetrics.Warning\n * @instance\n */\n Warning.prototype.dur = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * Warning processName.\n * @member {string} processName\n * @memberof perfetto.protos.AndroidJankMetrics.Warning\n * @instance\n */\n Warning.prototype.processName = \"\";\n\n /**\n * Warning warningText.\n * @member {string} warningText\n * @memberof perfetto.protos.AndroidJankMetrics.Warning\n * @instance\n */\n Warning.prototype.warningText = \"\";\n\n /**\n * Creates a new Warning instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidJankMetrics.Warning\n * @static\n * @param {perfetto.protos.AndroidJankMetrics.IWarning=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidJankMetrics.Warning} Warning instance\n */\n Warning.create = function create(properties) {\n return new Warning(properties);\n };\n\n /**\n * Encodes the specified Warning message. Does not implicitly {@link perfetto.protos.AndroidJankMetrics.Warning.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidJankMetrics.Warning\n * @static\n * @param {perfetto.protos.AndroidJankMetrics.IWarning} message Warning message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Warning.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.ts != null && Object.hasOwnProperty.call(message, \"ts\"))\n writer.uint32(/* id 1, wireType 0 =*/8).int64(message.ts);\n if (message.dur != null && Object.hasOwnProperty.call(message, \"dur\"))\n writer.uint32(/* id 2, wireType 0 =*/16).int64(message.dur);\n if (message.processName != null && Object.hasOwnProperty.call(message, \"processName\"))\n writer.uint32(/* id 3, wireType 2 =*/26).string(message.processName);\n if (message.warningText != null && Object.hasOwnProperty.call(message, \"warningText\"))\n writer.uint32(/* id 4, wireType 2 =*/34).string(message.warningText);\n return writer;\n };\n\n /**\n * Encodes the specified Warning message, length delimited. Does not implicitly {@link perfetto.protos.AndroidJankMetrics.Warning.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidJankMetrics.Warning\n * @static\n * @param {perfetto.protos.AndroidJankMetrics.IWarning} message Warning message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Warning.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a Warning message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidJankMetrics.Warning\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidJankMetrics.Warning} Warning\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Warning.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidJankMetrics.Warning();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.ts = reader.int64();\n break;\n case 2:\n message.dur = reader.int64();\n break;\n case 3:\n message.processName = reader.string();\n break;\n case 4:\n message.warningText = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a Warning message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidJankMetrics.Warning\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidJankMetrics.Warning} Warning\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Warning.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a Warning message.\n * @function verify\n * @memberof perfetto.protos.AndroidJankMetrics.Warning\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n Warning.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.ts != null && message.hasOwnProperty(\"ts\"))\n if (!$util.isInteger(message.ts) && !(message.ts && $util.isInteger(message.ts.low) && $util.isInteger(message.ts.high)))\n return \"ts: integer|Long expected\";\n if (message.dur != null && message.hasOwnProperty(\"dur\"))\n if (!$util.isInteger(message.dur) && !(message.dur && $util.isInteger(message.dur.low) && $util.isInteger(message.dur.high)))\n return \"dur: integer|Long expected\";\n if (message.processName != null && message.hasOwnProperty(\"processName\"))\n if (!$util.isString(message.processName))\n return \"processName: string expected\";\n if (message.warningText != null && message.hasOwnProperty(\"warningText\"))\n if (!$util.isString(message.warningText))\n return \"warningText: string expected\";\n return null;\n };\n\n /**\n * Creates a Warning message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidJankMetrics.Warning\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidJankMetrics.Warning} Warning\n */\n Warning.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidJankMetrics.Warning)\n return object;\n var message = new $root.perfetto.protos.AndroidJankMetrics.Warning();\n if (object.ts != null)\n if ($util.Long)\n (message.ts = $util.Long.fromValue(object.ts)).unsigned = false;\n else if (typeof object.ts === \"string\")\n message.ts = parseInt(object.ts, 10);\n else if (typeof object.ts === \"number\")\n message.ts = object.ts;\n else if (typeof object.ts === \"object\")\n message.ts = new $util.LongBits(object.ts.low >>> 0, object.ts.high >>> 0).toNumber();\n if (object.dur != null)\n if ($util.Long)\n (message.dur = $util.Long.fromValue(object.dur)).unsigned = false;\n else if (typeof object.dur === \"string\")\n message.dur = parseInt(object.dur, 10);\n else if (typeof object.dur === \"number\")\n message.dur = object.dur;\n else if (typeof object.dur === \"object\")\n message.dur = new $util.LongBits(object.dur.low >>> 0, object.dur.high >>> 0).toNumber();\n if (object.processName != null)\n message.processName = String(object.processName);\n if (object.warningText != null)\n message.warningText = String(object.warningText);\n return message;\n };\n\n /**\n * Creates a plain object from a Warning message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidJankMetrics.Warning\n * @static\n * @param {perfetto.protos.AndroidJankMetrics.Warning} message Warning\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n Warning.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.ts = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.ts = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.dur = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.dur = options.longs === String ? \"0\" : 0;\n object.processName = \"\";\n object.warningText = \"\";\n }\n if (message.ts != null && message.hasOwnProperty(\"ts\"))\n if (typeof message.ts === \"number\")\n object.ts = options.longs === String ? String(message.ts) : message.ts;\n else\n object.ts = options.longs === String ? $util.Long.prototype.toString.call(message.ts) : options.longs === Number ? new $util.LongBits(message.ts.low >>> 0, message.ts.high >>> 0).toNumber() : message.ts;\n if (message.dur != null && message.hasOwnProperty(\"dur\"))\n if (typeof message.dur === \"number\")\n object.dur = options.longs === String ? String(message.dur) : message.dur;\n else\n object.dur = options.longs === String ? $util.Long.prototype.toString.call(message.dur) : options.longs === Number ? new $util.LongBits(message.dur.low >>> 0, message.dur.high >>> 0).toNumber() : message.dur;\n if (message.processName != null && message.hasOwnProperty(\"processName\"))\n object.processName = message.processName;\n if (message.warningText != null && message.hasOwnProperty(\"warningText\"))\n object.warningText = message.warningText;\n return object;\n };\n\n /**\n * Converts this Warning to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidJankMetrics.Warning\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n Warning.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return Warning;\n })();\n\n return AndroidJankMetrics;\n })();\n\n protos.JavaHeapHistogram = (function() {\n\n /**\n * Properties of a JavaHeapHistogram.\n * @memberof perfetto.protos\n * @interface IJavaHeapHistogram\n * @property {Array.<perfetto.protos.JavaHeapHistogram.IInstanceStats>|null} [instanceStats] JavaHeapHistogram instanceStats\n */\n\n /**\n * Constructs a new JavaHeapHistogram.\n * @memberof perfetto.protos\n * @classdesc Represents a JavaHeapHistogram.\n * @implements IJavaHeapHistogram\n * @constructor\n * @param {perfetto.protos.IJavaHeapHistogram=} [properties] Properties to set\n */\n function JavaHeapHistogram(properties) {\n this.instanceStats = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * JavaHeapHistogram instanceStats.\n * @member {Array.<perfetto.protos.JavaHeapHistogram.IInstanceStats>} instanceStats\n * @memberof perfetto.protos.JavaHeapHistogram\n * @instance\n */\n JavaHeapHistogram.prototype.instanceStats = $util.emptyArray;\n\n /**\n * Creates a new JavaHeapHistogram instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.JavaHeapHistogram\n * @static\n * @param {perfetto.protos.IJavaHeapHistogram=} [properties] Properties to set\n * @returns {perfetto.protos.JavaHeapHistogram} JavaHeapHistogram instance\n */\n JavaHeapHistogram.create = function create(properties) {\n return new JavaHeapHistogram(properties);\n };\n\n /**\n * Encodes the specified JavaHeapHistogram message. Does not implicitly {@link perfetto.protos.JavaHeapHistogram.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.JavaHeapHistogram\n * @static\n * @param {perfetto.protos.IJavaHeapHistogram} message JavaHeapHistogram message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n JavaHeapHistogram.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.instanceStats != null && message.instanceStats.length)\n for (var i = 0; i < message.instanceStats.length; ++i)\n $root.perfetto.protos.JavaHeapHistogram.InstanceStats.encode(message.instanceStats[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified JavaHeapHistogram message, length delimited. Does not implicitly {@link perfetto.protos.JavaHeapHistogram.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.JavaHeapHistogram\n * @static\n * @param {perfetto.protos.IJavaHeapHistogram} message JavaHeapHistogram message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n JavaHeapHistogram.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a JavaHeapHistogram message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.JavaHeapHistogram\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.JavaHeapHistogram} JavaHeapHistogram\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n JavaHeapHistogram.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.JavaHeapHistogram();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (!(message.instanceStats && message.instanceStats.length))\n message.instanceStats = [];\n message.instanceStats.push($root.perfetto.protos.JavaHeapHistogram.InstanceStats.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a JavaHeapHistogram message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.JavaHeapHistogram\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.JavaHeapHistogram} JavaHeapHistogram\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n JavaHeapHistogram.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a JavaHeapHistogram message.\n * @function verify\n * @memberof perfetto.protos.JavaHeapHistogram\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n JavaHeapHistogram.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.instanceStats != null && message.hasOwnProperty(\"instanceStats\")) {\n if (!Array.isArray(message.instanceStats))\n return \"instanceStats: array expected\";\n for (var i = 0; i < message.instanceStats.length; ++i) {\n var error = $root.perfetto.protos.JavaHeapHistogram.InstanceStats.verify(message.instanceStats[i]);\n if (error)\n return \"instanceStats.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates a JavaHeapHistogram message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.JavaHeapHistogram\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.JavaHeapHistogram} JavaHeapHistogram\n */\n JavaHeapHistogram.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.JavaHeapHistogram)\n return object;\n var message = new $root.perfetto.protos.JavaHeapHistogram();\n if (object.instanceStats) {\n if (!Array.isArray(object.instanceStats))\n throw TypeError(\".perfetto.protos.JavaHeapHistogram.instanceStats: array expected\");\n message.instanceStats = [];\n for (var i = 0; i < object.instanceStats.length; ++i) {\n if (typeof object.instanceStats[i] !== \"object\")\n throw TypeError(\".perfetto.protos.JavaHeapHistogram.instanceStats: object expected\");\n message.instanceStats[i] = $root.perfetto.protos.JavaHeapHistogram.InstanceStats.fromObject(object.instanceStats[i]);\n }\n }\n return message;\n };\n\n /**\n * Creates a plain object from a JavaHeapHistogram message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.JavaHeapHistogram\n * @static\n * @param {perfetto.protos.JavaHeapHistogram} message JavaHeapHistogram\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n JavaHeapHistogram.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.instanceStats = [];\n if (message.instanceStats && message.instanceStats.length) {\n object.instanceStats = [];\n for (var j = 0; j < message.instanceStats.length; ++j)\n object.instanceStats[j] = $root.perfetto.protos.JavaHeapHistogram.InstanceStats.toObject(message.instanceStats[j], options);\n }\n return object;\n };\n\n /**\n * Converts this JavaHeapHistogram to JSON.\n * @function toJSON\n * @memberof perfetto.protos.JavaHeapHistogram\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n JavaHeapHistogram.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n JavaHeapHistogram.TypeCount = (function() {\n\n /**\n * Properties of a TypeCount.\n * @memberof perfetto.protos.JavaHeapHistogram\n * @interface ITypeCount\n * @property {string|null} [typeName] TypeCount typeName\n * @property {string|null} [category] TypeCount category\n * @property {number|null} [objCount] TypeCount objCount\n * @property {number|null} [reachableObjCount] TypeCount reachableObjCount\n */\n\n /**\n * Constructs a new TypeCount.\n * @memberof perfetto.protos.JavaHeapHistogram\n * @classdesc Represents a TypeCount.\n * @implements ITypeCount\n * @constructor\n * @param {perfetto.protos.JavaHeapHistogram.ITypeCount=} [properties] Properties to set\n */\n function TypeCount(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * TypeCount typeName.\n * @member {string} typeName\n * @memberof perfetto.protos.JavaHeapHistogram.TypeCount\n * @instance\n */\n TypeCount.prototype.typeName = \"\";\n\n /**\n * TypeCount category.\n * @member {string} category\n * @memberof perfetto.protos.JavaHeapHistogram.TypeCount\n * @instance\n */\n TypeCount.prototype.category = \"\";\n\n /**\n * TypeCount objCount.\n * @member {number} objCount\n * @memberof perfetto.protos.JavaHeapHistogram.TypeCount\n * @instance\n */\n TypeCount.prototype.objCount = 0;\n\n /**\n * TypeCount reachableObjCount.\n * @member {number} reachableObjCount\n * @memberof perfetto.protos.JavaHeapHistogram.TypeCount\n * @instance\n */\n TypeCount.prototype.reachableObjCount = 0;\n\n /**\n * Creates a new TypeCount instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.JavaHeapHistogram.TypeCount\n * @static\n * @param {perfetto.protos.JavaHeapHistogram.ITypeCount=} [properties] Properties to set\n * @returns {perfetto.protos.JavaHeapHistogram.TypeCount} TypeCount instance\n */\n TypeCount.create = function create(properties) {\n return new TypeCount(properties);\n };\n\n /**\n * Encodes the specified TypeCount message. Does not implicitly {@link perfetto.protos.JavaHeapHistogram.TypeCount.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.JavaHeapHistogram.TypeCount\n * @static\n * @param {perfetto.protos.JavaHeapHistogram.ITypeCount} message TypeCount message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n TypeCount.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.typeName != null && Object.hasOwnProperty.call(message, \"typeName\"))\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.typeName);\n if (message.objCount != null && Object.hasOwnProperty.call(message, \"objCount\"))\n writer.uint32(/* id 2, wireType 0 =*/16).uint32(message.objCount);\n if (message.reachableObjCount != null && Object.hasOwnProperty.call(message, \"reachableObjCount\"))\n writer.uint32(/* id 3, wireType 0 =*/24).uint32(message.reachableObjCount);\n if (message.category != null && Object.hasOwnProperty.call(message, \"category\"))\n writer.uint32(/* id 4, wireType 2 =*/34).string(message.category);\n return writer;\n };\n\n /**\n * Encodes the specified TypeCount message, length delimited. Does not implicitly {@link perfetto.protos.JavaHeapHistogram.TypeCount.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.JavaHeapHistogram.TypeCount\n * @static\n * @param {perfetto.protos.JavaHeapHistogram.ITypeCount} message TypeCount message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n TypeCount.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a TypeCount message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.JavaHeapHistogram.TypeCount\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.JavaHeapHistogram.TypeCount} TypeCount\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n TypeCount.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.JavaHeapHistogram.TypeCount();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.typeName = reader.string();\n break;\n case 4:\n message.category = reader.string();\n break;\n case 2:\n message.objCount = reader.uint32();\n break;\n case 3:\n message.reachableObjCount = reader.uint32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a TypeCount message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.JavaHeapHistogram.TypeCount\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.JavaHeapHistogram.TypeCount} TypeCount\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n TypeCount.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a TypeCount message.\n * @function verify\n * @memberof perfetto.protos.JavaHeapHistogram.TypeCount\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n TypeCount.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.typeName != null && message.hasOwnProperty(\"typeName\"))\n if (!$util.isString(message.typeName))\n return \"typeName: string expected\";\n if (message.category != null && message.hasOwnProperty(\"category\"))\n if (!$util.isString(message.category))\n return \"category: string expected\";\n if (message.objCount != null && message.hasOwnProperty(\"objCount\"))\n if (!$util.isInteger(message.objCount))\n return \"objCount: integer expected\";\n if (message.reachableObjCount != null && message.hasOwnProperty(\"reachableObjCount\"))\n if (!$util.isInteger(message.reachableObjCount))\n return \"reachableObjCount: integer expected\";\n return null;\n };\n\n /**\n * Creates a TypeCount message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.JavaHeapHistogram.TypeCount\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.JavaHeapHistogram.TypeCount} TypeCount\n */\n TypeCount.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.JavaHeapHistogram.TypeCount)\n return object;\n var message = new $root.perfetto.protos.JavaHeapHistogram.TypeCount();\n if (object.typeName != null)\n message.typeName = String(object.typeName);\n if (object.category != null)\n message.category = String(object.category);\n if (object.objCount != null)\n message.objCount = object.objCount >>> 0;\n if (object.reachableObjCount != null)\n message.reachableObjCount = object.reachableObjCount >>> 0;\n return message;\n };\n\n /**\n * Creates a plain object from a TypeCount message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.JavaHeapHistogram.TypeCount\n * @static\n * @param {perfetto.protos.JavaHeapHistogram.TypeCount} message TypeCount\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n TypeCount.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.typeName = \"\";\n object.objCount = 0;\n object.reachableObjCount = 0;\n object.category = \"\";\n }\n if (message.typeName != null && message.hasOwnProperty(\"typeName\"))\n object.typeName = message.typeName;\n if (message.objCount != null && message.hasOwnProperty(\"objCount\"))\n object.objCount = message.objCount;\n if (message.reachableObjCount != null && message.hasOwnProperty(\"reachableObjCount\"))\n object.reachableObjCount = message.reachableObjCount;\n if (message.category != null && message.hasOwnProperty(\"category\"))\n object.category = message.category;\n return object;\n };\n\n /**\n * Converts this TypeCount to JSON.\n * @function toJSON\n * @memberof perfetto.protos.JavaHeapHistogram.TypeCount\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n TypeCount.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return TypeCount;\n })();\n\n JavaHeapHistogram.Sample = (function() {\n\n /**\n * Properties of a Sample.\n * @memberof perfetto.protos.JavaHeapHistogram\n * @interface ISample\n * @property {number|null} [ts] Sample ts\n * @property {Array.<perfetto.protos.JavaHeapHistogram.ITypeCount>|null} [typeCount] Sample typeCount\n */\n\n /**\n * Constructs a new Sample.\n * @memberof perfetto.protos.JavaHeapHistogram\n * @classdesc Represents a Sample.\n * @implements ISample\n * @constructor\n * @param {perfetto.protos.JavaHeapHistogram.ISample=} [properties] Properties to set\n */\n function Sample(properties) {\n this.typeCount = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * Sample ts.\n * @member {number} ts\n * @memberof perfetto.protos.JavaHeapHistogram.Sample\n * @instance\n */\n Sample.prototype.ts = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * Sample typeCount.\n * @member {Array.<perfetto.protos.JavaHeapHistogram.ITypeCount>} typeCount\n * @memberof perfetto.protos.JavaHeapHistogram.Sample\n * @instance\n */\n Sample.prototype.typeCount = $util.emptyArray;\n\n /**\n * Creates a new Sample instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.JavaHeapHistogram.Sample\n * @static\n * @param {perfetto.protos.JavaHeapHistogram.ISample=} [properties] Properties to set\n * @returns {perfetto.protos.JavaHeapHistogram.Sample} Sample instance\n */\n Sample.create = function create(properties) {\n return new Sample(properties);\n };\n\n /**\n * Encodes the specified Sample message. Does not implicitly {@link perfetto.protos.JavaHeapHistogram.Sample.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.JavaHeapHistogram.Sample\n * @static\n * @param {perfetto.protos.JavaHeapHistogram.ISample} message Sample message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Sample.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.ts != null && Object.hasOwnProperty.call(message, \"ts\"))\n writer.uint32(/* id 1, wireType 0 =*/8).int64(message.ts);\n if (message.typeCount != null && message.typeCount.length)\n for (var i = 0; i < message.typeCount.length; ++i)\n $root.perfetto.protos.JavaHeapHistogram.TypeCount.encode(message.typeCount[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified Sample message, length delimited. Does not implicitly {@link perfetto.protos.JavaHeapHistogram.Sample.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.JavaHeapHistogram.Sample\n * @static\n * @param {perfetto.protos.JavaHeapHistogram.ISample} message Sample message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Sample.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a Sample message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.JavaHeapHistogram.Sample\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.JavaHeapHistogram.Sample} Sample\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Sample.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.JavaHeapHistogram.Sample();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.ts = reader.int64();\n break;\n case 2:\n if (!(message.typeCount && message.typeCount.length))\n message.typeCount = [];\n message.typeCount.push($root.perfetto.protos.JavaHeapHistogram.TypeCount.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a Sample message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.JavaHeapHistogram.Sample\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.JavaHeapHistogram.Sample} Sample\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Sample.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a Sample message.\n * @function verify\n * @memberof perfetto.protos.JavaHeapHistogram.Sample\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n Sample.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.ts != null && message.hasOwnProperty(\"ts\"))\n if (!$util.isInteger(message.ts) && !(message.ts && $util.isInteger(message.ts.low) && $util.isInteger(message.ts.high)))\n return \"ts: integer|Long expected\";\n if (message.typeCount != null && message.hasOwnProperty(\"typeCount\")) {\n if (!Array.isArray(message.typeCount))\n return \"typeCount: array expected\";\n for (var i = 0; i < message.typeCount.length; ++i) {\n var error = $root.perfetto.protos.JavaHeapHistogram.TypeCount.verify(message.typeCount[i]);\n if (error)\n return \"typeCount.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates a Sample message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.JavaHeapHistogram.Sample\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.JavaHeapHistogram.Sample} Sample\n */\n Sample.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.JavaHeapHistogram.Sample)\n return object;\n var message = new $root.perfetto.protos.JavaHeapHistogram.Sample();\n if (object.ts != null)\n if ($util.Long)\n (message.ts = $util.Long.fromValue(object.ts)).unsigned = false;\n else if (typeof object.ts === \"string\")\n message.ts = parseInt(object.ts, 10);\n else if (typeof object.ts === \"number\")\n message.ts = object.ts;\n else if (typeof object.ts === \"object\")\n message.ts = new $util.LongBits(object.ts.low >>> 0, object.ts.high >>> 0).toNumber();\n if (object.typeCount) {\n if (!Array.isArray(object.typeCount))\n throw TypeError(\".perfetto.protos.JavaHeapHistogram.Sample.typeCount: array expected\");\n message.typeCount = [];\n for (var i = 0; i < object.typeCount.length; ++i) {\n if (typeof object.typeCount[i] !== \"object\")\n throw TypeError(\".perfetto.protos.JavaHeapHistogram.Sample.typeCount: object expected\");\n message.typeCount[i] = $root.perfetto.protos.JavaHeapHistogram.TypeCount.fromObject(object.typeCount[i]);\n }\n }\n return message;\n };\n\n /**\n * Creates a plain object from a Sample message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.JavaHeapHistogram.Sample\n * @static\n * @param {perfetto.protos.JavaHeapHistogram.Sample} message Sample\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n Sample.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.typeCount = [];\n if (options.defaults)\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.ts = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.ts = options.longs === String ? \"0\" : 0;\n if (message.ts != null && message.hasOwnProperty(\"ts\"))\n if (typeof message.ts === \"number\")\n object.ts = options.longs === String ? String(message.ts) : message.ts;\n else\n object.ts = options.longs === String ? $util.Long.prototype.toString.call(message.ts) : options.longs === Number ? new $util.LongBits(message.ts.low >>> 0, message.ts.high >>> 0).toNumber() : message.ts;\n if (message.typeCount && message.typeCount.length) {\n object.typeCount = [];\n for (var j = 0; j < message.typeCount.length; ++j)\n object.typeCount[j] = $root.perfetto.protos.JavaHeapHistogram.TypeCount.toObject(message.typeCount[j], options);\n }\n return object;\n };\n\n /**\n * Converts this Sample to JSON.\n * @function toJSON\n * @memberof perfetto.protos.JavaHeapHistogram.Sample\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n Sample.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return Sample;\n })();\n\n JavaHeapHistogram.InstanceStats = (function() {\n\n /**\n * Properties of an InstanceStats.\n * @memberof perfetto.protos.JavaHeapHistogram\n * @interface IInstanceStats\n * @property {number|null} [upid] InstanceStats upid\n * @property {perfetto.protos.IAndroidProcessMetadata|null} [process] InstanceStats process\n * @property {Array.<perfetto.protos.JavaHeapHistogram.ISample>|null} [samples] InstanceStats samples\n */\n\n /**\n * Constructs a new InstanceStats.\n * @memberof perfetto.protos.JavaHeapHistogram\n * @classdesc Represents an InstanceStats.\n * @implements IInstanceStats\n * @constructor\n * @param {perfetto.protos.JavaHeapHistogram.IInstanceStats=} [properties] Properties to set\n */\n function InstanceStats(properties) {\n this.samples = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * InstanceStats upid.\n * @member {number} upid\n * @memberof perfetto.protos.JavaHeapHistogram.InstanceStats\n * @instance\n */\n InstanceStats.prototype.upid = 0;\n\n /**\n * InstanceStats process.\n * @member {perfetto.protos.IAndroidProcessMetadata|null|undefined} process\n * @memberof perfetto.protos.JavaHeapHistogram.InstanceStats\n * @instance\n */\n InstanceStats.prototype.process = null;\n\n /**\n * InstanceStats samples.\n * @member {Array.<perfetto.protos.JavaHeapHistogram.ISample>} samples\n * @memberof perfetto.protos.JavaHeapHistogram.InstanceStats\n * @instance\n */\n InstanceStats.prototype.samples = $util.emptyArray;\n\n /**\n * Creates a new InstanceStats instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.JavaHeapHistogram.InstanceStats\n * @static\n * @param {perfetto.protos.JavaHeapHistogram.IInstanceStats=} [properties] Properties to set\n * @returns {perfetto.protos.JavaHeapHistogram.InstanceStats} InstanceStats instance\n */\n InstanceStats.create = function create(properties) {\n return new InstanceStats(properties);\n };\n\n /**\n * Encodes the specified InstanceStats message. Does not implicitly {@link perfetto.protos.JavaHeapHistogram.InstanceStats.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.JavaHeapHistogram.InstanceStats\n * @static\n * @param {perfetto.protos.JavaHeapHistogram.IInstanceStats} message InstanceStats message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n InstanceStats.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.upid != null && Object.hasOwnProperty.call(message, \"upid\"))\n writer.uint32(/* id 1, wireType 0 =*/8).uint32(message.upid);\n if (message.process != null && Object.hasOwnProperty.call(message, \"process\"))\n $root.perfetto.protos.AndroidProcessMetadata.encode(message.process, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n if (message.samples != null && message.samples.length)\n for (var i = 0; i < message.samples.length; ++i)\n $root.perfetto.protos.JavaHeapHistogram.Sample.encode(message.samples[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified InstanceStats message, length delimited. Does not implicitly {@link perfetto.protos.JavaHeapHistogram.InstanceStats.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.JavaHeapHistogram.InstanceStats\n * @static\n * @param {perfetto.protos.JavaHeapHistogram.IInstanceStats} message InstanceStats message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n InstanceStats.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes an InstanceStats message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.JavaHeapHistogram.InstanceStats\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.JavaHeapHistogram.InstanceStats} InstanceStats\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n InstanceStats.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.JavaHeapHistogram.InstanceStats();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.upid = reader.uint32();\n break;\n case 2:\n message.process = $root.perfetto.protos.AndroidProcessMetadata.decode(reader, reader.uint32());\n break;\n case 3:\n if (!(message.samples && message.samples.length))\n message.samples = [];\n message.samples.push($root.perfetto.protos.JavaHeapHistogram.Sample.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes an InstanceStats message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.JavaHeapHistogram.InstanceStats\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.JavaHeapHistogram.InstanceStats} InstanceStats\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n InstanceStats.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies an InstanceStats message.\n * @function verify\n * @memberof perfetto.protos.JavaHeapHistogram.InstanceStats\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n InstanceStats.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.upid != null && message.hasOwnProperty(\"upid\"))\n if (!$util.isInteger(message.upid))\n return \"upid: integer expected\";\n if (message.process != null && message.hasOwnProperty(\"process\")) {\n var error = $root.perfetto.protos.AndroidProcessMetadata.verify(message.process);\n if (error)\n return \"process.\" + error;\n }\n if (message.samples != null && message.hasOwnProperty(\"samples\")) {\n if (!Array.isArray(message.samples))\n return \"samples: array expected\";\n for (var i = 0; i < message.samples.length; ++i) {\n var error = $root.perfetto.protos.JavaHeapHistogram.Sample.verify(message.samples[i]);\n if (error)\n return \"samples.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates an InstanceStats message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.JavaHeapHistogram.InstanceStats\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.JavaHeapHistogram.InstanceStats} InstanceStats\n */\n InstanceStats.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.JavaHeapHistogram.InstanceStats)\n return object;\n var message = new $root.perfetto.protos.JavaHeapHistogram.InstanceStats();\n if (object.upid != null)\n message.upid = object.upid >>> 0;\n if (object.process != null) {\n if (typeof object.process !== \"object\")\n throw TypeError(\".perfetto.protos.JavaHeapHistogram.InstanceStats.process: object expected\");\n message.process = $root.perfetto.protos.AndroidProcessMetadata.fromObject(object.process);\n }\n if (object.samples) {\n if (!Array.isArray(object.samples))\n throw TypeError(\".perfetto.protos.JavaHeapHistogram.InstanceStats.samples: array expected\");\n message.samples = [];\n for (var i = 0; i < object.samples.length; ++i) {\n if (typeof object.samples[i] !== \"object\")\n throw TypeError(\".perfetto.protos.JavaHeapHistogram.InstanceStats.samples: object expected\");\n message.samples[i] = $root.perfetto.protos.JavaHeapHistogram.Sample.fromObject(object.samples[i]);\n }\n }\n return message;\n };\n\n /**\n * Creates a plain object from an InstanceStats message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.JavaHeapHistogram.InstanceStats\n * @static\n * @param {perfetto.protos.JavaHeapHistogram.InstanceStats} message InstanceStats\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n InstanceStats.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.samples = [];\n if (options.defaults) {\n object.upid = 0;\n object.process = null;\n }\n if (message.upid != null && message.hasOwnProperty(\"upid\"))\n object.upid = message.upid;\n if (message.process != null && message.hasOwnProperty(\"process\"))\n object.process = $root.perfetto.protos.AndroidProcessMetadata.toObject(message.process, options);\n if (message.samples && message.samples.length) {\n object.samples = [];\n for (var j = 0; j < message.samples.length; ++j)\n object.samples[j] = $root.perfetto.protos.JavaHeapHistogram.Sample.toObject(message.samples[j], options);\n }\n return object;\n };\n\n /**\n * Converts this InstanceStats to JSON.\n * @function toJSON\n * @memberof perfetto.protos.JavaHeapHistogram.InstanceStats\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n InstanceStats.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return InstanceStats;\n })();\n\n return JavaHeapHistogram;\n })();\n\n protos.AndroidProcessMetadata = (function() {\n\n /**\n * Properties of an AndroidProcessMetadata.\n * @memberof perfetto.protos\n * @interface IAndroidProcessMetadata\n * @property {string|null} [name] AndroidProcessMetadata name\n * @property {number|null} [uid] AndroidProcessMetadata uid\n * @property {perfetto.protos.AndroidProcessMetadata.IPackage|null} [\"package\"] AndroidProcessMetadata package\n * @property {Array.<perfetto.protos.AndroidProcessMetadata.IPackage>|null} [packagesForUid] AndroidProcessMetadata packagesForUid\n */\n\n /**\n * Constructs a new AndroidProcessMetadata.\n * @memberof perfetto.protos\n * @classdesc Represents an AndroidProcessMetadata.\n * @implements IAndroidProcessMetadata\n * @constructor\n * @param {perfetto.protos.IAndroidProcessMetadata=} [properties] Properties to set\n */\n function AndroidProcessMetadata(properties) {\n this.packagesForUid = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * AndroidProcessMetadata name.\n * @member {string} name\n * @memberof perfetto.protos.AndroidProcessMetadata\n * @instance\n */\n AndroidProcessMetadata.prototype.name = \"\";\n\n /**\n * AndroidProcessMetadata uid.\n * @member {number} uid\n * @memberof perfetto.protos.AndroidProcessMetadata\n * @instance\n */\n AndroidProcessMetadata.prototype.uid = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * AndroidProcessMetadata package.\n * @member {perfetto.protos.AndroidProcessMetadata.IPackage|null|undefined} package\n * @memberof perfetto.protos.AndroidProcessMetadata\n * @instance\n */\n AndroidProcessMetadata.prototype[\"package\"] = null;\n\n /**\n * AndroidProcessMetadata packagesForUid.\n * @member {Array.<perfetto.protos.AndroidProcessMetadata.IPackage>} packagesForUid\n * @memberof perfetto.protos.AndroidProcessMetadata\n * @instance\n */\n AndroidProcessMetadata.prototype.packagesForUid = $util.emptyArray;\n\n /**\n * Creates a new AndroidProcessMetadata instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidProcessMetadata\n * @static\n * @param {perfetto.protos.IAndroidProcessMetadata=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidProcessMetadata} AndroidProcessMetadata instance\n */\n AndroidProcessMetadata.create = function create(properties) {\n return new AndroidProcessMetadata(properties);\n };\n\n /**\n * Encodes the specified AndroidProcessMetadata message. Does not implicitly {@link perfetto.protos.AndroidProcessMetadata.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidProcessMetadata\n * @static\n * @param {perfetto.protos.IAndroidProcessMetadata} message AndroidProcessMetadata message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n AndroidProcessMetadata.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.name != null && Object.hasOwnProperty.call(message, \"name\"))\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.name);\n if (message.uid != null && Object.hasOwnProperty.call(message, \"uid\"))\n writer.uint32(/* id 2, wireType 0 =*/16).int64(message.uid);\n if (message[\"package\"] != null && Object.hasOwnProperty.call(message, \"package\"))\n $root.perfetto.protos.AndroidProcessMetadata.Package.encode(message[\"package\"], writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim();\n if (message.packagesForUid != null && message.packagesForUid.length)\n for (var i = 0; i < message.packagesForUid.length; ++i)\n $root.perfetto.protos.AndroidProcessMetadata.Package.encode(message.packagesForUid[i], writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified AndroidProcessMetadata message, length delimited. Does not implicitly {@link perfetto.protos.AndroidProcessMetadata.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidProcessMetadata\n * @static\n * @param {perfetto.protos.IAndroidProcessMetadata} message AndroidProcessMetadata message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n AndroidProcessMetadata.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes an AndroidProcessMetadata message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidProcessMetadata\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidProcessMetadata} AndroidProcessMetadata\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n AndroidProcessMetadata.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidProcessMetadata();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.name = reader.string();\n break;\n case 2:\n message.uid = reader.int64();\n break;\n case 7:\n message[\"package\"] = $root.perfetto.protos.AndroidProcessMetadata.Package.decode(reader, reader.uint32());\n break;\n case 8:\n if (!(message.packagesForUid && message.packagesForUid.length))\n message.packagesForUid = [];\n message.packagesForUid.push($root.perfetto.protos.AndroidProcessMetadata.Package.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes an AndroidProcessMetadata message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidProcessMetadata\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidProcessMetadata} AndroidProcessMetadata\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n AndroidProcessMetadata.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies an AndroidProcessMetadata message.\n * @function verify\n * @memberof perfetto.protos.AndroidProcessMetadata\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n AndroidProcessMetadata.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.name != null && message.hasOwnProperty(\"name\"))\n if (!$util.isString(message.name))\n return \"name: string expected\";\n if (message.uid != null && message.hasOwnProperty(\"uid\"))\n if (!$util.isInteger(message.uid) && !(message.uid && $util.isInteger(message.uid.low) && $util.isInteger(message.uid.high)))\n return \"uid: integer|Long expected\";\n if (message[\"package\"] != null && message.hasOwnProperty(\"package\")) {\n var error = $root.perfetto.protos.AndroidProcessMetadata.Package.verify(message[\"package\"]);\n if (error)\n return \"package.\" + error;\n }\n if (message.packagesForUid != null && message.hasOwnProperty(\"packagesForUid\")) {\n if (!Array.isArray(message.packagesForUid))\n return \"packagesForUid: array expected\";\n for (var i = 0; i < message.packagesForUid.length; ++i) {\n var error = $root.perfetto.protos.AndroidProcessMetadata.Package.verify(message.packagesForUid[i]);\n if (error)\n return \"packagesForUid.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates an AndroidProcessMetadata message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidProcessMetadata\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidProcessMetadata} AndroidProcessMetadata\n */\n AndroidProcessMetadata.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidProcessMetadata)\n return object;\n var message = new $root.perfetto.protos.AndroidProcessMetadata();\n if (object.name != null)\n message.name = String(object.name);\n if (object.uid != null)\n if ($util.Long)\n (message.uid = $util.Long.fromValue(object.uid)).unsigned = false;\n else if (typeof object.uid === \"string\")\n message.uid = parseInt(object.uid, 10);\n else if (typeof object.uid === \"number\")\n message.uid = object.uid;\n else if (typeof object.uid === \"object\")\n message.uid = new $util.LongBits(object.uid.low >>> 0, object.uid.high >>> 0).toNumber();\n if (object[\"package\"] != null) {\n if (typeof object[\"package\"] !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidProcessMetadata.package: object expected\");\n message[\"package\"] = $root.perfetto.protos.AndroidProcessMetadata.Package.fromObject(object[\"package\"]);\n }\n if (object.packagesForUid) {\n if (!Array.isArray(object.packagesForUid))\n throw TypeError(\".perfetto.protos.AndroidProcessMetadata.packagesForUid: array expected\");\n message.packagesForUid = [];\n for (var i = 0; i < object.packagesForUid.length; ++i) {\n if (typeof object.packagesForUid[i] !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidProcessMetadata.packagesForUid: object expected\");\n message.packagesForUid[i] = $root.perfetto.protos.AndroidProcessMetadata.Package.fromObject(object.packagesForUid[i]);\n }\n }\n return message;\n };\n\n /**\n * Creates a plain object from an AndroidProcessMetadata message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidProcessMetadata\n * @static\n * @param {perfetto.protos.AndroidProcessMetadata} message AndroidProcessMetadata\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n AndroidProcessMetadata.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.packagesForUid = [];\n if (options.defaults) {\n object.name = \"\";\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.uid = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.uid = options.longs === String ? \"0\" : 0;\n object[\"package\"] = null;\n }\n if (message.name != null && message.hasOwnProperty(\"name\"))\n object.name = message.name;\n if (message.uid != null && message.hasOwnProperty(\"uid\"))\n if (typeof message.uid === \"number\")\n object.uid = options.longs === String ? String(message.uid) : message.uid;\n else\n object.uid = options.longs === String ? $util.Long.prototype.toString.call(message.uid) : options.longs === Number ? new $util.LongBits(message.uid.low >>> 0, message.uid.high >>> 0).toNumber() : message.uid;\n if (message[\"package\"] != null && message.hasOwnProperty(\"package\"))\n object[\"package\"] = $root.perfetto.protos.AndroidProcessMetadata.Package.toObject(message[\"package\"], options);\n if (message.packagesForUid && message.packagesForUid.length) {\n object.packagesForUid = [];\n for (var j = 0; j < message.packagesForUid.length; ++j)\n object.packagesForUid[j] = $root.perfetto.protos.AndroidProcessMetadata.Package.toObject(message.packagesForUid[j], options);\n }\n return object;\n };\n\n /**\n * Converts this AndroidProcessMetadata to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidProcessMetadata\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n AndroidProcessMetadata.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n AndroidProcessMetadata.Package = (function() {\n\n /**\n * Properties of a Package.\n * @memberof perfetto.protos.AndroidProcessMetadata\n * @interface IPackage\n * @property {string|null} [packageName] Package packageName\n * @property {number|null} [apkVersionCode] Package apkVersionCode\n * @property {boolean|null} [debuggable] Package debuggable\n */\n\n /**\n * Constructs a new Package.\n * @memberof perfetto.protos.AndroidProcessMetadata\n * @classdesc Represents a Package.\n * @implements IPackage\n * @constructor\n * @param {perfetto.protos.AndroidProcessMetadata.IPackage=} [properties] Properties to set\n */\n function Package(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * Package packageName.\n * @member {string} packageName\n * @memberof perfetto.protos.AndroidProcessMetadata.Package\n * @instance\n */\n Package.prototype.packageName = \"\";\n\n /**\n * Package apkVersionCode.\n * @member {number} apkVersionCode\n * @memberof perfetto.protos.AndroidProcessMetadata.Package\n * @instance\n */\n Package.prototype.apkVersionCode = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * Package debuggable.\n * @member {boolean} debuggable\n * @memberof perfetto.protos.AndroidProcessMetadata.Package\n * @instance\n */\n Package.prototype.debuggable = false;\n\n /**\n * Creates a new Package instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidProcessMetadata.Package\n * @static\n * @param {perfetto.protos.AndroidProcessMetadata.IPackage=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidProcessMetadata.Package} Package instance\n */\n Package.create = function create(properties) {\n return new Package(properties);\n };\n\n /**\n * Encodes the specified Package message. Does not implicitly {@link perfetto.protos.AndroidProcessMetadata.Package.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidProcessMetadata.Package\n * @static\n * @param {perfetto.protos.AndroidProcessMetadata.IPackage} message Package message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Package.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.packageName != null && Object.hasOwnProperty.call(message, \"packageName\"))\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.packageName);\n if (message.apkVersionCode != null && Object.hasOwnProperty.call(message, \"apkVersionCode\"))\n writer.uint32(/* id 2, wireType 0 =*/16).int64(message.apkVersionCode);\n if (message.debuggable != null && Object.hasOwnProperty.call(message, \"debuggable\"))\n writer.uint32(/* id 3, wireType 0 =*/24).bool(message.debuggable);\n return writer;\n };\n\n /**\n * Encodes the specified Package message, length delimited. Does not implicitly {@link perfetto.protos.AndroidProcessMetadata.Package.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidProcessMetadata.Package\n * @static\n * @param {perfetto.protos.AndroidProcessMetadata.IPackage} message Package message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Package.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a Package message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidProcessMetadata.Package\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidProcessMetadata.Package} Package\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Package.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidProcessMetadata.Package();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.packageName = reader.string();\n break;\n case 2:\n message.apkVersionCode = reader.int64();\n break;\n case 3:\n message.debuggable = reader.bool();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a Package message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidProcessMetadata.Package\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidProcessMetadata.Package} Package\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Package.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a Package message.\n * @function verify\n * @memberof perfetto.protos.AndroidProcessMetadata.Package\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n Package.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.packageName != null && message.hasOwnProperty(\"packageName\"))\n if (!$util.isString(message.packageName))\n return \"packageName: string expected\";\n if (message.apkVersionCode != null && message.hasOwnProperty(\"apkVersionCode\"))\n if (!$util.isInteger(message.apkVersionCode) && !(message.apkVersionCode && $util.isInteger(message.apkVersionCode.low) && $util.isInteger(message.apkVersionCode.high)))\n return \"apkVersionCode: integer|Long expected\";\n if (message.debuggable != null && message.hasOwnProperty(\"debuggable\"))\n if (typeof message.debuggable !== \"boolean\")\n return \"debuggable: boolean expected\";\n return null;\n };\n\n /**\n * Creates a Package message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidProcessMetadata.Package\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidProcessMetadata.Package} Package\n */\n Package.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidProcessMetadata.Package)\n return object;\n var message = new $root.perfetto.protos.AndroidProcessMetadata.Package();\n if (object.packageName != null)\n message.packageName = String(object.packageName);\n if (object.apkVersionCode != null)\n if ($util.Long)\n (message.apkVersionCode = $util.Long.fromValue(object.apkVersionCode)).unsigned = false;\n else if (typeof object.apkVersionCode === \"string\")\n message.apkVersionCode = parseInt(object.apkVersionCode, 10);\n else if (typeof object.apkVersionCode === \"number\")\n message.apkVersionCode = object.apkVersionCode;\n else if (typeof object.apkVersionCode === \"object\")\n message.apkVersionCode = new $util.LongBits(object.apkVersionCode.low >>> 0, object.apkVersionCode.high >>> 0).toNumber();\n if (object.debuggable != null)\n message.debuggable = Boolean(object.debuggable);\n return message;\n };\n\n /**\n * Creates a plain object from a Package message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidProcessMetadata.Package\n * @static\n * @param {perfetto.protos.AndroidProcessMetadata.Package} message Package\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n Package.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.packageName = \"\";\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.apkVersionCode = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.apkVersionCode = options.longs === String ? \"0\" : 0;\n object.debuggable = false;\n }\n if (message.packageName != null && message.hasOwnProperty(\"packageName\"))\n object.packageName = message.packageName;\n if (message.apkVersionCode != null && message.hasOwnProperty(\"apkVersionCode\"))\n if (typeof message.apkVersionCode === \"number\")\n object.apkVersionCode = options.longs === String ? String(message.apkVersionCode) : message.apkVersionCode;\n else\n object.apkVersionCode = options.longs === String ? $util.Long.prototype.toString.call(message.apkVersionCode) : options.longs === Number ? new $util.LongBits(message.apkVersionCode.low >>> 0, message.apkVersionCode.high >>> 0).toNumber() : message.apkVersionCode;\n if (message.debuggable != null && message.hasOwnProperty(\"debuggable\"))\n object.debuggable = message.debuggable;\n return object;\n };\n\n /**\n * Converts this Package to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidProcessMetadata.Package\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n Package.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return Package;\n })();\n\n return AndroidProcessMetadata;\n })();\n\n protos.JavaHeapStats = (function() {\n\n /**\n * Properties of a JavaHeapStats.\n * @memberof perfetto.protos\n * @interface IJavaHeapStats\n * @property {Array.<perfetto.protos.JavaHeapStats.IInstanceStats>|null} [instanceStats] JavaHeapStats instanceStats\n */\n\n /**\n * Constructs a new JavaHeapStats.\n * @memberof perfetto.protos\n * @classdesc Represents a JavaHeapStats.\n * @implements IJavaHeapStats\n * @constructor\n * @param {perfetto.protos.IJavaHeapStats=} [properties] Properties to set\n */\n function JavaHeapStats(properties) {\n this.instanceStats = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * JavaHeapStats instanceStats.\n * @member {Array.<perfetto.protos.JavaHeapStats.IInstanceStats>} instanceStats\n * @memberof perfetto.protos.JavaHeapStats\n * @instance\n */\n JavaHeapStats.prototype.instanceStats = $util.emptyArray;\n\n /**\n * Creates a new JavaHeapStats instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.JavaHeapStats\n * @static\n * @param {perfetto.protos.IJavaHeapStats=} [properties] Properties to set\n * @returns {perfetto.protos.JavaHeapStats} JavaHeapStats instance\n */\n JavaHeapStats.create = function create(properties) {\n return new JavaHeapStats(properties);\n };\n\n /**\n * Encodes the specified JavaHeapStats message. Does not implicitly {@link perfetto.protos.JavaHeapStats.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.JavaHeapStats\n * @static\n * @param {perfetto.protos.IJavaHeapStats} message JavaHeapStats message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n JavaHeapStats.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.instanceStats != null && message.instanceStats.length)\n for (var i = 0; i < message.instanceStats.length; ++i)\n $root.perfetto.protos.JavaHeapStats.InstanceStats.encode(message.instanceStats[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified JavaHeapStats message, length delimited. Does not implicitly {@link perfetto.protos.JavaHeapStats.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.JavaHeapStats\n * @static\n * @param {perfetto.protos.IJavaHeapStats} message JavaHeapStats message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n JavaHeapStats.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a JavaHeapStats message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.JavaHeapStats\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.JavaHeapStats} JavaHeapStats\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n JavaHeapStats.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.JavaHeapStats();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (!(message.instanceStats && message.instanceStats.length))\n message.instanceStats = [];\n message.instanceStats.push($root.perfetto.protos.JavaHeapStats.InstanceStats.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a JavaHeapStats message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.JavaHeapStats\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.JavaHeapStats} JavaHeapStats\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n JavaHeapStats.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a JavaHeapStats message.\n * @function verify\n * @memberof perfetto.protos.JavaHeapStats\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n JavaHeapStats.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.instanceStats != null && message.hasOwnProperty(\"instanceStats\")) {\n if (!Array.isArray(message.instanceStats))\n return \"instanceStats: array expected\";\n for (var i = 0; i < message.instanceStats.length; ++i) {\n var error = $root.perfetto.protos.JavaHeapStats.InstanceStats.verify(message.instanceStats[i]);\n if (error)\n return \"instanceStats.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates a JavaHeapStats message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.JavaHeapStats\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.JavaHeapStats} JavaHeapStats\n */\n JavaHeapStats.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.JavaHeapStats)\n return object;\n var message = new $root.perfetto.protos.JavaHeapStats();\n if (object.instanceStats) {\n if (!Array.isArray(object.instanceStats))\n throw TypeError(\".perfetto.protos.JavaHeapStats.instanceStats: array expected\");\n message.instanceStats = [];\n for (var i = 0; i < object.instanceStats.length; ++i) {\n if (typeof object.instanceStats[i] !== \"object\")\n throw TypeError(\".perfetto.protos.JavaHeapStats.instanceStats: object expected\");\n message.instanceStats[i] = $root.perfetto.protos.JavaHeapStats.InstanceStats.fromObject(object.instanceStats[i]);\n }\n }\n return message;\n };\n\n /**\n * Creates a plain object from a JavaHeapStats message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.JavaHeapStats\n * @static\n * @param {perfetto.protos.JavaHeapStats} message JavaHeapStats\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n JavaHeapStats.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.instanceStats = [];\n if (message.instanceStats && message.instanceStats.length) {\n object.instanceStats = [];\n for (var j = 0; j < message.instanceStats.length; ++j)\n object.instanceStats[j] = $root.perfetto.protos.JavaHeapStats.InstanceStats.toObject(message.instanceStats[j], options);\n }\n return object;\n };\n\n /**\n * Converts this JavaHeapStats to JSON.\n * @function toJSON\n * @memberof perfetto.protos.JavaHeapStats\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n JavaHeapStats.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n JavaHeapStats.HeapRoots = (function() {\n\n /**\n * Properties of a HeapRoots.\n * @memberof perfetto.protos.JavaHeapStats\n * @interface IHeapRoots\n * @property {string|null} [rootType] HeapRoots rootType\n * @property {string|null} [typeName] HeapRoots typeName\n * @property {number|null} [objCount] HeapRoots objCount\n */\n\n /**\n * Constructs a new HeapRoots.\n * @memberof perfetto.protos.JavaHeapStats\n * @classdesc Represents a HeapRoots.\n * @implements IHeapRoots\n * @constructor\n * @param {perfetto.protos.JavaHeapStats.IHeapRoots=} [properties] Properties to set\n */\n function HeapRoots(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * HeapRoots rootType.\n * @member {string} rootType\n * @memberof perfetto.protos.JavaHeapStats.HeapRoots\n * @instance\n */\n HeapRoots.prototype.rootType = \"\";\n\n /**\n * HeapRoots typeName.\n * @member {string} typeName\n * @memberof perfetto.protos.JavaHeapStats.HeapRoots\n * @instance\n */\n HeapRoots.prototype.typeName = \"\";\n\n /**\n * HeapRoots objCount.\n * @member {number} objCount\n * @memberof perfetto.protos.JavaHeapStats.HeapRoots\n * @instance\n */\n HeapRoots.prototype.objCount = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * Creates a new HeapRoots instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.JavaHeapStats.HeapRoots\n * @static\n * @param {perfetto.protos.JavaHeapStats.IHeapRoots=} [properties] Properties to set\n * @returns {perfetto.protos.JavaHeapStats.HeapRoots} HeapRoots instance\n */\n HeapRoots.create = function create(properties) {\n return new HeapRoots(properties);\n };\n\n /**\n * Encodes the specified HeapRoots message. Does not implicitly {@link perfetto.protos.JavaHeapStats.HeapRoots.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.JavaHeapStats.HeapRoots\n * @static\n * @param {perfetto.protos.JavaHeapStats.IHeapRoots} message HeapRoots message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n HeapRoots.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.rootType != null && Object.hasOwnProperty.call(message, \"rootType\"))\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.rootType);\n if (message.typeName != null && Object.hasOwnProperty.call(message, \"typeName\"))\n writer.uint32(/* id 2, wireType 2 =*/18).string(message.typeName);\n if (message.objCount != null && Object.hasOwnProperty.call(message, \"objCount\"))\n writer.uint32(/* id 3, wireType 0 =*/24).int64(message.objCount);\n return writer;\n };\n\n /**\n * Encodes the specified HeapRoots message, length delimited. Does not implicitly {@link perfetto.protos.JavaHeapStats.HeapRoots.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.JavaHeapStats.HeapRoots\n * @static\n * @param {perfetto.protos.JavaHeapStats.IHeapRoots} message HeapRoots message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n HeapRoots.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a HeapRoots message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.JavaHeapStats.HeapRoots\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.JavaHeapStats.HeapRoots} HeapRoots\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n HeapRoots.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.JavaHeapStats.HeapRoots();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.rootType = reader.string();\n break;\n case 2:\n message.typeName = reader.string();\n break;\n case 3:\n message.objCount = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a HeapRoots message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.JavaHeapStats.HeapRoots\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.JavaHeapStats.HeapRoots} HeapRoots\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n HeapRoots.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a HeapRoots message.\n * @function verify\n * @memberof perfetto.protos.JavaHeapStats.HeapRoots\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n HeapRoots.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.rootType != null && message.hasOwnProperty(\"rootType\"))\n if (!$util.isString(message.rootType))\n return \"rootType: string expected\";\n if (message.typeName != null && message.hasOwnProperty(\"typeName\"))\n if (!$util.isString(message.typeName))\n return \"typeName: string expected\";\n if (message.objCount != null && message.hasOwnProperty(\"objCount\"))\n if (!$util.isInteger(message.objCount) && !(message.objCount && $util.isInteger(message.objCount.low) && $util.isInteger(message.objCount.high)))\n return \"objCount: integer|Long expected\";\n return null;\n };\n\n /**\n * Creates a HeapRoots message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.JavaHeapStats.HeapRoots\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.JavaHeapStats.HeapRoots} HeapRoots\n */\n HeapRoots.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.JavaHeapStats.HeapRoots)\n return object;\n var message = new $root.perfetto.protos.JavaHeapStats.HeapRoots();\n if (object.rootType != null)\n message.rootType = String(object.rootType);\n if (object.typeName != null)\n message.typeName = String(object.typeName);\n if (object.objCount != null)\n if ($util.Long)\n (message.objCount = $util.Long.fromValue(object.objCount)).unsigned = false;\n else if (typeof object.objCount === \"string\")\n message.objCount = parseInt(object.objCount, 10);\n else if (typeof object.objCount === \"number\")\n message.objCount = object.objCount;\n else if (typeof object.objCount === \"object\")\n message.objCount = new $util.LongBits(object.objCount.low >>> 0, object.objCount.high >>> 0).toNumber();\n return message;\n };\n\n /**\n * Creates a plain object from a HeapRoots message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.JavaHeapStats.HeapRoots\n * @static\n * @param {perfetto.protos.JavaHeapStats.HeapRoots} message HeapRoots\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n HeapRoots.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.rootType = \"\";\n object.typeName = \"\";\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.objCount = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.objCount = options.longs === String ? \"0\" : 0;\n }\n if (message.rootType != null && message.hasOwnProperty(\"rootType\"))\n object.rootType = message.rootType;\n if (message.typeName != null && message.hasOwnProperty(\"typeName\"))\n object.typeName = message.typeName;\n if (message.objCount != null && message.hasOwnProperty(\"objCount\"))\n if (typeof message.objCount === \"number\")\n object.objCount = options.longs === String ? String(message.objCount) : message.objCount;\n else\n object.objCount = options.longs === String ? $util.Long.prototype.toString.call(message.objCount) : options.longs === Number ? new $util.LongBits(message.objCount.low >>> 0, message.objCount.high >>> 0).toNumber() : message.objCount;\n return object;\n };\n\n /**\n * Converts this HeapRoots to JSON.\n * @function toJSON\n * @memberof perfetto.protos.JavaHeapStats.HeapRoots\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n HeapRoots.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return HeapRoots;\n })();\n\n JavaHeapStats.Sample = (function() {\n\n /**\n * Properties of a Sample.\n * @memberof perfetto.protos.JavaHeapStats\n * @interface ISample\n * @property {number|null} [ts] Sample ts\n * @property {number|null} [heapSize] Sample heapSize\n * @property {number|null} [heapNativeSize] Sample heapNativeSize\n * @property {number|null} [objCount] Sample objCount\n * @property {number|null} [reachableHeapSize] Sample reachableHeapSize\n * @property {number|null} [reachableHeapNativeSize] Sample reachableHeapNativeSize\n * @property {number|null} [reachableObjCount] Sample reachableObjCount\n * @property {number|null} [anonRssAndSwapSize] Sample anonRssAndSwapSize\n * @property {Array.<perfetto.protos.JavaHeapStats.IHeapRoots>|null} [roots] Sample roots\n */\n\n /**\n * Constructs a new Sample.\n * @memberof perfetto.protos.JavaHeapStats\n * @classdesc Represents a Sample.\n * @implements ISample\n * @constructor\n * @param {perfetto.protos.JavaHeapStats.ISample=} [properties] Properties to set\n */\n function Sample(properties) {\n this.roots = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * Sample ts.\n * @member {number} ts\n * @memberof perfetto.protos.JavaHeapStats.Sample\n * @instance\n */\n Sample.prototype.ts = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * Sample heapSize.\n * @member {number} heapSize\n * @memberof perfetto.protos.JavaHeapStats.Sample\n * @instance\n */\n Sample.prototype.heapSize = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * Sample heapNativeSize.\n * @member {number} heapNativeSize\n * @memberof perfetto.protos.JavaHeapStats.Sample\n * @instance\n */\n Sample.prototype.heapNativeSize = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * Sample objCount.\n * @member {number} objCount\n * @memberof perfetto.protos.JavaHeapStats.Sample\n * @instance\n */\n Sample.prototype.objCount = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * Sample reachableHeapSize.\n * @member {number} reachableHeapSize\n * @memberof perfetto.protos.JavaHeapStats.Sample\n * @instance\n */\n Sample.prototype.reachableHeapSize = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * Sample reachableHeapNativeSize.\n * @member {number} reachableHeapNativeSize\n * @memberof perfetto.protos.JavaHeapStats.Sample\n * @instance\n */\n Sample.prototype.reachableHeapNativeSize = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * Sample reachableObjCount.\n * @member {number} reachableObjCount\n * @memberof perfetto.protos.JavaHeapStats.Sample\n * @instance\n */\n Sample.prototype.reachableObjCount = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * Sample anonRssAndSwapSize.\n * @member {number} anonRssAndSwapSize\n * @memberof perfetto.protos.JavaHeapStats.Sample\n * @instance\n */\n Sample.prototype.anonRssAndSwapSize = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * Sample roots.\n * @member {Array.<perfetto.protos.JavaHeapStats.IHeapRoots>} roots\n * @memberof perfetto.protos.JavaHeapStats.Sample\n * @instance\n */\n Sample.prototype.roots = $util.emptyArray;\n\n /**\n * Creates a new Sample instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.JavaHeapStats.Sample\n * @static\n * @param {perfetto.protos.JavaHeapStats.ISample=} [properties] Properties to set\n * @returns {perfetto.protos.JavaHeapStats.Sample} Sample instance\n */\n Sample.create = function create(properties) {\n return new Sample(properties);\n };\n\n /**\n * Encodes the specified Sample message. Does not implicitly {@link perfetto.protos.JavaHeapStats.Sample.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.JavaHeapStats.Sample\n * @static\n * @param {perfetto.protos.JavaHeapStats.ISample} message Sample message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Sample.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.ts != null && Object.hasOwnProperty.call(message, \"ts\"))\n writer.uint32(/* id 1, wireType 0 =*/8).int64(message.ts);\n if (message.heapSize != null && Object.hasOwnProperty.call(message, \"heapSize\"))\n writer.uint32(/* id 2, wireType 0 =*/16).int64(message.heapSize);\n if (message.reachableHeapSize != null && Object.hasOwnProperty.call(message, \"reachableHeapSize\"))\n writer.uint32(/* id 3, wireType 0 =*/24).int64(message.reachableHeapSize);\n if (message.objCount != null && Object.hasOwnProperty.call(message, \"objCount\"))\n writer.uint32(/* id 4, wireType 0 =*/32).int64(message.objCount);\n if (message.reachableObjCount != null && Object.hasOwnProperty.call(message, \"reachableObjCount\"))\n writer.uint32(/* id 5, wireType 0 =*/40).int64(message.reachableObjCount);\n if (message.anonRssAndSwapSize != null && Object.hasOwnProperty.call(message, \"anonRssAndSwapSize\"))\n writer.uint32(/* id 6, wireType 0 =*/48).int64(message.anonRssAndSwapSize);\n if (message.roots != null && message.roots.length)\n for (var i = 0; i < message.roots.length; ++i)\n $root.perfetto.protos.JavaHeapStats.HeapRoots.encode(message.roots[i], writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim();\n if (message.heapNativeSize != null && Object.hasOwnProperty.call(message, \"heapNativeSize\"))\n writer.uint32(/* id 8, wireType 0 =*/64).int64(message.heapNativeSize);\n if (message.reachableHeapNativeSize != null && Object.hasOwnProperty.call(message, \"reachableHeapNativeSize\"))\n writer.uint32(/* id 9, wireType 0 =*/72).int64(message.reachableHeapNativeSize);\n return writer;\n };\n\n /**\n * Encodes the specified Sample message, length delimited. Does not implicitly {@link perfetto.protos.JavaHeapStats.Sample.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.JavaHeapStats.Sample\n * @static\n * @param {perfetto.protos.JavaHeapStats.ISample} message Sample message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Sample.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a Sample message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.JavaHeapStats.Sample\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.JavaHeapStats.Sample} Sample\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Sample.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.JavaHeapStats.Sample();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.ts = reader.int64();\n break;\n case 2:\n message.heapSize = reader.int64();\n break;\n case 8:\n message.heapNativeSize = reader.int64();\n break;\n case 4:\n message.objCount = reader.int64();\n break;\n case 3:\n message.reachableHeapSize = reader.int64();\n break;\n case 9:\n message.reachableHeapNativeSize = reader.int64();\n break;\n case 5:\n message.reachableObjCount = reader.int64();\n break;\n case 6:\n message.anonRssAndSwapSize = reader.int64();\n break;\n case 7:\n if (!(message.roots && message.roots.length))\n message.roots = [];\n message.roots.push($root.perfetto.protos.JavaHeapStats.HeapRoots.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a Sample message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.JavaHeapStats.Sample\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.JavaHeapStats.Sample} Sample\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Sample.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a Sample message.\n * @function verify\n * @memberof perfetto.protos.JavaHeapStats.Sample\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n Sample.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.ts != null && message.hasOwnProperty(\"ts\"))\n if (!$util.isInteger(message.ts) && !(message.ts && $util.isInteger(message.ts.low) && $util.isInteger(message.ts.high)))\n return \"ts: integer|Long expected\";\n if (message.heapSize != null && message.hasOwnProperty(\"heapSize\"))\n if (!$util.isInteger(message.heapSize) && !(message.heapSize && $util.isInteger(message.heapSize.low) && $util.isInteger(message.heapSize.high)))\n return \"heapSize: integer|Long expected\";\n if (message.heapNativeSize != null && message.hasOwnProperty(\"heapNativeSize\"))\n if (!$util.isInteger(message.heapNativeSize) && !(message.heapNativeSize && $util.isInteger(message.heapNativeSize.low) && $util.isInteger(message.heapNativeSize.high)))\n return \"heapNativeSize: integer|Long expected\";\n if (message.objCount != null && message.hasOwnProperty(\"objCount\"))\n if (!$util.isInteger(message.objCount) && !(message.objCount && $util.isInteger(message.objCount.low) && $util.isInteger(message.objCount.high)))\n return \"objCount: integer|Long expected\";\n if (message.reachableHeapSize != null && message.hasOwnProperty(\"reachableHeapSize\"))\n if (!$util.isInteger(message.reachableHeapSize) && !(message.reachableHeapSize && $util.isInteger(message.reachableHeapSize.low) && $util.isInteger(message.reachableHeapSize.high)))\n return \"reachableHeapSize: integer|Long expected\";\n if (message.reachableHeapNativeSize != null && message.hasOwnProperty(\"reachableHeapNativeSize\"))\n if (!$util.isInteger(message.reachableHeapNativeSize) && !(message.reachableHeapNativeSize && $util.isInteger(message.reachableHeapNativeSize.low) && $util.isInteger(message.reachableHeapNativeSize.high)))\n return \"reachableHeapNativeSize: integer|Long expected\";\n if (message.reachableObjCount != null && message.hasOwnProperty(\"reachableObjCount\"))\n if (!$util.isInteger(message.reachableObjCount) && !(message.reachableObjCount && $util.isInteger(message.reachableObjCount.low) && $util.isInteger(message.reachableObjCount.high)))\n return \"reachableObjCount: integer|Long expected\";\n if (message.anonRssAndSwapSize != null && message.hasOwnProperty(\"anonRssAndSwapSize\"))\n if (!$util.isInteger(message.anonRssAndSwapSize) && !(message.anonRssAndSwapSize && $util.isInteger(message.anonRssAndSwapSize.low) && $util.isInteger(message.anonRssAndSwapSize.high)))\n return \"anonRssAndSwapSize: integer|Long expected\";\n if (message.roots != null && message.hasOwnProperty(\"roots\")) {\n if (!Array.isArray(message.roots))\n return \"roots: array expected\";\n for (var i = 0; i < message.roots.length; ++i) {\n var error = $root.perfetto.protos.JavaHeapStats.HeapRoots.verify(message.roots[i]);\n if (error)\n return \"roots.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates a Sample message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.JavaHeapStats.Sample\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.JavaHeapStats.Sample} Sample\n */\n Sample.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.JavaHeapStats.Sample)\n return object;\n var message = new $root.perfetto.protos.JavaHeapStats.Sample();\n if (object.ts != null)\n if ($util.Long)\n (message.ts = $util.Long.fromValue(object.ts)).unsigned = false;\n else if (typeof object.ts === \"string\")\n message.ts = parseInt(object.ts, 10);\n else if (typeof object.ts === \"number\")\n message.ts = object.ts;\n else if (typeof object.ts === \"object\")\n message.ts = new $util.LongBits(object.ts.low >>> 0, object.ts.high >>> 0).toNumber();\n if (object.heapSize != null)\n if ($util.Long)\n (message.heapSize = $util.Long.fromValue(object.heapSize)).unsigned = false;\n else if (typeof object.heapSize === \"string\")\n message.heapSize = parseInt(object.heapSize, 10);\n else if (typeof object.heapSize === \"number\")\n message.heapSize = object.heapSize;\n else if (typeof object.heapSize === \"object\")\n message.heapSize = new $util.LongBits(object.heapSize.low >>> 0, object.heapSize.high >>> 0).toNumber();\n if (object.heapNativeSize != null)\n if ($util.Long)\n (message.heapNativeSize = $util.Long.fromValue(object.heapNativeSize)).unsigned = false;\n else if (typeof object.heapNativeSize === \"string\")\n message.heapNativeSize = parseInt(object.heapNativeSize, 10);\n else if (typeof object.heapNativeSize === \"number\")\n message.heapNativeSize = object.heapNativeSize;\n else if (typeof object.heapNativeSize === \"object\")\n message.heapNativeSize = new $util.LongBits(object.heapNativeSize.low >>> 0, object.heapNativeSize.high >>> 0).toNumber();\n if (object.objCount != null)\n if ($util.Long)\n (message.objCount = $util.Long.fromValue(object.objCount)).unsigned = false;\n else if (typeof object.objCount === \"string\")\n message.objCount = parseInt(object.objCount, 10);\n else if (typeof object.objCount === \"number\")\n message.objCount = object.objCount;\n else if (typeof object.objCount === \"object\")\n message.objCount = new $util.LongBits(object.objCount.low >>> 0, object.objCount.high >>> 0).toNumber();\n if (object.reachableHeapSize != null)\n if ($util.Long)\n (message.reachableHeapSize = $util.Long.fromValue(object.reachableHeapSize)).unsigned = false;\n else if (typeof object.reachableHeapSize === \"string\")\n message.reachableHeapSize = parseInt(object.reachableHeapSize, 10);\n else if (typeof object.reachableHeapSize === \"number\")\n message.reachableHeapSize = object.reachableHeapSize;\n else if (typeof object.reachableHeapSize === \"object\")\n message.reachableHeapSize = new $util.LongBits(object.reachableHeapSize.low >>> 0, object.reachableHeapSize.high >>> 0).toNumber();\n if (object.reachableHeapNativeSize != null)\n if ($util.Long)\n (message.reachableHeapNativeSize = $util.Long.fromValue(object.reachableHeapNativeSize)).unsigned = false;\n else if (typeof object.reachableHeapNativeSize === \"string\")\n message.reachableHeapNativeSize = parseInt(object.reachableHeapNativeSize, 10);\n else if (typeof object.reachableHeapNativeSize === \"number\")\n message.reachableHeapNativeSize = object.reachableHeapNativeSize;\n else if (typeof object.reachableHeapNativeSize === \"object\")\n message.reachableHeapNativeSize = new $util.LongBits(object.reachableHeapNativeSize.low >>> 0, object.reachableHeapNativeSize.high >>> 0).toNumber();\n if (object.reachableObjCount != null)\n if ($util.Long)\n (message.reachableObjCount = $util.Long.fromValue(object.reachableObjCount)).unsigned = false;\n else if (typeof object.reachableObjCount === \"string\")\n message.reachableObjCount = parseInt(object.reachableObjCount, 10);\n else if (typeof object.reachableObjCount === \"number\")\n message.reachableObjCount = object.reachableObjCount;\n else if (typeof object.reachableObjCount === \"object\")\n message.reachableObjCount = new $util.LongBits(object.reachableObjCount.low >>> 0, object.reachableObjCount.high >>> 0).toNumber();\n if (object.anonRssAndSwapSize != null)\n if ($util.Long)\n (message.anonRssAndSwapSize = $util.Long.fromValue(object.anonRssAndSwapSize)).unsigned = false;\n else if (typeof object.anonRssAndSwapSize === \"string\")\n message.anonRssAndSwapSize = parseInt(object.anonRssAndSwapSize, 10);\n else if (typeof object.anonRssAndSwapSize === \"number\")\n message.anonRssAndSwapSize = object.anonRssAndSwapSize;\n else if (typeof object.anonRssAndSwapSize === \"object\")\n message.anonRssAndSwapSize = new $util.LongBits(object.anonRssAndSwapSize.low >>> 0, object.anonRssAndSwapSize.high >>> 0).toNumber();\n if (object.roots) {\n if (!Array.isArray(object.roots))\n throw TypeError(\".perfetto.protos.JavaHeapStats.Sample.roots: array expected\");\n message.roots = [];\n for (var i = 0; i < object.roots.length; ++i) {\n if (typeof object.roots[i] !== \"object\")\n throw TypeError(\".perfetto.protos.JavaHeapStats.Sample.roots: object expected\");\n message.roots[i] = $root.perfetto.protos.JavaHeapStats.HeapRoots.fromObject(object.roots[i]);\n }\n }\n return message;\n };\n\n /**\n * Creates a plain object from a Sample message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.JavaHeapStats.Sample\n * @static\n * @param {perfetto.protos.JavaHeapStats.Sample} message Sample\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n Sample.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.roots = [];\n if (options.defaults) {\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.ts = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.ts = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.heapSize = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.heapSize = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.reachableHeapSize = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.reachableHeapSize = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.objCount = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.objCount = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.reachableObjCount = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.reachableObjCount = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.anonRssAndSwapSize = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.anonRssAndSwapSize = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.heapNativeSize = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.heapNativeSize = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.reachableHeapNativeSize = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.reachableHeapNativeSize = options.longs === String ? \"0\" : 0;\n }\n if (message.ts != null && message.hasOwnProperty(\"ts\"))\n if (typeof message.ts === \"number\")\n object.ts = options.longs === String ? String(message.ts) : message.ts;\n else\n object.ts = options.longs === String ? $util.Long.prototype.toString.call(message.ts) : options.longs === Number ? new $util.LongBits(message.ts.low >>> 0, message.ts.high >>> 0).toNumber() : message.ts;\n if (message.heapSize != null && message.hasOwnProperty(\"heapSize\"))\n if (typeof message.heapSize === \"number\")\n object.heapSize = options.longs === String ? String(message.heapSize) : message.heapSize;\n else\n object.heapSize = options.longs === String ? $util.Long.prototype.toString.call(message.heapSize) : options.longs === Number ? new $util.LongBits(message.heapSize.low >>> 0, message.heapSize.high >>> 0).toNumber() : message.heapSize;\n if (message.reachableHeapSize != null && message.hasOwnProperty(\"reachableHeapSize\"))\n if (typeof message.reachableHeapSize === \"number\")\n object.reachableHeapSize = options.longs === String ? String(message.reachableHeapSize) : message.reachableHeapSize;\n else\n object.reachableHeapSize = options.longs === String ? $util.Long.prototype.toString.call(message.reachableHeapSize) : options.longs === Number ? new $util.LongBits(message.reachableHeapSize.low >>> 0, message.reachableHeapSize.high >>> 0).toNumber() : message.reachableHeapSize;\n if (message.objCount != null && message.hasOwnProperty(\"objCount\"))\n if (typeof message.objCount === \"number\")\n object.objCount = options.longs === String ? String(message.objCount) : message.objCount;\n else\n object.objCount = options.longs === String ? $util.Long.prototype.toString.call(message.objCount) : options.longs === Number ? new $util.LongBits(message.objCount.low >>> 0, message.objCount.high >>> 0).toNumber() : message.objCount;\n if (message.reachableObjCount != null && message.hasOwnProperty(\"reachableObjCount\"))\n if (typeof message.reachableObjCount === \"number\")\n object.reachableObjCount = options.longs === String ? String(message.reachableObjCount) : message.reachableObjCount;\n else\n object.reachableObjCount = options.longs === String ? $util.Long.prototype.toString.call(message.reachableObjCount) : options.longs === Number ? new $util.LongBits(message.reachableObjCount.low >>> 0, message.reachableObjCount.high >>> 0).toNumber() : message.reachableObjCount;\n if (message.anonRssAndSwapSize != null && message.hasOwnProperty(\"anonRssAndSwapSize\"))\n if (typeof message.anonRssAndSwapSize === \"number\")\n object.anonRssAndSwapSize = options.longs === String ? String(message.anonRssAndSwapSize) : message.anonRssAndSwapSize;\n else\n object.anonRssAndSwapSize = options.longs === String ? $util.Long.prototype.toString.call(message.anonRssAndSwapSize) : options.longs === Number ? new $util.LongBits(message.anonRssAndSwapSize.low >>> 0, message.anonRssAndSwapSize.high >>> 0).toNumber() : message.anonRssAndSwapSize;\n if (message.roots && message.roots.length) {\n object.roots = [];\n for (var j = 0; j < message.roots.length; ++j)\n object.roots[j] = $root.perfetto.protos.JavaHeapStats.HeapRoots.toObject(message.roots[j], options);\n }\n if (message.heapNativeSize != null && message.hasOwnProperty(\"heapNativeSize\"))\n if (typeof message.heapNativeSize === \"number\")\n object.heapNativeSize = options.longs === String ? String(message.heapNativeSize) : message.heapNativeSize;\n else\n object.heapNativeSize = options.longs === String ? $util.Long.prototype.toString.call(message.heapNativeSize) : options.longs === Number ? new $util.LongBits(message.heapNativeSize.low >>> 0, message.heapNativeSize.high >>> 0).toNumber() : message.heapNativeSize;\n if (message.reachableHeapNativeSize != null && message.hasOwnProperty(\"reachableHeapNativeSize\"))\n if (typeof message.reachableHeapNativeSize === \"number\")\n object.reachableHeapNativeSize = options.longs === String ? String(message.reachableHeapNativeSize) : message.reachableHeapNativeSize;\n else\n object.reachableHeapNativeSize = options.longs === String ? $util.Long.prototype.toString.call(message.reachableHeapNativeSize) : options.longs === Number ? new $util.LongBits(message.reachableHeapNativeSize.low >>> 0, message.reachableHeapNativeSize.high >>> 0).toNumber() : message.reachableHeapNativeSize;\n return object;\n };\n\n /**\n * Converts this Sample to JSON.\n * @function toJSON\n * @memberof perfetto.protos.JavaHeapStats.Sample\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n Sample.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return Sample;\n })();\n\n JavaHeapStats.InstanceStats = (function() {\n\n /**\n * Properties of an InstanceStats.\n * @memberof perfetto.protos.JavaHeapStats\n * @interface IInstanceStats\n * @property {number|null} [upid] InstanceStats upid\n * @property {perfetto.protos.IAndroidProcessMetadata|null} [process] InstanceStats process\n * @property {Array.<perfetto.protos.JavaHeapStats.ISample>|null} [samples] InstanceStats samples\n */\n\n /**\n * Constructs a new InstanceStats.\n * @memberof perfetto.protos.JavaHeapStats\n * @classdesc Represents an InstanceStats.\n * @implements IInstanceStats\n * @constructor\n * @param {perfetto.protos.JavaHeapStats.IInstanceStats=} [properties] Properties to set\n */\n function InstanceStats(properties) {\n this.samples = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * InstanceStats upid.\n * @member {number} upid\n * @memberof perfetto.protos.JavaHeapStats.InstanceStats\n * @instance\n */\n InstanceStats.prototype.upid = 0;\n\n /**\n * InstanceStats process.\n * @member {perfetto.protos.IAndroidProcessMetadata|null|undefined} process\n * @memberof perfetto.protos.JavaHeapStats.InstanceStats\n * @instance\n */\n InstanceStats.prototype.process = null;\n\n /**\n * InstanceStats samples.\n * @member {Array.<perfetto.protos.JavaHeapStats.ISample>} samples\n * @memberof perfetto.protos.JavaHeapStats.InstanceStats\n * @instance\n */\n InstanceStats.prototype.samples = $util.emptyArray;\n\n /**\n * Creates a new InstanceStats instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.JavaHeapStats.InstanceStats\n * @static\n * @param {perfetto.protos.JavaHeapStats.IInstanceStats=} [properties] Properties to set\n * @returns {perfetto.protos.JavaHeapStats.InstanceStats} InstanceStats instance\n */\n InstanceStats.create = function create(properties) {\n return new InstanceStats(properties);\n };\n\n /**\n * Encodes the specified InstanceStats message. Does not implicitly {@link perfetto.protos.JavaHeapStats.InstanceStats.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.JavaHeapStats.InstanceStats\n * @static\n * @param {perfetto.protos.JavaHeapStats.IInstanceStats} message InstanceStats message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n InstanceStats.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.upid != null && Object.hasOwnProperty.call(message, \"upid\"))\n writer.uint32(/* id 1, wireType 0 =*/8).uint32(message.upid);\n if (message.process != null && Object.hasOwnProperty.call(message, \"process\"))\n $root.perfetto.protos.AndroidProcessMetadata.encode(message.process, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n if (message.samples != null && message.samples.length)\n for (var i = 0; i < message.samples.length; ++i)\n $root.perfetto.protos.JavaHeapStats.Sample.encode(message.samples[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified InstanceStats message, length delimited. Does not implicitly {@link perfetto.protos.JavaHeapStats.InstanceStats.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.JavaHeapStats.InstanceStats\n * @static\n * @param {perfetto.protos.JavaHeapStats.IInstanceStats} message InstanceStats message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n InstanceStats.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes an InstanceStats message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.JavaHeapStats.InstanceStats\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.JavaHeapStats.InstanceStats} InstanceStats\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n InstanceStats.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.JavaHeapStats.InstanceStats();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.upid = reader.uint32();\n break;\n case 2:\n message.process = $root.perfetto.protos.AndroidProcessMetadata.decode(reader, reader.uint32());\n break;\n case 3:\n if (!(message.samples && message.samples.length))\n message.samples = [];\n message.samples.push($root.perfetto.protos.JavaHeapStats.Sample.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes an InstanceStats message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.JavaHeapStats.InstanceStats\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.JavaHeapStats.InstanceStats} InstanceStats\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n InstanceStats.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies an InstanceStats message.\n * @function verify\n * @memberof perfetto.protos.JavaHeapStats.InstanceStats\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n InstanceStats.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.upid != null && message.hasOwnProperty(\"upid\"))\n if (!$util.isInteger(message.upid))\n return \"upid: integer expected\";\n if (message.process != null && message.hasOwnProperty(\"process\")) {\n var error = $root.perfetto.protos.AndroidProcessMetadata.verify(message.process);\n if (error)\n return \"process.\" + error;\n }\n if (message.samples != null && message.hasOwnProperty(\"samples\")) {\n if (!Array.isArray(message.samples))\n return \"samples: array expected\";\n for (var i = 0; i < message.samples.length; ++i) {\n var error = $root.perfetto.protos.JavaHeapStats.Sample.verify(message.samples[i]);\n if (error)\n return \"samples.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates an InstanceStats message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.JavaHeapStats.InstanceStats\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.JavaHeapStats.InstanceStats} InstanceStats\n */\n InstanceStats.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.JavaHeapStats.InstanceStats)\n return object;\n var message = new $root.perfetto.protos.JavaHeapStats.InstanceStats();\n if (object.upid != null)\n message.upid = object.upid >>> 0;\n if (object.process != null) {\n if (typeof object.process !== \"object\")\n throw TypeError(\".perfetto.protos.JavaHeapStats.InstanceStats.process: object expected\");\n message.process = $root.perfetto.protos.AndroidProcessMetadata.fromObject(object.process);\n }\n if (object.samples) {\n if (!Array.isArray(object.samples))\n throw TypeError(\".perfetto.protos.JavaHeapStats.InstanceStats.samples: array expected\");\n message.samples = [];\n for (var i = 0; i < object.samples.length; ++i) {\n if (typeof object.samples[i] !== \"object\")\n throw TypeError(\".perfetto.protos.JavaHeapStats.InstanceStats.samples: object expected\");\n message.samples[i] = $root.perfetto.protos.JavaHeapStats.Sample.fromObject(object.samples[i]);\n }\n }\n return message;\n };\n\n /**\n * Creates a plain object from an InstanceStats message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.JavaHeapStats.InstanceStats\n * @static\n * @param {perfetto.protos.JavaHeapStats.InstanceStats} message InstanceStats\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n InstanceStats.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.samples = [];\n if (options.defaults) {\n object.upid = 0;\n object.process = null;\n }\n if (message.upid != null && message.hasOwnProperty(\"upid\"))\n object.upid = message.upid;\n if (message.process != null && message.hasOwnProperty(\"process\"))\n object.process = $root.perfetto.protos.AndroidProcessMetadata.toObject(message.process, options);\n if (message.samples && message.samples.length) {\n object.samples = [];\n for (var j = 0; j < message.samples.length; ++j)\n object.samples[j] = $root.perfetto.protos.JavaHeapStats.Sample.toObject(message.samples[j], options);\n }\n return object;\n };\n\n /**\n * Converts this InstanceStats to JSON.\n * @function toJSON\n * @memberof perfetto.protos.JavaHeapStats.InstanceStats\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n InstanceStats.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return InstanceStats;\n })();\n\n return JavaHeapStats;\n })();\n\n protos.AndroidLmkMetric = (function() {\n\n /**\n * Properties of an AndroidLmkMetric.\n * @memberof perfetto.protos\n * @interface IAndroidLmkMetric\n * @property {number|null} [totalCount] AndroidLmkMetric totalCount\n * @property {Array.<perfetto.protos.AndroidLmkMetric.IByOomScore>|null} [byOomScore] AndroidLmkMetric byOomScore\n * @property {number|null} [oomVictimCount] AndroidLmkMetric oomVictimCount\n */\n\n /**\n * Constructs a new AndroidLmkMetric.\n * @memberof perfetto.protos\n * @classdesc Represents an AndroidLmkMetric.\n * @implements IAndroidLmkMetric\n * @constructor\n * @param {perfetto.protos.IAndroidLmkMetric=} [properties] Properties to set\n */\n function AndroidLmkMetric(properties) {\n this.byOomScore = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * AndroidLmkMetric totalCount.\n * @member {number} totalCount\n * @memberof perfetto.protos.AndroidLmkMetric\n * @instance\n */\n AndroidLmkMetric.prototype.totalCount = 0;\n\n /**\n * AndroidLmkMetric byOomScore.\n * @member {Array.<perfetto.protos.AndroidLmkMetric.IByOomScore>} byOomScore\n * @memberof perfetto.protos.AndroidLmkMetric\n * @instance\n */\n AndroidLmkMetric.prototype.byOomScore = $util.emptyArray;\n\n /**\n * AndroidLmkMetric oomVictimCount.\n * @member {number} oomVictimCount\n * @memberof perfetto.protos.AndroidLmkMetric\n * @instance\n */\n AndroidLmkMetric.prototype.oomVictimCount = 0;\n\n /**\n * Creates a new AndroidLmkMetric instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidLmkMetric\n * @static\n * @param {perfetto.protos.IAndroidLmkMetric=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidLmkMetric} AndroidLmkMetric instance\n */\n AndroidLmkMetric.create = function create(properties) {\n return new AndroidLmkMetric(properties);\n };\n\n /**\n * Encodes the specified AndroidLmkMetric message. Does not implicitly {@link perfetto.protos.AndroidLmkMetric.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidLmkMetric\n * @static\n * @param {perfetto.protos.IAndroidLmkMetric} message AndroidLmkMetric message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n AndroidLmkMetric.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.totalCount != null && Object.hasOwnProperty.call(message, \"totalCount\"))\n writer.uint32(/* id 1, wireType 0 =*/8).int32(message.totalCount);\n if (message.byOomScore != null && message.byOomScore.length)\n for (var i = 0; i < message.byOomScore.length; ++i)\n $root.perfetto.protos.AndroidLmkMetric.ByOomScore.encode(message.byOomScore[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n if (message.oomVictimCount != null && Object.hasOwnProperty.call(message, \"oomVictimCount\"))\n writer.uint32(/* id 3, wireType 0 =*/24).int32(message.oomVictimCount);\n return writer;\n };\n\n /**\n * Encodes the specified AndroidLmkMetric message, length delimited. Does not implicitly {@link perfetto.protos.AndroidLmkMetric.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidLmkMetric\n * @static\n * @param {perfetto.protos.IAndroidLmkMetric} message AndroidLmkMetric message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n AndroidLmkMetric.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes an AndroidLmkMetric message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidLmkMetric\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidLmkMetric} AndroidLmkMetric\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n AndroidLmkMetric.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidLmkMetric();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.totalCount = reader.int32();\n break;\n case 2:\n if (!(message.byOomScore && message.byOomScore.length))\n message.byOomScore = [];\n message.byOomScore.push($root.perfetto.protos.AndroidLmkMetric.ByOomScore.decode(reader, reader.uint32()));\n break;\n case 3:\n message.oomVictimCount = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes an AndroidLmkMetric message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidLmkMetric\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidLmkMetric} AndroidLmkMetric\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n AndroidLmkMetric.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies an AndroidLmkMetric message.\n * @function verify\n * @memberof perfetto.protos.AndroidLmkMetric\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n AndroidLmkMetric.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.totalCount != null && message.hasOwnProperty(\"totalCount\"))\n if (!$util.isInteger(message.totalCount))\n return \"totalCount: integer expected\";\n if (message.byOomScore != null && message.hasOwnProperty(\"byOomScore\")) {\n if (!Array.isArray(message.byOomScore))\n return \"byOomScore: array expected\";\n for (var i = 0; i < message.byOomScore.length; ++i) {\n var error = $root.perfetto.protos.AndroidLmkMetric.ByOomScore.verify(message.byOomScore[i]);\n if (error)\n return \"byOomScore.\" + error;\n }\n }\n if (message.oomVictimCount != null && message.hasOwnProperty(\"oomVictimCount\"))\n if (!$util.isInteger(message.oomVictimCount))\n return \"oomVictimCount: integer expected\";\n return null;\n };\n\n /**\n * Creates an AndroidLmkMetric message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidLmkMetric\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidLmkMetric} AndroidLmkMetric\n */\n AndroidLmkMetric.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidLmkMetric)\n return object;\n var message = new $root.perfetto.protos.AndroidLmkMetric();\n if (object.totalCount != null)\n message.totalCount = object.totalCount | 0;\n if (object.byOomScore) {\n if (!Array.isArray(object.byOomScore))\n throw TypeError(\".perfetto.protos.AndroidLmkMetric.byOomScore: array expected\");\n message.byOomScore = [];\n for (var i = 0; i < object.byOomScore.length; ++i) {\n if (typeof object.byOomScore[i] !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidLmkMetric.byOomScore: object expected\");\n message.byOomScore[i] = $root.perfetto.protos.AndroidLmkMetric.ByOomScore.fromObject(object.byOomScore[i]);\n }\n }\n if (object.oomVictimCount != null)\n message.oomVictimCount = object.oomVictimCount | 0;\n return message;\n };\n\n /**\n * Creates a plain object from an AndroidLmkMetric message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidLmkMetric\n * @static\n * @param {perfetto.protos.AndroidLmkMetric} message AndroidLmkMetric\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n AndroidLmkMetric.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.byOomScore = [];\n if (options.defaults) {\n object.totalCount = 0;\n object.oomVictimCount = 0;\n }\n if (message.totalCount != null && message.hasOwnProperty(\"totalCount\"))\n object.totalCount = message.totalCount;\n if (message.byOomScore && message.byOomScore.length) {\n object.byOomScore = [];\n for (var j = 0; j < message.byOomScore.length; ++j)\n object.byOomScore[j] = $root.perfetto.protos.AndroidLmkMetric.ByOomScore.toObject(message.byOomScore[j], options);\n }\n if (message.oomVictimCount != null && message.hasOwnProperty(\"oomVictimCount\"))\n object.oomVictimCount = message.oomVictimCount;\n return object;\n };\n\n /**\n * Converts this AndroidLmkMetric to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidLmkMetric\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n AndroidLmkMetric.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n AndroidLmkMetric.ByOomScore = (function() {\n\n /**\n * Properties of a ByOomScore.\n * @memberof perfetto.protos.AndroidLmkMetric\n * @interface IByOomScore\n * @property {number|null} [oomScoreAdj] ByOomScore oomScoreAdj\n * @property {number|null} [count] ByOomScore count\n */\n\n /**\n * Constructs a new ByOomScore.\n * @memberof perfetto.protos.AndroidLmkMetric\n * @classdesc Represents a ByOomScore.\n * @implements IByOomScore\n * @constructor\n * @param {perfetto.protos.AndroidLmkMetric.IByOomScore=} [properties] Properties to set\n */\n function ByOomScore(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * ByOomScore oomScoreAdj.\n * @member {number} oomScoreAdj\n * @memberof perfetto.protos.AndroidLmkMetric.ByOomScore\n * @instance\n */\n ByOomScore.prototype.oomScoreAdj = 0;\n\n /**\n * ByOomScore count.\n * @member {number} count\n * @memberof perfetto.protos.AndroidLmkMetric.ByOomScore\n * @instance\n */\n ByOomScore.prototype.count = 0;\n\n /**\n * Creates a new ByOomScore instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidLmkMetric.ByOomScore\n * @static\n * @param {perfetto.protos.AndroidLmkMetric.IByOomScore=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidLmkMetric.ByOomScore} ByOomScore instance\n */\n ByOomScore.create = function create(properties) {\n return new ByOomScore(properties);\n };\n\n /**\n * Encodes the specified ByOomScore message. Does not implicitly {@link perfetto.protos.AndroidLmkMetric.ByOomScore.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidLmkMetric.ByOomScore\n * @static\n * @param {perfetto.protos.AndroidLmkMetric.IByOomScore} message ByOomScore message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ByOomScore.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.oomScoreAdj != null && Object.hasOwnProperty.call(message, \"oomScoreAdj\"))\n writer.uint32(/* id 1, wireType 0 =*/8).int32(message.oomScoreAdj);\n if (message.count != null && Object.hasOwnProperty.call(message, \"count\"))\n writer.uint32(/* id 2, wireType 0 =*/16).int32(message.count);\n return writer;\n };\n\n /**\n * Encodes the specified ByOomScore message, length delimited. Does not implicitly {@link perfetto.protos.AndroidLmkMetric.ByOomScore.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidLmkMetric.ByOomScore\n * @static\n * @param {perfetto.protos.AndroidLmkMetric.IByOomScore} message ByOomScore message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ByOomScore.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a ByOomScore message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidLmkMetric.ByOomScore\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidLmkMetric.ByOomScore} ByOomScore\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ByOomScore.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidLmkMetric.ByOomScore();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.oomScoreAdj = reader.int32();\n break;\n case 2:\n message.count = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a ByOomScore message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidLmkMetric.ByOomScore\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidLmkMetric.ByOomScore} ByOomScore\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ByOomScore.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a ByOomScore message.\n * @function verify\n * @memberof perfetto.protos.AndroidLmkMetric.ByOomScore\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n ByOomScore.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.oomScoreAdj != null && message.hasOwnProperty(\"oomScoreAdj\"))\n if (!$util.isInteger(message.oomScoreAdj))\n return \"oomScoreAdj: integer expected\";\n if (message.count != null && message.hasOwnProperty(\"count\"))\n if (!$util.isInteger(message.count))\n return \"count: integer expected\";\n return null;\n };\n\n /**\n * Creates a ByOomScore message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidLmkMetric.ByOomScore\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidLmkMetric.ByOomScore} ByOomScore\n */\n ByOomScore.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidLmkMetric.ByOomScore)\n return object;\n var message = new $root.perfetto.protos.AndroidLmkMetric.ByOomScore();\n if (object.oomScoreAdj != null)\n message.oomScoreAdj = object.oomScoreAdj | 0;\n if (object.count != null)\n message.count = object.count | 0;\n return message;\n };\n\n /**\n * Creates a plain object from a ByOomScore message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidLmkMetric.ByOomScore\n * @static\n * @param {perfetto.protos.AndroidLmkMetric.ByOomScore} message ByOomScore\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n ByOomScore.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.oomScoreAdj = 0;\n object.count = 0;\n }\n if (message.oomScoreAdj != null && message.hasOwnProperty(\"oomScoreAdj\"))\n object.oomScoreAdj = message.oomScoreAdj;\n if (message.count != null && message.hasOwnProperty(\"count\"))\n object.count = message.count;\n return object;\n };\n\n /**\n * Converts this ByOomScore to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidLmkMetric.ByOomScore\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n ByOomScore.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return ByOomScore;\n })();\n\n return AndroidLmkMetric;\n })();\n\n protos.AndroidLmkReasonMetric = (function() {\n\n /**\n * Properties of an AndroidLmkReasonMetric.\n * @memberof perfetto.protos\n * @interface IAndroidLmkReasonMetric\n * @property {Array.<perfetto.protos.AndroidLmkReasonMetric.ILmk>|null} [lmks] AndroidLmkReasonMetric lmks\n */\n\n /**\n * Constructs a new AndroidLmkReasonMetric.\n * @memberof perfetto.protos\n * @classdesc Represents an AndroidLmkReasonMetric.\n * @implements IAndroidLmkReasonMetric\n * @constructor\n * @param {perfetto.protos.IAndroidLmkReasonMetric=} [properties] Properties to set\n */\n function AndroidLmkReasonMetric(properties) {\n this.lmks = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * AndroidLmkReasonMetric lmks.\n * @member {Array.<perfetto.protos.AndroidLmkReasonMetric.ILmk>} lmks\n * @memberof perfetto.protos.AndroidLmkReasonMetric\n * @instance\n */\n AndroidLmkReasonMetric.prototype.lmks = $util.emptyArray;\n\n /**\n * Creates a new AndroidLmkReasonMetric instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidLmkReasonMetric\n * @static\n * @param {perfetto.protos.IAndroidLmkReasonMetric=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidLmkReasonMetric} AndroidLmkReasonMetric instance\n */\n AndroidLmkReasonMetric.create = function create(properties) {\n return new AndroidLmkReasonMetric(properties);\n };\n\n /**\n * Encodes the specified AndroidLmkReasonMetric message. Does not implicitly {@link perfetto.protos.AndroidLmkReasonMetric.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidLmkReasonMetric\n * @static\n * @param {perfetto.protos.IAndroidLmkReasonMetric} message AndroidLmkReasonMetric message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n AndroidLmkReasonMetric.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.lmks != null && message.lmks.length)\n for (var i = 0; i < message.lmks.length; ++i)\n $root.perfetto.protos.AndroidLmkReasonMetric.Lmk.encode(message.lmks[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified AndroidLmkReasonMetric message, length delimited. Does not implicitly {@link perfetto.protos.AndroidLmkReasonMetric.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidLmkReasonMetric\n * @static\n * @param {perfetto.protos.IAndroidLmkReasonMetric} message AndroidLmkReasonMetric message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n AndroidLmkReasonMetric.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes an AndroidLmkReasonMetric message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidLmkReasonMetric\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidLmkReasonMetric} AndroidLmkReasonMetric\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n AndroidLmkReasonMetric.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidLmkReasonMetric();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (!(message.lmks && message.lmks.length))\n message.lmks = [];\n message.lmks.push($root.perfetto.protos.AndroidLmkReasonMetric.Lmk.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes an AndroidLmkReasonMetric message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidLmkReasonMetric\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidLmkReasonMetric} AndroidLmkReasonMetric\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n AndroidLmkReasonMetric.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies an AndroidLmkReasonMetric message.\n * @function verify\n * @memberof perfetto.protos.AndroidLmkReasonMetric\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n AndroidLmkReasonMetric.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.lmks != null && message.hasOwnProperty(\"lmks\")) {\n if (!Array.isArray(message.lmks))\n return \"lmks: array expected\";\n for (var i = 0; i < message.lmks.length; ++i) {\n var error = $root.perfetto.protos.AndroidLmkReasonMetric.Lmk.verify(message.lmks[i]);\n if (error)\n return \"lmks.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates an AndroidLmkReasonMetric message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidLmkReasonMetric\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidLmkReasonMetric} AndroidLmkReasonMetric\n */\n AndroidLmkReasonMetric.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidLmkReasonMetric)\n return object;\n var message = new $root.perfetto.protos.AndroidLmkReasonMetric();\n if (object.lmks) {\n if (!Array.isArray(object.lmks))\n throw TypeError(\".perfetto.protos.AndroidLmkReasonMetric.lmks: array expected\");\n message.lmks = [];\n for (var i = 0; i < object.lmks.length; ++i) {\n if (typeof object.lmks[i] !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidLmkReasonMetric.lmks: object expected\");\n message.lmks[i] = $root.perfetto.protos.AndroidLmkReasonMetric.Lmk.fromObject(object.lmks[i]);\n }\n }\n return message;\n };\n\n /**\n * Creates a plain object from an AndroidLmkReasonMetric message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidLmkReasonMetric\n * @static\n * @param {perfetto.protos.AndroidLmkReasonMetric} message AndroidLmkReasonMetric\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n AndroidLmkReasonMetric.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.lmks = [];\n if (message.lmks && message.lmks.length) {\n object.lmks = [];\n for (var j = 0; j < message.lmks.length; ++j)\n object.lmks[j] = $root.perfetto.protos.AndroidLmkReasonMetric.Lmk.toObject(message.lmks[j], options);\n }\n return object;\n };\n\n /**\n * Converts this AndroidLmkReasonMetric to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidLmkReasonMetric\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n AndroidLmkReasonMetric.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n AndroidLmkReasonMetric.Process = (function() {\n\n /**\n * Properties of a Process.\n * @memberof perfetto.protos.AndroidLmkReasonMetric\n * @interface IProcess\n * @property {perfetto.protos.IAndroidProcessMetadata|null} [process] Process process\n * @property {number|null} [oomScoreAdj] Process oomScoreAdj\n * @property {number|null} [size] Process size\n * @property {number|null} [fileRssBytes] Process fileRssBytes\n * @property {number|null} [anonRssBytes] Process anonRssBytes\n * @property {number|null} [shmemRssBytes] Process shmemRssBytes\n * @property {number|null} [swapBytes] Process swapBytes\n */\n\n /**\n * Constructs a new Process.\n * @memberof perfetto.protos.AndroidLmkReasonMetric\n * @classdesc Represents a Process.\n * @implements IProcess\n * @constructor\n * @param {perfetto.protos.AndroidLmkReasonMetric.IProcess=} [properties] Properties to set\n */\n function Process(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * Process process.\n * @member {perfetto.protos.IAndroidProcessMetadata|null|undefined} process\n * @memberof perfetto.protos.AndroidLmkReasonMetric.Process\n * @instance\n */\n Process.prototype.process = null;\n\n /**\n * Process oomScoreAdj.\n * @member {number} oomScoreAdj\n * @memberof perfetto.protos.AndroidLmkReasonMetric.Process\n * @instance\n */\n Process.prototype.oomScoreAdj = 0;\n\n /**\n * Process size.\n * @member {number} size\n * @memberof perfetto.protos.AndroidLmkReasonMetric.Process\n * @instance\n */\n Process.prototype.size = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * Process fileRssBytes.\n * @member {number} fileRssBytes\n * @memberof perfetto.protos.AndroidLmkReasonMetric.Process\n * @instance\n */\n Process.prototype.fileRssBytes = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * Process anonRssBytes.\n * @member {number} anonRssBytes\n * @memberof perfetto.protos.AndroidLmkReasonMetric.Process\n * @instance\n */\n Process.prototype.anonRssBytes = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * Process shmemRssBytes.\n * @member {number} shmemRssBytes\n * @memberof perfetto.protos.AndroidLmkReasonMetric.Process\n * @instance\n */\n Process.prototype.shmemRssBytes = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * Process swapBytes.\n * @member {number} swapBytes\n * @memberof perfetto.protos.AndroidLmkReasonMetric.Process\n * @instance\n */\n Process.prototype.swapBytes = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * Creates a new Process instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidLmkReasonMetric.Process\n * @static\n * @param {perfetto.protos.AndroidLmkReasonMetric.IProcess=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidLmkReasonMetric.Process} Process instance\n */\n Process.create = function create(properties) {\n return new Process(properties);\n };\n\n /**\n * Encodes the specified Process message. Does not implicitly {@link perfetto.protos.AndroidLmkReasonMetric.Process.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidLmkReasonMetric.Process\n * @static\n * @param {perfetto.protos.AndroidLmkReasonMetric.IProcess} message Process message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Process.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.process != null && Object.hasOwnProperty.call(message, \"process\"))\n $root.perfetto.protos.AndroidProcessMetadata.encode(message.process, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n if (message.oomScoreAdj != null && Object.hasOwnProperty.call(message, \"oomScoreAdj\"))\n writer.uint32(/* id 2, wireType 0 =*/16).int32(message.oomScoreAdj);\n if (message.size != null && Object.hasOwnProperty.call(message, \"size\"))\n writer.uint32(/* id 3, wireType 0 =*/24).int64(message.size);\n if (message.fileRssBytes != null && Object.hasOwnProperty.call(message, \"fileRssBytes\"))\n writer.uint32(/* id 4, wireType 0 =*/32).int64(message.fileRssBytes);\n if (message.anonRssBytes != null && Object.hasOwnProperty.call(message, \"anonRssBytes\"))\n writer.uint32(/* id 5, wireType 0 =*/40).int64(message.anonRssBytes);\n if (message.shmemRssBytes != null && Object.hasOwnProperty.call(message, \"shmemRssBytes\"))\n writer.uint32(/* id 6, wireType 0 =*/48).int64(message.shmemRssBytes);\n if (message.swapBytes != null && Object.hasOwnProperty.call(message, \"swapBytes\"))\n writer.uint32(/* id 7, wireType 0 =*/56).int64(message.swapBytes);\n return writer;\n };\n\n /**\n * Encodes the specified Process message, length delimited. Does not implicitly {@link perfetto.protos.AndroidLmkReasonMetric.Process.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidLmkReasonMetric.Process\n * @static\n * @param {perfetto.protos.AndroidLmkReasonMetric.IProcess} message Process message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Process.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a Process message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidLmkReasonMetric.Process\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidLmkReasonMetric.Process} Process\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Process.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidLmkReasonMetric.Process();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.process = $root.perfetto.protos.AndroidProcessMetadata.decode(reader, reader.uint32());\n break;\n case 2:\n message.oomScoreAdj = reader.int32();\n break;\n case 3:\n message.size = reader.int64();\n break;\n case 4:\n message.fileRssBytes = reader.int64();\n break;\n case 5:\n message.anonRssBytes = reader.int64();\n break;\n case 6:\n message.shmemRssBytes = reader.int64();\n break;\n case 7:\n message.swapBytes = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a Process message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidLmkReasonMetric.Process\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidLmkReasonMetric.Process} Process\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Process.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a Process message.\n * @function verify\n * @memberof perfetto.protos.AndroidLmkReasonMetric.Process\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n Process.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.process != null && message.hasOwnProperty(\"process\")) {\n var error = $root.perfetto.protos.AndroidProcessMetadata.verify(message.process);\n if (error)\n return \"process.\" + error;\n }\n if (message.oomScoreAdj != null && message.hasOwnProperty(\"oomScoreAdj\"))\n if (!$util.isInteger(message.oomScoreAdj))\n return \"oomScoreAdj: integer expected\";\n if (message.size != null && message.hasOwnProperty(\"size\"))\n if (!$util.isInteger(message.size) && !(message.size && $util.isInteger(message.size.low) && $util.isInteger(message.size.high)))\n return \"size: integer|Long expected\";\n if (message.fileRssBytes != null && message.hasOwnProperty(\"fileRssBytes\"))\n if (!$util.isInteger(message.fileRssBytes) && !(message.fileRssBytes && $util.isInteger(message.fileRssBytes.low) && $util.isInteger(message.fileRssBytes.high)))\n return \"fileRssBytes: integer|Long expected\";\n if (message.anonRssBytes != null && message.hasOwnProperty(\"anonRssBytes\"))\n if (!$util.isInteger(message.anonRssBytes) && !(message.anonRssBytes && $util.isInteger(message.anonRssBytes.low) && $util.isInteger(message.anonRssBytes.high)))\n return \"anonRssBytes: integer|Long expected\";\n if (message.shmemRssBytes != null && message.hasOwnProperty(\"shmemRssBytes\"))\n if (!$util.isInteger(message.shmemRssBytes) && !(message.shmemRssBytes && $util.isInteger(message.shmemRssBytes.low) && $util.isInteger(message.shmemRssBytes.high)))\n return \"shmemRssBytes: integer|Long expected\";\n if (message.swapBytes != null && message.hasOwnProperty(\"swapBytes\"))\n if (!$util.isInteger(message.swapBytes) && !(message.swapBytes && $util.isInteger(message.swapBytes.low) && $util.isInteger(message.swapBytes.high)))\n return \"swapBytes: integer|Long expected\";\n return null;\n };\n\n /**\n * Creates a Process message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidLmkReasonMetric.Process\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidLmkReasonMetric.Process} Process\n */\n Process.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidLmkReasonMetric.Process)\n return object;\n var message = new $root.perfetto.protos.AndroidLmkReasonMetric.Process();\n if (object.process != null) {\n if (typeof object.process !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidLmkReasonMetric.Process.process: object expected\");\n message.process = $root.perfetto.protos.AndroidProcessMetadata.fromObject(object.process);\n }\n if (object.oomScoreAdj != null)\n message.oomScoreAdj = object.oomScoreAdj | 0;\n if (object.size != null)\n if ($util.Long)\n (message.size = $util.Long.fromValue(object.size)).unsigned = false;\n else if (typeof object.size === \"string\")\n message.size = parseInt(object.size, 10);\n else if (typeof object.size === \"number\")\n message.size = object.size;\n else if (typeof object.size === \"object\")\n message.size = new $util.LongBits(object.size.low >>> 0, object.size.high >>> 0).toNumber();\n if (object.fileRssBytes != null)\n if ($util.Long)\n (message.fileRssBytes = $util.Long.fromValue(object.fileRssBytes)).unsigned = false;\n else if (typeof object.fileRssBytes === \"string\")\n message.fileRssBytes = parseInt(object.fileRssBytes, 10);\n else if (typeof object.fileRssBytes === \"number\")\n message.fileRssBytes = object.fileRssBytes;\n else if (typeof object.fileRssBytes === \"object\")\n message.fileRssBytes = new $util.LongBits(object.fileRssBytes.low >>> 0, object.fileRssBytes.high >>> 0).toNumber();\n if (object.anonRssBytes != null)\n if ($util.Long)\n (message.anonRssBytes = $util.Long.fromValue(object.anonRssBytes)).unsigned = false;\n else if (typeof object.anonRssBytes === \"string\")\n message.anonRssBytes = parseInt(object.anonRssBytes, 10);\n else if (typeof object.anonRssBytes === \"number\")\n message.anonRssBytes = object.anonRssBytes;\n else if (typeof object.anonRssBytes === \"object\")\n message.anonRssBytes = new $util.LongBits(object.anonRssBytes.low >>> 0, object.anonRssBytes.high >>> 0).toNumber();\n if (object.shmemRssBytes != null)\n if ($util.Long)\n (message.shmemRssBytes = $util.Long.fromValue(object.shmemRssBytes)).unsigned = false;\n else if (typeof object.shmemRssBytes === \"string\")\n message.shmemRssBytes = parseInt(object.shmemRssBytes, 10);\n else if (typeof object.shmemRssBytes === \"number\")\n message.shmemRssBytes = object.shmemRssBytes;\n else if (typeof object.shmemRssBytes === \"object\")\n message.shmemRssBytes = new $util.LongBits(object.shmemRssBytes.low >>> 0, object.shmemRssBytes.high >>> 0).toNumber();\n if (object.swapBytes != null)\n if ($util.Long)\n (message.swapBytes = $util.Long.fromValue(object.swapBytes)).unsigned = false;\n else if (typeof object.swapBytes === \"string\")\n message.swapBytes = parseInt(object.swapBytes, 10);\n else if (typeof object.swapBytes === \"number\")\n message.swapBytes = object.swapBytes;\n else if (typeof object.swapBytes === \"object\")\n message.swapBytes = new $util.LongBits(object.swapBytes.low >>> 0, object.swapBytes.high >>> 0).toNumber();\n return message;\n };\n\n /**\n * Creates a plain object from a Process message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidLmkReasonMetric.Process\n * @static\n * @param {perfetto.protos.AndroidLmkReasonMetric.Process} message Process\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n Process.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.process = null;\n object.oomScoreAdj = 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.size = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.size = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.fileRssBytes = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.fileRssBytes = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.anonRssBytes = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.anonRssBytes = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.shmemRssBytes = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.shmemRssBytes = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.swapBytes = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.swapBytes = options.longs === String ? \"0\" : 0;\n }\n if (message.process != null && message.hasOwnProperty(\"process\"))\n object.process = $root.perfetto.protos.AndroidProcessMetadata.toObject(message.process, options);\n if (message.oomScoreAdj != null && message.hasOwnProperty(\"oomScoreAdj\"))\n object.oomScoreAdj = message.oomScoreAdj;\n if (message.size != null && message.hasOwnProperty(\"size\"))\n if (typeof message.size === \"number\")\n object.size = options.longs === String ? String(message.size) : message.size;\n else\n object.size = options.longs === String ? $util.Long.prototype.toString.call(message.size) : options.longs === Number ? new $util.LongBits(message.size.low >>> 0, message.size.high >>> 0).toNumber() : message.size;\n if (message.fileRssBytes != null && message.hasOwnProperty(\"fileRssBytes\"))\n if (typeof message.fileRssBytes === \"number\")\n object.fileRssBytes = options.longs === String ? String(message.fileRssBytes) : message.fileRssBytes;\n else\n object.fileRssBytes = options.longs === String ? $util.Long.prototype.toString.call(message.fileRssBytes) : options.longs === Number ? new $util.LongBits(message.fileRssBytes.low >>> 0, message.fileRssBytes.high >>> 0).toNumber() : message.fileRssBytes;\n if (message.anonRssBytes != null && message.hasOwnProperty(\"anonRssBytes\"))\n if (typeof message.anonRssBytes === \"number\")\n object.anonRssBytes = options.longs === String ? String(message.anonRssBytes) : message.anonRssBytes;\n else\n object.anonRssBytes = options.longs === String ? $util.Long.prototype.toString.call(message.anonRssBytes) : options.longs === Number ? new $util.LongBits(message.anonRssBytes.low >>> 0, message.anonRssBytes.high >>> 0).toNumber() : message.anonRssBytes;\n if (message.shmemRssBytes != null && message.hasOwnProperty(\"shmemRssBytes\"))\n if (typeof message.shmemRssBytes === \"number\")\n object.shmemRssBytes = options.longs === String ? String(message.shmemRssBytes) : message.shmemRssBytes;\n else\n object.shmemRssBytes = options.longs === String ? $util.Long.prototype.toString.call(message.shmemRssBytes) : options.longs === Number ? new $util.LongBits(message.shmemRssBytes.low >>> 0, message.shmemRssBytes.high >>> 0).toNumber() : message.shmemRssBytes;\n if (message.swapBytes != null && message.hasOwnProperty(\"swapBytes\"))\n if (typeof message.swapBytes === \"number\")\n object.swapBytes = options.longs === String ? String(message.swapBytes) : message.swapBytes;\n else\n object.swapBytes = options.longs === String ? $util.Long.prototype.toString.call(message.swapBytes) : options.longs === Number ? new $util.LongBits(message.swapBytes.low >>> 0, message.swapBytes.high >>> 0).toNumber() : message.swapBytes;\n return object;\n };\n\n /**\n * Converts this Process to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidLmkReasonMetric.Process\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n Process.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return Process;\n })();\n\n AndroidLmkReasonMetric.Lmk = (function() {\n\n /**\n * Properties of a Lmk.\n * @memberof perfetto.protos.AndroidLmkReasonMetric\n * @interface ILmk\n * @property {number|null} [oomScoreAdj] Lmk oomScoreAdj\n * @property {number|null} [ionHeapsBytes] Lmk ionHeapsBytes\n * @property {number|null} [systemIonHeapSize] Lmk systemIonHeapSize\n * @property {Array.<perfetto.protos.AndroidLmkReasonMetric.IProcess>|null} [processes] Lmk processes\n */\n\n /**\n * Constructs a new Lmk.\n * @memberof perfetto.protos.AndroidLmkReasonMetric\n * @classdesc Represents a Lmk.\n * @implements ILmk\n * @constructor\n * @param {perfetto.protos.AndroidLmkReasonMetric.ILmk=} [properties] Properties to set\n */\n function Lmk(properties) {\n this.processes = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * Lmk oomScoreAdj.\n * @member {number} oomScoreAdj\n * @memberof perfetto.protos.AndroidLmkReasonMetric.Lmk\n * @instance\n */\n Lmk.prototype.oomScoreAdj = 0;\n\n /**\n * Lmk ionHeapsBytes.\n * @member {number} ionHeapsBytes\n * @memberof perfetto.protos.AndroidLmkReasonMetric.Lmk\n * @instance\n */\n Lmk.prototype.ionHeapsBytes = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * Lmk systemIonHeapSize.\n * @member {number} systemIonHeapSize\n * @memberof perfetto.protos.AndroidLmkReasonMetric.Lmk\n * @instance\n */\n Lmk.prototype.systemIonHeapSize = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * Lmk processes.\n * @member {Array.<perfetto.protos.AndroidLmkReasonMetric.IProcess>} processes\n * @memberof perfetto.protos.AndroidLmkReasonMetric.Lmk\n * @instance\n */\n Lmk.prototype.processes = $util.emptyArray;\n\n /**\n * Creates a new Lmk instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidLmkReasonMetric.Lmk\n * @static\n * @param {perfetto.protos.AndroidLmkReasonMetric.ILmk=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidLmkReasonMetric.Lmk} Lmk instance\n */\n Lmk.create = function create(properties) {\n return new Lmk(properties);\n };\n\n /**\n * Encodes the specified Lmk message. Does not implicitly {@link perfetto.protos.AndroidLmkReasonMetric.Lmk.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidLmkReasonMetric.Lmk\n * @static\n * @param {perfetto.protos.AndroidLmkReasonMetric.ILmk} message Lmk message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Lmk.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.oomScoreAdj != null && Object.hasOwnProperty.call(message, \"oomScoreAdj\"))\n writer.uint32(/* id 1, wireType 0 =*/8).int32(message.oomScoreAdj);\n if (message.systemIonHeapSize != null && Object.hasOwnProperty.call(message, \"systemIonHeapSize\"))\n writer.uint32(/* id 2, wireType 0 =*/16).int64(message.systemIonHeapSize);\n if (message.processes != null && message.processes.length)\n for (var i = 0; i < message.processes.length; ++i)\n $root.perfetto.protos.AndroidLmkReasonMetric.Process.encode(message.processes[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();\n if (message.ionHeapsBytes != null && Object.hasOwnProperty.call(message, \"ionHeapsBytes\"))\n writer.uint32(/* id 4, wireType 0 =*/32).int64(message.ionHeapsBytes);\n return writer;\n };\n\n /**\n * Encodes the specified Lmk message, length delimited. Does not implicitly {@link perfetto.protos.AndroidLmkReasonMetric.Lmk.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidLmkReasonMetric.Lmk\n * @static\n * @param {perfetto.protos.AndroidLmkReasonMetric.ILmk} message Lmk message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Lmk.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a Lmk message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidLmkReasonMetric.Lmk\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidLmkReasonMetric.Lmk} Lmk\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Lmk.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidLmkReasonMetric.Lmk();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.oomScoreAdj = reader.int32();\n break;\n case 4:\n message.ionHeapsBytes = reader.int64();\n break;\n case 2:\n message.systemIonHeapSize = reader.int64();\n break;\n case 3:\n if (!(message.processes && message.processes.length))\n message.processes = [];\n message.processes.push($root.perfetto.protos.AndroidLmkReasonMetric.Process.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a Lmk message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidLmkReasonMetric.Lmk\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidLmkReasonMetric.Lmk} Lmk\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Lmk.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a Lmk message.\n * @function verify\n * @memberof perfetto.protos.AndroidLmkReasonMetric.Lmk\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n Lmk.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.oomScoreAdj != null && message.hasOwnProperty(\"oomScoreAdj\"))\n if (!$util.isInteger(message.oomScoreAdj))\n return \"oomScoreAdj: integer expected\";\n if (message.ionHeapsBytes != null && message.hasOwnProperty(\"ionHeapsBytes\"))\n if (!$util.isInteger(message.ionHeapsBytes) && !(message.ionHeapsBytes && $util.isInteger(message.ionHeapsBytes.low) && $util.isInteger(message.ionHeapsBytes.high)))\n return \"ionHeapsBytes: integer|Long expected\";\n if (message.systemIonHeapSize != null && message.hasOwnProperty(\"systemIonHeapSize\"))\n if (!$util.isInteger(message.systemIonHeapSize) && !(message.systemIonHeapSize && $util.isInteger(message.systemIonHeapSize.low) && $util.isInteger(message.systemIonHeapSize.high)))\n return \"systemIonHeapSize: integer|Long expected\";\n if (message.processes != null && message.hasOwnProperty(\"processes\")) {\n if (!Array.isArray(message.processes))\n return \"processes: array expected\";\n for (var i = 0; i < message.processes.length; ++i) {\n var error = $root.perfetto.protos.AndroidLmkReasonMetric.Process.verify(message.processes[i]);\n if (error)\n return \"processes.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates a Lmk message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidLmkReasonMetric.Lmk\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidLmkReasonMetric.Lmk} Lmk\n */\n Lmk.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidLmkReasonMetric.Lmk)\n return object;\n var message = new $root.perfetto.protos.AndroidLmkReasonMetric.Lmk();\n if (object.oomScoreAdj != null)\n message.oomScoreAdj = object.oomScoreAdj | 0;\n if (object.ionHeapsBytes != null)\n if ($util.Long)\n (message.ionHeapsBytes = $util.Long.fromValue(object.ionHeapsBytes)).unsigned = false;\n else if (typeof object.ionHeapsBytes === \"string\")\n message.ionHeapsBytes = parseInt(object.ionHeapsBytes, 10);\n else if (typeof object.ionHeapsBytes === \"number\")\n message.ionHeapsBytes = object.ionHeapsBytes;\n else if (typeof object.ionHeapsBytes === \"object\")\n message.ionHeapsBytes = new $util.LongBits(object.ionHeapsBytes.low >>> 0, object.ionHeapsBytes.high >>> 0).toNumber();\n if (object.systemIonHeapSize != null)\n if ($util.Long)\n (message.systemIonHeapSize = $util.Long.fromValue(object.systemIonHeapSize)).unsigned = false;\n else if (typeof object.systemIonHeapSize === \"string\")\n message.systemIonHeapSize = parseInt(object.systemIonHeapSize, 10);\n else if (typeof object.systemIonHeapSize === \"number\")\n message.systemIonHeapSize = object.systemIonHeapSize;\n else if (typeof object.systemIonHeapSize === \"object\")\n message.systemIonHeapSize = new $util.LongBits(object.systemIonHeapSize.low >>> 0, object.systemIonHeapSize.high >>> 0).toNumber();\n if (object.processes) {\n if (!Array.isArray(object.processes))\n throw TypeError(\".perfetto.protos.AndroidLmkReasonMetric.Lmk.processes: array expected\");\n message.processes = [];\n for (var i = 0; i < object.processes.length; ++i) {\n if (typeof object.processes[i] !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidLmkReasonMetric.Lmk.processes: object expected\");\n message.processes[i] = $root.perfetto.protos.AndroidLmkReasonMetric.Process.fromObject(object.processes[i]);\n }\n }\n return message;\n };\n\n /**\n * Creates a plain object from a Lmk message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidLmkReasonMetric.Lmk\n * @static\n * @param {perfetto.protos.AndroidLmkReasonMetric.Lmk} message Lmk\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n Lmk.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.processes = [];\n if (options.defaults) {\n object.oomScoreAdj = 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.systemIonHeapSize = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.systemIonHeapSize = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.ionHeapsBytes = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.ionHeapsBytes = options.longs === String ? \"0\" : 0;\n }\n if (message.oomScoreAdj != null && message.hasOwnProperty(\"oomScoreAdj\"))\n object.oomScoreAdj = message.oomScoreAdj;\n if (message.systemIonHeapSize != null && message.hasOwnProperty(\"systemIonHeapSize\"))\n if (typeof message.systemIonHeapSize === \"number\")\n object.systemIonHeapSize = options.longs === String ? String(message.systemIonHeapSize) : message.systemIonHeapSize;\n else\n object.systemIonHeapSize = options.longs === String ? $util.Long.prototype.toString.call(message.systemIonHeapSize) : options.longs === Number ? new $util.LongBits(message.systemIonHeapSize.low >>> 0, message.systemIonHeapSize.high >>> 0).toNumber() : message.systemIonHeapSize;\n if (message.processes && message.processes.length) {\n object.processes = [];\n for (var j = 0; j < message.processes.length; ++j)\n object.processes[j] = $root.perfetto.protos.AndroidLmkReasonMetric.Process.toObject(message.processes[j], options);\n }\n if (message.ionHeapsBytes != null && message.hasOwnProperty(\"ionHeapsBytes\"))\n if (typeof message.ionHeapsBytes === \"number\")\n object.ionHeapsBytes = options.longs === String ? String(message.ionHeapsBytes) : message.ionHeapsBytes;\n else\n object.ionHeapsBytes = options.longs === String ? $util.Long.prototype.toString.call(message.ionHeapsBytes) : options.longs === Number ? new $util.LongBits(message.ionHeapsBytes.low >>> 0, message.ionHeapsBytes.high >>> 0).toNumber() : message.ionHeapsBytes;\n return object;\n };\n\n /**\n * Converts this Lmk to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidLmkReasonMetric.Lmk\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n Lmk.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return Lmk;\n })();\n\n return AndroidLmkReasonMetric;\n })();\n\n protos.AndroidMemoryMetric = (function() {\n\n /**\n * Properties of an AndroidMemoryMetric.\n * @memberof perfetto.protos\n * @interface IAndroidMemoryMetric\n * @property {Array.<perfetto.protos.AndroidMemoryMetric.IProcessMetrics>|null} [processMetrics] AndroidMemoryMetric processMetrics\n */\n\n /**\n * Constructs a new AndroidMemoryMetric.\n * @memberof perfetto.protos\n * @classdesc Represents an AndroidMemoryMetric.\n * @implements IAndroidMemoryMetric\n * @constructor\n * @param {perfetto.protos.IAndroidMemoryMetric=} [properties] Properties to set\n */\n function AndroidMemoryMetric(properties) {\n this.processMetrics = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * AndroidMemoryMetric processMetrics.\n * @member {Array.<perfetto.protos.AndroidMemoryMetric.IProcessMetrics>} processMetrics\n * @memberof perfetto.protos.AndroidMemoryMetric\n * @instance\n */\n AndroidMemoryMetric.prototype.processMetrics = $util.emptyArray;\n\n /**\n * Creates a new AndroidMemoryMetric instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidMemoryMetric\n * @static\n * @param {perfetto.protos.IAndroidMemoryMetric=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidMemoryMetric} AndroidMemoryMetric instance\n */\n AndroidMemoryMetric.create = function create(properties) {\n return new AndroidMemoryMetric(properties);\n };\n\n /**\n * Encodes the specified AndroidMemoryMetric message. Does not implicitly {@link perfetto.protos.AndroidMemoryMetric.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidMemoryMetric\n * @static\n * @param {perfetto.protos.IAndroidMemoryMetric} message AndroidMemoryMetric message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n AndroidMemoryMetric.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.processMetrics != null && message.processMetrics.length)\n for (var i = 0; i < message.processMetrics.length; ++i)\n $root.perfetto.protos.AndroidMemoryMetric.ProcessMetrics.encode(message.processMetrics[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified AndroidMemoryMetric message, length delimited. Does not implicitly {@link perfetto.protos.AndroidMemoryMetric.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidMemoryMetric\n * @static\n * @param {perfetto.protos.IAndroidMemoryMetric} message AndroidMemoryMetric message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n AndroidMemoryMetric.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes an AndroidMemoryMetric message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidMemoryMetric\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidMemoryMetric} AndroidMemoryMetric\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n AndroidMemoryMetric.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidMemoryMetric();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (!(message.processMetrics && message.processMetrics.length))\n message.processMetrics = [];\n message.processMetrics.push($root.perfetto.protos.AndroidMemoryMetric.ProcessMetrics.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes an AndroidMemoryMetric message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidMemoryMetric\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidMemoryMetric} AndroidMemoryMetric\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n AndroidMemoryMetric.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies an AndroidMemoryMetric message.\n * @function verify\n * @memberof perfetto.protos.AndroidMemoryMetric\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n AndroidMemoryMetric.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.processMetrics != null && message.hasOwnProperty(\"processMetrics\")) {\n if (!Array.isArray(message.processMetrics))\n return \"processMetrics: array expected\";\n for (var i = 0; i < message.processMetrics.length; ++i) {\n var error = $root.perfetto.protos.AndroidMemoryMetric.ProcessMetrics.verify(message.processMetrics[i]);\n if (error)\n return \"processMetrics.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates an AndroidMemoryMetric message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidMemoryMetric\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidMemoryMetric} AndroidMemoryMetric\n */\n AndroidMemoryMetric.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidMemoryMetric)\n return object;\n var message = new $root.perfetto.protos.AndroidMemoryMetric();\n if (object.processMetrics) {\n if (!Array.isArray(object.processMetrics))\n throw TypeError(\".perfetto.protos.AndroidMemoryMetric.processMetrics: array expected\");\n message.processMetrics = [];\n for (var i = 0; i < object.processMetrics.length; ++i) {\n if (typeof object.processMetrics[i] !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidMemoryMetric.processMetrics: object expected\");\n message.processMetrics[i] = $root.perfetto.protos.AndroidMemoryMetric.ProcessMetrics.fromObject(object.processMetrics[i]);\n }\n }\n return message;\n };\n\n /**\n * Creates a plain object from an AndroidMemoryMetric message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidMemoryMetric\n * @static\n * @param {perfetto.protos.AndroidMemoryMetric} message AndroidMemoryMetric\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n AndroidMemoryMetric.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.processMetrics = [];\n if (message.processMetrics && message.processMetrics.length) {\n object.processMetrics = [];\n for (var j = 0; j < message.processMetrics.length; ++j)\n object.processMetrics[j] = $root.perfetto.protos.AndroidMemoryMetric.ProcessMetrics.toObject(message.processMetrics[j], options);\n }\n return object;\n };\n\n /**\n * Converts this AndroidMemoryMetric to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidMemoryMetric\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n AndroidMemoryMetric.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n AndroidMemoryMetric.ProcessMetrics = (function() {\n\n /**\n * Properties of a ProcessMetrics.\n * @memberof perfetto.protos.AndroidMemoryMetric\n * @interface IProcessMetrics\n * @property {string|null} [processName] ProcessMetrics processName\n * @property {perfetto.protos.AndroidMemoryMetric.IProcessMemoryCounters|null} [totalCounters] ProcessMetrics totalCounters\n * @property {Array.<perfetto.protos.AndroidMemoryMetric.IPriorityBreakdown>|null} [priorityBreakdown] ProcessMetrics priorityBreakdown\n */\n\n /**\n * Constructs a new ProcessMetrics.\n * @memberof perfetto.protos.AndroidMemoryMetric\n * @classdesc Represents a ProcessMetrics.\n * @implements IProcessMetrics\n * @constructor\n * @param {perfetto.protos.AndroidMemoryMetric.IProcessMetrics=} [properties] Properties to set\n */\n function ProcessMetrics(properties) {\n this.priorityBreakdown = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * ProcessMetrics processName.\n * @member {string} processName\n * @memberof perfetto.protos.AndroidMemoryMetric.ProcessMetrics\n * @instance\n */\n ProcessMetrics.prototype.processName = \"\";\n\n /**\n * ProcessMetrics totalCounters.\n * @member {perfetto.protos.AndroidMemoryMetric.IProcessMemoryCounters|null|undefined} totalCounters\n * @memberof perfetto.protos.AndroidMemoryMetric.ProcessMetrics\n * @instance\n */\n ProcessMetrics.prototype.totalCounters = null;\n\n /**\n * ProcessMetrics priorityBreakdown.\n * @member {Array.<perfetto.protos.AndroidMemoryMetric.IPriorityBreakdown>} priorityBreakdown\n * @memberof perfetto.protos.AndroidMemoryMetric.ProcessMetrics\n * @instance\n */\n ProcessMetrics.prototype.priorityBreakdown = $util.emptyArray;\n\n /**\n * Creates a new ProcessMetrics instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidMemoryMetric.ProcessMetrics\n * @static\n * @param {perfetto.protos.AndroidMemoryMetric.IProcessMetrics=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidMemoryMetric.ProcessMetrics} ProcessMetrics instance\n */\n ProcessMetrics.create = function create(properties) {\n return new ProcessMetrics(properties);\n };\n\n /**\n * Encodes the specified ProcessMetrics message. Does not implicitly {@link perfetto.protos.AndroidMemoryMetric.ProcessMetrics.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidMemoryMetric.ProcessMetrics\n * @static\n * @param {perfetto.protos.AndroidMemoryMetric.IProcessMetrics} message ProcessMetrics message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ProcessMetrics.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.processName != null && Object.hasOwnProperty.call(message, \"processName\"))\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.processName);\n if (message.totalCounters != null && Object.hasOwnProperty.call(message, \"totalCounters\"))\n $root.perfetto.protos.AndroidMemoryMetric.ProcessMemoryCounters.encode(message.totalCounters, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n if (message.priorityBreakdown != null && message.priorityBreakdown.length)\n for (var i = 0; i < message.priorityBreakdown.length; ++i)\n $root.perfetto.protos.AndroidMemoryMetric.PriorityBreakdown.encode(message.priorityBreakdown[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified ProcessMetrics message, length delimited. Does not implicitly {@link perfetto.protos.AndroidMemoryMetric.ProcessMetrics.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidMemoryMetric.ProcessMetrics\n * @static\n * @param {perfetto.protos.AndroidMemoryMetric.IProcessMetrics} message ProcessMetrics message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ProcessMetrics.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a ProcessMetrics message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidMemoryMetric.ProcessMetrics\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidMemoryMetric.ProcessMetrics} ProcessMetrics\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ProcessMetrics.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidMemoryMetric.ProcessMetrics();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.processName = reader.string();\n break;\n case 2:\n message.totalCounters = $root.perfetto.protos.AndroidMemoryMetric.ProcessMemoryCounters.decode(reader, reader.uint32());\n break;\n case 3:\n if (!(message.priorityBreakdown && message.priorityBreakdown.length))\n message.priorityBreakdown = [];\n message.priorityBreakdown.push($root.perfetto.protos.AndroidMemoryMetric.PriorityBreakdown.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a ProcessMetrics message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidMemoryMetric.ProcessMetrics\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidMemoryMetric.ProcessMetrics} ProcessMetrics\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ProcessMetrics.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a ProcessMetrics message.\n * @function verify\n * @memberof perfetto.protos.AndroidMemoryMetric.ProcessMetrics\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n ProcessMetrics.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.processName != null && message.hasOwnProperty(\"processName\"))\n if (!$util.isString(message.processName))\n return \"processName: string expected\";\n if (message.totalCounters != null && message.hasOwnProperty(\"totalCounters\")) {\n var error = $root.perfetto.protos.AndroidMemoryMetric.ProcessMemoryCounters.verify(message.totalCounters);\n if (error)\n return \"totalCounters.\" + error;\n }\n if (message.priorityBreakdown != null && message.hasOwnProperty(\"priorityBreakdown\")) {\n if (!Array.isArray(message.priorityBreakdown))\n return \"priorityBreakdown: array expected\";\n for (var i = 0; i < message.priorityBreakdown.length; ++i) {\n var error = $root.perfetto.protos.AndroidMemoryMetric.PriorityBreakdown.verify(message.priorityBreakdown[i]);\n if (error)\n return \"priorityBreakdown.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates a ProcessMetrics message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidMemoryMetric.ProcessMetrics\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidMemoryMetric.ProcessMetrics} ProcessMetrics\n */\n ProcessMetrics.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidMemoryMetric.ProcessMetrics)\n return object;\n var message = new $root.perfetto.protos.AndroidMemoryMetric.ProcessMetrics();\n if (object.processName != null)\n message.processName = String(object.processName);\n if (object.totalCounters != null) {\n if (typeof object.totalCounters !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidMemoryMetric.ProcessMetrics.totalCounters: object expected\");\n message.totalCounters = $root.perfetto.protos.AndroidMemoryMetric.ProcessMemoryCounters.fromObject(object.totalCounters);\n }\n if (object.priorityBreakdown) {\n if (!Array.isArray(object.priorityBreakdown))\n throw TypeError(\".perfetto.protos.AndroidMemoryMetric.ProcessMetrics.priorityBreakdown: array expected\");\n message.priorityBreakdown = [];\n for (var i = 0; i < object.priorityBreakdown.length; ++i) {\n if (typeof object.priorityBreakdown[i] !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidMemoryMetric.ProcessMetrics.priorityBreakdown: object expected\");\n message.priorityBreakdown[i] = $root.perfetto.protos.AndroidMemoryMetric.PriorityBreakdown.fromObject(object.priorityBreakdown[i]);\n }\n }\n return message;\n };\n\n /**\n * Creates a plain object from a ProcessMetrics message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidMemoryMetric.ProcessMetrics\n * @static\n * @param {perfetto.protos.AndroidMemoryMetric.ProcessMetrics} message ProcessMetrics\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n ProcessMetrics.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.priorityBreakdown = [];\n if (options.defaults) {\n object.processName = \"\";\n object.totalCounters = null;\n }\n if (message.processName != null && message.hasOwnProperty(\"processName\"))\n object.processName = message.processName;\n if (message.totalCounters != null && message.hasOwnProperty(\"totalCounters\"))\n object.totalCounters = $root.perfetto.protos.AndroidMemoryMetric.ProcessMemoryCounters.toObject(message.totalCounters, options);\n if (message.priorityBreakdown && message.priorityBreakdown.length) {\n object.priorityBreakdown = [];\n for (var j = 0; j < message.priorityBreakdown.length; ++j)\n object.priorityBreakdown[j] = $root.perfetto.protos.AndroidMemoryMetric.PriorityBreakdown.toObject(message.priorityBreakdown[j], options);\n }\n return object;\n };\n\n /**\n * Converts this ProcessMetrics to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidMemoryMetric.ProcessMetrics\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n ProcessMetrics.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return ProcessMetrics;\n })();\n\n AndroidMemoryMetric.PriorityBreakdown = (function() {\n\n /**\n * Properties of a PriorityBreakdown.\n * @memberof perfetto.protos.AndroidMemoryMetric\n * @interface IPriorityBreakdown\n * @property {string|null} [priority] PriorityBreakdown priority\n * @property {perfetto.protos.AndroidMemoryMetric.IProcessMemoryCounters|null} [counters] PriorityBreakdown counters\n */\n\n /**\n * Constructs a new PriorityBreakdown.\n * @memberof perfetto.protos.AndroidMemoryMetric\n * @classdesc Represents a PriorityBreakdown.\n * @implements IPriorityBreakdown\n * @constructor\n * @param {perfetto.protos.AndroidMemoryMetric.IPriorityBreakdown=} [properties] Properties to set\n */\n function PriorityBreakdown(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * PriorityBreakdown priority.\n * @member {string} priority\n * @memberof perfetto.protos.AndroidMemoryMetric.PriorityBreakdown\n * @instance\n */\n PriorityBreakdown.prototype.priority = \"\";\n\n /**\n * PriorityBreakdown counters.\n * @member {perfetto.protos.AndroidMemoryMetric.IProcessMemoryCounters|null|undefined} counters\n * @memberof perfetto.protos.AndroidMemoryMetric.PriorityBreakdown\n * @instance\n */\n PriorityBreakdown.prototype.counters = null;\n\n /**\n * Creates a new PriorityBreakdown instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidMemoryMetric.PriorityBreakdown\n * @static\n * @param {perfetto.protos.AndroidMemoryMetric.IPriorityBreakdown=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidMemoryMetric.PriorityBreakdown} PriorityBreakdown instance\n */\n PriorityBreakdown.create = function create(properties) {\n return new PriorityBreakdown(properties);\n };\n\n /**\n * Encodes the specified PriorityBreakdown message. Does not implicitly {@link perfetto.protos.AndroidMemoryMetric.PriorityBreakdown.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidMemoryMetric.PriorityBreakdown\n * @static\n * @param {perfetto.protos.AndroidMemoryMetric.IPriorityBreakdown} message PriorityBreakdown message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n PriorityBreakdown.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.priority != null && Object.hasOwnProperty.call(message, \"priority\"))\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.priority);\n if (message.counters != null && Object.hasOwnProperty.call(message, \"counters\"))\n $root.perfetto.protos.AndroidMemoryMetric.ProcessMemoryCounters.encode(message.counters, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified PriorityBreakdown message, length delimited. Does not implicitly {@link perfetto.protos.AndroidMemoryMetric.PriorityBreakdown.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidMemoryMetric.PriorityBreakdown\n * @static\n * @param {perfetto.protos.AndroidMemoryMetric.IPriorityBreakdown} message PriorityBreakdown message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n PriorityBreakdown.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a PriorityBreakdown message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidMemoryMetric.PriorityBreakdown\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidMemoryMetric.PriorityBreakdown} PriorityBreakdown\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n PriorityBreakdown.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidMemoryMetric.PriorityBreakdown();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.priority = reader.string();\n break;\n case 2:\n message.counters = $root.perfetto.protos.AndroidMemoryMetric.ProcessMemoryCounters.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a PriorityBreakdown message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidMemoryMetric.PriorityBreakdown\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidMemoryMetric.PriorityBreakdown} PriorityBreakdown\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n PriorityBreakdown.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a PriorityBreakdown message.\n * @function verify\n * @memberof perfetto.protos.AndroidMemoryMetric.PriorityBreakdown\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n PriorityBreakdown.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.priority != null && message.hasOwnProperty(\"priority\"))\n if (!$util.isString(message.priority))\n return \"priority: string expected\";\n if (message.counters != null && message.hasOwnProperty(\"counters\")) {\n var error = $root.perfetto.protos.AndroidMemoryMetric.ProcessMemoryCounters.verify(message.counters);\n if (error)\n return \"counters.\" + error;\n }\n return null;\n };\n\n /**\n * Creates a PriorityBreakdown message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidMemoryMetric.PriorityBreakdown\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidMemoryMetric.PriorityBreakdown} PriorityBreakdown\n */\n PriorityBreakdown.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidMemoryMetric.PriorityBreakdown)\n return object;\n var message = new $root.perfetto.protos.AndroidMemoryMetric.PriorityBreakdown();\n if (object.priority != null)\n message.priority = String(object.priority);\n if (object.counters != null) {\n if (typeof object.counters !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidMemoryMetric.PriorityBreakdown.counters: object expected\");\n message.counters = $root.perfetto.protos.AndroidMemoryMetric.ProcessMemoryCounters.fromObject(object.counters);\n }\n return message;\n };\n\n /**\n * Creates a plain object from a PriorityBreakdown message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidMemoryMetric.PriorityBreakdown\n * @static\n * @param {perfetto.protos.AndroidMemoryMetric.PriorityBreakdown} message PriorityBreakdown\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n PriorityBreakdown.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.priority = \"\";\n object.counters = null;\n }\n if (message.priority != null && message.hasOwnProperty(\"priority\"))\n object.priority = message.priority;\n if (message.counters != null && message.hasOwnProperty(\"counters\"))\n object.counters = $root.perfetto.protos.AndroidMemoryMetric.ProcessMemoryCounters.toObject(message.counters, options);\n return object;\n };\n\n /**\n * Converts this PriorityBreakdown to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidMemoryMetric.PriorityBreakdown\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n PriorityBreakdown.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return PriorityBreakdown;\n })();\n\n AndroidMemoryMetric.ProcessMemoryCounters = (function() {\n\n /**\n * Properties of a ProcessMemoryCounters.\n * @memberof perfetto.protos.AndroidMemoryMetric\n * @interface IProcessMemoryCounters\n * @property {perfetto.protos.AndroidMemoryMetric.ICounter|null} [anonRss] ProcessMemoryCounters anonRss\n * @property {perfetto.protos.AndroidMemoryMetric.ICounter|null} [fileRss] ProcessMemoryCounters fileRss\n * @property {perfetto.protos.AndroidMemoryMetric.ICounter|null} [swap] ProcessMemoryCounters swap\n * @property {perfetto.protos.AndroidMemoryMetric.ICounter|null} [anonAndSwap] ProcessMemoryCounters anonAndSwap\n * @property {perfetto.protos.AndroidMemoryMetric.ICounter|null} [javaHeap] ProcessMemoryCounters javaHeap\n */\n\n /**\n * Constructs a new ProcessMemoryCounters.\n * @memberof perfetto.protos.AndroidMemoryMetric\n * @classdesc Represents a ProcessMemoryCounters.\n * @implements IProcessMemoryCounters\n * @constructor\n * @param {perfetto.protos.AndroidMemoryMetric.IProcessMemoryCounters=} [properties] Properties to set\n */\n function ProcessMemoryCounters(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * ProcessMemoryCounters anonRss.\n * @member {perfetto.protos.AndroidMemoryMetric.ICounter|null|undefined} anonRss\n * @memberof perfetto.protos.AndroidMemoryMetric.ProcessMemoryCounters\n * @instance\n */\n ProcessMemoryCounters.prototype.anonRss = null;\n\n /**\n * ProcessMemoryCounters fileRss.\n * @member {perfetto.protos.AndroidMemoryMetric.ICounter|null|undefined} fileRss\n * @memberof perfetto.protos.AndroidMemoryMetric.ProcessMemoryCounters\n * @instance\n */\n ProcessMemoryCounters.prototype.fileRss = null;\n\n /**\n * ProcessMemoryCounters swap.\n * @member {perfetto.protos.AndroidMemoryMetric.ICounter|null|undefined} swap\n * @memberof perfetto.protos.AndroidMemoryMetric.ProcessMemoryCounters\n * @instance\n */\n ProcessMemoryCounters.prototype.swap = null;\n\n /**\n * ProcessMemoryCounters anonAndSwap.\n * @member {perfetto.protos.AndroidMemoryMetric.ICounter|null|undefined} anonAndSwap\n * @memberof perfetto.protos.AndroidMemoryMetric.ProcessMemoryCounters\n * @instance\n */\n ProcessMemoryCounters.prototype.anonAndSwap = null;\n\n /**\n * ProcessMemoryCounters javaHeap.\n * @member {perfetto.protos.AndroidMemoryMetric.ICounter|null|undefined} javaHeap\n * @memberof perfetto.protos.AndroidMemoryMetric.ProcessMemoryCounters\n * @instance\n */\n ProcessMemoryCounters.prototype.javaHeap = null;\n\n /**\n * Creates a new ProcessMemoryCounters instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidMemoryMetric.ProcessMemoryCounters\n * @static\n * @param {perfetto.protos.AndroidMemoryMetric.IProcessMemoryCounters=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidMemoryMetric.ProcessMemoryCounters} ProcessMemoryCounters instance\n */\n ProcessMemoryCounters.create = function create(properties) {\n return new ProcessMemoryCounters(properties);\n };\n\n /**\n * Encodes the specified ProcessMemoryCounters message. Does not implicitly {@link perfetto.protos.AndroidMemoryMetric.ProcessMemoryCounters.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidMemoryMetric.ProcessMemoryCounters\n * @static\n * @param {perfetto.protos.AndroidMemoryMetric.IProcessMemoryCounters} message ProcessMemoryCounters message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ProcessMemoryCounters.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.anonRss != null && Object.hasOwnProperty.call(message, \"anonRss\"))\n $root.perfetto.protos.AndroidMemoryMetric.Counter.encode(message.anonRss, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n if (message.fileRss != null && Object.hasOwnProperty.call(message, \"fileRss\"))\n $root.perfetto.protos.AndroidMemoryMetric.Counter.encode(message.fileRss, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n if (message.swap != null && Object.hasOwnProperty.call(message, \"swap\"))\n $root.perfetto.protos.AndroidMemoryMetric.Counter.encode(message.swap, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();\n if (message.anonAndSwap != null && Object.hasOwnProperty.call(message, \"anonAndSwap\"))\n $root.perfetto.protos.AndroidMemoryMetric.Counter.encode(message.anonAndSwap, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim();\n if (message.javaHeap != null && Object.hasOwnProperty.call(message, \"javaHeap\"))\n $root.perfetto.protos.AndroidMemoryMetric.Counter.encode(message.javaHeap, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified ProcessMemoryCounters message, length delimited. Does not implicitly {@link perfetto.protos.AndroidMemoryMetric.ProcessMemoryCounters.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidMemoryMetric.ProcessMemoryCounters\n * @static\n * @param {perfetto.protos.AndroidMemoryMetric.IProcessMemoryCounters} message ProcessMemoryCounters message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ProcessMemoryCounters.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a ProcessMemoryCounters message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidMemoryMetric.ProcessMemoryCounters\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidMemoryMetric.ProcessMemoryCounters} ProcessMemoryCounters\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ProcessMemoryCounters.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidMemoryMetric.ProcessMemoryCounters();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.anonRss = $root.perfetto.protos.AndroidMemoryMetric.Counter.decode(reader, reader.uint32());\n break;\n case 2:\n message.fileRss = $root.perfetto.protos.AndroidMemoryMetric.Counter.decode(reader, reader.uint32());\n break;\n case 3:\n message.swap = $root.perfetto.protos.AndroidMemoryMetric.Counter.decode(reader, reader.uint32());\n break;\n case 4:\n message.anonAndSwap = $root.perfetto.protos.AndroidMemoryMetric.Counter.decode(reader, reader.uint32());\n break;\n case 5:\n message.javaHeap = $root.perfetto.protos.AndroidMemoryMetric.Counter.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a ProcessMemoryCounters message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidMemoryMetric.ProcessMemoryCounters\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidMemoryMetric.ProcessMemoryCounters} ProcessMemoryCounters\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ProcessMemoryCounters.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a ProcessMemoryCounters message.\n * @function verify\n * @memberof perfetto.protos.AndroidMemoryMetric.ProcessMemoryCounters\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n ProcessMemoryCounters.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.anonRss != null && message.hasOwnProperty(\"anonRss\")) {\n var error = $root.perfetto.protos.AndroidMemoryMetric.Counter.verify(message.anonRss);\n if (error)\n return \"anonRss.\" + error;\n }\n if (message.fileRss != null && message.hasOwnProperty(\"fileRss\")) {\n var error = $root.perfetto.protos.AndroidMemoryMetric.Counter.verify(message.fileRss);\n if (error)\n return \"fileRss.\" + error;\n }\n if (message.swap != null && message.hasOwnProperty(\"swap\")) {\n var error = $root.perfetto.protos.AndroidMemoryMetric.Counter.verify(message.swap);\n if (error)\n return \"swap.\" + error;\n }\n if (message.anonAndSwap != null && message.hasOwnProperty(\"anonAndSwap\")) {\n var error = $root.perfetto.protos.AndroidMemoryMetric.Counter.verify(message.anonAndSwap);\n if (error)\n return \"anonAndSwap.\" + error;\n }\n if (message.javaHeap != null && message.hasOwnProperty(\"javaHeap\")) {\n var error = $root.perfetto.protos.AndroidMemoryMetric.Counter.verify(message.javaHeap);\n if (error)\n return \"javaHeap.\" + error;\n }\n return null;\n };\n\n /**\n * Creates a ProcessMemoryCounters message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidMemoryMetric.ProcessMemoryCounters\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidMemoryMetric.ProcessMemoryCounters} ProcessMemoryCounters\n */\n ProcessMemoryCounters.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidMemoryMetric.ProcessMemoryCounters)\n return object;\n var message = new $root.perfetto.protos.AndroidMemoryMetric.ProcessMemoryCounters();\n if (object.anonRss != null) {\n if (typeof object.anonRss !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidMemoryMetric.ProcessMemoryCounters.anonRss: object expected\");\n message.anonRss = $root.perfetto.protos.AndroidMemoryMetric.Counter.fromObject(object.anonRss);\n }\n if (object.fileRss != null) {\n if (typeof object.fileRss !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidMemoryMetric.ProcessMemoryCounters.fileRss: object expected\");\n message.fileRss = $root.perfetto.protos.AndroidMemoryMetric.Counter.fromObject(object.fileRss);\n }\n if (object.swap != null) {\n if (typeof object.swap !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidMemoryMetric.ProcessMemoryCounters.swap: object expected\");\n message.swap = $root.perfetto.protos.AndroidMemoryMetric.Counter.fromObject(object.swap);\n }\n if (object.anonAndSwap != null) {\n if (typeof object.anonAndSwap !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidMemoryMetric.ProcessMemoryCounters.anonAndSwap: object expected\");\n message.anonAndSwap = $root.perfetto.protos.AndroidMemoryMetric.Counter.fromObject(object.anonAndSwap);\n }\n if (object.javaHeap != null) {\n if (typeof object.javaHeap !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidMemoryMetric.ProcessMemoryCounters.javaHeap: object expected\");\n message.javaHeap = $root.perfetto.protos.AndroidMemoryMetric.Counter.fromObject(object.javaHeap);\n }\n return message;\n };\n\n /**\n * Creates a plain object from a ProcessMemoryCounters message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidMemoryMetric.ProcessMemoryCounters\n * @static\n * @param {perfetto.protos.AndroidMemoryMetric.ProcessMemoryCounters} message ProcessMemoryCounters\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n ProcessMemoryCounters.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.anonRss = null;\n object.fileRss = null;\n object.swap = null;\n object.anonAndSwap = null;\n object.javaHeap = null;\n }\n if (message.anonRss != null && message.hasOwnProperty(\"anonRss\"))\n object.anonRss = $root.perfetto.protos.AndroidMemoryMetric.Counter.toObject(message.anonRss, options);\n if (message.fileRss != null && message.hasOwnProperty(\"fileRss\"))\n object.fileRss = $root.perfetto.protos.AndroidMemoryMetric.Counter.toObject(message.fileRss, options);\n if (message.swap != null && message.hasOwnProperty(\"swap\"))\n object.swap = $root.perfetto.protos.AndroidMemoryMetric.Counter.toObject(message.swap, options);\n if (message.anonAndSwap != null && message.hasOwnProperty(\"anonAndSwap\"))\n object.anonAndSwap = $root.perfetto.protos.AndroidMemoryMetric.Counter.toObject(message.anonAndSwap, options);\n if (message.javaHeap != null && message.hasOwnProperty(\"javaHeap\"))\n object.javaHeap = $root.perfetto.protos.AndroidMemoryMetric.Counter.toObject(message.javaHeap, options);\n return object;\n };\n\n /**\n * Converts this ProcessMemoryCounters to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidMemoryMetric.ProcessMemoryCounters\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n ProcessMemoryCounters.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return ProcessMemoryCounters;\n })();\n\n AndroidMemoryMetric.Counter = (function() {\n\n /**\n * Properties of a Counter.\n * @memberof perfetto.protos.AndroidMemoryMetric\n * @interface ICounter\n * @property {number|null} [min] Counter min\n * @property {number|null} [max] Counter max\n * @property {number|null} [avg] Counter avg\n */\n\n /**\n * Constructs a new Counter.\n * @memberof perfetto.protos.AndroidMemoryMetric\n * @classdesc Represents a Counter.\n * @implements ICounter\n * @constructor\n * @param {perfetto.protos.AndroidMemoryMetric.ICounter=} [properties] Properties to set\n */\n function Counter(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * Counter min.\n * @member {number} min\n * @memberof perfetto.protos.AndroidMemoryMetric.Counter\n * @instance\n */\n Counter.prototype.min = 0;\n\n /**\n * Counter max.\n * @member {number} max\n * @memberof perfetto.protos.AndroidMemoryMetric.Counter\n * @instance\n */\n Counter.prototype.max = 0;\n\n /**\n * Counter avg.\n * @member {number} avg\n * @memberof perfetto.protos.AndroidMemoryMetric.Counter\n * @instance\n */\n Counter.prototype.avg = 0;\n\n /**\n * Creates a new Counter instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidMemoryMetric.Counter\n * @static\n * @param {perfetto.protos.AndroidMemoryMetric.ICounter=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidMemoryMetric.Counter} Counter instance\n */\n Counter.create = function create(properties) {\n return new Counter(properties);\n };\n\n /**\n * Encodes the specified Counter message. Does not implicitly {@link perfetto.protos.AndroidMemoryMetric.Counter.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidMemoryMetric.Counter\n * @static\n * @param {perfetto.protos.AndroidMemoryMetric.ICounter} message Counter message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Counter.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.min != null && Object.hasOwnProperty.call(message, \"min\"))\n writer.uint32(/* id 1, wireType 1 =*/9).double(message.min);\n if (message.max != null && Object.hasOwnProperty.call(message, \"max\"))\n writer.uint32(/* id 2, wireType 1 =*/17).double(message.max);\n if (message.avg != null && Object.hasOwnProperty.call(message, \"avg\"))\n writer.uint32(/* id 3, wireType 1 =*/25).double(message.avg);\n return writer;\n };\n\n /**\n * Encodes the specified Counter message, length delimited. Does not implicitly {@link perfetto.protos.AndroidMemoryMetric.Counter.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidMemoryMetric.Counter\n * @static\n * @param {perfetto.protos.AndroidMemoryMetric.ICounter} message Counter message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Counter.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a Counter message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidMemoryMetric.Counter\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidMemoryMetric.Counter} Counter\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Counter.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidMemoryMetric.Counter();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.min = reader.double();\n break;\n case 2:\n message.max = reader.double();\n break;\n case 3:\n message.avg = reader.double();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a Counter message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidMemoryMetric.Counter\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidMemoryMetric.Counter} Counter\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Counter.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a Counter message.\n * @function verify\n * @memberof perfetto.protos.AndroidMemoryMetric.Counter\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n Counter.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.min != null && message.hasOwnProperty(\"min\"))\n if (typeof message.min !== \"number\")\n return \"min: number expected\";\n if (message.max != null && message.hasOwnProperty(\"max\"))\n if (typeof message.max !== \"number\")\n return \"max: number expected\";\n if (message.avg != null && message.hasOwnProperty(\"avg\"))\n if (typeof message.avg !== \"number\")\n return \"avg: number expected\";\n return null;\n };\n\n /**\n * Creates a Counter message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidMemoryMetric.Counter\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidMemoryMetric.Counter} Counter\n */\n Counter.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidMemoryMetric.Counter)\n return object;\n var message = new $root.perfetto.protos.AndroidMemoryMetric.Counter();\n if (object.min != null)\n message.min = Number(object.min);\n if (object.max != null)\n message.max = Number(object.max);\n if (object.avg != null)\n message.avg = Number(object.avg);\n return message;\n };\n\n /**\n * Creates a plain object from a Counter message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidMemoryMetric.Counter\n * @static\n * @param {perfetto.protos.AndroidMemoryMetric.Counter} message Counter\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n Counter.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.min = 0;\n object.max = 0;\n object.avg = 0;\n }\n if (message.min != null && message.hasOwnProperty(\"min\"))\n object.min = options.json && !isFinite(message.min) ? String(message.min) : message.min;\n if (message.max != null && message.hasOwnProperty(\"max\"))\n object.max = options.json && !isFinite(message.max) ? String(message.max) : message.max;\n if (message.avg != null && message.hasOwnProperty(\"avg\"))\n object.avg = options.json && !isFinite(message.avg) ? String(message.avg) : message.avg;\n return object;\n };\n\n /**\n * Converts this Counter to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidMemoryMetric.Counter\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n Counter.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return Counter;\n })();\n\n return AndroidMemoryMetric;\n })();\n\n protos.AndroidMemoryUnaggregatedMetric = (function() {\n\n /**\n * Properties of an AndroidMemoryUnaggregatedMetric.\n * @memberof perfetto.protos\n * @interface IAndroidMemoryUnaggregatedMetric\n * @property {Array.<perfetto.protos.AndroidMemoryUnaggregatedMetric.IProcessValues>|null} [processValues] AndroidMemoryUnaggregatedMetric processValues\n */\n\n /**\n * Constructs a new AndroidMemoryUnaggregatedMetric.\n * @memberof perfetto.protos\n * @classdesc Represents an AndroidMemoryUnaggregatedMetric.\n * @implements IAndroidMemoryUnaggregatedMetric\n * @constructor\n * @param {perfetto.protos.IAndroidMemoryUnaggregatedMetric=} [properties] Properties to set\n */\n function AndroidMemoryUnaggregatedMetric(properties) {\n this.processValues = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * AndroidMemoryUnaggregatedMetric processValues.\n * @member {Array.<perfetto.protos.AndroidMemoryUnaggregatedMetric.IProcessValues>} processValues\n * @memberof perfetto.protos.AndroidMemoryUnaggregatedMetric\n * @instance\n */\n AndroidMemoryUnaggregatedMetric.prototype.processValues = $util.emptyArray;\n\n /**\n * Creates a new AndroidMemoryUnaggregatedMetric instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidMemoryUnaggregatedMetric\n * @static\n * @param {perfetto.protos.IAndroidMemoryUnaggregatedMetric=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidMemoryUnaggregatedMetric} AndroidMemoryUnaggregatedMetric instance\n */\n AndroidMemoryUnaggregatedMetric.create = function create(properties) {\n return new AndroidMemoryUnaggregatedMetric(properties);\n };\n\n /**\n * Encodes the specified AndroidMemoryUnaggregatedMetric message. Does not implicitly {@link perfetto.protos.AndroidMemoryUnaggregatedMetric.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidMemoryUnaggregatedMetric\n * @static\n * @param {perfetto.protos.IAndroidMemoryUnaggregatedMetric} message AndroidMemoryUnaggregatedMetric message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n AndroidMemoryUnaggregatedMetric.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.processValues != null && message.processValues.length)\n for (var i = 0; i < message.processValues.length; ++i)\n $root.perfetto.protos.AndroidMemoryUnaggregatedMetric.ProcessValues.encode(message.processValues[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified AndroidMemoryUnaggregatedMetric message, length delimited. Does not implicitly {@link perfetto.protos.AndroidMemoryUnaggregatedMetric.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidMemoryUnaggregatedMetric\n * @static\n * @param {perfetto.protos.IAndroidMemoryUnaggregatedMetric} message AndroidMemoryUnaggregatedMetric message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n AndroidMemoryUnaggregatedMetric.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes an AndroidMemoryUnaggregatedMetric message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidMemoryUnaggregatedMetric\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidMemoryUnaggregatedMetric} AndroidMemoryUnaggregatedMetric\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n AndroidMemoryUnaggregatedMetric.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidMemoryUnaggregatedMetric();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (!(message.processValues && message.processValues.length))\n message.processValues = [];\n message.processValues.push($root.perfetto.protos.AndroidMemoryUnaggregatedMetric.ProcessValues.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes an AndroidMemoryUnaggregatedMetric message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidMemoryUnaggregatedMetric\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidMemoryUnaggregatedMetric} AndroidMemoryUnaggregatedMetric\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n AndroidMemoryUnaggregatedMetric.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies an AndroidMemoryUnaggregatedMetric message.\n * @function verify\n * @memberof perfetto.protos.AndroidMemoryUnaggregatedMetric\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n AndroidMemoryUnaggregatedMetric.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.processValues != null && message.hasOwnProperty(\"processValues\")) {\n if (!Array.isArray(message.processValues))\n return \"processValues: array expected\";\n for (var i = 0; i < message.processValues.length; ++i) {\n var error = $root.perfetto.protos.AndroidMemoryUnaggregatedMetric.ProcessValues.verify(message.processValues[i]);\n if (error)\n return \"processValues.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates an AndroidMemoryUnaggregatedMetric message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidMemoryUnaggregatedMetric\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidMemoryUnaggregatedMetric} AndroidMemoryUnaggregatedMetric\n */\n AndroidMemoryUnaggregatedMetric.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidMemoryUnaggregatedMetric)\n return object;\n var message = new $root.perfetto.protos.AndroidMemoryUnaggregatedMetric();\n if (object.processValues) {\n if (!Array.isArray(object.processValues))\n throw TypeError(\".perfetto.protos.AndroidMemoryUnaggregatedMetric.processValues: array expected\");\n message.processValues = [];\n for (var i = 0; i < object.processValues.length; ++i) {\n if (typeof object.processValues[i] !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidMemoryUnaggregatedMetric.processValues: object expected\");\n message.processValues[i] = $root.perfetto.protos.AndroidMemoryUnaggregatedMetric.ProcessValues.fromObject(object.processValues[i]);\n }\n }\n return message;\n };\n\n /**\n * Creates a plain object from an AndroidMemoryUnaggregatedMetric message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidMemoryUnaggregatedMetric\n * @static\n * @param {perfetto.protos.AndroidMemoryUnaggregatedMetric} message AndroidMemoryUnaggregatedMetric\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n AndroidMemoryUnaggregatedMetric.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.processValues = [];\n if (message.processValues && message.processValues.length) {\n object.processValues = [];\n for (var j = 0; j < message.processValues.length; ++j)\n object.processValues[j] = $root.perfetto.protos.AndroidMemoryUnaggregatedMetric.ProcessValues.toObject(message.processValues[j], options);\n }\n return object;\n };\n\n /**\n * Converts this AndroidMemoryUnaggregatedMetric to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidMemoryUnaggregatedMetric\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n AndroidMemoryUnaggregatedMetric.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n AndroidMemoryUnaggregatedMetric.ProcessValues = (function() {\n\n /**\n * Properties of a ProcessValues.\n * @memberof perfetto.protos.AndroidMemoryUnaggregatedMetric\n * @interface IProcessValues\n * @property {string|null} [processName] ProcessValues processName\n * @property {perfetto.protos.AndroidMemoryUnaggregatedMetric.IProcessMemoryValues|null} [memValues] ProcessValues memValues\n */\n\n /**\n * Constructs a new ProcessValues.\n * @memberof perfetto.protos.AndroidMemoryUnaggregatedMetric\n * @classdesc Represents a ProcessValues.\n * @implements IProcessValues\n * @constructor\n * @param {perfetto.protos.AndroidMemoryUnaggregatedMetric.IProcessValues=} [properties] Properties to set\n */\n function ProcessValues(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * ProcessValues processName.\n * @member {string} processName\n * @memberof perfetto.protos.AndroidMemoryUnaggregatedMetric.ProcessValues\n * @instance\n */\n ProcessValues.prototype.processName = \"\";\n\n /**\n * ProcessValues memValues.\n * @member {perfetto.protos.AndroidMemoryUnaggregatedMetric.IProcessMemoryValues|null|undefined} memValues\n * @memberof perfetto.protos.AndroidMemoryUnaggregatedMetric.ProcessValues\n * @instance\n */\n ProcessValues.prototype.memValues = null;\n\n /**\n * Creates a new ProcessValues instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidMemoryUnaggregatedMetric.ProcessValues\n * @static\n * @param {perfetto.protos.AndroidMemoryUnaggregatedMetric.IProcessValues=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidMemoryUnaggregatedMetric.ProcessValues} ProcessValues instance\n */\n ProcessValues.create = function create(properties) {\n return new ProcessValues(properties);\n };\n\n /**\n * Encodes the specified ProcessValues message. Does not implicitly {@link perfetto.protos.AndroidMemoryUnaggregatedMetric.ProcessValues.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidMemoryUnaggregatedMetric.ProcessValues\n * @static\n * @param {perfetto.protos.AndroidMemoryUnaggregatedMetric.IProcessValues} message ProcessValues message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ProcessValues.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.processName != null && Object.hasOwnProperty.call(message, \"processName\"))\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.processName);\n if (message.memValues != null && Object.hasOwnProperty.call(message, \"memValues\"))\n $root.perfetto.protos.AndroidMemoryUnaggregatedMetric.ProcessMemoryValues.encode(message.memValues, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified ProcessValues message, length delimited. Does not implicitly {@link perfetto.protos.AndroidMemoryUnaggregatedMetric.ProcessValues.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidMemoryUnaggregatedMetric.ProcessValues\n * @static\n * @param {perfetto.protos.AndroidMemoryUnaggregatedMetric.IProcessValues} message ProcessValues message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ProcessValues.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a ProcessValues message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidMemoryUnaggregatedMetric.ProcessValues\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidMemoryUnaggregatedMetric.ProcessValues} ProcessValues\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ProcessValues.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidMemoryUnaggregatedMetric.ProcessValues();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.processName = reader.string();\n break;\n case 2:\n message.memValues = $root.perfetto.protos.AndroidMemoryUnaggregatedMetric.ProcessMemoryValues.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a ProcessValues message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidMemoryUnaggregatedMetric.ProcessValues\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidMemoryUnaggregatedMetric.ProcessValues} ProcessValues\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ProcessValues.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a ProcessValues message.\n * @function verify\n * @memberof perfetto.protos.AndroidMemoryUnaggregatedMetric.ProcessValues\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n ProcessValues.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.processName != null && message.hasOwnProperty(\"processName\"))\n if (!$util.isString(message.processName))\n return \"processName: string expected\";\n if (message.memValues != null && message.hasOwnProperty(\"memValues\")) {\n var error = $root.perfetto.protos.AndroidMemoryUnaggregatedMetric.ProcessMemoryValues.verify(message.memValues);\n if (error)\n return \"memValues.\" + error;\n }\n return null;\n };\n\n /**\n * Creates a ProcessValues message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidMemoryUnaggregatedMetric.ProcessValues\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidMemoryUnaggregatedMetric.ProcessValues} ProcessValues\n */\n ProcessValues.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidMemoryUnaggregatedMetric.ProcessValues)\n return object;\n var message = new $root.perfetto.protos.AndroidMemoryUnaggregatedMetric.ProcessValues();\n if (object.processName != null)\n message.processName = String(object.processName);\n if (object.memValues != null) {\n if (typeof object.memValues !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidMemoryUnaggregatedMetric.ProcessValues.memValues: object expected\");\n message.memValues = $root.perfetto.protos.AndroidMemoryUnaggregatedMetric.ProcessMemoryValues.fromObject(object.memValues);\n }\n return message;\n };\n\n /**\n * Creates a plain object from a ProcessValues message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidMemoryUnaggregatedMetric.ProcessValues\n * @static\n * @param {perfetto.protos.AndroidMemoryUnaggregatedMetric.ProcessValues} message ProcessValues\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n ProcessValues.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.processName = \"\";\n object.memValues = null;\n }\n if (message.processName != null && message.hasOwnProperty(\"processName\"))\n object.processName = message.processName;\n if (message.memValues != null && message.hasOwnProperty(\"memValues\"))\n object.memValues = $root.perfetto.protos.AndroidMemoryUnaggregatedMetric.ProcessMemoryValues.toObject(message.memValues, options);\n return object;\n };\n\n /**\n * Converts this ProcessValues to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidMemoryUnaggregatedMetric.ProcessValues\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n ProcessValues.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return ProcessValues;\n })();\n\n AndroidMemoryUnaggregatedMetric.ProcessMemoryValues = (function() {\n\n /**\n * Properties of a ProcessMemoryValues.\n * @memberof perfetto.protos.AndroidMemoryUnaggregatedMetric\n * @interface IProcessMemoryValues\n * @property {Array.<perfetto.protos.AndroidMemoryUnaggregatedMetric.IValue>|null} [anonRss] ProcessMemoryValues anonRss\n * @property {Array.<perfetto.protos.AndroidMemoryUnaggregatedMetric.IValue>|null} [fileRss] ProcessMemoryValues fileRss\n * @property {Array.<perfetto.protos.AndroidMemoryUnaggregatedMetric.IValue>|null} [swap] ProcessMemoryValues swap\n * @property {Array.<perfetto.protos.AndroidMemoryUnaggregatedMetric.IValue>|null} [anonAndSwap] ProcessMemoryValues anonAndSwap\n */\n\n /**\n * Constructs a new ProcessMemoryValues.\n * @memberof perfetto.protos.AndroidMemoryUnaggregatedMetric\n * @classdesc Represents a ProcessMemoryValues.\n * @implements IProcessMemoryValues\n * @constructor\n * @param {perfetto.protos.AndroidMemoryUnaggregatedMetric.IProcessMemoryValues=} [properties] Properties to set\n */\n function ProcessMemoryValues(properties) {\n this.anonRss = [];\n this.fileRss = [];\n this.swap = [];\n this.anonAndSwap = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * ProcessMemoryValues anonRss.\n * @member {Array.<perfetto.protos.AndroidMemoryUnaggregatedMetric.IValue>} anonRss\n * @memberof perfetto.protos.AndroidMemoryUnaggregatedMetric.ProcessMemoryValues\n * @instance\n */\n ProcessMemoryValues.prototype.anonRss = $util.emptyArray;\n\n /**\n * ProcessMemoryValues fileRss.\n * @member {Array.<perfetto.protos.AndroidMemoryUnaggregatedMetric.IValue>} fileRss\n * @memberof perfetto.protos.AndroidMemoryUnaggregatedMetric.ProcessMemoryValues\n * @instance\n */\n ProcessMemoryValues.prototype.fileRss = $util.emptyArray;\n\n /**\n * ProcessMemoryValues swap.\n * @member {Array.<perfetto.protos.AndroidMemoryUnaggregatedMetric.IValue>} swap\n * @memberof perfetto.protos.AndroidMemoryUnaggregatedMetric.ProcessMemoryValues\n * @instance\n */\n ProcessMemoryValues.prototype.swap = $util.emptyArray;\n\n /**\n * ProcessMemoryValues anonAndSwap.\n * @member {Array.<perfetto.protos.AndroidMemoryUnaggregatedMetric.IValue>} anonAndSwap\n * @memberof perfetto.protos.AndroidMemoryUnaggregatedMetric.ProcessMemoryValues\n * @instance\n */\n ProcessMemoryValues.prototype.anonAndSwap = $util.emptyArray;\n\n /**\n * Creates a new ProcessMemoryValues instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidMemoryUnaggregatedMetric.ProcessMemoryValues\n * @static\n * @param {perfetto.protos.AndroidMemoryUnaggregatedMetric.IProcessMemoryValues=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidMemoryUnaggregatedMetric.ProcessMemoryValues} ProcessMemoryValues instance\n */\n ProcessMemoryValues.create = function create(properties) {\n return new ProcessMemoryValues(properties);\n };\n\n /**\n * Encodes the specified ProcessMemoryValues message. Does not implicitly {@link perfetto.protos.AndroidMemoryUnaggregatedMetric.ProcessMemoryValues.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidMemoryUnaggregatedMetric.ProcessMemoryValues\n * @static\n * @param {perfetto.protos.AndroidMemoryUnaggregatedMetric.IProcessMemoryValues} message ProcessMemoryValues message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ProcessMemoryValues.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.anonRss != null && message.anonRss.length)\n for (var i = 0; i < message.anonRss.length; ++i)\n $root.perfetto.protos.AndroidMemoryUnaggregatedMetric.Value.encode(message.anonRss[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n if (message.fileRss != null && message.fileRss.length)\n for (var i = 0; i < message.fileRss.length; ++i)\n $root.perfetto.protos.AndroidMemoryUnaggregatedMetric.Value.encode(message.fileRss[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n if (message.swap != null && message.swap.length)\n for (var i = 0; i < message.swap.length; ++i)\n $root.perfetto.protos.AndroidMemoryUnaggregatedMetric.Value.encode(message.swap[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();\n if (message.anonAndSwap != null && message.anonAndSwap.length)\n for (var i = 0; i < message.anonAndSwap.length; ++i)\n $root.perfetto.protos.AndroidMemoryUnaggregatedMetric.Value.encode(message.anonAndSwap[i], writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified ProcessMemoryValues message, length delimited. Does not implicitly {@link perfetto.protos.AndroidMemoryUnaggregatedMetric.ProcessMemoryValues.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidMemoryUnaggregatedMetric.ProcessMemoryValues\n * @static\n * @param {perfetto.protos.AndroidMemoryUnaggregatedMetric.IProcessMemoryValues} message ProcessMemoryValues message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ProcessMemoryValues.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a ProcessMemoryValues message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidMemoryUnaggregatedMetric.ProcessMemoryValues\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidMemoryUnaggregatedMetric.ProcessMemoryValues} ProcessMemoryValues\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ProcessMemoryValues.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidMemoryUnaggregatedMetric.ProcessMemoryValues();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (!(message.anonRss && message.anonRss.length))\n message.anonRss = [];\n message.anonRss.push($root.perfetto.protos.AndroidMemoryUnaggregatedMetric.Value.decode(reader, reader.uint32()));\n break;\n case 2:\n if (!(message.fileRss && message.fileRss.length))\n message.fileRss = [];\n message.fileRss.push($root.perfetto.protos.AndroidMemoryUnaggregatedMetric.Value.decode(reader, reader.uint32()));\n break;\n case 3:\n if (!(message.swap && message.swap.length))\n message.swap = [];\n message.swap.push($root.perfetto.protos.AndroidMemoryUnaggregatedMetric.Value.decode(reader, reader.uint32()));\n break;\n case 4:\n if (!(message.anonAndSwap && message.anonAndSwap.length))\n message.anonAndSwap = [];\n message.anonAndSwap.push($root.perfetto.protos.AndroidMemoryUnaggregatedMetric.Value.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a ProcessMemoryValues message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidMemoryUnaggregatedMetric.ProcessMemoryValues\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidMemoryUnaggregatedMetric.ProcessMemoryValues} ProcessMemoryValues\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ProcessMemoryValues.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a ProcessMemoryValues message.\n * @function verify\n * @memberof perfetto.protos.AndroidMemoryUnaggregatedMetric.ProcessMemoryValues\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n ProcessMemoryValues.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.anonRss != null && message.hasOwnProperty(\"anonRss\")) {\n if (!Array.isArray(message.anonRss))\n return \"anonRss: array expected\";\n for (var i = 0; i < message.anonRss.length; ++i) {\n var error = $root.perfetto.protos.AndroidMemoryUnaggregatedMetric.Value.verify(message.anonRss[i]);\n if (error)\n return \"anonRss.\" + error;\n }\n }\n if (message.fileRss != null && message.hasOwnProperty(\"fileRss\")) {\n if (!Array.isArray(message.fileRss))\n return \"fileRss: array expected\";\n for (var i = 0; i < message.fileRss.length; ++i) {\n var error = $root.perfetto.protos.AndroidMemoryUnaggregatedMetric.Value.verify(message.fileRss[i]);\n if (error)\n return \"fileRss.\" + error;\n }\n }\n if (message.swap != null && message.hasOwnProperty(\"swap\")) {\n if (!Array.isArray(message.swap))\n return \"swap: array expected\";\n for (var i = 0; i < message.swap.length; ++i) {\n var error = $root.perfetto.protos.AndroidMemoryUnaggregatedMetric.Value.verify(message.swap[i]);\n if (error)\n return \"swap.\" + error;\n }\n }\n if (message.anonAndSwap != null && message.hasOwnProperty(\"anonAndSwap\")) {\n if (!Array.isArray(message.anonAndSwap))\n return \"anonAndSwap: array expected\";\n for (var i = 0; i < message.anonAndSwap.length; ++i) {\n var error = $root.perfetto.protos.AndroidMemoryUnaggregatedMetric.Value.verify(message.anonAndSwap[i]);\n if (error)\n return \"anonAndSwap.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates a ProcessMemoryValues message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidMemoryUnaggregatedMetric.ProcessMemoryValues\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidMemoryUnaggregatedMetric.ProcessMemoryValues} ProcessMemoryValues\n */\n ProcessMemoryValues.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidMemoryUnaggregatedMetric.ProcessMemoryValues)\n return object;\n var message = new $root.perfetto.protos.AndroidMemoryUnaggregatedMetric.ProcessMemoryValues();\n if (object.anonRss) {\n if (!Array.isArray(object.anonRss))\n throw TypeError(\".perfetto.protos.AndroidMemoryUnaggregatedMetric.ProcessMemoryValues.anonRss: array expected\");\n message.anonRss = [];\n for (var i = 0; i < object.anonRss.length; ++i) {\n if (typeof object.anonRss[i] !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidMemoryUnaggregatedMetric.ProcessMemoryValues.anonRss: object expected\");\n message.anonRss[i] = $root.perfetto.protos.AndroidMemoryUnaggregatedMetric.Value.fromObject(object.anonRss[i]);\n }\n }\n if (object.fileRss) {\n if (!Array.isArray(object.fileRss))\n throw TypeError(\".perfetto.protos.AndroidMemoryUnaggregatedMetric.ProcessMemoryValues.fileRss: array expected\");\n message.fileRss = [];\n for (var i = 0; i < object.fileRss.length; ++i) {\n if (typeof object.fileRss[i] !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidMemoryUnaggregatedMetric.ProcessMemoryValues.fileRss: object expected\");\n message.fileRss[i] = $root.perfetto.protos.AndroidMemoryUnaggregatedMetric.Value.fromObject(object.fileRss[i]);\n }\n }\n if (object.swap) {\n if (!Array.isArray(object.swap))\n throw TypeError(\".perfetto.protos.AndroidMemoryUnaggregatedMetric.ProcessMemoryValues.swap: array expected\");\n message.swap = [];\n for (var i = 0; i < object.swap.length; ++i) {\n if (typeof object.swap[i] !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidMemoryUnaggregatedMetric.ProcessMemoryValues.swap: object expected\");\n message.swap[i] = $root.perfetto.protos.AndroidMemoryUnaggregatedMetric.Value.fromObject(object.swap[i]);\n }\n }\n if (object.anonAndSwap) {\n if (!Array.isArray(object.anonAndSwap))\n throw TypeError(\".perfetto.protos.AndroidMemoryUnaggregatedMetric.ProcessMemoryValues.anonAndSwap: array expected\");\n message.anonAndSwap = [];\n for (var i = 0; i < object.anonAndSwap.length; ++i) {\n if (typeof object.anonAndSwap[i] !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidMemoryUnaggregatedMetric.ProcessMemoryValues.anonAndSwap: object expected\");\n message.anonAndSwap[i] = $root.perfetto.protos.AndroidMemoryUnaggregatedMetric.Value.fromObject(object.anonAndSwap[i]);\n }\n }\n return message;\n };\n\n /**\n * Creates a plain object from a ProcessMemoryValues message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidMemoryUnaggregatedMetric.ProcessMemoryValues\n * @static\n * @param {perfetto.protos.AndroidMemoryUnaggregatedMetric.ProcessMemoryValues} message ProcessMemoryValues\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n ProcessMemoryValues.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults) {\n object.anonRss = [];\n object.fileRss = [];\n object.swap = [];\n object.anonAndSwap = [];\n }\n if (message.anonRss && message.anonRss.length) {\n object.anonRss = [];\n for (var j = 0; j < message.anonRss.length; ++j)\n object.anonRss[j] = $root.perfetto.protos.AndroidMemoryUnaggregatedMetric.Value.toObject(message.anonRss[j], options);\n }\n if (message.fileRss && message.fileRss.length) {\n object.fileRss = [];\n for (var j = 0; j < message.fileRss.length; ++j)\n object.fileRss[j] = $root.perfetto.protos.AndroidMemoryUnaggregatedMetric.Value.toObject(message.fileRss[j], options);\n }\n if (message.swap && message.swap.length) {\n object.swap = [];\n for (var j = 0; j < message.swap.length; ++j)\n object.swap[j] = $root.perfetto.protos.AndroidMemoryUnaggregatedMetric.Value.toObject(message.swap[j], options);\n }\n if (message.anonAndSwap && message.anonAndSwap.length) {\n object.anonAndSwap = [];\n for (var j = 0; j < message.anonAndSwap.length; ++j)\n object.anonAndSwap[j] = $root.perfetto.protos.AndroidMemoryUnaggregatedMetric.Value.toObject(message.anonAndSwap[j], options);\n }\n return object;\n };\n\n /**\n * Converts this ProcessMemoryValues to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidMemoryUnaggregatedMetric.ProcessMemoryValues\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n ProcessMemoryValues.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return ProcessMemoryValues;\n })();\n\n AndroidMemoryUnaggregatedMetric.Value = (function() {\n\n /**\n * Properties of a Value.\n * @memberof perfetto.protos.AndroidMemoryUnaggregatedMetric\n * @interface IValue\n * @property {number|null} [ts] Value ts\n * @property {number|null} [oomScore] Value oomScore\n * @property {number|null} [value] Value value\n */\n\n /**\n * Constructs a new Value.\n * @memberof perfetto.protos.AndroidMemoryUnaggregatedMetric\n * @classdesc Represents a Value.\n * @implements IValue\n * @constructor\n * @param {perfetto.protos.AndroidMemoryUnaggregatedMetric.IValue=} [properties] Properties to set\n */\n function Value(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * Value ts.\n * @member {number} ts\n * @memberof perfetto.protos.AndroidMemoryUnaggregatedMetric.Value\n * @instance\n */\n Value.prototype.ts = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * Value oomScore.\n * @member {number} oomScore\n * @memberof perfetto.protos.AndroidMemoryUnaggregatedMetric.Value\n * @instance\n */\n Value.prototype.oomScore = 0;\n\n /**\n * Value value.\n * @member {number} value\n * @memberof perfetto.protos.AndroidMemoryUnaggregatedMetric.Value\n * @instance\n */\n Value.prototype.value = 0;\n\n /**\n * Creates a new Value instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidMemoryUnaggregatedMetric.Value\n * @static\n * @param {perfetto.protos.AndroidMemoryUnaggregatedMetric.IValue=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidMemoryUnaggregatedMetric.Value} Value instance\n */\n Value.create = function create(properties) {\n return new Value(properties);\n };\n\n /**\n * Encodes the specified Value message. Does not implicitly {@link perfetto.protos.AndroidMemoryUnaggregatedMetric.Value.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidMemoryUnaggregatedMetric.Value\n * @static\n * @param {perfetto.protos.AndroidMemoryUnaggregatedMetric.IValue} message Value message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Value.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.ts != null && Object.hasOwnProperty.call(message, \"ts\"))\n writer.uint32(/* id 1, wireType 0 =*/8).int64(message.ts);\n if (message.oomScore != null && Object.hasOwnProperty.call(message, \"oomScore\"))\n writer.uint32(/* id 2, wireType 0 =*/16).int32(message.oomScore);\n if (message.value != null && Object.hasOwnProperty.call(message, \"value\"))\n writer.uint32(/* id 3, wireType 1 =*/25).double(message.value);\n return writer;\n };\n\n /**\n * Encodes the specified Value message, length delimited. Does not implicitly {@link perfetto.protos.AndroidMemoryUnaggregatedMetric.Value.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidMemoryUnaggregatedMetric.Value\n * @static\n * @param {perfetto.protos.AndroidMemoryUnaggregatedMetric.IValue} message Value message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Value.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a Value message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidMemoryUnaggregatedMetric.Value\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidMemoryUnaggregatedMetric.Value} Value\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Value.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidMemoryUnaggregatedMetric.Value();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.ts = reader.int64();\n break;\n case 2:\n message.oomScore = reader.int32();\n break;\n case 3:\n message.value = reader.double();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a Value message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidMemoryUnaggregatedMetric.Value\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidMemoryUnaggregatedMetric.Value} Value\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Value.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a Value message.\n * @function verify\n * @memberof perfetto.protos.AndroidMemoryUnaggregatedMetric.Value\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n Value.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.ts != null && message.hasOwnProperty(\"ts\"))\n if (!$util.isInteger(message.ts) && !(message.ts && $util.isInteger(message.ts.low) && $util.isInteger(message.ts.high)))\n return \"ts: integer|Long expected\";\n if (message.oomScore != null && message.hasOwnProperty(\"oomScore\"))\n if (!$util.isInteger(message.oomScore))\n return \"oomScore: integer expected\";\n if (message.value != null && message.hasOwnProperty(\"value\"))\n if (typeof message.value !== \"number\")\n return \"value: number expected\";\n return null;\n };\n\n /**\n * Creates a Value message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidMemoryUnaggregatedMetric.Value\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidMemoryUnaggregatedMetric.Value} Value\n */\n Value.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidMemoryUnaggregatedMetric.Value)\n return object;\n var message = new $root.perfetto.protos.AndroidMemoryUnaggregatedMetric.Value();\n if (object.ts != null)\n if ($util.Long)\n (message.ts = $util.Long.fromValue(object.ts)).unsigned = false;\n else if (typeof object.ts === \"string\")\n message.ts = parseInt(object.ts, 10);\n else if (typeof object.ts === \"number\")\n message.ts = object.ts;\n else if (typeof object.ts === \"object\")\n message.ts = new $util.LongBits(object.ts.low >>> 0, object.ts.high >>> 0).toNumber();\n if (object.oomScore != null)\n message.oomScore = object.oomScore | 0;\n if (object.value != null)\n message.value = Number(object.value);\n return message;\n };\n\n /**\n * Creates a plain object from a Value message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidMemoryUnaggregatedMetric.Value\n * @static\n * @param {perfetto.protos.AndroidMemoryUnaggregatedMetric.Value} message Value\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n Value.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.ts = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.ts = options.longs === String ? \"0\" : 0;\n object.oomScore = 0;\n object.value = 0;\n }\n if (message.ts != null && message.hasOwnProperty(\"ts\"))\n if (typeof message.ts === \"number\")\n object.ts = options.longs === String ? String(message.ts) : message.ts;\n else\n object.ts = options.longs === String ? $util.Long.prototype.toString.call(message.ts) : options.longs === Number ? new $util.LongBits(message.ts.low >>> 0, message.ts.high >>> 0).toNumber() : message.ts;\n if (message.oomScore != null && message.hasOwnProperty(\"oomScore\"))\n object.oomScore = message.oomScore;\n if (message.value != null && message.hasOwnProperty(\"value\"))\n object.value = options.json && !isFinite(message.value) ? String(message.value) : message.value;\n return object;\n };\n\n /**\n * Converts this Value to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidMemoryUnaggregatedMetric.Value\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n Value.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return Value;\n })();\n\n return AndroidMemoryUnaggregatedMetric;\n })();\n\n protos.AndroidMultiuserMetric = (function() {\n\n /**\n * Properties of an AndroidMultiuserMetric.\n * @memberof perfetto.protos\n * @interface IAndroidMultiuserMetric\n * @property {perfetto.protos.AndroidMultiuserMetric.IEventData|null} [userSwitch] AndroidMultiuserMetric userSwitch\n */\n\n /**\n * Constructs a new AndroidMultiuserMetric.\n * @memberof perfetto.protos\n * @classdesc Represents an AndroidMultiuserMetric.\n * @implements IAndroidMultiuserMetric\n * @constructor\n * @param {perfetto.protos.IAndroidMultiuserMetric=} [properties] Properties to set\n */\n function AndroidMultiuserMetric(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * AndroidMultiuserMetric userSwitch.\n * @member {perfetto.protos.AndroidMultiuserMetric.IEventData|null|undefined} userSwitch\n * @memberof perfetto.protos.AndroidMultiuserMetric\n * @instance\n */\n AndroidMultiuserMetric.prototype.userSwitch = null;\n\n /**\n * Creates a new AndroidMultiuserMetric instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidMultiuserMetric\n * @static\n * @param {perfetto.protos.IAndroidMultiuserMetric=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidMultiuserMetric} AndroidMultiuserMetric instance\n */\n AndroidMultiuserMetric.create = function create(properties) {\n return new AndroidMultiuserMetric(properties);\n };\n\n /**\n * Encodes the specified AndroidMultiuserMetric message. Does not implicitly {@link perfetto.protos.AndroidMultiuserMetric.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidMultiuserMetric\n * @static\n * @param {perfetto.protos.IAndroidMultiuserMetric} message AndroidMultiuserMetric message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n AndroidMultiuserMetric.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.userSwitch != null && Object.hasOwnProperty.call(message, \"userSwitch\"))\n $root.perfetto.protos.AndroidMultiuserMetric.EventData.encode(message.userSwitch, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified AndroidMultiuserMetric message, length delimited. Does not implicitly {@link perfetto.protos.AndroidMultiuserMetric.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidMultiuserMetric\n * @static\n * @param {perfetto.protos.IAndroidMultiuserMetric} message AndroidMultiuserMetric message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n AndroidMultiuserMetric.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes an AndroidMultiuserMetric message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidMultiuserMetric\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidMultiuserMetric} AndroidMultiuserMetric\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n AndroidMultiuserMetric.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidMultiuserMetric();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.userSwitch = $root.perfetto.protos.AndroidMultiuserMetric.EventData.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes an AndroidMultiuserMetric message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidMultiuserMetric\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidMultiuserMetric} AndroidMultiuserMetric\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n AndroidMultiuserMetric.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies an AndroidMultiuserMetric message.\n * @function verify\n * @memberof perfetto.protos.AndroidMultiuserMetric\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n AndroidMultiuserMetric.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.userSwitch != null && message.hasOwnProperty(\"userSwitch\")) {\n var error = $root.perfetto.protos.AndroidMultiuserMetric.EventData.verify(message.userSwitch);\n if (error)\n return \"userSwitch.\" + error;\n }\n return null;\n };\n\n /**\n * Creates an AndroidMultiuserMetric message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidMultiuserMetric\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidMultiuserMetric} AndroidMultiuserMetric\n */\n AndroidMultiuserMetric.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidMultiuserMetric)\n return object;\n var message = new $root.perfetto.protos.AndroidMultiuserMetric();\n if (object.userSwitch != null) {\n if (typeof object.userSwitch !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidMultiuserMetric.userSwitch: object expected\");\n message.userSwitch = $root.perfetto.protos.AndroidMultiuserMetric.EventData.fromObject(object.userSwitch);\n }\n return message;\n };\n\n /**\n * Creates a plain object from an AndroidMultiuserMetric message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidMultiuserMetric\n * @static\n * @param {perfetto.protos.AndroidMultiuserMetric} message AndroidMultiuserMetric\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n AndroidMultiuserMetric.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults)\n object.userSwitch = null;\n if (message.userSwitch != null && message.hasOwnProperty(\"userSwitch\"))\n object.userSwitch = $root.perfetto.protos.AndroidMultiuserMetric.EventData.toObject(message.userSwitch, options);\n return object;\n };\n\n /**\n * Converts this AndroidMultiuserMetric to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidMultiuserMetric\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n AndroidMultiuserMetric.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n AndroidMultiuserMetric.EventData = (function() {\n\n /**\n * Properties of an EventData.\n * @memberof perfetto.protos.AndroidMultiuserMetric\n * @interface IEventData\n * @property {number|null} [durationMs] EventData durationMs\n * @property {Array.<perfetto.protos.AndroidMultiuserMetric.EventData.ICpuUsage>|null} [cpuUsage] EventData cpuUsage\n */\n\n /**\n * Constructs a new EventData.\n * @memberof perfetto.protos.AndroidMultiuserMetric\n * @classdesc Represents an EventData.\n * @implements IEventData\n * @constructor\n * @param {perfetto.protos.AndroidMultiuserMetric.IEventData=} [properties] Properties to set\n */\n function EventData(properties) {\n this.cpuUsage = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * EventData durationMs.\n * @member {number} durationMs\n * @memberof perfetto.protos.AndroidMultiuserMetric.EventData\n * @instance\n */\n EventData.prototype.durationMs = 0;\n\n /**\n * EventData cpuUsage.\n * @member {Array.<perfetto.protos.AndroidMultiuserMetric.EventData.ICpuUsage>} cpuUsage\n * @memberof perfetto.protos.AndroidMultiuserMetric.EventData\n * @instance\n */\n EventData.prototype.cpuUsage = $util.emptyArray;\n\n /**\n * Creates a new EventData instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidMultiuserMetric.EventData\n * @static\n * @param {perfetto.protos.AndroidMultiuserMetric.IEventData=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidMultiuserMetric.EventData} EventData instance\n */\n EventData.create = function create(properties) {\n return new EventData(properties);\n };\n\n /**\n * Encodes the specified EventData message. Does not implicitly {@link perfetto.protos.AndroidMultiuserMetric.EventData.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidMultiuserMetric.EventData\n * @static\n * @param {perfetto.protos.AndroidMultiuserMetric.IEventData} message EventData message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n EventData.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.durationMs != null && Object.hasOwnProperty.call(message, \"durationMs\"))\n writer.uint32(/* id 1, wireType 0 =*/8).int32(message.durationMs);\n if (message.cpuUsage != null && message.cpuUsage.length)\n for (var i = 0; i < message.cpuUsage.length; ++i)\n $root.perfetto.protos.AndroidMultiuserMetric.EventData.CpuUsage.encode(message.cpuUsage[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified EventData message, length delimited. Does not implicitly {@link perfetto.protos.AndroidMultiuserMetric.EventData.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidMultiuserMetric.EventData\n * @static\n * @param {perfetto.protos.AndroidMultiuserMetric.IEventData} message EventData message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n EventData.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes an EventData message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidMultiuserMetric.EventData\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidMultiuserMetric.EventData} EventData\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n EventData.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidMultiuserMetric.EventData();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.durationMs = reader.int32();\n break;\n case 2:\n if (!(message.cpuUsage && message.cpuUsage.length))\n message.cpuUsage = [];\n message.cpuUsage.push($root.perfetto.protos.AndroidMultiuserMetric.EventData.CpuUsage.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes an EventData message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidMultiuserMetric.EventData\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidMultiuserMetric.EventData} EventData\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n EventData.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies an EventData message.\n * @function verify\n * @memberof perfetto.protos.AndroidMultiuserMetric.EventData\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n EventData.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.durationMs != null && message.hasOwnProperty(\"durationMs\"))\n if (!$util.isInteger(message.durationMs))\n return \"durationMs: integer expected\";\n if (message.cpuUsage != null && message.hasOwnProperty(\"cpuUsage\")) {\n if (!Array.isArray(message.cpuUsage))\n return \"cpuUsage: array expected\";\n for (var i = 0; i < message.cpuUsage.length; ++i) {\n var error = $root.perfetto.protos.AndroidMultiuserMetric.EventData.CpuUsage.verify(message.cpuUsage[i]);\n if (error)\n return \"cpuUsage.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates an EventData message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidMultiuserMetric.EventData\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidMultiuserMetric.EventData} EventData\n */\n EventData.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidMultiuserMetric.EventData)\n return object;\n var message = new $root.perfetto.protos.AndroidMultiuserMetric.EventData();\n if (object.durationMs != null)\n message.durationMs = object.durationMs | 0;\n if (object.cpuUsage) {\n if (!Array.isArray(object.cpuUsage))\n throw TypeError(\".perfetto.protos.AndroidMultiuserMetric.EventData.cpuUsage: array expected\");\n message.cpuUsage = [];\n for (var i = 0; i < object.cpuUsage.length; ++i) {\n if (typeof object.cpuUsage[i] !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidMultiuserMetric.EventData.cpuUsage: object expected\");\n message.cpuUsage[i] = $root.perfetto.protos.AndroidMultiuserMetric.EventData.CpuUsage.fromObject(object.cpuUsage[i]);\n }\n }\n return message;\n };\n\n /**\n * Creates a plain object from an EventData message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidMultiuserMetric.EventData\n * @static\n * @param {perfetto.protos.AndroidMultiuserMetric.EventData} message EventData\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n EventData.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.cpuUsage = [];\n if (options.defaults)\n object.durationMs = 0;\n if (message.durationMs != null && message.hasOwnProperty(\"durationMs\"))\n object.durationMs = message.durationMs;\n if (message.cpuUsage && message.cpuUsage.length) {\n object.cpuUsage = [];\n for (var j = 0; j < message.cpuUsage.length; ++j)\n object.cpuUsage[j] = $root.perfetto.protos.AndroidMultiuserMetric.EventData.CpuUsage.toObject(message.cpuUsage[j], options);\n }\n return object;\n };\n\n /**\n * Converts this EventData to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidMultiuserMetric.EventData\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n EventData.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n EventData.CpuUsage = (function() {\n\n /**\n * Properties of a CpuUsage.\n * @memberof perfetto.protos.AndroidMultiuserMetric.EventData\n * @interface ICpuUsage\n * @property {number|null} [userId] CpuUsage userId\n * @property {string|null} [processName] CpuUsage processName\n * @property {number|null} [cpuMcycles] CpuUsage cpuMcycles\n * @property {number|null} [cpuPercentage] CpuUsage cpuPercentage\n * @property {string|null} [identifier] CpuUsage identifier\n */\n\n /**\n * Constructs a new CpuUsage.\n * @memberof perfetto.protos.AndroidMultiuserMetric.EventData\n * @classdesc Represents a CpuUsage.\n * @implements ICpuUsage\n * @constructor\n * @param {perfetto.protos.AndroidMultiuserMetric.EventData.ICpuUsage=} [properties] Properties to set\n */\n function CpuUsage(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * CpuUsage userId.\n * @member {number} userId\n * @memberof perfetto.protos.AndroidMultiuserMetric.EventData.CpuUsage\n * @instance\n */\n CpuUsage.prototype.userId = 0;\n\n /**\n * CpuUsage processName.\n * @member {string} processName\n * @memberof perfetto.protos.AndroidMultiuserMetric.EventData.CpuUsage\n * @instance\n */\n CpuUsage.prototype.processName = \"\";\n\n /**\n * CpuUsage cpuMcycles.\n * @member {number} cpuMcycles\n * @memberof perfetto.protos.AndroidMultiuserMetric.EventData.CpuUsage\n * @instance\n */\n CpuUsage.prototype.cpuMcycles = 0;\n\n /**\n * CpuUsage cpuPercentage.\n * @member {number} cpuPercentage\n * @memberof perfetto.protos.AndroidMultiuserMetric.EventData.CpuUsage\n * @instance\n */\n CpuUsage.prototype.cpuPercentage = 0;\n\n /**\n * CpuUsage identifier.\n * @member {string} identifier\n * @memberof perfetto.protos.AndroidMultiuserMetric.EventData.CpuUsage\n * @instance\n */\n CpuUsage.prototype.identifier = \"\";\n\n /**\n * Creates a new CpuUsage instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidMultiuserMetric.EventData.CpuUsage\n * @static\n * @param {perfetto.protos.AndroidMultiuserMetric.EventData.ICpuUsage=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidMultiuserMetric.EventData.CpuUsage} CpuUsage instance\n */\n CpuUsage.create = function create(properties) {\n return new CpuUsage(properties);\n };\n\n /**\n * Encodes the specified CpuUsage message. Does not implicitly {@link perfetto.protos.AndroidMultiuserMetric.EventData.CpuUsage.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidMultiuserMetric.EventData.CpuUsage\n * @static\n * @param {perfetto.protos.AndroidMultiuserMetric.EventData.ICpuUsage} message CpuUsage message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n CpuUsage.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.userId != null && Object.hasOwnProperty.call(message, \"userId\"))\n writer.uint32(/* id 1, wireType 0 =*/8).int32(message.userId);\n if (message.processName != null && Object.hasOwnProperty.call(message, \"processName\"))\n writer.uint32(/* id 2, wireType 2 =*/18).string(message.processName);\n if (message.cpuMcycles != null && Object.hasOwnProperty.call(message, \"cpuMcycles\"))\n writer.uint32(/* id 3, wireType 0 =*/24).int32(message.cpuMcycles);\n if (message.cpuPercentage != null && Object.hasOwnProperty.call(message, \"cpuPercentage\"))\n writer.uint32(/* id 4, wireType 5 =*/37).float(message.cpuPercentage);\n if (message.identifier != null && Object.hasOwnProperty.call(message, \"identifier\"))\n writer.uint32(/* id 5, wireType 2 =*/42).string(message.identifier);\n return writer;\n };\n\n /**\n * Encodes the specified CpuUsage message, length delimited. Does not implicitly {@link perfetto.protos.AndroidMultiuserMetric.EventData.CpuUsage.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidMultiuserMetric.EventData.CpuUsage\n * @static\n * @param {perfetto.protos.AndroidMultiuserMetric.EventData.ICpuUsage} message CpuUsage message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n CpuUsage.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a CpuUsage message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidMultiuserMetric.EventData.CpuUsage\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidMultiuserMetric.EventData.CpuUsage} CpuUsage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n CpuUsage.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidMultiuserMetric.EventData.CpuUsage();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.userId = reader.int32();\n break;\n case 2:\n message.processName = reader.string();\n break;\n case 3:\n message.cpuMcycles = reader.int32();\n break;\n case 4:\n message.cpuPercentage = reader.float();\n break;\n case 5:\n message.identifier = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a CpuUsage message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidMultiuserMetric.EventData.CpuUsage\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidMultiuserMetric.EventData.CpuUsage} CpuUsage\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n CpuUsage.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a CpuUsage message.\n * @function verify\n * @memberof perfetto.protos.AndroidMultiuserMetric.EventData.CpuUsage\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n CpuUsage.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.userId != null && message.hasOwnProperty(\"userId\"))\n if (!$util.isInteger(message.userId))\n return \"userId: integer expected\";\n if (message.processName != null && message.hasOwnProperty(\"processName\"))\n if (!$util.isString(message.processName))\n return \"processName: string expected\";\n if (message.cpuMcycles != null && message.hasOwnProperty(\"cpuMcycles\"))\n if (!$util.isInteger(message.cpuMcycles))\n return \"cpuMcycles: integer expected\";\n if (message.cpuPercentage != null && message.hasOwnProperty(\"cpuPercentage\"))\n if (typeof message.cpuPercentage !== \"number\")\n return \"cpuPercentage: number expected\";\n if (message.identifier != null && message.hasOwnProperty(\"identifier\"))\n if (!$util.isString(message.identifier))\n return \"identifier: string expected\";\n return null;\n };\n\n /**\n * Creates a CpuUsage message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidMultiuserMetric.EventData.CpuUsage\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidMultiuserMetric.EventData.CpuUsage} CpuUsage\n */\n CpuUsage.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidMultiuserMetric.EventData.CpuUsage)\n return object;\n var message = new $root.perfetto.protos.AndroidMultiuserMetric.EventData.CpuUsage();\n if (object.userId != null)\n message.userId = object.userId | 0;\n if (object.processName != null)\n message.processName = String(object.processName);\n if (object.cpuMcycles != null)\n message.cpuMcycles = object.cpuMcycles | 0;\n if (object.cpuPercentage != null)\n message.cpuPercentage = Number(object.cpuPercentage);\n if (object.identifier != null)\n message.identifier = String(object.identifier);\n return message;\n };\n\n /**\n * Creates a plain object from a CpuUsage message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidMultiuserMetric.EventData.CpuUsage\n * @static\n * @param {perfetto.protos.AndroidMultiuserMetric.EventData.CpuUsage} message CpuUsage\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n CpuUsage.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.userId = 0;\n object.processName = \"\";\n object.cpuMcycles = 0;\n object.cpuPercentage = 0;\n object.identifier = \"\";\n }\n if (message.userId != null && message.hasOwnProperty(\"userId\"))\n object.userId = message.userId;\n if (message.processName != null && message.hasOwnProperty(\"processName\"))\n object.processName = message.processName;\n if (message.cpuMcycles != null && message.hasOwnProperty(\"cpuMcycles\"))\n object.cpuMcycles = message.cpuMcycles;\n if (message.cpuPercentage != null && message.hasOwnProperty(\"cpuPercentage\"))\n object.cpuPercentage = options.json && !isFinite(message.cpuPercentage) ? String(message.cpuPercentage) : message.cpuPercentage;\n if (message.identifier != null && message.hasOwnProperty(\"identifier\"))\n object.identifier = message.identifier;\n return object;\n };\n\n /**\n * Converts this CpuUsage to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidMultiuserMetric.EventData.CpuUsage\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n CpuUsage.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return CpuUsage;\n })();\n\n return EventData;\n })();\n\n return AndroidMultiuserMetric;\n })();\n\n protos.AndroidNetworkMetric = (function() {\n\n /**\n * Properties of an AndroidNetworkMetric.\n * @memberof perfetto.protos\n * @interface IAndroidNetworkMetric\n * @property {Array.<perfetto.protos.AndroidNetworkMetric.INetDevice>|null} [netDevices] AndroidNetworkMetric netDevices\n * @property {perfetto.protos.AndroidNetworkMetric.INetRxAction|null} [netRxAction] AndroidNetworkMetric netRxAction\n */\n\n /**\n * Constructs a new AndroidNetworkMetric.\n * @memberof perfetto.protos\n * @classdesc Represents an AndroidNetworkMetric.\n * @implements IAndroidNetworkMetric\n * @constructor\n * @param {perfetto.protos.IAndroidNetworkMetric=} [properties] Properties to set\n */\n function AndroidNetworkMetric(properties) {\n this.netDevices = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * AndroidNetworkMetric netDevices.\n * @member {Array.<perfetto.protos.AndroidNetworkMetric.INetDevice>} netDevices\n * @memberof perfetto.protos.AndroidNetworkMetric\n * @instance\n */\n AndroidNetworkMetric.prototype.netDevices = $util.emptyArray;\n\n /**\n * AndroidNetworkMetric netRxAction.\n * @member {perfetto.protos.AndroidNetworkMetric.INetRxAction|null|undefined} netRxAction\n * @memberof perfetto.protos.AndroidNetworkMetric\n * @instance\n */\n AndroidNetworkMetric.prototype.netRxAction = null;\n\n /**\n * Creates a new AndroidNetworkMetric instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidNetworkMetric\n * @static\n * @param {perfetto.protos.IAndroidNetworkMetric=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidNetworkMetric} AndroidNetworkMetric instance\n */\n AndroidNetworkMetric.create = function create(properties) {\n return new AndroidNetworkMetric(properties);\n };\n\n /**\n * Encodes the specified AndroidNetworkMetric message. Does not implicitly {@link perfetto.protos.AndroidNetworkMetric.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidNetworkMetric\n * @static\n * @param {perfetto.protos.IAndroidNetworkMetric} message AndroidNetworkMetric message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n AndroidNetworkMetric.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.netDevices != null && message.netDevices.length)\n for (var i = 0; i < message.netDevices.length; ++i)\n $root.perfetto.protos.AndroidNetworkMetric.NetDevice.encode(message.netDevices[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n if (message.netRxAction != null && Object.hasOwnProperty.call(message, \"netRxAction\"))\n $root.perfetto.protos.AndroidNetworkMetric.NetRxAction.encode(message.netRxAction, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified AndroidNetworkMetric message, length delimited. Does not implicitly {@link perfetto.protos.AndroidNetworkMetric.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidNetworkMetric\n * @static\n * @param {perfetto.protos.IAndroidNetworkMetric} message AndroidNetworkMetric message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n AndroidNetworkMetric.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes an AndroidNetworkMetric message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidNetworkMetric\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidNetworkMetric} AndroidNetworkMetric\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n AndroidNetworkMetric.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidNetworkMetric();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (!(message.netDevices && message.netDevices.length))\n message.netDevices = [];\n message.netDevices.push($root.perfetto.protos.AndroidNetworkMetric.NetDevice.decode(reader, reader.uint32()));\n break;\n case 2:\n message.netRxAction = $root.perfetto.protos.AndroidNetworkMetric.NetRxAction.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes an AndroidNetworkMetric message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidNetworkMetric\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidNetworkMetric} AndroidNetworkMetric\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n AndroidNetworkMetric.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies an AndroidNetworkMetric message.\n * @function verify\n * @memberof perfetto.protos.AndroidNetworkMetric\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n AndroidNetworkMetric.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.netDevices != null && message.hasOwnProperty(\"netDevices\")) {\n if (!Array.isArray(message.netDevices))\n return \"netDevices: array expected\";\n for (var i = 0; i < message.netDevices.length; ++i) {\n var error = $root.perfetto.protos.AndroidNetworkMetric.NetDevice.verify(message.netDevices[i]);\n if (error)\n return \"netDevices.\" + error;\n }\n }\n if (message.netRxAction != null && message.hasOwnProperty(\"netRxAction\")) {\n var error = $root.perfetto.protos.AndroidNetworkMetric.NetRxAction.verify(message.netRxAction);\n if (error)\n return \"netRxAction.\" + error;\n }\n return null;\n };\n\n /**\n * Creates an AndroidNetworkMetric message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidNetworkMetric\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidNetworkMetric} AndroidNetworkMetric\n */\n AndroidNetworkMetric.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidNetworkMetric)\n return object;\n var message = new $root.perfetto.protos.AndroidNetworkMetric();\n if (object.netDevices) {\n if (!Array.isArray(object.netDevices))\n throw TypeError(\".perfetto.protos.AndroidNetworkMetric.netDevices: array expected\");\n message.netDevices = [];\n for (var i = 0; i < object.netDevices.length; ++i) {\n if (typeof object.netDevices[i] !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidNetworkMetric.netDevices: object expected\");\n message.netDevices[i] = $root.perfetto.protos.AndroidNetworkMetric.NetDevice.fromObject(object.netDevices[i]);\n }\n }\n if (object.netRxAction != null) {\n if (typeof object.netRxAction !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidNetworkMetric.netRxAction: object expected\");\n message.netRxAction = $root.perfetto.protos.AndroidNetworkMetric.NetRxAction.fromObject(object.netRxAction);\n }\n return message;\n };\n\n /**\n * Creates a plain object from an AndroidNetworkMetric message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidNetworkMetric\n * @static\n * @param {perfetto.protos.AndroidNetworkMetric} message AndroidNetworkMetric\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n AndroidNetworkMetric.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.netDevices = [];\n if (options.defaults)\n object.netRxAction = null;\n if (message.netDevices && message.netDevices.length) {\n object.netDevices = [];\n for (var j = 0; j < message.netDevices.length; ++j)\n object.netDevices[j] = $root.perfetto.protos.AndroidNetworkMetric.NetDevice.toObject(message.netDevices[j], options);\n }\n if (message.netRxAction != null && message.hasOwnProperty(\"netRxAction\"))\n object.netRxAction = $root.perfetto.protos.AndroidNetworkMetric.NetRxAction.toObject(message.netRxAction, options);\n return object;\n };\n\n /**\n * Converts this AndroidNetworkMetric to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidNetworkMetric\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n AndroidNetworkMetric.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n AndroidNetworkMetric.PacketStatistic = (function() {\n\n /**\n * Properties of a PacketStatistic.\n * @memberof perfetto.protos.AndroidNetworkMetric\n * @interface IPacketStatistic\n * @property {number|null} [packets] PacketStatistic packets\n * @property {number|null} [bytes] PacketStatistic bytes\n * @property {number|null} [firstPacketTimestampNs] PacketStatistic firstPacketTimestampNs\n * @property {number|null} [lastPacketTimestampNs] PacketStatistic lastPacketTimestampNs\n * @property {number|null} [intervalNs] PacketStatistic intervalNs\n * @property {number|null} [dataRateKbps] PacketStatistic dataRateKbps\n */\n\n /**\n * Constructs a new PacketStatistic.\n * @memberof perfetto.protos.AndroidNetworkMetric\n * @classdesc Represents a PacketStatistic.\n * @implements IPacketStatistic\n * @constructor\n * @param {perfetto.protos.AndroidNetworkMetric.IPacketStatistic=} [properties] Properties to set\n */\n function PacketStatistic(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * PacketStatistic packets.\n * @member {number} packets\n * @memberof perfetto.protos.AndroidNetworkMetric.PacketStatistic\n * @instance\n */\n PacketStatistic.prototype.packets = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * PacketStatistic bytes.\n * @member {number} bytes\n * @memberof perfetto.protos.AndroidNetworkMetric.PacketStatistic\n * @instance\n */\n PacketStatistic.prototype.bytes = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * PacketStatistic firstPacketTimestampNs.\n * @member {number} firstPacketTimestampNs\n * @memberof perfetto.protos.AndroidNetworkMetric.PacketStatistic\n * @instance\n */\n PacketStatistic.prototype.firstPacketTimestampNs = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * PacketStatistic lastPacketTimestampNs.\n * @member {number} lastPacketTimestampNs\n * @memberof perfetto.protos.AndroidNetworkMetric.PacketStatistic\n * @instance\n */\n PacketStatistic.prototype.lastPacketTimestampNs = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * PacketStatistic intervalNs.\n * @member {number} intervalNs\n * @memberof perfetto.protos.AndroidNetworkMetric.PacketStatistic\n * @instance\n */\n PacketStatistic.prototype.intervalNs = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * PacketStatistic dataRateKbps.\n * @member {number} dataRateKbps\n * @memberof perfetto.protos.AndroidNetworkMetric.PacketStatistic\n * @instance\n */\n PacketStatistic.prototype.dataRateKbps = 0;\n\n /**\n * Creates a new PacketStatistic instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidNetworkMetric.PacketStatistic\n * @static\n * @param {perfetto.protos.AndroidNetworkMetric.IPacketStatistic=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidNetworkMetric.PacketStatistic} PacketStatistic instance\n */\n PacketStatistic.create = function create(properties) {\n return new PacketStatistic(properties);\n };\n\n /**\n * Encodes the specified PacketStatistic message. Does not implicitly {@link perfetto.protos.AndroidNetworkMetric.PacketStatistic.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidNetworkMetric.PacketStatistic\n * @static\n * @param {perfetto.protos.AndroidNetworkMetric.IPacketStatistic} message PacketStatistic message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n PacketStatistic.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.packets != null && Object.hasOwnProperty.call(message, \"packets\"))\n writer.uint32(/* id 1, wireType 0 =*/8).int64(message.packets);\n if (message.bytes != null && Object.hasOwnProperty.call(message, \"bytes\"))\n writer.uint32(/* id 2, wireType 0 =*/16).int64(message.bytes);\n if (message.firstPacketTimestampNs != null && Object.hasOwnProperty.call(message, \"firstPacketTimestampNs\"))\n writer.uint32(/* id 3, wireType 0 =*/24).int64(message.firstPacketTimestampNs);\n if (message.lastPacketTimestampNs != null && Object.hasOwnProperty.call(message, \"lastPacketTimestampNs\"))\n writer.uint32(/* id 4, wireType 0 =*/32).int64(message.lastPacketTimestampNs);\n if (message.intervalNs != null && Object.hasOwnProperty.call(message, \"intervalNs\"))\n writer.uint32(/* id 5, wireType 0 =*/40).int64(message.intervalNs);\n if (message.dataRateKbps != null && Object.hasOwnProperty.call(message, \"dataRateKbps\"))\n writer.uint32(/* id 6, wireType 1 =*/49).double(message.dataRateKbps);\n return writer;\n };\n\n /**\n * Encodes the specified PacketStatistic message, length delimited. Does not implicitly {@link perfetto.protos.AndroidNetworkMetric.PacketStatistic.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidNetworkMetric.PacketStatistic\n * @static\n * @param {perfetto.protos.AndroidNetworkMetric.IPacketStatistic} message PacketStatistic message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n PacketStatistic.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a PacketStatistic message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidNetworkMetric.PacketStatistic\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidNetworkMetric.PacketStatistic} PacketStatistic\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n PacketStatistic.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidNetworkMetric.PacketStatistic();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.packets = reader.int64();\n break;\n case 2:\n message.bytes = reader.int64();\n break;\n case 3:\n message.firstPacketTimestampNs = reader.int64();\n break;\n case 4:\n message.lastPacketTimestampNs = reader.int64();\n break;\n case 5:\n message.intervalNs = reader.int64();\n break;\n case 6:\n message.dataRateKbps = reader.double();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a PacketStatistic message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidNetworkMetric.PacketStatistic\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidNetworkMetric.PacketStatistic} PacketStatistic\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n PacketStatistic.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a PacketStatistic message.\n * @function verify\n * @memberof perfetto.protos.AndroidNetworkMetric.PacketStatistic\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n PacketStatistic.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.packets != null && message.hasOwnProperty(\"packets\"))\n if (!$util.isInteger(message.packets) && !(message.packets && $util.isInteger(message.packets.low) && $util.isInteger(message.packets.high)))\n return \"packets: integer|Long expected\";\n if (message.bytes != null && message.hasOwnProperty(\"bytes\"))\n if (!$util.isInteger(message.bytes) && !(message.bytes && $util.isInteger(message.bytes.low) && $util.isInteger(message.bytes.high)))\n return \"bytes: integer|Long expected\";\n if (message.firstPacketTimestampNs != null && message.hasOwnProperty(\"firstPacketTimestampNs\"))\n if (!$util.isInteger(message.firstPacketTimestampNs) && !(message.firstPacketTimestampNs && $util.isInteger(message.firstPacketTimestampNs.low) && $util.isInteger(message.firstPacketTimestampNs.high)))\n return \"firstPacketTimestampNs: integer|Long expected\";\n if (message.lastPacketTimestampNs != null && message.hasOwnProperty(\"lastPacketTimestampNs\"))\n if (!$util.isInteger(message.lastPacketTimestampNs) && !(message.lastPacketTimestampNs && $util.isInteger(message.lastPacketTimestampNs.low) && $util.isInteger(message.lastPacketTimestampNs.high)))\n return \"lastPacketTimestampNs: integer|Long expected\";\n if (message.intervalNs != null && message.hasOwnProperty(\"intervalNs\"))\n if (!$util.isInteger(message.intervalNs) && !(message.intervalNs && $util.isInteger(message.intervalNs.low) && $util.isInteger(message.intervalNs.high)))\n return \"intervalNs: integer|Long expected\";\n if (message.dataRateKbps != null && message.hasOwnProperty(\"dataRateKbps\"))\n if (typeof message.dataRateKbps !== \"number\")\n return \"dataRateKbps: number expected\";\n return null;\n };\n\n /**\n * Creates a PacketStatistic message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidNetworkMetric.PacketStatistic\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidNetworkMetric.PacketStatistic} PacketStatistic\n */\n PacketStatistic.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidNetworkMetric.PacketStatistic)\n return object;\n var message = new $root.perfetto.protos.AndroidNetworkMetric.PacketStatistic();\n if (object.packets != null)\n if ($util.Long)\n (message.packets = $util.Long.fromValue(object.packets)).unsigned = false;\n else if (typeof object.packets === \"string\")\n message.packets = parseInt(object.packets, 10);\n else if (typeof object.packets === \"number\")\n message.packets = object.packets;\n else if (typeof object.packets === \"object\")\n message.packets = new $util.LongBits(object.packets.low >>> 0, object.packets.high >>> 0).toNumber();\n if (object.bytes != null)\n if ($util.Long)\n (message.bytes = $util.Long.fromValue(object.bytes)).unsigned = false;\n else if (typeof object.bytes === \"string\")\n message.bytes = parseInt(object.bytes, 10);\n else if (typeof object.bytes === \"number\")\n message.bytes = object.bytes;\n else if (typeof object.bytes === \"object\")\n message.bytes = new $util.LongBits(object.bytes.low >>> 0, object.bytes.high >>> 0).toNumber();\n if (object.firstPacketTimestampNs != null)\n if ($util.Long)\n (message.firstPacketTimestampNs = $util.Long.fromValue(object.firstPacketTimestampNs)).unsigned = false;\n else if (typeof object.firstPacketTimestampNs === \"string\")\n message.firstPacketTimestampNs = parseInt(object.firstPacketTimestampNs, 10);\n else if (typeof object.firstPacketTimestampNs === \"number\")\n message.firstPacketTimestampNs = object.firstPacketTimestampNs;\n else if (typeof object.firstPacketTimestampNs === \"object\")\n message.firstPacketTimestampNs = new $util.LongBits(object.firstPacketTimestampNs.low >>> 0, object.firstPacketTimestampNs.high >>> 0).toNumber();\n if (object.lastPacketTimestampNs != null)\n if ($util.Long)\n (message.lastPacketTimestampNs = $util.Long.fromValue(object.lastPacketTimestampNs)).unsigned = false;\n else if (typeof object.lastPacketTimestampNs === \"string\")\n message.lastPacketTimestampNs = parseInt(object.lastPacketTimestampNs, 10);\n else if (typeof object.lastPacketTimestampNs === \"number\")\n message.lastPacketTimestampNs = object.lastPacketTimestampNs;\n else if (typeof object.lastPacketTimestampNs === \"object\")\n message.lastPacketTimestampNs = new $util.LongBits(object.lastPacketTimestampNs.low >>> 0, object.lastPacketTimestampNs.high >>> 0).toNumber();\n if (object.intervalNs != null)\n if ($util.Long)\n (message.intervalNs = $util.Long.fromValue(object.intervalNs)).unsigned = false;\n else if (typeof object.intervalNs === \"string\")\n message.intervalNs = parseInt(object.intervalNs, 10);\n else if (typeof object.intervalNs === \"number\")\n message.intervalNs = object.intervalNs;\n else if (typeof object.intervalNs === \"object\")\n message.intervalNs = new $util.LongBits(object.intervalNs.low >>> 0, object.intervalNs.high >>> 0).toNumber();\n if (object.dataRateKbps != null)\n message.dataRateKbps = Number(object.dataRateKbps);\n return message;\n };\n\n /**\n * Creates a plain object from a PacketStatistic message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidNetworkMetric.PacketStatistic\n * @static\n * @param {perfetto.protos.AndroidNetworkMetric.PacketStatistic} message PacketStatistic\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n PacketStatistic.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.packets = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.packets = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.bytes = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.bytes = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.firstPacketTimestampNs = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.firstPacketTimestampNs = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.lastPacketTimestampNs = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.lastPacketTimestampNs = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.intervalNs = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.intervalNs = options.longs === String ? \"0\" : 0;\n object.dataRateKbps = 0;\n }\n if (message.packets != null && message.hasOwnProperty(\"packets\"))\n if (typeof message.packets === \"number\")\n object.packets = options.longs === String ? String(message.packets) : message.packets;\n else\n object.packets = options.longs === String ? $util.Long.prototype.toString.call(message.packets) : options.longs === Number ? new $util.LongBits(message.packets.low >>> 0, message.packets.high >>> 0).toNumber() : message.packets;\n if (message.bytes != null && message.hasOwnProperty(\"bytes\"))\n if (typeof message.bytes === \"number\")\n object.bytes = options.longs === String ? String(message.bytes) : message.bytes;\n else\n object.bytes = options.longs === String ? $util.Long.prototype.toString.call(message.bytes) : options.longs === Number ? new $util.LongBits(message.bytes.low >>> 0, message.bytes.high >>> 0).toNumber() : message.bytes;\n if (message.firstPacketTimestampNs != null && message.hasOwnProperty(\"firstPacketTimestampNs\"))\n if (typeof message.firstPacketTimestampNs === \"number\")\n object.firstPacketTimestampNs = options.longs === String ? String(message.firstPacketTimestampNs) : message.firstPacketTimestampNs;\n else\n object.firstPacketTimestampNs = options.longs === String ? $util.Long.prototype.toString.call(message.firstPacketTimestampNs) : options.longs === Number ? new $util.LongBits(message.firstPacketTimestampNs.low >>> 0, message.firstPacketTimestampNs.high >>> 0).toNumber() : message.firstPacketTimestampNs;\n if (message.lastPacketTimestampNs != null && message.hasOwnProperty(\"lastPacketTimestampNs\"))\n if (typeof message.lastPacketTimestampNs === \"number\")\n object.lastPacketTimestampNs = options.longs === String ? String(message.lastPacketTimestampNs) : message.lastPacketTimestampNs;\n else\n object.lastPacketTimestampNs = options.longs === String ? $util.Long.prototype.toString.call(message.lastPacketTimestampNs) : options.longs === Number ? new $util.LongBits(message.lastPacketTimestampNs.low >>> 0, message.lastPacketTimestampNs.high >>> 0).toNumber() : message.lastPacketTimestampNs;\n if (message.intervalNs != null && message.hasOwnProperty(\"intervalNs\"))\n if (typeof message.intervalNs === \"number\")\n object.intervalNs = options.longs === String ? String(message.intervalNs) : message.intervalNs;\n else\n object.intervalNs = options.longs === String ? $util.Long.prototype.toString.call(message.intervalNs) : options.longs === Number ? new $util.LongBits(message.intervalNs.low >>> 0, message.intervalNs.high >>> 0).toNumber() : message.intervalNs;\n if (message.dataRateKbps != null && message.hasOwnProperty(\"dataRateKbps\"))\n object.dataRateKbps = options.json && !isFinite(message.dataRateKbps) ? String(message.dataRateKbps) : message.dataRateKbps;\n return object;\n };\n\n /**\n * Converts this PacketStatistic to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidNetworkMetric.PacketStatistic\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n PacketStatistic.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return PacketStatistic;\n })();\n\n AndroidNetworkMetric.CorePacketStatistic = (function() {\n\n /**\n * Properties of a CorePacketStatistic.\n * @memberof perfetto.protos.AndroidNetworkMetric\n * @interface ICorePacketStatistic\n * @property {number|null} [id] CorePacketStatistic id\n * @property {perfetto.protos.AndroidNetworkMetric.IPacketStatistic|null} [packetStatistic] CorePacketStatistic packetStatistic\n */\n\n /**\n * Constructs a new CorePacketStatistic.\n * @memberof perfetto.protos.AndroidNetworkMetric\n * @classdesc Represents a CorePacketStatistic.\n * @implements ICorePacketStatistic\n * @constructor\n * @param {perfetto.protos.AndroidNetworkMetric.ICorePacketStatistic=} [properties] Properties to set\n */\n function CorePacketStatistic(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * CorePacketStatistic id.\n * @member {number} id\n * @memberof perfetto.protos.AndroidNetworkMetric.CorePacketStatistic\n * @instance\n */\n CorePacketStatistic.prototype.id = 0;\n\n /**\n * CorePacketStatistic packetStatistic.\n * @member {perfetto.protos.AndroidNetworkMetric.IPacketStatistic|null|undefined} packetStatistic\n * @memberof perfetto.protos.AndroidNetworkMetric.CorePacketStatistic\n * @instance\n */\n CorePacketStatistic.prototype.packetStatistic = null;\n\n /**\n * Creates a new CorePacketStatistic instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidNetworkMetric.CorePacketStatistic\n * @static\n * @param {perfetto.protos.AndroidNetworkMetric.ICorePacketStatistic=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidNetworkMetric.CorePacketStatistic} CorePacketStatistic instance\n */\n CorePacketStatistic.create = function create(properties) {\n return new CorePacketStatistic(properties);\n };\n\n /**\n * Encodes the specified CorePacketStatistic message. Does not implicitly {@link perfetto.protos.AndroidNetworkMetric.CorePacketStatistic.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidNetworkMetric.CorePacketStatistic\n * @static\n * @param {perfetto.protos.AndroidNetworkMetric.ICorePacketStatistic} message CorePacketStatistic message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n CorePacketStatistic.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.id != null && Object.hasOwnProperty.call(message, \"id\"))\n writer.uint32(/* id 1, wireType 0 =*/8).uint32(message.id);\n if (message.packetStatistic != null && Object.hasOwnProperty.call(message, \"packetStatistic\"))\n $root.perfetto.protos.AndroidNetworkMetric.PacketStatistic.encode(message.packetStatistic, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified CorePacketStatistic message, length delimited. Does not implicitly {@link perfetto.protos.AndroidNetworkMetric.CorePacketStatistic.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidNetworkMetric.CorePacketStatistic\n * @static\n * @param {perfetto.protos.AndroidNetworkMetric.ICorePacketStatistic} message CorePacketStatistic message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n CorePacketStatistic.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a CorePacketStatistic message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidNetworkMetric.CorePacketStatistic\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidNetworkMetric.CorePacketStatistic} CorePacketStatistic\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n CorePacketStatistic.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidNetworkMetric.CorePacketStatistic();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.id = reader.uint32();\n break;\n case 2:\n message.packetStatistic = $root.perfetto.protos.AndroidNetworkMetric.PacketStatistic.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a CorePacketStatistic message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidNetworkMetric.CorePacketStatistic\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidNetworkMetric.CorePacketStatistic} CorePacketStatistic\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n CorePacketStatistic.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a CorePacketStatistic message.\n * @function verify\n * @memberof perfetto.protos.AndroidNetworkMetric.CorePacketStatistic\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n CorePacketStatistic.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.id != null && message.hasOwnProperty(\"id\"))\n if (!$util.isInteger(message.id))\n return \"id: integer expected\";\n if (message.packetStatistic != null && message.hasOwnProperty(\"packetStatistic\")) {\n var error = $root.perfetto.protos.AndroidNetworkMetric.PacketStatistic.verify(message.packetStatistic);\n if (error)\n return \"packetStatistic.\" + error;\n }\n return null;\n };\n\n /**\n * Creates a CorePacketStatistic message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidNetworkMetric.CorePacketStatistic\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidNetworkMetric.CorePacketStatistic} CorePacketStatistic\n */\n CorePacketStatistic.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidNetworkMetric.CorePacketStatistic)\n return object;\n var message = new $root.perfetto.protos.AndroidNetworkMetric.CorePacketStatistic();\n if (object.id != null)\n message.id = object.id >>> 0;\n if (object.packetStatistic != null) {\n if (typeof object.packetStatistic !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidNetworkMetric.CorePacketStatistic.packetStatistic: object expected\");\n message.packetStatistic = $root.perfetto.protos.AndroidNetworkMetric.PacketStatistic.fromObject(object.packetStatistic);\n }\n return message;\n };\n\n /**\n * Creates a plain object from a CorePacketStatistic message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidNetworkMetric.CorePacketStatistic\n * @static\n * @param {perfetto.protos.AndroidNetworkMetric.CorePacketStatistic} message CorePacketStatistic\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n CorePacketStatistic.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.id = 0;\n object.packetStatistic = null;\n }\n if (message.id != null && message.hasOwnProperty(\"id\"))\n object.id = message.id;\n if (message.packetStatistic != null && message.hasOwnProperty(\"packetStatistic\"))\n object.packetStatistic = $root.perfetto.protos.AndroidNetworkMetric.PacketStatistic.toObject(message.packetStatistic, options);\n return object;\n };\n\n /**\n * Converts this CorePacketStatistic to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidNetworkMetric.CorePacketStatistic\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n CorePacketStatistic.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return CorePacketStatistic;\n })();\n\n AndroidNetworkMetric.Rx = (function() {\n\n /**\n * Properties of a Rx.\n * @memberof perfetto.protos.AndroidNetworkMetric\n * @interface IRx\n * @property {perfetto.protos.AndroidNetworkMetric.IPacketStatistic|null} [total] Rx total\n * @property {Array.<perfetto.protos.AndroidNetworkMetric.ICorePacketStatistic>|null} [core] Rx core\n */\n\n /**\n * Constructs a new Rx.\n * @memberof perfetto.protos.AndroidNetworkMetric\n * @classdesc Represents a Rx.\n * @implements IRx\n * @constructor\n * @param {perfetto.protos.AndroidNetworkMetric.IRx=} [properties] Properties to set\n */\n function Rx(properties) {\n this.core = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * Rx total.\n * @member {perfetto.protos.AndroidNetworkMetric.IPacketStatistic|null|undefined} total\n * @memberof perfetto.protos.AndroidNetworkMetric.Rx\n * @instance\n */\n Rx.prototype.total = null;\n\n /**\n * Rx core.\n * @member {Array.<perfetto.protos.AndroidNetworkMetric.ICorePacketStatistic>} core\n * @memberof perfetto.protos.AndroidNetworkMetric.Rx\n * @instance\n */\n Rx.prototype.core = $util.emptyArray;\n\n /**\n * Creates a new Rx instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidNetworkMetric.Rx\n * @static\n * @param {perfetto.protos.AndroidNetworkMetric.IRx=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidNetworkMetric.Rx} Rx instance\n */\n Rx.create = function create(properties) {\n return new Rx(properties);\n };\n\n /**\n * Encodes the specified Rx message. Does not implicitly {@link perfetto.protos.AndroidNetworkMetric.Rx.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidNetworkMetric.Rx\n * @static\n * @param {perfetto.protos.AndroidNetworkMetric.IRx} message Rx message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Rx.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.total != null && Object.hasOwnProperty.call(message, \"total\"))\n $root.perfetto.protos.AndroidNetworkMetric.PacketStatistic.encode(message.total, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n if (message.core != null && message.core.length)\n for (var i = 0; i < message.core.length; ++i)\n $root.perfetto.protos.AndroidNetworkMetric.CorePacketStatistic.encode(message.core[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified Rx message, length delimited. Does not implicitly {@link perfetto.protos.AndroidNetworkMetric.Rx.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidNetworkMetric.Rx\n * @static\n * @param {perfetto.protos.AndroidNetworkMetric.IRx} message Rx message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Rx.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a Rx message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidNetworkMetric.Rx\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidNetworkMetric.Rx} Rx\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Rx.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidNetworkMetric.Rx();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.total = $root.perfetto.protos.AndroidNetworkMetric.PacketStatistic.decode(reader, reader.uint32());\n break;\n case 2:\n if (!(message.core && message.core.length))\n message.core = [];\n message.core.push($root.perfetto.protos.AndroidNetworkMetric.CorePacketStatistic.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a Rx message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidNetworkMetric.Rx\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidNetworkMetric.Rx} Rx\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Rx.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a Rx message.\n * @function verify\n * @memberof perfetto.protos.AndroidNetworkMetric.Rx\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n Rx.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.total != null && message.hasOwnProperty(\"total\")) {\n var error = $root.perfetto.protos.AndroidNetworkMetric.PacketStatistic.verify(message.total);\n if (error)\n return \"total.\" + error;\n }\n if (message.core != null && message.hasOwnProperty(\"core\")) {\n if (!Array.isArray(message.core))\n return \"core: array expected\";\n for (var i = 0; i < message.core.length; ++i) {\n var error = $root.perfetto.protos.AndroidNetworkMetric.CorePacketStatistic.verify(message.core[i]);\n if (error)\n return \"core.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates a Rx message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidNetworkMetric.Rx\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidNetworkMetric.Rx} Rx\n */\n Rx.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidNetworkMetric.Rx)\n return object;\n var message = new $root.perfetto.protos.AndroidNetworkMetric.Rx();\n if (object.total != null) {\n if (typeof object.total !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidNetworkMetric.Rx.total: object expected\");\n message.total = $root.perfetto.protos.AndroidNetworkMetric.PacketStatistic.fromObject(object.total);\n }\n if (object.core) {\n if (!Array.isArray(object.core))\n throw TypeError(\".perfetto.protos.AndroidNetworkMetric.Rx.core: array expected\");\n message.core = [];\n for (var i = 0; i < object.core.length; ++i) {\n if (typeof object.core[i] !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidNetworkMetric.Rx.core: object expected\");\n message.core[i] = $root.perfetto.protos.AndroidNetworkMetric.CorePacketStatistic.fromObject(object.core[i]);\n }\n }\n return message;\n };\n\n /**\n * Creates a plain object from a Rx message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidNetworkMetric.Rx\n * @static\n * @param {perfetto.protos.AndroidNetworkMetric.Rx} message Rx\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n Rx.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.core = [];\n if (options.defaults)\n object.total = null;\n if (message.total != null && message.hasOwnProperty(\"total\"))\n object.total = $root.perfetto.protos.AndroidNetworkMetric.PacketStatistic.toObject(message.total, options);\n if (message.core && message.core.length) {\n object.core = [];\n for (var j = 0; j < message.core.length; ++j)\n object.core[j] = $root.perfetto.protos.AndroidNetworkMetric.CorePacketStatistic.toObject(message.core[j], options);\n }\n return object;\n };\n\n /**\n * Converts this Rx to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidNetworkMetric.Rx\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n Rx.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return Rx;\n })();\n\n AndroidNetworkMetric.Tx = (function() {\n\n /**\n * Properties of a Tx.\n * @memberof perfetto.protos.AndroidNetworkMetric\n * @interface ITx\n * @property {perfetto.protos.AndroidNetworkMetric.IPacketStatistic|null} [total] Tx total\n * @property {Array.<perfetto.protos.AndroidNetworkMetric.ICorePacketStatistic>|null} [core] Tx core\n */\n\n /**\n * Constructs a new Tx.\n * @memberof perfetto.protos.AndroidNetworkMetric\n * @classdesc Represents a Tx.\n * @implements ITx\n * @constructor\n * @param {perfetto.protos.AndroidNetworkMetric.ITx=} [properties] Properties to set\n */\n function Tx(properties) {\n this.core = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * Tx total.\n * @member {perfetto.protos.AndroidNetworkMetric.IPacketStatistic|null|undefined} total\n * @memberof perfetto.protos.AndroidNetworkMetric.Tx\n * @instance\n */\n Tx.prototype.total = null;\n\n /**\n * Tx core.\n * @member {Array.<perfetto.protos.AndroidNetworkMetric.ICorePacketStatistic>} core\n * @memberof perfetto.protos.AndroidNetworkMetric.Tx\n * @instance\n */\n Tx.prototype.core = $util.emptyArray;\n\n /**\n * Creates a new Tx instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidNetworkMetric.Tx\n * @static\n * @param {perfetto.protos.AndroidNetworkMetric.ITx=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidNetworkMetric.Tx} Tx instance\n */\n Tx.create = function create(properties) {\n return new Tx(properties);\n };\n\n /**\n * Encodes the specified Tx message. Does not implicitly {@link perfetto.protos.AndroidNetworkMetric.Tx.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidNetworkMetric.Tx\n * @static\n * @param {perfetto.protos.AndroidNetworkMetric.ITx} message Tx message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Tx.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.total != null && Object.hasOwnProperty.call(message, \"total\"))\n $root.perfetto.protos.AndroidNetworkMetric.PacketStatistic.encode(message.total, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n if (message.core != null && message.core.length)\n for (var i = 0; i < message.core.length; ++i)\n $root.perfetto.protos.AndroidNetworkMetric.CorePacketStatistic.encode(message.core[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified Tx message, length delimited. Does not implicitly {@link perfetto.protos.AndroidNetworkMetric.Tx.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidNetworkMetric.Tx\n * @static\n * @param {perfetto.protos.AndroidNetworkMetric.ITx} message Tx message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Tx.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a Tx message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidNetworkMetric.Tx\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidNetworkMetric.Tx} Tx\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Tx.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidNetworkMetric.Tx();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.total = $root.perfetto.protos.AndroidNetworkMetric.PacketStatistic.decode(reader, reader.uint32());\n break;\n case 2:\n if (!(message.core && message.core.length))\n message.core = [];\n message.core.push($root.perfetto.protos.AndroidNetworkMetric.CorePacketStatistic.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a Tx message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidNetworkMetric.Tx\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidNetworkMetric.Tx} Tx\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Tx.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a Tx message.\n * @function verify\n * @memberof perfetto.protos.AndroidNetworkMetric.Tx\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n Tx.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.total != null && message.hasOwnProperty(\"total\")) {\n var error = $root.perfetto.protos.AndroidNetworkMetric.PacketStatistic.verify(message.total);\n if (error)\n return \"total.\" + error;\n }\n if (message.core != null && message.hasOwnProperty(\"core\")) {\n if (!Array.isArray(message.core))\n return \"core: array expected\";\n for (var i = 0; i < message.core.length; ++i) {\n var error = $root.perfetto.protos.AndroidNetworkMetric.CorePacketStatistic.verify(message.core[i]);\n if (error)\n return \"core.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates a Tx message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidNetworkMetric.Tx\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidNetworkMetric.Tx} Tx\n */\n Tx.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidNetworkMetric.Tx)\n return object;\n var message = new $root.perfetto.protos.AndroidNetworkMetric.Tx();\n if (object.total != null) {\n if (typeof object.total !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidNetworkMetric.Tx.total: object expected\");\n message.total = $root.perfetto.protos.AndroidNetworkMetric.PacketStatistic.fromObject(object.total);\n }\n if (object.core) {\n if (!Array.isArray(object.core))\n throw TypeError(\".perfetto.protos.AndroidNetworkMetric.Tx.core: array expected\");\n message.core = [];\n for (var i = 0; i < object.core.length; ++i) {\n if (typeof object.core[i] !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidNetworkMetric.Tx.core: object expected\");\n message.core[i] = $root.perfetto.protos.AndroidNetworkMetric.CorePacketStatistic.fromObject(object.core[i]);\n }\n }\n return message;\n };\n\n /**\n * Creates a plain object from a Tx message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidNetworkMetric.Tx\n * @static\n * @param {perfetto.protos.AndroidNetworkMetric.Tx} message Tx\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n Tx.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.core = [];\n if (options.defaults)\n object.total = null;\n if (message.total != null && message.hasOwnProperty(\"total\"))\n object.total = $root.perfetto.protos.AndroidNetworkMetric.PacketStatistic.toObject(message.total, options);\n if (message.core && message.core.length) {\n object.core = [];\n for (var j = 0; j < message.core.length; ++j)\n object.core[j] = $root.perfetto.protos.AndroidNetworkMetric.CorePacketStatistic.toObject(message.core[j], options);\n }\n return object;\n };\n\n /**\n * Converts this Tx to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidNetworkMetric.Tx\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n Tx.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return Tx;\n })();\n\n AndroidNetworkMetric.NetDevice = (function() {\n\n /**\n * Properties of a NetDevice.\n * @memberof perfetto.protos.AndroidNetworkMetric\n * @interface INetDevice\n * @property {string|null} [name] NetDevice name\n * @property {perfetto.protos.AndroidNetworkMetric.IRx|null} [rx] NetDevice rx\n * @property {perfetto.protos.AndroidNetworkMetric.ITx|null} [tx] NetDevice tx\n */\n\n /**\n * Constructs a new NetDevice.\n * @memberof perfetto.protos.AndroidNetworkMetric\n * @classdesc Represents a NetDevice.\n * @implements INetDevice\n * @constructor\n * @param {perfetto.protos.AndroidNetworkMetric.INetDevice=} [properties] Properties to set\n */\n function NetDevice(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * NetDevice name.\n * @member {string} name\n * @memberof perfetto.protos.AndroidNetworkMetric.NetDevice\n * @instance\n */\n NetDevice.prototype.name = \"\";\n\n /**\n * NetDevice rx.\n * @member {perfetto.protos.AndroidNetworkMetric.IRx|null|undefined} rx\n * @memberof perfetto.protos.AndroidNetworkMetric.NetDevice\n * @instance\n */\n NetDevice.prototype.rx = null;\n\n /**\n * NetDevice tx.\n * @member {perfetto.protos.AndroidNetworkMetric.ITx|null|undefined} tx\n * @memberof perfetto.protos.AndroidNetworkMetric.NetDevice\n * @instance\n */\n NetDevice.prototype.tx = null;\n\n /**\n * Creates a new NetDevice instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidNetworkMetric.NetDevice\n * @static\n * @param {perfetto.protos.AndroidNetworkMetric.INetDevice=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidNetworkMetric.NetDevice} NetDevice instance\n */\n NetDevice.create = function create(properties) {\n return new NetDevice(properties);\n };\n\n /**\n * Encodes the specified NetDevice message. Does not implicitly {@link perfetto.protos.AndroidNetworkMetric.NetDevice.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidNetworkMetric.NetDevice\n * @static\n * @param {perfetto.protos.AndroidNetworkMetric.INetDevice} message NetDevice message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n NetDevice.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.name != null && Object.hasOwnProperty.call(message, \"name\"))\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.name);\n if (message.rx != null && Object.hasOwnProperty.call(message, \"rx\"))\n $root.perfetto.protos.AndroidNetworkMetric.Rx.encode(message.rx, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n if (message.tx != null && Object.hasOwnProperty.call(message, \"tx\"))\n $root.perfetto.protos.AndroidNetworkMetric.Tx.encode(message.tx, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified NetDevice message, length delimited. Does not implicitly {@link perfetto.protos.AndroidNetworkMetric.NetDevice.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidNetworkMetric.NetDevice\n * @static\n * @param {perfetto.protos.AndroidNetworkMetric.INetDevice} message NetDevice message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n NetDevice.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a NetDevice message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidNetworkMetric.NetDevice\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidNetworkMetric.NetDevice} NetDevice\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n NetDevice.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidNetworkMetric.NetDevice();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.name = reader.string();\n break;\n case 2:\n message.rx = $root.perfetto.protos.AndroidNetworkMetric.Rx.decode(reader, reader.uint32());\n break;\n case 3:\n message.tx = $root.perfetto.protos.AndroidNetworkMetric.Tx.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a NetDevice message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidNetworkMetric.NetDevice\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidNetworkMetric.NetDevice} NetDevice\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n NetDevice.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a NetDevice message.\n * @function verify\n * @memberof perfetto.protos.AndroidNetworkMetric.NetDevice\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n NetDevice.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.name != null && message.hasOwnProperty(\"name\"))\n if (!$util.isString(message.name))\n return \"name: string expected\";\n if (message.rx != null && message.hasOwnProperty(\"rx\")) {\n var error = $root.perfetto.protos.AndroidNetworkMetric.Rx.verify(message.rx);\n if (error)\n return \"rx.\" + error;\n }\n if (message.tx != null && message.hasOwnProperty(\"tx\")) {\n var error = $root.perfetto.protos.AndroidNetworkMetric.Tx.verify(message.tx);\n if (error)\n return \"tx.\" + error;\n }\n return null;\n };\n\n /**\n * Creates a NetDevice message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidNetworkMetric.NetDevice\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidNetworkMetric.NetDevice} NetDevice\n */\n NetDevice.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidNetworkMetric.NetDevice)\n return object;\n var message = new $root.perfetto.protos.AndroidNetworkMetric.NetDevice();\n if (object.name != null)\n message.name = String(object.name);\n if (object.rx != null) {\n if (typeof object.rx !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidNetworkMetric.NetDevice.rx: object expected\");\n message.rx = $root.perfetto.protos.AndroidNetworkMetric.Rx.fromObject(object.rx);\n }\n if (object.tx != null) {\n if (typeof object.tx !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidNetworkMetric.NetDevice.tx: object expected\");\n message.tx = $root.perfetto.protos.AndroidNetworkMetric.Tx.fromObject(object.tx);\n }\n return message;\n };\n\n /**\n * Creates a plain object from a NetDevice message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidNetworkMetric.NetDevice\n * @static\n * @param {perfetto.protos.AndroidNetworkMetric.NetDevice} message NetDevice\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n NetDevice.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.name = \"\";\n object.rx = null;\n object.tx = null;\n }\n if (message.name != null && message.hasOwnProperty(\"name\"))\n object.name = message.name;\n if (message.rx != null && message.hasOwnProperty(\"rx\"))\n object.rx = $root.perfetto.protos.AndroidNetworkMetric.Rx.toObject(message.rx, options);\n if (message.tx != null && message.hasOwnProperty(\"tx\"))\n object.tx = $root.perfetto.protos.AndroidNetworkMetric.Tx.toObject(message.tx, options);\n return object;\n };\n\n /**\n * Converts this NetDevice to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidNetworkMetric.NetDevice\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n NetDevice.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return NetDevice;\n })();\n\n AndroidNetworkMetric.NetRxActionStatistic = (function() {\n\n /**\n * Properties of a NetRxActionStatistic.\n * @memberof perfetto.protos.AndroidNetworkMetric\n * @interface INetRxActionStatistic\n * @property {number|null} [count] NetRxActionStatistic count\n * @property {number|null} [runtimeMs] NetRxActionStatistic runtimeMs\n * @property {number|null} [avgRuntimeMs] NetRxActionStatistic avgRuntimeMs\n */\n\n /**\n * Constructs a new NetRxActionStatistic.\n * @memberof perfetto.protos.AndroidNetworkMetric\n * @classdesc Represents a NetRxActionStatistic.\n * @implements INetRxActionStatistic\n * @constructor\n * @param {perfetto.protos.AndroidNetworkMetric.INetRxActionStatistic=} [properties] Properties to set\n */\n function NetRxActionStatistic(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * NetRxActionStatistic count.\n * @member {number} count\n * @memberof perfetto.protos.AndroidNetworkMetric.NetRxActionStatistic\n * @instance\n */\n NetRxActionStatistic.prototype.count = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * NetRxActionStatistic runtimeMs.\n * @member {number} runtimeMs\n * @memberof perfetto.protos.AndroidNetworkMetric.NetRxActionStatistic\n * @instance\n */\n NetRxActionStatistic.prototype.runtimeMs = 0;\n\n /**\n * NetRxActionStatistic avgRuntimeMs.\n * @member {number} avgRuntimeMs\n * @memberof perfetto.protos.AndroidNetworkMetric.NetRxActionStatistic\n * @instance\n */\n NetRxActionStatistic.prototype.avgRuntimeMs = 0;\n\n /**\n * Creates a new NetRxActionStatistic instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidNetworkMetric.NetRxActionStatistic\n * @static\n * @param {perfetto.protos.AndroidNetworkMetric.INetRxActionStatistic=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidNetworkMetric.NetRxActionStatistic} NetRxActionStatistic instance\n */\n NetRxActionStatistic.create = function create(properties) {\n return new NetRxActionStatistic(properties);\n };\n\n /**\n * Encodes the specified NetRxActionStatistic message. Does not implicitly {@link perfetto.protos.AndroidNetworkMetric.NetRxActionStatistic.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidNetworkMetric.NetRxActionStatistic\n * @static\n * @param {perfetto.protos.AndroidNetworkMetric.INetRxActionStatistic} message NetRxActionStatistic message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n NetRxActionStatistic.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.count != null && Object.hasOwnProperty.call(message, \"count\"))\n writer.uint32(/* id 1, wireType 0 =*/8).int64(message.count);\n if (message.runtimeMs != null && Object.hasOwnProperty.call(message, \"runtimeMs\"))\n writer.uint32(/* id 2, wireType 1 =*/17).double(message.runtimeMs);\n if (message.avgRuntimeMs != null && Object.hasOwnProperty.call(message, \"avgRuntimeMs\"))\n writer.uint32(/* id 3, wireType 1 =*/25).double(message.avgRuntimeMs);\n return writer;\n };\n\n /**\n * Encodes the specified NetRxActionStatistic message, length delimited. Does not implicitly {@link perfetto.protos.AndroidNetworkMetric.NetRxActionStatistic.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidNetworkMetric.NetRxActionStatistic\n * @static\n * @param {perfetto.protos.AndroidNetworkMetric.INetRxActionStatistic} message NetRxActionStatistic message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n NetRxActionStatistic.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a NetRxActionStatistic message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidNetworkMetric.NetRxActionStatistic\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidNetworkMetric.NetRxActionStatistic} NetRxActionStatistic\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n NetRxActionStatistic.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidNetworkMetric.NetRxActionStatistic();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.count = reader.int64();\n break;\n case 2:\n message.runtimeMs = reader.double();\n break;\n case 3:\n message.avgRuntimeMs = reader.double();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a NetRxActionStatistic message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidNetworkMetric.NetRxActionStatistic\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidNetworkMetric.NetRxActionStatistic} NetRxActionStatistic\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n NetRxActionStatistic.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a NetRxActionStatistic message.\n * @function verify\n * @memberof perfetto.protos.AndroidNetworkMetric.NetRxActionStatistic\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n NetRxActionStatistic.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.count != null && message.hasOwnProperty(\"count\"))\n if (!$util.isInteger(message.count) && !(message.count && $util.isInteger(message.count.low) && $util.isInteger(message.count.high)))\n return \"count: integer|Long expected\";\n if (message.runtimeMs != null && message.hasOwnProperty(\"runtimeMs\"))\n if (typeof message.runtimeMs !== \"number\")\n return \"runtimeMs: number expected\";\n if (message.avgRuntimeMs != null && message.hasOwnProperty(\"avgRuntimeMs\"))\n if (typeof message.avgRuntimeMs !== \"number\")\n return \"avgRuntimeMs: number expected\";\n return null;\n };\n\n /**\n * Creates a NetRxActionStatistic message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidNetworkMetric.NetRxActionStatistic\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidNetworkMetric.NetRxActionStatistic} NetRxActionStatistic\n */\n NetRxActionStatistic.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidNetworkMetric.NetRxActionStatistic)\n return object;\n var message = new $root.perfetto.protos.AndroidNetworkMetric.NetRxActionStatistic();\n if (object.count != null)\n if ($util.Long)\n (message.count = $util.Long.fromValue(object.count)).unsigned = false;\n else if (typeof object.count === \"string\")\n message.count = parseInt(object.count, 10);\n else if (typeof object.count === \"number\")\n message.count = object.count;\n else if (typeof object.count === \"object\")\n message.count = new $util.LongBits(object.count.low >>> 0, object.count.high >>> 0).toNumber();\n if (object.runtimeMs != null)\n message.runtimeMs = Number(object.runtimeMs);\n if (object.avgRuntimeMs != null)\n message.avgRuntimeMs = Number(object.avgRuntimeMs);\n return message;\n };\n\n /**\n * Creates a plain object from a NetRxActionStatistic message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidNetworkMetric.NetRxActionStatistic\n * @static\n * @param {perfetto.protos.AndroidNetworkMetric.NetRxActionStatistic} message NetRxActionStatistic\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n NetRxActionStatistic.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.count = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.count = options.longs === String ? \"0\" : 0;\n object.runtimeMs = 0;\n object.avgRuntimeMs = 0;\n }\n if (message.count != null && message.hasOwnProperty(\"count\"))\n if (typeof message.count === \"number\")\n object.count = options.longs === String ? String(message.count) : message.count;\n else\n object.count = options.longs === String ? $util.Long.prototype.toString.call(message.count) : options.longs === Number ? new $util.LongBits(message.count.low >>> 0, message.count.high >>> 0).toNumber() : message.count;\n if (message.runtimeMs != null && message.hasOwnProperty(\"runtimeMs\"))\n object.runtimeMs = options.json && !isFinite(message.runtimeMs) ? String(message.runtimeMs) : message.runtimeMs;\n if (message.avgRuntimeMs != null && message.hasOwnProperty(\"avgRuntimeMs\"))\n object.avgRuntimeMs = options.json && !isFinite(message.avgRuntimeMs) ? String(message.avgRuntimeMs) : message.avgRuntimeMs;\n return object;\n };\n\n /**\n * Converts this NetRxActionStatistic to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidNetworkMetric.NetRxActionStatistic\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n NetRxActionStatistic.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return NetRxActionStatistic;\n })();\n\n AndroidNetworkMetric.CoreNetRxActionStatistic = (function() {\n\n /**\n * Properties of a CoreNetRxActionStatistic.\n * @memberof perfetto.protos.AndroidNetworkMetric\n * @interface ICoreNetRxActionStatistic\n * @property {number|null} [id] CoreNetRxActionStatistic id\n * @property {perfetto.protos.AndroidNetworkMetric.INetRxActionStatistic|null} [netRxActionStatistic] CoreNetRxActionStatistic netRxActionStatistic\n */\n\n /**\n * Constructs a new CoreNetRxActionStatistic.\n * @memberof perfetto.protos.AndroidNetworkMetric\n * @classdesc Represents a CoreNetRxActionStatistic.\n * @implements ICoreNetRxActionStatistic\n * @constructor\n * @param {perfetto.protos.AndroidNetworkMetric.ICoreNetRxActionStatistic=} [properties] Properties to set\n */\n function CoreNetRxActionStatistic(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * CoreNetRxActionStatistic id.\n * @member {number} id\n * @memberof perfetto.protos.AndroidNetworkMetric.CoreNetRxActionStatistic\n * @instance\n */\n CoreNetRxActionStatistic.prototype.id = 0;\n\n /**\n * CoreNetRxActionStatistic netRxActionStatistic.\n * @member {perfetto.protos.AndroidNetworkMetric.INetRxActionStatistic|null|undefined} netRxActionStatistic\n * @memberof perfetto.protos.AndroidNetworkMetric.CoreNetRxActionStatistic\n * @instance\n */\n CoreNetRxActionStatistic.prototype.netRxActionStatistic = null;\n\n /**\n * Creates a new CoreNetRxActionStatistic instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidNetworkMetric.CoreNetRxActionStatistic\n * @static\n * @param {perfetto.protos.AndroidNetworkMetric.ICoreNetRxActionStatistic=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidNetworkMetric.CoreNetRxActionStatistic} CoreNetRxActionStatistic instance\n */\n CoreNetRxActionStatistic.create = function create(properties) {\n return new CoreNetRxActionStatistic(properties);\n };\n\n /**\n * Encodes the specified CoreNetRxActionStatistic message. Does not implicitly {@link perfetto.protos.AndroidNetworkMetric.CoreNetRxActionStatistic.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidNetworkMetric.CoreNetRxActionStatistic\n * @static\n * @param {perfetto.protos.AndroidNetworkMetric.ICoreNetRxActionStatistic} message CoreNetRxActionStatistic message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n CoreNetRxActionStatistic.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.id != null && Object.hasOwnProperty.call(message, \"id\"))\n writer.uint32(/* id 1, wireType 0 =*/8).uint32(message.id);\n if (message.netRxActionStatistic != null && Object.hasOwnProperty.call(message, \"netRxActionStatistic\"))\n $root.perfetto.protos.AndroidNetworkMetric.NetRxActionStatistic.encode(message.netRxActionStatistic, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified CoreNetRxActionStatistic message, length delimited. Does not implicitly {@link perfetto.protos.AndroidNetworkMetric.CoreNetRxActionStatistic.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidNetworkMetric.CoreNetRxActionStatistic\n * @static\n * @param {perfetto.protos.AndroidNetworkMetric.ICoreNetRxActionStatistic} message CoreNetRxActionStatistic message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n CoreNetRxActionStatistic.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a CoreNetRxActionStatistic message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidNetworkMetric.CoreNetRxActionStatistic\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidNetworkMetric.CoreNetRxActionStatistic} CoreNetRxActionStatistic\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n CoreNetRxActionStatistic.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidNetworkMetric.CoreNetRxActionStatistic();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.id = reader.uint32();\n break;\n case 2:\n message.netRxActionStatistic = $root.perfetto.protos.AndroidNetworkMetric.NetRxActionStatistic.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a CoreNetRxActionStatistic message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidNetworkMetric.CoreNetRxActionStatistic\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidNetworkMetric.CoreNetRxActionStatistic} CoreNetRxActionStatistic\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n CoreNetRxActionStatistic.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a CoreNetRxActionStatistic message.\n * @function verify\n * @memberof perfetto.protos.AndroidNetworkMetric.CoreNetRxActionStatistic\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n CoreNetRxActionStatistic.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.id != null && message.hasOwnProperty(\"id\"))\n if (!$util.isInteger(message.id))\n return \"id: integer expected\";\n if (message.netRxActionStatistic != null && message.hasOwnProperty(\"netRxActionStatistic\")) {\n var error = $root.perfetto.protos.AndroidNetworkMetric.NetRxActionStatistic.verify(message.netRxActionStatistic);\n if (error)\n return \"netRxActionStatistic.\" + error;\n }\n return null;\n };\n\n /**\n * Creates a CoreNetRxActionStatistic message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidNetworkMetric.CoreNetRxActionStatistic\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidNetworkMetric.CoreNetRxActionStatistic} CoreNetRxActionStatistic\n */\n CoreNetRxActionStatistic.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidNetworkMetric.CoreNetRxActionStatistic)\n return object;\n var message = new $root.perfetto.protos.AndroidNetworkMetric.CoreNetRxActionStatistic();\n if (object.id != null)\n message.id = object.id >>> 0;\n if (object.netRxActionStatistic != null) {\n if (typeof object.netRxActionStatistic !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidNetworkMetric.CoreNetRxActionStatistic.netRxActionStatistic: object expected\");\n message.netRxActionStatistic = $root.perfetto.protos.AndroidNetworkMetric.NetRxActionStatistic.fromObject(object.netRxActionStatistic);\n }\n return message;\n };\n\n /**\n * Creates a plain object from a CoreNetRxActionStatistic message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidNetworkMetric.CoreNetRxActionStatistic\n * @static\n * @param {perfetto.protos.AndroidNetworkMetric.CoreNetRxActionStatistic} message CoreNetRxActionStatistic\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n CoreNetRxActionStatistic.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.id = 0;\n object.netRxActionStatistic = null;\n }\n if (message.id != null && message.hasOwnProperty(\"id\"))\n object.id = message.id;\n if (message.netRxActionStatistic != null && message.hasOwnProperty(\"netRxActionStatistic\"))\n object.netRxActionStatistic = $root.perfetto.protos.AndroidNetworkMetric.NetRxActionStatistic.toObject(message.netRxActionStatistic, options);\n return object;\n };\n\n /**\n * Converts this CoreNetRxActionStatistic to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidNetworkMetric.CoreNetRxActionStatistic\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n CoreNetRxActionStatistic.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return CoreNetRxActionStatistic;\n })();\n\n AndroidNetworkMetric.NetRxAction = (function() {\n\n /**\n * Properties of a NetRxAction.\n * @memberof perfetto.protos.AndroidNetworkMetric\n * @interface INetRxAction\n * @property {perfetto.protos.AndroidNetworkMetric.INetRxActionStatistic|null} [total] NetRxAction total\n * @property {Array.<perfetto.protos.AndroidNetworkMetric.ICoreNetRxActionStatistic>|null} [core] NetRxAction core\n * @property {number|null} [avgInterstackLatencyMs] NetRxAction avgInterstackLatencyMs\n */\n\n /**\n * Constructs a new NetRxAction.\n * @memberof perfetto.protos.AndroidNetworkMetric\n * @classdesc Represents a NetRxAction.\n * @implements INetRxAction\n * @constructor\n * @param {perfetto.protos.AndroidNetworkMetric.INetRxAction=} [properties] Properties to set\n */\n function NetRxAction(properties) {\n this.core = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * NetRxAction total.\n * @member {perfetto.protos.AndroidNetworkMetric.INetRxActionStatistic|null|undefined} total\n * @memberof perfetto.protos.AndroidNetworkMetric.NetRxAction\n * @instance\n */\n NetRxAction.prototype.total = null;\n\n /**\n * NetRxAction core.\n * @member {Array.<perfetto.protos.AndroidNetworkMetric.ICoreNetRxActionStatistic>} core\n * @memberof perfetto.protos.AndroidNetworkMetric.NetRxAction\n * @instance\n */\n NetRxAction.prototype.core = $util.emptyArray;\n\n /**\n * NetRxAction avgInterstackLatencyMs.\n * @member {number} avgInterstackLatencyMs\n * @memberof perfetto.protos.AndroidNetworkMetric.NetRxAction\n * @instance\n */\n NetRxAction.prototype.avgInterstackLatencyMs = 0;\n\n /**\n * Creates a new NetRxAction instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidNetworkMetric.NetRxAction\n * @static\n * @param {perfetto.protos.AndroidNetworkMetric.INetRxAction=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidNetworkMetric.NetRxAction} NetRxAction instance\n */\n NetRxAction.create = function create(properties) {\n return new NetRxAction(properties);\n };\n\n /**\n * Encodes the specified NetRxAction message. Does not implicitly {@link perfetto.protos.AndroidNetworkMetric.NetRxAction.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidNetworkMetric.NetRxAction\n * @static\n * @param {perfetto.protos.AndroidNetworkMetric.INetRxAction} message NetRxAction message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n NetRxAction.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.total != null && Object.hasOwnProperty.call(message, \"total\"))\n $root.perfetto.protos.AndroidNetworkMetric.NetRxActionStatistic.encode(message.total, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n if (message.core != null && message.core.length)\n for (var i = 0; i < message.core.length; ++i)\n $root.perfetto.protos.AndroidNetworkMetric.CoreNetRxActionStatistic.encode(message.core[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n if (message.avgInterstackLatencyMs != null && Object.hasOwnProperty.call(message, \"avgInterstackLatencyMs\"))\n writer.uint32(/* id 3, wireType 1 =*/25).double(message.avgInterstackLatencyMs);\n return writer;\n };\n\n /**\n * Encodes the specified NetRxAction message, length delimited. Does not implicitly {@link perfetto.protos.AndroidNetworkMetric.NetRxAction.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidNetworkMetric.NetRxAction\n * @static\n * @param {perfetto.protos.AndroidNetworkMetric.INetRxAction} message NetRxAction message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n NetRxAction.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a NetRxAction message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidNetworkMetric.NetRxAction\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidNetworkMetric.NetRxAction} NetRxAction\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n NetRxAction.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidNetworkMetric.NetRxAction();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.total = $root.perfetto.protos.AndroidNetworkMetric.NetRxActionStatistic.decode(reader, reader.uint32());\n break;\n case 2:\n if (!(message.core && message.core.length))\n message.core = [];\n message.core.push($root.perfetto.protos.AndroidNetworkMetric.CoreNetRxActionStatistic.decode(reader, reader.uint32()));\n break;\n case 3:\n message.avgInterstackLatencyMs = reader.double();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a NetRxAction message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidNetworkMetric.NetRxAction\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidNetworkMetric.NetRxAction} NetRxAction\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n NetRxAction.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a NetRxAction message.\n * @function verify\n * @memberof perfetto.protos.AndroidNetworkMetric.NetRxAction\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n NetRxAction.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.total != null && message.hasOwnProperty(\"total\")) {\n var error = $root.perfetto.protos.AndroidNetworkMetric.NetRxActionStatistic.verify(message.total);\n if (error)\n return \"total.\" + error;\n }\n if (message.core != null && message.hasOwnProperty(\"core\")) {\n if (!Array.isArray(message.core))\n return \"core: array expected\";\n for (var i = 0; i < message.core.length; ++i) {\n var error = $root.perfetto.protos.AndroidNetworkMetric.CoreNetRxActionStatistic.verify(message.core[i]);\n if (error)\n return \"core.\" + error;\n }\n }\n if (message.avgInterstackLatencyMs != null && message.hasOwnProperty(\"avgInterstackLatencyMs\"))\n if (typeof message.avgInterstackLatencyMs !== \"number\")\n return \"avgInterstackLatencyMs: number expected\";\n return null;\n };\n\n /**\n * Creates a NetRxAction message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidNetworkMetric.NetRxAction\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidNetworkMetric.NetRxAction} NetRxAction\n */\n NetRxAction.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidNetworkMetric.NetRxAction)\n return object;\n var message = new $root.perfetto.protos.AndroidNetworkMetric.NetRxAction();\n if (object.total != null) {\n if (typeof object.total !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidNetworkMetric.NetRxAction.total: object expected\");\n message.total = $root.perfetto.protos.AndroidNetworkMetric.NetRxActionStatistic.fromObject(object.total);\n }\n if (object.core) {\n if (!Array.isArray(object.core))\n throw TypeError(\".perfetto.protos.AndroidNetworkMetric.NetRxAction.core: array expected\");\n message.core = [];\n for (var i = 0; i < object.core.length; ++i) {\n if (typeof object.core[i] !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidNetworkMetric.NetRxAction.core: object expected\");\n message.core[i] = $root.perfetto.protos.AndroidNetworkMetric.CoreNetRxActionStatistic.fromObject(object.core[i]);\n }\n }\n if (object.avgInterstackLatencyMs != null)\n message.avgInterstackLatencyMs = Number(object.avgInterstackLatencyMs);\n return message;\n };\n\n /**\n * Creates a plain object from a NetRxAction message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidNetworkMetric.NetRxAction\n * @static\n * @param {perfetto.protos.AndroidNetworkMetric.NetRxAction} message NetRxAction\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n NetRxAction.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.core = [];\n if (options.defaults) {\n object.total = null;\n object.avgInterstackLatencyMs = 0;\n }\n if (message.total != null && message.hasOwnProperty(\"total\"))\n object.total = $root.perfetto.protos.AndroidNetworkMetric.NetRxActionStatistic.toObject(message.total, options);\n if (message.core && message.core.length) {\n object.core = [];\n for (var j = 0; j < message.core.length; ++j)\n object.core[j] = $root.perfetto.protos.AndroidNetworkMetric.CoreNetRxActionStatistic.toObject(message.core[j], options);\n }\n if (message.avgInterstackLatencyMs != null && message.hasOwnProperty(\"avgInterstackLatencyMs\"))\n object.avgInterstackLatencyMs = options.json && !isFinite(message.avgInterstackLatencyMs) ? String(message.avgInterstackLatencyMs) : message.avgInterstackLatencyMs;\n return object;\n };\n\n /**\n * Converts this NetRxAction to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidNetworkMetric.NetRxAction\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n NetRxAction.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return NetRxAction;\n })();\n\n return AndroidNetworkMetric;\n })();\n\n protos.AndroidPackageList = (function() {\n\n /**\n * Properties of an AndroidPackageList.\n * @memberof perfetto.protos\n * @interface IAndroidPackageList\n * @property {Array.<perfetto.protos.AndroidPackageList.IPackage>|null} [packages] AndroidPackageList packages\n */\n\n /**\n * Constructs a new AndroidPackageList.\n * @memberof perfetto.protos\n * @classdesc Represents an AndroidPackageList.\n * @implements IAndroidPackageList\n * @constructor\n * @param {perfetto.protos.IAndroidPackageList=} [properties] Properties to set\n */\n function AndroidPackageList(properties) {\n this.packages = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * AndroidPackageList packages.\n * @member {Array.<perfetto.protos.AndroidPackageList.IPackage>} packages\n * @memberof perfetto.protos.AndroidPackageList\n * @instance\n */\n AndroidPackageList.prototype.packages = $util.emptyArray;\n\n /**\n * Creates a new AndroidPackageList instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidPackageList\n * @static\n * @param {perfetto.protos.IAndroidPackageList=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidPackageList} AndroidPackageList instance\n */\n AndroidPackageList.create = function create(properties) {\n return new AndroidPackageList(properties);\n };\n\n /**\n * Encodes the specified AndroidPackageList message. Does not implicitly {@link perfetto.protos.AndroidPackageList.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidPackageList\n * @static\n * @param {perfetto.protos.IAndroidPackageList} message AndroidPackageList message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n AndroidPackageList.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.packages != null && message.packages.length)\n for (var i = 0; i < message.packages.length; ++i)\n $root.perfetto.protos.AndroidPackageList.Package.encode(message.packages[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified AndroidPackageList message, length delimited. Does not implicitly {@link perfetto.protos.AndroidPackageList.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidPackageList\n * @static\n * @param {perfetto.protos.IAndroidPackageList} message AndroidPackageList message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n AndroidPackageList.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes an AndroidPackageList message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidPackageList\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidPackageList} AndroidPackageList\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n AndroidPackageList.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidPackageList();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (!(message.packages && message.packages.length))\n message.packages = [];\n message.packages.push($root.perfetto.protos.AndroidPackageList.Package.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes an AndroidPackageList message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidPackageList\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidPackageList} AndroidPackageList\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n AndroidPackageList.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies an AndroidPackageList message.\n * @function verify\n * @memberof perfetto.protos.AndroidPackageList\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n AndroidPackageList.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.packages != null && message.hasOwnProperty(\"packages\")) {\n if (!Array.isArray(message.packages))\n return \"packages: array expected\";\n for (var i = 0; i < message.packages.length; ++i) {\n var error = $root.perfetto.protos.AndroidPackageList.Package.verify(message.packages[i]);\n if (error)\n return \"packages.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates an AndroidPackageList message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidPackageList\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidPackageList} AndroidPackageList\n */\n AndroidPackageList.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidPackageList)\n return object;\n var message = new $root.perfetto.protos.AndroidPackageList();\n if (object.packages) {\n if (!Array.isArray(object.packages))\n throw TypeError(\".perfetto.protos.AndroidPackageList.packages: array expected\");\n message.packages = [];\n for (var i = 0; i < object.packages.length; ++i) {\n if (typeof object.packages[i] !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidPackageList.packages: object expected\");\n message.packages[i] = $root.perfetto.protos.AndroidPackageList.Package.fromObject(object.packages[i]);\n }\n }\n return message;\n };\n\n /**\n * Creates a plain object from an AndroidPackageList message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidPackageList\n * @static\n * @param {perfetto.protos.AndroidPackageList} message AndroidPackageList\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n AndroidPackageList.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.packages = [];\n if (message.packages && message.packages.length) {\n object.packages = [];\n for (var j = 0; j < message.packages.length; ++j)\n object.packages[j] = $root.perfetto.protos.AndroidPackageList.Package.toObject(message.packages[j], options);\n }\n return object;\n };\n\n /**\n * Converts this AndroidPackageList to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidPackageList\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n AndroidPackageList.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n AndroidPackageList.Package = (function() {\n\n /**\n * Properties of a Package.\n * @memberof perfetto.protos.AndroidPackageList\n * @interface IPackage\n * @property {string|null} [packageName] Package packageName\n * @property {number|null} [uid] Package uid\n * @property {number|null} [versionCode] Package versionCode\n */\n\n /**\n * Constructs a new Package.\n * @memberof perfetto.protos.AndroidPackageList\n * @classdesc Represents a Package.\n * @implements IPackage\n * @constructor\n * @param {perfetto.protos.AndroidPackageList.IPackage=} [properties] Properties to set\n */\n function Package(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * Package packageName.\n * @member {string} packageName\n * @memberof perfetto.protos.AndroidPackageList.Package\n * @instance\n */\n Package.prototype.packageName = \"\";\n\n /**\n * Package uid.\n * @member {number} uid\n * @memberof perfetto.protos.AndroidPackageList.Package\n * @instance\n */\n Package.prototype.uid = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * Package versionCode.\n * @member {number} versionCode\n * @memberof perfetto.protos.AndroidPackageList.Package\n * @instance\n */\n Package.prototype.versionCode = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * Creates a new Package instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidPackageList.Package\n * @static\n * @param {perfetto.protos.AndroidPackageList.IPackage=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidPackageList.Package} Package instance\n */\n Package.create = function create(properties) {\n return new Package(properties);\n };\n\n /**\n * Encodes the specified Package message. Does not implicitly {@link perfetto.protos.AndroidPackageList.Package.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidPackageList.Package\n * @static\n * @param {perfetto.protos.AndroidPackageList.IPackage} message Package message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Package.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.packageName != null && Object.hasOwnProperty.call(message, \"packageName\"))\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.packageName);\n if (message.uid != null && Object.hasOwnProperty.call(message, \"uid\"))\n writer.uint32(/* id 2, wireType 0 =*/16).int64(message.uid);\n if (message.versionCode != null && Object.hasOwnProperty.call(message, \"versionCode\"))\n writer.uint32(/* id 3, wireType 0 =*/24).int64(message.versionCode);\n return writer;\n };\n\n /**\n * Encodes the specified Package message, length delimited. Does not implicitly {@link perfetto.protos.AndroidPackageList.Package.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidPackageList.Package\n * @static\n * @param {perfetto.protos.AndroidPackageList.IPackage} message Package message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Package.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a Package message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidPackageList.Package\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidPackageList.Package} Package\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Package.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidPackageList.Package();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.packageName = reader.string();\n break;\n case 2:\n message.uid = reader.int64();\n break;\n case 3:\n message.versionCode = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a Package message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidPackageList.Package\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidPackageList.Package} Package\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Package.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a Package message.\n * @function verify\n * @memberof perfetto.protos.AndroidPackageList.Package\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n Package.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.packageName != null && message.hasOwnProperty(\"packageName\"))\n if (!$util.isString(message.packageName))\n return \"packageName: string expected\";\n if (message.uid != null && message.hasOwnProperty(\"uid\"))\n if (!$util.isInteger(message.uid) && !(message.uid && $util.isInteger(message.uid.low) && $util.isInteger(message.uid.high)))\n return \"uid: integer|Long expected\";\n if (message.versionCode != null && message.hasOwnProperty(\"versionCode\"))\n if (!$util.isInteger(message.versionCode) && !(message.versionCode && $util.isInteger(message.versionCode.low) && $util.isInteger(message.versionCode.high)))\n return \"versionCode: integer|Long expected\";\n return null;\n };\n\n /**\n * Creates a Package message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidPackageList.Package\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidPackageList.Package} Package\n */\n Package.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidPackageList.Package)\n return object;\n var message = new $root.perfetto.protos.AndroidPackageList.Package();\n if (object.packageName != null)\n message.packageName = String(object.packageName);\n if (object.uid != null)\n if ($util.Long)\n (message.uid = $util.Long.fromValue(object.uid)).unsigned = false;\n else if (typeof object.uid === \"string\")\n message.uid = parseInt(object.uid, 10);\n else if (typeof object.uid === \"number\")\n message.uid = object.uid;\n else if (typeof object.uid === \"object\")\n message.uid = new $util.LongBits(object.uid.low >>> 0, object.uid.high >>> 0).toNumber();\n if (object.versionCode != null)\n if ($util.Long)\n (message.versionCode = $util.Long.fromValue(object.versionCode)).unsigned = false;\n else if (typeof object.versionCode === \"string\")\n message.versionCode = parseInt(object.versionCode, 10);\n else if (typeof object.versionCode === \"number\")\n message.versionCode = object.versionCode;\n else if (typeof object.versionCode === \"object\")\n message.versionCode = new $util.LongBits(object.versionCode.low >>> 0, object.versionCode.high >>> 0).toNumber();\n return message;\n };\n\n /**\n * Creates a plain object from a Package message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidPackageList.Package\n * @static\n * @param {perfetto.protos.AndroidPackageList.Package} message Package\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n Package.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.packageName = \"\";\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.uid = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.uid = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.versionCode = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.versionCode = options.longs === String ? \"0\" : 0;\n }\n if (message.packageName != null && message.hasOwnProperty(\"packageName\"))\n object.packageName = message.packageName;\n if (message.uid != null && message.hasOwnProperty(\"uid\"))\n if (typeof message.uid === \"number\")\n object.uid = options.longs === String ? String(message.uid) : message.uid;\n else\n object.uid = options.longs === String ? $util.Long.prototype.toString.call(message.uid) : options.longs === Number ? new $util.LongBits(message.uid.low >>> 0, message.uid.high >>> 0).toNumber() : message.uid;\n if (message.versionCode != null && message.hasOwnProperty(\"versionCode\"))\n if (typeof message.versionCode === \"number\")\n object.versionCode = options.longs === String ? String(message.versionCode) : message.versionCode;\n else\n object.versionCode = options.longs === String ? $util.Long.prototype.toString.call(message.versionCode) : options.longs === Number ? new $util.LongBits(message.versionCode.low >>> 0, message.versionCode.high >>> 0).toNumber() : message.versionCode;\n return object;\n };\n\n /**\n * Converts this Package to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidPackageList.Package\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n Package.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return Package;\n })();\n\n return AndroidPackageList;\n })();\n\n protos.AndroidPowerRails = (function() {\n\n /**\n * Properties of an AndroidPowerRails.\n * @memberof perfetto.protos\n * @interface IAndroidPowerRails\n * @property {Array.<perfetto.protos.AndroidPowerRails.IPowerRails>|null} [powerRails] AndroidPowerRails powerRails\n */\n\n /**\n * Constructs a new AndroidPowerRails.\n * @memberof perfetto.protos\n * @classdesc Represents an AndroidPowerRails.\n * @implements IAndroidPowerRails\n * @constructor\n * @param {perfetto.protos.IAndroidPowerRails=} [properties] Properties to set\n */\n function AndroidPowerRails(properties) {\n this.powerRails = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * AndroidPowerRails powerRails.\n * @member {Array.<perfetto.protos.AndroidPowerRails.IPowerRails>} powerRails\n * @memberof perfetto.protos.AndroidPowerRails\n * @instance\n */\n AndroidPowerRails.prototype.powerRails = $util.emptyArray;\n\n /**\n * Creates a new AndroidPowerRails instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidPowerRails\n * @static\n * @param {perfetto.protos.IAndroidPowerRails=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidPowerRails} AndroidPowerRails instance\n */\n AndroidPowerRails.create = function create(properties) {\n return new AndroidPowerRails(properties);\n };\n\n /**\n * Encodes the specified AndroidPowerRails message. Does not implicitly {@link perfetto.protos.AndroidPowerRails.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidPowerRails\n * @static\n * @param {perfetto.protos.IAndroidPowerRails} message AndroidPowerRails message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n AndroidPowerRails.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.powerRails != null && message.powerRails.length)\n for (var i = 0; i < message.powerRails.length; ++i)\n $root.perfetto.protos.AndroidPowerRails.PowerRails.encode(message.powerRails[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified AndroidPowerRails message, length delimited. Does not implicitly {@link perfetto.protos.AndroidPowerRails.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidPowerRails\n * @static\n * @param {perfetto.protos.IAndroidPowerRails} message AndroidPowerRails message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n AndroidPowerRails.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes an AndroidPowerRails message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidPowerRails\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidPowerRails} AndroidPowerRails\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n AndroidPowerRails.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidPowerRails();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (!(message.powerRails && message.powerRails.length))\n message.powerRails = [];\n message.powerRails.push($root.perfetto.protos.AndroidPowerRails.PowerRails.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes an AndroidPowerRails message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidPowerRails\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidPowerRails} AndroidPowerRails\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n AndroidPowerRails.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies an AndroidPowerRails message.\n * @function verify\n * @memberof perfetto.protos.AndroidPowerRails\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n AndroidPowerRails.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.powerRails != null && message.hasOwnProperty(\"powerRails\")) {\n if (!Array.isArray(message.powerRails))\n return \"powerRails: array expected\";\n for (var i = 0; i < message.powerRails.length; ++i) {\n var error = $root.perfetto.protos.AndroidPowerRails.PowerRails.verify(message.powerRails[i]);\n if (error)\n return \"powerRails.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates an AndroidPowerRails message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidPowerRails\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidPowerRails} AndroidPowerRails\n */\n AndroidPowerRails.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidPowerRails)\n return object;\n var message = new $root.perfetto.protos.AndroidPowerRails();\n if (object.powerRails) {\n if (!Array.isArray(object.powerRails))\n throw TypeError(\".perfetto.protos.AndroidPowerRails.powerRails: array expected\");\n message.powerRails = [];\n for (var i = 0; i < object.powerRails.length; ++i) {\n if (typeof object.powerRails[i] !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidPowerRails.powerRails: object expected\");\n message.powerRails[i] = $root.perfetto.protos.AndroidPowerRails.PowerRails.fromObject(object.powerRails[i]);\n }\n }\n return message;\n };\n\n /**\n * Creates a plain object from an AndroidPowerRails message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidPowerRails\n * @static\n * @param {perfetto.protos.AndroidPowerRails} message AndroidPowerRails\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n AndroidPowerRails.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.powerRails = [];\n if (message.powerRails && message.powerRails.length) {\n object.powerRails = [];\n for (var j = 0; j < message.powerRails.length; ++j)\n object.powerRails[j] = $root.perfetto.protos.AndroidPowerRails.PowerRails.toObject(message.powerRails[j], options);\n }\n return object;\n };\n\n /**\n * Converts this AndroidPowerRails to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidPowerRails\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n AndroidPowerRails.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n AndroidPowerRails.EnergyData = (function() {\n\n /**\n * Properties of an EnergyData.\n * @memberof perfetto.protos.AndroidPowerRails\n * @interface IEnergyData\n * @property {number|null} [timestampMs] EnergyData timestampMs\n * @property {number|null} [energyUws] EnergyData energyUws\n */\n\n /**\n * Constructs a new EnergyData.\n * @memberof perfetto.protos.AndroidPowerRails\n * @classdesc Represents an EnergyData.\n * @implements IEnergyData\n * @constructor\n * @param {perfetto.protos.AndroidPowerRails.IEnergyData=} [properties] Properties to set\n */\n function EnergyData(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * EnergyData timestampMs.\n * @member {number} timestampMs\n * @memberof perfetto.protos.AndroidPowerRails.EnergyData\n * @instance\n */\n EnergyData.prototype.timestampMs = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * EnergyData energyUws.\n * @member {number} energyUws\n * @memberof perfetto.protos.AndroidPowerRails.EnergyData\n * @instance\n */\n EnergyData.prototype.energyUws = 0;\n\n /**\n * Creates a new EnergyData instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidPowerRails.EnergyData\n * @static\n * @param {perfetto.protos.AndroidPowerRails.IEnergyData=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidPowerRails.EnergyData} EnergyData instance\n */\n EnergyData.create = function create(properties) {\n return new EnergyData(properties);\n };\n\n /**\n * Encodes the specified EnergyData message. Does not implicitly {@link perfetto.protos.AndroidPowerRails.EnergyData.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidPowerRails.EnergyData\n * @static\n * @param {perfetto.protos.AndroidPowerRails.IEnergyData} message EnergyData message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n EnergyData.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.timestampMs != null && Object.hasOwnProperty.call(message, \"timestampMs\"))\n writer.uint32(/* id 1, wireType 0 =*/8).int64(message.timestampMs);\n if (message.energyUws != null && Object.hasOwnProperty.call(message, \"energyUws\"))\n writer.uint32(/* id 2, wireType 1 =*/17).double(message.energyUws);\n return writer;\n };\n\n /**\n * Encodes the specified EnergyData message, length delimited. Does not implicitly {@link perfetto.protos.AndroidPowerRails.EnergyData.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidPowerRails.EnergyData\n * @static\n * @param {perfetto.protos.AndroidPowerRails.IEnergyData} message EnergyData message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n EnergyData.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes an EnergyData message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidPowerRails.EnergyData\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidPowerRails.EnergyData} EnergyData\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n EnergyData.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidPowerRails.EnergyData();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.timestampMs = reader.int64();\n break;\n case 2:\n message.energyUws = reader.double();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes an EnergyData message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidPowerRails.EnergyData\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidPowerRails.EnergyData} EnergyData\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n EnergyData.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies an EnergyData message.\n * @function verify\n * @memberof perfetto.protos.AndroidPowerRails.EnergyData\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n EnergyData.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.timestampMs != null && message.hasOwnProperty(\"timestampMs\"))\n if (!$util.isInteger(message.timestampMs) && !(message.timestampMs && $util.isInteger(message.timestampMs.low) && $util.isInteger(message.timestampMs.high)))\n return \"timestampMs: integer|Long expected\";\n if (message.energyUws != null && message.hasOwnProperty(\"energyUws\"))\n if (typeof message.energyUws !== \"number\")\n return \"energyUws: number expected\";\n return null;\n };\n\n /**\n * Creates an EnergyData message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidPowerRails.EnergyData\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidPowerRails.EnergyData} EnergyData\n */\n EnergyData.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidPowerRails.EnergyData)\n return object;\n var message = new $root.perfetto.protos.AndroidPowerRails.EnergyData();\n if (object.timestampMs != null)\n if ($util.Long)\n (message.timestampMs = $util.Long.fromValue(object.timestampMs)).unsigned = false;\n else if (typeof object.timestampMs === \"string\")\n message.timestampMs = parseInt(object.timestampMs, 10);\n else if (typeof object.timestampMs === \"number\")\n message.timestampMs = object.timestampMs;\n else if (typeof object.timestampMs === \"object\")\n message.timestampMs = new $util.LongBits(object.timestampMs.low >>> 0, object.timestampMs.high >>> 0).toNumber();\n if (object.energyUws != null)\n message.energyUws = Number(object.energyUws);\n return message;\n };\n\n /**\n * Creates a plain object from an EnergyData message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidPowerRails.EnergyData\n * @static\n * @param {perfetto.protos.AndroidPowerRails.EnergyData} message EnergyData\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n EnergyData.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.timestampMs = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.timestampMs = options.longs === String ? \"0\" : 0;\n object.energyUws = 0;\n }\n if (message.timestampMs != null && message.hasOwnProperty(\"timestampMs\"))\n if (typeof message.timestampMs === \"number\")\n object.timestampMs = options.longs === String ? String(message.timestampMs) : message.timestampMs;\n else\n object.timestampMs = options.longs === String ? $util.Long.prototype.toString.call(message.timestampMs) : options.longs === Number ? new $util.LongBits(message.timestampMs.low >>> 0, message.timestampMs.high >>> 0).toNumber() : message.timestampMs;\n if (message.energyUws != null && message.hasOwnProperty(\"energyUws\"))\n object.energyUws = options.json && !isFinite(message.energyUws) ? String(message.energyUws) : message.energyUws;\n return object;\n };\n\n /**\n * Converts this EnergyData to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidPowerRails.EnergyData\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n EnergyData.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return EnergyData;\n })();\n\n AndroidPowerRails.PowerRails = (function() {\n\n /**\n * Properties of a PowerRails.\n * @memberof perfetto.protos.AndroidPowerRails\n * @interface IPowerRails\n * @property {string|null} [name] PowerRails name\n * @property {Array.<perfetto.protos.AndroidPowerRails.IEnergyData>|null} [energyData] PowerRails energyData\n * @property {number|null} [avgUsedPowerMw] PowerRails avgUsedPowerMw\n */\n\n /**\n * Constructs a new PowerRails.\n * @memberof perfetto.protos.AndroidPowerRails\n * @classdesc Represents a PowerRails.\n * @implements IPowerRails\n * @constructor\n * @param {perfetto.protos.AndroidPowerRails.IPowerRails=} [properties] Properties to set\n */\n function PowerRails(properties) {\n this.energyData = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * PowerRails name.\n * @member {string} name\n * @memberof perfetto.protos.AndroidPowerRails.PowerRails\n * @instance\n */\n PowerRails.prototype.name = \"\";\n\n /**\n * PowerRails energyData.\n * @member {Array.<perfetto.protos.AndroidPowerRails.IEnergyData>} energyData\n * @memberof perfetto.protos.AndroidPowerRails.PowerRails\n * @instance\n */\n PowerRails.prototype.energyData = $util.emptyArray;\n\n /**\n * PowerRails avgUsedPowerMw.\n * @member {number} avgUsedPowerMw\n * @memberof perfetto.protos.AndroidPowerRails.PowerRails\n * @instance\n */\n PowerRails.prototype.avgUsedPowerMw = 0;\n\n /**\n * Creates a new PowerRails instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidPowerRails.PowerRails\n * @static\n * @param {perfetto.protos.AndroidPowerRails.IPowerRails=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidPowerRails.PowerRails} PowerRails instance\n */\n PowerRails.create = function create(properties) {\n return new PowerRails(properties);\n };\n\n /**\n * Encodes the specified PowerRails message. Does not implicitly {@link perfetto.protos.AndroidPowerRails.PowerRails.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidPowerRails.PowerRails\n * @static\n * @param {perfetto.protos.AndroidPowerRails.IPowerRails} message PowerRails message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n PowerRails.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.name != null && Object.hasOwnProperty.call(message, \"name\"))\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.name);\n if (message.energyData != null && message.energyData.length)\n for (var i = 0; i < message.energyData.length; ++i)\n $root.perfetto.protos.AndroidPowerRails.EnergyData.encode(message.energyData[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n if (message.avgUsedPowerMw != null && Object.hasOwnProperty.call(message, \"avgUsedPowerMw\"))\n writer.uint32(/* id 3, wireType 1 =*/25).double(message.avgUsedPowerMw);\n return writer;\n };\n\n /**\n * Encodes the specified PowerRails message, length delimited. Does not implicitly {@link perfetto.protos.AndroidPowerRails.PowerRails.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidPowerRails.PowerRails\n * @static\n * @param {perfetto.protos.AndroidPowerRails.IPowerRails} message PowerRails message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n PowerRails.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a PowerRails message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidPowerRails.PowerRails\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidPowerRails.PowerRails} PowerRails\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n PowerRails.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidPowerRails.PowerRails();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.name = reader.string();\n break;\n case 2:\n if (!(message.energyData && message.energyData.length))\n message.energyData = [];\n message.energyData.push($root.perfetto.protos.AndroidPowerRails.EnergyData.decode(reader, reader.uint32()));\n break;\n case 3:\n message.avgUsedPowerMw = reader.double();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a PowerRails message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidPowerRails.PowerRails\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidPowerRails.PowerRails} PowerRails\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n PowerRails.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a PowerRails message.\n * @function verify\n * @memberof perfetto.protos.AndroidPowerRails.PowerRails\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n PowerRails.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.name != null && message.hasOwnProperty(\"name\"))\n if (!$util.isString(message.name))\n return \"name: string expected\";\n if (message.energyData != null && message.hasOwnProperty(\"energyData\")) {\n if (!Array.isArray(message.energyData))\n return \"energyData: array expected\";\n for (var i = 0; i < message.energyData.length; ++i) {\n var error = $root.perfetto.protos.AndroidPowerRails.EnergyData.verify(message.energyData[i]);\n if (error)\n return \"energyData.\" + error;\n }\n }\n if (message.avgUsedPowerMw != null && message.hasOwnProperty(\"avgUsedPowerMw\"))\n if (typeof message.avgUsedPowerMw !== \"number\")\n return \"avgUsedPowerMw: number expected\";\n return null;\n };\n\n /**\n * Creates a PowerRails message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidPowerRails.PowerRails\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidPowerRails.PowerRails} PowerRails\n */\n PowerRails.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidPowerRails.PowerRails)\n return object;\n var message = new $root.perfetto.protos.AndroidPowerRails.PowerRails();\n if (object.name != null)\n message.name = String(object.name);\n if (object.energyData) {\n if (!Array.isArray(object.energyData))\n throw TypeError(\".perfetto.protos.AndroidPowerRails.PowerRails.energyData: array expected\");\n message.energyData = [];\n for (var i = 0; i < object.energyData.length; ++i) {\n if (typeof object.energyData[i] !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidPowerRails.PowerRails.energyData: object expected\");\n message.energyData[i] = $root.perfetto.protos.AndroidPowerRails.EnergyData.fromObject(object.energyData[i]);\n }\n }\n if (object.avgUsedPowerMw != null)\n message.avgUsedPowerMw = Number(object.avgUsedPowerMw);\n return message;\n };\n\n /**\n * Creates a plain object from a PowerRails message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidPowerRails.PowerRails\n * @static\n * @param {perfetto.protos.AndroidPowerRails.PowerRails} message PowerRails\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n PowerRails.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.energyData = [];\n if (options.defaults) {\n object.name = \"\";\n object.avgUsedPowerMw = 0;\n }\n if (message.name != null && message.hasOwnProperty(\"name\"))\n object.name = message.name;\n if (message.energyData && message.energyData.length) {\n object.energyData = [];\n for (var j = 0; j < message.energyData.length; ++j)\n object.energyData[j] = $root.perfetto.protos.AndroidPowerRails.EnergyData.toObject(message.energyData[j], options);\n }\n if (message.avgUsedPowerMw != null && message.hasOwnProperty(\"avgUsedPowerMw\"))\n object.avgUsedPowerMw = options.json && !isFinite(message.avgUsedPowerMw) ? String(message.avgUsedPowerMw) : message.avgUsedPowerMw;\n return object;\n };\n\n /**\n * Converts this PowerRails to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidPowerRails.PowerRails\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n PowerRails.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return PowerRails;\n })();\n\n return AndroidPowerRails;\n })();\n\n protos.ProfilerSmaps = (function() {\n\n /**\n * Properties of a ProfilerSmaps.\n * @memberof perfetto.protos\n * @interface IProfilerSmaps\n * @property {Array.<perfetto.protos.ProfilerSmaps.IInstance>|null} [instance] ProfilerSmaps instance\n */\n\n /**\n * Constructs a new ProfilerSmaps.\n * @memberof perfetto.protos\n * @classdesc Represents a ProfilerSmaps.\n * @implements IProfilerSmaps\n * @constructor\n * @param {perfetto.protos.IProfilerSmaps=} [properties] Properties to set\n */\n function ProfilerSmaps(properties) {\n this.instance = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * ProfilerSmaps instance.\n * @member {Array.<perfetto.protos.ProfilerSmaps.IInstance>} instance\n * @memberof perfetto.protos.ProfilerSmaps\n * @instance\n */\n ProfilerSmaps.prototype.instance = $util.emptyArray;\n\n /**\n * Creates a new ProfilerSmaps instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.ProfilerSmaps\n * @static\n * @param {perfetto.protos.IProfilerSmaps=} [properties] Properties to set\n * @returns {perfetto.protos.ProfilerSmaps} ProfilerSmaps instance\n */\n ProfilerSmaps.create = function create(properties) {\n return new ProfilerSmaps(properties);\n };\n\n /**\n * Encodes the specified ProfilerSmaps message. Does not implicitly {@link perfetto.protos.ProfilerSmaps.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.ProfilerSmaps\n * @static\n * @param {perfetto.protos.IProfilerSmaps} message ProfilerSmaps message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ProfilerSmaps.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.instance != null && message.instance.length)\n for (var i = 0; i < message.instance.length; ++i)\n $root.perfetto.protos.ProfilerSmaps.Instance.encode(message.instance[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified ProfilerSmaps message, length delimited. Does not implicitly {@link perfetto.protos.ProfilerSmaps.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.ProfilerSmaps\n * @static\n * @param {perfetto.protos.IProfilerSmaps} message ProfilerSmaps message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ProfilerSmaps.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a ProfilerSmaps message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.ProfilerSmaps\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.ProfilerSmaps} ProfilerSmaps\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ProfilerSmaps.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.ProfilerSmaps();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (!(message.instance && message.instance.length))\n message.instance = [];\n message.instance.push($root.perfetto.protos.ProfilerSmaps.Instance.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a ProfilerSmaps message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.ProfilerSmaps\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.ProfilerSmaps} ProfilerSmaps\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ProfilerSmaps.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a ProfilerSmaps message.\n * @function verify\n * @memberof perfetto.protos.ProfilerSmaps\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n ProfilerSmaps.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.instance != null && message.hasOwnProperty(\"instance\")) {\n if (!Array.isArray(message.instance))\n return \"instance: array expected\";\n for (var i = 0; i < message.instance.length; ++i) {\n var error = $root.perfetto.protos.ProfilerSmaps.Instance.verify(message.instance[i]);\n if (error)\n return \"instance.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates a ProfilerSmaps message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.ProfilerSmaps\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.ProfilerSmaps} ProfilerSmaps\n */\n ProfilerSmaps.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.ProfilerSmaps)\n return object;\n var message = new $root.perfetto.protos.ProfilerSmaps();\n if (object.instance) {\n if (!Array.isArray(object.instance))\n throw TypeError(\".perfetto.protos.ProfilerSmaps.instance: array expected\");\n message.instance = [];\n for (var i = 0; i < object.instance.length; ++i) {\n if (typeof object.instance[i] !== \"object\")\n throw TypeError(\".perfetto.protos.ProfilerSmaps.instance: object expected\");\n message.instance[i] = $root.perfetto.protos.ProfilerSmaps.Instance.fromObject(object.instance[i]);\n }\n }\n return message;\n };\n\n /**\n * Creates a plain object from a ProfilerSmaps message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.ProfilerSmaps\n * @static\n * @param {perfetto.protos.ProfilerSmaps} message ProfilerSmaps\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n ProfilerSmaps.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.instance = [];\n if (message.instance && message.instance.length) {\n object.instance = [];\n for (var j = 0; j < message.instance.length; ++j)\n object.instance[j] = $root.perfetto.protos.ProfilerSmaps.Instance.toObject(message.instance[j], options);\n }\n return object;\n };\n\n /**\n * Converts this ProfilerSmaps to JSON.\n * @function toJSON\n * @memberof perfetto.protos.ProfilerSmaps\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n ProfilerSmaps.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n ProfilerSmaps.Mapping = (function() {\n\n /**\n * Properties of a Mapping.\n * @memberof perfetto.protos.ProfilerSmaps\n * @interface IMapping\n * @property {string|null} [path] Mapping path\n * @property {number|null} [sizeKb] Mapping sizeKb\n * @property {number|null} [privateDirtyKb] Mapping privateDirtyKb\n * @property {number|null} [swapKb] Mapping swapKb\n */\n\n /**\n * Constructs a new Mapping.\n * @memberof perfetto.protos.ProfilerSmaps\n * @classdesc Represents a Mapping.\n * @implements IMapping\n * @constructor\n * @param {perfetto.protos.ProfilerSmaps.IMapping=} [properties] Properties to set\n */\n function Mapping(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * Mapping path.\n * @member {string} path\n * @memberof perfetto.protos.ProfilerSmaps.Mapping\n * @instance\n */\n Mapping.prototype.path = \"\";\n\n /**\n * Mapping sizeKb.\n * @member {number} sizeKb\n * @memberof perfetto.protos.ProfilerSmaps.Mapping\n * @instance\n */\n Mapping.prototype.sizeKb = 0;\n\n /**\n * Mapping privateDirtyKb.\n * @member {number} privateDirtyKb\n * @memberof perfetto.protos.ProfilerSmaps.Mapping\n * @instance\n */\n Mapping.prototype.privateDirtyKb = 0;\n\n /**\n * Mapping swapKb.\n * @member {number} swapKb\n * @memberof perfetto.protos.ProfilerSmaps.Mapping\n * @instance\n */\n Mapping.prototype.swapKb = 0;\n\n /**\n * Creates a new Mapping instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.ProfilerSmaps.Mapping\n * @static\n * @param {perfetto.protos.ProfilerSmaps.IMapping=} [properties] Properties to set\n * @returns {perfetto.protos.ProfilerSmaps.Mapping} Mapping instance\n */\n Mapping.create = function create(properties) {\n return new Mapping(properties);\n };\n\n /**\n * Encodes the specified Mapping message. Does not implicitly {@link perfetto.protos.ProfilerSmaps.Mapping.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.ProfilerSmaps.Mapping\n * @static\n * @param {perfetto.protos.ProfilerSmaps.IMapping} message Mapping message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Mapping.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.path != null && Object.hasOwnProperty.call(message, \"path\"))\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.path);\n if (message.sizeKb != null && Object.hasOwnProperty.call(message, \"sizeKb\"))\n writer.uint32(/* id 2, wireType 0 =*/16).int32(message.sizeKb);\n if (message.privateDirtyKb != null && Object.hasOwnProperty.call(message, \"privateDirtyKb\"))\n writer.uint32(/* id 3, wireType 0 =*/24).int32(message.privateDirtyKb);\n if (message.swapKb != null && Object.hasOwnProperty.call(message, \"swapKb\"))\n writer.uint32(/* id 4, wireType 0 =*/32).int32(message.swapKb);\n return writer;\n };\n\n /**\n * Encodes the specified Mapping message, length delimited. Does not implicitly {@link perfetto.protos.ProfilerSmaps.Mapping.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.ProfilerSmaps.Mapping\n * @static\n * @param {perfetto.protos.ProfilerSmaps.IMapping} message Mapping message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Mapping.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a Mapping message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.ProfilerSmaps.Mapping\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.ProfilerSmaps.Mapping} Mapping\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Mapping.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.ProfilerSmaps.Mapping();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.path = reader.string();\n break;\n case 2:\n message.sizeKb = reader.int32();\n break;\n case 3:\n message.privateDirtyKb = reader.int32();\n break;\n case 4:\n message.swapKb = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a Mapping message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.ProfilerSmaps.Mapping\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.ProfilerSmaps.Mapping} Mapping\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Mapping.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a Mapping message.\n * @function verify\n * @memberof perfetto.protos.ProfilerSmaps.Mapping\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n Mapping.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.path != null && message.hasOwnProperty(\"path\"))\n if (!$util.isString(message.path))\n return \"path: string expected\";\n if (message.sizeKb != null && message.hasOwnProperty(\"sizeKb\"))\n if (!$util.isInteger(message.sizeKb))\n return \"sizeKb: integer expected\";\n if (message.privateDirtyKb != null && message.hasOwnProperty(\"privateDirtyKb\"))\n if (!$util.isInteger(message.privateDirtyKb))\n return \"privateDirtyKb: integer expected\";\n if (message.swapKb != null && message.hasOwnProperty(\"swapKb\"))\n if (!$util.isInteger(message.swapKb))\n return \"swapKb: integer expected\";\n return null;\n };\n\n /**\n * Creates a Mapping message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.ProfilerSmaps.Mapping\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.ProfilerSmaps.Mapping} Mapping\n */\n Mapping.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.ProfilerSmaps.Mapping)\n return object;\n var message = new $root.perfetto.protos.ProfilerSmaps.Mapping();\n if (object.path != null)\n message.path = String(object.path);\n if (object.sizeKb != null)\n message.sizeKb = object.sizeKb | 0;\n if (object.privateDirtyKb != null)\n message.privateDirtyKb = object.privateDirtyKb | 0;\n if (object.swapKb != null)\n message.swapKb = object.swapKb | 0;\n return message;\n };\n\n /**\n * Creates a plain object from a Mapping message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.ProfilerSmaps.Mapping\n * @static\n * @param {perfetto.protos.ProfilerSmaps.Mapping} message Mapping\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n Mapping.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.path = \"\";\n object.sizeKb = 0;\n object.privateDirtyKb = 0;\n object.swapKb = 0;\n }\n if (message.path != null && message.hasOwnProperty(\"path\"))\n object.path = message.path;\n if (message.sizeKb != null && message.hasOwnProperty(\"sizeKb\"))\n object.sizeKb = message.sizeKb;\n if (message.privateDirtyKb != null && message.hasOwnProperty(\"privateDirtyKb\"))\n object.privateDirtyKb = message.privateDirtyKb;\n if (message.swapKb != null && message.hasOwnProperty(\"swapKb\"))\n object.swapKb = message.swapKb;\n return object;\n };\n\n /**\n * Converts this Mapping to JSON.\n * @function toJSON\n * @memberof perfetto.protos.ProfilerSmaps.Mapping\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n Mapping.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return Mapping;\n })();\n\n ProfilerSmaps.Instance = (function() {\n\n /**\n * Properties of an Instance.\n * @memberof perfetto.protos.ProfilerSmaps\n * @interface IInstance\n * @property {perfetto.protos.IAndroidProcessMetadata|null} [process] Instance process\n * @property {Array.<perfetto.protos.ProfilerSmaps.IMapping>|null} [mappings] Instance mappings\n */\n\n /**\n * Constructs a new Instance.\n * @memberof perfetto.protos.ProfilerSmaps\n * @classdesc Represents an Instance.\n * @implements IInstance\n * @constructor\n * @param {perfetto.protos.ProfilerSmaps.IInstance=} [properties] Properties to set\n */\n function Instance(properties) {\n this.mappings = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * Instance process.\n * @member {perfetto.protos.IAndroidProcessMetadata|null|undefined} process\n * @memberof perfetto.protos.ProfilerSmaps.Instance\n * @instance\n */\n Instance.prototype.process = null;\n\n /**\n * Instance mappings.\n * @member {Array.<perfetto.protos.ProfilerSmaps.IMapping>} mappings\n * @memberof perfetto.protos.ProfilerSmaps.Instance\n * @instance\n */\n Instance.prototype.mappings = $util.emptyArray;\n\n /**\n * Creates a new Instance instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.ProfilerSmaps.Instance\n * @static\n * @param {perfetto.protos.ProfilerSmaps.IInstance=} [properties] Properties to set\n * @returns {perfetto.protos.ProfilerSmaps.Instance} Instance instance\n */\n Instance.create = function create(properties) {\n return new Instance(properties);\n };\n\n /**\n * Encodes the specified Instance message. Does not implicitly {@link perfetto.protos.ProfilerSmaps.Instance.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.ProfilerSmaps.Instance\n * @static\n * @param {perfetto.protos.ProfilerSmaps.IInstance} message Instance message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Instance.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.process != null && Object.hasOwnProperty.call(message, \"process\"))\n $root.perfetto.protos.AndroidProcessMetadata.encode(message.process, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n if (message.mappings != null && message.mappings.length)\n for (var i = 0; i < message.mappings.length; ++i)\n $root.perfetto.protos.ProfilerSmaps.Mapping.encode(message.mappings[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified Instance message, length delimited. Does not implicitly {@link perfetto.protos.ProfilerSmaps.Instance.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.ProfilerSmaps.Instance\n * @static\n * @param {perfetto.protos.ProfilerSmaps.IInstance} message Instance message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Instance.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes an Instance message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.ProfilerSmaps.Instance\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.ProfilerSmaps.Instance} Instance\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Instance.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.ProfilerSmaps.Instance();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.process = $root.perfetto.protos.AndroidProcessMetadata.decode(reader, reader.uint32());\n break;\n case 2:\n if (!(message.mappings && message.mappings.length))\n message.mappings = [];\n message.mappings.push($root.perfetto.protos.ProfilerSmaps.Mapping.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes an Instance message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.ProfilerSmaps.Instance\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.ProfilerSmaps.Instance} Instance\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Instance.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies an Instance message.\n * @function verify\n * @memberof perfetto.protos.ProfilerSmaps.Instance\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n Instance.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.process != null && message.hasOwnProperty(\"process\")) {\n var error = $root.perfetto.protos.AndroidProcessMetadata.verify(message.process);\n if (error)\n return \"process.\" + error;\n }\n if (message.mappings != null && message.hasOwnProperty(\"mappings\")) {\n if (!Array.isArray(message.mappings))\n return \"mappings: array expected\";\n for (var i = 0; i < message.mappings.length; ++i) {\n var error = $root.perfetto.protos.ProfilerSmaps.Mapping.verify(message.mappings[i]);\n if (error)\n return \"mappings.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates an Instance message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.ProfilerSmaps.Instance\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.ProfilerSmaps.Instance} Instance\n */\n Instance.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.ProfilerSmaps.Instance)\n return object;\n var message = new $root.perfetto.protos.ProfilerSmaps.Instance();\n if (object.process != null) {\n if (typeof object.process !== \"object\")\n throw TypeError(\".perfetto.protos.ProfilerSmaps.Instance.process: object expected\");\n message.process = $root.perfetto.protos.AndroidProcessMetadata.fromObject(object.process);\n }\n if (object.mappings) {\n if (!Array.isArray(object.mappings))\n throw TypeError(\".perfetto.protos.ProfilerSmaps.Instance.mappings: array expected\");\n message.mappings = [];\n for (var i = 0; i < object.mappings.length; ++i) {\n if (typeof object.mappings[i] !== \"object\")\n throw TypeError(\".perfetto.protos.ProfilerSmaps.Instance.mappings: object expected\");\n message.mappings[i] = $root.perfetto.protos.ProfilerSmaps.Mapping.fromObject(object.mappings[i]);\n }\n }\n return message;\n };\n\n /**\n * Creates a plain object from an Instance message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.ProfilerSmaps.Instance\n * @static\n * @param {perfetto.protos.ProfilerSmaps.Instance} message Instance\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n Instance.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.mappings = [];\n if (options.defaults)\n object.process = null;\n if (message.process != null && message.hasOwnProperty(\"process\"))\n object.process = $root.perfetto.protos.AndroidProcessMetadata.toObject(message.process, options);\n if (message.mappings && message.mappings.length) {\n object.mappings = [];\n for (var j = 0; j < message.mappings.length; ++j)\n object.mappings[j] = $root.perfetto.protos.ProfilerSmaps.Mapping.toObject(message.mappings[j], options);\n }\n return object;\n };\n\n /**\n * Converts this Instance to JSON.\n * @function toJSON\n * @memberof perfetto.protos.ProfilerSmaps.Instance\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n Instance.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return Instance;\n })();\n\n return ProfilerSmaps;\n })();\n\n protos.AndroidSimpleperfMetric = (function() {\n\n /**\n * Properties of an AndroidSimpleperfMetric.\n * @memberof perfetto.protos\n * @interface IAndroidSimpleperfMetric\n * @property {number|null} [urgentRatio] AndroidSimpleperfMetric urgentRatio\n */\n\n /**\n * Constructs a new AndroidSimpleperfMetric.\n * @memberof perfetto.protos\n * @classdesc Represents an AndroidSimpleperfMetric.\n * @implements IAndroidSimpleperfMetric\n * @constructor\n * @param {perfetto.protos.IAndroidSimpleperfMetric=} [properties] Properties to set\n */\n function AndroidSimpleperfMetric(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * AndroidSimpleperfMetric urgentRatio.\n * @member {number} urgentRatio\n * @memberof perfetto.protos.AndroidSimpleperfMetric\n * @instance\n */\n AndroidSimpleperfMetric.prototype.urgentRatio = 0;\n\n /**\n * Creates a new AndroidSimpleperfMetric instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidSimpleperfMetric\n * @static\n * @param {perfetto.protos.IAndroidSimpleperfMetric=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidSimpleperfMetric} AndroidSimpleperfMetric instance\n */\n AndroidSimpleperfMetric.create = function create(properties) {\n return new AndroidSimpleperfMetric(properties);\n };\n\n /**\n * Encodes the specified AndroidSimpleperfMetric message. Does not implicitly {@link perfetto.protos.AndroidSimpleperfMetric.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidSimpleperfMetric\n * @static\n * @param {perfetto.protos.IAndroidSimpleperfMetric} message AndroidSimpleperfMetric message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n AndroidSimpleperfMetric.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.urgentRatio != null && Object.hasOwnProperty.call(message, \"urgentRatio\"))\n writer.uint32(/* id 1, wireType 1 =*/9).double(message.urgentRatio);\n return writer;\n };\n\n /**\n * Encodes the specified AndroidSimpleperfMetric message, length delimited. Does not implicitly {@link perfetto.protos.AndroidSimpleperfMetric.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidSimpleperfMetric\n * @static\n * @param {perfetto.protos.IAndroidSimpleperfMetric} message AndroidSimpleperfMetric message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n AndroidSimpleperfMetric.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes an AndroidSimpleperfMetric message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidSimpleperfMetric\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidSimpleperfMetric} AndroidSimpleperfMetric\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n AndroidSimpleperfMetric.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidSimpleperfMetric();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.urgentRatio = reader.double();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes an AndroidSimpleperfMetric message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidSimpleperfMetric\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidSimpleperfMetric} AndroidSimpleperfMetric\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n AndroidSimpleperfMetric.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies an AndroidSimpleperfMetric message.\n * @function verify\n * @memberof perfetto.protos.AndroidSimpleperfMetric\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n AndroidSimpleperfMetric.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.urgentRatio != null && message.hasOwnProperty(\"urgentRatio\"))\n if (typeof message.urgentRatio !== \"number\")\n return \"urgentRatio: number expected\";\n return null;\n };\n\n /**\n * Creates an AndroidSimpleperfMetric message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidSimpleperfMetric\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidSimpleperfMetric} AndroidSimpleperfMetric\n */\n AndroidSimpleperfMetric.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidSimpleperfMetric)\n return object;\n var message = new $root.perfetto.protos.AndroidSimpleperfMetric();\n if (object.urgentRatio != null)\n message.urgentRatio = Number(object.urgentRatio);\n return message;\n };\n\n /**\n * Creates a plain object from an AndroidSimpleperfMetric message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidSimpleperfMetric\n * @static\n * @param {perfetto.protos.AndroidSimpleperfMetric} message AndroidSimpleperfMetric\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n AndroidSimpleperfMetric.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults)\n object.urgentRatio = 0;\n if (message.urgentRatio != null && message.hasOwnProperty(\"urgentRatio\"))\n object.urgentRatio = options.json && !isFinite(message.urgentRatio) ? String(message.urgentRatio) : message.urgentRatio;\n return object;\n };\n\n /**\n * Converts this AndroidSimpleperfMetric to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidSimpleperfMetric\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n AndroidSimpleperfMetric.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return AndroidSimpleperfMetric;\n })();\n\n protos.AndroidStartupMetric = (function() {\n\n /**\n * Properties of an AndroidStartupMetric.\n * @memberof perfetto.protos\n * @interface IAndroidStartupMetric\n * @property {Array.<perfetto.protos.AndroidStartupMetric.IStartup>|null} [startup] AndroidStartupMetric startup\n */\n\n /**\n * Constructs a new AndroidStartupMetric.\n * @memberof perfetto.protos\n * @classdesc Represents an AndroidStartupMetric.\n * @implements IAndroidStartupMetric\n * @constructor\n * @param {perfetto.protos.IAndroidStartupMetric=} [properties] Properties to set\n */\n function AndroidStartupMetric(properties) {\n this.startup = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * AndroidStartupMetric startup.\n * @member {Array.<perfetto.protos.AndroidStartupMetric.IStartup>} startup\n * @memberof perfetto.protos.AndroidStartupMetric\n * @instance\n */\n AndroidStartupMetric.prototype.startup = $util.emptyArray;\n\n /**\n * Creates a new AndroidStartupMetric instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidStartupMetric\n * @static\n * @param {perfetto.protos.IAndroidStartupMetric=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidStartupMetric} AndroidStartupMetric instance\n */\n AndroidStartupMetric.create = function create(properties) {\n return new AndroidStartupMetric(properties);\n };\n\n /**\n * Encodes the specified AndroidStartupMetric message. Does not implicitly {@link perfetto.protos.AndroidStartupMetric.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidStartupMetric\n * @static\n * @param {perfetto.protos.IAndroidStartupMetric} message AndroidStartupMetric message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n AndroidStartupMetric.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.startup != null && message.startup.length)\n for (var i = 0; i < message.startup.length; ++i)\n $root.perfetto.protos.AndroidStartupMetric.Startup.encode(message.startup[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified AndroidStartupMetric message, length delimited. Does not implicitly {@link perfetto.protos.AndroidStartupMetric.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidStartupMetric\n * @static\n * @param {perfetto.protos.IAndroidStartupMetric} message AndroidStartupMetric message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n AndroidStartupMetric.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes an AndroidStartupMetric message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidStartupMetric\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidStartupMetric} AndroidStartupMetric\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n AndroidStartupMetric.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidStartupMetric();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (!(message.startup && message.startup.length))\n message.startup = [];\n message.startup.push($root.perfetto.protos.AndroidStartupMetric.Startup.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes an AndroidStartupMetric message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidStartupMetric\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidStartupMetric} AndroidStartupMetric\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n AndroidStartupMetric.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies an AndroidStartupMetric message.\n * @function verify\n * @memberof perfetto.protos.AndroidStartupMetric\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n AndroidStartupMetric.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.startup != null && message.hasOwnProperty(\"startup\")) {\n if (!Array.isArray(message.startup))\n return \"startup: array expected\";\n for (var i = 0; i < message.startup.length; ++i) {\n var error = $root.perfetto.protos.AndroidStartupMetric.Startup.verify(message.startup[i]);\n if (error)\n return \"startup.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates an AndroidStartupMetric message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidStartupMetric\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidStartupMetric} AndroidStartupMetric\n */\n AndroidStartupMetric.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidStartupMetric)\n return object;\n var message = new $root.perfetto.protos.AndroidStartupMetric();\n if (object.startup) {\n if (!Array.isArray(object.startup))\n throw TypeError(\".perfetto.protos.AndroidStartupMetric.startup: array expected\");\n message.startup = [];\n for (var i = 0; i < object.startup.length; ++i) {\n if (typeof object.startup[i] !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidStartupMetric.startup: object expected\");\n message.startup[i] = $root.perfetto.protos.AndroidStartupMetric.Startup.fromObject(object.startup[i]);\n }\n }\n return message;\n };\n\n /**\n * Creates a plain object from an AndroidStartupMetric message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidStartupMetric\n * @static\n * @param {perfetto.protos.AndroidStartupMetric} message AndroidStartupMetric\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n AndroidStartupMetric.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.startup = [];\n if (message.startup && message.startup.length) {\n object.startup = [];\n for (var j = 0; j < message.startup.length; ++j)\n object.startup[j] = $root.perfetto.protos.AndroidStartupMetric.Startup.toObject(message.startup[j], options);\n }\n return object;\n };\n\n /**\n * Converts this AndroidStartupMetric to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidStartupMetric\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n AndroidStartupMetric.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n AndroidStartupMetric.TaskStateBreakdown = (function() {\n\n /**\n * Properties of a TaskStateBreakdown.\n * @memberof perfetto.protos.AndroidStartupMetric\n * @interface ITaskStateBreakdown\n * @property {number|null} [runningDurNs] TaskStateBreakdown runningDurNs\n * @property {number|null} [runnableDurNs] TaskStateBreakdown runnableDurNs\n * @property {number|null} [uninterruptibleSleepDurNs] TaskStateBreakdown uninterruptibleSleepDurNs\n * @property {number|null} [interruptibleSleepDurNs] TaskStateBreakdown interruptibleSleepDurNs\n */\n\n /**\n * Constructs a new TaskStateBreakdown.\n * @memberof perfetto.protos.AndroidStartupMetric\n * @classdesc Represents a TaskStateBreakdown.\n * @implements ITaskStateBreakdown\n * @constructor\n * @param {perfetto.protos.AndroidStartupMetric.ITaskStateBreakdown=} [properties] Properties to set\n */\n function TaskStateBreakdown(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * TaskStateBreakdown runningDurNs.\n * @member {number} runningDurNs\n * @memberof perfetto.protos.AndroidStartupMetric.TaskStateBreakdown\n * @instance\n */\n TaskStateBreakdown.prototype.runningDurNs = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * TaskStateBreakdown runnableDurNs.\n * @member {number} runnableDurNs\n * @memberof perfetto.protos.AndroidStartupMetric.TaskStateBreakdown\n * @instance\n */\n TaskStateBreakdown.prototype.runnableDurNs = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * TaskStateBreakdown uninterruptibleSleepDurNs.\n * @member {number} uninterruptibleSleepDurNs\n * @memberof perfetto.protos.AndroidStartupMetric.TaskStateBreakdown\n * @instance\n */\n TaskStateBreakdown.prototype.uninterruptibleSleepDurNs = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * TaskStateBreakdown interruptibleSleepDurNs.\n * @member {number} interruptibleSleepDurNs\n * @memberof perfetto.protos.AndroidStartupMetric.TaskStateBreakdown\n * @instance\n */\n TaskStateBreakdown.prototype.interruptibleSleepDurNs = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * Creates a new TaskStateBreakdown instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidStartupMetric.TaskStateBreakdown\n * @static\n * @param {perfetto.protos.AndroidStartupMetric.ITaskStateBreakdown=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidStartupMetric.TaskStateBreakdown} TaskStateBreakdown instance\n */\n TaskStateBreakdown.create = function create(properties) {\n return new TaskStateBreakdown(properties);\n };\n\n /**\n * Encodes the specified TaskStateBreakdown message. Does not implicitly {@link perfetto.protos.AndroidStartupMetric.TaskStateBreakdown.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidStartupMetric.TaskStateBreakdown\n * @static\n * @param {perfetto.protos.AndroidStartupMetric.ITaskStateBreakdown} message TaskStateBreakdown message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n TaskStateBreakdown.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.runningDurNs != null && Object.hasOwnProperty.call(message, \"runningDurNs\"))\n writer.uint32(/* id 1, wireType 0 =*/8).int64(message.runningDurNs);\n if (message.runnableDurNs != null && Object.hasOwnProperty.call(message, \"runnableDurNs\"))\n writer.uint32(/* id 2, wireType 0 =*/16).int64(message.runnableDurNs);\n if (message.uninterruptibleSleepDurNs != null && Object.hasOwnProperty.call(message, \"uninterruptibleSleepDurNs\"))\n writer.uint32(/* id 3, wireType 0 =*/24).int64(message.uninterruptibleSleepDurNs);\n if (message.interruptibleSleepDurNs != null && Object.hasOwnProperty.call(message, \"interruptibleSleepDurNs\"))\n writer.uint32(/* id 4, wireType 0 =*/32).int64(message.interruptibleSleepDurNs);\n return writer;\n };\n\n /**\n * Encodes the specified TaskStateBreakdown message, length delimited. Does not implicitly {@link perfetto.protos.AndroidStartupMetric.TaskStateBreakdown.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidStartupMetric.TaskStateBreakdown\n * @static\n * @param {perfetto.protos.AndroidStartupMetric.ITaskStateBreakdown} message TaskStateBreakdown message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n TaskStateBreakdown.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a TaskStateBreakdown message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidStartupMetric.TaskStateBreakdown\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidStartupMetric.TaskStateBreakdown} TaskStateBreakdown\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n TaskStateBreakdown.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidStartupMetric.TaskStateBreakdown();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.runningDurNs = reader.int64();\n break;\n case 2:\n message.runnableDurNs = reader.int64();\n break;\n case 3:\n message.uninterruptibleSleepDurNs = reader.int64();\n break;\n case 4:\n message.interruptibleSleepDurNs = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a TaskStateBreakdown message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidStartupMetric.TaskStateBreakdown\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidStartupMetric.TaskStateBreakdown} TaskStateBreakdown\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n TaskStateBreakdown.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a TaskStateBreakdown message.\n * @function verify\n * @memberof perfetto.protos.AndroidStartupMetric.TaskStateBreakdown\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n TaskStateBreakdown.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.runningDurNs != null && message.hasOwnProperty(\"runningDurNs\"))\n if (!$util.isInteger(message.runningDurNs) && !(message.runningDurNs && $util.isInteger(message.runningDurNs.low) && $util.isInteger(message.runningDurNs.high)))\n return \"runningDurNs: integer|Long expected\";\n if (message.runnableDurNs != null && message.hasOwnProperty(\"runnableDurNs\"))\n if (!$util.isInteger(message.runnableDurNs) && !(message.runnableDurNs && $util.isInteger(message.runnableDurNs.low) && $util.isInteger(message.runnableDurNs.high)))\n return \"runnableDurNs: integer|Long expected\";\n if (message.uninterruptibleSleepDurNs != null && message.hasOwnProperty(\"uninterruptibleSleepDurNs\"))\n if (!$util.isInteger(message.uninterruptibleSleepDurNs) && !(message.uninterruptibleSleepDurNs && $util.isInteger(message.uninterruptibleSleepDurNs.low) && $util.isInteger(message.uninterruptibleSleepDurNs.high)))\n return \"uninterruptibleSleepDurNs: integer|Long expected\";\n if (message.interruptibleSleepDurNs != null && message.hasOwnProperty(\"interruptibleSleepDurNs\"))\n if (!$util.isInteger(message.interruptibleSleepDurNs) && !(message.interruptibleSleepDurNs && $util.isInteger(message.interruptibleSleepDurNs.low) && $util.isInteger(message.interruptibleSleepDurNs.high)))\n return \"interruptibleSleepDurNs: integer|Long expected\";\n return null;\n };\n\n /**\n * Creates a TaskStateBreakdown message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidStartupMetric.TaskStateBreakdown\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidStartupMetric.TaskStateBreakdown} TaskStateBreakdown\n */\n TaskStateBreakdown.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidStartupMetric.TaskStateBreakdown)\n return object;\n var message = new $root.perfetto.protos.AndroidStartupMetric.TaskStateBreakdown();\n if (object.runningDurNs != null)\n if ($util.Long)\n (message.runningDurNs = $util.Long.fromValue(object.runningDurNs)).unsigned = false;\n else if (typeof object.runningDurNs === \"string\")\n message.runningDurNs = parseInt(object.runningDurNs, 10);\n else if (typeof object.runningDurNs === \"number\")\n message.runningDurNs = object.runningDurNs;\n else if (typeof object.runningDurNs === \"object\")\n message.runningDurNs = new $util.LongBits(object.runningDurNs.low >>> 0, object.runningDurNs.high >>> 0).toNumber();\n if (object.runnableDurNs != null)\n if ($util.Long)\n (message.runnableDurNs = $util.Long.fromValue(object.runnableDurNs)).unsigned = false;\n else if (typeof object.runnableDurNs === \"string\")\n message.runnableDurNs = parseInt(object.runnableDurNs, 10);\n else if (typeof object.runnableDurNs === \"number\")\n message.runnableDurNs = object.runnableDurNs;\n else if (typeof object.runnableDurNs === \"object\")\n message.runnableDurNs = new $util.LongBits(object.runnableDurNs.low >>> 0, object.runnableDurNs.high >>> 0).toNumber();\n if (object.uninterruptibleSleepDurNs != null)\n if ($util.Long)\n (message.uninterruptibleSleepDurNs = $util.Long.fromValue(object.uninterruptibleSleepDurNs)).unsigned = false;\n else if (typeof object.uninterruptibleSleepDurNs === \"string\")\n message.uninterruptibleSleepDurNs = parseInt(object.uninterruptibleSleepDurNs, 10);\n else if (typeof object.uninterruptibleSleepDurNs === \"number\")\n message.uninterruptibleSleepDurNs = object.uninterruptibleSleepDurNs;\n else if (typeof object.uninterruptibleSleepDurNs === \"object\")\n message.uninterruptibleSleepDurNs = new $util.LongBits(object.uninterruptibleSleepDurNs.low >>> 0, object.uninterruptibleSleepDurNs.high >>> 0).toNumber();\n if (object.interruptibleSleepDurNs != null)\n if ($util.Long)\n (message.interruptibleSleepDurNs = $util.Long.fromValue(object.interruptibleSleepDurNs)).unsigned = false;\n else if (typeof object.interruptibleSleepDurNs === \"string\")\n message.interruptibleSleepDurNs = parseInt(object.interruptibleSleepDurNs, 10);\n else if (typeof object.interruptibleSleepDurNs === \"number\")\n message.interruptibleSleepDurNs = object.interruptibleSleepDurNs;\n else if (typeof object.interruptibleSleepDurNs === \"object\")\n message.interruptibleSleepDurNs = new $util.LongBits(object.interruptibleSleepDurNs.low >>> 0, object.interruptibleSleepDurNs.high >>> 0).toNumber();\n return message;\n };\n\n /**\n * Creates a plain object from a TaskStateBreakdown message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidStartupMetric.TaskStateBreakdown\n * @static\n * @param {perfetto.protos.AndroidStartupMetric.TaskStateBreakdown} message TaskStateBreakdown\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n TaskStateBreakdown.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.runningDurNs = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.runningDurNs = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.runnableDurNs = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.runnableDurNs = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.uninterruptibleSleepDurNs = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.uninterruptibleSleepDurNs = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.interruptibleSleepDurNs = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.interruptibleSleepDurNs = options.longs === String ? \"0\" : 0;\n }\n if (message.runningDurNs != null && message.hasOwnProperty(\"runningDurNs\"))\n if (typeof message.runningDurNs === \"number\")\n object.runningDurNs = options.longs === String ? String(message.runningDurNs) : message.runningDurNs;\n else\n object.runningDurNs = options.longs === String ? $util.Long.prototype.toString.call(message.runningDurNs) : options.longs === Number ? new $util.LongBits(message.runningDurNs.low >>> 0, message.runningDurNs.high >>> 0).toNumber() : message.runningDurNs;\n if (message.runnableDurNs != null && message.hasOwnProperty(\"runnableDurNs\"))\n if (typeof message.runnableDurNs === \"number\")\n object.runnableDurNs = options.longs === String ? String(message.runnableDurNs) : message.runnableDurNs;\n else\n object.runnableDurNs = options.longs === String ? $util.Long.prototype.toString.call(message.runnableDurNs) : options.longs === Number ? new $util.LongBits(message.runnableDurNs.low >>> 0, message.runnableDurNs.high >>> 0).toNumber() : message.runnableDurNs;\n if (message.uninterruptibleSleepDurNs != null && message.hasOwnProperty(\"uninterruptibleSleepDurNs\"))\n if (typeof message.uninterruptibleSleepDurNs === \"number\")\n object.uninterruptibleSleepDurNs = options.longs === String ? String(message.uninterruptibleSleepDurNs) : message.uninterruptibleSleepDurNs;\n else\n object.uninterruptibleSleepDurNs = options.longs === String ? $util.Long.prototype.toString.call(message.uninterruptibleSleepDurNs) : options.longs === Number ? new $util.LongBits(message.uninterruptibleSleepDurNs.low >>> 0, message.uninterruptibleSleepDurNs.high >>> 0).toNumber() : message.uninterruptibleSleepDurNs;\n if (message.interruptibleSleepDurNs != null && message.hasOwnProperty(\"interruptibleSleepDurNs\"))\n if (typeof message.interruptibleSleepDurNs === \"number\")\n object.interruptibleSleepDurNs = options.longs === String ? String(message.interruptibleSleepDurNs) : message.interruptibleSleepDurNs;\n else\n object.interruptibleSleepDurNs = options.longs === String ? $util.Long.prototype.toString.call(message.interruptibleSleepDurNs) : options.longs === Number ? new $util.LongBits(message.interruptibleSleepDurNs.low >>> 0, message.interruptibleSleepDurNs.high >>> 0).toNumber() : message.interruptibleSleepDurNs;\n return object;\n };\n\n /**\n * Converts this TaskStateBreakdown to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidStartupMetric.TaskStateBreakdown\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n TaskStateBreakdown.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return TaskStateBreakdown;\n })();\n\n AndroidStartupMetric.McyclesByCoreType = (function() {\n\n /**\n * Properties of a McyclesByCoreType.\n * @memberof perfetto.protos.AndroidStartupMetric\n * @interface IMcyclesByCoreType\n * @property {number|null} [little] McyclesByCoreType little\n * @property {number|null} [big] McyclesByCoreType big\n * @property {number|null} [bigger] McyclesByCoreType bigger\n * @property {number|null} [unknown] McyclesByCoreType unknown\n */\n\n /**\n * Constructs a new McyclesByCoreType.\n * @memberof perfetto.protos.AndroidStartupMetric\n * @classdesc Represents a McyclesByCoreType.\n * @implements IMcyclesByCoreType\n * @constructor\n * @param {perfetto.protos.AndroidStartupMetric.IMcyclesByCoreType=} [properties] Properties to set\n */\n function McyclesByCoreType(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * McyclesByCoreType little.\n * @member {number} little\n * @memberof perfetto.protos.AndroidStartupMetric.McyclesByCoreType\n * @instance\n */\n McyclesByCoreType.prototype.little = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * McyclesByCoreType big.\n * @member {number} big\n * @memberof perfetto.protos.AndroidStartupMetric.McyclesByCoreType\n * @instance\n */\n McyclesByCoreType.prototype.big = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * McyclesByCoreType bigger.\n * @member {number} bigger\n * @memberof perfetto.protos.AndroidStartupMetric.McyclesByCoreType\n * @instance\n */\n McyclesByCoreType.prototype.bigger = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * McyclesByCoreType unknown.\n * @member {number} unknown\n * @memberof perfetto.protos.AndroidStartupMetric.McyclesByCoreType\n * @instance\n */\n McyclesByCoreType.prototype.unknown = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * Creates a new McyclesByCoreType instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidStartupMetric.McyclesByCoreType\n * @static\n * @param {perfetto.protos.AndroidStartupMetric.IMcyclesByCoreType=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidStartupMetric.McyclesByCoreType} McyclesByCoreType instance\n */\n McyclesByCoreType.create = function create(properties) {\n return new McyclesByCoreType(properties);\n };\n\n /**\n * Encodes the specified McyclesByCoreType message. Does not implicitly {@link perfetto.protos.AndroidStartupMetric.McyclesByCoreType.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidStartupMetric.McyclesByCoreType\n * @static\n * @param {perfetto.protos.AndroidStartupMetric.IMcyclesByCoreType} message McyclesByCoreType message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n McyclesByCoreType.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.little != null && Object.hasOwnProperty.call(message, \"little\"))\n writer.uint32(/* id 1, wireType 0 =*/8).int64(message.little);\n if (message.big != null && Object.hasOwnProperty.call(message, \"big\"))\n writer.uint32(/* id 2, wireType 0 =*/16).int64(message.big);\n if (message.bigger != null && Object.hasOwnProperty.call(message, \"bigger\"))\n writer.uint32(/* id 3, wireType 0 =*/24).int64(message.bigger);\n if (message.unknown != null && Object.hasOwnProperty.call(message, \"unknown\"))\n writer.uint32(/* id 4, wireType 0 =*/32).int64(message.unknown);\n return writer;\n };\n\n /**\n * Encodes the specified McyclesByCoreType message, length delimited. Does not implicitly {@link perfetto.protos.AndroidStartupMetric.McyclesByCoreType.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidStartupMetric.McyclesByCoreType\n * @static\n * @param {perfetto.protos.AndroidStartupMetric.IMcyclesByCoreType} message McyclesByCoreType message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n McyclesByCoreType.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a McyclesByCoreType message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidStartupMetric.McyclesByCoreType\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidStartupMetric.McyclesByCoreType} McyclesByCoreType\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n McyclesByCoreType.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidStartupMetric.McyclesByCoreType();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.little = reader.int64();\n break;\n case 2:\n message.big = reader.int64();\n break;\n case 3:\n message.bigger = reader.int64();\n break;\n case 4:\n message.unknown = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a McyclesByCoreType message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidStartupMetric.McyclesByCoreType\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidStartupMetric.McyclesByCoreType} McyclesByCoreType\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n McyclesByCoreType.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a McyclesByCoreType message.\n * @function verify\n * @memberof perfetto.protos.AndroidStartupMetric.McyclesByCoreType\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n McyclesByCoreType.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.little != null && message.hasOwnProperty(\"little\"))\n if (!$util.isInteger(message.little) && !(message.little && $util.isInteger(message.little.low) && $util.isInteger(message.little.high)))\n return \"little: integer|Long expected\";\n if (message.big != null && message.hasOwnProperty(\"big\"))\n if (!$util.isInteger(message.big) && !(message.big && $util.isInteger(message.big.low) && $util.isInteger(message.big.high)))\n return \"big: integer|Long expected\";\n if (message.bigger != null && message.hasOwnProperty(\"bigger\"))\n if (!$util.isInteger(message.bigger) && !(message.bigger && $util.isInteger(message.bigger.low) && $util.isInteger(message.bigger.high)))\n return \"bigger: integer|Long expected\";\n if (message.unknown != null && message.hasOwnProperty(\"unknown\"))\n if (!$util.isInteger(message.unknown) && !(message.unknown && $util.isInteger(message.unknown.low) && $util.isInteger(message.unknown.high)))\n return \"unknown: integer|Long expected\";\n return null;\n };\n\n /**\n * Creates a McyclesByCoreType message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidStartupMetric.McyclesByCoreType\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidStartupMetric.McyclesByCoreType} McyclesByCoreType\n */\n McyclesByCoreType.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidStartupMetric.McyclesByCoreType)\n return object;\n var message = new $root.perfetto.protos.AndroidStartupMetric.McyclesByCoreType();\n if (object.little != null)\n if ($util.Long)\n (message.little = $util.Long.fromValue(object.little)).unsigned = false;\n else if (typeof object.little === \"string\")\n message.little = parseInt(object.little, 10);\n else if (typeof object.little === \"number\")\n message.little = object.little;\n else if (typeof object.little === \"object\")\n message.little = new $util.LongBits(object.little.low >>> 0, object.little.high >>> 0).toNumber();\n if (object.big != null)\n if ($util.Long)\n (message.big = $util.Long.fromValue(object.big)).unsigned = false;\n else if (typeof object.big === \"string\")\n message.big = parseInt(object.big, 10);\n else if (typeof object.big === \"number\")\n message.big = object.big;\n else if (typeof object.big === \"object\")\n message.big = new $util.LongBits(object.big.low >>> 0, object.big.high >>> 0).toNumber();\n if (object.bigger != null)\n if ($util.Long)\n (message.bigger = $util.Long.fromValue(object.bigger)).unsigned = false;\n else if (typeof object.bigger === \"string\")\n message.bigger = parseInt(object.bigger, 10);\n else if (typeof object.bigger === \"number\")\n message.bigger = object.bigger;\n else if (typeof object.bigger === \"object\")\n message.bigger = new $util.LongBits(object.bigger.low >>> 0, object.bigger.high >>> 0).toNumber();\n if (object.unknown != null)\n if ($util.Long)\n (message.unknown = $util.Long.fromValue(object.unknown)).unsigned = false;\n else if (typeof object.unknown === \"string\")\n message.unknown = parseInt(object.unknown, 10);\n else if (typeof object.unknown === \"number\")\n message.unknown = object.unknown;\n else if (typeof object.unknown === \"object\")\n message.unknown = new $util.LongBits(object.unknown.low >>> 0, object.unknown.high >>> 0).toNumber();\n return message;\n };\n\n /**\n * Creates a plain object from a McyclesByCoreType message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidStartupMetric.McyclesByCoreType\n * @static\n * @param {perfetto.protos.AndroidStartupMetric.McyclesByCoreType} message McyclesByCoreType\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n McyclesByCoreType.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.little = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.little = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.big = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.big = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.bigger = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.bigger = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.unknown = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.unknown = options.longs === String ? \"0\" : 0;\n }\n if (message.little != null && message.hasOwnProperty(\"little\"))\n if (typeof message.little === \"number\")\n object.little = options.longs === String ? String(message.little) : message.little;\n else\n object.little = options.longs === String ? $util.Long.prototype.toString.call(message.little) : options.longs === Number ? new $util.LongBits(message.little.low >>> 0, message.little.high >>> 0).toNumber() : message.little;\n if (message.big != null && message.hasOwnProperty(\"big\"))\n if (typeof message.big === \"number\")\n object.big = options.longs === String ? String(message.big) : message.big;\n else\n object.big = options.longs === String ? $util.Long.prototype.toString.call(message.big) : options.longs === Number ? new $util.LongBits(message.big.low >>> 0, message.big.high >>> 0).toNumber() : message.big;\n if (message.bigger != null && message.hasOwnProperty(\"bigger\"))\n if (typeof message.bigger === \"number\")\n object.bigger = options.longs === String ? String(message.bigger) : message.bigger;\n else\n object.bigger = options.longs === String ? $util.Long.prototype.toString.call(message.bigger) : options.longs === Number ? new $util.LongBits(message.bigger.low >>> 0, message.bigger.high >>> 0).toNumber() : message.bigger;\n if (message.unknown != null && message.hasOwnProperty(\"unknown\"))\n if (typeof message.unknown === \"number\")\n object.unknown = options.longs === String ? String(message.unknown) : message.unknown;\n else\n object.unknown = options.longs === String ? $util.Long.prototype.toString.call(message.unknown) : options.longs === Number ? new $util.LongBits(message.unknown.low >>> 0, message.unknown.high >>> 0).toNumber() : message.unknown;\n return object;\n };\n\n /**\n * Converts this McyclesByCoreType to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidStartupMetric.McyclesByCoreType\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n McyclesByCoreType.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return McyclesByCoreType;\n })();\n\n AndroidStartupMetric.Slice = (function() {\n\n /**\n * Properties of a Slice.\n * @memberof perfetto.protos.AndroidStartupMetric\n * @interface ISlice\n * @property {number|null} [durNs] Slice durNs\n * @property {number|null} [durMs] Slice durMs\n */\n\n /**\n * Constructs a new Slice.\n * @memberof perfetto.protos.AndroidStartupMetric\n * @classdesc Represents a Slice.\n * @implements ISlice\n * @constructor\n * @param {perfetto.protos.AndroidStartupMetric.ISlice=} [properties] Properties to set\n */\n function Slice(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * Slice durNs.\n * @member {number} durNs\n * @memberof perfetto.protos.AndroidStartupMetric.Slice\n * @instance\n */\n Slice.prototype.durNs = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * Slice durMs.\n * @member {number} durMs\n * @memberof perfetto.protos.AndroidStartupMetric.Slice\n * @instance\n */\n Slice.prototype.durMs = 0;\n\n /**\n * Creates a new Slice instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidStartupMetric.Slice\n * @static\n * @param {perfetto.protos.AndroidStartupMetric.ISlice=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidStartupMetric.Slice} Slice instance\n */\n Slice.create = function create(properties) {\n return new Slice(properties);\n };\n\n /**\n * Encodes the specified Slice message. Does not implicitly {@link perfetto.protos.AndroidStartupMetric.Slice.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidStartupMetric.Slice\n * @static\n * @param {perfetto.protos.AndroidStartupMetric.ISlice} message Slice message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Slice.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.durNs != null && Object.hasOwnProperty.call(message, \"durNs\"))\n writer.uint32(/* id 1, wireType 0 =*/8).int64(message.durNs);\n if (message.durMs != null && Object.hasOwnProperty.call(message, \"durMs\"))\n writer.uint32(/* id 2, wireType 1 =*/17).double(message.durMs);\n return writer;\n };\n\n /**\n * Encodes the specified Slice message, length delimited. Does not implicitly {@link perfetto.protos.AndroidStartupMetric.Slice.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidStartupMetric.Slice\n * @static\n * @param {perfetto.protos.AndroidStartupMetric.ISlice} message Slice message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Slice.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a Slice message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidStartupMetric.Slice\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidStartupMetric.Slice} Slice\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Slice.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidStartupMetric.Slice();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.durNs = reader.int64();\n break;\n case 2:\n message.durMs = reader.double();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a Slice message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidStartupMetric.Slice\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidStartupMetric.Slice} Slice\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Slice.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a Slice message.\n * @function verify\n * @memberof perfetto.protos.AndroidStartupMetric.Slice\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n Slice.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.durNs != null && message.hasOwnProperty(\"durNs\"))\n if (!$util.isInteger(message.durNs) && !(message.durNs && $util.isInteger(message.durNs.low) && $util.isInteger(message.durNs.high)))\n return \"durNs: integer|Long expected\";\n if (message.durMs != null && message.hasOwnProperty(\"durMs\"))\n if (typeof message.durMs !== \"number\")\n return \"durMs: number expected\";\n return null;\n };\n\n /**\n * Creates a Slice message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidStartupMetric.Slice\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidStartupMetric.Slice} Slice\n */\n Slice.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidStartupMetric.Slice)\n return object;\n var message = new $root.perfetto.protos.AndroidStartupMetric.Slice();\n if (object.durNs != null)\n if ($util.Long)\n (message.durNs = $util.Long.fromValue(object.durNs)).unsigned = false;\n else if (typeof object.durNs === \"string\")\n message.durNs = parseInt(object.durNs, 10);\n else if (typeof object.durNs === \"number\")\n message.durNs = object.durNs;\n else if (typeof object.durNs === \"object\")\n message.durNs = new $util.LongBits(object.durNs.low >>> 0, object.durNs.high >>> 0).toNumber();\n if (object.durMs != null)\n message.durMs = Number(object.durMs);\n return message;\n };\n\n /**\n * Creates a plain object from a Slice message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidStartupMetric.Slice\n * @static\n * @param {perfetto.protos.AndroidStartupMetric.Slice} message Slice\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n Slice.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.durNs = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.durNs = options.longs === String ? \"0\" : 0;\n object.durMs = 0;\n }\n if (message.durNs != null && message.hasOwnProperty(\"durNs\"))\n if (typeof message.durNs === \"number\")\n object.durNs = options.longs === String ? String(message.durNs) : message.durNs;\n else\n object.durNs = options.longs === String ? $util.Long.prototype.toString.call(message.durNs) : options.longs === Number ? new $util.LongBits(message.durNs.low >>> 0, message.durNs.high >>> 0).toNumber() : message.durNs;\n if (message.durMs != null && message.hasOwnProperty(\"durMs\"))\n object.durMs = options.json && !isFinite(message.durMs) ? String(message.durMs) : message.durMs;\n return object;\n };\n\n /**\n * Converts this Slice to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidStartupMetric.Slice\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n Slice.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return Slice;\n })();\n\n AndroidStartupMetric.ToFirstFrame = (function() {\n\n /**\n * Properties of a ToFirstFrame.\n * @memberof perfetto.protos.AndroidStartupMetric\n * @interface IToFirstFrame\n * @property {number|null} [durNs] ToFirstFrame durNs\n * @property {number|null} [durMs] ToFirstFrame durMs\n * @property {perfetto.protos.AndroidStartupMetric.ITaskStateBreakdown|null} [mainThreadByTaskState] ToFirstFrame mainThreadByTaskState\n * @property {perfetto.protos.AndroidStartupMetric.IMcyclesByCoreType|null} [mcyclesByCoreType] ToFirstFrame mcyclesByCoreType\n * @property {number|null} [otherProcessesSpawnedCount] ToFirstFrame otherProcessesSpawnedCount\n * @property {perfetto.protos.AndroidStartupMetric.ISlice|null} [timeActivityManager] ToFirstFrame timeActivityManager\n * @property {perfetto.protos.AndroidStartupMetric.ISlice|null} [timeActivityThreadMain] ToFirstFrame timeActivityThreadMain\n * @property {perfetto.protos.AndroidStartupMetric.ISlice|null} [timeBindApplication] ToFirstFrame timeBindApplication\n * @property {perfetto.protos.AndroidStartupMetric.ISlice|null} [timeActivityStart] ToFirstFrame timeActivityStart\n * @property {perfetto.protos.AndroidStartupMetric.ISlice|null} [timeActivityResume] ToFirstFrame timeActivityResume\n * @property {perfetto.protos.AndroidStartupMetric.ISlice|null} [timeActivityRestart] ToFirstFrame timeActivityRestart\n * @property {perfetto.protos.AndroidStartupMetric.ISlice|null} [timeChoreographer] ToFirstFrame timeChoreographer\n * @property {perfetto.protos.AndroidStartupMetric.ISlice|null} [timeInflate] ToFirstFrame timeInflate\n * @property {perfetto.protos.AndroidStartupMetric.ISlice|null} [timeGetResources] ToFirstFrame timeGetResources\n * @property {perfetto.protos.AndroidStartupMetric.ISlice|null} [timeBeforeStartProcess] ToFirstFrame timeBeforeStartProcess\n * @property {perfetto.protos.AndroidStartupMetric.ISlice|null} [timeDuringStartProcess] ToFirstFrame timeDuringStartProcess\n * @property {perfetto.protos.AndroidStartupMetric.ISlice|null} [toPostFork] ToFirstFrame toPostFork\n * @property {perfetto.protos.AndroidStartupMetric.ISlice|null} [toActivityThreadMain] ToFirstFrame toActivityThreadMain\n * @property {perfetto.protos.AndroidStartupMetric.ISlice|null} [toBindApplication] ToFirstFrame toBindApplication\n * @property {perfetto.protos.AndroidStartupMetric.ISlice|null} [timePostFork] ToFirstFrame timePostFork\n * @property {perfetto.protos.AndroidStartupMetric.ISlice|null} [timeDexOpen] ToFirstFrame timeDexOpen\n * @property {perfetto.protos.AndroidStartupMetric.ISlice|null} [timeVerifyClass] ToFirstFrame timeVerifyClass\n * @property {number|null} [jitCompiledMethods] ToFirstFrame jitCompiledMethods\n * @property {perfetto.protos.AndroidStartupMetric.ISlice|null} [timeJitThreadPoolOnCpu] ToFirstFrame timeJitThreadPoolOnCpu\n * @property {perfetto.protos.AndroidStartupMetric.ISlice|null} [timeGcTotal] ToFirstFrame timeGcTotal\n * @property {perfetto.protos.AndroidStartupMetric.ISlice|null} [timeGcOnCpu] ToFirstFrame timeGcOnCpu\n */\n\n /**\n * Constructs a new ToFirstFrame.\n * @memberof perfetto.protos.AndroidStartupMetric\n * @classdesc Represents a ToFirstFrame.\n * @implements IToFirstFrame\n * @constructor\n * @param {perfetto.protos.AndroidStartupMetric.IToFirstFrame=} [properties] Properties to set\n */\n function ToFirstFrame(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * ToFirstFrame durNs.\n * @member {number} durNs\n * @memberof perfetto.protos.AndroidStartupMetric.ToFirstFrame\n * @instance\n */\n ToFirstFrame.prototype.durNs = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * ToFirstFrame durMs.\n * @member {number} durMs\n * @memberof perfetto.protos.AndroidStartupMetric.ToFirstFrame\n * @instance\n */\n ToFirstFrame.prototype.durMs = 0;\n\n /**\n * ToFirstFrame mainThreadByTaskState.\n * @member {perfetto.protos.AndroidStartupMetric.ITaskStateBreakdown|null|undefined} mainThreadByTaskState\n * @memberof perfetto.protos.AndroidStartupMetric.ToFirstFrame\n * @instance\n */\n ToFirstFrame.prototype.mainThreadByTaskState = null;\n\n /**\n * ToFirstFrame mcyclesByCoreType.\n * @member {perfetto.protos.AndroidStartupMetric.IMcyclesByCoreType|null|undefined} mcyclesByCoreType\n * @memberof perfetto.protos.AndroidStartupMetric.ToFirstFrame\n * @instance\n */\n ToFirstFrame.prototype.mcyclesByCoreType = null;\n\n /**\n * ToFirstFrame otherProcessesSpawnedCount.\n * @member {number} otherProcessesSpawnedCount\n * @memberof perfetto.protos.AndroidStartupMetric.ToFirstFrame\n * @instance\n */\n ToFirstFrame.prototype.otherProcessesSpawnedCount = 0;\n\n /**\n * ToFirstFrame timeActivityManager.\n * @member {perfetto.protos.AndroidStartupMetric.ISlice|null|undefined} timeActivityManager\n * @memberof perfetto.protos.AndroidStartupMetric.ToFirstFrame\n * @instance\n */\n ToFirstFrame.prototype.timeActivityManager = null;\n\n /**\n * ToFirstFrame timeActivityThreadMain.\n * @member {perfetto.protos.AndroidStartupMetric.ISlice|null|undefined} timeActivityThreadMain\n * @memberof perfetto.protos.AndroidStartupMetric.ToFirstFrame\n * @instance\n */\n ToFirstFrame.prototype.timeActivityThreadMain = null;\n\n /**\n * ToFirstFrame timeBindApplication.\n * @member {perfetto.protos.AndroidStartupMetric.ISlice|null|undefined} timeBindApplication\n * @memberof perfetto.protos.AndroidStartupMetric.ToFirstFrame\n * @instance\n */\n ToFirstFrame.prototype.timeBindApplication = null;\n\n /**\n * ToFirstFrame timeActivityStart.\n * @member {perfetto.protos.AndroidStartupMetric.ISlice|null|undefined} timeActivityStart\n * @memberof perfetto.protos.AndroidStartupMetric.ToFirstFrame\n * @instance\n */\n ToFirstFrame.prototype.timeActivityStart = null;\n\n /**\n * ToFirstFrame timeActivityResume.\n * @member {perfetto.protos.AndroidStartupMetric.ISlice|null|undefined} timeActivityResume\n * @memberof perfetto.protos.AndroidStartupMetric.ToFirstFrame\n * @instance\n */\n ToFirstFrame.prototype.timeActivityResume = null;\n\n /**\n * ToFirstFrame timeActivityRestart.\n * @member {perfetto.protos.AndroidStartupMetric.ISlice|null|undefined} timeActivityRestart\n * @memberof perfetto.protos.AndroidStartupMetric.ToFirstFrame\n * @instance\n */\n ToFirstFrame.prototype.timeActivityRestart = null;\n\n /**\n * ToFirstFrame timeChoreographer.\n * @member {perfetto.protos.AndroidStartupMetric.ISlice|null|undefined} timeChoreographer\n * @memberof perfetto.protos.AndroidStartupMetric.ToFirstFrame\n * @instance\n */\n ToFirstFrame.prototype.timeChoreographer = null;\n\n /**\n * ToFirstFrame timeInflate.\n * @member {perfetto.protos.AndroidStartupMetric.ISlice|null|undefined} timeInflate\n * @memberof perfetto.protos.AndroidStartupMetric.ToFirstFrame\n * @instance\n */\n ToFirstFrame.prototype.timeInflate = null;\n\n /**\n * ToFirstFrame timeGetResources.\n * @member {perfetto.protos.AndroidStartupMetric.ISlice|null|undefined} timeGetResources\n * @memberof perfetto.protos.AndroidStartupMetric.ToFirstFrame\n * @instance\n */\n ToFirstFrame.prototype.timeGetResources = null;\n\n /**\n * ToFirstFrame timeBeforeStartProcess.\n * @member {perfetto.protos.AndroidStartupMetric.ISlice|null|undefined} timeBeforeStartProcess\n * @memberof perfetto.protos.AndroidStartupMetric.ToFirstFrame\n * @instance\n */\n ToFirstFrame.prototype.timeBeforeStartProcess = null;\n\n /**\n * ToFirstFrame timeDuringStartProcess.\n * @member {perfetto.protos.AndroidStartupMetric.ISlice|null|undefined} timeDuringStartProcess\n * @memberof perfetto.protos.AndroidStartupMetric.ToFirstFrame\n * @instance\n */\n ToFirstFrame.prototype.timeDuringStartProcess = null;\n\n /**\n * ToFirstFrame toPostFork.\n * @member {perfetto.protos.AndroidStartupMetric.ISlice|null|undefined} toPostFork\n * @memberof perfetto.protos.AndroidStartupMetric.ToFirstFrame\n * @instance\n */\n ToFirstFrame.prototype.toPostFork = null;\n\n /**\n * ToFirstFrame toActivityThreadMain.\n * @member {perfetto.protos.AndroidStartupMetric.ISlice|null|undefined} toActivityThreadMain\n * @memberof perfetto.protos.AndroidStartupMetric.ToFirstFrame\n * @instance\n */\n ToFirstFrame.prototype.toActivityThreadMain = null;\n\n /**\n * ToFirstFrame toBindApplication.\n * @member {perfetto.protos.AndroidStartupMetric.ISlice|null|undefined} toBindApplication\n * @memberof perfetto.protos.AndroidStartupMetric.ToFirstFrame\n * @instance\n */\n ToFirstFrame.prototype.toBindApplication = null;\n\n /**\n * ToFirstFrame timePostFork.\n * @member {perfetto.protos.AndroidStartupMetric.ISlice|null|undefined} timePostFork\n * @memberof perfetto.protos.AndroidStartupMetric.ToFirstFrame\n * @instance\n */\n ToFirstFrame.prototype.timePostFork = null;\n\n /**\n * ToFirstFrame timeDexOpen.\n * @member {perfetto.protos.AndroidStartupMetric.ISlice|null|undefined} timeDexOpen\n * @memberof perfetto.protos.AndroidStartupMetric.ToFirstFrame\n * @instance\n */\n ToFirstFrame.prototype.timeDexOpen = null;\n\n /**\n * ToFirstFrame timeVerifyClass.\n * @member {perfetto.protos.AndroidStartupMetric.ISlice|null|undefined} timeVerifyClass\n * @memberof perfetto.protos.AndroidStartupMetric.ToFirstFrame\n * @instance\n */\n ToFirstFrame.prototype.timeVerifyClass = null;\n\n /**\n * ToFirstFrame jitCompiledMethods.\n * @member {number} jitCompiledMethods\n * @memberof perfetto.protos.AndroidStartupMetric.ToFirstFrame\n * @instance\n */\n ToFirstFrame.prototype.jitCompiledMethods = 0;\n\n /**\n * ToFirstFrame timeJitThreadPoolOnCpu.\n * @member {perfetto.protos.AndroidStartupMetric.ISlice|null|undefined} timeJitThreadPoolOnCpu\n * @memberof perfetto.protos.AndroidStartupMetric.ToFirstFrame\n * @instance\n */\n ToFirstFrame.prototype.timeJitThreadPoolOnCpu = null;\n\n /**\n * ToFirstFrame timeGcTotal.\n * @member {perfetto.protos.AndroidStartupMetric.ISlice|null|undefined} timeGcTotal\n * @memberof perfetto.protos.AndroidStartupMetric.ToFirstFrame\n * @instance\n */\n ToFirstFrame.prototype.timeGcTotal = null;\n\n /**\n * ToFirstFrame timeGcOnCpu.\n * @member {perfetto.protos.AndroidStartupMetric.ISlice|null|undefined} timeGcOnCpu\n * @memberof perfetto.protos.AndroidStartupMetric.ToFirstFrame\n * @instance\n */\n ToFirstFrame.prototype.timeGcOnCpu = null;\n\n /**\n * Creates a new ToFirstFrame instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidStartupMetric.ToFirstFrame\n * @static\n * @param {perfetto.protos.AndroidStartupMetric.IToFirstFrame=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidStartupMetric.ToFirstFrame} ToFirstFrame instance\n */\n ToFirstFrame.create = function create(properties) {\n return new ToFirstFrame(properties);\n };\n\n /**\n * Encodes the specified ToFirstFrame message. Does not implicitly {@link perfetto.protos.AndroidStartupMetric.ToFirstFrame.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidStartupMetric.ToFirstFrame\n * @static\n * @param {perfetto.protos.AndroidStartupMetric.IToFirstFrame} message ToFirstFrame message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ToFirstFrame.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.durNs != null && Object.hasOwnProperty.call(message, \"durNs\"))\n writer.uint32(/* id 1, wireType 0 =*/8).int64(message.durNs);\n if (message.mainThreadByTaskState != null && Object.hasOwnProperty.call(message, \"mainThreadByTaskState\"))\n $root.perfetto.protos.AndroidStartupMetric.TaskStateBreakdown.encode(message.mainThreadByTaskState, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n if (message.otherProcessesSpawnedCount != null && Object.hasOwnProperty.call(message, \"otherProcessesSpawnedCount\"))\n writer.uint32(/* id 3, wireType 0 =*/24).uint32(message.otherProcessesSpawnedCount);\n if (message.timeActivityManager != null && Object.hasOwnProperty.call(message, \"timeActivityManager\"))\n $root.perfetto.protos.AndroidStartupMetric.Slice.encode(message.timeActivityManager, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim();\n if (message.timeActivityThreadMain != null && Object.hasOwnProperty.call(message, \"timeActivityThreadMain\"))\n $root.perfetto.protos.AndroidStartupMetric.Slice.encode(message.timeActivityThreadMain, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim();\n if (message.timeBindApplication != null && Object.hasOwnProperty.call(message, \"timeBindApplication\"))\n $root.perfetto.protos.AndroidStartupMetric.Slice.encode(message.timeBindApplication, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim();\n if (message.timeActivityStart != null && Object.hasOwnProperty.call(message, \"timeActivityStart\"))\n $root.perfetto.protos.AndroidStartupMetric.Slice.encode(message.timeActivityStart, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim();\n if (message.timeActivityResume != null && Object.hasOwnProperty.call(message, \"timeActivityResume\"))\n $root.perfetto.protos.AndroidStartupMetric.Slice.encode(message.timeActivityResume, writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim();\n if (message.timeChoreographer != null && Object.hasOwnProperty.call(message, \"timeChoreographer\"))\n $root.perfetto.protos.AndroidStartupMetric.Slice.encode(message.timeChoreographer, writer.uint32(/* id 9, wireType 2 =*/74).fork()).ldelim();\n if (message.timeBeforeStartProcess != null && Object.hasOwnProperty.call(message, \"timeBeforeStartProcess\"))\n $root.perfetto.protos.AndroidStartupMetric.Slice.encode(message.timeBeforeStartProcess, writer.uint32(/* id 10, wireType 2 =*/82).fork()).ldelim();\n if (message.timeDuringStartProcess != null && Object.hasOwnProperty.call(message, \"timeDuringStartProcess\"))\n $root.perfetto.protos.AndroidStartupMetric.Slice.encode(message.timeDuringStartProcess, writer.uint32(/* id 11, wireType 2 =*/90).fork()).ldelim();\n if (message.timePostFork != null && Object.hasOwnProperty.call(message, \"timePostFork\"))\n $root.perfetto.protos.AndroidStartupMetric.Slice.encode(message.timePostFork, writer.uint32(/* id 16, wireType 2 =*/130).fork()).ldelim();\n if (message.durMs != null && Object.hasOwnProperty.call(message, \"durMs\"))\n writer.uint32(/* id 17, wireType 1 =*/137).double(message.durMs);\n if (message.toPostFork != null && Object.hasOwnProperty.call(message, \"toPostFork\"))\n $root.perfetto.protos.AndroidStartupMetric.Slice.encode(message.toPostFork, writer.uint32(/* id 18, wireType 2 =*/146).fork()).ldelim();\n if (message.toActivityThreadMain != null && Object.hasOwnProperty.call(message, \"toActivityThreadMain\"))\n $root.perfetto.protos.AndroidStartupMetric.Slice.encode(message.toActivityThreadMain, writer.uint32(/* id 19, wireType 2 =*/154).fork()).ldelim();\n if (message.toBindApplication != null && Object.hasOwnProperty.call(message, \"toBindApplication\"))\n $root.perfetto.protos.AndroidStartupMetric.Slice.encode(message.toBindApplication, writer.uint32(/* id 20, wireType 2 =*/162).fork()).ldelim();\n if (message.timeActivityRestart != null && Object.hasOwnProperty.call(message, \"timeActivityRestart\"))\n $root.perfetto.protos.AndroidStartupMetric.Slice.encode(message.timeActivityRestart, writer.uint32(/* id 21, wireType 2 =*/170).fork()).ldelim();\n if (message.timeInflate != null && Object.hasOwnProperty.call(message, \"timeInflate\"))\n $root.perfetto.protos.AndroidStartupMetric.Slice.encode(message.timeInflate, writer.uint32(/* id 22, wireType 2 =*/178).fork()).ldelim();\n if (message.timeGetResources != null && Object.hasOwnProperty.call(message, \"timeGetResources\"))\n $root.perfetto.protos.AndroidStartupMetric.Slice.encode(message.timeGetResources, writer.uint32(/* id 23, wireType 2 =*/186).fork()).ldelim();\n if (message.timeDexOpen != null && Object.hasOwnProperty.call(message, \"timeDexOpen\"))\n $root.perfetto.protos.AndroidStartupMetric.Slice.encode(message.timeDexOpen, writer.uint32(/* id 24, wireType 2 =*/194).fork()).ldelim();\n if (message.timeVerifyClass != null && Object.hasOwnProperty.call(message, \"timeVerifyClass\"))\n $root.perfetto.protos.AndroidStartupMetric.Slice.encode(message.timeVerifyClass, writer.uint32(/* id 25, wireType 2 =*/202).fork()).ldelim();\n if (message.mcyclesByCoreType != null && Object.hasOwnProperty.call(message, \"mcyclesByCoreType\"))\n $root.perfetto.protos.AndroidStartupMetric.McyclesByCoreType.encode(message.mcyclesByCoreType, writer.uint32(/* id 26, wireType 2 =*/210).fork()).ldelim();\n if (message.jitCompiledMethods != null && Object.hasOwnProperty.call(message, \"jitCompiledMethods\"))\n writer.uint32(/* id 27, wireType 0 =*/216).uint32(message.jitCompiledMethods);\n if (message.timeJitThreadPoolOnCpu != null && Object.hasOwnProperty.call(message, \"timeJitThreadPoolOnCpu\"))\n $root.perfetto.protos.AndroidStartupMetric.Slice.encode(message.timeJitThreadPoolOnCpu, writer.uint32(/* id 28, wireType 2 =*/226).fork()).ldelim();\n if (message.timeGcTotal != null && Object.hasOwnProperty.call(message, \"timeGcTotal\"))\n $root.perfetto.protos.AndroidStartupMetric.Slice.encode(message.timeGcTotal, writer.uint32(/* id 29, wireType 2 =*/234).fork()).ldelim();\n if (message.timeGcOnCpu != null && Object.hasOwnProperty.call(message, \"timeGcOnCpu\"))\n $root.perfetto.protos.AndroidStartupMetric.Slice.encode(message.timeGcOnCpu, writer.uint32(/* id 30, wireType 2 =*/242).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified ToFirstFrame message, length delimited. Does not implicitly {@link perfetto.protos.AndroidStartupMetric.ToFirstFrame.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidStartupMetric.ToFirstFrame\n * @static\n * @param {perfetto.protos.AndroidStartupMetric.IToFirstFrame} message ToFirstFrame message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ToFirstFrame.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a ToFirstFrame message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidStartupMetric.ToFirstFrame\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidStartupMetric.ToFirstFrame} ToFirstFrame\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ToFirstFrame.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidStartupMetric.ToFirstFrame();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.durNs = reader.int64();\n break;\n case 17:\n message.durMs = reader.double();\n break;\n case 2:\n message.mainThreadByTaskState = $root.perfetto.protos.AndroidStartupMetric.TaskStateBreakdown.decode(reader, reader.uint32());\n break;\n case 26:\n message.mcyclesByCoreType = $root.perfetto.protos.AndroidStartupMetric.McyclesByCoreType.decode(reader, reader.uint32());\n break;\n case 3:\n message.otherProcessesSpawnedCount = reader.uint32();\n break;\n case 4:\n message.timeActivityManager = $root.perfetto.protos.AndroidStartupMetric.Slice.decode(reader, reader.uint32());\n break;\n case 5:\n message.timeActivityThreadMain = $root.perfetto.protos.AndroidStartupMetric.Slice.decode(reader, reader.uint32());\n break;\n case 6:\n message.timeBindApplication = $root.perfetto.protos.AndroidStartupMetric.Slice.decode(reader, reader.uint32());\n break;\n case 7:\n message.timeActivityStart = $root.perfetto.protos.AndroidStartupMetric.Slice.decode(reader, reader.uint32());\n break;\n case 8:\n message.timeActivityResume = $root.perfetto.protos.AndroidStartupMetric.Slice.decode(reader, reader.uint32());\n break;\n case 21:\n message.timeActivityRestart = $root.perfetto.protos.AndroidStartupMetric.Slice.decode(reader, reader.uint32());\n break;\n case 9:\n message.timeChoreographer = $root.perfetto.protos.AndroidStartupMetric.Slice.decode(reader, reader.uint32());\n break;\n case 22:\n message.timeInflate = $root.perfetto.protos.AndroidStartupMetric.Slice.decode(reader, reader.uint32());\n break;\n case 23:\n message.timeGetResources = $root.perfetto.protos.AndroidStartupMetric.Slice.decode(reader, reader.uint32());\n break;\n case 10:\n message.timeBeforeStartProcess = $root.perfetto.protos.AndroidStartupMetric.Slice.decode(reader, reader.uint32());\n break;\n case 11:\n message.timeDuringStartProcess = $root.perfetto.protos.AndroidStartupMetric.Slice.decode(reader, reader.uint32());\n break;\n case 18:\n message.toPostFork = $root.perfetto.protos.AndroidStartupMetric.Slice.decode(reader, reader.uint32());\n break;\n case 19:\n message.toActivityThreadMain = $root.perfetto.protos.AndroidStartupMetric.Slice.decode(reader, reader.uint32());\n break;\n case 20:\n message.toBindApplication = $root.perfetto.protos.AndroidStartupMetric.Slice.decode(reader, reader.uint32());\n break;\n case 16:\n message.timePostFork = $root.perfetto.protos.AndroidStartupMetric.Slice.decode(reader, reader.uint32());\n break;\n case 24:\n message.timeDexOpen = $root.perfetto.protos.AndroidStartupMetric.Slice.decode(reader, reader.uint32());\n break;\n case 25:\n message.timeVerifyClass = $root.perfetto.protos.AndroidStartupMetric.Slice.decode(reader, reader.uint32());\n break;\n case 27:\n message.jitCompiledMethods = reader.uint32();\n break;\n case 28:\n message.timeJitThreadPoolOnCpu = $root.perfetto.protos.AndroidStartupMetric.Slice.decode(reader, reader.uint32());\n break;\n case 29:\n message.timeGcTotal = $root.perfetto.protos.AndroidStartupMetric.Slice.decode(reader, reader.uint32());\n break;\n case 30:\n message.timeGcOnCpu = $root.perfetto.protos.AndroidStartupMetric.Slice.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a ToFirstFrame message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidStartupMetric.ToFirstFrame\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidStartupMetric.ToFirstFrame} ToFirstFrame\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ToFirstFrame.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a ToFirstFrame message.\n * @function verify\n * @memberof perfetto.protos.AndroidStartupMetric.ToFirstFrame\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n ToFirstFrame.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.durNs != null && message.hasOwnProperty(\"durNs\"))\n if (!$util.isInteger(message.durNs) && !(message.durNs && $util.isInteger(message.durNs.low) && $util.isInteger(message.durNs.high)))\n return \"durNs: integer|Long expected\";\n if (message.durMs != null && message.hasOwnProperty(\"durMs\"))\n if (typeof message.durMs !== \"number\")\n return \"durMs: number expected\";\n if (message.mainThreadByTaskState != null && message.hasOwnProperty(\"mainThreadByTaskState\")) {\n var error = $root.perfetto.protos.AndroidStartupMetric.TaskStateBreakdown.verify(message.mainThreadByTaskState);\n if (error)\n return \"mainThreadByTaskState.\" + error;\n }\n if (message.mcyclesByCoreType != null && message.hasOwnProperty(\"mcyclesByCoreType\")) {\n var error = $root.perfetto.protos.AndroidStartupMetric.McyclesByCoreType.verify(message.mcyclesByCoreType);\n if (error)\n return \"mcyclesByCoreType.\" + error;\n }\n if (message.otherProcessesSpawnedCount != null && message.hasOwnProperty(\"otherProcessesSpawnedCount\"))\n if (!$util.isInteger(message.otherProcessesSpawnedCount))\n return \"otherProcessesSpawnedCount: integer expected\";\n if (message.timeActivityManager != null && message.hasOwnProperty(\"timeActivityManager\")) {\n var error = $root.perfetto.protos.AndroidStartupMetric.Slice.verify(message.timeActivityManager);\n if (error)\n return \"timeActivityManager.\" + error;\n }\n if (message.timeActivityThreadMain != null && message.hasOwnProperty(\"timeActivityThreadMain\")) {\n var error = $root.perfetto.protos.AndroidStartupMetric.Slice.verify(message.timeActivityThreadMain);\n if (error)\n return \"timeActivityThreadMain.\" + error;\n }\n if (message.timeBindApplication != null && message.hasOwnProperty(\"timeBindApplication\")) {\n var error = $root.perfetto.protos.AndroidStartupMetric.Slice.verify(message.timeBindApplication);\n if (error)\n return \"timeBindApplication.\" + error;\n }\n if (message.timeActivityStart != null && message.hasOwnProperty(\"timeActivityStart\")) {\n var error = $root.perfetto.protos.AndroidStartupMetric.Slice.verify(message.timeActivityStart);\n if (error)\n return \"timeActivityStart.\" + error;\n }\n if (message.timeActivityResume != null && message.hasOwnProperty(\"timeActivityResume\")) {\n var error = $root.perfetto.protos.AndroidStartupMetric.Slice.verify(message.timeActivityResume);\n if (error)\n return \"timeActivityResume.\" + error;\n }\n if (message.timeActivityRestart != null && message.hasOwnProperty(\"timeActivityRestart\")) {\n var error = $root.perfetto.protos.AndroidStartupMetric.Slice.verify(message.timeActivityRestart);\n if (error)\n return \"timeActivityRestart.\" + error;\n }\n if (message.timeChoreographer != null && message.hasOwnProperty(\"timeChoreographer\")) {\n var error = $root.perfetto.protos.AndroidStartupMetric.Slice.verify(message.timeChoreographer);\n if (error)\n return \"timeChoreographer.\" + error;\n }\n if (message.timeInflate != null && message.hasOwnProperty(\"timeInflate\")) {\n var error = $root.perfetto.protos.AndroidStartupMetric.Slice.verify(message.timeInflate);\n if (error)\n return \"timeInflate.\" + error;\n }\n if (message.timeGetResources != null && message.hasOwnProperty(\"timeGetResources\")) {\n var error = $root.perfetto.protos.AndroidStartupMetric.Slice.verify(message.timeGetResources);\n if (error)\n return \"timeGetResources.\" + error;\n }\n if (message.timeBeforeStartProcess != null && message.hasOwnProperty(\"timeBeforeStartProcess\")) {\n var error = $root.perfetto.protos.AndroidStartupMetric.Slice.verify(message.timeBeforeStartProcess);\n if (error)\n return \"timeBeforeStartProcess.\" + error;\n }\n if (message.timeDuringStartProcess != null && message.hasOwnProperty(\"timeDuringStartProcess\")) {\n var error = $root.perfetto.protos.AndroidStartupMetric.Slice.verify(message.timeDuringStartProcess);\n if (error)\n return \"timeDuringStartProcess.\" + error;\n }\n if (message.toPostFork != null && message.hasOwnProperty(\"toPostFork\")) {\n var error = $root.perfetto.protos.AndroidStartupMetric.Slice.verify(message.toPostFork);\n if (error)\n return \"toPostFork.\" + error;\n }\n if (message.toActivityThreadMain != null && message.hasOwnProperty(\"toActivityThreadMain\")) {\n var error = $root.perfetto.protos.AndroidStartupMetric.Slice.verify(message.toActivityThreadMain);\n if (error)\n return \"toActivityThreadMain.\" + error;\n }\n if (message.toBindApplication != null && message.hasOwnProperty(\"toBindApplication\")) {\n var error = $root.perfetto.protos.AndroidStartupMetric.Slice.verify(message.toBindApplication);\n if (error)\n return \"toBindApplication.\" + error;\n }\n if (message.timePostFork != null && message.hasOwnProperty(\"timePostFork\")) {\n var error = $root.perfetto.protos.AndroidStartupMetric.Slice.verify(message.timePostFork);\n if (error)\n return \"timePostFork.\" + error;\n }\n if (message.timeDexOpen != null && message.hasOwnProperty(\"timeDexOpen\")) {\n var error = $root.perfetto.protos.AndroidStartupMetric.Slice.verify(message.timeDexOpen);\n if (error)\n return \"timeDexOpen.\" + error;\n }\n if (message.timeVerifyClass != null && message.hasOwnProperty(\"timeVerifyClass\")) {\n var error = $root.perfetto.protos.AndroidStartupMetric.Slice.verify(message.timeVerifyClass);\n if (error)\n return \"timeVerifyClass.\" + error;\n }\n if (message.jitCompiledMethods != null && message.hasOwnProperty(\"jitCompiledMethods\"))\n if (!$util.isInteger(message.jitCompiledMethods))\n return \"jitCompiledMethods: integer expected\";\n if (message.timeJitThreadPoolOnCpu != null && message.hasOwnProperty(\"timeJitThreadPoolOnCpu\")) {\n var error = $root.perfetto.protos.AndroidStartupMetric.Slice.verify(message.timeJitThreadPoolOnCpu);\n if (error)\n return \"timeJitThreadPoolOnCpu.\" + error;\n }\n if (message.timeGcTotal != null && message.hasOwnProperty(\"timeGcTotal\")) {\n var error = $root.perfetto.protos.AndroidStartupMetric.Slice.verify(message.timeGcTotal);\n if (error)\n return \"timeGcTotal.\" + error;\n }\n if (message.timeGcOnCpu != null && message.hasOwnProperty(\"timeGcOnCpu\")) {\n var error = $root.perfetto.protos.AndroidStartupMetric.Slice.verify(message.timeGcOnCpu);\n if (error)\n return \"timeGcOnCpu.\" + error;\n }\n return null;\n };\n\n /**\n * Creates a ToFirstFrame message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidStartupMetric.ToFirstFrame\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidStartupMetric.ToFirstFrame} ToFirstFrame\n */\n ToFirstFrame.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidStartupMetric.ToFirstFrame)\n return object;\n var message = new $root.perfetto.protos.AndroidStartupMetric.ToFirstFrame();\n if (object.durNs != null)\n if ($util.Long)\n (message.durNs = $util.Long.fromValue(object.durNs)).unsigned = false;\n else if (typeof object.durNs === \"string\")\n message.durNs = parseInt(object.durNs, 10);\n else if (typeof object.durNs === \"number\")\n message.durNs = object.durNs;\n else if (typeof object.durNs === \"object\")\n message.durNs = new $util.LongBits(object.durNs.low >>> 0, object.durNs.high >>> 0).toNumber();\n if (object.durMs != null)\n message.durMs = Number(object.durMs);\n if (object.mainThreadByTaskState != null) {\n if (typeof object.mainThreadByTaskState !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidStartupMetric.ToFirstFrame.mainThreadByTaskState: object expected\");\n message.mainThreadByTaskState = $root.perfetto.protos.AndroidStartupMetric.TaskStateBreakdown.fromObject(object.mainThreadByTaskState);\n }\n if (object.mcyclesByCoreType != null) {\n if (typeof object.mcyclesByCoreType !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidStartupMetric.ToFirstFrame.mcyclesByCoreType: object expected\");\n message.mcyclesByCoreType = $root.perfetto.protos.AndroidStartupMetric.McyclesByCoreType.fromObject(object.mcyclesByCoreType);\n }\n if (object.otherProcessesSpawnedCount != null)\n message.otherProcessesSpawnedCount = object.otherProcessesSpawnedCount >>> 0;\n if (object.timeActivityManager != null) {\n if (typeof object.timeActivityManager !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidStartupMetric.ToFirstFrame.timeActivityManager: object expected\");\n message.timeActivityManager = $root.perfetto.protos.AndroidStartupMetric.Slice.fromObject(object.timeActivityManager);\n }\n if (object.timeActivityThreadMain != null) {\n if (typeof object.timeActivityThreadMain !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidStartupMetric.ToFirstFrame.timeActivityThreadMain: object expected\");\n message.timeActivityThreadMain = $root.perfetto.protos.AndroidStartupMetric.Slice.fromObject(object.timeActivityThreadMain);\n }\n if (object.timeBindApplication != null) {\n if (typeof object.timeBindApplication !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidStartupMetric.ToFirstFrame.timeBindApplication: object expected\");\n message.timeBindApplication = $root.perfetto.protos.AndroidStartupMetric.Slice.fromObject(object.timeBindApplication);\n }\n if (object.timeActivityStart != null) {\n if (typeof object.timeActivityStart !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidStartupMetric.ToFirstFrame.timeActivityStart: object expected\");\n message.timeActivityStart = $root.perfetto.protos.AndroidStartupMetric.Slice.fromObject(object.timeActivityStart);\n }\n if (object.timeActivityResume != null) {\n if (typeof object.timeActivityResume !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidStartupMetric.ToFirstFrame.timeActivityResume: object expected\");\n message.timeActivityResume = $root.perfetto.protos.AndroidStartupMetric.Slice.fromObject(object.timeActivityResume);\n }\n if (object.timeActivityRestart != null) {\n if (typeof object.timeActivityRestart !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidStartupMetric.ToFirstFrame.timeActivityRestart: object expected\");\n message.timeActivityRestart = $root.perfetto.protos.AndroidStartupMetric.Slice.fromObject(object.timeActivityRestart);\n }\n if (object.timeChoreographer != null) {\n if (typeof object.timeChoreographer !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidStartupMetric.ToFirstFrame.timeChoreographer: object expected\");\n message.timeChoreographer = $root.perfetto.protos.AndroidStartupMetric.Slice.fromObject(object.timeChoreographer);\n }\n if (object.timeInflate != null) {\n if (typeof object.timeInflate !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidStartupMetric.ToFirstFrame.timeInflate: object expected\");\n message.timeInflate = $root.perfetto.protos.AndroidStartupMetric.Slice.fromObject(object.timeInflate);\n }\n if (object.timeGetResources != null) {\n if (typeof object.timeGetResources !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidStartupMetric.ToFirstFrame.timeGetResources: object expected\");\n message.timeGetResources = $root.perfetto.protos.AndroidStartupMetric.Slice.fromObject(object.timeGetResources);\n }\n if (object.timeBeforeStartProcess != null) {\n if (typeof object.timeBeforeStartProcess !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidStartupMetric.ToFirstFrame.timeBeforeStartProcess: object expected\");\n message.timeBeforeStartProcess = $root.perfetto.protos.AndroidStartupMetric.Slice.fromObject(object.timeBeforeStartProcess);\n }\n if (object.timeDuringStartProcess != null) {\n if (typeof object.timeDuringStartProcess !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidStartupMetric.ToFirstFrame.timeDuringStartProcess: object expected\");\n message.timeDuringStartProcess = $root.perfetto.protos.AndroidStartupMetric.Slice.fromObject(object.timeDuringStartProcess);\n }\n if (object.toPostFork != null) {\n if (typeof object.toPostFork !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidStartupMetric.ToFirstFrame.toPostFork: object expected\");\n message.toPostFork = $root.perfetto.protos.AndroidStartupMetric.Slice.fromObject(object.toPostFork);\n }\n if (object.toActivityThreadMain != null) {\n if (typeof object.toActivityThreadMain !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidStartupMetric.ToFirstFrame.toActivityThreadMain: object expected\");\n message.toActivityThreadMain = $root.perfetto.protos.AndroidStartupMetric.Slice.fromObject(object.toActivityThreadMain);\n }\n if (object.toBindApplication != null) {\n if (typeof object.toBindApplication !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidStartupMetric.ToFirstFrame.toBindApplication: object expected\");\n message.toBindApplication = $root.perfetto.protos.AndroidStartupMetric.Slice.fromObject(object.toBindApplication);\n }\n if (object.timePostFork != null) {\n if (typeof object.timePostFork !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidStartupMetric.ToFirstFrame.timePostFork: object expected\");\n message.timePostFork = $root.perfetto.protos.AndroidStartupMetric.Slice.fromObject(object.timePostFork);\n }\n if (object.timeDexOpen != null) {\n if (typeof object.timeDexOpen !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidStartupMetric.ToFirstFrame.timeDexOpen: object expected\");\n message.timeDexOpen = $root.perfetto.protos.AndroidStartupMetric.Slice.fromObject(object.timeDexOpen);\n }\n if (object.timeVerifyClass != null) {\n if (typeof object.timeVerifyClass !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidStartupMetric.ToFirstFrame.timeVerifyClass: object expected\");\n message.timeVerifyClass = $root.perfetto.protos.AndroidStartupMetric.Slice.fromObject(object.timeVerifyClass);\n }\n if (object.jitCompiledMethods != null)\n message.jitCompiledMethods = object.jitCompiledMethods >>> 0;\n if (object.timeJitThreadPoolOnCpu != null) {\n if (typeof object.timeJitThreadPoolOnCpu !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidStartupMetric.ToFirstFrame.timeJitThreadPoolOnCpu: object expected\");\n message.timeJitThreadPoolOnCpu = $root.perfetto.protos.AndroidStartupMetric.Slice.fromObject(object.timeJitThreadPoolOnCpu);\n }\n if (object.timeGcTotal != null) {\n if (typeof object.timeGcTotal !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidStartupMetric.ToFirstFrame.timeGcTotal: object expected\");\n message.timeGcTotal = $root.perfetto.protos.AndroidStartupMetric.Slice.fromObject(object.timeGcTotal);\n }\n if (object.timeGcOnCpu != null) {\n if (typeof object.timeGcOnCpu !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidStartupMetric.ToFirstFrame.timeGcOnCpu: object expected\");\n message.timeGcOnCpu = $root.perfetto.protos.AndroidStartupMetric.Slice.fromObject(object.timeGcOnCpu);\n }\n return message;\n };\n\n /**\n * Creates a plain object from a ToFirstFrame message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidStartupMetric.ToFirstFrame\n * @static\n * @param {perfetto.protos.AndroidStartupMetric.ToFirstFrame} message ToFirstFrame\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n ToFirstFrame.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.durNs = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.durNs = options.longs === String ? \"0\" : 0;\n object.mainThreadByTaskState = null;\n object.otherProcessesSpawnedCount = 0;\n object.timeActivityManager = null;\n object.timeActivityThreadMain = null;\n object.timeBindApplication = null;\n object.timeActivityStart = null;\n object.timeActivityResume = null;\n object.timeChoreographer = null;\n object.timeBeforeStartProcess = null;\n object.timeDuringStartProcess = null;\n object.timePostFork = null;\n object.durMs = 0;\n object.toPostFork = null;\n object.toActivityThreadMain = null;\n object.toBindApplication = null;\n object.timeActivityRestart = null;\n object.timeInflate = null;\n object.timeGetResources = null;\n object.timeDexOpen = null;\n object.timeVerifyClass = null;\n object.mcyclesByCoreType = null;\n object.jitCompiledMethods = 0;\n object.timeJitThreadPoolOnCpu = null;\n object.timeGcTotal = null;\n object.timeGcOnCpu = null;\n }\n if (message.durNs != null && message.hasOwnProperty(\"durNs\"))\n if (typeof message.durNs === \"number\")\n object.durNs = options.longs === String ? String(message.durNs) : message.durNs;\n else\n object.durNs = options.longs === String ? $util.Long.prototype.toString.call(message.durNs) : options.longs === Number ? new $util.LongBits(message.durNs.low >>> 0, message.durNs.high >>> 0).toNumber() : message.durNs;\n if (message.mainThreadByTaskState != null && message.hasOwnProperty(\"mainThreadByTaskState\"))\n object.mainThreadByTaskState = $root.perfetto.protos.AndroidStartupMetric.TaskStateBreakdown.toObject(message.mainThreadByTaskState, options);\n if (message.otherProcessesSpawnedCount != null && message.hasOwnProperty(\"otherProcessesSpawnedCount\"))\n object.otherProcessesSpawnedCount = message.otherProcessesSpawnedCount;\n if (message.timeActivityManager != null && message.hasOwnProperty(\"timeActivityManager\"))\n object.timeActivityManager = $root.perfetto.protos.AndroidStartupMetric.Slice.toObject(message.timeActivityManager, options);\n if (message.timeActivityThreadMain != null && message.hasOwnProperty(\"timeActivityThreadMain\"))\n object.timeActivityThreadMain = $root.perfetto.protos.AndroidStartupMetric.Slice.toObject(message.timeActivityThreadMain, options);\n if (message.timeBindApplication != null && message.hasOwnProperty(\"timeBindApplication\"))\n object.timeBindApplication = $root.perfetto.protos.AndroidStartupMetric.Slice.toObject(message.timeBindApplication, options);\n if (message.timeActivityStart != null && message.hasOwnProperty(\"timeActivityStart\"))\n object.timeActivityStart = $root.perfetto.protos.AndroidStartupMetric.Slice.toObject(message.timeActivityStart, options);\n if (message.timeActivityResume != null && message.hasOwnProperty(\"timeActivityResume\"))\n object.timeActivityResume = $root.perfetto.protos.AndroidStartupMetric.Slice.toObject(message.timeActivityResume, options);\n if (message.timeChoreographer != null && message.hasOwnProperty(\"timeChoreographer\"))\n object.timeChoreographer = $root.perfetto.protos.AndroidStartupMetric.Slice.toObject(message.timeChoreographer, options);\n if (message.timeBeforeStartProcess != null && message.hasOwnProperty(\"timeBeforeStartProcess\"))\n object.timeBeforeStartProcess = $root.perfetto.protos.AndroidStartupMetric.Slice.toObject(message.timeBeforeStartProcess, options);\n if (message.timeDuringStartProcess != null && message.hasOwnProperty(\"timeDuringStartProcess\"))\n object.timeDuringStartProcess = $root.perfetto.protos.AndroidStartupMetric.Slice.toObject(message.timeDuringStartProcess, options);\n if (message.timePostFork != null && message.hasOwnProperty(\"timePostFork\"))\n object.timePostFork = $root.perfetto.protos.AndroidStartupMetric.Slice.toObject(message.timePostFork, options);\n if (message.durMs != null && message.hasOwnProperty(\"durMs\"))\n object.durMs = options.json && !isFinite(message.durMs) ? String(message.durMs) : message.durMs;\n if (message.toPostFork != null && message.hasOwnProperty(\"toPostFork\"))\n object.toPostFork = $root.perfetto.protos.AndroidStartupMetric.Slice.toObject(message.toPostFork, options);\n if (message.toActivityThreadMain != null && message.hasOwnProperty(\"toActivityThreadMain\"))\n object.toActivityThreadMain = $root.perfetto.protos.AndroidStartupMetric.Slice.toObject(message.toActivityThreadMain, options);\n if (message.toBindApplication != null && message.hasOwnProperty(\"toBindApplication\"))\n object.toBindApplication = $root.perfetto.protos.AndroidStartupMetric.Slice.toObject(message.toBindApplication, options);\n if (message.timeActivityRestart != null && message.hasOwnProperty(\"timeActivityRestart\"))\n object.timeActivityRestart = $root.perfetto.protos.AndroidStartupMetric.Slice.toObject(message.timeActivityRestart, options);\n if (message.timeInflate != null && message.hasOwnProperty(\"timeInflate\"))\n object.timeInflate = $root.perfetto.protos.AndroidStartupMetric.Slice.toObject(message.timeInflate, options);\n if (message.timeGetResources != null && message.hasOwnProperty(\"timeGetResources\"))\n object.timeGetResources = $root.perfetto.protos.AndroidStartupMetric.Slice.toObject(message.timeGetResources, options);\n if (message.timeDexOpen != null && message.hasOwnProperty(\"timeDexOpen\"))\n object.timeDexOpen = $root.perfetto.protos.AndroidStartupMetric.Slice.toObject(message.timeDexOpen, options);\n if (message.timeVerifyClass != null && message.hasOwnProperty(\"timeVerifyClass\"))\n object.timeVerifyClass = $root.perfetto.protos.AndroidStartupMetric.Slice.toObject(message.timeVerifyClass, options);\n if (message.mcyclesByCoreType != null && message.hasOwnProperty(\"mcyclesByCoreType\"))\n object.mcyclesByCoreType = $root.perfetto.protos.AndroidStartupMetric.McyclesByCoreType.toObject(message.mcyclesByCoreType, options);\n if (message.jitCompiledMethods != null && message.hasOwnProperty(\"jitCompiledMethods\"))\n object.jitCompiledMethods = message.jitCompiledMethods;\n if (message.timeJitThreadPoolOnCpu != null && message.hasOwnProperty(\"timeJitThreadPoolOnCpu\"))\n object.timeJitThreadPoolOnCpu = $root.perfetto.protos.AndroidStartupMetric.Slice.toObject(message.timeJitThreadPoolOnCpu, options);\n if (message.timeGcTotal != null && message.hasOwnProperty(\"timeGcTotal\"))\n object.timeGcTotal = $root.perfetto.protos.AndroidStartupMetric.Slice.toObject(message.timeGcTotal, options);\n if (message.timeGcOnCpu != null && message.hasOwnProperty(\"timeGcOnCpu\"))\n object.timeGcOnCpu = $root.perfetto.protos.AndroidStartupMetric.Slice.toObject(message.timeGcOnCpu, options);\n return object;\n };\n\n /**\n * Converts this ToFirstFrame to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidStartupMetric.ToFirstFrame\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n ToFirstFrame.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return ToFirstFrame;\n })();\n\n AndroidStartupMetric.HscMetrics = (function() {\n\n /**\n * Properties of a HscMetrics.\n * @memberof perfetto.protos.AndroidStartupMetric\n * @interface IHscMetrics\n * @property {perfetto.protos.AndroidStartupMetric.ISlice|null} [fullStartup] HscMetrics fullStartup\n */\n\n /**\n * Constructs a new HscMetrics.\n * @memberof perfetto.protos.AndroidStartupMetric\n * @classdesc Represents a HscMetrics.\n * @implements IHscMetrics\n * @constructor\n * @param {perfetto.protos.AndroidStartupMetric.IHscMetrics=} [properties] Properties to set\n */\n function HscMetrics(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * HscMetrics fullStartup.\n * @member {perfetto.protos.AndroidStartupMetric.ISlice|null|undefined} fullStartup\n * @memberof perfetto.protos.AndroidStartupMetric.HscMetrics\n * @instance\n */\n HscMetrics.prototype.fullStartup = null;\n\n /**\n * Creates a new HscMetrics instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidStartupMetric.HscMetrics\n * @static\n * @param {perfetto.protos.AndroidStartupMetric.IHscMetrics=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidStartupMetric.HscMetrics} HscMetrics instance\n */\n HscMetrics.create = function create(properties) {\n return new HscMetrics(properties);\n };\n\n /**\n * Encodes the specified HscMetrics message. Does not implicitly {@link perfetto.protos.AndroidStartupMetric.HscMetrics.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidStartupMetric.HscMetrics\n * @static\n * @param {perfetto.protos.AndroidStartupMetric.IHscMetrics} message HscMetrics message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n HscMetrics.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.fullStartup != null && Object.hasOwnProperty.call(message, \"fullStartup\"))\n $root.perfetto.protos.AndroidStartupMetric.Slice.encode(message.fullStartup, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified HscMetrics message, length delimited. Does not implicitly {@link perfetto.protos.AndroidStartupMetric.HscMetrics.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidStartupMetric.HscMetrics\n * @static\n * @param {perfetto.protos.AndroidStartupMetric.IHscMetrics} message HscMetrics message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n HscMetrics.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a HscMetrics message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidStartupMetric.HscMetrics\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidStartupMetric.HscMetrics} HscMetrics\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n HscMetrics.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidStartupMetric.HscMetrics();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.fullStartup = $root.perfetto.protos.AndroidStartupMetric.Slice.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a HscMetrics message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidStartupMetric.HscMetrics\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidStartupMetric.HscMetrics} HscMetrics\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n HscMetrics.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a HscMetrics message.\n * @function verify\n * @memberof perfetto.protos.AndroidStartupMetric.HscMetrics\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n HscMetrics.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.fullStartup != null && message.hasOwnProperty(\"fullStartup\")) {\n var error = $root.perfetto.protos.AndroidStartupMetric.Slice.verify(message.fullStartup);\n if (error)\n return \"fullStartup.\" + error;\n }\n return null;\n };\n\n /**\n * Creates a HscMetrics message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidStartupMetric.HscMetrics\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidStartupMetric.HscMetrics} HscMetrics\n */\n HscMetrics.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidStartupMetric.HscMetrics)\n return object;\n var message = new $root.perfetto.protos.AndroidStartupMetric.HscMetrics();\n if (object.fullStartup != null) {\n if (typeof object.fullStartup !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidStartupMetric.HscMetrics.fullStartup: object expected\");\n message.fullStartup = $root.perfetto.protos.AndroidStartupMetric.Slice.fromObject(object.fullStartup);\n }\n return message;\n };\n\n /**\n * Creates a plain object from a HscMetrics message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidStartupMetric.HscMetrics\n * @static\n * @param {perfetto.protos.AndroidStartupMetric.HscMetrics} message HscMetrics\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n HscMetrics.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults)\n object.fullStartup = null;\n if (message.fullStartup != null && message.hasOwnProperty(\"fullStartup\"))\n object.fullStartup = $root.perfetto.protos.AndroidStartupMetric.Slice.toObject(message.fullStartup, options);\n return object;\n };\n\n /**\n * Converts this HscMetrics to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidStartupMetric.HscMetrics\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n HscMetrics.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return HscMetrics;\n })();\n\n AndroidStartupMetric.Activity = (function() {\n\n /**\n * Properties of an Activity.\n * @memberof perfetto.protos.AndroidStartupMetric\n * @interface IActivity\n * @property {string|null} [name] Activity name\n * @property {string|null} [method] Activity method\n * @property {number|null} [tsMethodStart] Activity tsMethodStart\n */\n\n /**\n * Constructs a new Activity.\n * @memberof perfetto.protos.AndroidStartupMetric\n * @classdesc Represents an Activity.\n * @implements IActivity\n * @constructor\n * @param {perfetto.protos.AndroidStartupMetric.IActivity=} [properties] Properties to set\n */\n function Activity(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * Activity name.\n * @member {string} name\n * @memberof perfetto.protos.AndroidStartupMetric.Activity\n * @instance\n */\n Activity.prototype.name = \"\";\n\n /**\n * Activity method.\n * @member {string} method\n * @memberof perfetto.protos.AndroidStartupMetric.Activity\n * @instance\n */\n Activity.prototype.method = \"\";\n\n /**\n * Activity tsMethodStart.\n * @member {number} tsMethodStart\n * @memberof perfetto.protos.AndroidStartupMetric.Activity\n * @instance\n */\n Activity.prototype.tsMethodStart = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * Creates a new Activity instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidStartupMetric.Activity\n * @static\n * @param {perfetto.protos.AndroidStartupMetric.IActivity=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidStartupMetric.Activity} Activity instance\n */\n Activity.create = function create(properties) {\n return new Activity(properties);\n };\n\n /**\n * Encodes the specified Activity message. Does not implicitly {@link perfetto.protos.AndroidStartupMetric.Activity.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidStartupMetric.Activity\n * @static\n * @param {perfetto.protos.AndroidStartupMetric.IActivity} message Activity message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Activity.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.name != null && Object.hasOwnProperty.call(message, \"name\"))\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.name);\n if (message.method != null && Object.hasOwnProperty.call(message, \"method\"))\n writer.uint32(/* id 2, wireType 2 =*/18).string(message.method);\n if (message.tsMethodStart != null && Object.hasOwnProperty.call(message, \"tsMethodStart\"))\n writer.uint32(/* id 4, wireType 0 =*/32).int64(message.tsMethodStart);\n return writer;\n };\n\n /**\n * Encodes the specified Activity message, length delimited. Does not implicitly {@link perfetto.protos.AndroidStartupMetric.Activity.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidStartupMetric.Activity\n * @static\n * @param {perfetto.protos.AndroidStartupMetric.IActivity} message Activity message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Activity.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes an Activity message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidStartupMetric.Activity\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidStartupMetric.Activity} Activity\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Activity.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidStartupMetric.Activity();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.name = reader.string();\n break;\n case 2:\n message.method = reader.string();\n break;\n case 4:\n message.tsMethodStart = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes an Activity message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidStartupMetric.Activity\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidStartupMetric.Activity} Activity\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Activity.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies an Activity message.\n * @function verify\n * @memberof perfetto.protos.AndroidStartupMetric.Activity\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n Activity.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.name != null && message.hasOwnProperty(\"name\"))\n if (!$util.isString(message.name))\n return \"name: string expected\";\n if (message.method != null && message.hasOwnProperty(\"method\"))\n if (!$util.isString(message.method))\n return \"method: string expected\";\n if (message.tsMethodStart != null && message.hasOwnProperty(\"tsMethodStart\"))\n if (!$util.isInteger(message.tsMethodStart) && !(message.tsMethodStart && $util.isInteger(message.tsMethodStart.low) && $util.isInteger(message.tsMethodStart.high)))\n return \"tsMethodStart: integer|Long expected\";\n return null;\n };\n\n /**\n * Creates an Activity message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidStartupMetric.Activity\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidStartupMetric.Activity} Activity\n */\n Activity.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidStartupMetric.Activity)\n return object;\n var message = new $root.perfetto.protos.AndroidStartupMetric.Activity();\n if (object.name != null)\n message.name = String(object.name);\n if (object.method != null)\n message.method = String(object.method);\n if (object.tsMethodStart != null)\n if ($util.Long)\n (message.tsMethodStart = $util.Long.fromValue(object.tsMethodStart)).unsigned = false;\n else if (typeof object.tsMethodStart === \"string\")\n message.tsMethodStart = parseInt(object.tsMethodStart, 10);\n else if (typeof object.tsMethodStart === \"number\")\n message.tsMethodStart = object.tsMethodStart;\n else if (typeof object.tsMethodStart === \"object\")\n message.tsMethodStart = new $util.LongBits(object.tsMethodStart.low >>> 0, object.tsMethodStart.high >>> 0).toNumber();\n return message;\n };\n\n /**\n * Creates a plain object from an Activity message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidStartupMetric.Activity\n * @static\n * @param {perfetto.protos.AndroidStartupMetric.Activity} message Activity\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n Activity.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.name = \"\";\n object.method = \"\";\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.tsMethodStart = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.tsMethodStart = options.longs === String ? \"0\" : 0;\n }\n if (message.name != null && message.hasOwnProperty(\"name\"))\n object.name = message.name;\n if (message.method != null && message.hasOwnProperty(\"method\"))\n object.method = message.method;\n if (message.tsMethodStart != null && message.hasOwnProperty(\"tsMethodStart\"))\n if (typeof message.tsMethodStart === \"number\")\n object.tsMethodStart = options.longs === String ? String(message.tsMethodStart) : message.tsMethodStart;\n else\n object.tsMethodStart = options.longs === String ? $util.Long.prototype.toString.call(message.tsMethodStart) : options.longs === Number ? new $util.LongBits(message.tsMethodStart.low >>> 0, message.tsMethodStart.high >>> 0).toNumber() : message.tsMethodStart;\n return object;\n };\n\n /**\n * Converts this Activity to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidStartupMetric.Activity\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n Activity.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return Activity;\n })();\n\n AndroidStartupMetric.BinderTransaction = (function() {\n\n /**\n * Properties of a BinderTransaction.\n * @memberof perfetto.protos.AndroidStartupMetric\n * @interface IBinderTransaction\n * @property {perfetto.protos.AndroidStartupMetric.ISlice|null} [duration] BinderTransaction duration\n * @property {string|null} [thread] BinderTransaction thread\n * @property {string|null} [destinationThread] BinderTransaction destinationThread\n * @property {string|null} [destinationProcess] BinderTransaction destinationProcess\n * @property {string|null} [flags] BinderTransaction flags\n * @property {string|null} [code] BinderTransaction code\n * @property {number|null} [dataSize] BinderTransaction dataSize\n */\n\n /**\n * Constructs a new BinderTransaction.\n * @memberof perfetto.protos.AndroidStartupMetric\n * @classdesc Represents a BinderTransaction.\n * @implements IBinderTransaction\n * @constructor\n * @param {perfetto.protos.AndroidStartupMetric.IBinderTransaction=} [properties] Properties to set\n */\n function BinderTransaction(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * BinderTransaction duration.\n * @member {perfetto.protos.AndroidStartupMetric.ISlice|null|undefined} duration\n * @memberof perfetto.protos.AndroidStartupMetric.BinderTransaction\n * @instance\n */\n BinderTransaction.prototype.duration = null;\n\n /**\n * BinderTransaction thread.\n * @member {string} thread\n * @memberof perfetto.protos.AndroidStartupMetric.BinderTransaction\n * @instance\n */\n BinderTransaction.prototype.thread = \"\";\n\n /**\n * BinderTransaction destinationThread.\n * @member {string} destinationThread\n * @memberof perfetto.protos.AndroidStartupMetric.BinderTransaction\n * @instance\n */\n BinderTransaction.prototype.destinationThread = \"\";\n\n /**\n * BinderTransaction destinationProcess.\n * @member {string} destinationProcess\n * @memberof perfetto.protos.AndroidStartupMetric.BinderTransaction\n * @instance\n */\n BinderTransaction.prototype.destinationProcess = \"\";\n\n /**\n * BinderTransaction flags.\n * @member {string} flags\n * @memberof perfetto.protos.AndroidStartupMetric.BinderTransaction\n * @instance\n */\n BinderTransaction.prototype.flags = \"\";\n\n /**\n * BinderTransaction code.\n * @member {string} code\n * @memberof perfetto.protos.AndroidStartupMetric.BinderTransaction\n * @instance\n */\n BinderTransaction.prototype.code = \"\";\n\n /**\n * BinderTransaction dataSize.\n * @member {number} dataSize\n * @memberof perfetto.protos.AndroidStartupMetric.BinderTransaction\n * @instance\n */\n BinderTransaction.prototype.dataSize = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * Creates a new BinderTransaction instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidStartupMetric.BinderTransaction\n * @static\n * @param {perfetto.protos.AndroidStartupMetric.IBinderTransaction=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidStartupMetric.BinderTransaction} BinderTransaction instance\n */\n BinderTransaction.create = function create(properties) {\n return new BinderTransaction(properties);\n };\n\n /**\n * Encodes the specified BinderTransaction message. Does not implicitly {@link perfetto.protos.AndroidStartupMetric.BinderTransaction.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidStartupMetric.BinderTransaction\n * @static\n * @param {perfetto.protos.AndroidStartupMetric.IBinderTransaction} message BinderTransaction message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n BinderTransaction.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.duration != null && Object.hasOwnProperty.call(message, \"duration\"))\n $root.perfetto.protos.AndroidStartupMetric.Slice.encode(message.duration, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n if (message.thread != null && Object.hasOwnProperty.call(message, \"thread\"))\n writer.uint32(/* id 2, wireType 2 =*/18).string(message.thread);\n if (message.destinationThread != null && Object.hasOwnProperty.call(message, \"destinationThread\"))\n writer.uint32(/* id 3, wireType 2 =*/26).string(message.destinationThread);\n if (message.destinationProcess != null && Object.hasOwnProperty.call(message, \"destinationProcess\"))\n writer.uint32(/* id 4, wireType 2 =*/34).string(message.destinationProcess);\n if (message.flags != null && Object.hasOwnProperty.call(message, \"flags\"))\n writer.uint32(/* id 5, wireType 2 =*/42).string(message.flags);\n if (message.code != null && Object.hasOwnProperty.call(message, \"code\"))\n writer.uint32(/* id 6, wireType 2 =*/50).string(message.code);\n if (message.dataSize != null && Object.hasOwnProperty.call(message, \"dataSize\"))\n writer.uint32(/* id 7, wireType 0 =*/56).int64(message.dataSize);\n return writer;\n };\n\n /**\n * Encodes the specified BinderTransaction message, length delimited. Does not implicitly {@link perfetto.protos.AndroidStartupMetric.BinderTransaction.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidStartupMetric.BinderTransaction\n * @static\n * @param {perfetto.protos.AndroidStartupMetric.IBinderTransaction} message BinderTransaction message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n BinderTransaction.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a BinderTransaction message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidStartupMetric.BinderTransaction\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidStartupMetric.BinderTransaction} BinderTransaction\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n BinderTransaction.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidStartupMetric.BinderTransaction();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.duration = $root.perfetto.protos.AndroidStartupMetric.Slice.decode(reader, reader.uint32());\n break;\n case 2:\n message.thread = reader.string();\n break;\n case 3:\n message.destinationThread = reader.string();\n break;\n case 4:\n message.destinationProcess = reader.string();\n break;\n case 5:\n message.flags = reader.string();\n break;\n case 6:\n message.code = reader.string();\n break;\n case 7:\n message.dataSize = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a BinderTransaction message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidStartupMetric.BinderTransaction\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidStartupMetric.BinderTransaction} BinderTransaction\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n BinderTransaction.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a BinderTransaction message.\n * @function verify\n * @memberof perfetto.protos.AndroidStartupMetric.BinderTransaction\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n BinderTransaction.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.duration != null && message.hasOwnProperty(\"duration\")) {\n var error = $root.perfetto.protos.AndroidStartupMetric.Slice.verify(message.duration);\n if (error)\n return \"duration.\" + error;\n }\n if (message.thread != null && message.hasOwnProperty(\"thread\"))\n if (!$util.isString(message.thread))\n return \"thread: string expected\";\n if (message.destinationThread != null && message.hasOwnProperty(\"destinationThread\"))\n if (!$util.isString(message.destinationThread))\n return \"destinationThread: string expected\";\n if (message.destinationProcess != null && message.hasOwnProperty(\"destinationProcess\"))\n if (!$util.isString(message.destinationProcess))\n return \"destinationProcess: string expected\";\n if (message.flags != null && message.hasOwnProperty(\"flags\"))\n if (!$util.isString(message.flags))\n return \"flags: string expected\";\n if (message.code != null && message.hasOwnProperty(\"code\"))\n if (!$util.isString(message.code))\n return \"code: string expected\";\n if (message.dataSize != null && message.hasOwnProperty(\"dataSize\"))\n if (!$util.isInteger(message.dataSize) && !(message.dataSize && $util.isInteger(message.dataSize.low) && $util.isInteger(message.dataSize.high)))\n return \"dataSize: integer|Long expected\";\n return null;\n };\n\n /**\n * Creates a BinderTransaction message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidStartupMetric.BinderTransaction\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidStartupMetric.BinderTransaction} BinderTransaction\n */\n BinderTransaction.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidStartupMetric.BinderTransaction)\n return object;\n var message = new $root.perfetto.protos.AndroidStartupMetric.BinderTransaction();\n if (object.duration != null) {\n if (typeof object.duration !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidStartupMetric.BinderTransaction.duration: object expected\");\n message.duration = $root.perfetto.protos.AndroidStartupMetric.Slice.fromObject(object.duration);\n }\n if (object.thread != null)\n message.thread = String(object.thread);\n if (object.destinationThread != null)\n message.destinationThread = String(object.destinationThread);\n if (object.destinationProcess != null)\n message.destinationProcess = String(object.destinationProcess);\n if (object.flags != null)\n message.flags = String(object.flags);\n if (object.code != null)\n message.code = String(object.code);\n if (object.dataSize != null)\n if ($util.Long)\n (message.dataSize = $util.Long.fromValue(object.dataSize)).unsigned = false;\n else if (typeof object.dataSize === \"string\")\n message.dataSize = parseInt(object.dataSize, 10);\n else if (typeof object.dataSize === \"number\")\n message.dataSize = object.dataSize;\n else if (typeof object.dataSize === \"object\")\n message.dataSize = new $util.LongBits(object.dataSize.low >>> 0, object.dataSize.high >>> 0).toNumber();\n return message;\n };\n\n /**\n * Creates a plain object from a BinderTransaction message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidStartupMetric.BinderTransaction\n * @static\n * @param {perfetto.protos.AndroidStartupMetric.BinderTransaction} message BinderTransaction\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n BinderTransaction.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.duration = null;\n object.thread = \"\";\n object.destinationThread = \"\";\n object.destinationProcess = \"\";\n object.flags = \"\";\n object.code = \"\";\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.dataSize = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.dataSize = options.longs === String ? \"0\" : 0;\n }\n if (message.duration != null && message.hasOwnProperty(\"duration\"))\n object.duration = $root.perfetto.protos.AndroidStartupMetric.Slice.toObject(message.duration, options);\n if (message.thread != null && message.hasOwnProperty(\"thread\"))\n object.thread = message.thread;\n if (message.destinationThread != null && message.hasOwnProperty(\"destinationThread\"))\n object.destinationThread = message.destinationThread;\n if (message.destinationProcess != null && message.hasOwnProperty(\"destinationProcess\"))\n object.destinationProcess = message.destinationProcess;\n if (message.flags != null && message.hasOwnProperty(\"flags\"))\n object.flags = message.flags;\n if (message.code != null && message.hasOwnProperty(\"code\"))\n object.code = message.code;\n if (message.dataSize != null && message.hasOwnProperty(\"dataSize\"))\n if (typeof message.dataSize === \"number\")\n object.dataSize = options.longs === String ? String(message.dataSize) : message.dataSize;\n else\n object.dataSize = options.longs === String ? $util.Long.prototype.toString.call(message.dataSize) : options.longs === Number ? new $util.LongBits(message.dataSize.low >>> 0, message.dataSize.high >>> 0).toNumber() : message.dataSize;\n return object;\n };\n\n /**\n * Converts this BinderTransaction to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidStartupMetric.BinderTransaction\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n BinderTransaction.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return BinderTransaction;\n })();\n\n AndroidStartupMetric.OptimizationStatus = (function() {\n\n /**\n * Properties of an OptimizationStatus.\n * @memberof perfetto.protos.AndroidStartupMetric\n * @interface IOptimizationStatus\n * @property {string|null} [odexStatus] OptimizationStatus odexStatus\n * @property {string|null} [compilationFilter] OptimizationStatus compilationFilter\n * @property {string|null} [compilationReason] OptimizationStatus compilationReason\n * @property {string|null} [location] OptimizationStatus location\n */\n\n /**\n * Constructs a new OptimizationStatus.\n * @memberof perfetto.protos.AndroidStartupMetric\n * @classdesc Represents an OptimizationStatus.\n * @implements IOptimizationStatus\n * @constructor\n * @param {perfetto.protos.AndroidStartupMetric.IOptimizationStatus=} [properties] Properties to set\n */\n function OptimizationStatus(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * OptimizationStatus odexStatus.\n * @member {string} odexStatus\n * @memberof perfetto.protos.AndroidStartupMetric.OptimizationStatus\n * @instance\n */\n OptimizationStatus.prototype.odexStatus = \"\";\n\n /**\n * OptimizationStatus compilationFilter.\n * @member {string} compilationFilter\n * @memberof perfetto.protos.AndroidStartupMetric.OptimizationStatus\n * @instance\n */\n OptimizationStatus.prototype.compilationFilter = \"\";\n\n /**\n * OptimizationStatus compilationReason.\n * @member {string} compilationReason\n * @memberof perfetto.protos.AndroidStartupMetric.OptimizationStatus\n * @instance\n */\n OptimizationStatus.prototype.compilationReason = \"\";\n\n /**\n * OptimizationStatus location.\n * @member {string} location\n * @memberof perfetto.protos.AndroidStartupMetric.OptimizationStatus\n * @instance\n */\n OptimizationStatus.prototype.location = \"\";\n\n /**\n * Creates a new OptimizationStatus instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidStartupMetric.OptimizationStatus\n * @static\n * @param {perfetto.protos.AndroidStartupMetric.IOptimizationStatus=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidStartupMetric.OptimizationStatus} OptimizationStatus instance\n */\n OptimizationStatus.create = function create(properties) {\n return new OptimizationStatus(properties);\n };\n\n /**\n * Encodes the specified OptimizationStatus message. Does not implicitly {@link perfetto.protos.AndroidStartupMetric.OptimizationStatus.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidStartupMetric.OptimizationStatus\n * @static\n * @param {perfetto.protos.AndroidStartupMetric.IOptimizationStatus} message OptimizationStatus message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n OptimizationStatus.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.odexStatus != null && Object.hasOwnProperty.call(message, \"odexStatus\"))\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.odexStatus);\n if (message.compilationFilter != null && Object.hasOwnProperty.call(message, \"compilationFilter\"))\n writer.uint32(/* id 2, wireType 2 =*/18).string(message.compilationFilter);\n if (message.compilationReason != null && Object.hasOwnProperty.call(message, \"compilationReason\"))\n writer.uint32(/* id 3, wireType 2 =*/26).string(message.compilationReason);\n if (message.location != null && Object.hasOwnProperty.call(message, \"location\"))\n writer.uint32(/* id 4, wireType 2 =*/34).string(message.location);\n return writer;\n };\n\n /**\n * Encodes the specified OptimizationStatus message, length delimited. Does not implicitly {@link perfetto.protos.AndroidStartupMetric.OptimizationStatus.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidStartupMetric.OptimizationStatus\n * @static\n * @param {perfetto.protos.AndroidStartupMetric.IOptimizationStatus} message OptimizationStatus message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n OptimizationStatus.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes an OptimizationStatus message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidStartupMetric.OptimizationStatus\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidStartupMetric.OptimizationStatus} OptimizationStatus\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n OptimizationStatus.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidStartupMetric.OptimizationStatus();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.odexStatus = reader.string();\n break;\n case 2:\n message.compilationFilter = reader.string();\n break;\n case 3:\n message.compilationReason = reader.string();\n break;\n case 4:\n message.location = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes an OptimizationStatus message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidStartupMetric.OptimizationStatus\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidStartupMetric.OptimizationStatus} OptimizationStatus\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n OptimizationStatus.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies an OptimizationStatus message.\n * @function verify\n * @memberof perfetto.protos.AndroidStartupMetric.OptimizationStatus\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n OptimizationStatus.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.odexStatus != null && message.hasOwnProperty(\"odexStatus\"))\n if (!$util.isString(message.odexStatus))\n return \"odexStatus: string expected\";\n if (message.compilationFilter != null && message.hasOwnProperty(\"compilationFilter\"))\n if (!$util.isString(message.compilationFilter))\n return \"compilationFilter: string expected\";\n if (message.compilationReason != null && message.hasOwnProperty(\"compilationReason\"))\n if (!$util.isString(message.compilationReason))\n return \"compilationReason: string expected\";\n if (message.location != null && message.hasOwnProperty(\"location\"))\n if (!$util.isString(message.location))\n return \"location: string expected\";\n return null;\n };\n\n /**\n * Creates an OptimizationStatus message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidStartupMetric.OptimizationStatus\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidStartupMetric.OptimizationStatus} OptimizationStatus\n */\n OptimizationStatus.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidStartupMetric.OptimizationStatus)\n return object;\n var message = new $root.perfetto.protos.AndroidStartupMetric.OptimizationStatus();\n if (object.odexStatus != null)\n message.odexStatus = String(object.odexStatus);\n if (object.compilationFilter != null)\n message.compilationFilter = String(object.compilationFilter);\n if (object.compilationReason != null)\n message.compilationReason = String(object.compilationReason);\n if (object.location != null)\n message.location = String(object.location);\n return message;\n };\n\n /**\n * Creates a plain object from an OptimizationStatus message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidStartupMetric.OptimizationStatus\n * @static\n * @param {perfetto.protos.AndroidStartupMetric.OptimizationStatus} message OptimizationStatus\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n OptimizationStatus.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.odexStatus = \"\";\n object.compilationFilter = \"\";\n object.compilationReason = \"\";\n object.location = \"\";\n }\n if (message.odexStatus != null && message.hasOwnProperty(\"odexStatus\"))\n object.odexStatus = message.odexStatus;\n if (message.compilationFilter != null && message.hasOwnProperty(\"compilationFilter\"))\n object.compilationFilter = message.compilationFilter;\n if (message.compilationReason != null && message.hasOwnProperty(\"compilationReason\"))\n object.compilationReason = message.compilationReason;\n if (message.location != null && message.hasOwnProperty(\"location\"))\n object.location = message.location;\n return object;\n };\n\n /**\n * Converts this OptimizationStatus to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidStartupMetric.OptimizationStatus\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n OptimizationStatus.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return OptimizationStatus;\n })();\n\n AndroidStartupMetric.EventTimestamps = (function() {\n\n /**\n * Properties of an EventTimestamps.\n * @memberof perfetto.protos.AndroidStartupMetric\n * @interface IEventTimestamps\n * @property {number|null} [intentReceived] EventTimestamps intentReceived\n * @property {number|null} [firstFrame] EventTimestamps firstFrame\n */\n\n /**\n * Constructs a new EventTimestamps.\n * @memberof perfetto.protos.AndroidStartupMetric\n * @classdesc Represents an EventTimestamps.\n * @implements IEventTimestamps\n * @constructor\n * @param {perfetto.protos.AndroidStartupMetric.IEventTimestamps=} [properties] Properties to set\n */\n function EventTimestamps(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * EventTimestamps intentReceived.\n * @member {number} intentReceived\n * @memberof perfetto.protos.AndroidStartupMetric.EventTimestamps\n * @instance\n */\n EventTimestamps.prototype.intentReceived = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * EventTimestamps firstFrame.\n * @member {number} firstFrame\n * @memberof perfetto.protos.AndroidStartupMetric.EventTimestamps\n * @instance\n */\n EventTimestamps.prototype.firstFrame = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * Creates a new EventTimestamps instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidStartupMetric.EventTimestamps\n * @static\n * @param {perfetto.protos.AndroidStartupMetric.IEventTimestamps=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidStartupMetric.EventTimestamps} EventTimestamps instance\n */\n EventTimestamps.create = function create(properties) {\n return new EventTimestamps(properties);\n };\n\n /**\n * Encodes the specified EventTimestamps message. Does not implicitly {@link perfetto.protos.AndroidStartupMetric.EventTimestamps.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidStartupMetric.EventTimestamps\n * @static\n * @param {perfetto.protos.AndroidStartupMetric.IEventTimestamps} message EventTimestamps message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n EventTimestamps.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.intentReceived != null && Object.hasOwnProperty.call(message, \"intentReceived\"))\n writer.uint32(/* id 1, wireType 0 =*/8).int64(message.intentReceived);\n if (message.firstFrame != null && Object.hasOwnProperty.call(message, \"firstFrame\"))\n writer.uint32(/* id 2, wireType 0 =*/16).int64(message.firstFrame);\n return writer;\n };\n\n /**\n * Encodes the specified EventTimestamps message, length delimited. Does not implicitly {@link perfetto.protos.AndroidStartupMetric.EventTimestamps.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidStartupMetric.EventTimestamps\n * @static\n * @param {perfetto.protos.AndroidStartupMetric.IEventTimestamps} message EventTimestamps message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n EventTimestamps.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes an EventTimestamps message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidStartupMetric.EventTimestamps\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidStartupMetric.EventTimestamps} EventTimestamps\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n EventTimestamps.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidStartupMetric.EventTimestamps();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.intentReceived = reader.int64();\n break;\n case 2:\n message.firstFrame = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes an EventTimestamps message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidStartupMetric.EventTimestamps\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidStartupMetric.EventTimestamps} EventTimestamps\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n EventTimestamps.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies an EventTimestamps message.\n * @function verify\n * @memberof perfetto.protos.AndroidStartupMetric.EventTimestamps\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n EventTimestamps.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.intentReceived != null && message.hasOwnProperty(\"intentReceived\"))\n if (!$util.isInteger(message.intentReceived) && !(message.intentReceived && $util.isInteger(message.intentReceived.low) && $util.isInteger(message.intentReceived.high)))\n return \"intentReceived: integer|Long expected\";\n if (message.firstFrame != null && message.hasOwnProperty(\"firstFrame\"))\n if (!$util.isInteger(message.firstFrame) && !(message.firstFrame && $util.isInteger(message.firstFrame.low) && $util.isInteger(message.firstFrame.high)))\n return \"firstFrame: integer|Long expected\";\n return null;\n };\n\n /**\n * Creates an EventTimestamps message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidStartupMetric.EventTimestamps\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidStartupMetric.EventTimestamps} EventTimestamps\n */\n EventTimestamps.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidStartupMetric.EventTimestamps)\n return object;\n var message = new $root.perfetto.protos.AndroidStartupMetric.EventTimestamps();\n if (object.intentReceived != null)\n if ($util.Long)\n (message.intentReceived = $util.Long.fromValue(object.intentReceived)).unsigned = false;\n else if (typeof object.intentReceived === \"string\")\n message.intentReceived = parseInt(object.intentReceived, 10);\n else if (typeof object.intentReceived === \"number\")\n message.intentReceived = object.intentReceived;\n else if (typeof object.intentReceived === \"object\")\n message.intentReceived = new $util.LongBits(object.intentReceived.low >>> 0, object.intentReceived.high >>> 0).toNumber();\n if (object.firstFrame != null)\n if ($util.Long)\n (message.firstFrame = $util.Long.fromValue(object.firstFrame)).unsigned = false;\n else if (typeof object.firstFrame === \"string\")\n message.firstFrame = parseInt(object.firstFrame, 10);\n else if (typeof object.firstFrame === \"number\")\n message.firstFrame = object.firstFrame;\n else if (typeof object.firstFrame === \"object\")\n message.firstFrame = new $util.LongBits(object.firstFrame.low >>> 0, object.firstFrame.high >>> 0).toNumber();\n return message;\n };\n\n /**\n * Creates a plain object from an EventTimestamps message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidStartupMetric.EventTimestamps\n * @static\n * @param {perfetto.protos.AndroidStartupMetric.EventTimestamps} message EventTimestamps\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n EventTimestamps.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.intentReceived = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.intentReceived = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.firstFrame = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.firstFrame = options.longs === String ? \"0\" : 0;\n }\n if (message.intentReceived != null && message.hasOwnProperty(\"intentReceived\"))\n if (typeof message.intentReceived === \"number\")\n object.intentReceived = options.longs === String ? String(message.intentReceived) : message.intentReceived;\n else\n object.intentReceived = options.longs === String ? $util.Long.prototype.toString.call(message.intentReceived) : options.longs === Number ? new $util.LongBits(message.intentReceived.low >>> 0, message.intentReceived.high >>> 0).toNumber() : message.intentReceived;\n if (message.firstFrame != null && message.hasOwnProperty(\"firstFrame\"))\n if (typeof message.firstFrame === \"number\")\n object.firstFrame = options.longs === String ? String(message.firstFrame) : message.firstFrame;\n else\n object.firstFrame = options.longs === String ? $util.Long.prototype.toString.call(message.firstFrame) : options.longs === Number ? new $util.LongBits(message.firstFrame.low >>> 0, message.firstFrame.high >>> 0).toNumber() : message.firstFrame;\n return object;\n };\n\n /**\n * Converts this EventTimestamps to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidStartupMetric.EventTimestamps\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n EventTimestamps.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return EventTimestamps;\n })();\n\n AndroidStartupMetric.Startup = (function() {\n\n /**\n * Properties of a Startup.\n * @memberof perfetto.protos.AndroidStartupMetric\n * @interface IStartup\n * @property {number|null} [startupId] Startup startupId\n * @property {string|null} [packageName] Startup packageName\n * @property {string|null} [processName] Startup processName\n * @property {Array.<perfetto.protos.AndroidStartupMetric.IActivity>|null} [activities] Startup activities\n * @property {Array.<perfetto.protos.AndroidStartupMetric.IBinderTransaction>|null} [longBinderTransactions] Startup longBinderTransactions\n * @property {boolean|null} [zygoteNewProcess] Startup zygoteNewProcess\n * @property {number|null} [activityHostingProcessCount] Startup activityHostingProcessCount\n * @property {perfetto.protos.AndroidStartupMetric.IEventTimestamps|null} [eventTimestamps] Startup eventTimestamps\n * @property {perfetto.protos.AndroidStartupMetric.IToFirstFrame|null} [toFirstFrame] Startup toFirstFrame\n * @property {perfetto.protos.IAndroidProcessMetadata|null} [process] Startup process\n * @property {perfetto.protos.AndroidStartupMetric.IHscMetrics|null} [hsc] Startup hsc\n * @property {perfetto.protos.AndroidStartupMetric.ISlice|null} [reportFullyDrawn] Startup reportFullyDrawn\n * @property {Array.<perfetto.protos.AndroidStartupMetric.IOptimizationStatus>|null} [optimizationStatus] Startup optimizationStatus\n */\n\n /**\n * Constructs a new Startup.\n * @memberof perfetto.protos.AndroidStartupMetric\n * @classdesc Represents a Startup.\n * @implements IStartup\n * @constructor\n * @param {perfetto.protos.AndroidStartupMetric.IStartup=} [properties] Properties to set\n */\n function Startup(properties) {\n this.activities = [];\n this.longBinderTransactions = [];\n this.optimizationStatus = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * Startup startupId.\n * @member {number} startupId\n * @memberof perfetto.protos.AndroidStartupMetric.Startup\n * @instance\n */\n Startup.prototype.startupId = 0;\n\n /**\n * Startup packageName.\n * @member {string} packageName\n * @memberof perfetto.protos.AndroidStartupMetric.Startup\n * @instance\n */\n Startup.prototype.packageName = \"\";\n\n /**\n * Startup processName.\n * @member {string} processName\n * @memberof perfetto.protos.AndroidStartupMetric.Startup\n * @instance\n */\n Startup.prototype.processName = \"\";\n\n /**\n * Startup activities.\n * @member {Array.<perfetto.protos.AndroidStartupMetric.IActivity>} activities\n * @memberof perfetto.protos.AndroidStartupMetric.Startup\n * @instance\n */\n Startup.prototype.activities = $util.emptyArray;\n\n /**\n * Startup longBinderTransactions.\n * @member {Array.<perfetto.protos.AndroidStartupMetric.IBinderTransaction>} longBinderTransactions\n * @memberof perfetto.protos.AndroidStartupMetric.Startup\n * @instance\n */\n Startup.prototype.longBinderTransactions = $util.emptyArray;\n\n /**\n * Startup zygoteNewProcess.\n * @member {boolean} zygoteNewProcess\n * @memberof perfetto.protos.AndroidStartupMetric.Startup\n * @instance\n */\n Startup.prototype.zygoteNewProcess = false;\n\n /**\n * Startup activityHostingProcessCount.\n * @member {number} activityHostingProcessCount\n * @memberof perfetto.protos.AndroidStartupMetric.Startup\n * @instance\n */\n Startup.prototype.activityHostingProcessCount = 0;\n\n /**\n * Startup eventTimestamps.\n * @member {perfetto.protos.AndroidStartupMetric.IEventTimestamps|null|undefined} eventTimestamps\n * @memberof perfetto.protos.AndroidStartupMetric.Startup\n * @instance\n */\n Startup.prototype.eventTimestamps = null;\n\n /**\n * Startup toFirstFrame.\n * @member {perfetto.protos.AndroidStartupMetric.IToFirstFrame|null|undefined} toFirstFrame\n * @memberof perfetto.protos.AndroidStartupMetric.Startup\n * @instance\n */\n Startup.prototype.toFirstFrame = null;\n\n /**\n * Startup process.\n * @member {perfetto.protos.IAndroidProcessMetadata|null|undefined} process\n * @memberof perfetto.protos.AndroidStartupMetric.Startup\n * @instance\n */\n Startup.prototype.process = null;\n\n /**\n * Startup hsc.\n * @member {perfetto.protos.AndroidStartupMetric.IHscMetrics|null|undefined} hsc\n * @memberof perfetto.protos.AndroidStartupMetric.Startup\n * @instance\n */\n Startup.prototype.hsc = null;\n\n /**\n * Startup reportFullyDrawn.\n * @member {perfetto.protos.AndroidStartupMetric.ISlice|null|undefined} reportFullyDrawn\n * @memberof perfetto.protos.AndroidStartupMetric.Startup\n * @instance\n */\n Startup.prototype.reportFullyDrawn = null;\n\n /**\n * Startup optimizationStatus.\n * @member {Array.<perfetto.protos.AndroidStartupMetric.IOptimizationStatus>} optimizationStatus\n * @memberof perfetto.protos.AndroidStartupMetric.Startup\n * @instance\n */\n Startup.prototype.optimizationStatus = $util.emptyArray;\n\n /**\n * Creates a new Startup instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidStartupMetric.Startup\n * @static\n * @param {perfetto.protos.AndroidStartupMetric.IStartup=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidStartupMetric.Startup} Startup instance\n */\n Startup.create = function create(properties) {\n return new Startup(properties);\n };\n\n /**\n * Encodes the specified Startup message. Does not implicitly {@link perfetto.protos.AndroidStartupMetric.Startup.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidStartupMetric.Startup\n * @static\n * @param {perfetto.protos.AndroidStartupMetric.IStartup} message Startup message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Startup.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.startupId != null && Object.hasOwnProperty.call(message, \"startupId\"))\n writer.uint32(/* id 1, wireType 0 =*/8).uint32(message.startupId);\n if (message.packageName != null && Object.hasOwnProperty.call(message, \"packageName\"))\n writer.uint32(/* id 2, wireType 2 =*/18).string(message.packageName);\n if (message.processName != null && Object.hasOwnProperty.call(message, \"processName\"))\n writer.uint32(/* id 3, wireType 2 =*/26).string(message.processName);\n if (message.zygoteNewProcess != null && Object.hasOwnProperty.call(message, \"zygoteNewProcess\"))\n writer.uint32(/* id 4, wireType 0 =*/32).bool(message.zygoteNewProcess);\n if (message.toFirstFrame != null && Object.hasOwnProperty.call(message, \"toFirstFrame\"))\n $root.perfetto.protos.AndroidStartupMetric.ToFirstFrame.encode(message.toFirstFrame, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim();\n if (message.activityHostingProcessCount != null && Object.hasOwnProperty.call(message, \"activityHostingProcessCount\"))\n writer.uint32(/* id 6, wireType 0 =*/48).uint32(message.activityHostingProcessCount);\n if (message.process != null && Object.hasOwnProperty.call(message, \"process\"))\n $root.perfetto.protos.AndroidProcessMetadata.encode(message.process, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim();\n if (message.hsc != null && Object.hasOwnProperty.call(message, \"hsc\"))\n $root.perfetto.protos.AndroidStartupMetric.HscMetrics.encode(message.hsc, writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim();\n if (message.reportFullyDrawn != null && Object.hasOwnProperty.call(message, \"reportFullyDrawn\"))\n $root.perfetto.protos.AndroidStartupMetric.Slice.encode(message.reportFullyDrawn, writer.uint32(/* id 9, wireType 2 =*/74).fork()).ldelim();\n if (message.activities != null && message.activities.length)\n for (var i = 0; i < message.activities.length; ++i)\n $root.perfetto.protos.AndroidStartupMetric.Activity.encode(message.activities[i], writer.uint32(/* id 11, wireType 2 =*/90).fork()).ldelim();\n if (message.optimizationStatus != null && message.optimizationStatus.length)\n for (var i = 0; i < message.optimizationStatus.length; ++i)\n $root.perfetto.protos.AndroidStartupMetric.OptimizationStatus.encode(message.optimizationStatus[i], writer.uint32(/* id 12, wireType 2 =*/98).fork()).ldelim();\n if (message.eventTimestamps != null && Object.hasOwnProperty.call(message, \"eventTimestamps\"))\n $root.perfetto.protos.AndroidStartupMetric.EventTimestamps.encode(message.eventTimestamps, writer.uint32(/* id 13, wireType 2 =*/106).fork()).ldelim();\n if (message.longBinderTransactions != null && message.longBinderTransactions.length)\n for (var i = 0; i < message.longBinderTransactions.length; ++i)\n $root.perfetto.protos.AndroidStartupMetric.BinderTransaction.encode(message.longBinderTransactions[i], writer.uint32(/* id 14, wireType 2 =*/114).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified Startup message, length delimited. Does not implicitly {@link perfetto.protos.AndroidStartupMetric.Startup.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidStartupMetric.Startup\n * @static\n * @param {perfetto.protos.AndroidStartupMetric.IStartup} message Startup message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Startup.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a Startup message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidStartupMetric.Startup\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidStartupMetric.Startup} Startup\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Startup.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidStartupMetric.Startup();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.startupId = reader.uint32();\n break;\n case 2:\n message.packageName = reader.string();\n break;\n case 3:\n message.processName = reader.string();\n break;\n case 11:\n if (!(message.activities && message.activities.length))\n message.activities = [];\n message.activities.push($root.perfetto.protos.AndroidStartupMetric.Activity.decode(reader, reader.uint32()));\n break;\n case 14:\n if (!(message.longBinderTransactions && message.longBinderTransactions.length))\n message.longBinderTransactions = [];\n message.longBinderTransactions.push($root.perfetto.protos.AndroidStartupMetric.BinderTransaction.decode(reader, reader.uint32()));\n break;\n case 4:\n message.zygoteNewProcess = reader.bool();\n break;\n case 6:\n message.activityHostingProcessCount = reader.uint32();\n break;\n case 13:\n message.eventTimestamps = $root.perfetto.protos.AndroidStartupMetric.EventTimestamps.decode(reader, reader.uint32());\n break;\n case 5:\n message.toFirstFrame = $root.perfetto.protos.AndroidStartupMetric.ToFirstFrame.decode(reader, reader.uint32());\n break;\n case 7:\n message.process = $root.perfetto.protos.AndroidProcessMetadata.decode(reader, reader.uint32());\n break;\n case 8:\n message.hsc = $root.perfetto.protos.AndroidStartupMetric.HscMetrics.decode(reader, reader.uint32());\n break;\n case 9:\n message.reportFullyDrawn = $root.perfetto.protos.AndroidStartupMetric.Slice.decode(reader, reader.uint32());\n break;\n case 12:\n if (!(message.optimizationStatus && message.optimizationStatus.length))\n message.optimizationStatus = [];\n message.optimizationStatus.push($root.perfetto.protos.AndroidStartupMetric.OptimizationStatus.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a Startup message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidStartupMetric.Startup\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidStartupMetric.Startup} Startup\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Startup.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a Startup message.\n * @function verify\n * @memberof perfetto.protos.AndroidStartupMetric.Startup\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n Startup.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.startupId != null && message.hasOwnProperty(\"startupId\"))\n if (!$util.isInteger(message.startupId))\n return \"startupId: integer expected\";\n if (message.packageName != null && message.hasOwnProperty(\"packageName\"))\n if (!$util.isString(message.packageName))\n return \"packageName: string expected\";\n if (message.processName != null && message.hasOwnProperty(\"processName\"))\n if (!$util.isString(message.processName))\n return \"processName: string expected\";\n if (message.activities != null && message.hasOwnProperty(\"activities\")) {\n if (!Array.isArray(message.activities))\n return \"activities: array expected\";\n for (var i = 0; i < message.activities.length; ++i) {\n var error = $root.perfetto.protos.AndroidStartupMetric.Activity.verify(message.activities[i]);\n if (error)\n return \"activities.\" + error;\n }\n }\n if (message.longBinderTransactions != null && message.hasOwnProperty(\"longBinderTransactions\")) {\n if (!Array.isArray(message.longBinderTransactions))\n return \"longBinderTransactions: array expected\";\n for (var i = 0; i < message.longBinderTransactions.length; ++i) {\n var error = $root.perfetto.protos.AndroidStartupMetric.BinderTransaction.verify(message.longBinderTransactions[i]);\n if (error)\n return \"longBinderTransactions.\" + error;\n }\n }\n if (message.zygoteNewProcess != null && message.hasOwnProperty(\"zygoteNewProcess\"))\n if (typeof message.zygoteNewProcess !== \"boolean\")\n return \"zygoteNewProcess: boolean expected\";\n if (message.activityHostingProcessCount != null && message.hasOwnProperty(\"activityHostingProcessCount\"))\n if (!$util.isInteger(message.activityHostingProcessCount))\n return \"activityHostingProcessCount: integer expected\";\n if (message.eventTimestamps != null && message.hasOwnProperty(\"eventTimestamps\")) {\n var error = $root.perfetto.protos.AndroidStartupMetric.EventTimestamps.verify(message.eventTimestamps);\n if (error)\n return \"eventTimestamps.\" + error;\n }\n if (message.toFirstFrame != null && message.hasOwnProperty(\"toFirstFrame\")) {\n var error = $root.perfetto.protos.AndroidStartupMetric.ToFirstFrame.verify(message.toFirstFrame);\n if (error)\n return \"toFirstFrame.\" + error;\n }\n if (message.process != null && message.hasOwnProperty(\"process\")) {\n var error = $root.perfetto.protos.AndroidProcessMetadata.verify(message.process);\n if (error)\n return \"process.\" + error;\n }\n if (message.hsc != null && message.hasOwnProperty(\"hsc\")) {\n var error = $root.perfetto.protos.AndroidStartupMetric.HscMetrics.verify(message.hsc);\n if (error)\n return \"hsc.\" + error;\n }\n if (message.reportFullyDrawn != null && message.hasOwnProperty(\"reportFullyDrawn\")) {\n var error = $root.perfetto.protos.AndroidStartupMetric.Slice.verify(message.reportFullyDrawn);\n if (error)\n return \"reportFullyDrawn.\" + error;\n }\n if (message.optimizationStatus != null && message.hasOwnProperty(\"optimizationStatus\")) {\n if (!Array.isArray(message.optimizationStatus))\n return \"optimizationStatus: array expected\";\n for (var i = 0; i < message.optimizationStatus.length; ++i) {\n var error = $root.perfetto.protos.AndroidStartupMetric.OptimizationStatus.verify(message.optimizationStatus[i]);\n if (error)\n return \"optimizationStatus.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates a Startup message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidStartupMetric.Startup\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidStartupMetric.Startup} Startup\n */\n Startup.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidStartupMetric.Startup)\n return object;\n var message = new $root.perfetto.protos.AndroidStartupMetric.Startup();\n if (object.startupId != null)\n message.startupId = object.startupId >>> 0;\n if (object.packageName != null)\n message.packageName = String(object.packageName);\n if (object.processName != null)\n message.processName = String(object.processName);\n if (object.activities) {\n if (!Array.isArray(object.activities))\n throw TypeError(\".perfetto.protos.AndroidStartupMetric.Startup.activities: array expected\");\n message.activities = [];\n for (var i = 0; i < object.activities.length; ++i) {\n if (typeof object.activities[i] !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidStartupMetric.Startup.activities: object expected\");\n message.activities[i] = $root.perfetto.protos.AndroidStartupMetric.Activity.fromObject(object.activities[i]);\n }\n }\n if (object.longBinderTransactions) {\n if (!Array.isArray(object.longBinderTransactions))\n throw TypeError(\".perfetto.protos.AndroidStartupMetric.Startup.longBinderTransactions: array expected\");\n message.longBinderTransactions = [];\n for (var i = 0; i < object.longBinderTransactions.length; ++i) {\n if (typeof object.longBinderTransactions[i] !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidStartupMetric.Startup.longBinderTransactions: object expected\");\n message.longBinderTransactions[i] = $root.perfetto.protos.AndroidStartupMetric.BinderTransaction.fromObject(object.longBinderTransactions[i]);\n }\n }\n if (object.zygoteNewProcess != null)\n message.zygoteNewProcess = Boolean(object.zygoteNewProcess);\n if (object.activityHostingProcessCount != null)\n message.activityHostingProcessCount = object.activityHostingProcessCount >>> 0;\n if (object.eventTimestamps != null) {\n if (typeof object.eventTimestamps !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidStartupMetric.Startup.eventTimestamps: object expected\");\n message.eventTimestamps = $root.perfetto.protos.AndroidStartupMetric.EventTimestamps.fromObject(object.eventTimestamps);\n }\n if (object.toFirstFrame != null) {\n if (typeof object.toFirstFrame !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidStartupMetric.Startup.toFirstFrame: object expected\");\n message.toFirstFrame = $root.perfetto.protos.AndroidStartupMetric.ToFirstFrame.fromObject(object.toFirstFrame);\n }\n if (object.process != null) {\n if (typeof object.process !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidStartupMetric.Startup.process: object expected\");\n message.process = $root.perfetto.protos.AndroidProcessMetadata.fromObject(object.process);\n }\n if (object.hsc != null) {\n if (typeof object.hsc !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidStartupMetric.Startup.hsc: object expected\");\n message.hsc = $root.perfetto.protos.AndroidStartupMetric.HscMetrics.fromObject(object.hsc);\n }\n if (object.reportFullyDrawn != null) {\n if (typeof object.reportFullyDrawn !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidStartupMetric.Startup.reportFullyDrawn: object expected\");\n message.reportFullyDrawn = $root.perfetto.protos.AndroidStartupMetric.Slice.fromObject(object.reportFullyDrawn);\n }\n if (object.optimizationStatus) {\n if (!Array.isArray(object.optimizationStatus))\n throw TypeError(\".perfetto.protos.AndroidStartupMetric.Startup.optimizationStatus: array expected\");\n message.optimizationStatus = [];\n for (var i = 0; i < object.optimizationStatus.length; ++i) {\n if (typeof object.optimizationStatus[i] !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidStartupMetric.Startup.optimizationStatus: object expected\");\n message.optimizationStatus[i] = $root.perfetto.protos.AndroidStartupMetric.OptimizationStatus.fromObject(object.optimizationStatus[i]);\n }\n }\n return message;\n };\n\n /**\n * Creates a plain object from a Startup message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidStartupMetric.Startup\n * @static\n * @param {perfetto.protos.AndroidStartupMetric.Startup} message Startup\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n Startup.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults) {\n object.activities = [];\n object.optimizationStatus = [];\n object.longBinderTransactions = [];\n }\n if (options.defaults) {\n object.startupId = 0;\n object.packageName = \"\";\n object.processName = \"\";\n object.zygoteNewProcess = false;\n object.toFirstFrame = null;\n object.activityHostingProcessCount = 0;\n object.process = null;\n object.hsc = null;\n object.reportFullyDrawn = null;\n object.eventTimestamps = null;\n }\n if (message.startupId != null && message.hasOwnProperty(\"startupId\"))\n object.startupId = message.startupId;\n if (message.packageName != null && message.hasOwnProperty(\"packageName\"))\n object.packageName = message.packageName;\n if (message.processName != null && message.hasOwnProperty(\"processName\"))\n object.processName = message.processName;\n if (message.zygoteNewProcess != null && message.hasOwnProperty(\"zygoteNewProcess\"))\n object.zygoteNewProcess = message.zygoteNewProcess;\n if (message.toFirstFrame != null && message.hasOwnProperty(\"toFirstFrame\"))\n object.toFirstFrame = $root.perfetto.protos.AndroidStartupMetric.ToFirstFrame.toObject(message.toFirstFrame, options);\n if (message.activityHostingProcessCount != null && message.hasOwnProperty(\"activityHostingProcessCount\"))\n object.activityHostingProcessCount = message.activityHostingProcessCount;\n if (message.process != null && message.hasOwnProperty(\"process\"))\n object.process = $root.perfetto.protos.AndroidProcessMetadata.toObject(message.process, options);\n if (message.hsc != null && message.hasOwnProperty(\"hsc\"))\n object.hsc = $root.perfetto.protos.AndroidStartupMetric.HscMetrics.toObject(message.hsc, options);\n if (message.reportFullyDrawn != null && message.hasOwnProperty(\"reportFullyDrawn\"))\n object.reportFullyDrawn = $root.perfetto.protos.AndroidStartupMetric.Slice.toObject(message.reportFullyDrawn, options);\n if (message.activities && message.activities.length) {\n object.activities = [];\n for (var j = 0; j < message.activities.length; ++j)\n object.activities[j] = $root.perfetto.protos.AndroidStartupMetric.Activity.toObject(message.activities[j], options);\n }\n if (message.optimizationStatus && message.optimizationStatus.length) {\n object.optimizationStatus = [];\n for (var j = 0; j < message.optimizationStatus.length; ++j)\n object.optimizationStatus[j] = $root.perfetto.protos.AndroidStartupMetric.OptimizationStatus.toObject(message.optimizationStatus[j], options);\n }\n if (message.eventTimestamps != null && message.hasOwnProperty(\"eventTimestamps\"))\n object.eventTimestamps = $root.perfetto.protos.AndroidStartupMetric.EventTimestamps.toObject(message.eventTimestamps, options);\n if (message.longBinderTransactions && message.longBinderTransactions.length) {\n object.longBinderTransactions = [];\n for (var j = 0; j < message.longBinderTransactions.length; ++j)\n object.longBinderTransactions[j] = $root.perfetto.protos.AndroidStartupMetric.BinderTransaction.toObject(message.longBinderTransactions[j], options);\n }\n return object;\n };\n\n /**\n * Converts this Startup to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidStartupMetric.Startup\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n Startup.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return Startup;\n })();\n\n return AndroidStartupMetric;\n })();\n\n protos.AndroidSurfaceflingerMetric = (function() {\n\n /**\n * Properties of an AndroidSurfaceflingerMetric.\n * @memberof perfetto.protos\n * @interface IAndroidSurfaceflingerMetric\n * @property {number|null} [missedFrames] AndroidSurfaceflingerMetric missedFrames\n * @property {number|null} [missedHwcFrames] AndroidSurfaceflingerMetric missedHwcFrames\n * @property {number|null} [missedGpuFrames] AndroidSurfaceflingerMetric missedGpuFrames\n * @property {number|null} [missedFrameRate] AndroidSurfaceflingerMetric missedFrameRate\n * @property {number|null} [missedHwcFrameRate] AndroidSurfaceflingerMetric missedHwcFrameRate\n * @property {number|null} [missedGpuFrameRate] AndroidSurfaceflingerMetric missedGpuFrameRate\n * @property {number|null} [gpuInvocations] AndroidSurfaceflingerMetric gpuInvocations\n * @property {number|null} [avgGpuWaitingDurMs] AndroidSurfaceflingerMetric avgGpuWaitingDurMs\n * @property {number|null} [totalNonEmptyGpuWaitingDurMs] AndroidSurfaceflingerMetric totalNonEmptyGpuWaitingDurMs\n */\n\n /**\n * Constructs a new AndroidSurfaceflingerMetric.\n * @memberof perfetto.protos\n * @classdesc Represents an AndroidSurfaceflingerMetric.\n * @implements IAndroidSurfaceflingerMetric\n * @constructor\n * @param {perfetto.protos.IAndroidSurfaceflingerMetric=} [properties] Properties to set\n */\n function AndroidSurfaceflingerMetric(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * AndroidSurfaceflingerMetric missedFrames.\n * @member {number} missedFrames\n * @memberof perfetto.protos.AndroidSurfaceflingerMetric\n * @instance\n */\n AndroidSurfaceflingerMetric.prototype.missedFrames = 0;\n\n /**\n * AndroidSurfaceflingerMetric missedHwcFrames.\n * @member {number} missedHwcFrames\n * @memberof perfetto.protos.AndroidSurfaceflingerMetric\n * @instance\n */\n AndroidSurfaceflingerMetric.prototype.missedHwcFrames = 0;\n\n /**\n * AndroidSurfaceflingerMetric missedGpuFrames.\n * @member {number} missedGpuFrames\n * @memberof perfetto.protos.AndroidSurfaceflingerMetric\n * @instance\n */\n AndroidSurfaceflingerMetric.prototype.missedGpuFrames = 0;\n\n /**\n * AndroidSurfaceflingerMetric missedFrameRate.\n * @member {number} missedFrameRate\n * @memberof perfetto.protos.AndroidSurfaceflingerMetric\n * @instance\n */\n AndroidSurfaceflingerMetric.prototype.missedFrameRate = 0;\n\n /**\n * AndroidSurfaceflingerMetric missedHwcFrameRate.\n * @member {number} missedHwcFrameRate\n * @memberof perfetto.protos.AndroidSurfaceflingerMetric\n * @instance\n */\n AndroidSurfaceflingerMetric.prototype.missedHwcFrameRate = 0;\n\n /**\n * AndroidSurfaceflingerMetric missedGpuFrameRate.\n * @member {number} missedGpuFrameRate\n * @memberof perfetto.protos.AndroidSurfaceflingerMetric\n * @instance\n */\n AndroidSurfaceflingerMetric.prototype.missedGpuFrameRate = 0;\n\n /**\n * AndroidSurfaceflingerMetric gpuInvocations.\n * @member {number} gpuInvocations\n * @memberof perfetto.protos.AndroidSurfaceflingerMetric\n * @instance\n */\n AndroidSurfaceflingerMetric.prototype.gpuInvocations = 0;\n\n /**\n * AndroidSurfaceflingerMetric avgGpuWaitingDurMs.\n * @member {number} avgGpuWaitingDurMs\n * @memberof perfetto.protos.AndroidSurfaceflingerMetric\n * @instance\n */\n AndroidSurfaceflingerMetric.prototype.avgGpuWaitingDurMs = 0;\n\n /**\n * AndroidSurfaceflingerMetric totalNonEmptyGpuWaitingDurMs.\n * @member {number} totalNonEmptyGpuWaitingDurMs\n * @memberof perfetto.protos.AndroidSurfaceflingerMetric\n * @instance\n */\n AndroidSurfaceflingerMetric.prototype.totalNonEmptyGpuWaitingDurMs = 0;\n\n /**\n * Creates a new AndroidSurfaceflingerMetric instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidSurfaceflingerMetric\n * @static\n * @param {perfetto.protos.IAndroidSurfaceflingerMetric=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidSurfaceflingerMetric} AndroidSurfaceflingerMetric instance\n */\n AndroidSurfaceflingerMetric.create = function create(properties) {\n return new AndroidSurfaceflingerMetric(properties);\n };\n\n /**\n * Encodes the specified AndroidSurfaceflingerMetric message. Does not implicitly {@link perfetto.protos.AndroidSurfaceflingerMetric.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidSurfaceflingerMetric\n * @static\n * @param {perfetto.protos.IAndroidSurfaceflingerMetric} message AndroidSurfaceflingerMetric message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n AndroidSurfaceflingerMetric.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.missedFrames != null && Object.hasOwnProperty.call(message, \"missedFrames\"))\n writer.uint32(/* id 1, wireType 0 =*/8).uint32(message.missedFrames);\n if (message.missedHwcFrames != null && Object.hasOwnProperty.call(message, \"missedHwcFrames\"))\n writer.uint32(/* id 2, wireType 0 =*/16).uint32(message.missedHwcFrames);\n if (message.missedGpuFrames != null && Object.hasOwnProperty.call(message, \"missedGpuFrames\"))\n writer.uint32(/* id 3, wireType 0 =*/24).uint32(message.missedGpuFrames);\n if (message.missedFrameRate != null && Object.hasOwnProperty.call(message, \"missedFrameRate\"))\n writer.uint32(/* id 4, wireType 1 =*/33).double(message.missedFrameRate);\n if (message.missedHwcFrameRate != null && Object.hasOwnProperty.call(message, \"missedHwcFrameRate\"))\n writer.uint32(/* id 5, wireType 1 =*/41).double(message.missedHwcFrameRate);\n if (message.missedGpuFrameRate != null && Object.hasOwnProperty.call(message, \"missedGpuFrameRate\"))\n writer.uint32(/* id 6, wireType 1 =*/49).double(message.missedGpuFrameRate);\n if (message.gpuInvocations != null && Object.hasOwnProperty.call(message, \"gpuInvocations\"))\n writer.uint32(/* id 7, wireType 0 =*/56).uint32(message.gpuInvocations);\n if (message.avgGpuWaitingDurMs != null && Object.hasOwnProperty.call(message, \"avgGpuWaitingDurMs\"))\n writer.uint32(/* id 8, wireType 1 =*/65).double(message.avgGpuWaitingDurMs);\n if (message.totalNonEmptyGpuWaitingDurMs != null && Object.hasOwnProperty.call(message, \"totalNonEmptyGpuWaitingDurMs\"))\n writer.uint32(/* id 9, wireType 1 =*/73).double(message.totalNonEmptyGpuWaitingDurMs);\n return writer;\n };\n\n /**\n * Encodes the specified AndroidSurfaceflingerMetric message, length delimited. Does not implicitly {@link perfetto.protos.AndroidSurfaceflingerMetric.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidSurfaceflingerMetric\n * @static\n * @param {perfetto.protos.IAndroidSurfaceflingerMetric} message AndroidSurfaceflingerMetric message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n AndroidSurfaceflingerMetric.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes an AndroidSurfaceflingerMetric message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidSurfaceflingerMetric\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidSurfaceflingerMetric} AndroidSurfaceflingerMetric\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n AndroidSurfaceflingerMetric.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidSurfaceflingerMetric();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.missedFrames = reader.uint32();\n break;\n case 2:\n message.missedHwcFrames = reader.uint32();\n break;\n case 3:\n message.missedGpuFrames = reader.uint32();\n break;\n case 4:\n message.missedFrameRate = reader.double();\n break;\n case 5:\n message.missedHwcFrameRate = reader.double();\n break;\n case 6:\n message.missedGpuFrameRate = reader.double();\n break;\n case 7:\n message.gpuInvocations = reader.uint32();\n break;\n case 8:\n message.avgGpuWaitingDurMs = reader.double();\n break;\n case 9:\n message.totalNonEmptyGpuWaitingDurMs = reader.double();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes an AndroidSurfaceflingerMetric message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidSurfaceflingerMetric\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidSurfaceflingerMetric} AndroidSurfaceflingerMetric\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n AndroidSurfaceflingerMetric.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies an AndroidSurfaceflingerMetric message.\n * @function verify\n * @memberof perfetto.protos.AndroidSurfaceflingerMetric\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n AndroidSurfaceflingerMetric.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.missedFrames != null && message.hasOwnProperty(\"missedFrames\"))\n if (!$util.isInteger(message.missedFrames))\n return \"missedFrames: integer expected\";\n if (message.missedHwcFrames != null && message.hasOwnProperty(\"missedHwcFrames\"))\n if (!$util.isInteger(message.missedHwcFrames))\n return \"missedHwcFrames: integer expected\";\n if (message.missedGpuFrames != null && message.hasOwnProperty(\"missedGpuFrames\"))\n if (!$util.isInteger(message.missedGpuFrames))\n return \"missedGpuFrames: integer expected\";\n if (message.missedFrameRate != null && message.hasOwnProperty(\"missedFrameRate\"))\n if (typeof message.missedFrameRate !== \"number\")\n return \"missedFrameRate: number expected\";\n if (message.missedHwcFrameRate != null && message.hasOwnProperty(\"missedHwcFrameRate\"))\n if (typeof message.missedHwcFrameRate !== \"number\")\n return \"missedHwcFrameRate: number expected\";\n if (message.missedGpuFrameRate != null && message.hasOwnProperty(\"missedGpuFrameRate\"))\n if (typeof message.missedGpuFrameRate !== \"number\")\n return \"missedGpuFrameRate: number expected\";\n if (message.gpuInvocations != null && message.hasOwnProperty(\"gpuInvocations\"))\n if (!$util.isInteger(message.gpuInvocations))\n return \"gpuInvocations: integer expected\";\n if (message.avgGpuWaitingDurMs != null && message.hasOwnProperty(\"avgGpuWaitingDurMs\"))\n if (typeof message.avgGpuWaitingDurMs !== \"number\")\n return \"avgGpuWaitingDurMs: number expected\";\n if (message.totalNonEmptyGpuWaitingDurMs != null && message.hasOwnProperty(\"totalNonEmptyGpuWaitingDurMs\"))\n if (typeof message.totalNonEmptyGpuWaitingDurMs !== \"number\")\n return \"totalNonEmptyGpuWaitingDurMs: number expected\";\n return null;\n };\n\n /**\n * Creates an AndroidSurfaceflingerMetric message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidSurfaceflingerMetric\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidSurfaceflingerMetric} AndroidSurfaceflingerMetric\n */\n AndroidSurfaceflingerMetric.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidSurfaceflingerMetric)\n return object;\n var message = new $root.perfetto.protos.AndroidSurfaceflingerMetric();\n if (object.missedFrames != null)\n message.missedFrames = object.missedFrames >>> 0;\n if (object.missedHwcFrames != null)\n message.missedHwcFrames = object.missedHwcFrames >>> 0;\n if (object.missedGpuFrames != null)\n message.missedGpuFrames = object.missedGpuFrames >>> 0;\n if (object.missedFrameRate != null)\n message.missedFrameRate = Number(object.missedFrameRate);\n if (object.missedHwcFrameRate != null)\n message.missedHwcFrameRate = Number(object.missedHwcFrameRate);\n if (object.missedGpuFrameRate != null)\n message.missedGpuFrameRate = Number(object.missedGpuFrameRate);\n if (object.gpuInvocations != null)\n message.gpuInvocations = object.gpuInvocations >>> 0;\n if (object.avgGpuWaitingDurMs != null)\n message.avgGpuWaitingDurMs = Number(object.avgGpuWaitingDurMs);\n if (object.totalNonEmptyGpuWaitingDurMs != null)\n message.totalNonEmptyGpuWaitingDurMs = Number(object.totalNonEmptyGpuWaitingDurMs);\n return message;\n };\n\n /**\n * Creates a plain object from an AndroidSurfaceflingerMetric message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidSurfaceflingerMetric\n * @static\n * @param {perfetto.protos.AndroidSurfaceflingerMetric} message AndroidSurfaceflingerMetric\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n AndroidSurfaceflingerMetric.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.missedFrames = 0;\n object.missedHwcFrames = 0;\n object.missedGpuFrames = 0;\n object.missedFrameRate = 0;\n object.missedHwcFrameRate = 0;\n object.missedGpuFrameRate = 0;\n object.gpuInvocations = 0;\n object.avgGpuWaitingDurMs = 0;\n object.totalNonEmptyGpuWaitingDurMs = 0;\n }\n if (message.missedFrames != null && message.hasOwnProperty(\"missedFrames\"))\n object.missedFrames = message.missedFrames;\n if (message.missedHwcFrames != null && message.hasOwnProperty(\"missedHwcFrames\"))\n object.missedHwcFrames = message.missedHwcFrames;\n if (message.missedGpuFrames != null && message.hasOwnProperty(\"missedGpuFrames\"))\n object.missedGpuFrames = message.missedGpuFrames;\n if (message.missedFrameRate != null && message.hasOwnProperty(\"missedFrameRate\"))\n object.missedFrameRate = options.json && !isFinite(message.missedFrameRate) ? String(message.missedFrameRate) : message.missedFrameRate;\n if (message.missedHwcFrameRate != null && message.hasOwnProperty(\"missedHwcFrameRate\"))\n object.missedHwcFrameRate = options.json && !isFinite(message.missedHwcFrameRate) ? String(message.missedHwcFrameRate) : message.missedHwcFrameRate;\n if (message.missedGpuFrameRate != null && message.hasOwnProperty(\"missedGpuFrameRate\"))\n object.missedGpuFrameRate = options.json && !isFinite(message.missedGpuFrameRate) ? String(message.missedGpuFrameRate) : message.missedGpuFrameRate;\n if (message.gpuInvocations != null && message.hasOwnProperty(\"gpuInvocations\"))\n object.gpuInvocations = message.gpuInvocations;\n if (message.avgGpuWaitingDurMs != null && message.hasOwnProperty(\"avgGpuWaitingDurMs\"))\n object.avgGpuWaitingDurMs = options.json && !isFinite(message.avgGpuWaitingDurMs) ? String(message.avgGpuWaitingDurMs) : message.avgGpuWaitingDurMs;\n if (message.totalNonEmptyGpuWaitingDurMs != null && message.hasOwnProperty(\"totalNonEmptyGpuWaitingDurMs\"))\n object.totalNonEmptyGpuWaitingDurMs = options.json && !isFinite(message.totalNonEmptyGpuWaitingDurMs) ? String(message.totalNonEmptyGpuWaitingDurMs) : message.totalNonEmptyGpuWaitingDurMs;\n return object;\n };\n\n /**\n * Converts this AndroidSurfaceflingerMetric to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidSurfaceflingerMetric\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n AndroidSurfaceflingerMetric.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return AndroidSurfaceflingerMetric;\n })();\n\n protos.AndroidSysUiCujMetrics = (function() {\n\n /**\n * Properties of an AndroidSysUiCujMetrics.\n * @memberof perfetto.protos\n * @interface IAndroidSysUiCujMetrics\n * @property {Array.<perfetto.protos.AndroidSysUiCujMetrics.IFrame>|null} [frames] AndroidSysUiCujMetrics frames\n * @property {string|null} [cujName] AndroidSysUiCujMetrics cujName\n * @property {number|null} [cujStart] AndroidSysUiCujMetrics cujStart\n * @property {number|null} [cujDur] AndroidSysUiCujMetrics cujDur\n * @property {perfetto.protos.IAndroidProcessMetadata|null} [process] AndroidSysUiCujMetrics process\n */\n\n /**\n * Constructs a new AndroidSysUiCujMetrics.\n * @memberof perfetto.protos\n * @classdesc Represents an AndroidSysUiCujMetrics.\n * @implements IAndroidSysUiCujMetrics\n * @constructor\n * @param {perfetto.protos.IAndroidSysUiCujMetrics=} [properties] Properties to set\n */\n function AndroidSysUiCujMetrics(properties) {\n this.frames = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * AndroidSysUiCujMetrics frames.\n * @member {Array.<perfetto.protos.AndroidSysUiCujMetrics.IFrame>} frames\n * @memberof perfetto.protos.AndroidSysUiCujMetrics\n * @instance\n */\n AndroidSysUiCujMetrics.prototype.frames = $util.emptyArray;\n\n /**\n * AndroidSysUiCujMetrics cujName.\n * @member {string} cujName\n * @memberof perfetto.protos.AndroidSysUiCujMetrics\n * @instance\n */\n AndroidSysUiCujMetrics.prototype.cujName = \"\";\n\n /**\n * AndroidSysUiCujMetrics cujStart.\n * @member {number} cujStart\n * @memberof perfetto.protos.AndroidSysUiCujMetrics\n * @instance\n */\n AndroidSysUiCujMetrics.prototype.cujStart = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * AndroidSysUiCujMetrics cujDur.\n * @member {number} cujDur\n * @memberof perfetto.protos.AndroidSysUiCujMetrics\n * @instance\n */\n AndroidSysUiCujMetrics.prototype.cujDur = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * AndroidSysUiCujMetrics process.\n * @member {perfetto.protos.IAndroidProcessMetadata|null|undefined} process\n * @memberof perfetto.protos.AndroidSysUiCujMetrics\n * @instance\n */\n AndroidSysUiCujMetrics.prototype.process = null;\n\n /**\n * Creates a new AndroidSysUiCujMetrics instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidSysUiCujMetrics\n * @static\n * @param {perfetto.protos.IAndroidSysUiCujMetrics=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidSysUiCujMetrics} AndroidSysUiCujMetrics instance\n */\n AndroidSysUiCujMetrics.create = function create(properties) {\n return new AndroidSysUiCujMetrics(properties);\n };\n\n /**\n * Encodes the specified AndroidSysUiCujMetrics message. Does not implicitly {@link perfetto.protos.AndroidSysUiCujMetrics.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidSysUiCujMetrics\n * @static\n * @param {perfetto.protos.IAndroidSysUiCujMetrics} message AndroidSysUiCujMetrics message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n AndroidSysUiCujMetrics.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.frames != null && message.frames.length)\n for (var i = 0; i < message.frames.length; ++i)\n $root.perfetto.protos.AndroidSysUiCujMetrics.Frame.encode(message.frames[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n if (message.cujName != null && Object.hasOwnProperty.call(message, \"cujName\"))\n writer.uint32(/* id 2, wireType 2 =*/18).string(message.cujName);\n if (message.cujStart != null && Object.hasOwnProperty.call(message, \"cujStart\"))\n writer.uint32(/* id 3, wireType 0 =*/24).int64(message.cujStart);\n if (message.cujDur != null && Object.hasOwnProperty.call(message, \"cujDur\"))\n writer.uint32(/* id 4, wireType 0 =*/32).int64(message.cujDur);\n if (message.process != null && Object.hasOwnProperty.call(message, \"process\"))\n $root.perfetto.protos.AndroidProcessMetadata.encode(message.process, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified AndroidSysUiCujMetrics message, length delimited. Does not implicitly {@link perfetto.protos.AndroidSysUiCujMetrics.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidSysUiCujMetrics\n * @static\n * @param {perfetto.protos.IAndroidSysUiCujMetrics} message AndroidSysUiCujMetrics message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n AndroidSysUiCujMetrics.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes an AndroidSysUiCujMetrics message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidSysUiCujMetrics\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidSysUiCujMetrics} AndroidSysUiCujMetrics\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n AndroidSysUiCujMetrics.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidSysUiCujMetrics();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (!(message.frames && message.frames.length))\n message.frames = [];\n message.frames.push($root.perfetto.protos.AndroidSysUiCujMetrics.Frame.decode(reader, reader.uint32()));\n break;\n case 2:\n message.cujName = reader.string();\n break;\n case 3:\n message.cujStart = reader.int64();\n break;\n case 4:\n message.cujDur = reader.int64();\n break;\n case 5:\n message.process = $root.perfetto.protos.AndroidProcessMetadata.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes an AndroidSysUiCujMetrics message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidSysUiCujMetrics\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidSysUiCujMetrics} AndroidSysUiCujMetrics\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n AndroidSysUiCujMetrics.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies an AndroidSysUiCujMetrics message.\n * @function verify\n * @memberof perfetto.protos.AndroidSysUiCujMetrics\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n AndroidSysUiCujMetrics.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.frames != null && message.hasOwnProperty(\"frames\")) {\n if (!Array.isArray(message.frames))\n return \"frames: array expected\";\n for (var i = 0; i < message.frames.length; ++i) {\n var error = $root.perfetto.protos.AndroidSysUiCujMetrics.Frame.verify(message.frames[i]);\n if (error)\n return \"frames.\" + error;\n }\n }\n if (message.cujName != null && message.hasOwnProperty(\"cujName\"))\n if (!$util.isString(message.cujName))\n return \"cujName: string expected\";\n if (message.cujStart != null && message.hasOwnProperty(\"cujStart\"))\n if (!$util.isInteger(message.cujStart) && !(message.cujStart && $util.isInteger(message.cujStart.low) && $util.isInteger(message.cujStart.high)))\n return \"cujStart: integer|Long expected\";\n if (message.cujDur != null && message.hasOwnProperty(\"cujDur\"))\n if (!$util.isInteger(message.cujDur) && !(message.cujDur && $util.isInteger(message.cujDur.low) && $util.isInteger(message.cujDur.high)))\n return \"cujDur: integer|Long expected\";\n if (message.process != null && message.hasOwnProperty(\"process\")) {\n var error = $root.perfetto.protos.AndroidProcessMetadata.verify(message.process);\n if (error)\n return \"process.\" + error;\n }\n return null;\n };\n\n /**\n * Creates an AndroidSysUiCujMetrics message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidSysUiCujMetrics\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidSysUiCujMetrics} AndroidSysUiCujMetrics\n */\n AndroidSysUiCujMetrics.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidSysUiCujMetrics)\n return object;\n var message = new $root.perfetto.protos.AndroidSysUiCujMetrics();\n if (object.frames) {\n if (!Array.isArray(object.frames))\n throw TypeError(\".perfetto.protos.AndroidSysUiCujMetrics.frames: array expected\");\n message.frames = [];\n for (var i = 0; i < object.frames.length; ++i) {\n if (typeof object.frames[i] !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidSysUiCujMetrics.frames: object expected\");\n message.frames[i] = $root.perfetto.protos.AndroidSysUiCujMetrics.Frame.fromObject(object.frames[i]);\n }\n }\n if (object.cujName != null)\n message.cujName = String(object.cujName);\n if (object.cujStart != null)\n if ($util.Long)\n (message.cujStart = $util.Long.fromValue(object.cujStart)).unsigned = false;\n else if (typeof object.cujStart === \"string\")\n message.cujStart = parseInt(object.cujStart, 10);\n else if (typeof object.cujStart === \"number\")\n message.cujStart = object.cujStart;\n else if (typeof object.cujStart === \"object\")\n message.cujStart = new $util.LongBits(object.cujStart.low >>> 0, object.cujStart.high >>> 0).toNumber();\n if (object.cujDur != null)\n if ($util.Long)\n (message.cujDur = $util.Long.fromValue(object.cujDur)).unsigned = false;\n else if (typeof object.cujDur === \"string\")\n message.cujDur = parseInt(object.cujDur, 10);\n else if (typeof object.cujDur === \"number\")\n message.cujDur = object.cujDur;\n else if (typeof object.cujDur === \"object\")\n message.cujDur = new $util.LongBits(object.cujDur.low >>> 0, object.cujDur.high >>> 0).toNumber();\n if (object.process != null) {\n if (typeof object.process !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidSysUiCujMetrics.process: object expected\");\n message.process = $root.perfetto.protos.AndroidProcessMetadata.fromObject(object.process);\n }\n return message;\n };\n\n /**\n * Creates a plain object from an AndroidSysUiCujMetrics message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidSysUiCujMetrics\n * @static\n * @param {perfetto.protos.AndroidSysUiCujMetrics} message AndroidSysUiCujMetrics\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n AndroidSysUiCujMetrics.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.frames = [];\n if (options.defaults) {\n object.cujName = \"\";\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.cujStart = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.cujStart = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.cujDur = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.cujDur = options.longs === String ? \"0\" : 0;\n object.process = null;\n }\n if (message.frames && message.frames.length) {\n object.frames = [];\n for (var j = 0; j < message.frames.length; ++j)\n object.frames[j] = $root.perfetto.protos.AndroidSysUiCujMetrics.Frame.toObject(message.frames[j], options);\n }\n if (message.cujName != null && message.hasOwnProperty(\"cujName\"))\n object.cujName = message.cujName;\n if (message.cujStart != null && message.hasOwnProperty(\"cujStart\"))\n if (typeof message.cujStart === \"number\")\n object.cujStart = options.longs === String ? String(message.cujStart) : message.cujStart;\n else\n object.cujStart = options.longs === String ? $util.Long.prototype.toString.call(message.cujStart) : options.longs === Number ? new $util.LongBits(message.cujStart.low >>> 0, message.cujStart.high >>> 0).toNumber() : message.cujStart;\n if (message.cujDur != null && message.hasOwnProperty(\"cujDur\"))\n if (typeof message.cujDur === \"number\")\n object.cujDur = options.longs === String ? String(message.cujDur) : message.cujDur;\n else\n object.cujDur = options.longs === String ? $util.Long.prototype.toString.call(message.cujDur) : options.longs === Number ? new $util.LongBits(message.cujDur.low >>> 0, message.cujDur.high >>> 0).toNumber() : message.cujDur;\n if (message.process != null && message.hasOwnProperty(\"process\"))\n object.process = $root.perfetto.protos.AndroidProcessMetadata.toObject(message.process, options);\n return object;\n };\n\n /**\n * Converts this AndroidSysUiCujMetrics to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidSysUiCujMetrics\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n AndroidSysUiCujMetrics.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n AndroidSysUiCujMetrics.Frame = (function() {\n\n /**\n * Properties of a Frame.\n * @memberof perfetto.protos.AndroidSysUiCujMetrics\n * @interface IFrame\n * @property {number|null} [number] Frame number\n * @property {number|null} [vsync] Frame vsync\n * @property {number|null} [ts] Frame ts\n * @property {number|null} [dur] Frame dur\n * @property {Array.<string>|null} [jankCause] Frame jankCause\n */\n\n /**\n * Constructs a new Frame.\n * @memberof perfetto.protos.AndroidSysUiCujMetrics\n * @classdesc Represents a Frame.\n * @implements IFrame\n * @constructor\n * @param {perfetto.protos.AndroidSysUiCujMetrics.IFrame=} [properties] Properties to set\n */\n function Frame(properties) {\n this.jankCause = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * Frame number.\n * @member {number} number\n * @memberof perfetto.protos.AndroidSysUiCujMetrics.Frame\n * @instance\n */\n Frame.prototype.number = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * Frame vsync.\n * @member {number} vsync\n * @memberof perfetto.protos.AndroidSysUiCujMetrics.Frame\n * @instance\n */\n Frame.prototype.vsync = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * Frame ts.\n * @member {number} ts\n * @memberof perfetto.protos.AndroidSysUiCujMetrics.Frame\n * @instance\n */\n Frame.prototype.ts = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * Frame dur.\n * @member {number} dur\n * @memberof perfetto.protos.AndroidSysUiCujMetrics.Frame\n * @instance\n */\n Frame.prototype.dur = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * Frame jankCause.\n * @member {Array.<string>} jankCause\n * @memberof perfetto.protos.AndroidSysUiCujMetrics.Frame\n * @instance\n */\n Frame.prototype.jankCause = $util.emptyArray;\n\n /**\n * Creates a new Frame instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidSysUiCujMetrics.Frame\n * @static\n * @param {perfetto.protos.AndroidSysUiCujMetrics.IFrame=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidSysUiCujMetrics.Frame} Frame instance\n */\n Frame.create = function create(properties) {\n return new Frame(properties);\n };\n\n /**\n * Encodes the specified Frame message. Does not implicitly {@link perfetto.protos.AndroidSysUiCujMetrics.Frame.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidSysUiCujMetrics.Frame\n * @static\n * @param {perfetto.protos.AndroidSysUiCujMetrics.IFrame} message Frame message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Frame.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.number != null && Object.hasOwnProperty.call(message, \"number\"))\n writer.uint32(/* id 1, wireType 0 =*/8).int64(message.number);\n if (message.ts != null && Object.hasOwnProperty.call(message, \"ts\"))\n writer.uint32(/* id 2, wireType 0 =*/16).int64(message.ts);\n if (message.dur != null && Object.hasOwnProperty.call(message, \"dur\"))\n writer.uint32(/* id 3, wireType 0 =*/24).int64(message.dur);\n if (message.jankCause != null && message.jankCause.length)\n for (var i = 0; i < message.jankCause.length; ++i)\n writer.uint32(/* id 4, wireType 2 =*/34).string(message.jankCause[i]);\n if (message.vsync != null && Object.hasOwnProperty.call(message, \"vsync\"))\n writer.uint32(/* id 5, wireType 0 =*/40).int64(message.vsync);\n return writer;\n };\n\n /**\n * Encodes the specified Frame message, length delimited. Does not implicitly {@link perfetto.protos.AndroidSysUiCujMetrics.Frame.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidSysUiCujMetrics.Frame\n * @static\n * @param {perfetto.protos.AndroidSysUiCujMetrics.IFrame} message Frame message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Frame.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a Frame message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidSysUiCujMetrics.Frame\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidSysUiCujMetrics.Frame} Frame\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Frame.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidSysUiCujMetrics.Frame();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.number = reader.int64();\n break;\n case 5:\n message.vsync = reader.int64();\n break;\n case 2:\n message.ts = reader.int64();\n break;\n case 3:\n message.dur = reader.int64();\n break;\n case 4:\n if (!(message.jankCause && message.jankCause.length))\n message.jankCause = [];\n message.jankCause.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a Frame message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidSysUiCujMetrics.Frame\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidSysUiCujMetrics.Frame} Frame\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Frame.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a Frame message.\n * @function verify\n * @memberof perfetto.protos.AndroidSysUiCujMetrics.Frame\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n Frame.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.number != null && message.hasOwnProperty(\"number\"))\n if (!$util.isInteger(message.number) && !(message.number && $util.isInteger(message.number.low) && $util.isInteger(message.number.high)))\n return \"number: integer|Long expected\";\n if (message.vsync != null && message.hasOwnProperty(\"vsync\"))\n if (!$util.isInteger(message.vsync) && !(message.vsync && $util.isInteger(message.vsync.low) && $util.isInteger(message.vsync.high)))\n return \"vsync: integer|Long expected\";\n if (message.ts != null && message.hasOwnProperty(\"ts\"))\n if (!$util.isInteger(message.ts) && !(message.ts && $util.isInteger(message.ts.low) && $util.isInteger(message.ts.high)))\n return \"ts: integer|Long expected\";\n if (message.dur != null && message.hasOwnProperty(\"dur\"))\n if (!$util.isInteger(message.dur) && !(message.dur && $util.isInteger(message.dur.low) && $util.isInteger(message.dur.high)))\n return \"dur: integer|Long expected\";\n if (message.jankCause != null && message.hasOwnProperty(\"jankCause\")) {\n if (!Array.isArray(message.jankCause))\n return \"jankCause: array expected\";\n for (var i = 0; i < message.jankCause.length; ++i)\n if (!$util.isString(message.jankCause[i]))\n return \"jankCause: string[] expected\";\n }\n return null;\n };\n\n /**\n * Creates a Frame message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidSysUiCujMetrics.Frame\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidSysUiCujMetrics.Frame} Frame\n */\n Frame.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidSysUiCujMetrics.Frame)\n return object;\n var message = new $root.perfetto.protos.AndroidSysUiCujMetrics.Frame();\n if (object.number != null)\n if ($util.Long)\n (message.number = $util.Long.fromValue(object.number)).unsigned = false;\n else if (typeof object.number === \"string\")\n message.number = parseInt(object.number, 10);\n else if (typeof object.number === \"number\")\n message.number = object.number;\n else if (typeof object.number === \"object\")\n message.number = new $util.LongBits(object.number.low >>> 0, object.number.high >>> 0).toNumber();\n if (object.vsync != null)\n if ($util.Long)\n (message.vsync = $util.Long.fromValue(object.vsync)).unsigned = false;\n else if (typeof object.vsync === \"string\")\n message.vsync = parseInt(object.vsync, 10);\n else if (typeof object.vsync === \"number\")\n message.vsync = object.vsync;\n else if (typeof object.vsync === \"object\")\n message.vsync = new $util.LongBits(object.vsync.low >>> 0, object.vsync.high >>> 0).toNumber();\n if (object.ts != null)\n if ($util.Long)\n (message.ts = $util.Long.fromValue(object.ts)).unsigned = false;\n else if (typeof object.ts === \"string\")\n message.ts = parseInt(object.ts, 10);\n else if (typeof object.ts === \"number\")\n message.ts = object.ts;\n else if (typeof object.ts === \"object\")\n message.ts = new $util.LongBits(object.ts.low >>> 0, object.ts.high >>> 0).toNumber();\n if (object.dur != null)\n if ($util.Long)\n (message.dur = $util.Long.fromValue(object.dur)).unsigned = false;\n else if (typeof object.dur === \"string\")\n message.dur = parseInt(object.dur, 10);\n else if (typeof object.dur === \"number\")\n message.dur = object.dur;\n else if (typeof object.dur === \"object\")\n message.dur = new $util.LongBits(object.dur.low >>> 0, object.dur.high >>> 0).toNumber();\n if (object.jankCause) {\n if (!Array.isArray(object.jankCause))\n throw TypeError(\".perfetto.protos.AndroidSysUiCujMetrics.Frame.jankCause: array expected\");\n message.jankCause = [];\n for (var i = 0; i < object.jankCause.length; ++i)\n message.jankCause[i] = String(object.jankCause[i]);\n }\n return message;\n };\n\n /**\n * Creates a plain object from a Frame message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidSysUiCujMetrics.Frame\n * @static\n * @param {perfetto.protos.AndroidSysUiCujMetrics.Frame} message Frame\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n Frame.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.jankCause = [];\n if (options.defaults) {\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.number = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.number = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.ts = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.ts = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.dur = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.dur = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.vsync = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.vsync = options.longs === String ? \"0\" : 0;\n }\n if (message.number != null && message.hasOwnProperty(\"number\"))\n if (typeof message.number === \"number\")\n object.number = options.longs === String ? String(message.number) : message.number;\n else\n object.number = options.longs === String ? $util.Long.prototype.toString.call(message.number) : options.longs === Number ? new $util.LongBits(message.number.low >>> 0, message.number.high >>> 0).toNumber() : message.number;\n if (message.ts != null && message.hasOwnProperty(\"ts\"))\n if (typeof message.ts === \"number\")\n object.ts = options.longs === String ? String(message.ts) : message.ts;\n else\n object.ts = options.longs === String ? $util.Long.prototype.toString.call(message.ts) : options.longs === Number ? new $util.LongBits(message.ts.low >>> 0, message.ts.high >>> 0).toNumber() : message.ts;\n if (message.dur != null && message.hasOwnProperty(\"dur\"))\n if (typeof message.dur === \"number\")\n object.dur = options.longs === String ? String(message.dur) : message.dur;\n else\n object.dur = options.longs === String ? $util.Long.prototype.toString.call(message.dur) : options.longs === Number ? new $util.LongBits(message.dur.low >>> 0, message.dur.high >>> 0).toNumber() : message.dur;\n if (message.jankCause && message.jankCause.length) {\n object.jankCause = [];\n for (var j = 0; j < message.jankCause.length; ++j)\n object.jankCause[j] = message.jankCause[j];\n }\n if (message.vsync != null && message.hasOwnProperty(\"vsync\"))\n if (typeof message.vsync === \"number\")\n object.vsync = options.longs === String ? String(message.vsync) : message.vsync;\n else\n object.vsync = options.longs === String ? $util.Long.prototype.toString.call(message.vsync) : options.longs === Number ? new $util.LongBits(message.vsync.low >>> 0, message.vsync.high >>> 0).toNumber() : message.vsync;\n return object;\n };\n\n /**\n * Converts this Frame to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidSysUiCujMetrics.Frame\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n Frame.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return Frame;\n })();\n\n return AndroidSysUiCujMetrics;\n })();\n\n protos.AndroidTaskNames = (function() {\n\n /**\n * Properties of an AndroidTaskNames.\n * @memberof perfetto.protos\n * @interface IAndroidTaskNames\n * @property {Array.<perfetto.protos.AndroidTaskNames.IProcess>|null} [process] AndroidTaskNames process\n */\n\n /**\n * Constructs a new AndroidTaskNames.\n * @memberof perfetto.protos\n * @classdesc Represents an AndroidTaskNames.\n * @implements IAndroidTaskNames\n * @constructor\n * @param {perfetto.protos.IAndroidTaskNames=} [properties] Properties to set\n */\n function AndroidTaskNames(properties) {\n this.process = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * AndroidTaskNames process.\n * @member {Array.<perfetto.protos.AndroidTaskNames.IProcess>} process\n * @memberof perfetto.protos.AndroidTaskNames\n * @instance\n */\n AndroidTaskNames.prototype.process = $util.emptyArray;\n\n /**\n * Creates a new AndroidTaskNames instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidTaskNames\n * @static\n * @param {perfetto.protos.IAndroidTaskNames=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidTaskNames} AndroidTaskNames instance\n */\n AndroidTaskNames.create = function create(properties) {\n return new AndroidTaskNames(properties);\n };\n\n /**\n * Encodes the specified AndroidTaskNames message. Does not implicitly {@link perfetto.protos.AndroidTaskNames.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidTaskNames\n * @static\n * @param {perfetto.protos.IAndroidTaskNames} message AndroidTaskNames message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n AndroidTaskNames.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.process != null && message.process.length)\n for (var i = 0; i < message.process.length; ++i)\n $root.perfetto.protos.AndroidTaskNames.Process.encode(message.process[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified AndroidTaskNames message, length delimited. Does not implicitly {@link perfetto.protos.AndroidTaskNames.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidTaskNames\n * @static\n * @param {perfetto.protos.IAndroidTaskNames} message AndroidTaskNames message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n AndroidTaskNames.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes an AndroidTaskNames message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidTaskNames\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidTaskNames} AndroidTaskNames\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n AndroidTaskNames.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidTaskNames();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (!(message.process && message.process.length))\n message.process = [];\n message.process.push($root.perfetto.protos.AndroidTaskNames.Process.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes an AndroidTaskNames message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidTaskNames\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidTaskNames} AndroidTaskNames\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n AndroidTaskNames.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies an AndroidTaskNames message.\n * @function verify\n * @memberof perfetto.protos.AndroidTaskNames\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n AndroidTaskNames.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.process != null && message.hasOwnProperty(\"process\")) {\n if (!Array.isArray(message.process))\n return \"process: array expected\";\n for (var i = 0; i < message.process.length; ++i) {\n var error = $root.perfetto.protos.AndroidTaskNames.Process.verify(message.process[i]);\n if (error)\n return \"process.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates an AndroidTaskNames message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidTaskNames\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidTaskNames} AndroidTaskNames\n */\n AndroidTaskNames.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidTaskNames)\n return object;\n var message = new $root.perfetto.protos.AndroidTaskNames();\n if (object.process) {\n if (!Array.isArray(object.process))\n throw TypeError(\".perfetto.protos.AndroidTaskNames.process: array expected\");\n message.process = [];\n for (var i = 0; i < object.process.length; ++i) {\n if (typeof object.process[i] !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidTaskNames.process: object expected\");\n message.process[i] = $root.perfetto.protos.AndroidTaskNames.Process.fromObject(object.process[i]);\n }\n }\n return message;\n };\n\n /**\n * Creates a plain object from an AndroidTaskNames message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidTaskNames\n * @static\n * @param {perfetto.protos.AndroidTaskNames} message AndroidTaskNames\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n AndroidTaskNames.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.process = [];\n if (message.process && message.process.length) {\n object.process = [];\n for (var j = 0; j < message.process.length; ++j)\n object.process[j] = $root.perfetto.protos.AndroidTaskNames.Process.toObject(message.process[j], options);\n }\n return object;\n };\n\n /**\n * Converts this AndroidTaskNames to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidTaskNames\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n AndroidTaskNames.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n AndroidTaskNames.Process = (function() {\n\n /**\n * Properties of a Process.\n * @memberof perfetto.protos.AndroidTaskNames\n * @interface IProcess\n * @property {number|null} [pid] Process pid\n * @property {string|null} [processName] Process processName\n * @property {Array.<string>|null} [threadName] Process threadName\n * @property {number|null} [uid] Process uid\n * @property {Array.<string>|null} [uidPackageName] Process uidPackageName\n */\n\n /**\n * Constructs a new Process.\n * @memberof perfetto.protos.AndroidTaskNames\n * @classdesc Represents a Process.\n * @implements IProcess\n * @constructor\n * @param {perfetto.protos.AndroidTaskNames.IProcess=} [properties] Properties to set\n */\n function Process(properties) {\n this.threadName = [];\n this.uidPackageName = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * Process pid.\n * @member {number} pid\n * @memberof perfetto.protos.AndroidTaskNames.Process\n * @instance\n */\n Process.prototype.pid = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * Process processName.\n * @member {string} processName\n * @memberof perfetto.protos.AndroidTaskNames.Process\n * @instance\n */\n Process.prototype.processName = \"\";\n\n /**\n * Process threadName.\n * @member {Array.<string>} threadName\n * @memberof perfetto.protos.AndroidTaskNames.Process\n * @instance\n */\n Process.prototype.threadName = $util.emptyArray;\n\n /**\n * Process uid.\n * @member {number} uid\n * @memberof perfetto.protos.AndroidTaskNames.Process\n * @instance\n */\n Process.prototype.uid = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * Process uidPackageName.\n * @member {Array.<string>} uidPackageName\n * @memberof perfetto.protos.AndroidTaskNames.Process\n * @instance\n */\n Process.prototype.uidPackageName = $util.emptyArray;\n\n /**\n * Creates a new Process instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidTaskNames.Process\n * @static\n * @param {perfetto.protos.AndroidTaskNames.IProcess=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidTaskNames.Process} Process instance\n */\n Process.create = function create(properties) {\n return new Process(properties);\n };\n\n /**\n * Encodes the specified Process message. Does not implicitly {@link perfetto.protos.AndroidTaskNames.Process.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidTaskNames.Process\n * @static\n * @param {perfetto.protos.AndroidTaskNames.IProcess} message Process message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Process.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.pid != null && Object.hasOwnProperty.call(message, \"pid\"))\n writer.uint32(/* id 1, wireType 0 =*/8).int64(message.pid);\n if (message.processName != null && Object.hasOwnProperty.call(message, \"processName\"))\n writer.uint32(/* id 2, wireType 2 =*/18).string(message.processName);\n if (message.threadName != null && message.threadName.length)\n for (var i = 0; i < message.threadName.length; ++i)\n writer.uint32(/* id 3, wireType 2 =*/26).string(message.threadName[i]);\n if (message.uid != null && Object.hasOwnProperty.call(message, \"uid\"))\n writer.uint32(/* id 4, wireType 0 =*/32).int64(message.uid);\n if (message.uidPackageName != null && message.uidPackageName.length)\n for (var i = 0; i < message.uidPackageName.length; ++i)\n writer.uint32(/* id 5, wireType 2 =*/42).string(message.uidPackageName[i]);\n return writer;\n };\n\n /**\n * Encodes the specified Process message, length delimited. Does not implicitly {@link perfetto.protos.AndroidTaskNames.Process.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidTaskNames.Process\n * @static\n * @param {perfetto.protos.AndroidTaskNames.IProcess} message Process message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Process.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a Process message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidTaskNames.Process\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidTaskNames.Process} Process\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Process.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidTaskNames.Process();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.pid = reader.int64();\n break;\n case 2:\n message.processName = reader.string();\n break;\n case 3:\n if (!(message.threadName && message.threadName.length))\n message.threadName = [];\n message.threadName.push(reader.string());\n break;\n case 4:\n message.uid = reader.int64();\n break;\n case 5:\n if (!(message.uidPackageName && message.uidPackageName.length))\n message.uidPackageName = [];\n message.uidPackageName.push(reader.string());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a Process message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidTaskNames.Process\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidTaskNames.Process} Process\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Process.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a Process message.\n * @function verify\n * @memberof perfetto.protos.AndroidTaskNames.Process\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n Process.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.pid != null && message.hasOwnProperty(\"pid\"))\n if (!$util.isInteger(message.pid) && !(message.pid && $util.isInteger(message.pid.low) && $util.isInteger(message.pid.high)))\n return \"pid: integer|Long expected\";\n if (message.processName != null && message.hasOwnProperty(\"processName\"))\n if (!$util.isString(message.processName))\n return \"processName: string expected\";\n if (message.threadName != null && message.hasOwnProperty(\"threadName\")) {\n if (!Array.isArray(message.threadName))\n return \"threadName: array expected\";\n for (var i = 0; i < message.threadName.length; ++i)\n if (!$util.isString(message.threadName[i]))\n return \"threadName: string[] expected\";\n }\n if (message.uid != null && message.hasOwnProperty(\"uid\"))\n if (!$util.isInteger(message.uid) && !(message.uid && $util.isInteger(message.uid.low) && $util.isInteger(message.uid.high)))\n return \"uid: integer|Long expected\";\n if (message.uidPackageName != null && message.hasOwnProperty(\"uidPackageName\")) {\n if (!Array.isArray(message.uidPackageName))\n return \"uidPackageName: array expected\";\n for (var i = 0; i < message.uidPackageName.length; ++i)\n if (!$util.isString(message.uidPackageName[i]))\n return \"uidPackageName: string[] expected\";\n }\n return null;\n };\n\n /**\n * Creates a Process message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidTaskNames.Process\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidTaskNames.Process} Process\n */\n Process.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidTaskNames.Process)\n return object;\n var message = new $root.perfetto.protos.AndroidTaskNames.Process();\n if (object.pid != null)\n if ($util.Long)\n (message.pid = $util.Long.fromValue(object.pid)).unsigned = false;\n else if (typeof object.pid === \"string\")\n message.pid = parseInt(object.pid, 10);\n else if (typeof object.pid === \"number\")\n message.pid = object.pid;\n else if (typeof object.pid === \"object\")\n message.pid = new $util.LongBits(object.pid.low >>> 0, object.pid.high >>> 0).toNumber();\n if (object.processName != null)\n message.processName = String(object.processName);\n if (object.threadName) {\n if (!Array.isArray(object.threadName))\n throw TypeError(\".perfetto.protos.AndroidTaskNames.Process.threadName: array expected\");\n message.threadName = [];\n for (var i = 0; i < object.threadName.length; ++i)\n message.threadName[i] = String(object.threadName[i]);\n }\n if (object.uid != null)\n if ($util.Long)\n (message.uid = $util.Long.fromValue(object.uid)).unsigned = false;\n else if (typeof object.uid === \"string\")\n message.uid = parseInt(object.uid, 10);\n else if (typeof object.uid === \"number\")\n message.uid = object.uid;\n else if (typeof object.uid === \"object\")\n message.uid = new $util.LongBits(object.uid.low >>> 0, object.uid.high >>> 0).toNumber();\n if (object.uidPackageName) {\n if (!Array.isArray(object.uidPackageName))\n throw TypeError(\".perfetto.protos.AndroidTaskNames.Process.uidPackageName: array expected\");\n message.uidPackageName = [];\n for (var i = 0; i < object.uidPackageName.length; ++i)\n message.uidPackageName[i] = String(object.uidPackageName[i]);\n }\n return message;\n };\n\n /**\n * Creates a plain object from a Process message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidTaskNames.Process\n * @static\n * @param {perfetto.protos.AndroidTaskNames.Process} message Process\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n Process.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults) {\n object.threadName = [];\n object.uidPackageName = [];\n }\n if (options.defaults) {\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.pid = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.pid = options.longs === String ? \"0\" : 0;\n object.processName = \"\";\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.uid = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.uid = options.longs === String ? \"0\" : 0;\n }\n if (message.pid != null && message.hasOwnProperty(\"pid\"))\n if (typeof message.pid === \"number\")\n object.pid = options.longs === String ? String(message.pid) : message.pid;\n else\n object.pid = options.longs === String ? $util.Long.prototype.toString.call(message.pid) : options.longs === Number ? new $util.LongBits(message.pid.low >>> 0, message.pid.high >>> 0).toNumber() : message.pid;\n if (message.processName != null && message.hasOwnProperty(\"processName\"))\n object.processName = message.processName;\n if (message.threadName && message.threadName.length) {\n object.threadName = [];\n for (var j = 0; j < message.threadName.length; ++j)\n object.threadName[j] = message.threadName[j];\n }\n if (message.uid != null && message.hasOwnProperty(\"uid\"))\n if (typeof message.uid === \"number\")\n object.uid = options.longs === String ? String(message.uid) : message.uid;\n else\n object.uid = options.longs === String ? $util.Long.prototype.toString.call(message.uid) : options.longs === Number ? new $util.LongBits(message.uid.low >>> 0, message.uid.high >>> 0).toNumber() : message.uid;\n if (message.uidPackageName && message.uidPackageName.length) {\n object.uidPackageName = [];\n for (var j = 0; j < message.uidPackageName.length; ++j)\n object.uidPackageName[j] = message.uidPackageName[j];\n }\n return object;\n };\n\n /**\n * Converts this Process to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidTaskNames.Process\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n Process.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return Process;\n })();\n\n return AndroidTaskNames;\n })();\n\n protos.AndroidThreadTimeInStateMetric = (function() {\n\n /**\n * Properties of an AndroidThreadTimeInStateMetric.\n * @memberof perfetto.protos\n * @interface IAndroidThreadTimeInStateMetric\n * @property {Array.<perfetto.protos.AndroidThreadTimeInStateMetric.IProcess>|null} [processes] AndroidThreadTimeInStateMetric processes\n */\n\n /**\n * Constructs a new AndroidThreadTimeInStateMetric.\n * @memberof perfetto.protos\n * @classdesc Represents an AndroidThreadTimeInStateMetric.\n * @implements IAndroidThreadTimeInStateMetric\n * @constructor\n * @param {perfetto.protos.IAndroidThreadTimeInStateMetric=} [properties] Properties to set\n */\n function AndroidThreadTimeInStateMetric(properties) {\n this.processes = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * AndroidThreadTimeInStateMetric processes.\n * @member {Array.<perfetto.protos.AndroidThreadTimeInStateMetric.IProcess>} processes\n * @memberof perfetto.protos.AndroidThreadTimeInStateMetric\n * @instance\n */\n AndroidThreadTimeInStateMetric.prototype.processes = $util.emptyArray;\n\n /**\n * Creates a new AndroidThreadTimeInStateMetric instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidThreadTimeInStateMetric\n * @static\n * @param {perfetto.protos.IAndroidThreadTimeInStateMetric=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidThreadTimeInStateMetric} AndroidThreadTimeInStateMetric instance\n */\n AndroidThreadTimeInStateMetric.create = function create(properties) {\n return new AndroidThreadTimeInStateMetric(properties);\n };\n\n /**\n * Encodes the specified AndroidThreadTimeInStateMetric message. Does not implicitly {@link perfetto.protos.AndroidThreadTimeInStateMetric.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidThreadTimeInStateMetric\n * @static\n * @param {perfetto.protos.IAndroidThreadTimeInStateMetric} message AndroidThreadTimeInStateMetric message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n AndroidThreadTimeInStateMetric.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.processes != null && message.processes.length)\n for (var i = 0; i < message.processes.length; ++i)\n $root.perfetto.protos.AndroidThreadTimeInStateMetric.Process.encode(message.processes[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified AndroidThreadTimeInStateMetric message, length delimited. Does not implicitly {@link perfetto.protos.AndroidThreadTimeInStateMetric.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidThreadTimeInStateMetric\n * @static\n * @param {perfetto.protos.IAndroidThreadTimeInStateMetric} message AndroidThreadTimeInStateMetric message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n AndroidThreadTimeInStateMetric.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes an AndroidThreadTimeInStateMetric message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidThreadTimeInStateMetric\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidThreadTimeInStateMetric} AndroidThreadTimeInStateMetric\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n AndroidThreadTimeInStateMetric.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidThreadTimeInStateMetric();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (!(message.processes && message.processes.length))\n message.processes = [];\n message.processes.push($root.perfetto.protos.AndroidThreadTimeInStateMetric.Process.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes an AndroidThreadTimeInStateMetric message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidThreadTimeInStateMetric\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidThreadTimeInStateMetric} AndroidThreadTimeInStateMetric\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n AndroidThreadTimeInStateMetric.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies an AndroidThreadTimeInStateMetric message.\n * @function verify\n * @memberof perfetto.protos.AndroidThreadTimeInStateMetric\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n AndroidThreadTimeInStateMetric.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.processes != null && message.hasOwnProperty(\"processes\")) {\n if (!Array.isArray(message.processes))\n return \"processes: array expected\";\n for (var i = 0; i < message.processes.length; ++i) {\n var error = $root.perfetto.protos.AndroidThreadTimeInStateMetric.Process.verify(message.processes[i]);\n if (error)\n return \"processes.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates an AndroidThreadTimeInStateMetric message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidThreadTimeInStateMetric\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidThreadTimeInStateMetric} AndroidThreadTimeInStateMetric\n */\n AndroidThreadTimeInStateMetric.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidThreadTimeInStateMetric)\n return object;\n var message = new $root.perfetto.protos.AndroidThreadTimeInStateMetric();\n if (object.processes) {\n if (!Array.isArray(object.processes))\n throw TypeError(\".perfetto.protos.AndroidThreadTimeInStateMetric.processes: array expected\");\n message.processes = [];\n for (var i = 0; i < object.processes.length; ++i) {\n if (typeof object.processes[i] !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidThreadTimeInStateMetric.processes: object expected\");\n message.processes[i] = $root.perfetto.protos.AndroidThreadTimeInStateMetric.Process.fromObject(object.processes[i]);\n }\n }\n return message;\n };\n\n /**\n * Creates a plain object from an AndroidThreadTimeInStateMetric message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidThreadTimeInStateMetric\n * @static\n * @param {perfetto.protos.AndroidThreadTimeInStateMetric} message AndroidThreadTimeInStateMetric\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n AndroidThreadTimeInStateMetric.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.processes = [];\n if (message.processes && message.processes.length) {\n object.processes = [];\n for (var j = 0; j < message.processes.length; ++j)\n object.processes[j] = $root.perfetto.protos.AndroidThreadTimeInStateMetric.Process.toObject(message.processes[j], options);\n }\n return object;\n };\n\n /**\n * Converts this AndroidThreadTimeInStateMetric to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidThreadTimeInStateMetric\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n AndroidThreadTimeInStateMetric.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n AndroidThreadTimeInStateMetric.MetricsByCoreType = (function() {\n\n /**\n * Properties of a MetricsByCoreType.\n * @memberof perfetto.protos.AndroidThreadTimeInStateMetric\n * @interface IMetricsByCoreType\n * @property {number|null} [timeInStateCpu] MetricsByCoreType timeInStateCpu\n * @property {string|null} [coreType] MetricsByCoreType coreType\n * @property {number|null} [runtimeMs] MetricsByCoreType runtimeMs\n * @property {number|null} [mcycles] MetricsByCoreType mcycles\n * @property {number|null} [powerProfileMah] MetricsByCoreType powerProfileMah\n */\n\n /**\n * Constructs a new MetricsByCoreType.\n * @memberof perfetto.protos.AndroidThreadTimeInStateMetric\n * @classdesc Represents a MetricsByCoreType.\n * @implements IMetricsByCoreType\n * @constructor\n * @param {perfetto.protos.AndroidThreadTimeInStateMetric.IMetricsByCoreType=} [properties] Properties to set\n */\n function MetricsByCoreType(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * MetricsByCoreType timeInStateCpu.\n * @member {number} timeInStateCpu\n * @memberof perfetto.protos.AndroidThreadTimeInStateMetric.MetricsByCoreType\n * @instance\n */\n MetricsByCoreType.prototype.timeInStateCpu = 0;\n\n /**\n * MetricsByCoreType coreType.\n * @member {string} coreType\n * @memberof perfetto.protos.AndroidThreadTimeInStateMetric.MetricsByCoreType\n * @instance\n */\n MetricsByCoreType.prototype.coreType = \"\";\n\n /**\n * MetricsByCoreType runtimeMs.\n * @member {number} runtimeMs\n * @memberof perfetto.protos.AndroidThreadTimeInStateMetric.MetricsByCoreType\n * @instance\n */\n MetricsByCoreType.prototype.runtimeMs = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * MetricsByCoreType mcycles.\n * @member {number} mcycles\n * @memberof perfetto.protos.AndroidThreadTimeInStateMetric.MetricsByCoreType\n * @instance\n */\n MetricsByCoreType.prototype.mcycles = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * MetricsByCoreType powerProfileMah.\n * @member {number} powerProfileMah\n * @memberof perfetto.protos.AndroidThreadTimeInStateMetric.MetricsByCoreType\n * @instance\n */\n MetricsByCoreType.prototype.powerProfileMah = 0;\n\n /**\n * Creates a new MetricsByCoreType instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidThreadTimeInStateMetric.MetricsByCoreType\n * @static\n * @param {perfetto.protos.AndroidThreadTimeInStateMetric.IMetricsByCoreType=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidThreadTimeInStateMetric.MetricsByCoreType} MetricsByCoreType instance\n */\n MetricsByCoreType.create = function create(properties) {\n return new MetricsByCoreType(properties);\n };\n\n /**\n * Encodes the specified MetricsByCoreType message. Does not implicitly {@link perfetto.protos.AndroidThreadTimeInStateMetric.MetricsByCoreType.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidThreadTimeInStateMetric.MetricsByCoreType\n * @static\n * @param {perfetto.protos.AndroidThreadTimeInStateMetric.IMetricsByCoreType} message MetricsByCoreType message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n MetricsByCoreType.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.coreType != null && Object.hasOwnProperty.call(message, \"coreType\"))\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.coreType);\n if (message.runtimeMs != null && Object.hasOwnProperty.call(message, \"runtimeMs\"))\n writer.uint32(/* id 2, wireType 0 =*/16).int64(message.runtimeMs);\n if (message.mcycles != null && Object.hasOwnProperty.call(message, \"mcycles\"))\n writer.uint32(/* id 3, wireType 0 =*/24).int64(message.mcycles);\n if (message.powerProfileMah != null && Object.hasOwnProperty.call(message, \"powerProfileMah\"))\n writer.uint32(/* id 4, wireType 1 =*/33).double(message.powerProfileMah);\n if (message.timeInStateCpu != null && Object.hasOwnProperty.call(message, \"timeInStateCpu\"))\n writer.uint32(/* id 5, wireType 0 =*/40).int32(message.timeInStateCpu);\n return writer;\n };\n\n /**\n * Encodes the specified MetricsByCoreType message, length delimited. Does not implicitly {@link perfetto.protos.AndroidThreadTimeInStateMetric.MetricsByCoreType.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidThreadTimeInStateMetric.MetricsByCoreType\n * @static\n * @param {perfetto.protos.AndroidThreadTimeInStateMetric.IMetricsByCoreType} message MetricsByCoreType message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n MetricsByCoreType.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a MetricsByCoreType message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidThreadTimeInStateMetric.MetricsByCoreType\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidThreadTimeInStateMetric.MetricsByCoreType} MetricsByCoreType\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n MetricsByCoreType.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidThreadTimeInStateMetric.MetricsByCoreType();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 5:\n message.timeInStateCpu = reader.int32();\n break;\n case 1:\n message.coreType = reader.string();\n break;\n case 2:\n message.runtimeMs = reader.int64();\n break;\n case 3:\n message.mcycles = reader.int64();\n break;\n case 4:\n message.powerProfileMah = reader.double();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a MetricsByCoreType message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidThreadTimeInStateMetric.MetricsByCoreType\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidThreadTimeInStateMetric.MetricsByCoreType} MetricsByCoreType\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n MetricsByCoreType.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a MetricsByCoreType message.\n * @function verify\n * @memberof perfetto.protos.AndroidThreadTimeInStateMetric.MetricsByCoreType\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n MetricsByCoreType.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.timeInStateCpu != null && message.hasOwnProperty(\"timeInStateCpu\"))\n if (!$util.isInteger(message.timeInStateCpu))\n return \"timeInStateCpu: integer expected\";\n if (message.coreType != null && message.hasOwnProperty(\"coreType\"))\n if (!$util.isString(message.coreType))\n return \"coreType: string expected\";\n if (message.runtimeMs != null && message.hasOwnProperty(\"runtimeMs\"))\n if (!$util.isInteger(message.runtimeMs) && !(message.runtimeMs && $util.isInteger(message.runtimeMs.low) && $util.isInteger(message.runtimeMs.high)))\n return \"runtimeMs: integer|Long expected\";\n if (message.mcycles != null && message.hasOwnProperty(\"mcycles\"))\n if (!$util.isInteger(message.mcycles) && !(message.mcycles && $util.isInteger(message.mcycles.low) && $util.isInteger(message.mcycles.high)))\n return \"mcycles: integer|Long expected\";\n if (message.powerProfileMah != null && message.hasOwnProperty(\"powerProfileMah\"))\n if (typeof message.powerProfileMah !== \"number\")\n return \"powerProfileMah: number expected\";\n return null;\n };\n\n /**\n * Creates a MetricsByCoreType message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidThreadTimeInStateMetric.MetricsByCoreType\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidThreadTimeInStateMetric.MetricsByCoreType} MetricsByCoreType\n */\n MetricsByCoreType.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidThreadTimeInStateMetric.MetricsByCoreType)\n return object;\n var message = new $root.perfetto.protos.AndroidThreadTimeInStateMetric.MetricsByCoreType();\n if (object.timeInStateCpu != null)\n message.timeInStateCpu = object.timeInStateCpu | 0;\n if (object.coreType != null)\n message.coreType = String(object.coreType);\n if (object.runtimeMs != null)\n if ($util.Long)\n (message.runtimeMs = $util.Long.fromValue(object.runtimeMs)).unsigned = false;\n else if (typeof object.runtimeMs === \"string\")\n message.runtimeMs = parseInt(object.runtimeMs, 10);\n else if (typeof object.runtimeMs === \"number\")\n message.runtimeMs = object.runtimeMs;\n else if (typeof object.runtimeMs === \"object\")\n message.runtimeMs = new $util.LongBits(object.runtimeMs.low >>> 0, object.runtimeMs.high >>> 0).toNumber();\n if (object.mcycles != null)\n if ($util.Long)\n (message.mcycles = $util.Long.fromValue(object.mcycles)).unsigned = false;\n else if (typeof object.mcycles === \"string\")\n message.mcycles = parseInt(object.mcycles, 10);\n else if (typeof object.mcycles === \"number\")\n message.mcycles = object.mcycles;\n else if (typeof object.mcycles === \"object\")\n message.mcycles = new $util.LongBits(object.mcycles.low >>> 0, object.mcycles.high >>> 0).toNumber();\n if (object.powerProfileMah != null)\n message.powerProfileMah = Number(object.powerProfileMah);\n return message;\n };\n\n /**\n * Creates a plain object from a MetricsByCoreType message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidThreadTimeInStateMetric.MetricsByCoreType\n * @static\n * @param {perfetto.protos.AndroidThreadTimeInStateMetric.MetricsByCoreType} message MetricsByCoreType\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n MetricsByCoreType.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.coreType = \"\";\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.runtimeMs = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.runtimeMs = options.longs === String ? \"0\" : 0;\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.mcycles = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.mcycles = options.longs === String ? \"0\" : 0;\n object.powerProfileMah = 0;\n object.timeInStateCpu = 0;\n }\n if (message.coreType != null && message.hasOwnProperty(\"coreType\"))\n object.coreType = message.coreType;\n if (message.runtimeMs != null && message.hasOwnProperty(\"runtimeMs\"))\n if (typeof message.runtimeMs === \"number\")\n object.runtimeMs = options.longs === String ? String(message.runtimeMs) : message.runtimeMs;\n else\n object.runtimeMs = options.longs === String ? $util.Long.prototype.toString.call(message.runtimeMs) : options.longs === Number ? new $util.LongBits(message.runtimeMs.low >>> 0, message.runtimeMs.high >>> 0).toNumber() : message.runtimeMs;\n if (message.mcycles != null && message.hasOwnProperty(\"mcycles\"))\n if (typeof message.mcycles === \"number\")\n object.mcycles = options.longs === String ? String(message.mcycles) : message.mcycles;\n else\n object.mcycles = options.longs === String ? $util.Long.prototype.toString.call(message.mcycles) : options.longs === Number ? new $util.LongBits(message.mcycles.low >>> 0, message.mcycles.high >>> 0).toNumber() : message.mcycles;\n if (message.powerProfileMah != null && message.hasOwnProperty(\"powerProfileMah\"))\n object.powerProfileMah = options.json && !isFinite(message.powerProfileMah) ? String(message.powerProfileMah) : message.powerProfileMah;\n if (message.timeInStateCpu != null && message.hasOwnProperty(\"timeInStateCpu\"))\n object.timeInStateCpu = message.timeInStateCpu;\n return object;\n };\n\n /**\n * Converts this MetricsByCoreType to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidThreadTimeInStateMetric.MetricsByCoreType\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n MetricsByCoreType.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return MetricsByCoreType;\n })();\n\n AndroidThreadTimeInStateMetric.Thread = (function() {\n\n /**\n * Properties of a Thread.\n * @memberof perfetto.protos.AndroidThreadTimeInStateMetric\n * @interface IThread\n * @property {string|null} [name] Thread name\n * @property {boolean|null} [mainThread] Thread mainThread\n * @property {Array.<perfetto.protos.AndroidThreadTimeInStateMetric.IMetricsByCoreType>|null} [metricsByCoreType] Thread metricsByCoreType\n */\n\n /**\n * Constructs a new Thread.\n * @memberof perfetto.protos.AndroidThreadTimeInStateMetric\n * @classdesc Represents a Thread.\n * @implements IThread\n * @constructor\n * @param {perfetto.protos.AndroidThreadTimeInStateMetric.IThread=} [properties] Properties to set\n */\n function Thread(properties) {\n this.metricsByCoreType = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * Thread name.\n * @member {string} name\n * @memberof perfetto.protos.AndroidThreadTimeInStateMetric.Thread\n * @instance\n */\n Thread.prototype.name = \"\";\n\n /**\n * Thread mainThread.\n * @member {boolean} mainThread\n * @memberof perfetto.protos.AndroidThreadTimeInStateMetric.Thread\n * @instance\n */\n Thread.prototype.mainThread = false;\n\n /**\n * Thread metricsByCoreType.\n * @member {Array.<perfetto.protos.AndroidThreadTimeInStateMetric.IMetricsByCoreType>} metricsByCoreType\n * @memberof perfetto.protos.AndroidThreadTimeInStateMetric.Thread\n * @instance\n */\n Thread.prototype.metricsByCoreType = $util.emptyArray;\n\n /**\n * Creates a new Thread instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidThreadTimeInStateMetric.Thread\n * @static\n * @param {perfetto.protos.AndroidThreadTimeInStateMetric.IThread=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidThreadTimeInStateMetric.Thread} Thread instance\n */\n Thread.create = function create(properties) {\n return new Thread(properties);\n };\n\n /**\n * Encodes the specified Thread message. Does not implicitly {@link perfetto.protos.AndroidThreadTimeInStateMetric.Thread.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidThreadTimeInStateMetric.Thread\n * @static\n * @param {perfetto.protos.AndroidThreadTimeInStateMetric.IThread} message Thread message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Thread.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.name != null && Object.hasOwnProperty.call(message, \"name\"))\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.name);\n if (message.metricsByCoreType != null && message.metricsByCoreType.length)\n for (var i = 0; i < message.metricsByCoreType.length; ++i)\n $root.perfetto.protos.AndroidThreadTimeInStateMetric.MetricsByCoreType.encode(message.metricsByCoreType[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n if (message.mainThread != null && Object.hasOwnProperty.call(message, \"mainThread\"))\n writer.uint32(/* id 3, wireType 0 =*/24).bool(message.mainThread);\n return writer;\n };\n\n /**\n * Encodes the specified Thread message, length delimited. Does not implicitly {@link perfetto.protos.AndroidThreadTimeInStateMetric.Thread.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidThreadTimeInStateMetric.Thread\n * @static\n * @param {perfetto.protos.AndroidThreadTimeInStateMetric.IThread} message Thread message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Thread.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a Thread message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidThreadTimeInStateMetric.Thread\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidThreadTimeInStateMetric.Thread} Thread\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Thread.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidThreadTimeInStateMetric.Thread();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.name = reader.string();\n break;\n case 3:\n message.mainThread = reader.bool();\n break;\n case 2:\n if (!(message.metricsByCoreType && message.metricsByCoreType.length))\n message.metricsByCoreType = [];\n message.metricsByCoreType.push($root.perfetto.protos.AndroidThreadTimeInStateMetric.MetricsByCoreType.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a Thread message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidThreadTimeInStateMetric.Thread\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidThreadTimeInStateMetric.Thread} Thread\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Thread.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a Thread message.\n * @function verify\n * @memberof perfetto.protos.AndroidThreadTimeInStateMetric.Thread\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n Thread.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.name != null && message.hasOwnProperty(\"name\"))\n if (!$util.isString(message.name))\n return \"name: string expected\";\n if (message.mainThread != null && message.hasOwnProperty(\"mainThread\"))\n if (typeof message.mainThread !== \"boolean\")\n return \"mainThread: boolean expected\";\n if (message.metricsByCoreType != null && message.hasOwnProperty(\"metricsByCoreType\")) {\n if (!Array.isArray(message.metricsByCoreType))\n return \"metricsByCoreType: array expected\";\n for (var i = 0; i < message.metricsByCoreType.length; ++i) {\n var error = $root.perfetto.protos.AndroidThreadTimeInStateMetric.MetricsByCoreType.verify(message.metricsByCoreType[i]);\n if (error)\n return \"metricsByCoreType.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates a Thread message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidThreadTimeInStateMetric.Thread\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidThreadTimeInStateMetric.Thread} Thread\n */\n Thread.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidThreadTimeInStateMetric.Thread)\n return object;\n var message = new $root.perfetto.protos.AndroidThreadTimeInStateMetric.Thread();\n if (object.name != null)\n message.name = String(object.name);\n if (object.mainThread != null)\n message.mainThread = Boolean(object.mainThread);\n if (object.metricsByCoreType) {\n if (!Array.isArray(object.metricsByCoreType))\n throw TypeError(\".perfetto.protos.AndroidThreadTimeInStateMetric.Thread.metricsByCoreType: array expected\");\n message.metricsByCoreType = [];\n for (var i = 0; i < object.metricsByCoreType.length; ++i) {\n if (typeof object.metricsByCoreType[i] !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidThreadTimeInStateMetric.Thread.metricsByCoreType: object expected\");\n message.metricsByCoreType[i] = $root.perfetto.protos.AndroidThreadTimeInStateMetric.MetricsByCoreType.fromObject(object.metricsByCoreType[i]);\n }\n }\n return message;\n };\n\n /**\n * Creates a plain object from a Thread message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidThreadTimeInStateMetric.Thread\n * @static\n * @param {perfetto.protos.AndroidThreadTimeInStateMetric.Thread} message Thread\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n Thread.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.metricsByCoreType = [];\n if (options.defaults) {\n object.name = \"\";\n object.mainThread = false;\n }\n if (message.name != null && message.hasOwnProperty(\"name\"))\n object.name = message.name;\n if (message.metricsByCoreType && message.metricsByCoreType.length) {\n object.metricsByCoreType = [];\n for (var j = 0; j < message.metricsByCoreType.length; ++j)\n object.metricsByCoreType[j] = $root.perfetto.protos.AndroidThreadTimeInStateMetric.MetricsByCoreType.toObject(message.metricsByCoreType[j], options);\n }\n if (message.mainThread != null && message.hasOwnProperty(\"mainThread\"))\n object.mainThread = message.mainThread;\n return object;\n };\n\n /**\n * Converts this Thread to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidThreadTimeInStateMetric.Thread\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n Thread.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return Thread;\n })();\n\n AndroidThreadTimeInStateMetric.Process = (function() {\n\n /**\n * Properties of a Process.\n * @memberof perfetto.protos.AndroidThreadTimeInStateMetric\n * @interface IProcess\n * @property {perfetto.protos.IAndroidProcessMetadata|null} [metadata] Process metadata\n * @property {Array.<perfetto.protos.AndroidThreadTimeInStateMetric.IMetricsByCoreType>|null} [metricsByCoreType] Process metricsByCoreType\n * @property {Array.<perfetto.protos.AndroidThreadTimeInStateMetric.IThread>|null} [threads] Process threads\n */\n\n /**\n * Constructs a new Process.\n * @memberof perfetto.protos.AndroidThreadTimeInStateMetric\n * @classdesc Represents a Process.\n * @implements IProcess\n * @constructor\n * @param {perfetto.protos.AndroidThreadTimeInStateMetric.IProcess=} [properties] Properties to set\n */\n function Process(properties) {\n this.metricsByCoreType = [];\n this.threads = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * Process metadata.\n * @member {perfetto.protos.IAndroidProcessMetadata|null|undefined} metadata\n * @memberof perfetto.protos.AndroidThreadTimeInStateMetric.Process\n * @instance\n */\n Process.prototype.metadata = null;\n\n /**\n * Process metricsByCoreType.\n * @member {Array.<perfetto.protos.AndroidThreadTimeInStateMetric.IMetricsByCoreType>} metricsByCoreType\n * @memberof perfetto.protos.AndroidThreadTimeInStateMetric.Process\n * @instance\n */\n Process.prototype.metricsByCoreType = $util.emptyArray;\n\n /**\n * Process threads.\n * @member {Array.<perfetto.protos.AndroidThreadTimeInStateMetric.IThread>} threads\n * @memberof perfetto.protos.AndroidThreadTimeInStateMetric.Process\n * @instance\n */\n Process.prototype.threads = $util.emptyArray;\n\n /**\n * Creates a new Process instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidThreadTimeInStateMetric.Process\n * @static\n * @param {perfetto.protos.AndroidThreadTimeInStateMetric.IProcess=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidThreadTimeInStateMetric.Process} Process instance\n */\n Process.create = function create(properties) {\n return new Process(properties);\n };\n\n /**\n * Encodes the specified Process message. Does not implicitly {@link perfetto.protos.AndroidThreadTimeInStateMetric.Process.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidThreadTimeInStateMetric.Process\n * @static\n * @param {perfetto.protos.AndroidThreadTimeInStateMetric.IProcess} message Process message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Process.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.metadata != null && Object.hasOwnProperty.call(message, \"metadata\"))\n $root.perfetto.protos.AndroidProcessMetadata.encode(message.metadata, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n if (message.metricsByCoreType != null && message.metricsByCoreType.length)\n for (var i = 0; i < message.metricsByCoreType.length; ++i)\n $root.perfetto.protos.AndroidThreadTimeInStateMetric.MetricsByCoreType.encode(message.metricsByCoreType[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n if (message.threads != null && message.threads.length)\n for (var i = 0; i < message.threads.length; ++i)\n $root.perfetto.protos.AndroidThreadTimeInStateMetric.Thread.encode(message.threads[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified Process message, length delimited. Does not implicitly {@link perfetto.protos.AndroidThreadTimeInStateMetric.Process.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidThreadTimeInStateMetric.Process\n * @static\n * @param {perfetto.protos.AndroidThreadTimeInStateMetric.IProcess} message Process message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Process.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a Process message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidThreadTimeInStateMetric.Process\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidThreadTimeInStateMetric.Process} Process\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Process.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidThreadTimeInStateMetric.Process();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.metadata = $root.perfetto.protos.AndroidProcessMetadata.decode(reader, reader.uint32());\n break;\n case 2:\n if (!(message.metricsByCoreType && message.metricsByCoreType.length))\n message.metricsByCoreType = [];\n message.metricsByCoreType.push($root.perfetto.protos.AndroidThreadTimeInStateMetric.MetricsByCoreType.decode(reader, reader.uint32()));\n break;\n case 3:\n if (!(message.threads && message.threads.length))\n message.threads = [];\n message.threads.push($root.perfetto.protos.AndroidThreadTimeInStateMetric.Thread.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a Process message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidThreadTimeInStateMetric.Process\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidThreadTimeInStateMetric.Process} Process\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Process.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a Process message.\n * @function verify\n * @memberof perfetto.protos.AndroidThreadTimeInStateMetric.Process\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n Process.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.metadata != null && message.hasOwnProperty(\"metadata\")) {\n var error = $root.perfetto.protos.AndroidProcessMetadata.verify(message.metadata);\n if (error)\n return \"metadata.\" + error;\n }\n if (message.metricsByCoreType != null && message.hasOwnProperty(\"metricsByCoreType\")) {\n if (!Array.isArray(message.metricsByCoreType))\n return \"metricsByCoreType: array expected\";\n for (var i = 0; i < message.metricsByCoreType.length; ++i) {\n var error = $root.perfetto.protos.AndroidThreadTimeInStateMetric.MetricsByCoreType.verify(message.metricsByCoreType[i]);\n if (error)\n return \"metricsByCoreType.\" + error;\n }\n }\n if (message.threads != null && message.hasOwnProperty(\"threads\")) {\n if (!Array.isArray(message.threads))\n return \"threads: array expected\";\n for (var i = 0; i < message.threads.length; ++i) {\n var error = $root.perfetto.protos.AndroidThreadTimeInStateMetric.Thread.verify(message.threads[i]);\n if (error)\n return \"threads.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates a Process message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidThreadTimeInStateMetric.Process\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidThreadTimeInStateMetric.Process} Process\n */\n Process.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidThreadTimeInStateMetric.Process)\n return object;\n var message = new $root.perfetto.protos.AndroidThreadTimeInStateMetric.Process();\n if (object.metadata != null) {\n if (typeof object.metadata !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidThreadTimeInStateMetric.Process.metadata: object expected\");\n message.metadata = $root.perfetto.protos.AndroidProcessMetadata.fromObject(object.metadata);\n }\n if (object.metricsByCoreType) {\n if (!Array.isArray(object.metricsByCoreType))\n throw TypeError(\".perfetto.protos.AndroidThreadTimeInStateMetric.Process.metricsByCoreType: array expected\");\n message.metricsByCoreType = [];\n for (var i = 0; i < object.metricsByCoreType.length; ++i) {\n if (typeof object.metricsByCoreType[i] !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidThreadTimeInStateMetric.Process.metricsByCoreType: object expected\");\n message.metricsByCoreType[i] = $root.perfetto.protos.AndroidThreadTimeInStateMetric.MetricsByCoreType.fromObject(object.metricsByCoreType[i]);\n }\n }\n if (object.threads) {\n if (!Array.isArray(object.threads))\n throw TypeError(\".perfetto.protos.AndroidThreadTimeInStateMetric.Process.threads: array expected\");\n message.threads = [];\n for (var i = 0; i < object.threads.length; ++i) {\n if (typeof object.threads[i] !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidThreadTimeInStateMetric.Process.threads: object expected\");\n message.threads[i] = $root.perfetto.protos.AndroidThreadTimeInStateMetric.Thread.fromObject(object.threads[i]);\n }\n }\n return message;\n };\n\n /**\n * Creates a plain object from a Process message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidThreadTimeInStateMetric.Process\n * @static\n * @param {perfetto.protos.AndroidThreadTimeInStateMetric.Process} message Process\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n Process.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults) {\n object.metricsByCoreType = [];\n object.threads = [];\n }\n if (options.defaults)\n object.metadata = null;\n if (message.metadata != null && message.hasOwnProperty(\"metadata\"))\n object.metadata = $root.perfetto.protos.AndroidProcessMetadata.toObject(message.metadata, options);\n if (message.metricsByCoreType && message.metricsByCoreType.length) {\n object.metricsByCoreType = [];\n for (var j = 0; j < message.metricsByCoreType.length; ++j)\n object.metricsByCoreType[j] = $root.perfetto.protos.AndroidThreadTimeInStateMetric.MetricsByCoreType.toObject(message.metricsByCoreType[j], options);\n }\n if (message.threads && message.threads.length) {\n object.threads = [];\n for (var j = 0; j < message.threads.length; ++j)\n object.threads[j] = $root.perfetto.protos.AndroidThreadTimeInStateMetric.Thread.toObject(message.threads[j], options);\n }\n return object;\n };\n\n /**\n * Converts this Process to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidThreadTimeInStateMetric.Process\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n Process.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return Process;\n })();\n\n return AndroidThreadTimeInStateMetric;\n })();\n\n protos.AndroidTraceQualityMetric = (function() {\n\n /**\n * Properties of an AndroidTraceQualityMetric.\n * @memberof perfetto.protos\n * @interface IAndroidTraceQualityMetric\n * @property {Array.<perfetto.protos.AndroidTraceQualityMetric.IFailure>|null} [failures] AndroidTraceQualityMetric failures\n */\n\n /**\n * Constructs a new AndroidTraceQualityMetric.\n * @memberof perfetto.protos\n * @classdesc Represents an AndroidTraceQualityMetric.\n * @implements IAndroidTraceQualityMetric\n * @constructor\n * @param {perfetto.protos.IAndroidTraceQualityMetric=} [properties] Properties to set\n */\n function AndroidTraceQualityMetric(properties) {\n this.failures = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * AndroidTraceQualityMetric failures.\n * @member {Array.<perfetto.protos.AndroidTraceQualityMetric.IFailure>} failures\n * @memberof perfetto.protos.AndroidTraceQualityMetric\n * @instance\n */\n AndroidTraceQualityMetric.prototype.failures = $util.emptyArray;\n\n /**\n * Creates a new AndroidTraceQualityMetric instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidTraceQualityMetric\n * @static\n * @param {perfetto.protos.IAndroidTraceQualityMetric=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidTraceQualityMetric} AndroidTraceQualityMetric instance\n */\n AndroidTraceQualityMetric.create = function create(properties) {\n return new AndroidTraceQualityMetric(properties);\n };\n\n /**\n * Encodes the specified AndroidTraceQualityMetric message. Does not implicitly {@link perfetto.protos.AndroidTraceQualityMetric.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidTraceQualityMetric\n * @static\n * @param {perfetto.protos.IAndroidTraceQualityMetric} message AndroidTraceQualityMetric message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n AndroidTraceQualityMetric.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.failures != null && message.failures.length)\n for (var i = 0; i < message.failures.length; ++i)\n $root.perfetto.protos.AndroidTraceQualityMetric.Failure.encode(message.failures[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified AndroidTraceQualityMetric message, length delimited. Does not implicitly {@link perfetto.protos.AndroidTraceQualityMetric.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidTraceQualityMetric\n * @static\n * @param {perfetto.protos.IAndroidTraceQualityMetric} message AndroidTraceQualityMetric message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n AndroidTraceQualityMetric.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes an AndroidTraceQualityMetric message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidTraceQualityMetric\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidTraceQualityMetric} AndroidTraceQualityMetric\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n AndroidTraceQualityMetric.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidTraceQualityMetric();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (!(message.failures && message.failures.length))\n message.failures = [];\n message.failures.push($root.perfetto.protos.AndroidTraceQualityMetric.Failure.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes an AndroidTraceQualityMetric message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidTraceQualityMetric\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidTraceQualityMetric} AndroidTraceQualityMetric\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n AndroidTraceQualityMetric.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies an AndroidTraceQualityMetric message.\n * @function verify\n * @memberof perfetto.protos.AndroidTraceQualityMetric\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n AndroidTraceQualityMetric.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.failures != null && message.hasOwnProperty(\"failures\")) {\n if (!Array.isArray(message.failures))\n return \"failures: array expected\";\n for (var i = 0; i < message.failures.length; ++i) {\n var error = $root.perfetto.protos.AndroidTraceQualityMetric.Failure.verify(message.failures[i]);\n if (error)\n return \"failures.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates an AndroidTraceQualityMetric message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidTraceQualityMetric\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidTraceQualityMetric} AndroidTraceQualityMetric\n */\n AndroidTraceQualityMetric.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidTraceQualityMetric)\n return object;\n var message = new $root.perfetto.protos.AndroidTraceQualityMetric();\n if (object.failures) {\n if (!Array.isArray(object.failures))\n throw TypeError(\".perfetto.protos.AndroidTraceQualityMetric.failures: array expected\");\n message.failures = [];\n for (var i = 0; i < object.failures.length; ++i) {\n if (typeof object.failures[i] !== \"object\")\n throw TypeError(\".perfetto.protos.AndroidTraceQualityMetric.failures: object expected\");\n message.failures[i] = $root.perfetto.protos.AndroidTraceQualityMetric.Failure.fromObject(object.failures[i]);\n }\n }\n return message;\n };\n\n /**\n * Creates a plain object from an AndroidTraceQualityMetric message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidTraceQualityMetric\n * @static\n * @param {perfetto.protos.AndroidTraceQualityMetric} message AndroidTraceQualityMetric\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n AndroidTraceQualityMetric.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.failures = [];\n if (message.failures && message.failures.length) {\n object.failures = [];\n for (var j = 0; j < message.failures.length; ++j)\n object.failures[j] = $root.perfetto.protos.AndroidTraceQualityMetric.Failure.toObject(message.failures[j], options);\n }\n return object;\n };\n\n /**\n * Converts this AndroidTraceQualityMetric to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidTraceQualityMetric\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n AndroidTraceQualityMetric.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n AndroidTraceQualityMetric.Failure = (function() {\n\n /**\n * Properties of a Failure.\n * @memberof perfetto.protos.AndroidTraceQualityMetric\n * @interface IFailure\n * @property {string|null} [name] Failure name\n */\n\n /**\n * Constructs a new Failure.\n * @memberof perfetto.protos.AndroidTraceQualityMetric\n * @classdesc Represents a Failure.\n * @implements IFailure\n * @constructor\n * @param {perfetto.protos.AndroidTraceQualityMetric.IFailure=} [properties] Properties to set\n */\n function Failure(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * Failure name.\n * @member {string} name\n * @memberof perfetto.protos.AndroidTraceQualityMetric.Failure\n * @instance\n */\n Failure.prototype.name = \"\";\n\n /**\n * Creates a new Failure instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.AndroidTraceQualityMetric.Failure\n * @static\n * @param {perfetto.protos.AndroidTraceQualityMetric.IFailure=} [properties] Properties to set\n * @returns {perfetto.protos.AndroidTraceQualityMetric.Failure} Failure instance\n */\n Failure.create = function create(properties) {\n return new Failure(properties);\n };\n\n /**\n * Encodes the specified Failure message. Does not implicitly {@link perfetto.protos.AndroidTraceQualityMetric.Failure.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.AndroidTraceQualityMetric.Failure\n * @static\n * @param {perfetto.protos.AndroidTraceQualityMetric.IFailure} message Failure message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Failure.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.name != null && Object.hasOwnProperty.call(message, \"name\"))\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.name);\n return writer;\n };\n\n /**\n * Encodes the specified Failure message, length delimited. Does not implicitly {@link perfetto.protos.AndroidTraceQualityMetric.Failure.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.AndroidTraceQualityMetric.Failure\n * @static\n * @param {perfetto.protos.AndroidTraceQualityMetric.IFailure} message Failure message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Failure.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a Failure message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.AndroidTraceQualityMetric.Failure\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.AndroidTraceQualityMetric.Failure} Failure\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Failure.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.AndroidTraceQualityMetric.Failure();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.name = reader.string();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a Failure message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.AndroidTraceQualityMetric.Failure\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.AndroidTraceQualityMetric.Failure} Failure\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Failure.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a Failure message.\n * @function verify\n * @memberof perfetto.protos.AndroidTraceQualityMetric.Failure\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n Failure.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.name != null && message.hasOwnProperty(\"name\"))\n if (!$util.isString(message.name))\n return \"name: string expected\";\n return null;\n };\n\n /**\n * Creates a Failure message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.AndroidTraceQualityMetric.Failure\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.AndroidTraceQualityMetric.Failure} Failure\n */\n Failure.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.AndroidTraceQualityMetric.Failure)\n return object;\n var message = new $root.perfetto.protos.AndroidTraceQualityMetric.Failure();\n if (object.name != null)\n message.name = String(object.name);\n return message;\n };\n\n /**\n * Creates a plain object from a Failure message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.AndroidTraceQualityMetric.Failure\n * @static\n * @param {perfetto.protos.AndroidTraceQualityMetric.Failure} message Failure\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n Failure.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults)\n object.name = \"\";\n if (message.name != null && message.hasOwnProperty(\"name\"))\n object.name = message.name;\n return object;\n };\n\n /**\n * Converts this Failure to JSON.\n * @function toJSON\n * @memberof perfetto.protos.AndroidTraceQualityMetric.Failure\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n Failure.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return Failure;\n })();\n\n return AndroidTraceQualityMetric;\n })();\n\n protos.UnsymbolizedFrames = (function() {\n\n /**\n * Properties of an UnsymbolizedFrames.\n * @memberof perfetto.protos\n * @interface IUnsymbolizedFrames\n * @property {Array.<perfetto.protos.UnsymbolizedFrames.IFrame>|null} [frames] UnsymbolizedFrames frames\n */\n\n /**\n * Constructs a new UnsymbolizedFrames.\n * @memberof perfetto.protos\n * @classdesc Represents an UnsymbolizedFrames.\n * @implements IUnsymbolizedFrames\n * @constructor\n * @param {perfetto.protos.IUnsymbolizedFrames=} [properties] Properties to set\n */\n function UnsymbolizedFrames(properties) {\n this.frames = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * UnsymbolizedFrames frames.\n * @member {Array.<perfetto.protos.UnsymbolizedFrames.IFrame>} frames\n * @memberof perfetto.protos.UnsymbolizedFrames\n * @instance\n */\n UnsymbolizedFrames.prototype.frames = $util.emptyArray;\n\n /**\n * Creates a new UnsymbolizedFrames instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.UnsymbolizedFrames\n * @static\n * @param {perfetto.protos.IUnsymbolizedFrames=} [properties] Properties to set\n * @returns {perfetto.protos.UnsymbolizedFrames} UnsymbolizedFrames instance\n */\n UnsymbolizedFrames.create = function create(properties) {\n return new UnsymbolizedFrames(properties);\n };\n\n /**\n * Encodes the specified UnsymbolizedFrames message. Does not implicitly {@link perfetto.protos.UnsymbolizedFrames.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.UnsymbolizedFrames\n * @static\n * @param {perfetto.protos.IUnsymbolizedFrames} message UnsymbolizedFrames message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n UnsymbolizedFrames.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.frames != null && message.frames.length)\n for (var i = 0; i < message.frames.length; ++i)\n $root.perfetto.protos.UnsymbolizedFrames.Frame.encode(message.frames[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified UnsymbolizedFrames message, length delimited. Does not implicitly {@link perfetto.protos.UnsymbolizedFrames.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.UnsymbolizedFrames\n * @static\n * @param {perfetto.protos.IUnsymbolizedFrames} message UnsymbolizedFrames message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n UnsymbolizedFrames.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes an UnsymbolizedFrames message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.UnsymbolizedFrames\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.UnsymbolizedFrames} UnsymbolizedFrames\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n UnsymbolizedFrames.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.UnsymbolizedFrames();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (!(message.frames && message.frames.length))\n message.frames = [];\n message.frames.push($root.perfetto.protos.UnsymbolizedFrames.Frame.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes an UnsymbolizedFrames message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.UnsymbolizedFrames\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.UnsymbolizedFrames} UnsymbolizedFrames\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n UnsymbolizedFrames.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies an UnsymbolizedFrames message.\n * @function verify\n * @memberof perfetto.protos.UnsymbolizedFrames\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n UnsymbolizedFrames.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.frames != null && message.hasOwnProperty(\"frames\")) {\n if (!Array.isArray(message.frames))\n return \"frames: array expected\";\n for (var i = 0; i < message.frames.length; ++i) {\n var error = $root.perfetto.protos.UnsymbolizedFrames.Frame.verify(message.frames[i]);\n if (error)\n return \"frames.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates an UnsymbolizedFrames message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.UnsymbolizedFrames\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.UnsymbolizedFrames} UnsymbolizedFrames\n */\n UnsymbolizedFrames.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.UnsymbolizedFrames)\n return object;\n var message = new $root.perfetto.protos.UnsymbolizedFrames();\n if (object.frames) {\n if (!Array.isArray(object.frames))\n throw TypeError(\".perfetto.protos.UnsymbolizedFrames.frames: array expected\");\n message.frames = [];\n for (var i = 0; i < object.frames.length; ++i) {\n if (typeof object.frames[i] !== \"object\")\n throw TypeError(\".perfetto.protos.UnsymbolizedFrames.frames: object expected\");\n message.frames[i] = $root.perfetto.protos.UnsymbolizedFrames.Frame.fromObject(object.frames[i]);\n }\n }\n return message;\n };\n\n /**\n * Creates a plain object from an UnsymbolizedFrames message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.UnsymbolizedFrames\n * @static\n * @param {perfetto.protos.UnsymbolizedFrames} message UnsymbolizedFrames\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n UnsymbolizedFrames.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.frames = [];\n if (message.frames && message.frames.length) {\n object.frames = [];\n for (var j = 0; j < message.frames.length; ++j)\n object.frames[j] = $root.perfetto.protos.UnsymbolizedFrames.Frame.toObject(message.frames[j], options);\n }\n return object;\n };\n\n /**\n * Converts this UnsymbolizedFrames to JSON.\n * @function toJSON\n * @memberof perfetto.protos.UnsymbolizedFrames\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n UnsymbolizedFrames.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n UnsymbolizedFrames.Frame = (function() {\n\n /**\n * Properties of a Frame.\n * @memberof perfetto.protos.UnsymbolizedFrames\n * @interface IFrame\n * @property {string|null} [module] Frame module\n * @property {string|null} [buildId] Frame buildId\n * @property {number|null} [address] Frame address\n */\n\n /**\n * Constructs a new Frame.\n * @memberof perfetto.protos.UnsymbolizedFrames\n * @classdesc Represents a Frame.\n * @implements IFrame\n * @constructor\n * @param {perfetto.protos.UnsymbolizedFrames.IFrame=} [properties] Properties to set\n */\n function Frame(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * Frame module.\n * @member {string} module\n * @memberof perfetto.protos.UnsymbolizedFrames.Frame\n * @instance\n */\n Frame.prototype.module = \"\";\n\n /**\n * Frame buildId.\n * @member {string} buildId\n * @memberof perfetto.protos.UnsymbolizedFrames.Frame\n * @instance\n */\n Frame.prototype.buildId = \"\";\n\n /**\n * Frame address.\n * @member {number} address\n * @memberof perfetto.protos.UnsymbolizedFrames.Frame\n * @instance\n */\n Frame.prototype.address = $util.Long ? $util.Long.fromBits(0,0,false) : 0;\n\n /**\n * Creates a new Frame instance using the specified properties.\n * @function create\n * @memberof perfetto.protos.UnsymbolizedFrames.Frame\n * @static\n * @param {perfetto.protos.UnsymbolizedFrames.IFrame=} [properties] Properties to set\n * @returns {perfetto.protos.UnsymbolizedFrames.Frame} Frame instance\n */\n Frame.create = function create(properties) {\n return new Frame(properties);\n };\n\n /**\n * Encodes the specified Frame message. Does not implicitly {@link perfetto.protos.UnsymbolizedFrames.Frame.verify|verify} messages.\n * @function encode\n * @memberof perfetto.protos.UnsymbolizedFrames.Frame\n * @static\n * @param {perfetto.protos.UnsymbolizedFrames.IFrame} message Frame message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Frame.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.module != null && Object.hasOwnProperty.call(message, \"module\"))\n writer.uint32(/* id 1, wireType 2 =*/10).string(message.module);\n if (message.buildId != null && Object.hasOwnProperty.call(message, \"buildId\"))\n writer.uint32(/* id 2, wireType 2 =*/18).string(message.buildId);\n if (message.address != null && Object.hasOwnProperty.call(message, \"address\"))\n writer.uint32(/* id 3, wireType 0 =*/24).int64(message.address);\n return writer;\n };\n\n /**\n * Encodes the specified Frame message, length delimited. Does not implicitly {@link perfetto.protos.UnsymbolizedFrames.Frame.verify|verify} messages.\n * @function encodeDelimited\n * @memberof perfetto.protos.UnsymbolizedFrames.Frame\n * @static\n * @param {perfetto.protos.UnsymbolizedFrames.IFrame} message Frame message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n Frame.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a Frame message from the specified reader or buffer.\n * @function decode\n * @memberof perfetto.protos.UnsymbolizedFrames.Frame\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {perfetto.protos.UnsymbolizedFrames.Frame} Frame\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Frame.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.perfetto.protos.UnsymbolizedFrames.Frame();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.module = reader.string();\n break;\n case 2:\n message.buildId = reader.string();\n break;\n case 3:\n message.address = reader.int64();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a Frame message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof perfetto.protos.UnsymbolizedFrames.Frame\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {perfetto.protos.UnsymbolizedFrames.Frame} Frame\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n Frame.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a Frame message.\n * @function verify\n * @memberof perfetto.protos.UnsymbolizedFrames.Frame\n * @static\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n Frame.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.module != null && message.hasOwnProperty(\"module\"))\n if (!$util.isString(message.module))\n return \"module: string expected\";\n if (message.buildId != null && message.hasOwnProperty(\"buildId\"))\n if (!$util.isString(message.buildId))\n return \"buildId: string expected\";\n if (message.address != null && message.hasOwnProperty(\"address\"))\n if (!$util.isInteger(message.address) && !(message.address && $util.isInteger(message.address.low) && $util.isInteger(message.address.high)))\n return \"address: integer|Long expected\";\n return null;\n };\n\n /**\n * Creates a Frame message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof perfetto.protos.UnsymbolizedFrames.Frame\n * @static\n * @param {Object.<string,*>} object Plain object\n * @returns {perfetto.protos.UnsymbolizedFrames.Frame} Frame\n */\n Frame.fromObject = function fromObject(object) {\n if (object instanceof $root.perfetto.protos.UnsymbolizedFrames.Frame)\n return object;\n var message = new $root.perfetto.protos.UnsymbolizedFrames.Frame();\n if (object.module != null)\n message.module = String(object.module);\n if (object.buildId != null)\n message.buildId = String(object.buildId);\n if (object.address != null)\n if ($util.Long)\n (message.address = $util.Long.fromValue(object.address)).unsigned = false;\n else if (typeof object.address === \"string\")\n message.address = parseInt(object.address, 10);\n else if (typeof object.address === \"number\")\n message.address = object.address;\n else if (typeof object.address === \"object\")\n message.address = new $util.LongBits(object.address.low >>> 0, object.address.high >>> 0).toNumber();\n return message;\n };\n\n /**\n * Creates a plain object from a Frame message. Also converts values to other types if specified.\n * @function toObject\n * @memberof perfetto.protos.UnsymbolizedFrames.Frame\n * @static\n * @param {perfetto.protos.UnsymbolizedFrames.Frame} message Frame\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\n Frame.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.module = \"\";\n object.buildId = \"\";\n if ($util.Long) {\n var long = new $util.Long(0, 0, false);\n object.address = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;\n } else\n object.address = options.longs === String ? \"0\" : 0;\n }\n if (message.module != null && message.hasOwnProperty(\"module\"))\n object.module = message.module;\n if (message.buildId != null && message.hasOwnProperty(\"buildId\"))\n object.buildId = message.buildId;\n if (message.address != null && message.hasOwnProperty(\"address\"))\n if (typeof message.address === \"number\")\n object.address = options.longs === String ? String(message.address) : message.address;\n else\n object.address = options.longs === String ? $util.Long.prototype.toString.call(message.address) : options.longs === Number ? new $util.LongBits(message.address.low >>> 0, message.address.high >>> 0).toNumber() : message.address;\n return object;\n };\n\n /**\n * Converts this Frame to JSON.\n * @function toJSON\n * @memberof perfetto.protos.UnsymbolizedFrames.Frame\n * @instance\n * @returns {Object.<string,*>} JSON object\n */\n Frame.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return Frame;\n })();\n\n return UnsymbolizedFrames;\n })();\n\n return protos;\n })();\n\n return perfetto;\n})();\n\nmodule.exports = $root;\n","// Copyright (C) 2018 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as protos from '../gen/protos';\n\n// Aliases protos to avoid the super nested namespaces.\n// See https://www.typescriptlang.org/docs/handbook/namespaces.html#aliases\nimport AndroidLogConfig = protos.perfetto.protos.AndroidLogConfig;\nimport AndroidPowerConfig = protos.perfetto.protos.AndroidPowerConfig;\nimport AndroidLogId = protos.perfetto.protos.AndroidLogId;\nimport BatteryCounters =\n protos.perfetto.protos.AndroidPowerConfig.BatteryCounters;\nimport BufferConfig = protos.perfetto.protos.TraceConfig.BufferConfig;\nimport ChromeConfig = protos.perfetto.protos.ChromeConfig;\nimport ConsumerPort = protos.perfetto.protos.ConsumerPort;\nimport NativeContinuousDumpConfig =\n protos.perfetto.protos.HeapprofdConfig.ContinuousDumpConfig;\nimport JavaContinuousDumpConfig =\n protos.perfetto.protos.JavaHprofConfig.ContinuousDumpConfig;\nimport DataSourceConfig = protos.perfetto.protos.DataSourceConfig;\nimport FtraceConfig = protos.perfetto.protos.FtraceConfig;\nimport HeapprofdConfig = protos.perfetto.protos.HeapprofdConfig;\nimport JavaHprofConfig = protos.perfetto.protos.JavaHprofConfig;\nimport IAndroidPowerConfig = protos.perfetto.protos.IAndroidPowerConfig;\nimport IBufferConfig = protos.perfetto.protos.TraceConfig.IBufferConfig;\nimport IProcessStatsConfig = protos.perfetto.protos.IProcessStatsConfig;\nimport ISysStatsConfig = protos.perfetto.protos.ISysStatsConfig;\nimport ITraceConfig = protos.perfetto.protos.ITraceConfig;\nimport MeminfoCounters = protos.perfetto.protos.MeminfoCounters;\nimport ProcessStatsConfig = protos.perfetto.protos.ProcessStatsConfig;\nimport StatCounters = protos.perfetto.protos.SysStatsConfig.StatCounters;\nimport SysStatsConfig = protos.perfetto.protos.SysStatsConfig;\nimport TraceConfig = protos.perfetto.protos.TraceConfig;\nimport VmstatCounters = protos.perfetto.protos.VmstatCounters;\n\n// Trace Processor protos.\nimport QueryArgs = protos.perfetto.protos.QueryArgs;\nimport StatusResult = protos.perfetto.protos.StatusResult;\nimport ComputeMetricArgs = protos.perfetto.protos.ComputeMetricArgs;\nimport ComputeMetricResult = protos.perfetto.protos.ComputeMetricResult;\n\nexport {\n AndroidLogConfig,\n AndroidLogId,\n AndroidPowerConfig,\n BatteryCounters,\n BufferConfig,\n ChromeConfig,\n ConsumerPort,\n ComputeMetricArgs,\n ComputeMetricResult,\n DataSourceConfig,\n FtraceConfig,\n HeapprofdConfig,\n IAndroidPowerConfig,\n IBufferConfig,\n IProcessStatsConfig,\n ISysStatsConfig,\n ITraceConfig,\n JavaContinuousDumpConfig,\n JavaHprofConfig,\n MeminfoCounters,\n NativeContinuousDumpConfig,\n ProcessStatsConfig,\n QueryArgs,\n StatCounters,\n StatusResult,\n SysStatsConfig,\n TraceConfig,\n VmstatCounters,\n};\n","// Copyright (C) 2019 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nexport const _TextDecoder = TextDecoder;\nexport const _TextEncoder = TextEncoder;","// Copyright (C) 2019 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {_TextDecoder, _TextEncoder} from 'custom_utils';\n\nimport {assertExists} from '../base/logging';\n\nimport {Adb, AdbMsg, AdbStream, CmdType} from './adb_interfaces';\n\nconst textEncoder = new _TextEncoder();\nconst textDecoder = new _TextDecoder();\n\nexport const VERSION_WITH_CHECKSUM = 0x01000000;\nexport const VERSION_NO_CHECKSUM = 0x01000001;\nexport const DEFAULT_MAX_PAYLOAD_BYTES = 256 * 1024;\n\nexport enum AdbState {\n DISCONNECTED = 0,\n // Authentication steps, see AdbOverWebUsb's handleAuthentication().\n AUTH_STEP1 = 1,\n AUTH_STEP2 = 2,\n AUTH_STEP3 = 3,\n\n CONNECTED = 2,\n}\n\nenum AuthCmd {\n TOKEN = 1,\n SIGNATURE = 2,\n RSAPUBLICKEY = 3,\n}\n\nconst DEVICE_NOT_SET_ERROR = 'Device not set.';\n\n// This class is a basic TypeScript implementation of adb that only supports\n// shell commands. It is used to send the start tracing command to the connected\n// android device, and to automatically pull the trace after the end of the\n// recording. It works through the webUSB API. A brief description of how it\n// works is the following:\n// - The connection with the device is initiated by findAndConnect, which shows\n// a dialog with a list of connected devices. Once one is selected the\n// authentication begins. The authentication has to pass different steps, as\n// described in the \"handeAuthentication\" method.\n// - AdbOverWebUsb tracks the state of the authentication via a state machine\n// (see AdbState).\n// - A Message handler loop is executed to keep receiving the messages.\n// - All the messages received from the device are passed to \"onMessage\" that is\n// implemented as a state machine.\n// - When a new shell is established, it becomes an AdbStream, and is kept in\n// the \"streams\" map. Each time a message from the device is for a specific\n// previously opened stream, the \"onMessage\" function will forward it to the\n// stream (identified by a number).\nexport class AdbOverWebUsb implements Adb {\n state: AdbState = AdbState.DISCONNECTED;\n streams = new Map<number, AdbStream>();\n devProps = '';\n maxPayload = DEFAULT_MAX_PAYLOAD_BYTES;\n key?: CryptoKeyPair;\n onConnected = () => {};\n\n // Devices after Dec 2017 don't use checksum. This will be auto-detected\n // during the connection.\n useChecksum = true;\n\n private lastStreamId = 0;\n private dev?: USBDevice;\n private usbInterfaceNumber?: number;\n private usbReadEndpoint = -1;\n private usbWriteEpEndpoint = -1;\n private filter = {\n classCode: 255, // USB vendor specific code\n subclassCode: 66, // Android vendor specific subclass\n protocolCode: 1 // Adb protocol\n };\n\n async findDevice() {\n if (!('usb' in navigator)) {\n throw new Error('WebUSB not supported by the browser (requires HTTPS)');\n }\n return navigator.usb.requestDevice({filters: [this.filter]});\n }\n\n async getPairedDevices() {\n try {\n return navigator.usb.getDevices();\n } catch (e) { // WebUSB not available.\n return Promise.resolve([]);\n }\n }\n\n async connect(device: USBDevice): Promise<void> {\n // If we are already connected, we are also already authenticated, so we can\n // skip doing the authentication again.\n if (this.state === AdbState.CONNECTED) {\n if (this.dev === device && device.opened) {\n this.onConnected();\n this.onConnected = () => {};\n return;\n }\n // Another device was connected.\n await this.disconnect();\n }\n\n this.dev = device;\n this.useChecksum = true;\n this.key = await AdbOverWebUsb.initKey();\n\n await this.dev.open();\n\n const {configValue, usbInterfaceNumber, endpoints} =\n this.findInterfaceAndEndpoint();\n this.usbInterfaceNumber = usbInterfaceNumber;\n\n this.usbReadEndpoint = this.findEndpointNumber(endpoints, 'in');\n this.usbWriteEpEndpoint = this.findEndpointNumber(endpoints, 'out');\n\n console.assert(this.usbReadEndpoint >= 0 && this.usbWriteEpEndpoint >= 0);\n\n await this.dev.selectConfiguration(configValue);\n await this.dev.claimInterface(usbInterfaceNumber);\n\n await this.startAuthentication();\n\n // This will start a message handler loop.\n this.receiveDeviceMessages();\n // The promise will be resolved after the handshake.\n return new Promise<void>((resolve, _) => this.onConnected = resolve);\n }\n\n async disconnect(): Promise<void> {\n if (this.state === AdbState.DISCONNECTED) {\n return;\n }\n this.state = AdbState.DISCONNECTED;\n\n if (!this.dev) return;\n\n new Map(this.streams).forEach((stream, _id) => stream.setClosed());\n console.assert(this.streams.size === 0);\n\n await this.dev.releaseInterface(assertExists(this.usbInterfaceNumber));\n this.dev = undefined;\n this.usbInterfaceNumber = undefined;\n }\n\n async startAuthentication() {\n // USB connected, now let's authenticate.\n const VERSION =\n this.useChecksum ? VERSION_WITH_CHECKSUM : VERSION_NO_CHECKSUM;\n this.state = AdbState.AUTH_STEP1;\n await this.send('CNXN', VERSION, this.maxPayload, 'host:1:UsbADB');\n }\n\n findInterfaceAndEndpoint() {\n if (!this.dev) throw Error(DEVICE_NOT_SET_ERROR);\n for (const config of this.dev.configurations) {\n for (const interface_ of config.interfaces) {\n for (const alt of interface_.alternates) {\n if (alt.interfaceClass === this.filter.classCode &&\n alt.interfaceSubclass === this.filter.subclassCode &&\n alt.interfaceProtocol === this.filter.protocolCode) {\n return {\n configValue: config.configurationValue,\n usbInterfaceNumber: interface_.interfaceNumber,\n endpoints: alt.endpoints\n };\n } // if (alternate)\n } // for (interface.alternates)\n } // for (configuration.interfaces)\n } // for (configurations)\n\n throw Error('Cannot find interfaces and endpoints');\n }\n\n findEndpointNumber(\n endpoints: USBEndpoint[], direction: 'out'|'in', type = 'bulk'): number {\n const ep =\n endpoints.find((ep) => ep.type === type && ep.direction === direction);\n\n if (ep) return ep.endpointNumber;\n\n throw Error(`Cannot find ${direction} endpoint`);\n }\n\n receiveDeviceMessages() {\n this.recv()\n .then(msg => {\n this.onMessage(msg);\n this.receiveDeviceMessages();\n })\n .catch(e => {\n // Ignore error with \"DEVICE_NOT_SET_ERROR\" message since it is always\n // thrown after the device disconnects.\n if (e.message !== DEVICE_NOT_SET_ERROR) {\n console.error(`Exception in recv: ${e.name}. error: ${e.message}`);\n }\n this.disconnect();\n });\n }\n\n async onMessage(msg: AdbMsg) {\n if (!this.key) throw Error('ADB key not initialized');\n\n if (msg.cmd === 'AUTH' && msg.arg0 === AuthCmd.TOKEN) {\n this.handleAuthentication(msg);\n } else if (msg.cmd === 'CNXN') {\n console.assert(\n [AdbState.AUTH_STEP2, AdbState.AUTH_STEP3].includes(this.state));\n this.state = AdbState.CONNECTED;\n this.handleConnectedMessage(msg);\n } else if (this.state === AdbState.CONNECTED && [\n 'OKAY',\n 'WRTE',\n 'CLSE'\n ].indexOf(msg.cmd) >= 0) {\n const stream = this.streams.get(msg.arg1);\n if (!stream) {\n console.warn(`Received message ${msg} for unknown stream ${msg.arg1}`);\n return;\n }\n stream.onMessage(msg);\n } else {\n console.error(`Unexpected message `, msg, ` in state ${this.state}`);\n }\n }\n\n async handleAuthentication(msg: AdbMsg) {\n if (!this.key) throw Error('ADB key not initialized');\n\n console.assert(msg.cmd === 'AUTH' && msg.arg0 === AuthCmd.TOKEN);\n const token = msg.data;\n\n if (this.state === AdbState.AUTH_STEP1) {\n // During this step, we send back the token received signed with our\n // private key. If the device has previously received our public key, the\n // dialog will not be displayed. Otherwise we will receive another message\n // ending up in AUTH_STEP3.\n this.state = AdbState.AUTH_STEP2;\n\n const signedToken =\n await signAdbTokenWithPrivateKey(this.key.privateKey, token);\n this.send('AUTH', AuthCmd.SIGNATURE, 0, new Uint8Array(signedToken));\n return;\n }\n\n console.assert(this.state === AdbState.AUTH_STEP2);\n\n // During this step, we send our public key. The dialog will appear, and\n // if the user chooses to remember our public key, it will be\n // saved, so that the next time we will only pass through AUTH_STEP1.\n this.state = AdbState.AUTH_STEP3;\n const encodedPubKey = await encodePubKey(this.key.publicKey);\n this.send('AUTH', AuthCmd.RSAPUBLICKEY, 0, encodedPubKey);\n }\n\n private handleConnectedMessage(msg: AdbMsg) {\n console.assert(msg.cmd === 'CNXN');\n\n this.maxPayload = msg.arg1;\n this.devProps = textDecoder.decode(msg.data);\n\n const deviceVersion = msg.arg0;\n\n if (![VERSION_WITH_CHECKSUM, VERSION_NO_CHECKSUM].includes(deviceVersion)) {\n console.error('Version ', msg.arg0, ' not really supported!');\n }\n this.useChecksum = deviceVersion === VERSION_WITH_CHECKSUM;\n this.state = AdbState.CONNECTED;\n\n // This will resolve the promise returned by \"onConnect\"\n this.onConnected();\n this.onConnected = () => {};\n }\n\n shell(cmd: string): Promise<AdbStream> {\n return this.openStream('shell:' + cmd);\n }\n\n socket(path: string): Promise<AdbStream> {\n return this.openStream('localfilesystem:' + path);\n }\n\n openStream(svc: string): Promise<AdbStream> {\n const stream = new AdbStreamImpl(this, ++this.lastStreamId);\n this.streams.set(stream.localStreamId, stream);\n this.send('OPEN', stream.localStreamId, 0, svc);\n\n // The stream will resolve this promise once it receives the\n // acknowledgement message from the device.\n return new Promise<AdbStream>((resolve, reject) => {\n stream.onConnect = () => {\n stream.onClose = () => {};\n resolve(stream);\n };\n stream.onClose = () => reject(`Failed to openStream svc=${svc}`);\n });\n }\n\n async shellOutputAsString(cmd: string): Promise<string> {\n const shell = await this.shell(cmd);\n\n return new Promise<string>((resolve, _) => {\n const output: string[] = [];\n shell.onData = raw => output.push(textDecoder.decode(raw));\n shell.onClose = () => resolve(output.join());\n });\n }\n\n async send(\n cmd: CmdType, arg0: number, arg1: number, data?: Uint8Array|string) {\n await this.sendMsg(AdbMsgImpl.create(\n {cmd, arg0, arg1, data, useChecksum: this.useChecksum}));\n }\n\n // The header and the message data must be sent consecutively. Using 2 awaits\n // Another message can interleave after the first header has been sent,\n // resulting in something like [header1] [header2] [data1] [data2];\n // In this way we are waiting both promises to be resolved before continuing.\n async sendMsg(msg: AdbMsgImpl) {\n const sendPromises = [this.sendRaw(msg.encodeHeader())];\n if (msg.data.length > 0) sendPromises.push(this.sendRaw(msg.data));\n await Promise.all(sendPromises);\n }\n\n async recv(): Promise<AdbMsg> {\n const res = await this.recvRaw(ADB_MSG_SIZE);\n console.assert(res.status === 'ok');\n const msg = AdbMsgImpl.decodeHeader(res.data!);\n\n if (msg.dataLen > 0) {\n const resp = await this.recvRaw(msg.dataLen);\n msg.data = new Uint8Array(\n resp.data!.buffer, resp.data!.byteOffset, resp.data!.byteLength);\n }\n if (this.useChecksum) {\n console.assert(AdbOverWebUsb.checksum(msg.data) === msg.dataChecksum);\n }\n return msg;\n }\n\n static async initKey(): Promise<CryptoKeyPair> {\n const KEY_SIZE = 2048;\n\n const keySpec = {\n name: 'RSASSA-PKCS1-v1_5',\n modulusLength: KEY_SIZE,\n publicExponent: new Uint8Array([0x01, 0x00, 0x01]),\n hash: {name: 'SHA-1'},\n };\n\n const key = await crypto.subtle.generateKey(\n keySpec, /*extractable=*/ true, ['sign', 'verify']);\n return key;\n }\n\n static checksum(data: Uint8Array): number {\n let res = 0;\n for (let i = 0; i < data.byteLength; i++) res += data[i];\n return res & 0xFFFFFFFF;\n }\n\n sendRaw(buf: Uint8Array): Promise<USBOutTransferResult> {\n console.assert(buf.length <= this.maxPayload);\n if (!this.dev) throw Error(DEVICE_NOT_SET_ERROR);\n return this.dev.transferOut(this.usbWriteEpEndpoint, buf.buffer);\n }\n\n recvRaw(dataLen: number): Promise<USBInTransferResult> {\n if (!this.dev) throw Error(DEVICE_NOT_SET_ERROR);\n return this.dev.transferIn(this.usbReadEndpoint, dataLen);\n }\n}\n\nenum AdbStreamState {\n WAITING_INITIAL_OKAY = 0,\n CONNECTED = 1,\n CLOSED = 2\n}\n\n\n// An AdbStream is instantiated after the creation of a shell to the device.\n// Thanks to this, we can send commands and receive their output. Messages are\n// received in the main adb class, and are forwarded to an instance of this\n// class based on a stream id match. Also streams have an initialization flow:\n// 1. WAITING_INITIAL_OKAY: waiting for first \"OKAY\" message. Once received,\n// the next state will be \"CONNECTED\".\n// 2. CONNECTED: ready to receive or send messages.\n// 3. WRITING: this is needed because we must receive an ack after sending\n// each message (so, before sending the next one). For this reason, many\n// subsequent \"write\" calls will result in different messages in the\n// writeQueue. After each new acknowledgement ('OKAY') a new one will be\n// sent. When the queue is empty, the state will return to CONNECTED.\n// 4. CLOSED: entered when the device closes the stream or close() is called.\n// For shell commands, the stream is closed after the command completed.\nexport class AdbStreamImpl implements AdbStream {\n private adb: AdbOverWebUsb;\n localStreamId: number;\n private remoteStreamId = -1;\n private state: AdbStreamState = AdbStreamState.WAITING_INITIAL_OKAY;\n private writeQueue: Uint8Array[] = [];\n\n private sendInProgress = false;\n\n onData: AdbStreamReadCallback = (_) => {};\n onConnect = () => {};\n onClose = () => {};\n\n constructor(adb: AdbOverWebUsb, localStreamId: number) {\n this.adb = adb;\n this.localStreamId = localStreamId;\n }\n\n close() {\n console.assert(this.state === AdbStreamState.CONNECTED);\n\n if (this.writeQueue.length > 0) {\n console.error(`Dropping ${\n this.writeQueue.length} queued messages due to stream closing.`);\n this.writeQueue = [];\n }\n\n this.adb.send('CLSE', this.localStreamId, this.remoteStreamId);\n }\n\n async write(msg: string|Uint8Array) {\n const raw = (typeof msg === 'string') ? textEncoder.encode(msg) : msg;\n if (this.sendInProgress ||\n this.state === AdbStreamState.WAITING_INITIAL_OKAY) {\n this.writeQueue.push(raw);\n return;\n }\n console.assert(this.state === AdbStreamState.CONNECTED);\n this.sendInProgress = true;\n await this.adb.send('WRTE', this.localStreamId, this.remoteStreamId, raw);\n }\n\n setClosed() {\n this.state = AdbStreamState.CLOSED;\n this.adb.streams.delete(this.localStreamId);\n this.onClose();\n }\n\n onMessage(msg: AdbMsgImpl) {\n console.assert(msg.arg1 === this.localStreamId);\n\n if (this.state === AdbStreamState.WAITING_INITIAL_OKAY &&\n msg.cmd === 'OKAY') {\n this.remoteStreamId = msg.arg0;\n this.state = AdbStreamState.CONNECTED;\n this.onConnect();\n return;\n }\n\n if (msg.cmd === 'WRTE') {\n this.adb.send('OKAY', this.localStreamId, this.remoteStreamId);\n this.onData(msg.data);\n return;\n }\n\n if (msg.cmd === 'OKAY') {\n console.assert(this.sendInProgress);\n this.sendInProgress = false;\n const queuedMsg = this.writeQueue.shift();\n if (queuedMsg !== undefined) this.write(queuedMsg);\n return;\n }\n\n if (msg.cmd === 'CLSE') {\n this.setClosed();\n return;\n }\n console.error(\n `Unexpected stream msg ${msg.toString()} in state ${this.state}`);\n }\n}\n\ninterface AdbStreamReadCallback {\n (raw: Uint8Array): void;\n}\n\nconst ADB_MSG_SIZE = 6 * 4; // 6 * int32.\n\nexport class AdbMsgImpl implements AdbMsg {\n cmd: CmdType;\n arg0: number;\n arg1: number;\n data: Uint8Array;\n dataLen: number;\n dataChecksum: number;\n\n useChecksum: boolean;\n\n constructor(\n cmd: CmdType, arg0: number, arg1: number, dataLen: number,\n dataChecksum: number, useChecksum = false) {\n console.assert(cmd.length === 4);\n this.cmd = cmd;\n this.arg0 = arg0;\n this.arg1 = arg1;\n this.dataLen = dataLen;\n this.data = new Uint8Array(dataLen);\n this.dataChecksum = dataChecksum;\n this.useChecksum = useChecksum;\n }\n\n\n static create({cmd, arg0, arg1, data, useChecksum = true}: {\n cmd: CmdType; arg0: number; arg1: number;\n data?: Uint8Array | string;\n useChecksum?: boolean;\n }): AdbMsgImpl {\n const encodedData = this.encodeData(data);\n const msg =\n new AdbMsgImpl(cmd, arg0, arg1, encodedData.length, 0, useChecksum);\n msg.data = encodedData;\n return msg;\n }\n\n get dataStr() {\n return textDecoder.decode(this.data);\n }\n\n toString() {\n return `${this.cmd} [${this.arg0},${this.arg1}] ${this.dataStr}`;\n }\n\n // A brief description of the message can be found here:\n // https://android.googlesource.com/platform/system/core/+/master/adb/protocol.txt\n //\n // struct amessage {\n // uint32_t command; // command identifier constant\n // uint32_t arg0; // first argument\n // uint32_t arg1; // second argument\n // uint32_t data_length;// length of payload (0 is allowed)\n // uint32_t data_check; // checksum of data payload\n // uint32_t magic; // command ^ 0xffffffff\n // };\n static decodeHeader(dv: DataView): AdbMsgImpl {\n console.assert(dv.byteLength === ADB_MSG_SIZE);\n const cmd = textDecoder.decode(dv.buffer.slice(0, 4)) as CmdType;\n const cmdNum = dv.getUint32(0, true);\n const arg0 = dv.getUint32(4, true);\n const arg1 = dv.getUint32(8, true);\n const dataLen = dv.getUint32(12, true);\n const dataChecksum = dv.getUint32(16, true);\n const cmdChecksum = dv.getUint32(20, true);\n console.assert(cmdNum === (cmdChecksum ^ 0xFFFFFFFF));\n return new AdbMsgImpl(cmd, arg0, arg1, dataLen, dataChecksum);\n }\n\n encodeHeader(): Uint8Array {\n const buf = new Uint8Array(ADB_MSG_SIZE);\n const dv = new DataView(buf.buffer);\n const cmdBytes: Uint8Array = textEncoder.encode(this.cmd);\n const rawMsg = AdbMsgImpl.encodeData(this.data);\n const checksum = this.useChecksum ? AdbOverWebUsb.checksum(rawMsg) : 0;\n for (let i = 0; i < 4; i++) dv.setUint8(i, cmdBytes[i]);\n\n dv.setUint32(4, this.arg0, true);\n dv.setUint32(8, this.arg1, true);\n dv.setUint32(12, rawMsg.byteLength, true);\n dv.setUint32(16, checksum, true);\n dv.setUint32(20, dv.getUint32(0, true) ^ 0xFFFFFFFF, true);\n\n return buf;\n }\n\n static encodeData(data?: Uint8Array|string): Uint8Array {\n if (data === undefined) return new Uint8Array([]);\n if (typeof data === 'string') return textEncoder.encode(data + '\\0');\n return data;\n }\n}\n\n\nfunction base64StringToArray(s: string) {\n const decoded = atob(s.replace(/-/g, '+').replace(/_/g, '/'));\n return [...decoded].map(char => char.charCodeAt(0));\n}\n\nconst ANDROID_PUBKEY_MODULUS_SIZE = 2048;\nconst MODULUS_SIZE_BYTES = ANDROID_PUBKEY_MODULUS_SIZE / 8;\n\n// RSA Public keys are encoded in a rather unique way. It's a base64 encoded\n// struct of 524 bytes in total as follows (see\n// libcrypto_utils/android_pubkey.c):\n//\n// typedef struct RSAPublicKey {\n// // Modulus length. This must be ANDROID_PUBKEY_MODULUS_SIZE.\n// uint32_t modulus_size_words;\n//\n// // Precomputed montgomery parameter: -1 / n[0] mod 2^32\n// uint32_t n0inv;\n//\n// // RSA modulus as a little-endian array.\n// uint8_t modulus[ANDROID_PUBKEY_MODULUS_SIZE];\n//\n// // Montgomery parameter R^2 as a little-endian array of little-endian\n// words. uint8_t rr[ANDROID_PUBKEY_MODULUS_SIZE];\n//\n// // RSA modulus: 3 or 65537\n// uint32_t exponent;\n// } RSAPublicKey;\n//\n// However, the Montgomery params (n0inv and rr) are not really used, see\n// comment in android_pubkey_decode() (\"Note that we don't extract the\n// montgomery parameters...\")\nasync function encodePubKey(key: CryptoKey) {\n const expPubKey = await crypto.subtle.exportKey('jwk', key);\n const nArr = base64StringToArray(expPubKey.n as string).reverse();\n const eArr = base64StringToArray(expPubKey.e as string).reverse();\n\n const arr = new Uint8Array(3 * 4 + 2 * MODULUS_SIZE_BYTES);\n const dv = new DataView(arr.buffer);\n dv.setUint32(0, MODULUS_SIZE_BYTES / 4, true);\n\n // The Mongomery params (n0inv and rr) are not computed.\n dv.setUint32(4, 0 /*n0inv*/, true);\n // Modulus\n for (let i = 0; i < MODULUS_SIZE_BYTES; i++) dv.setUint8(8 + i, nArr[i]);\n\n // rr:\n for (let i = 0; i < MODULUS_SIZE_BYTES; i++) {\n dv.setUint8(8 + MODULUS_SIZE_BYTES + i, 0 /*rr*/);\n }\n // Exponent\n for (let i = 0; i < 4; i++) {\n dv.setUint8(8 + (2 * MODULUS_SIZE_BYTES) + i, eArr[i]);\n }\n return btoa(String.fromCharCode(...new Uint8Array(dv.buffer))) +\n ' perfetto@webusb';\n}\n\n// TODO(nicomazz): This token signature will be useful only when we save the\n// generated keys. So far, we are not doing so. As a consequence, a dialog is\n// displayed every time a tracing session is started.\n// The reason why it has not already been implemented is that the standard\n// crypto.subtle.sign function assumes that the input needs hashing, which is\n// not the case for ADB, where the 20 bytes token is already hashed.\n// A solution to this is implementing a custom private key signature with a js\n// implementation of big integers. Maybe, wrapping the key like in the following\n// CL can work:\n// https://android-review.googlesource.com/c/platform/external/perfetto/+/1105354/18\nasync function signAdbTokenWithPrivateKey(\n _privateKey: CryptoKey, token: Uint8Array): Promise<ArrayBuffer> {\n // This function is not implemented.\n return token.buffer;\n}\n","// Copyright (C) 2019 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {TraceConfig} from '../common/protos';\nimport {perfetto} from '../gen/protos';\n\n// In this file are contained a few functions to simplify the proto parsing.\n\nexport function extractTraceConfig(enableTracingRequest: Uint8Array):\n Uint8Array|undefined {\n try {\n const enableTracingObject =\n perfetto.protos.EnableTracingRequest.decode(enableTracingRequest);\n if (!enableTracingObject.traceConfig) return undefined;\n return perfetto.protos.TraceConfig.encode(enableTracingObject.traceConfig)\n .finish();\n } catch (e) { // This catch is for possible proto encoding/decoding issues.\n console.error('Error extracting the config: ', e.message);\n return undefined;\n }\n}\n\nexport function extractDurationFromTraceConfig(traceConfigProto: Uint8Array) {\n try {\n return perfetto.protos.TraceConfig.decode(traceConfigProto).durationMs;\n } catch (e) { // This catch is for possible proto encoding/decoding issues.\n return undefined;\n }\n}\n\nexport function browserSupportsPerfettoConfig(): boolean {\n const minimumChromeVersion = '91.0.4448.0';\n const runningVersion = String(\n (/Chrome\\/(([0-9]+\\.?){4})/.exec(navigator.userAgent) || [, 0])[1]);\n\n if (!runningVersion) return false;\n\n const minVerArray = minimumChromeVersion.split('.').map(Number);\n const runVerArray = runningVersion.split('.').map(Number);\n\n for (let index = 0; index < minVerArray.length; index++) {\n if (runVerArray[index] === minVerArray[index]) continue;\n return runVerArray[index] > minVerArray[index];\n }\n return true; // Exact version match.\n}\n\nexport function hasSystemDataSourceConfig(config: TraceConfig): boolean {\n for (const ds of config.dataSources) {\n if (ds.config && ds.config.name &&\n !ds.config.name.startsWith('org.chromium.')) {\n return true;\n }\n }\n return false;\n}\n","// Copyright (C) 2019 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {TRACE_SUFFIX} from '../common/constants';\nimport {ConsumerPortResponse} from './consumer_port_types';\n\nexport type ErrorCallback = (_: string) => void;\nexport type StatusCallback = (_: string) => void;\n\nexport abstract class RpcConsumerPort {\n // The responses of the call invocations should be sent through this listener.\n // This is done by the 3 \"send\" methods in this abstract class.\n private consumerPortListener: Consumer;\n\n protected constructor(consumerPortListener: Consumer) {\n this.consumerPortListener = consumerPortListener;\n }\n\n // RequestData is the proto representing the arguments of the function call.\n abstract handleCommand(methodName: string, requestData: Uint8Array): void;\n\n sendMessage(data: ConsumerPortResponse) {\n this.consumerPortListener.onConsumerPortResponse(data);\n }\n\n sendErrorMessage(message: string) {\n this.consumerPortListener.onError(message);\n }\n\n sendStatus(status: string) {\n this.consumerPortListener.onStatus(status);\n }\n\n // Allows the recording controller to customise the suffix added to recorded\n // traces when they are downloaded. In the general case this will be\n // .perfetto-trace however if the trace is recorded compressed if could be\n // .perfetto-trace.gz etc.\n getRecordedTraceSuffix(): string {\n return TRACE_SUFFIX;\n }\n}\n\nexport interface Consumer {\n onConsumerPortResponse(data: ConsumerPortResponse): void;\n onError: ErrorCallback;\n onStatus: StatusCallback;\n}\n","// Copyright (C) 2019 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {extractDurationFromTraceConfig} from '../base/trace_config_utils';\nimport {extractTraceConfig} from '../base/trace_config_utils';\nimport {isAdbTarget} from '../common/state';\n\nimport {Adb} from './adb_interfaces';\nimport {ReadBuffersResponse} from './consumer_port_types';\nimport {globals} from './globals';\nimport {Consumer, RpcConsumerPort} from './record_controller_interfaces';\n\nexport enum AdbConnectionState {\n READY_TO_CONNECT,\n AUTH_IN_PROGRESS,\n CONNECTED,\n CLOSED\n}\n\ninterface Command {\n method: string;\n params: Uint8Array;\n}\n\nexport abstract class AdbBaseConsumerPort extends RpcConsumerPort {\n // Contains the commands sent while the authentication is in progress. They\n // will all be executed afterwards. If the device disconnects, they are\n // removed.\n private commandQueue: Command[] = [];\n\n protected adb: Adb;\n protected state = AdbConnectionState.READY_TO_CONNECT;\n protected device?: USBDevice;\n\n protected constructor(adb: Adb, consumer: Consumer) {\n super(consumer);\n this.adb = adb;\n }\n\n async handleCommand(method: string, params: Uint8Array) {\n try {\n if (method === 'FreeBuffers') {\n // When we finish tracing, we disconnect the adb device interface.\n // Otherwise, we will keep holding the device interface and won't allow\n // adb to access it. https://wicg.github.io/webusb/#abusing-a-device\n // \"Lastly, since USB devices are unable to distinguish requests from\n // multiple sources, operating systems only allow a USB interface to\n // have a single owning user-space or kernel-space driver.\"\n this.state = AdbConnectionState.CLOSED;\n await this.adb.disconnect();\n } else if (method === 'EnableTracing') {\n this.state = AdbConnectionState.READY_TO_CONNECT;\n }\n\n if (this.state === AdbConnectionState.CLOSED) return;\n\n this.commandQueue.push({method, params});\n\n if (this.state === AdbConnectionState.READY_TO_CONNECT ||\n this.deviceDisconnected()) {\n this.state = AdbConnectionState.AUTH_IN_PROGRESS;\n this.device = await this.findDevice();\n if (!this.device) {\n this.state = AdbConnectionState.READY_TO_CONNECT;\n const target = globals.state.recordingTarget;\n throw Error(`Device with serial ${\n isAdbTarget(target) ? target.serial : 'n/a'} not found.`);\n }\n\n this.sendStatus(`Please allow USB debugging on device.\n If you press cancel, reload the page.`);\n\n await this.adb.connect(this.device);\n\n // During the authentication the device may have been disconnected.\n if (!globals.state.recordingInProgress || this.deviceDisconnected()) {\n throw Error('Recording not in progress after adb authorization.');\n }\n\n this.state = AdbConnectionState.CONNECTED;\n this.sendStatus('Device connected.');\n }\n\n if (this.state === AdbConnectionState.AUTH_IN_PROGRESS) return;\n\n console.assert(this.state === AdbConnectionState.CONNECTED);\n\n for (const cmd of this.commandQueue) this.invoke(cmd.method, cmd.params);\n\n this.commandQueue = [];\n } catch (e) {\n this.commandQueue = [];\n this.state = AdbConnectionState.READY_TO_CONNECT;\n this.sendErrorMessage(e.message);\n }\n }\n\n private deviceDisconnected() {\n return !this.device || !this.device.opened;\n }\n\n setDurationStatus(enableTracingProto: Uint8Array) {\n const traceConfigProto = extractTraceConfig(enableTracingProto);\n if (!traceConfigProto) return;\n const duration = extractDurationFromTraceConfig(traceConfigProto);\n this.sendStatus(`Recording in progress${\n duration ? ' for ' + duration.toString() + ' ms' : ''}...`);\n }\n\n abstract invoke(method: string, argsProto: Uint8Array): void;\n\n generateChunkReadResponse(data: Uint8Array, last = false):\n ReadBuffersResponse {\n return {\n type: 'ReadBuffersResponse',\n slices: [{data, lastSliceForPacket: last}]\n };\n }\n\n async findDevice(): Promise<USBDevice|undefined> {\n if (!('usb' in navigator)) return undefined;\n const connectedDevice = globals.state.recordingTarget;\n if (!isAdbTarget(connectedDevice)) return undefined;\n const devices = await navigator.usb.getDevices();\n return devices.find(d => d.serialNumber === connectedDevice.serial);\n }\n}","// Copyright (C) 2019 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {_TextDecoder} from 'custom_utils';\n\nimport {base64Encode} from '../base/string_utils';\nimport {extractTraceConfig} from '../base/trace_config_utils';\n\nimport {AdbBaseConsumerPort, AdbConnectionState} from './adb_base_controller';\nimport {Adb, AdbStream} from './adb_interfaces';\nimport {ReadBuffersResponse} from './consumer_port_types';\nimport {Consumer} from './record_controller_interfaces';\n\nenum AdbShellState {\n READY,\n RECORDING,\n FETCHING\n}\nconst DEFAULT_DESTINATION_FILE = '/data/misc/perfetto-traces/trace-by-ui';\nconst textDecoder = new _TextDecoder();\n\nexport class AdbConsumerPort extends AdbBaseConsumerPort {\n traceDestFile = DEFAULT_DESTINATION_FILE;\n shellState: AdbShellState = AdbShellState.READY;\n private recordShell?: AdbStream;\n\n constructor(adb: Adb, consumer: Consumer) {\n super(adb, consumer);\n this.adb = adb;\n }\n\n async invoke(method: string, params: Uint8Array) {\n // ADB connection & authentication is handled by the superclass.\n console.assert(this.state === AdbConnectionState.CONNECTED);\n\n switch (method) {\n case 'EnableTracing':\n this.enableTracing(params);\n break;\n case 'ReadBuffers':\n this.readBuffers();\n break;\n case 'DisableTracing':\n this.disableTracing();\n break;\n case 'FreeBuffers':\n this.freeBuffers();\n break;\n case 'GetTraceStats':\n break;\n default:\n this.sendErrorMessage(`Method not recognized: ${method}`);\n break;\n }\n }\n\n async enableTracing(enableTracingProto: Uint8Array) {\n try {\n const traceConfigProto = extractTraceConfig(enableTracingProto);\n if (!traceConfigProto) {\n this.sendErrorMessage('Invalid config.');\n return;\n }\n\n await this.startRecording(traceConfigProto);\n this.setDurationStatus(enableTracingProto);\n } catch (e) {\n this.sendErrorMessage(e.message);\n }\n }\n\n async startRecording(configProto: Uint8Array) {\n this.shellState = AdbShellState.RECORDING;\n const recordCommand = this.generateStartTracingCommand(configProto);\n this.recordShell = await this.adb.shell(recordCommand);\n const output: string[] = [];\n this.recordShell.onData = raw => output.push(textDecoder.decode(raw));\n this.recordShell.onClose = () => {\n const response = output.join();\n if (!this.tracingEndedSuccessfully(response)) {\n this.sendErrorMessage(response);\n this.shellState = AdbShellState.READY;\n return;\n }\n this.sendStatus('Recording ended successfully. Fetching the trace..');\n this.sendMessage({type: 'EnableTracingResponse'});\n this.recordShell = undefined;\n };\n }\n\n tracingEndedSuccessfully(response: string): boolean {\n return !response.includes(' 0 ms') && response.includes('Wrote ');\n }\n\n async readBuffers() {\n console.assert(this.shellState === AdbShellState.RECORDING);\n this.shellState = AdbShellState.FETCHING;\n\n const readTraceShell =\n await this.adb.shell(this.generateReadTraceCommand());\n readTraceShell.onData = raw =>\n this.sendMessage(this.generateChunkReadResponse(raw));\n\n readTraceShell.onClose = () => {\n this.sendMessage(\n this.generateChunkReadResponse(new Uint8Array(), /* last */ true));\n };\n }\n\n async getPidFromShellAsString() {\n const pidStr =\n await this.adb.shellOutputAsString(`ps -u shell | grep perfetto`);\n // We used to use awk '{print $2}' but older phones/Go phones don't have\n // awk installed. Instead we implement similar functionality here.\n const awk = pidStr.split(' ').filter(str => str !== '');\n if (awk.length < 1) {\n throw Error(`Unabled to find perfetto pid in string \"${pidStr}\"`);\n }\n return awk[1];\n }\n\n async disableTracing() {\n if (!this.recordShell) return;\n try {\n // We are not using 'pidof perfetto' so that we can use more filters. 'ps\n // -u shell' is meant to catch processes started from shell, so if there\n // are other ongoing tracing sessions started by others, we are not\n // killing them.\n const pid = await this.getPidFromShellAsString();\n\n if (pid.length === 0 || isNaN(Number(pid))) {\n throw Error(`Perfetto pid not found. Impossible to stop/cancel the\n recording. Command output: ${pid}`);\n }\n // Perfetto stops and finalizes the tracing session on SIGINT.\n const killOutput =\n await this.adb.shellOutputAsString(`kill -SIGINT ${pid}`);\n\n if (killOutput.length !== 0) {\n throw Error(`Unable to kill perfetto: ${killOutput}`);\n }\n } catch (e) {\n this.sendErrorMessage(e.message);\n }\n }\n\n freeBuffers() {\n this.shellState = AdbShellState.READY;\n if (this.recordShell) {\n this.recordShell.close();\n this.recordShell = undefined;\n }\n }\n\n generateChunkReadResponse(data: Uint8Array, last = false):\n ReadBuffersResponse {\n return {\n type: 'ReadBuffersResponse',\n slices: [{data, lastSliceForPacket: last}]\n };\n }\n\n generateReadTraceCommand(): string {\n // We attempt to delete the trace file after tracing. On a non-root shell,\n // this will fail (due to selinux denial), but perfetto cmd will be able to\n // override the file later. However, on a root shell, we need to clean up\n // the file since perfetto cmd might otherwise fail to override it in a\n // future session.\n return `gzip -c ${this.traceDestFile} && rm -f ${this.traceDestFile}`;\n }\n\n generateStartTracingCommand(tracingConfig: Uint8Array) {\n const configBase64 = base64Encode(tracingConfig);\n const perfettoCmd = `perfetto -c - -o ${this.traceDestFile}`;\n return `echo '${configBase64}' | base64 -d | ${perfettoCmd}`;\n }\n}\n","// Copyright (C) 2019 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {perfetto} from '../gen/protos';\n\nexport interface Typed {\n type: string;\n}\n\n// A type guard that can be used in order to be able to access the property of\n// an object in a checked manner.\nexport function hasProperty<T extends object, P extends string>(\n obj: T, prop: P): obj is T&{[prop in P]: unknown} {\n return obj.hasOwnProperty(prop);\n}\n\nexport function isTyped(obj: object): obj is Typed {\n return obj.hasOwnProperty('type');\n}\n\nexport interface ReadBuffersResponse extends\n Typed, perfetto.protos.IReadBuffersResponse {}\nexport interface EnableTracingResponse extends\n Typed, perfetto.protos.IEnableTracingResponse {}\nexport interface GetTraceStatsResponse extends\n Typed, perfetto.protos.IGetTraceStatsResponse {}\nexport interface FreeBuffersResponse extends\n Typed, perfetto.protos.IFreeBuffersResponse {}\nexport interface GetCategoriesResponse extends Typed {}\nexport interface DisableTracingResponse extends\n Typed, perfetto.protos.IDisableTracingResponse {}\n\nexport type ConsumerPortResponse =\n EnableTracingResponse|ReadBuffersResponse|GetTraceStatsResponse|\n GetCategoriesResponse|FreeBuffersResponse|DisableTracingResponse;\n\nexport function isReadBuffersResponse(obj: Typed): obj is ReadBuffersResponse {\n return obj.type === 'ReadBuffersResponse';\n}\n\nexport function isEnableTracingResponse(obj: Typed):\n obj is EnableTracingResponse {\n return obj.type === 'EnableTracingResponse';\n}\n\nexport function isGetTraceStatsResponse(obj: Typed):\n obj is GetTraceStatsResponse {\n return obj.type === 'GetTraceStatsResponse';\n}\n\nexport function isFreeBuffersResponse(obj: Typed): obj is FreeBuffersResponse {\n return obj.type === 'FreeBuffersResponse';\n}\n\nexport function isDisableTracingResponse(obj: Typed):\n obj is DisableTracingResponse {\n return obj.type === 'DisableTracingResponse';\n}\n","// Copyright (C) 2019 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as protobuf from 'protobufjs/minimal';\n\nimport {perfetto} from '../gen/protos';\n\nimport {AdbBaseConsumerPort, AdbConnectionState} from './adb_base_controller';\nimport {Adb, AdbStream} from './adb_interfaces';\nimport {\n isReadBuffersResponse,\n} from './consumer_port_types';\nimport {Consumer} from './record_controller_interfaces';\n\nenum SocketState {\n DISCONNECTED,\n BINDING_IN_PROGRESS,\n BOUND,\n}\n\n// See wire_protocol.proto for more details.\nconst WIRE_PROTOCOL_HEADER_SIZE = 4;\nconst MAX_IPC_BUFFER_SIZE = 128 * 1024;\n\nconst PROTO_LEN_DELIMITED_WIRE_TYPE = 2;\nconst TRACE_PACKET_PROTO_ID = 1;\nconst TRACE_PACKET_PROTO_TAG =\n (TRACE_PACKET_PROTO_ID << 3) | PROTO_LEN_DELIMITED_WIRE_TYPE;\n\ndeclare type Frame = perfetto.protos.IPCFrame;\ndeclare type IMethodInfo =\n perfetto.protos.IPCFrame.BindServiceReply.IMethodInfo;\ndeclare type ISlice = perfetto.protos.ReadBuffersResponse.ISlice;\n\ninterface Command {\n method: string;\n params: Uint8Array;\n}\n\nconst TRACED_SOCKET = '/dev/socket/traced_consumer';\n\nexport class AdbSocketConsumerPort extends AdbBaseConsumerPort {\n private socketState = SocketState.DISCONNECTED;\n\n private socket?: AdbStream;\n // Wire protocol request ID. After each request it is increased. It is needed\n // to keep track of the type of request, and parse the response correctly.\n private requestId = 1;\n\n // Buffers received wire protocol data.\n private incomingBuffer = new Uint8Array(MAX_IPC_BUFFER_SIZE);\n private incomingBufferLen = 0;\n private frameToParseLen = 0;\n\n private availableMethods: IMethodInfo[] = [];\n private serviceId = -1;\n\n private resolveBindingPromise!: VoidFunction;\n private requestMethods = new Map<number, string>();\n\n // Needed for ReadBufferResponse: all the trace packets are split into\n // several slices. |partialPacket| is the buffer for them. Once we receive a\n // slice with the flag |lastSliceForPacket|, a new packet is created.\n private partialPacket: ISlice[] = [];\n // Accumulates trace packets into a proto trace file..\n private traceProtoWriter = protobuf.Writer.create();\n\n private socketCommandQueue: Command[] = [];\n\n constructor(adb: Adb, consumer: Consumer) {\n super(adb, consumer);\n }\n\n async invoke(method: string, params: Uint8Array) {\n // ADB connection & authentication is handled by the superclass.\n console.assert(this.state === AdbConnectionState.CONNECTED);\n this.socketCommandQueue.push({method, params});\n\n if (this.socketState === SocketState.BINDING_IN_PROGRESS) return;\n if (this.socketState === SocketState.DISCONNECTED) {\n this.socketState = SocketState.BINDING_IN_PROGRESS;\n await this.listenForMessages();\n await this.bind();\n this.traceProtoWriter = protobuf.Writer.create();\n this.socketState = SocketState.BOUND;\n }\n\n console.assert(this.socketState === SocketState.BOUND);\n\n for (const cmd of this.socketCommandQueue) {\n this.invokeInternal(cmd.method, cmd.params);\n }\n this.socketCommandQueue = [];\n }\n\n private invokeInternal(method: string, argsProto: Uint8Array) {\n // Socket is bound in invoke().\n console.assert(this.socketState === SocketState.BOUND);\n const requestId = this.requestId++;\n const methodId = this.findMethodId(method);\n if (methodId === undefined) {\n // This can happen with 'GetTraceStats': it seems that not all the Android\n // <= 9 devices support it.\n console.error(`Method ${method} not supported by the target`);\n return;\n }\n const frame = new perfetto.protos.IPCFrame({\n requestId,\n msgInvokeMethod: new perfetto.protos.IPCFrame.InvokeMethod(\n {serviceId: this.serviceId, methodId, argsProto})\n });\n this.requestMethods.set(requestId, method);\n this.sendFrame(frame);\n\n if (method === 'EnableTracing') this.setDurationStatus(argsProto);\n }\n\n static generateFrameBufferToSend(frame: Frame): Uint8Array {\n const frameProto: Uint8Array =\n perfetto.protos.IPCFrame.encode(frame).finish();\n const frameLen = frameProto.length;\n const buf = new Uint8Array(WIRE_PROTOCOL_HEADER_SIZE + frameLen);\n const dv = new DataView(buf.buffer);\n dv.setUint32(0, frameProto.length, /* littleEndian */ true);\n for (let i = 0; i < frameLen; i++) {\n dv.setUint8(WIRE_PROTOCOL_HEADER_SIZE + i, frameProto[i]);\n }\n return buf;\n }\n\n async sendFrame(frame: Frame) {\n console.assert(this.socket !== undefined);\n if (!this.socket) return;\n const buf = AdbSocketConsumerPort.generateFrameBufferToSend(frame);\n await this.socket.write(buf);\n }\n\n async listenForMessages() {\n this.socket = await this.adb.socket(TRACED_SOCKET);\n this.socket.onData = (raw) => this.handleReceivedData(raw);\n this.socket.onClose = () => {\n this.socketState = SocketState.DISCONNECTED;\n this.socketCommandQueue = [];\n };\n }\n\n private parseMessageSize(buffer: Uint8Array) {\n const dv = new DataView(buffer.buffer, buffer.byteOffset, buffer.length);\n return dv.getUint32(0, true);\n }\n\n private parseMessage(frameBuffer: Uint8Array) {\n // Copy message to new array:\n const buf = new ArrayBuffer(frameBuffer.byteLength);\n const arr = new Uint8Array(buf);\n arr.set(frameBuffer);\n const frame = perfetto.protos.IPCFrame.decode(arr);\n this.handleIncomingFrame(frame);\n }\n\n private incompleteSizeHeader() {\n if (!this.frameToParseLen) {\n console.assert(this.incomingBufferLen < WIRE_PROTOCOL_HEADER_SIZE);\n return true;\n }\n return false;\n }\n\n private canCompleteSizeHeader(newData: Uint8Array) {\n return newData.length + this.incomingBufferLen > WIRE_PROTOCOL_HEADER_SIZE;\n }\n\n private canParseFullMessage(newData: Uint8Array) {\n return this.frameToParseLen &&\n this.incomingBufferLen + newData.length >= this.frameToParseLen;\n }\n\n private appendToIncomingBuffer(array: Uint8Array) {\n this.incomingBuffer.set(array, this.incomingBufferLen);\n this.incomingBufferLen += array.length;\n }\n\n handleReceivedData(newData: Uint8Array) {\n if (this.incompleteSizeHeader() && this.canCompleteSizeHeader(newData)) {\n const newDataBytesToRead =\n WIRE_PROTOCOL_HEADER_SIZE - this.incomingBufferLen;\n // Add to the incoming buffer the remaining bytes to arrive at\n // WIRE_PROTOCOL_HEADER_SIZE\n this.appendToIncomingBuffer(newData.subarray(0, newDataBytesToRead));\n newData = newData.subarray(newDataBytesToRead);\n\n this.frameToParseLen = this.parseMessageSize(this.incomingBuffer);\n this.incomingBufferLen = 0;\n }\n\n // Parse all complete messages in incomingBuffer and newData.\n while (this.canParseFullMessage(newData)) {\n // All the message is in the newData buffer.\n if (this.incomingBufferLen === 0) {\n this.parseMessage(newData.subarray(0, this.frameToParseLen));\n newData = newData.subarray(this.frameToParseLen);\n } else { // We need to complete the local buffer.\n // Read the remaining part of this message.\n const bytesToCompleteMessage =\n this.frameToParseLen - this.incomingBufferLen;\n this.appendToIncomingBuffer(\n newData.subarray(0, bytesToCompleteMessage));\n this.parseMessage(\n this.incomingBuffer.subarray(0, this.frameToParseLen));\n this.incomingBufferLen = 0;\n // Remove the data just parsed.\n newData = newData.subarray(bytesToCompleteMessage);\n }\n this.frameToParseLen = 0;\n if (!this.canCompleteSizeHeader(newData)) break;\n\n this.frameToParseLen =\n this.parseMessageSize(newData.subarray(0, WIRE_PROTOCOL_HEADER_SIZE));\n newData = newData.subarray(WIRE_PROTOCOL_HEADER_SIZE);\n }\n // Buffer the remaining data (part of the next header + message).\n this.appendToIncomingBuffer(newData);\n }\n\n decodeResponse(\n requestId: number, responseProto: Uint8Array, hasMore = false) {\n const method = this.requestMethods.get(requestId);\n if (!method) {\n console.error(`Unknown request id: ${requestId}`);\n this.sendErrorMessage(`Wire protocol error.`);\n return;\n }\n const decoder = decoders.get(method);\n if (decoder === undefined) {\n console.error(`Unable to decode method: ${method}`);\n return;\n }\n const decodedResponse = decoder(responseProto);\n const response = {type: `${method}Response`, ...decodedResponse};\n\n // TODO(nicomazz): Fix this.\n // We assemble all the trace and then send it back to the main controller.\n // This is a temporary solution, that will be changed in a following CL,\n // because now both the chrome consumer port and the other adb consumer port\n // send back the entire trace, while the correct behavior should be to send\n // back the slices, that are assembled by the main record controller.\n if (isReadBuffersResponse(response)) {\n if (response.slices) this.handleSlices(response.slices);\n if (!hasMore) this.sendReadBufferResponse();\n return;\n }\n this.sendMessage(response);\n }\n\n handleSlices(slices: ISlice[]) {\n for (const slice of slices) {\n this.partialPacket.push(slice);\n if (slice.lastSliceForPacket) {\n const tracePacket = this.generateTracePacket(this.partialPacket);\n this.traceProtoWriter.uint32(TRACE_PACKET_PROTO_TAG);\n this.traceProtoWriter.bytes(tracePacket);\n this.partialPacket = [];\n }\n }\n }\n\n generateTracePacket(slices: ISlice[]): Uint8Array {\n let bufferSize = 0;\n for (const slice of slices) bufferSize += slice.data!.length;\n const fullBuffer = new Uint8Array(bufferSize);\n let written = 0;\n for (const slice of slices) {\n const data = slice.data!;\n fullBuffer.set(data, written);\n written += data.length;\n }\n return fullBuffer;\n }\n\n sendReadBufferResponse() {\n this.sendMessage(this.generateChunkReadResponse(\n this.traceProtoWriter.finish(), /* last */ true));\n this.traceProtoWriter = protobuf.Writer.create();\n }\n\n bind() {\n console.assert(this.socket !== undefined);\n const requestId = this.requestId++;\n const frame = new perfetto.protos.IPCFrame({\n requestId,\n msgBindService: new perfetto.protos.IPCFrame.BindService(\n {serviceName: 'ConsumerPort'})\n });\n return new Promise<void>((resolve, _) => {\n this.resolveBindingPromise = resolve;\n this.sendFrame(frame);\n });\n }\n\n findMethodId(method: string): number|undefined {\n const methodObject = this.availableMethods.find((m) => m.name === method);\n if (methodObject && methodObject.id) return methodObject.id;\n return undefined;\n }\n\n static async hasSocketAccess(device: USBDevice, adb: Adb): Promise<boolean> {\n await adb.connect(device);\n try {\n const socket = await adb.socket(TRACED_SOCKET);\n socket.close();\n return true;\n } catch (e) {\n return false;\n }\n }\n\n handleIncomingFrame(frame: perfetto.protos.IPCFrame) {\n const requestId = frame.requestId;\n switch (frame.msg) {\n case 'msgBindServiceReply': {\n const msgBindServiceReply = frame.msgBindServiceReply;\n if (msgBindServiceReply && msgBindServiceReply.methods &&\n msgBindServiceReply.serviceId) {\n console.assert(msgBindServiceReply.success);\n this.availableMethods = msgBindServiceReply.methods;\n this.serviceId = msgBindServiceReply.serviceId;\n this.resolveBindingPromise();\n this.resolveBindingPromise = () => {};\n }\n return;\n }\n case 'msgInvokeMethodReply': {\n const msgInvokeMethodReply = frame.msgInvokeMethodReply;\n if (msgInvokeMethodReply && msgInvokeMethodReply.replyProto) {\n if (!msgInvokeMethodReply.success) {\n console.error(\n 'Unsuccessful method invocation: ', msgInvokeMethodReply);\n return;\n }\n this.decodeResponse(\n requestId,\n msgInvokeMethodReply.replyProto,\n msgInvokeMethodReply.hasMore === true);\n }\n return;\n }\n default:\n console.error(`not recognized frame message: ${frame.msg}`);\n }\n }\n}\n\nconst decoders =\n new Map<string, Function>()\n .set('EnableTracing', perfetto.protos.EnableTracingResponse.decode)\n .set('FreeBuffers', perfetto.protos.FreeBuffersResponse.decode)\n .set('ReadBuffers', perfetto.protos.ReadBuffersResponse.decode)\n .set('DisableTracing', perfetto.protos.DisableTracingResponse.decode)\n .set('GetTraceStats', perfetto.protos.GetTraceStatsResponse.decode);\n","// Copyright (C) 2019 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {binaryDecode, binaryEncode} from '../base/string_utils';\nimport {TRACE_SUFFIX} from '../common/constants';\n\nimport {\n ConsumerPortResponse,\n hasProperty,\n isReadBuffersResponse,\n Typed\n} from './consumer_port_types';\nimport {Consumer, RpcConsumerPort} from './record_controller_interfaces';\n\nexport interface ChromeExtensionError extends Typed {\n error: string;\n}\n\nexport interface ChromeExtensionStatus extends Typed {\n status: string;\n}\n\nexport interface GetCategoriesResponse extends Typed {\n categories: string[];\n}\n\nexport type ChromeExtensionMessage = ChromeExtensionError|ChromeExtensionStatus|\n ConsumerPortResponse|GetCategoriesResponse;\n\nfunction isError(obj: Typed): obj is ChromeExtensionError {\n return obj.type === 'ChromeExtensionError';\n}\n\nfunction isStatus(obj: Typed): obj is ChromeExtensionStatus {\n return obj.type === 'ChromeExtensionStatus';\n}\n\nfunction isObject(obj: unknown): obj is object {\n return typeof obj === 'object' && obj !== null;\n}\n\nexport function isGetCategoriesResponse(obj: unknown):\n obj is GetCategoriesResponse {\n if (!(isObject(obj) && hasProperty(obj, 'type') &&\n obj.type === 'GetCategoriesResponse')) {\n return false;\n }\n\n return hasProperty(obj, 'categories') && Array.isArray(obj.categories);\n}\n\n// This class acts as a proxy from the record controller (running in a worker),\n// to the frontend. This is needed because we can't directly talk with the\n// extension from a web-worker, so we use a MessagePort to communicate with the\n// frontend, that will consecutively forward it to the extension.\n\n// Rationale for the binaryEncode / binaryDecode calls below:\n// Messages to/from extensions need to be JSON serializable. ArrayBuffers are\n// not supported. For this reason here we use binaryEncode/Decode.\n// See https://developer.chrome.com/extensions/messaging#simple\n\nexport class ChromeExtensionConsumerPort extends RpcConsumerPort {\n private extensionPort: MessagePort;\n\n constructor(extensionPort: MessagePort, consumer: Consumer) {\n super(consumer);\n this.extensionPort = extensionPort;\n this.extensionPort.onmessage = this.onExtensionMessage.bind(this);\n }\n\n onExtensionMessage(message: {data: ChromeExtensionMessage}) {\n if (isError(message.data)) {\n this.sendErrorMessage(message.data.error);\n return;\n }\n if (isStatus(message.data)) {\n this.sendStatus(message.data.status);\n return;\n }\n\n // In this else branch message.data will be a ConsumerPortResponse.\n if (isReadBuffersResponse(message.data) && message.data.slices) {\n const slice = message.data.slices[0].data as unknown as string;\n message.data.slices[0].data = binaryDecode(slice);\n }\n this.sendMessage(message.data);\n }\n\n handleCommand(method: string, requestData: Uint8Array): void {\n const reqEncoded = binaryEncode(requestData);\n this.extensionPort.postMessage({method, requestData: reqEncoded});\n }\n\n getRecordedTraceSuffix(): string {\n return `${TRACE_SUFFIX}.gz`;\n }\n}\n","// Copyright (C) 2018 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {Message, Method, rpc, RPCImplCallback} from 'protobufjs';\n\nimport {\n base64Encode,\n} from '../base/string_utils';\nimport {Actions} from '../common/actions';\nimport {TRACE_SUFFIX} from '../common/constants';\nimport {\n AndroidLogConfig,\n AndroidLogId,\n AndroidPowerConfig,\n BufferConfig,\n ChromeConfig,\n ConsumerPort,\n DataSourceConfig,\n FtraceConfig,\n HeapprofdConfig,\n JavaContinuousDumpConfig,\n JavaHprofConfig,\n NativeContinuousDumpConfig,\n ProcessStatsConfig,\n SysStatsConfig,\n TraceConfig,\n} from '../common/protos';\nimport {MeminfoCounters, VmstatCounters} from '../common/protos';\nimport {\n AdbRecordingTarget,\n isAdbTarget,\n isAndroidP,\n isChromeTarget,\n isCrOSTarget,\n isLinuxTarget,\n RecordingTarget\n} from '../common/state';\nimport {publishBufferUsage, publishTrackData} from '../frontend/publish';\n\nimport {AdbOverWebUsb} from './adb';\nimport {AdbConsumerPort} from './adb_shell_controller';\nimport {AdbSocketConsumerPort} from './adb_socket_controller';\nimport {ChromeExtensionConsumerPort} from './chrome_proxy_record_controller';\nimport {\n ConsumerPortResponse,\n GetTraceStatsResponse,\n isDisableTracingResponse,\n isEnableTracingResponse,\n isFreeBuffersResponse,\n isGetTraceStatsResponse,\n isReadBuffersResponse,\n} from './consumer_port_types';\nimport {Controller} from './controller';\nimport {App, globals} from './globals';\nimport {RecordConfig} from './record_config_types';\nimport {Consumer, RpcConsumerPort} from './record_controller_interfaces';\n\ntype RPCImplMethod = (Method|rpc.ServiceMethod<Message<{}>, Message<{}>>);\n\nexport function genConfigProto(\n uiCfg: RecordConfig, target: RecordingTarget): Uint8Array {\n return TraceConfig.encode(genConfig(uiCfg, target)).finish();\n}\n\nexport function genConfig(\n uiCfg: RecordConfig, target: RecordingTarget): TraceConfig {\n const protoCfg = new TraceConfig();\n protoCfg.durationMs = uiCfg.durationMs;\n\n // Auxiliary buffer for slow-rate events.\n // Set to 1/8th of the main buffer size, with reasonable limits.\n let slowBufSizeKb = uiCfg.bufferSizeMb * (1024 / 8);\n slowBufSizeKb = Math.min(slowBufSizeKb, 2 * 1024);\n slowBufSizeKb = Math.max(slowBufSizeKb, 256);\n\n // Main buffer for ftrace and other high-freq events.\n const fastBufSizeKb = uiCfg.bufferSizeMb * 1024 - slowBufSizeKb;\n\n protoCfg.buffers.push(new BufferConfig());\n protoCfg.buffers.push(new BufferConfig());\n protoCfg.buffers[1].sizeKb = slowBufSizeKb;\n protoCfg.buffers[0].sizeKb = fastBufSizeKb;\n\n if (uiCfg.mode === 'STOP_WHEN_FULL') {\n protoCfg.buffers[0].fillPolicy = BufferConfig.FillPolicy.DISCARD;\n protoCfg.buffers[1].fillPolicy = BufferConfig.FillPolicy.DISCARD;\n } else {\n protoCfg.buffers[0].fillPolicy = BufferConfig.FillPolicy.RING_BUFFER;\n protoCfg.buffers[1].fillPolicy = BufferConfig.FillPolicy.RING_BUFFER;\n protoCfg.flushPeriodMs = 30000;\n if (uiCfg.mode === 'LONG_TRACE') {\n protoCfg.writeIntoFile = true;\n protoCfg.fileWritePeriodMs = uiCfg.fileWritePeriodMs;\n protoCfg.maxFileSizeBytes = uiCfg.maxFileSizeMb * 1e6;\n }\n\n // Clear incremental state every 5 seconds when tracing into a ring buffer.\n const incStateConfig = new TraceConfig.IncrementalStateConfig();\n incStateConfig.clearPeriodMs = 5000;\n protoCfg.incrementalStateConfig = incStateConfig;\n }\n\n const ftraceEvents = new Set<string>(uiCfg.ftrace ? uiCfg.ftraceEvents : []);\n const atraceCats = new Set<string>(uiCfg.atrace ? uiCfg.atraceCats : []);\n const atraceApps = new Set<string>();\n const chromeCategories = new Set<string>();\n uiCfg.chromeCategoriesSelected.forEach(it => chromeCategories.add(it));\n uiCfg.chromeHighOverheadCategoriesSelected.forEach(\n it => chromeCategories.add(it));\n\n let procThreadAssociationPolling = false;\n let procThreadAssociationFtrace = false;\n let trackInitialOomScore = false;\n\n if (uiCfg.cpuSched) {\n procThreadAssociationPolling = true;\n procThreadAssociationFtrace = true;\n uiCfg.ftrace = true;\n uiCfg.symbolizeKsyms = true;\n ftraceEvents.add('sched/sched_switch');\n ftraceEvents.add('power/suspend_resume');\n ftraceEvents.add('sched/sched_wakeup');\n ftraceEvents.add('sched/sched_wakeup_new');\n ftraceEvents.add('sched/sched_waking');\n ftraceEvents.add('power/suspend_resume');\n }\n\n if (uiCfg.cpuFreq) {\n ftraceEvents.add('power/cpu_frequency');\n ftraceEvents.add('power/cpu_idle');\n ftraceEvents.add('power/suspend_resume');\n }\n\n if (uiCfg.gpuFreq) {\n ftraceEvents.add('power/gpu_frequency');\n }\n\n if (uiCfg.gpuMemTotal) {\n ftraceEvents.add('gpu_mem/gpu_mem_total');\n\n if (!isChromeTarget(target) || isCrOSTarget(target)) {\n const ds = new TraceConfig.DataSource();\n ds.config = new DataSourceConfig();\n ds.config.name = 'android.gpu.memory';\n protoCfg.dataSources.push(ds);\n }\n }\n\n if (uiCfg.cpuSyscall) {\n ftraceEvents.add('raw_syscalls/sys_enter');\n ftraceEvents.add('raw_syscalls/sys_exit');\n }\n\n if (uiCfg.batteryDrain) {\n const ds = new TraceConfig.DataSource();\n ds.config = new DataSourceConfig();\n if (isCrOSTarget(target) || isLinuxTarget(target)) {\n ds.config.name = 'linux.sysfs_power';\n } else {\n ds.config.name = 'android.power';\n ds.config.androidPowerConfig = new AndroidPowerConfig();\n ds.config.androidPowerConfig.batteryPollMs = uiCfg.batteryDrainPollMs;\n ds.config.androidPowerConfig.batteryCounters = [\n AndroidPowerConfig.BatteryCounters.BATTERY_COUNTER_CAPACITY_PERCENT,\n AndroidPowerConfig.BatteryCounters.BATTERY_COUNTER_CHARGE,\n AndroidPowerConfig.BatteryCounters.BATTERY_COUNTER_CURRENT,\n ];\n ds.config.androidPowerConfig.collectPowerRails = true;\n }\n if (!isChromeTarget(target) || isCrOSTarget(target)) {\n protoCfg.dataSources.push(ds);\n }\n }\n\n if (uiCfg.boardSensors) {\n ftraceEvents.add('regulator/regulator_set_voltage');\n ftraceEvents.add('regulator/regulator_set_voltage_complete');\n ftraceEvents.add('power/clock_enable');\n ftraceEvents.add('power/clock_disable');\n ftraceEvents.add('power/clock_set_rate');\n ftraceEvents.add('power/suspend_resume');\n }\n\n let sysStatsCfg: SysStatsConfig|undefined = undefined;\n\n if (uiCfg.cpuCoarse) {\n sysStatsCfg = new SysStatsConfig();\n sysStatsCfg.statPeriodMs = uiCfg.cpuCoarsePollMs;\n sysStatsCfg.statCounters = [\n SysStatsConfig.StatCounters.STAT_CPU_TIMES,\n SysStatsConfig.StatCounters.STAT_FORK_COUNT,\n ];\n }\n\n if (uiCfg.memHiFreq) {\n procThreadAssociationPolling = true;\n procThreadAssociationFtrace = true;\n ftraceEvents.add('mm_event/mm_event_record');\n ftraceEvents.add('kmem/rss_stat');\n ftraceEvents.add('ion/ion_stat');\n ftraceEvents.add('dmabuf_heap/dma_heap_stat');\n ftraceEvents.add('kmem/ion_heap_grow');\n ftraceEvents.add('kmem/ion_heap_shrink');\n }\n\n if (procThreadAssociationFtrace) {\n ftraceEvents.add('sched/sched_process_exit');\n ftraceEvents.add('sched/sched_process_free');\n ftraceEvents.add('task/task_newtask');\n ftraceEvents.add('task/task_rename');\n }\n\n if (uiCfg.meminfo) {\n if (sysStatsCfg === undefined) sysStatsCfg = new SysStatsConfig();\n sysStatsCfg.meminfoPeriodMs = uiCfg.meminfoPeriodMs;\n sysStatsCfg.meminfoCounters = uiCfg.meminfoCounters.map(name => {\n // tslint:disable-next-line no-any\n return MeminfoCounters[name as any as number] as any as number;\n });\n }\n\n if (uiCfg.vmstat) {\n if (sysStatsCfg === undefined) sysStatsCfg = new SysStatsConfig();\n sysStatsCfg.vmstatPeriodMs = uiCfg.vmstatPeriodMs;\n sysStatsCfg.vmstatCounters = uiCfg.vmstatCounters.map(name => {\n // tslint:disable-next-line no-any\n return VmstatCounters[name as any as number] as any as number;\n });\n }\n\n if (uiCfg.memLmk) {\n // For in-kernel LMK (roughly older devices until Go and Pixel 3).\n ftraceEvents.add('lowmemorykiller/lowmemory_kill');\n\n // For userspace LMKd (newer devices).\n // 'lmkd' is not really required because the code in lmkd.c emits events\n // with ATRACE_TAG_ALWAYS. We need something just to ensure that the final\n // config will enable atrace userspace events.\n atraceApps.add('lmkd');\n\n ftraceEvents.add('oom/oom_score_adj_update');\n procThreadAssociationPolling = true;\n trackInitialOomScore = true;\n }\n\n let heapprofd: HeapprofdConfig|undefined = undefined;\n if (uiCfg.heapProfiling) {\n // TODO(hjd): Check or inform user if buffer size are too small.\n const cfg = new HeapprofdConfig();\n cfg.samplingIntervalBytes = uiCfg.hpSamplingIntervalBytes;\n if (uiCfg.hpSharedMemoryBuffer >= 8192 &&\n uiCfg.hpSharedMemoryBuffer % 4096 === 0) {\n cfg.shmemSizeBytes = uiCfg.hpSharedMemoryBuffer;\n }\n for (const value of uiCfg.hpProcesses.split('\\n')) {\n if (value === '') {\n // Ignore empty lines\n } else if (isNaN(+value)) {\n cfg.processCmdline.push(value);\n } else {\n cfg.pid.push(+value);\n }\n }\n if (uiCfg.hpContinuousDumpsInterval > 0) {\n const cdc = cfg.continuousDumpConfig = new NativeContinuousDumpConfig();\n cdc.dumpIntervalMs = uiCfg.hpContinuousDumpsInterval;\n if (uiCfg.hpContinuousDumpsPhase > 0) {\n cdc.dumpPhaseMs = uiCfg.hpContinuousDumpsPhase;\n }\n }\n cfg.blockClient = uiCfg.hpBlockClient;\n if (uiCfg.hpAllHeaps) {\n cfg.allHeaps = true;\n }\n heapprofd = cfg;\n }\n\n let javaHprof: JavaHprofConfig|undefined = undefined;\n if (uiCfg.javaHeapDump) {\n const cfg = new JavaHprofConfig();\n for (const value of uiCfg.jpProcesses.split('\\n')) {\n if (value === '') {\n // Ignore empty lines\n } else if (isNaN(+value)) {\n cfg.processCmdline.push(value);\n } else {\n cfg.pid.push(+value);\n }\n }\n if (uiCfg.jpContinuousDumpsInterval > 0) {\n const cdc = cfg.continuousDumpConfig = new JavaContinuousDumpConfig();\n cdc.dumpIntervalMs = uiCfg.jpContinuousDumpsInterval;\n if (uiCfg.hpContinuousDumpsPhase > 0) {\n cdc.dumpPhaseMs = uiCfg.jpContinuousDumpsPhase;\n }\n }\n javaHprof = cfg;\n }\n\n if (uiCfg.procStats || procThreadAssociationPolling || trackInitialOomScore) {\n const ds = new TraceConfig.DataSource();\n ds.config = new DataSourceConfig();\n ds.config.targetBuffer = 1; // Aux\n ds.config.name = 'linux.process_stats';\n ds.config.processStatsConfig = new ProcessStatsConfig();\n if (uiCfg.procStats) {\n ds.config.processStatsConfig.procStatsPollMs = uiCfg.procStatsPeriodMs;\n }\n if (procThreadAssociationPolling || trackInitialOomScore) {\n ds.config.processStatsConfig.scanAllProcessesOnStart = true;\n }\n if (!isChromeTarget(target) || isCrOSTarget(target)) {\n protoCfg.dataSources.push(ds);\n }\n }\n\n if (uiCfg.androidLogs) {\n const ds = new TraceConfig.DataSource();\n ds.config = new DataSourceConfig();\n ds.config.name = 'android.log';\n ds.config.androidLogConfig = new AndroidLogConfig();\n ds.config.androidLogConfig.logIds = uiCfg.androidLogBuffers.map(name => {\n // tslint:disable-next-line no-any\n return AndroidLogId[name as any as number] as any as number;\n });\n\n if (!isChromeTarget(target) || isCrOSTarget(target)) {\n protoCfg.dataSources.push(ds);\n }\n }\n\n if (uiCfg.androidFrameTimeline) {\n const ds = new TraceConfig.DataSource();\n ds.config = new DataSourceConfig();\n ds.config.name = 'android.surfaceflinger.frametimeline';\n if (!isChromeTarget(target) || isCrOSTarget(target)) {\n protoCfg.dataSources.push(ds);\n }\n }\n\n if (uiCfg.chromeLogs) {\n chromeCategories.add('log');\n }\n\n if (uiCfg.taskScheduling) {\n chromeCategories.add('toplevel');\n chromeCategories.add('sequence_manager');\n chromeCategories.add('disabled-by-default-toplevel.flow');\n }\n\n if (uiCfg.ipcFlows) {\n chromeCategories.add('toplevel');\n chromeCategories.add('disabled-by-default-ipc.flow');\n chromeCategories.add('mojom');\n }\n\n if (uiCfg.jsExecution) {\n chromeCategories.add('toplevel');\n chromeCategories.add('v8');\n }\n\n if (uiCfg.webContentRendering) {\n chromeCategories.add('toplevel');\n chromeCategories.add('blink');\n chromeCategories.add('cc');\n chromeCategories.add('gpu');\n }\n\n if (uiCfg.uiRendering) {\n chromeCategories.add('toplevel');\n chromeCategories.add('cc');\n chromeCategories.add('gpu');\n chromeCategories.add('viz');\n chromeCategories.add('ui');\n chromeCategories.add('views');\n }\n\n if (uiCfg.inputEvents) {\n chromeCategories.add('toplevel');\n chromeCategories.add('benchmark');\n chromeCategories.add('evdev');\n chromeCategories.add('input');\n chromeCategories.add('disabled-by-default-toplevel.flow');\n }\n\n if (uiCfg.navigationAndLoading) {\n chromeCategories.add('loading');\n chromeCategories.add('net');\n chromeCategories.add('netlog');\n chromeCategories.add('navigation');\n chromeCategories.add('browser');\n }\n\n if (chromeCategories.size !== 0) {\n let chromeRecordMode;\n if (uiCfg.mode === 'STOP_WHEN_FULL') {\n chromeRecordMode = 'record-until-full';\n } else {\n chromeRecordMode = 'record-continuously';\n }\n const configStruct = {\n record_mode: chromeRecordMode,\n included_categories: [...chromeCategories.values()],\n memory_dump_config: {},\n };\n if (chromeCategories.has('disabled-by-default-memory-infra')) {\n configStruct.memory_dump_config = {\n allowed_dump_modes: ['background', 'light', 'detailed'],\n triggers: [{\n min_time_between_dumps_ms: 10000,\n mode: 'detailed',\n type: 'periodic_interval',\n }],\n };\n }\n const traceConfigJson = JSON.stringify(configStruct);\n\n const traceDs = new TraceConfig.DataSource();\n traceDs.config = new DataSourceConfig();\n traceDs.config.name = 'org.chromium.trace_event';\n traceDs.config.chromeConfig = new ChromeConfig();\n traceDs.config.chromeConfig.traceConfig = traceConfigJson;\n protoCfg.dataSources.push(traceDs);\n\n\n const metadataDs = new TraceConfig.DataSource();\n metadataDs.config = new DataSourceConfig();\n metadataDs.config.name = 'org.chromium.trace_metadata';\n metadataDs.config.chromeConfig = new ChromeConfig();\n metadataDs.config.chromeConfig.traceConfig = traceConfigJson;\n protoCfg.dataSources.push(metadataDs);\n\n if (chromeCategories.has('disabled-by-default-memory-infra')) {\n const memoryDs = new TraceConfig.DataSource();\n memoryDs.config = new DataSourceConfig();\n memoryDs.config.name = 'org.chromium.memory_instrumentation';\n memoryDs.config.chromeConfig = new ChromeConfig();\n memoryDs.config.chromeConfig.traceConfig = traceConfigJson;\n protoCfg.dataSources.push(memoryDs);\n\n const HeapProfDs = new TraceConfig.DataSource();\n HeapProfDs.config = new DataSourceConfig();\n HeapProfDs.config.name = 'org.chromium.native_heap_profiler';\n HeapProfDs.config.chromeConfig = new ChromeConfig();\n HeapProfDs.config.chromeConfig.traceConfig = traceConfigJson;\n protoCfg.dataSources.push(HeapProfDs);\n }\n }\n\n // Keep these last. The stages above can enrich them.\n\n if (sysStatsCfg !== undefined &&\n (!isChromeTarget(target) || isCrOSTarget(target))) {\n const ds = new TraceConfig.DataSource();\n ds.config = new DataSourceConfig();\n ds.config.name = 'linux.sys_stats';\n ds.config.sysStatsConfig = sysStatsCfg;\n protoCfg.dataSources.push(ds);\n }\n\n if (heapprofd !== undefined &&\n (!isChromeTarget(target) || isCrOSTarget(target))) {\n const ds = new TraceConfig.DataSource();\n ds.config = new DataSourceConfig();\n ds.config.targetBuffer = 0;\n ds.config.name = 'android.heapprofd';\n ds.config.heapprofdConfig = heapprofd;\n protoCfg.dataSources.push(ds);\n }\n\n if (javaHprof !== undefined &&\n (!isChromeTarget(target) || isCrOSTarget(target))) {\n const ds = new TraceConfig.DataSource();\n ds.config = new DataSourceConfig();\n ds.config.targetBuffer = 0;\n ds.config.name = 'android.java_hprof';\n ds.config.javaHprofConfig = javaHprof;\n protoCfg.dataSources.push(ds);\n }\n\n if (uiCfg.ftrace || uiCfg.atraceApps.length > 0 || ftraceEvents.size > 0 ||\n atraceCats.size > 0 || atraceApps.size > 0) {\n const ds = new TraceConfig.DataSource();\n ds.config = new DataSourceConfig();\n ds.config.name = 'linux.ftrace';\n ds.config.ftraceConfig = new FtraceConfig();\n // Override the advanced ftrace parameters only if the user has ticked the\n // \"Advanced ftrace config\" tab.\n if (uiCfg.ftrace) {\n ds.config.ftraceConfig.bufferSizeKb = uiCfg.ftraceBufferSizeKb;\n ds.config.ftraceConfig.drainPeriodMs = uiCfg.ftraceDrainPeriodMs;\n if (uiCfg.symbolizeKsyms) {\n ds.config.ftraceConfig.symbolizeKsyms = true;\n ftraceEvents.add('sched/sched_blocked_reason');\n }\n for (const line of uiCfg.ftraceExtraEvents.split('\\n')) {\n if (line.trim().length > 0) ftraceEvents.add(line.trim());\n }\n }\n for (const line of uiCfg.atraceApps.split('\\n')) {\n if (line.trim().length > 0) atraceApps.add(line.trim());\n }\n\n if (atraceCats.size > 0 || atraceApps.size > 0) {\n ftraceEvents.add('ftrace/print');\n }\n\n let ftraceEventsArray: string[] = [];\n if (isAndroidP(target)) {\n for (const ftraceEvent of ftraceEvents) {\n // On P, we don't support groups so strip all group names from ftrace\n // events.\n const groupAndName = ftraceEvent.split('/');\n if (groupAndName.length !== 2) {\n ftraceEventsArray.push(ftraceEvent);\n continue;\n }\n // Filter out any wildcard event groups which was not supported\n // before Q.\n if (groupAndName[1] === '*') {\n continue;\n }\n ftraceEventsArray.push(groupAndName[1]);\n }\n } else {\n ftraceEventsArray = Array.from(ftraceEvents);\n }\n\n ds.config.ftraceConfig.ftraceEvents = ftraceEventsArray;\n ds.config.ftraceConfig.atraceCategories = Array.from(atraceCats);\n ds.config.ftraceConfig.atraceApps = Array.from(atraceApps);\n if (!isChromeTarget(target) || isCrOSTarget(target)) {\n protoCfg.dataSources.push(ds);\n }\n }\n\n return protoCfg;\n}\n\nexport function toPbtxt(configBuffer: Uint8Array): string {\n const msg = TraceConfig.decode(configBuffer);\n const json = msg.toJSON();\n function snakeCase(s: string): string {\n return s.replace(/[A-Z]/g, c => '_' + c.toLowerCase());\n }\n // With the ahead of time compiled protos we can't seem to tell which\n // fields are enums.\n function isEnum(value: string): boolean {\n return value.startsWith('MEMINFO_') || value.startsWith('VMSTAT_') ||\n value.startsWith('STAT_') || value.startsWith('LID_') ||\n value.startsWith('BATTERY_COUNTER_') || value === 'DISCARD' ||\n value === 'RING_BUFFER';\n }\n // Since javascript doesn't have 64 bit numbers when converting protos to\n // json the proto library encodes them as strings. This is lossy since\n // we can't tell which strings that look like numbers are actually strings\n // and which are actually numbers. Ideally we would reflect on the proto\n // definition somehow but for now we just hard code keys which have this\n // problem in the config.\n function is64BitNumber(key: string): boolean {\n return [\n 'maxFileSizeBytes',\n 'samplingIntervalBytes',\n 'shmemSizeBytes',\n 'pid'\n ].includes(key);\n }\n function* message(msg: {}, indent: number): IterableIterator<string> {\n for (const [key, value] of Object.entries(msg)) {\n const isRepeated = Array.isArray(value);\n const isNested = typeof value === 'object' && !isRepeated;\n for (const entry of (isRepeated ? value as Array<{}> : [value])) {\n yield ' '.repeat(indent) + `${snakeCase(key)}${isNested ? '' : ':'} `;\n if (typeof entry === 'string') {\n if (isEnum(entry) || is64BitNumber(key)) {\n yield entry;\n } else {\n yield `\"${entry.replace(new RegExp('\"', 'g'), '\\\\\"')}\"`;\n }\n } else if (typeof entry === 'number') {\n yield entry.toString();\n } else if (typeof entry === 'boolean') {\n yield entry.toString();\n } else if (typeof entry === 'object' && entry !== null) {\n yield '{\\n';\n yield* message(entry, indent + 4);\n yield ' '.repeat(indent) + '}';\n } else {\n throw new Error(`Record proto entry \"${entry}\" with unexpected type ${\n typeof entry}`);\n }\n yield '\\n';\n }\n }\n }\n return [...message(json, 0)].join('');\n}\n\nexport class RecordController extends Controller<'main'> implements Consumer {\n private app: App;\n private config: RecordConfig|null = null;\n private readonly extensionPort: MessagePort;\n private recordingInProgress = false;\n private consumerPort: ConsumerPort;\n private traceBuffer: Uint8Array[] = [];\n private bufferUpdateInterval: ReturnType<typeof setTimeout>|undefined;\n private adb = new AdbOverWebUsb();\n private recordedTraceSuffix = TRACE_SUFFIX;\n private fetchedCategories = false;\n\n // We have a different controller for each targetOS. The correct one will be\n // created when needed, and stored here. When the key is a string, it is the\n // serial of the target (used for android devices). When the key is a single\n // char, it is the 'targetOS'\n private controllerPromises = new Map<string, Promise<RpcConsumerPort>>();\n\n constructor(args: {app: App, extensionPort: MessagePort}) {\n super('main');\n this.app = args.app;\n this.consumerPort = ConsumerPort.create(this.rpcImpl.bind(this));\n this.extensionPort = args.extensionPort;\n }\n\n run() {\n // TODO(eseckler): Use ConsumerPort's QueryServiceState instead\n // of posting a custom extension message to retrieve the category list.\n if (this.app.state.fetchChromeCategories && !this.fetchedCategories) {\n this.fetchedCategories = true;\n if (this.app.state.extensionInstalled) {\n this.extensionPort.postMessage({method: 'GetCategories'});\n }\n globals.dispatch(Actions.setFetchChromeCategories({fetch: false}));\n }\n if (this.app.state.recordConfig === this.config &&\n this.app.state.recordingInProgress === this.recordingInProgress) {\n return;\n }\n this.config = this.app.state.recordConfig;\n\n const configProto =\n genConfigProto(this.config, this.app.state.recordingTarget);\n const configProtoText = toPbtxt(configProto);\n const configProtoBase64 = base64Encode(configProto);\n const commandline = `\n echo '${configProtoBase64}' |\n base64 --decode |\n adb shell \"perfetto -c - -o /data/misc/perfetto-traces/trace\" &&\n adb pull /data/misc/perfetto-traces/trace /tmp/trace\n `;\n const traceConfig = genConfig(this.config, this.app.state.recordingTarget);\n // TODO(hjd): This should not be TrackData after we unify the stores.\n publishTrackData({\n id: 'config',\n data: {\n commandline,\n pbBase64: configProtoBase64,\n pbtxt: configProtoText,\n traceConfig\n }\n });\n\n // If the recordingInProgress boolean state is different, it means that we\n // have to start or stop recording a trace.\n if (this.app.state.recordingInProgress === this.recordingInProgress) return;\n this.recordingInProgress = this.app.state.recordingInProgress;\n\n if (this.recordingInProgress) {\n this.startRecordTrace(traceConfig);\n } else {\n this.stopRecordTrace();\n }\n }\n\n startRecordTrace(traceConfig: TraceConfig) {\n this.scheduleBufferUpdateRequests();\n this.traceBuffer = [];\n this.consumerPort.enableTracing({traceConfig});\n }\n\n stopRecordTrace() {\n if (this.bufferUpdateInterval) clearInterval(this.bufferUpdateInterval);\n this.consumerPort.disableTracing({});\n }\n\n scheduleBufferUpdateRequests() {\n if (this.bufferUpdateInterval) clearInterval(this.bufferUpdateInterval);\n this.bufferUpdateInterval = setInterval(() => {\n this.consumerPort.getTraceStats({});\n }, 200);\n }\n\n readBuffers() {\n this.consumerPort.readBuffers({});\n }\n\n onConsumerPortResponse(data: ConsumerPortResponse) {\n if (data === undefined) return;\n if (isReadBuffersResponse(data)) {\n if (!data.slices || data.slices.length === 0) return;\n // TODO(nicomazz): handle this as intended by consumer_port.proto.\n console.assert(data.slices.length === 1);\n if (data.slices[0].data) this.traceBuffer.push(data.slices[0].data);\n // The line underneath is 'misusing' the format ReadBuffersResponse.\n // The boolean field 'lastSliceForPacket' is used as 'lastPacketInTrace'.\n // See http://shortn/_53WB8A1aIr.\n if (data.slices[0].lastSliceForPacket) this.onTraceComplete();\n } else if (isEnableTracingResponse(data)) {\n this.readBuffers();\n } else if (isGetTraceStatsResponse(data)) {\n const percentage = this.getBufferUsagePercentage(data);\n if (percentage) {\n publishBufferUsage({percentage});\n }\n } else if (isFreeBuffersResponse(data)) {\n // No action required.\n } else if (isDisableTracingResponse(data)) {\n // No action required.\n } else {\n console.error('Unrecognized consumer port response:', data);\n }\n }\n\n onTraceComplete() {\n this.consumerPort.freeBuffers({});\n globals.dispatch(Actions.setRecordingStatus({status: undefined}));\n if (globals.state.recordingCancelled) {\n globals.dispatch(\n Actions.setLastRecordingError({error: 'Recording cancelled.'}));\n this.traceBuffer = [];\n return;\n }\n const trace = this.generateTrace();\n globals.dispatch(Actions.openTraceFromBuffer({\n title: 'Recorded trace',\n buffer: trace.buffer,\n fileName: `recorded_trace${this.recordedTraceSuffix}`,\n }));\n this.traceBuffer = [];\n }\n\n // TODO(nicomazz): stream each chunk into the trace processor, instead of\n // creating a big long trace.\n generateTrace() {\n let traceLen = 0;\n for (const chunk of this.traceBuffer) traceLen += chunk.length;\n const completeTrace = new Uint8Array(traceLen);\n let written = 0;\n for (const chunk of this.traceBuffer) {\n completeTrace.set(chunk, written);\n written += chunk.length;\n }\n return completeTrace;\n }\n\n getBufferUsagePercentage(data: GetTraceStatsResponse): number {\n if (!data.traceStats || !data.traceStats.bufferStats) return 0.0;\n let maximumUsage = 0;\n for (const buffer of data.traceStats.bufferStats) {\n const used = buffer.bytesWritten as number;\n const total = buffer.bufferSize as number;\n maximumUsage = Math.max(maximumUsage, used / total);\n }\n return maximumUsage;\n }\n\n onError(message: string) {\n // TODO(octaviant): b/204998302\n console.error('Error in record controller: ', message);\n globals.dispatch(\n Actions.setLastRecordingError({error: message.substr(0, 150)}));\n globals.dispatch(Actions.stopRecording({}));\n }\n\n onStatus(message: string) {\n globals.dispatch(Actions.setRecordingStatus({status: message}));\n }\n\n // Depending on the recording target, different implementation of the\n // consumer_port will be used.\n // - Chrome target: This forwards the messages that have to be sent\n // to the extension to the frontend. This is necessary because this\n // controller is running in a separate worker, that can't directly send\n // messages to the extension.\n // - Android device target: WebUSB is used to communicate using the adb\n // protocol. Actually, there is no full consumer_port implementation, but\n // only the support to start tracing and fetch the file.\n async getTargetController(target: RecordingTarget): Promise<RpcConsumerPort> {\n const identifier = RecordController.getTargetIdentifier(target);\n\n // The reason why caching the target 'record controller' Promise is that\n // multiple rcp calls can happen while we are trying to understand if an\n // android device has a socket connection available or not.\n const precedentPromise = this.controllerPromises.get(identifier);\n if (precedentPromise) return precedentPromise;\n\n const controllerPromise =\n new Promise<RpcConsumerPort>(async (resolve, _) => {\n let controller: RpcConsumerPort|undefined = undefined;\n if (isChromeTarget(target)) {\n controller =\n new ChromeExtensionConsumerPort(this.extensionPort, this);\n } else if (isAdbTarget(target)) {\n this.onStatus(`Please allow USB debugging on device.\n If you press cancel, reload the page.`);\n const socketAccess = await this.hasSocketAccess(target);\n\n controller = socketAccess ?\n new AdbSocketConsumerPort(this.adb, this) :\n new AdbConsumerPort(this.adb, this);\n } else {\n throw Error(`No device connected`);\n }\n\n if (!controller) throw Error(`Unknown target: ${target}`);\n resolve(controller);\n });\n\n this.controllerPromises.set(identifier, controllerPromise);\n return controllerPromise;\n }\n\n private static getTargetIdentifier(target: RecordingTarget): string {\n return isAdbTarget(target) ? target.serial : target.os;\n }\n\n private async hasSocketAccess(target: AdbRecordingTarget) {\n const devices = await navigator.usb.getDevices();\n const device = devices.find(d => d.serialNumber === target.serial);\n console.assert(device);\n if (!device) return Promise.resolve(false);\n return AdbSocketConsumerPort.hasSocketAccess(device, this.adb);\n }\n\n private async rpcImpl(\n method: RPCImplMethod, requestData: Uint8Array,\n _callback: RPCImplCallback) {\n try {\n const state = this.app.state;\n // TODO(hjd): This is a bit weird. We implicity send each RPC message to\n // whichever target is currently selected (creating that target if needed)\n // it would be nicer if the setup/teardown was more explicit.\n const target = await this.getTargetController(state.recordingTarget);\n this.recordedTraceSuffix = target.getRecordedTraceSuffix();\n target.handleCommand(method.name, requestData);\n } catch (e) {\n console.error(`error invoking ${method}: ${e.message}`);\n }\n }\n}\n","// Copyright (C) 2021 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n/**\n * This file deals with caching traces in the browser's Cache storage. The\n * traces are cached so that the UI can gracefully reload a trace when the tab\n * containing it is discarded by Chrome(e.g. because the tab was not used for a\n * long time) or when the user accidentally hits reload.\n */\nimport {assertExists} from '../base/logging';\nimport {TraceArrayBufferSource, TraceSource} from './state';\n\nconst TRACE_CACHE_NAME = 'cached_traces';\nconst TRACE_CACHE_SIZE = 10;\n\nexport async function cacheTrace(\n traceSource: TraceSource, traceUuid: string): Promise<boolean> {\n let trace, title = '', fileName = '', url = '', contentLength = 0,\n localOnly = false;\n switch (traceSource.type) {\n case 'ARRAY_BUFFER':\n trace = traceSource.buffer;\n title = traceSource.title;\n fileName = traceSource.fileName || '';\n url = traceSource.url || '';\n contentLength = traceSource.buffer.byteLength;\n localOnly = traceSource.localOnly || false;\n break;\n case 'FILE':\n trace = await traceSource.file.arrayBuffer();\n title = traceSource.file.name;\n contentLength = traceSource.file.size;\n break;\n default:\n return false;\n }\n assertExists(trace);\n\n const headers = new Headers([\n ['x-trace-title', title],\n ['x-trace-url', url],\n ['x-trace-filename', fileName],\n ['x-trace-local-only', `${localOnly}`],\n ['content-type', 'application/octet-stream'],\n ['content-length', `${contentLength}`],\n [\n 'expires',\n // Expires in a week from now (now = upload time)\n (new Date((new Date()).getTime() + (1000 * 60 * 60 * 24 * 7)))\n .toUTCString()\n ]\n ]);\n const traceCache = await caches.open(TRACE_CACHE_NAME);\n await deleteStaleEntries(traceCache);\n await traceCache.put(\n `/_${TRACE_CACHE_NAME}/${traceUuid}`, new Response(trace, {headers}));\n return true;\n}\n\nexport async function tryGetTrace(traceUuid: string):\n Promise<TraceArrayBufferSource|undefined> {\n await deleteStaleEntries(await caches.open(TRACE_CACHE_NAME));\n const response = await caches.match(\n `/_${TRACE_CACHE_NAME}/${traceUuid}`, {cacheName: TRACE_CACHE_NAME});\n\n if (!response) return undefined;\n return {\n type: 'ARRAY_BUFFER',\n buffer: await response.arrayBuffer(),\n title: response.headers.get('x-trace-title') || '',\n fileName: response.headers.get('x-trace-filename') || undefined,\n url: response.headers.get('x-trace-url') || undefined,\n uuid: traceUuid,\n localOnly: response.headers.get('x-trace-local-only') === 'true'\n };\n}\n\nasync function deleteStaleEntries(traceCache: Cache) {\n /*\n * Loop through stored caches and invalidate all but the most recent 10.\n */\n const keys = await traceCache.keys();\n const storedTraces: Array<{key: Request, date: Date}> = [];\n for (const key of keys) {\n const existingTrace = assertExists(await traceCache.match(key));\n const expiryDate =\n new Date(assertExists(existingTrace.headers.get('expires')));\n if (expiryDate < new Date()) {\n await traceCache.delete(key);\n } else {\n storedTraces.push({key, date: expiryDate});\n }\n }\n\n if (storedTraces.length <= TRACE_CACHE_SIZE) return;\n\n /*\n * Sort the traces descending by time, such that most recent ones are placed\n * at the beginning. Then, take traces from TRACE_CACHE_SIZE onwards and\n * delete them from cache.\n */\n const oldTraces =\n storedTraces.sort((a, b) => b.date.getTime() - a.date.getTime())\n .slice(TRACE_CACHE_SIZE);\n for (const oldTrace of oldTraces) {\n await traceCache.delete(oldTrace.key);\n }\n}\n","// Copyright (C) 2019 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nexport function fetchWithTimeout(\n input: RequestInfo, init: RequestInit, timeoutMs: number) {\n return new Promise<Response>((resolve, reject) => {\n const timer = setTimeout(\n () => reject(\n new Error(`fetch(${input}) timed out after ${timeoutMs} ms`)),\n timeoutMs);\n fetch(input, init)\n .then(response => resolve(response))\n .catch(err => reject(err))\n .finally(() => clearTimeout(timer));\n });\n}\n","// Copyright (C) 2021 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {assertTrue} from '../base/logging';\n\n// This class is the TypeScript equivalent of the identically-named C++ class in\n// //protozero/proto_ring_buffer.h. See comments in that header for a detailed\n// description. The architecture is identical.\n\nconst kGrowBytes = 128 * 1024;\nconst kMaxMsgSize = 64 * 1024 * 1024;\n\nexport class ProtoRingBuffer {\n private buf = new Uint8Array(kGrowBytes);\n private fastpath?: Uint8Array;\n private rd = 0;\n private wr = 0;\n\n // The caller must call ReadMessage() after each append() call.\n // The |data| might be either copied in the internal ring buffer or returned\n // (% subarray()) to the next ReadMessage() call.\n append(data: Uint8Array) {\n assertTrue(this.wr <= this.buf.length);\n assertTrue(this.rd <= this.wr);\n\n // If the last call to ReadMessage() consumed all the data in the buffer and\n // there are no incomplete messages pending, restart from the beginning\n // rather than keep ringing. This is the most common case.\n if (this.rd === this.wr) {\n this.rd = this.wr = 0;\n }\n\n // The caller is expected to issue a ReadMessage() after each append().\n const dataLen = data.length;\n if (dataLen === 0) return;\n assertTrue(this.fastpath === undefined);\n if (this.rd === this.wr) {\n const msg = ProtoRingBuffer.tryReadMessage(data, 0, dataLen);\n if (msg !== undefined &&\n ((msg.byteOffset + msg.length) === (data.byteOffset + dataLen))) {\n // Fastpath: in many cases, the underlying stream will effectively\n // preserve the atomicity of messages for most small messages.\n // In this case we can avoid the extra buffer roundtrip and return the\n // original array (actually a subarray that skips the proto header).\n // The next call to ReadMessage() will return this.\n this.fastpath = msg;\n return;\n }\n }\n\n let avail = this.buf.length - this.wr;\n if (dataLen > avail) {\n // This whole section should be hit extremely rarely.\n\n // Try first just recompacting the buffer by moving everything to the\n // left. This can happen if we received \"a message and a bit\" on each\n // append() call.\n this.buf.copyWithin(0, this.rd, this.wr);\n avail += this.rd;\n this.wr -= this.rd;\n this.rd = 0;\n if (dataLen > avail) {\n // Still not enough, expand the buffer.\n let newSize = this.buf.length;\n while (dataLen > newSize - this.wr) {\n newSize += kGrowBytes;\n }\n assertTrue(newSize <= kMaxMsgSize * 2);\n const newBuf = new Uint8Array(newSize);\n newBuf.set(this.buf);\n this.buf = newBuf;\n // No need to touch rd / wr.\n }\n }\n\n // Append the received data at the end of the ring buffer.\n this.buf.set(data, this.wr);\n this.wr += dataLen;\n }\n\n // Tries to extract a message from the ring buffer. If there is no message,\n // or if the current message is still incomplete, returns undefined.\n // The caller is expected to call this in a loop until it returns undefined.\n // Note that a single write to Append() can yield more than one message\n // (see ProtoRingBufferTest.CoalescingStream in the unittest).\n readMessage(): Uint8Array|undefined {\n if (this.fastpath !== undefined) {\n assertTrue(this.rd === this.wr);\n const msg = this.fastpath;\n this.fastpath = undefined;\n return msg;\n }\n assertTrue(this.rd <= this.wr);\n if (this.rd >= this.wr) {\n return undefined; // Completely empty.\n }\n const msg = ProtoRingBuffer.tryReadMessage(this.buf, this.rd, this.wr);\n if (msg === undefined) return undefined;\n assertTrue(msg.buffer === this.buf.buffer);\n assertTrue(this.buf.byteOffset === 0);\n this.rd = msg.byteOffset + msg.length;\n\n // Deliberately returning a copy of the data with slice(). In various cases\n // (streaming query response) the caller will hold onto the returned buffer.\n // If we get to this point, |msg| is a view of the circular buffer that we\n // will overwrite on the next calls to append().\n return msg.slice();\n }\n\n private static tryReadMessage(\n data: Uint8Array, dataStart: number, dataEnd: number): Uint8Array\n |undefined {\n assertTrue(dataEnd <= data.length);\n let pos = dataStart;\n if (pos >= dataEnd) return undefined;\n const tag = data[pos++]; // Assume one-byte tag.\n if (tag >= 0x80 || (tag & 0x07) !== 2 /* len delimited */) {\n throw new Error(\n `RPC framing error, unexpected tag ${tag} @ offset ${pos - 1}`);\n }\n\n let len = 0;\n for (let shift = 0;; shift += 7) {\n if (pos >= dataEnd) {\n return undefined; // Not enough data to read varint.\n }\n const val = data[pos++];\n len |= ((val & 0x7f) << shift) >>> 0;\n if (val < 0x80) break;\n }\n\n if (len >= kMaxMsgSize) {\n throw new Error(\n `RPC framing error, message too large (${len} > ${kMaxMsgSize}`);\n }\n const end = pos + len;\n if (end > dataEnd) return undefined;\n\n // This is a subarray() and not a slice() because in the |fastpath| case\n // we want to just return the original buffer pushed by append().\n // In the slow-path (ring-buffer) case, the readMessage() above will create\n // a copy via slice() before returning it.\n return data.subarray(pos, end);\n }\n}\n","// Copyright (C) 2018 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {defer, Deferred} from '../base/deferred';\nimport {assertExists, assertTrue} from '../base/logging';\nimport {perfetto} from '../gen/protos';\n\nimport {ProtoRingBuffer} from './proto_ring_buffer';\nimport {\n ComputeMetricArgs,\n ComputeMetricResult,\n QueryArgs,\n} from './protos';\nimport {NUM, NUM_NULL, STR} from './query_result';\nimport {\n createQueryResult,\n QueryError,\n QueryResult,\n WritableQueryResult,\n} from './query_result';\nimport {TimeSpan} from './time';\n\nimport TraceProcessorRpc = perfetto.protos.TraceProcessorRpc;\nimport TraceProcessorRpcStream = perfetto.protos.TraceProcessorRpcStream;\nimport TPM = perfetto.protos.TraceProcessorRpc.TraceProcessorMethod;\n\nexport interface LoadingTracker {\n beginLoading(): void;\n endLoading(): void;\n}\n\nexport class NullLoadingTracker implements LoadingTracker {\n beginLoading(): void {}\n endLoading(): void {}\n}\n\n\n// This is used to skip the decoding of queryResult from protobufjs and deal\n// with it ourselves. See the comment below around `QueryResult.decode = ...`.\ninterface QueryResultBypass {\n rawQueryResult: Uint8Array;\n}\n\n/**\n * Abstract interface of a trace proccessor.\n * This is the TypeScript equivalent of src/trace_processor/rpc.h.\n * There are two concrete implementations:\n * 1. WasmEngineProxy: creates a Wasm module and interacts over postMessage().\n * 2. HttpRpcEngine: connects to an external `trace_processor_shell --httpd`.\n * and interacts via fetch().\n * In both cases, we have a byte-oriented pipe to interact with TraceProcessor.\n * The derived class is only expected to deal with these two functions:\n * 1. Implement the abstract rpcSendRequestBytes() function, sending the\n * proto-encoded TraceProcessorRpc requests to the TraceProcessor instance.\n * 2. Call onRpcResponseBytes() when response data is received.\n */\nexport abstract class Engine {\n abstract readonly id: string;\n private _cpus?: number[];\n private _numGpus?: number;\n private loadingTracker: LoadingTracker;\n private txSeqId = 0;\n private rxSeqId = 0;\n private rxBuf = new ProtoRingBuffer();\n private pendingParses = new Array<Deferred<void>>();\n private pendingEOFs = new Array<Deferred<void>>();\n private pendingQueries = new Array<WritableQueryResult>();\n private pendingRestoreTables = new Array<Deferred<void>>();\n private pendingComputeMetrics = new Array<Deferred<ComputeMetricResult>>();\n\n constructor(tracker?: LoadingTracker) {\n this.loadingTracker = tracker ? tracker : new NullLoadingTracker();\n }\n\n /**\n * Called to send data to the TraceProcessor instance. This turns into a\n * postMessage() or a HTTP request, depending on the Engine implementation.\n */\n abstract rpcSendRequestBytes(data: Uint8Array): void;\n\n /**\n * Called when an inbound message is received by the Engine implementation\n * (e.g. onmessage for the Wasm case, on when HTTP replies are received for\n * the HTTP+RPC case).\n */\n onRpcResponseBytes(dataWillBeRetained: Uint8Array) {\n // Note: when hitting the fastpath inside ProtoRingBuffer, the |data| buffer\n // is returned back by readMessage() (% subarray()-ing it) and held onto by\n // other classes (e.g., QueryResult). For both fetch() and Wasm we are fine\n // because every response creates a new buffer.\n this.rxBuf.append(dataWillBeRetained);\n for (;;) {\n const msg = this.rxBuf.readMessage();\n if (msg === undefined) break;\n this.onRpcResponseMessage(msg);\n }\n }\n\n /*\n * Parses a response message.\n * |rpcMsgEncoded| is a sub-array to to the start of a TraceProcessorRpc\n * proto-encoded message (without the proto preamble and varint size).\n */\n private onRpcResponseMessage(rpcMsgEncoded: Uint8Array) {\n // Here we override the protobufjs-generated code to skip the parsing of the\n // new streaming QueryResult and instead passing it through like a buffer.\n // This is the overall problem: All trace processor responses are wrapped\n // into a perfetto.protos.TraceProcessorRpc proto message. In all cases %\n // TPM_QUERY_STREAMING, we want protobufjs to decode the proto bytes and\n // give us a structured object. In the case of TPM_QUERY_STREAMING, instead,\n // we want to deal with the proto parsing ourselves using the new\n // QueryResult.appendResultBatch() method, because that handled streaming\n // results more efficiently and skips several copies.\n // By overriding the decode method below, we achieve two things:\n // 1. We avoid protobufjs decoding the TraceProcessorRpc.query_result field.\n // 2. We stash (a view of) the original buffer into the |rawQueryResult| so\n // the `case TPM_QUERY_STREAMING` below can take it.\n perfetto.protos.QueryResult.decode =\n (reader: protobuf.Reader, length: number) => {\n const res =\n perfetto.protos.QueryResult.create() as {} as QueryResultBypass;\n res.rawQueryResult =\n reader.buf.subarray(reader.pos, reader.pos + length);\n // All this works only if protobufjs returns the original ArrayBuffer\n // from |rpcMsgEncoded|. It should be always the case given the\n // current implementation. This check mainly guards against future\n // behavioral changes of protobufjs. We don't want to accidentally\n // hold onto some internal protobufjs buffer. We are fine holding\n // onto |rpcMsgEncoded| because those come from ProtoRingBuffer which\n // is buffer-retention-friendly.\n assertTrue(res.rawQueryResult.buffer === rpcMsgEncoded.buffer);\n reader.pos += length;\n return res as {} as perfetto.protos.QueryResult;\n };\n\n const rpc = TraceProcessorRpc.decode(rpcMsgEncoded);\n\n if (rpc.fatalError !== undefined && rpc.fatalError.length > 0) {\n throw new Error(`${rpc.fatalError}`);\n }\n\n // Allow restarting sequences from zero (when reloading the browser).\n if (rpc.seq !== this.rxSeqId + 1 && this.rxSeqId !== 0 && rpc.seq !== 0) {\n // \"(ERR:rpc_seq)\" is intercepted by error_dialog.ts to show a more\n // graceful and actionable error.\n throw new Error(`RPC sequence id mismatch cur=${rpc.seq} last=${\n this.rxSeqId} (ERR:rpc_seq)`);\n }\n\n this.rxSeqId = rpc.seq;\n\n let isFinalResponse = true;\n\n switch (rpc.response) {\n case TPM.TPM_APPEND_TRACE_DATA:\n const appendResult = assertExists(rpc.appendResult);\n const pendingPromise = assertExists(this.pendingParses.shift());\n if (appendResult.error && appendResult.error.length > 0) {\n pendingPromise.reject(appendResult.error);\n } else {\n pendingPromise.resolve();\n }\n break;\n case TPM.TPM_FINALIZE_TRACE_DATA:\n assertExists(this.pendingEOFs.shift()).resolve();\n break;\n case TPM.TPM_RESTORE_INITIAL_TABLES:\n assertExists(this.pendingRestoreTables.shift()).resolve();\n break;\n case TPM.TPM_QUERY_STREAMING:\n const qRes = assertExists(rpc.queryResult) as {} as QueryResultBypass;\n const pendingQuery = assertExists(this.pendingQueries[0]);\n pendingQuery.appendResultBatch(qRes.rawQueryResult);\n if (pendingQuery.isComplete()) {\n this.pendingQueries.shift();\n } else {\n isFinalResponse = false;\n }\n break;\n case TPM.TPM_COMPUTE_METRIC:\n const metricRes = assertExists(rpc.metricResult) as ComputeMetricResult;\n if (metricRes.error && metricRes.error.length > 0) {\n throw new QueryError(`ComputeMetric() error: ${metricRes.error}`, {\n query: 'COMPUTE_METRIC',\n });\n }\n assertExists(this.pendingComputeMetrics.shift()).resolve(metricRes);\n break;\n default:\n console.log(\n 'Unexpected TraceProcessor response received: ', rpc.response);\n break;\n } // switch(rpc.response);\n\n if (isFinalResponse) {\n this.loadingTracker.endLoading();\n }\n }\n\n /**\n * TraceProcessor methods below this point.\n * The methods below are called by the various controllers in the UI and\n * deal with marshalling / unmarshaling requests to/from TraceProcessor.\n */\n\n\n /**\n * Push trace data into the engine. The engine is supposed to automatically\n * figure out the type of the trace (JSON vs Protobuf).\n */\n parse(data: Uint8Array): Promise<void> {\n const asyncRes = defer<void>();\n this.pendingParses.push(asyncRes);\n const rpc = TraceProcessorRpc.create();\n rpc.request = TPM.TPM_APPEND_TRACE_DATA;\n rpc.appendTraceData = data;\n this.rpcSendRequest(rpc);\n return asyncRes; // Linearize with the worker.\n }\n\n /**\n * Notify the engine that we reached the end of the trace.\n * Called after the last parse() call.\n */\n notifyEof(): Promise<void> {\n const asyncRes = defer<void>();\n this.pendingEOFs.push(asyncRes);\n const rpc = TraceProcessorRpc.create();\n rpc.request = TPM.TPM_FINALIZE_TRACE_DATA;\n this.rpcSendRequest(rpc);\n return asyncRes; // Linearize with the worker.\n }\n\n /**\n * Resets the trace processor state by destroying any table/views created by\n * the UI after loading.\n */\n restoreInitialTables(): Promise<void> {\n const asyncRes = defer<void>();\n this.pendingRestoreTables.push(asyncRes);\n const rpc = TraceProcessorRpc.create();\n rpc.request = TPM.TPM_RESTORE_INITIAL_TABLES;\n this.rpcSendRequest(rpc);\n return asyncRes; // Linearize with the worker.\n }\n\n /**\n * Shorthand for sending a compute metrics request to the engine.\n */\n async computeMetric(metrics: string[]): Promise<ComputeMetricResult> {\n const asyncRes = defer<ComputeMetricResult>();\n this.pendingComputeMetrics.push(asyncRes);\n const rpc = TraceProcessorRpc.create();\n rpc.request = TPM.TPM_COMPUTE_METRIC;\n const args = rpc.computeMetricArgs = new ComputeMetricArgs();\n args.metricNames = metrics;\n args.format = ComputeMetricArgs.ResultFormat.TEXTPROTO;\n this.rpcSendRequest(rpc);\n return asyncRes;\n }\n\n /*\n * Issues a streaming query and retrieve results in batches.\n * The returned QueryResult object will be populated over time with batches\n * of rows (each batch conveys ~128KB of data and a variable number of rows).\n * The caller can decide whether to wait that all batches have been received\n * (by awaiting the returned object or calling result.waitAllRows()) or handle\n * the rows incrementally.\n *\n * Example usage:\n * const res = engine.query('SELECT foo, bar FROM table');\n * console.log(res.numRows()); // Will print 0 because we didn't await.\n * await(res.waitAllRows());\n * console.log(res.numRows()); // Will print the total number of rows.\n *\n * for (const it = res.iter({foo: NUM, bar:STR}); it.valid(); it.next()) {\n * console.log(it.foo, it.bar);\n * }\n */\n query(sqlQuery: string): Promise<QueryResult>&QueryResult {\n const rpc = TraceProcessorRpc.create();\n rpc.request = TPM.TPM_QUERY_STREAMING;\n rpc.queryArgs = new QueryArgs();\n rpc.queryArgs.sqlQuery = sqlQuery;\n rpc.queryArgs.timeQueuedNs = Math.floor(performance.now() * 1e6);\n const result = createQueryResult({\n query: sqlQuery,\n });\n this.pendingQueries.push(result);\n this.rpcSendRequest(rpc);\n return result;\n }\n\n /**\n * Marshals the TraceProcessorRpc request arguments and sends the request\n * to the concrete Engine (Wasm or HTTP).\n */\n private rpcSendRequest(rpc: TraceProcessorRpc) {\n rpc.seq = this.txSeqId++;\n // Each message is wrapped in a TraceProcessorRpcStream to add the varint\n // preamble with the size, which allows tokenization on the other end.\n const outerProto = TraceProcessorRpcStream.create();\n outerProto.msg.push(rpc);\n const buf = TraceProcessorRpcStream.encode(outerProto).finish();\n this.loadingTracker.beginLoading();\n this.rpcSendRequestBytes(buf);\n }\n\n // TODO(hjd): When streaming must invalidate this somehow.\n async getCpus(): Promise<number[]> {\n if (!this._cpus) {\n const cpus = [];\n const queryRes = await this.query(\n 'select distinct(cpu) as cpu from sched order by cpu;');\n for (const it = queryRes.iter({cpu: NUM}); it.valid(); it.next()) {\n cpus.push(it.cpu);\n }\n this._cpus = cpus;\n }\n return this._cpus;\n }\n\n async getNumberOfGpus(): Promise<number> {\n if (!this._numGpus) {\n const result = await this.query(`\n select count(distinct(gpu_id)) as gpuCount\n from gpu_counter_track\n where name = 'gpufreq';\n `);\n this._numGpus = result.firstRow({gpuCount: NUM}).gpuCount;\n }\n return this._numGpus;\n }\n\n // TODO: This should live in code that's more specific to chrome, instead of\n // in engine.\n async getNumberOfProcesses(): Promise<number> {\n const result = await this.query('select count(*) as cnt from process;');\n return result.firstRow({cnt: NUM}).cnt;\n }\n\n async getTraceTimeBounds(): Promise<TimeSpan> {\n const result = await this.query(\n `select start_ts as startTs, end_ts as endTs from trace_bounds`);\n const bounds = result.firstRow({\n startTs: NUM,\n endTs: NUM,\n });\n return new TimeSpan(bounds.startTs / 1e9, bounds.endTs / 1e9);\n }\n\n async getTracingMetadataTimeBounds(): Promise<TimeSpan> {\n const queryRes = await this.query(`select\n name,\n int_value as intValue\n from metadata\n where name = 'tracing_started_ns' or name = 'tracing_disabled_ns'\n or name = 'all_data_source_started_ns'`);\n let startBound = -Infinity;\n let endBound = Infinity;\n const it = queryRes.iter({'name': STR, 'intValue': NUM_NULL});\n for (; it.valid(); it.next()) {\n const columnName = it.name;\n const timestamp = it.intValue;\n if (timestamp === null) continue;\n if (columnName === 'tracing_disabled_ns') {\n endBound = Math.min(endBound, timestamp / 1e9);\n } else {\n startBound = Math.max(startBound, timestamp / 1e9);\n }\n }\n\n return new TimeSpan(startBound, endBound);\n }\n}\n","// Copyright (C) 2019 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {fetchWithTimeout} from '../base/http_utils';\nimport {assertTrue} from '../base/logging';\nimport {StatusResult} from '../common/protos';\n\nimport {Engine, LoadingTracker} from './engine';\n\nexport const RPC_URL = 'http://127.0.0.1:9001/';\nconst RPC_CONNECT_TIMEOUT_MS = 2000;\n\nexport interface HttpRpcState {\n connected: boolean;\n status?: StatusResult;\n failure?: string;\n}\n\nexport class HttpRpcEngine extends Engine {\n readonly id: string;\n private requestQueue = new Array<Uint8Array>();\n private requestPending = false;\n errorHandler: (err: string) => void = () => {};\n\n constructor(id: string, loadingTracker?: LoadingTracker) {\n super(loadingTracker);\n this.id = id;\n }\n\n rpcSendRequestBytes(data: Uint8Array): void {\n if (!this.requestPending && this.requestQueue.length === 0) {\n this.beginFetch(data);\n } else {\n this.requestQueue.push(data);\n }\n }\n\n private beginFetch(data: Uint8Array) {\n assertTrue(!this.requestPending);\n this.requestPending = true;\n // Deliberately not using fetchWithTimeout() here. These queries can be\n // arbitrarily long.\n // Deliberately not setting cache: no-cache. Doing so invalidates also the\n // CORS pre-flight responses, causing one OPTIONS request for each POST.\n // no-cache is also useless because trace-processor's replies are already\n // marked as no-cache and browsers generally already assume that POST\n // requests are not idempotent.\n fetch(RPC_URL + 'rpc', {\n method: 'post',\n headers: {'Content-Type': 'application/x-protobuf'},\n body: data,\n })\n .then(resp => this.endFetch(resp))\n .catch(err => this.errorHandler(err));\n }\n\n private endFetch(resp: Response) {\n assertTrue(this.requestPending);\n if (resp.status !== 200) {\n throw new Error(`HTTP ${resp.status} - ${resp.statusText}`);\n }\n resp.arrayBuffer().then(arrBuf => {\n // Note: another request can sneak in via enqueueRequest() between the\n // arrayBuffer() call and this continuation. At this point\n // this.pendingRequest might be set again.\n // If not (the most common case) submit the next queued request, if any.\n this.requestPending = false;\n if (this.requestQueue.length > 0) {\n this.beginFetch(this.requestQueue.shift()!);\n }\n super.onRpcResponseBytes(new Uint8Array(arrBuf));\n });\n }\n\n static async checkConnection(): Promise<HttpRpcState> {\n const httpRpcState: HttpRpcState = {connected: false};\n console.info(\n `It's safe to ignore the ERR_CONNECTION_REFUSED on ${RPC_URL} below. ` +\n `That might happen while probing the external native accelerator. The ` +\n `error is non-fatal and unlikely to be the culprit for any UI bug.`);\n try {\n const resp = await fetchWithTimeout(\n RPC_URL + 'status',\n {method: 'post', cache: 'no-cache'},\n RPC_CONNECT_TIMEOUT_MS);\n if (resp.status !== 200) {\n httpRpcState.failure = `${resp.status} - ${resp.statusText}`;\n } else {\n const buf = new Uint8Array(await resp.arrayBuffer());\n httpRpcState.connected = true;\n httpRpcState.status = StatusResult.decode(buf);\n }\n } catch (err) {\n httpRpcState.failure = `${err}`;\n }\n return httpRpcState;\n }\n}\n","// Copyright (C) 2018 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {assertExists, assertTrue} from '../base/logging';\n\nimport {Engine, LoadingTracker} from './engine';\nimport {EngineWorkerInitMessage} from './worker_messages';\n\nlet bundlePath: string;\nlet idleWasmWorker: Worker;\nlet activeWasmWorker: Worker;\n\nexport function initWasm(root: string) {\n bundlePath = root + 'engine_bundle.js';\n idleWasmWorker = new Worker(bundlePath);\n}\n\n// This method is called trace_controller whenever a new trace is loaded.\nexport function resetEngineWorker(): MessagePort {\n const channel = new MessageChannel();\n const port = channel.port1;\n\n // We keep always an idle worker around, the first one is created by the\n // main() below, so we can hide the latency of the Wasm initialization.\n if (activeWasmWorker !== undefined) {\n activeWasmWorker.terminate();\n }\n\n // Swap the active worker with the idle one and create a new idle worker\n // for the next trace.\n activeWasmWorker = assertExists(idleWasmWorker);\n const msg: EngineWorkerInitMessage = {enginePort: port};\n activeWasmWorker.postMessage(msg, [port]);\n idleWasmWorker = new Worker(bundlePath);\n return channel.port2;\n}\n\n/**\n * This implementation of Engine uses a WASM backend hosted in a separate\n * worker thread.\n */\nexport class WasmEngineProxy extends Engine {\n readonly id: string;\n private port: MessagePort;\n\n constructor(id: string, port: MessagePort, loadingTracker?: LoadingTracker) {\n super(loadingTracker);\n this.id = id;\n this.port = port;\n this.port.onmessage = this.onMessage.bind(this);\n }\n\n onMessage(m: MessageEvent) {\n assertTrue(m.data instanceof Uint8Array);\n super.onRpcResponseBytes(m.data as Uint8Array);\n }\n\n rpcSendRequestBytes(data: Uint8Array): void {\n // We deliberately don't use a transfer list because protobufjs reuses the\n // same buffer when encoding messages (which is good, because creating a new\n // TypedArray for each decode operation would be too expensive).\n this.port.postMessage(data);\n }\n}\n","// Copyright (C) 2021 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {\n AggregationAttrs,\n AVAILABLE_TABLES,\n getHiddenStackHelperColumns,\n getParentStackWhereFilter,\n getStackColumn,\n getStackDepthColumn,\n PivotAttrs,\n} from './pivot_table_common';\n\nexport function getPivotAlias(pivot: PivotAttrs): string {\n return `${pivot.tableName} ${pivot.columnName}`;\n}\n\nexport function getHiddenPivotAlias(pivot: PivotAttrs) {\n return getPivotAlias(pivot) + ' (hidden)';\n}\n\nexport function getAggregationAlias(aggregation: AggregationAttrs): string {\n return `${aggregation.tableName} ${aggregation.columnName} (${\n aggregation.aggregation})`;\n}\n\nexport function getSqlPivotAlias(pivot: PivotAttrs): string {\n return `\"${getPivotAlias(pivot)}\"`;\n}\n\nexport function getSqlHiddenPivotAlias(pivot: PivotAttrs): string {\n return `\"${getHiddenPivotAlias(pivot)}\"`;\n}\n\nexport function getSqlAggregationAlias(aggregation: AggregationAttrs): string {\n return `\"${getAggregationAlias(aggregation)}\"`;\n}\n\nexport function getAggregationOverStackAlias(aggregation: AggregationAttrs):\n string {\n return `${getAggregationAlias(aggregation)} (stack)`;\n}\n\nexport function getSqlAggregationOverStackAlias(aggregation: AggregationAttrs):\n string {\n return `\"${getAggregationOverStackAlias(aggregation)}\"`;\n}\n\nexport function getTotalAggregationAlias(aggregation: AggregationAttrs):\n string {\n return `${getAggregationAlias(aggregation)} (total)`;\n}\n\nexport function getSqlTotalAggregationAlias(aggregation: AggregationAttrs):\n string {\n return `\"${getTotalAggregationAlias(aggregation)}\"`;\n}\n\n// Returns an array of pivot aliases along with any additional pivot aliases.\nexport function getSqlAliasedPivotColumns(pivots: PivotAttrs[]): string[] {\n const pivotCols = [];\n for (const pivot of pivots) {\n pivotCols.push(getSqlPivotAlias(pivot));\n if (pivot.isStackPivot) {\n pivotCols.push(...getHiddenStackHelperColumns(pivot).map(\n column => `\"${column.columnAlias}\"`));\n }\n }\n return pivotCols;\n}\n\nexport function getAliasedPivotColumns(pivots: PivotAttrs[]) {\n const pivotCols: Array<{pivotAttrs: PivotAttrs, columnAlias: string}> = [];\n for (const pivot of pivots) {\n pivotCols.push({pivotAttrs: pivot, columnAlias: getPivotAlias(pivot)});\n if (pivot.isStackPivot) {\n pivotCols.push(...getHiddenStackHelperColumns(pivot));\n }\n }\n return pivotCols;\n}\n\n// Returns an array of aggregation aliases along with total aggregations if\n// necessary.\nfunction getSqlAliasedAggregationsColumns(\n aggregations: AggregationAttrs[],\n hasPivotsSelected: boolean,\n isStackQuery: boolean): string[] {\n const aggCols =\n aggregations.map(aggregation => getSqlAggregationAlias(aggregation));\n\n if (hasPivotsSelected) {\n aggCols.push(...aggregations.map(\n aggregation => getSqlTotalAggregationAlias(aggregation)));\n }\n\n if (isStackQuery) {\n aggCols.push(...aggregations.map(\n aggregation => getSqlAggregationOverStackAlias(aggregation)));\n }\n return aggCols;\n}\n\nexport class PivotTableQueryGenerator {\n // Generates a query that selects all pivots and aggregations and joins any\n // tables needed by them together. All pivots are renamed into the format\n // tableName columnName and all aggregations are renamed into\n // tableName columnName (aggregation) (see getPivotAlias or\n // getAggregationAlias).\n private generateJoinQuery(\n pivots: PivotAttrs[], aggregations: AggregationAttrs[],\n whereFilters: string[], joinTables: string[]): string {\n\n const pivotCols = [];\n for (const pivot of pivots) {\n if (pivot.isStackPivot) {\n pivotCols.push(\n `${pivot.tableName}.name AS ` +\n `${getSqlPivotAlias(pivot)}`);\n\n pivotCols.push(...getHiddenStackHelperColumns(pivot).map(\n column => `${column.pivotAttrs.tableName}.${\n column.pivotAttrs.columnName} AS \"${column.columnAlias}\"`));\n } else {\n pivotCols.push(\n `${pivot.tableName}.${pivot.columnName} AS ` +\n `${getSqlPivotAlias(pivot)}`);\n }\n }\n\n const aggCols = [];\n for (const aggregation of aggregations) {\n aggCols.push(\n `${aggregation.tableName}.${aggregation.columnName} AS ` +\n `${getSqlAggregationAlias(aggregation)}`);\n }\n\n return `\n SELECT\n ${pivotCols.concat(aggCols).join(',\\n ')}\n FROM\n ${joinTables.join(',\\n ')}\n WHERE\n ${whereFilters.join(' AND\\n ')}\n `;\n }\n\n // Partitions the aggregations from the subquery generateJoinQuery over\n // all sets of appended pivots ({pivot1}, {pivot1, pivot2}, etc).\n private generateAggregationQuery(\n pivots: PivotAttrs[], aggregations: AggregationAttrs[],\n whereFilters: string[], joinTables: string[],\n isStackQuery: boolean): string {\n // No need for this query if there are no aggregations.\n if (aggregations.length === 0) {\n return this.generateJoinQuery(\n pivots, aggregations, whereFilters, joinTables);\n }\n\n const pivotCols = getSqlAliasedPivotColumns(pivots);\n let partitionByPivotCols = pivotCols;\n if (pivots.length > 0 && pivots[0].isStackPivot) {\n partitionByPivotCols = [];\n partitionByPivotCols.push(\n getSqlHiddenPivotAlias(getStackColumn(pivots[0])));\n partitionByPivotCols.push(...getSqlAliasedPivotColumns(pivots.slice(1)));\n }\n\n const aggCols = [];\n for (const aggregation of aggregations) {\n const aggColPrefix =\n `${aggregation.aggregation}(${getSqlAggregationAlias(aggregation)})`;\n\n if (pivots.length === 0) {\n // Don't partition over pivots if there are no pivots.\n aggCols.push(\n `${aggColPrefix} AS ${getSqlAggregationAlias(aggregation)}`);\n continue;\n }\n\n // Add total aggregations column.\n aggCols.push(\n `${aggColPrefix} OVER () AS ` +\n `${getSqlTotalAggregationAlias(aggregation)}`);\n\n // Add aggregation over stack column.\n if (isStackQuery) {\n aggCols.push(\n `${aggColPrefix} OVER (PARTITION BY ` +\n `${partitionByPivotCols[0]}) AS ` +\n `${getSqlAggregationOverStackAlias(aggregation)}`);\n }\n\n aggCols.push(\n `${aggColPrefix} OVER (PARTITION BY ` +\n `${partitionByPivotCols.join(', ')}) AS ` +\n `${getSqlAggregationAlias(aggregation)}`);\n }\n\n return `\n SELECT\n ${pivotCols.concat(aggCols).join(',\\n ')}\n FROM (\n ${\n this.generateJoinQuery(pivots, aggregations, whereFilters, joinTables)}\n )\n `;\n }\n\n // Takes a list of pivots and aggregations and generates a query that\n // extracts all pivots and aggregation partitions and groups by all\n // columns and orders by each aggregation as requested.\n private generateQueryImpl(\n pivots: PivotAttrs[], aggregations: AggregationAttrs[],\n whereFilters: string[], joinTables: string[], isStackQuery: boolean,\n orderBy: boolean): string {\n // No need to generate query if there is no selected pivots or\n // aggregations.\n if (pivots.length === 0 && aggregations.length === 0) {\n return '';\n }\n\n\n const pivotCols = getSqlAliasedPivotColumns(pivots);\n const aggCols = getSqlAliasedAggregationsColumns(\n aggregations,\n /* has_pivots_selected = */ pivots.length > 0,\n isStackQuery);\n\n const aggregationsGroupBy =\n aggregations.map(aggregation => getSqlAggregationAlias(aggregation));\n\n let query = `\n SELECT\n ${pivotCols.concat(aggCols).join(',\\n ')}\n FROM (\n ${\n this.generateAggregationQuery(\n pivots, aggregations, whereFilters, joinTables, isStackQuery)}\n )\n GROUP BY\n ${pivotCols.concat(aggregationsGroupBy).join(', ')}\n `;\n\n const pivotsOrderBy = [];\n\n // Sort by depth first if generating a stack query, to ensure that the\n // parents appear first before their children and allow us to nest the\n // results into an expandable structure.\n if (orderBy && isStackQuery) {\n pivotsOrderBy.push(\n `${getSqlHiddenPivotAlias(getStackDepthColumn(pivots[0]))} ASC`);\n }\n\n // For each aggregation we order by either 'DESC' or 'ASC' as\n // requested (DESC by default).\n const orderString = (aggregation: AggregationAttrs) =>\n `${getSqlAggregationAlias(aggregation)} ` +\n `${aggregation.order}`;\n const aggregationsOrderBy =\n aggregations.map(aggregation => orderString(aggregation));\n\n if (orderBy && pivotsOrderBy.length + aggregationsOrderBy.length > 0) {\n query += `\n ORDER BY\n ${pivotsOrderBy.concat(aggregationsOrderBy).join(', ')}\n `;\n }\n return query;\n }\n\n generateQuery(\n pivots: PivotAttrs[], aggregations: AggregationAttrs[],\n whereFilters: string[], joinTables: string[]) {\n return this.generateQueryImpl(\n pivots,\n aggregations,\n whereFilters,\n joinTables,\n /* is_stack_query = */ false,\n /* order_by = */ true);\n }\n\n generateStackQuery(\n pivots: PivotAttrs[], aggregations: AggregationAttrs[],\n whereFilters: string[], joinTables: string[], stackId: string) {\n const stackQuery = this.generateQueryImpl(\n pivots,\n aggregations,\n whereFilters,\n joinTables,\n /* is_stack_query = */ true,\n /* order_by = */ true);\n\n // Query the next column rows for the parent row.\n if (pivots.length > 1) {\n const stackPivot = pivots[0];\n const currStackQuery = this.generateQueryImpl(\n pivots,\n aggregations,\n whereFilters.concat(getParentStackWhereFilter(stackPivot, stackId)),\n AVAILABLE_TABLES,\n /* is_stack_query = */ true,\n /* order_by = */ false);\n return `${currStackQuery} UNION ALL ${stackQuery}`;\n }\n return stackQuery;\n }\n}","// Copyright (C) 2021 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {getHiddenPivotAlias} from './pivot_table_query_generator';\nimport {Row} from './query_result';\n\nexport const AVAILABLE_TABLES = ['slice'];\nexport const AVAILABLE_AGGREGATIONS = ['COUNT', 'SUM', 'AVG', 'MIN', 'MAX'];\nexport const WHERE_FILTERS = ['slice.dur != -1'];\nexport const SLICE_STACK_HELPER_COLUMNS =\n ['depth', 'stack_id', 'parent_stack_id'];\nexport const SLICE_STACK_COLUMN = 'name (stack)';\nexport const DEFAULT_PIVOT_TABLE_ID = 'pivot-table';\nexport const SLICE_AGGREGATION_PIVOT_TABLE_ID = 'pivot-table-slices';\n\nexport interface AggregationAttrs {\n tableName: string;\n columnName: string;\n aggregation: string;\n order: string;\n}\n\nexport interface PivotAttrs {\n tableName: string;\n columnName: string;\n isStackPivot: boolean;\n}\n\nexport interface TableAttrs {\n tableName: string;\n columns: string[];\n}\n\nexport interface ColumnAttrs {\n name: string;\n index: number;\n tableName: string;\n columnName: string;\n aggregation?: string;\n order?: string;\n isStackColumn: boolean;\n}\n\nexport interface RowAttrs {\n row: Row;\n expandableColumns: Set<string>; // Columns at which the row can be expanded.\n expandedRows: Map<string, {\n isExpanded: boolean,\n rows: RowAttrs[]\n }>; // Contains the expanded rows of each expanded expandableColumn.\n whereFilters: Map<string, string>; // Where filters of each column that\n // joins the row with its parent.\n loadingColumn?: string;\n depth: number;\n}\n\nexport interface SubQueryAttrs {\n rowIndices: number[];\n columnIdx: number;\n value: string;\n expandedRowColumns: string[];\n}\n\nexport interface SubQueryAttrs {\n rowIndices: number[];\n columnIdx: number;\n value: string;\n}\n\nexport interface PivotTableQueryResponse {\n columns: ColumnAttrs[];\n error?: string;\n durationMs: number;\n rows: RowAttrs[];\n totalAggregations?: Row;\n}\n\n// Determine if the column provided is a stack column that can be expanded\n// into descendants.\nexport function isStackPivot(tableName: string, columnName: string) {\n if (tableName === 'slice' && columnName === SLICE_STACK_COLUMN) {\n return true;\n }\n return false;\n}\n\n// Get the helper columns that are needed to expand a stack pivot.\nexport function getHiddenStackHelperColumns(pivot: PivotAttrs) {\n const hiddenColumns: Array<{pivotAttrs: PivotAttrs, columnAlias: string}> =\n [];\n if (pivot.tableName === 'slice') {\n for (const column of SLICE_STACK_HELPER_COLUMNS) {\n const pivotAttrs = {\n tableName: pivot.tableName,\n columnName: column,\n isStackPivot: false\n };\n hiddenColumns.push(\n {pivotAttrs, columnAlias: getHiddenPivotAlias(pivotAttrs)});\n }\n }\n return hiddenColumns;\n}\n\n// Removing unnecessary columns from table and adding stack column if it exists.\nexport function removeHiddenAndAddStackColumns(\n tableName: string, columns: string[]) {\n if (tableName === 'slice') {\n // Removing \"cat\" and \"slice_id\" to maintain the original schema of the\n // slice table that's compatible with descendant_slice_by_stack table.\n columns = columns.filter(\n column => ['stack_id', 'parent_stack_id', 'cat', 'slice_id'].includes(\n column) === false);\n columns.push(SLICE_STACK_COLUMN);\n }\n return columns;\n}\n\n// Get a list of tables that include the descendants that need to be queried.\nexport function getDescendantsTables(pivots: PivotAttrs[], stackId: string) {\n const descendantsTables = [...AVAILABLE_TABLES];\n let descendantsTable = 'undefined_table';\n let replaceIdx = -1;\n if (pivots.length > 0 && pivots[0].tableName === 'slice') {\n // Replace slice table with descendants table.\n descendantsTable = `descendant_slice_by_stack(${stackId}) AS slice`;\n replaceIdx = descendantsTables.indexOf('slice');\n if (replaceIdx === -1) {\n throw Error('Slice table not found.');\n }\n }\n if (pivots.length === 0 ||\n !isStackPivot(pivots[0].tableName, pivots[0].columnName) ||\n replaceIdx === -1) {\n throw Error('Invalid Arguments to \"getDescendantsTables\"');\n }\n descendantsTables[replaceIdx] = descendantsTable;\n return descendantsTables;\n}\n\n// Get the stack id column in the stack pivot table.\nexport function getStackColumn(pivot: PivotAttrs) {\n if (pivot.tableName === 'slice') {\n return {tableName: 'slice', columnName: 'stack_id', isStackPivot: false};\n }\n throw Error('\"getStackColumn\" called on pivot that is not a stack column.');\n}\n\n// Get the parent stack id column in the stack pivot table.\nexport function getParentStackColumn(pivot: PivotAttrs) {\n if (pivot.tableName === 'slice') {\n return {\n tableName: 'slice',\n columnName: 'parent_stack_id',\n isStackPivot: false\n };\n }\n throw Error(\n '\"getParentStackColumn\" called on pivot that is not a stack column.');\n}\n\n// Get the depth column in the stack pivot table.\nexport function getStackDepthColumn(pivot: PivotAttrs) {\n if (pivot.tableName === 'slice') {\n return {tableName: 'slice', columnName: 'depth', isStackPivot: false};\n }\n throw Error(\n '\"getStackDepthColumn\" called on pivot that is not a stack column.');\n}\n\n// Get a where filter that restricts the query by the given stack id.\nexport function getParentStackWhereFilter(pivot: PivotAttrs, stackId: string) {\n const stackColumn = getStackColumn(pivot);\n return `${stackColumn.tableName}.${stackColumn.columnName} = ${stackId}`;\n}\n","// Copyright (C) 2021 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {Area, AreaById} from '../common/state';\nimport {globals as frontendGlobals} from '../frontend/globals';\n\nexport class AreaSelectionHandler {\n private previousArea?: Area;\n\n getAreaChange(): [boolean, AreaById|undefined] {\n const currentSelection = frontendGlobals.state.currentSelection;\n if (currentSelection === null || currentSelection.kind !== 'AREA') {\n return [false, undefined];\n }\n\n const selectedArea = frontendGlobals.state.areas[currentSelection.areaId];\n // Area is considered changed if:\n // 1. The new area is defined and the old area undefined.\n // 2. The new area is undefined and the old area defined (viceversa from 1).\n // 3. Both areas are defined but their start or end times differ.\n // 4. Both areas are defined but their tracks differ.\n let hasAreaChanged = (!!this.previousArea !== !!selectedArea);\n if (selectedArea && this.previousArea) {\n // There seems to be an issue with clang-format http://shortn/_Pt98d5MCjG\n // where `a ||= b` is formatted to `a || = b`, by inserting a space which\n // breaks the operator.\n // Therefore, we are using the pattern `a = a || b` instead.\n hasAreaChanged = hasAreaChanged ||\n selectedArea.startSec !== this.previousArea.startSec;\n hasAreaChanged =\n hasAreaChanged || selectedArea.endSec !== this.previousArea.endSec;\n hasAreaChanged = hasAreaChanged ||\n selectedArea.tracks.length !== this.previousArea.tracks.length;\n for (let i = 0; i < selectedArea.tracks.length; ++i) {\n hasAreaChanged = hasAreaChanged ||\n selectedArea.tracks[i] !== this.previousArea.tracks[i];\n }\n }\n\n if (hasAreaChanged) {\n this.previousArea = selectedArea;\n }\n\n return [hasAreaChanged, selectedArea];\n }\n}\n","// Copyright (C) 2019 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {Actions} from '../../common/actions';\nimport {\n AggregateData,\n Column,\n ColumnDef,\n ThreadStateExtra,\n} from '../../common/aggregation_data';\nimport {Engine} from '../../common/engine';\nimport {\n SLICE_AGGREGATION_PIVOT_TABLE_ID\n} from '../../common/pivot_table_common';\nimport {NUM} from '../../common/query_result';\nimport {Area, Sorting} from '../../common/state';\nimport {publishAggregateData} from '../../frontend/publish';\nimport {AreaSelectionHandler} from '../area_selection_handler';\nimport {Controller} from '../controller';\nimport {globals} from '../globals';\n\nexport interface AggregationControllerArgs {\n engine: Engine;\n kind: string;\n}\n\nfunction isStringColumn(column: Column): boolean {\n return column.kind === 'STRING' || column.kind === 'STATE';\n}\n\nexport abstract class AggregationController extends Controller<'main'> {\n readonly kind: string;\n private areaSelectionHandler: AreaSelectionHandler;\n private previousSorting?: Sorting;\n private requestingData = false;\n private queuedRequest = false;\n\n abstract createAggregateView(engine: Engine, area: Area): Promise<boolean>;\n\n abstract getExtra(engine: Engine, area: Area): Promise<ThreadStateExtra|void>;\n\n abstract getTabName(): string;\n abstract getDefaultSorting(): Sorting;\n abstract getColumnDefinitions(): ColumnDef[];\n\n constructor(private args: AggregationControllerArgs) {\n super('main');\n this.kind = this.args.kind;\n this.areaSelectionHandler = new AreaSelectionHandler();\n }\n\n run() {\n const selection = globals.state.currentSelection;\n if (selection === null || selection.kind !== 'AREA') {\n globals.dispatch(Actions.deletePivotTable(\n {pivotTableId: SLICE_AGGREGATION_PIVOT_TABLE_ID}));\n publishAggregateData({\n data: {\n tabName: this.getTabName(),\n columns: [],\n strings: [],\n columnSums: [],\n },\n kind: this.args.kind\n });\n return;\n }\n const aggregatePreferences =\n globals.state.aggregatePreferences[this.args.kind];\n\n const sortingChanged = aggregatePreferences &&\n this.previousSorting !== aggregatePreferences.sorting;\n const [hasAreaChanged, area] = this.areaSelectionHandler.getAreaChange();\n if ((!hasAreaChanged && !sortingChanged) || !area) return;\n\n if (this.requestingData) {\n this.queuedRequest = true;\n } else {\n this.requestingData = true;\n if (sortingChanged) this.previousSorting = aggregatePreferences.sorting;\n this.getAggregateData(area, hasAreaChanged)\n .then(data => publishAggregateData({data, kind: this.args.kind}))\n .finally(() => {\n this.requestingData = false;\n if (this.queuedRequest) {\n this.queuedRequest = false;\n this.run();\n }\n });\n }\n }\n\n async getAggregateData(area: Area, areaChanged: boolean):\n Promise<AggregateData> {\n if (areaChanged) {\n const viewExists = await this.createAggregateView(this.args.engine, area);\n if (!viewExists) {\n return {\n tabName: this.getTabName(),\n columns: [],\n strings: [],\n columnSums: [],\n };\n }\n }\n\n const defs = this.getColumnDefinitions();\n const colIds = defs.map(col => col.columnId);\n const pref = globals.state.aggregatePreferences[this.kind];\n let sorting = `${this.getDefaultSorting().column} ${\n this.getDefaultSorting().direction}`;\n if (pref && pref.sorting) {\n sorting = `${pref.sorting.column} ${pref.sorting.direction}`;\n }\n const query = `select ${colIds} from ${this.kind} order by ${sorting}`;\n const result = await this.args.engine.query(query);\n\n const numRows = result.numRows();\n const columns = defs.map(def => this.columnFromColumnDef(def, numRows));\n const columnSums = await Promise.all(defs.map(def => this.getSum(def)));\n const extraData = await this.getExtra(this.args.engine, area);\n const extra = extraData ? extraData : undefined;\n const data: AggregateData =\n {tabName: this.getTabName(), columns, columnSums, strings: [], extra};\n\n const stringIndexes = new Map<string, number>();\n function internString(str: string) {\n let idx = stringIndexes.get(str);\n if (idx !== undefined) return idx;\n idx = data.strings.length;\n data.strings.push(str);\n stringIndexes.set(str, idx);\n return idx;\n }\n\n const it = result.iter({});\n for (let i = 0; it.valid(); it.next(), ++i) {\n for (const column of data.columns) {\n const item = it.get(column.columnId);\n if (item === null) {\n column.data[i] = isStringColumn(column) ? internString('NULL') : 0;\n } else if (typeof item === 'string') {\n column.data[i] = internString(item);\n } else {\n column.data[i] = item;\n }\n }\n }\n\n return data;\n }\n\n async getSum(def: ColumnDef): Promise<string> {\n if (!def.sum) return '';\n const result = await this.args.engine.query(\n `select ifnull(sum(${def.columnId}), 0) as s from ${this.kind}`);\n let sum = result.firstRow({s: NUM}).s;\n if (def.kind === 'TIMESTAMP_NS') {\n sum = sum / 1e6;\n }\n return `${sum}`;\n }\n\n columnFromColumnDef(def: ColumnDef, numRows: number): Column {\n // TODO(hjd): The Column type should be based on the\n // ColumnDef type or vice versa to avoid this cast.\n return {\n title: def.title,\n kind: def.kind,\n data: new def.columnConstructor(numRows),\n columnId: def.columnId,\n } as Column;\n }\n}\n","// Copyright (C) 2020 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {ColumnDef} from '../../common/aggregation_data';\nimport {Engine} from '../../common/engine';\nimport {Area, Sorting} from '../../common/state';\nimport {toNs} from '../../common/time';\nimport {Config, COUNTER_TRACK_KIND} from '../../tracks/counter/common';\nimport {globals} from '../globals';\n\nimport {AggregationController} from './aggregation_controller';\n\nexport class CounterAggregationController extends AggregationController {\n async createAggregateView(engine: Engine, area: Area) {\n await engine.query(`drop view if exists ${this.kind};`);\n\n const ids = [];\n for (const trackId of area.tracks) {\n const track = globals.state.tracks[trackId];\n // Track will be undefined for track groups.\n if (track !== undefined && track.kind === COUNTER_TRACK_KIND) {\n const config = track.config as Config;\n // TODO(hjd): Also aggregate annotation (with namespace) counters.\n if (config.namespace === undefined) {\n ids.push(config.trackId);\n }\n }\n }\n if (ids.length === 0) return false;\n\n const query = `create view ${this.kind} as select\n name,\n count(1) as count,\n round(sum(weighted_value)/${\n toNs(area.endSec) - toNs(area.startSec)}, 2) as avg_value,\n last as last_value,\n first as first_value,\n max(last) - min(first) as delta_value,\n round((max(last) - min(first))/${area.endSec - area.startSec}, 2) as rate,\n min(value) as min_value,\n max(value) as max_value\n from\n (select *,\n (min(ts + dur, ${toNs(area.endSec)}) - max(ts,${toNs(area.startSec)}))\n * value as weighted_value,\n first_value(value) over\n (partition by track_id order by ts) as first,\n last_value(value) over\n (partition by track_id order by ts\n range between unbounded preceding and unbounded following) as last\n from experimental_counter_dur\n where track_id in (${ids})\n and ts + dur >= ${toNs(area.startSec)} and\n ts <= ${toNs(area.endSec)})\n join counter_track\n on track_id = counter_track.id\n group by track_id`;\n\n await engine.query(query);\n return true;\n }\n\n getColumnDefinitions(): ColumnDef[] {\n return [\n {\n title: 'Name',\n kind: 'STRING',\n columnConstructor: Uint16Array,\n columnId: 'name',\n },\n {\n title: 'Delta value',\n kind: 'NUMBER',\n columnConstructor: Float64Array,\n columnId: 'delta_value'\n },\n {\n title: 'Rate /s',\n kind: 'Number',\n columnConstructor: Float64Array,\n columnId: 'rate'\n },\n {\n title: 'Weighted avg value',\n kind: 'Number',\n columnConstructor: Float64Array,\n columnId: 'avg_value'\n },\n {\n title: 'Count',\n kind: 'Number',\n columnConstructor: Float64Array,\n columnId: 'count',\n sum: true,\n },\n {\n title: 'First value',\n kind: 'NUMBER',\n columnConstructor: Float64Array,\n columnId: 'first_value'\n },\n {\n title: 'Last value',\n kind: 'NUMBER',\n columnConstructor: Float64Array,\n columnId: 'last_value'\n },\n {\n title: 'Min value',\n kind: 'NUMBER',\n columnConstructor: Float64Array,\n columnId: 'min_value'\n },\n {\n title: 'Max value',\n kind: 'NUMBER',\n columnConstructor: Float64Array,\n columnId: 'max_value'\n },\n\n ];\n }\n\n async getExtra() {}\n\n getTabName() {\n return 'Counters';\n }\n\n getDefaultSorting(): Sorting {\n return {column: 'name', direction: 'DESC'};\n }\n}\n","// Copyright (C) 2020 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {ColumnDef} from '../../common/aggregation_data';\nimport {Engine} from '../../common/engine';\nimport {Area, Sorting} from '../../common/state';\nimport {toNs} from '../../common/time';\nimport {Config, CPU_SLICE_TRACK_KIND} from '../../tracks/cpu_slices/common';\nimport {globals} from '../globals';\n\nimport {AggregationController} from './aggregation_controller';\n\n\nexport class CpuAggregationController extends AggregationController {\n async createAggregateView(engine: Engine, area: Area) {\n await engine.query(`drop view if exists ${this.kind};`);\n\n const selectedCpus = [];\n for (const trackId of area.tracks) {\n const track = globals.state.tracks[trackId];\n // Track will be undefined for track groups.\n if (track !== undefined && track.kind === CPU_SLICE_TRACK_KIND) {\n selectedCpus.push((track.config as Config).cpu);\n }\n }\n if (selectedCpus.length === 0) return false;\n\n const query = `create view ${this.kind} as\n SELECT process.name as process_name, pid, thread.name as thread_name,\n tid, sum(dur) AS total_dur,\n sum(dur)/count(1) as avg_dur,\n count(1) as occurrences\n FROM process\n JOIN thread USING(upid)\n JOIN thread_state USING(utid)\n WHERE cpu IN (${selectedCpus}) AND\n state = \"Running\" AND\n thread_state.ts + thread_state.dur > ${toNs(area.startSec)} AND\n thread_state.ts < ${toNs(area.endSec)} group by utid`;\n\n await engine.query(query);\n return true;\n }\n\n getTabName() {\n return 'CPU by thread';\n }\n\n async getExtra() {}\n\n getDefaultSorting(): Sorting {\n return {column: 'total_dur', direction: 'DESC'};\n }\n\n getColumnDefinitions(): ColumnDef[] {\n return [\n {\n title: 'Process',\n kind: 'STRING',\n columnConstructor: Uint16Array,\n columnId: 'process_name',\n },\n {\n title: 'PID',\n kind: 'NUMBER',\n columnConstructor: Uint16Array,\n columnId: 'pid'\n },\n {\n title: 'Thread',\n kind: 'STRING',\n columnConstructor: Uint16Array,\n columnId: 'thread_name'\n },\n {\n title: 'TID',\n kind: 'NUMBER',\n columnConstructor: Uint16Array,\n columnId: 'tid'\n },\n {\n title: 'Wall duration (ms)',\n kind: 'TIMESTAMP_NS',\n columnConstructor: Float64Array,\n columnId: 'total_dur',\n sum: true\n },\n {\n title: 'Avg Wall duration (ms)',\n kind: 'TIMESTAMP_NS',\n columnConstructor: Float64Array,\n columnId: 'avg_dur'\n },\n {\n title: 'Occurrences',\n kind: 'NUMBER',\n columnConstructor: Uint16Array,\n columnId: 'occurrences',\n sum: true\n }\n ];\n }\n}\n","// Copyright (C) 2021 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {ColumnDef} from '../../common/aggregation_data';\nimport {Engine} from '../../common/engine';\nimport {Area, Sorting} from '../../common/state';\nimport {toNs} from '../../common/time';\nimport {Config, CPU_SLICE_TRACK_KIND} from '../../tracks/cpu_slices/common';\nimport {globals} from '../globals';\n\nimport {AggregationController} from './aggregation_controller';\n\nexport class CpuByProcessAggregationController extends AggregationController {\n async createAggregateView(engine: Engine, area: Area) {\n await engine.query(`drop view if exists ${this.kind};`);\n\n const selectedCpus = [];\n for (const trackId of area.tracks) {\n const track = globals.state.tracks[trackId];\n // Track will be undefined for track groups.\n if (track !== undefined && track.kind === CPU_SLICE_TRACK_KIND) {\n selectedCpus.push((track.config as Config).cpu);\n }\n }\n if (selectedCpus.length === 0) return false;\n\n const query = `create view ${this.kind} as\n SELECT process.name as process_name, pid,\n sum(dur) AS total_dur,\n sum(dur)/count(1) as avg_dur,\n count(1) as occurrences\n FROM process\n JOIN thread USING(upid)\n JOIN thread_state USING(utid)\n WHERE cpu IN (${selectedCpus}) AND\n state = \"Running\" AND\n thread_state.ts + thread_state.dur > ${toNs(area.startSec)} AND\n thread_state.ts < ${toNs(area.endSec)} group by upid`;\n\n await engine.query(query);\n return true;\n }\n\n getTabName() {\n return 'CPU by process';\n }\n\n async getExtra() {}\n\n getDefaultSorting(): Sorting {\n return {column: 'total_dur', direction: 'DESC'};\n }\n\n getColumnDefinitions(): ColumnDef[] {\n return [\n {\n title: 'Process',\n kind: 'STRING',\n columnConstructor: Uint16Array,\n columnId: 'process_name',\n },\n {\n title: 'PID',\n kind: 'NUMBER',\n columnConstructor: Uint16Array,\n columnId: 'pid'\n },\n {\n title: 'Wall duration (ms)',\n kind: 'TIMESTAMP_NS',\n columnConstructor: Float64Array,\n columnId: 'total_dur',\n sum: true\n },\n {\n title: 'Avg Wall duration (ms)',\n kind: 'TIMESTAMP_NS',\n columnConstructor: Float64Array,\n columnId: 'avg_dur'\n },\n {\n title: 'Occurrences',\n kind: 'NUMBER',\n columnConstructor: Uint16Array,\n columnId: 'occurrences',\n sum: true\n }\n ];\n }\n}\n","// Copyright (C) 2021 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {ColumnDef} from '../../common/aggregation_data';\nimport {Engine} from '../../common/engine';\nimport {Area, Sorting} from '../../common/state';\nimport {toNs} from '../../common/time';\nimport {\n ACTUAL_FRAMES_SLICE_TRACK_KIND,\n Config\n} from '../../tracks/actual_frames/common';\nimport {globals} from '../globals';\n\nimport {AggregationController} from './aggregation_controller';\n\nexport class FrameAggregationController extends AggregationController {\n async createAggregateView(engine: Engine, area: Area) {\n await engine.query(`drop view if exists ${this.kind};`);\n\n const selectedSqlTrackIds = [];\n for (const trackId of area.tracks) {\n const track = globals.state.tracks[trackId];\n // Track will be undefined for track groups.\n if (track !== undefined &&\n track.kind === ACTUAL_FRAMES_SLICE_TRACK_KIND) {\n selectedSqlTrackIds.push((track.config as Config).trackIds);\n }\n }\n if (selectedSqlTrackIds.length === 0) return false;\n\n const query = `create view ${this.kind} as\n SELECT\n jank_type,\n count(1) as occurrences,\n MIN(dur) as minDur,\n AVG(dur) as meanDur,\n MAX(dur) as maxDur\n FROM actual_frame_timeline_slice\n WHERE track_id IN (${selectedSqlTrackIds}) AND\n ts + dur > ${toNs(area.startSec)} AND\n ts < ${toNs(area.endSec)} group by jank_type`;\n\n await engine.query(query);\n return true;\n }\n\n getTabName() {\n return 'Frames';\n }\n\n async getExtra() {}\n\n getDefaultSorting(): Sorting {\n return {column: 'occurrences', direction: 'DESC'};\n }\n\n getColumnDefinitions(): ColumnDef[] {\n return [\n {\n title: 'Jank Type',\n kind: 'STRING',\n columnConstructor: Uint16Array,\n columnId: 'jank_type',\n },\n {\n title: 'Min duration',\n kind: 'NUMBER',\n columnConstructor: Uint16Array,\n columnId: 'minDur',\n },\n {\n title: 'Max duration',\n kind: 'NUMBER',\n columnConstructor: Uint16Array,\n columnId: 'maxDur',\n },\n {\n title: 'Mean duration',\n kind: 'NUMBER',\n columnConstructor: Uint16Array,\n columnId: 'meanDur',\n },\n {\n title: 'Occurrences',\n kind: 'NUMBER',\n columnConstructor: Uint16Array,\n columnId: 'occurrences',\n sum: true\n }\n ];\n }\n}\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = global || self, global.MicroModal = factory());\n}(this, (function () { 'use strict';\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n }\n\n function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n }\n\n function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n }\n\n function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(n);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n }\n\n function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n\n function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var MicroModal = function () {\n\n var FOCUSABLE_ELEMENTS = ['a[href]', 'area[href]', 'input:not([disabled]):not([type=\"hidden\"]):not([aria-hidden])', 'select:not([disabled]):not([aria-hidden])', 'textarea:not([disabled]):not([aria-hidden])', 'button:not([disabled]):not([aria-hidden])', 'iframe', 'object', 'embed', '[contenteditable]', '[tabindex]:not([tabindex^=\"-\"])'];\n\n var Modal = /*#__PURE__*/function () {\n function Modal(_ref) {\n var targetModal = _ref.targetModal,\n _ref$triggers = _ref.triggers,\n triggers = _ref$triggers === void 0 ? [] : _ref$triggers,\n _ref$onShow = _ref.onShow,\n onShow = _ref$onShow === void 0 ? function () {} : _ref$onShow,\n _ref$onClose = _ref.onClose,\n onClose = _ref$onClose === void 0 ? function () {} : _ref$onClose,\n _ref$openTrigger = _ref.openTrigger,\n openTrigger = _ref$openTrigger === void 0 ? 'data-micromodal-trigger' : _ref$openTrigger,\n _ref$closeTrigger = _ref.closeTrigger,\n closeTrigger = _ref$closeTrigger === void 0 ? 'data-micromodal-close' : _ref$closeTrigger,\n _ref$openClass = _ref.openClass,\n openClass = _ref$openClass === void 0 ? 'is-open' : _ref$openClass,\n _ref$disableScroll = _ref.disableScroll,\n disableScroll = _ref$disableScroll === void 0 ? false : _ref$disableScroll,\n _ref$disableFocus = _ref.disableFocus,\n disableFocus = _ref$disableFocus === void 0 ? false : _ref$disableFocus,\n _ref$awaitCloseAnimat = _ref.awaitCloseAnimation,\n awaitCloseAnimation = _ref$awaitCloseAnimat === void 0 ? false : _ref$awaitCloseAnimat,\n _ref$awaitOpenAnimati = _ref.awaitOpenAnimation,\n awaitOpenAnimation = _ref$awaitOpenAnimati === void 0 ? false : _ref$awaitOpenAnimati,\n _ref$debugMode = _ref.debugMode,\n debugMode = _ref$debugMode === void 0 ? false : _ref$debugMode;\n\n _classCallCheck(this, Modal);\n\n // Save a reference of the modal\n this.modal = document.getElementById(targetModal); // Save a reference to the passed config\n\n this.config = {\n debugMode: debugMode,\n disableScroll: disableScroll,\n openTrigger: openTrigger,\n closeTrigger: closeTrigger,\n openClass: openClass,\n onShow: onShow,\n onClose: onClose,\n awaitCloseAnimation: awaitCloseAnimation,\n awaitOpenAnimation: awaitOpenAnimation,\n disableFocus: disableFocus\n }; // Register click events only if pre binding eventListeners\n\n if (triggers.length > 0) this.registerTriggers.apply(this, _toConsumableArray(triggers)); // pre bind functions for event listeners\n\n this.onClick = this.onClick.bind(this);\n this.onKeydown = this.onKeydown.bind(this);\n }\n /**\n * Loops through all openTriggers and binds click event\n * @param {array} triggers [Array of node elements]\n * @return {void}\n */\n\n\n _createClass(Modal, [{\n key: \"registerTriggers\",\n value: function registerTriggers() {\n var _this = this;\n\n for (var _len = arguments.length, triggers = new Array(_len), _key = 0; _key < _len; _key++) {\n triggers[_key] = arguments[_key];\n }\n\n triggers.filter(Boolean).forEach(function (trigger) {\n trigger.addEventListener('click', function (event) {\n return _this.showModal(event);\n });\n });\n }\n }, {\n key: \"showModal\",\n value: function showModal() {\n var _this2 = this;\n\n var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n this.activeElement = document.activeElement;\n this.modal.setAttribute('aria-hidden', 'false');\n this.modal.classList.add(this.config.openClass);\n this.scrollBehaviour('disable');\n this.addEventListeners();\n\n if (this.config.awaitOpenAnimation) {\n var handler = function handler() {\n _this2.modal.removeEventListener('animationend', handler, false);\n\n _this2.setFocusToFirstNode();\n };\n\n this.modal.addEventListener('animationend', handler, false);\n } else {\n this.setFocusToFirstNode();\n }\n\n this.config.onShow(this.modal, this.activeElement, event);\n }\n }, {\n key: \"closeModal\",\n value: function closeModal() {\n var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var modal = this.modal;\n this.modal.setAttribute('aria-hidden', 'true');\n this.removeEventListeners();\n this.scrollBehaviour('enable');\n\n if (this.activeElement && this.activeElement.focus) {\n this.activeElement.focus();\n }\n\n this.config.onClose(this.modal, this.activeElement, event);\n\n if (this.config.awaitCloseAnimation) {\n var openClass = this.config.openClass; // <- old school ftw\n\n this.modal.addEventListener('animationend', function handler() {\n modal.classList.remove(openClass);\n modal.removeEventListener('animationend', handler, false);\n }, false);\n } else {\n modal.classList.remove(this.config.openClass);\n }\n }\n }, {\n key: \"closeModalById\",\n value: function closeModalById(targetModal) {\n this.modal = document.getElementById(targetModal);\n if (this.modal) this.closeModal();\n }\n }, {\n key: \"scrollBehaviour\",\n value: function scrollBehaviour(toggle) {\n if (!this.config.disableScroll) return;\n var body = document.querySelector('body');\n\n switch (toggle) {\n case 'enable':\n Object.assign(body.style, {\n overflow: ''\n });\n break;\n\n case 'disable':\n Object.assign(body.style, {\n overflow: 'hidden'\n });\n break;\n }\n }\n }, {\n key: \"addEventListeners\",\n value: function addEventListeners() {\n this.modal.addEventListener('touchstart', this.onClick);\n this.modal.addEventListener('click', this.onClick);\n document.addEventListener('keydown', this.onKeydown);\n }\n }, {\n key: \"removeEventListeners\",\n value: function removeEventListeners() {\n this.modal.removeEventListener('touchstart', this.onClick);\n this.modal.removeEventListener('click', this.onClick);\n document.removeEventListener('keydown', this.onKeydown);\n }\n }, {\n key: \"onClick\",\n value: function onClick(event) {\n if (event.target.hasAttribute(this.config.closeTrigger)) {\n this.closeModal(event);\n }\n }\n }, {\n key: \"onKeydown\",\n value: function onKeydown(event) {\n if (event.keyCode === 27) this.closeModal(event); // esc\n\n if (event.keyCode === 9) this.retainFocus(event); // tab\n }\n }, {\n key: \"getFocusableNodes\",\n value: function getFocusableNodes() {\n var nodes = this.modal.querySelectorAll(FOCUSABLE_ELEMENTS);\n return Array.apply(void 0, _toConsumableArray(nodes));\n }\n /**\n * Tries to set focus on a node which is not a close trigger\n * if no other nodes exist then focuses on first close trigger\n */\n\n }, {\n key: \"setFocusToFirstNode\",\n value: function setFocusToFirstNode() {\n var _this3 = this;\n\n if (this.config.disableFocus) return;\n var focusableNodes = this.getFocusableNodes(); // no focusable nodes\n\n if (focusableNodes.length === 0) return; // remove nodes on whose click, the modal closes\n // could not think of a better name :(\n\n var nodesWhichAreNotCloseTargets = focusableNodes.filter(function (node) {\n return !node.hasAttribute(_this3.config.closeTrigger);\n });\n if (nodesWhichAreNotCloseTargets.length > 0) nodesWhichAreNotCloseTargets[0].focus();\n if (nodesWhichAreNotCloseTargets.length === 0) focusableNodes[0].focus();\n }\n }, {\n key: \"retainFocus\",\n value: function retainFocus(event) {\n var focusableNodes = this.getFocusableNodes(); // no focusable nodes\n\n if (focusableNodes.length === 0) return;\n /**\n * Filters nodes which are hidden to prevent\n * focus leak outside modal\n */\n\n focusableNodes = focusableNodes.filter(function (node) {\n return node.offsetParent !== null;\n }); // if disableFocus is true\n\n if (!this.modal.contains(document.activeElement)) {\n focusableNodes[0].focus();\n } else {\n var focusedItemIndex = focusableNodes.indexOf(document.activeElement);\n\n if (event.shiftKey && focusedItemIndex === 0) {\n focusableNodes[focusableNodes.length - 1].focus();\n event.preventDefault();\n }\n\n if (!event.shiftKey && focusableNodes.length > 0 && focusedItemIndex === focusableNodes.length - 1) {\n focusableNodes[0].focus();\n event.preventDefault();\n }\n }\n }\n }]);\n\n return Modal;\n }();\n /**\n * Modal prototype ends.\n * Here on code is responsible for detecting and\n * auto binding event handlers on modal triggers\n */\n // Keep a reference to the opened modal\n\n\n var activeModal = null;\n /**\n * Generates an associative array of modals and it's\n * respective triggers\n * @param {array} triggers An array of all triggers\n * @param {string} triggerAttr The data-attribute which triggers the module\n * @return {array}\n */\n\n var generateTriggerMap = function generateTriggerMap(triggers, triggerAttr) {\n var triggerMap = [];\n triggers.forEach(function (trigger) {\n var targetModal = trigger.attributes[triggerAttr].value;\n if (triggerMap[targetModal] === undefined) triggerMap[targetModal] = [];\n triggerMap[targetModal].push(trigger);\n });\n return triggerMap;\n };\n /**\n * Validates whether a modal of the given id exists\n * in the DOM\n * @param {number} id The id of the modal\n * @return {boolean}\n */\n\n\n var validateModalPresence = function validateModalPresence(id) {\n if (!document.getElementById(id)) {\n console.warn(\"MicroModal: \\u2757Seems like you have missed %c'\".concat(id, \"'\"), 'background-color: #f8f9fa;color: #50596c;font-weight: bold;', 'ID somewhere in your code. Refer example below to resolve it.');\n console.warn(\"%cExample:\", 'background-color: #f8f9fa;color: #50596c;font-weight: bold;', \"<div class=\\\"modal\\\" id=\\\"\".concat(id, \"\\\"></div>\"));\n return false;\n }\n };\n /**\n * Validates if there are modal triggers present\n * in the DOM\n * @param {array} triggers An array of data-triggers\n * @return {boolean}\n */\n\n\n var validateTriggerPresence = function validateTriggerPresence(triggers) {\n if (triggers.length <= 0) {\n console.warn(\"MicroModal: \\u2757Please specify at least one %c'micromodal-trigger'\", 'background-color: #f8f9fa;color: #50596c;font-weight: bold;', 'data attribute.');\n console.warn(\"%cExample:\", 'background-color: #f8f9fa;color: #50596c;font-weight: bold;', \"<a href=\\\"#\\\" data-micromodal-trigger=\\\"my-modal\\\"></a>\");\n return false;\n }\n };\n /**\n * Checks if triggers and their corresponding modals\n * are present in the DOM\n * @param {array} triggers Array of DOM nodes which have data-triggers\n * @param {array} triggerMap Associative array of modals and their triggers\n * @return {boolean}\n */\n\n\n var validateArgs = function validateArgs(triggers, triggerMap) {\n validateTriggerPresence(triggers);\n if (!triggerMap) return true;\n\n for (var id in triggerMap) {\n validateModalPresence(id);\n }\n\n return true;\n };\n /**\n * Binds click handlers to all modal triggers\n * @param {object} config [description]\n * @return void\n */\n\n\n var init = function init(config) {\n // Create an config object with default openTrigger\n var options = Object.assign({}, {\n openTrigger: 'data-micromodal-trigger'\n }, config); // Collects all the nodes with the trigger\n\n var triggers = _toConsumableArray(document.querySelectorAll(\"[\".concat(options.openTrigger, \"]\"))); // Makes a mappings of modals with their trigger nodes\n\n\n var triggerMap = generateTriggerMap(triggers, options.openTrigger); // Checks if modals and triggers exist in dom\n\n if (options.debugMode === true && validateArgs(triggers, triggerMap) === false) return; // For every target modal creates a new instance\n\n for (var key in triggerMap) {\n var value = triggerMap[key];\n options.targetModal = key;\n options.triggers = _toConsumableArray(value);\n activeModal = new Modal(options); // eslint-disable-line no-new\n }\n };\n /**\n * Shows a particular modal\n * @param {string} targetModal [The id of the modal to display]\n * @param {object} config [The configuration object to pass]\n * @return {void}\n */\n\n\n var show = function show(targetModal, config) {\n var options = config || {};\n options.targetModal = targetModal; // Checks if modals and triggers exist in dom\n\n if (options.debugMode === true && validateModalPresence(targetModal) === false) return; // clear events in case previous modal wasn't close\n\n if (activeModal) activeModal.removeEventListeners(); // stores reference to active modal\n\n activeModal = new Modal(options); // eslint-disable-line no-new\n\n activeModal.showModal();\n };\n /**\n * Closes the active modal\n * @param {string} targetModal [The id of the modal to close]\n * @return {void}\n */\n\n\n var close = function close(targetModal) {\n targetModal ? activeModal.closeModalById(targetModal) : activeModal.closeModal();\n };\n\n return {\n init: init,\n show: show,\n close: close\n };\n }();\n window.MicroModal = MicroModal;\n\n return MicroModal;\n\n})));\n","// Copyright (C) 2019 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as MicroModal from 'micromodal';\nimport * as m from 'mithril';\n\n// We need any here so we can accept vnodes with arbitrary attrs.\n// tslint:disable-next-line:no-any\nexport type AnyAttrsVnode = m.Vnode<any, {}>;\n\ninterface ModalDefinition {\n title: string;\n content: AnyAttrsVnode;\n buttons: Button[];\n}\n\nexport interface Button {\n text: string;\n primary: boolean;\n id: string;\n action: () => void;\n}\n\n// We need to create a div outside of the mithril's render root (<main>), that's\n// why the manual DOM manipulation.\nfunction getOrCreateDOM() {\n let div = document.getElementById('main-modal') as HTMLElement;\n if (div) return div;\n div = document.createElement('div');\n div.id = 'main-modal';\n div.classList.add('modal');\n div.classList.add('micromodal-slide');\n (div as {} as {ariaHidden: boolean}).ariaHidden = true;\n document.body.appendChild(div);\n MicroModal.init();\n return div;\n}\n\nexport async function showModal(attrs: ModalDefinition): Promise<void> {\n const modal = getOrCreateDOM();\n m.render(\n modal,\n m('.modal-overlay[data-micromodal-close]',\n {tabindex: -1},\n m('.modal-container[aria-labelledby=mm-title][aria-model][role=dialog]',\n m('header.modal-header',\n m('h2.modal-title', {id: 'mm-title'}, attrs.title),\n m('button.modal-close[aria-label=Close Modal]' +\n '[data-micromodal-close]')),\n m('main.modal-content', attrs.content),\n m('footer.modal-footer', ...makeButtons(attrs.buttons)))));\n return new Promise(resolve => {\n MicroModal.show(\n 'main-modal', {onClose: () => resolve(), awaitCloseAnimation: true});\n });\n}\n\nexport function hideModel() {\n MicroModal.close();\n}\n\nfunction makeButtons(buttonDefinition: Button[]): Array<m.Vnode<Button>> {\n const buttons: Array<m.Vnode<Button>> = [];\n buttonDefinition.forEach(button => {\n buttons.push(\n m('button[data-micromodal-close].modal-btn',\n {\n class: button.primary ? 'modal-btn-primary' : '',\n id: button.id,\n onclick: button.action\n },\n button.text));\n });\n return buttons;\n}\n","\n// Copyright (C) 2019 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as m from 'mithril';\n\nimport {globals} from './globals';\nimport {PIVOT_TABLE_FLAG} from './keyboard_event_handler';\nimport {hideModel, showModal} from './modal';\n\nlet helpModelOpen = false;\n\nexport function toggleHelp() {\n if (helpModelOpen) {\n hideHelp();\n } else {\n globals.logging.logEvent('User Actions', 'Show help');\n showHelp();\n }\n}\n\nfunction keycap(key: string) {\n return m('.keycap', key);\n}\n\nfunction showHelp() {\n helpModelOpen = true;\n showModal({\n title: 'Perfetto Help',\n content: m(\n '.help',\n m('h2', 'Navigation'),\n m(\n 'table',\n m(\n 'tr',\n m('td', keycap('w'), '/', keycap('s')),\n m('td', 'Zoom in/out'),\n ),\n m(\n 'tr',\n m('td', keycap('a'), '/', keycap('d')),\n m('td', 'Pan left/right'),\n ),\n ),\n m('h2', 'Mouse Controls'),\n m('table',\n m('tr', m('td', 'Click'), m('td', 'Select event')),\n m('tr', m('td', 'Ctrl + Scroll wheel'), m('td', 'Zoom in/out')),\n m('tr', m('td', 'Click + Drag'), m('td', 'Select area')),\n m('tr', m('td', 'Shift + Click + Drag'), m('td', 'Pan left/right'))),\n m('h2', 'Other'),\n m(\n 'table',\n m('tr',\n m('td', keycap('f'), ' (with event selected)'),\n m('td', 'Scroll + zoom to current selection')),\n m('tr',\n m('td', keycap('['), '/', keycap(']'), ' (with event selected)'),\n m('td',\n 'Select next/previous slice that is connected by a flow.',\n m('br'),\n 'If there are multiple flows,' +\n 'the one that is in focus (bold) is selected')),\n m('tr',\n m('td',\n keycap('Ctrl'),\n ' + ',\n keycap('['),\n '/',\n keycap(']'),\n ' (with event selected)'),\n m('td', 'Switch focus to another flow')),\n m('tr',\n m('td', keycap('m'), ' (with event or area selected)'),\n m('td', 'Mark the area (temporarily)')),\n m('tr',\n m('td',\n keycap('Shift'),\n ' + ',\n keycap('m'),\n ' (with event or area selected)'),\n m('td', 'Mark the area (persistently)')),\n m('tr',\n m('td', keycap('Ctrl'), ' + ', keycap('b')),\n m('td', 'Toggle display of sidebar')),\n PIVOT_TABLE_FLAG.get() ?\n m('tr', m('td', keycap('p')), m('td', 'Show pivot table')) :\n null,\n m('tr', m('td', keycap('?')), m('td', 'Show help')),\n )),\n buttons: [],\n }).finally(() => {\n helpModelOpen = false;\n });\n}\n\nfunction hideHelp() {\n if (helpModelOpen) {\n hideModel();\n }\n}\n","// Copyright (C) 2019 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {searchSegment} from '../base/binary_search';\nimport {Actions} from '../common/actions';\nimport {toNs} from '../common/time';\n\nimport {globals} from './globals';\nimport {scrollToTrackAndTs} from './scroll_helper';\n\nfunction setToPrevious(current: number) {\n const index = Math.max(current - 1, 0);\n globals.dispatch(Actions.setSearchIndex({index}));\n}\n\nfunction setToNext(current: number) {\n const index =\n Math.min(current + 1, globals.currentSearchResults.totalResults - 1);\n globals.dispatch(Actions.setSearchIndex({index}));\n}\n\nexport function executeSearch(reverse = false) {\n const index = globals.state.searchIndex;\n const startNs = toNs(globals.frontendLocalState.visibleWindowTime.start);\n const endNs = toNs(globals.frontendLocalState.visibleWindowTime.end);\n const currentTs = globals.currentSearchResults.tsStarts[index];\n\n // If this is a new search or the currentTs is not in the viewport,\n // select the first/last item in the viewport.\n if (index === -1 || currentTs < startNs || currentTs > endNs) {\n if (reverse) {\n const [smaller,] =\n searchSegment(globals.currentSearchResults.tsStarts, endNs);\n // If there is no item in the viewport just go to the previous.\n if (smaller === -1) {\n setToPrevious(index);\n } else {\n globals.dispatch(Actions.setSearchIndex({index: smaller}));\n }\n } else {\n const [, larger] =\n searchSegment(globals.currentSearchResults.tsStarts, startNs);\n // If there is no item in the viewport just go to the next.\n if (larger === -1) {\n setToNext(index);\n } else {\n globals.dispatch(Actions.setSearchIndex({index: larger}));\n }\n }\n } else {\n // If the currentTs is in the viewport, increment the index.\n if (reverse) {\n setToPrevious(index);\n } else {\n setToNext(index);\n }\n }\n selectCurrentSearchResult();\n\n // TODO(hjd): If the user does a search before any other selection,\n // the details panel will pop up when the search is executed. If the search\n // result is behind where the details panel appears then it won't get scrolled\n // to. This time delay is a workaround for this specific situation.\n // A better solution will be a callback that allows something to happen on the\n // first redraw after an Action is applied.\n const delay = index === -1 ? 50 : 0;\n setTimeout(() => moveViewportToCurrentSearch(), delay);\n}\n\nfunction moveViewportToCurrentSearch() {\n const searchIndex = globals.state.searchIndex;\n if (searchIndex === -1) return;\n const currentTs = globals.currentSearchResults.tsStarts[searchIndex];\n const trackId = globals.currentSearchResults.trackIds[searchIndex];\n scrollToTrackAndTs(trackId, currentTs);\n}\n\nfunction selectCurrentSearchResult() {\n const searchIndex = globals.state.searchIndex;\n const source = globals.currentSearchResults.sources[searchIndex];\n const currentId = globals.currentSearchResults.sliceIds[searchIndex];\n const trackId = globals.currentSearchResults.trackIds[searchIndex];\n\n if (currentId === undefined) return;\n\n if (source === 'cpu') {\n globals.dispatch(Actions.selectSlice({id: currentId, trackId}));\n } else {\n // Search results only include slices from the slice table for now.\n // When we include annotations we need to pass the correct table.\n globals.dispatch(\n Actions.selectChromeSlice({id: currentId, trackId, table: 'slice'}));\n }\n}\n","// Copyright (C) 2019 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {Actions} from '../common/actions';\nimport {featureFlags} from '../common/feature_flags';\nimport {DEFAULT_PIVOT_TABLE_ID} from '../common/pivot_table_common';\nimport {Area} from '../common/state';\n\nimport {Flow, globals} from './globals';\nimport {toggleHelp} from './help_modal';\nimport {\n horizontalScrollAndZoomToRange,\n verticalScrollToTrack\n} from './scroll_helper';\nimport {executeSearch} from './search_handler';\n\nexport const PIVOT_TABLE_FLAG = featureFlags.register({\n id: 'pivotTables',\n name: 'Pivot tables',\n description: 'Show experimental pivot table details tab.',\n defaultValue: false,\n});\n\nconst INSTANT_FOCUS_DURATION_S = 1 / 1e9; // 1 ns.\ntype Direction = 'Forward'|'Backward';\n\n// Handles all key events than are not handled by the\n// pan and zoom handler.\nexport function handleKey(e: KeyboardEvent, down: boolean) {\n const key = e.key.toLowerCase();\n const selection = globals.state.currentSelection;\n if (down && 'm' === key) {\n if (selection && selection.kind === 'AREA') {\n globals.dispatch(Actions.toggleMarkCurrentArea({persistent: e.shiftKey}));\n } else if (selection) {\n lockSliceSpan(e.shiftKey);\n }\n }\n if (down && 'f' === key) {\n findCurrentSelection();\n }\n if (down && 'b' === key && (e.ctrlKey || e.metaKey)) {\n globals.dispatch(Actions.toggleSidebar({}));\n }\n if (down && '?' === key) {\n toggleHelp();\n }\n if (down && 'enter' === key) {\n e.preventDefault();\n executeSearch(e.shiftKey);\n }\n if (down && 'escape' === key) {\n globals.frontendLocalState.deselectArea();\n globals.makeSelection(Actions.deselect({}));\n globals.dispatch(Actions.removeNote({id: '0'}));\n }\n if (down && ']' === key) {\n if (e.ctrlKey) {\n focusOtherFlow('Forward');\n } else {\n moveByFocusedFlow('Forward');\n }\n }\n if (down && '[' === key) {\n if (e.ctrlKey) {\n focusOtherFlow('Backward');\n } else {\n moveByFocusedFlow('Backward');\n }\n }\n if (down && 'p' === key && !e.ctrlKey && PIVOT_TABLE_FLAG.get()) {\n e.preventDefault();\n globals.frontendLocalState.togglePivotTable();\n const pivotTableId = DEFAULT_PIVOT_TABLE_ID;\n if (globals.state.pivotTable[pivotTableId] === undefined) {\n globals.dispatch(Actions.addNewPivotTable({\n name: 'Pivot Table',\n pivotTableId,\n selectedPivots: [],\n selectedAggregations: []\n }));\n }\n }\n}\n\n// Search |boundFlows| for |flowId| and return the id following it.\n// Returns the first flow id if nothing was found or |flowId| was the last flow\n// in |boundFlows|, and -1 if |boundFlows| is empty\nfunction findAnotherFlowExcept(boundFlows: Flow[], flowId: number): number {\n let selectedFlowFound = false;\n\n if (boundFlows.length === 0) {\n return -1;\n }\n\n for (const flow of boundFlows) {\n if (selectedFlowFound) {\n return flow.id;\n }\n\n if (flow.id === flowId) {\n selectedFlowFound = true;\n }\n }\n return boundFlows[0].id;\n}\n\n// Change focus to the next flow event (matching the direction)\nfunction focusOtherFlow(direction: Direction) {\n if (!globals.state.currentSelection ||\n globals.state.currentSelection.kind !== 'CHROME_SLICE') {\n return;\n }\n const sliceId = globals.state.currentSelection.id;\n if (sliceId === -1) {\n return;\n }\n\n const boundFlows = globals.connectedFlows.filter(\n flow => flow.begin.sliceId === sliceId && direction === 'Forward' ||\n flow.end.sliceId === sliceId && direction === 'Backward');\n\n if (direction === 'Backward') {\n const nextFlowId =\n findAnotherFlowExcept(boundFlows, globals.state.focusedFlowIdLeft);\n globals.dispatch(Actions.setHighlightedFlowLeftId({flowId: nextFlowId}));\n } else {\n const nextFlowId =\n findAnotherFlowExcept(boundFlows, globals.state.focusedFlowIdRight);\n globals.dispatch(Actions.setHighlightedFlowRightId({flowId: nextFlowId}));\n }\n}\n\n// Select the slice connected to the flow in focus\nfunction moveByFocusedFlow(direction: Direction) {\n if (!globals.state.currentSelection ||\n globals.state.currentSelection.kind !== 'CHROME_SLICE') {\n return;\n }\n\n const sliceId = globals.state.currentSelection.id;\n const flowId =\n (direction === 'Backward' ? globals.state.focusedFlowIdLeft :\n globals.state.focusedFlowIdRight);\n\n if (sliceId === -1 || flowId === -1) {\n return;\n }\n\n // Find flow that is in focus and select corresponding slice\n for (const flow of globals.connectedFlows) {\n if (flow.id === flowId) {\n const flowPoint = (direction === 'Backward' ? flow.begin : flow.end);\n const uiTrackId =\n globals.state.uiTrackIdByTraceTrackId.get(flowPoint.trackId);\n if (uiTrackId) {\n globals.makeSelection(Actions.selectChromeSlice(\n {id: flowPoint.sliceId, trackId: uiTrackId, table: 'slice'}));\n }\n }\n }\n}\n\nfunction findTimeRangeOfSelection(): {startTs: number, endTs: number} {\n const selection = globals.state.currentSelection;\n let startTs = -1;\n let endTs = -1;\n if (selection === null) {\n return {startTs, endTs};\n } else if (selection.kind === 'SLICE' || selection.kind === 'CHROME_SLICE') {\n const slice = globals.sliceDetails;\n if (slice.ts && slice.dur !== undefined && slice.dur > 0) {\n startTs = slice.ts + globals.state.traceTime.startSec;\n endTs = startTs + slice.dur;\n } else if (slice.ts) {\n startTs = slice.ts + globals.state.traceTime.startSec;\n // This will handle either:\n // a)slice.dur === -1 -> unfinished slice\n // b)slice.dur === 0 -> instant event\n endTs = slice.dur === -1 ? globals.state.traceTime.endSec :\n startTs + INSTANT_FOCUS_DURATION_S;\n }\n } else if (selection.kind === 'THREAD_STATE') {\n const threadState = globals.threadStateDetails;\n if (threadState.ts && threadState.dur) {\n startTs = threadState.ts + globals.state.traceTime.startSec;\n endTs = startTs + threadState.dur;\n }\n } else if (selection.kind === 'COUNTER') {\n startTs = selection.leftTs;\n endTs = selection.rightTs;\n } else if (selection.kind === 'AREA') {\n const selectedArea = globals.state.areas[selection.areaId];\n if (selectedArea) {\n startTs = selectedArea.startSec;\n endTs = selectedArea.endSec;\n }\n } else if (selection.kind === 'NOTE') {\n const selectedNote = globals.state.notes[selection.id];\n // Notes can either be default or area notes. Area notes are handled\n // above in the AREA case.\n if (selectedNote && selectedNote.noteType === 'DEFAULT') {\n startTs = selectedNote.timestamp;\n endTs = selectedNote.timestamp + INSTANT_FOCUS_DURATION_S;\n }\n }\n\n return {startTs, endTs};\n}\n\n\nfunction lockSliceSpan(persistent = false) {\n const range = findTimeRangeOfSelection();\n if (range.startTs !== -1 && range.endTs !== -1 &&\n globals.state.currentSelection !== null) {\n const tracks = globals.state.currentSelection.trackId ?\n [globals.state.currentSelection.trackId] :\n [];\n const area: Area = {startSec: range.startTs, endSec: range.endTs, tracks};\n globals.dispatch(Actions.markArea({area, persistent}));\n }\n}\n\nfunction findCurrentSelection() {\n const selection = globals.state.currentSelection;\n if (selection === null) return;\n\n const range = findTimeRangeOfSelection();\n if (range.startTs !== -1 && range.endTs !== -1) {\n horizontalScrollAndZoomToRange(range.startTs, range.endTs);\n }\n\n if (selection.trackId) {\n verticalScrollToTrack(selection.trackId, true);\n }\n}\n","// Copyright (C) 2020 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {Actions} from '../../common/actions';\nimport {ColumnDef} from '../../common/aggregation_data';\nimport {Engine} from '../../common/engine';\nimport {\n SLICE_AGGREGATION_PIVOT_TABLE_ID\n} from '../../common/pivot_table_common';\nimport {Area, Sorting} from '../../common/state';\nimport {toNs} from '../../common/time';\nimport {PIVOT_TABLE_FLAG} from '../../frontend/keyboard_event_handler';\nimport {\n ASYNC_SLICE_TRACK_KIND,\n Config as AsyncSliceConfig\n} from '../../tracks/async_slices/common';\nimport {\n Config as SliceConfig,\n SLICE_TRACK_KIND\n} from '../../tracks/chrome_slices/common';\nimport {globals} from '../globals';\n\nimport {AggregationController} from './aggregation_controller';\n\nfunction addPivotTableOnAreaSelection(\n selectedTrackIds: number[], startSec: number, endSec: number) {\n const selectedPivots =\n [{tableName: 'slice', columnName: 'name', isStackPivot: false}];\n\n const selectedAggregations = [\n {tableName: 'slice', columnName: 'dur', aggregation: 'SUM', order: 'DESC'},\n {tableName: 'slice', columnName: 'dur', aggregation: 'AVG', order: 'DESC'},\n {tableName: 'slice', columnName: 'id', aggregation: 'COUNT', order: 'DESC'}\n ];\n\n globals.dispatch(Actions.addNewPivotTable({\n name: 'Pivot Table - Slices',\n pivotTableId: SLICE_AGGREGATION_PIVOT_TABLE_ID,\n selectedPivots,\n selectedAggregations,\n traceTime: {startSec, endSec},\n selectedTrackIds\n }));\n\n globals.dispatch(Actions.setPivotTableRequest(\n {pivotTableId: SLICE_AGGREGATION_PIVOT_TABLE_ID, action: 'QUERY'}));\n}\n\nexport class SliceAggregationController extends AggregationController {\n async createAggregateView(engine: Engine, area: Area) {\n await engine.query(`drop view if exists ${this.kind};`);\n\n const selectedTrackIds = [];\n for (const trackId of area.tracks) {\n const track = globals.state.tracks[trackId];\n // Track will be undefined for track groups.\n if (track !== undefined) {\n if (track.kind === SLICE_TRACK_KIND) {\n selectedTrackIds.push((track.config as SliceConfig).trackId);\n }\n if (track.kind === ASYNC_SLICE_TRACK_KIND) {\n const config = track.config as AsyncSliceConfig;\n for (const id of config.trackIds) {\n selectedTrackIds.push(id);\n }\n }\n }\n }\n\n if (selectedTrackIds.length === 0) return false;\n\n if (PIVOT_TABLE_FLAG.get()) {\n addPivotTableOnAreaSelection(\n selectedTrackIds, area.startSec, area.endSec);\n }\n\n const query = `create view ${this.kind} as\n SELECT\n name,\n sum(dur) AS total_dur,\n sum(dur)/count(1) as avg_dur,\n count(1) as occurrences\n FROM slices\n WHERE track_id IN (${selectedTrackIds}) AND\n ts + dur > ${toNs(area.startSec)} AND\n ts < ${toNs(area.endSec)} group by name`;\n\n await engine.query(query);\n return true;\n }\n\n getTabName() {\n return 'Slices';\n }\n\n async getExtra() {}\n\n getDefaultSorting(): Sorting {\n return {column: 'total_dur', direction: 'DESC'};\n }\n\n getColumnDefinitions(): ColumnDef[] {\n return [\n {\n title: 'Name',\n kind: 'STRING',\n columnConstructor: Uint16Array,\n columnId: 'name',\n },\n {\n title: 'Wall duration (ms)',\n kind: 'TIMESTAMP_NS',\n columnConstructor: Float64Array,\n columnId: 'total_dur',\n sum: true\n },\n {\n title: 'Avg Wall duration (ms)',\n kind: 'TIMESTAMP_NS',\n columnConstructor: Float64Array,\n columnId: 'avg_dur'\n },\n {\n title: 'Occurrences',\n kind: 'NUMBER',\n columnConstructor: Uint16Array,\n columnId: 'occurrences',\n sum: true\n }\n ];\n }\n}\n","// Copyright (C) 2020 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {ColumnDef, ThreadStateExtra} from '../../common/aggregation_data';\nimport {Engine} from '../../common/engine';\nimport {NUM, NUM_NULL, STR_NULL} from '../../common/query_result';\nimport {Area, Sorting} from '../../common/state';\nimport {translateState} from '../../common/thread_state';\nimport {toNs} from '../../common/time';\nimport {\n Config,\n THREAD_STATE_TRACK_KIND\n} from '../../tracks/thread_state/common';\nimport {globals} from '../globals';\n\nimport {AggregationController} from './aggregation_controller';\n\nexport class ThreadAggregationController extends AggregationController {\n private utids?: number[];\n\n setThreadStateUtids(tracks: string[]) {\n this.utids = [];\n for (const trackId of tracks) {\n const track = globals.state.tracks[trackId];\n // Track will be undefined for track groups.\n if (track !== undefined && track.kind === THREAD_STATE_TRACK_KIND) {\n this.utids.push((track.config as Config).utid);\n }\n }\n }\n\n async createAggregateView(engine: Engine, area: Area) {\n await engine.query(`drop view if exists ${this.kind};`);\n this.setThreadStateUtids(area.tracks);\n if (this.utids === undefined || this.utids.length === 0) return false;\n\n const query = `\n create view ${this.kind} as\n SELECT\n process.name as process_name,\n pid,\n thread.name as thread_name,\n tid,\n state || ',' || IFNULL(io_wait, 'NULL') as concat_state,\n sum(dur) AS total_dur,\n sum(dur)/count(1) as avg_dur,\n count(1) as occurrences\n FROM process\n JOIN thread USING(upid)\n JOIN thread_state USING(utid)\n WHERE utid IN (${this.utids}) AND\n thread_state.ts + thread_state.dur > ${toNs(area.startSec)} AND\n thread_state.ts < ${toNs(area.endSec)}\n GROUP BY utid, concat_state\n `;\n\n await engine.query(query);\n return true;\n }\n\n async getExtra(engine: Engine, area: Area): Promise<ThreadStateExtra|void> {\n this.setThreadStateUtids(area.tracks);\n if (this.utids === undefined || this.utids.length === 0) return;\n\n const query =\n `select state, io_wait as ioWait, sum(dur) as totalDur from process\n JOIN thread USING(upid)\n JOIN thread_state USING(utid)\n WHERE utid IN (${this.utids}) AND thread_state.ts + thread_state.dur > ${\n toNs(area.startSec)} AND\n thread_state.ts < ${toNs(area.endSec)}\n GROUP BY state, io_wait`;\n const result = await engine.query(query);\n\n const it = result.iter({\n state: STR_NULL,\n ioWait: NUM_NULL,\n totalDur: NUM,\n });\n\n const summary: ThreadStateExtra = {\n kind: 'THREAD_STATE',\n states: [],\n values: new Float64Array(result.numRows()),\n totalMs: 0\n };\n summary.totalMs = 0;\n for (let i = 0; it.valid(); ++i, it.next()) {\n const state = it.state == null ? undefined : it.state;\n const ioWait = it.ioWait === null ? undefined : it.ioWait > 0;\n summary.states.push(translateState(state, ioWait));\n const ms = it.totalDur / 1000000;\n summary.values[i] = ms;\n summary.totalMs += ms;\n }\n return summary;\n }\n\n getColumnDefinitions(): ColumnDef[] {\n return [\n {\n title: 'Process',\n kind: 'STRING',\n columnConstructor: Uint16Array,\n columnId: 'process_name',\n },\n {\n title: 'PID',\n kind: 'NUMBER',\n columnConstructor: Uint16Array,\n columnId: 'pid'\n },\n {\n title: 'Thread',\n kind: 'STRING',\n columnConstructor: Uint16Array,\n columnId: 'thread_name'\n },\n {\n title: 'TID',\n kind: 'NUMBER',\n columnConstructor: Uint16Array,\n columnId: 'tid'\n },\n {\n title: 'State',\n kind: 'STATE',\n columnConstructor: Uint16Array,\n columnId: 'concat_state'\n },\n {\n title: 'Wall duration (ms)',\n kind: 'TIMESTAMP_NS',\n columnConstructor: Float64Array,\n columnId: 'total_dur',\n sum: true\n },\n {\n title: 'Avg Wall duration (ms)',\n kind: 'TIMESTAMP_NS',\n columnConstructor: Float64Array,\n columnId: 'avg_dur'\n },\n {\n title: 'Occurrences',\n kind: 'NUMBER',\n columnConstructor: Uint16Array,\n columnId: 'occurrences',\n sum: true\n }\n ];\n }\n\n getTabName() {\n return 'Thread States';\n }\n\n getDefaultSorting(): Sorting {\n return {column: 'total_dur', direction: 'DESC'};\n }\n}\n","// Copyright (C) 2020 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {Engine} from '../common/engine';\nimport {NUM, STR} from '../common/query_result';\nimport {CallsiteInfo, CpuProfileSampleSelection} from '../common/state';\nimport {CpuProfileDetails} from '../frontend/globals';\nimport {publishCpuProfileDetails} from '../frontend/publish';\n\nimport {Controller} from './controller';\nimport {globals} from './globals';\n\nexport interface CpuProfileControllerArgs {\n engine: Engine;\n}\n\nexport class CpuProfileController extends Controller<'main'> {\n private lastSelectedSample?: CpuProfileSampleSelection;\n private requestingData = false;\n private queuedRunRequest = false;\n\n constructor(private args: CpuProfileControllerArgs) {\n super('main');\n }\n\n run() {\n const selection = globals.state.currentSelection;\n if (!selection || selection.kind !== 'CPU_PROFILE_SAMPLE') {\n return;\n }\n\n const selectedSample = selection as CpuProfileSampleSelection;\n if (!this.shouldRequestData(selectedSample)) {\n return;\n }\n\n if (this.requestingData) {\n this.queuedRunRequest = true;\n return;\n }\n\n this.requestingData = true;\n publishCpuProfileDetails({});\n this.lastSelectedSample = this.copyCpuProfileSample(selection);\n\n this.getSampleData(selectedSample.id)\n .then(sampleData => {\n if (sampleData !== undefined && selectedSample &&\n this.lastSelectedSample &&\n this.lastSelectedSample.id === selectedSample.id) {\n const cpuProfileDetails: CpuProfileDetails = {\n id: selectedSample.id,\n ts: selectedSample.ts,\n utid: selectedSample.utid,\n stack: sampleData,\n };\n\n publishCpuProfileDetails(cpuProfileDetails);\n }\n })\n .finally(() => {\n this.requestingData = false;\n if (this.queuedRunRequest) {\n this.queuedRunRequest = false;\n this.run();\n }\n });\n }\n\n private copyCpuProfileSample(cpuProfileSample: CpuProfileSampleSelection):\n CpuProfileSampleSelection {\n return {\n kind: cpuProfileSample.kind,\n id: cpuProfileSample.id,\n utid: cpuProfileSample.utid,\n ts: cpuProfileSample.ts,\n };\n }\n\n private shouldRequestData(selection: CpuProfileSampleSelection) {\n return this.lastSelectedSample === undefined ||\n (this.lastSelectedSample !== undefined &&\n (this.lastSelectedSample.id !== selection.id));\n }\n\n async getSampleData(id: number) {\n // The goal of the query is to get all the frames of\n // the callstack at the callsite given by |id|. To do this, it does\n // the following:\n // 1. Gets the leaf callsite id for the sample given by |id|.\n // 2. For this callsite, get all the frame ids and depths\n // for the frame and all ancestors in the callstack.\n // 3. For each frame, get the mapping name (i.e. library which\n // contains the frame).\n // 4. Symbolize each frame using the symbol table if possible.\n // 5. Sort the query by the depth of the callstack frames.\n const sampleQuery = `\n SELECT\n samples.id as id,\n IFNULL(\n (\n SELECT name\n FROM stack_profile_symbol symbol\n WHERE symbol.symbol_set_id = spf.symbol_set_id\n LIMIT 1\n ),\n spf.name\n ) AS name,\n spm.name AS mapping\n FROM cpu_profile_stack_sample AS samples\n LEFT JOIN (\n SELECT\n id,\n frame_id,\n depth\n FROM stack_profile_callsite\n UNION ALL\n SELECT\n leaf.id AS id,\n callsite.frame_id AS frame_id,\n callsite.depth AS depth\n FROM stack_profile_callsite leaf\n JOIN experimental_ancestor_stack_profile_callsite(leaf.id) AS callsite\n ) AS callsites\n ON samples.callsite_id = callsites.id\n LEFT JOIN stack_profile_frame AS spf\n ON callsites.frame_id = spf.id\n LEFT JOIN stack_profile_mapping AS spm\n ON spf.mapping = spm.id\n WHERE samples.id = ${id}\n ORDER BY callsites.depth;\n `;\n\n const callsites = await this.args.engine.query(sampleQuery);\n\n if (callsites.numRows() === 0) {\n return undefined;\n }\n\n const it = callsites.iter({\n id: NUM,\n name: STR,\n mapping: STR,\n });\n\n const sampleData: CallsiteInfo[] = new Array();\n for (; it.valid(); it.next()) {\n sampleData.push({\n id: it.id,\n totalSize: 0,\n depth: 0,\n parentId: 0,\n name: it.name,\n selfSize: 0,\n mapping: it.mapping,\n merged: false,\n highlighted: false\n });\n }\n\n return sampleData;\n }\n}\n","// Copyright (C) 2019 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {Actions} from '../common/actions';\nimport {Engine} from '../common/engine';\nimport {\n ALLOC_SPACE_MEMORY_ALLOCATED_KEY,\n DEFAULT_VIEWING_OPTION,\n expandCallsites,\n findRootSize,\n mergeCallsites,\n OBJECTS_ALLOCATED_KEY,\n OBJECTS_ALLOCATED_NOT_FREED_KEY,\n PERF_SAMPLES_KEY,\n SPACE_MEMORY_ALLOCATED_NOT_FREED_KEY\n} from '../common/flamegraph_util';\nimport {NUM, STR} from '../common/query_result';\nimport {CallsiteInfo, FlamegraphState} from '../common/state';\nimport {toNs} from '../common/time';\nimport {\n FlamegraphDetails,\n globals as frontendGlobals\n} from '../frontend/globals';\nimport {publishFlamegraphDetails} from '../frontend/publish';\nimport {\n Config as PerfSampleConfig,\n PERF_SAMPLES_PROFILE_TRACK_KIND\n} from '../tracks/perf_samples_profile/common';\n\nimport {AreaSelectionHandler} from './area_selection_handler';\nimport {Controller} from './controller';\nimport {globals} from './globals';\n\nexport interface FlamegraphControllerArgs {\n engine: Engine;\n}\nconst MIN_PIXEL_DISPLAYED = 1;\n\nclass TablesCache {\n private engine: Engine;\n private cache: Map<string, string>;\n private prefix: string;\n private tableId: number;\n private cacheSizeLimit: number;\n\n constructor(engine: Engine, prefix: string) {\n this.engine = engine;\n this.cache = new Map<string, string>();\n this.prefix = prefix;\n this.tableId = 0;\n this.cacheSizeLimit = 10;\n }\n\n async getTableName(query: string): Promise<string> {\n let tableName = this.cache.get(query);\n if (tableName === undefined) {\n // TODO(hjd): This should be LRU.\n if (this.cache.size > this.cacheSizeLimit) {\n for (const name of this.cache.values()) {\n await this.engine.query(`drop table ${name}`);\n }\n this.cache.clear();\n }\n tableName = `${this.prefix}_${this.tableId++}`;\n await this.engine.query(\n `create temp table if not exists ${tableName} as ${query}`);\n this.cache.set(query, tableName);\n }\n return tableName;\n }\n}\n\nexport class FlamegraphController extends Controller<'main'> {\n private flamegraphDatasets: Map<string, CallsiteInfo[]> = new Map();\n private lastSelectedFlamegraphState?: FlamegraphState;\n private requestingData = false;\n private queuedRequest = false;\n private flamegraphDetails: FlamegraphDetails = {};\n private areaSelectionHandler: AreaSelectionHandler;\n private cache: TablesCache;\n\n constructor(private args: FlamegraphControllerArgs) {\n super('main');\n this.cache = new TablesCache(args.engine, 'grouped_callsites');\n this.areaSelectionHandler = new AreaSelectionHandler();\n }\n\n run() {\n const [hasAreaChanged, area] = this.areaSelectionHandler.getAreaChange();\n if (hasAreaChanged) {\n const upids = [];\n if (!area) {\n publishFlamegraphDetails(\n {...frontendGlobals.flamegraphDetails, isInAreaSelection: false});\n return;\n }\n for (const trackId of area.tracks) {\n const trackState = frontendGlobals.state.tracks[trackId];\n if (!trackState ||\n trackState.kind !== PERF_SAMPLES_PROFILE_TRACK_KIND) {\n continue;\n }\n upids.push((trackState.config as PerfSampleConfig).upid);\n }\n if (upids.length === 0) {\n publishFlamegraphDetails(\n {...frontendGlobals.flamegraphDetails, isInAreaSelection: false});\n return;\n }\n frontendGlobals.dispatch(Actions.openFlamegraph({\n upids,\n startNs: toNs(area.startSec),\n endNs: toNs(area.endSec),\n type: 'perf',\n viewingOption: PERF_SAMPLES_KEY\n }));\n }\n const selection = frontendGlobals.state.currentFlamegraphState;\n if (!selection || !this.shouldRequestData(selection)) {\n return;\n }\n if (this.requestingData) {\n this.queuedRequest = true;\n return;\n }\n this.requestingData = true;\n\n this.assembleFlamegraphDetails(selection, hasAreaChanged);\n }\n\n private async assembleFlamegraphDetails(\n selection: FlamegraphState, hasAreaChanged: boolean) {\n const selectedFlamegraphState = {...selection};\n const flamegraphMetadata = await this.getFlamegraphMetadata(\n selection.type,\n selectedFlamegraphState.startNs,\n selectedFlamegraphState.endNs,\n selectedFlamegraphState.upids);\n if (flamegraphMetadata !== undefined) {\n Object.assign(this.flamegraphDetails, flamegraphMetadata);\n }\n\n // TODO(hjd): Clean this up.\n if (this.lastSelectedFlamegraphState &&\n this.lastSelectedFlamegraphState.focusRegex !== selection.focusRegex) {\n this.flamegraphDatasets.clear();\n }\n\n this.lastSelectedFlamegraphState = {...selection};\n\n const expandedId = selectedFlamegraphState.expandedCallsite ?\n selectedFlamegraphState.expandedCallsite.id :\n -1;\n const rootSize = selectedFlamegraphState.expandedCallsite === undefined ?\n undefined :\n selectedFlamegraphState.expandedCallsite.totalSize;\n\n const key = `${selectedFlamegraphState.upids};${\n selectedFlamegraphState.startNs};${selectedFlamegraphState.endNs}`;\n\n try {\n const flamegraphData = await this.getFlamegraphData(\n key,\n selectedFlamegraphState.viewingOption ?\n selectedFlamegraphState.viewingOption :\n DEFAULT_VIEWING_OPTION,\n selection.startNs,\n selection.endNs,\n selectedFlamegraphState.upids,\n selectedFlamegraphState.type,\n selectedFlamegraphState.focusRegex);\n if (flamegraphData !== undefined && selection &&\n selection.kind === selectedFlamegraphState.kind &&\n selection.startNs === selectedFlamegraphState.startNs &&\n selection.endNs === selectedFlamegraphState.endNs) {\n const expandedFlamegraphData =\n expandCallsites(flamegraphData, expandedId);\n this.prepareAndMergeCallsites(\n expandedFlamegraphData,\n this.lastSelectedFlamegraphState.viewingOption,\n hasAreaChanged,\n rootSize,\n this.lastSelectedFlamegraphState.expandedCallsite);\n }\n } finally {\n this.requestingData = false;\n if (this.queuedRequest) {\n this.queuedRequest = false;\n this.run();\n }\n }\n }\n\n private shouldRequestData(selection: FlamegraphState) {\n return selection.kind === 'FLAMEGRAPH_STATE' &&\n (this.lastSelectedFlamegraphState === undefined ||\n (this.lastSelectedFlamegraphState.startNs !== selection.startNs ||\n this.lastSelectedFlamegraphState.endNs !== selection.endNs ||\n this.lastSelectedFlamegraphState.type !== selection.type ||\n !FlamegraphController.areArraysEqual(\n this.lastSelectedFlamegraphState.upids, selection.upids) ||\n this.lastSelectedFlamegraphState.viewingOption !==\n selection.viewingOption ||\n this.lastSelectedFlamegraphState.focusRegex !==\n selection.focusRegex ||\n this.lastSelectedFlamegraphState.expandedCallsite !==\n selection.expandedCallsite));\n }\n\n private prepareAndMergeCallsites(\n flamegraphData: CallsiteInfo[],\n viewingOption: string|undefined = DEFAULT_VIEWING_OPTION,\n hasAreaChanged: boolean, rootSize?: number,\n expandedCallsite?: CallsiteInfo) {\n this.flamegraphDetails.flamegraph = mergeCallsites(\n flamegraphData, this.getMinSizeDisplayed(flamegraphData, rootSize));\n this.flamegraphDetails.expandedCallsite = expandedCallsite;\n this.flamegraphDetails.viewingOption = viewingOption;\n this.flamegraphDetails.isInAreaSelection = hasAreaChanged;\n publishFlamegraphDetails(this.flamegraphDetails);\n }\n\n async getFlamegraphData(\n baseKey: string, viewingOption: string, startNs: number, endNs: number,\n upids: number[], type: string,\n focusRegex: string): Promise<CallsiteInfo[]> {\n let currentData: CallsiteInfo[];\n const key = `${baseKey}-${viewingOption}`;\n if (this.flamegraphDatasets.has(key)) {\n currentData = this.flamegraphDatasets.get(key)!;\n } else {\n // TODO(hjd): Show loading state.\n\n // Collecting data for drawing flamegraph for selected profile.\n // Data needs to be in following format:\n // id, name, parent_id, depth, total_size\n const tableName = await this.prepareViewsAndTables(\n startNs, endNs, upids, type, focusRegex);\n currentData = await this.getFlamegraphDataFromTables(\n tableName, viewingOption, focusRegex);\n this.flamegraphDatasets.set(key, currentData);\n }\n return currentData;\n }\n\n async getFlamegraphDataFromTables(\n tableName: string, viewingOption = DEFAULT_VIEWING_OPTION,\n focusRegex: string) {\n let orderBy = '';\n let totalColumnName: 'cumulativeSize'|'cumulativeAllocSize'|\n 'cumulativeCount'|'cumulativeAllocCount' = 'cumulativeSize';\n let selfColumnName: 'size'|'count' = 'size';\n // TODO(fmayer): Improve performance so this is no longer necessary.\n // Alternatively consider collapsing frames of the same label.\n const maxDepth = 100;\n switch (viewingOption) {\n case ALLOC_SPACE_MEMORY_ALLOCATED_KEY:\n orderBy = `where cumulative_alloc_size > 0 and depth < ${\n maxDepth} order by depth, parent_id,\n cumulative_alloc_size desc, name`;\n totalColumnName = 'cumulativeAllocSize';\n selfColumnName = 'size';\n break;\n case OBJECTS_ALLOCATED_NOT_FREED_KEY:\n orderBy = `where cumulative_count > 0 and depth < ${\n maxDepth} order by depth, parent_id,\n cumulative_count desc, name`;\n totalColumnName = 'cumulativeCount';\n selfColumnName = 'count';\n break;\n case OBJECTS_ALLOCATED_KEY:\n orderBy = `where cumulative_alloc_count > 0 and depth < ${\n maxDepth} order by depth, parent_id,\n cumulative_alloc_count desc, name`;\n totalColumnName = 'cumulativeAllocCount';\n selfColumnName = 'count';\n break;\n case PERF_SAMPLES_KEY:\n case SPACE_MEMORY_ALLOCATED_NOT_FREED_KEY:\n orderBy = `where cumulative_size > 0 and depth < ${\n maxDepth} order by depth, parent_id,\n cumulative_size desc, name`;\n totalColumnName = 'cumulativeSize';\n selfColumnName = 'size';\n break;\n default:\n break;\n }\n\n const callsites = await this.args.engine.query(`\n SELECT\n id as hash,\n IFNULL(IFNULL(DEMANGLE(name), name), '[NULL]') as name,\n IFNULL(parent_id, -1) as parentHash,\n depth,\n cumulative_size as cumulativeSize,\n cumulative_alloc_size as cumulativeAllocSize,\n cumulative_count as cumulativeCount,\n cumulative_alloc_count as cumulativeAllocCount,\n map_name as mapping,\n size,\n count,\n IFNULL(source_file, '') as sourceFile,\n IFNULL(line_number, -1) as lineNumber\n from ${tableName} ${orderBy}`);\n\n const flamegraphData: CallsiteInfo[] = [];\n const hashToindex: Map<number, number> = new Map();\n const it = callsites.iter({\n hash: NUM,\n name: STR,\n parentHash: NUM,\n depth: NUM,\n cumulativeSize: NUM,\n cumulativeAllocSize: NUM,\n cumulativeCount: NUM,\n cumulativeAllocCount: NUM,\n mapping: STR,\n sourceFile: STR,\n lineNumber: NUM,\n size: NUM,\n count: NUM,\n });\n for (let i = 0; it.valid(); ++i, it.next()) {\n const hash = it.hash;\n let name = it.name;\n const parentHash = it.parentHash;\n const depth = it.depth;\n const totalSize = it[totalColumnName];\n const selfSize = it[selfColumnName];\n const mapping = it.mapping;\n const highlighted = focusRegex !== '' &&\n name.toLocaleLowerCase().includes(focusRegex.toLocaleLowerCase());\n const parentId =\n hashToindex.has(+parentHash) ? hashToindex.get(+parentHash)! : -1;\n\n let location: string|undefined;\n if (/[a-zA-Z]/i.test(it.sourceFile)) {\n location = it.sourceFile;\n if (it.lineNumber !== -1) {\n location += `:${it.lineNumber}`;\n }\n }\n\n if (depth === maxDepth - 1) {\n name += ' [tree truncated]';\n }\n // Instead of hash, we will store index of callsite in this original array\n // as an id of callsite. That way, we have quicker access to parent and it\n // will stay unique:\n hashToindex.set(hash, i);\n\n flamegraphData.push({\n id: i,\n totalSize,\n depth,\n parentId,\n name,\n selfSize,\n mapping,\n merged: false,\n highlighted,\n location\n });\n }\n return flamegraphData;\n }\n\n private async prepareViewsAndTables(\n startNs: number, endNs: number, upids: number[], type: string,\n focusRegex: string): Promise<string> {\n // Creating unique names for views so we can reuse and not delete them\n // for each marker.\n let focusRegexConditional = '';\n if (focusRegex !== '') {\n focusRegexConditional = `and focus_str = '${focusRegex}'`;\n }\n\n /*\n * TODO(octaviant) this branching should be eliminated for simplicity.\n */\n if (type === 'perf') {\n let upidConditional = `upid = ${upids[0]}`;\n if (upids.length > 1) {\n upidConditional =\n `upid_group = '${FlamegraphController.serializeUpidGroup(upids)}'`;\n }\n return this.cache.getTableName(\n `select id, name, map_name, parent_id, depth, cumulative_size,\n cumulative_alloc_size, cumulative_count, cumulative_alloc_count,\n size, alloc_size, count, alloc_count, source_file, line_number\n from experimental_flamegraph\n where profile_type = '${type}' and ${startNs} <= ts and ts <= ${\n endNs} and ${upidConditional}\n ${focusRegexConditional}`);\n }\n return this.cache.getTableName(\n `select id, name, map_name, parent_id, depth, cumulative_size,\n cumulative_alloc_size, cumulative_count, cumulative_alloc_count,\n size, alloc_size, count, alloc_count, source_file, line_number\n from experimental_flamegraph\n where profile_type = '${type}'\n and ts = ${endNs}\n and upid = ${upids[0]}\n ${focusRegexConditional}`);\n }\n\n getMinSizeDisplayed(flamegraphData: CallsiteInfo[], rootSize?: number):\n number {\n const timeState = globals.state.frontendLocalState.visibleState;\n let width = (timeState.endSec - timeState.startSec) / timeState.resolution;\n // TODO(168048193): Remove screen size hack:\n width = Math.max(width, 800);\n if (rootSize === undefined) {\n rootSize = findRootSize(flamegraphData);\n }\n return MIN_PIXEL_DISPLAYED * rootSize / width;\n }\n\n async getFlamegraphMetadata(\n type: string, startNs: number, endNs: number, upids: number[]) {\n // Don't do anything if selection of the marker stayed the same.\n if ((this.lastSelectedFlamegraphState !== undefined &&\n ((this.lastSelectedFlamegraphState.startNs === startNs &&\n this.lastSelectedFlamegraphState.endNs === endNs &&\n FlamegraphController.areArraysEqual(\n this.lastSelectedFlamegraphState.upids, upids))))) {\n return undefined;\n }\n\n // Collecting data for more information about profile, such as:\n // total memory allocated, memory that is allocated and not freed.\n const upidGroup = FlamegraphController.serializeUpidGroup(upids);\n\n const result = await this.args.engine.query(\n `select pid from process where upid in (${upidGroup})`);\n const it = result.iter({pid: NUM});\n const pids = [];\n for (let i = 0; it.valid(); ++i, it.next()) {\n pids.push(it.pid);\n }\n return {startNs, durNs: endNs - startNs, pids, upids, type};\n }\n\n private static areArraysEqual(a: number[], b: number[]) {\n if (a.length !== b.length) {\n return false;\n }\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n return true;\n }\n\n private static serializeUpidGroup(upids: number[]) {\n return new Array(upids).join();\n }\n}\n","// Copyright (C) 2020 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use size file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {Engine} from '../common/engine';\nimport {featureFlags} from '../common/feature_flags';\nimport {NUM, STR_NULL} from '../common/query_result';\nimport {Area} from '../common/state';\nimport {fromNs, toNs} from '../common/time';\nimport {Flow} from '../frontend/globals';\nimport {publishConnectedFlows, publishSelectedFlows} from '../frontend/publish';\nimport {\n ACTUAL_FRAMES_SLICE_TRACK_KIND,\n Config as ActualConfig\n} from '../tracks/actual_frames/common';\nimport {\n Config as SliceConfig,\n SLICE_TRACK_KIND\n} from '../tracks/chrome_slices/common';\n\nimport {Controller} from './controller';\nimport {globals} from './globals';\n\nexport interface FlowEventsControllerArgs {\n engine: Engine;\n}\n\nconst SHOW_INDIRECT_PRECEDING_FLOWS_FLAG = featureFlags.register({\n id: 'showIndirectPrecedingFlows',\n name: 'Show indirect preceding flows',\n description: 'Show indirect preceding flows (connected through ancestor ' +\n 'slices) when a slice is selected.',\n defaultValue: false,\n});\n\n\nexport class FlowEventsController extends Controller<'main'> {\n private lastSelectedSliceId?: number;\n private lastSelectedArea?: Area;\n private lastSelectedKind: 'CHROME_SLICE'|'AREA'|'NONE' = 'NONE';\n\n constructor(private args: FlowEventsControllerArgs) {\n super('main');\n }\n\n queryFlowEvents(query: string, callback: (flows: Flow[]) => void) {\n this.args.engine.query(query).then(result => {\n const flows: Flow[] = [];\n const it = result.iter({\n beginSliceId: NUM,\n beginTrackId: NUM,\n beginSliceName: STR_NULL,\n beginSliceCategory: STR_NULL,\n beginSliceStartTs: NUM,\n beginSliceEndTs: NUM,\n beginDepth: NUM,\n endSliceId: NUM,\n endTrackId: NUM,\n endSliceName: STR_NULL,\n endSliceCategory: STR_NULL,\n endSliceStartTs: NUM,\n endSliceEndTs: NUM,\n endDepth: NUM,\n name: STR_NULL,\n category: STR_NULL,\n id: NUM,\n });\n for (; it.valid(); it.next()) {\n const beginSliceId = it.beginSliceId;\n const beginTrackId = it.beginTrackId;\n const beginSliceName =\n it.beginSliceName === null ? 'NULL' : it.beginSliceName;\n const beginSliceCategory =\n it.beginSliceCategory === null ? 'NULL' : it.beginSliceCategory;\n const beginSliceStartTs = fromNs(it.beginSliceStartTs);\n const beginSliceEndTs = fromNs(it.beginSliceEndTs);\n const beginDepth = it.beginDepth;\n\n const endSliceId = it.endSliceId;\n const endTrackId = it.endTrackId;\n const endSliceName =\n it.endSliceName === null ? 'NULL' : it.endSliceName;\n const endSliceCategory =\n it.endSliceCategory === null ? 'NULL' : it.endSliceCategory;\n const endSliceStartTs = fromNs(it.endSliceStartTs);\n const endSliceEndTs = fromNs(it.endSliceEndTs);\n const endDepth = it.endDepth;\n\n // Category and name present only in version 1 flow events\n // It is most likelly NULL for all other versions\n const category = it.category === null ? undefined : it.category;\n const name = it.name === null ? undefined : it.name;\n const id = it.id;\n\n flows.push({\n id,\n begin: {\n trackId: beginTrackId,\n sliceId: beginSliceId,\n sliceName: beginSliceName,\n sliceCategory: beginSliceCategory,\n sliceStartTs: beginSliceStartTs,\n sliceEndTs: beginSliceEndTs,\n depth: beginDepth\n },\n end: {\n trackId: endTrackId,\n sliceId: endSliceId,\n sliceName: endSliceName,\n sliceCategory: endSliceCategory,\n sliceStartTs: endSliceStartTs,\n sliceEndTs: endSliceEndTs,\n depth: endDepth\n },\n category,\n name\n });\n }\n callback(flows);\n });\n }\n\n sliceSelected(sliceId: number) {\n if (this.lastSelectedKind === 'CHROME_SLICE' &&\n this.lastSelectedSliceId === sliceId) {\n return;\n }\n this.lastSelectedSliceId = sliceId;\n this.lastSelectedKind = 'CHROME_SLICE';\n\n const connectedFlows = SHOW_INDIRECT_PRECEDING_FLOWS_FLAG.get() ?\n `(\n select * from directly_connected_flow(${sliceId})\n union\n select * from preceding_flow(${sliceId})\n )` :\n `directly_connected_flow(${sliceId})`;\n\n const query = `\n select\n f.slice_out as beginSliceId,\n t1.track_id as beginTrackId,\n t1.name as beginSliceName,\n t1.category as beginSliceCategory,\n t1.ts as beginSliceStartTs,\n (t1.ts+t1.dur) as beginSliceEndTs,\n t1.depth as beginDepth,\n f.slice_in as endSliceId,\n t2.track_id as endTrackId,\n t2.name as endSliceName,\n t2.category as endSliceCategory,\n t2.ts as endSliceStartTs,\n (t2.ts+t2.dur) as endSliceEndTs,\n t2.depth as endDepth,\n extract_arg(f.arg_set_id, 'cat') as category,\n extract_arg(f.arg_set_id, 'name') as name,\n f.id as id\n from ${connectedFlows} f\n join slice t1 on f.slice_out = t1.slice_id\n join slice t2 on f.slice_in = t2.slice_id\n `;\n this.queryFlowEvents(\n query, (flows: Flow[]) => publishConnectedFlows(flows));\n }\n\n areaSelected(areaId: string) {\n const area = globals.state.areas[areaId];\n if (this.lastSelectedKind === 'AREA' && this.lastSelectedArea &&\n this.lastSelectedArea.tracks.join(',') === area.tracks.join(',') &&\n this.lastSelectedArea.endSec === area.endSec &&\n this.lastSelectedArea.startSec === area.startSec) {\n return;\n }\n\n this.lastSelectedArea = area;\n this.lastSelectedKind = 'AREA';\n\n const trackIds: number[] = [];\n\n for (const uiTrackId of area.tracks) {\n const track = globals.state.tracks[uiTrackId];\n if (track === undefined) {\n continue;\n }\n if (track.kind === SLICE_TRACK_KIND) {\n trackIds.push((track.config as SliceConfig).trackId);\n } else if (track.kind === ACTUAL_FRAMES_SLICE_TRACK_KIND) {\n const actualConfig = track.config as ActualConfig;\n for (const trackId of actualConfig.trackIds) {\n trackIds.push(trackId);\n }\n }\n }\n\n const tracks = `(${trackIds.join(',')})`;\n\n const startNs = toNs(area.startSec);\n const endNs = toNs(area.endSec);\n\n const query = `\n select\n f.slice_out as beginSliceId,\n t1.track_id as beginTrackId,\n t1.name as beginSliceName,\n t1.category as beginSliceCategory,\n t1.ts as beginSliceStartTs,\n (t1.ts+t1.dur) as beginSliceEndTs,\n t1.depth as beginDepth,\n f.slice_in as endSliceId,\n t2.track_id as endTrackId,\n t2.name as endSliceName,\n t2.category as endSliceCategory,\n t2.ts as endSliceStartTs,\n (t2.ts+t2.dur) as endSliceEndTs,\n t2.depth as endDepth,\n extract_arg(f.arg_set_id, 'cat') as category,\n extract_arg(f.arg_set_id, 'name') as name,\n f.id as id\n from flow f\n join slice t1 on f.slice_out = t1.slice_id\n join slice t2 on f.slice_in = t2.slice_id\n where\n (t1.track_id in ${tracks}\n and (t1.ts+t1.dur <= ${endNs} and t1.ts+t1.dur >= ${startNs}))\n or\n (t2.track_id in ${tracks}\n and (t2.ts <= ${endNs} and t2.ts >= ${startNs}))\n `;\n this.queryFlowEvents(query, (flows: Flow[]) => publishSelectedFlows(flows));\n }\n\n refreshVisibleFlows() {\n const selection = globals.state.currentSelection;\n if (!selection) {\n this.lastSelectedKind = 'NONE';\n publishConnectedFlows([]);\n publishSelectedFlows([]);\n return;\n }\n\n // TODO(b/155483804): This is a hack as annotation slices don't contain\n // flows. We should tidy this up when fixing this bug.\n if (selection && selection.kind === 'CHROME_SLICE' &&\n selection.table !== 'annotation') {\n this.sliceSelected(selection.id);\n } else {\n publishConnectedFlows([]);\n }\n\n if (selection && selection.kind === 'AREA') {\n this.areaSelected(selection.areaId);\n } else {\n publishSelectedFlows([]);\n }\n }\n\n run() {\n this.refreshVisibleFlows();\n }\n}\n","// Copyright (C) 2019 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {LoadingTracker} from '../common/engine';\nimport {publishLoading} from '../frontend/publish';\n\n// Used to keep track of whether the engine is currently querying.\nexport class LoadingManager implements LoadingTracker {\n private static _instance: LoadingManager;\n private numQueuedQueries = 0;\n private numLastUpdate = 0;\n\n static get getInstance(): LoadingManager {\n return this._instance || (this._instance = new this());\n }\n\n beginLoading() {\n this.update(1);\n }\n\n endLoading() {\n this.update(-1);\n }\n\n private update(change: number) {\n this.numQueuedQueries += change;\n if (this.numQueuedQueries === 0 ||\n Math.abs(this.numLastUpdate - this.numQueuedQueries) > 2) {\n this.numLastUpdate = this.numQueuedQueries;\n publishLoading(this.numQueuedQueries);\n }\n }\n}\n","// Copyright (C) 2019 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {Engine} from '../common/engine';\nimport {\n LogBounds,\n LogBoundsKey,\n LogEntries,\n LogEntriesKey,\n LogExistsKey\n} from '../common/logs';\nimport {NUM, STR} from '../common/query_result';\nimport {fromNs, TimeSpan, toNsCeil, toNsFloor} from '../common/time';\nimport {publishTrackData} from '../frontend/publish';\n\nimport {Controller} from './controller';\nimport {App} from './globals';\n\nasync function updateLogBounds(\n engine: Engine, span: TimeSpan): Promise<LogBounds> {\n const vizStartNs = toNsFloor(span.start);\n const vizEndNs = toNsCeil(span.end);\n\n const countResult = await engine.query(`\n select\n ifnull(min(ts), 0) as minTs,\n ifnull(max(ts), 0) as maxTs,\n count(ts) as countTs\n from android_logs where ts >= ${vizStartNs} and ts <= ${vizEndNs}`);\n\n const countRow = countResult.firstRow({minTs: NUM, maxTs: NUM, countTs: NUM});\n\n const firstRowNs = countRow.minTs;\n const lastRowNs = countRow.maxTs;\n const total = countRow.countTs;\n\n const minResult = await engine.query(`\n select ifnull(max(ts), 0) as maxTs from android_logs where ts < ${\n vizStartNs}`);\n const startNs = minResult.firstRow({maxTs: NUM}).maxTs;\n\n const maxResult = await engine.query(`\n select ifnull(min(ts), 0) as minTs from android_logs where ts > ${\n vizEndNs}`);\n const endNs = maxResult.firstRow({minTs: NUM}).minTs;\n\n const trace = await engine.getTraceTimeBounds();\n const startTs = startNs ? fromNs(startNs) : trace.start;\n const endTs = endNs ? fromNs(endNs) : trace.end;\n const firstRowTs = firstRowNs ? fromNs(firstRowNs) : endTs;\n const lastRowTs = lastRowNs ? fromNs(lastRowNs) : startTs;\n return {\n startTs,\n endTs,\n firstRowTs,\n lastRowTs,\n total,\n };\n}\n\nasync function updateLogEntries(\n engine: Engine, span: TimeSpan, pagination: Pagination):\n Promise<LogEntries> {\n const vizStartNs = toNsFloor(span.start);\n const vizEndNs = toNsCeil(span.end);\n const vizSqlBounds = `ts >= ${vizStartNs} and ts <= ${vizEndNs}`;\n\n const rowsResult = await engine.query(`\n select\n ts,\n prio,\n ifnull(tag, '[NULL]') as tag,\n ifnull(msg, '[NULL]') as msg\n from android_logs\n where ${vizSqlBounds}\n order by ts\n limit ${pagination.start}, ${pagination.count}\n `);\n\n const timestamps = [];\n const priorities = [];\n const tags = [];\n const messages = [];\n\n const it = rowsResult.iter({ts: NUM, prio: NUM, tag: STR, msg: STR});\n for (; it.valid(); it.next()) {\n timestamps.push(it.ts);\n priorities.push(it.prio);\n tags.push(it.tag);\n messages.push(it.msg);\n }\n\n return {\n offset: pagination.start,\n timestamps,\n priorities,\n tags,\n messages,\n };\n}\n\nclass Pagination {\n private _offset: number;\n private _count: number;\n\n constructor(offset: number, count: number) {\n this._offset = offset;\n this._count = count;\n }\n\n get start() {\n return this._offset;\n }\n\n get count() {\n return this._count;\n }\n\n get end() {\n return this._offset + this._count;\n }\n\n contains(other: Pagination): boolean {\n return this.start <= other.start && other.end <= this.end;\n }\n\n grow(n: number): Pagination {\n const newStart = Math.max(0, this.start - n / 2);\n const newCount = this.count + n;\n return new Pagination(newStart, newCount);\n }\n}\n\nexport interface LogsControllerArgs {\n engine: Engine;\n app: App;\n}\n\n/**\n * LogsController looks at two parts of the state:\n * 1. The visible trace window\n * 2. The requested offset and count the log lines to display\n * And keeps two bits of published information up to date:\n * 1. The total number of log messages in visible range\n * 2. The logs lines that should be displayed\n */\nexport class LogsController extends Controller<'main'> {\n private app: App;\n private engine: Engine;\n private span: TimeSpan;\n private pagination: Pagination;\n private hasLogs = false;\n\n constructor(args: LogsControllerArgs) {\n super('main');\n this.app = args.app;\n this.engine = args.engine;\n this.span = new TimeSpan(0, 10);\n this.pagination = new Pagination(0, 0);\n this.hasAnyLogs().then(exists => {\n this.hasLogs = exists;\n publishTrackData({\n id: LogExistsKey,\n data: {\n exists,\n },\n });\n });\n }\n\n async hasAnyLogs() {\n const result = await this.engine.query(`\n select count(*) as cnt from android_logs\n `);\n return result.firstRow({cnt: NUM}).cnt > 0;\n }\n\n run() {\n if (!this.hasLogs) return;\n\n const traceTime = this.app.state.frontendLocalState.visibleState;\n const newSpan = new TimeSpan(traceTime.startSec, traceTime.endSec);\n const oldSpan = this.span;\n\n const pagination = this.app.state.logsPagination;\n // This can occur when loading old traces.\n // TODO(hjd): Fix the problem of accessing state from a previous version of\n // the UI in a general way.\n if (pagination === undefined) {\n return;\n }\n\n const {offset, count} = pagination;\n const requestedPagination = new Pagination(offset, count);\n const oldPagination = this.pagination;\n\n const needSpanUpdate = !oldSpan.equals(newSpan);\n const needPaginationUpdate = !oldPagination.contains(requestedPagination);\n\n // TODO(hjd): We could waste a lot of time queueing useless updates here.\n // We should avoid enqueuing a request when one is in progress.\n if (needSpanUpdate) {\n this.span = newSpan;\n updateLogBounds(this.engine, newSpan).then(data => {\n if (!newSpan.equals(this.span)) return;\n publishTrackData({\n id: LogBoundsKey,\n data,\n });\n });\n }\n\n // TODO(hjd): We could waste a lot of time queueing useless updates here.\n // We should avoid enqueuing a request when one is in progress.\n if (needSpanUpdate || needPaginationUpdate) {\n this.pagination = requestedPagination.grow(100);\n\n updateLogEntries(this.engine, newSpan, this.pagination).then(data => {\n if (!this.pagination.contains(requestedPagination)) return;\n publishTrackData({\n id: LogEntriesKey,\n data,\n });\n });\n }\n\n return [];\n }\n}\n","// Copyright (C) 2020 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {Actions} from '../common/actions';\nimport {Engine} from '../common/engine';\nimport {QueryError, STR} from '../common/query_result';\nimport {publishMetricResult} from '../frontend/publish';\n\nimport {Controller} from './controller';\nimport {globals} from './globals';\n\nexport class MetricsController extends Controller<'main'> {\n private engine: Engine;\n private currentlyRunningMetric?: string;\n\n constructor(args: {engine: Engine}) {\n super('main');\n this.engine = args.engine;\n this.setup().finally(() => {\n this.run();\n });\n }\n\n private async getMetricNames() {\n const metrics = [];\n const result = await this.engine.query('select name from trace_metrics');\n const it = result.iter({name: STR});\n for (; it.valid(); it.next()) {\n metrics.push(it.name);\n }\n return metrics;\n }\n\n private async setup() {\n const metrics = await this.getMetricNames();\n globals.dispatch(Actions.setAvailableMetrics({metrics}));\n }\n\n private async computeMetric(name: string) {\n if (name === this.currentlyRunningMetric) return;\n this.currentlyRunningMetric = name;\n try {\n const metricResult = await this.engine.computeMetric([name]);\n publishMetricResult({\n name,\n resultString: metricResult.metricsAsPrototext,\n });\n } catch (e) {\n if (e instanceof QueryError) {\n // Reroute error to be displated differently when metric is run through\n // metric page.\n publishMetricResult({name, error: e.message});\n } else {\n throw e;\n }\n }\n globals.dispatch(Actions.resetMetricRequest({name}));\n this.currentlyRunningMetric = undefined;\n }\n\n run() {\n const {requestedMetric} = globals.state.metrics;\n if (!requestedMetric) return;\n this.computeMetric(requestedMetric);\n }\n}\n","// Copyright (C) 2018 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {Engine} from './engine';\nimport {Row} from './query_result';\n\nconst MAX_DISPLAY_ROWS = 10000;\n\nexport interface QueryResponse {\n id: string;\n query: string;\n error?: string;\n totalRowCount: number;\n durationMs: number;\n columns: string[];\n rows: Row[];\n}\n\nexport async function runQuery(\n queryId: string, sqlQuery: string, engine: Engine): Promise<QueryResponse> {\n const startMs = performance.now();\n const queryRes = engine.query(sqlQuery);\n\n // TODO(primiano): once the controller thread is gone we should pass down\n // the result objects directly to the frontend, iterate over the result\n // and deal with pagination there. For now we keep the old behavior and\n // truncate to 10k rows.\n\n try {\n await queryRes.waitAllRows();\n } catch {\n // In the case of a query error we don't want the exception to bubble up\n // as a crash. The |queryRes| object will be populated anyways.\n // queryRes.error() is used to tell if the query errored or not. If it\n // errored, the frontend will show a graceful message instead.\n }\n\n const durationMs = performance.now() - startMs;\n const rows: Row[] = [];\n const columns = queryRes.columns();\n let numRows = 0;\n for (const iter = queryRes.iter({}); iter.valid(); iter.next()) {\n const row: Row = {};\n for (const colName of columns) {\n const value = iter.get(colName);\n row[colName] = value === null ? 'NULL' : value;\n }\n rows.push(row);\n if (++numRows >= MAX_DISPLAY_ROWS) break;\n }\n\n const result: QueryResponse = {\n id: queryId,\n query: sqlQuery,\n durationMs,\n error: queryRes.error(),\n totalRowCount: queryRes.numRows(),\n columns,\n rows,\n };\n return result;\n}","// Copyright (C) 2021 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {Actions} from '../common/actions';\nimport {\n AggregationAttrs,\n isStackPivot,\n PivotAttrs,\n TableAttrs\n} from '../common/pivot_table_common';\nimport {globals} from './globals';\n\nexport function isAggregationAttrs(attrs: PivotAttrs|AggregationAttrs):\n attrs is AggregationAttrs {\n return (attrs as AggregationAttrs).aggregation !== undefined;\n}\n\nfunction equalTableAttrs(\n left: PivotAttrs|AggregationAttrs, right: PivotAttrs|AggregationAttrs) {\n if (left.columnName !== right.columnName) {\n return false;\n }\n\n if (left.tableName !== right.tableName) {\n return false;\n }\n\n if (isAggregationAttrs(left) && isAggregationAttrs(right)) {\n if (left.aggregation !== right.aggregation) {\n return false;\n }\n }\n return true;\n}\n\nexport function getDataTransferType(isPivot: boolean) {\n if (isPivot) {\n return 'perfetto/pivot-table-dragged-pivot';\n }\n return 'perfetto/pivot-table-dragged-aggregation';\n}\n\nexport class PivotTableHelper {\n readonly pivotTableId: string;\n readonly availableColumns: TableAttrs[];\n readonly availableAggregations: string[];\n readonly totalColumnsCount = 0;\n\n private _selectedPivots: PivotAttrs[] = [];\n private _selectedAggregations: AggregationAttrs[] = [];\n private _isPivot = true;\n private _selectedColumnIndex = 0;\n private _selectedAggregationIndex = 0;\n private _editPivotTableModalOpen = false;\n\n constructor(\n pivotTableId: string, availableColumns: TableAttrs[],\n availableAggregations: string[], selectedPivots: PivotAttrs[],\n selectedAggregations: AggregationAttrs[]) {\n this.pivotTableId = pivotTableId;\n this.availableColumns = availableColumns;\n for (const table of this.availableColumns) {\n this.totalColumnsCount += table.columns.length;\n }\n this.availableAggregations = availableAggregations;\n this.setSelectedPivotsAndAggregations(selectedPivots, selectedAggregations);\n }\n\n // Sets selected pivots and aggregations if the editor modal is not open.\n setSelectedPivotsAndAggregations(\n selectedPivots: PivotAttrs[], selectedAggregations: AggregationAttrs[]) {\n if (!this.editPivotTableModalOpen) {\n // Making a copy of selectedPivots and selectedAggregations to preserve\n // the original state.\n this._selectedPivots =\n selectedPivots.map(pivot => Object.assign({}, pivot));\n this._selectedAggregations = selectedAggregations.map(\n aggregation => Object.assign({}, aggregation));\n }\n }\n\n // Dictates if the selected indexes refer to a pivot or aggregation.\n togglePivotSelection() {\n this._isPivot = !this._isPivot;\n if (!this._isPivot) {\n const selectedColumn = this.getSelectedPivotTableColumnAttrs();\n if (isStackPivot(selectedColumn.tableName, selectedColumn.columnName)) {\n this._selectedColumnIndex = Math.max(0, this._selectedColumnIndex - 1);\n }\n }\n }\n\n setSelectedPivotTableColumnIndex(index: number) {\n if (index < 0 && index >= this.totalColumnsCount) {\n throw Error(`Selected column index \"${index}\" out of bounds.`);\n }\n this._selectedColumnIndex = index;\n }\n\n setSelectedPivotTableAggregationIndex(index: number) {\n if (index < 0 && index >= this.availableAggregations.length) {\n throw Error(`Selected aggregation index \"${index}\" out of bounds.`);\n }\n this._selectedAggregationIndex = index;\n }\n\n // Get column attributes on selectedColumnIndex and\n // selectedAggregationIndex.\n getSelectedPivotTableColumnAttrs(): PivotAttrs|AggregationAttrs {\n let tableName, columnName;\n // Finds column index relative to its table.\n let colIdx = this._selectedColumnIndex;\n for (const {tableName: tblName, columns} of this.availableColumns) {\n if (colIdx < columns.length) {\n tableName = tblName;\n columnName = columns[colIdx];\n break;\n }\n colIdx -= columns.length;\n }\n if (tableName === undefined || columnName === undefined) {\n throw Error(\n 'Pivot table selected column does not exist in availableColumns.');\n }\n\n // Get aggregation if selected column is not a pivot, undefined otherwise.\n if (!this._isPivot) {\n const aggregation =\n this.availableAggregations[this._selectedAggregationIndex];\n return {tableName, columnName, aggregation, order: 'DESC'};\n }\n\n return {\n tableName,\n columnName,\n isStackPivot: isStackPivot(tableName, columnName)\n };\n }\n\n // Adds column based on selected index to selectedPivots or\n // selectedAggregations if it doesn't already exist, remove otherwise.\n updatePivotTableColumnOnSelectedIndex() {\n const columnAttrs = this.getSelectedPivotTableColumnAttrs();\n this.updatePivotTableColumnOnColumnAttributes(columnAttrs);\n }\n\n // Adds column based on column attributes to selectedPivots or\n // selectedAggregations if it doesn't already exist, remove otherwise.\n updatePivotTableColumnOnColumnAttributes(columnAttrs: PivotAttrs|\n AggregationAttrs) {\n let storage: Array<PivotAttrs|AggregationAttrs>;\n let attrs: PivotAttrs|AggregationAttrs;\n if (isAggregationAttrs(columnAttrs)) {\n if (isStackPivot(columnAttrs.tableName, columnAttrs.columnName)) {\n throw Error(\n `Stack column \"${columnAttrs.tableName} ${\n columnAttrs.columnName}\" should not ` +\n `be added as an aggregation.`);\n }\n storage = this._selectedAggregations;\n attrs = {\n tableName: columnAttrs.tableName,\n columnName: columnAttrs.columnName,\n aggregation: columnAttrs.aggregation,\n order: columnAttrs.order\n };\n } else {\n storage = this._selectedPivots;\n attrs = {\n tableName: columnAttrs.tableName,\n columnName: columnAttrs.columnName,\n isStackPivot: columnAttrs.isStackPivot\n };\n }\n const index =\n storage.findIndex(element => equalTableAttrs(element, columnAttrs));\n\n if (index === -1) {\n storage.push(attrs);\n } else {\n storage.splice(index, 1);\n }\n }\n\n clearPivotTableColumns() {\n this._selectedPivots = [];\n this._selectedAggregations = [];\n }\n\n // Changes aggregation sorting from DESC to ASC and vice versa.\n togglePivotTableAggregationSorting(index: number) {\n if (index < 0 || index >= this._selectedAggregations.length) {\n throw Error(`Column index \"${index}\" is out of bounds.`);\n }\n this._selectedAggregations[index].order =\n this._selectedAggregations[index].order === 'DESC' ? 'ASC' : 'DESC';\n }\n\n // Moves target column to the requested destination.\n reorderPivotTableDraggedColumn(\n isPivot: boolean, targetColumnIdx: number, destinationColumnIdx: number) {\n let storage: Array<PivotAttrs|AggregationAttrs>;\n if (isPivot) {\n storage = this._selectedPivots;\n } else {\n storage = this._selectedAggregations;\n }\n\n if (targetColumnIdx < 0 || targetColumnIdx >= storage.length) {\n throw Error(`Target column index \"${targetColumnIdx}\" out of bounds.`);\n }\n if (destinationColumnIdx < 0 || destinationColumnIdx >= storage.length) {\n throw Error(\n `Destination column index \"${destinationColumnIdx}\" out of bounds.`);\n }\n\n const targetColumn: PivotAttrs|AggregationAttrs = storage[targetColumnIdx];\n storage.splice(targetColumnIdx, 1);\n storage.splice(destinationColumnIdx, 0, targetColumn);\n }\n\n selectedColumnOnDrag(e: DragEvent, isPivot: boolean, targetIdx: number) {\n const dataTransferType = getDataTransferType(isPivot);\n if (e.dataTransfer === null) {\n return;\n }\n e.dataTransfer.setData(dataTransferType, targetIdx.toString());\n }\n\n selectedColumnOnDrop(\n e: DragEvent, isPivot: boolean, destinationColumnIdx: number) {\n const dataTransferType = getDataTransferType(isPivot);\n if (e.dataTransfer === null) {\n return;\n }\n // Prevents dragging pivots to aggregations and vice versa.\n if (!e.dataTransfer.types.includes(dataTransferType)) {\n return;\n }\n\n const targetColumnIdxString = e.dataTransfer.getData(dataTransferType);\n const targetColumnIdx = Number(targetColumnIdxString);\n if (!Number.isInteger(targetColumnIdx)) {\n throw Error(\n `Target column index \"${targetColumnIdxString}\" is not valid.`);\n }\n\n this.reorderPivotTableDraggedColumn(\n isPivot, targetColumnIdx, destinationColumnIdx);\n e.dataTransfer.clearData(dataTransferType);\n }\n\n\n // Highlights valid drop locations when dragging over them.\n highlightDropLocation(e: DragEvent, isPivot: boolean) {\n if (e.dataTransfer === null) {\n return;\n }\n // Prevents highlighting aggregations when dragging pivots over them\n // and vice versa.\n if (!e.dataTransfer.types.includes(getDataTransferType(isPivot))) {\n return;\n }\n (e.target as HTMLTableDataCellElement).classList.add('drop-location');\n }\n\n removeHighlightFromDropLocation(e: DragEvent) {\n (e.target as HTMLTableDataCellElement).classList.remove('drop-location');\n }\n\n // Gets column index in availableColumns based on its attributes.\n getColumnIndex(columnAttrs: PivotAttrs|AggregationAttrs) {\n let index = 0;\n for (const {tableName, columns} of this.availableColumns) {\n if (tableName === columnAttrs.tableName) {\n const colIdx =\n columns.findIndex(column => column === columnAttrs.columnName);\n return colIdx === -1 ? -1 : index + colIdx;\n }\n index += columns.length;\n }\n return -1;\n }\n\n selectPivotTableColumn(columnAttrs: PivotAttrs|AggregationAttrs) {\n this._isPivot = !isAggregationAttrs(columnAttrs);\n\n const colIndex = this.getColumnIndex(columnAttrs);\n if (colIndex === -1) {\n throw Error(`Selected column \"${columnAttrs.tableName} ${\n columnAttrs.columnName}\" not found in availableColumns.`);\n }\n this.setSelectedPivotTableColumnIndex(colIndex);\n\n if (isAggregationAttrs(columnAttrs)) {\n const aggIndex = this.availableAggregations.findIndex(\n aggregation => aggregation === columnAttrs.aggregation);\n if (aggIndex === -1) {\n throw Error(`Selected aggregation \"${\n columnAttrs.aggregation}\" not found in availableAggregations.`);\n }\n this.setSelectedPivotTableAggregationIndex(aggIndex);\n }\n }\n\n queryPivotTableChanges() {\n globals.dispatch(Actions.setSelectedPivotsAndAggregations({\n pivotTableId: this.pivotTableId,\n selectedPivots: this._selectedPivots,\n selectedAggregations: this._selectedAggregations\n }));\n globals.dispatch(Actions.setPivotTableRequest(\n {pivotTableId: this.pivotTableId, action: 'QUERY'}));\n }\n\n toggleEditPivotTableModal() {\n this._editPivotTableModalOpen = !this._editPivotTableModalOpen;\n }\n\n get selectedPivots() {\n return this._selectedPivots.map(pivot => Object.assign({}, pivot));\n }\n\n get selectedAggregations() {\n return this._selectedAggregations.map(\n aggregation => Object.assign({}, aggregation));\n }\n\n get isPivot() {\n return this._isPivot;\n }\n\n get selectedColumnIndex() {\n return this._selectedColumnIndex;\n }\n\n get selectedAggregationIndex() {\n return this._selectedAggregationIndex;\n }\n\n get editPivotTableModalOpen() {\n return this._editPivotTableModalOpen;\n }\n}\n","// Copyright (C) 2021 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {Actions} from '../common/actions';\nimport {Engine} from '../common/engine';\nimport {\n AggregationAttrs,\n AVAILABLE_AGGREGATIONS,\n AVAILABLE_TABLES,\n getDescendantsTables,\n getParentStackColumn,\n getStackColumn,\n getStackDepthColumn,\n PivotAttrs,\n PivotTableQueryResponse,\n removeHiddenAndAddStackColumns,\n RowAttrs,\n WHERE_FILTERS\n} from '../common/pivot_table_common';\nimport {\n getAggregationAlias,\n getAggregationOverStackAlias,\n getAliasedPivotColumns,\n getHiddenPivotAlias,\n getPivotAlias,\n getTotalAggregationAlias,\n PivotTableQueryGenerator\n} from '../common/pivot_table_query_generator';\nimport {\n QueryResponse,\n runQuery,\n} from '../common/queries';\nimport {Row} from '../common/query_result';\nimport {toNs} from '../common/time';\nimport {PivotTableHelper} from '../frontend/pivot_table_helper';\nimport {publishPivotTableHelper, publishQueryResult} from '../frontend/publish';\n\nimport {Controller} from './controller';\nimport {globals} from './globals';\n\nexport interface PivotTableControllerArgs {\n pivotTableId: string;\n engine: Engine;\n}\n\nfunction getExpandableColumn(\n pivotTableId: string, queriedPivots: PivotAttrs[]): string|undefined {\n if (queriedPivots.length === 0) {\n return undefined;\n }\n const selectedPivots = globals.state.pivotTable[pivotTableId].selectedPivots;\n const lastPivot = getPivotAlias(selectedPivots[selectedPivots.length - 1]);\n const lastQueriedPivot =\n getPivotAlias(queriedPivots[queriedPivots.length - 1]);\n if (lastQueriedPivot !== lastPivot) {\n return lastQueriedPivot;\n }\n return undefined;\n}\n\nfunction getRowWhereFilters(\n queriedPivots: PivotAttrs[], row: Row, parentRow?: RowAttrs) {\n let whereFilters = new Map();\n\n // Add all the row's parent whereFilers.\n if (parentRow) {\n whereFilters = new Map(parentRow.whereFilters);\n }\n\n // Add whereFilters for all the queried pivots and any hidden pivots without\n // the stack pivots.\n getAliasedPivotColumns(queriedPivots)\n .filter(pivot => !pivot.pivotAttrs.isStackPivot)\n .forEach(\n pivot => whereFilters.set(\n pivot.columnAlias,\n `CAST(${pivot.pivotAttrs.tableName}.${\n pivot.pivotAttrs.columnName} AS TEXT) = '${\n row[pivot.columnAlias]!.toString()}'`));\n\n return whereFilters;\n}\n\nfunction getPivotTableQueryResponseRows(\n pivotTableId: string,\n rows: Row[],\n queriedPivots: PivotAttrs[],\n parentRow?: RowAttrs) {\n const expandableColumns = new Set<string>();\n if (queriedPivots.length > 0 && queriedPivots[0].isStackPivot) {\n // Make the stack column expandable.\n expandableColumns.add(getPivotAlias(queriedPivots[0]));\n }\n // Add expandable column after the stack column if it exists.\n const expandableColumn = getExpandableColumn(pivotTableId, queriedPivots);\n if (expandableColumn !== undefined) {\n expandableColumns.add(expandableColumn);\n }\n\n const newRows: RowAttrs[] = [];\n for (const row of rows) {\n newRows.push({\n row,\n expandableColumns,\n depth: 0,\n whereFilters: getRowWhereFilters(queriedPivots, row, parentRow),\n expandedRows: new Map()\n });\n }\n return newRows;\n}\n\nfunction getPivotTableQueryResponse(\n pivotTableId: string,\n queryResp: QueryResponse,\n queriedPivots: PivotAttrs[],\n parentRow?: RowAttrs): PivotTableQueryResponse {\n const columns = [];\n const pivotTable = globals.state.pivotTable[pivotTableId];\n\n for (let i = 0; i < pivotTable.selectedPivots.length; ++i) {\n const pivot = pivotTable.selectedPivots[i];\n columns.push({\n name: getPivotAlias(pivot),\n index: i,\n tableName: pivot.tableName,\n columnName: pivot.columnName,\n isStackColumn: pivot.isStackPivot\n });\n }\n\n for (let i = 0; i < pivotTable.selectedAggregations.length; ++i) {\n const aggregation = pivotTable.selectedAggregations[i];\n columns.push({\n name: getAggregationAlias(aggregation),\n index: i,\n tableName: aggregation.tableName,\n columnName: aggregation.columnName,\n aggregation: aggregation.aggregation,\n order: aggregation.order,\n isStackColumn: false\n });\n }\n\n return {\n columns,\n rows: getPivotTableQueryResponseRows(\n pivotTableId, queryResp.rows, queriedPivots, parentRow),\n error: queryResp.error,\n durationMs: queryResp.durationMs\n };\n}\n\nfunction getRowInPivotTableQueryResponse(\n queryResp: PivotTableQueryResponse,\n rowIndices: number[],\n expandedRowColumns: string[]) {\n if (rowIndices.length === 0) {\n throw new Error('Row indicies should have at least one index.');\n }\n\n let row = queryResp.rows[rowIndices[0]];\n\n // expandedRowColumns and rowIndices should refer to the same rows minus the\n // initial row index that specifies the row in the query response.\n if (rowIndices.length !== expandedRowColumns.length + 1) {\n throw Error(`expandedRowColumns length \"${\n expandedRowColumns.length}\" should be less than rowIndicies length \"${\n rowIndices.length}\" by one.`);\n }\n\n for (let i = 1; i < rowIndices.length; ++i) {\n const expandedRow = row.expandedRows.get(expandedRowColumns[i - 1]);\n if (expandedRow === undefined || expandedRow.rows.length <= rowIndices[i]) {\n throw new Error(`Expanded row index \"${rowIndices[i]}\" at row column \"${\n expandedRowColumns[i - 1]}\" is out of bounds.`);\n }\n row = expandedRow.rows[rowIndices[i]];\n }\n return row;\n}\n\nfunction getDescendantRows(\n pivotTableId: string,\n respRows: Row[],\n parentRow: RowAttrs,\n queriedPivots: PivotAttrs[],\n queriedAggregations: AggregationAttrs[]) {\n const stackPivot = queriedPivots[0];\n if (stackPivot === undefined || !stackPivot.isStackPivot) {\n throw Error('Queried pivot is not a stack pivot');\n }\n\n const stackIdColumn = getHiddenPivotAlias(getStackColumn(stackPivot));\n\n const parentStackIdColumn =\n getHiddenPivotAlias(getParentStackColumn(stackPivot));\n\n const depthColumn = getHiddenPivotAlias(getStackDepthColumn(stackPivot));\n\n const stackColumn = getPivotAlias(stackPivot); // \"name (stack)\" column.\n\n const parentDepth = Number(parentRow.row[depthColumn]?.toString());\n if (!Number.isInteger(parentDepth)) {\n throw Error('Parent row has undefined depth.');\n }\n\n const parentRowStackId = parentRow.row[stackIdColumn]?.toString();\n if (parentRowStackId === undefined) {\n throw Error('Parent row has undefined stack_id.');\n }\n\n const nextPivot = queriedPivots[1];\n let nextColumnName = '';\n if (nextPivot !== undefined) {\n nextColumnName = getPivotAlias(nextPivot);\n }\n\n const newRows: Map<string, RowAttrs> = new Map();\n for (const row of respRows) {\n const depth = Number(row[depthColumn]?.toString());\n const stackId = row[stackIdColumn]?.toString();\n const parentStackId = row[parentStackIdColumn]?.toString();\n if (!Number.isInteger(depth)) {\n throw Error('Descendant result has undefined depth.');\n }\n if (!stackId || !parentStackId) {\n throw Error('Descendant result has undefined stack or parent stack id.');\n }\n\n const expandableColumns = new Set<string>();\n // Get expandable column after the stack column if it exists.\n const expandableColumn = getExpandableColumn(pivotTableId, queriedPivots);\n if (expandableColumn !== undefined) {\n expandableColumns.add(expandableColumn);\n }\n\n const newRow: RowAttrs = {\n row: Object.assign({}, row),\n depth: depth - parentDepth,\n whereFilters: getRowWhereFilters(queriedPivots, row, parentRow),\n expandedRows: new Map(),\n expandableColumns\n };\n\n // If we have already added the stackId, we need to extract and nest its\n // next column values in its expanded rows.\n if (newRows.has(stackId)) {\n newRow.row[stackColumn] = null;\n const parent = newRows.get(stackId)!;\n let nextColumnRows = parent.expandedRows.get(nextColumnName);\n if (nextColumnRows === undefined) {\n // Since the parent row has more than one value for the next column,\n // we nest the values in rows under the parent row instead of inline\n // with it.\n // Making a new row to hold the next column value.\n const row = Object.assign({}, parent.row);\n const nextColumnRow: RowAttrs = {\n row: Object.assign({}, row),\n depth: depth - parentDepth,\n whereFilters: getRowWhereFilters(queriedPivots, row, parentRow),\n expandedRows: new Map(),\n expandableColumns\n };\n parent.row[nextColumnName] = null;\n // Modify the parent row to show the aggregation over stack rows instead\n // of the partitioned aggregations.\n for (const aggregation of queriedAggregations) {\n parent.row[getAggregationAlias(aggregation)] =\n parent.row[getAggregationOverStackAlias(aggregation)];\n }\n nextColumnRow.row[stackColumn] = null;\n if (nextColumnRow.row[nextColumnName] !== undefined) {\n parent.expandedRows.set(\n nextColumnName, {isExpanded: true, rows: [nextColumnRow]});\n }\n nextColumnRows = parent.expandedRows.get(nextColumnName);\n }\n newRow.expandableColumns = expandableColumns;\n\n nextColumnRows!.rows.push(newRow);\n }\n\n // If we have already added the parentStackId, we need to nest the row\n // in its parent's expanded rows.\n // This works because we sort the result of the descendants query by\n // depth, insuring that if the stack_id has a parent other than the\n // parent row, its parent will show up first.\n if (newRows.has(parentStackId)) {\n const parent = newRows.get(parentStackId)!;\n let descendants = parent.expandedRows.get(stackColumn);\n if (descendants === undefined) {\n parent.expandedRows.set(stackColumn, {isExpanded: true, rows: []});\n descendants = parent.expandedRows.get(stackColumn);\n }\n descendants!.rows.push(newRow);\n parent.expandableColumns.add(stackColumn);\n\n // Unexpand if parent has more than one child.\n if (descendants!.rows.length > 1) {\n descendants!.isExpanded = false;\n if (parent.expandedRows.has(nextColumnName)) {\n parent.expandedRows.get(nextColumnName)!.isExpanded = false;\n }\n }\n }\n\n if (!newRows.has(stackId)) {\n newRows.set(stackId, newRow);\n }\n }\n\n // Get only direct descendants of the parent row. The rest is nested inside\n // the descendants.\n const descendantRows =\n Array.from(newRows.values())\n .filter(\n row => row.row[parentStackIdColumn]?.toString() ===\n parentRowStackId);\n // Get the next column values of the parent row.\n let nextColumnRows;\n if (newRows.has(parentRowStackId)) {\n if (newRows.get(parentRowStackId)!.expandedRows.has(nextColumnName)) {\n nextColumnRows =\n newRows.get(parentRowStackId)!.expandedRows.get(nextColumnName)!.rows;\n } else {\n // If the next column value is inline with the parent row.\n nextColumnRows = [newRows.get(parentRowStackId)!];\n }\n }\n return {descendantRows, nextColumnRows};\n}\n\nfunction getPivotColumns(\n pivotTableId: string, columnIdx: number, isStackQuery: boolean) {\n const selectedPivots = globals.state.pivotTable[pivotTableId].selectedPivots;\n // Slice returns the pivot at columnIdx if it exists, and an empty\n // array if columnIdx is out of bounds.\n const pivots = selectedPivots.slice(columnIdx, columnIdx + 1);\n if (isStackQuery) {\n // Adds the next pivot, if it exists, to be queried with the stack query.\n pivots.push(...selectedPivots.slice(columnIdx + 1, columnIdx + 2));\n }\n return pivots;\n}\n\nfunction getWhereFilters(\n pivotTableId: string,\n parentRowWhereFilters: Map<string, string>,\n pivots: PivotAttrs[],\n isStackQuery: boolean) {\n const whereFiltersMap = new Map(parentRowWhereFilters);\n\n // Remove any existing where filters for the pivots to query.\n getAliasedPivotColumns(pivots).forEach(\n pivotAlias => whereFiltersMap.delete(pivotAlias.columnAlias));\n\n const whereFilters = Array.from(whereFiltersMap.values());\n\n if (pivots.length > 0 && pivots[0].isStackPivot && !isStackQuery) {\n // Only query top level slices, descendants can be generated\n // when expanded.\n const orderColumn = getStackDepthColumn(pivots[0]);\n whereFilters.push(`${orderColumn.tableName}.${orderColumn.columnName} = 0`);\n }\n\n // Add global where filters\n whereFilters.push(...WHERE_FILTERS);\n\n // Add area restrictions where filters if set.\n const pivotTable = globals.state.pivotTable[pivotTableId];\n if (pivotTable.selectedTrackIds) {\n whereFilters.push(`slice.track_id IN (${pivotTable.selectedTrackIds})`);\n }\n if (pivotTable.traceTime) {\n whereFilters.push(\n `slice.ts + slice.dur > ${toNs(pivotTable.traceTime.startSec)}`);\n whereFilters.push(`slice.ts < ${toNs(pivotTable.traceTime.endSec)}`);\n }\n\n return whereFilters;\n}\n\nexport class PivotTableController extends Controller<'main'> {\n private pivotTableId: string;\n private pivotTableQueryGenerator = new PivotTableQueryGenerator();\n private engine: Engine;\n private queryResp?: PivotTableQueryResponse;\n\n constructor(args: PivotTableControllerArgs) {\n super('main');\n this.engine = args.engine;\n this.pivotTableId = args.pivotTableId;\n this.setup().then(() => {\n this.run();\n });\n }\n\n run() {\n const {requestedAction} = globals.state.pivotTable[this.pivotTableId];\n const pivotTable = globals.state.pivotTable[this.pivotTableId];\n if (!requestedAction) return;\n globals.dispatch(\n Actions.resetPivotTableRequest({pivotTableId: this.pivotTableId}));\n switch (requestedAction.action) {\n case 'DESCENDANTS':\n const descendantsAttrs = requestedAction.attrs;\n if (descendantsAttrs === undefined) {\n throw Error('No attributes provided for descendants query.');\n }\n if (this.queryResp === undefined) {\n throw Error(\n 'Descendants query requested without setting the main query.');\n }\n\n const stackPivot =\n pivotTable.selectedPivots[descendantsAttrs.columnIdx];\n const stackColumnName = getPivotAlias(stackPivot);\n\n const nextPivot =\n pivotTable.selectedPivots[descendantsAttrs.columnIdx + 1];\n let nextColumnName = '';\n if (nextPivot !== undefined) {\n nextColumnName = getPivotAlias(nextPivot);\n }\n\n const ancestorRow = getRowInPivotTableQueryResponse(\n this.queryResp,\n descendantsAttrs.rowIndices,\n descendantsAttrs.expandedRowColumns);\n\n // No need to query if the row has been expanded before.\n if (ancestorRow.expandedRows.has(stackColumnName)) {\n ancestorRow.expandedRows.get(stackColumnName)!.isExpanded = true;\n if (ancestorRow.expandedRows.has(nextColumnName) &&\n !ancestorRow.expandableColumns.has(nextColumnName)) {\n ancestorRow.expandedRows.get(nextColumnName)!.isExpanded = true;\n }\n break;\n }\n\n const descendantsPivots = getPivotColumns(\n this.pivotTableId,\n descendantsAttrs.columnIdx,\n /* is_stack_query = */ true);\n\n if (descendantsPivots.length === 0) {\n throw Error(\n `Descendant operation at column index \"${\n descendantsAttrs\n .columnIdx}\" should only be allowed if there are` +\n `are more columns to query.`);\n }\n\n const descendantsWhereFilters = getWhereFilters(\n this.pivotTableId,\n ancestorRow.whereFilters,\n descendantsPivots,\n /* is_stack_query = */ true);\n\n const stackIdColumn = getHiddenPivotAlias(getStackColumn(stackPivot));\n\n const stackId = ancestorRow.row[stackIdColumn]?.toString();\n if (stackId === undefined) {\n throw Error(`\"${\n getPivotAlias(\n stackPivot)}\" row has undefined stack id at column \"${\n stackIdColumn}\".`);\n }\n\n const descendantsTables =\n getDescendantsTables(descendantsPivots, stackId);\n\n // Query the descendants and the next column if it exists.\n const descendantsQuery =\n this.pivotTableQueryGenerator.generateStackQuery(\n descendantsPivots,\n pivotTable.selectedAggregations,\n descendantsWhereFilters,\n descendantsTables,\n stackId);\n\n ancestorRow.loadingColumn = stackColumnName;\n\n runQuery(this.pivotTableId, descendantsQuery, this.engine)\n .then(resp => {\n // Query resulting from query generator should always be valid.\n if (resp.error) {\n throw Error(`Pivot table descendants query ${\n descendantsQuery} resulted in SQL error: ${resp.error}`);\n }\n\n const printDescendantsQuery =\n descendantsQuery.length <= 1024 ? descendantsQuery : '';\n console.log(`Descendants query${printDescendantsQuery} took ${\n resp.durationMs} ms`);\n\n const {descendantRows, nextColumnRows} = getDescendantRows(\n this.pivotTableId,\n resp.rows,\n ancestorRow,\n descendantsPivots,\n pivotTable.selectedAggregations);\n // Set descendant rows.\n ancestorRow.expandedRows.set(\n stackColumnName, {isExpanded: true, rows: descendantRows});\n // Set the next pivot row(s), if they exist, inside the parent\n // row.\n if (nextColumnRows !== undefined) {\n if (nextColumnRows.length <= 1) {\n // If there is only one value for the next column of the\n // parent row, add it to the same row as the parent.\n ancestorRow.row = nextColumnRows[0].row;\n ancestorRow.expandableColumns = new Set([\n ...nextColumnRows[0].expandableColumns,\n ...ancestorRow.expandableColumns\n ]);\n } else {\n ancestorRow.expandedRows.set(\n nextColumnName, {isExpanded: true, rows: nextColumnRows});\n }\n }\n ancestorRow.loadingColumn = undefined;\n\n this.queryResp!.durationMs += resp.durationMs;\n });\n break;\n\n case 'EXPAND':\n const expandAttrs = requestedAction.attrs;\n if (expandAttrs === undefined) {\n throw Error('No attributes provided for expand query.');\n }\n if (this.queryResp === undefined) {\n throw Error('Expand query requested without setting the main query.');\n }\n\n const expandColumnName =\n getPivotAlias(pivotTable.selectedPivots[expandAttrs.columnIdx]);\n\n const expandRow = getRowInPivotTableQueryResponse(\n this.queryResp,\n expandAttrs.rowIndices,\n expandAttrs.expandedRowColumns);\n\n // No need to query if the row has been expanded before.\n if (expandRow.expandedRows.has(expandColumnName)) {\n expandRow.expandedRows.get(expandColumnName)!.isExpanded = true;\n break;\n }\n\n const expandPivots = getPivotColumns(\n this.pivotTableId,\n expandAttrs.columnIdx + 1,\n /* is_stack_query = */ false);\n\n if (expandPivots.length === 0) {\n throw Error(\n `Expand operation at column index \"${\n expandAttrs.columnIdx}\" should only be allowed if there are` +\n `are more columns to query.`);\n }\n\n const expandWhereFilters = getWhereFilters(\n this.pivotTableId,\n expandRow.whereFilters,\n expandPivots,\n /* is_stack_query = */ false);\n\n const expandQuery = this.pivotTableQueryGenerator.generateQuery(\n expandPivots,\n pivotTable.selectedAggregations,\n expandWhereFilters,\n AVAILABLE_TABLES);\n\n expandRow.loadingColumn =\n getPivotAlias(pivotTable.selectedPivots[expandAttrs.columnIdx]);\n\n runQuery(this.pivotTableId, expandQuery, this.engine).then(resp => {\n // Query resulting from query generator should always be valid.\n if (resp.error) {\n throw Error(`Pivot table expand query ${\n expandQuery} resulted in SQL error: ${resp.error}`);\n }\n const printExpandQuery =\n expandQuery.length <= 1024 ? expandQuery : '';\n console.log(\n `Expand query${printExpandQuery} took ${resp.durationMs} ms`);\n\n expandRow.expandedRows.set(expandColumnName, {\n isExpanded: true,\n rows: getPivotTableQueryResponseRows(\n this.pivotTableId, resp.rows, expandPivots, expandRow)\n });\n expandRow.loadingColumn = undefined;\n\n this.queryResp!.durationMs += resp.durationMs;\n });\n break;\n\n case 'UNEXPAND':\n const unexpandAttrs = requestedAction.attrs;\n if (unexpandAttrs === undefined) {\n throw Error('No attributes provided for unexpand query.');\n }\n if (this.queryResp === undefined) {\n throw Error(\n 'Unexpand query requested without setting the main query.');\n }\n\n const unexpandPivot =\n pivotTable.selectedPivots[unexpandAttrs.columnIdx];\n const unexpandColumnName = getPivotAlias(unexpandPivot);\n\n const unexpandRow = getRowInPivotTableQueryResponse(\n this.queryResp,\n unexpandAttrs.rowIndices,\n unexpandAttrs.expandedRowColumns);\n\n if (unexpandRow.expandedRows.has(unexpandColumnName)) {\n unexpandRow.expandedRows.get(unexpandColumnName)!.isExpanded = false;\n const nextPivot =\n pivotTable.selectedPivots[unexpandAttrs.columnIdx + 1];\n let nextColumnName = '';\n if (nextPivot !== undefined) {\n nextColumnName = getPivotAlias(nextPivot);\n }\n // Unexpand the next column rows if they are nested inside the\n // parent expanded row, but no expandable column exists for the\n // next column.\n if (unexpandPivot.isStackPivot &&\n unexpandRow.expandedRows.has(nextColumnName) &&\n !unexpandRow.expandableColumns.has(nextColumnName)) {\n unexpandRow.expandedRows.get(nextColumnName)!.isExpanded = false;\n }\n } else {\n throw Error('Unexpand request called on already undexpanded row.');\n }\n break;\n\n case 'QUERY':\n // Generates and executes new query based on selectedPivots and\n // selectedAggregations.\n\n const pivots = getPivotColumns(\n this.pivotTableId,\n /* column_idx = */ 0,\n /* is_stack_query = */ false);\n\n const whereFilers = getWhereFilters(\n this.pivotTableId,\n /*parent_row_where_Filters = */ new Map(),\n pivots,\n /* is_stack_query = */ false);\n\n const query = this.pivotTableQueryGenerator.generateQuery(\n pivots,\n pivotTable.selectedAggregations,\n whereFilers,\n AVAILABLE_TABLES);\n\n if (query !== '') {\n globals.dispatch(\n Actions.toggleQueryLoading({pivotTableId: this.pivotTableId}));\n runQuery(this.pivotTableId, query, this.engine).then(resp => {\n // Query resulting from query generator should always be valid.\n if (resp.error) {\n throw Error(`Pivot table query ${query} resulted in SQL error: ${\n resp.error}`);\n }\n\n const printQuery = query.length <= 1024 ? query : '';\n console.log(`Query${printQuery} took ${resp.durationMs} ms`);\n const data =\n getPivotTableQueryResponse(this.pivotTableId, resp, pivots);\n\n if (pivotTable.selectedAggregations.length > 0 &&\n resp.rows.length > 0) {\n const totalAggregationsRow = Object.assign({}, resp.rows[0]);\n\n // Modify the total aggregations row to show the total\n // aggregations.\n if (pivotTable.selectedPivots.length > 0) {\n for (const aggregation of pivotTable.selectedAggregations) {\n totalAggregationsRow[getAggregationAlias(aggregation)] =\n totalAggregationsRow[getTotalAggregationAlias(\n aggregation)];\n }\n }\n data.totalAggregations = totalAggregationsRow;\n }\n\n publishQueryResult({id: this.pivotTableId, data});\n\n this.queryResp = data;\n\n globals.dispatch(\n Actions.toggleQueryLoading({pivotTableId: this.pivotTableId}));\n });\n } else {\n publishQueryResult({id: this.pivotTableId, data: undefined});\n }\n break;\n\n default:\n throw new Error(`Unexpected requested action ${requestedAction}`);\n }\n }\n\n private async setup(): Promise<void> {\n const pivotTable = globals.state.pivotTable[this.pivotTableId];\n const selectedPivots = pivotTable.selectedPivots;\n const selectedAggregations = pivotTable.selectedAggregations;\n let availableColumns = globals.state.pivotTableConfig.availableColumns;\n // No need to retrieve table columns if they are already stored.\n // Only needed when first pivot table is created.\n if (availableColumns === undefined) {\n availableColumns = [];\n for (const table of AVAILABLE_TABLES) {\n const columns = await this.getColumnsForTable(table);\n if (columns.length > 0) {\n availableColumns.push({tableName: table, columns});\n }\n }\n globals.dispatch(Actions.setAvailablePivotTableColumns(\n {availableColumns, availableAggregations: AVAILABLE_AGGREGATIONS}));\n }\n publishPivotTableHelper({\n id: this.pivotTableId,\n data: new PivotTableHelper(\n this.pivotTableId,\n availableColumns,\n AVAILABLE_AGGREGATIONS,\n selectedPivots,\n selectedAggregations)\n });\n }\n\n private async getColumnsForTable(tableName: string): Promise<string[]> {\n const query = `select * from ${tableName} limit 0;`;\n const resp = await runQuery(this.pivotTableId, query, this.engine);\n return removeHiddenAndAddStackColumns(tableName, resp.columns);\n }\n}\n","// Copyright (C) 2018 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {assertExists} from '../base/logging';\nimport {Actions} from '../common/actions';\nimport {Engine} from '../common/engine';\nimport {runQuery} from '../common/queries';\nimport {publishQueryResult} from '../frontend/publish';\n\nimport {Controller} from './controller';\nimport {globals} from './globals';\n\nexport interface QueryControllerArgs {\n queryId: string;\n engine: Engine;\n}\n\nexport class QueryController extends Controller<'init'|'querying'> {\n constructor(private args: QueryControllerArgs) {\n super('init');\n }\n\n run() {\n switch (this.state) {\n case 'init':\n const config = assertExists(globals.state.queries[this.args.queryId]);\n runQuery(this.args.queryId, config.query, this.args.engine)\n .then(result => {\n console.log(`Query ${config.query} took ${result.durationMs} ms`);\n publishQueryResult({id: this.args.queryId, data: result});\n globals.dispatch(\n Actions.deleteQuery({queryId: this.args.queryId}));\n });\n this.setState('querying');\n break;\n\n case 'querying':\n // Nothing to do here, as soon as the deleteQuery is dispatched this\n // controller will be destroyed (by the TraceController).\n break;\n\n default:\n throw new Error(`Unexpected state ${this.state}`);\n }\n }\n}\n","// Copyright (C) 2019 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {TRACE_MARGIN_TIME_S} from '../common/constants';\nimport {Engine} from '../common/engine';\nimport {NUM, STR} from '../common/query_result';\nimport {CurrentSearchResults, SearchSummary} from '../common/search_data';\nimport {TimeSpan} from '../common/time';\nimport {publishSearch, publishSearchResult} from '../frontend/publish';\n\nimport {Controller} from './controller';\nimport {App} from './globals';\n\nexport function escapeQuery(s: string): string {\n // See https://www.sqlite.org/lang_expr.html#:~:text=A%20string%20constant\n s = s.replace(/\\'/g, '\\'\\'');\n s = s.replace(/_/g, '^_');\n s = s.replace(/%/g, '^%');\n return `'%${s}%' escape '^'`;\n}\n\nexport interface SearchControllerArgs {\n engine: Engine;\n app: App;\n}\n\nexport class SearchController extends Controller<'main'> {\n private engine: Engine;\n private app: App;\n private previousSpan: TimeSpan;\n private previousResolution: number;\n private previousSearch: string;\n private updateInProgress: boolean;\n private setupInProgress: boolean;\n\n constructor(args: SearchControllerArgs) {\n super('main');\n this.engine = args.engine;\n this.app = args.app;\n this.previousSpan = new TimeSpan(0, 1);\n this.previousSearch = '';\n this.updateInProgress = false;\n this.setupInProgress = true;\n this.previousResolution = 1;\n this.setup().finally(() => {\n this.setupInProgress = false;\n this.run();\n });\n }\n\n private async setup() {\n await this.query(`create virtual table search_summary_window\n using window;`);\n await this.query(`create virtual table search_summary_sched_span using\n span_join(sched PARTITIONED cpu, search_summary_window);`);\n await this.query(`create virtual table search_summary_slice_span using\n span_join(slice PARTITIONED track_id, search_summary_window);`);\n }\n\n run() {\n if (this.setupInProgress || this.updateInProgress) {\n return;\n }\n\n const visibleState = this.app.state.frontendLocalState.visibleState;\n const omniboxState = this.app.state.frontendLocalState.omniboxState;\n if (visibleState === undefined || omniboxState === undefined ||\n omniboxState.mode === 'COMMAND') {\n return;\n }\n const newSpan = new TimeSpan(visibleState.startSec, visibleState.endSec);\n const newSearch = omniboxState.omnibox;\n let newResolution = visibleState.resolution;\n if (this.previousSpan.contains(newSpan) &&\n this.previousResolution === newResolution &&\n newSearch === this.previousSearch) {\n return;\n }\n this.previousSpan = new TimeSpan(\n Math.max(newSpan.start - newSpan.duration, -TRACE_MARGIN_TIME_S),\n newSpan.end + newSpan.duration);\n this.previousResolution = newResolution;\n this.previousSearch = newSearch;\n if (newSearch === '' || newSearch.length < 4) {\n publishSearch({\n tsStarts: new Float64Array(0),\n tsEnds: new Float64Array(0),\n count: new Uint8Array(0),\n });\n publishSearchResult({\n sliceIds: new Float64Array(0),\n tsStarts: new Float64Array(0),\n utids: new Float64Array(0),\n sources: [],\n trackIds: [],\n totalResults: 0,\n });\n return;\n }\n\n let startNs = Math.round(newSpan.start * 1e9);\n let endNs = Math.round(newSpan.end * 1e9);\n\n // TODO(hjd): We shouldn't need to be so defensive here:\n if (!Number.isFinite(startNs)) {\n startNs = 0;\n }\n if (!Number.isFinite(endNs)) {\n endNs = 1;\n }\n if (!Number.isFinite(newResolution)) {\n newResolution = 1;\n }\n\n this.updateInProgress = true;\n const computeSummary =\n this.update(newSearch, startNs, endNs, newResolution).then(summary => {\n publishSearch(summary);\n });\n\n const computeResults =\n this.specificSearch(newSearch).then(searchResults => {\n publishSearchResult(searchResults);\n });\n\n Promise.all([computeSummary, computeResults])\n .finally(() => {\n this.updateInProgress = false;\n this.run();\n });\n }\n\n onDestroy() {}\n\n private async update(\n search: string, startNs: number, endNs: number,\n resolution: number): Promise<SearchSummary> {\n const quantumNs = Math.round(resolution * 10 * 1e9);\n\n const searchLiteral = escapeQuery(search);\n\n startNs = Math.floor(startNs / quantumNs) * quantumNs;\n\n const windowDur = Math.max(endNs - startNs, 1);\n await this.query(`update search_summary_window set\n window_start=${startNs},\n window_dur=${windowDur},\n quantum=${quantumNs}\n where rowid = 0;`);\n\n const utidRes = await this.query(`select utid from thread join process\n using(upid) where thread.name like ${searchLiteral}\n or process.name like ${searchLiteral}`);\n\n const utids = [];\n for (const it = utidRes.iter({utid: NUM}); it.valid(); it.next()) {\n utids.push(it.utid);\n }\n\n const cpus = await this.engine.getCpus();\n const maxCpu = Math.max(...cpus, -1);\n\n const res = await this.query(`\n select\n (quantum_ts * ${quantumNs} + ${startNs})/1e9 as tsStart,\n ((quantum_ts+1) * ${quantumNs} + ${startNs})/1e9 as tsEnd,\n min(count(*), 255) as count\n from (\n select\n quantum_ts\n from search_summary_sched_span\n where utid in (${utids.join(',')}) and cpu <= ${maxCpu}\n union all\n select\n quantum_ts\n from search_summary_slice_span\n where name like ${searchLiteral}\n )\n group by quantum_ts\n order by quantum_ts;`);\n\n const numRows = res.numRows();\n const summary = {\n tsStarts: new Float64Array(numRows),\n tsEnds: new Float64Array(numRows),\n count: new Uint8Array(numRows)\n };\n\n const it = res.iter({tsStart: NUM, tsEnd: NUM, count: NUM});\n for (let row = 0; it.valid(); it.next(), ++row) {\n summary.tsStarts[row] = it.tsStart;\n summary.tsEnds[row] = it.tsEnd;\n summary.count[row] = it.count;\n }\n return summary;\n }\n\n private async specificSearch(search: string) {\n const searchLiteral = escapeQuery(search);\n // TODO(hjd): we should avoid recomputing this every time. This will be\n // easier once the track table has entries for all the tracks.\n const cpuToTrackId = new Map();\n const engineTrackIdToTrackId = new Map();\n for (const track of Object.values(this.app.state.tracks)) {\n if (track.kind === 'CpuSliceTrack') {\n cpuToTrackId.set((track.config as {cpu: number}).cpu, track.id);\n continue;\n }\n if (track.kind === 'ChromeSliceTrack') {\n const config = (track.config as {trackId: number});\n engineTrackIdToTrackId.set(config.trackId, track.id);\n continue;\n }\n if (track.kind === 'AsyncSliceTrack') {\n const config = (track.config as {trackIds: number[]});\n for (const trackId of config.trackIds) {\n engineTrackIdToTrackId.set(trackId, track.id);\n }\n continue;\n }\n }\n\n const utidRes = await this.query(`select utid from thread join process\n using(upid) where\n thread.name like ${searchLiteral} or\n process.name like ${searchLiteral}`);\n const utids = [];\n for (const it = utidRes.iter({utid: NUM}); it.valid(); it.next()) {\n utids.push(it.utid);\n }\n\n const queryRes = await this.query(`\n select\n id as sliceId,\n ts,\n 'cpu' as source,\n cpu as sourceId,\n utid\n from sched where utid in (${utids.join(',')})\n union\n select\n slice_id as sliceId,\n ts,\n 'track' as source,\n track_id as sourceId,\n 0 as utid\n from slice\n where slice.name like ${searchLiteral}\n union\n select\n slice_id as sliceId,\n ts,\n 'track' as source,\n track_id as sourceId,\n 0 as utid\n from slice\n join args using(arg_set_id)\n where string_value like ${searchLiteral}\n order by ts`);\n\n const rows = queryRes.numRows();\n const searchResults: CurrentSearchResults = {\n sliceIds: new Float64Array(rows),\n tsStarts: new Float64Array(rows),\n utids: new Float64Array(rows),\n trackIds: [],\n sources: [],\n totalResults: queryRes.numRows(),\n };\n\n const it = queryRes.iter(\n {sliceId: NUM, ts: NUM, source: STR, sourceId: NUM, utid: NUM});\n for (let i = 0; it.valid(); it.next(), ++i) {\n let trackId = undefined;\n if (it.source === 'cpu') {\n trackId = cpuToTrackId.get(it.sourceId);\n } else if (it.source === 'track') {\n trackId = engineTrackIdToTrackId.get(it.sourceId);\n }\n\n // The .get() calls above could return undefined, this isn't just an else.\n if (trackId === undefined) {\n searchResults.totalResults--;\n continue;\n }\n searchResults.trackIds.push(trackId);\n searchResults.sources.push(it.source);\n searchResults.sliceIds[i] = it.sliceId;\n searchResults.tsStarts[i] = it.ts;\n searchResults.utids[i] = it.utid;\n }\n return searchResults;\n }\n\n private async query(query: string) {\n const result = await this.engine.query(query);\n return result;\n }\n}\n","// Copyright (C) 2021 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use size file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nexport type Arg = string|{kind: 'SLICE', trackId: string, sliceId: number};\nexport type Args = Map<string, Arg>;\n\nexport type ArgsTree = ArgsTreeMap|ArgsTreeArray|string;\nexport type ArgsTreeArray = ArgsTree[];\nexport interface ArgsTreeMap {\n [key: string]: ArgsTree;\n}\n\nexport function isArgTreeArray(item: ArgsTree): item is ArgsTreeArray {\n return typeof item === 'object' && item.length !== undefined;\n}\n\nexport function isArgTreeMap(item: ArgsTree): item is ArgsTreeMap {\n return typeof item === 'object' && item.length === undefined;\n}\n","// Copyright (C) 2021 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use size file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {\n Args,\n ArgsTree,\n ArgsTreeArray,\n ArgsTreeMap,\n isArgTreeArray,\n isArgTreeMap\n} from '../common/arg_types';\n\n// Converts a flats sequence of key-value pairs into a JSON-like nested\n// structure. Dots in keys are used to create a nested dictionary, indices in\n// brackets used to create nested array. For example, consider the following\n// sequence of key-value pairs:\n//\n// simple_key = simple_value\n// thing.key = value\n// thing.point[0].x = 10\n// thing.point[0].y = 20\n// thing.point[1].x = 0\n// thing.point[1].y = -10\n//\n// It's going to be converted to a following object:\n//\n// {\n// \"simple_key\": \"simple_value\",\n// \"thing\": {\n// \"key\": \"value\",\n// \"point\": [\n// { \"x\": \"10\", \"y\": \"20\" },\n// { \"x\": \"0\", \"y\": \"-10\" }\n// ]\n// }\n// }\nexport function parseArgs(args: Args): ArgsTree|undefined {\n const result: ArgsTreeMap = {};\n for (const [key, value] of args) {\n if (typeof value === 'string') {\n fillObject(result, key.split('.'), value);\n }\n }\n return result;\n}\n\nfunction getOrCreateMap(\n object: ArgsTreeMap|ArgsTreeArray, key: string|number): ArgsTreeMap {\n let value: ArgsTree;\n if (isArgTreeMap(object) && typeof key === 'string') {\n value = object[key];\n } else if (isArgTreeArray(object) && typeof key === 'number') {\n value = object[key];\n } else {\n throw new Error('incompatible parameters to getOrCreateSubmap');\n }\n\n if (value !== undefined) {\n if (isArgTreeMap(value)) {\n return value;\n } else {\n // There is a value, but it's not a map - something wrong with the key set\n throw new Error('inconsistent keys');\n }\n }\n\n value = {};\n if (isArgTreeMap(object) && typeof key === 'string') {\n object[key] = value;\n } else if (isArgTreeArray(object) && typeof key === 'number') {\n object[key] = value;\n }\n\n return value;\n}\n\nfunction getOrCreateArray(object: ArgsTreeMap, key: string): ArgsTree[] {\n let value = object[key];\n if (value !== undefined) {\n if (isArgTreeArray(value)) {\n return value;\n } else {\n // There is a value, but it's not an array - something wrong with the key\n // set\n throw new Error('inconsistent keys');\n }\n }\n\n value = [];\n object[key] = value;\n return value;\n}\n\nfunction fillObject(object: ArgsTreeMap, path: string[], value: string) {\n let current = object;\n for (let i = 0; i < path.length - 1; i++) {\n const [part, index] = parsePathSegment(path[i]);\n if (index === undefined) {\n current = getOrCreateMap(current, part);\n } else {\n const array = getOrCreateArray(current, part);\n current = getOrCreateMap(array, index);\n }\n }\n\n const [part, index] = parsePathSegment(path[path.length - 1]);\n if (index === undefined) {\n current[part] = value;\n } else {\n const array = getOrCreateArray(current, part);\n array[index] = value;\n }\n}\n\n// Segment is either a simple key (e.g. \"foo\") or a key with an index (e.g.\n// \"bar[42]\"). This function returns a pair of key and index (if present).\nfunction parsePathSegment(segment: string): [string, number?] {\n if (!segment.endsWith(']')) {\n return [segment, undefined];\n }\n\n const indexStart = segment.indexOf('[');\n const indexString = segment.substring(indexStart + 1, segment.length - 1);\n return [segment.substring(0, indexStart), Math.floor(Number(indexString))];\n}","// Copyright (C) 2019 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {assertTrue} from '../base/logging';\nimport {Arg, Args} from '../common/arg_types';\nimport {Engine} from '../common/engine';\nimport {\n NUM,\n NUM_NULL,\n STR,\n STR_NULL,\n} from '../common/query_result';\nimport {ChromeSliceSelection} from '../common/state';\nimport {translateState} from '../common/thread_state';\nimport {fromNs, toNs} from '../common/time';\nimport {SliceDetails, ThreadStateDetails} from '../frontend/globals';\nimport {\n publishCounterDetails,\n publishSliceDetails,\n publishThreadStateDetails\n} from '../frontend/publish';\nimport {SLICE_TRACK_KIND} from '../tracks/chrome_slices/common';\n\nimport {parseArgs} from './args_parser';\nimport {Controller} from './controller';\nimport {globals} from './globals';\n\nexport interface SelectionControllerArgs {\n engine: Engine;\n}\n\n// This class queries the TP for the details on a specific slice that has\n// been clicked.\nexport class SelectionController extends Controller<'main'> {\n private lastSelectedId?: number|string;\n private lastSelectedKind?: string;\n constructor(private args: SelectionControllerArgs) {\n super('main');\n }\n\n run() {\n const selection = globals.state.currentSelection;\n if (!selection || selection.kind === 'AREA') return;\n\n const selectWithId =\n ['SLICE', 'COUNTER', 'CHROME_SLICE', 'HEAP_PROFILE', 'THREAD_STATE'];\n if (!selectWithId.includes(selection.kind) ||\n (selectWithId.includes(selection.kind) &&\n selection.id === this.lastSelectedId &&\n selection.kind === this.lastSelectedKind)) {\n return;\n }\n const selectedId = selection.id;\n const selectedKind = selection.kind;\n this.lastSelectedId = selectedId;\n this.lastSelectedKind = selectedKind;\n\n if (selectedId === undefined) return;\n\n if (selection.kind === 'COUNTER') {\n this.counterDetails(selection.leftTs, selection.rightTs, selection.id)\n .then(results => {\n if (results !== undefined && selection &&\n selection.kind === selectedKind &&\n selection.id === selectedId) {\n publishCounterDetails(results);\n }\n });\n } else if (selection.kind === 'SLICE') {\n this.sliceDetails(selectedId as number);\n } else if (selection.kind === 'THREAD_STATE') {\n this.threadStateDetails(selection.id);\n } else if (selection.kind === 'CHROME_SLICE') {\n this.chromeSliceDetails(selection);\n }\n }\n\n async chromeSliceDetails(selection: ChromeSliceSelection) {\n const selectedId = selection.id;\n const table = selection.table;\n\n let leafTable: string;\n let promisedDescription: Promise<Map<string, string>>;\n let promisedArgs: Promise<Args>;\n // TODO(b/155483804): This is a hack to ensure annotation slices are\n // selectable for now. We should tidy this up when improving this class.\n if (table === 'annotation') {\n leafTable = 'annotation_slice';\n promisedDescription = Promise.resolve(new Map());\n promisedArgs = Promise.resolve(new Map());\n } else {\n const result = await this.args.engine.query(`\n SELECT\n type as leafTable,\n arg_set_id as argSetId\n FROM slice WHERE id = ${selectedId}`);\n\n if (result.numRows() === 0) {\n return;\n }\n\n const row = result.firstRow({\n leafTable: STR,\n argSetId: NUM,\n });\n\n leafTable = row.leafTable;\n const argSetId = row.argSetId;\n promisedDescription = this.describeSlice(selectedId);\n promisedArgs = this.getArgs(argSetId);\n }\n\n const promisedDetails = this.args.engine.query(`\n SELECT * FROM ${leafTable} WHERE id = ${selectedId};\n `);\n\n const [details, args, description] =\n await Promise.all([promisedDetails, promisedArgs, promisedDescription]);\n\n if (details.numRows() <= 0) return;\n const rowIter = details.iter({});\n assertTrue(rowIter.valid());\n\n // A few columns are hard coded as part of the SliceDetails interface.\n // Long term these should be handled generically as args but for now\n // handle them specially:\n let ts = undefined;\n let dur = undefined;\n let name = undefined;\n let category = undefined;\n // tslint:disable-next-line:variable-name\n let thread_dur = undefined;\n // tslint:disable-next-line:variable-name\n let thread_ts = undefined;\n\n for (const k of details.columns()) {\n const v = rowIter.get(k);\n switch (k) {\n case 'id':\n break;\n case 'ts':\n ts = fromNs(Number(v)) - globals.state.traceTime.startSec;\n break;\n case 'thread_ts':\n thread_ts = fromNs(Number(v));\n break;\n case 'name':\n name = `${v}`;\n break;\n case 'dur':\n dur = fromNs(Number(v));\n break;\n case 'thread_dur':\n thread_dur = fromNs(Number(v));\n break;\n case 'category':\n case 'cat':\n category = `${v}`;\n break;\n default:\n args.set(k, `${v}`);\n }\n }\n\n const argsTree = parseArgs(args);\n const selected: SliceDetails = {\n id: selectedId,\n ts,\n thread_ts,\n dur,\n thread_dur,\n name,\n category,\n args,\n argsTree,\n description,\n };\n\n // Check selection is still the same on completion of query.\n if (selection === globals.state.currentSelection) {\n publishSliceDetails(selected);\n }\n }\n\n async describeSlice(id: number): Promise<Map<string, string>> {\n const map = new Map<string, string>();\n if (id === -1) return map;\n const query = `\n select\n ifnull(description, '') as description,\n ifnull(doc_link, '') as docLink\n from describe_slice\n where slice_id = ${id}\n `;\n const result = await this.args.engine.query(query);\n const it = result.iter({description: STR, docLink: STR});\n for (; it.valid(); it.next()) {\n const description = it.description;\n const docLink = it.docLink;\n map.set('Description', description);\n map.set('Documentation', docLink);\n }\n return map;\n }\n\n async getArgs(argId: number): Promise<Args> {\n const args = new Map<string, Arg>();\n const query = `\n select\n key AS name,\n CAST(COALESCE(int_value, string_value, real_value) AS text) AS value\n FROM args\n WHERE arg_set_id = ${argId}\n `;\n const result = await this.args.engine.query(query);\n const it = result.iter({\n name: STR,\n value: STR_NULL,\n });\n for (; it.valid(); it.next()) {\n const name = it.name;\n const value = it.value || 'NULL';\n if (name === 'destination slice id' && !isNaN(Number(value))) {\n const destTrackId = await this.getDestTrackId(value);\n args.set(\n 'Destination Slice',\n {kind: 'SLICE', trackId: destTrackId, sliceId: Number(value)});\n } else {\n args.set(name, value);\n }\n }\n return args;\n }\n\n async getDestTrackId(sliceId: string): Promise<string> {\n const trackIdQuery = `select track_id as trackId from slice\n where slice_id = ${sliceId}`;\n const result = await this.args.engine.query(trackIdQuery);\n const trackIdTp = result.firstRow({trackId: NUM}).trackId;\n // TODO(hjd): If we had a consistent mapping from TP track_id\n // UI track id for slice tracks this would be unnecessary.\n let trackId = '';\n for (const track of Object.values(globals.state.tracks)) {\n if (track.kind === SLICE_TRACK_KIND &&\n (track.config as {trackId: number}).trackId === Number(trackIdTp)) {\n trackId = track.id;\n break;\n }\n }\n return trackId;\n }\n\n async threadStateDetails(id: number) {\n const query = `\n SELECT\n ts,\n thread_state.dur as dur,\n state,\n io_wait as ioWait,\n thread_state.utid as utid,\n thread_state.cpu as cpu,\n sched.id as id,\n thread_state.blocked_function as blockedFunction\n from thread_state\n left join sched using(ts) where thread_state.id = ${id}\n `;\n const result = await this.args.engine.query(query);\n\n const selection = globals.state.currentSelection;\n if (result.numRows() > 0 && selection) {\n const row = result.firstRow({\n ts: NUM,\n dur: NUM,\n state: STR,\n ioWait: NUM_NULL,\n utid: NUM,\n cpu: NUM_NULL,\n id: NUM_NULL,\n blockedFunction: STR_NULL,\n });\n const ts = row.ts;\n const timeFromStart = fromNs(ts) - globals.state.traceTime.startSec;\n const dur = fromNs(row.dur);\n const ioWait = row.ioWait === null ? undefined : row.ioWait > 0;\n const state = translateState(row.state, ioWait);\n const utid = row.utid;\n const cpu = row.cpu === null ? undefined : row.cpu;\n const sliceId = row.id === null ? undefined : row.id;\n const blockedFunction =\n row.blockedFunction === null ? undefined : row.blockedFunction;\n const selected: ThreadStateDetails =\n {ts: timeFromStart, dur, state, utid, cpu, sliceId, blockedFunction};\n publishThreadStateDetails(selected);\n }\n }\n\n async sliceDetails(id: number) {\n const sqlQuery = `SELECT\n ts,\n dur,\n priority,\n end_state as endState,\n utid,\n cpu,\n thread_state.id as threadStateId\n FROM sched join thread_state using(ts, utid, dur, cpu)\n WHERE sched.id = ${id}`;\n const result = await this.args.engine.query(sqlQuery);\n // Check selection is still the same on completion of query.\n const selection = globals.state.currentSelection;\n if (result.numRows() > 0 && selection) {\n const row = result.firstRow({\n ts: NUM,\n dur: NUM,\n priority: NUM,\n endState: STR,\n utid: NUM,\n cpu: NUM,\n threadStateId: NUM,\n });\n const ts = row.ts;\n const timeFromStart = fromNs(ts) - globals.state.traceTime.startSec;\n const dur = fromNs(row.dur);\n const priority = row.priority;\n const endState = row.endState;\n const utid = row.utid;\n const cpu = row.cpu;\n const threadStateId = row.threadStateId;\n const selected: SliceDetails = {\n ts: timeFromStart,\n dur,\n priority,\n endState,\n cpu,\n id,\n utid,\n threadStateId\n };\n this.schedulingDetails(ts, utid)\n .then(wakeResult => {\n Object.assign(selected, wakeResult);\n })\n .finally(() => {\n publishSliceDetails(selected);\n });\n }\n }\n\n async counterDetails(ts: number, rightTs: number, id: number) {\n const counter = await this.args.engine.query(\n `SELECT value, track_id as trackId FROM counter WHERE id = ${id}`);\n const row = counter.iter({\n value: NUM,\n trackId: NUM,\n });\n const value = row.value;\n const trackId = row.trackId;\n // Finding previous value. If there isn't previous one, it will return 0 for\n // ts and value.\n const previous = await this.args.engine.query(`SELECT\n MAX(ts),\n IFNULL(value, 0) as value\n FROM counter WHERE ts < ${ts} and track_id = ${trackId}`);\n const previousValue = previous.firstRow({value: NUM}).value;\n const endTs =\n rightTs !== -1 ? rightTs : toNs(globals.state.traceTime.endSec);\n const delta = value - previousValue;\n const duration = endTs - ts;\n const startTime = fromNs(ts) - globals.state.traceTime.startSec;\n const uiTrackId = globals.state.uiTrackIdByTraceTrackId.get(trackId);\n const name = uiTrackId ? globals.state.tracks[uiTrackId].name : undefined;\n return {startTime, value, delta, duration, name};\n }\n\n async schedulingDetails(ts: number, utid: number|Long) {\n let event = 'sched_waking';\n const waking = await this.args.engine.query(\n `select * from instants where name = 'sched_waking' limit 1`);\n const wakeup = await this.args.engine.query(\n `select * from instants where name = 'sched_wakeup' limit 1`);\n if (waking.numRows() === 0) {\n if (wakeup.numRows() === 0) return undefined;\n // Only use sched_wakeup if waking is not in the trace.\n event = 'sched_wakeup';\n }\n\n // Find the ts of the first sched_wakeup before the current slice.\n const queryWakeupTs = `select ts from instants where name = '${event}'\n and ref = ${utid} and ts < ${ts} order by ts desc limit 1`;\n const wakeResult = await this.args.engine.query(queryWakeupTs);\n if (wakeResult.numRows() === 0) {\n return undefined;\n }\n const wakeupTs = wakeResult.firstRow({ts: NUM}).ts;\n\n // Find the previous sched slice for the current utid.\n const queryPrevSched = `select ts from sched where utid = ${utid}\n and ts < ${ts} order by ts desc limit 1`;\n const prevSchedResult = await this.args.engine.query(queryPrevSched);\n\n // If this is the first sched slice for this utid or if the wakeup found\n // was after the previous slice then we know the wakeup was for this slice.\n if (prevSchedResult.numRows() === 0 ||\n wakeupTs < prevSchedResult.firstRow({ts: NUM}).ts) {\n return undefined;\n }\n // Find the sched slice with the utid of the waker running when the\n // sched wakeup occurred. This is the waker.\n let queryWaker = `select utid, cpu from sched where utid =\n (select EXTRACT_ARG(arg_set_id, 'waker_utid') from instants where name =\n '${event}' and ts = ${wakeupTs})\n and ts < ${wakeupTs} and ts + dur >= ${wakeupTs};`;\n let wakerResult = await this.args.engine.query(queryWaker);\n if (wakerResult.numRows() === 0) {\n // An old version of trace processor (that does not populate the\n // 'waker_utid' arg) might be in use. Try getting the same info from the\n // raw table).\n // TODO(b/206390308): Remove this workaround when\n // TRACE_PROCESSOR_CURRENT_API_VERSION is incremented.\n queryWaker = `select utid, cpu from sched where utid =\n (select utid from raw where name = '${event}' and ts = ${wakeupTs})\n and ts < ${wakeupTs} and ts + dur >= ${wakeupTs};`;\n wakerResult = await this.args.engine.query(queryWaker);\n }\n if (wakerResult.numRows() === 0) {\n return undefined;\n }\n const wakerRow = wakerResult.firstRow({utid: NUM, cpu: NUM});\n return {\n wakeupTs: fromNs(wakeupTs),\n wakerUtid: wakerRow.utid,\n wakerCpu: wakerRow.cpu\n };\n }\n}\n","// Copyright (C) 2020 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {Engine} from '../common/engine';\nimport {NUM} from '../common/query_result';\nimport {publishTraceErrors} from '../frontend/publish';\n\nimport {Controller} from './controller';\n\nexport interface TraceErrorControllerArgs {\n engine: Engine;\n}\n\nexport class TraceErrorController extends Controller<'main'> {\n private hasRun = false;\n constructor(private args: TraceErrorControllerArgs) {\n super('main');\n }\n\n run() {\n if (this.hasRun) {\n return;\n }\n this.hasRun = true;\n const engine = this.args.engine;\n engine\n .query(\n `SELECT sum(value) as sumValue FROM stats WHERE severity != 'info'`)\n .then(result => {\n const errors = result.firstRow({sumValue: NUM}).sumValue;\n publishTraceErrors(errors);\n });\n }\n}\n","// Copyright (C) 2019 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {defer, Deferred} from '../base/deferred';\nimport {assertExists, assertTrue} from '../base/logging';\n\nconst SLICE_SIZE = 32 * 1024 * 1024;\n\n// The object returned by TraceStream.readChunk() promise.\nexport interface TraceChunk {\n data: Uint8Array;\n eof: boolean;\n bytesRead: number;\n bytesTotal: number;\n}\n\n// Base interface for loading trace data in chunks.\n// The caller has to call readChunk() until TraceChunk.eof == true.\nexport interface TraceStream {\n readChunk(): Promise<TraceChunk>;\n}\n\n// Loads a trace from a File object. For the \"open file\" use case.\nexport class TraceFileStream implements TraceStream {\n private traceFile: Blob;\n private reader: FileReader;\n private pendingRead?: Deferred<TraceChunk>;\n private bytesRead = 0;\n\n constructor(traceFile: Blob) {\n this.traceFile = traceFile;\n this.reader = new FileReader();\n this.reader.onloadend = () => this.onLoad();\n }\n\n onLoad() {\n const res = assertExists(this.reader.result) as ArrayBuffer;\n const pendingRead = assertExists(this.pendingRead);\n this.pendingRead = undefined;\n if (this.reader.error) {\n pendingRead.reject(this.reader.error);\n return;\n }\n this.bytesRead += res.byteLength;\n pendingRead.resolve({\n data: new Uint8Array(res),\n eof: this.bytesRead >= this.traceFile.size,\n bytesRead: this.bytesRead,\n bytesTotal: this.traceFile.size,\n });\n }\n\n readChunk(): Promise<TraceChunk> {\n const sliceEnd = Math.min(this.bytesRead + SLICE_SIZE, this.traceFile.size);\n const slice = this.traceFile.slice(this.bytesRead, sliceEnd);\n this.pendingRead = defer<TraceChunk>();\n this.reader.readAsArrayBuffer(slice);\n return this.pendingRead;\n }\n}\n\n// Loads a trace from an ArrayBuffer. For the window.open() + postMessage\n// use-case, used by other dashboards (see post_message_handler.ts).\nexport class TraceBufferStream implements TraceStream {\n private traceBuf: ArrayBuffer;\n private bytesRead = 0;\n\n constructor(traceBuf: ArrayBuffer) {\n this.traceBuf = traceBuf;\n }\n\n readChunk(): Promise<TraceChunk> {\n assertTrue(this.bytesRead <= this.traceBuf.byteLength);\n const len = Math.min(SLICE_SIZE, this.traceBuf.byteLength - this.bytesRead);\n const data = new Uint8Array(this.traceBuf, this.bytesRead, len);\n this.bytesRead += len;\n return Promise.resolve({\n data,\n eof: this.bytesRead >= this.traceBuf.byteLength,\n bytesRead: this.bytesRead,\n bytesTotal: this.traceBuf.byteLength,\n });\n }\n}\n\n// Loads a stream from a URL via fetch(). For the permalink (?s=UUID) and\n// open url (?url=http://...) cases.\nexport class TraceHttpStream implements TraceStream {\n private bytesRead = 0;\n private bytesTotal = 0;\n private uri: string;\n private httpStream?: ReadableStreamReader<Uint8Array>;\n\n constructor(uri: string) {\n assertTrue(uri.startsWith('http://') || uri.startsWith('https://'));\n this.uri = uri;\n }\n\n async readChunk(): Promise<TraceChunk> {\n // Initialize the fetch() job on the first read request.\n if (this.httpStream === undefined) {\n const response = await fetch(this.uri);\n if (response.status !== 200) {\n throw new Error(`HTTP ${response.status} - ${response.statusText}`);\n }\n const len = response.headers.get('Content-Length');\n this.bytesTotal = len ? Number.parseInt(len, 10) : 0;\n this.httpStream = response.body!.getReader();\n }\n\n let eof = false;\n let bytesRead = 0;\n const chunks = [];\n\n // httpStream can return very small chunks which can slow down\n // TraceProcessor. Here we accumulate chunks until we get at least 32mb\n // or hit EOF.\n while (!eof && bytesRead < 32 * 1024 * 1024) {\n const res = await this.httpStream.read();\n if (res.value) {\n chunks.push(res.value);\n bytesRead += res.value.length;\n }\n eof = res.done;\n }\n\n let data;\n if (chunks.length === 1) {\n data = chunks[0];\n } else {\n // Stitch all the chunks into one big array:\n data = new Uint8Array(bytesRead);\n let offset = 0;\n for (const chunk of chunks) {\n data.set(chunk, offset);\n offset += chunk.length;\n }\n }\n\n this.bytesRead += data.length;\n\n return {\n data,\n eof,\n bytesRead: this.bytesRead,\n bytesTotal: this.bytesTotal,\n };\n }\n}\n","// Copyright (C) 2020 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as uuidv4 from 'uuid/v4';\n\nimport {assertExists} from '../base/logging';\nimport {\n Actions,\n AddTrackArgs,\n DeferredAction,\n} from '../common/actions';\nimport {Engine} from '../common/engine';\nimport {featureFlags, PERF_SAMPLE_FLAG} from '../common/feature_flags';\nimport {\n NUM,\n NUM_NULL,\n STR,\n STR_NULL,\n} from '../common/query_result';\nimport {SCROLLING_TRACK_GROUP, TrackKindPriority} from '../common/state';\nimport {ACTUAL_FRAMES_SLICE_TRACK_KIND} from '../tracks/actual_frames/common';\nimport {ANDROID_LOGS_TRACK_KIND} from '../tracks/android_log/common';\nimport {ASYNC_SLICE_TRACK_KIND} from '../tracks/async_slices/common';\nimport {SLICE_TRACK_KIND} from '../tracks/chrome_slices/common';\nimport {COUNTER_TRACK_KIND} from '../tracks/counter/common';\nimport {CPU_FREQ_TRACK_KIND} from '../tracks/cpu_freq/common';\nimport {CPU_PROFILE_TRACK_KIND} from '../tracks/cpu_profile/common';\nimport {CPU_SLICE_TRACK_KIND} from '../tracks/cpu_slices/common';\nimport {\n EXPECTED_FRAMES_SLICE_TRACK_KIND\n} from '../tracks/expected_frames/common';\nimport {HEAP_PROFILE_TRACK_KIND} from '../tracks/heap_profile/common';\nimport {\n PERF_SAMPLES_PROFILE_TRACK_KIND\n} from '../tracks/perf_samples_profile/common';\nimport {\n PROCESS_SCHEDULING_TRACK_KIND\n} from '../tracks/process_scheduling/common';\nimport {PROCESS_SUMMARY_TRACK} from '../tracks/process_summary/common';\nimport {THREAD_STATE_TRACK_KIND} from '../tracks/thread_state/common';\n\nconst TRACKS_V2_FLAG = featureFlags.register({\n id: 'tracksV2',\n name: 'Tracks V2',\n description: 'Show tracks built on top of the Track V2 API.',\n defaultValue: false,\n});\n\nconst MEM_DMA_COUNTER_NAME = 'mem.dma_heap';\nconst MEM_DMA = 'mem.dma_buffer';\nconst MEM_ION = 'mem.ion';\n\nexport async function decideTracks(\n engineId: string, engine: Engine): Promise<DeferredAction[]> {\n return (new TrackDecider(engineId, engine)).decideTracks();\n}\n\nclass TrackDecider {\n private engineId: string;\n private engine: Engine;\n private upidToUuid = new Map<number, string>();\n private utidToUuid = new Map<number, string>();\n private tracksToAdd: AddTrackArgs[] = [];\n private addTrackGroupActions: DeferredAction[] = [];\n\n constructor(engineId: string, engine: Engine) {\n this.engineId = engineId;\n this.engine = engine;\n }\n\n static getTrackName(args: Partial<{\n name: string | null,\n utid: number,\n processName: string|null,\n pid: number|null,\n threadName: string|null,\n tid: number|null,\n upid: number|null,\n kind: string,\n threadTrack: boolean\n }>) {\n const {\n name,\n upid,\n utid,\n processName,\n threadName,\n pid,\n tid,\n kind,\n threadTrack\n } = args;\n\n const hasName = name !== undefined && name !== null && name !== '[NULL]';\n const hasUpid = upid !== undefined && upid !== null;\n const hasUtid = utid !== undefined && utid !== null;\n const hasProcessName = processName !== undefined && processName !== null;\n const hasThreadName = threadName !== undefined && threadName !== null;\n const hasTid = tid !== undefined && tid !== null;\n const hasPid = pid !== undefined && pid !== null;\n const hasKind = kind !== undefined;\n const isThreadTrack = threadTrack !== undefined && threadTrack;\n\n // If we don't have any useful information (better than\n // upid/utid) we show the track kind to help with tracking\n // down where this is coming from.\n const kindSuffix = hasKind ? ` (${kind})` : '';\n\n if (isThreadTrack && hasName && hasTid) {\n return `${name} (${tid})`;\n } else if (hasName) {\n return `${name}`;\n } else if (hasUpid && hasPid && hasProcessName) {\n return `${processName} ${pid}`;\n } else if (hasUpid && hasPid) {\n return `Process ${pid}`;\n } else if (hasThreadName && hasTid) {\n return `${threadName} ${tid}`;\n } else if (hasTid) {\n return `Thread ${tid}`;\n } else if (hasUpid) {\n return `upid: ${upid}${kindSuffix}`;\n } else if (hasUtid) {\n return `utid: ${utid}${kindSuffix}`;\n } else if (hasKind) {\n return `Unnamed ${kind}`;\n }\n return 'Unknown';\n }\n\n async addCpuSchedulingTracks(): Promise<void> {\n const cpus = await this.engine.getCpus();\n for (const cpu of cpus) {\n this.tracksToAdd.push({\n engineId: this.engineId,\n kind: CPU_SLICE_TRACK_KIND,\n trackKindPriority: TrackKindPriority.ORDINARY,\n name: `Cpu ${cpu}`,\n trackGroup: SCROLLING_TRACK_GROUP,\n config: {\n cpu,\n }\n });\n }\n }\n\n async addCpuFreqTracks(): Promise<void> {\n const cpus = await this.engine.getCpus();\n\n const maxCpuFreqResult = await this.engine.query(`\n select ifnull(max(value), 0) as freq\n from counter c\n inner join cpu_counter_track t on c.track_id = t.id\n where name = 'cpufreq';\n `);\n const maxCpuFreq = maxCpuFreqResult.firstRow({freq: NUM}).freq;\n\n for (const cpu of cpus) {\n // Only add a cpu freq track if we have\n // cpu freq data.\n // TODO(hjd): Find a way to display cpu idle\n // events even if there are no cpu freq events.\n const cpuFreqIdleResult = await this.engine.query(`\n select\n id as cpuFreqId,\n (\n select id\n from cpu_counter_track\n where name = 'cpuidle'\n and cpu = ${cpu}\n limit 1\n ) as cpuIdleId\n from cpu_counter_track\n where name = 'cpufreq' and cpu = ${cpu}\n limit 1;\n `);\n\n if (cpuFreqIdleResult.numRows() > 0) {\n const row = cpuFreqIdleResult.firstRow({\n cpuFreqId: NUM,\n cpuIdleId: NUM_NULL,\n });\n const freqTrackId = row.cpuFreqId;\n const idleTrackId = row.cpuIdleId === null ? undefined : row.cpuIdleId;\n\n this.tracksToAdd.push({\n engineId: this.engineId,\n kind: CPU_FREQ_TRACK_KIND,\n trackKindPriority: TrackKindPriority.ORDINARY,\n name: `Cpu ${cpu} Frequency`,\n trackGroup: SCROLLING_TRACK_GROUP,\n config: {\n cpu,\n maximumValue: maxCpuFreq,\n freqTrackId,\n idleTrackId,\n }\n });\n }\n }\n }\n\n async addGlobalAsyncTracks(): Promise<void> {\n const rawGlobalAsyncTracks = await this.engine.query(`\n SELECT\n t.name as name,\n t.track_ids as trackIds,\n MAX(experimental_slice_layout.layout_depth) as maxDepth\n FROM (\n SELECT name, GROUP_CONCAT(track.id) AS track_ids\n FROM track\n WHERE track.type = \"track\" or track.type = \"gpu_track\"\n GROUP BY name\n ) AS t CROSS JOIN experimental_slice_layout\n WHERE t.track_ids = experimental_slice_layout.filter_track_ids\n GROUP BY t.track_ids\n ORDER BY t.name;\n `);\n const it = rawGlobalAsyncTracks.iter({\n name: STR_NULL,\n trackIds: STR,\n maxDepth: NUM,\n });\n\n for (; it.valid(); it.next()) {\n const name = it.name === null ? undefined : it.name;\n const rawTrackIds = it.trackIds;\n const trackIds = rawTrackIds.split(',').map(v => Number(v));\n const maxDepth = it.maxDepth;\n const kind = ASYNC_SLICE_TRACK_KIND;\n const track = {\n engineId: this.engineId,\n kind,\n trackKindPriority: TrackDecider.inferTrackKindPriority(name),\n trackGroup: SCROLLING_TRACK_GROUP,\n name: TrackDecider.getTrackName({name, kind}),\n config: {\n maxDepth,\n trackIds,\n },\n };\n this.tracksToAdd.push(track);\n }\n }\n\n async addGpuFreqTracks(): Promise<void> {\n const numGpus = await this.engine.getNumberOfGpus();\n const maxGpuFreqResult = await this.engine.query(`\n select ifnull(max(value), 0) as maximumValue\n from counter c\n inner join gpu_counter_track t on c.track_id = t.id\n where name = 'gpufreq';\n `);\n const maximumValue =\n maxGpuFreqResult.firstRow({maximumValue: NUM}).maximumValue;\n\n for (let gpu = 0; gpu < numGpus; gpu++) {\n // Only add a gpu freq track if we have\n // gpu freq data.\n const freqExistsResult = await this.engine.query(`\n select id\n from gpu_counter_track\n where name = 'gpufreq' and gpu_id = ${gpu}\n limit 1;\n `);\n if (freqExistsResult.numRows() > 0) {\n const trackId = freqExistsResult.firstRow({id: NUM}).id;\n this.tracksToAdd.push({\n engineId: this.engineId,\n kind: COUNTER_TRACK_KIND,\n name: `Gpu ${gpu} Frequency`,\n trackKindPriority: TrackKindPriority.ORDINARY,\n trackGroup: SCROLLING_TRACK_GROUP,\n config: {\n trackId,\n maximumValue,\n }\n });\n }\n }\n }\n\n async addGlobalCounterTracks(): Promise<void> {\n // Add global or GPU counter tracks that are not bound to any pid/tid.\n const globalCounters = await this.engine.query(`\n select name, id\n from (\n select name, id\n from counter_track\n where type = 'counter_track'\n union\n select name, id\n from gpu_counter_track\n where name != 'gpufreq'\n )\n order by name\n `);\n\n const it = globalCounters.iter({\n name: STR,\n id: NUM,\n });\n\n for (; it.valid(); it.next()) {\n const name = it.name;\n const trackId = it.id;\n this.tracksToAdd.push({\n engineId: this.engineId,\n kind: COUNTER_TRACK_KIND,\n name,\n trackKindPriority: TrackDecider.inferTrackKindPriority(name),\n trackGroup: SCROLLING_TRACK_GROUP,\n config: {\n name,\n trackId,\n }\n });\n }\n }\n\n async addCpuPerfCounterTracks(): Promise<void> {\n // Perf counter tracks are bound to CPUs, follow the scheduling and\n // frequency track naming convention (\"Cpu N ...\").\n // Note: we might not have a track for a given cpu if no data was seen from\n // it. This might look surprising in the UI, but placeholder tracks are\n // wasteful as there's no way of collapsing global counter tracks at the\n // moment.\n const result = await this.engine.query(`\n select printf(\"Cpu %u %s\", cpu, name) as name, id\n from perf_counter_track as pct\n order by perf_session_id asc, pct.name asc, cpu asc\n `);\n\n const it = result.iter({\n name: STR,\n id: NUM,\n });\n\n for (; it.valid(); it.next()) {\n const name = it.name;\n const trackId = it.id;\n this.tracksToAdd.push({\n engineId: this.engineId,\n kind: COUNTER_TRACK_KIND,\n name,\n trackKindPriority: TrackDecider.inferTrackKindPriority(name),\n trackGroup: SCROLLING_TRACK_GROUP,\n config: {\n name,\n trackId,\n }\n });\n }\n }\n\n async groupGlobalIonTracks(): Promise<void> {\n const ionTracks: AddTrackArgs[] = [];\n let hasSummary = false;\n for (const track of this.tracksToAdd) {\n const isIon = track.name.startsWith(MEM_ION);\n const isIonCounter = track.name === MEM_ION;\n const isDmaHeapCounter = track.name === MEM_DMA_COUNTER_NAME;\n const isDmaBuffferSlices = track.name === MEM_DMA;\n if (isIon || isIonCounter || isDmaHeapCounter || isDmaBuffferSlices) {\n ionTracks.push(track);\n }\n hasSummary = hasSummary || isIonCounter;\n hasSummary = hasSummary || isDmaHeapCounter;\n }\n\n if (ionTracks.length === 0 || !hasSummary) {\n return;\n }\n\n const id = uuidv4();\n const summaryTrackId = uuidv4();\n let foundSummary = false;\n\n for (const track of ionTracks) {\n if (!foundSummary &&\n [MEM_DMA_COUNTER_NAME, MEM_ION].includes(track.name)) {\n foundSummary = true;\n track.id = summaryTrackId;\n track.trackGroup = undefined;\n } else {\n track.trackGroup = id;\n }\n }\n\n const addGroup = Actions.addTrackGroup({\n engineId: this.engineId,\n summaryTrackId,\n name: MEM_DMA_COUNTER_NAME,\n id,\n collapsed: true,\n });\n this.addTrackGroupActions.push(addGroup);\n }\n\n async addLogsTrack(): Promise<void> {\n const result =\n await this.engine.query(`select count(1) as cnt from android_logs`);\n const count = result.firstRow({cnt: NUM}).cnt;\n\n if (count > 0) {\n this.tracksToAdd.push({\n engineId: this.engineId,\n kind: ANDROID_LOGS_TRACK_KIND,\n name: 'Android logs',\n trackKindPriority: TrackKindPriority.ORDINARY,\n trackGroup: SCROLLING_TRACK_GROUP,\n config: {}\n });\n }\n }\n\n async addAnnotationTracks(): Promise<void> {\n const sliceResult = await this.engine.query(`\n SELECT id, name, upid, group_name FROM annotation_slice_track`);\n\n const sliceIt = sliceResult.iter({\n id: NUM,\n name: STR,\n upid: NUM,\n group_name: STR_NULL,\n });\n\n interface GroupIds {\n id: string;\n summaryTrackId: string;\n }\n\n const groupNameToIds = new Map<string, GroupIds>();\n\n for (; sliceIt.valid(); sliceIt.next()) {\n const id = sliceIt.id;\n const name = sliceIt.name;\n const upid = sliceIt.upid;\n const groupName = sliceIt.group_name;\n\n let trackId = undefined;\n let trackGroupId =\n upid === 0 ? SCROLLING_TRACK_GROUP : this.upidToUuid.get(upid);\n\n if (groupName) {\n // If this is the first track encountered for a certain group,\n // create an id for the group and use this track as the group's\n // summary track.\n const groupIds = groupNameToIds.get(groupName);\n if (groupIds) {\n trackGroupId = groupIds.id;\n } else {\n trackGroupId = uuidv4();\n trackId = uuidv4();\n groupNameToIds.set(groupName, {\n id: trackGroupId,\n summaryTrackId: trackId,\n });\n }\n }\n\n this.tracksToAdd.push({\n id: trackId,\n engineId: this.engineId,\n kind: SLICE_TRACK_KIND,\n name,\n trackKindPriority: TrackDecider.inferTrackKindPriority(name),\n trackGroup: trackGroupId,\n config: {\n maxDepth: 0,\n namespace: 'annotation',\n trackId: id,\n },\n });\n }\n\n for (const [groupName, groupIds] of groupNameToIds) {\n const addGroup = Actions.addTrackGroup({\n engineId: this.engineId,\n summaryTrackId: groupIds.summaryTrackId,\n name: groupName,\n id: groupIds.id,\n collapsed: true,\n });\n this.addTrackGroupActions.push(addGroup);\n }\n\n const counterResult = await this.engine.query(`\n SELECT\n id,\n name,\n upid,\n min_value as minValue,\n max_value as maxValue\n FROM annotation_counter_track`);\n\n const counterIt = counterResult.iter({\n id: NUM,\n name: STR,\n upid: NUM,\n minValue: NUM_NULL,\n maxValue: NUM_NULL,\n });\n\n for (; counterIt.valid(); counterIt.next()) {\n const id = counterIt.id;\n const name = counterIt.name;\n const upid = counterIt.upid;\n const minimumValue =\n counterIt.minValue === null ? undefined : counterIt.minValue;\n const maximumValue =\n counterIt.maxValue === null ? undefined : counterIt.maxValue;\n this.tracksToAdd.push({\n engineId: this.engineId,\n kind: 'CounterTrack',\n name,\n trackKindPriority: TrackDecider.inferTrackKindPriority(name),\n trackGroup: upid === 0 ? SCROLLING_TRACK_GROUP :\n this.upidToUuid.get(upid),\n config: {\n name,\n namespace: 'annotation',\n trackId: id,\n minimumValue,\n maximumValue,\n }\n });\n }\n }\n\n async addThreadStateTracks(): Promise<void> {\n const result = await this.engine.query(`\n select\n utid,\n tid,\n upid,\n pid,\n thread.name as threadName\n from\n thread_state\n left join thread using(utid)\n left join process using(upid)\n where utid != 0\n group by utid`);\n\n const it = result.iter({\n utid: NUM,\n upid: NUM_NULL,\n tid: NUM_NULL,\n pid: NUM_NULL,\n threadName: STR_NULL,\n });\n for (; it.valid(); it.next()) {\n const utid = it.utid;\n const tid = it.tid;\n const upid = it.upid;\n const pid = it.pid;\n const threadName = it.threadName;\n const uuid = this.getUuidUnchecked(utid, upid);\n if (uuid === undefined) {\n // If a thread has no scheduling activity (i.e. the sched table has zero\n // rows for that uid) no track group will be created and we want to skip\n // the track creation as well.\n continue;\n }\n const kind = THREAD_STATE_TRACK_KIND;\n this.tracksToAdd.push({\n engineId: this.engineId,\n kind,\n name: TrackDecider.getTrackName({utid, tid, threadName, kind}),\n trackGroup: uuid,\n trackKindPriority:\n TrackDecider.inferTrackKindPriority(threadName, tid, pid),\n config: {utid, tid}\n });\n }\n }\n\n async addThreadCpuSampleTracks(): Promise<void> {\n const result = await this.engine.query(`\n select\n utid,\n tid,\n upid,\n thread.name as threadName\n from\n thread\n join (select utid\n from cpu_profile_stack_sample group by utid\n ) using(utid)\n left join process using(upid)\n where utid != 0\n group by utid`);\n\n const it = result.iter({\n utid: NUM,\n upid: NUM_NULL,\n tid: NUM_NULL,\n threadName: STR_NULL,\n });\n for (; it.valid(); it.next()) {\n const utid = it.utid;\n const upid = it.upid;\n const threadName = it.threadName;\n const uuid = this.getUuid(utid, upid);\n this.tracksToAdd.push({\n engineId: this.engineId,\n kind: CPU_PROFILE_TRACK_KIND,\n // TODO(hjd): The threadName can be null, use instead.\n trackKindPriority: TrackDecider.inferTrackKindPriority(threadName),\n name: `${threadName} (CPU Stack Samples)`,\n trackGroup: uuid,\n config: {utid},\n });\n }\n }\n\n async addThreadCounterTracks(): Promise<void> {\n const result = await this.engine.query(`\n select\n thread_counter_track.name as trackName,\n utid,\n upid,\n tid,\n thread.name as threadName,\n thread_counter_track.id as trackId,\n thread.start_ts as startTs,\n thread.end_ts as endTs\n from thread_counter_track\n join thread using(utid)\n left join process using(upid)\n where thread_counter_track.name not in ('time_in_state', 'thread_time')\n `);\n\n const it = result.iter({\n trackName: STR_NULL,\n utid: NUM,\n upid: NUM_NULL,\n tid: NUM_NULL,\n threadName: STR_NULL,\n startTs: NUM_NULL,\n trackId: NUM,\n endTs: NUM_NULL,\n });\n for (; it.valid(); it.next()) {\n const utid = it.utid;\n const tid = it.tid;\n const upid = it.upid;\n const trackId = it.trackId;\n const trackName = it.trackName;\n const threadName = it.threadName;\n const uuid = this.getUuid(utid, upid);\n const startTs = it.startTs === null ? undefined : it.startTs;\n const endTs = it.endTs === null ? undefined : it.endTs;\n const kind = COUNTER_TRACK_KIND;\n const name = TrackDecider.getTrackName(\n {name: trackName, utid, tid, kind, threadName, threadTrack: true});\n this.tracksToAdd.push({\n engineId: this.engineId,\n kind,\n name,\n trackKindPriority: TrackDecider.inferTrackKindPriority(threadName),\n trackGroup: uuid,\n config: {name, trackId, startTs, endTs, tid}\n });\n }\n }\n\n async addProcessAsyncSliceTracks(): Promise<void> {\n const result = await this.engine.query(`\n select\n process_track.upid as upid,\n process_track.name as trackName,\n group_concat(process_track.id) as trackIds,\n process.name as processName,\n process.pid as pid\n from process_track\n left join process using(upid)\n where\n process_track.name is null or\n process_track.name not like \"% Timeline\"\n group by\n process_track.upid,\n process_track.name\n `);\n\n const it = result.iter({\n upid: NUM,\n trackName: STR_NULL,\n trackIds: STR,\n processName: STR_NULL,\n pid: NUM_NULL,\n });\n for (; it.valid(); it.next()) {\n const upid = it.upid;\n const trackName = it.trackName;\n const rawTrackIds = it.trackIds;\n const trackIds = rawTrackIds.split(',').map(v => Number(v));\n const processName = it.processName;\n const pid = it.pid;\n\n const uuid = this.getUuid(0, upid);\n\n // TODO(hjd): 1+N queries are bad in the track_decider\n const depthResult = await this.engine.query(`\n SELECT IFNULL(MAX(layout_depth), 0) as depth\n FROM experimental_slice_layout('${rawTrackIds}');\n `);\n const maxDepth = depthResult.firstRow({depth: NUM}).depth;\n\n const kind = ASYNC_SLICE_TRACK_KIND;\n const name = TrackDecider.getTrackName(\n {name: trackName, upid, pid, processName, kind});\n this.tracksToAdd.push({\n engineId: this.engineId,\n kind,\n name,\n trackKindPriority: TrackDecider.inferTrackKindPriority(name),\n trackGroup: uuid,\n config: {\n trackIds,\n maxDepth,\n }\n });\n }\n }\n\n async addActualFramesTracks(): Promise<void> {\n const result = await this.engine.query(`\n select\n upid,\n trackName,\n trackIds,\n process.name as processName,\n process.pid as pid\n from (\n select\n process_track.upid as upid,\n process_track.name as trackName,\n group_concat(process_track.id) as trackIds\n from process_track\n where process_track.name like \"Actual Timeline\"\n group by\n process_track.upid,\n process_track.name\n ) left join process using(upid)\n `);\n\n const it = result.iter({\n upid: NUM,\n trackName: STR_NULL,\n trackIds: STR,\n processName: STR_NULL,\n pid: NUM_NULL,\n });\n for (; it.valid(); it.next()) {\n const upid = it.upid;\n const trackName = it.trackName;\n const rawTrackIds = it.trackIds;\n const trackIds = rawTrackIds.split(',').map(v => Number(v));\n const processName = it.processName;\n const pid = it.pid;\n\n const uuid = this.getUuid(0, upid);\n\n // TODO(hjd): 1+N queries are bad in the track_decider\n const depthResult = await this.engine.query(`\n SELECT IFNULL(MAX(layout_depth), 0) as depth\n FROM experimental_slice_layout('${rawTrackIds}');\n `);\n const maxDepth = depthResult.firstRow({depth: NUM}).depth;\n\n const kind = ACTUAL_FRAMES_SLICE_TRACK_KIND;\n const name = TrackDecider.getTrackName(\n {name: trackName, upid, pid, processName, kind});\n this.tracksToAdd.push({\n engineId: this.engineId,\n kind,\n name,\n trackKindPriority: TrackDecider.inferTrackKindPriority(trackName),\n trackGroup: uuid,\n config: {\n trackIds,\n maxDepth,\n }\n });\n }\n }\n\n async addExpectedFramesTracks(): Promise<void> {\n const result = await this.engine.query(`\n select\n upid,\n trackName,\n trackIds,\n process.name as processName,\n process.pid as pid\n from (\n select\n process_track.upid as upid,\n process_track.name as trackName,\n group_concat(process_track.id) as trackIds\n from process_track\n where process_track.name like \"Expected Timeline\"\n group by\n process_track.upid,\n process_track.name\n ) left join process using(upid)\n `);\n\n const it = result.iter({\n upid: NUM,\n trackName: STR_NULL,\n trackIds: STR,\n processName: STR_NULL,\n pid: NUM_NULL,\n });\n\n for (; it.valid(); it.next()) {\n const upid = it.upid;\n const trackName = it.trackName;\n const rawTrackIds = it.trackIds;\n const trackIds = rawTrackIds.split(',').map(v => Number(v));\n const processName = it.processName;\n const pid = it.pid;\n\n const uuid = this.getUuid(0, upid);\n\n // TODO(hjd): 1+N queries are bad in the track_decider\n const depthResult = await this.engine.query(`\n SELECT IFNULL(MAX(layout_depth), 0) as depth\n FROM experimental_slice_layout('${rawTrackIds}');\n `);\n const maxDepth = depthResult.firstRow({depth: NUM}).depth;\n\n const kind = EXPECTED_FRAMES_SLICE_TRACK_KIND;\n const name = TrackDecider.getTrackName(\n {name: trackName, upid, pid, processName, kind});\n this.tracksToAdd.push({\n engineId: this.engineId,\n kind,\n name,\n trackKindPriority: TrackDecider.inferTrackKindPriority(trackName),\n trackGroup: uuid,\n config: {\n trackIds,\n maxDepth,\n }\n });\n }\n }\n\n async addThreadSliceTracks(): Promise<void> {\n const result = await this.engine.query(`\n select\n thread_track.utid as utid,\n thread_track.id as trackId,\n thread_track.name as trackName,\n tid,\n thread.name as threadName,\n max(slice.depth) as maxDepth,\n (count(thread_slice.id) = count(slice.id)) as onlyThreadSlice,\n process.upid as upid,\n process.pid as pid\n from slice\n join thread_track on slice.track_id = thread_track.id\n join thread using(utid)\n left join process using(upid)\n left join thread_slice on slice.id = thread_slice.id\n group by thread_track.id\n `);\n\n const it = result.iter({\n utid: NUM,\n trackId: NUM,\n trackName: STR_NULL,\n tid: NUM_NULL,\n threadName: STR_NULL,\n maxDepth: NUM,\n upid: NUM_NULL,\n pid: NUM_NULL,\n onlyThreadSlice: NUM,\n });\n for (; it.valid(); it.next()) {\n const utid = it.utid;\n const trackId = it.trackId;\n const trackName = it.trackName;\n const tid = it.tid;\n const threadName = it.threadName;\n const upid = it.upid;\n const pid = it.pid;\n const maxDepth = it.maxDepth;\n const onlyThreadSlice = it.onlyThreadSlice;\n const trackKindPriority =\n TrackDecider.inferTrackKindPriority(threadName, tid, pid);\n\n const uuid = this.getUuid(utid, upid);\n\n const kind = SLICE_TRACK_KIND;\n const name = TrackDecider.getTrackName(\n {name: trackName, utid, tid, threadName, kind});\n this.tracksToAdd.push({\n engineId: this.engineId,\n kind,\n name,\n trackGroup: uuid,\n trackKindPriority,\n config: {trackId, maxDepth, tid, isThreadSlice: onlyThreadSlice === 1}\n });\n\n if (TRACKS_V2_FLAG.get()) {\n this.tracksToAdd.push({\n engineId: this.engineId,\n kind: 'GenericSliceTrack',\n name,\n trackGroup: uuid,\n trackKindPriority,\n config: {sqlTrackId: trackId},\n });\n }\n }\n }\n\n async addProcessCounterTracks(): Promise<void> {\n const result = await this.engine.query(`\n select\n process_counter_track.id as trackId,\n process_counter_track.name as trackName,\n upid,\n process.pid,\n process.name as processName,\n process.start_ts as startTs,\n process.end_ts as endTs\n from process_counter_track\n join process using(upid);\n `);\n const it = result.iter({\n trackId: NUM,\n trackName: STR_NULL,\n upid: NUM,\n pid: NUM_NULL,\n processName: STR_NULL,\n startTs: NUM_NULL,\n endTs: NUM_NULL,\n });\n for (let i = 0; it.valid(); ++i, it.next()) {\n const pid = it.pid;\n const upid = it.upid;\n const trackId = it.trackId;\n const trackName = it.trackName;\n const processName = it.processName;\n const uuid = this.getUuid(0, upid);\n const startTs = it.startTs === null ? undefined : it.startTs;\n const endTs = it.endTs === null ? undefined : it.endTs;\n const kind = COUNTER_TRACK_KIND;\n const name = TrackDecider.getTrackName(\n {name: trackName, upid, pid, kind, processName});\n this.tracksToAdd.push({\n engineId: this.engineId,\n kind,\n name,\n trackKindPriority: TrackDecider.inferTrackKindPriority(trackName),\n trackGroup: uuid,\n config: {\n name,\n trackId,\n startTs,\n endTs,\n }\n });\n }\n }\n\n async addProcessHeapProfileTracks(): Promise<void> {\n const result = await this.engine.query(`\n select distinct(upid) from heap_profile_allocation\n union\n select distinct(upid) from heap_graph_object\n `);\n for (const it = result.iter({upid: NUM}); it.valid(); it.next()) {\n const upid = it.upid;\n const uuid = this.getUuid(0, upid);\n this.tracksToAdd.push({\n engineId: this.engineId,\n kind: HEAP_PROFILE_TRACK_KIND,\n trackKindPriority: TrackKindPriority.ORDINARY,\n name: `Heap Profile`,\n trackGroup: uuid,\n config: {upid}\n });\n }\n }\n\n async addProcessPerfSamplesTracks(): Promise<void> {\n const result = await this.engine.query(`\n select distinct(process.upid) from process\n join thread on process.upid = thread.upid\n join perf_sample on thread.utid = perf_sample.utid\n `);\n for (const it = result.iter({upid: NUM}); it.valid(); it.next()) {\n const upid = it.upid;\n const uuid = this.getUuid(0, upid);\n this.tracksToAdd.push({\n engineId: this.engineId,\n kind: PERF_SAMPLES_PROFILE_TRACK_KIND,\n trackKindPriority: TrackKindPriority.ORDINARY,\n name: `Perf Samples`,\n trackGroup: uuid,\n config: {upid}\n });\n }\n }\n\n getUuidUnchecked(utid: number, upid: number|null) {\n return upid === null ? this.utidToUuid.get(utid) :\n this.upidToUuid.get(upid);\n }\n\n getUuid(utid: number, upid: number|null) {\n return assertExists(this.getUuidUnchecked(utid, upid));\n }\n\n getOrCreateUuid(utid: number, upid: number|null) {\n let uuid = this.getUuidUnchecked(utid, upid);\n if (uuid === undefined) {\n uuid = uuidv4();\n if (upid === null) {\n this.utidToUuid.set(utid, uuid);\n } else {\n this.upidToUuid.set(upid, uuid);\n }\n }\n return uuid;\n }\n\n async addProcessTrackGroups(): Promise<void> {\n // We want to create groups of tracks in a specific order.\n // The tracks should be grouped:\n // by upid\n // or (if upid is null) by utid\n // the groups should be sorted by:\n // has a heap profile or not\n // total cpu time *for the whole parent process*\n // upid\n // utid\n const result = await this.engine.query(`\n select\n the_tracks.upid,\n the_tracks.utid,\n total_dur as hasSched,\n hasHeapProfiles,\n process.pid as pid,\n thread.tid as tid,\n process.name as processName,\n thread.name as threadName,\n process.arg_set_id as argSetId\n from (\n select upid, 0 as utid from process_track\n union\n select upid, 0 as utid from process_counter_track\n union\n select upid, utid from thread_counter_track join thread using(utid)\n union\n select upid, utid from thread_track join thread using(utid)\n union\n select upid, utid from sched join thread using(utid) group by utid\n union\n select distinct(process.upid), 0 as utid from process\n join thread on process.upid = thread.upid\n join perf_sample on thread.utid = perf_sample.utid\n union\n select upid, utid from (\n select distinct(utid) from cpu_profile_stack_sample\n ) join thread using(utid)\n union\n select distinct(upid) as upid, 0 as utid from heap_profile_allocation\n union\n select distinct(upid) as upid, 0 as utid from heap_graph_object\n ) the_tracks\n left join (select upid, sum(dur) as total_dur\n from sched join thread using(utid)\n group by upid\n ) using(upid)\n left join (select upid, max(value) as total_cycles\n from android_thread_time_in_state_event\n group by upid\n ) using(upid)\n left join (\n select\n distinct(upid) as upid,\n true as hasHeapProfiles\n from heap_profile_allocation\n union\n select\n distinct(upid) as upid,\n true as hasHeapProfiles\n from heap_graph_object\n ) using (upid)\n left join thread using(utid)\n left join process using(upid)\n order by\n hasHeapProfiles desc,\n total_dur desc,\n total_cycles desc,\n the_tracks.upid,\n the_tracks.utid;\n `);\n\n const it = result.iter({\n utid: NUM,\n upid: NUM_NULL,\n tid: NUM_NULL,\n pid: NUM_NULL,\n threadName: STR_NULL,\n processName: STR_NULL,\n hasSched: NUM_NULL,\n hasHeapProfiles: NUM_NULL,\n argSetId: NUM_NULL\n });\n for (; it.valid(); it.next()) {\n const utid = it.utid;\n const tid = it.tid;\n const upid = it.upid;\n const pid = it.pid;\n const threadName = it.threadName;\n const processName = it.processName;\n const hasSched = !!it.hasSched;\n const hasHeapProfiles = !!it.hasHeapProfiles;\n\n const labels = [];\n if (it.argSetId !== null) {\n const result = await this.engine.query(`\n select string_value as label\n from args\n where arg_set_id = ${it.argSetId}\n `);\n const argIt = result.iter({label: STR_NULL});\n for (; argIt.valid(); argIt.next()) {\n if (argIt.label !== null) {\n labels.push(argIt.label);\n }\n }\n }\n\n // Group by upid if present else by utid.\n let pUuid =\n upid === null ? this.utidToUuid.get(utid) : this.upidToUuid.get(upid);\n // These should only happen once for each track group.\n if (pUuid === undefined) {\n pUuid = this.getOrCreateUuid(utid, upid);\n const summaryTrackId = uuidv4();\n\n const pidForColor = pid || tid || upid || utid || 0;\n const kind =\n hasSched ? PROCESS_SCHEDULING_TRACK_KIND : PROCESS_SUMMARY_TRACK;\n\n this.tracksToAdd.push({\n id: summaryTrackId,\n engineId: this.engineId,\n kind,\n trackKindPriority: TrackDecider.inferTrackKindPriority(threadName),\n name: `${upid === null ? tid : pid} summary`,\n config: {pidForColor, upid, utid, tid},\n labels,\n });\n\n const name = TrackDecider.getTrackName(\n {utid, processName, pid, threadName, tid, upid});\n const addTrackGroup = Actions.addTrackGroup({\n engineId: this.engineId,\n summaryTrackId,\n name,\n id: pUuid,\n // Perf profiling tracks remain collapsed, otherwise we would have too\n // many expanded process tracks for some perf traces, leading to\n // jankyness.\n collapsed: !hasHeapProfiles,\n });\n\n this.addTrackGroupActions.push(addTrackGroup);\n }\n }\n }\n\n async decideTracks(): Promise<DeferredAction[]> {\n // Add first the global tracks that don't require per-process track groups.\n await this.addCpuSchedulingTracks();\n await this.addCpuFreqTracks();\n await this.addGlobalAsyncTracks();\n await this.addGpuFreqTracks();\n await this.addGlobalCounterTracks();\n await this.addCpuPerfCounterTracks();\n await this.addAnnotationTracks();\n await this.groupGlobalIonTracks();\n\n // Create the per-process track groups. Note that this won't necessarily\n // create a track per process. If a process has been completely idle and has\n // no sched events, no track group will be emitted.\n // Will populate this.addTrackGroupActions\n await this.addProcessTrackGroups();\n\n await this.addProcessHeapProfileTracks();\n if (PERF_SAMPLE_FLAG.get()) {\n await this.addProcessPerfSamplesTracks();\n }\n await this.addProcessCounterTracks();\n await this.addProcessAsyncSliceTracks();\n await this.addActualFramesTracks();\n await this.addExpectedFramesTracks();\n await this.addThreadCounterTracks();\n await this.addThreadStateTracks();\n await this.addThreadSliceTracks();\n await this.addThreadCpuSampleTracks();\n await this.addLogsTrack();\n\n this.addTrackGroupActions.push(\n Actions.addTracks({tracks: this.tracksToAdd}));\n return this.addTrackGroupActions;\n }\n\n private static inferTrackKindPriority(\n threadName?: string|null, tid?: number|null,\n pid?: number|null): TrackKindPriority {\n if (pid !== undefined && pid !== null && pid === tid) {\n return TrackKindPriority.MAIN_THREAD;\n }\n if (threadName === undefined || threadName === null) {\n return TrackKindPriority.ORDINARY;\n }\n\n switch (true) {\n case /.*RenderThread.*/.test(threadName):\n return TrackKindPriority.RENDER_THREAD;\n case /.*GPU completion.*/.test(threadName):\n return TrackKindPriority.GPU_COMPLETION;\n default:\n return TrackKindPriority.ORDINARY;\n }\n }\n}\n","// Copyright (C) 2018 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {assertExists, assertTrue} from '../base/logging';\nimport {\n Actions,\n DeferredAction,\n} from '../common/actions';\nimport {cacheTrace} from '../common/cache_manager';\nimport {TRACE_MARGIN_TIME_S} from '../common/constants';\nimport {Engine} from '../common/engine';\nimport {featureFlags, Flag, PERF_SAMPLE_FLAG} from '../common/feature_flags';\nimport {HttpRpcEngine} from '../common/http_rpc_engine';\nimport {NUM, NUM_NULL, QueryError, STR, STR_NULL} from '../common/query_result';\nimport {EngineMode} from '../common/state';\nimport {TimeSpan, toNs, toNsCeil, toNsFloor} from '../common/time';\nimport {resetEngineWorker, WasmEngineProxy} from '../common/wasm_engine_proxy';\nimport {\n globals as frontendGlobals,\n QuantizedLoad,\n ThreadDesc\n} from '../frontend/globals';\nimport {\n publishHasFtrace,\n publishMetricError,\n publishOverviewData,\n publishThreads\n} from '../frontend/publish';\nimport {Router} from '../frontend/router';\n\nimport {\n CounterAggregationController\n} from './aggregation/counter_aggregation_controller';\nimport {\n CpuAggregationController\n} from './aggregation/cpu_aggregation_controller';\nimport {\n CpuByProcessAggregationController\n} from './aggregation/cpu_by_process_aggregation_controller';\nimport {\n FrameAggregationController\n} from './aggregation/frame_aggregation_controller';\nimport {\n SliceAggregationController\n} from './aggregation/slice_aggregation_controller';\nimport {\n ThreadAggregationController\n} from './aggregation/thread_aggregation_controller';\nimport {Child, Children, Controller} from './controller';\nimport {\n CpuProfileController,\n CpuProfileControllerArgs\n} from './cpu_profile_controller';\nimport {\n FlamegraphController,\n FlamegraphControllerArgs\n} from './flamegraph_controller';\nimport {\n FlowEventsController,\n FlowEventsControllerArgs\n} from './flow_events_controller';\nimport {globals} from './globals';\nimport {LoadingManager} from './loading_manager';\nimport {LogsController} from './logs_controller';\nimport {MetricsController} from './metrics_controller';\nimport {\n PivotTableController,\n PivotTableControllerArgs\n} from './pivot_table_controller';\nimport {QueryController, QueryControllerArgs} from './query_controller';\nimport {SearchController} from './search_controller';\nimport {\n SelectionController,\n SelectionControllerArgs\n} from './selection_controller';\nimport {\n TraceErrorController,\n} from './trace_error_controller';\nimport {\n TraceBufferStream,\n TraceFileStream,\n TraceHttpStream,\n TraceStream\n} from './trace_stream';\nimport {TrackControllerArgs, trackControllerRegistry} from './track_controller';\nimport {decideTracks} from './track_decider';\n\ntype States = 'init'|'loading_trace'|'ready';\n\nconst METRICS = [\n 'android_startup',\n 'android_ion',\n 'android_lmk',\n 'android_dma_heap',\n 'android_thread_time_in_state',\n 'android_surfaceflinger',\n 'android_batt',\n 'android_sysui_cuj',\n 'android_jank',\n 'android_camera',\n 'chrome_dropped_frames',\n 'trace_metadata',\n];\nconst FLAGGED_METRICS: Array<[Flag, string]> = METRICS.map(m => {\n const id = `forceMetric${m}`;\n let name = m.split('_').join(' ') + ' metric';\n name = name[0].toUpperCase() + name.slice(1);\n const flag = featureFlags.register({\n id,\n name,\n description: `Overrides running the '${m}' metric at import time.`,\n defaultValue: true,\n });\n return [flag, m];\n});\n\n// TraceController handles handshakes with the frontend for everything that\n// concerns a single trace. It owns the WASM trace processor engine, handles\n// tracks data and SQL queries. There is one TraceController instance for each\n// trace opened in the UI (for now only one trace is supported).\nexport class TraceController extends Controller<States> {\n private readonly engineId: string;\n private engine?: Engine;\n\n constructor(engineId: string) {\n super('init');\n this.engineId = engineId;\n }\n\n run() {\n const engineCfg = assertExists(globals.state.engines[this.engineId]);\n switch (this.state) {\n case 'init':\n this.loadTrace()\n .then(mode => {\n globals.dispatch(Actions.setEngineReady({\n engineId: this.engineId,\n ready: true,\n mode,\n }));\n })\n .catch(err => {\n this.updateStatus(`${err}`);\n throw err;\n });\n this.updateStatus('Opening trace');\n this.setState('loading_trace');\n break;\n\n case 'loading_trace':\n // Stay in this state until loadTrace() returns and marks the engine as\n // ready.\n if (this.engine === undefined || !engineCfg.ready) return;\n this.setState('ready');\n break;\n\n case 'ready':\n // At this point we are ready to serve queries and handle tracks.\n const engine = assertExists(this.engine);\n const childControllers: Children = [];\n\n // Create a TrackController for each track.\n for (const trackId of Object.keys(globals.state.tracks)) {\n const trackCfg = globals.state.tracks[trackId];\n if (trackCfg.engineId !== this.engineId) continue;\n if (!trackControllerRegistry.has(trackCfg.kind)) continue;\n const trackCtlFactory = trackControllerRegistry.get(trackCfg.kind);\n const trackArgs: TrackControllerArgs = {trackId, engine};\n childControllers.push(Child(trackId, trackCtlFactory, trackArgs));\n }\n\n // Create a QueryController for each query.\n for (const queryId of Object.keys(globals.state.queries)) {\n const queryArgs: QueryControllerArgs = {queryId, engine};\n childControllers.push(Child(queryId, QueryController, queryArgs));\n }\n\n const selectionArgs: SelectionControllerArgs = {engine};\n childControllers.push(\n Child('selection', SelectionController, selectionArgs));\n\n const flowEventsArgs: FlowEventsControllerArgs = {engine};\n childControllers.push(\n Child('flowEvents', FlowEventsController, flowEventsArgs));\n\n const cpuProfileArgs: CpuProfileControllerArgs = {engine};\n childControllers.push(\n Child('cpuProfile', CpuProfileController, cpuProfileArgs));\n\n const flamegraphArgs: FlamegraphControllerArgs = {engine};\n childControllers.push(\n Child('flamegraph', FlamegraphController, flamegraphArgs));\n childControllers.push(Child(\n 'cpu_aggregation',\n CpuAggregationController,\n {engine, kind: 'cpu_aggregation'}));\n childControllers.push(Child(\n 'thread_aggregation',\n ThreadAggregationController,\n {engine, kind: 'thread_state_aggregation'}));\n childControllers.push(Child(\n 'cpu_process_aggregation',\n CpuByProcessAggregationController,\n {engine, kind: 'cpu_by_process_aggregation'}));\n childControllers.push(Child(\n 'slice_aggregation',\n SliceAggregationController,\n {engine, kind: 'slice_aggregation'}));\n childControllers.push(Child(\n 'counter_aggregation',\n CounterAggregationController,\n {engine, kind: 'counter_aggregation'}));\n childControllers.push(Child(\n 'frame_aggregation',\n FrameAggregationController,\n {engine, kind: 'frame_aggregation'}));\n childControllers.push(Child('search', SearchController, {\n engine,\n app: globals,\n }));\n\n childControllers.push(Child('logs', LogsController, {\n engine,\n app: globals,\n }));\n childControllers.push(\n Child('traceError', TraceErrorController, {engine}));\n childControllers.push(Child('metrics', MetricsController, {engine}));\n\n // Create a PivotTableController for each pivot table.\n for (const pivotTableId of Object.keys(globals.state.pivotTable)) {\n const pivotTableArgs:\n PivotTableControllerArgs = {pivotTableId, engine};\n childControllers.push(\n Child(pivotTableId, PivotTableController, pivotTableArgs));\n }\n\n return childControllers;\n\n default:\n throw new Error(`unknown state ${this.state}`);\n }\n return;\n }\n\n onDestroy() {\n frontendGlobals.engines.delete(this.engineId);\n }\n\n private async loadTrace(): Promise<EngineMode> {\n this.updateStatus('Creating trace processor');\n // Check if there is any instance of the trace_processor_shell running in\n // HTTP RPC mode (i.e. trace_processor_shell -D).\n let engineMode: EngineMode;\n let useRpc = false;\n if (globals.state.newEngineMode === 'USE_HTTP_RPC_IF_AVAILABLE') {\n useRpc = (await HttpRpcEngine.checkConnection()).connected;\n }\n let engine;\n if (useRpc) {\n console.log('Opening trace using native accelerator over HTTP+RPC');\n engineMode = 'HTTP_RPC';\n engine = new HttpRpcEngine(this.engineId, LoadingManager.getInstance);\n engine.errorHandler = (err) => {\n globals.dispatch(\n Actions.setEngineFailed({mode: 'HTTP_RPC', failure: `${err}`}));\n throw err;\n };\n } else {\n console.log('Opening trace using built-in WASM engine');\n engineMode = 'WASM';\n const enginePort = resetEngineWorker();\n engine = new WasmEngineProxy(\n this.engineId, enginePort, LoadingManager.getInstance);\n }\n this.engine = engine;\n\n frontendGlobals.engines.set(this.engineId, engine);\n globals.dispatch(Actions.setEngineReady({\n engineId: this.engineId,\n ready: false,\n mode: engineMode,\n }));\n const engineCfg = assertExists(globals.state.engines[this.engineId]);\n let traceStream: TraceStream|undefined;\n if (engineCfg.source.type === 'FILE') {\n traceStream = new TraceFileStream(engineCfg.source.file);\n } else if (engineCfg.source.type === 'ARRAY_BUFFER') {\n traceStream = new TraceBufferStream(engineCfg.source.buffer);\n } else if (engineCfg.source.type === 'URL') {\n traceStream = new TraceHttpStream(engineCfg.source.url);\n } else if (engineCfg.source.type === 'HTTP_RPC') {\n traceStream = undefined;\n } else {\n throw new Error(`Unknown source: ${JSON.stringify(engineCfg.source)}`);\n }\n\n // |traceStream| can be undefined in the case when we are using the external\n // HTTP+RPC endpoint and the trace processor instance has already loaded\n // a trace (because it was passed as a cmdline argument to\n // trace_processor_shell). In this case we don't want the UI to load any\n // file/stream and we just want to jump to the loading phase.\n if (traceStream !== undefined) {\n const tStart = performance.now();\n for (;;) {\n const res = await traceStream.readChunk();\n await this.engine.parse(res.data);\n const elapsed = (performance.now() - tStart) / 1000;\n let status = 'Loading trace ';\n if (res.bytesTotal > 0) {\n const progress = Math.round(res.bytesRead / res.bytesTotal * 100);\n status += `${progress}%`;\n } else {\n status += `${Math.round(res.bytesRead / 1e6)} MB`;\n }\n status += ` - ${Math.ceil(res.bytesRead / elapsed / 1e6)} MB/s`;\n this.updateStatus(status);\n if (res.eof) break;\n }\n await this.engine.notifyEof();\n } else {\n assertTrue(this.engine instanceof HttpRpcEngine);\n await this.engine.restoreInitialTables();\n }\n\n // traceUuid will be '' if the trace is not cacheable (URL or RPC).\n const traceUuid = await this.cacheCurrentTrace();\n\n const traceTime = await this.engine.getTraceTimeBounds();\n let startSec = traceTime.start;\n let endSec = traceTime.end;\n startSec -= TRACE_MARGIN_TIME_S;\n endSec += TRACE_MARGIN_TIME_S;\n const traceTimeState = {\n startSec,\n endSec,\n };\n\n const emptyOmniboxState = {\n omnibox: '',\n mode: frontendGlobals.state.frontendLocalState.omniboxState.mode ||\n 'SEARCH',\n lastUpdate: Date.now() / 1000\n };\n\n const actions: DeferredAction[] = [\n Actions.setOmnibox(emptyOmniboxState),\n Actions.setTraceUuid({traceUuid}),\n Actions.setTraceTime(traceTimeState)\n ];\n\n let visibleStartSec = startSec;\n let visibleEndSec = endSec;\n const mdTime = await this.engine.getTracingMetadataTimeBounds();\n // make sure the bounds hold\n if (Math.max(visibleStartSec, mdTime.start - TRACE_MARGIN_TIME_S) <\n Math.min(visibleEndSec, mdTime.end + TRACE_MARGIN_TIME_S)) {\n visibleStartSec =\n Math.max(visibleStartSec, mdTime.start - TRACE_MARGIN_TIME_S);\n visibleEndSec = Math.min(visibleEndSec, mdTime.end + TRACE_MARGIN_TIME_S);\n }\n\n // We don't know the resolution at this point. However this will be\n // replaced in 50ms so a guess is fine.\n const resolution = (visibleStartSec - visibleEndSec) / 1000;\n actions.push(Actions.setVisibleTraceTime({\n startSec: visibleStartSec,\n endSec: visibleEndSec,\n lastUpdate: Date.now() / 1000,\n resolution\n }));\n\n globals.dispatchMultiple(actions);\n Router.navigate(`#!/viewer?trace_id=${traceUuid}`);\n\n // Make sure the helper views are available before we start adding tracks.\n await this.initialiseHelperViews();\n\n {\n // When we reload from a permalink don't create extra tracks:\n const {pinnedTracks, tracks} = globals.state;\n if (!pinnedTracks.length && !Object.keys(tracks).length) {\n await this.listTracks();\n }\n }\n\n await this.listThreads();\n await this.loadTimelineOverview(traceTime);\n\n {\n // A quick heuristic to check if the trace has ftrace events. This is\n // based on the assumption that most traces that have ftrace either:\n // - Are proto traces captured via perfetto, in which case traced_probes\n // emits ftrace per-cpu stats that end up in the stats table.\n // - Have a raw event with non-zero cpu or utid.\n // Notes:\n // - The \"+1 > 1\" is to avoid pushing down the constraints to the \"raw\"\n // table, which would compute a full column filter without being aware\n // of the limit 1, and instead delegate the filtering to the iterator.\n const query = `select '_' as _ from raw\n where cpu + 1 > 1 or utid + 1 > 1 limit 1`;\n const result = await assertExists(this.engine).query(query);\n const hasFtrace = result.numRows() > 0;\n publishHasFtrace(hasFtrace);\n }\n\n globals.dispatch(Actions.removeDebugTrack({}));\n globals.dispatch(Actions.sortThreadTracks({}));\n\n await this.selectFirstHeapProfile();\n if (PERF_SAMPLE_FLAG.get()) {\n await this.selectPerfSample();\n }\n\n return engineMode;\n }\n\n private async selectPerfSample() {\n const query = `select ts, upid\n from perf_sample\n join thread using (utid)\n order by ts desc limit 1`;\n const profile = await assertExists(this.engine).query(query);\n if (profile.numRows() !== 1) return;\n const row = profile.firstRow({ts: NUM, upid: NUM});\n const ts = row.ts;\n const upid = row.upid;\n globals.dispatch(\n Actions.selectPerfSamples({id: 0, upid, ts, type: 'perf'}));\n }\n\n private async selectFirstHeapProfile() {\n const query = `select * from\n (select distinct(ts) as ts, 'native' as type,\n upid from heap_profile_allocation\n union\n select distinct(graph_sample_ts) as ts, 'graph' as type, upid from\n heap_graph_object) order by ts limit 1`;\n const profile = await assertExists(this.engine).query(query);\n if (profile.numRows() !== 1) return;\n const row = profile.firstRow({ts: NUM, type: STR, upid: NUM});\n const ts = row.ts;\n const type = row.type;\n const upid = row.upid;\n globals.dispatch(Actions.selectHeapProfile({id: 0, upid, ts, type}));\n }\n\n private async listTracks() {\n this.updateStatus('Loading tracks');\n const engine = assertExists<Engine>(this.engine);\n const actions = await decideTracks(this.engineId, engine);\n globals.dispatchMultiple(actions);\n }\n\n private async listThreads() {\n this.updateStatus('Reading thread list');\n const query = `select\n utid,\n tid,\n pid,\n ifnull(thread.name, '') as threadName,\n ifnull(\n case when length(process.name) > 0 then process.name else null end,\n thread.name) as procName,\n process.cmdline as cmdline\n from (select * from thread order by upid) as thread\n left join (select * from process order by upid) as process\n using(upid)`;\n const result = await assertExists(this.engine).query(query);\n const threads: ThreadDesc[] = [];\n const it = result.iter({\n utid: NUM,\n tid: NUM,\n pid: NUM_NULL,\n threadName: STR,\n procName: STR_NULL,\n cmdline: STR_NULL,\n });\n for (; it.valid(); it.next()) {\n const utid = it.utid;\n const tid = it.tid;\n const pid = it.pid === null ? undefined : it.pid;\n const threadName = it.threadName;\n const procName = it.procName === null ? undefined : it.procName;\n const cmdline = it.cmdline === null ? undefined : it.cmdline;\n threads.push({utid, tid, threadName, pid, procName, cmdline});\n }\n publishThreads(threads);\n }\n\n private async loadTimelineOverview(traceTime: TimeSpan) {\n const engine = assertExists<Engine>(this.engine);\n const numSteps = 100;\n const stepSec = traceTime.duration / numSteps;\n let hasSchedOverview = false;\n for (let step = 0; step < numSteps; step++) {\n this.updateStatus(\n 'Loading overview ' +\n `${Math.round((step + 1) / numSteps * 1000) / 10}%`);\n const startSec = traceTime.start + step * stepSec;\n const startNs = toNsFloor(startSec);\n const endSec = startSec + stepSec;\n const endNs = toNsCeil(endSec);\n\n // Sched overview.\n const schedResult = await engine.query(\n `select sum(dur)/${stepSec}/1e9 as load, cpu from sched ` +\n `where ts >= ${startNs} and ts < ${endNs} and utid != 0 ` +\n 'group by cpu order by cpu');\n const schedData: {[key: string]: QuantizedLoad} = {};\n const it = schedResult.iter({load: NUM, cpu: NUM});\n for (; it.valid(); it.next()) {\n const load = it.load;\n const cpu = it.cpu;\n schedData[cpu] = {startSec, endSec, load};\n hasSchedOverview = true;\n }\n publishOverviewData(schedData);\n }\n\n if (hasSchedOverview) {\n return;\n }\n\n // Slices overview.\n const traceStartNs = toNs(traceTime.start);\n const stepSecNs = toNs(stepSec);\n const sliceResult = await engine.query(`select\n bucket,\n upid,\n sum(utid_sum) / cast(${stepSecNs} as float) as load\n from thread\n inner join (\n select\n ifnull(cast((ts - ${traceStartNs})/${\n stepSecNs} as int), 0) as bucket,\n sum(dur) as utid_sum,\n utid\n from slice\n inner join thread_track on slice.track_id = thread_track.id\n group by bucket, utid\n ) using(utid)\n where upid is not null\n group by bucket, upid`);\n\n const slicesData: {[key: string]: QuantizedLoad[]} = {};\n const it = sliceResult.iter({bucket: NUM, upid: NUM, load: NUM});\n for (; it.valid(); it.next()) {\n const bucket = it.bucket;\n const upid = it.upid;\n const load = it.load;\n\n const startSec = traceTime.start + stepSec * bucket;\n const endSec = startSec + stepSec;\n\n const upidStr = upid.toString();\n let loadArray = slicesData[upidStr];\n if (loadArray === undefined) {\n loadArray = slicesData[upidStr] = [];\n }\n loadArray.push({startSec, endSec, load});\n }\n publishOverviewData(slicesData);\n }\n\n private async cacheCurrentTrace(): Promise<string> {\n const engine = assertExists(this.engine);\n const result = await engine.query(`select str_value as uuid from metadata\n where name = 'trace_uuid'`);\n if (result.numRows() === 0) {\n // One of the cases covered is an empty trace.\n return '';\n }\n const traceUuid = result.firstRow({uuid: STR}).uuid;\n const engineConfig = assertExists(globals.state.engines[engine.id]);\n if (!(await cacheTrace(engineConfig.source, traceUuid))) {\n // If the trace is not cacheable (cacheable means it has been opened from\n // URL or RPC) only append '?trace_id' to the URL, without the trace_id\n // value. Doing otherwise would cause an error if the tab is discarded or\n // the user hits the reload button because the trace is not in the cache.\n return '';\n }\n return traceUuid;\n }\n\n async initialiseHelperViews() {\n const engine = assertExists<Engine>(this.engine);\n\n this.updateStatus('Creating annotation counter track table');\n // Create the helper tables for all the annotations related data.\n // NULL in min/max means \"figure it out per track in the usual way\".\n await engine.query(`\n CREATE TABLE annotation_counter_track(\n id INTEGER PRIMARY KEY,\n name STRING,\n __metric_name STRING,\n upid INTEGER,\n min_value DOUBLE,\n max_value DOUBLE\n );\n `);\n this.updateStatus('Creating annotation slice track table');\n await engine.query(`\n CREATE TABLE annotation_slice_track(\n id INTEGER PRIMARY KEY,\n name STRING,\n __metric_name STRING,\n upid INTEGER,\n group_name STRING\n );\n `);\n\n this.updateStatus('Creating annotation counter table');\n await engine.query(`\n CREATE TABLE annotation_counter(\n id BIG INT,\n track_id INT,\n ts BIG INT,\n value DOUBLE,\n PRIMARY KEY (track_id, ts)\n ) WITHOUT ROWID;\n `);\n this.updateStatus('Creating annotation slice table');\n await engine.query(`\n CREATE TABLE annotation_slice(\n id INTEGER PRIMARY KEY,\n track_id INT,\n ts BIG INT,\n dur BIG INT,\n depth INT,\n cat STRING,\n name STRING,\n UNIQUE(track_id, ts)\n );\n `);\n\n\n for (const [flag, metric] of FLAGGED_METRICS) {\n if (!flag.get()) {\n continue;\n }\n\n\n this.updateStatus(`Computing ${metric} metric`);\n try {\n // We don't care about the actual result of metric here as we are just\n // interested in the annotation tracks.\n await engine.computeMetric([metric]);\n } catch (e) {\n if (e instanceof QueryError) {\n publishMetricError('MetricError: ' + e.message);\n continue;\n } else {\n throw e;\n }\n }\n\n this.updateStatus(`Inserting data for ${metric} metric`);\n try {\n const result = await engine.query(`pragma table_info(${metric}_event)`);\n let hasSliceName = false;\n let hasDur = false;\n let hasUpid = false;\n let hasValue = false;\n let hasGroupName = false;\n const it = result.iter({name: STR});\n for (; it.valid(); it.next()) {\n const name = it.name;\n hasSliceName = hasSliceName || name === 'slice_name';\n hasDur = hasDur || name === 'dur';\n hasUpid = hasUpid || name === 'upid';\n hasValue = hasValue || name === 'value';\n hasGroupName = hasGroupName || name === 'group_name';\n }\n\n const upidColumnSelect = hasUpid ? 'upid' : '0 AS upid';\n const upidColumnWhere = hasUpid ? 'upid' : '0';\n const groupNameColumn =\n hasGroupName ? 'group_name' : 'NULL AS group_name';\n if (hasSliceName && hasDur) {\n await engine.query(`\n INSERT INTO annotation_slice_track(\n name, __metric_name, upid, group_name)\n SELECT DISTINCT\n track_name,\n '${metric}' as metric_name,\n ${upidColumnSelect},\n ${groupNameColumn}\n FROM ${metric}_event\n WHERE track_type = 'slice'\n `);\n await engine.query(`\n INSERT INTO annotation_slice(track_id, ts, dur, depth, cat, name)\n SELECT\n t.id AS track_id,\n ts,\n dur,\n 0 AS depth,\n a.track_name as cat,\n slice_name AS name\n FROM ${metric}_event a\n JOIN annotation_slice_track t\n ON a.track_name = t.name AND t.__metric_name = '${metric}'\n ORDER BY t.id, ts\n `);\n }\n\n if (hasValue) {\n const minMax = await engine.query(`\n SELECT\n IFNULL(MIN(value), 0) as minValue,\n IFNULL(MAX(value), 0) as maxValue\n FROM ${metric}_event\n WHERE ${upidColumnWhere} != 0`);\n const row = minMax.firstRow({minValue: NUM, maxValue: NUM});\n await engine.query(`\n INSERT INTO annotation_counter_track(\n name, __metric_name, min_value, max_value, upid)\n SELECT DISTINCT\n track_name,\n '${metric}' as metric_name,\n CASE ${upidColumnWhere} WHEN 0 THEN NULL ELSE ${row.minValue} END,\n CASE ${upidColumnWhere} WHEN 0 THEN NULL ELSE ${row.maxValue} END,\n ${upidColumnSelect}\n FROM ${metric}_event\n WHERE track_type = 'counter'\n `);\n await engine.query(`\n INSERT INTO annotation_counter(id, track_id, ts, value)\n SELECT\n -1 as id,\n t.id AS track_id,\n ts,\n value\n FROM ${metric}_event a\n JOIN annotation_counter_track t\n ON a.track_name = t.name AND t.__metric_name = '${metric}'\n ORDER BY t.id, ts\n `);\n }\n } catch (e) {\n if (e instanceof QueryError) {\n publishMetricError('MetricError: ' + e.message);\n } else {\n throw e;\n }\n }\n }\n }\n\n private updateStatus(msg: string): void {\n globals.dispatch(Actions.updateStatus({\n msg,\n timestamp: Date.now() / 1000,\n }));\n }\n}\n","// Copyright (C) 2018 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {globals} from '../controller/globals';\n\nimport {Child, Controller, ControllerInitializerAny} from './controller';\nimport {PermalinkController} from './permalink_controller';\nimport {RecordController} from './record_controller';\nimport {TraceController} from './trace_controller';\n\n// The root controller for the entire app. It handles the lifetime of all\n// the other controllers (e.g., track and query controllers) according to the\n// global state.\nexport class AppController extends Controller<'main'> {\n // extensionPort is needed for the RecordController to communicate with the\n // extension through the frontend. This is because the controller is running\n // on a worker, and isn't able to directly send messages to the extension.\n private extensionPort: MessagePort;\n\n constructor(extensionPort: MessagePort) {\n super('main');\n this.extensionPort = extensionPort;\n }\n\n // This is the root method that is called every time the controller tree is\n // re-triggered. This can happen due to:\n // - An action received from the frontend.\n // - An internal promise of a nested controller being resolved and manually\n // re-triggering the controllers.\n run() {\n const childControllers: ControllerInitializerAny[] = [\n Child('permalink', PermalinkController, {}),\n Child(\n 'record',\n RecordController,\n {app: globals, extensionPort: this.extensionPort}),\n ];\n for (const engineCfg of Object.values(globals.state.engines)) {\n childControllers.push(Child(engineCfg.id, TraceController, engineCfg.id));\n }\n return childControllers;\n }\n}\n","// Copyright (C) 2018 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport '../gen/all_tracks';\n\nimport {assertTrue} from '../base/logging';\nimport {ControllerWorkerInitMessage} from '../common/worker_messages';\nimport {AppController} from './app_controller';\nimport {globals} from './globals';\n\nlet initialized = false;\nexport function initController(init: ControllerWorkerInitMessage) {\n assertTrue(!initialized);\n initialized = true;\n const controllerPort = init.controllerPort;\n const extensionPort = init.extensionPort;\n controllerPort.onmessage = ({data}) => globals.patchState(data);\n globals.initialize(new AppController(extensionPort));\n}\n\n\n// For devtools-based debugging.\n(self as {} as {controllerGlobals: {}}).controllerGlobals = globals;\n"],"names":["global","util","require$$0","require$$1","require$$2","require$$3","require$$4","require$$5","require$$6","require$$7","this","LongBits","BufferWriter","Writer","utf8","create","BufferReader","Reader","version","logging_1","protobuf","deferred_1","string_utils_1","cssKeywords","convert","color_convert_1","validators_1","record_config_types_1","state_1","feature_flags_1","record_config_1","common_8","common_9","common_5","common_1","common_7","common_6","common_3","common_2","empty_state_1","state","common_4","colorizer_1","time_1","flamegraph_util_1","globals_1","Vnode","vnode","hyperscript","PromisePolyfill","render","buildQueryString","buildPathname","mountRedraw","parseQueryString","parsePathname","Promise","m","request","router_1","channels_1","time_scale_1","rate_limiters_1","actions_1","perf_1","frontend_local_state_1","raf_scheduler_1","service_worker_controller_1","analytics_1","conversion_jobs_1","logs_1","die","error","args","Error","length","map","s","join","isDraft","value","DRAFT_STATE","isDraftable","proto","Object","getPrototypeOf","Ctor","hasOwnProperty","call","constructor","Function","toString","objectCtorString","Array","isArray","DRAFTABLE","isMap","isSet","each","obj","iter","enumerableOnly","getArchtype","keys","ownKeys","forEach","key","entry","index","thing","type_","has","prop","prototype","get","set","propOrOldValue","t","delete","add","is","x","y","target","hasMap","Map","hasSet","Set","latest","copy_","base_","shallowCopy","base","slice","descriptors","getOwnPropertyDescriptors","i","desc","writable","configurable","enumerable","freeze","deep","isFrozen","clear","dontMutateFrozenCollections","getPlugin","pluginKey","plugin","plugins","loadPlugin","implementation","getCurrentScope","currentScope","usePatchesInScope","scope","patchListener","patches_","inversePatches_","patchListener_","revokeScope","leaveScope","drafts_","revokeDraft","parent_","enterScope","immer","immer_","canAutoFreeze_","unfinalizedDrafts_","draft","revoke_","revoked_","processResult","result","baseDraft","isReplaced","useProxies_","willFinalizeES5_","modified_","finalize","maybeFreeze","generateReplacementPatches_","NOTHING","rootScope","path","childValue","finalizeProperty","scope_","finalized_","draft_","generatePatches_","parentState","targetObject","rootPath","res","assigned_","concat","autoFreeze_","peek","getDescriptorFromProto","source","getOwnPropertyDescriptor","markChanged","prepareCopy","createProxy","parent","proxyMap_","proxySet_","isManual_","traps","objectTraps","arrayTraps","Proxy","revocable","revoke","proxy","createES5Proxy_","push","current","currentImpl","copy","archType","hasChanges_","copyHelper","from","enableES5","proxyProperty","markChangesSweep","drafts","hasArrayChanges","hasObjectChanges","baseValue","baseIsDraft","descriptor","defineProperty","markChangesRecursively","object","min","Math","enablePatches","deepClonePatchValue","entries","cloned","immerable","clonePatchValueIfNeeded","ADD","applyPatches_","patches","patch","op","parentType","p","type","splice","basePath","inversePatches","assignedValue","origValue","unshift","rootState","replacement","enableMapSet","__extends","d","b","__","extendStatics","prepareMapCopy","prepareSetCopy","assertUnrevoked","JSON","stringify","setPrototypeOf","__proto__","DraftMap","size","cb","thisArg","_value","_this","values","iterator","iteratorSymbol","_this2","next","r","done","_this3","DraftSet","hasSymbol","Symbol","hasProxies","Reflect","for","getOwnPropertySymbols","getOwnPropertyNames","_desc$get","currentState","deleteProperty","owner","fn","arguments","apply","Immer","config","recipe","defaultBase","self","produce","hasError","then","arg1","arg2","produceWithPatches","ip","useProxies","setUseProxies","autoFreeze","setAutoFreeze","createDraft","finishDraft","applyPatches","applyPatchesImpl","bind","immer_1","controller_1","publish_1","track_data_1","registry_1","track_controller_1","query_result_1","track_1","canvas_utils_1","constants_1","track_registry_1","frontend_1","css_constants_1","icons_1","scroll_helper_1","panel_1","gridline_helper_1","vertical_line_helper_1","track_panel_1","binary_search_1","time","slice_layout_1","base_slice_track_1","named_slice_track_1","flamegraph_1","thread_state_1","rng","bytesToUuid","uuidv4","upload_utils_1","$protobuf","protos_1","record_controller_interfaces_1","trace_config_utils_1","adb_base_controller_1","consumer_port_types_1","adb_1","chrome_proxy_record_controller_1","adb_socket_controller_1","adb_shell_controller_1","proto_ring_buffer_1","protos_2","engine_1","http_utils_1","pivot_table_common_1","pivot_table_query_generator_1","area_selection_handler_1","aggregation_controller_1","MicroModal","modal_1","keyboard_event_handler_1","help_modal_1","search_handler_1","globals_2","queries_1","pivot_table_helper_1","arg_types_1","args_parser_1","common_14","common_10","common_11","common_12","common_13","query_controller_1","selection_controller_1","flow_events_controller_1","cpu_profile_controller_1","flamegraph_controller_1","cpu_aggregation_controller_1","thread_aggregation_controller_1","cpu_by_process_aggregation_controller_1","slice_aggregation_controller_1","counter_aggregation_controller_1","frame_aggregation_controller_1","search_controller_1","logs_controller_1","trace_error_controller_1","metrics_controller_1","pivot_table_controller_1","http_rpc_engine_1","loading_manager_1","wasm_engine_proxy_1","trace_stream_1","actions","track_decider_1","cache_manager_1","permalink_controller_1","record_controller_1","trace_controller_1","app_controller_1"],"mappings":"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;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,SAAS,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE;AACnE,EAAE,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI,EAAE,MAAM;AAC7D,OAAO,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAC;AACjH,OAAO,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,EAAC;AACzF,OAAO;AACP,GAAG,IAAI,UAAU,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,KAAI;AACxD,GAAG,IAAI,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,KAAI;AAC3D,GAAG,IAA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CAAC;AACjE,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,uBAAuB,CAAC,GAAG,EAAE,CAAC;AAClE,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,mBAAmB,CAAC,GAAG,EAAE,CAAC;AAC9D,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,kBAAkB,CAAC,GAAG,EAAE,CAAC;AAC7D,YAAY,OAAO,MAAM,CAAC;AAC1B,SAAS,GAAG,CAAC;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,MAAM,CAAC,cAAc,GAAG,CAAC,WAAW;AAC5C,YAAY,IAAI,UAAU,GAAG,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AACpE,YAAY,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;AAC7D,YAAY,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC;AAC/D,YAAY,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,uBAAuB,CAAC,GAAG,CAAC,CAAC;AAChE,YAAY,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,yBAAyB,CAAC,GAAG,CAAC,CAAC;AAClE,YAAY,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,uBAAuB,CAAC,GAAG,CAAC,CAAC;AAChE,YAAY,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,yBAAyB,CAAC,GAAG,CAAC,CAAC;AAClE,YAAY,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,uBAAuB,CAAC,GAAG,CAAC,CAAC;AAChE,YAAY,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,uBAAuB,CAAC,GAAG,CAAC,CAAC;AAChE,YAAY,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;AAC1D,YAAY,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC;AAC/D,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,kBAAkB,CAAC,GAAG,EAAE,CAAC;AAC7D,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,sBAAsB,CAAC,GAAG,EAAE,CAAC;AACjE,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,iBAAiB,CAAC,GAAG,EAAE,CAAC;AAC5D,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,qBAAqB,CAAC,GAAG,EAAE,CAAC;AAChE,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,4BAA4B,CAAC,GAAG,EAAE,CAAC;AACvE,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,8BAA8B,CAAC,GAAG,EAAE,CAAC;AACzE,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,4BAA4B,CAAC,GAAG,EAAE,CAAC;AACvE,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,wBAAwB,CAAC,GAAG,EAAE,CAAC;AACnE,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,oBAAoB,CAAC,GAAG,EAAE,CAAC;AAC/D,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,oBAAoB,CAAC,GAAG,EAAE,CAAC;AAC/D,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,kBAAkB,CAAC,GAAG,EAAE,CAAC;AAC7D,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,wBAAwB,CAAC,GAAG,EAAE,CAAC;AACnE,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,oCAAoC,CAAC,GAAG,EAAE,CAAC;AAC/E,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,0BAA0B,CAAC,GAAG,EAAE,CAAC;AACrE,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,yBAAyB,CAAC,GAAG,EAAE,CAAC;AACpE,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,yBAAyB,CAAC,GAAG,EAAE,CAAC;AACpE,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,iBAAiB,CAAC,GAAG,EAAE,CAAC;AAC5D,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,mBAAmB,CAAC,GAAG,EAAE,CAAC;AAC9D,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,mBAAmB,CAAC,GAAG,EAAE,CAAC;AAC9D,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,yBAAyB,CAAC,GAAG,EAAE,CAAC;AACpE,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,2BAA2B,CAAC,GAAG,EAAE,CAAC;AACtE,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,4BAA4B,CAAC,GAAG,EAAE,CAAC;AACvE,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,+BAA+B,CAAC,GAAG,EAAE,CAAC;AAC1E,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,sCAAsC,CAAC,GAAG,EAAE,CAAC;AACjF,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,oBAAoB,CAAC,GAAG,EAAE,CAAC;AAC/D,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,qBAAqB,CAAC,GAAG,EAAE,CAAC;AAChE,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,2BAA2B,CAAC,GAAG,EAAE,CAAC;AACtE,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,sCAAsC,CAAC,GAAG,EAAE,CAAC;AACjF,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,GAAG,EAAE,CAAC;AAC1D,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,GAAG,EAAE,CAAC;AAC3D,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,qBAAqB,CAAC,GAAG,EAAE,CAAC;AAChE,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,GAAG,EAAE,CAAC;AAC1D,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,GAAG,EAAE,CAAC;AAC3D,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,oBAAoB,CAAC,GAAG,EAAE,CAAC;AAC/D,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,uBAAuB,CAAC,GAAG,EAAE,CAAC;AAClE,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,wBAAwB,CAAC,GAAG,EAAE,CAAC;AACnE,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,GAAG,EAAE,CAAC;AAC1D,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,mBAAmB,CAAC,GAAG,EAAE,CAAC;AAC9D,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,qBAAqB,CAAC,GAAG,EAAE,CAAC;AAChE,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,GAAG,EAAE,CAAC;AAC3D,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,mBAAmB,CAAC,GAAG,EAAE,CAAC;AAC9D,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,qBAAqB,CAAC,GAAG,EAAE,CAAC;AAChE,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,wBAAwB,CAAC,GAAG,EAAE,CAAC;AACnE,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,yBAAyB,CAAC,GAAG,EAAE,CAAC;AACpE,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,2BAA2B,CAAC,GAAG,EAAE,CAAC;AACtE,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,8BAA8B,CAAC,GAAG,EAAE,CAAC;AACzE,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,+BAA+B,CAAC,GAAG,EAAE,CAAC;AAC1E,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,2BAA2B,CAAC,GAAG,EAAE,CAAC;AACtE,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,8BAA8B,CAAC,GAAG,EAAE,CAAC;AACzE,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,+BAA+B,CAAC,GAAG,EAAE,CAAC;AAC1E,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,0BAA0B,CAAC,GAAG,EAAE,CAAC;AACrE,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,6BAA6B,CAAC,GAAG,EAAE,CAAC;AACxE,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,8BAA8B,CAAC,GAAG,EAAE,CAAC;AACzE,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,0BAA0B,CAAC,GAAG,EAAE,CAAC;AACrE,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,6BAA6B,CAAC,GAAG,EAAE,CAAC;AACxE,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,8BAA8B,CAAC,GAAG,EAAE,CAAC;AACzE,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,+BAA+B,CAAC,GAAG,EAAE,CAAC;AAC1E,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,qBAAqB,CAAC,GAAG,EAAE,CAAC;AAChE,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,sBAAsB,CAAC,GAAG,EAAE,CAAC;AACjE,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,0BAA0B,CAAC,GAAG,EAAE,CAAC;AACrE,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,qCAAqC,CAAC,GAAG,EAAE,CAAC;AAChF,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,sCAAsC,CAAC,GAAG,EAAE,CAAC;AACjF,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,mBAAmB,CAAC,GAAG,EAAE,CAAC;AAC9D,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,mBAAmB,CAAC,GAAG,EAAE,CAAC;AAC9D,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,kBAAkB,CAAC,GAAG,EAAE,CAAC;AAC7D,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,uBAAuB,CAAC,GAAG,EAAE,CAAC;AAClE,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,kBAAkB,CAAC,GAAG,EAAE,CAAC;AAC7D,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,0BAA0B,CAAC,GAAG,EAAE,CAAC;AACrE,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,uBAAuB,CAAC,GAAG,EAAE,CAAC;AAClE,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,gCAAgC,CAAC,GAAG,EAAE,CAAC;AAC3E,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,6BAA6B,CAAC,GAAG,EAAE,CAAC;AACxE,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,yBAAyB,CAAC,GAAG,EAAE,CAAC;AACpE,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,sBAAsB,CAAC,GAAG,EAAE,CAAC;AACjE,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,qBAAqB,CAAC,GAAG,EAAE,CAAC;AAChE,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,wBAAwB,CAAC,GAAG,EAAE,CAAC;AACnE,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,4BAA4B,CAAC,GAAG,EAAE,CAAC;AACvE,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,+BAA+B,CAAC,GAAG,EAAE,CAAC;AAC1E,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,gCAAgC,CAAC,GAAG,EAAE,CAAC;AAC3E,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,gCAAgC,CAAC,GAAG,EAAE,CAAC;AAC3E,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,gCAAgC,CAAC,GAAG,EAAE,CAAC;AAC3E,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,kCAAkC,CAAC,GAAG,EAAE,CAAC;AAC7E,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,gCAAgC,CAAC,GAAG,EAAE,CAAC;AAC3E,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,iCAAiC,CAAC,GAAG,EAAE,CAAC;AAC5E,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,mBAAmB,CAAC,GAAG,EAAE,CAAC;AAC9D,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,oBAAoB,CAAC,GAAG,EAAE,CAAC;AAC/D,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,oBAAoB,CAAC,GAAG,EAAE,CAAC;AAC/D,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,uBAAuB,CAAC,GAAG,EAAE,CAAC;AAClE,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,2BAA2B,CAAC,GAAG,EAAE,CAAC;AACtE,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,0BAA0B,CAAC,GAAG,EAAE,CAAC;AACrE,YAAY,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,oCAAoC,CAAC,GAAG,EAAE,CAAC;AAC/E,YAAY,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,uCAAuC,CAAC,GAAG,GAAG,CAAC;AACpF,YAAY,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,mBAAmB,CAAC,GAAG,GAAG,CAAC;AAChE,YAAY,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,kCAAkC,CAAC,GAAG,GAAG,CAAC;AAC/E,YAAY,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,yBAAyB,CAAC,GAAG,GAAG,CAAC;AACtE,YAAY,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,mCAAmC,CAAC,GAAG,GAAG,CAAC;AAChF,YAAY,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,mCAAmC,CAAC,GAAG,GAAG,CAAC;AAChF,YAAY,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,2BAA2B,CAAC,GAAG,GAAG,CAAC;AACxE,YAAY,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,2BAA2B,CAAC,GAAG,GAAG,CAAC;AACxE,YAAY,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,+BAA+B,CAAC,GAAG,GAAG,CAAC;AAC5E,YAAY,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,4BAA4B,CAAC,GAAG,GAAG,CAAC;AACzE,YAAY,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,4BAA4B,CAAC,GAAG,GAAG,CAAC;AACzE,YAAY,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,8BAA8B,CAAC,GAAG,GAAG,CAAC;AAC3E,YAAY,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,8BAA8B,CAAC,GAAG,GAAG,CAAC;AAC3E,YAAY,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,4BAA4B,CAAC,GAAG,GAAG,CAAC;AACzE,YAAY,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,8BAA8B,CAAC,GAAG,GAAG,CAAC;AAC3E,YAAY,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,iBAAiB,CAAC,GAAG,GAAG,CAAC;AAC9D,YAAY,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,mBAAmB,CAAC,GAAG,GAAG,CAAC;AAChE,YAAY,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,oBAAoB,CAAC,GAAG,GAAG,CAAC;AACjE,YAAY,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,iBAAiB,CAAC,GAAG,GAAG,CAAC;AAC9D,YAAY,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC,GAAG,GAAG,CAAC;AACnE,YAAY,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC,GAAG,GAAG,CAAC;AACnE,YAAY,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,mBAAmB,CAAC,GAAG,GAAG,CAAC;AAChE,YAAY,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,uBAAuB,CAAC,GAAG,GAAG,CAAC;AACpE,YAAY,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC,GAAG,GAAG,CAAC;AACnE,YAAY,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,uBAAuB,CAAC,GAAG,GAAG,CAAC;AACpE,YAAY,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,uBAAuB,CAAC,GAAG,GAAG,CAAC;AACpE,YAAY,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,gBAAgB,CAAC,GAAG,GAAG,CAAC;AAC7D,YAAY,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,oBAAoB,CAAC,GAAG,GAAG,CAAC;AACjE,YAAY,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,2BAA2B,CAAC,GAAG,GAAG,CAAC;AACxE,YAAY,OAAO,MAAM,CAAC;AAC1B,SAAS,GAAG,CAAC;AACb;AACA,QAAQ,MAAM,CAAC,cAAc,GAAG,CAAC,WAAW;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,SAAS,cAAc,CAAC,UAAU,EAAE;AAChD,gBAAgB,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;AAC1C,gBAAgB,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;AACzC,gBAAgB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;AACvC,gBAAgB,IAAI,UAAU;AAC9B,oBAAoB,KAAK,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;AACxF,wBAAwB,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI;AACvD,4BAA4B,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAChE,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,cAAc,CAAC,SAAS,CAAC,eAAe,GAAG,CAAC,CAAC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,cAAc,CAAC,SAAS,CAAC,eAAe,GAAG,KAAK,CAAC,UAAU,CAAC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,cAAc,CAAC,SAAS,CAAC,cAAc,GAAG,CAAC,CAAC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,cAAc,CAAC,SAAS,CAAC,cAAc,GAAG,KAAK,CAAC,UAAU,CAAC;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,cAAc,CAAC,SAAS,CAAC,YAAY,GAAG,CAAC,CAAC;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,cAAc,CAAC,SAAS,CAAC,YAAY,GAAG,KAAK,CAAC,UAAU,CAAC;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,cAAc,CAAC,SAAS,CAAC,eAAe,GAAG,CAAC,CAAC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,cAAc,CAAC,MAAM,GAAG,SAAS,MAAM,CAAC,UAAU,EAAE;AAChE,gBAAgB,OAAO,IAAI,cAAc,CAAC,UAAU,CAAC,CAAC;AACtD,aAAa,CAAC;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,cAAc,CAAC,MAAM,GAAG,SAAS,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE;AACrE,gBAAgB,IAAI,CAAC,MAAM;AAC3B,oBAAoB,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;AAC9C,gBAAgB,IAAI,OAAO,CAAC,eAAe,IAAI,IAAI,IAAI,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC;AAC7G,oBAAoB,MAAM,CAAC,MAAM,wBAAwB,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;AAC5F,gBAAgB,IAAI,OAAO,CAAC,eAAe,IAAI,IAAI,IAAI,OAAO,CAAC,eAAe,CAAC,MAAM;AACrF,oBAAoB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC;AAC3E,wBAAwB,MAAM,CAAC,MAAM,wBAAwB,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;AACnG,gBAAgB,IAAI,OAAO,CAAC,cAAc,IAAI,IAAI,IAAI,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC;AAC3G,oBAAoB,MAAM,CAAC,MAAM,wBAAwB,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;AAC5F,gBAAgB,IAAI,OAAO,CAAC,cAAc,IAAI,IAAI,IAAI,OAAO,CAAC,cAAc,CAAC,MAAM;AACnF,oBAAoB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,CAAC;AAC1E,wBAAwB,MAAM,CAAC,MAAM,wBAAwB,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;AAClG,gBAAgB,IAAI,OAAO,CAAC,YAAY,IAAI,IAAI,IAAI,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC;AACvG,oBAAoB,MAAM,CAAC,MAAM,wBAAwB,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;AAC1F,gBAAgB,IAAI,OAAO,CAAC,YAAY,IAAI,IAAI,IAAI,OAAO,CAAC,YAAY,CAAC,MAAM;AAC/E,oBAAoB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC;AACxE,wBAAwB,MAAM,CAAC,MAAM,wBAAwB,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AAChG,gBAAgB,IAAI,OAAO,CAAC,eAAe,IAAI,IAAI,IAAI,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC;AAC7G,oBAAoB,MAAM,CAAC,MAAM,wBAAwB,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;AAC7F,gBAAgB,OAAO,MAAM,CAAC;AAC9B,aAAa,CAAC;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,cAAc,CAAC,eAAe,GAAG,SAAS,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE;AACvF,gBAAgB,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;AAC7D,aAAa,CAAC;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,cAAc,CAAC,MAAM,GAAG,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE;AACpE,gBAAgB,IAAI,EAAE,MAAM,YAAY,OAAO,CAAC;AAChD,oBAAoB,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACpD,gBAAgB,IAAI,GAAG,GAAG,MAAM,KAAK,SAAS,GAAG,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,GAAG,MAAM,EAAE,OAAO,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;AACxI,gBAAgB,OAAO,MAAM,CAAC,GAAG,GAAG,GAAG,EAAE;AACzC,oBAAoB,IAAI,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;AAC9C,oBAAoB,QAAQ,GAAG,KAAK,CAAC;AACrC,oBAAoB,KAAK,CAAC;AAC1B,wBAAwB,OAAO,CAAC,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;AAClE,wBAAwB,MAAM;AAC9B,oBAAoB,KAAK,CAAC;AAC1B,wBAAwB,IAAI,EAAE,OAAO,CAAC,eAAe,IAAI,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC;AACxF,4BAA4B,OAAO,CAAC,eAAe,GAAG,EAAE,CAAC;AACzD,wBAAwB,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE;AAC7C,4BAA4B,IAAI,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC;AACpE,4BAA4B,OAAO,MAAM,CAAC,GAAG,GAAG,IAAI;AACpD,gCAAgC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;AAC7E,yBAAyB;AACzB,4BAA4B,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;AACzE,wBAAwB,MAAM;AAC9B,oBAAoB,KAAK,CAAC;AAC1B,wBAAwB,OAAO,CAAC,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;AACjE,wBAAwB,MAAM;AAC9B,oBAAoB,KAAK,CAAC;AAC1B,wBAAwB,IAAI,EAAE,OAAO,CAAC,cAAc,IAAI,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC;AACtF,4BAA4B,OAAO,CAAC,cAAc,GAAG,EAAE,CAAC;AACxD,wBAAwB,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE;AAC7C,4BAA4B,IAAI,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC;AACpE,4BAA4B,OAAO,MAAM,CAAC,GAAG,GAAG,IAAI;AACpD,gCAAgC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;AAC5E,yBAAyB;AACzB,4BAA4B,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;AACxE,wBAAwB,MAAM;AAC9B,oBAAoB,KAAK,CAAC;AAC1B,wBAAwB,OAAO,CAAC,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;AAC/D,wBAAwB,MAAM;AAC9B,oBAAoB,KAAK,CAAC;AAC1B,wBAAwB,IAAI,EAAE,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC;AAClF,4BAA4B,OAAO,CAAC,YAAY,GAAG,EAAE,CAAC;AACtD,wBAAwB,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE;AAC7C,4BAA4B,IAAI,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC;AACpE,4BAA4B,OAAO,MAAM,CAAC,GAAG,GAAG,IAAI;AACpD,gCAAgC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;AAC1E,yBAAyB;AACzB,4BAA4B,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;AACtE,wBAAwB,MAAM;AAC9B,oBAAoB,KAAK,CAAC;AAC1B,wBAAwB,OAAO,CAAC,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;AAClE,wBAAwB,MAAM;AAC9B,oBAAoB;AACpB,wBAAwB,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AACjD,wBAAwB,MAAM;AAC9B,qBAAqB;AACrB,iBAAiB;AACjB,gBAAgB,OAAO,OAAO,CAAC;AAC/B,aAAa,CAAC;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,cAAc,CAAC,eAAe,GAAG,SAAS,eAAe,CAAC,MAAM,EAAE;AAC9E,gBAAgB,IAAI,EAAE,MAAM,YAAY,OAAO,CAAC;AAChD,oBAAoB,MAAM,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;AACjD,gBAAgB,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;AAC5D,aAAa,CAAC;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,cAAc,CAAC,MAAM,GAAG,SAAS,MAAM,CAAC,OAAO,EAAE;AAC7D,gBAAgB,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI;AACnE,oBAAoB,OAAO,iBAAiB,CAAC;AAC7C,gBAAgB,IAAI,OAAO,CAAC,eAAe,IAAI,IAAI,IAAI,OAAO,CAAC,cAAc,CAAC,iBAAiB,CAAC;AAChG,oBAAoB,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,eAAe,CAAC;AACjE,wBAAwB,OAAO,mCAAmC,CAAC;AACnE,gBAAgB,IAAI,OAAO,CAAC,eAAe,IAAI,IAAI,IAAI,OAAO,CAAC,cAAc,CAAC,iBAAiB,CAAC,EAAE;AAClG,oBAAoB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC;AAC/D,wBAAwB,OAAO,iCAAiC,CAAC;AACjE,oBAAoB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC;AAC3E,wBAAwB,QAAQ,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC;AAC1D,wBAAwB;AACxB,4BAA4B,OAAO,wCAAwC,CAAC;AAC5E,wBAAwB,KAAK,CAAC,CAAC;AAC/B,wBAAwB,KAAK,CAAC,CAAC;AAC/B,wBAAwB,KAAK,CAAC,CAAC;AAC/B,wBAAwB,KAAK,CAAC,CAAC;AAC/B,wBAAwB,KAAK,CAAC,CAAC;AAC/B,wBAAwB,KAAK,CAAC,CAAC;AAC/B,wBAAwB,KAAK,CAAC,CAAC;AAC/B,wBAAwB,KAAK,CAAC,CAAC;AAC/B,wBAAwB,KAAK,CAAC,CAAC;AAC/B,wBAAwB,KAAK,CAAC,CAAC;AAC/B,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE;AAC/B,4BAA4B,MAAM;AAClC,yBAAyB;AACzB,iBAAiB;AACjB,gBAAgB,IAAI,OAAO,CAAC,cAAc,IAAI,IAAI,IAAI,OAAO,CAAC,cAAc,CAAC,gBAAgB,CAAC;AAC9F,oBAAoB,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,cAAc,CAAC;AAChE,wBAAwB,OAAO,kCAAkC,CAAC;AAClE,gBAAgB,IAAI,OAAO,CAAC,cAAc,IAAI,IAAI,IAAI,OAAO,CAAC,cAAc,CAAC,gBAAgB,CAAC,EAAE;AAChG,oBAAoB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC;AAC9D,wBAAwB,OAAO,gCAAgC,CAAC;AAChE,oBAAoB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,CAAC;AAC1E,wBAAwB,QAAQ,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC;AACzD,wBAAwB;AACxB,4BAA4B,OAAO,uCAAuC,CAAC;AAC3E,wBAAwB,KAAK,CAAC,CAAC;AAC/B,wBAAwB,KAAK,CAAC,CAAC;AAC/B,wBAAwB,KAAK,CAAC,CAAC;AAC/B,wBAAwB,KAAK,CAAC,CAAC;AAC/B,wBAAwB,KAAK,CAAC,CAAC;AAC/B,wBAAwB,KAAK,CAAC,CAAC;AAC/B,wBAAwB,KAAK,CAAC,CAAC;AAC/B,wBAAwB,KAAK,CAAC,CAAC;AAC/B,wBAAwB,KAAK,CAAC,CAAC;AAC/B,wBAAwB,KAAK,CAAC,CAAC;AAC/B,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wB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"} |