<!DOCTYPE html>
<html>
<head i18n-values="dir:textdirection;">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta charset="utf-8"/>
<title>Android System Trace</title>
<style>
html,
body {
height: 100%;
}
body {
-webkit-flex-direction: column;
display: -webkit-flex;
margin: 0;
padding: 0;
}
body > tr-ui-timeline-view {
-webkit-flex: 1 1 auto;
min-height: 0;
}
body > tr-ui-timeline-view:focus {
outline: none;
}
</style>
<template id="overlay-template">
<style>
overlay-mask {
left: 0;
padding: 8px;
position: absolute;
top: 0;
z-index: 1000;
font-family: sans-serif;
-webkit-justify-content: center;
background: rgba(0, 0, 0, 0.8);
display: -webkit-flex;
height: 100%;
left: 0;
position: fixed;
top: 0;
width: 100%;
}
overlay-mask:focus {
outline: none;
}
overlay-vertical-centering-container {
-webkit-justify-content: center;
-webkit-flex-direction: column;
display: -webkit-flex;
}
overlay-frame {
z-index: 1100;
background: rgb(255, 255, 255);
border: 1px solid #ccc;
margin: 75px;
display: -webkit-flex;
-webkit-flex-direction: column;
min-height: 0;
}
title-bar {
-webkit-align-items: center;
-webkit-flex-direction: row;
border-bottom: 1px solid #ccc;
background-color: #ddd;
display: -webkit-flex;
padding: 5px;
-webkit-flex: 0 0 auto;
}
title {
display: inline;
font-weight: bold;
-webkit-box-flex: 1;
-webkit-flex: 1 1 auto;
}
close-button {
-webkit-align-self: flex-end;
border: 1px solid #eee;
background-color: #999;
font-size: 10pt;
font-weight: bold;
padding: 2px;
text-align: center;
width: 16px;
}
close-button:hover {
background-color: #ddd;
border-color: black;
cursor: pointer;
}
overlay-content {
display: -webkit-flex;
-webkit-flex: 1 1 auto;
-webkit-flex-direction: column;
overflow-y: auto;
padding: 10px;
min-width: 300px;
min-height: 0;
}
button-bar {
-webkit-align-items: baseline;
border-top: 1px solid #ccc;
display: -webkit-flex;
-webkit-flex: 0 0 auto;
-webkit-flex-direction: row-reverse;
padding: 4px;
}
</style>
<overlay-mask>
<overlay-vertical-centering-container>
<overlay-frame>
<title-bar>
<title></title>
<close-button>✕</close-button>
</title-bar>
<overlay-content>
<content></content>
</overlay-content>
<button-bar></button-bar>
</overlay-frame>
</overlay-vertical-centering-container>
</overlay-mask>
</template><style>
* /deep/ .labeled-checkbox {
display: flex;
white-space: nowrap;
}
</style><dom-module id="tr-ui-a-analysis-link">
<template>
<style>
:host {
display: inline;
cursor: pointer;
cursor: pointer;
white-space: nowrap;
}
a {
text-decoration: underline;
}
</style>
<a href="{{href}}" on-click="onClicked_" on-mouseenter="onMouseEnter_" on-mouseleave="onMouseLeave_"><content></content></a>
</template>
</dom-module><dom-module id="tr-ui-b-table">
<template>
<style>
:host {
display: flex;
flex-direction: column;
}
table {
flex: 1 1 auto;
align-self: stretch;
border-collapse: separate;
border-spacing: 0;
border-width: 0;
-webkit-user-select: initial;
}
tr > td {
padding: 2px 4px 2px 4px;
vertical-align: top;
}
table > tbody:focus {
outline: none;
}
table > tbody:focus[selection-mode="row"] > tr[selected],
table > tbody:focus[selection-mode="cell"] > tr > td[selected],
table > tbody:focus > tr.empty-row > td {
outline: 1px dotted #666666;
outline-offset: -1px;
}
button.toggle-button {
height: 15px;
line-height: 60%;
vertical-align: middle;
width: 100%;
}
button > * {
height: 15px;
vertical-align: middle;
}
td.button-column {
width: 30px;
}
table > thead > tr > td.sensitive:hover {
background-color: #fcfcfc;
}
table > thead > tr > td {
font-weight: bold;
text-align: left;
background-color: #eee;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
border-top: 1px solid #ffffff;
border-bottom: 1px solid #aaa;
}
table > tfoot {
background-color: #eee;
font-weight: bold;
}
/* Light row and cell highlight. */
table > tbody[row-highlight-style="light"] > tr[selected],
table > tbody[cell-highlight-style="light"] > tr > td[selected] {
background-color: rgb(213, 236, 229); /* light turquoise */
}
table > tbody[row-highlight-style="light"] >
tr:not(.empty-row):not([selected]):hover,
table > tbody[cell-highlight-style="light"] >
tr:not(.empty-row):not([selected]) > td:hover {
background-color: #f6f6f6; /* light grey */
}
/* Dark row and cell highlight. */
table > tbody[row-highlight-style="dark"] > tr[selected],
table > tbody[cell-highlight-style="dark"] > tr > td[selected] {
background-color: rgb(103, 199, 165); /* turquoise */
}
table > tbody[row-highlight-style="dark"] >
tr:not(.empty-row):not([selected]):hover,
table > tbody[cell-highlight-style="dark"] >
tr:not(.empty-row):not([selected]) > td:hover {
background-color: #e6e6e6; /* grey */
}
table > tbody[row-highlight-style="dark"] > tr:hover[selected],
table > tbody[cell-highlight-style="dark"] > tr[selected] > td:hover {
background-color: rgb(171, 217, 202); /* semi-light turquoise */
}
table > colgroup > col[selected] {
background-color: #e6e6e6; /* grey */
}
table > tbody > tr.empty-row > td {
color: #666;
font-style: italic;
text-align: center;
}
table > tbody.has-footer > tr:last-child > td {
border-bottom: 1px solid #aaa;
}
table > tfoot > tr:first-child > td {
border-top: 1px solid #ffffff;
}
:host([zebra]) table tbody tr:nth-child(even) {
background-color: #f4f4f4;
}
expand-button {
-webkit-user-select: none;
cursor: pointer;
margin-right: 3px;
font-size: smaller;
height: 1rem;
}
expand-button.button-expanded {
transform: rotate(90deg);
}
</style>
<table>
<colgroup id="cols">
</colgroup>
<thead id="head">
</thead>
<tbody id="body">
</tbody>
<tfoot id="foot">
</tfoot>
</table>
</template>
</dom-module><dom-module id="tr-ui-b-table-header-cell">
<template>
<style>
:host {
-webkit-user-select: none;
display: flex;
}
span {
flex: 0 1 auto;
}
#side {
-webkit-user-select: none;
flex: 0 0 auto;
padding-left: 2px;
padding-right: 2px;
vertical-align: top;
font-size: 15px;
font-family: sans-serif;
line-height: 85%;
margin-left: 5px;
}
#side.disabled {
color: rgb(140, 140, 140);
}
#title:empty, #side:empty {
display: none;
}
</style>
<span id="title"></span>
<span id="side"></span>
</template>
</dom-module><dom-module id="tr-v-ui-scalar-context-controller">
<template></template>
</dom-module><dom-module id="tr-v-ui-scalar-span">
<template>
<style>
:host {
display: flex;
flex-direction: row;
justify-content: flex-end;
position: relative;
/* Limit the sparkline's negative z-index to the span only. */
isolation: isolate;
}
:host(.left-align) {
justify-content: flex-start;
}
:host(.inline) {
display: inline-flex;
}
#sparkline {
width: 0%;
position: absolute;
bottom: 0;
display: none;
height: 100%;
background-color: hsla(216, 100%, 94.5%, .75);
border-color: hsl(216, 100%, 89%);
box-sizing: border-box;
z-index: -1;
}
#sparkline.positive {
border-right-style: solid;
/* The border width must be kept in sync with buildSparklineStyle_(). */
border-right-width: 1px;
}
#sparkline:not(.positive) {
border-left-style: solid;
/* The border width must be kept in sync with buildSparklineStyle_(). */
border-left-width: 1px;
}
#sparkline.better {
background-color: hsla(115, 100%, 93%, .75);
border-color: hsl(118, 60%, 80%);
}
#sparkline.worse {
background-color: hsla(0, 100%, 88%, .75);
border-color: hsl(0, 100%, 80%);
}
#content, #significance, #warning {
flex-grow: 0;
}
#content.better {
color: green;
}
#content.worse {
color: red;
}
#significance svg {
margin-left: 4px;
display: none;
height: 1em;
vertical-align: text-top;
stroke-width: 4;
fill: rgba(0, 0, 0, 0);
}
#significance #insignificant {
stroke: black;
}
#significance #significantly_better {
stroke: green;
}
#significance #significantly_worse {
stroke: red;
}
#warning {
display: none;
margin-left: 4px;
height: 1em;
vertical-align: text-top;
stroke-width: 0;
}
#warning path {
fill: rgb(255, 185, 185);
}
#warning rect {
fill: red;
}
</style>
<span id="sparkline"></span>
<span id="content"></span>
<span id="significance">
<svg id="insignificant" viewBox="0 0 128 128">
<circle cx="64" cy="64" r="60"></circle>
<circle cx="44" cy="44" r="4"></circle>
<circle cx="84" cy="44" r="4"></circle>
<line x1="36" x2="92" y1="80" y2="80"></line>
</svg>
<svg id="significantly_better" viewBox="0 0 128 128">
<circle cx="64" cy="64" r="60"></circle>
<circle cx="44" cy="44" r="4"></circle>
<circle cx="84" cy="44" r="4"></circle>
<path d="M 28 64 Q 64 128 100 64"></path>
</svg>
<svg id="significantly_worse" viewBox="0 0 128 128">
<circle cx="64" cy="64" r="60"></circle>
<circle cx="44" cy="44" r="4"></circle>
<circle cx="84" cy="44" r="4"></circle>
<path d="M 36 96 Q 64 48 92 96"></path>
</svg>
</span>
<svg id="warning" viewBox="0 0 128 128">
<path d="M 64 0 L 128 128 L 0 128 L 64 0"></path>
<rect height="84" width="8" x="60" y="0"></rect>
<rect height="24" width="8" x="60" y="100"></rect>
</svg>
</template>
</dom-module><dom-module id="tr-ui-a-generic-object-view">
<template>
<style>
:host {
display: block;
font-family: monospace;
}
</style>
<div id="content">
</div>
</template>
</dom-module><dom-module id="tr-ui-a-generic-object-view-with-label">
<template>
<style>
:host {
display: block;
}
</style>
</template>
</dom-module><dom-module id="tr-ui-b-drag-handle">
<template>
<style>
:host {
-webkit-user-select: none;
box-sizing: border-box;
display: block;
}
:host(.horizontal-drag-handle) {
background-image: -webkit-gradient(linear,
0 0, 0 100%,
from(#E5E5E5),
to(#D1D1D1));
border-bottom: 1px solid #8e8e8e;
border-top: 1px solid white;
cursor: ns-resize;
flex: 0 0 auto;
height: 7px;
position: relative;
}
:host(.vertical-drag-handle) {
background-image: -webkit-gradient(linear,
0 0, 100% 0,
from(#E5E5E5),
to(#D1D1D1));
border-left: 1px solid white;
border-right: 1px solid #8e8e8e;
cursor: ew-resize;
flex: 0 0 auto;
position: relative;
width: 7px;
}
</style>
<div></div>
</template>
</dom-module><dom-module id="tv-ui-b-hotkey-controller">
<template>
<div></div>
</template>
</dom-module><dom-module id="tr-ui-b-info-bar">
<template>
<style>
:host {
align-items: center;
flex: 0 0 auto;
background-color: rgb(252, 235, 162);
border-bottom: 1px solid #A3A3A3;
border-left: 1px solid white;
border-right: 1px solid #A3A3A3;
border-top: 1px solid white;
display: flex;
height: 26px;
padding: 0 3px 0 3px;
}
:host([hidden]) {
display: none !important;
}
#message { flex: 1 1 auto; }
</style>
<span id="message"></span>
<span id="buttons"></span>
</template>
</dom-module><style>
* /deep/ .x-list-view{-webkit-user-select:none;display:block}* /deep/ .x-list-view:focus{outline:none}* /deep/ .x-list-view *{-webkit-user-select:none}* /deep/ .x-list-view>.list-item{padding:2px 4px 2px 4px}* /deep/ .x-list-view:focus>.list-item[selected]{background-color:rgb(171,217,202);outline:1px dotted rgba(0,0,0,0.1);outline-offset:0}* /deep/ .x-list-view>.list-item[selected]{background-color:rgb(103,199,165)}
</style><dom-module id="tr-ui-b-mouse-mode-icon">
<template>
<style>
:host {
display: block;
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAChCAYAAACbBNzvAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABV0RVh0Q3JlYXRpb24gVGltZQA3LzE2LzEzRNEKUwAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTNui8sowAAA9aSURBVHic7V1rTFvl//+UrgUmZWMpbLa6cLErwpYxkqLGkjAG88WSbmumGUllvlmAJctMRtybvlHrLXiJUekMIZuYSCL5gS+EuLIXGEGjqCsllCEW6xQECgzWG7S05/+C/zkp9LTn0gsL6ych9JzznOdzPj19Luf5PN/nCN59913ixRdfRFdXFxLx/2GDgCAIYmpqCoWFhUjE/4cNae+99x4AIFH/Hzak7nDqDu+wOyyw2WzEdl9EMpG23ReQbKQE73Q8coJ3bfcFWK1W/Pbbb/D7/UhLi/37DwaDEIvFKC8vR0lJSdjxbRVstVoxPDyMxx9/HAUFBcjMzIRAIOCdXzAYhNvtht1ux/DwMACEid5WwSMjI3jyySdRXFwMsVgMoVAYk2CCIJCZmYns7GyMjo5iZGQkPoKXl5exd+9e3hdGIhgMIj8/H5mZmRCJRIyCyQ5NJBAEgUAgAKFQiIKCAiwsLISl4VxoHA4H+vv74Xa7uZ4aBqFQiOzsbIhEIojFYojFYohEItq/8fFxXLlyBUtLSxHThOaxZ88eCIXC2AWPj48DAH799deYBaelpUEoFLL6++qrrwAAH3zwAav0YrGYthLkJHh6ehpzc3MAgPn5eUxPT8csWiAQMJbboaEhmM1mAIDFYsHQ0BDvPDkJtlgsYdt+v59LFrxw/fr1sG2Xy8UrL06C6+vrw7bFYjEvYi747rvvwrYlEgmvvDjV0g6HI+p2ohBP3qh32OFwoLe3l1VGvb29sNvtvC8kFCMjI9DpdKzS6nQ6mEwm1nnTPg/7/X6MjY1hcnKS/VX+P/bu3YuysjLk5uYypv36669x8uRJZGRkQCQSwev1oqOjAz09PZx5CwsLcenSJRw+fBh+vx+rq6swmUx46aWXNqWjvcMDAwO8xAIbnZKBgQFeNXhzczMvscBGp6S5uRk//vhj1HS0grVaLYqLi3kRy+Vy1NXVRe0RRcKNGzeg0Wh48apUKnR1daG6ujpqOtpKy+VyQa1Wo6SkBLdv38aFCxeoY5988gn1+fLly9TnL774ApWVlXjiiSfgdDqxtrbG+aJ9Ph/0ej3OnDkDvV6PW7duUceOHDlCfR4dHaU+v/DCC7h27RrUajWcTidWV1ejctAKJggCKysryMzMhE6nw+zsLO3Joft1Oh0ePHiApaUlduqi8BYVFaGvr48Vb19fHyfeqM2Sz+dj3QTEs4lKJC+njsfWJoptkxUrtjZRbJssOnASXFtbG3U7UXjrrbeibnMBJ8FZWVkoKysDABQUFCArK4s3MRcoFArqrlZXV0OhUPDOi5Ngn8+Hw4cPQyqV4tlnn4XP5+NNTIIgmH0An8+HV155BUqlEq+++ior3kAgQLuf84jH2toajh8/jvX1da6n0sLj8SAjI4MxHUEQ+PTTT1nlSRAEHjx4QHtsW8e0RCIR7HY79uzZE/GOcEUgEEAgEMDff/8NkUgUdnxbBR85cgRmsxkCgQD5+fkRh2XYIhAI4P79+5iamoLD4cCxY8fC0myr4KeeegoCgQBWqxVzc3NIS0uLedQyGAxi165dKC8vR1FRUVialHu405ESvNPxyAlOuYfJRMo9fFjdw3iBq3vIBDbu4bYK3uoextKtJEH2yWNyD8nyEG8wuYcffvgha3cxru6h3W5Hf39/QoyzaE6fyWRCQ0MDZ+MsLu7h8vIyent7sby8zIk8VkxNTUGn08Fms8UlP04Nn9/vR39/f9w8JLZwu91obGzk5CFFAq+Wfnh4mDKok4mWlha0trbGlAfvrs3k5CQGBgaSYoiHoqenB1evXk2OIb4VDocDJpMp6eXaYrGgsbGRV7mOufPq8XgwMDCQ9HI9NzeHq1evci7XvDseUqkUWq0W6enpCAaDcDqd8Hq9fLNjDaVSiRs3bkAikfDi5XSHxWIxampqAAALCwsYGhrC7Ows5ufnEypWIpHAYDAAACYmJnD9+nXevJwEnzp1CjKZDBUVFQCAsbGxpJTfjz76CFVVVWhqagIAdHR08G6XWQuuqanB7t274fV6UVpaiuzsbAAbTzyJhMFggEKhgNfrRX19PWQyGQDAaDTyyo+V4JqaGshkMsricLlcOH78OICNCWp8p0cwwWAwoKqqahPvG2+8AWDji+7u7uacJyvBMpksrKxkZWVR0yLGxsY4E7NBVVVVGK9CoaCmRXR0dHDOk5VguorB5/OhoqICYrE4YZ2PSLxXrlyBRCLhNcE1pufh1dVVXLx4EWlpaRGnJzCBjXtId87g4GBU3ri5h1uJ5+fnY8mCtXvIhTflHoYg5R4mEyn3MAl45KyWlOCdjkdOcMo9TCZS7mHKPeSGhLmH5LBOrAGXXN1DcliHrgdFgsk95CzYbrfDbDbD7/ejrKwstpmtNO5hJJhMJrS2tsLtdqOpqQlarTZi2mjuIWvBfr8fZrN50/iz2WzG9PQ0nn/+edonEzZgij10uVwwGo2bxp+NRiOGhobw+uuv005hjtk9JENz6AbbyWCuRESp2Ww2NDc30w62WywW6HQ6zoOIrO5wbm4uzp8/j5WVFXR2dm46VldXh3379mF5eTku86dDUVxcjK6uLthstrClqrq6unDo0CHOvKwE+/1+LC4uUqG0oZiYmIhaicQCkvfu3bthxwYGBnhVmpy6NnSD7kxxQvEA3Zo+fIsQJ8F040j379/nRcwFdF4037FwToLphkUXFxd5EXMB3chkUgQ7nc6wfT6fL+Gm+H///Re2z+Vy8TLFGSut/v5+RsPsm2++AbDR84pXLFNDQwPjelxnz54FsBFK+/nnn7PKl/EOa7VaVmHvYrE4au+HK27evMkq7F0ikeDmzZus82UU7HK5qG8yGs6ePct73gUdfD4f2tvbGdO1t7dzaocZBRMEAaFQSBnhdKipqYFQKORlm0TjzcvLo4xwOhgMBuTl5XHiZVVp+f1+yGQy2iDq4uJiyGSyhFRcfr8fVVVVtEHUGo0GVVVVnHlZ19JerxdqtRpSqZTaJ5VKoVarEzrdwev1Qq/XQ6lUUvuUSiX0ej0vXk7N0srKCjQaDbXmjUajwcrKCmfSULD5Oa6srKCtrQ0SiQQSiQRtbW2MvHFzD0MrsXhUUmzdw9BKjKmSiqt7SBBE3Conru4hOa8kWqBnyj3cgl0EQcQ0cMYWW3kIgkiKe7iVV2C1Won09PSYxLCB1+tFZmYmtb22tobt4E1LBimATaQAkiKWjveR85ZSgnc6Uu5hMpFyD1PuITekYg/ZxB52dXXFTMo2n1D38NSpU7zjDEP/yHzisnJpIsBm5dJ45rntgpONuITTJirctqWlJabjdGAUvNUEp0NouxcvtLa2MgZhmUwmzqKjCrbb7aw9HC5pmWAymVivb2kymTgFe0RslrbeNTa1rtlshkgkQn5+PusL2Iqtd42NdWM0GpGVlYWTJ08ypo14h/nGI8Uax8Q3XJbteREFV1ZW8iLmex6Ja9euJfS8iD9puVyOmpoa3L59G8DmVUq3glzNlAzoimVgvrq6GmlpadDr9QA2r1K6FeRqpmRAFxveiIK9Xi8VZ/jLL78whulUVFTELJbkJeMMjUYjI29TUxNrsQBDX5qMM4w0qE2iuLgYpaWlcXMPyThDphWMNRoN6uvrOfGyskvVanXUNGq1Oq5WKclL/qwjQa/Xc+Zl1dNi8nFi9ZeSyZvqS0erjbmAbT6kT7X1lQp8QeYTyasKE8w3aJJvPh6PBwRBYGZmJi68MzMzqdjDUDx67mEsFxwrUrGHSUCqWdrpSAne6dix7uFzzz1HW0s/FO7h/v37UVBQgMceeyxm99DlcsFut2NwcBACgSDsnTHb7h4ePHgQxcXFcTPTMjIyIJFIcOfOHfz+++8Pl2DSPSTftxQv93DXrl0oKirCnTt3wtIwFhq62aputxtms5maCR8pHROEQiEkEgntew/X1tbC3mu4tLSE9vZ2nD9/njZd6Pn79u3jHoo3OTmJsbExnDlzBsDGWLXdbqcNoent7YVCocChQ4dYh+VFij3s7u5GR0cH9YWaTCbcunVr0yMkmfbChQvQarXQarVUWF4wGER6ejp7wdPT0zCbzfB4PJv2R7NT/H4/rFYrJicnUVZWxnowPtTpGxoagtFoDAsIi2anuN1ufPnll+ju7salS5dw4sQJKk+64hH2FTgcDgwPD4eJZQu/3w+bzcZ5JSSLxYL333+fNvqNDdxuN3p6ehjPDxMsl8tjjkw5ceIENfOVLVQqFd58882YeA0GA7WiWiSECfb5fPjpp58AbKyBx/bCpVIp6urqAADff/895wf6tbU1fPbZZwCAjz/+mPHCSSiVSsr3eueddxh5aWtpMrwuJyeH9cuczp07R5UZvktO/fnnnwCAY8eOoa+vj9U5nZ2d1CsH2fhaUZulwcFB1kGNi4uLjK/gYwuDwcCJ9+2332add9RmyW63w+12Q6FQIC8vD5cvX8bCwgI19VcqlcJms8HhcGBycjJuSz6aTCbMzs5Cq9Xi6NGjGB0dxcTEBJxOJyQSCZRKJUZGRjAyMoL//e9/jBFsoaAVLJfLKZvD4XBQ37ZEItlUph0OB238gVwu5ySQhEqlopo+i8VCtbsymWxTmb579y6t46BSqRg5aAXX1tbi22+/DZvY5XQ6aQMuQyGVSlFbW8trgb6WlhY0NDRgYmJi0/6ZmRnGYVylUomWlhbGeGbaMuzxeKDRaKhVDdkgOzsblZWVOHfuHO82fH19HW1tbWhqamL9ul2ZTIbXXnsNnZ2drN7yFfFFjy6XC6WlpVCpVFhaWsK///5LVfnz8/PIy8sDAOzevRu5ubnIycmBx+OJKZ6YIAj4fD7U19ejsbERf/zxB4aHhykrdHx8HE8//TQAYP/+/VAqlVAoFJx4I1ZapGiyrBw4cAD37t2DXC7HgQMHAGx0QXNycrC+vh63VR5Cecnw3J6eHqhUKpSXlwPY6OI+88wzALiHxnN6PPz555/D9h08eJATIR/Qzd9gE/FKh9SYFlvI5XKqPMUCrlFuKpUKp0+fZkwXDAZp93MSLBaLUVJSgqNHjyIjIwNerzfmOR0ul4sx9lAikeD06dN4+eWXIZVKGXnj5h5evHgRXq8XHo+Hd9MTCpFIhHv37iEnJydqp/+HH36A1+uFy+VirKTi6h7Gug7tVpDuIUEQKCwsjOge/vPPP6zyCwQCWF5exl9//YX5+Xla93DbzTSbzQar1Yr19fW4uoclJSUp9xB4BJullOCdjkdO8P8BGCQ0hnF1DxUAAAAASUVORK5CYII=);
width: 27px;
height: 30px;
}
:host.active {
cursor: auto;
}
</style>
</template>
</dom-module><dom-module id="tr-ui-b-mouse-mode-selector">
<template>
<style>
:host {
-webkit-user-drag: element;
-webkit-user-select: none;
background: #DDD;
border: 1px solid #BBB;
border-radius: 4px;
box-shadow: 0 1px 2px rgba(0,0,0,0.2);
left: calc(100% - 120px);
position: absolute;
top: 100px;
user-select: none;
width: 29px;
z-index: 20;
}
.drag-handle {
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAChCAYAAACbBNzvAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABV0RVh0Q3JlYXRpb24gVGltZQA3LzE2LzEzRNEKUwAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTNui8sowAAA9aSURBVHic7V1rTFvl//+UrgUmZWMpbLa6cLErwpYxkqLGkjAG88WSbmumGUllvlmAJctMRtybvlHrLXiJUekMIZuYSCL5gS+EuLIXGEGjqCsllCEW6xQECgzWG7S05/+C/zkp9LTn0gsL6ych9JzznOdzPj19Luf5PN/nCN59913ixRdfRFdXFxLx/2GDgCAIYmpqCoWFhUjE/4cNae+99x4AIFH/Hzak7nDqDu+wOyyw2WzEdl9EMpG23ReQbKQE73Q8coJ3bfcFWK1W/Pbbb/D7/UhLi/37DwaDEIvFKC8vR0lJSdjxbRVstVoxPDyMxx9/HAUFBcjMzIRAIOCdXzAYhNvtht1ux/DwMACEid5WwSMjI3jyySdRXFwMsVgMoVAYk2CCIJCZmYns7GyMjo5iZGQkPoKXl5exd+9e3hdGIhgMIj8/H5mZmRCJRIyCyQ5NJBAEgUAgAKFQiIKCAiwsLISl4VxoHA4H+vv74Xa7uZ4aBqFQiOzsbIhEIojFYojFYohEItq/8fFxXLlyBUtLSxHThOaxZ88eCIXC2AWPj48DAH799deYBaelpUEoFLL6++qrrwAAH3zwAav0YrGYthLkJHh6ehpzc3MAgPn5eUxPT8csWiAQMJbboaEhmM1mAIDFYsHQ0BDvPDkJtlgsYdt+v59LFrxw/fr1sG2Xy8UrL06C6+vrw7bFYjEvYi747rvvwrYlEgmvvDjV0g6HI+p2ohBP3qh32OFwoLe3l1VGvb29sNvtvC8kFCMjI9DpdKzS6nQ6mEwm1nnTPg/7/X6MjY1hcnKS/VX+P/bu3YuysjLk5uYypv36669x8uRJZGRkQCQSwev1oqOjAz09PZx5CwsLcenSJRw+fBh+vx+rq6swmUx46aWXNqWjvcMDAwO8xAIbnZKBgQFeNXhzczMvscBGp6S5uRk//vhj1HS0grVaLYqLi3kRy+Vy1NXVRe0RRcKNGzeg0Wh48apUKnR1daG6ujpqOtpKy+VyQa1Wo6SkBLdv38aFCxeoY5988gn1+fLly9TnL774ApWVlXjiiSfgdDqxtrbG+aJ9Ph/0ej3OnDkDvV6PW7duUceOHDlCfR4dHaU+v/DCC7h27RrUajWcTidWV1ejctAKJggCKysryMzMhE6nw+zsLO3Joft1Oh0ePHiApaUlduqi8BYVFaGvr48Vb19fHyfeqM2Sz+dj3QTEs4lKJC+njsfWJoptkxUrtjZRbJssOnASXFtbG3U7UXjrrbeibnMBJ8FZWVkoKysDABQUFCArK4s3MRcoFArqrlZXV0OhUPDOi5Ngn8+Hw4cPQyqV4tlnn4XP5+NNTIIgmH0An8+HV155BUqlEq+++ior3kAgQLuf84jH2toajh8/jvX1da6n0sLj8SAjI4MxHUEQ+PTTT1nlSRAEHjx4QHtsW8e0RCIR7HY79uzZE/GOcEUgEEAgEMDff/8NkUgUdnxbBR85cgRmsxkCgQD5+fkRh2XYIhAI4P79+5iamoLD4cCxY8fC0myr4KeeegoCgQBWqxVzc3NIS0uLedQyGAxi165dKC8vR1FRUVialHu405ESvNPxyAlOuYfJRMo9fFjdw3iBq3vIBDbu4bYK3uoextKtJEH2yWNyD8nyEG8wuYcffvgha3cxru6h3W5Hf39/QoyzaE6fyWRCQ0MDZ+MsLu7h8vIyent7sby8zIk8VkxNTUGn08Fms8UlP04Nn9/vR39/f9w8JLZwu91obGzk5CFFAq+Wfnh4mDKok4mWlha0trbGlAfvrs3k5CQGBgaSYoiHoqenB1evXk2OIb4VDocDJpMp6eXaYrGgsbGRV7mOufPq8XgwMDCQ9HI9NzeHq1evci7XvDseUqkUWq0W6enpCAaDcDqd8Hq9fLNjDaVSiRs3bkAikfDi5XSHxWIxampqAAALCwsYGhrC7Ows5ufnEypWIpHAYDAAACYmJnD9+nXevJwEnzp1CjKZDBUVFQCAsbGxpJTfjz76CFVVVWhqagIAdHR08G6XWQuuqanB7t274fV6UVpaiuzsbAAbTzyJhMFggEKhgNfrRX19PWQyGQDAaDTyyo+V4JqaGshkMsricLlcOH78OICNCWp8p0cwwWAwoKqqahPvG2+8AWDji+7u7uacJyvBMpksrKxkZWVR0yLGxsY4E7NBVVVVGK9CoaCmRXR0dHDOk5VguorB5/OhoqICYrE4YZ2PSLxXrlyBRCLhNcE1pufh1dVVXLx4EWlpaRGnJzCBjXtId87g4GBU3ri5h1uJ5+fnY8mCtXvIhTflHoYg5R4mEyn3MAl45KyWlOCdjkdOcMo9TCZS7mHKPeSGhLmH5LBOrAGXXN1DcliHrgdFgsk95CzYbrfDbDbD7/ejrKwstpmtNO5hJJhMJrS2tsLtdqOpqQlarTZi2mjuIWvBfr8fZrN50/iz2WzG9PQ0nn/+edonEzZgij10uVwwGo2bxp+NRiOGhobw+uuv005hjtk9JENz6AbbyWCuRESp2Ww2NDc30w62WywW6HQ6zoOIrO5wbm4uzp8/j5WVFXR2dm46VldXh3379mF5eTku86dDUVxcjK6uLthstrClqrq6unDo0CHOvKwE+/1+LC4uUqG0oZiYmIhaicQCkvfu3bthxwYGBnhVmpy6NnSD7kxxQvEA3Zo+fIsQJ8F040j379/nRcwFdF4037FwToLphkUXFxd5EXMB3chkUgQ7nc6wfT6fL+Gm+H///Re2z+Vy8TLFGSut/v5+RsPsm2++AbDR84pXLFNDQwPjelxnz54FsBFK+/nnn7PKl/EOa7VaVmHvYrE4au+HK27evMkq7F0ikeDmzZus82UU7HK5qG8yGs6ePct73gUdfD4f2tvbGdO1t7dzaocZBRMEAaFQSBnhdKipqYFQKORlm0TjzcvLo4xwOhgMBuTl5XHiZVVp+f1+yGQy2iDq4uJiyGSyhFRcfr8fVVVVtEHUGo0GVVVVnHlZ19JerxdqtRpSqZTaJ5VKoVarEzrdwev1Qq/XQ6lUUvuUSiX0ej0vXk7N0srKCjQaDbXmjUajwcrKCmfSULD5Oa6srKCtrQ0SiQQSiQRtbW2MvHFzD0MrsXhUUmzdw9BKjKmSiqt7SBBE3Conru4hOa8kWqBnyj3cgl0EQcQ0cMYWW3kIgkiKe7iVV2C1Won09PSYxLCB1+tFZmYmtb22tobt4E1LBimATaQAkiKWjveR85ZSgnc6Uu5hMpFyD1PuITekYg/ZxB52dXXFTMo2n1D38NSpU7zjDEP/yHzisnJpIsBm5dJ45rntgpONuITTJirctqWlJabjdGAUvNUEp0NouxcvtLa2MgZhmUwmzqKjCrbb7aw9HC5pmWAymVivb2kymTgFe0RslrbeNTa1rtlshkgkQn5+PusL2Iqtd42NdWM0GpGVlYWTJ08ypo14h/nGI8Uax8Q3XJbteREFV1ZW8iLmex6Ja9euJfS8iD9puVyOmpoa3L59G8DmVUq3glzNlAzoimVgvrq6GmlpadDr9QA2r1K6FeRqpmRAFxveiIK9Xi8VZ/jLL78whulUVFTELJbkJeMMjUYjI29TUxNrsQBDX5qMM4w0qE2iuLgYpaWlcXMPyThDphWMNRoN6uvrOfGyskvVanXUNGq1Oq5WKclL/qwjQa/Xc+Zl1dNi8nFi9ZeSyZvqS0erjbmAbT6kT7X1lQp8QeYTyasKE8w3aJJvPh6PBwRBYGZmJi68MzMzqdjDUDx67mEsFxwrUrGHSUCqWdrpSAne6dix7uFzzz1HW0s/FO7h/v37UVBQgMceeyxm99DlcsFut2NwcBACgSDsnTHb7h4ePHgQxcXFcTPTMjIyIJFIcOfOHfz+++8Pl2DSPSTftxQv93DXrl0oKirCnTt3wtIwFhq62aputxtms5maCR8pHROEQiEkEgntew/X1tbC3mu4tLSE9vZ2nD9/njZd6Pn79u3jHoo3OTmJsbExnDlzBsDGWLXdbqcNoent7YVCocChQ4dYh+VFij3s7u5GR0cH9YWaTCbcunVr0yMkmfbChQvQarXQarVUWF4wGER6ejp7wdPT0zCbzfB4PJv2R7NT/H4/rFYrJicnUVZWxnowPtTpGxoagtFoDAsIi2anuN1ufPnll+ju7salS5dw4sQJKk+64hH2FTgcDgwPD4eJZQu/3w+bzcZ5JSSLxYL333+fNvqNDdxuN3p6ehjPDxMsl8tjjkw5ceIENfOVLVQqFd58882YeA0GA7WiWiSECfb5fPjpp58AbKyBx/bCpVIp6urqAADff/895wf6tbU1fPbZZwCAjz/+mPHCSSiVSsr3eueddxh5aWtpMrwuJyeH9cuczp07R5UZvktO/fnnnwCAY8eOoa+vj9U5nZ2d1CsH2fhaUZulwcFB1kGNi4uLjK/gYwuDwcCJ9+2332add9RmyW63w+12Q6FQIC8vD5cvX8bCwgI19VcqlcJms8HhcGBycjJuSz6aTCbMzs5Cq9Xi6NGjGB0dxcTEBJxOJyQSCZRKJUZGRjAyMoL//e9/jBFsoaAVLJfLKZvD4XBQ37ZEItlUph0OB238gVwu5ySQhEqlopo+i8VCtbsymWxTmb579y6t46BSqRg5aAXX1tbi22+/DZvY5XQ6aQMuQyGVSlFbW8trgb6WlhY0NDRgYmJi0/6ZmRnGYVylUomWlhbGeGbaMuzxeKDRaKhVDdkgOzsblZWVOHfuHO82fH19HW1tbWhqamL9ul2ZTIbXXnsNnZ2drN7yFfFFjy6XC6WlpVCpVFhaWsK///5LVfnz8/PIy8sDAOzevRu5ubnIycmBx+OJKZ6YIAj4fD7U19ejsbERf/zxB4aHhykrdHx8HE8//TQAYP/+/VAqlVAoFJx4I1ZapGiyrBw4cAD37t2DXC7HgQMHAGx0QXNycrC+vh63VR5Cecnw3J6eHqhUKpSXlwPY6OI+88wzALiHxnN6PPz555/D9h08eJATIR/Qzd9gE/FKh9SYFlvI5XKqPMUCrlFuKpUKp0+fZkwXDAZp93MSLBaLUVJSgqNHjyIjIwNerzfmOR0ul4sx9lAikeD06dN4+eWXIZVKGXnj5h5evHgRXq8XHo+Hd9MTCpFIhHv37iEnJydqp/+HH36A1+uFy+VirKTi6h7Gug7tVpDuIUEQKCwsjOge/vPPP6zyCwQCWF5exl9//YX5+Xla93DbzTSbzQar1Yr19fW4uoclJSUp9xB4BJullOCdjkdO8P8BGCQ0hnF1DxUAAAAASUVORK5CYII=) 2px 3px no-repeat;
background-repeat: no-repeat;
border-bottom: 1px solid #BCBCBC;
cursor: move;
display: block;
height: 13px;
width: 27px;
}
.tool-button {
background-position: center center;
background-repeat: no-repeat;
border-bottom: 1px solid #BCBCBC;
border-top: 1px solid #F1F1F1;
cursor: pointer;
}
.buttons > .tool-button:last-child {
border-bottom: none;
}
</style>
<div class="drag-handle"></div>
<div class="buttons">
</div>
</template>
</dom-module><dom-module id="tr-ui-e-chrome-cc-display-item-list-item">
<template>
<style>
:host {
border-bottom: 1px solid #555;
display: block;
font-size: 12px;
padding: 3px 5px;
}
:host(:hover) {
background-color: #f0f0f0;
cursor: pointer;
}
.header {
font-weight: bold;
margin: 2px 0;
}
.header > .extra {
background-color: #777;
border-radius: 4px;
color: white;
margin: 0 6px;
text-decoration: none;
padding: 2px 4px;
}
.raw-details {
white-space: pre-wrap;
}
.details > dl {
margin: 0;
}
:host(:not([selected])) .details {
display: none;
}
</style>
<div class="header">
{{name}}
<template if="{{_computeIf(richDetails)}}" is="dom-if">
<a class="extra" download="drawing.skp" href$="{{_computeHref(richDetails)}}" on-click="{{stopPropagation}}">SKP</a>
</template>
</div>
<div class="details">
<template if="{{rawDetails}}">
<div class="raw-details">{{rawDetails}}</div>
</template>
<template bind="{{richDetails}}" if="{{richDetails}}" is="dom-if">
<dl>
<template bind="{{cullRect}}" if="{{cullRect}}" is="dom-if">
<dt>Cull rect</dt>
<dd>{{x}},{{y}} {{width}}×{{height}}</dd>
</template>
<template bind="{{visualRect}}" if="{{visualRect}}" is="dom-if">
<dt>Visual rect</dt>
<dd>{{x}},{{y}} {{width}}×{{height}}</dd>
</template>
</dl>
</template>
</div>
</template>
</dom-module><style>
* * /deep/ tr-ui-e-chrome-cc-picture-ops-list-view{-webkit-flex-direction:column;border-top:1px solid grey;display:-webkit-flex}* /deep/ tr-ui-e-chrome-cc-picture-ops-list-view>.x-list-view{-webkit-flex:1 1 auto;overflow:auto}* /deep/ tr-ui-e-chrome-cc-picture-ops-list-view>.x-list-view .list-item{border-bottom:1px solid #555;font-size:small;font-weight:bold;padding-bottom:5px;padding-left:5px}* /deep/ tr-ui-e-chrome-cc-picture-ops-list-view>.x-list-view .list-item:hover{background-color:#f0f0f0;cursor:pointer}* /deep/ tr-ui-e-chrome-cc-picture-ops-list-view>.x-list-view .list-item>*{color:#777;font-size:x-small;font-weight:normal;margin-left:1em;max-width:300px}* /deep/ tr-ui-e-chrome-cc-picture-ops-list-view>.x-list-view .list-item>.elementInfo{color:purple;font-size:small;font-weight:bold}* /deep/ tr-ui-e-chrome-cc-picture-ops-list-view>.x-list-view .list-item>.time{color:rgb(136,0,0)}* /deep/ tr-ui-e-chrome-cc-picture-ops-list-view .x-list-view:focus>.list-item[beforeSelection]{background-color:rgb(171,217,202);outline:1px dotted rgba(0,0,0,0.1);outline-offset:0}* /deep/ tr-ui-e-chrome-cc-picture-ops-list-view .x-list-view>.list-item[beforeSelection]{background-color:rgb(103,199,165)}
</style><template id="tr-ui-e-chrome-cc-display-item-debugger-template">
<style>
* /deep/ tr-ui-e-chrome-cc-display-item-debugger {
-webkit-flex: 1 1 auto;
display: -webkit-flex;
}
* /deep/ tr-ui-e-chrome-cc-display-item-debugger > left-panel {
-webkit-flex-direction: column;
display: -webkit-flex;
min-width: 300px;
overflow-y: auto;
}
* /deep/ tr-ui-e-chrome-cc-display-item-debugger > left-panel >
display-item-info {
-webkit-flex: 1 1 auto;
padding-top: 2px;
}
* /deep/ tr-ui-e-chrome-cc-display-item-debugger > left-panel >
display-item-info .title {
font-weight: bold;
margin-left: 5px;
margin-right: 5px;
}
* /deep/ tr-ui-e-chrome-cc-display-item-debugger > left-panel >
display-item-info .export {
margin: 5px;
}
* /deep/ tr-ui-e-chrome-cc-display-item-debugger > tr-ui-b-drag-handle {
-webkit-flex: 0 0 auto;
}
* /deep/ tr-ui-e-chrome-cc-display-item-debugger > right-panel {
-webkit-flex: 1 1 auto;
display: -webkit-flex;
}
* /deep/ tr-ui-e-chrome-cc-display-item-debugger > left-panel >
display-item-info > header {
border-bottom: 1px solid #555;
}
/*************************************************/
* /deep/ tr-ui-e-chrome-cc-display-item-debugger > right-panel >
tr-ui-e-chrome-cc-picture-ops-list-view.hasPictureOps {
display: block;
}
* /deep/ tr-ui-e-chrome-cc-display-item-debugger > right-panel >
tr-ui-b-drag-handle.hasPictureOps {
display: block;
}
* /deep/ tr-ui-e-chrome-cc-display-item-debugger > right-panel >
tr-ui-e-chrome-cc-picture-ops-list-view {
display: none;
overflow-y: auto;
}
* /deep/ tr-ui-e-chrome-cc-display-item-debugger > right-panel >
tr-ui-b-drag-handle {
display: none;
}
* /deep/ tr-ui-e-chrome-cc-display-item-debugger raster-area {
-webkit-flex: 1 1 auto;
background-color: #ddd;
min-height: 200px;
min-width: 200px;
overflow-y: auto;
padding-left: 5px;
}
</style>
<left-panel>
<display-item-info>
<header>
<span class="title">Display Item List</span>
<span class="size"></span>
<div class="export">
<input class="dlfilename" type="text" value="displayitemlist.json"/>
<button class="dlexport">Export display item list</button>
</div>
<div class="export">
<input class="skpfilename" type="text" value="skpicture.skp"/>
<button class="skpexport">Export list as SkPicture</button>
</div>
</header>
</display-item-info>
</left-panel>
<right-panel>
<raster-area><canvas></canvas></raster-area>
</right-panel>
</template><style>
* /deep/ .tr-ui-e-chrome-cc-display-item-list-view{-webkit-flex:1 1 auto!important;display:-webkit-flex}
</style><style>
* /deep/ tr-ui-e-chrome-cc-layer-picker{-webkit-flex-direction:column;display:-webkit-flex}* /deep/ tr-ui-e-chrome-cc-layer-picker>top-controls{-webkit-flex:0 0 auto;background-image:-webkit-gradient(linear,0 0,100% 0,from(#E5E5E5),to(#D1D1D1));border-bottom:1px solid #8e8e8e;border-top:1px solid white;display:inline;font-size:14px;padding-left:2px}* /deep/ tr-ui-e-chrome-cc-layer-picker>top-controls input[type='checkbox']{vertical-align:-2px}* /deep/ tr-ui-e-chrome-cc-layer-picker>.x-list-view{-webkit-flex:1 1 auto;font-family:monospace;overflow:auto}* /deep/ tr-ui-e-chrome-cc-layer-picker>tr-ui-a-generic-object-view{-webkit-flex:0 0 auto;height:200px;overflow:auto}* /deep/ tr-ui-e-chrome-cc-layer-picker>tr-ui-a-generic-object-view *{-webkit-user-select:text!important;cursor:text}
</style><style>
* /deep/ quad-stack-view {
display: block;
float: left;
height: 100%;
overflow: hidden;
position: relative; /* For the absolute positioned mouse-mode-selector */
width: 100%;
}
* /deep/ quad-stack-view > #header {
position: absolute;
font-size: 70%;
top: 10px;
left: 10px;
width: 800px;
}
* /deep/ quad-stack-view > #stacking-distance-slider {
position: absolute;
font-size: 70%;
top: 10px;
right: 10px;
}
* /deep/ quad-stack-view > #chrome-left {
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMcAAABICAYAAABC4+HLAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAB3RJTUUH3QcNFyMmV/Pm9QAAIABJREFUeNrtvXmwXdd13vlbe9/7BgzEQAIcQAIEQYKjSAokLVlOW5Fk2nLKmqx0J2Wp0k652h13uiy5XYqdwU7sSnckpZ1yV3U75apU4kos27Elu9NlyRXZjiiRomSTIiWZs0hwHsABJIY33rPX6j/W2ueed3DvAyDKKoGFW0UCeO/ec/fZZ+29v7XWt74lAIuLi7tXV1f/raq+zcy2AogIZsbpvrqfMzNE5IS/1/fVn5sZKaUTrtX9/v7nT+fn9e/1e052X/3r1THWa3R/37+miKCq7c+mjW/a+F/P57vj6/45bayn+wzXs4n+794Q9nP8+PHdS0tL31LVmfpGVQU4YSInGUb/YfZvpn+zp/LQu4Y27X31d933nurkq+qaa08yotO55npG0v2O+r1/XZ9fb2FMWoD9Oe5+pju//e+fdP3u83+j2I+89NJLn11dXf1bdSCTJnnSSpz2+/VWZ/8m+w+g/zD616yT2P9733BOZ5f4dhbCevPQHet63zVtV3y9n1/v/k9nZ562SNY7Gd5o9iPPP//8qxVKrQdL+hOy3qqdNEnTjv1JA+vuRpMGvd7kn8oCqded9B2THuJ6u/Kk7+vuiNOgQH8OX+/np813/376O/CkU2EavDwVWPiGsp9nn33WJt3ItF2ne2xOe2jTHuTJMOS0He1UcG33791JmWQYkzB6dyfp7tynsktPG8/Jdv2TGcLpfH7Sc5m0EKZBsPV+tp4PMe39bwj7efrpp229G5u2O3WPplN1cE/XQZsENybtnNN2pv4x3N1Fpu2S/SO6j6fXgz6n4gRPGmMfR7/ez/cXd/1798Tsfr4PMU52Oq4Hp95I9jPor7ZJ+G7STlEnvN7gesfXpB2tH5lZzynrO07Txtb92aQTY9rv+3i1v4jqv5umOSEq0r9O3/iqEUx6MPXnqjpxrk73812oMQmP968zyUj68zPp+U1bxG80+5GnnnrKpkVxTiWUuN4q7+96/YFXp6pvANN8hD7MmRbF6O7200KR9ed9CDbpSF4v6jIJtnQjQdPGOylK9p34/HowaFL0Z73IUNex7Z5Gk3bkN6L9yBNPPGHdY3fayu3uSP0dqH62uyP0w4XrDWo957gPEfqf78e4p4U8+0Y86R6711pvAUyL3vTvd9ou238Q/Xn4dj4/Cd6d7BlMC532534S9OnO8xvVfuTxxx+39RJlk/DtpAGc6k6hquScp+7EkyIn0+LV60Ufpu2q05zN/sOYFIfvP8CT5VEmGWN/h5w0zm/38+sl7/r3drLntt58rzdXbyT7kccee8z6O2b3JnLO6zpjk47nkyVg1pu07muas9b3CaZh4f5uPMn4Sikn7Jj9RTEJMnQfVHdck4x3Wt5i0qL6dj8/6WQ5GcSYBiEn+STrhT/fqPYzmJYxrRcopax5eH18Oi38WI2ulLImYTPNMavv716z/93rRXUmOZXVgZ5kePX7+hPeN5xJTmx3MdXf9zHyM888w8LCwgn30IUQ0xzWSYvhVD4/LarTzpWBpOl+zqRQ9lqjE2DCtbH2x9MW3XA45JxzzmHnzp0njYp9r9jPoH75Gkekc8SZ2ZpjrH/Ez8wMSSmHMY4YjZp2MDnniVGT/sPvRhxmZ2fJOWHmxj0ajU7AtvV6k4727gSklMg5M4jdq6iyuro69bv799fNptYF0X3vJKjz8MMPMz+/gWuvuYatW7eScgIEwTADEwEUAZDkBgtuYONlCCJgAuZ/N5QkCcP8avFzUH8fsZgNEoJJLAakc+2TjENi90RQjGSCJm1/hwlmgmRFFIwEYoiNxyPxvYZ07gVKUzh8+DD333cfRZXLLrvsBLxfjbl76pyO/ZRS1thq325O137k4YcftvUSOf1Ufdco/uwLX+LOv7ibZ194EYBdF+zkB956C+98+99ARE64ue6XqyqDwaDdGZqm4Qtf/DK3f+UveO7QS2uu944f/IH2WpNwdp2U/oT8+W23c8dX7+K5GN9FF+zkb7zlZt71jh9cswNPw8uTsPU0h19VeeSRR7j55lvYumUzK6MCpqTs9p2AAiRLmChWBBIIiqZEMkVUMAQTJZtQSCCKkDE0/h+7twkKpCSYxrhVMTGyCYogohRLCGvHoYD0xyGKScIUpC5AVSQl/0ACaxeCkJJhakDCTJEEiKAmDMx8XSdAY6lZQjHmZoa89NLL3Pv1r3PVVVeesDH3T+FTtZ/uguhu8v3o36naj4ggjzzyiPXhwtRjOf6+tLjEP//4r3HOuRfw5psPsOeSXQA8+dQz3Pu1ezl2+BC//I9+jvn5uXWjDfW1uLjIr37y19m8/fzJ13vlBf75L/48c3Oza3aWadSP5eUVfuUT/2bd6/3yL/xvbNgwv2Y3qbtOF0J2MfN6ka7nnnuOvZfuZcfO8xitKnloFBXEBHGLc4MTQwVEDeIkyAqa/Pdh9z5vaqgkUuz8akYGVATEHOYYiCSUQtJqkCDJsJJIvXFYNRIzLGWQQqqLEiOhqKS6gnzhqJ9cJplsiiXBSnfBJF957TEoJBKYYskwFUSgWCKnBkmZp59+mpdfepmdO3eu2USn+V/r2c/JWAX9CN/J7KdNiD744IO2nqM0Cff+01/9P7js6gP8d29/C5detJNtmzYC8OrxBZ547kVu/+JfcPDBe/iXv/xPkCnkvHalm/HPTvV6v/SP25vs3mB3fKurI37pX36cfdesf73HHriH//2X/3Fr/NOSTZMyzn0n0sx47LHH+JEf+REWFhd8pzcliRtyBVbFYlcTN0bfpoWEYiaxENTtjOQwByOZ7+r+b/zacY5YICvH/iDmBurjmzQOKMlIWkPThpohkuN0iwWI+YrNGkdeQswwcbhlWEAzw8wXazZDJfsYMP84ghXzxSHip5rB/IY5/sv/+0dc96Y3rdmA2uz0YDA1EHIqDNv1KDAVvk2yn64vOujHlqdlJ+vv/+wLX2JuywVcfOkeXj2ywGtHn0C1Hov+uUsu3cNzzz/Hf7vtdm5959snRknq6wtfvOOUr/fnX7yDH37n29fccBdG5Zy57fYvs2HrqV7vdm59x9vXJeqtx6WqD+T555/nyiv3s7y8TMLhSgLMElkURx+KENi+7uzi0EgtIUCi+OmSwIpjmYTSAIN6uiSDkkAKQgp/IgON+yaGnxIBz/rjcPckj30LU5I5rCsJsiYsafgjCbXEUIwiiqq4e1J9FjVfNCioYMlPC/eJIFuisTiN0oBkhllBcmJlaYnL9+/n0KFD7Nixg5xza6hPP/00S0tLzM7Mho/lfpGicW/hyyCQAv75Nuw+UOwi/o7WmXLfClhYOMaWLVvZtWtXG7TpRibrMx/0V1j34XcdT4DBYMA933yQnRdeymhUOHZsCZFEqrurORRZHRV2XrCLr33jft596zsZjUbtiuzGqQeDAXd//T52Xrj3lK53zzce4G/d+k6WlpfXOF5jSAhf+8YD7DjF8d3zjQf50VvfRdM0LYzqv/pHcH9napqGF154gb/59rdz7PhxTPCdNSliisYuK5rjIRsWPyeJQyGhWhyNCEn9sbrPIGRJmBRfeCb+kEXQwDZG49AFIYmh4kvmhHGYISTEGl9YBimPoZypvx8VJA3R5IurMcdrSTrjLuGjGJCNpJnGlCwWp6CRMLIoMCBhFJPYIAxNxjVXX83v//7vs337dnLONE1DzpmXX36Zt73tB1g8fhwzh3OIObyrp60IWp9XNlBfRtkCPqWIM9T5x+GhDIQN8/O88srLfPWrX+WWW245IeLVPvvubt49biZRMTDj6MISGzdt9i81YTjIzM/OMjc7w3AwANwp27hpM0cWln0iOt9RowruSAlHFpZP43pLJxAB68lnZuSUOXJa41tCIuQ7jYBWf9fnP5kZo9GIlZUVLrzwQpaXVzxihGHJEE1ucdlIkgOwKMncj5Ds0SjfZd2R9re7AeWkGOFUhuOrrd+jFDPMEkJ1XGPhxdY+cRzZARPJfR9Jiqm/P2wONKHJwJRs6jt0Su5nWHJfQj2IYBQIp14xBkI47OE/BVyUFI6/KCk5zJOSGY1W2bFjB03TrOGtzQyHNKNRnTGQghWjWInxGI0phvtyNOZg0GAU86hmlMYw9c9qMYyCjgpHjx9ndmYD3//Wt3LPPfdM9FtUlYGqUko5IbzVdUi7WHw4M8vc3CxzczNsmnejq6HSphSWVlYBWF2ZY2Z2tt2tuwuw/ruUwszs6V2vuxi6TlYd48zM6V+vC8/qYqgnZT861Y+dP/bYo/zoj/4Yo3o8u1PgoVRJiPqJBRkRo6C+oxchSaGIxC5uJHEfwDdqN3xTg+wRKXd2EyRIBppjy/fLY02CWCzTxuHX91MAEfdPNJESqBopFcwyJurAqg3jWpx6DqkExVIiNwIDQa1BAWRAQiE5XExJ/URCyQgFIZlB9rk8cOAAt912G/v3728jiMOZGVQDEShoSUhuEM2U5CecFHWIGbAzlwZJghRDs0AJ2FVdu2wUMxI+XyqFpjF27drF0aNH2bRpU7txt455fcjVuCrE6Ds6DkdW2bF9C1lg49wsG+ZmOWfjHNu3bGL7lk1s2TjPpvlZNszOkMTYsW0LWvSEHbhraDu2nfr1ztu6haa3uLqn0qhpOO+0rncOTWcy+vmMesLVxVgXdimFpmligWbmZgZtLN8vFmFZbbBGHfdSwo9whxot8ZAdMydzTG9aUDGKGlZ8QaiGU6wGVtDSUChIY6j6gqOBTHPScZj5qVHUoAg0DaYlIIWhlj2qFUhBDUwLNH4tMCgKZqRSGMwO+PM//VOGgznPe2jDYGbIvfd8g5mZAapCMcEEv6cK8RpFLLFp06Z2Lqvt7dmzh4cfeRBTQ1E04GXBEG187pLSqNKYbyBm0IQda6MoDUbB1DwQUvyE1tJgKFqM1dJw6Z5Lefzxx1vb7B4EqbtSJjmmXYjVNIXrr7mCI68dZmaQmJ8dsu2cTezYtpkd2zaz9ZyNzM8OmRlkjr52mBuu2c/qaHRCZGcMSxpuuGb/qV/v2isYxfW6GdFqtE3TcMNpjq8mGbs+xyRSX520GhMvpfDC889z7XXXsdKsYMV8t7fA3ChYJmWgGKkIlh3SWeQEwJDkp0UJKKIioGNXW9R3PnKKEK+E32BYDlxvUMTQzEnHIREQSCQaMSRn9+dlvKOmMUr3aFRKcco43JIUicWU+G+3fYHf/c+/x6c+9R+ZGQ6ZmZ3jtz/1Kf7PX/vX3HPvvTHaQsYgKUnFo9C5oBirKytcdeVVvPjii+1zEBGOHTvGxk0bfXGabyxGQ1GHmaYB4YqRLDYIIXyw4vDQ/HoJQ61BTHyPKeZ3aMbxhQXm5+dPSDCaGamPt7pQZRJL8qYbrmP56KscPnwYEZgZJAbZ/5sZZMA4fPgVlo++yoEbrqXCtq4Bdv2bm9/8JpaPvXZq17v+2hNgTXcxN03DzQeuP+Xx3XLg+hNoGN1Togsxu4umnijPv/AC+6/YTxlZZIo1YJIf5yLmBpeFMhCwEg67J8QkVacyRe66eLg1aRtcUVFSgmzFsx3uWSKSkWIUibiSpcD1648DMU/ggTvP6r5PskhrmEMfRFEJKBcZfJPkjq4nQTA13vk338mHfuJDfOXOr/J7v/t7/M7v/A53fvlOfuqnfoqbbjhA8di1/2nZr5kU0YQlhz7XvukannrqqTW2snXrVpYXFrBmBH5+OBnA/CRxP0NJVjySZoo2DrLcbhu0eDTORONnxde3FUQLqoVmtMreS/fwzDPPnOBe5J/+6Z/+F/1dvZ9V7BqHiHDDtVdy51f/ktVRw9ZzNpMkMRo1HD16jAce/hbPPv0k/+N//941Wcr1CoNuvO4q7vjKetd7gr/3t98zkXJ8QpTJjBuuu5IvTxnf/Q9/i+effpIPf/DHJiqO9EPX/Yhd9UuWl5fZMD/ProsupJhDBEniOzaCWMakuNMsjp0znhzTSv0wRbL4yYCQyWgliJhTMzKZRty3cNhDJNgMY0ACz66H333ScRSHVSnCrZbdfzFpc4okFLHsvkEkBE0E6YSPfXxQrHDF/suZnZ3jttu+wHPPPcv73vdefuiHfpiVZrlNbLYJy4Hfm9uSn4jaFF47coScUuvnbd26lccOPsa27eehxXd/JO7LQAZgJRZ84+epZM8JeYwtIaKIRZpGxXNFLTvMIuye2LRxE48++ig7d+5c48/KPffcY5O4+11nvOsj1N/Pz2/ggYe/xaNPPUcTGHc4GLBvz0Vcc8U+VlZXpkrgTCrPrNf71pPPnnC9a6+8gqWlxTUOUx1T/VmfGbphw0buf+gRHn3yudavaMe3/3JWVpZPYOXW+6vX7CYcu9GUpmm47777+OAHP+h4NxYlSdr8gOGOY45TwCpIsRQwxkjqxi7iECCJY3MBj91L8viXKSlFrN7iG6SyrOp1OaVxEAlB1EPFyTzSVCkjmgSp2XGNPALBO2kMy0JW8YhW8VNpODvLp//g03zjG/diCDfeeAN/+8c/yOrqClgOLpZgA8NGKU6vOI0QhMzK8iL/9fOf58orr2QwGJBz5v777+etb/l+jh096rAzCNApbhMqRItTRVKHGBmcF6CYkSUjWlr+pNNrIodiwlNPP8WuXbvWJKoHXew+GAwYjUYnxPS78d9q3EtLi+zfdym3HLiBuVlP1qyurPLakSMsryxPrNfuhnL7hLKFhePs33cpN9/4Jubm58BgeWWFI0eOsLBwfM3i7BrytLrlhYXjXL1/H993043MzsyAwMrKKseOHWNxcWEq6a3PzO0nSFWV0WjE7OwsMzOzLC8teagTQ5w8FVljZ8B6bD/Ig2YkUaz4I1Tx06Sh+E4cxuIZcHdAU8Ak0+T2ihtWzYSj1NThScfhYM4dbne6fVcV8bCx5zpicanvvO2qix+bepSrFMgizM7O8h8/9Z/46p1f4f0f+HEA/ugP/5CVpRU+/KEPsTxa8XAxhpRUM6C+IFViDgqbNp3Tnso153HhhRfyyuGXyGmGOjtJxfliqYbFPX+hpiQKWIoNB1CFQYrTsqGIRLTKT+xk0ChA4Yr9+3ng/vvZu3dvaw+D7mmxsrLCYDBY44TWf3eNsJsPeeWVV9aVdekvvm7Uql88tLq6yksvvzy1sH+aSkh9NU3T+k0iwuLiIouLi+0J2K8zmERP7+Z2qvPdz3EcOnSI6667jtXVZTQZ0pgf81KZrNWgAuNWrlJSSolEWPL9WqWGOt2eJSlaguJhvusnEc/yV0ygRkkpiH+QRSnCScfhnCl1smM44BVIdVnBnnFOEfpMiBVUnMxYeWFZ3FP6/z77x9x5x528//0f4F3vfAdigpbCZ/7wM1yyezdveetbnL8lCbNC5cAUJ7d4SFoSS6Nlrrnmap555ll27tzJcDjk3HPP5eDBg1x2+RU0qytgQol5dNaDopactoLFCVyQLKhCSua+hQTzWD33YwKpcUaA/8ztbBRRs/bk6OPsLkTRoHj3C/Yn1Rv0/ZJJBSarq6troEr3c/XPmvnuQ7FJmfu+sMAkI+/WpPQTndMURGqCr8/6rD8/dOgQ73nPezh27HhEYzzk6Md6pX8bFbAIhonDJKhoxWLXTwFp1NdPY8EgFzT8Dv+AOwbOrjWPgKXKbfLo1CmNo15HPHFmUhgTVQh+lOOWLM641aCFWEtbj+cgyo/+yLvZtnUb3//Wt7G6OkIwfviHb2Xnzgu48c3Xs7K86idNzTGUoLlLxUdOiMwI1159NX/5l3exbdu29jkuLi4yPzvL8dUVSoNDtDjJLKBRI0YmkqXOcEQSFI2cShKkLowSSUlLkU+CZMbi4iLnbt/O8vIyMzMzbkt33nmnTaqK6lZx1aOuX7vcx+yTanq7MKpbfNR1quvu3F8wfQp5d7ev4+v6Al3o0/eX1hMHm1aLPEl8YWFhgZWVZd7+gz/IatOEPzDwya8bdXLoQwnqglR6OBFNcqhDOLbq22dEIiM513iUR8woyZ32XJ3sFDukuPtSKhnxFMbRJgZjx0ymIIM2CWkBO6xS4FNk7cVQC1jia6UNh1rOfgKotgnLFGOWDkFRTZyuUmodSaX1BNoYCF+548vMDGeYn59nZmYGVeXwK4fZef4FqFkEH2owISElnil+X77Ak/PQLBYzYNKQbNDys2rEziJQkFDO2bKVu+6+i71797q9dxNp/d247yfUnMC00Gw3kdNNltXPTitb7VZ91YRQn6zY/96+L1TDq30nvY6l+2fNldSxdU/Mfji3C+1WVlZ45JFHeOtb3sZodTWIbL4raTAKa8UFxTlOTlfxZJRU34DkcXuLRG6p4VdAszu+QZZTBSkOY6zu/MUJWaYRTTuNcfhxlaIOQ+Ik8ARhqZBNPOyMJFLkFDTGX0wpJUCYiI+ztaHY7ASsGRuemS+iZCCqEbiKMKv6ovRxKbccuIWDBw+2lBIR4YVDLzAzHJLQCF1bhzZSPKnZEjiDvqLmi5sCyfMeJpU640466uPT5Pe4PFohDTLD4dARQ3e3rYbdzRB3F0mfqj0pD9CFL12sXiM+1ZDrd9WfdSejv+C6pMWukXezmv3/uhCpe63uoqvjrYuq6WHOetp1v3N+fp65+TnMMpTShjOt3QE9ROvYPI5/83oKlRL1FIrzNSRyAJXFamBNLexzjJ78mqq+YFJxACZ4dvB0xqFBFycpUMhmlBw0k6CxWnJDdlqKnwR+gezcrmD+WkR+tN1/jUJARRM/tSg+1mSU8K80KCGkgiEeoFAfkqkyt2kD8/PzLVlVVbn22mu57YtfYLUUNm7cgBYfmgUb2BduHJfFKBRnAqRIXBZnKIuCNMWTirFo0eKUEwEdGcuLy2MbuP32260LfU6m0zRNm3Q9XdZazDIajRgOh+2C6Auk9X2e9dQpJtU+96HSYDA4IYk5TVh4Te1w+Br9U+PFF1/kyquuYu/eS50KkiQoHtLmCHJEhGosnRrPD6IgOaIl5rAJ8YSYJoWSUSnk5Bwqq5gjJUyLR4tybhm8vkA4rXFIMmiEkqSlswseyclSTxL3XzyRCGLF5QaiZLZSw2t+JuHObaJuAuo8KLF6i/V/Dgu1pk+C1hEOcRLP8D/1zFM89NBDnH/++QyHQy91Hgx44IEHKKUwPz9PaZq4txpVq5WINZIXLoJGwZa4RyZtrNzvQVGSed3LzOwsKQm7du0aEw+7jmyfaDiJRtENuU2Td+z/vMvd6i6++u8uhOpHlyoEqousr3LXvYd+sq7eU9c3miSjWRdJ9WO6i7DuYIcOHeLHP/B+ji0skSWyA6kWKKU2x13LUn3HcuydUoSjgk6NJqwUkNziYMtK1hTwSONKvggk+WJJgbFNGswyScopj6MN+yZjkEAbQwYNlMwwfKKSPN8S9u9JNcmIRj1HkByliEfGRoKm5KzxONMkxpCjTEDw7L1FWUESpWgIX2SLkoKoGMzC/iuu4Mtf/jI7duxobWJ5eZnLLrusjXh2Swb69tO3iYpQuqWw1fftRkyHw+GaIM2gL0ZQv7juntN0nLoZ9a5D3GXdttTfyHr2F0QdcH8xdk+P6kt0F0w3RNyv0OtH37rXn8TA7YsorK6unlBPXEphYWGByy+7jMWlZa+YK8kd5sDqKejfRkNmgBaPubvwgNKUQYxRIZnvxil2VC3+WREnFOILysSDrKoCNAgShU/J687l9MeRygCNYqriTA7PyquzcX0z953fiIRMtnEJbQ7elnrQQHMhaaIBp8cHLPOKkUqV0VYvQsy8ZiVqQ8Tpu2OonmBlZYX9+/dz5MgRtmzZsqaMtm8bw+FwzabaZ23X1+zs7Bok008kT5JYSl0j74ZtR6PRGojV3fFreLOLxfs+S5f+XXfe6mtMKputi6DrVPfpIX1fon5n15/o+g2T9GHrOJaXl9fkbUoprTJJHWddwE3T8MQTT/COH3oXpSmRqnP6tyexvKRUUMQG7luY1GgqiSF5UDynkSzwdZSamkQxj4dXsyWyQE7uvFrUwWrKEIVPOqgV36c/Do3TS6VGsiLWr2PlkAxYKo5zaiYcozHncGlAGEsgJUUdObhn4ZAmp2Acx2JHpBO50tZvMrE2ny1RHKXA277/bRw8eHCNXX237Sd1C4e6cKceMd2sdI3ydJ31SYXsdYDd1djdyfuwqgt3BoPBCSJjNRFZrzccDtes+vWUUvqJwvr+4XC4Jsxcd4+6+6SUGI1GHD16lAcffJD/4e/8HZaPL3nVWXCSPLTpLB1LbqopZGsQT4aliB5pyaTAtwWQQfAhtJCDqaqRlCtBabBhwnKJIiOLTDfQSOQrTn8czsNIHhUL6J0HOGwzJxUWEZJKsDIEy4ZJ9ipDrUojGg67JwuCKxwejuc1LIfJB8YXEY9WRZGXImQN1i+GpuSnWTGWV5b48Ic/zNfvvZejR4+uQTffLfuR27/0pdhCiAL6MUmM4J7Uyq5WmiU0kmqEo2oj1Z9JyLVU3GqRFfU5Cp+ge52uDx+7UJ3kVgFJWPO++pska+Vqqq+FdcbT+S4i4tJqRdXQUCSU3JeTljM1HA64+qorWS4N2VJ8jQYBLpMoQUWHAUKDix9U+ptj/cBI4nymAEvxQBwe+XXjHlJBtdIQ05hwh6JZSPo6xtFm68f3i4IFnZycQhBhnJF3H1yD4hIlsCpjxq6M6+NpqTIhAySKFKfiD5K11A93xI0qFlRTqV42HLkhEyQJDz74wASxD9pn1SGutQteqM+acRBhLBI2wZ7Hw2+t6/lDh2woQhG8drkaazUUBI00ewpqDClR1EXGqiZRq2IR0jE5HM+avZWITzsTMqInEb2oC0BDoCxJ8IoiopCCy+OsS6c1iPiR7xFFI6dQvqhiCjHlLfwQN6Lx/Xssp5iQrBpK5JJbdqrXSYiF1kegDM8ZBDkvplIl5igHLSMoH9XZFIOSa2WdeXVbZGpdWMfxuVRHH39fLFvPVai87nH4JsDaZ6WG5SBFVl6X1PmHsV5QhEQcCZcsAAAWiUlEQVTN/3S+VfIipBosE0FLzWRnf1Z4Vtp9J/WAXcpRvBVUrprIi/vGxpG2yOWf5FkJRdx+Bh6DeN32nCRKFyV2No1Yd12ViguMpZRiB/AEVor4u0VM2+LYN/Hj2LO6cXhGFVjoVDjetnqsBMUnDuVURS1IpOw7TqP12K8Lw5Nm7vA5dUDVs8MSnl8hwpKhzKfqIgWu3RScHgtjSw4l6s6SgtWKuhqHU9OkzbYWMyx1ggPm7FZJyZ1UBIsyToschguG+HcXxZN+kdmuQVdNJRJw1jlVtS2W+k6MQ8W8bDcMMhWjSfgmY8Vza6o+P8Hd0wjFWlQG1mNc8OfqGWev2WgipKzqBuf+T4kyFB9f0TzOktdEqLoWlpl4HQaN86LsVJ+VeaTvO2jPg6B6erRDIIdR13oD/02s+uQTSJvrdfwpUTBjA2sTR9IINlCkyWiuzM/sD0DMSS0mTkqzhKbiANpo2aClEXLc2LhYP7Kfgb/rSSvWtMk2y7G7hbSHVUigtcjIKMUX60iEQQOWa/DU0BIs2ahRdqLOd2aOihZee+UwRYsbQ3a2qmbIxb1hC1U3oQ1ZjRm7GnkFEXKLIYmEn4zRRYp6kXofFYIEydHLB4OK0RmHf5eChOYVY2q81edWhdrCc3B4GBC3as3Fs0rFoaDXllQYowEVfcMiiJh10Yt2TqzkTGE/GeS7OkeDFD5CSfFnOFxSAjRKwKIUxklGvC4TGRSk8aIXk8bLO1NyxuQgao6roYaRWlSEWZhiIlFaAw+tpMANKeHx8Ip5Ww5NPDj1YnpPPDmFuoqMWRz1VfAMgvgnhpVwxIrn5Er2IqEkvjMnySjFT6SUnX/0HZij44tHWVkdccnu3Zx9fe+/Btr4DuvUBW1hjiTfL1IpNAKDyNiqFefN+Kbv8Wp1LaVKoSdi89Iq7/lRlc0jKJqsfW9JNi7cJ3mMPRwlrUzTtoYldokorjZxcKniO4e6DIWvfMVLSXODufU7wcE8yVZq2FDHO3xj1SeSVr0jWUE1ofL65shILC6tsG/fZW3M/ezre/uVkBJVZo5HCacxyDruuJkTzqzSHrK4WFqFKWLkyOWk6kTWLHllZhYP3UXZekRliFj4uHorBSFMzOPdFllaB8w4F0Y8sqJVXdzEaxnCaTXxMkpxBVn/uqSh9FcimuEOutQQRUrOdkU8vBo+kNcCvP45SiI0zejswjiTFodLODaUCJ21YbzgpKSICnn9rbSliCYRprOE5OTOoLg2kJHIUQYq2aMKOVVpRtpoeKoymVLpy0FbSA66UjinxRLJ7RfLGUWcyyMOzCLC6pg4uUaTmKDZa4fropFU2miNk3BaXgdSwqlLige1amVdcvr2654j9zfOvs4gWEVxVW2rNc2iHg7P7qiJiDujppTqtBSw1CDmcXRWidqA8LOtuAYTTlOQKOUZkwIrv8ZFugbqWqzSOulxZBQNOU+HLSkcNi3GAEHzyIPDGkxRF0cKCqpiKaT7i7rwWBX6ipNINbtoQHJGJjmFbEsVFNOWkWq8zjkadRzDs68zBVa5wQ2DgpAkObOsRFSiCsdJxdgZyKHm4OFbBhG4SZW373FzHUR7lKBGWIT2UieLOtTIaUQtmvsblT7txDUlkzRXIqUnk5LnHyQWBknIqDvFklxVQ2sCLBYdCcmGWnJJTvFQoRYhDYKBKhGxyQRPKLVhz29njlxMwDVaObs2zjBYFUmdxqzF3yI1l5DaTKSiaEkgrhhHEmaGmc2bNjM7mHF4o5HOi2qvXEJu3/DC/uAQEU53FokkWxDGUtVX9TLHpDkUx+tWPBYTm8kDl6jJngjy/GotAfUQclRTen11VMah47BdUUgpBJ6DFaCUEAwzJGVmN8yxYdM8m+Y3QM7Vg4kkkTE7nJ06R5VHZHEAnV0bZxysiqysefioiDCIWmQstbyYZMllKkMndX5mA//3b/w//MnnPsett97K//qz/wuriwbZd+IaXUo11m8pdFIjc12MJJGbiOIUzFzvtR1P01bOEUS9lDOPPPQQr7z6Kju2n8cVV1zuSStxaUxyiCfXa5iHgEuQ5VxCMORhUE/IVapQUGFTSqwsL/E7v/uf+eY3v86RI0eYGQ65/PLLee973su1N1xPWVnh2OICn/+jz/P+D3wgAgedOTJXRS8mDCIjXSkjZ19nCqyKrKMUT+J5mt4CK9MamAZRKhnMzczyG//2N3jowQe56aab+PrX7yUxJCWLCJLDnMoZwlwNIqc4naQySR1Mlcp5CQl8SSn8F2lT+W5YnpRqSmHvnktJOfHoY4+ShkFYyzkSSNYqjbcyXuKEEq1Z+6iuz4RAcpw6szNz/Pmf/lf+3k/+JN969GG2bd/Gvn37uPiSSzh+fIGPf/IT/Itf+iWOHDvGRz/yc+Q8OHGOYuJUPNTbWGkTY2dfZ9DiKADFG5aIppYe4KJi2qrsIQ2iwuzcLP/+t/4D9993H9u2bUO1cPPNN6Ml5F5qWNZLgl260Wruo6qMp7arllrxgFHtHyFgxeVUUggwN5W8KL7INm3eiKJs2LQRBQ5+63FyErSx4PxUiFfpGR4CdqFwRTUFT6j4Yo6SycEg8cd//F/49Gf+kBuuvx5B2LZ1G9deey2X7N5N0YZ9+/axuLTEz/7sz7Jnz+4WgnbnyKNmrhiokS23s7DqzINViaalbZQcNGXR0AbKThxIgllhbm6WT/32b3P3XXezY8cOzIwtW7byD3/mH7K4shzdiYxG8IRfKzwfLMiiYeAaxfnFI0ollMilbY4HRaNqLXnmXDJWCkVgzyWX8sSTjzOcmWPzhs0cOX6EJ558kt2790TysJCCJtBUVTypQoBGyRp98ELmrHgTl8OHD/MHf/Bp9u3bx2g04qMf/Qh7du9meWWZLENKafh3/+Hf8/xzz3HFFVcE6zeoJDFHLvDhVBlVF1FGcoSlzxrcmeVz2ABSoYTSRAlYoCl7D4eggc8Mh3zmM3/A7bffwfnnnw/Azp07+djHPkajDefMDUNhI1rwBllNVVlcWvRdNFid3quCwP7aGo5ZioYr3gekcnA8cqWklMMHSly+7woee+IgOQ3YumULh189zLPPPsPFF+9qWxRr66iH6oc60SxriBCrO82ShJQGfPozf8TevXs5duwYv/iLv8imTedw7PhxhEQjixxfXOa+b/4V5+04b1xGGwVHqXK7teZSSnTZqnUTejaSe+YtDu82mkU6HYEyYh5gFVNSHvC5P/kTPv/5P+Oiiy5sDeOhhx7i3e9+d0igyLgntYybtm/cuJFf/79+nXM2nxPKEwnJ2tJKUu0BIerZZIWmKdx11x1ITuOWXLjgGSHfLyS2bN3Cls3nUFTZunUbrx0+zPPPvsCFF1zoY8rR6kqcqGgaogiR6fYwrUfWBnOzPPLwg2zffi6X7buM7du2szJaDSq28OLLr/LRj3yEiy++mKNHj3p8S4RmtQkWLeHZV3GxqvAXGFNbZvnZ15myOEwsIq+1j0EmpdKqSKDG7Pw8n/7MZ9izZ8+a6r9zzz2X8847b90vKKXhi1/8Eu99z4+5+28lEhgS7EpXscgpuzyKKK+8dIiLd+9hkMQ1YtMIs2FIygS1pOo6hR9hZLZu386hFw6x6+JdjJrGe3lHEZEnxx37ayTzarPHJmU2JGNpyWVZLrrgQlaa1SBOehRr1wUX8NnPfg60RPbeN4Dl0QrLxxfbXuKo530oNm4qGYIHdhZXnWGLwxVhnJEq4lDDosREjZShrK5y1VVXsbS0dNpfsLo6YveuXWhxDySJdy8ySSRV1LIr1WlpT565jZs5fuwIaWbW9Y0sk5JGHsPFYES974KKMDDH+0X9NGmaEs0nvejHlFbqsu19h4euNdiBRYW5uVnX2F1aIqsXz2jxSpOl0SrLr7ziaRJlXAVnRm6VA6tgW/FkYuuE51pOefZ1Ri0OCrkMKGmsnySB2ZNAo0JZXuEjH/kon/zkJ9bUY59//vlcffVV3tpM2sLTtrZPzNiydQs33ngTy6tLkSj0uolkng/IOHFPa2mjGlu3biJnf2+tx0gdSYFg/XPs+AJZ1DsUkVhZXuDSSy9DKYg5M9ijYt4FqaiQcnFNpWxYyd5ZVYSiDeeffz5NU7j77rv50E98iIWlBVqhm5JdtsYysxtmKKPG+wCKK3VX9JSTM38tNFqrOksKn+fs68x5ydPPPF116sPochSF+C5emyFIRGQ+8YmPt7W8zz77HH//7/8kb37zAe+akw1TbwxZBbUV7yCkVW81HOycDG0kmh5KW8stVVM1VUHxCO9aFMvgnKnXXn2Nlw4dYtu554IVFldX2Lt7D6Vx/ydngvIuURIqQYyM8leSJzsju52ScMcdt/OlL93O4uIiBw68mb/7d3+C5ZXlqGly3+uVl17iV37lV7nxxhv4n/7B/8xoZTWKZizyi937SO6UR4vjFw49z00HbjprdWdKnsOakFUxjQ6exYnehdDmHtdooIWPfexjlJDc2bXrIn7zN3+Tv/rmN5zuPYrrFHXcrRaG6Ht+MYNSEFXKyHMSpp4LMNShkXmyT83afm+VKFi1/I6+eoRnn3uGrdu3oRiLSyvsufgSmlGlo9decNCkWn9hjKJGo4QAcqNOFUmmFFPe8a53ISJs3ryZ2277Iv/q4/+Kl156iY0bNoHC5z77x/yjX/gFzr/gfP7irr9kNg+pnQHaA7VoKwEKhjVB3bez2fEz7uR48qknLJNbdQ9LtaC4qkDUckZvmSXJM9Sf/OQnWxmUgwcP8lu/9VssLi4g5CASWtCVkq+TWmgURfFAiHpVXaZg9YpHtCza9bbyjeIwaSYP+NrXv8auCy6ClFg8vsieS/d4F9bIp2RxkWLNtLXX0Zpi3M8uKPBaO8DEybi0uMSv/ZtfY252luXlZR5//HEWFhYYDAZccsklbN++nYWFBd73vvdx0803U7Q5YY6INsaVGZ+Sy8+8+PwhDhw4cNbqzqSTo2BRqFOiFtuL8FMIFFA0+jQ03p8tZX7+536e5RWP7uw4b4d/Pqjpg2gmoqqIGk2IhlkqFINGjSZOBFXvEJpKQa2BQqhIBPtcFGu8GaIUb86+aX4TBeP48aPs3rMbbUY0USCF+omgRKticzHjohpL1JeHJqUpTl+36HmtpmyY38A/+6f/hAsvuojRaMT+/fu5+aabuf6GG5ifn2eQB/zMz/wDvu+W76OUZuIcWaijazFUCqWRXlHX2dcZcXI88eTjZpJoJYTa5iJjwYFKwo7MhwscZKGMCnd/7S7edMONbJyb94hTkii2DwVwAaxBZNCWt0rkARSviZBilARZw1hTLcgfh4UsKvEkpPEXFo6zcdNm12K1VjmrrfKr2lOefmg1WECdS+b6JjZuqFgpLHhgYn7DPMeOH+eRRx7m6NGjzM7NcsnFl7D3sr0cO7rg2XCxqXOU1JuqJFwsLQ0yh154nptuOutznDmL44knDPHqORt4Ew/VHPUXIeyg4pSLUK3TkHMPcaiqTeFwJVH14d2g1ZyqHmL1Xq0aelUaurBZooVCrdgLmJNrfTmtTlGKL9boA6HiDUwkh8SPiod9XUCD1EQ31VSbqsQCiSYsYhJtvdplBGY0SRhaFc2JTqbqQoGCYqc4RzUhmtOAF188C6vOLFhFzYr7jq5BIdeooZBUQg3PXD+1lOiyGBhe3dFurGqQatvpE6JKLjXeQ6HVEKoOdpwQxXMY3qXHG40UDGk80lTEe+URkvtaqScWPSrCnyBgVJXsMUtobtqGj973O8iUNCGr0zj3KciNqr7gBhqkkLZ3hYXBW0uzP5U5MhOn47SaT2dfZ8zi0Ej21cahRLzes9niESh1yEEJdZCIHCW1tr2UiF+H6Nmg0RWxrbQTV6zTKmxEkPQ6X1xlHNUKAwnZzuR1TqUEEz3V0m9DdeCD01Atz3jVYTSalOLYvwRd3YoLOlSVESxakdnIGzhqRJWiM5IFrUXR1z1HVb3x7OsMSgIGEhmTG6L/AsGXkoznMGosn+QVdC01PYWyRwqZ+mjxS9u1xHddBMvFdYdLaRuyCDky8jXWFO1QrLiUTklRo+Rqikkt1MktZEejM1UIK9RbkFQV1r1iRC17UZVEaxcpURUYcEqhiPsz0nj0rKr6IfK650gH5ezaONNODqnE1xAIIKIsVVXDosmIR1b94edsnUIoGxtRLm1OoVXwVWtVDnNTF03VeM1eUpqsbdjYRKKvsg0zDmUkKSKlI1Zcuw+NW+VWX8ePIRdSbheLjFwNBD8NBiWa1BOOe/gG5rMShUoBM78Dc+Slv+msxZ1RPkfoQbmYQY3qgI4E1QYzx+Zq3uAU9SyzVawfjd2LetMUxXtEW/SK8B50OT4T6iMaHY5QShVIEPH6h+TizVWlRIMoWFTRIjTi/kkJyCYWbFtTirijXlXNVUucHrX/t2vrWiNOlykuueNhZ1opTO/zEi20NNqhvc450qawYX4Df3XffWsoOGdf38PRqscOPmYpFG1ShlSyc5kyUQvurXSlNBGFicBU1F20WlPquk2VLlLFvzUUsVPrRIdvUCKqU6nudY83acNg1tK9MySvIHRIpeTk6iWErGfkMaM/orcPQ1rdbvdtShrXkVeyjCilqrkXVzqR6NtXhcorn+t1z1HxnNIrr77KyspS9LUIXtkayFUZPbV1g7WdWaPXfCsKYViwVySawXTeYIzJjq3av7Tq7bWPNxEKr+OQWrIs2p6I1umjN+011oSvrSfCyOrvpBaGhSp7R4e3+px0tXbbga+9le/WHMljjx70pHg4qSqCyMhLSU1c87XqzVpoCIbUjSuXgKYQcDbI4vKZskauvmrcgmhGJSRzglflSt/RtsBcMsc0t4TDksbibN4ZKSrwxJCiHnatRVFt96DIrkdttySX1K+ZE4v0dTXmFCdUFonmMcEOiJyMiLbq79+xOZJOo4ToAe6+j7WLX6r5mDe7SUGt8QaQHgk0Fd94skb9irR+XKp6KTIOr0t0lR1InKhrxkGba5LiRNRstZeGz1OTooePpjVtjMfPKuar6kNXKqq6ovugfVZEi4BoU2AaWsUhB0vQ1uJ5EJWX3605annVIkKREp1Ds3cBjRZZIeCHiIuU1V3FzBscinn72kQJ/K2RSIwFIJVHFUVNRNutCN820SvDdbAij5E1yIdGrhQMIWTjSyvCTU7MRqjUhZ4tdi6NZF9oZsVNSLZxf47sLYNTZMyl+hrRMyKpRueMyHN8p+coKqBU1GnuGCWVttNq7R8jql6LbnGaRu9AojamCm1HcUtUZDZutBqSQeoVj2hBtbgGcJETx4GXAljxZ+bs6WjtXIxRSLYq6gvDAqKGwkpSIoEM0gQnwSo1SZgp3tO8RBsJgnemMVduG+NnpbUeJ/Fdn6OBVme0hmKJTp9tljlk4iWq8qLfRirxuTJuQqPRJqgemVrPqugYlELbqf62WHSASuIdf1o2cNDMq9+SQqbexp2anKBo0fsiGMSR3EvW0ERfDRkYTSPef1oEHakLrJVEoYE09Aw+CVd/tKCwZ3IqSBn4Qygh+fnXNEeSBt8T4zj7rMZzNPjKV75KbbLT9idogVhIeNZjrdvaqsrsmESuo9Mjq6NCMq61DvwvXdzr35GihUBtKmNRm60hNh05OMfHMZQkqdN2rYtvg9LRJiSqhm0kO10BoZUBSiYtDBtLhNSuFFVwOnlo+K9xjhLfG+M4+6zGc/T/A8/G/snZpSWJAAAAAElFTkSuQmCC);
display: none;
}
* /deep/ quad-stack-view > #chrome-mid {
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAABICAYAAADRa1RpAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAB3RJTUUH3QcNFycE5v9iFQAAAQtJREFUOMvtkjGSWzEMQx/0eYrM3v8k3vgqycalSwlI8Ufyl3OBFMtGIgUCIEd6PB6RBEASqvfONSrJXrDNbNkQ8ywA2y/SmayW+ZIESTsiyQsxo40xmMS2aUmYbheHpCVd0+UqJGGMsey3mUyldoUvlY3D9rIN0K7Wbe/WbZ+y1yWtaVtrp3VJzAEX6ZVjc2p7b2mtnYhNdl6m05rwtfV/ltx7XypJTpXeO7Y5juOlchzHaWxyrJmuhLapqgIJONv05+srThBgiQpBTSRwGOr3rwccgWHUhJ7P5/YNlbd/2XiL78L/WajP240AQUihfnx84EDJjCHKHjTAbkimQDgBjAJ1/3kHAgEk/gL71AHEWVXPGQAAAABJRU5ErkJggg==);
display: none;
}
* /deep/ quad-stack-view > #chrome-right {
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAABICAYAAACaw4eEAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAB3RJTUUH3QcNFyghKmOqnQAADE1JREFUaN6dmsuyZsdRhb/M2uf07bREYDykPeIleAMibNx92i9BgEPBgyB5xlvgtgI8VDNBI41xhGkpQowERgqw3H0ue1cuBlm1T/3Vu4XNiWj9l12XrMyVK1fWL/v6668lCXdHEt/1Z2YnnyUhCTPbX8dn45pmRkR81z7/XUr59Pz8/K8ePnz47/bVV19pnDhu0t+Pmx0Z+Pv8zWv1/eZnZ2dntw8ePPizZXw4bj5/P3vq6G/eePZiX9fd9/Xng6/reg78/dInzxPG9+/auH83GjEbPUahj6m1Hoa6v1/X9c+XPrlP7INqrfuru7+10WzUkUHvOtTojPF1mPdHSzdqPPXo5vm046bdq0fhGr+bvXZk6OgAM2OZBx7hZD7hnCzbtp149Wid0YOjx+eE6t8tMzb659Ebkg5PPY8ZvXpEQWNCzck2M4H3BWeM1Fr31/6+GziPmTefM3tcYzQoIt4a3+cso2EzhsYTzAAdw9M9M3rviPv683dl/Oi9pdZKKeVk4piVRyDu1NI3mCtARFBKeWeGbtt2yHV9HXdnGUMyGjSfZq4K42ajYbPXx836XjO+jsj3rawcFx5dPgK8bzJ6eGbzI8yO3j4yaMToiWF98fl0c4bNSXBEJ/Ozd1HSEY8BLGOIxlONeCqlnHyWtGNoxteRMX38uP44fkyyPnfpp58zqy/s7jsGj0rOEcvPVaMD/sj4I/zWWllmMB/VviOwHumv+dkRGc9EOtOUu6fHZteOGBtDN/+NeJwPNRsxl54RU3PIO4x827a3wNwfdr45kib92WhAf9+fHem1I7FZa31rr+WIr45kzrjZsixvZWHHYcfqXFHGctM9ta7ridcigmVZWNf1DvyllN2wkatmHIxCby7kYzbPOD2qFCN39efrut55rE8YM3I+8VENHPFVa2VZlkOSdXe2bTuhmHdl+W5ox8T8YCbD/l2t9YQqRiNGjx8l1JEamVXKri56doyTuzfGhWd+OyLJjsNRlo+eHaX63Iy8ldnjQn3hbmA/yagGusfG7JwrxZytcxMyjpnH77VyPEEP65iVs5tntp4ldp8zlrG+x8z2Y9L1f91Jy+zeccGZn0Zv9nFHTH500BGbM6HOojMiWEZQf1cN7Aut68qyLCdeGFN+xuRYJ7tXu5fetU9EZCiPOp8xm8bTzLqpe2jkoDnzxjCOa8/VZByzzG7t8gQ4eT+GdO4Be0kZDTgq5kea/0g0RgS+rushNkbg93o6aqeejUeNR/fcUWmaqWLbtn39MdGWGcRHUrcb17E1jhszq3tvxNCsJuaE6VGZMbeMKTrL6LGelVL2k41jx6zuRbknSS9BI7WMdDRTxLi3z+VkDl3/7vb29oS3xhoZESdZOm4whrW/7/NHT83UtNze3u6c1I06Ozs7wdjc7PaQzsV8JNSOp7k97IDvtDPDYTdsvts6Pz8/MXCsm2PD2g/Tm+Vx0bHZHTNvjMyRyh2pajk/P0cIZEAHLLgXQLg5ckDCAFsKCwtIeHHAQGAmSnEkMAyZMBkin4lc3jBEM4a7MZgo7mBGhLD/+M1/qiCqDJflIjICYbknjlEtQEl81cBDYIaUi3aDwoEQ7mABuFMjcHOMQHLMRLSDhhlFQk4+k9IhLggZBREeVLN+NNwNCAhRwjGMimGyPJlA3owyIwiKEltWjTBHNchIGpLleIS5ITNKQHVDYRiBGUQI/83X/0XUyorhm2EKAsvT1IqFgwusgglCWARV3SuGmdNchwgiRHWQagcHIqCNJ7whJ6AI20AeUJ3A0ilP/vQJ33zzDdvNDbWkO91oAwphrah7wVGG1cHMqSHkggiwDJthmAcgjIIVg5rfWc1h2AZ7AgBLpMElMpQCUyOSX/3rr/j+9/+EGoEQTgKxKnDADRROmCiWySJBeILbMCxENVhwBISCnldm4EBEeiQRk1AJs/Y5ER2q7BX03v17SQnumDeXRqXgDaSA1cSdIExQDM+UgtoArTyMIjABJUPt4S2hRHEIgbdstV5LI4OusDvDMgMNqw3sHqi0HPcMotyRNqp5ArnmRrkLuBm4kHmjDAeEDMICk2PFMwomqjI2xYSHsJIUUnxoeBO7rdQUJ2qeJk8SLfdLGtgWCouEVzFUG7NXMAXVG1YqyDdMhSDgFuTpabUEiUguUw3AiAafbhoR4EtmpJknKArgytMaBHBmIozEIQ41M1dK7ySGEvxQ8NoI1w2WFh0XlsUaFYilJ5zhpuGKwBxXeygIqxlrE6Ih1wKPgi8L799/QGcJo4M5o9oYDfcKUZJmEFdX12zrikh2xwwrQA2KOeqETRlCGaKaUFXLpjQwy5Elu4dzflb4uw8/5MXP/wEsE6ORVX8hbVRzTVcN4ic/ec4HH3zA7XaTC1sQtZUXAm98Z7I7uvjii8+5ePw4pUiwu7TXuogM3cX7j/jhX/yIJz948gf/NPjll1/yy1/+E//z299RCGrL+AxI8krQfhk5Ab+6LmrGyDA1dvfkqOvXNzy7fMonn7w8umjafabmsDuowPPnz3nz5joLiN9VCwIqJDGHweixV59/weNHF4itZSMJbGq61kg3h3N2fs7D9x7jIdTwIzw3tCxrZo560U5U8frNFdu6URWJS8RmRukto3smv07uxwJrMa9uLDJCG1ZKI87AWJBvhEOsG9WEhSVcWBtu1A615da2kboiPaRW4hSRcBGEClhg0cTDycWdJR1XgUdkrN2hRqslGapydo+fffgRL37+Ir1opzrrJHZDAiB49vySv/3gp9zcRiqLCpsrjSLrnpQ27KH8/ItXPHz4PtRbRMoTajrBw6Hk4o8vLvjhj/6SH/w/wf/xx//I629/u9fPjkxLIZfVwmLwWBhQqUqgU1NZlCrkQVRwGW9urrl89pRPXr78gw27vHzO9dVVI2cIOYVIGHkrYXVDUQaPvXrFo4tHbFV7dnkjzGT+5BjXwnK/cPHovcRLI9hME3ZeM2+HtRwQAVdXb1ivr6ldzfYC3sSnPFAUZHW+HE7WtqamZL07avrcnYgKKtR6m/VKQTR9n0JQjZj7KqD2LCLY2h4quqsKNUWA5BQPatjAY1hTpuAO2iqlGLV1EQJ8C87vnfOzjz7ixS8+5vf93y+sFeZnl5f89K//htttw1bAW5d05rAK90awjOD//BUPHtynblmInXStyUHJR3jw3sV7/PjpU548eXJArvZ/gv/Fx7/g9bfftug4NfVKa7byd8pN9ZT5I9rFSM/wSPFXrOn5Tby5vubp0x/z8uU/t1Jx5/H9v3b3/q4YGJfPLrl+c0Pde8lgEWxN0znG1jG6e+zfXnHvwQNETdmMINqlSEeZJ1Dvn93j4uJiL+6jv8TQO9L6lya9f/fta26228wodVwZboFU2gLbqbqglZLarzTbdpvBEhWxNJI1bq5uuV6/SRCHt35AyAwPo5aKZzlIHRb5SqTR1nRSnitQtC4phNlyqvlTppRUlmZEQJizhCErbYSa57J8SNkLRm3s7RV54AHymjK9cYjUyg+wqV8XRCtfdzea+IZiFIoSsFKBEm1SE26SpXZCeDh7g9P64R4SrU2ZkC1btea5TMDsqCJ5UfUuZwO1BlnZ6tkgrWWWqjOgqhJmsLWa2dowsKZK0nuKlMWokWWBoBIeiJpZF6CqhtnMdHSHW6PdZLfijjISu2HX11dEjURrTza3BtymzaLV5NZwEGQYW4ekaLdCkXSDRCkidr2n/XKGUlOKjxc6oXZN0H4ZefXrVxQ3atTsjD1lkJpIDNEwlSCRZ53rp4zViNiQtqwEStHT1YoUOaclSY1MmmjXCelNz2Q1T5L/7LPPYDEePXqYNa0ENHnd7xeKKUFiAO2HBM97DZMoS1prMmQLrqCE8uZHIgVDNAFpFEW7BnGKWQtnYJ6GOmL54+99D0JEzfT1alRzikHtda+1/4nsxk/VqQZmlXXzJMUiqFu7nrJMe8v2LhteteuAvEcrVqk1m+Owdn9h7ZYSE6WAIrkjPCVIFua8s0jhWHfhZ5YZZ6rZNxoplZp3clg2uUSKAcmwYpgqUs1iFI5Z4rr3mliq3IVqVDbwM9CGkao1rN1IR6F4xepCEFht1wAhIKjRNH0Dv6ym5lHrEQw8JSlUtapghHJ+qiK13OyZ6yyf/sunSYqyVuPavVVq3bvSgrKxcKVGU7/s1U5ovXz1W5v9ftPVet68cbSehRo65ZNfUuB/AWHLchVUWJtFAAAAAElFTkSuQmCC);
display: none;
}
</style><template id="quad-stack-view-template">
<div id="header"></div>
<input id="stacking-distance-slider" max="400" min="1" step="1" type="range"/>
<canvas id="canvas"></canvas>
<img id="chrome-left"/>
<img id="chrome-mid"/>
<img id="chrome-right"/>
</template><style>
* /deep/ tr-ui-e-chrome-cc-layer-tree-quad-stack-view {
position: relative;
}
* /deep/ tr-ui-e-chrome-cc-layer-tree-quad-stack-view > top-controls {
-webkit-flex: 0 0 auto;
background-image: -webkit-gradient(linear,
0 0, 100% 0,
from(#E5E5E5),
to(#D1D1D1));
border-bottom: 1px solid #8e8e8e;
border-top: 1px solid white;
display: flex;
flex-flow: row wrap;
flex-direction: row;
font-size: 14px;
padding-left: 2px;
overflow: hidden;
}
* /deep/ tr-ui-e-chrome-cc-layer-tree-quad-stack-view >
top-controls input[type='checkbox'] {
vertical-align: -2px;
}
* /deep/ tr-ui-e-chrome-cc-layer-tree-quad-stack-view > .what-rasterized {
color: -webkit-link;
cursor: pointer;
text-decoration: underline;
position: absolute;
bottom: 10px;
left: 10px;
}
* /deep/ tr-ui-e-chrome-cc-layer-tree-quad-stack-view > #input-event {
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAMnwAADJ8BPja39wAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAyNSURBVHic7Z1PTCPXHcc/4wWWVbJN2cJSLVqiQJuGpoIGEVWReoBNIlIF5RCRSysOK9EbksUeOHLIIQcULbLEEYk7oqduD6gSRoqUEyK7dCOabOHghCiAE/JntQtesHt4fuM3z2+MZzy2x8ZfaTTjN+Px4/fh9/7Pb6xMJkND4VGk2hloyKkGkJCpASRkagAJmRpAQqYGkJCpASRkaqp2BvzKsizf3w1z38sKc+ZUaQCuAFeB57P7q4AF/Kxsj4GnLrfL+6PDYofQAskCaAJ6gJeB6+QAFOvZpwgwPwOHwCNgN5uu/+H252raJHRALMu6ggDwCtALNAf8E88QUL5AAHqSTVcNUTU4oQBiWVYzMIiA0E3lGhtp4CsEnPtACgFDGqXiYKoKxLKsCPAaMIwojlzV1tZGV1cXHR0ddHR00N7ebh93dHQAcHh4aG/JZNI+3tvb4+jo6LzsPAY+QYA5Ix9KBsoPpmpALMt6BXgTaHe7pre3l5GREUZGRujv7/fdsspkMmxtbRGPx4nH4+zs7BS6/HtgHfgvOW9xeE05bVZxIJZldQNvATf1c5FIhMHBQYaHh7l16xbd3d1lyUMikWBtbY319XU2NzdJp9Omy74B1oAEAoa8yIZTDttVDIhlWZeB94Dfm86Pjo4SjUbLBsFNiUSCWCzG6uqq2yVfAv9CNKHTlNlbKgLEsqxrwF+BX+nnhoaGuHPnDv39/WXPRyFtbW1x9+5dNjY2TKePgBXgOwQUFUyg3lJ2IJZl9QAfAK1qek9PD9PT04yMjJT1970qHo8zPz/P7u6ufuoE+CewQw6Kw2OCsGVZgViW9SdgFNGLBqC1tZWZmRnGx8eJRMI5lJZOp1lZWWFubo7j42P1VAZR4W8gWmJn5KBAAEVYWYBkm7PvIvoWtjo7O1lYWKCvry/w3yyHtre3mZqaYn9/Xz/1EPg3ot+iQslQIpTAgWRh/A0x5GFrYGCAWCxGe7trKzeUSiaTRKNRHjx4oJ/6CvgHoigLDEo5yox30WCMjY2xtLRUczAA2tvbWVpaYmxsTD91E3gbMbTTBFxCFM0WYPntMwXqIdk64x3lM9FolMnJycB+o5paXFwkFovplfcniDrlNLvJXr4vTwnMQ7KtqVE1rZ5gAExOThKNRvXkPyMGQaWXlOQpgQDJ9jM+QGlNjY2N1RUMqcnJSb34shClwnVE8aVCAY9QSi6ysj3wv6N0+gYGBlhaWqKlpaWke4dVqVSK27dv6xX9j8AyYpDyGaL4svsqxdo5CA95DwVGZ2cnsVisbmEAtLS0EIvF6OzsVJNfQIzRlVTJlwQkO1Boj021traysLBQk60pr2pvb2dhYYHWVscAxEuI1pcKJYIHKKV6yFvqh5mZmZrp9AWhvr4+ZmZm9OQ3MAMpSr6BZOcz7CH0np4exsfH/d6uZjU+Pk5Pj6PbdR34LT69xBeQbG/8TTVteno6tGNT5VQkEmF6elpPfh24TK7VFaFIKH4t+BrKTN/Q0FDoRm0rqZGREYaGhtSkXyDqVs9Fl2cg2QUJw2ranTt3vN6m7mSwwR8R68dULzm31eXHQwZRFiSMjo5WfXIpDOrv72d01DFQcQXoQ3hI0V7iB8gr9pcjEdNQwoVVNBrV69EXcanccfEST0Cyi9jsSe/BwcGKz4GHWd3d3QwOOqaAOoDnMFfuRnn1kJfV7wwPD3v8ev1Ls4mF+Ac2FVsW5C8aLxpI9ou/U9Nu3brlOcP1LoNNbuJej+R5ihcPaQJ+Iz/09vY2iiuDuru76e3tVZN+jeiTyFHggsWWFyA9KAufL3K/4zxptrkE3MClYkcDUxQQU3HVAOIug226yHlIXvNXrUe8eEiHPGhra2v0PQqov7+ftrY2NekFzEVWSXWI3Rns6uoq6ZGyepdlWXR1dalJrRTwEFVegFyVB3L5f0Pu0mzUirC1CsPoJcUCuYLyGFkDyPnSbBQhB8VUZNm99nOBZC+8qqZdhBnBUmWw0RXMQHx5iOPpprB5yMbGBp999lm1s+GQwUZXKFBUSRULxOEhYQNy//59Hj58WO1sOOQCpGAfBOoESBhVwENMm61in/cOXRt3f3+f09NTAH766SdaWlrY29sDoLm5mevXr1cze25y9QypYoH8rH44PDwsIU/B6KOPPrLzcXBwQCQS4dNPPwXgxo0bfPzxx9XMnslGJ7h7hkX2GZOaBRKLxezjxcVFLl++zMTERBVz5JTBRseGy3zXIaEDEna5eAgENIX7WP2QTCaL/NrFlcFG0kMKLvIttsh6ilg83ATh85D3338/dGNrmo3SiAXYuvLgeImX9Rj4peHHqq5r165VOwt50mx0gjkqhJT92cvgol2P7O3thSa+VBiVyWTsJnhWsv4wBrZR5QWIjfzo6IitrS0vebxQ2tra0oPdPCbfQ4ze4gXII/VDPB73k9cLIYNtDnACUJ9td8gLkF2UiqkBxF2abc6AJOboD3lQzgWi1BWnCCgA7OzskEgk/Oa5bpVIJPTwT9+RCymoe4jvIkt+8Qs1cW1tzVem61kGm8jiKk1+gIE8eV25+Ihc3CjW19c9fr3+pdkkgwCiwsiL+oDyUKhXIE8QISUA2NzcbBRbihKJBJubm2rSD4h4KLLuOMMQRUiVn9XvdrGVTqcdg3wXXbFYTI9Op3qHuqlQHCoKSNadJNH7KGNbq6urjT4Jou+hRaVLIUoTE4zA6hD5Q5+oCXfv3vVxm/qSwQY7iG6C9BAZByWv6auOevgBIr3ke5mwsbFxofsl8XhcDw34BPgaYXg1KI0p6JlDRQPRiq0zRGQ1W/Pz827RPeta6XSa+fl5Pfl/5LxC3QrCAP9P4WYQcW2/kQm7u7usrKz4vF3tamVlRY/P+CPwLTlvcANiDN/kCYjiJXLv6AXNzc2xvb3t5ZY1re3tbebm5vRk2Vc7JReExgTDqFI8JIMIMvylTDw+PmZqaupCzCgmk0mmpqb0IJkHiLpV9Ypn5MA4oJimMDwD0eqSDCLIsD3WvL+/TzQaJZVKeb11zSiVShGNRvXgmE+Az8kVU8+UrSjvgNKCz8jxmaeIIMNyEoYHDx4wOztbwq3DrdnZWT1W1imi5XmCE0YKlyLLbYLPFxDlZhLKd4ggw/aJe/fusbi46Of2odbi4iL37t1TkzLAfxAzqmc4PcPkIQVVqofIfRrREVpXL4jFYnUFRQbB1PQIMZsqYaSUraiWlaqSQvxlV3rIFd2XEIsm/gL8Qb1ubGyMDz/8sGajzKVSKWZnZ3XPANHs/xxh+BSiyDrObifkirCiiisIDogK5TIwjvY6ijoMpHwEbCJAPCMHQIWhxl4sKmxsEEEwwQmlCQHlbeBV9do6CjX+DbBNDobqHSYYRQfCLDnimKEZfJbN0CpiENLOxf7+PhMTEywvL4d6mCWdTrO8vMzExIQOI4Pod31OPowTzHWHpz80kMjWyqpB6SXSU5oRQYbfARwVSA2+ruIU0ZrSK/ATnEBky8oxqlusnQMLNa4VXRa5Sr4JEYdwDPG8tkM18kKXJ+TmgWQ/Q3qDDsNTJa4r6NjvkA/lEsJTnkdEMX3J9N0Qv/LoAFFEyRaTbFFJGPK4ZBhQntdVgDuUZkTr6w2E1zgUspeC/YjoY3yPczgkZdhk568kGFC+F7qAE4qsU2S90owIpfo6ImCkUVV6bd4TxHzGtzgnmNThEN0rHK0pSngFUtleeeQCRa1XmhHN41eBAcRDka6qwIslU4jRhq/Jn8tQh0HUitttWtb3YvRyv4MKck8MyUeCZRGmeosMGPkiIshNpR72yCCW6hwgFiTI1pE0tDS6abDQ87BIMarEW9rAGUFNNot1MHL/HCIs3k1E8K9LAWfpDDEYepDd5Lopdc5b9Qx9r14nx/EgABhQASCQ109RizAdjApH9vhvIOJNvYCIFyJjhhSjNLlm6WMEgCS5tbbqAjbTlKsKwwTCHmCtmfcY2j/khCL3auwPNXyRGqOwifzQRq2IYk7dwDl8cYwwpjoqrRrSDYYKpdCaqpLrC5Oq8S5c+xCzx+hwTJtbEBdT3aMbUBpVXWvrtsnz+op1CNArVFXlbdEu3mICowJS9+cBsR/Exx2IaQG0af1tHggI1itUVft96vahsi/kOabPxQCRe93IaW3TAVQMhFRVgdiZMIORexOgQiDkXv3DdAObPMYIgAqBkAoFECmtJ+4Gp9Ax2rEORe51w+sQ7OOK17FhAqLKBY567AbBTSY4rsfVsktogagqACfvUpd0tz/SkR4GW9QEEFVBhtAI499ec0DqXf8H8f4X10jf2YAAAAAASUVORK5CYII=);
display: none;
}
</style><template id="tr-ui-e-chrome-cc-layer-tree-quad-stack-view-template">
<img id="input-event"/>
</template><style>
* /deep/ tr-ui-e-chrome-cc-layer-view{-webkit-flex-direction:column;display:-webkit-flex;left:0;position:relative;top:0}* /deep/ tr-ui-e-chrome-cc-layer-view>tr-ui-e-chrome-cc-layer-tree-quad-stack-view{-webkit-flex:1 1 100%;-webkit-flex-direction:column;min-height:0;display:-webkit-flex;width:100%}* /deep/tr-ui-e-chrome-cc- layer-view>tr-ui-e-chrome-cc-layer-view-analysis{height:150px;overflow-y:auto}* /deep/ tr-ui-e-chrome-cc-layer-view>tr-ui-e-chrome-cc-layer-view-analysis *{-webkit-user-select:text}
</style><style>
* /deep/ .tr-ui-e-chrome-cc-lthi-s-view{-webkit-flex:1 1 auto!important;-webkit-flex-direction:row;display:-webkit-flex}* /deep/ .tr-ui-e-chrome-cc-lthi-s-view>tr-ui-e-chrome-cc-layer-picker{-webkit-flex:1 1 auto}* /deep/ .tr-ui-e-chrome-cc-lthi-s-view>tr-ui-b-drag-handle{-webkit-flex:0 0 auto}
</style><style>
* /deep/ tr-ui-e-chrome-cc-picture-ops-chart-summary-view{-webkit-flex:0 0 auto;font-size:0;margin:0;min-height:200px;min-width:200px;overflow:hidden;padding:0}* /deep/ tr-ui-e-chrome-cc-picture-ops-chart-summary-view.hidden{display:none}
</style><style>
* /deep/ tr-ui-e-chrome-cc-picture-ops-chart-view{display:block;height:180px;margin:0;padding:0;position:relative}* /deep/ tr-ui-e-chrome-cc-picture-ops-chart-view>.use-percentile-scale{left:0;position:absolute;top:0}
</style><template id="tr-ui-e-chrome-cc-picture-debugger-template">
<style>
* /deep/ tr-ui-e-chrome-cc-picture-debugger {
-webkit-flex: 1 1 auto;
-webkit-flex-direction: row;
display: -webkit-flex;
}
* /deep/ tr-ui-e-chrome-cc-picture-debugger > tr-ui-a-generic-object-view {
-webkit-flex-direction: column;
display: -webkit-flex;
width: 400px;
}
* /deep/ tr-ui-e-chrome-cc-picture-debugger > left-panel {
-webkit-flex-direction: column;
display: -webkit-flex;
min-width: 300px;
}
* /deep/ tr-ui-e-chrome-cc-picture-debugger > left-panel > picture-info {
-webkit-flex: 0 0 auto;
padding-top: 2px;
}
* /deep/ tr-ui-e-chrome-cc-picture-debugger > left-panel >
picture-info .title {
font-weight: bold;
margin-left: 5px;
margin-right: 5px;
}
* /deep/ tr-ui-e-chrome-cc-picture-debugger > tr-ui-b-drag-handle {
-webkit-flex: 0 0 auto;
}
* /deep/ tr-ui-e-chrome-cc-picture-debugger .filename {
-webkit-user-select: text;
margin-left: 5px;
}
* /deep/ tr-ui-e-chrome-cc-picture-debugger > right-panel {
-webkit-flex: 1 1 auto;
-webkit-flex-direction: column;
display: -webkit-flex;
}
* /deep/ tr-ui-e-chrome-cc-picture-debugger > right-panel >
tr-ui-e-chrome-cc-picture-ops-chart-view {
min-height: 150px;
min-width : 0;
overflow-x: auto;
overflow-y: hidden;
}
/*************************************************/
* /deep/ tr-ui-e-chrome-cc-picture-debugger raster-area {
background-color: #ddd;
min-height: 200px;
min-width: 200px;
overflow-y: auto;
padding-left: 5px;
}
</style>
<left-panel>
<picture-info>
<div>
<span class="title">Skia Picture</span>
<span class="size"></span>
</div>
<div>
<input class="filename" type="text" value="skpicture.skp"/>
<button class="export">Export</button>
</div>
</picture-info>
</left-panel>
<right-panel>
<tr-ui-e-chrome-cc-picture-ops-chart-view>
</tr-ui-e-chrome-cc-picture-ops-chart-view>
<raster-area><canvas></canvas></raster-area>
</right-panel>
</template><style>
* /deep/ .tr-ui-e-chrome-cc-picture-snapshot-view{-webkit-flex:0 1 auto!important;display:-webkit-flex}
</style><dom-module id="tr-ui-a-stack-frame">
<template>
<style>
:host {
display: flex;
flex-direction: row;
align-items: center;
font-size: 12px;
}
</style>
<tr-ui-b-table id="table"></tr-ui-b-table>
</template>
</dom-module><dom-module id="tr-ui-a-single-event-sub-view">
<template>
<style>
:host {
display: flex;
flex: 0 1;
flex-direction: column;
}
#table {
flex: 0 1 auto;
align-self: stretch;
font-size: 12px;
}
</style>
<tr-ui-b-table id="table">
</tr-ui-b-table>
</template>
</dom-module><dom-module id="tr-ui-e-chrome-cc-raster-task-view">
<template>
<style>
:host {
display: flex;
flex-direction: column;
}
#heading {
flex: 0 0 auto;
}
tr-ui-b-table {
font-size: 12px;
}
</style>
<div id="heading">
Rasterization costs in
<tr-ui-a-analysis-link id="link"></tr-ui-a-analysis-link>
</div>
<tr-ui-b-table id="content"></tr-ui-b-table>
</template>
</dom-module><style>
.tr-ui-e-chrome-gpu-state-snapshot-view{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAAZiS0dEAEwATABMYqp3KAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB90JCQsBMCH7ZqYAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAUElEQVRYw+3WwQkAIAiF4Vc0hTO5/wiuURvYIcQOv1cRPhDlDXffSsrMsrYiQi/zU80FAACAVX3nt3lWAABA/x+ovnPyAAAA5AHyAAAA3wMOd34Xd+lsglgAAAAASUVORK5CYII=);display:-webkit-flex;overflow:auto}.tr-ui-e-chrome-gpu-state-snapshot-view img{display:block;margin:16px auto 16px auto}
</style><dom-module id="tr-ui-a-layout-tree-sub-view">
<template>
<style>
tr-ui-b-table {
font-size: 12px;
}
</style>
<div id="content"></div>
</template>
</dom-module><dom-module id="tr-ui-e-s-frame-data-side-panel">
<template>
<style>
:host {
display: flex;
width: 600px;
flex-direction: column;
}
table-container {
display: flex;
overflow: auto;
font-size: 12px;
}
</style>
<div>
Organize by:
<select id="select">
<option value="none">None</option>
<option value="tree">Frame Tree</option>
</select>
</div>
<table-container>
<tr-ui-b-table id="table"></tr-ui-b-table>
</table-container>
</template>
</dom-module><dom-module id="tr-ui-b-chart-legend-key">
<template>
<style>
#checkbox {
margin: 0;
visibility: hidden;
vertical-align: text-top;
}
#label, #link {
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
display: inline-block;
}
</style>
<input checked="" id="checkbox" type="checkbox"/>
<tr-ui-a-analysis-link id="link"></tr-ui-a-analysis-link>
<label id="label"></label>
</template>
</dom-module><style>
* /deep/ .chart-base {
-webkit-user-select: none;
cursor: default;
}
* /deep/ .chart-base .axis path,
* /deep/ .chart-base .axis line {
fill: none;
shape-rendering: crispEdges;
stroke: #000;
}
</style><template id="chart-base-template">
<svg>
<g id="chart-area" xmlns="http://www.w3.org/2000/svg">
<g class="x axis"></g>
<g class="y axis"></g>
<text id="title"></text>
</g>
</svg>
</template><style>
* /deep/ .chart-base-2d.updating-brushing-state #brushes > * {
fill: rgb(103, 199, 165)
}
* /deep/ .chart-base-2d #brushes {
fill: rgb(213, 236, 229)
}
</style><dom-module id="tr-ui-e-s-input-latency-side-panel">
<template>
<style>
:host {
flex-direction: column;
display: flex;
}
toolbar {
flex: 0 0 auto;
border-bottom: 1px solid black;
display: flex;
}
result-area {
flex: 1 1 auto;
display: block;
min-height: 0;
overflow-y: auto;
}
</style>
<toolbar id="toolbar"></toolbar>
<result-area id="result_area"></result-area>
</template>
</dom-module><dom-module id="tr-ui-b-heading">
<template>
<style>
:host {
background-color: rgb(243, 245, 247);
border-right: 1px solid #8e8e8e;
display: block;
height: 100%;
margin: 0;
padding: 0 5px 0 0;
}
heading {
display: block;
overflow-x: hidden;
text-align: left;
text-overflow: ellipsis;
white-space: nowrap;
}
#arrow {
-webkit-flex: 0 0 auto;
font-family: sans-serif;
margin-left: 5px;
margin-right: 5px;
width: 8px;
}
#link, #heading_content {
display: none;
}
</style>
<heading id="heading" on-click="onHeadingDivClicked_">
<span id="arrow"></span>
<span id="heading_content"></span>
<tr-ui-a-analysis-link id="link"></tr-ui-a-analysis-link>
</heading>
</template>
</dom-module><style>
.track-button{background-color:rgba(255,255,255,0.5);border:1px solid rgba(0,0,0,0.1);color:rgba(0,0,0,0.2);font-size:10px;height:12px;text-align:center;width:12px}.track-button:hover{background-color:rgba(255,255,255,1.0);border:1px solid rgba(0,0,0,0.5);box-shadow:0 0 .05em rgba(0,0,0,0.4);color:rgba(0,0,0,1)}.track-close-button{left:2px;position:absolute;top:2px}.track-collapse-button{left:3px;position:absolute;top:2px}
</style><style>
.object-instance-track{height:18px}
</style><style>
.tr-ui-e-system-stats-instance-track{height:500px}.tr-ui-e-system-stats-instance-track ul{list-style:none;list-style-position:outside;margin:0;overflow:hidden}
</style><style>
.tr-ui-e-system-stats-snapshot-view .subhead{font-size:small;padding-bottom:10px}.tr-ui-e-system-stats-snapshot-view ul{background-position:0 5px;background-repeat:no-repeat;cursor:pointer;font-family:monospace;list-style:none;margin:0;padding-left:15px}.tr-ui-e-system-stats-snapshot-view li{background-position:0 5px;background-repeat:no-repeat;cursor:pointer;list-style:none;margin:0;padding-left:15px}
</style><dom-module id="tr-ui-e-v8-gc-objects-stats-table">
<template>
<style>
tr-ui-b-table {
flex: 0 0 auto;
align-self: stretch;
margin-top: 1em;
font-size: 12px;
}
.diff {
display: inline-block;
margin-top: 1em;
margin-left: 0.8em;
}
</style>
<div class="diff" id="diffOption">
Diff
</div>
<tr-ui-b-table id="diffTable"></tr-ui-b-table>
<tr-ui-b-table id="table"></tr-ui-b-table>
</template>
</dom-module><dom-module id="tr-ui-e-multi-v8-gc-stats-thread-slice-sub-view">
<template>
<style>
</style>
<tr-ui-e-v8-gc-objects-stats-table id="gcObjectsStats">
</tr-ui-e-v8-gc-objects-stats-table>
</template>
</dom-module><dom-module id="tr-ui-e-v8-ic-stats-table">
<template>
<style>
tr-ui-b-table {
flex: 0 0 auto;
align-self: stretch;
margin-top: 1em;
font-size: 12px;
}
#total {
margin-top: 1em;
margin-left: 0.8em;
}
#groupOption {
display: inline-block;
margin-top: 1em;
margin-left: 0.8em;
}
</style>
<div style="padding-right: 200px">
<div style="float:right; border-style: solid; border-width: 1px; padding:20px">
0 uninitialized<br/>
. premonomorphic<br/>
1 monomorphic<br/>
^ recompute handler<br/>
P polymorphic<br/>
N megamorphic<br/>
G generic
</div>
</div>
<div id="total">
</div>
<div id="groupOption">
Group Key
</div>
<tr-ui-b-table id="table"></tr-ui-b-table>
</template>
</dom-module><dom-module id="tr-ui-e-multi-v8-ic-stats-thread-slice-sub-view">
<template>
<tr-ui-e-v8-ic-stats-table id="table">
</tr-ui-e-v8-ic-stats-table>
</template>
</dom-module><dom-module id="tr-ui-e-v8-runtime-call-stats-table">
<template>
<style>
#table {
flex: 0 0 auto;
align-self: stretch;
margin-top: 1em;
font-size: 12px;
}
</style>
<tr-ui-b-table id="table"></tr-ui-b-table>
</template>
</dom-module><dom-module id="tr-ui-e-multi-v8-thread-slice-sub-view">
<template>
<tr-ui-a-multi-thread-slice-sub-view id="content"></tr-ui-a-multi-thread-slice-sub-view>
<tr-ui-e-v8-runtime-call-stats-table id="runtimeCallStats"></tr-ui-e-v8-runtime-call-stats-table>
</template>
</dom-module><dom-module id="tr-ui-e-single-v8-gc-stats-thread-slice-sub-view">
<template>
<tr-ui-a-single-event-sub-view id="content"></tr-ui-a-single-event-sub-view>
<tr-ui-e-v8-gc-objects-stats-table id="gcObjectsStats"></tr-ui-e-v8-gc-objects-stats-table>
</template>
</dom-module><dom-module id="tr-ui-e-single-v8-ic-stats-thread-slice-sub-view">
<template>
<tr-ui-e-v8-ic-stats-table id="table">
</tr-ui-e-v8-ic-stats-table>
</template>
</dom-module><dom-module id="tr-ui-e-single-v8-thread-slice-sub-view">
<template>
<tr-ui-a-single-thread-slice-sub-view id="content"></tr-ui-a-single-thread-slice-sub-view>
<tr-ui-e-v8-runtime-call-stats-table id="runtimeCallStats"></tr-ui-e-v8-runtime-call-stats-table>
</template>
</dom-module><dom-module id="tr-ui-a-alert-sub-view">
<template>
<style>
:host {
display: flex;
flex-direction: column;
}
#table {
flex: 1 1 auto;
align-self: stretch;
font-size: 12px;
}
</style>
<tr-ui-b-table id="table">
</tr-ui-b-table>
</template>
</dom-module><dom-module id="tr-ui-b-tab-view">
<template>
<style>
:host {
display: flex;
flex-direction: column;
}
#selection_description, #tabs {
font-size: 12px;
}
#selection_description {
display: inline-block;
font-weight: bold;
margin: 9px 0px 4px 20px;
}
#tabs {
flex: 0 0 auto;
border-top: 1px solid #8e8e8e;
border-bottom: 1px solid #8e8e8e;
background-color: #ececec;
overflow: hidden;
margin: 0;
}
#tabs input[type=radio] {
display: none;
}
#tabs tab label {
cursor: pointer;
display: inline-block;
border: 1px solid #ececec;
margin: 5px 0px 0px 15px;
padding: 3px 10px 3px 10px;
}
#tabs tab label span {
font-weight: bold;
}
#tabs:focus input[type=radio]:checked ~ label {
outline: dotted 1px #8e8e8e;
outline-offset: -2px;
}
#tabs input[type=radio]:checked ~ label {
background-color: white;
border: 1px solid #8e8e8e;
border-bottom: 1px solid white;
}
#subView {
flex: 1 1 auto;
overflow: auto;
}
</style>
<div hidden="[[tabsHidden]]" id="tabs">
<label id="selection_description">[[label_]]</label>
<template is="dom-repeat" items="[[subViews_]]">
<tab>
<input checked="[[isChecked_(item)]]" id$="[[computeRadioId_(item)]]" name="tabs" on-change="onTabChanged_" type="radio"/>
<label for$="[[computeRadioId_(item)]]">
<template if="[[item.tabIcon]]" is="dom-if">
<span style$="[[item.tabIcon.style]]">[[item.tabIcon.text]]</span>
</template>
[[item.tabLabel]]
</label>
</tab>
</template>
</div>
<div id="subView"></div>
<content>
</content>
</template>
</dom-module><dom-module id="tr-ui-a-memory-dump-heap-details-breakdown-view">
<template>
<tr-ui-b-tab-view id="tabs"></tr-ui-b-tab-view>
</template>
</dom-module><dom-module id="tr-ui-a-memory-dump-heap-details-breakdown-view-tab">
<template>
<tr-v-ui-scalar-context-controller></tr-v-ui-scalar-context-controller>
<tr-ui-b-info-bar hidden="" id="info"></tr-ui-b-info-bar>
<tr-ui-b-table id="table"></tr-ui-b-table>
</template>
</dom-module><dom-module id="tr-ui-a-memory-dump-heap-details-path-view">
<template>
<style>
:host {
display: flex;
flex-direction: column;
}
</style>
<tr-v-ui-scalar-context-controller></tr-v-ui-scalar-context-controller>
<tr-ui-b-table id="table"></tr-ui-b-table>
</template>
</dom-module><dom-module id="tr-ui-a-memory-dump-heap-details-pane">
<template>
<style>
:host {
display: flex;
flex-direction: column;
}
#header {
flex: 0 0 auto;
display: flex;
flex-direction: row;
align-items: center;
background-color: #eee;
border-bottom: 1px solid #8e8e8e;
border-top: 1px solid white;
}
#label {
flex: 1 1 auto;
padding: 8px;
font-size: 15px;
font-weight: bold;
}
#view_mode_container {
display: none;
flex: 0 0 auto;
padding: 5px;
font-size: 15px;
}
#contents {
flex: 1 0 auto;
align-self: stretch;
font-size: 12px;
}
#info_text {
padding: 8px;
color: #666;
font-style: italic;
text-align: center;
}
#split_view {
display: none; /* Hide until memory allocator dumps are set. */
flex: 1 0 auto;
align-self: stretch;
flex-direction: row;
}
#path_view {
width: 50%;
}
#breakdown_view {
flex: 1 1 auto;
width: 0;
}
#path_view, #breakdown_view {
overflow-x: auto; /* Show scrollbar if necessary. */
}
</style>
<div id="header">
<div id="label">Heap details</div>
<div id="view_mode_container">
<span>View mode:</span>
</div>
</div>
<div id="contents">
<tr-ui-b-info-bar hidden="" id="info_bar">
</tr-ui-b-info-bar>
<div id="info_text">No heap dump selected</div>
<div id="split_view">
<tr-ui-a-memory-dump-heap-details-path-view id="path_view">
</tr-ui-a-memory-dump-heap-details-path-view>
<tr-ui-b-drag-handle id="drag_handle"></tr-ui-b-drag-handle>
<tr-ui-a-memory-dump-heap-details-breakdown-view id="breakdown_view">
</tr-ui-a-memory-dump-heap-details-breakdown-view>
</div>
</div>
</template>
</dom-module><dom-module id="tr-ui-a-memory-dump-allocator-details-pane">
<template>
<style>
:host {
display: flex;
flex-direction: column;
}
#label {
flex: 0 0 auto;
padding: 8px;
background-color: #eee;
border-bottom: 1px solid #8e8e8e;
border-top: 1px solid white;
font-size: 15px;
font-weight: bold;
}
#contents {
flex: 1 0 auto;
align-self: stretch;
font-size: 12px;
}
#info_text {
padding: 8px;
color: #666;
font-style: italic;
text-align: center;
}
#table {
display: none; /* Hide until memory allocator dumps are set. */
flex: 1 0 auto;
align-self: stretch;
font-size: 12px;
}
</style>
<div id="label">Component details</div>
<div id="contents">
<div id="info_text">No memory allocator dump selected</div>
<tr-ui-b-table id="table"></tr-ui-b-table>
</div>
</template>
</dom-module><dom-module id="tr-ui-a-memory-dump-vm-regions-details-pane">
<template>
<style>
:host {
display: flex;
flex-direction: column;
}
#label {
flex: 0 0 auto;
padding: 8px;
background-color: #eee;
border-bottom: 1px solid #8e8e8e;
border-top: 1px solid white;
font-size: 15px;
font-weight: bold;
}
#contents {
flex: 1 0 auto;
align-self: stretch;
font-size: 12px;
}
#info_text {
padding: 8px;
color: #666;
font-style: italic;
text-align: center;
}
#table {
display: none; /* Hide until memory dumps are set. */
flex: 1 0 auto;
align-self: stretch;
font-size: 12px;
}
</style>
<div id="label">Memory maps</div>
<div id="contents">
<div id="info_text">No memory maps selected</div>
<tr-ui-b-table id="table"></tr-ui-b-table>
</div>
</template>
</dom-module><dom-module id="tr-ui-b-color-legend">
<template>
<style>
:host {
display: inline-block;
}
#square {
font-size: 150%; /* Make the square bigger. */
line-height: 0%; /* Prevent the square from increasing legend height. */
}
</style>
<span id="square"></span>
<span id="label"></span>
</template>
</dom-module><dom-module id="tr-ui-b-view-specific-brushing-state">
<template></template>
</dom-module><dom-module id="tr-ui-a-memory-dump-overview-pane">
<template>
<style>
:host {
display: flex;
flex-direction: column;
}
#label {
flex: 0 0 auto;
padding: 8px;
background-color: #eee;
border-bottom: 1px solid #8e8e8e;
border-top: 1px solid white;
font-size: 15px;
font-weight: bold;
}
#label a {
font-weight: normal;
float: right;
}
#contents {
flex: 1 0 auto;
align-self: stretch;
font-size: 12px;
overflow: auto;
}
#info_text {
padding: 8px;
color: #666;
font-style: italic;
text-align: center;
}
#table {
display: none; /* Hide until memory dumps are set. */
flex: 1 0 auto;
align-self: stretch;
font-size: 12px;
}
</style>
<tr-ui-b-view-specific-brushing-state id="state" view-id="analysis.memory_dump_overview_pane">
</tr-ui-b-view-specific-brushing-state>
<div id="label">Overview <a href="https://chromium.googlesource.com/chromium/src/+/master/docs/memory-infra">Help</a></div>
<div id="contents">
<div id="info_text">No memory memory dumps selected</div>
<tr-ui-b-table id="table"></tr-ui-b-table>
</div>
</template>
</dom-module><dom-module id="tr-ui-a-memory-dump-header-pane">
<template>
<style>
:host {
display: flex;
flex-direction: row;
align-items: center;
background-color: #d0d0d0;
border-bottom: 1px solid #8e8e8e;
border-top: 1px solid white;
}
#label {
flex: 1 1 auto;
padding: 6px;
font-size: 15px;
}
#aggregation_mode_container {
display: none;
flex: 0 0 auto;
padding: 5px;
font-size: 15px;
}
</style>
<div id="label"></div>
<div id="aggregation_mode_container">
<span>Metric aggregation:</span>
</div>
</template>
</dom-module><dom-module id="tr-ui-a-stacked-pane-view">
<template>
<style>
:host {
display: flex;
flex-direction: column;
}
#pane_container > * {
flex: 0 0 auto;
}
</style>
<div id="pane_container">
</div>
</template>
</dom-module><dom-module id="tr-ui-a-container-memory-dump-sub-view">
<template>
<style>
tr-ui-b-table {
font-size: 12px;
}
</style>
<div id="content"></div>
</template>
</dom-module><dom-module id="tr-ui-a-counter-sample-sub-view">
<template>
<style>
:host {
display: flex;
flex-direction: column;
}
tr-ui-b-table {
font-size: 12px;
}
</style>
<tr-ui-b-table id="table"></tr-ui-b-table>
</template>
</dom-module><dom-module id="tr-ui-a-multi-event-summary-table">
<template>
<style>
:host {
display: flex;
}
#table {
flex: 1 1 auto;
align-self: stretch;
font-size: 12px;
}
</style>
<tr-ui-b-table id="table">
</tr-ui-b-table>
</template>
</dom-module><dom-module id="tr-ui-a-selection-summary-table">
<template>
<style>
:host {
display: flex;
}
#table {
flex: 1 1 auto;
align-self: stretch;
font-size: 12px;
}
</style>
<tr-ui-b-table id="table">
</tr-ui-b-table>
</template>
</dom-module><dom-module id="tr-ui-b-radio-picker">
<template>
<style>
:host([vertical]) #container {
flex-direction: column;
}
:host(:not[vertical]) #container {
flex-direction: row;
}
#container {
display: flex;
}
#container > div {
padding-left: 1em;
padding-bottom: 0.5em;
}
</style>
<div id="container"></div>
</template>
</dom-module><dom-module id="tr-v-ui-breakdown-span">
<template>
<style>
:host {
display: flex;
flex-direction: column;
}
#table_container {
display: flex;
flex: 0 0 auto;
}
#table {
max-height: 150px;
overflow-y: auto;
}
</style>
<div id="empty">(empty)</div>
<div id="table_container">
<div id="container"></div>
<span>
<tr-ui-b-table id="table"></tr-ui-b-table>
</span>
</div>
</template>
</dom-module><dom-module id="tr-v-ui-buildbot-info-span">
<template>
<tr-ui-b-table id="table"></tr-ui-b-table>
</template>
</dom-module><dom-module id="tr-v-ui-collected-related-event-set-span">
</dom-module><dom-module id="tr-v-ui-device-info-span">
<template>
<tr-ui-b-table id="table"></tr-ui-b-table>
</template>
</dom-module><dom-module id="tr-v-ui-generic-diagnostic-span">
<template>
<tr-ui-a-generic-object-view id="generic"></tr-ui-a-generic-object-view>
</template>
</dom-module><dom-module id="tr-v-ui-merged-buildbot-info-span">
<template>
<tr-ui-b-table id="table"></tr-ui-b-table>
</template>
</dom-module><dom-module id="tr-v-ui-merged-device-info-span">
<template>
<tr-ui-b-table id="table"></tr-ui-b-table>
</template>
</dom-module><dom-module id="tr-v-ui-merged-revision-info-span">
<template>
<tr-ui-b-table id="table"></tr-ui-b-table>
</template>
</dom-module><dom-module id="tr-v-ui-merged-telemetry-info-span">
<template>
<style>
#hide, #table {
display: none;
}
</style>
<button id="show" on-click="onShow_">Show</button>
<button id="hide" on-click="onHide_">Hide</button>
<tr-ui-b-table id="table"></tr-ui-b-table>
</template>
</dom-module><dom-module id="tr-v-ui-related-event-set-span">
</dom-module><dom-module id="tr-v-ui-related-histogram-map-span">
<template>
<tr-ui-b-table id="table"></tr-ui-b-table>
</template>
</dom-module><dom-module id="tr-v-ui-related-histogram-set-span">
</dom-module><dom-module id="tr-v-ui-revision-info-span">
<template>
<tr-ui-b-table id="table"></tr-ui-b-table>
</template>
</dom-module><dom-module id="tr-v-ui-scalar-diagnostic-span">
<template>
<tr-v-ui-scalar-span id="scalar"></tr-v-ui-scalar-span>
</template>
</dom-module><dom-module id="tr-v-ui-telemetry-info-span">
<template>
<tr-ui-b-table id="table"></tr-ui-b-table>
</template>
</dom-module><dom-module id="tr-v-ui-unmergeable-diagnostic-set-span">
</dom-module><dom-module id="tr-v-ui-diagnostic-map-table">
<template>
<tr-ui-b-table id="table"></tr-ui-b-table>
</template>
</dom-module><dom-module name="tr-v-ui-scalar-map-table">
<template>
<style>
</style>
<tr-ui-b-table id="table"></tr-ui-b-table>
</template>
</dom-module><dom-module id="tr-v-ui-histogram-span">
<template>
<style>
#container {
display: flex;
flex-direction: row;
justify-content: space-between;
}
#chart {
flex-grow: 1;
display: none;
}
#drag_handle, #sample_diagnostics_container {
display: none;
}
#chart svg {
display: block;
}
</style>
<div id="container">
<div id="chart"></div>
<div id="stats_container">
<tr-v-ui-scalar-map-table id="stats"></tr-v-ui-scalar-map-table>
</div>
</div>
<tr-ui-b-drag-handle id="drag_handle"></tr-ui-b-drag-handle>
<tr-v-ui-diagnostic-map-table id="histogram_diagnostics"></tr-v-ui-diagnostic-map-table>
<div id="sample_diagnostics_container">
<div id="merge_sample_diagnostics_container">
<input checked="" id="merge_sample_diagnostics" on-change="updateDiagnostics_" type="checkbox"/>
<label for="merge_sample_diagnostics">Merge Sample Diagnostics</label>
</div>
<tr-v-ui-diagnostic-map-table id="sample_diagnostics"></tr-v-ui-diagnostic-map-table>
</div>
</template>
</dom-module><dom-module id="tr-ui-a-multi-event-sub-view">
<template>
<style>
:host {
display: flex;
overflow: auto;
}
#content {
display: flex;
flex-direction: column;
flex: 0 1 auto;
align-self: stretch;
}
#content > * {
flex: 0 0 auto;
align-self: stretch;
}
#histogramContainer {
display: flex;
}
tr-ui-a-multi-event-summary-table {
border-bottom: 1px solid #aaa;
}
tr-ui-a-selection-summary-table {
margin-top: 1.25em;
border-top: 1px solid #aaa;
background-color: #eee;
font-weight: bold;
margin-bottom: 1.25em;
border-bottom: 1px solid #aaa;
}
</style>
<div id="content">
<tr-ui-a-multi-event-summary-table id="eventSummaryTable">
</tr-ui-a-multi-event-summary-table>
<tr-ui-a-selection-summary-table id="selectionSummaryTable">
</tr-ui-a-selection-summary-table>
<tr-ui-b-radio-picker id="radioPicker">
</tr-ui-b-radio-picker>
<div id="histogramContainer">
<tr-v-ui-histogram-span id="histogramSpan">
</tr-v-ui-histogram-span>
</div>
</div>
</template>
</dom-module><dom-module id="tr-ui-a-related-events">
<template>
<style>
:host {
display: flex;
flex-direction: column;
}
#table {
flex: 1 1 auto;
align-self: stretch;
font-size: 12px;
}
</style>
<tr-ui-b-table id="table"></tr-ui-b-table>
</template>
</dom-module><dom-module id="tr-ui-a-multi-async-slice-sub-view">
<template>
<style>
:host {
display: flex;
}
#container {
display: flex;
flex: 1 1 auto;
}
#events {
margin-left: 8px;
flex: 0 1 200px;
}
</style>
<div id="container">
<tr-ui-a-multi-event-sub-view id="content"></tr-ui-a-multi-event-sub-view>
<div id="events">
<tr-ui-a-related-events id="relatedEvents"></tr-ui-a-related-events>
</div>
</div>
</template>
</dom-module><dom-module id="tr-ui-a-multi-cpu-slice-sub-view">
<template>
<style>
:host {
display: flex;
}
#content {
flex: 1 1 auto;
}
</style>
<tr-ui-a-multi-event-sub-view id="content"></tr-ui-a-multi-event-sub-view>
</template>
</dom-module><dom-module id="tr-ui-a-multi-flow-event-sub-view">
<template>
<style>
:host {
display: flex;
}
</style>
<tr-ui-a-multi-event-sub-view id="content"></tr-ui-a-multi-event-sub-view>
</template>
</dom-module><dom-module id="tr-ui-a-multi-instant-event-sub-view">
<template>
<style>
:host {
display: block;
}
</style>
<div id="content"></div>
</template>
</dom-module><dom-module id="tr-ui-a-multi-object-sub-view">
<template>
<style>
:host {
display: flex;
font-size: 12px;
}
</style>
<tr-ui-b-table id="content"></tr-ui-b-table>
</template>
</dom-module><dom-module id="tr-ui-a-frame-power-usage-chart">
<template>
<div id="content"></div>
</template>
</dom-module><dom-module id="tr-ui-a-power-sample-summary-table">
<template>
<style>
tr-ui-b-table {
font-size: 12px;
}
</style>
<tr-ui-b-table id="table"></tr-ui-b-table>
</template>
</dom-module><dom-module id="tr-ui-a-multi-power-sample-sub-view">
<template>
<style>
:host {
display: flex;
flex-direction: row;
}
#tables {
display: flex;
flex-direction: column;
width: 50%;
}
#chart {
width: 50%;
}
</style>
<div id="tables">
<tr-ui-a-power-sample-summary-table id="summaryTable">
</tr-ui-a-power-sample-summary-table>
</div>
<tr-ui-a-frame-power-usage-chart id="chart">
</tr-ui-a-frame-power-usage-chart>
</template>
</dom-module><dom-module id="tr-ui-a-multi-sample-sub-view">
<template>
<style>
:host { display: block; }
#control {
background-color: #e6e6e6;
background-image: -webkit-gradient(linear, 0 0, 0 100%,
from(#E5E5E5), to(#D1D1D1));
flex: 0 0 auto;
overflow-x: auto;
}
#control::-webkit-scrollbar { height: 0px; }
#control {
font-size: 12px;
display: flex;
flex-direction: row;
align-items: stretch;
margin: 1px;
margin-right: 2px;
}
tr-ui-b-table {
font-size: 12px;
}
</style>
<div id="control">
Sample View Option
</div>
<tr-ui-b-table id="table">
</tr-ui-b-table>
</template>
</dom-module><dom-module id="tr-ui-a-multi-thread-slice-sub-view">
<template>
<style>
:host {
display: flex;
}
#content {
display: flex;
flex: 1 1 auto;
}
#content > tr-ui-a-related-events {
margin-left: 8px;
flex: 0 1 200px;
}
</style>
<div id="content"></div>
</template>
</dom-module><dom-module id="tr-ui-a-multi-thread-time-slice-sub-view">
<template>
<style>
:host {
display: flex;
}
#content {
flex: 1 1 auto;
}
</style>
<tr-ui-a-multi-event-sub-view id="content"></tr-ui-a-multi-event-sub-view>
</template>
</dom-module><dom-module id="tr-ui-a-user-expectation-related-samples-table">
<template>
<style>
#table {
flex: 1 1 auto;
align-self: stretch;
font-size: 12px;
}
</style>
<tr-ui-b-table id="table"></tr-ui-b-table>
</template>
</dom-module><dom-module id="tr-ui-a-multi-user-expectation-sub-view">
<template>
<style>
:host {
display: flex;
flex: 1 1 auto;
}
#events {
margin-left: 8px;
flex: 0 1 200px;
}
</style>
<tr-ui-a-multi-event-sub-view id="realView"></tr-ui-a-multi-event-sub-view>
<div id="events">
<tr-ui-a-user-expectation-related-samples-table id="relatedSamples"></tr-ui-a-user-expectation-related-samples-table>
</div>
</template>
</dom-module><dom-module id="tr-ui-a-single-async-slice-sub-view">
<template>
<style>
:host {
display: flex;
flex-direction: row;
}
#events {
display:flex;
flex-direction: column;
}
</style>
<tr-ui-a-single-event-sub-view id="content"></tr-ui-a-single-event-sub-view>
<div id="events">
<tr-ui-a-related-events id="relatedEvents"></tr-ui-a-related-events>
</div>
</template>
</dom-module><dom-module id="tr-ui-a-single-cpu-slice-sub-view">
<template>
<style>
table {
border-collapse: collapse;
border-width: 0;
margin-bottom: 25px;
width: 100%;
}
table tr > td:first-child {
padding-left: 2px;
}
table tr > td {
padding: 2px 4px 2px 4px;
vertical-align: text-top;
width: 150px;
}
table td td {
padding: 0 0 0 0;
width: auto;
}
tr {
vertical-align: top;
}
tr:nth-child(2n+0) {
background-color: #e2e2e2;
}
</style>
<table>
<tbody><tr>
<td>Running process:</td><td id="process-name"></td>
</tr>
<tr>
<td>Running thread:</td><td id="thread-name"></td>
</tr>
<tr>
<td>Start:</td>
<td>
<tr-v-ui-scalar-span id="start">
</tr-v-ui-scalar-span>
</td>
</tr>
<tr>
<td>Duration:</td>
<td>
<tr-v-ui-scalar-span id="duration">
</tr-v-ui-scalar-span>
</td>
</tr>
<tr>
<td>Active slices:</td><td id="running-thread"></td>
</tr>
<tr>
<td>Args:</td>
<td>
<tr-ui-a-generic-object-view id="args">
</tr-ui-a-generic-object-view>
</td>
</tr>
</tbody></table>
</template>
</dom-module><dom-module id="tr-ui-a-single-flow-event-sub-view">
<template>
<style>
:host {
display: block;
}
</style>
<tr-ui-a-single-event-sub-view id="singleEventSubView">
</tr-ui-a-single-event-sub-view>
</template>
</dom-module><dom-module id="tr-ui-a-single-frame-sub-view">
<template>
<style>
:host {
display: flex;
flex-direction: column;
}
#asv {
flex: 0 0 auto;
align-self: stretch;
}
</style>
<tr-ui-a-alert-sub-view id="asv">
</tr-ui-a-alert-sub-view>
</template>
</dom-module><dom-module id="tr-ui-a-single-instant-event-sub-view">
<template>
<style>
:host {
display: block;
}
</style>
<div id="content"></div>
</template>
</dom-module><dom-module id="tr-ui-a-single-object-instance-sub-view">
<template>
<style>
:host {
display: block;
}
#snapshots > * {
display: block;
}
:host {
overflow: auto;
display: block;
}
* {
-webkit-user-select: text;
}
.title {
border-bottom: 1px solid rgb(128, 128, 128);
font-size: 110%;
font-weight: bold;
}
td, th {
font-family: monospace;
vertical-align: top;
}
</style>
<div id="content"></div>
</template>
</dom-module><dom-module id="tr-ui-a-single-object-snapshot-sub-view">
<template>
<style>
#args {
white-space: pre;
}
:host {
overflow: auto;
display: flex;
}
::content * {
-webkit-user-select: text;
}
::content .title {
border-bottom: 1px solid rgb(128, 128, 128);
font-size: 110%;
font-weight: bold;
}
::content td, th {
font-family: monospace;
vertical-align: top;
}
</style>
<content></content>
</template>
</dom-module><dom-module id="tr-ui-a-power-sample-table">
<template>
<style>
:host {
display: flex;
font-size: 12px;
}
</style>
<tr-ui-b-table id="table"></tr-ui-b-table>
</template>
</dom-module><dom-module id="tr-ui-a-single-power-sample-sub-view">
<template>
<style>
:host { display: block; }
</style>
<tr-ui-a-power-sample-table id="samplesTable">
</tr-ui-a-power-sample-table>
</template>
</dom-module><dom-module id="tr-ui-a-single-sample-sub-view">
<template>
<style>
:host {
display: flex;
font-size: 12px;
}
</style>
<tr-ui-b-table id="content"></tr-ui-b-table>
</template>
</dom-module><dom-module id="tr-ui-a-single-thread-slice-sub-view">
<template>
<style>
:host {
display: flex;
flex-direction: row;
}
#events {
display: flex;
flex-direction: column;
}
</style>
<tr-ui-a-single-event-sub-view id="content"></tr-ui-a-single-event-sub-view>
<div id="events">
<tr-ui-a-related-events id="relatedEvents">
</tr-ui-a-related-events>
</div>
</template>
</dom-module><dom-module id="tr-ui-a-single-thread-time-slice-sub-view">
<template>
<style>
table {
border-collapse: collapse;
border-width: 0;
margin-bottom: 25px;
width: 100%;
}
table tr > td:first-child {
padding-left: 2px;
}
table tr > td {
padding: 2px 4px 2px 4px;
vertical-align: text-top;
width: 150px;
}
table td td {
padding: 0 0 0 0;
width: auto;
}
tr {
vertical-align: top;
}
tr:nth-child(2n+0) {
background-color: #e2e2e2;
}
</style>
<table>
<tbody><tr>
<td>Running process:</td><td id="process-name"></td>
</tr>
<tr>
<td>Running thread:</td><td id="thread-name"></td>
</tr>
<tr>
<td>State:</td>
<td><b><span id="state"></span></b></td>
</tr>
<tr>
<td>Start:</td>
<td>
<tr-v-ui-scalar-span id="start">
</tr-v-ui-scalar-span>
</td>
</tr>
<tr>
<td>Duration:</td>
<td>
<tr-v-ui-scalar-span id="duration">
</tr-v-ui-scalar-span>
</td>
</tr>
<tr>
<td>On CPU:</td><td id="on-cpu"></td>
</tr>
<tr>
<td>Running instead:</td><td id="running-instead"></td>
</tr>
<tr>
<td>Args:</td><td id="args"></td>
</tr>
</tbody></table>
</template>
</dom-module><dom-module id="tr-ui-a-single-user-expectation-sub-view">
<template>
<style>
:host {
display: flex;
flex-direction: row;
}
#events {
display: flex;
flex-direction: column;
}
</style>
<tr-ui-a-single-event-sub-view id="realView"></tr-ui-a-single-event-sub-view>
<div id="events">
<tr-ui-a-user-expectation-related-samples-table id="relatedSamples"></tr-ui-a-user-expectation-related-samples-table>
</div>
</template>
</dom-module><dom-module id="tr-ui-a-analysis-view">
<template>
<style>
:host {
background-color: white;
display: flex;
flex-direction: column;
height: 275px;
overflow: auto;
}
:host(.tall-mode) {
height: 525px;
}
</style>
<content></content>
</template>
</dom-module><dom-module id="tr-ui-b-dropdown">
<template>
<style>
:host {
position: relative;
display: flex;
}
#outer {
display: flex;
flex: 0 0 auto;
padding: 1px 4px 1px 4px;
-webkit-user-select: none;
cursor: default;
}
#state {
display: flex;
flex: 0 0 auto;
margin-left: 2px;
margin-right: 0px;
flex: 0 0 auto;
}
#icon {
display: flex;
flex: 0 0 auto;
flex: 0 0 auto;
}
dialog {
position: absolute;
padding: 0;
border: 0;
margin: 0;
}
dialog::backdrop {
background: rgba(0,0,0,.05);
}
#dialog-frame {
background-color: #fff;
display: flex;
flex-direction: column;
flex: 1 1 auto;
padding: 6px;
border: 1px solid black;
-webkit-user-select: none;
cursor: default;
}
</style>
<tr-ui-b-toolbar-button id="outer" on-click="onOuterClick_" on-keydown="onOuterKeyDown_">
<div id="icon">⚙</div>
<div id="state">▾</div>
</tr-ui-b-toolbar-button>
<dialog id="dialog" on-cancel="onDialogCancel_" on-click="onDialogClick_">
<div id="dialog-frame">
<content></content>
</div>
</dialog>
</template>
</dom-module><dom-module id="tr-ui-b-info-bar-group">
<template>
<style>
:host {
flex: 0 0 auto;
flex-direction: column;
display: flex;
}
</style>
<div id="messages"></div>
</template>
</dom-module><dom-module id="tr-ui-b-toolbar-button">
<template>
<style>
:host {
display: flex;
background-color: #f8f8f8;
border: 1px solid rgba(0, 0, 0, 0.5);
color: rgba(0,0,0,0.8);
justify-content: center;
align-self: stretch;
min-width: 23px;
}
:host(:hover) {
background-color: rgba(255, 255, 255, 1.0);
border-color: rgba(0, 0, 0, 0.8);
box-shadow: 0 0 .05em rgba(0, 0, 0, 0.4);
color: rgba(0, 0, 0, 1);
}
#aligner {
display: flex;
flex: 0 0 auto;
align-self: center;
}
</style>
<div id="aligner">
<content></content>
</div>
</template>
</dom-module><style>
.drawing-container{-webkit-box-flex:1;display:inline;overflow:auto;overflow-x:hidden;position:relative}.drawing-container-canvas{-webkit-box-flex:1;display:block;pointer-events:none;position:absolute;top:0}
</style><style>
.letter-dot-track {
height: 18px;
}
</style><style>
.chart-track {
height: 30px;
position: relative;
}
</style><style>
.cpu-usage-track {
height: 90px;
}
</style><style>
.power-series-track {
height: 90px;
}
</style><style>
.spacing-track{height:4px}
</style><style>
.rect-track{height:18px}
</style><style>
.thread-track{-webkit-box-orient:vertical;display:-webkit-box;position:relative}
</style><style>
.process-track-header{-webkit-flex:0 0 auto;background-image:-webkit-gradient(linear,0 0,100% 0,from(#E5E5E5),to(#D1D1D1));border-bottom:1px solid #8e8e8e;border-top:1px solid white;font-size:75%}.process-track-name:before{content:'\25B8';padding:0 5px}.process-track-base.expanded .process-track-name:before{content:'\25BE'}
</style><style>
.model-track {
-webkit-box-flex: 1;
}
</style><style>
.x-axis-track {
height: 12px;
}
.x-axis-track.tall-mode {
height: 30px;
}
</style><dom-module id="tr-ui-timeline-track-view">
<template>
<style>
:host {
-webkit-box-orient: vertical;
display: -webkit-box;
position: relative;
}
:host ::content * {
-webkit-user-select: none;
cursor: default;
}
#drag_box {
background-color: rgba(0, 0, 255, 0.25);
border: 1px solid rgb(0, 0, 96);
font-size: 75%;
position: fixed;
}
#hint_text {
position: absolute;
bottom: 6px;
right: 6px;
font-size: 8pt;
}
</style>
<content></content>
<div id="drag_box"></div>
<div id="hint_text"></div>
<tv-ui-b-hotkey-controller id="hotkey_controller">
</tv-ui-b-hotkey-controller>
</template>
</dom-module><dom-module id="tr-ui-find-control">
<template>
<style>
:host {
-webkit-user-select: none;
display: -webkit-flex;
position: relative;
}
input {
-webkit-user-select: auto;
background-color: #f8f8f8;
border: 1px solid rgba(0, 0, 0, 0.5);
box-sizing: border-box;
margin: 0;
padding: 0;
width: 170px;
}
input:focus {
background-color: white;
}
tr-ui-b-toolbar-button {
border-left: none;
margin: 0;
}
#hitCount {
left: 0;
opacity: 0.25;
pointer-events: none;
position: absolute;
text-align: right;
top: 2px;
width: 167px;
z-index: 1;
}
#spinner {
visibility: hidden;
width: 8px;
height: 8px;
left: 154px;
pointer-events: none;
position: absolute;
top: 4px;
z-index: 1;
border: 2px solid transparent;
border-bottom: 2px solid rgba(0, 0, 0, 0.5);
border-right: 2px solid rgba(0, 0, 0, 0.5);
border-radius: 50%;
}
@keyframes spin { 100% { transform: rotate(360deg); } }
</style>
<input id="filter" on-blur="filterBlur" on-focus="filterFocus" on-input="filterTextChanged" on-keydown="filterKeyDown" on-mouseup="filterMouseUp" type="text"/>
<div id="spinner"></div>
<tr-ui-b-toolbar-button on-click="findPrevious">
←
</tr-ui-b-toolbar-button>
<tr-ui-b-toolbar-button on-click="findNext">
→
</tr-ui-b-toolbar-button>
<div id="hitCount">0 of 0</div>
</template>
</dom-module><dom-module id="tr-ui-scripting-control">
<template>
<style>
:host {
flex: 1 1 auto;
}
.root {
font-family: monospace;
cursor: text;
padding: 2px;
margin: 2px;
border: 1px solid rgba(0, 0, 0, 0.5);
background: white;
height: 100px;
overflow-y: auto;
transition-property: opacity, height, padding, margin;
transition-duration: .2s;
transition-timing-function: ease-out;
}
.hidden {
margin-top: 0px;
margin-bottom: 0px;
padding-top: 0px;
padding-bottom: 0px;
height: 0px;
opacity: 0;
}
.focused {
outline: auto 5px -webkit-focus-ring-color;
}
#history {
-webkit-user-select: text;
color: #777;
}
#promptContainer {
display: flex;
}
#promptMark {
width: 1em;
color: #468;
}
#prompt {
flex: 1;
width: 100%;
border: none !important;
background-color: inherit !important;
font: inherit !important;
text-overflow: clip !important;
text-decoration: none !important;
}
#prompt:focus {
outline: none;
}
</style>
<div class="root hidden" id="root" on-focus="onConsoleFocus" tabindex="0">
<div id="history"></div>
<div id="promptContainer">
<span id="promptMark">></span>
<input id="prompt" on-blur="onConsoleBlur" on-keydown="promptKeyDown" on-keypress="promptKeyPress" type="text"/>
</div>
</div>
</template>
</dom-module><dom-module id="tr-ui-side-panel-container">
<template>
<style>
:host {
align-items: stretch;
display: -webkit-flex;
background-color: white;
}
:host([expanded]) > #side_panel_drag_handle,
:host([expanded]) > active-panel-container {
-webkit-flex: 1 1 auto;
border-left: 1px solid black;
display: -webkit-flex;
}
:host(:not([expanded])) > #side_panel_drag_handle,
:host(:not([expanded])) > active-panel-container {
display: none;
}
active-panel-container {
display: flex;
}
tab-strip {
-webkit-flex: 0 0 auto;
-webkit-flex-direction: column;
-webkit-user-select: none;
background-color: rgb(236, 236, 236);
border-left: 1px solid black;
cursor: default;
display: -webkit-flex;
min-width: 18px; /* workaround for flexbox and writing-mode mixing bug */
padding: 10px 0 10px 0;
font-size: 12px;
}
tab-strip > tab-strip-label {
-webkit-writing-mode: vertical-rl;
display: inline;
margin-right: 1px;
min-height: 20px;
padding: 15px 3px 15px 1px;
}
tab-strip >
tab-strip-label:not([enabled]) {
color: rgb(128, 128, 128);
}
tab-strip > tab-strip-label[selected] {
background-color: white;
border: 1px solid rgb(163, 163, 163);
border-left: none;
padding: 14px 2px 14px 1px;
}
#active_panel_container {
overflow: auto;
}
</style>
<tr-ui-b-drag-handle id="side_panel_drag_handle"></tr-ui-b-drag-handle>
<active-panel-container id="active_panel_container">
</active-panel-container>
<tab-strip id="tab_strip"></tab-strip>
</template>
</dom-module><dom-module id="tr-ui-timeline-view-help-overlay">
<template>
<style>
:host {
-webkit-flex: 1 1 auto;
-webkit-flex-direction: row;
display: -webkit-flex;
width: 700px;
}
.column {
width: 50%;
}
h2 {
font-size: 1.2em;
margin: 0;
margin-top: 5px;
text-align: center;
}
h3 {
margin: 0;
margin-left: 126px;
margin-top: 10px;
}
.pair {
-webkit-flex: 1 1 auto;
-webkit-flex-direction: row;
display: -webkit-flex;
}
.command {
font-family: monospace;
margin-right: 5px;
text-align: right;
width: 150px;
}
.action {
font-size: 0.9em;
text-align: left;
width: 200px;
}
tr-ui-b-mouse-mode-icon {
border: 1px solid #888;
border-radius: 3px;
box-shadow: inset 0 0 2px rgba(0,0,0,0.3);
display: inline-block;
margin-right: 1px;
position: relative;
top: 4px;
}
.mouse-mode-icon.pan-mode {
background-position: -1px -11px;
}
.mouse-mode-icon.select-mode {
background-position: -1px -41px;
}
.mouse-mode-icon.zoom-mode {
background-position: -1px -71px;
}
.mouse-mode-icon.timing-mode {
background-position: -1px -101px;
}
</style>
<div class="column left">
<h2>Navigation</h2>
<div class="pair">
<div class="command">w/s</div>
<div class="action">Zoom in/out (+shift: faster)</div>
</div>
<div class="pair">
<div class="command">a/d</div>
<div class="action">Pan left/right (+shift: faster)</div>
</div>
<div class="pair">
<div class="command">→/shift-TAB</div>
<div class="action">Select previous event</div>
</div>
<div class="pair">
<div class="command">←/TAB</div>
<div class="action">Select next event</div>
</div>
<h2>Mouse Controls</h2>
<div class="pair">
<div class="command">click</div>
<div class="action">Select event</div>
</div>
<div class="pair">
<div class="command">alt-mousewheel</div>
<div class="action">Zoom in/out</div>
</div>
<h3>
<tr-ui-b-mouse-mode-icon mode-name="SELECTION"></tr-ui-b-mouse-mode-icon>
Select mode
</h3>
<div class="pair">
<div class="command">drag</div>
<div class="action">Box select</div>
</div>
<div class="pair">
<div class="command"><span class="mod"></span>-click/drag</div>
<div class="action">Add events to the current selection</div>
</div>
<div class="pair">
<div class="command">double click</div>
<div class="action">Select all events with same title</div>
</div>
<h3>
<tr-ui-b-mouse-mode-icon mode-name="PANSCAN"></tr-ui-b-mouse-mode-icon>
Pan mode
</h3>
<div class="pair">
<div class="command">drag</div>
<div class="action">Pan the view</div>
</div>
<h3>
<tr-ui-b-mouse-mode-icon mode-name="ZOOM"></tr-ui-b-mouse-mode-icon>
Zoom mode
</h3>
<div class="pair">
<div class="command">drag</div>
<div class="action">Zoom in/out by dragging up/down</div>
</div>
<h3>
<tr-ui-b-mouse-mode-icon mode-name="TIMING"></tr-ui-b-mouse-mode-icon>
Timing mode
</h3>
<div class="pair">
<div class="command">drag</div>
<div class="action">Create or move markers</div>
</div>
<div class="pair">
<div class="command">double click</div>
<div class="action">Set marker range to slice</div>
</div>
</div>
<div class="column right">
<h2>General</h2>
<div class="pair">
<div class="command">1-4</div>
<div class="action">Switch mouse mode</div>
</div>
<div class="pair">
<div class="command">shift</div>
<div class="action">Hold for temporary select</div>
</div>
<div class="pair">
<div class="command">space</div>
<div class="action">Hold for temporary pan</div>
</div>
<div class="pair">
<div class="command">/</div>
<div class="action">Search</div>
</div>
<div class="pair">
<div class="command">enter</div>
<div class="action">Step through search results</div>
</div>
<div class="pair">
<div class="command">f</div>
<div class="action">Zoom into selection</div>
</div>
<div class="pair">
<div class="command">z/0</div>
<div class="action">Reset zoom and pan</div>
</div>
<div class="pair">
<div class="command">g/G</div>
<div class="action">Toggle 60hz grid</div>
</div>
<div class="pair">
<div class="command">v</div>
<div class="action">Highlight VSync</div>
</div>
<div class="pair">
<div class="command">h</div>
<div class="action">Toggle low/high details</div>
</div>
<div class="pair">
<div class="command">m</div>
<div class="action">Mark current selection</div>
</div>
<div class="pair">
<div class="command">p</div>
<div class="action">Select power samples over current selection interval</div>
</div>
<div class="pair">
<div class="command">`</div>
<div class="action">Show or hide the scripting console</div>
</div>
<div class="pair">
<div class="command">?</div>
<div class="action">Show help</div>
</div>
</div>
</template>
</dom-module><dom-module id="tr-ui-timeline-view-metadata-overlay">
<template>
<style>
:host {
width: 700px;
overflow: auto;
}
</style>
<tr-ui-b-table id="table"></tr-ui-b-table>
</template>
</dom-module><dom-module id="tr-ui-timeline-view">
<template>
<style>
:host {
flex-direction: column;
cursor: default;
display: flex;
font-family: sans-serif;
padding: 0;
}
#control {
background-color: #e6e6e6;
background-image: -webkit-gradient(linear, 0 0, 0 100%,
from(#E5E5E5), to(#D1D1D1));
flex: 0 0 auto;
overflow-x: auto;
}
#control::-webkit-scrollbar { height: 0px; }
#control > #bar {
font-size: 12px;
display: flex;
flex-direction: row;
margin: 1px;
}
#control > #bar > #title {
display: flex;
align-items: center;
padding-left: 8px;
padding-right: 8px;
flex: 1 1 auto;
}
#control > #bar > #left_controls,
#control > #bar > #right_controls {
display: flex;
flex-direction: row;
align-items: stretch;
}
#control > #bar > #left_controls > * { margin-right: 2px; }
#control > #bar > #right_controls > * { margin-left: 2px; }
#control > #collapsing_controls { display: flex; }
middle-container {
flex: 1 1 auto;
flex-direction: row;
border-bottom: 1px solid #8e8e8e;
display: flex;
min-height: 0;
}
middle-container ::content track-view-container {
flex: 1 1 auto;
display: flex;
min-height: 0;
min-width: 0;
overflow-x: hidden;
}
middle-container ::content track-view-container > * { flex: 1 1 auto; }
middle-container > x-timeline-view-side-panel-container { flex: 0 0 auto; }
tr-ui-b-drag-handle { flex: 0 0 auto; }
tr-ui-a-analysis-view { flex: 0 0 auto; }
</style>
<tv-ui-b-hotkey-controller id="hkc"></tv-ui-b-hotkey-controller>
<div id="control">
<div id="bar">
<div id="left_controls"></div>
<div id="title">^_^</div>
<div id="right_controls">
<tr-ui-b-toolbar-button id="view_metadata_button">
M
</tr-ui-b-toolbar-button>
<tr-ui-b-dropdown id="view_options_dropdown"></tr-ui-b-dropdown>
<tr-ui-find-control id="view_find_control"></tr-ui-find-control>
<tr-ui-b-toolbar-button id="view_console_button">
»
</tr-ui-b-toolbar-button>
<tr-ui-b-toolbar-button id="view_help_button">
?
</tr-ui-b-toolbar-button>
</div>
</div>
<div id="collapsing_controls"></div>
<tr-ui-b-info-bar-group id="import-warnings">
</tr-ui-b-info-bar-group>
</div>
<middle-container>
<content></content>
<tr-ui-side-panel-container id="side_panel_container">
</tr-ui-side-panel-container>
</middle-container>
<tr-ui-b-drag-handle id="drag_handle"></tr-ui-b-drag-handle>
<tr-ui-a-analysis-view id="analysis"></tr-ui-a-analysis-view>
<tr-v-ui-preferred-display-unit id="display_unit">
</tr-v-ui-preferred-display-unit>
</template>
</dom-module><dom-module id="tr-ui-b-grouping-table">
<template>
<style>
:host {
display: flex;
}
#table {
flex: 1 1 auto;
font-size: 12px;
}
</style>
<tr-ui-b-table id="table"></tr-ui-b-table>
</template>
</dom-module><dom-module id="tr-ui-b-grouping-table-groupby-picker">
<template>
<style>
#container {
display: flex;
}
#container *:not(:first-child) {
padding-left: 3px;
border-left: 1px solid black;
margin-left: 3px;
}
</style>
<div id="container"></div>
</template>
</dom-module><dom-module id="tr-ui-b-grouping-table-groupby-picker-group">
<template>
<style>
:host {
white-space: nowrap;
}
#left, #right {
user-select: none;
cursor: pointer;
}
</style>
<span id="left" on-click="moveLeft_">◀</span>
<input id="enabled" on-change="onEnableChanged_" type="checkbox"/>
<label for="enabled" id="label"></label>
<span id="right" on-click="moveRight_">▶</span>
</template>
</dom-module><dom-module id="tr-ui-sp-file-size-stats-side-panel">
<template>
<style>
:host {
display: flex;
flex-direction: column;
}
toolbar {
align-items: center;
background-color: rgb(236, 236, 236);
border-bottom: 1px solid #8e8e8e;
display: flex;
flex-direction: row;
flex-direction: row;
flex: 0 0 auto;
font-size: 12px;
padding: 0 10px 0 10px;
}
table-container {
display: flex;
min-height: 0px;
overflow-y: auto;
}
</style>
<toolbar>
<span><b>Group by:</b></span>
<tr-ui-b-grouping-table-groupby-picker id="picker">
</tr-ui-b-grouping-table-groupby-picker>
</toolbar>
<table-container>
<tr-ui-b-grouping-table id="table"></tr-ui-b-grouping-table>
</table-container>
</template>
</dom-module><dom-module id="tr-v-ui-histogram-set-controls">
<template>
<style>
:host {
display: block;
}
#help, #feedback {
display: none;
margin-left: 20px;
}
#search {
max-width: 20em;
margin-right: 20px;
}
#controls {
white-space: nowrap;
}
#show_overview, #hide_overview {
height: 1em;
margin-right: 20px;
}
#show_overview {
stroke: blue;
stroke-width: 16;
}
#show_overview:hover {
background: blue;
stroke: white;
}
#hide_overview {
display: none;
stroke-width: 18;
stroke: black;
}
#hide_overview:hover {
background: black;
stroke: white;
}
#reference_display_label {
display: none;
margin-right: 20px;
}
#statistic {
display: none;
margin-right: 20px;
}
#download_csv {
margin-right: 20px;
}
</style>
<div id="controls">
<input id="search" placeholder="Find Histogram name" value="{{searchQuery::keyup}}"/>
<svg id="show_overview" on-click="toggleOverviewLineCharts_" viewBox="0 0 128 128">
<line x1="19" x2="49" y1="109" y2="49"></line>
<line x1="49" x2="79" y1="49" y2="79"></line>
<line x1="79" x2="109" y1="79" y2="19"></line>
</svg>
<svg id="hide_overview" on-click="toggleOverviewLineCharts_" viewBox="0 0 128 128">
<line x1="28" x2="100" y1="28" y2="100"></line>
<line x1="28" x2="100" y1="100" y2="28"></line>
</svg>
<select id="reference_display_label" value="{{referenceDisplayLabel::change}}">
<option value="">Select a reference column</option>
</select>
<select id="statistic" value="{{displayStatisticName::change}}">
</select>
<button id="download_csv" on-click="downloadCSV_">⬇ CSV</button>
<input checked="{{showAll::change}}" id="show_all" title="When unchecked, less important histograms are hidden." type="checkbox"/>
<label for="show_all" title="When unchecked, less important histograms are hidden.">Show all</label>
<a id="help">Help</a>
<a id="feedback">Feedback</a>
</div>
<tr-ui-b-grouping-table-groupby-picker id="picker">
</tr-ui-b-grouping-table-groupby-picker>
</template>
</dom-module><dom-module id="tr-v-ui-histogram-set-table-cell">
<template>
<style>
#histogram_container {
display: flex;
flex-direction: row;
}
#missing, #empty, #unmergeable, #scalar {
flex-grow: 1;
}
#open_histogram, #close_histogram, #open_histogram svg, #close_histogram svg {
height: 1em;
}
#open_histogram svg {
margin-left: 4px;
stroke-width: 0;
stroke: blue;
fill: blue;
}
:host(:hover) #open_histogram svg {
background: blue;
stroke: white;
fill: white;
}
#scalar {
flex-grow: 1;
white-space: nowrap;
}
#histogram {
flex-grow: 1;
}
#close_histogram svg line {
stroke-width: 18;
stroke: black;
}
#close_histogram:hover svg {
background: black;
}
#close_histogram:hover svg line {
stroke: white;
}
#overview_container {
display: none;
}
</style>
<div id="histogram_container">
<span id="missing">(missing)</span>
<span id="empty">(empty)</span>
<span id="unmergeable">(unmergeable)</span>
<tr-v-ui-scalar-span id="scalar" on-click="openHistogram_"></tr-v-ui-scalar-span>
<span id="open_histogram" on-click="openHistogram_">
<svg viewBox="0 0 128 128">
<rect height="16" width="32" x="16" y="24"></rect>
<rect height="16" width="96" x="16" y="56"></rect>
<rect height="16" width="64" x="16" y="88"></rect>
</svg>
</span>
<span id="histogram"></span>
<span id="close_histogram" on-click="closeHistogram_">
<svg viewBox="0 0 128 128">
<line x1="28" x2="100" y1="28" y2="100"></line>
<line x1="28" x2="100" y1="100" y2="28"></line>
</svg>
</span>
</div>
<div id="overview_container">
</div>
</template>
</dom-module><dom-module id="tr-v-ui-histogram-set-table-name-cell">
<template>
<style>
#name_container {
display: flex;
}
#name {
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
#show_overview, #hide_overview, #show_overview svg, #hide_overview svg {
height: 1em;
margin-left: 5px;
}
#show_overview svg {
stroke: blue;
stroke-width: 16;
}
#show_overview:hover svg {
background: blue;
stroke: white;
}
#hide_overview {
display: none;
}
#hide_overview svg {
stroke-width: 18;
stroke: black;
}
#hide_overview:hover svg {
background: black;
stroke: white;
}
#open_histograms, #close_histograms, #open_histograms svg, #close_histograms svg {
height: 1em;
}
#close_histograms {
display: none;
}
#open_histograms svg {
margin-left: 4px;
stroke-width: 0;
stroke: blue;
fill: blue;
}
#open_histograms:hover svg {
background: blue;
stroke: white;
fill: white;
}
#close_histograms line {
stroke-width: 18;
stroke: black;
}
#close_histograms:hover {
background: black;
}
#close_histograms:hover line {
stroke: white;
}
#overview_container {
display: none;
}
</style>
<div id="name_container">
<span id="name"></span>
<span id="show_overview" on-click="showOverview_">
<svg viewBox="0 0 128 128">
<line x1="19" x2="49" y1="109" y2="49"></line>
<line x1="49" x2="79" y1="49" y2="79"></line>
<line x1="79" x2="109" y1="79" y2="19"></line>
</svg>
</span>
<span id="hide_overview" on-click="hideOverview_">
<svg viewBox="0 0 128 128">
<line x1="28" x2="100" y1="28" y2="100"></line>
<line x1="28" x2="100" y1="100" y2="28"></line>
</svg>
</span>
<span id="open_histograms" on-click="openHistograms_">
<svg viewBox="0 0 128 128">
<rect height="16" width="32" x="16" y="24"></rect>
<rect height="16" width="96" x="16" y="56"></rect>
<rect height="16" width="64" x="16" y="88"></rect>
</svg>
</span>
<span id="close_histograms" on-click="closeHistograms_">
<svg viewBox="0 0 128 128">
<line x1="28" x2="100" y1="28" y2="100"></line>
<line x1="28" x2="100" y1="100" y2="28"></line>
</svg>
</span>
</div>
<div id="overview_container">
</div>
</template>
</dom-module><dom-module id="tr-v-ui-histogram-set-table">
<template>
<style>
:host {
min-height: 0px;
overflow: auto;
}
#table {
margin-top: 5px;
}
</style>
<tr-ui-b-table id="table">
</tr-ui-b-table></template>
</dom-module><dom-module id="tr-v-ui-histogram-set-view">
<template>
<style>
:host {
font-family: sans-serif;
}
#zero {
color: red;
/* histogram-set-table is used by both metrics-side-panel and results2.html.
* This font-size rule has no effect in results2.html, but improves
* legibility in the metrics-side-panel, which sets font-size in order to
* make this table denser.
*/
font-size: initial;
}
#container {
display: none;
}
</style>
<div id="zero">zero Histograms</div>
<div id="container">
<tr-v-ui-histogram-set-controls id="controls">
</tr-v-ui-histogram-set-controls>
<tr-v-ui-histogram-set-table id="table"></tr-v-ui-histogram-set-table>
</div>
</template>
</dom-module><dom-module id="tr-ui-sp-metrics-side-panel">
<template>
<style>
:host {
display: flex;
flex-direction: column;
}
div#error {
color: red;
}
#results {
font-size: 12px;
}
</style>
<top-left-controls id="top_left_controls"></top-left-controls>
<tr-v-ui-histogram-set-view id="results"></tr-v-ui-histogram-set-view>
<div id="error"></div>
</template>
</dom-module><dom-module id="tr-ui-e-s-alerts-side-panel">
<template>
<style>
:host {
display: block;
width: 250px;
}
#content {
flex-direction: column;
display: flex;
}
tr-ui-b-table {
font-size: 12px;
}
</style>
<div id="content">
<toolbar id="toolbar"></toolbar>
<result-area id="result_area"></result-area>
</div>
</template>
</dom-module><script>
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
/* WARNING: This file is auto generated.
*
* Do not edit directly.
*/
'use strict';if(window.Polymer){throw new Error('Cannot proceed. Polymer already present.');}
window.Polymer={};window.Polymer.dom='shadow';(function(){function resolve(){document.body.removeAttribute('unresolved');}
if(window.WebComponents){addEventListener('WebComponentsReady',resolve);}else{if(document.readyState==='interactive'||document.readyState==='complete'){resolve();}else{addEventListener('DOMContentLoaded',resolve);}}}());window.Polymer={Settings:function(){var settings=window.Polymer||{};if(!settings.noUrlSettings){var parts=location.search.slice(1).split('&');for(var i=0,o;i<parts.length&&(o=parts[i]);i++){o=o.split('=');o[0]&&(settings[o[0]]=o[1]||true);}}
settings.wantShadow=settings.dom==='shadow';settings.hasShadow=Boolean(Element.prototype.createShadowRoot);settings.nativeShadow=settings.hasShadow&&!window.ShadowDOMPolyfill;settings.useShadow=settings.wantShadow&&settings.hasShadow;settings.hasNativeImports=Boolean('import'in document.createElement('link'));settings.useNativeImports=settings.hasNativeImports;settings.useNativeCustomElements=!window.CustomElements||window.CustomElements.useNative;settings.useNativeShadow=settings.useShadow&&settings.nativeShadow;settings.usePolyfillProto=!settings.useNativeCustomElements&&!Object.__proto__;settings.hasNativeCSSProperties=!navigator.userAgent.match('AppleWebKit/601')&&window.CSS&&CSS.supports&&CSS.supports('box-shadow','0 0 0 var(--foo)');settings.useNativeCSSProperties=settings.hasNativeCSSProperties&&settings.lazyRegister&&settings.useNativeCSSProperties;settings.isIE=navigator.userAgent.match('Trident');return settings;}()};(function(){var userPolymer=window.Polymer;window.Polymer=function(prototype){if(typeof prototype==='function'){prototype=prototype.prototype;}
if(!prototype){prototype={};}
prototype=desugar(prototype);var customCtor=prototype===prototype.constructor.prototype?prototype.constructor:null;var options={prototype:prototype};if(prototype.extends){options.extends=prototype.extends;}
Polymer.telemetry._registrate(prototype);var ctor=document.registerElement(prototype.is,options);return customCtor||ctor;};var desugar=function(prototype){var base=Polymer.Base;if(prototype.extends){base=Polymer.Base._getExtendedPrototype(prototype.extends);}
prototype=Polymer.Base.chainObject(prototype,base);prototype.registerCallback();return prototype;};if(userPolymer){for(var i in userPolymer){Polymer[i]=userPolymer[i];}}
Polymer.Class=function(prototype){if(!prototype.factoryImpl){prototype.factoryImpl=function(){};}
return desugar(prototype).constructor;};}());Polymer.telemetry={registrations:[],_regLog:function(prototype){console.log('['+prototype.is+']: registered');},_registrate:function(prototype){this.registrations.push(prototype);Polymer.log&&this._regLog(prototype);},dumpRegistrations:function(){this.registrations.forEach(this._regLog);}};Object.defineProperty(window,'currentImport',{enumerable:true,configurable:true,get:function(){return(document._currentScript||document.currentScript||{}).ownerDocument;}});Polymer.RenderStatus={_ready:false,_callbacks:[],whenReady:function(cb){if(this._ready){cb();}else{this._callbacks.push(cb);}},_makeReady:function(){this._ready=true;for(var i=0;i<this._callbacks.length;i++){this._callbacks[i]();}
this._callbacks=[];},_catchFirstRender:function(){requestAnimationFrame(function(){Polymer.RenderStatus._makeReady();});},_afterNextRenderQueue:[],_waitingNextRender:false,afterNextRender:function(element,fn,args){this._watchNextRender();this._afterNextRenderQueue.push([element,fn,args]);},hasRendered:function(){return this._ready;},_watchNextRender:function(){if(!this._waitingNextRender){this._waitingNextRender=true;var fn=function(){Polymer.RenderStatus._flushNextRender();};if(!this._ready){this.whenReady(fn);}else{requestAnimationFrame(fn);}}},_flushNextRender:function(){var self=this;setTimeout(function(){self._flushRenderCallbacks(self._afterNextRenderQueue);self._afterNextRenderQueue=[];self._waitingNextRender=false;});},_flushRenderCallbacks:function(callbacks){for(var i=0,h;i<callbacks.length;i++){h=callbacks[i];h[1].apply(h[0],h[2]||Polymer.nar);}}};if(window.HTMLImports){HTMLImports.whenReady(function(){Polymer.RenderStatus._catchFirstRender();});}else{Polymer.RenderStatus._catchFirstRender();}
Polymer.ImportStatus=Polymer.RenderStatus;Polymer.ImportStatus.whenLoaded=Polymer.ImportStatus.whenReady;(function(){'use strict';var settings=Polymer.Settings;Polymer.Base={__isPolymerInstance__:true,_addFeature:function(feature){this.mixin(this,feature);},registerCallback:function(){if(settings.lazyRegister==='max'){if(this.beforeRegister){this.beforeRegister();}}else{this._desugarBehaviors();for(var i=0,b;i<this.behaviors.length;i++){b=this.behaviors[i];if(b.beforeRegister){b.beforeRegister.call(this);}}
if(this.beforeRegister){this.beforeRegister();}}
this._registerFeatures();if(!settings.lazyRegister){this.ensureRegisterFinished();}},createdCallback:function(){if(settings.disableUpgradeEnabled){if(this.hasAttribute('disable-upgrade')){this._propertySetter=disableUpgradePropertySetter;this._configValue=null;this.__data__={};return;}else{this.__hasInitialized=true;}}
this.__initialize();},__initialize:function(){if(!this.__hasRegisterFinished){this._ensureRegisterFinished(this.__proto__);}
Polymer.telemetry.instanceCount++;this.root=this;for(var i=0,b;i<this.behaviors.length;i++){b=this.behaviors[i];if(b.created){b.created.call(this);}}
if(this.created){this.created();}
this._initFeatures();},ensureRegisterFinished:function(){this._ensureRegisterFinished(this);},_ensureRegisterFinished:function(proto){if(proto.__hasRegisterFinished!==proto.is||!proto.is){if(settings.lazyRegister==='max'){proto._desugarBehaviors();for(var i=0,b;i<proto.behaviors.length;i++){b=proto.behaviors[i];if(b.beforeRegister){b.beforeRegister.call(proto);}}}
proto.__hasRegisterFinished=proto.is;if(proto._finishRegisterFeatures){proto._finishRegisterFeatures();}
for(var j=0,pb;j<proto.behaviors.length;j++){pb=proto.behaviors[j];if(pb.registered){pb.registered.call(proto);}}
if(proto.registered){proto.registered();}
if(settings.usePolyfillProto&&proto!==this){proto.extend(this,proto);}}},attachedCallback:function(){var self=this;Polymer.RenderStatus.whenReady(function(){self.isAttached=true;for(var i=0,b;i<self.behaviors.length;i++){b=self.behaviors[i];if(b.attached){b.attached.call(self);}}
if(self.attached){self.attached();}});},detachedCallback:function(){var self=this;Polymer.RenderStatus.whenReady(function(){self.isAttached=false;for(var i=0,b;i<self.behaviors.length;i++){b=self.behaviors[i];if(b.detached){b.detached.call(self);}}
if(self.detached){self.detached();}});},attributeChangedCallback:function(name,oldValue,newValue){this._attributeChangedImpl(name);for(var i=0,b;i<this.behaviors.length;i++){b=this.behaviors[i];if(b.attributeChanged){b.attributeChanged.call(this,name,oldValue,newValue);}}
if(this.attributeChanged){this.attributeChanged(name,oldValue,newValue);}},_attributeChangedImpl:function(name){this._setAttributeToProperty(this,name);},extend:function(target,source){if(target&&source){var n$=Object.getOwnPropertyNames(source);for(var i=0,n;i<n$.length&&(n=n$[i]);i++){this.copyOwnProperty(n,source,target);}}
return target||source;},mixin:function(target,source){for(var i in source){target[i]=source[i];}
return target;},copyOwnProperty:function(name,source,target){var pd=Object.getOwnPropertyDescriptor(source,name);if(pd){Object.defineProperty(target,name,pd);}},_logger:function(level,args){if(args.length===1&&Array.isArray(args[0])){args=args[0];}
switch(level){case'log':case'warn':case'error':console[level].apply(console,args);break;}},_log:function(){var args=Array.prototype.slice.call(arguments,0);this._logger('log',args);},_warn:function(){var args=Array.prototype.slice.call(arguments,0);this._logger('warn',args);},_error:function(){var args=Array.prototype.slice.call(arguments,0);this._logger('error',args);},_logf:function(){return this._logPrefix.concat(this.is).concat(Array.prototype.slice.call(arguments,0));}};Polymer.Base._logPrefix=function(){var color=window.chrome&&!/edge/i.test(navigator.userAgent)||/firefox/i.test(navigator.userAgent);return color?['%c[%s::%s]:','font-weight: bold; background-color:#EEEE00;']:['[%s::%s]:'];}();Polymer.Base.chainObject=function(object,inherited){if(object&&inherited&&object!==inherited){if(!Object.__proto__){object=Polymer.Base.extend(Object.create(inherited),object);}
object.__proto__=inherited;}
return object;};Polymer.Base=Polymer.Base.chainObject(Polymer.Base,HTMLElement.prototype);Polymer.BaseDescriptors={};var disableUpgradePropertySetter;if(settings.disableUpgradeEnabled){disableUpgradePropertySetter=function(property,value){this.__data__[property]=value;};var origAttributeChangedCallback=Polymer.Base.attributeChangedCallback;Polymer.Base.attributeChangedCallback=function(name,oldValue,newValue){if(!this.__hasInitialized&&name==='disable-upgrade'){this.__hasInitialized=true;this._propertySetter=Polymer.Bind._modelApi._propertySetter;this._configValue=Polymer.Base._configValue;this.__initialize();}
origAttributeChangedCallback.call(this,name,oldValue,newValue);};}
if(window.CustomElements){Polymer.instanceof=CustomElements.instanceof;}else{Polymer.instanceof=function(obj,ctor){return obj instanceof ctor;};}
Polymer.isInstance=function(obj){return Boolean(obj&&obj.__isPolymerInstance__);};Polymer.telemetry.instanceCount=0;}());(function(){var modules={};var lcModules={};var findModule=function(id){return modules[id]||lcModules[id.toLowerCase()];};var DomModule=function(){return document.createElement('dom-module');};DomModule.prototype=Object.create(HTMLElement.prototype);Polymer.Base.mixin(DomModule.prototype,{createdCallback:function(){this.register();},register:function(id){id=id||this.id||this.getAttribute('name')||this.getAttribute('is');if(id){this.id=id;modules[id]=this;lcModules[id.toLowerCase()]=this;}},import:function(id,selector){if(id){var m=findModule(id);if(!m){forceDomModulesUpgrade();m=findModule(id);}
if(m&&selector){m=m.querySelector(selector);}
return m;}}});Object.defineProperty(DomModule.prototype,'constructor',{value:DomModule,configurable:true,writable:true});var cePolyfill=window.CustomElements&&!CustomElements.useNative;document.registerElement('dom-module',DomModule);function forceDomModulesUpgrade(){if(cePolyfill){var script=document._currentScript||document.currentScript;var doc=script&&script.ownerDocument||document;var modules=doc.querySelectorAll('dom-module');for(var i=modules.length-1,m;i>=0&&(m=modules[i]);i--){if(m.__upgraded__){return;}else{CustomElements.upgrade(m);}}}}}());Polymer.Base._addFeature({_prepIs:function(){if(!this.is){var module=(document._currentScript||document.currentScript).parentNode;if(module.localName==='dom-module'){var id=module.id||module.getAttribute('name')||module.getAttribute('is');this.is=id;}}
if(this.is){this.is=this.is.toLowerCase();}}});Polymer.Base._addFeature({behaviors:[],_desugarBehaviors:function(){if(this.behaviors.length){this.behaviors=this._desugarSomeBehaviors(this.behaviors);}},_desugarSomeBehaviors:function(behaviors){var behaviorSet=[];behaviors=this._flattenBehaviorsList(behaviors);for(var i=behaviors.length-1;i>=0;i--){var b=behaviors[i];if(behaviorSet.indexOf(b)===-1){this._mixinBehavior(b);behaviorSet.unshift(b);}}
return behaviorSet;},_flattenBehaviorsList:function(behaviors){var flat=[];for(var i=0;i<behaviors.length;i++){var b=behaviors[i];if(b instanceof Array){flat=flat.concat(this._flattenBehaviorsList(b));}else if(b){flat.push(b);}else{this._warn(this._logf('_flattenBehaviorsList','behavior is null, check for missing or 404 import'));}}
return flat;},_mixinBehavior:function(b){var n$=Object.getOwnPropertyNames(b);var useAssignment=b._noAccessors;for(var i=0,n;i<n$.length&&(n=n$[i]);i++){if(!Polymer.Base._behaviorProperties[n]&&!this.hasOwnProperty(n)){if(useAssignment){this[n]=b[n];}else{this.copyOwnProperty(n,b,this);}}}},_prepBehaviors:function(){this._prepFlattenedBehaviors(this.behaviors);},_prepFlattenedBehaviors:function(behaviors){for(var i=0,l=behaviors.length;i<l;i++){this._prepBehavior(behaviors[i]);}
this._prepBehavior(this);},_marshalBehaviors:function(){for(var i=0;i<this.behaviors.length;i++){this._marshalBehavior(this.behaviors[i]);}
this._marshalBehavior(this);}});Polymer.Base._behaviorProperties={hostAttributes:true,beforeRegister:true,registered:true,properties:true,observers:true,listeners:true,created:true,attached:true,detached:true,attributeChanged:true,ready:true,_noAccessors:true};Polymer.Base._addFeature({_getExtendedPrototype:function(tag){return this._getExtendedNativePrototype(tag);},_nativePrototypes:{},_getExtendedNativePrototype:function(tag){var p=this._nativePrototypes[tag];if(!p){p=Object.create(this.getNativePrototype(tag));var p$=Object.getOwnPropertyNames(Polymer.Base);for(var i=0,n;i<p$.length&&(n=p$[i]);i++){if(!Polymer.BaseDescriptors[n]){p[n]=Polymer.Base[n];}}
Object.defineProperties(p,Polymer.BaseDescriptors);this._nativePrototypes[tag]=p;}
return p;},getNativePrototype:function(tag){return Object.getPrototypeOf(document.createElement(tag));}});Polymer.Base._addFeature({_prepConstructor:function(){this._factoryArgs=this.extends?[this.extends,this.is]:[this.is];var ctor=function(){return this._factory(arguments);};if(this.hasOwnProperty('extends')){ctor.extends=this.extends;}
Object.defineProperty(this,'constructor',{value:ctor,writable:true,configurable:true});ctor.prototype=this;},_factory:function(args){var elt=document.createElement.apply(document,this._factoryArgs);if(this.factoryImpl){this.factoryImpl.apply(elt,args);}
return elt;}});Polymer.nob=Object.create(null);Polymer.Base._addFeature({getPropertyInfo:function(property){var info=this._getPropertyInfo(property,this.properties);if(!info){for(var i=0;i<this.behaviors.length;i++){info=this._getPropertyInfo(property,this.behaviors[i].properties);if(info){return info;}}}
return info||Polymer.nob;},_getPropertyInfo:function(property,properties){var p=properties&&properties[property];if(typeof p==='function'){p=properties[property]={type:p};}
if(p){p.defined=true;}
return p;},_prepPropertyInfo:function(){this._propertyInfo={};for(var i=0;i<this.behaviors.length;i++){this._addPropertyInfo(this._propertyInfo,this.behaviors[i].properties);}
this._addPropertyInfo(this._propertyInfo,this.properties);this._addPropertyInfo(this._propertyInfo,this._propertyEffects);},_addPropertyInfo:function(target,source){if(source){var t,s;for(var i in source){t=target[i];s=source[i];if(i[0]==='_'&&!s.readOnly){continue;}
if(!target[i]){target[i]={type:typeof s==='function'?s:s.type,readOnly:s.readOnly,attribute:Polymer.CaseMap.camelToDashCase(i)};}else{if(!t.type){t.type=s.type;}
if(!t.readOnly){t.readOnly=s.readOnly;}}}}}});(function(){var propertiesDesc={configurable:true,writable:true,enumerable:true,value:{}};Polymer.BaseDescriptors.properties=propertiesDesc;Object.defineProperty(Polymer.Base,'properties',propertiesDesc);}());Polymer.CaseMap={_caseMap:{},_rx:{dashToCamel:/-[a-z]/g,camelToDash:/([A-Z])/g},dashToCamelCase:function(dash){return this._caseMap[dash]||(this._caseMap[dash]=dash.indexOf('-')<0?dash:dash.replace(this._rx.dashToCamel,function(m){return m[1].toUpperCase();}));},camelToDashCase:function(camel){return this._caseMap[camel]||(this._caseMap[camel]=camel.replace(this._rx.camelToDash,'-$1').toLowerCase());}};Polymer.Base._addFeature({_addHostAttributes:function(attributes){if(!this._aggregatedAttributes){this._aggregatedAttributes={};}
if(attributes){this.mixin(this._aggregatedAttributes,attributes);}},_marshalHostAttributes:function(){if(this._aggregatedAttributes){this._applyAttributes(this,this._aggregatedAttributes);}},_applyAttributes:function(node,attr$){for(var n in attr$){if(!this.hasAttribute(n)&&n!=='class'){var v=attr$[n];this.serializeValueToAttribute(v,n,this);}}},_marshalAttributes:function(){this._takeAttributesToModel(this);},_takeAttributesToModel:function(model){if(this.hasAttributes()){for(var i in this._propertyInfo){var info=this._propertyInfo[i];if(this.hasAttribute(info.attribute)){this._setAttributeToProperty(model,info.attribute,i,info);}}}},_setAttributeToProperty:function(model,attribute,property,info){if(!this._serializing){property=property||Polymer.CaseMap.dashToCamelCase(attribute);info=info||this._propertyInfo&&this._propertyInfo[property];if(info&&!info.readOnly){var v=this.getAttribute(attribute);model[property]=this.deserialize(v,info.type);}}},_serializing:false,reflectPropertyToAttribute:function(property,attribute,value){this._serializing=true;value=value===undefined?this[property]:value;this.serializeValueToAttribute(value,attribute||Polymer.CaseMap.camelToDashCase(property));this._serializing=false;},serializeValueToAttribute:function(value,attribute,node){var str=this.serialize(value);node=node||this;if(str===undefined){node.removeAttribute(attribute);}else{node.setAttribute(attribute,str);}},deserialize:function(value,type){switch(type){case Number:value=Number(value);break;case Boolean:value=value!=null;break;case Object:try{value=JSON.parse(value);}catch(x){}
break;case Array:try{value=JSON.parse(value);}catch(x){value=null;console.warn('Polymer::Attributes: couldn`t decode Array as JSON');}
break;case Date:value=new Date(value);break;case String:default:break;}
return value;},serialize:function(value){switch(typeof value){case'boolean':return value?'':undefined;case'object':if(value instanceof Date){return value.toString();}else if(value){try{return JSON.stringify(value);}catch(x){return'';}}
default:return value!=null?value:undefined;}}});Polymer.version="1.8.1";Polymer.Base._addFeature({_registerFeatures:function(){this._prepIs();this._prepBehaviors();this._prepConstructor();this._prepPropertyInfo();},_prepBehavior:function(b){this._addHostAttributes(b.hostAttributes);},_marshalBehavior:function(b){},_initFeatures:function(){this._marshalHostAttributes();this._marshalBehaviors();}});Polymer.Base._addFeature({_prepTemplate:function(){if(this._template===undefined){this._template=Polymer.DomModule.import(this.is,'template');}
if(this._template&&this._template.hasAttribute('is')){this._warn(this._logf('_prepTemplate','top-level Polymer template '+'must not be a type-extension, found',this._template,'Move inside simple <template>.'));}
if(this._template&&!this._template.content&&window.HTMLTemplateElement&&HTMLTemplateElement.decorate){HTMLTemplateElement.decorate(this._template);}},_stampTemplate:function(){if(this._template){this.root=this.instanceTemplate(this._template);}},instanceTemplate:function(template){var dom=document.importNode(template._content||template.content,true);return dom;}});(function(){var baseAttachedCallback=Polymer.Base.attachedCallback;Polymer.Base._addFeature({_hostStack:[],ready:function(){},_registerHost:function(host){this.dataHost=host=host||Polymer.Base._hostStack[Polymer.Base._hostStack.length-1];if(host&&host._clients){host._clients.push(this);}
this._clients=null;this._clientsReadied=false;},_beginHosting:function(){Polymer.Base._hostStack.push(this);if(!this._clients){this._clients=[];}},_endHosting:function(){Polymer.Base._hostStack.pop();},_tryReady:function(){this._readied=false;if(this._canReady()){this._ready();}},_canReady:function(){return!this.dataHost||this.dataHost._clientsReadied;},_ready:function(){this._beforeClientsReady();if(this._template){this._setupRoot();this._readyClients();}
this._clientsReadied=true;this._clients=null;this._afterClientsReady();this._readySelf();},_readyClients:function(){this._beginDistribute();var c$=this._clients;if(c$){for(var i=0,l=c$.length,c;i<l&&(c=c$[i]);i++){c._ready();}}
this._finishDistribute();},_readySelf:function(){for(var i=0,b;i<this.behaviors.length;i++){b=this.behaviors[i];if(b.ready){b.ready.call(this);}}
if(this.ready){this.ready();}
this._readied=true;if(this._attachedPending){this._attachedPending=false;this.attachedCallback();}},_beforeClientsReady:function(){},_afterClientsReady:function(){},_beforeAttached:function(){},attachedCallback:function(){if(this._readied){this._beforeAttached();baseAttachedCallback.call(this);}else{this._attachedPending=true;}}});}());Polymer.ArraySplice=function(){function newSplice(index,removed,addedCount){return{index:index,removed:removed,addedCount:addedCount};}
var EDIT_LEAVE=0;var EDIT_UPDATE=1;var EDIT_ADD=2;var EDIT_DELETE=3;function ArraySplice(){}
ArraySplice.prototype={calcEditDistances:function(current,currentStart,currentEnd,old,oldStart,oldEnd){var rowCount=oldEnd-oldStart+1;var columnCount=currentEnd-currentStart+1;var distances=new Array(rowCount);for(var i=0;i<rowCount;i++){distances[i]=new Array(columnCount);distances[i][0]=i;}
for(var j=0;j<columnCount;j++)
distances[0][j]=j;for(i=1;i<rowCount;i++){for(j=1;j<columnCount;j++){if(this.equals(current[currentStart+j-1],old[oldStart+i-1]))
distances[i][j]=distances[i-1][j-1];else{var north=distances[i-1][j]+1;var west=distances[i][j-1]+1;distances[i][j]=north<west?north:west;}}}
return distances;},spliceOperationsFromEditDistances:function(distances){var i=distances.length-1;var j=distances[0].length-1;var current=distances[i][j];var edits=[];while(i>0||j>0){if(i==0){edits.push(EDIT_ADD);j--;continue;}
if(j==0){edits.push(EDIT_DELETE);i--;continue;}
var northWest=distances[i-1][j-1];var west=distances[i-1][j];var north=distances[i][j-1];var min;if(west<north)
min=west<northWest?west:northWest;else
min=north<northWest?north:northWest;if(min==northWest){if(northWest==current){edits.push(EDIT_LEAVE);}else{edits.push(EDIT_UPDATE);current=northWest;}
i--;j--;}else if(min==west){edits.push(EDIT_DELETE);i--;current=west;}else{edits.push(EDIT_ADD);j--;current=north;}}
edits.reverse();return edits;},calcSplices:function(current,currentStart,currentEnd,old,oldStart,oldEnd){var prefixCount=0;var suffixCount=0;var minLength=Math.min(currentEnd-currentStart,oldEnd-oldStart);if(currentStart==0&&oldStart==0)
prefixCount=this.sharedPrefix(current,old,minLength);if(currentEnd==current.length&&oldEnd==old.length)
suffixCount=this.sharedSuffix(current,old,minLength-prefixCount);currentStart+=prefixCount;oldStart+=prefixCount;currentEnd-=suffixCount;oldEnd-=suffixCount;if(currentEnd-currentStart==0&&oldEnd-oldStart==0)
return[];if(currentStart==currentEnd){var splice=newSplice(currentStart,[],0);while(oldStart<oldEnd)
splice.removed.push(old[oldStart++]);return[splice];}else if(oldStart==oldEnd)
return[newSplice(currentStart,[],currentEnd-currentStart)];var ops=this.spliceOperationsFromEditDistances(this.calcEditDistances(current,currentStart,currentEnd,old,oldStart,oldEnd));splice=undefined;var splices=[];var index=currentStart;var oldIndex=oldStart;for(var i=0;i<ops.length;i++){switch(ops[i]){case EDIT_LEAVE:if(splice){splices.push(splice);splice=undefined;}
index++;oldIndex++;break;case EDIT_UPDATE:if(!splice)
splice=newSplice(index,[],0);splice.addedCount++;index++;splice.removed.push(old[oldIndex]);oldIndex++;break;case EDIT_ADD:if(!splice)
splice=newSplice(index,[],0);splice.addedCount++;index++;break;case EDIT_DELETE:if(!splice)
splice=newSplice(index,[],0);splice.removed.push(old[oldIndex]);oldIndex++;break;}}
if(splice){splices.push(splice);}
return splices;},sharedPrefix:function(current,old,searchLength){for(var i=0;i<searchLength;i++)
if(!this.equals(current[i],old[i]))
return i;return searchLength;},sharedSuffix:function(current,old,searchLength){var index1=current.length;var index2=old.length;var count=0;while(count<searchLength&&this.equals(current[--index1],old[--index2]))
count++;return count;},calculateSplices:function(current,previous){return this.calcSplices(current,0,current.length,previous,0,previous.length);},equals:function(currentValue,previousValue){return currentValue===previousValue;}};return new ArraySplice();}();Polymer.domInnerHTML=function(){var escapeAttrRegExp=/[&\u00A0"]/g;var escapeDataRegExp=/[&\u00A0<>]/g;function escapeReplace(c){switch(c){case'&':return'&';case'<':return'<';case'>':return'>';case'"':return'"';case'\xA0':return' ';}}
function escapeAttr(s){return s.replace(escapeAttrRegExp,escapeReplace);}
function escapeData(s){return s.replace(escapeDataRegExp,escapeReplace);}
function makeSet(arr){var set={};for(var i=0;i<arr.length;i++){set[arr[i]]=true;}
return set;}
var voidElements=makeSet(['area','base','br','col','command','embed','hr','img','input','keygen','link','meta','param','source','track','wbr']);var plaintextParents=makeSet(['style','script','xmp','iframe','noembed','noframes','plaintext','noscript']);function getOuterHTML(node,parentNode,composed){switch(node.nodeType){case Node.ELEMENT_NODE:var tagName=node.localName;var s='<'+tagName;var attrs=node.attributes;for(var i=0,attr;attr=attrs[i];i++){s+=' '+attr.name+'="'+escapeAttr(attr.value)+'"';}
s+='>';if(voidElements[tagName]){return s;}
return s+getInnerHTML(node,composed)+'</'+tagName+'>';case Node.TEXT_NODE:var data=node.data;if(parentNode&&plaintextParents[parentNode.localName]){return data;}
return escapeData(data);case Node.COMMENT_NODE:return'<!--'+node.data+'-->';default:console.error(node);throw new Error('not implemented');}}
function getInnerHTML(node,composed){if(node instanceof HTMLTemplateElement)
node=node.content;var s='';var c$=Polymer.dom(node).childNodes;for(var i=0,l=c$.length,child;i<l&&(child=c$[i]);i++){s+=getOuterHTML(child,node,composed);}
return s;}
return{getInnerHTML:getInnerHTML};}();(function(){'use strict';var nativeInsertBefore=Element.prototype.insertBefore;var nativeAppendChild=Element.prototype.appendChild;var nativeRemoveChild=Element.prototype.removeChild;Polymer.TreeApi={arrayCopyChildNodes:function(parent){var copy=[],i=0;for(var n=parent.firstChild;n;n=n.nextSibling){copy[i++]=n;}
return copy;},arrayCopyChildren:function(parent){var copy=[],i=0;for(var n=parent.firstElementChild;n;n=n.nextElementSibling){copy[i++]=n;}
return copy;},arrayCopy:function(a$){var l=a$.length;var copy=new Array(l);for(var i=0;i<l;i++){copy[i]=a$[i];}
return copy;}};Polymer.TreeApi.Logical={hasParentNode:function(node){return Boolean(node.__dom&&node.__dom.parentNode);},hasChildNodes:function(node){return Boolean(node.__dom&&node.__dom.childNodes!==undefined);},getChildNodes:function(node){return this.hasChildNodes(node)?this._getChildNodes(node):node.childNodes;},_getChildNodes:function(node){if(!node.__dom.childNodes){node.__dom.childNodes=[];for(var n=node.__dom.firstChild;n;n=n.__dom.nextSibling){node.__dom.childNodes.push(n);}}
return node.__dom.childNodes;},getParentNode:function(node){return node.__dom&&node.__dom.parentNode!==undefined?node.__dom.parentNode:node.parentNode;},getFirstChild:function(node){return node.__dom&&node.__dom.firstChild!==undefined?node.__dom.firstChild:node.firstChild;},getLastChild:function(node){return node.__dom&&node.__dom.lastChild!==undefined?node.__dom.lastChild:node.lastChild;},getNextSibling:function(node){return node.__dom&&node.__dom.nextSibling!==undefined?node.__dom.nextSibling:node.nextSibling;},getPreviousSibling:function(node){return node.__dom&&node.__dom.previousSibling!==undefined?node.__dom.previousSibling:node.previousSibling;},getFirstElementChild:function(node){return node.__dom&&node.__dom.firstChild!==undefined?this._getFirstElementChild(node):node.firstElementChild;},_getFirstElementChild:function(node){var n=node.__dom.firstChild;while(n&&n.nodeType!==Node.ELEMENT_NODE){n=n.__dom.nextSibling;}
return n;},getLastElementChild:function(node){return node.__dom&&node.__dom.lastChild!==undefined?this._getLastElementChild(node):node.lastElementChild;},_getLastElementChild:function(node){var n=node.__dom.lastChild;while(n&&n.nodeType!==Node.ELEMENT_NODE){n=n.__dom.previousSibling;}
return n;},getNextElementSibling:function(node){return node.__dom&&node.__dom.nextSibling!==undefined?this._getNextElementSibling(node):node.nextElementSibling;},_getNextElementSibling:function(node){var n=node.__dom.nextSibling;while(n&&n.nodeType!==Node.ELEMENT_NODE){n=n.__dom.nextSibling;}
return n;},getPreviousElementSibling:function(node){return node.__dom&&node.__dom.previousSibling!==undefined?this._getPreviousElementSibling(node):node.previousElementSibling;},_getPreviousElementSibling:function(node){var n=node.__dom.previousSibling;while(n&&n.nodeType!==Node.ELEMENT_NODE){n=n.__dom.previousSibling;}
return n;},saveChildNodes:function(node){if(!this.hasChildNodes(node)){node.__dom=node.__dom||{};node.__dom.firstChild=node.firstChild;node.__dom.lastChild=node.lastChild;node.__dom.childNodes=[];for(var n=node.firstChild;n;n=n.nextSibling){n.__dom=n.__dom||{};n.__dom.parentNode=node;node.__dom.childNodes.push(n);n.__dom.nextSibling=n.nextSibling;n.__dom.previousSibling=n.previousSibling;}}},recordInsertBefore:function(node,container,ref_node){container.__dom.childNodes=null;if(node.nodeType===Node.DOCUMENT_FRAGMENT_NODE){for(var n=node.firstChild;n;n=n.nextSibling){this._linkNode(n,container,ref_node);}}else{this._linkNode(node,container,ref_node);}},_linkNode:function(node,container,ref_node){node.__dom=node.__dom||{};container.__dom=container.__dom||{};if(ref_node){ref_node.__dom=ref_node.__dom||{};}
node.__dom.previousSibling=ref_node?ref_node.__dom.previousSibling:container.__dom.lastChild;if(node.__dom.previousSibling){node.__dom.previousSibling.__dom.nextSibling=node;}
node.__dom.nextSibling=ref_node||null;if(node.__dom.nextSibling){node.__dom.nextSibling.__dom.previousSibling=node;}
node.__dom.parentNode=container;if(ref_node){if(ref_node===container.__dom.firstChild){container.__dom.firstChild=node;}}else{container.__dom.lastChild=node;if(!container.__dom.firstChild){container.__dom.firstChild=node;}}
container.__dom.childNodes=null;},recordRemoveChild:function(node,container){node.__dom=node.__dom||{};container.__dom=container.__dom||{};if(node===container.__dom.firstChild){container.__dom.firstChild=node.__dom.nextSibling;}
if(node===container.__dom.lastChild){container.__dom.lastChild=node.__dom.previousSibling;}
var p=node.__dom.previousSibling;var n=node.__dom.nextSibling;if(p){p.__dom.nextSibling=n;}
if(n){n.__dom.previousSibling=p;}
node.__dom.parentNode=node.__dom.previousSibling=node.__dom.nextSibling=undefined;container.__dom.childNodes=null;}};Polymer.TreeApi.Composed={getChildNodes:function(node){return Polymer.TreeApi.arrayCopyChildNodes(node);},getParentNode:function(node){return node.parentNode;},clearChildNodes:function(node){node.textContent='';},insertBefore:function(parentNode,newChild,refChild){return nativeInsertBefore.call(parentNode,newChild,refChild||null);},appendChild:function(parentNode,newChild){return nativeAppendChild.call(parentNode,newChild);},removeChild:function(parentNode,node){return nativeRemoveChild.call(parentNode,node);}};}());Polymer.DomApi=function(){'use strict';var Settings=Polymer.Settings;var TreeApi=Polymer.TreeApi;var DomApi=function(node){this.node=needsToWrap?DomApi.wrap(node):node;};var needsToWrap=Settings.hasShadow&&!Settings.nativeShadow;DomApi.wrap=window.wrap?window.wrap:function(node){return node;};DomApi.prototype={flush:function(){Polymer.dom.flush();},deepContains:function(node){if(this.node.contains(node)){return true;}
var n=node;var doc=node.ownerDocument;while(n&&n!==doc&&n!==this.node){n=Polymer.dom(n).parentNode||n.host;}
return n===this.node;},queryDistributedElements:function(selector){var c$=this.getEffectiveChildNodes();var list=[];for(var i=0,l=c$.length,c;i<l&&(c=c$[i]);i++){if(c.nodeType===Node.ELEMENT_NODE&&DomApi.matchesSelector.call(c,selector)){list.push(c);}}
return list;},getEffectiveChildNodes:function(){var list=[];var c$=this.childNodes;for(var i=0,l=c$.length,c;i<l&&(c=c$[i]);i++){if(c.localName===CONTENT){var d$=dom(c).getDistributedNodes();for(var j=0;j<d$.length;j++){list.push(d$[j]);}}else{list.push(c);}}
return list;},observeNodes:function(callback){if(callback){if(!this.observer){this.observer=this.node.localName===CONTENT?new DomApi.DistributedNodesObserver(this):new DomApi.EffectiveNodesObserver(this);}
return this.observer.addListener(callback);}},unobserveNodes:function(handle){if(this.observer){this.observer.removeListener(handle);}},notifyObserver:function(){if(this.observer){this.observer.notify();}},_query:function(matcher,node,halter){node=node||this.node;var list=[];this._queryElements(TreeApi.Logical.getChildNodes(node),matcher,halter,list);return list;},_queryElements:function(elements,matcher,halter,list){for(var i=0,l=elements.length,c;i<l&&(c=elements[i]);i++){if(c.nodeType===Node.ELEMENT_NODE){if(this._queryElement(c,matcher,halter,list)){return true;}}}},_queryElement:function(node,matcher,halter,list){var result=matcher(node);if(result){list.push(node);}
if(halter&&halter(result)){return result;}
this._queryElements(TreeApi.Logical.getChildNodes(node),matcher,halter,list);}};var CONTENT=DomApi.CONTENT='content';var dom=DomApi.factory=function(node){node=node||document;if(!node.__domApi){node.__domApi=new DomApi.ctor(node);}
return node.__domApi;};DomApi.hasApi=function(node){return Boolean(node.__domApi);};DomApi.ctor=DomApi;Polymer.dom=function(obj,patch){if(obj instanceof Event){return Polymer.EventApi.factory(obj);}else{return DomApi.factory(obj,patch);}};var p=Element.prototype;DomApi.matchesSelector=p.matches||p.matchesSelector||p.mozMatchesSelector||p.msMatchesSelector||p.oMatchesSelector||p.webkitMatchesSelector;return DomApi;}();(function(){'use strict';var Settings=Polymer.Settings;var DomApi=Polymer.DomApi;var dom=DomApi.factory;var TreeApi=Polymer.TreeApi;var getInnerHTML=Polymer.domInnerHTML.getInnerHTML;var CONTENT=DomApi.CONTENT;if(Settings.useShadow){return;}
var nativeCloneNode=Element.prototype.cloneNode;var nativeImportNode=Document.prototype.importNode;Polymer.Base.mixin(DomApi.prototype,{_lazyDistribute:function(host){if(host.shadyRoot&&host.shadyRoot._distributionClean){host.shadyRoot._distributionClean=false;Polymer.dom.addDebouncer(host.debounce('_distribute',host._distributeContent));}},appendChild:function(node){return this.insertBefore(node);},insertBefore:function(node,ref_node){if(ref_node&&TreeApi.Logical.getParentNode(ref_node)!==this.node){throw Error('The ref_node to be inserted before is not a child '+'of this node');}
if(node.nodeType!==Node.DOCUMENT_FRAGMENT_NODE){var parent=TreeApi.Logical.getParentNode(node);if(parent){if(DomApi.hasApi(parent)){dom(parent).notifyObserver();}
this._removeNode(node);}else{this._removeOwnerShadyRoot(node);}}
if(!this._addNode(node,ref_node)){if(ref_node){ref_node=ref_node.localName===CONTENT?this._firstComposedNode(ref_node):ref_node;}
var container=this.node._isShadyRoot?this.node.host:this.node;if(ref_node){TreeApi.Composed.insertBefore(container,node,ref_node);}else{TreeApi.Composed.appendChild(container,node);}}
this.notifyObserver();return node;},_addNode:function(node,ref_node){var root=this.getOwnerRoot();if(root){var ipAdded=this._maybeAddInsertionPoint(node,this.node);if(!root._invalidInsertionPoints){root._invalidInsertionPoints=ipAdded;}
this._addNodeToHost(root.host,node);}
if(TreeApi.Logical.hasChildNodes(this.node)){TreeApi.Logical.recordInsertBefore(node,this.node,ref_node);}
var handled=this._maybeDistribute(node)||this.node.shadyRoot;if(handled){if(node.nodeType===Node.DOCUMENT_FRAGMENT_NODE){while(node.firstChild){TreeApi.Composed.removeChild(node,node.firstChild);}}else{var parent=TreeApi.Composed.getParentNode(node);if(parent){TreeApi.Composed.removeChild(parent,node);}}}
return handled;},removeChild:function(node){if(TreeApi.Logical.getParentNode(node)!==this.node){throw Error('The node to be removed is not a child of this node: '+node);}
if(!this._removeNode(node)){var container=this.node._isShadyRoot?this.node.host:this.node;var parent=TreeApi.Composed.getParentNode(node);if(container===parent){TreeApi.Composed.removeChild(container,node);}}
this.notifyObserver();return node;},_removeNode:function(node){var logicalParent=TreeApi.Logical.hasParentNode(node)&&TreeApi.Logical.getParentNode(node);var distributed;var root=this._ownerShadyRootForNode(node);if(logicalParent){distributed=dom(node)._maybeDistributeParent();TreeApi.Logical.recordRemoveChild(node,logicalParent);if(root&&this._removeDistributedChildren(root,node)){root._invalidInsertionPoints=true;this._lazyDistribute(root.host);}}
this._removeOwnerShadyRoot(node);if(root){this._removeNodeFromHost(root.host,node);}
return distributed;},replaceChild:function(node,ref_node){this.insertBefore(node,ref_node);this.removeChild(ref_node);return node;},_hasCachedOwnerRoot:function(node){return Boolean(node._ownerShadyRoot!==undefined);},getOwnerRoot:function(){return this._ownerShadyRootForNode(this.node);},_ownerShadyRootForNode:function(node){if(!node){return;}
var root=node._ownerShadyRoot;if(root===undefined){if(node._isShadyRoot){root=node;}else{var parent=TreeApi.Logical.getParentNode(node);if(parent){root=parent._isShadyRoot?parent:this._ownerShadyRootForNode(parent);}else{root=null;}}
if(root||document.documentElement.contains(node)){node._ownerShadyRoot=root;}}
return root;},_maybeDistribute:function(node){var fragContent=node.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&!node.__noContent&&dom(node).querySelector(CONTENT);var wrappedContent=fragContent&&TreeApi.Logical.getParentNode(fragContent).nodeType!==Node.DOCUMENT_FRAGMENT_NODE;var hasContent=fragContent||node.localName===CONTENT;if(hasContent){var root=this.getOwnerRoot();if(root){this._lazyDistribute(root.host);}}
var needsDist=this._nodeNeedsDistribution(this.node);if(needsDist){this._lazyDistribute(this.node);}
return needsDist||hasContent&&!wrappedContent;},_maybeAddInsertionPoint:function(node,parent){var added;if(node.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&!node.__noContent){var c$=dom(node).querySelectorAll(CONTENT);for(var i=0,n,np,na;i<c$.length&&(n=c$[i]);i++){np=TreeApi.Logical.getParentNode(n);if(np===node){np=parent;}
na=this._maybeAddInsertionPoint(n,np);added=added||na;}}else if(node.localName===CONTENT){TreeApi.Logical.saveChildNodes(parent);TreeApi.Logical.saveChildNodes(node);added=true;}
return added;},_updateInsertionPoints:function(host){var i$=host.shadyRoot._insertionPoints=dom(host.shadyRoot).querySelectorAll(CONTENT);for(var i=0,c;i<i$.length;i++){c=i$[i];TreeApi.Logical.saveChildNodes(c);TreeApi.Logical.saveChildNodes(TreeApi.Logical.getParentNode(c));}},_nodeNeedsDistribution:function(node){return node&&node.shadyRoot&&DomApi.hasInsertionPoint(node.shadyRoot);},_addNodeToHost:function(host,node){if(host._elementAdd){host._elementAdd(node);}},_removeNodeFromHost:function(host,node){if(host._elementRemove){host._elementRemove(node);}},_removeDistributedChildren:function(root,container){var hostNeedsDist;var ip$=root._insertionPoints;for(var i=0;i<ip$.length;i++){var content=ip$[i];if(this._contains(container,content)){var dc$=dom(content).getDistributedNodes();for(var j=0;j<dc$.length;j++){hostNeedsDist=true;var node=dc$[j];var parent=TreeApi.Composed.getParentNode(node);if(parent){TreeApi.Composed.removeChild(parent,node);}}}}
return hostNeedsDist;},_contains:function(container,node){while(node){if(node==container){return true;}
node=TreeApi.Logical.getParentNode(node);}},_removeOwnerShadyRoot:function(node){if(this._hasCachedOwnerRoot(node)){var c$=TreeApi.Logical.getChildNodes(node);for(var i=0,l=c$.length,n;i<l&&(n=c$[i]);i++){this._removeOwnerShadyRoot(n);}}
node._ownerShadyRoot=undefined;},_firstComposedNode:function(content){var n$=dom(content).getDistributedNodes();for(var i=0,l=n$.length,n,p$;i<l&&(n=n$[i]);i++){p$=dom(n).getDestinationInsertionPoints();if(p$[p$.length-1]===content){return n;}}},querySelector:function(selector){var result=this._query(function(n){return DomApi.matchesSelector.call(n,selector);},this.node,function(n){return Boolean(n);})[0];return result||null;},querySelectorAll:function(selector){return this._query(function(n){return DomApi.matchesSelector.call(n,selector);},this.node);},getDestinationInsertionPoints:function(){return this.node._destinationInsertionPoints||[];},getDistributedNodes:function(){return this.node._distributedNodes||[];},_clear:function(){while(this.childNodes.length){this.removeChild(this.childNodes[0]);}},setAttribute:function(name,value){this.node.setAttribute(name,value);this._maybeDistributeParent();},removeAttribute:function(name){this.node.removeAttribute(name);this._maybeDistributeParent();},_maybeDistributeParent:function(){if(this._nodeNeedsDistribution(this.parentNode)){this._lazyDistribute(this.parentNode);return true;}},cloneNode:function(deep){var n=nativeCloneNode.call(this.node,false);if(deep){var c$=this.childNodes;var d=dom(n);for(var i=0,nc;i<c$.length;i++){nc=dom(c$[i]).cloneNode(true);d.appendChild(nc);}}
return n;},importNode:function(externalNode,deep){var doc=this.node instanceof Document?this.node:this.node.ownerDocument;var n=nativeImportNode.call(doc,externalNode,false);if(deep){var c$=TreeApi.Logical.getChildNodes(externalNode);var d=dom(n);for(var i=0,nc;i<c$.length;i++){nc=dom(doc).importNode(c$[i],true);d.appendChild(nc);}}
return n;},_getComposedInnerHTML:function(){return getInnerHTML(this.node,true);}});Object.defineProperties(DomApi.prototype,{activeElement:{get:function(){var active=document.activeElement;if(!active){return null;}
var isShadyRoot=!!this.node._isShadyRoot;if(this.node!==document){if(!isShadyRoot){return null;}
if(this.node.host===active||!this.node.host.contains(active)){return null;}}
var activeRoot=dom(active).getOwnerRoot();while(activeRoot&&activeRoot!==this.node){active=activeRoot.host;activeRoot=dom(active).getOwnerRoot();}
if(this.node===document){return activeRoot?null:active;}else{return activeRoot===this.node?active:null;}},configurable:true},childNodes:{get:function(){var c$=TreeApi.Logical.getChildNodes(this.node);return Array.isArray(c$)?c$:TreeApi.arrayCopyChildNodes(this.node);},configurable:true},children:{get:function(){if(TreeApi.Logical.hasChildNodes(this.node)){return Array.prototype.filter.call(this.childNodes,function(n){return n.nodeType===Node.ELEMENT_NODE;});}else{return TreeApi.arrayCopyChildren(this.node);}},configurable:true},parentNode:{get:function(){return TreeApi.Logical.getParentNode(this.node);},configurable:true},firstChild:{get:function(){return TreeApi.Logical.getFirstChild(this.node);},configurable:true},lastChild:{get:function(){return TreeApi.Logical.getLastChild(this.node);},configurable:true},nextSibling:{get:function(){return TreeApi.Logical.getNextSibling(this.node);},configurable:true},previousSibling:{get:function(){return TreeApi.Logical.getPreviousSibling(this.node);},configurable:true},firstElementChild:{get:function(){return TreeApi.Logical.getFirstElementChild(this.node);},configurable:true},lastElementChild:{get:function(){return TreeApi.Logical.getLastElementChild(this.node);},configurable:true},nextElementSibling:{get:function(){return TreeApi.Logical.getNextElementSibling(this.node);},configurable:true},previousElementSibling:{get:function(){return TreeApi.Logical.getPreviousElementSibling(this.node);},configurable:true},textContent:{get:function(){var nt=this.node.nodeType;if(nt===Node.TEXT_NODE||nt===Node.COMMENT_NODE){return this.node.textContent;}else{var tc=[];for(var i=0,cn=this.childNodes,c;c=cn[i];i++){if(c.nodeType!==Node.COMMENT_NODE){tc.push(c.textContent);}}
return tc.join('');}},set:function(text){var nt=this.node.nodeType;if(nt===Node.TEXT_NODE||nt===Node.COMMENT_NODE){this.node.textContent=text;}else{this._clear();if(text){this.appendChild(document.createTextNode(text));}}},configurable:true},innerHTML:{get:function(){var nt=this.node.nodeType;if(nt===Node.TEXT_NODE||nt===Node.COMMENT_NODE){return null;}else{return getInnerHTML(this.node);}},set:function(text){var nt=this.node.nodeType;if(nt!==Node.TEXT_NODE||nt!==Node.COMMENT_NODE){this._clear();var d=document.createElement('div');d.innerHTML=text;var c$=TreeApi.arrayCopyChildNodes(d);for(var i=0;i<c$.length;i++){this.appendChild(c$[i]);}}},configurable:true}});DomApi.hasInsertionPoint=function(root){return Boolean(root&&root._insertionPoints.length);};}());(function(){'use strict';var Settings=Polymer.Settings;var TreeApi=Polymer.TreeApi;var DomApi=Polymer.DomApi;if(!Settings.useShadow){return;}
Polymer.Base.mixin(DomApi.prototype,{querySelectorAll:function(selector){return TreeApi.arrayCopy(this.node.querySelectorAll(selector));},getOwnerRoot:function(){var n=this.node;while(n){if(n.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&n.host){return n;}
n=n.parentNode;}},importNode:function(externalNode,deep){var doc=this.node instanceof Document?this.node:this.node.ownerDocument;return doc.importNode(externalNode,deep);},getDestinationInsertionPoints:function(){var n$=this.node.getDestinationInsertionPoints&&this.node.getDestinationInsertionPoints();return n$?TreeApi.arrayCopy(n$):[];},getDistributedNodes:function(){var n$=this.node.getDistributedNodes&&this.node.getDistributedNodes();return n$?TreeApi.arrayCopy(n$):[];}});Object.defineProperties(DomApi.prototype,{activeElement:{get:function(){var node=DomApi.wrap(this.node);var activeElement=node.activeElement;return node.contains(activeElement)?activeElement:null;},configurable:true},childNodes:{get:function(){return TreeApi.arrayCopyChildNodes(this.node);},configurable:true},children:{get:function(){return TreeApi.arrayCopyChildren(this.node);},configurable:true},textContent:{get:function(){return this.node.textContent;},set:function(value){return this.node.textContent=value;},configurable:true},innerHTML:{get:function(){return this.node.innerHTML;},set:function(value){return this.node.innerHTML=value;},configurable:true}});var forwardMethods=function(m$){for(var i=0;i<m$.length;i++){forwardMethod(m$[i]);}};var forwardMethod=function(method){DomApi.prototype[method]=function(){return this.node[method].apply(this.node,arguments);};};forwardMethods(['cloneNode','appendChild','insertBefore','removeChild','replaceChild','setAttribute','removeAttribute','querySelector']);var forwardProperties=function(f$){for(var i=0;i<f$.length;i++){forwardProperty(f$[i]);}};var forwardProperty=function(name){Object.defineProperty(DomApi.prototype,name,{get:function(){return this.node[name];},configurable:true});};forwardProperties(['parentNode','firstChild','lastChild','nextSibling','previousSibling','firstElementChild','lastElementChild','nextElementSibling','previousElementSibling']);}());Polymer.Base.mixin(Polymer.dom,{_flushGuard:0,_FLUSH_MAX:100,_needsTakeRecords:!Polymer.Settings.useNativeCustomElements,_debouncers:[],_staticFlushList:[],_finishDebouncer:null,flush:function(){this._flushGuard=0;this._prepareFlush();while(this._debouncers.length&&this._flushGuard<this._FLUSH_MAX){while(this._debouncers.length){this._debouncers.shift().complete();}
if(this._finishDebouncer){this._finishDebouncer.complete();}
this._prepareFlush();this._flushGuard++;}
if(this._flushGuard>=this._FLUSH_MAX){console.warn('Polymer.dom.flush aborted. Flush may not be complete.');}},_prepareFlush:function(){if(this._needsTakeRecords){CustomElements.takeRecords();}
for(var i=0;i<this._staticFlushList.length;i++){this._staticFlushList[i]();}},addStaticFlush:function(fn){this._staticFlushList.push(fn);},removeStaticFlush:function(fn){var i=this._staticFlushList.indexOf(fn);if(i>=0){this._staticFlushList.splice(i,1);}},addDebouncer:function(debouncer){this._debouncers.push(debouncer);this._finishDebouncer=Polymer.Debounce(this._finishDebouncer,this._finishFlush);},_finishFlush:function(){Polymer.dom._debouncers=[];}});Polymer.EventApi=function(){'use strict';var DomApi=Polymer.DomApi.ctor;var Settings=Polymer.Settings;DomApi.Event=function(event){this.event=event;};if(Settings.useShadow){DomApi.Event.prototype={get rootTarget(){return this.event.path[0];},get localTarget(){return this.event.target;},get path(){var path=this.event.path;if(!Array.isArray(path)){path=Array.prototype.slice.call(path);}
return path;}};}else{DomApi.Event.prototype={get rootTarget(){return this.event.target;},get localTarget(){var current=this.event.currentTarget;var currentRoot=current&&Polymer.dom(current).getOwnerRoot();var p$=this.path;for(var i=0;i<p$.length;i++){if(Polymer.dom(p$[i]).getOwnerRoot()===currentRoot){return p$[i];}}},get path(){if(!this.event._path){var path=[];var current=this.rootTarget;while(current){path.push(current);var insertionPoints=Polymer.dom(current).getDestinationInsertionPoints();if(insertionPoints.length){for(var i=0;i<insertionPoints.length-1;i++){path.push(insertionPoints[i]);}
current=insertionPoints[insertionPoints.length-1];}else{current=Polymer.dom(current).parentNode||current.host;}}
path.push(window);this.event._path=path;}
return this.event._path;}};}
var factory=function(event){if(!event.__eventApi){event.__eventApi=new DomApi.Event(event);}
return event.__eventApi;};return{factory:factory};}();(function(){'use strict';var DomApi=Polymer.DomApi.ctor;var useShadow=Polymer.Settings.useShadow;Object.defineProperty(DomApi.prototype,'classList',{get:function(){if(!this._classList){this._classList=new DomApi.ClassList(this);}
return this._classList;},configurable:true});DomApi.ClassList=function(host){this.domApi=host;this.node=host.node;};DomApi.ClassList.prototype={add:function(){this.node.classList.add.apply(this.node.classList,arguments);this._distributeParent();},remove:function(){this.node.classList.remove.apply(this.node.classList,arguments);this._distributeParent();},toggle:function(){this.node.classList.toggle.apply(this.node.classList,arguments);this._distributeParent();},_distributeParent:function(){if(!useShadow){this.domApi._maybeDistributeParent();}},contains:function(){return this.node.classList.contains.apply(this.node.classList,arguments);}};}());(function(){'use strict';var DomApi=Polymer.DomApi.ctor;var Settings=Polymer.Settings;DomApi.EffectiveNodesObserver=function(domApi){this.domApi=domApi;this.node=this.domApi.node;this._listeners=[];};DomApi.EffectiveNodesObserver.prototype={addListener:function(callback){if(!this._isSetup){this._setup();this._isSetup=true;}
var listener={fn:callback,_nodes:[]};this._listeners.push(listener);this._scheduleNotify();return listener;},removeListener:function(handle){var i=this._listeners.indexOf(handle);if(i>=0){this._listeners.splice(i,1);handle._nodes=[];}
if(!this._hasListeners()){this._cleanup();this._isSetup=false;}},_setup:function(){this._observeContentElements(this.domApi.childNodes);},_cleanup:function(){this._unobserveContentElements(this.domApi.childNodes);},_hasListeners:function(){return Boolean(this._listeners.length);},_scheduleNotify:function(){if(this._debouncer){this._debouncer.stop();}
this._debouncer=Polymer.Debounce(this._debouncer,this._notify);this._debouncer.context=this;Polymer.dom.addDebouncer(this._debouncer);},notify:function(){if(this._hasListeners()){this._scheduleNotify();}},_notify:function(){this._beforeCallListeners();this._callListeners();},_beforeCallListeners:function(){this._updateContentElements();},_updateContentElements:function(){this._observeContentElements(this.domApi.childNodes);},_observeContentElements:function(elements){for(var i=0,n;i<elements.length&&(n=elements[i]);i++){if(this._isContent(n)){n.__observeNodesMap=n.__observeNodesMap||new WeakMap();if(!n.__observeNodesMap.has(this)){n.__observeNodesMap.set(this,this._observeContent(n));}}}},_observeContent:function(content){var self=this;var h=Polymer.dom(content).observeNodes(function(){self._scheduleNotify();});h._avoidChangeCalculation=true;return h;},_unobserveContentElements:function(elements){for(var i=0,n,h;i<elements.length&&(n=elements[i]);i++){if(this._isContent(n)){h=n.__observeNodesMap.get(this);if(h){Polymer.dom(n).unobserveNodes(h);n.__observeNodesMap.delete(this);}}}},_isContent:function(node){return node.localName==='content';},_callListeners:function(){var o$=this._listeners;var nodes=this._getEffectiveNodes();for(var i=0,o;i<o$.length&&(o=o$[i]);i++){var info=this._generateListenerInfo(o,nodes);if(info||o._alwaysNotify){this._callListener(o,info);}}},_getEffectiveNodes:function(){return this.domApi.getEffectiveChildNodes();},_generateListenerInfo:function(listener,newNodes){if(listener._avoidChangeCalculation){return true;}
var oldNodes=listener._nodes;var info={target:this.node,addedNodes:[],removedNodes:[]};var splices=Polymer.ArraySplice.calculateSplices(newNodes,oldNodes);for(var i=0,s;i<splices.length&&(s=splices[i]);i++){for(var j=0,n;j<s.removed.length&&(n=s.removed[j]);j++){info.removedNodes.push(n);}}
for(i=0,s;i<splices.length&&(s=splices[i]);i++){for(j=s.index;j<s.index+s.addedCount;j++){info.addedNodes.push(newNodes[j]);}}
listener._nodes=newNodes;if(info.addedNodes.length||info.removedNodes.length){return info;}},_callListener:function(listener,info){return listener.fn.call(this.node,info);},enableShadowAttributeTracking:function(){}};if(Settings.useShadow){var baseSetup=DomApi.EffectiveNodesObserver.prototype._setup;var baseCleanup=DomApi.EffectiveNodesObserver.prototype._cleanup;Polymer.Base.mixin(DomApi.EffectiveNodesObserver.prototype,{_setup:function(){if(!this._observer){var self=this;this._mutationHandler=function(mxns){if(mxns&&mxns.length){self._scheduleNotify();}};this._observer=new MutationObserver(this._mutationHandler);this._boundFlush=function(){self._flush();};Polymer.dom.addStaticFlush(this._boundFlush);this._observer.observe(this.node,{childList:true});}
baseSetup.call(this);},_cleanup:function(){this._observer.disconnect();this._observer=null;this._mutationHandler=null;Polymer.dom.removeStaticFlush(this._boundFlush);baseCleanup.call(this);},_flush:function(){if(this._observer){this._mutationHandler(this._observer.takeRecords());}},enableShadowAttributeTracking:function(){if(this._observer){this._makeContentListenersAlwaysNotify();this._observer.disconnect();this._observer.observe(this.node,{childList:true,attributes:true,subtree:true});var root=this.domApi.getOwnerRoot();var host=root&&root.host;if(host&&Polymer.dom(host).observer){Polymer.dom(host).observer.enableShadowAttributeTracking();}}},_makeContentListenersAlwaysNotify:function(){for(var i=0,h;i<this._listeners.length;i++){h=this._listeners[i];h._alwaysNotify=h._isContentListener;}}});}}());(function(){'use strict';var DomApi=Polymer.DomApi.ctor;var Settings=Polymer.Settings;DomApi.DistributedNodesObserver=function(domApi){DomApi.EffectiveNodesObserver.call(this,domApi);};DomApi.DistributedNodesObserver.prototype=Object.create(DomApi.EffectiveNodesObserver.prototype);Polymer.Base.mixin(DomApi.DistributedNodesObserver.prototype,{_setup:function(){},_cleanup:function(){},_beforeCallListeners:function(){},_getEffectiveNodes:function(){return this.domApi.getDistributedNodes();}});if(Settings.useShadow){Polymer.Base.mixin(DomApi.DistributedNodesObserver.prototype,{_setup:function(){if(!this._observer){var root=this.domApi.getOwnerRoot();var host=root&&root.host;if(host){var self=this;this._observer=Polymer.dom(host).observeNodes(function(){self._scheduleNotify();});this._observer._isContentListener=true;if(this._hasAttrSelect()){Polymer.dom(host).observer.enableShadowAttributeTracking();}}}},_hasAttrSelect:function(){var select=this.node.getAttribute('select');return select&&select.match(/[[.]+/);},_cleanup:function(){var root=this.domApi.getOwnerRoot();var host=root&&root.host;if(host){Polymer.dom(host).unobserveNodes(this._observer);}
this._observer=null;}});}}());(function(){var DomApi=Polymer.DomApi;var TreeApi=Polymer.TreeApi;Polymer.Base._addFeature({_prepShady:function(){this._useContent=this._useContent||Boolean(this._template);},_setupShady:function(){this.shadyRoot=null;if(!this.__domApi){this.__domApi=null;}
if(!this.__dom){this.__dom=null;}
if(!this._ownerShadyRoot){this._ownerShadyRoot=undefined;}},_poolContent:function(){if(this._useContent){TreeApi.Logical.saveChildNodes(this);}},_setupRoot:function(){if(this._useContent){this._createLocalRoot();if(!this.dataHost){upgradeLogicalChildren(TreeApi.Logical.getChildNodes(this));}}},_createLocalRoot:function(){this.shadyRoot=this.root;this.shadyRoot._distributionClean=false;this.shadyRoot._hasDistributed=false;this.shadyRoot._isShadyRoot=true;this.shadyRoot._dirtyRoots=[];var i$=this.shadyRoot._insertionPoints=!this._notes||this._notes._hasContent?this.shadyRoot.querySelectorAll('content'):[];TreeApi.Logical.saveChildNodes(this.shadyRoot);for(var i=0,c;i<i$.length;i++){c=i$[i];TreeApi.Logical.saveChildNodes(c);TreeApi.Logical.saveChildNodes(c.parentNode);}
this.shadyRoot.host=this;},distributeContent:function(updateInsertionPoints){if(this.shadyRoot){this.shadyRoot._invalidInsertionPoints=this.shadyRoot._invalidInsertionPoints||updateInsertionPoints;var host=getTopDistributingHost(this);Polymer.dom(this)._lazyDistribute(host);}},_distributeContent:function(){if(this._useContent&&!this.shadyRoot._distributionClean){if(this.shadyRoot._invalidInsertionPoints){Polymer.dom(this)._updateInsertionPoints(this);this.shadyRoot._invalidInsertionPoints=false;}
this._beginDistribute();this._distributeDirtyRoots();this._finishDistribute();}},_beginDistribute:function(){if(this._useContent&&DomApi.hasInsertionPoint(this.shadyRoot)){this._resetDistribution();this._distributePool(this.shadyRoot,this._collectPool());}},_distributeDirtyRoots:function(){var c$=this.shadyRoot._dirtyRoots;for(var i=0,l=c$.length,c;i<l&&(c=c$[i]);i++){c._distributeContent();}
this.shadyRoot._dirtyRoots=[];},_finishDistribute:function(){if(this._useContent){this.shadyRoot._distributionClean=true;if(DomApi.hasInsertionPoint(this.shadyRoot)){this._composeTree();notifyContentObservers(this.shadyRoot);}else{if(!this.shadyRoot._hasDistributed){TreeApi.Composed.clearChildNodes(this);this.appendChild(this.shadyRoot);}else{var children=this._composeNode(this);this._updateChildNodes(this,children);}}
if(!this.shadyRoot._hasDistributed){notifyInitialDistribution(this);}
this.shadyRoot._hasDistributed=true;}},elementMatches:function(selector,node){node=node||this;return DomApi.matchesSelector.call(node,selector);},_resetDistribution:function(){var children=TreeApi.Logical.getChildNodes(this);for(var i=0;i<children.length;i++){var child=children[i];if(child._destinationInsertionPoints){child._destinationInsertionPoints=undefined;}
if(isInsertionPoint(child)){clearDistributedDestinationInsertionPoints(child);}}
var root=this.shadyRoot;var p$=root._insertionPoints;for(var j=0;j<p$.length;j++){p$[j]._distributedNodes=[];}},_collectPool:function(){var pool=[];var children=TreeApi.Logical.getChildNodes(this);for(var i=0;i<children.length;i++){var child=children[i];if(isInsertionPoint(child)){pool.push.apply(pool,child._distributedNodes);}else{pool.push(child);}}
return pool;},_distributePool:function(node,pool){var p$=node._insertionPoints;for(var i=0,l=p$.length,p;i<l&&(p=p$[i]);i++){this._distributeInsertionPoint(p,pool);maybeRedistributeParent(p,this);}},_distributeInsertionPoint:function(content,pool){var anyDistributed=false;for(var i=0,l=pool.length,node;i<l;i++){node=pool[i];if(!node){continue;}
if(this._matchesContentSelect(node,content)){distributeNodeInto(node,content);pool[i]=undefined;anyDistributed=true;}}
if(!anyDistributed){var children=TreeApi.Logical.getChildNodes(content);for(var j=0;j<children.length;j++){distributeNodeInto(children[j],content);}}},_composeTree:function(){this._updateChildNodes(this,this._composeNode(this));var p$=this.shadyRoot._insertionPoints;for(var i=0,l=p$.length,p,parent;i<l&&(p=p$[i]);i++){parent=TreeApi.Logical.getParentNode(p);if(!parent._useContent&&parent!==this&&parent!==this.shadyRoot){this._updateChildNodes(parent,this._composeNode(parent));}}},_composeNode:function(node){var children=[];var c$=TreeApi.Logical.getChildNodes(node.shadyRoot||node);for(var i=0;i<c$.length;i++){var child=c$[i];if(isInsertionPoint(child)){var distributedNodes=child._distributedNodes;for(var j=0;j<distributedNodes.length;j++){var distributedNode=distributedNodes[j];if(isFinalDestination(child,distributedNode)){children.push(distributedNode);}}}else{children.push(child);}}
return children;},_updateChildNodes:function(container,children){var composed=TreeApi.Composed.getChildNodes(container);var splices=Polymer.ArraySplice.calculateSplices(children,composed);for(var i=0,d=0,s;i<splices.length&&(s=splices[i]);i++){for(var j=0,n;j<s.removed.length&&(n=s.removed[j]);j++){if(TreeApi.Composed.getParentNode(n)===container){TreeApi.Composed.removeChild(container,n);}
composed.splice(s.index+d,1);}
d-=s.addedCount;}
for(var i=0,s,next;i<splices.length&&(s=splices[i]);i++){next=composed[s.index];for(j=s.index,n;j<s.index+s.addedCount;j++){n=children[j];TreeApi.Composed.insertBefore(container,n,next);composed.splice(j,0,n);}}},_matchesContentSelect:function(node,contentElement){var select=contentElement.getAttribute('select');if(!select){return true;}
select=select.trim();if(!select){return true;}
if(!(node instanceof Element)){return false;}
var validSelectors=/^(:not\()?[*.#[a-zA-Z_|]/;if(!validSelectors.test(select)){return false;}
return this.elementMatches(select,node);},_elementAdd:function(){},_elementRemove:function(){}});var domHostDesc={get:function(){var root=Polymer.dom(this).getOwnerRoot();return root&&root.host;},configurable:true};Object.defineProperty(Polymer.Base,'domHost',domHostDesc);Polymer.BaseDescriptors.domHost=domHostDesc;function distributeNodeInto(child,insertionPoint){insertionPoint._distributedNodes.push(child);var points=child._destinationInsertionPoints;if(!points){child._destinationInsertionPoints=[insertionPoint];}else{points.push(insertionPoint);}}
function clearDistributedDestinationInsertionPoints(content){var e$=content._distributedNodes;if(e$){for(var i=0;i<e$.length;i++){var d=e$[i]._destinationInsertionPoints;if(d){d.splice(d.indexOf(content)+1,d.length);}}}}
function maybeRedistributeParent(content,host){var parent=TreeApi.Logical.getParentNode(content);if(parent&&parent.shadyRoot&&DomApi.hasInsertionPoint(parent.shadyRoot)&&parent.shadyRoot._distributionClean){parent.shadyRoot._distributionClean=false;host.shadyRoot._dirtyRoots.push(parent);}}
function isFinalDestination(insertionPoint,node){var points=node._destinationInsertionPoints;return points&&points[points.length-1]===insertionPoint;}
function isInsertionPoint(node){return node.localName=='content';}
function getTopDistributingHost(host){while(host&&hostNeedsRedistribution(host)){host=host.domHost;}
return host;}
function hostNeedsRedistribution(host){var c$=TreeApi.Logical.getChildNodes(host);for(var i=0,c;i<c$.length;i++){c=c$[i];if(c.localName&&c.localName==='content'){return host.domHost;}}}
function notifyContentObservers(root){for(var i=0,c;i<root._insertionPoints.length;i++){c=root._insertionPoints[i];if(DomApi.hasApi(c)){Polymer.dom(c).notifyObserver();}}}
function notifyInitialDistribution(host){if(DomApi.hasApi(host)){Polymer.dom(host).notifyObserver();}}
var needsUpgrade=window.CustomElements&&!CustomElements.useNative;function upgradeLogicalChildren(children){if(needsUpgrade&&children){for(var i=0;i<children.length;i++){CustomElements.upgrade(children[i]);}}}}());if(Polymer.Settings.useShadow){Polymer.Base._addFeature({_poolContent:function(){},_beginDistribute:function(){},distributeContent:function(){},_distributeContent:function(){},_finishDistribute:function(){},_createLocalRoot:function(){this.createShadowRoot();this.shadowRoot.appendChild(this.root);this.root=this.shadowRoot;}});}Polymer.Async={_currVal:0,_lastVal:0,_callbacks:[],_twiddleContent:0,_twiddle:document.createTextNode(''),run:function(callback,waitTime){if(waitTime>0){return~setTimeout(callback,waitTime);}else{this._twiddle.textContent=this._twiddleContent++;this._callbacks.push(callback);return this._currVal++;}},cancel:function(handle){if(handle<0){clearTimeout(~handle);}else{var idx=handle-this._lastVal;if(idx>=0){if(!this._callbacks[idx]){throw'invalid async handle: '+handle;}
this._callbacks[idx]=null;}}},_atEndOfMicrotask:function(){var len=this._callbacks.length;for(var i=0;i<len;i++){var cb=this._callbacks[i];if(cb){try{cb();}catch(e){i++;this._callbacks.splice(0,i);this._lastVal+=i;this._twiddle.textContent=this._twiddleContent++;throw e;}}}
this._callbacks.splice(0,len);this._lastVal+=len;}};new window.MutationObserver(function(){Polymer.Async._atEndOfMicrotask();}).observe(Polymer.Async._twiddle,{characterData:true});Polymer.Debounce=function(){var Async=Polymer.Async;var Debouncer=function(context){this.context=context;var self=this;this.boundComplete=function(){self.complete();};};Debouncer.prototype={go:function(callback,wait){var h;this.finish=function(){Async.cancel(h);};h=Async.run(this.boundComplete,wait);this.callback=callback;},stop:function(){if(this.finish){this.finish();this.finish=null;this.callback=null;}},complete:function(){if(this.finish){var callback=this.callback;this.stop();callback.call(this.context);}}};function debounce(debouncer,callback,wait){if(debouncer){debouncer.stop();}else{debouncer=new Debouncer(this);}
debouncer.go(callback,wait);return debouncer;}
return debounce;}();Polymer.Base._addFeature({_setupDebouncers:function(){this._debouncers={};},debounce:function(jobName,callback,wait){return this._debouncers[jobName]=Polymer.Debounce.call(this,this._debouncers[jobName],callback,wait);},isDebouncerActive:function(jobName){var debouncer=this._debouncers[jobName];return!!(debouncer&&debouncer.finish);},flushDebouncer:function(jobName){var debouncer=this._debouncers[jobName];if(debouncer){debouncer.complete();}},cancelDebouncer:function(jobName){var debouncer=this._debouncers[jobName];if(debouncer){debouncer.stop();}}});Polymer.DomModule=document.createElement('dom-module');Polymer.Base._addFeature({_registerFeatures:function(){this._prepIs();this._prepBehaviors();this._prepConstructor();this._prepTemplate();this._prepShady();this._prepPropertyInfo();},_prepBehavior:function(b){this._addHostAttributes(b.hostAttributes);},_initFeatures:function(){this._registerHost();if(this._template){this._poolContent();this._beginHosting();this._stampTemplate();this._endHosting();}
this._marshalHostAttributes();this._setupDebouncers();this._marshalBehaviors();this._tryReady();},_marshalBehavior:function(b){}});(function(){Polymer.nar=[];var disableUpgradeEnabled=Polymer.Settings.disableUpgradeEnabled;Polymer.Annotations={parseAnnotations:function(template,stripWhiteSpace){var list=[];var content=template._content||template.content;this._parseNodeAnnotations(content,list,stripWhiteSpace||template.hasAttribute('strip-whitespace'));return list;},_parseNodeAnnotations:function(node,list,stripWhiteSpace){return node.nodeType===Node.TEXT_NODE?this._parseTextNodeAnnotation(node,list):this._parseElementAnnotations(node,list,stripWhiteSpace);},_bindingRegex:function(){var IDENT='(?:'+'[a-zA-Z_$][\\w.:$\\-*]*'+')';var NUMBER='(?:'+'[-+]?[0-9]*\\.?[0-9]+(?:[eE][-+]?[0-9]+)?'+')';var SQUOTE_STRING='(?:'+'\'(?:[^\'\\\\]|\\\\.)*\''+')';var DQUOTE_STRING='(?:'+'"(?:[^"\\\\]|\\\\.)*"'+')';var STRING='(?:'+SQUOTE_STRING+'|'+DQUOTE_STRING+')';var ARGUMENT='(?:'+IDENT+'|'+NUMBER+'|'+STRING+'\\s*'+')';var ARGUMENTS='(?:'+ARGUMENT+'(?:,\\s*'+ARGUMENT+')*'+')';var ARGUMENT_LIST='(?:'+'\\(\\s*'+'(?:'+ARGUMENTS+'?'+')'+'\\)\\s*'+')';var BINDING='('+IDENT+'\\s*'+ARGUMENT_LIST+'?'+')';var OPEN_BRACKET='(\\[\\[|{{)'+'\\s*';var CLOSE_BRACKET='(?:]]|}})';var NEGATE='(?:(!)\\s*)?';var EXPRESSION=OPEN_BRACKET+NEGATE+BINDING+CLOSE_BRACKET;return new RegExp(EXPRESSION,'g');}(),_parseBindings:function(text){var re=this._bindingRegex;var parts=[];var lastIndex=0;var m;while((m=re.exec(text))!==null){if(m.index>lastIndex){parts.push({literal:text.slice(lastIndex,m.index)});}
var mode=m[1][0];var negate=Boolean(m[2]);var value=m[3].trim();var customEvent,notifyEvent,colon;if(mode=='{'&&(colon=value.indexOf('::'))>0){notifyEvent=value.substring(colon+2);value=value.substring(0,colon);customEvent=true;}
parts.push({compoundIndex:parts.length,value:value,mode:mode,negate:negate,event:notifyEvent,customEvent:customEvent});lastIndex=re.lastIndex;}
if(lastIndex&&lastIndex<text.length){var literal=text.substring(lastIndex);if(literal){parts.push({literal:literal});}}
if(parts.length){return parts;}},_literalFromParts:function(parts){var s='';for(var i=0;i<parts.length;i++){var literal=parts[i].literal;s+=literal||'';}
return s;},_parseTextNodeAnnotation:function(node,list){var parts=this._parseBindings(node.textContent);if(parts){node.textContent=this._literalFromParts(parts)||' ';var annote={bindings:[{kind:'text',name:'textContent',parts:parts,isCompound:parts.length!==1}]};list.push(annote);return annote;}},_parseElementAnnotations:function(element,list,stripWhiteSpace){var annote={bindings:[],events:[]};if(element.localName==='content'){list._hasContent=true;}
this._parseChildNodesAnnotations(element,annote,list,stripWhiteSpace);if(element.attributes){this._parseNodeAttributeAnnotations(element,annote,list);if(this.prepElement){this.prepElement(element);}}
if(annote.bindings.length||annote.events.length||annote.id){list.push(annote);}
return annote;},_parseChildNodesAnnotations:function(root,annote,list,stripWhiteSpace){if(root.firstChild){var node=root.firstChild;var i=0;while(node){var next=node.nextSibling;if(node.localName==='template'&&!node.hasAttribute('preserve-content')){this._parseTemplate(node,i,list,annote,stripWhiteSpace);}
if(node.localName=='slot'){node=this._replaceSlotWithContent(node);}
if(node.nodeType===Node.TEXT_NODE){var n=next;while(n&&n.nodeType===Node.TEXT_NODE){node.textContent+=n.textContent;next=n.nextSibling;root.removeChild(n);n=next;}
if(stripWhiteSpace&&!node.textContent.trim()){root.removeChild(node);i--;}}
if(node.parentNode){var childAnnotation=this._parseNodeAnnotations(node,list,stripWhiteSpace);if(childAnnotation){childAnnotation.parent=annote;childAnnotation.index=i;}}
node=next;i++;}}},_replaceSlotWithContent:function(slot){var content=slot.ownerDocument.createElement('content');while(slot.firstChild){content.appendChild(slot.firstChild);}
var attrs=slot.attributes;for(var i=0;i<attrs.length;i++){var attr=attrs[i];content.setAttribute(attr.name,attr.value);}
var name=slot.getAttribute('name');if(name){content.setAttribute('select','[slot=\''+name+'\']');}
slot.parentNode.replaceChild(content,slot);return content;},_parseTemplate:function(node,index,list,parent,stripWhiteSpace){var content=document.createDocumentFragment();content._notes=this.parseAnnotations(node,stripWhiteSpace);content.appendChild(node.content);list.push({bindings:Polymer.nar,events:Polymer.nar,templateContent:content,parent:parent,index:index});},_parseNodeAttributeAnnotations:function(node,annotation){var attrs=Array.prototype.slice.call(node.attributes);for(var i=attrs.length-1,a;a=attrs[i];i--){var n=a.name;var v=a.value;var b;if(n.slice(0,3)==='on-'){node.removeAttribute(n);annotation.events.push({name:n.slice(3),value:v});}else if(b=this._parseNodeAttributeAnnotation(node,n,v)){annotation.bindings.push(b);}else if(n==='id'){annotation.id=v;}}},_parseNodeAttributeAnnotation:function(node,name,value){var parts=this._parseBindings(value);if(parts){var origName=name;var kind='property';if(name[name.length-1]=='$'){name=name.slice(0,-1);kind='attribute';}
var literal=this._literalFromParts(parts);if(literal&&kind=='attribute'){node.setAttribute(name,literal);}
if(node.localName==='input'&&origName==='value'){node.setAttribute(origName,'');}
if(disableUpgradeEnabled&&origName==='disable-upgrade$'){node.setAttribute(name,'');}
node.removeAttribute(origName);var propertyName=Polymer.CaseMap.dashToCamelCase(name);if(kind==='property'){name=propertyName;}
return{kind:kind,name:name,propertyName:propertyName,parts:parts,literal:literal,isCompound:parts.length!==1};}},findAnnotatedNode:function(root,annote){var parent=annote.parent&&Polymer.Annotations.findAnnotatedNode(root,annote.parent);if(parent){for(var n=parent.firstChild,i=0;n;n=n.nextSibling){if(annote.index===i++){return n;}}}else{return root;}}};}());(function(){function resolveCss(cssText,ownerDocument){return cssText.replace(CSS_URL_RX,function(m,pre,url,post){return pre+'\''+resolve(url.replace(/["']/g,''),ownerDocument)+'\''+post;});}
function resolveAttrs(element,ownerDocument){for(var name in URL_ATTRS){var a$=URL_ATTRS[name];for(var i=0,l=a$.length,a,at,v;i<l&&(a=a$[i]);i++){if(name==='*'||element.localName===name){at=element.attributes[a];v=at&&at.value;if(v&&v.search(BINDING_RX)<0){at.value=a==='style'?resolveCss(v,ownerDocument):resolve(v,ownerDocument);}}}}}
function resolve(url,ownerDocument){if(url&&ABS_URL.test(url)){return url;}
var resolver=getUrlResolver(ownerDocument);resolver.href=url;return resolver.href||url;}
var tempDoc;var tempDocBase;function resolveUrl(url,baseUri){if(!tempDoc){tempDoc=document.implementation.createHTMLDocument('temp');tempDocBase=tempDoc.createElement('base');tempDoc.head.appendChild(tempDocBase);}
tempDocBase.href=baseUri;return resolve(url,tempDoc);}
function getUrlResolver(ownerDocument){return ownerDocument.body.__urlResolver||(ownerDocument.body.__urlResolver=ownerDocument.createElement('a'));}
var CSS_URL_RX=/(url\()([^)]*)(\))/g;var URL_ATTRS={'*':['href','src','style','url'],form:['action']};var ABS_URL=/(^\/)|(^#)|(^[\w-\d]*:)/;var BINDING_RX=/\{\{|\[\[/;Polymer.ResolveUrl={resolveCss:resolveCss,resolveAttrs:resolveAttrs,resolveUrl:resolveUrl};}());Polymer.Path={root:function(path){var dotIndex=path.indexOf('.');if(dotIndex===-1){return path;}
return path.slice(0,dotIndex);},isDeep:function(path){return path.indexOf('.')!==-1;},isAncestor:function(base,path){return base.indexOf(path+'.')===0;},isDescendant:function(base,path){return path.indexOf(base+'.')===0;},translate:function(base,newBase,path){return newBase+path.slice(base.length);},matches:function(base,wildcard,path){return base===path||this.isAncestor(base,path)||Boolean(wildcard)&&this.isDescendant(base,path);}};Polymer.Base._addFeature({_prepAnnotations:function(){if(!this._template){this._notes=[];}else{var self=this;Polymer.Annotations.prepElement=function(element){self._prepElement(element);};if(this._template._content&&this._template._content._notes){this._notes=this._template._content._notes;}else{this._notes=Polymer.Annotations.parseAnnotations(this._template);this._processAnnotations(this._notes);}
Polymer.Annotations.prepElement=null;}},_processAnnotations:function(notes){for(var i=0;i<notes.length;i++){var note=notes[i];for(var j=0;j<note.bindings.length;j++){var b=note.bindings[j];for(var k=0;k<b.parts.length;k++){var p=b.parts[k];if(!p.literal){var signature=this._parseMethod(p.value);if(signature){p.signature=signature;}else{p.model=Polymer.Path.root(p.value);}}}}
if(note.templateContent){this._processAnnotations(note.templateContent._notes);var pp=note.templateContent._parentProps=this._discoverTemplateParentProps(note.templateContent._notes);var bindings=[];for(var prop in pp){var name='_parent_'+prop;bindings.push({index:note.index,kind:'property',name:name,propertyName:name,parts:[{mode:'{',model:prop,value:prop}]});}
note.bindings=note.bindings.concat(bindings);}}},_discoverTemplateParentProps:function(notes){var pp={};for(var i=0,n;i<notes.length&&(n=notes[i]);i++){for(var j=0,b$=n.bindings,b;j<b$.length&&(b=b$[j]);j++){for(var k=0,p$=b.parts,p;k<p$.length&&(p=p$[k]);k++){if(p.signature){var args=p.signature.args;for(var kk=0;kk<args.length;kk++){var model=args[kk].model;if(model){pp[model]=true;}}
if(p.signature.dynamicFn){pp[p.signature.method]=true;}}else{if(p.model){pp[p.model]=true;}}}}
if(n.templateContent){var tpp=n.templateContent._parentProps;Polymer.Base.mixin(pp,tpp);}}
return pp;},_prepElement:function(element){Polymer.ResolveUrl.resolveAttrs(element,this._template.ownerDocument);},_findAnnotatedNode:Polymer.Annotations.findAnnotatedNode,_marshalAnnotationReferences:function(){if(this._template){this._marshalIdNodes();this._marshalAnnotatedNodes();this._marshalAnnotatedListeners();}},_configureAnnotationReferences:function(){var notes=this._notes;var nodes=this._nodes;for(var i=0;i<notes.length;i++){var note=notes[i];var node=nodes[i];this._configureTemplateContent(note,node);this._configureCompoundBindings(note,node);}},_configureTemplateContent:function(note,node){if(note.templateContent){node._content=note.templateContent;}},_configureCompoundBindings:function(note,node){var bindings=note.bindings;for(var i=0;i<bindings.length;i++){var binding=bindings[i];if(binding.isCompound){var storage=node.__compoundStorage__||(node.__compoundStorage__={});var parts=binding.parts;var literals=new Array(parts.length);for(var j=0;j<parts.length;j++){literals[j]=parts[j].literal;}
var name=binding.name;storage[name]=literals;if(binding.literal&&binding.kind=='property'){if(node._configValue){node._configValue(name,binding.literal);}else{node[name]=binding.literal;}}}}},_marshalIdNodes:function(){this.$={};for(var i=0,l=this._notes.length,a;i<l&&(a=this._notes[i]);i++){if(a.id){this.$[a.id]=this._findAnnotatedNode(this.root,a);}}},_marshalAnnotatedNodes:function(){if(this._notes&&this._notes.length){var r=new Array(this._notes.length);for(var i=0;i<this._notes.length;i++){r[i]=this._findAnnotatedNode(this.root,this._notes[i]);}
this._nodes=r;}},_marshalAnnotatedListeners:function(){for(var i=0,l=this._notes.length,a;i<l&&(a=this._notes[i]);i++){if(a.events&&a.events.length){var node=this._findAnnotatedNode(this.root,a);for(var j=0,e$=a.events,e;j<e$.length&&(e=e$[j]);j++){this.listen(node,e.name,e.value);}}}}});Polymer.Base._addFeature({listeners:{},_listenListeners:function(listeners){var node,name,eventName;for(eventName in listeners){if(eventName.indexOf('.')<0){node=this;name=eventName;}else{name=eventName.split('.');node=this.$[name[0]];name=name[1];}
this.listen(node,name,listeners[eventName]);}},listen:function(node,eventName,methodName){var handler=this._recallEventHandler(this,eventName,node,methodName);if(!handler){handler=this._createEventHandler(node,eventName,methodName);}
if(handler._listening){return;}
this._listen(node,eventName,handler);handler._listening=true;},_boundListenerKey:function(eventName,methodName){return eventName+':'+methodName;},_recordEventHandler:function(host,eventName,target,methodName,handler){var hbl=host.__boundListeners;if(!hbl){hbl=host.__boundListeners=new WeakMap();}
var bl=hbl.get(target);if(!bl){bl={};if(!Polymer.Settings.isIE||target!=window){hbl.set(target,bl);}}
var key=this._boundListenerKey(eventName,methodName);bl[key]=handler;},_recallEventHandler:function(host,eventName,target,methodName){var hbl=host.__boundListeners;if(!hbl){return;}
var bl=hbl.get(target);if(!bl){return;}
var key=this._boundListenerKey(eventName,methodName);return bl[key];},_createEventHandler:function(node,eventName,methodName){var host=this;var handler=function(e){if(host[methodName]){host[methodName](e,e.detail);}else{host._warn(host._logf('_createEventHandler','listener method `'+methodName+'` not defined'));}};handler._listening=false;this._recordEventHandler(host,eventName,node,methodName,handler);return handler;},unlisten:function(node,eventName,methodName){var handler=this._recallEventHandler(this,eventName,node,methodName);if(handler){this._unlisten(node,eventName,handler);handler._listening=false;}},_listen:function(node,eventName,handler){node.addEventListener(eventName,handler);},_unlisten:function(node,eventName,handler){node.removeEventListener(eventName,handler);}});(function(){'use strict';var wrap=Polymer.DomApi.wrap;var HAS_NATIVE_TA=typeof document.head.style.touchAction==='string';var GESTURE_KEY='__polymerGestures';var HANDLED_OBJ='__polymerGesturesHandled';var TOUCH_ACTION='__polymerGesturesTouchAction';var TAP_DISTANCE=25;var TRACK_DISTANCE=5;var TRACK_LENGTH=2;var MOUSE_TIMEOUT=2500;var MOUSE_EVENTS=['mousedown','mousemove','mouseup','click'];var MOUSE_WHICH_TO_BUTTONS=[0,1,4,2];var MOUSE_HAS_BUTTONS=function(){try{return new MouseEvent('test',{buttons:1}).buttons===1;}catch(e){return false;}}();var SUPPORTS_PASSIVE=false;(function(){try{var opts=Object.defineProperty({},'passive',{get:function(){SUPPORTS_PASSIVE=true;}});window.addEventListener('test',null,opts);window.removeEventListener('test',null,opts);}catch(e){}}());var IS_TOUCH_ONLY=navigator.userAgent.match(/iP(?:[oa]d|hone)|Android/);var mouseCanceller=function(mouseEvent){var sc=mouseEvent.sourceCapabilities;if(sc&&!sc.firesTouchEvents){return;}
mouseEvent[HANDLED_OBJ]={skip:true};if(mouseEvent.type==='click'){var path=Polymer.dom(mouseEvent).path;for(var i=0;i<path.length;i++){if(path[i]===POINTERSTATE.mouse.target){return;}}
mouseEvent.preventDefault();mouseEvent.stopPropagation();}};function setupTeardownMouseCanceller(setup){var events=IS_TOUCH_ONLY?['click']:MOUSE_EVENTS;for(var i=0,en;i<events.length;i++){en=events[i];if(setup){document.addEventListener(en,mouseCanceller,true);}else{document.removeEventListener(en,mouseCanceller,true);}}}
function ignoreMouse(ev){if(!POINTERSTATE.mouse.mouseIgnoreJob){setupTeardownMouseCanceller(true);}
var unset=function(){setupTeardownMouseCanceller();POINTERSTATE.mouse.target=null;POINTERSTATE.mouse.mouseIgnoreJob=null;};POINTERSTATE.mouse.target=Polymer.dom(ev).rootTarget;POINTERSTATE.mouse.mouseIgnoreJob=Polymer.Debounce(POINTERSTATE.mouse.mouseIgnoreJob,unset,MOUSE_TIMEOUT);}
function hasLeftMouseButton(ev){var type=ev.type;if(MOUSE_EVENTS.indexOf(type)===-1){return false;}
if(type==='mousemove'){var buttons=ev.buttons===undefined?1:ev.buttons;if(ev instanceof window.MouseEvent&&!MOUSE_HAS_BUTTONS){buttons=MOUSE_WHICH_TO_BUTTONS[ev.which]||0;}
return Boolean(buttons&1);}else{var button=ev.button===undefined?0:ev.button;return button===0;}}
function isSyntheticClick(ev){if(ev.type==='click'){if(ev.detail===0){return true;}
var t=Gestures.findOriginalTarget(ev);var bcr=t.getBoundingClientRect();var x=ev.pageX,y=ev.pageY;return!(x>=bcr.left&&x<=bcr.right&&(y>=bcr.top&&y<=bcr.bottom));}
return false;}
var POINTERSTATE={mouse:{target:null,mouseIgnoreJob:null},touch:{x:0,y:0,id:-1,scrollDecided:false}};function firstTouchAction(ev){var path=Polymer.dom(ev).path;var ta='auto';for(var i=0,n;i<path.length;i++){n=path[i];if(n[TOUCH_ACTION]){ta=n[TOUCH_ACTION];break;}}
return ta;}
function trackDocument(stateObj,movefn,upfn){stateObj.movefn=movefn;stateObj.upfn=upfn;document.addEventListener('mousemove',movefn);document.addEventListener('mouseup',upfn);}
function untrackDocument(stateObj){document.removeEventListener('mousemove',stateObj.movefn);document.removeEventListener('mouseup',stateObj.upfn);stateObj.movefn=null;stateObj.upfn=null;}
document.addEventListener('touchend',ignoreMouse,SUPPORTS_PASSIVE?{passive:true}:false);var Gestures={gestures:{},recognizers:[],deepTargetFind:function(x,y){var node=document.elementFromPoint(x,y);var next=node;while(next&&next.shadowRoot){next=next.shadowRoot.elementFromPoint(x,y);if(next){node=next;}}
return node;},findOriginalTarget:function(ev){if(ev.path){return ev.path[0];}
return ev.target;},handleNative:function(ev){var handled;var type=ev.type;var node=wrap(ev.currentTarget);var gobj=node[GESTURE_KEY];if(!gobj){return;}
var gs=gobj[type];if(!gs){return;}
if(!ev[HANDLED_OBJ]){ev[HANDLED_OBJ]={};if(type.slice(0,5)==='touch'){var t=ev.changedTouches[0];if(type==='touchstart'){if(ev.touches.length===1){POINTERSTATE.touch.id=t.identifier;}}
if(POINTERSTATE.touch.id!==t.identifier){return;}
if(!HAS_NATIVE_TA){if(type==='touchstart'||type==='touchmove'){Gestures.handleTouchAction(ev);}}}}
handled=ev[HANDLED_OBJ];if(handled.skip){return;}
var recognizers=Gestures.recognizers;for(var i=0,r;i<recognizers.length;i++){r=recognizers[i];if(gs[r.name]&&!handled[r.name]){if(r.flow&&r.flow.start.indexOf(ev.type)>-1&&r.reset){r.reset();}}}
for(i=0,r;i<recognizers.length;i++){r=recognizers[i];if(gs[r.name]&&!handled[r.name]){handled[r.name]=true;r[type](ev);}}},handleTouchAction:function(ev){var t=ev.changedTouches[0];var type=ev.type;if(type==='touchstart'){POINTERSTATE.touch.x=t.clientX;POINTERSTATE.touch.y=t.clientY;POINTERSTATE.touch.scrollDecided=false;}else if(type==='touchmove'){if(POINTERSTATE.touch.scrollDecided){return;}
POINTERSTATE.touch.scrollDecided=true;var ta=firstTouchAction(ev);var prevent=false;var dx=Math.abs(POINTERSTATE.touch.x-t.clientX);var dy=Math.abs(POINTERSTATE.touch.y-t.clientY);if(!ev.cancelable){}else if(ta==='none'){prevent=true;}else if(ta==='pan-x'){prevent=dy>dx;}else if(ta==='pan-y'){prevent=dx>dy;}
if(prevent){ev.preventDefault();}else{Gestures.prevent('track');}}},add:function(node,evType,handler){node=wrap(node);var recognizer=this.gestures[evType];var deps=recognizer.deps;var name=recognizer.name;var gobj=node[GESTURE_KEY];if(!gobj){node[GESTURE_KEY]=gobj={};}
for(var i=0,dep,gd;i<deps.length;i++){dep=deps[i];if(IS_TOUCH_ONLY&&MOUSE_EVENTS.indexOf(dep)>-1&&dep!=='click'){continue;}
gd=gobj[dep];if(!gd){gobj[dep]=gd={_count:0};}
if(gd._count===0){node.addEventListener(dep,this.handleNative);}
gd[name]=(gd[name]||0)+1;gd._count=(gd._count||0)+1;}
node.addEventListener(evType,handler);if(recognizer.touchAction){this.setTouchAction(node,recognizer.touchAction);}},remove:function(node,evType,handler){node=wrap(node);var recognizer=this.gestures[evType];var deps=recognizer.deps;var name=recognizer.name;var gobj=node[GESTURE_KEY];if(gobj){for(var i=0,dep,gd;i<deps.length;i++){dep=deps[i];gd=gobj[dep];if(gd&&gd[name]){gd[name]=(gd[name]||1)-1;gd._count=(gd._count||1)-1;if(gd._count===0){node.removeEventListener(dep,this.handleNative);}}}}
node.removeEventListener(evType,handler);},register:function(recog){this.recognizers.push(recog);for(var i=0;i<recog.emits.length;i++){this.gestures[recog.emits[i]]=recog;}},findRecognizerByEvent:function(evName){for(var i=0,r;i<this.recognizers.length;i++){r=this.recognizers[i];for(var j=0,n;j<r.emits.length;j++){n=r.emits[j];if(n===evName){return r;}}}
return null;},setTouchAction:function(node,value){if(HAS_NATIVE_TA){node.style.touchAction=value;}
node[TOUCH_ACTION]=value;},fire:function(target,type,detail){var ev=Polymer.Base.fire(type,detail,{node:target,bubbles:true,cancelable:true});if(ev.defaultPrevented){var preventer=detail.preventer||detail.sourceEvent;if(preventer&&preventer.preventDefault){preventer.preventDefault();}}},prevent:function(evName){var recognizer=this.findRecognizerByEvent(evName);if(recognizer.info){recognizer.info.prevent=true;}},resetMouseCanceller:function(){if(POINTERSTATE.mouse.mouseIgnoreJob){POINTERSTATE.mouse.mouseIgnoreJob.complete();}}};Gestures.register({name:'downup',deps:['mousedown','touchstart','touchend'],flow:{start:['mousedown','touchstart'],end:['mouseup','touchend']},emits:['down','up'],info:{movefn:null,upfn:null},reset:function(){untrackDocument(this.info);},mousedown:function(e){if(!hasLeftMouseButton(e)){return;}
var t=Gestures.findOriginalTarget(e);var self=this;var movefn=function movefn(e){if(!hasLeftMouseButton(e)){self.fire('up',t,e);untrackDocument(self.info);}};var upfn=function upfn(e){if(hasLeftMouseButton(e)){self.fire('up',t,e);}
untrackDocument(self.info);};trackDocument(this.info,movefn,upfn);this.fire('down',t,e);},touchstart:function(e){this.fire('down',Gestures.findOriginalTarget(e),e.changedTouches[0],e);},touchend:function(e){this.fire('up',Gestures.findOriginalTarget(e),e.changedTouches[0],e);},fire:function(type,target,event,preventer){Gestures.fire(target,type,{x:event.clientX,y:event.clientY,sourceEvent:event,preventer:preventer,prevent:function(e){return Gestures.prevent(e);}});}});Gestures.register({name:'track',touchAction:'none',deps:['mousedown','touchstart','touchmove','touchend'],flow:{start:['mousedown','touchstart'],end:['mouseup','touchend']},emits:['track'],info:{x:0,y:0,state:'start',started:false,moves:[],addMove:function(move){if(this.moves.length>TRACK_LENGTH){this.moves.shift();}
this.moves.push(move);},movefn:null,upfn:null,prevent:false},reset:function(){this.info.state='start';this.info.started=false;this.info.moves=[];this.info.x=0;this.info.y=0;this.info.prevent=false;untrackDocument(this.info);},hasMovedEnough:function(x,y){if(this.info.prevent){return false;}
if(this.info.started){return true;}
var dx=Math.abs(this.info.x-x);var dy=Math.abs(this.info.y-y);return dx>=TRACK_DISTANCE||dy>=TRACK_DISTANCE;},mousedown:function(e){if(!hasLeftMouseButton(e)){return;}
var t=Gestures.findOriginalTarget(e);var self=this;var movefn=function movefn(e){var x=e.clientX,y=e.clientY;if(self.hasMovedEnough(x,y)){self.info.state=self.info.started?e.type==='mouseup'?'end':'track':'start';if(self.info.state==='start'){Gestures.prevent('tap');}
self.info.addMove({x:x,y:y});if(!hasLeftMouseButton(e)){self.info.state='end';untrackDocument(self.info);}
self.fire(t,e);self.info.started=true;}};var upfn=function upfn(e){if(self.info.started){movefn(e);}
untrackDocument(self.info);};trackDocument(this.info,movefn,upfn);this.info.x=e.clientX;this.info.y=e.clientY;},touchstart:function(e){var ct=e.changedTouches[0];this.info.x=ct.clientX;this.info.y=ct.clientY;},touchmove:function(e){var t=Gestures.findOriginalTarget(e);var ct=e.changedTouches[0];var x=ct.clientX,y=ct.clientY;if(this.hasMovedEnough(x,y)){if(this.info.state==='start'){Gestures.prevent('tap');}
this.info.addMove({x:x,y:y});this.fire(t,ct);this.info.state='track';this.info.started=true;}},touchend:function(e){var t=Gestures.findOriginalTarget(e);var ct=e.changedTouches[0];if(this.info.started){this.info.state='end';this.info.addMove({x:ct.clientX,y:ct.clientY});this.fire(t,ct,e);}},fire:function(target,touch,preventer){var secondlast=this.info.moves[this.info.moves.length-2];var lastmove=this.info.moves[this.info.moves.length-1];var dx=lastmove.x-this.info.x;var dy=lastmove.y-this.info.y;var ddx,ddy=0;if(secondlast){ddx=lastmove.x-secondlast.x;ddy=lastmove.y-secondlast.y;}
return Gestures.fire(target,'track',{state:this.info.state,x:touch.clientX,y:touch.clientY,dx:dx,dy:dy,ddx:ddx,ddy:ddy,sourceEvent:touch,preventer:preventer,hover:function(){return Gestures.deepTargetFind(touch.clientX,touch.clientY);}});}});Gestures.register({name:'tap',deps:['mousedown','click','touchstart','touchend'],flow:{start:['mousedown','touchstart'],end:['click','touchend']},emits:['tap'],info:{x:NaN,y:NaN,prevent:false},reset:function(){this.info.x=NaN;this.info.y=NaN;this.info.prevent=false;},save:function(e){this.info.x=e.clientX;this.info.y=e.clientY;},mousedown:function(e){if(hasLeftMouseButton(e)){this.save(e);}},click:function(e){if(hasLeftMouseButton(e)){this.forward(e);}},touchstart:function(e){this.save(e.changedTouches[0],e);},touchend:function(e){this.forward(e.changedTouches[0],e);},forward:function(e,preventer){var dx=Math.abs(e.clientX-this.info.x);var dy=Math.abs(e.clientY-this.info.y);var t=Gestures.findOriginalTarget(e);if(isNaN(dx)||isNaN(dy)||dx<=TAP_DISTANCE&&dy<=TAP_DISTANCE||isSyntheticClick(e)){if(!this.info.prevent){Gestures.fire(t,'tap',{x:e.clientX,y:e.clientY,sourceEvent:e,preventer:preventer});}}}});var DIRECTION_MAP={x:'pan-x',y:'pan-y',none:'none',all:'auto'};Polymer.Base._addFeature({_setupGestures:function(){this.__polymerGestures=null;},_listen:function(node,eventName,handler){if(Gestures.gestures[eventName]){Gestures.add(node,eventName,handler);}else{node.addEventListener(eventName,handler);}},_unlisten:function(node,eventName,handler){if(Gestures.gestures[eventName]){Gestures.remove(node,eventName,handler);}else{node.removeEventListener(eventName,handler);}},setScrollDirection:function(direction,node){node=node||this;Gestures.setTouchAction(node,DIRECTION_MAP[direction]||'auto');}});Polymer.Gestures=Gestures;}());(function(){'use strict';Polymer.Base._addFeature({$$:function(slctr){return Polymer.dom(this.root).querySelector(slctr);},toggleClass:function(name,bool,node){node=node||this;if(arguments.length==1){bool=!node.classList.contains(name);}
if(bool){Polymer.dom(node).classList.add(name);}else{Polymer.dom(node).classList.remove(name);}},toggleAttribute:function(name,bool,node){node=node||this;if(arguments.length==1){bool=!node.hasAttribute(name);}
if(bool){Polymer.dom(node).setAttribute(name,'');}else{Polymer.dom(node).removeAttribute(name);}},classFollows:function(name,toElement,fromElement){if(fromElement){Polymer.dom(fromElement).classList.remove(name);}
if(toElement){Polymer.dom(toElement).classList.add(name);}},attributeFollows:function(name,toElement,fromElement){if(fromElement){Polymer.dom(fromElement).removeAttribute(name);}
if(toElement){Polymer.dom(toElement).setAttribute(name,'');}},getEffectiveChildNodes:function(){return Polymer.dom(this).getEffectiveChildNodes();},getEffectiveChildren:function(){var list=Polymer.dom(this).getEffectiveChildNodes();return list.filter(function(n){return n.nodeType===Node.ELEMENT_NODE;});},getEffectiveTextContent:function(){var cn=this.getEffectiveChildNodes();var tc=[];for(var i=0,c;c=cn[i];i++){if(c.nodeType!==Node.COMMENT_NODE){tc.push(Polymer.dom(c).textContent);}}
return tc.join('');},queryEffectiveChildren:function(slctr){var e$=Polymer.dom(this).queryDistributedElements(slctr);return e$&&e$[0];},queryAllEffectiveChildren:function(slctr){return Polymer.dom(this).queryDistributedElements(slctr);},getContentChildNodes:function(slctr){var content=Polymer.dom(this.root).querySelector(slctr||'content');return content?Polymer.dom(content).getDistributedNodes():[];},getContentChildren:function(slctr){return this.getContentChildNodes(slctr).filter(function(n){return n.nodeType===Node.ELEMENT_NODE;});},fire:function(type,detail,options){options=options||Polymer.nob;var node=options.node||this;detail=detail===null||detail===undefined?{}:detail;var bubbles=options.bubbles===undefined?true:options.bubbles;var cancelable=Boolean(options.cancelable);var useCache=options._useCache;var event=this._getEvent(type,bubbles,cancelable,useCache);event.detail=detail;if(useCache){this.__eventCache[type]=null;}
node.dispatchEvent(event);if(useCache){this.__eventCache[type]=event;}
return event;},__eventCache:{},_getEvent:function(type,bubbles,cancelable,useCache){var event=useCache&&this.__eventCache[type];if(!event||(event.bubbles!=bubbles||event.cancelable!=cancelable)){event=new Event(type,{bubbles:Boolean(bubbles),cancelable:cancelable});}
return event;},async:function(callback,waitTime){var self=this;return Polymer.Async.run(function(){callback.call(self);},waitTime);},cancelAsync:function(handle){Polymer.Async.cancel(handle);},arrayDelete:function(path,item){var index;if(Array.isArray(path)){index=path.indexOf(item);if(index>=0){return path.splice(index,1);}}else{var arr=this._get(path);index=arr.indexOf(item);if(index>=0){return this.splice(path,index,1);}}},transform:function(transform,node){node=node||this;node.style.webkitTransform=transform;node.style.transform=transform;},translate3d:function(x,y,z,node){node=node||this;this.transform('translate3d('+x+','+y+','+z+')',node);},importHref:function(href,onload,onerror,optAsync){var link=document.createElement('link');link.rel='import';link.href=href;var list=Polymer.Base.importHref.imported=Polymer.Base.importHref.imported||{};var cached=list[link.href];var imprt=cached||link;var self=this;var loadListener=function(e){e.target.__firedLoad=true;e.target.removeEventListener('load',loadListener);e.target.removeEventListener('error',errorListener);return onload.call(self,e);};var errorListener=function(e){e.target.__firedError=true;e.target.removeEventListener('load',loadListener);e.target.removeEventListener('error',errorListener);return onerror.call(self,e);};if(onload){imprt.addEventListener('load',loadListener);}
if(onerror){imprt.addEventListener('error',errorListener);}
if(cached){if(cached.__firedLoad){cached.dispatchEvent(new Event('load'));}
if(cached.__firedError){cached.dispatchEvent(new Event('error'));}}else{list[link.href]=link;optAsync=Boolean(optAsync);if(optAsync){link.setAttribute('async','');}
document.head.appendChild(link);}
return imprt;},create:function(tag,props){var elt=document.createElement(tag);if(props){for(var n in props){elt[n]=props[n];}}
return elt;},isLightDescendant:function(node){return this!==node&&this.contains(node)&&Polymer.dom(this).getOwnerRoot()===Polymer.dom(node).getOwnerRoot();},isLocalDescendant:function(node){return this.root===Polymer.dom(node).getOwnerRoot();}});if(!Polymer.Settings.useNativeCustomElements){var importHref=Polymer.Base.importHref;Polymer.Base.importHref=function(href,onload,onerror,optAsync){CustomElements.ready=false;var loadFn=function(e){CustomElements.upgradeDocumentTree(document);CustomElements.ready=true;if(onload){return onload.call(this,e);}};return importHref.call(this,href,loadFn,onerror,optAsync);};}}());Polymer.Bind={prepareModel:function(model){Polymer.Base.mixin(model,this._modelApi);},_modelApi:{_notifyChange:function(source,event,value){value=value===undefined?this[source]:value;event=event||Polymer.CaseMap.camelToDashCase(source)+'-changed';this.fire(event,{value:value},{bubbles:false,cancelable:false,_useCache:Polymer.Settings.eventDataCache||!Polymer.Settings.isIE});},_propertySetter:function(property,value,effects,fromAbove){var old=this.__data__[property];if(old!==value&&(old===old||value===value)){this.__data__[property]=value;if(typeof value=='object'){this._clearPath(property);}
if(this._propertyChanged){this._propertyChanged(property,value,old);}
if(effects){this._effectEffects(property,value,effects,old,fromAbove);}}
return old;},__setProperty:function(property,value,quiet,node){node=node||this;var effects=node._propertyEffects&&node._propertyEffects[property];if(effects){node._propertySetter(property,value,effects,quiet);}else if(node[property]!==value){node[property]=value;}},_effectEffects:function(property,value,effects,old,fromAbove){for(var i=0,l=effects.length,fx;i<l&&(fx=effects[i]);i++){fx.fn.call(this,property,this[property],fx.effect,old,fromAbove);}},_clearPath:function(path){for(var prop in this.__data__){if(Polymer.Path.isDescendant(path,prop)){this.__data__[prop]=undefined;}}}},ensurePropertyEffects:function(model,property){if(!model._propertyEffects){model._propertyEffects={};}
var fx=model._propertyEffects[property];if(!fx){fx=model._propertyEffects[property]=[];}
return fx;},addPropertyEffect:function(model,property,kind,effect){var fx=this.ensurePropertyEffects(model,property);var propEffect={kind:kind,effect:effect,fn:Polymer.Bind['_'+kind+'Effect']};fx.push(propEffect);return propEffect;},createBindings:function(model){var fx$=model._propertyEffects;if(fx$){for(var n in fx$){var fx=fx$[n];fx.sort(this._sortPropertyEffects);this._createAccessors(model,n,fx);}}},_sortPropertyEffects:function(){var EFFECT_ORDER={'compute':0,'annotation':1,'annotatedComputation':2,'reflect':3,'notify':4,'observer':5,'complexObserver':6,'function':7};return function(a,b){return EFFECT_ORDER[a.kind]-EFFECT_ORDER[b.kind];};}(),_createAccessors:function(model,property,effects){var defun={get:function(){return this.__data__[property];}};var setter=function(value){this._propertySetter(property,value,effects);};var info=model.getPropertyInfo&&model.getPropertyInfo(property);if(info&&info.readOnly){if(!info.computed){model['_set'+this.upper(property)]=setter;}}else{defun.set=setter;}
Object.defineProperty(model,property,defun);},upper:function(name){return name[0].toUpperCase()+name.substring(1);},_addAnnotatedListener:function(model,index,property,path,event,negated){if(!model._bindListeners){model._bindListeners=[];}
var fn=this._notedListenerFactory(property,path,Polymer.Path.isDeep(path),negated);var eventName=event||Polymer.CaseMap.camelToDashCase(property)+'-changed';model._bindListeners.push({index:index,property:property,path:path,changedFn:fn,event:eventName});},_isEventBogus:function(e,target){return e.path&&e.path[0]!==target;},_notedListenerFactory:function(property,path,isStructured,negated){return function(target,value,targetPath){if(targetPath){var newPath=Polymer.Path.translate(property,path,targetPath);this._notifyPath(newPath,value);}else{value=target[property];if(negated){value=!value;}
if(!isStructured){this[path]=value;}else{if(this.__data__[path]!=value){this.set(path,value);}}}};},prepareInstance:function(inst){inst.__data__=Object.create(null);},setupBindListeners:function(inst){var b$=inst._bindListeners;for(var i=0,l=b$.length,info;i<l&&(info=b$[i]);i++){var node=inst._nodes[info.index];this._addNotifyListener(node,inst,info.event,info.changedFn);}},_addNotifyListener:function(element,context,event,changedFn){element.addEventListener(event,function(e){return context._notifyListener(changedFn,e);});}};Polymer.Base.mixin(Polymer.Bind,{_shouldAddListener:function(effect){return effect.name&&effect.kind!='attribute'&&effect.kind!='text'&&!effect.isCompound&&effect.parts[0].mode==='{';},_annotationEffect:function(source,value,effect){if(source!=effect.value){value=this._get(effect.value);this.__data__[effect.value]=value;}
this._applyEffectValue(effect,value);},_reflectEffect:function(source,value,effect){this.reflectPropertyToAttribute(source,effect.attribute,value);},_notifyEffect:function(source,value,effect,old,fromAbove){if(!fromAbove){this._notifyChange(source,effect.event,value);}},_functionEffect:function(source,value,fn,old,fromAbove){fn.call(this,source,value,old,fromAbove);},_observerEffect:function(source,value,effect,old){var fn=this[effect.method];if(fn){fn.call(this,value,old);}else{this._warn(this._logf('_observerEffect','observer method `'+effect.method+'` not defined'));}},_complexObserverEffect:function(source,value,effect){var fn=this[effect.method];if(fn){var args=Polymer.Bind._marshalArgs(this.__data__,effect,source,value);if(args){fn.apply(this,args);}}else if(effect.dynamicFn){}else{this._warn(this._logf('_complexObserverEffect','observer method `'+effect.method+'` not defined'));}},_computeEffect:function(source,value,effect){var fn=this[effect.method];if(fn){var args=Polymer.Bind._marshalArgs(this.__data__,effect,source,value);if(args){var computedvalue=fn.apply(this,args);this.__setProperty(effect.name,computedvalue);}}else if(effect.dynamicFn){}else{this._warn(this._logf('_computeEffect','compute method `'+effect.method+'` not defined'));}},_annotatedComputationEffect:function(source,value,effect){var computedHost=this._rootDataHost||this;var fn=computedHost[effect.method];if(fn){var args=Polymer.Bind._marshalArgs(this.__data__,effect,source,value);if(args){var computedvalue=fn.apply(computedHost,args);this._applyEffectValue(effect,computedvalue);}}else if(effect.dynamicFn){}else{computedHost._warn(computedHost._logf('_annotatedComputationEffect','compute method `'+effect.method+'` not defined'));}},_marshalArgs:function(model,effect,path,value){var values=[];var args=effect.args;var bailoutEarly=args.length>1||effect.dynamicFn;for(var i=0,l=args.length;i<l;i++){var arg=args[i];var name=arg.name;var v;if(arg.literal){v=arg.value;}else if(path===name){v=value;}else{v=model[name];if(v===undefined&&arg.structured){v=Polymer.Base._get(name,model);}}
if(bailoutEarly&&v===undefined){return;}
if(arg.wildcard){var matches=Polymer.Path.isAncestor(path,name);values[i]={path:matches?path:name,value:matches?value:v,base:v};}else{values[i]=v;}}
return values;}});Polymer.Base._addFeature({_addPropertyEffect:function(property,kind,effect){var prop=Polymer.Bind.addPropertyEffect(this,property,kind,effect);prop.pathFn=this['_'+prop.kind+'PathEffect'];},_prepEffects:function(){Polymer.Bind.prepareModel(this);this._addAnnotationEffects(this._notes);},_prepBindings:function(){Polymer.Bind.createBindings(this);},_addPropertyEffects:function(properties){if(properties){for(var p in properties){var prop=properties[p];if(prop.observer){this._addObserverEffect(p,prop.observer);}
if(prop.computed){prop.readOnly=true;this._addComputedEffect(p,prop.computed);}
if(prop.notify){this._addPropertyEffect(p,'notify',{event:Polymer.CaseMap.camelToDashCase(p)+'-changed'});}
if(prop.reflectToAttribute){var attr=Polymer.CaseMap.camelToDashCase(p);if(attr[0]==='-'){this._warn(this._logf('_addPropertyEffects','Property '+p+' cannot be reflected to attribute '+attr+' because "-" is not a valid starting attribute name. Use a lowercase first letter for the property instead.'));}else{this._addPropertyEffect(p,'reflect',{attribute:attr});}}
if(prop.readOnly){Polymer.Bind.ensurePropertyEffects(this,p);}}}},_addComputedEffect:function(name,expression){var sig=this._parseMethod(expression);var dynamicFn=sig.dynamicFn;for(var i=0,arg;i<sig.args.length&&(arg=sig.args[i]);i++){this._addPropertyEffect(arg.model,'compute',{method:sig.method,args:sig.args,trigger:arg,name:name,dynamicFn:dynamicFn});}
if(dynamicFn){this._addPropertyEffect(sig.method,'compute',{method:sig.method,args:sig.args,trigger:null,name:name,dynamicFn:dynamicFn});}},_addObserverEffect:function(property,observer){this._addPropertyEffect(property,'observer',{method:observer,property:property});},_addComplexObserverEffects:function(observers){if(observers){for(var i=0,o;i<observers.length&&(o=observers[i]);i++){this._addComplexObserverEffect(o);}}},_addComplexObserverEffect:function(observer){var sig=this._parseMethod(observer);if(!sig){throw new Error('Malformed observer expression \''+observer+'\'');}
var dynamicFn=sig.dynamicFn;for(var i=0,arg;i<sig.args.length&&(arg=sig.args[i]);i++){this._addPropertyEffect(arg.model,'complexObserver',{method:sig.method,args:sig.args,trigger:arg,dynamicFn:dynamicFn});}
if(dynamicFn){this._addPropertyEffect(sig.method,'complexObserver',{method:sig.method,args:sig.args,trigger:null,dynamicFn:dynamicFn});}},_addAnnotationEffects:function(notes){for(var i=0,note;i<notes.length&&(note=notes[i]);i++){var b$=note.bindings;for(var j=0,binding;j<b$.length&&(binding=b$[j]);j++){this._addAnnotationEffect(binding,i);}}},_addAnnotationEffect:function(note,index){if(Polymer.Bind._shouldAddListener(note)){Polymer.Bind._addAnnotatedListener(this,index,note.name,note.parts[0].value,note.parts[0].event,note.parts[0].negate);}
for(var i=0;i<note.parts.length;i++){var part=note.parts[i];if(part.signature){this._addAnnotatedComputationEffect(note,part,index);}else if(!part.literal){if(note.kind==='attribute'&¬e.name[0]==='-'){this._warn(this._logf('_addAnnotationEffect','Cannot set attribute '+note.name+' because "-" is not a valid attribute starting character'));}else{this._addPropertyEffect(part.model,'annotation',{kind:note.kind,index:index,name:note.name,propertyName:note.propertyName,value:part.value,isCompound:note.isCompound,compoundIndex:part.compoundIndex,event:part.event,customEvent:part.customEvent,negate:part.negate});}}}},_addAnnotatedComputationEffect:function(note,part,index){var sig=part.signature;if(sig.static){this.__addAnnotatedComputationEffect('__static__',index,note,part,null);}else{for(var i=0,arg;i<sig.args.length&&(arg=sig.args[i]);i++){if(!arg.literal){this.__addAnnotatedComputationEffect(arg.model,index,note,part,arg);}}
if(sig.dynamicFn){this.__addAnnotatedComputationEffect(sig.method,index,note,part,null);}}},__addAnnotatedComputationEffect:function(property,index,note,part,trigger){this._addPropertyEffect(property,'annotatedComputation',{index:index,isCompound:note.isCompound,compoundIndex:part.compoundIndex,kind:note.kind,name:note.name,negate:part.negate,method:part.signature.method,args:part.signature.args,trigger:trigger,dynamicFn:part.signature.dynamicFn});},_parseMethod:function(expression){var m=expression.match(/([^\s]+?)\(([\s\S]*)\)/);if(m){var sig={method:m[1],static:true};if(this.getPropertyInfo(sig.method)!==Polymer.nob){sig.static=false;sig.dynamicFn=true;}
if(m[2].trim()){var args=m[2].replace(/\\,/g,',').split(',');return this._parseArgs(args,sig);}else{sig.args=Polymer.nar;return sig;}}},_parseArgs:function(argList,sig){sig.args=argList.map(function(rawArg){var arg=this._parseArg(rawArg);if(!arg.literal){sig.static=false;}
return arg;},this);return sig;},_parseArg:function(rawArg){var arg=rawArg.trim().replace(/,/g,',').replace(/\\(.)/g,'$1');var a={name:arg};var fc=arg[0];if(fc==='-'){fc=arg[1];}
if(fc>='0'&&fc<='9'){fc='#';}
switch(fc){case'\'':case'"':a.value=arg.slice(1,-1);a.literal=true;break;case'#':a.value=Number(arg);a.literal=true;break;}
if(!a.literal){a.model=Polymer.Path.root(arg);a.structured=Polymer.Path.isDeep(arg);if(a.structured){a.wildcard=arg.slice(-2)=='.*';if(a.wildcard){a.name=arg.slice(0,-2);}}}
return a;},_marshalInstanceEffects:function(){Polymer.Bind.prepareInstance(this);if(this._bindListeners){Polymer.Bind.setupBindListeners(this);}},_applyEffectValue:function(info,value){var node=this._nodes[info.index];var property=info.name;value=this._computeFinalAnnotationValue(node,property,value,info);if(info.kind=='attribute'){this.serializeValueToAttribute(value,property,node);}else{var pinfo=node._propertyInfo&&node._propertyInfo[property];if(pinfo&&pinfo.readOnly){return;}
this.__setProperty(property,value,Polymer.Settings.suppressBindingNotifications,node);}},_computeFinalAnnotationValue:function(node,property,value,info){if(info.negate){value=!value;}
if(info.isCompound){var storage=node.__compoundStorage__[property];storage[info.compoundIndex]=value;value=storage.join('');}
if(info.kind!=='attribute'){if(property==='className'){value=this._scopeElementClass(node,value);}
if(property==='textContent'||node.localName=='input'&&property=='value'){value=value==undefined?'':value;}}
return value;},_executeStaticEffects:function(){if(this._propertyEffects&&this._propertyEffects.__static__){this._effectEffects('__static__',null,this._propertyEffects.__static__);}}});(function(){var usePolyfillProto=Polymer.Settings.usePolyfillProto;var avoidInstanceProperties=Boolean(Object.getOwnPropertyDescriptor(document.documentElement,'properties'));Polymer.Base._addFeature({_setupConfigure:function(initialConfig){this._config={};this._handlers=[];this._aboveConfig=null;if(initialConfig){for(var i in initialConfig){if(initialConfig[i]!==undefined){this._config[i]=initialConfig[i];}}}},_marshalAttributes:function(){this._takeAttributesToModel(this._config);},_attributeChangedImpl:function(name){var model=this._clientsReadied?this:this._config;this._setAttributeToProperty(model,name);},_configValue:function(name,value){var info=this._propertyInfo[name];if(!info||!info.readOnly){this._config[name]=value;}},_beforeClientsReady:function(){this._configure();},_configure:function(){this._configureAnnotationReferences();this._configureInstanceProperties();this._aboveConfig=this.mixin({},this._config);var config={};for(var i=0;i<this.behaviors.length;i++){this._configureProperties(this.behaviors[i].properties,config);}
this._configureProperties(avoidInstanceProperties?this.__proto__.properties:this.properties,config);this.mixin(config,this._aboveConfig);this._config=config;if(this._clients&&this._clients.length){this._distributeConfig(this._config);}},_configureInstanceProperties:function(){for(var i in this._propertyEffects){if(!usePolyfillProto&&this.hasOwnProperty(i)){this._configValue(i,this[i]);delete this[i];}}},_configureProperties:function(properties,config){for(var i in properties){var c=properties[i];if(c.value!==undefined){var value=c.value;if(typeof value=='function'){value=value.call(this,this._config);}
config[i]=value;}}},_distributeConfig:function(config){var fx$=this._propertyEffects;if(fx$){for(var p in config){var fx=fx$[p];if(fx){for(var i=0,l=fx.length,x;i<l&&(x=fx[i]);i++){if(x.kind==='annotation'){var node=this._nodes[x.effect.index];var name=x.effect.propertyName;var isAttr=x.effect.kind=='attribute';var hasEffect=node._propertyEffects&&node._propertyEffects[name];if(node._configValue&&(hasEffect||!isAttr)){var value=p===x.effect.value?config[p]:this._get(x.effect.value,config);value=this._computeFinalAnnotationValue(node,name,value,x.effect);if(isAttr){value=node.deserialize(this.serialize(value),node._propertyInfo[name].type);}
node._configValue(name,value);}}}}}}},_afterClientsReady:function(){this._executeStaticEffects();this._applyConfig(this._config,this._aboveConfig);this._flushHandlers();},_applyConfig:function(config,aboveConfig){for(var n in config){if(this[n]===undefined){this.__setProperty(n,config[n],n in aboveConfig);}}},_notifyListener:function(fn,e){if(!Polymer.Bind._isEventBogus(e,e.target)){var value,path;if(e.detail){value=e.detail.value;path=e.detail.path;}
if(!this._clientsReadied){this._queueHandler([fn,e.target,value,path]);}else{return fn.call(this,e.target,value,path);}}},_queueHandler:function(args){this._handlers.push(args);},_flushHandlers:function(){var h$=this._handlers;for(var i=0,l=h$.length,h;i<l&&(h=h$[i]);i++){h[0].call(this,h[1],h[2],h[3]);}
this._handlers=[];}});}());(function(){'use strict';var Path=Polymer.Path;Polymer.Base._addFeature({notifyPath:function(path,value,fromAbove){var info={};var v=this._get(path,this,info);if(arguments.length===1){value=v;}
if(info.path){this._notifyPath(info.path,value,fromAbove);}},_notifyPath:function(path,value,fromAbove){var old=this._propertySetter(path,value);if(old!==value&&(old===old||value===value)){this._pathEffector(path,value);if(!fromAbove){this._notifyPathUp(path,value);}
return true;}},_getPathParts:function(path){if(Array.isArray(path)){var parts=[];for(var i=0;i<path.length;i++){var args=path[i].toString().split('.');for(var j=0;j<args.length;j++){parts.push(args[j]);}}
return parts;}else{return path.toString().split('.');}},set:function(path,value,root){var prop=root||this;var parts=this._getPathParts(path);var array;var last=parts[parts.length-1];if(parts.length>1){for(var i=0;i<parts.length-1;i++){var part=parts[i];if(array&&part[0]=='#'){prop=Polymer.Collection.get(array).getItem(part);}else{prop=prop[part];if(array&&parseInt(part,10)==part){parts[i]=Polymer.Collection.get(array).getKey(prop);}}
if(!prop){return;}
array=Array.isArray(prop)?prop:null;}
if(array){var coll=Polymer.Collection.get(array);var old,key;if(last[0]=='#'){key=last;old=coll.getItem(key);last=array.indexOf(old);coll.setItem(key,value);}else if(parseInt(last,10)==last){old=prop[last];key=coll.getKey(old);parts[i]=key;coll.setItem(key,value);}}
prop[last]=value;if(!root){this._notifyPath(parts.join('.'),value);}}else{prop[path]=value;}},get:function(path,root){return this._get(path,root);},_get:function(path,root,info){var prop=root||this;var parts=this._getPathParts(path);var array;for(var i=0;i<parts.length;i++){if(!prop){return;}
var part=parts[i];if(array&&part[0]=='#'){prop=Polymer.Collection.get(array).getItem(part);}else{prop=prop[part];if(info&&array&&parseInt(part,10)==part){parts[i]=Polymer.Collection.get(array).getKey(prop);}}
array=Array.isArray(prop)?prop:null;}
if(info){info.path=parts.join('.');}
return prop;},_pathEffector:function(path,value){var model=Path.root(path);var fx$=this._propertyEffects&&this._propertyEffects[model];if(fx$){for(var i=0,fx;i<fx$.length&&(fx=fx$[i]);i++){var fxFn=fx.pathFn;if(fxFn){fxFn.call(this,path,value,fx.effect);}}}
if(this._boundPaths){this._notifyBoundPaths(path,value);}},_annotationPathEffect:function(path,value,effect){if(Path.matches(effect.value,false,path)){Polymer.Bind._annotationEffect.call(this,path,value,effect);}else if(!effect.negate&&Path.isDescendant(effect.value,path)){var node=this._nodes[effect.index];if(node&&node._notifyPath){var newPath=Path.translate(effect.value,effect.name,path);node._notifyPath(newPath,value,true);}}},_complexObserverPathEffect:function(path,value,effect){if(Path.matches(effect.trigger.name,effect.trigger.wildcard,path)){Polymer.Bind._complexObserverEffect.call(this,path,value,effect);}},_computePathEffect:function(path,value,effect){if(Path.matches(effect.trigger.name,effect.trigger.wildcard,path)){Polymer.Bind._computeEffect.call(this,path,value,effect);}},_annotatedComputationPathEffect:function(path,value,effect){if(Path.matches(effect.trigger.name,effect.trigger.wildcard,path)){Polymer.Bind._annotatedComputationEffect.call(this,path,value,effect);}},linkPaths:function(to,from){this._boundPaths=this._boundPaths||{};if(from){this._boundPaths[to]=from;}else{this.unlinkPaths(to);}},unlinkPaths:function(path){if(this._boundPaths){delete this._boundPaths[path];}},_notifyBoundPaths:function(path,value){for(var a in this._boundPaths){var b=this._boundPaths[a];if(Path.isDescendant(a,path)){this._notifyPath(Path.translate(a,b,path),value);}else if(Path.isDescendant(b,path)){this._notifyPath(Path.translate(b,a,path),value);}}},_notifyPathUp:function(path,value){var rootName=Path.root(path);var dashCaseName=Polymer.CaseMap.camelToDashCase(rootName);var eventName=dashCaseName+this._EVENT_CHANGED;this.fire(eventName,{path:path,value:value},{bubbles:false,_useCache:Polymer.Settings.eventDataCache||!Polymer.Settings.isIE});},_EVENT_CHANGED:'-changed',notifySplices:function(path,splices){var info={};var array=this._get(path,this,info);this._notifySplices(array,info.path,splices);},_notifySplices:function(array,path,splices){var change={keySplices:Polymer.Collection.applySplices(array,splices),indexSplices:splices};var splicesPath=path+'.splices';this._notifyPath(splicesPath,change);this._notifyPath(path+'.length',array.length);this.__data__[splicesPath]={keySplices:null,indexSplices:null};},_notifySplice:function(array,path,index,added,removed){this._notifySplices(array,path,[{index:index,addedCount:added,removed:removed,object:array,type:'splice'}]);},push:function(path){var info={};var array=this._get(path,this,info);var args=Array.prototype.slice.call(arguments,1);var len=array.length;var ret=array.push.apply(array,args);if(args.length){this._notifySplice(array,info.path,len,args.length,[]);}
return ret;},pop:function(path){var info={};var array=this._get(path,this,info);var hadLength=Boolean(array.length);var args=Array.prototype.slice.call(arguments,1);var ret=array.pop.apply(array,args);if(hadLength){this._notifySplice(array,info.path,array.length,0,[ret]);}
return ret;},splice:function(path,start){var info={};var array=this._get(path,this,info);if(start<0){start=array.length-Math.floor(-start);}else{start=Math.floor(start);}
if(!start){start=0;}
var args=Array.prototype.slice.call(arguments,1);var ret=array.splice.apply(array,args);var addedCount=Math.max(args.length-2,0);if(addedCount||ret.length){this._notifySplice(array,info.path,start,addedCount,ret);}
return ret;},shift:function(path){var info={};var array=this._get(path,this,info);var hadLength=Boolean(array.length);var args=Array.prototype.slice.call(arguments,1);var ret=array.shift.apply(array,args);if(hadLength){this._notifySplice(array,info.path,0,0,[ret]);}
return ret;},unshift:function(path){var info={};var array=this._get(path,this,info);var args=Array.prototype.slice.call(arguments,1);var ret=array.unshift.apply(array,args);if(args.length){this._notifySplice(array,info.path,0,args.length,[]);}
return ret;},prepareModelNotifyPath:function(model){this.mixin(model,{fire:Polymer.Base.fire,_getEvent:Polymer.Base._getEvent,__eventCache:Polymer.Base.__eventCache,notifyPath:Polymer.Base.notifyPath,_get:Polymer.Base._get,_EVENT_CHANGED:Polymer.Base._EVENT_CHANGED,_notifyPath:Polymer.Base._notifyPath,_notifyPathUp:Polymer.Base._notifyPathUp,_pathEffector:Polymer.Base._pathEffector,_annotationPathEffect:Polymer.Base._annotationPathEffect,_complexObserverPathEffect:Polymer.Base._complexObserverPathEffect,_annotatedComputationPathEffect:Polymer.Base._annotatedComputationPathEffect,_computePathEffect:Polymer.Base._computePathEffect,_notifyBoundPaths:Polymer.Base._notifyBoundPaths,_getPathParts:Polymer.Base._getPathParts});}});}());Polymer.Base._addFeature({resolveUrl:function(url){var module=Polymer.DomModule.import(this.is);var root='';if(module){var assetPath=module.getAttribute('assetpath')||'';root=Polymer.ResolveUrl.resolveUrl(assetPath,module.ownerDocument.baseURI);}
return Polymer.ResolveUrl.resolveUrl(url,root);}});Polymer.CssParse=function(){return{parse:function(text){text=this._clean(text);return this._parseCss(this._lex(text),text);},_clean:function(cssText){return cssText.replace(this._rx.comments,'').replace(this._rx.port,'');},_lex:function(text){var root={start:0,end:text.length};var n=root;for(var i=0,l=text.length;i<l;i++){switch(text[i]){case this.OPEN_BRACE:if(!n.rules){n.rules=[];}
var p=n;var previous=p.rules[p.rules.length-1];n={start:i+1,parent:p,previous:previous};p.rules.push(n);break;case this.CLOSE_BRACE:n.end=i+1;n=n.parent||root;break;}}
return root;},_parseCss:function(node,text){var t=text.substring(node.start,node.end-1);node.parsedCssText=node.cssText=t.trim();if(node.parent){var ss=node.previous?node.previous.end:node.parent.start;t=text.substring(ss,node.start-1);t=this._expandUnicodeEscapes(t);t=t.replace(this._rx.multipleSpaces,' ');t=t.substring(t.lastIndexOf(';')+1);var s=node.parsedSelector=node.selector=t.trim();node.atRule=s.indexOf(this.AT_START)===0;if(node.atRule){if(s.indexOf(this.MEDIA_START)===0){node.type=this.types.MEDIA_RULE;}else if(s.match(this._rx.keyframesRule)){node.type=this.types.KEYFRAMES_RULE;node.keyframesName=node.selector.split(this._rx.multipleSpaces).pop();}}else{if(s.indexOf(this.VAR_START)===0){node.type=this.types.MIXIN_RULE;}else{node.type=this.types.STYLE_RULE;}}}
var r$=node.rules;if(r$){for(var i=0,l=r$.length,r;i<l&&(r=r$[i]);i++){this._parseCss(r,text);}}
return node;},_expandUnicodeEscapes:function(s){return s.replace(/\\([0-9a-f]{1,6})\s/gi,function(){var code=arguments[1],repeat=6-code.length;while(repeat--){code='0'+code;}
return'\\'+code;});},stringify:function(node,preserveProperties,text){text=text||'';var cssText='';if(node.cssText||node.rules){var r$=node.rules;if(r$&&!this._hasMixinRules(r$)){for(var i=0,l=r$.length,r;i<l&&(r=r$[i]);i++){cssText=this.stringify(r,preserveProperties,cssText);}}else{cssText=preserveProperties?node.cssText:this.removeCustomProps(node.cssText);cssText=cssText.trim();if(cssText){cssText=' '+cssText+'\n';}}}
if(cssText){if(node.selector){text+=node.selector+' '+this.OPEN_BRACE+'\n';}
text+=cssText;if(node.selector){text+=this.CLOSE_BRACE+'\n\n';}}
return text;},_hasMixinRules:function(rules){return rules[0].selector.indexOf(this.VAR_START)===0;},removeCustomProps:function(cssText){cssText=this.removeCustomPropAssignment(cssText);return this.removeCustomPropApply(cssText);},removeCustomPropAssignment:function(cssText){return cssText.replace(this._rx.customProp,'').replace(this._rx.mixinProp,'');},removeCustomPropApply:function(cssText){return cssText.replace(this._rx.mixinApply,'').replace(this._rx.varApply,'');},types:{STYLE_RULE:1,KEYFRAMES_RULE:7,MEDIA_RULE:4,MIXIN_RULE:1000},OPEN_BRACE:'{',CLOSE_BRACE:'}',_rx:{comments:/\/\*[^*]*\*+([^\/*][^*]*\*+)*\//gim,port:/@import[^;]*;/gim,customProp:/(?:^[^;\-\s}]+)?--[^;{}]*?:[^{};]*?(?:[;\n]|$)/gim,mixinProp:/(?:^[^;\-\s}]+)?--[^;{}]*?:[^{};]*?{[^}]*?}(?:[;\n]|$)?/gim,mixinApply:/@apply\s*\(?[^);]*\)?\s*(?:[;\n]|$)?/gim,varApply:/[^;:]*?:[^;]*?var\([^;]*\)(?:[;\n]|$)?/gim,keyframesRule:/^@[^\s]*keyframes/,multipleSpaces:/\s+/g},VAR_START:'--',MEDIA_START:'@media',AT_START:'@'};}();Polymer.StyleUtil=function(){var settings=Polymer.Settings;return{NATIVE_VARIABLES:Polymer.Settings.useNativeCSSProperties,MODULE_STYLES_SELECTOR:'style, link[rel=import][type~=css], template',INCLUDE_ATTR:'include',toCssText:function(rules,callback){if(typeof rules==='string'){rules=this.parser.parse(rules);}
if(callback){this.forEachRule(rules,callback);}
return this.parser.stringify(rules,this.NATIVE_VARIABLES);},forRulesInStyles:function(styles,styleRuleCallback,keyframesRuleCallback){if(styles){for(var i=0,l=styles.length,s;i<l&&(s=styles[i]);i++){this.forEachRuleInStyle(s,styleRuleCallback,keyframesRuleCallback);}}},forActiveRulesInStyles:function(styles,styleRuleCallback,keyframesRuleCallback){if(styles){for(var i=0,l=styles.length,s;i<l&&(s=styles[i]);i++){this.forEachRuleInStyle(s,styleRuleCallback,keyframesRuleCallback,true);}}},rulesForStyle:function(style){if(!style.__cssRules&&style.textContent){style.__cssRules=this.parser.parse(style.textContent);}
return style.__cssRules;},isKeyframesSelector:function(rule){return rule.parent&&rule.parent.type===this.ruleTypes.KEYFRAMES_RULE;},forEachRuleInStyle:function(style,styleRuleCallback,keyframesRuleCallback,onlyActiveRules){var rules=this.rulesForStyle(style);var styleCallback,keyframeCallback;if(styleRuleCallback){styleCallback=function(rule){styleRuleCallback(rule,style);};}
if(keyframesRuleCallback){keyframeCallback=function(rule){keyframesRuleCallback(rule,style);};}
this.forEachRule(rules,styleCallback,keyframeCallback,onlyActiveRules);},forEachRule:function(node,styleRuleCallback,keyframesRuleCallback,onlyActiveRules){if(!node){return;}
var skipRules=false;if(onlyActiveRules){if(node.type===this.ruleTypes.MEDIA_RULE){var matchMedia=node.selector.match(this.rx.MEDIA_MATCH);if(matchMedia){if(!window.matchMedia(matchMedia[1]).matches){skipRules=true;}}}}
if(node.type===this.ruleTypes.STYLE_RULE){styleRuleCallback(node);}else if(keyframesRuleCallback&&node.type===this.ruleTypes.KEYFRAMES_RULE){keyframesRuleCallback(node);}else if(node.type===this.ruleTypes.MIXIN_RULE){skipRules=true;}
var r$=node.rules;if(r$&&!skipRules){for(var i=0,l=r$.length,r;i<l&&(r=r$[i]);i++){this.forEachRule(r,styleRuleCallback,keyframesRuleCallback,onlyActiveRules);}}},applyCss:function(cssText,moniker,target,contextNode){var style=this.createScopeStyle(cssText,moniker);return this.applyStyle(style,target,contextNode);},applyStyle:function(style,target,contextNode){target=target||document.head;var after=contextNode&&contextNode.nextSibling||target.firstChild;this.__lastHeadApplyNode=style;return target.insertBefore(style,after);},createScopeStyle:function(cssText,moniker){var style=document.createElement('style');if(moniker){style.setAttribute('scope',moniker);}
style.textContent=cssText;return style;},__lastHeadApplyNode:null,applyStylePlaceHolder:function(moniker){var placeHolder=document.createComment(' Shady DOM styles for '+moniker+' ');var after=this.__lastHeadApplyNode?this.__lastHeadApplyNode.nextSibling:null;var scope=document.head;scope.insertBefore(placeHolder,after||scope.firstChild);this.__lastHeadApplyNode=placeHolder;return placeHolder;},cssFromModules:function(moduleIds,warnIfNotFound){var modules=moduleIds.trim().split(' ');var cssText='';for(var i=0;i<modules.length;i++){cssText+=this.cssFromModule(modules[i],warnIfNotFound);}
return cssText;},cssFromModule:function(moduleId,warnIfNotFound){var m=Polymer.DomModule.import(moduleId);if(m&&!m._cssText){m._cssText=this.cssFromElement(m);}
if(!m&&warnIfNotFound){console.warn('Could not find style data in module named',moduleId);}
return m&&m._cssText||'';},cssFromElement:function(element){var cssText='';var content=element.content||element;var e$=Polymer.TreeApi.arrayCopy(content.querySelectorAll(this.MODULE_STYLES_SELECTOR));for(var i=0,e;i<e$.length;i++){e=e$[i];if(e.localName==='template'){if(!e.hasAttribute('preserve-content')){cssText+=this.cssFromElement(e);}}else{if(e.localName==='style'){var include=e.getAttribute(this.INCLUDE_ATTR);if(include){cssText+=this.cssFromModules(include,true);}
e=e.__appliedElement||e;e.parentNode.removeChild(e);cssText+=this.resolveCss(e.textContent,element.ownerDocument);}else if(e.import&&e.import.body){cssText+=this.resolveCss(e.import.body.textContent,e.import);}}}
return cssText;},styleIncludesToTemplate:function(targetTemplate){var styles=targetTemplate.content.querySelectorAll('style[include]');for(var i=0,s;i<styles.length;i++){s=styles[i];s.parentNode.insertBefore(this._includesToFragment(s.getAttribute('include')),s);}},_includesToFragment:function(styleIncludes){var includeArray=styleIncludes.trim().split(' ');var frag=document.createDocumentFragment();for(var i=0;i<includeArray.length;i++){var t=Polymer.DomModule.import(includeArray[i],'template');if(t){this._addStylesToFragment(frag,t.content);}}
return frag;},_addStylesToFragment:function(frag,source){var s$=source.querySelectorAll('style');for(var i=0,s;i<s$.length;i++){s=s$[i];var include=s.getAttribute('include');if(include){frag.appendChild(this._includesToFragment(include));}
if(s.textContent){frag.appendChild(s.cloneNode(true));}}},isTargetedBuild:function(buildType){return settings.useNativeShadow?buildType==='shadow':buildType==='shady';},cssBuildTypeForModule:function(module){var dm=Polymer.DomModule.import(module);if(dm){return this.getCssBuildType(dm);}},getCssBuildType:function(element){return element.getAttribute('css-build');},_findMatchingParen:function(text,start){var level=0;for(var i=start,l=text.length;i<l;i++){switch(text[i]){case'(':level++;break;case')':if(--level===0){return i;}
break;}}
return-1;},processVariableAndFallback:function(str,callback){var start=str.indexOf('var(');if(start===-1){return callback(str,'','','');}
var end=this._findMatchingParen(str,start+3);var inner=str.substring(start+4,end);var prefix=str.substring(0,start);var suffix=this.processVariableAndFallback(str.substring(end+1),callback);var comma=inner.indexOf(',');if(comma===-1){return callback(prefix,inner.trim(),'',suffix);}
var value=inner.substring(0,comma).trim();var fallback=inner.substring(comma+1).trim();return callback(prefix,value,fallback,suffix);},rx:{VAR_ASSIGN:/(?:^|[;\s{]\s*)(--[\w-]*?)\s*:\s*(?:([^;{]*)|{([^}]*)})(?:(?=[;\s}])|$)/gi,MIXIN_MATCH:/(?:^|\W+)@apply\s*\(?([^);\n]*)\)?/gi,VAR_CONSUMED:/(--[\w-]+)\s*([:,;)]|$)/gi,ANIMATION_MATCH:/(animation\s*:)|(animation-name\s*:)/,MEDIA_MATCH:/@media[^(]*(\([^)]*\))/,IS_VAR:/^--/,BRACKETED:/\{[^}]*\}/g,HOST_PREFIX:'(?:^|[^.#[:])',HOST_SUFFIX:'($|[.:[\\s>+~])'},resolveCss:Polymer.ResolveUrl.resolveCss,parser:Polymer.CssParse,ruleTypes:Polymer.CssParse.types};}();Polymer.StyleTransformer=function(){var styleUtil=Polymer.StyleUtil;var settings=Polymer.Settings;var api={dom:function(node,scope,useAttr,shouldRemoveScope){this._transformDom(node,scope||'',useAttr,shouldRemoveScope);},_transformDom:function(node,selector,useAttr,shouldRemoveScope){if(node.setAttribute){this.element(node,selector,useAttr,shouldRemoveScope);}
var c$=Polymer.dom(node).childNodes;for(var i=0;i<c$.length;i++){this._transformDom(c$[i],selector,useAttr,shouldRemoveScope);}},element:function(element,scope,useAttr,shouldRemoveScope){if(useAttr){if(shouldRemoveScope){element.removeAttribute(SCOPE_NAME);}else{element.setAttribute(SCOPE_NAME,scope);}}else{if(scope){if(element.classList){if(shouldRemoveScope){element.classList.remove(SCOPE_NAME);element.classList.remove(scope);}else{element.classList.add(SCOPE_NAME);element.classList.add(scope);}}else if(element.getAttribute){var c=element.getAttribute(CLASS);if(shouldRemoveScope){if(c){element.setAttribute(CLASS,c.replace(SCOPE_NAME,'').replace(scope,''));}}else{element.setAttribute(CLASS,(c?c+' ':'')+SCOPE_NAME+' '+scope);}}}}},elementStyles:function(element,callback){var styles=element._styles;var cssText='';var cssBuildType=element.__cssBuild;var passthrough=settings.useNativeShadow||cssBuildType==='shady';var cb;if(passthrough){var self=this;cb=function(rule){rule.selector=self._slottedToContent(rule.selector);rule.selector=rule.selector.replace(ROOT,':host > *');if(callback){callback(rule);}};}
for(var i=0,l=styles.length,s;i<l&&(s=styles[i]);i++){var rules=styleUtil.rulesForStyle(s);cssText+=passthrough?styleUtil.toCssText(rules,cb):this.css(rules,element.is,element.extends,callback,element._scopeCssViaAttr)+'\n\n';}
return cssText.trim();},css:function(rules,scope,ext,callback,useAttr){var hostScope=this._calcHostScope(scope,ext);scope=this._calcElementScope(scope,useAttr);var self=this;return styleUtil.toCssText(rules,function(rule){if(!rule.isScoped){self.rule(rule,scope,hostScope);rule.isScoped=true;}
if(callback){callback(rule,scope,hostScope);}});},_calcElementScope:function(scope,useAttr){if(scope){return useAttr?CSS_ATTR_PREFIX+scope+CSS_ATTR_SUFFIX:CSS_CLASS_PREFIX+scope;}else{return'';}},_calcHostScope:function(scope,ext){return ext?'[is='+scope+']':scope;},rule:function(rule,scope,hostScope){this._transformRule(rule,this._transformComplexSelector,scope,hostScope);},_transformRule:function(rule,transformer,scope,hostScope){rule.selector=rule.transformedSelector=this._transformRuleCss(rule,transformer,scope,hostScope);},_transformRuleCss:function(rule,transformer,scope,hostScope){var p$=rule.selector.split(COMPLEX_SELECTOR_SEP);if(!styleUtil.isKeyframesSelector(rule)){for(var i=0,l=p$.length,p;i<l&&(p=p$[i]);i++){p$[i]=transformer.call(this,p,scope,hostScope);}}
return p$.join(COMPLEX_SELECTOR_SEP);},_transformComplexSelector:function(selector,scope,hostScope){var stop=false;var hostContext=false;var self=this;selector=selector.trim();selector=this._slottedToContent(selector);selector=selector.replace(ROOT,':host > *');selector=selector.replace(CONTENT_START,HOST+' $1');selector=selector.replace(SIMPLE_SELECTOR_SEP,function(m,c,s){if(!stop){var info=self._transformCompoundSelector(s,c,scope,hostScope);stop=stop||info.stop;hostContext=hostContext||info.hostContext;c=info.combinator;s=info.value;}else{s=s.replace(SCOPE_JUMP,' ');}
return c+s;});if(hostContext){selector=selector.replace(HOST_CONTEXT_PAREN,function(m,pre,paren,post){return pre+paren+' '+hostScope+post+COMPLEX_SELECTOR_SEP+' '+pre+hostScope+paren+post;});}
return selector;},_transformCompoundSelector:function(selector,combinator,scope,hostScope){var jumpIndex=selector.search(SCOPE_JUMP);var hostContext=false;if(selector.indexOf(HOST_CONTEXT)>=0){hostContext=true;}else if(selector.indexOf(HOST)>=0){selector=this._transformHostSelector(selector,hostScope);}else if(jumpIndex!==0){selector=scope?this._transformSimpleSelector(selector,scope):selector;}
if(selector.indexOf(CONTENT)>=0){combinator='';}
var stop;if(jumpIndex>=0){selector=selector.replace(SCOPE_JUMP,' ');stop=true;}
return{value:selector,combinator:combinator,stop:stop,hostContext:hostContext};},_transformSimpleSelector:function(selector,scope){var p$=selector.split(PSEUDO_PREFIX);p$[0]+=scope;return p$.join(PSEUDO_PREFIX);},_transformHostSelector:function(selector,hostScope){var m=selector.match(HOST_PAREN);var paren=m&&m[2].trim()||'';if(paren){if(!paren[0].match(SIMPLE_SELECTOR_PREFIX)){var typeSelector=paren.split(SIMPLE_SELECTOR_PREFIX)[0];if(typeSelector===hostScope){return paren;}else{return SELECTOR_NO_MATCH;}}else{return selector.replace(HOST_PAREN,function(m,host,paren){return hostScope+paren;});}}else{return selector.replace(HOST,hostScope);}},documentRule:function(rule){rule.selector=rule.parsedSelector;this.normalizeRootSelector(rule);if(!settings.useNativeShadow){this._transformRule(rule,this._transformDocumentSelector);}},normalizeRootSelector:function(rule){rule.selector=rule.selector.replace(ROOT,'html');},_transformDocumentSelector:function(selector){return selector.match(SCOPE_JUMP)?this._transformComplexSelector(selector,SCOPE_DOC_SELECTOR):this._transformSimpleSelector(selector.trim(),SCOPE_DOC_SELECTOR);},_slottedToContent:function(cssText){return cssText.replace(SLOTTED_PAREN,CONTENT+'> $1');},SCOPE_NAME:'style-scope'};var SCOPE_NAME=api.SCOPE_NAME;var SCOPE_DOC_SELECTOR=':not(['+SCOPE_NAME+'])'+':not(.'+SCOPE_NAME+')';var COMPLEX_SELECTOR_SEP=',';var SIMPLE_SELECTOR_SEP=/(^|[\s>+~]+)((?:\[.+?\]|[^\s>+~=\[])+)/g;var SIMPLE_SELECTOR_PREFIX=/[[.:#*]/;var HOST=':host';var ROOT=':root';var HOST_PAREN=/(:host)(?:\(((?:\([^)(]*\)|[^)(]*)+?)\))/;var HOST_CONTEXT=':host-context';var HOST_CONTEXT_PAREN=/(.*)(?::host-context)(?:\(((?:\([^)(]*\)|[^)(]*)+?)\))(.*)/;var CONTENT='::content';var SCOPE_JUMP=/::content|::shadow|\/deep\//;var CSS_CLASS_PREFIX='.';var CSS_ATTR_PREFIX='['+SCOPE_NAME+'~=';var CSS_ATTR_SUFFIX=']';var PSEUDO_PREFIX=':';var CLASS='class';var CONTENT_START=new RegExp('^('+CONTENT+')');var SELECTOR_NO_MATCH='should_not_match';var SLOTTED_PAREN=/(?:::slotted)(?:\(((?:\([^)(]*\)|[^)(]*)+?)\))/g;return api;}();Polymer.StyleExtends=function(){var styleUtil=Polymer.StyleUtil;return{hasExtends:function(cssText){return Boolean(cssText.match(this.rx.EXTEND));},transform:function(style){var rules=styleUtil.rulesForStyle(style);var self=this;styleUtil.forEachRule(rules,function(rule){self._mapRuleOntoParent(rule);if(rule.parent){var m;while(m=self.rx.EXTEND.exec(rule.cssText)){var extend=m[1];var extendor=self._findExtendor(extend,rule);if(extendor){self._extendRule(rule,extendor);}}}
rule.cssText=rule.cssText.replace(self.rx.EXTEND,'');});return styleUtil.toCssText(rules,function(rule){if(rule.selector.match(self.rx.STRIP)){rule.cssText='';}},true);},_mapRuleOntoParent:function(rule){if(rule.parent){var map=rule.parent.map||(rule.parent.map={});var parts=rule.selector.split(',');for(var i=0,p;i<parts.length;i++){p=parts[i];map[p.trim()]=rule;}
return map;}},_findExtendor:function(extend,rule){return rule.parent&&rule.parent.map&&rule.parent.map[extend]||this._findExtendor(extend,rule.parent);},_extendRule:function(target,source){if(target.parent!==source.parent){this._cloneAndAddRuleToParent(source,target.parent);}
target.extends=target.extends||[];target.extends.push(source);source.selector=source.selector.replace(this.rx.STRIP,'');source.selector=(source.selector&&source.selector+',\n')+target.selector;if(source.extends){source.extends.forEach(function(e){this._extendRule(target,e);},this);}},_cloneAndAddRuleToParent:function(rule,parent){rule=Object.create(rule);rule.parent=parent;if(rule.extends){rule.extends=rule.extends.slice();}
parent.rules.push(rule);},rx:{EXTEND:/@extends\(([^)]*)\)\s*?;/gim,STRIP:/%[^,]*$/}};}();Polymer.ApplyShim=function(){'use strict';var styleUtil=Polymer.StyleUtil;var MIXIN_MATCH=styleUtil.rx.MIXIN_MATCH;var VAR_ASSIGN=styleUtil.rx.VAR_ASSIGN;var BAD_VAR=/var\(\s*(--[^,]*),\s*(--[^)]*)\)/g;var APPLY_NAME_CLEAN=/;\s*/m;var INITIAL_INHERIT=/^\s*(initial)|(inherit)\s*$/;var MIXIN_VAR_SEP='_-_';var mixinMap={};function mapSet(name,props){name=name.trim();mixinMap[name]={properties:props,dependants:{}};}
function mapGet(name){name=name.trim();return mixinMap[name];}
function replaceInitialOrInherit(property,value){var match=INITIAL_INHERIT.exec(value);if(match){if(match[1]){value=ApplyShim._getInitialValueForProperty(property);}else{value='apply-shim-inherit';}}
return value;}
function cssTextToMap(text){var props=text.split(';');var property,value;var out={};for(var i=0,p,sp;i<props.length;i++){p=props[i];if(p){sp=p.split(':');if(sp.length>1){property=sp[0].trim();value=replaceInitialOrInherit(property,sp.slice(1).join(':'));out[property]=value;}}}
return out;}
function invalidateMixinEntry(mixinEntry){var currentProto=ApplyShim.__currentElementProto;var currentElementName=currentProto&¤tProto.is;for(var elementName in mixinEntry.dependants){if(elementName!==currentElementName){mixinEntry.dependants[elementName].__applyShimInvalid=true;}}}
function produceCssProperties(matchText,propertyName,valueProperty,valueMixin){if(valueProperty){styleUtil.processVariableAndFallback(valueProperty,function(prefix,value){if(value&&mapGet(value)){valueMixin='@apply '+value+';';}});}
if(!valueMixin){return matchText;}
var mixinAsProperties=consumeCssProperties(valueMixin);var prefix=matchText.slice(0,matchText.indexOf('--'));var mixinValues=cssTextToMap(mixinAsProperties);var combinedProps=mixinValues;var mixinEntry=mapGet(propertyName);var oldProps=mixinEntry&&mixinEntry.properties;if(oldProps){combinedProps=Object.create(oldProps);combinedProps=Polymer.Base.mixin(combinedProps,mixinValues);}else{mapSet(propertyName,combinedProps);}
var out=[];var p,v;var needToInvalidate=false;for(p in combinedProps){v=mixinValues[p];if(v===undefined){v='initial';}
if(oldProps&&!(p in oldProps)){needToInvalidate=true;}
out.push(propertyName+MIXIN_VAR_SEP+p+': '+v);}
if(needToInvalidate){invalidateMixinEntry(mixinEntry);}
if(mixinEntry){mixinEntry.properties=combinedProps;}
if(valueProperty){prefix=matchText+';'+prefix;}
return prefix+out.join('; ')+';';}
function fixVars(matchText,varA,varB){return'var('+varA+','+'var('+varB+'))';}
function atApplyToCssProperties(mixinName,fallbacks){mixinName=mixinName.replace(APPLY_NAME_CLEAN,'');var vars=[];var mixinEntry=mapGet(mixinName);if(!mixinEntry){mapSet(mixinName,{});mixinEntry=mapGet(mixinName);}
if(mixinEntry){var currentProto=ApplyShim.__currentElementProto;if(currentProto){mixinEntry.dependants[currentProto.is]=currentProto;}
var p,parts,f;for(p in mixinEntry.properties){f=fallbacks&&fallbacks[p];parts=[p,': var(',mixinName,MIXIN_VAR_SEP,p];if(f){parts.push(',',f);}
parts.push(')');vars.push(parts.join(''));}}
return vars.join('; ');}
function consumeCssProperties(text){var m;while(m=MIXIN_MATCH.exec(text)){var matchText=m[0];var mixinName=m[1];var idx=m.index;var applyPos=idx+matchText.indexOf('@apply');var afterApplyPos=idx+matchText.length;var textBeforeApply=text.slice(0,applyPos);var textAfterApply=text.slice(afterApplyPos);var defaults=cssTextToMap(textBeforeApply);var replacement=atApplyToCssProperties(mixinName,defaults);text=[textBeforeApply,replacement,textAfterApply].join('');MIXIN_MATCH.lastIndex=idx+replacement.length;}
return text;}
var ApplyShim={_measureElement:null,_map:mixinMap,_separator:MIXIN_VAR_SEP,transform:function(styles,elementProto){this.__currentElementProto=elementProto;styleUtil.forRulesInStyles(styles,this._boundFindDefinitions);styleUtil.forRulesInStyles(styles,this._boundFindApplications);if(elementProto){elementProto.__applyShimInvalid=false;}
this.__currentElementProto=null;},_findDefinitions:function(rule){var cssText=rule.parsedCssText;cssText=cssText.replace(BAD_VAR,fixVars);cssText=cssText.replace(VAR_ASSIGN,produceCssProperties);rule.cssText=cssText;if(rule.selector===':root'){rule.selector=':host > *';}},_findApplications:function(rule){rule.cssText=consumeCssProperties(rule.cssText);},transformRule:function(rule){this._findDefinitions(rule);this._findApplications(rule);},_getInitialValueForProperty:function(property){if(!this._measureElement){this._measureElement=document.createElement('meta');this._measureElement.style.all='initial';document.head.appendChild(this._measureElement);}
return window.getComputedStyle(this._measureElement).getPropertyValue(property);}};ApplyShim._boundTransformRule=ApplyShim.transformRule.bind(ApplyShim);ApplyShim._boundFindDefinitions=ApplyShim._findDefinitions.bind(ApplyShim);ApplyShim._boundFindApplications=ApplyShim._findApplications.bind(ApplyShim);return ApplyShim;}();(function(){var prepElement=Polymer.Base._prepElement;var nativeShadow=Polymer.Settings.useNativeShadow;var styleUtil=Polymer.StyleUtil;var styleTransformer=Polymer.StyleTransformer;var styleExtends=Polymer.StyleExtends;var applyShim=Polymer.ApplyShim;var settings=Polymer.Settings;Polymer.Base._addFeature({_prepElement:function(element){if(this._encapsulateStyle&&this.__cssBuild!=='shady'){styleTransformer.element(element,this.is,this._scopeCssViaAttr);}
prepElement.call(this,element);},_prepStyles:function(){if(this._encapsulateStyle===undefined){this._encapsulateStyle=!nativeShadow;}
if(!nativeShadow){this._scopeStyle=styleUtil.applyStylePlaceHolder(this.is);}
this.__cssBuild=styleUtil.cssBuildTypeForModule(this.is);},_prepShimStyles:function(){if(this._template){var hasTargetedCssBuild=styleUtil.isTargetedBuild(this.__cssBuild);if(settings.useNativeCSSProperties&&this.__cssBuild==='shadow'&&hasTargetedCssBuild){if(settings.preserveStyleIncludes){styleUtil.styleIncludesToTemplate(this._template);}
return;}
this._styles=this._styles||this._collectStyles();if(settings.useNativeCSSProperties&&!this.__cssBuild){applyShim.transform(this._styles,this);}
var cssText=settings.useNativeCSSProperties&&hasTargetedCssBuild?this._styles.length&&this._styles[0].textContent.trim():styleTransformer.elementStyles(this);this._prepStyleProperties();if(!this._needsStyleProperties()&&cssText){styleUtil.applyCss(cssText,this.is,nativeShadow?this._template.content:null,this._scopeStyle);}}else{this._styles=[];}},_collectStyles:function(){var styles=[];var cssText='',m$=this.styleModules;if(m$){for(var i=0,l=m$.length,m;i<l&&(m=m$[i]);i++){cssText+=styleUtil.cssFromModule(m);}}
cssText+=styleUtil.cssFromModule(this.is);var p=this._template&&this._template.parentNode;if(this._template&&(!p||p.id.toLowerCase()!==this.is)){cssText+=styleUtil.cssFromElement(this._template);}
if(cssText){var style=document.createElement('style');style.textContent=cssText;if(styleExtends.hasExtends(style.textContent)){cssText=styleExtends.transform(style);}
styles.push(style);}
return styles;},_elementAdd:function(node){if(this._encapsulateStyle){if(node.__styleScoped){node.__styleScoped=false;}else{styleTransformer.dom(node,this.is,this._scopeCssViaAttr);}}},_elementRemove:function(node){if(this._encapsulateStyle){styleTransformer.dom(node,this.is,this._scopeCssViaAttr,true);}},scopeSubtree:function(container,shouldObserve){if(nativeShadow){return;}
var self=this;var scopify=function(node){if(node.nodeType===Node.ELEMENT_NODE){var className=node.getAttribute('class');node.setAttribute('class',self._scopeElementClass(node,className));var n$=node.querySelectorAll('*');for(var i=0,n;i<n$.length&&(n=n$[i]);i++){className=n.getAttribute('class');n.setAttribute('class',self._scopeElementClass(n,className));}}};scopify(container);if(shouldObserve){var mo=new MutationObserver(function(mxns){for(var i=0,m;i<mxns.length&&(m=mxns[i]);i++){if(m.addedNodes){for(var j=0;j<m.addedNodes.length;j++){scopify(m.addedNodes[j]);}}}});mo.observe(container,{childList:true,subtree:true});return mo;}}});}());Polymer.StyleProperties=function(){'use strict';var matchesSelector=Polymer.DomApi.matchesSelector;var styleUtil=Polymer.StyleUtil;var styleTransformer=Polymer.StyleTransformer;var IS_IE=navigator.userAgent.match('Trident');var settings=Polymer.Settings;return{decorateStyles:function(styles,scope){var self=this,props={},keyframes=[],ruleIndex=0;var scopeSelector=styleTransformer._calcHostScope(scope.is,scope.extends);styleUtil.forRulesInStyles(styles,function(rule,style){self.decorateRule(rule);rule.index=ruleIndex++;self.whenHostOrRootRule(scope,rule,style,function(info){if(rule.parent.type===styleUtil.ruleTypes.MEDIA_RULE){scope.__notStyleScopeCacheable=true;}
if(info.isHost){var hostContextOrFunction=info.selector.split(' ').some(function(s){return s.indexOf(scopeSelector)===0&&s.length!==scopeSelector.length;});scope.__notStyleScopeCacheable=scope.__notStyleScopeCacheable||hostContextOrFunction;}});self.collectPropertiesInCssText(rule.propertyInfo.cssText,props);},function onKeyframesRule(rule){keyframes.push(rule);});styles._keyframes=keyframes;var names=[];for(var i in props){names.push(i);}
return names;},decorateRule:function(rule){if(rule.propertyInfo){return rule.propertyInfo;}
var info={},properties={};var hasProperties=this.collectProperties(rule,properties);if(hasProperties){info.properties=properties;rule.rules=null;}
info.cssText=this.collectCssText(rule);rule.propertyInfo=info;return info;},collectProperties:function(rule,properties){var info=rule.propertyInfo;if(info){if(info.properties){Polymer.Base.mixin(properties,info.properties);return true;}}else{var m,rx=this.rx.VAR_ASSIGN;var cssText=rule.parsedCssText;var value;var any;while(m=rx.exec(cssText)){value=(m[2]||m[3]).trim();if(value!=='inherit'){properties[m[1].trim()]=value;}
any=true;}
return any;}},collectCssText:function(rule){return this.collectConsumingCssText(rule.parsedCssText);},collectConsumingCssText:function(cssText){return cssText.replace(this.rx.BRACKETED,'').replace(this.rx.VAR_ASSIGN,'');},collectPropertiesInCssText:function(cssText,props){var m;while(m=this.rx.VAR_CONSUMED.exec(cssText)){var name=m[1];if(m[2]!==':'){props[name]=true;}}},reify:function(props){var names=Object.getOwnPropertyNames(props);for(var i=0,n;i<names.length;i++){n=names[i];props[n]=this.valueForProperty(props[n],props);}},valueForProperty:function(property,props){if(property){if(property.indexOf(';')>=0){property=this.valueForProperties(property,props);}else{var self=this;var fn=function(prefix,value,fallback,suffix){var propertyValue=self.valueForProperty(props[value],props);if(!propertyValue||propertyValue==='initial'){propertyValue=self.valueForProperty(props[fallback]||fallback,props)||fallback;}else if(propertyValue==='apply-shim-inherit'){propertyValue='inherit';}
return prefix+(propertyValue||'')+suffix;};property=styleUtil.processVariableAndFallback(property,fn);}}
return property&&property.trim()||'';},valueForProperties:function(property,props){var parts=property.split(';');for(var i=0,p,m;i<parts.length;i++){if(p=parts[i]){this.rx.MIXIN_MATCH.lastIndex=0;m=this.rx.MIXIN_MATCH.exec(p);if(m){p=this.valueForProperty(props[m[1]],props);}else{var colon=p.indexOf(':');if(colon!==-1){var pp=p.substring(colon);pp=pp.trim();pp=this.valueForProperty(pp,props)||pp;p=p.substring(0,colon)+pp;}}
parts[i]=p&&p.lastIndexOf(';')===p.length-1?p.slice(0,-1):p||'';}}
return parts.join(';');},applyProperties:function(rule,props){var output='';if(!rule.propertyInfo){this.decorateRule(rule);}
if(rule.propertyInfo.cssText){output=this.valueForProperties(rule.propertyInfo.cssText,props);}
rule.cssText=output;},applyKeyframeTransforms:function(rule,keyframeTransforms){var input=rule.cssText;var output=rule.cssText;if(rule.hasAnimations==null){rule.hasAnimations=this.rx.ANIMATION_MATCH.test(input);}
if(rule.hasAnimations){var transform;if(rule.keyframeNamesToTransform==null){rule.keyframeNamesToTransform=[];for(var keyframe in keyframeTransforms){transform=keyframeTransforms[keyframe];output=transform(input);if(input!==output){input=output;rule.keyframeNamesToTransform.push(keyframe);}}}else{for(var i=0;i<rule.keyframeNamesToTransform.length;++i){transform=keyframeTransforms[rule.keyframeNamesToTransform[i]];input=transform(input);}
output=input;}}
rule.cssText=output;},propertyDataFromStyles:function(styles,element){var props={},self=this;var o=[];styleUtil.forActiveRulesInStyles(styles,function(rule){if(!rule.propertyInfo){self.decorateRule(rule);}
var selectorToMatch=rule.transformedSelector||rule.parsedSelector;if(element&&rule.propertyInfo.properties&&selectorToMatch){if(matchesSelector.call(element,selectorToMatch)){self.collectProperties(rule,props);addToBitMask(rule.index,o);}}});return{properties:props,key:o};},_rootSelector:/:root|:host\s*>\s*\*/,_checkRoot:function(hostScope,selector){return Boolean(selector.match(this._rootSelector))||hostScope==='html'&&selector.indexOf('html')>-1;},whenHostOrRootRule:function(scope,rule,style,callback){if(!rule.propertyInfo){self.decorateRule(rule);}
if(!rule.propertyInfo.properties){return;}
var hostScope=scope.is?styleTransformer._calcHostScope(scope.is,scope.extends):'html';var parsedSelector=rule.parsedSelector;var isRoot=this._checkRoot(hostScope,parsedSelector);var isHost=!isRoot&&parsedSelector.indexOf(':host')===0;var cssBuild=scope.__cssBuild||style.__cssBuild;if(cssBuild==='shady'){isRoot=parsedSelector===hostScope+' > *.'+hostScope||parsedSelector.indexOf('html')>-1;isHost=!isRoot&&parsedSelector.indexOf(hostScope)===0;}
if(!isRoot&&!isHost){return;}
var selectorToMatch=hostScope;if(isHost){if(settings.useNativeShadow&&!rule.transformedSelector){rule.transformedSelector=styleTransformer._transformRuleCss(rule,styleTransformer._transformComplexSelector,scope.is,hostScope);}
selectorToMatch=rule.transformedSelector||rule.parsedSelector;}
if(isRoot&&hostScope==='html'){selectorToMatch=rule.transformedSelector||rule.parsedSelector;}
callback({selector:selectorToMatch,isHost:isHost,isRoot:isRoot});},hostAndRootPropertiesForScope:function(scope){var hostProps={},rootProps={},self=this;styleUtil.forActiveRulesInStyles(scope._styles,function(rule,style){self.whenHostOrRootRule(scope,rule,style,function(info){var element=scope._element||scope;if(matchesSelector.call(element,info.selector)){if(info.isHost){self.collectProperties(rule,hostProps);}else{self.collectProperties(rule,rootProps);}}});});return{rootProps:rootProps,hostProps:hostProps};},transformStyles:function(element,properties,scopeSelector){var self=this;var hostSelector=styleTransformer._calcHostScope(element.is,element.extends);var rxHostSelector=element.extends?'\\'+hostSelector.slice(0,-1)+'\\]':hostSelector;var hostRx=new RegExp(this.rx.HOST_PREFIX+rxHostSelector+this.rx.HOST_SUFFIX);var keyframeTransforms=this._elementKeyframeTransforms(element,scopeSelector);return styleTransformer.elementStyles(element,function(rule){self.applyProperties(rule,properties);if(!settings.useNativeShadow&&!Polymer.StyleUtil.isKeyframesSelector(rule)&&rule.cssText){self.applyKeyframeTransforms(rule,keyframeTransforms);self._scopeSelector(rule,hostRx,hostSelector,element._scopeCssViaAttr,scopeSelector);}});},_elementKeyframeTransforms:function(element,scopeSelector){var keyframesRules=element._styles._keyframes;var keyframeTransforms={};if(!settings.useNativeShadow&&keyframesRules){for(var i=0,keyframesRule=keyframesRules[i];i<keyframesRules.length;keyframesRule=keyframesRules[++i]){this._scopeKeyframes(keyframesRule,scopeSelector);keyframeTransforms[keyframesRule.keyframesName]=this._keyframesRuleTransformer(keyframesRule);}}
return keyframeTransforms;},_keyframesRuleTransformer:function(keyframesRule){return function(cssText){return cssText.replace(keyframesRule.keyframesNameRx,keyframesRule.transformedKeyframesName);};},_scopeKeyframes:function(rule,scopeId){rule.keyframesNameRx=new RegExp(rule.keyframesName,'g');rule.transformedKeyframesName=rule.keyframesName+'-'+scopeId;rule.transformedSelector=rule.transformedSelector||rule.selector;rule.selector=rule.transformedSelector.replace(rule.keyframesName,rule.transformedKeyframesName);},_scopeSelector:function(rule,hostRx,hostSelector,viaAttr,scopeId){rule.transformedSelector=rule.transformedSelector||rule.selector;var selector=rule.transformedSelector;var scope=viaAttr?'['+styleTransformer.SCOPE_NAME+'~='+scopeId+']':'.'+scopeId;var parts=selector.split(',');for(var i=0,l=parts.length,p;i<l&&(p=parts[i]);i++){parts[i]=p.match(hostRx)?p.replace(hostSelector,scope):scope+' '+p;}
rule.selector=parts.join(',');},applyElementScopeSelector:function(element,selector,old,viaAttr){var c=viaAttr?element.getAttribute(styleTransformer.SCOPE_NAME):element.getAttribute('class')||'';var v=old?c.replace(old,selector):(c?c+' ':'')+this.XSCOPE_NAME+' '+selector;if(c!==v){if(viaAttr){element.setAttribute(styleTransformer.SCOPE_NAME,v);}else{element.setAttribute('class',v);}}},applyElementStyle:function(element,properties,selector,style){var cssText=style?style.textContent||'':this.transformStyles(element,properties,selector);var s=element._customStyle;if(s&&!settings.useNativeShadow&&s!==style){s._useCount--;if(s._useCount<=0&&s.parentNode){s.parentNode.removeChild(s);}}
if(settings.useNativeShadow){if(element._customStyle){element._customStyle.textContent=cssText;style=element._customStyle;}else if(cssText){style=styleUtil.applyCss(cssText,selector,element.root,element._scopeStyle);}}else{if(!style){if(cssText){style=styleUtil.applyCss(cssText,selector,null,element._scopeStyle);}}else if(!style.parentNode){if(IS_IE&&cssText.indexOf('@media')>-1){style.textContent=cssText;}
styleUtil.applyStyle(style,null,element._scopeStyle);}}
if(style){style._useCount=style._useCount||0;if(element._customStyle!=style){style._useCount++;}
element._customStyle=style;}
return style;},mixinCustomStyle:function(props,customStyle){var v;for(var i in customStyle){v=customStyle[i];if(v||v===0){props[i]=v;}}},updateNativeStyleProperties:function(element,properties){var oldPropertyNames=element.__customStyleProperties;if(oldPropertyNames){for(var i=0;i<oldPropertyNames.length;i++){element.style.removeProperty(oldPropertyNames[i]);}}
var propertyNames=[];for(var p in properties){if(properties[p]!==null){element.style.setProperty(p,properties[p]);propertyNames.push(p);}}
element.__customStyleProperties=propertyNames;},rx:styleUtil.rx,XSCOPE_NAME:'x-scope'};function addToBitMask(n,bits){var o=parseInt(n/32);var v=1<<n%32;bits[o]=(bits[o]||0)|v;}}();(function(){Polymer.StyleCache=function(){this.cache={};};Polymer.StyleCache.prototype={MAX:100,store:function(is,data,keyValues,keyStyles){data.keyValues=keyValues;data.styles=keyStyles;var s$=this.cache[is]=this.cache[is]||[];s$.push(data);if(s$.length>this.MAX){s$.shift();}},retrieve:function(is,keyValues,keyStyles){var cache=this.cache[is];if(cache){for(var i=cache.length-1,data;i>=0;i--){data=cache[i];if(keyStyles===data.styles&&this._objectsEqual(keyValues,data.keyValues)){return data;}}}},clear:function(){this.cache={};},_objectsEqual:function(target,source){var t,s;for(var i in target){t=target[i],s=source[i];if(!(typeof t==='object'&&t?this._objectsStrictlyEqual(t,s):t===s)){return false;}}
if(Array.isArray(target)){return target.length===source.length;}
return true;},_objectsStrictlyEqual:function(target,source){return this._objectsEqual(target,source)&&this._objectsEqual(source,target);}};}());Polymer.StyleDefaults=function(){var styleProperties=Polymer.StyleProperties;var StyleCache=Polymer.StyleCache;var nativeVariables=Polymer.Settings.useNativeCSSProperties;var api={_styles:[],_properties:null,customStyle:{},_styleCache:new StyleCache(),_element:Polymer.DomApi.wrap(document.documentElement),addStyle:function(style){this._styles.push(style);this._properties=null;},get _styleProperties(){if(!this._properties){styleProperties.decorateStyles(this._styles,this);this._styles._scopeStyleProperties=null;this._properties=styleProperties.hostAndRootPropertiesForScope(this).rootProps;styleProperties.mixinCustomStyle(this._properties,this.customStyle);styleProperties.reify(this._properties);}
return this._properties;},hasStyleProperties:function(){return Boolean(this._properties);},_needsStyleProperties:function(){},_computeStyleProperties:function(){return this._styleProperties;},updateStyles:function(properties){this._properties=null;if(properties){Polymer.Base.mixin(this.customStyle,properties);}
this._styleCache.clear();for(var i=0,s;i<this._styles.length;i++){s=this._styles[i];s=s.__importElement||s;s._apply();}
if(nativeVariables){styleProperties.updateNativeStyleProperties(document.documentElement,this.customStyle);}}};return api;}();(function(){'use strict';var serializeValueToAttribute=Polymer.Base.serializeValueToAttribute;var propertyUtils=Polymer.StyleProperties;var styleTransformer=Polymer.StyleTransformer;var styleDefaults=Polymer.StyleDefaults;var nativeShadow=Polymer.Settings.useNativeShadow;var nativeVariables=Polymer.Settings.useNativeCSSProperties;Polymer.Base._addFeature({_prepStyleProperties:function(){if(!nativeVariables){this._ownStylePropertyNames=this._styles&&this._styles.length?propertyUtils.decorateStyles(this._styles,this):null;}},customStyle:null,getComputedStyleValue:function(property){if(!nativeVariables&&!this._styleProperties){this._computeStyleProperties();}
return!nativeVariables&&this._styleProperties&&this._styleProperties[property]||getComputedStyle(this).getPropertyValue(property);},_setupStyleProperties:function(){this.customStyle={};this._styleCache=null;this._styleProperties=null;this._scopeSelector=null;this._ownStyleProperties=null;this._customStyle=null;},_needsStyleProperties:function(){return Boolean(!nativeVariables&&this._ownStylePropertyNames&&this._ownStylePropertyNames.length);},_validateApplyShim:function(){if(this.__applyShimInvalid){Polymer.ApplyShim.transform(this._styles,this.__proto__);var cssText=styleTransformer.elementStyles(this);if(nativeShadow){var templateStyle=this._template.content.querySelector('style');if(templateStyle){templateStyle.textContent=cssText;}}else{var shadyStyle=this._scopeStyle&&this._scopeStyle.nextSibling;if(shadyStyle){shadyStyle.textContent=cssText;}}}},_beforeAttached:function(){if((!this._scopeSelector||this.__stylePropertiesInvalid)&&this._needsStyleProperties()){this.__stylePropertiesInvalid=false;this._updateStyleProperties();}},_findStyleHost:function(){var e=this,root;while(root=Polymer.dom(e).getOwnerRoot()){if(Polymer.isInstance(root.host)){return root.host;}
e=root.host;}
return styleDefaults;},_updateStyleProperties:function(){var info,scope=this._findStyleHost();if(!scope._styleProperties){scope._computeStyleProperties();}
if(!scope._styleCache){scope._styleCache=new Polymer.StyleCache();}
var scopeData=propertyUtils.propertyDataFromStyles(scope._styles,this);var scopeCacheable=!this.__notStyleScopeCacheable;if(scopeCacheable){scopeData.key.customStyle=this.customStyle;info=scope._styleCache.retrieve(this.is,scopeData.key,this._styles);}
var scopeCached=Boolean(info);if(scopeCached){this._styleProperties=info._styleProperties;}else{this._computeStyleProperties(scopeData.properties);}
this._computeOwnStyleProperties();if(!scopeCached){info=styleCache.retrieve(this.is,this._ownStyleProperties,this._styles);}
var globalCached=Boolean(info)&&!scopeCached;var style=this._applyStyleProperties(info);if(!scopeCached){style=style&&nativeShadow?style.cloneNode(true):style;info={style:style,_scopeSelector:this._scopeSelector,_styleProperties:this._styleProperties};if(scopeCacheable){scopeData.key.customStyle={};this.mixin(scopeData.key.customStyle,this.customStyle);scope._styleCache.store(this.is,info,scopeData.key,this._styles);}
if(!globalCached){styleCache.store(this.is,Object.create(info),this._ownStyleProperties,this._styles);}}},_computeStyleProperties:function(scopeProps){var scope=this._findStyleHost();if(!scope._styleProperties){scope._computeStyleProperties();}
var props=Object.create(scope._styleProperties);var hostAndRootProps=propertyUtils.hostAndRootPropertiesForScope(this);this.mixin(props,hostAndRootProps.hostProps);scopeProps=scopeProps||propertyUtils.propertyDataFromStyles(scope._styles,this).properties;this.mixin(props,scopeProps);this.mixin(props,hostAndRootProps.rootProps);propertyUtils.mixinCustomStyle(props,this.customStyle);propertyUtils.reify(props);this._styleProperties=props;},_computeOwnStyleProperties:function(){var props={};for(var i=0,n;i<this._ownStylePropertyNames.length;i++){n=this._ownStylePropertyNames[i];props[n]=this._styleProperties[n];}
this._ownStyleProperties=props;},_scopeCount:0,_applyStyleProperties:function(info){var oldScopeSelector=this._scopeSelector;this._scopeSelector=info?info._scopeSelector:this.is+'-'+this.__proto__._scopeCount++;var style=propertyUtils.applyElementStyle(this,this._styleProperties,this._scopeSelector,info&&info.style);if(!nativeShadow){propertyUtils.applyElementScopeSelector(this,this._scopeSelector,oldScopeSelector,this._scopeCssViaAttr);}
return style;},serializeValueToAttribute:function(value,attribute,node){node=node||this;if(attribute==='class'&&!nativeShadow){var host=node===this?this.domHost||this.dataHost:this;if(host){value=host._scopeElementClass(node,value);}}
node=this.shadyRoot&&this.shadyRoot._hasDistributed?Polymer.dom(node):node;serializeValueToAttribute.call(this,value,attribute,node);},_scopeElementClass:function(element,selector){if(!nativeShadow&&!this._scopeCssViaAttr){selector=(selector?selector+' ':'')+SCOPE_NAME+' '+this.is+(element._scopeSelector?' '+XSCOPE_NAME+' '+element._scopeSelector:'');}
return selector;},updateStyles:function(properties){if(properties){this.mixin(this.customStyle,properties);}
if(nativeVariables){propertyUtils.updateNativeStyleProperties(this,this.customStyle);}else{if(this.isAttached){if(this._needsStyleProperties()){this._updateStyleProperties();}else{this._styleProperties=null;}}else{this.__stylePropertiesInvalid=true;}
if(this._styleCache){this._styleCache.clear();}
this._updateRootStyles();}},_updateRootStyles:function(root){root=root||this.root;var c$=Polymer.dom(root)._query(function(e){return e.shadyRoot||e.shadowRoot;});for(var i=0,l=c$.length,c;i<l&&(c=c$[i]);i++){if(c.updateStyles){c.updateStyles();}}}});Polymer.updateStyles=function(properties){styleDefaults.updateStyles(properties);Polymer.Base._updateRootStyles(document);};var styleCache=new Polymer.StyleCache();Polymer.customStyleCache=styleCache;var SCOPE_NAME=styleTransformer.SCOPE_NAME;var XSCOPE_NAME=propertyUtils.XSCOPE_NAME;}());Polymer.Base._addFeature({_registerFeatures:function(){this._prepIs();if(this.factoryImpl){this._prepConstructor();}
this._prepStyles();},_finishRegisterFeatures:function(){this._prepTemplate();this._prepShimStyles();this._prepAnnotations();this._prepEffects();this._prepBehaviors();this._prepPropertyInfo();this._prepBindings();this._prepShady();},_prepBehavior:function(b){this._addPropertyEffects(b.properties);this._addComplexObserverEffects(b.observers);this._addHostAttributes(b.hostAttributes);},_initFeatures:function(){this._setupGestures();this._setupConfigure(this.__data__);this._setupStyleProperties();this._setupDebouncers();this._setupShady();this._registerHost();if(this._template){this._validateApplyShim();this._poolContent();this._beginHosting();this._stampTemplate();this._endHosting();this._marshalAnnotationReferences();}
this._marshalInstanceEffects();this._marshalBehaviors();this._marshalHostAttributes();this._marshalAttributes();this._tryReady();},_marshalBehavior:function(b){if(b.listeners){this._listenListeners(b.listeners);}}});(function(){var propertyUtils=Polymer.StyleProperties;var styleUtil=Polymer.StyleUtil;var cssParse=Polymer.CssParse;var styleDefaults=Polymer.StyleDefaults;var styleTransformer=Polymer.StyleTransformer;var applyShim=Polymer.ApplyShim;var debounce=Polymer.Debounce;var settings=Polymer.Settings;var updateDebouncer;Polymer({is:'custom-style',extends:'style',_template:null,properties:{include:String},ready:function(){this.__appliedElement=this.__appliedElement||this;this.__cssBuild=styleUtil.getCssBuildType(this);if(this.__appliedElement!==this){this.__appliedElement.__cssBuild=this.__cssBuild;}
this._tryApply();},attached:function(){this._tryApply();},_tryApply:function(){if(!this._appliesToDocument){if(this.parentNode&&this.parentNode.localName!=='dom-module'){this._appliesToDocument=true;var e=this.__appliedElement;if(!settings.useNativeCSSProperties){this.__needsUpdateStyles=styleDefaults.hasStyleProperties();styleDefaults.addStyle(e);}
if(e.textContent||this.include){this._apply(true);}else{var self=this;var observer=new MutationObserver(function(){observer.disconnect();self._apply(true);});observer.observe(e,{childList:true});}}}},_updateStyles:function(){Polymer.updateStyles();},_apply:function(initialApply){var e=this.__appliedElement;if(this.include){e.textContent=styleUtil.cssFromModules(this.include,true)+e.textContent;}
if(!e.textContent){return;}
var buildType=this.__cssBuild;var targetedBuild=styleUtil.isTargetedBuild(buildType);if(settings.useNativeCSSProperties&&targetedBuild){return;}
var styleRules=styleUtil.rulesForStyle(e);if(!targetedBuild){styleUtil.forEachRule(styleRules,function(rule){styleTransformer.documentRule(rule);});if(settings.useNativeCSSProperties&&!buildType){applyShim.transform([e]);}}
if(settings.useNativeCSSProperties){e.textContent=styleUtil.toCssText(styleRules);}else{var self=this;var fn=function fn(){self._flushCustomProperties();};if(initialApply){Polymer.RenderStatus.whenReady(fn);}else{fn();}}},_flushCustomProperties:function(){if(this.__needsUpdateStyles){this.__needsUpdateStyles=false;updateDebouncer=debounce(updateDebouncer,this._updateStyles);}else{this._applyCustomProperties();}},_applyCustomProperties:function(){var element=this.__appliedElement;this._computeStyleProperties();var props=this._styleProperties;var rules=styleUtil.rulesForStyle(element);if(!rules){return;}
element.textContent=styleUtil.toCssText(rules,function(rule){var css=rule.cssText=rule.parsedCssText;if(rule.propertyInfo&&rule.propertyInfo.cssText){css=cssParse.removeCustomPropAssignment(css);rule.cssText=propertyUtils.valueForProperties(css,props);}});}});}());Polymer.Templatizer={properties:{__hideTemplateChildren__:{observer:'_showHideChildren'}},_instanceProps:Polymer.nob,_parentPropPrefix:'_parent_',templatize:function(template){this._templatized=template;if(!template._content){template._content=template.content;}
if(template._content._ctor){this.ctor=template._content._ctor;this._prepParentProperties(this.ctor.prototype,template);return;}
var archetype=Object.create(Polymer.Base);this._customPrepAnnotations(archetype,template);this._prepParentProperties(archetype,template);archetype._prepEffects();this._customPrepEffects(archetype);archetype._prepBehaviors();archetype._prepPropertyInfo();archetype._prepBindings();archetype._notifyPathUp=this._notifyPathUpImpl;archetype._scopeElementClass=this._scopeElementClassImpl;archetype.listen=this._listenImpl;archetype._showHideChildren=this._showHideChildrenImpl;archetype.__setPropertyOrig=this.__setProperty;archetype.__setProperty=this.__setPropertyImpl;var _constructor=this._constructorImpl;var ctor=function TemplateInstance(model,host){_constructor.call(this,model,host);};ctor.prototype=archetype;archetype.constructor=ctor;template._content._ctor=ctor;this.ctor=ctor;},_getRootDataHost:function(){return this.dataHost&&this.dataHost._rootDataHost||this.dataHost;},_showHideChildrenImpl:function(hide){var c=this._children;for(var i=0;i<c.length;i++){var n=c[i];if(Boolean(hide)!=Boolean(n.__hideTemplateChildren__)){if(n.nodeType===Node.TEXT_NODE){if(hide){n.__polymerTextContent__=n.textContent;n.textContent='';}else{n.textContent=n.__polymerTextContent__;}}else if(n.style){if(hide){n.__polymerDisplay__=n.style.display;n.style.display='none';}else{n.style.display=n.__polymerDisplay__;}}}
n.__hideTemplateChildren__=hide;}},__setPropertyImpl:function(property,value,fromAbove,node){if(node&&node.__hideTemplateChildren__&&property=='textContent'){property='__polymerTextContent__';}
this.__setPropertyOrig(property,value,fromAbove,node);},_debounceTemplate:function(fn){Polymer.dom.addDebouncer(this.debounce('_debounceTemplate',fn));},_flushTemplates:function(){Polymer.dom.flush();},_customPrepEffects:function(archetype){var parentProps=archetype._parentProps;for(var prop in parentProps){archetype._addPropertyEffect(prop,'function',this._createHostPropEffector(prop));}
for(prop in this._instanceProps){archetype._addPropertyEffect(prop,'function',this._createInstancePropEffector(prop));}},_customPrepAnnotations:function(archetype,template){archetype._template=template;var c=template._content;if(!c._notes){var rootDataHost=archetype._rootDataHost;if(rootDataHost){Polymer.Annotations.prepElement=function(){rootDataHost._prepElement();};}
c._notes=Polymer.Annotations.parseAnnotations(template);Polymer.Annotations.prepElement=null;this._processAnnotations(c._notes);}
archetype._notes=c._notes;archetype._parentProps=c._parentProps;},_prepParentProperties:function(archetype,template){var parentProps=this._parentProps=archetype._parentProps;if(this._forwardParentProp&&parentProps){var proto=archetype._parentPropProto;var prop;if(!proto){for(prop in this._instanceProps){delete parentProps[prop];}
proto=archetype._parentPropProto=Object.create(null);if(template!=this){Polymer.Bind.prepareModel(proto);Polymer.Base.prepareModelNotifyPath(proto);}
for(prop in parentProps){var parentProp=this._parentPropPrefix+prop;var effects=[{kind:'function',effect:this._createForwardPropEffector(prop),fn:Polymer.Bind._functionEffect},{kind:'notify',fn:Polymer.Bind._notifyEffect,effect:{event:Polymer.CaseMap.camelToDashCase(parentProp)+'-changed'}}];proto._propertyEffects=proto._propertyEffects||{};proto._propertyEffects[parentProp]=effects;Polymer.Bind._createAccessors(proto,parentProp,effects);}}
var self=this;if(template!=this){Polymer.Bind.prepareInstance(template);template._forwardParentProp=function(source,value){self._forwardParentProp(source,value);};}
this._extendTemplate(template,proto);template._pathEffector=function(path,value,fromAbove){return self._pathEffectorImpl(path,value,fromAbove);};}},_createForwardPropEffector:function(prop){return function(source,value){this._forwardParentProp(prop,value);};},_createHostPropEffector:function(prop){var prefix=this._parentPropPrefix;return function(source,value){this.dataHost._templatized[prefix+prop]=value;};},_createInstancePropEffector:function(prop){return function(source,value,old,fromAbove){if(!fromAbove){this.dataHost._forwardInstanceProp(this,prop,value);}};},_extendTemplate:function(template,proto){var n$=Object.getOwnPropertyNames(proto);if(proto._propertySetter){template._propertySetter=proto._propertySetter;}
for(var i=0,n;i<n$.length&&(n=n$[i]);i++){var val=template[n];if(val&&n=='_propertyEffects'){var pe=Polymer.Base.mixin({},val);template._propertyEffects=Polymer.Base.mixin(pe,proto._propertyEffects);}else{var pd=Object.getOwnPropertyDescriptor(proto,n);Object.defineProperty(template,n,pd);if(val!==undefined){template._propertySetter(n,val);}}}},_showHideChildren:function(hidden){},_forwardInstancePath:function(inst,path,value){},_forwardInstanceProp:function(inst,prop,value){},_notifyPathUpImpl:function(path,value){var dataHost=this.dataHost;var root=Polymer.Path.root(path);dataHost._forwardInstancePath.call(dataHost,this,path,value);if(root in dataHost._parentProps){dataHost._templatized._notifyPath(dataHost._parentPropPrefix+path,value);}},_pathEffectorImpl:function(path,value,fromAbove){if(this._forwardParentPath){if(path.indexOf(this._parentPropPrefix)===0){var subPath=path.substring(this._parentPropPrefix.length);var model=Polymer.Path.root(subPath);if(model in this._parentProps){this._forwardParentPath(subPath,value);}}}
Polymer.Base._pathEffector.call(this._templatized,path,value,fromAbove);},_constructorImpl:function(model,host){this._rootDataHost=host._getRootDataHost();this._setupConfigure(model);this._registerHost(host);this._beginHosting();this.root=this.instanceTemplate(this._template);this.root.__noContent=!this._notes._hasContent;this.root.__styleScoped=true;this._endHosting();this._marshalAnnotatedNodes();this._marshalInstanceEffects();this._marshalAnnotatedListeners();var children=[];for(var n=this.root.firstChild;n;n=n.nextSibling){children.push(n);n._templateInstance=this;}
this._children=children;if(host.__hideTemplateChildren__){this._showHideChildren(true);}
this._tryReady();},_listenImpl:function(node,eventName,methodName){var model=this;var host=this._rootDataHost;var handler=host._createEventHandler(node,eventName,methodName);var decorated=function(e){e.model=model;handler(e);};host._listen(node,eventName,decorated);},_scopeElementClassImpl:function(node,value){var host=this._rootDataHost;if(host){return host._scopeElementClass(node,value);}
return value;},stamp:function(model){model=model||{};if(this._parentProps){var templatized=this._templatized;for(var prop in this._parentProps){if(model[prop]===undefined){model[prop]=templatized[this._parentPropPrefix+prop];}}}
return new this.ctor(model,this);},modelForElement:function(el){var model;while(el){if(model=el._templateInstance){if(model.dataHost!=this){el=model.dataHost;}else{return model;}}else{el=el.parentNode;}}}};Polymer({is:'dom-template',extends:'template',_template:null,behaviors:[Polymer.Templatizer],ready:function(){this.templatize(this);}});Polymer._collections=new WeakMap();Polymer.Collection=function(userArray){Polymer._collections.set(userArray,this);this.userArray=userArray;this.store=userArray.slice();this.initMap();};Polymer.Collection.prototype={constructor:Polymer.Collection,initMap:function(){var omap=this.omap=new WeakMap();var pmap=this.pmap={};var s=this.store;for(var i=0;i<s.length;i++){var item=s[i];if(item&&typeof item=='object'){omap.set(item,i);}else{pmap[item]=i;}}},add:function(item){var key=this.store.push(item)-1;if(item&&typeof item=='object'){this.omap.set(item,key);}else{this.pmap[item]=key;}
return'#'+key;},removeKey:function(key){if(key=this._parseKey(key)){this._removeFromMap(this.store[key]);delete this.store[key];}},_removeFromMap:function(item){if(item&&typeof item=='object'){this.omap.delete(item);}else{delete this.pmap[item];}},remove:function(item){var key=this.getKey(item);this.removeKey(key);return key;},getKey:function(item){var key;if(item&&typeof item=='object'){key=this.omap.get(item);}else{key=this.pmap[item];}
if(key!=undefined){return'#'+key;}},getKeys:function(){return Object.keys(this.store).map(function(key){return'#'+key;});},_parseKey:function(key){if(key&&key[0]=='#'){return key.slice(1);}},setItem:function(key,item){if(key=this._parseKey(key)){var old=this.store[key];if(old){this._removeFromMap(old);}
if(item&&typeof item=='object'){this.omap.set(item,key);}else{this.pmap[item]=key;}
this.store[key]=item;}},getItem:function(key){if(key=this._parseKey(key)){return this.store[key];}},getItems:function(){var items=[],store=this.store;for(var key in store){items.push(store[key]);}
return items;},_applySplices:function(splices){var keyMap={},key;for(var i=0,s;i<splices.length&&(s=splices[i]);i++){s.addedKeys=[];for(var j=0;j<s.removed.length;j++){key=this.getKey(s.removed[j]);keyMap[key]=keyMap[key]?null:-1;}
for(j=0;j<s.addedCount;j++){var item=this.userArray[s.index+j];key=this.getKey(item);key=key===undefined?this.add(item):key;keyMap[key]=keyMap[key]?null:1;s.addedKeys.push(key);}}
var removed=[];var added=[];for(key in keyMap){if(keyMap[key]<0){this.removeKey(key);removed.push(key);}
if(keyMap[key]>0){added.push(key);}}
return[{removed:removed,added:added}];}};Polymer.Collection.get=function(userArray){return Polymer._collections.get(userArray)||new Polymer.Collection(userArray);};Polymer.Collection.applySplices=function(userArray,splices){var coll=Polymer._collections.get(userArray);return coll?coll._applySplices(splices):null;};Polymer({is:'dom-repeat',extends:'template',_template:null,properties:{items:{type:Array},as:{type:String,value:'item'},indexAs:{type:String,value:'index'},sort:{type:Function,observer:'_sortChanged'},filter:{type:Function,observer:'_filterChanged'},observe:{type:String,observer:'_observeChanged'},delay:Number,renderedItemCount:{type:Number,notify:!Polymer.Settings.suppressTemplateNotifications,readOnly:true},initialCount:{type:Number,observer:'_initializeChunking'},targetFramerate:{type:Number,value:20},notifyDomChange:{type:Boolean},_targetFrameTime:{type:Number,computed:'_computeFrameTime(targetFramerate)'}},behaviors:[Polymer.Templatizer],observers:['_itemsChanged(items.*)'],created:function(){this._instances=[];this._pool=[];this._limit=Infinity;var self=this;this._boundRenderChunk=function(){self._renderChunk();};},detached:function(){this.__isDetached=true;for(var i=0;i<this._instances.length;i++){this._detachInstance(i);}},attached:function(){if(this.__isDetached){this.__isDetached=false;var parent=Polymer.dom(Polymer.dom(this).parentNode);for(var i=0;i<this._instances.length;i++){this._attachInstance(i,parent);}}},ready:function(){this._instanceProps={__key__:true};this._instanceProps[this.as]=true;this._instanceProps[this.indexAs]=true;if(!this.ctor){this.templatize(this);}},_sortChanged:function(sort){var dataHost=this._getRootDataHost();this._sortFn=sort&&(typeof sort=='function'?sort:function(){return dataHost[sort].apply(dataHost,arguments);});this._needFullRefresh=true;if(this.items){this._debounceTemplate(this._render);}},_filterChanged:function(filter){var dataHost=this._getRootDataHost();this._filterFn=filter&&(typeof filter=='function'?filter:function(){return dataHost[filter].apply(dataHost,arguments);});this._needFullRefresh=true;if(this.items){this._debounceTemplate(this._render);}},_computeFrameTime:function(rate){return Math.ceil(1000/rate);},_initializeChunking:function(){if(this.initialCount){this._limit=this.initialCount;this._chunkCount=this.initialCount;this._lastChunkTime=performance.now();}},_tryRenderChunk:function(){if(this.items&&this._limit<this.items.length){this.debounce('renderChunk',this._requestRenderChunk);}},_requestRenderChunk:function(){requestAnimationFrame(this._boundRenderChunk);},_renderChunk:function(){var currChunkTime=performance.now();var ratio=this._targetFrameTime/(currChunkTime-this._lastChunkTime);this._chunkCount=Math.round(this._chunkCount*ratio)||1;this._limit+=this._chunkCount;this._lastChunkTime=currChunkTime;this._debounceTemplate(this._render);},_observeChanged:function(){this._observePaths=this.observe&&this.observe.replace('.*','.').split(' ');},_itemsChanged:function(change){if(change.path=='items'){if(Array.isArray(this.items)){this.collection=Polymer.Collection.get(this.items);}else if(!this.items){this.collection=null;}else{this._error(this._logf('dom-repeat','expected array for `items`,'+' found',this.items));}
this._keySplices=[];this._indexSplices=[];this._needFullRefresh=true;this._initializeChunking();this._debounceTemplate(this._render);}else if(change.path=='items.splices'){this._keySplices=this._keySplices.concat(change.value.keySplices);this._indexSplices=this._indexSplices.concat(change.value.indexSplices);this._debounceTemplate(this._render);}else{var subpath=change.path.slice(6);this._forwardItemPath(subpath,change.value);this._checkObservedPaths(subpath);}},_checkObservedPaths:function(path){if(this._observePaths){path=path.substring(path.indexOf('.')+1);var paths=this._observePaths;for(var i=0;i<paths.length;i++){if(path.indexOf(paths[i])===0){this._needFullRefresh=true;if(this.delay){this.debounce('render',this._render,this.delay);}else{this._debounceTemplate(this._render);}
return;}}}},render:function(){this._needFullRefresh=true;this._debounceTemplate(this._render);this._flushTemplates();},_render:function(){if(this._needFullRefresh){this._applyFullRefresh();this._needFullRefresh=false;}else if(this._keySplices.length){if(this._sortFn){this._applySplicesUserSort(this._keySplices);}else{if(this._filterFn){this._applyFullRefresh();}else{this._applySplicesArrayOrder(this._indexSplices);}}}else{}
this._keySplices=[];this._indexSplices=[];var keyToIdx=this._keyToInstIdx={};for(var i=this._instances.length-1;i>=0;i--){var inst=this._instances[i];if(inst.isPlaceholder&&i<this._limit){inst=this._insertInstance(i,inst.__key__);}else if(!inst.isPlaceholder&&i>=this._limit){inst=this._downgradeInstance(i,inst.__key__);}
keyToIdx[inst.__key__]=i;if(!inst.isPlaceholder){inst.__setProperty(this.indexAs,i,true);}}
this._pool.length=0;this._setRenderedItemCount(this._instances.length);if(!Polymer.Settings.suppressTemplateNotifications||this.notifyDomChange){this.fire('dom-change');}
this._tryRenderChunk();},_applyFullRefresh:function(){var c=this.collection;var keys;if(this._sortFn){keys=c?c.getKeys():[];}else{keys=[];var items=this.items;if(items){for(var i=0;i<items.length;i++){keys.push(c.getKey(items[i]));}}}
var self=this;if(this._filterFn){keys=keys.filter(function(a){return self._filterFn(c.getItem(a));});}
if(this._sortFn){keys.sort(function(a,b){return self._sortFn(c.getItem(a),c.getItem(b));});}
for(i=0;i<keys.length;i++){var key=keys[i];var inst=this._instances[i];if(inst){inst.__key__=key;if(!inst.isPlaceholder&&i<this._limit){inst.__setProperty(this.as,c.getItem(key),true);}}else if(i<this._limit){this._insertInstance(i,key);}else{this._insertPlaceholder(i,key);}}
for(var j=this._instances.length-1;j>=i;j--){this._detachAndRemoveInstance(j);}},_numericSort:function(a,b){return a-b;},_applySplicesUserSort:function(splices){var c=this.collection;var keyMap={};var key;for(var i=0,s;i<splices.length&&(s=splices[i]);i++){for(var j=0;j<s.removed.length;j++){key=s.removed[j];keyMap[key]=keyMap[key]?null:-1;}
for(j=0;j<s.added.length;j++){key=s.added[j];keyMap[key]=keyMap[key]?null:1;}}
var removedIdxs=[];var addedKeys=[];for(key in keyMap){if(keyMap[key]===-1){removedIdxs.push(this._keyToInstIdx[key]);}
if(keyMap[key]===1){addedKeys.push(key);}}
if(removedIdxs.length){removedIdxs.sort(this._numericSort);for(i=removedIdxs.length-1;i>=0;i--){var idx=removedIdxs[i];if(idx!==undefined){this._detachAndRemoveInstance(idx);}}}
var self=this;if(addedKeys.length){if(this._filterFn){addedKeys=addedKeys.filter(function(a){return self._filterFn(c.getItem(a));});}
addedKeys.sort(function(a,b){return self._sortFn(c.getItem(a),c.getItem(b));});var start=0;for(i=0;i<addedKeys.length;i++){start=this._insertRowUserSort(start,addedKeys[i]);}}},_insertRowUserSort:function(start,key){var c=this.collection;var item=c.getItem(key);var end=this._instances.length-1;var idx=-1;while(start<=end){var mid=start+end>>1;var midKey=this._instances[mid].__key__;var cmp=this._sortFn(c.getItem(midKey),item);if(cmp<0){start=mid+1;}else if(cmp>0){end=mid-1;}else{idx=mid;break;}}
if(idx<0){idx=end+1;}
this._insertPlaceholder(idx,key);return idx;},_applySplicesArrayOrder:function(splices){for(var i=0,s;i<splices.length&&(s=splices[i]);i++){for(var j=0;j<s.removed.length;j++){this._detachAndRemoveInstance(s.index);}
for(j=0;j<s.addedKeys.length;j++){this._insertPlaceholder(s.index+j,s.addedKeys[j]);}}},_detachInstance:function(idx){var inst=this._instances[idx];if(!inst.isPlaceholder){for(var i=0;i<inst._children.length;i++){var el=inst._children[i];Polymer.dom(inst.root).appendChild(el);}
return inst;}},_attachInstance:function(idx,parent){var inst=this._instances[idx];if(!inst.isPlaceholder){parent.insertBefore(inst.root,this);}},_detachAndRemoveInstance:function(idx){var inst=this._detachInstance(idx);if(inst){this._pool.push(inst);}
this._instances.splice(idx,1);},_insertPlaceholder:function(idx,key){this._instances.splice(idx,0,{isPlaceholder:true,__key__:key});},_stampInstance:function(idx,key){var model={__key__:key};model[this.as]=this.collection.getItem(key);model[this.indexAs]=idx;return this.stamp(model);},_insertInstance:function(idx,key){var inst=this._pool.pop();if(inst){inst.__setProperty(this.as,this.collection.getItem(key),true);inst.__setProperty('__key__',key,true);}else{inst=this._stampInstance(idx,key);}
var beforeRow=this._instances[idx+1];var beforeNode=beforeRow&&!beforeRow.isPlaceholder?beforeRow._children[0]:this;var parentNode=Polymer.dom(this).parentNode;Polymer.dom(parentNode).insertBefore(inst.root,beforeNode);this._instances[idx]=inst;return inst;},_downgradeInstance:function(idx,key){var inst=this._detachInstance(idx);if(inst){this._pool.push(inst);}
inst={isPlaceholder:true,__key__:key};this._instances[idx]=inst;return inst;},_showHideChildren:function(hidden){for(var i=0;i<this._instances.length;i++){if(!this._instances[i].isPlaceholder)
this._instances[i]._showHideChildren(hidden);}},_forwardInstanceProp:function(inst,prop,value){if(prop==this.as){var idx;if(this._sortFn||this._filterFn){idx=this.items.indexOf(this.collection.getItem(inst.__key__));}else{idx=inst[this.indexAs];}
this.set('items.'+idx,value);}},_forwardInstancePath:function(inst,path,value){if(path.indexOf(this.as+'.')===0){this._notifyPath('items.'+inst.__key__+'.'+path.slice(this.as.length+1),value);}},_forwardParentProp:function(prop,value){var i$=this._instances;for(var i=0,inst;i<i$.length&&(inst=i$[i]);i++){if(!inst.isPlaceholder){inst.__setProperty(prop,value,true);}}},_forwardParentPath:function(path,value){var i$=this._instances;for(var i=0,inst;i<i$.length&&(inst=i$[i]);i++){if(!inst.isPlaceholder){inst._notifyPath(path,value,true);}}},_forwardItemPath:function(path,value){if(this._keyToInstIdx){var dot=path.indexOf('.');var key=path.substring(0,dot<0?path.length:dot);var idx=this._keyToInstIdx[key];var inst=this._instances[idx];if(inst&&!inst.isPlaceholder){if(dot>=0){path=this.as+'.'+path.substring(dot+1);inst._notifyPath(path,value,true);}else{inst.__setProperty(this.as,value,true);}}}},itemForElement:function(el){var instance=this.modelForElement(el);return instance&&instance[this.as];},keyForElement:function(el){var instance=this.modelForElement(el);return instance&&instance.__key__;},indexForElement:function(el){var instance=this.modelForElement(el);return instance&&instance[this.indexAs];}});Polymer({is:'array-selector',_template:null,properties:{items:{type:Array,observer:'clearSelection'},multi:{type:Boolean,value:false,observer:'clearSelection'},selected:{type:Object,notify:true},selectedItem:{type:Object,notify:true},toggle:{type:Boolean,value:false}},clearSelection:function(){if(Array.isArray(this.selected)){for(var i=0;i<this.selected.length;i++){this.unlinkPaths('selected.'+i);}}else{this.unlinkPaths('selected');this.unlinkPaths('selectedItem');}
if(this.multi){if(!this.selected||this.selected.length){this.selected=[];this._selectedColl=Polymer.Collection.get(this.selected);}}else{this.selected=null;this._selectedColl=null;}
this.selectedItem=null;},isSelected:function(item){if(this.multi){return this._selectedColl.getKey(item)!==undefined;}else{return this.selected==item;}},deselect:function(item){if(this.multi){if(this.isSelected(item)){var skey=this._selectedColl.getKey(item);this.arrayDelete('selected',item);this.unlinkPaths('selected.'+skey);}}else{this.selected=null;this.selectedItem=null;this.unlinkPaths('selected');this.unlinkPaths('selectedItem');}},select:function(item){var icol=Polymer.Collection.get(this.items);var key=icol.getKey(item);if(this.multi){if(this.isSelected(item)){if(this.toggle){this.deselect(item);}}else{this.push('selected',item);var skey=this._selectedColl.getKey(item);this.linkPaths('selected.'+skey,'items.'+key);}}else{if(this.toggle&&item==this.selected){this.deselect();}else{this.selected=item;this.selectedItem=item;this.linkPaths('selected','items.'+key);this.linkPaths('selectedItem','items.'+key);}}}});Polymer({is:'dom-if',extends:'template',_template:null,properties:{'if':{type:Boolean,value:false,observer:'_queueRender'},restamp:{type:Boolean,value:false,observer:'_queueRender'},notifyDomChange:{type:Boolean}},behaviors:[Polymer.Templatizer],_queueRender:function(){this._debounceTemplate(this._render);},detached:function(){if(!this.parentNode||this.parentNode.nodeType==Node.DOCUMENT_FRAGMENT_NODE&&(!Polymer.Settings.hasShadow||!(this.parentNode instanceof ShadowRoot))){this._teardownInstance();}},attached:function(){if(this.if&&this.ctor){this.async(this._ensureInstance);}},render:function(){this._flushTemplates();},_render:function(){if(this.if){if(!this.ctor){this.templatize(this);}
this._ensureInstance();this._showHideChildren();}else if(this.restamp){this._teardownInstance();}
if(!this.restamp&&this._instance){this._showHideChildren();}
if(this.if!=this._lastIf){if(!Polymer.Settings.suppressTemplateNotifications||this.notifyDomChange){this.fire('dom-change');}
this._lastIf=this.if;}},_ensureInstance:function(){var parentNode=Polymer.dom(this).parentNode;if(parentNode){var parent=Polymer.dom(parentNode);if(!this._instance){this._instance=this.stamp();var root=this._instance.root;parent.insertBefore(root,this);}else{var c$=this._instance._children;if(c$&&c$.length){var lastChild=Polymer.dom(this).previousSibling;if(lastChild!==c$[c$.length-1]){for(var i=0,n;i<c$.length&&(n=c$[i]);i++){parent.insertBefore(n,this);}}}}}},_teardownInstance:function(){if(this._instance){var c$=this._instance._children;if(c$&&c$.length){var parent=Polymer.dom(Polymer.dom(c$[0]).parentNode);for(var i=0,n;i<c$.length&&(n=c$[i]);i++){parent.removeChild(n);}}
this._instance=null;}},_showHideChildren:function(){var hidden=this.__hideTemplateChildren__||!this.if;if(this._instance){this._instance._showHideChildren(hidden);}},_forwardParentProp:function(prop,value){if(this._instance){this._instance.__setProperty(prop,value,true);}},_forwardParentPath:function(path,value){if(this._instance){this._instance._notifyPath(path,value,true);}}});Polymer({is:'dom-bind',properties:{notifyDomChange:{type:Boolean}},extends:'template',_template:null,created:function(){var self=this;Polymer.RenderStatus.whenReady(function(){if(document.readyState=='loading'){document.addEventListener('DOMContentLoaded',function(){self._markImportsReady();});}else{self._markImportsReady();}});},_ensureReady:function(){if(!this._readied){this._readySelf();}},_markImportsReady:function(){this._importsReady=true;this._ensureReady();},_registerFeatures:function(){this._prepConstructor();},_insertChildren:function(){var parentDom=Polymer.dom(Polymer.dom(this).parentNode);parentDom.insertBefore(this.root,this);},_removeChildren:function(){if(this._children){for(var i=0;i<this._children.length;i++){this.root.appendChild(this._children[i]);}}},_initFeatures:function(){},_scopeElementClass:function(element,selector){if(this.dataHost){return this.dataHost._scopeElementClass(element,selector);}else{return selector;}},_configureInstanceProperties:function(){},_prepConfigure:function(){var config={};for(var prop in this._propertyEffects){config[prop]=this[prop];}
var setupConfigure=this._setupConfigure;this._setupConfigure=function(){setupConfigure.call(this,config);};},attached:function(){if(this._importsReady){this.render();}},detached:function(){this._removeChildren();},render:function(){this._ensureReady();if(!this._children){this._template=this;this._prepAnnotations();this._prepEffects();this._prepBehaviors();this._prepConfigure();this._prepBindings();this._prepPropertyInfo();Polymer.Base._initFeatures.call(this);this._children=Polymer.TreeApi.arrayCopyChildNodes(this.root);}
this._insertChildren();if(!Polymer.Settings.suppressTemplateNotifications||this.notifyDomChange){this.fire('dom-change');}}});'use strict';if(!Polymer.Settings.useNativeShadow){tr.b.showPanic('Polymer error','base only works in shadow mode');}'use strict';const global=this.window||this.global;this.tr=(function(){if(global.tr)return global.tr;function exportPath(name){const parts=name.split('.');let cur=global;for(let part;parts.length&&(part=parts.shift());){if(part in cur){cur=cur[part];}else{cur=cur[part]={};}}
return cur;}
function isExported(name){const parts=name.split('.');let cur=global;for(let part;parts.length&&(part=parts.shift());){if(part in cur){cur=cur[part];}else{return false;}}
return true;}
function isDefined(name){const parts=name.split('.');let curObject=global;for(let i=0;i<parts.length;i++){const partName=parts[i];const nextObject=curObject[partName];if(nextObject===undefined)return false;curObject=nextObject;}
return true;}
let panicElement=undefined;const rawPanicMessages=[];function showPanicElementIfNeeded(){if(panicElement)return;const panicOverlay=document.createElement('div');panicOverlay.style.backgroundColor='white';panicOverlay.style.border='3px solid red';panicOverlay.style.boxSizing='border-box';panicOverlay.style.color='black';panicOverlay.style.display='-webkit-flex';panicOverlay.style.height='100%';panicOverlay.style.left=0;panicOverlay.style.padding='8px';panicOverlay.style.position='fixed';panicOverlay.style.top=0;panicOverlay.style.webkitFlexDirection='column';panicOverlay.style.width='100%';panicElement=document.createElement('div');panicElement.style.webkitFlex='1 1 auto';panicElement.style.overflow='auto';panicOverlay.appendChild(panicElement);if(!document.body){setTimeout(function(){document.body.appendChild(panicOverlay);},150);}else{document.body.appendChild(panicOverlay);}}
function showPanic(panicTitle,panicDetails){if(tr.isHeadless){if(panicDetails instanceof Error)throw panicDetails;throw new Error('Panic: '+panicTitle+':\n'+panicDetails);}
if(panicDetails instanceof Error){panicDetails=panicDetails.stack;}
showPanicElementIfNeeded();const panicMessageEl=document.createElement('div');panicMessageEl.innerHTML='<h2 id="message"></h2>'+'<pre id="details"></pre>';panicMessageEl.querySelector('#message').textContent=panicTitle;panicMessageEl.querySelector('#details').textContent=panicDetails;panicElement.appendChild(panicMessageEl);rawPanicMessages.push({title:panicTitle,details:panicDetails});}
function hasPanic(){return rawPanicMessages.length!==0;}
function getPanicText(){return rawPanicMessages.map(function(msg){return msg.title;}).join(', ');}
function exportTo(namespace,fn){const obj=exportPath(namespace);const exports=fn();for(const propertyName in exports){const propertyDescriptor=Object.getOwnPropertyDescriptor(exports,propertyName);if(propertyDescriptor){Object.defineProperty(obj,propertyName,propertyDescriptor);}}}
function initialize(){if(global.isVinn){tr.isVinn=true;}else if(global.process&&global.process.versions.node){tr.isNode=true;}else{tr.isVinn=false;tr.isNode=false;tr.doc=document;tr.isMac=/Mac/.test(navigator.platform);tr.isWindows=/Win/.test(navigator.platform);tr.isChromeOS=/CrOS/.test(navigator.userAgent);tr.isLinux=/Linux/.test(navigator.userAgent);}
tr.isHeadless=tr.isVinn||tr.isNode;}
return{initialize,exportTo,isExported,isDefined,showPanic,hasPanic,getPanicText,};})();tr.initialize();'use strict';tr.exportTo('tr.b',function(){function EventTarget(){}
EventTarget.decorate=function(target){for(const k in EventTarget.prototype){if(k==='decorate')continue;const v=EventTarget.prototype[k];if(typeof v!=='function')continue;target[k]=v;}};EventTarget.prototype={addEventListener(type,handler){if(!this.listeners_){this.listeners_=Object.create(null);}
if(!(type in this.listeners_)){this.listeners_[type]=[handler];}else{const handlers=this.listeners_[type];if(handlers.indexOf(handler)<0){handlers.push(handler);}}},removeEventListener(type,handler){if(!this.listeners_)return;if(type in this.listeners_){const handlers=this.listeners_[type];const index=handlers.indexOf(handler);if(index>=0){if(handlers.length===1){delete this.listeners_[type];}else{handlers.splice(index,1);}}}},dispatchEvent(event){if(!this.listeners_)return true;event.__defineGetter__('target',()=>this);const realPreventDefault=event.preventDefault;event.preventDefault=function(){realPreventDefault.call(this);this.rawReturnValue=false;};const type=event.type;let prevented=0;if(type in this.listeners_){const handlers=this.listeners_[type].concat();for(let i=0,handler;handler=handlers[i];i++){if(handler.handleEvent){prevented|=handler.handleEvent.call(handler,event)===false;}else{prevented|=handler.call(this,event)===false;}}}
return!prevented&&event.rawReturnValue;},async dispatchAsync(event){if(!this.listeners_)return true;const listeners=this.listeners_[event.type];if(listeners===undefined)return;await Promise.all(listeners.slice().map(listener=>{if(listener.handleEvent){return listener.handleEvent.call(listener,event);}
return listener.call(this,event);}));},hasEventListener(type){return(this.listeners_!==undefined&&this.listeners_[type]!==undefined);}};return{EventTarget,};});'use strict';tr.exportTo('tr.b',function(){function RegisteredTypeInfo(constructor,metadata){this.constructor=constructor;this.metadata=metadata;}
const BASIC_REGISTRY_MODE='BASIC_REGISTRY_MODE';const TYPE_BASED_REGISTRY_MODE='TYPE_BASED_REGISTRY_MODE';const ALL_MODES={BASIC_REGISTRY_MODE:true,TYPE_BASED_REGISTRY_MODE:true};function ExtensionRegistryOptions(mode){if(mode===undefined){throw new Error('Mode is required');}
if(!ALL_MODES[mode]){throw new Error('Not a mode.');}
this.mode_=mode;this.defaultMetadata_={};this.defaultConstructor_=undefined;this.defaultTypeInfo_=undefined;this.frozen_=false;}
ExtensionRegistryOptions.prototype={freeze(){if(this.frozen_){throw new Error('Frozen');}
this.frozen_=true;},get mode(){return this.mode_;},get defaultMetadata(){return this.defaultMetadata_;},set defaultMetadata(defaultMetadata){if(this.frozen_){throw new Error('Frozen');}
this.defaultMetadata_=defaultMetadata;this.defaultTypeInfo_=undefined;},get defaultConstructor(){return this.defaultConstructor_;},set defaultConstructor(defaultConstructor){if(this.frozen_){throw new Error('Frozen');}
this.defaultConstructor_=defaultConstructor;this.defaultTypeInfo_=undefined;},get defaultTypeInfo(){if(this.defaultTypeInfo_===undefined&&this.defaultConstructor_){this.defaultTypeInfo_=new RegisteredTypeInfo(this.defaultConstructor,this.defaultMetadata);}
return this.defaultTypeInfo_;},validateConstructor(constructor){if(!this.mandatoryBaseClass)return;let curProto=constructor.prototype.__proto__;let ok=false;while(curProto){if(curProto===this.mandatoryBaseClass.prototype){ok=true;break;}
curProto=curProto.__proto__;}
if(!ok){throw new Error(constructor+'must be subclass of '+registry);}}};return{BASIC_REGISTRY_MODE,TYPE_BASED_REGISTRY_MODE,ExtensionRegistryOptions,RegisteredTypeInfo,};});'use strict';tr.exportTo('tr.b',function(){let Event;if(tr.isHeadless){function HeadlessEvent(type,opt_bubbles,opt_preventable){this.type=type;this.bubbles=(opt_bubbles!==undefined?!!opt_bubbles:false);this.cancelable=(opt_preventable!==undefined?!!opt_preventable:false);this.defaultPrevented=false;this.cancelBubble=false;}
HeadlessEvent.prototype={preventDefault(){this.defaultPrevented=true;},stopPropagation(){this.cancelBubble=true;}};Event=HeadlessEvent;}else{function TrEvent(type,opt_bubbles,opt_preventable){const e=tr.doc.createEvent('Event');e.initEvent(type,!!opt_bubbles,!!opt_preventable);e.__proto__=global.Event.prototype;return e;}
TrEvent.prototype={__proto__:global.Event.prototype};Event=TrEvent;}
function dispatchSimpleEvent(target,type,opt_bubbles,opt_cancelable,opt_fields){const e=new tr.b.Event(type,opt_bubbles,opt_cancelable);Object.assign(e,opt_fields);return target.dispatchEvent(e);}
async function dispatchSimpleEventAsync(target,type,opt_fields){const e=new tr.b.Event(type,false,false);Object.assign(e,opt_fields);return await target.dispatchAsync(e);}
return{Event,dispatchSimpleEvent,dispatchSimpleEventAsync,};});'use strict';tr.exportTo('tr.b',function(){const RegisteredTypeInfo=tr.b.RegisteredTypeInfo;const ExtensionRegistryOptions=tr.b.ExtensionRegistryOptions;function decorateBasicExtensionRegistry(registry,extensionRegistryOptions){const savedStateStack=[];registry.registeredTypeInfos_=[];registry.register=function(constructor,opt_metadata){if(registry.findIndexOfRegisteredConstructor(constructor)!==undefined){throw new Error('Handler already registered for '+constructor);}
extensionRegistryOptions.validateConstructor(constructor);const metadata={};for(const k in extensionRegistryOptions.defaultMetadata){metadata[k]=extensionRegistryOptions.defaultMetadata[k];}
if(opt_metadata){for(const k in opt_metadata){metadata[k]=opt_metadata[k];}}
const typeInfo=new RegisteredTypeInfo(constructor,metadata);let e=new tr.b.Event('will-register');e.typeInfo=typeInfo;registry.dispatchEvent(e);registry.registeredTypeInfos_.push(typeInfo);e=new tr.b.Event('registry-changed');registry.dispatchEvent(e);};registry.pushCleanStateBeforeTest=function(){savedStateStack.push(registry.registeredTypeInfos_);registry.registeredTypeInfos_=[];const e=new tr.b.Event('registry-changed');registry.dispatchEvent(e);};registry.popCleanStateAfterTest=function(){registry.registeredTypeInfos_=savedStateStack[0];savedStateStack.splice(0,1);const e=new tr.b.Event('registry-changed');registry.dispatchEvent(e);};registry.findIndexOfRegisteredConstructor=function(constructor){for(let i=0;i<registry.registeredTypeInfos_.length;i++){if(registry.registeredTypeInfos_[i].constructor===constructor){return i;}}
return undefined;};registry.unregister=function(constructor){const foundIndex=registry.findIndexOfRegisteredConstructor(constructor);if(foundIndex===undefined){throw new Error(constructor+' not registered');}
registry.registeredTypeInfos_.splice(foundIndex,1);const e=new tr.b.Event('registry-changed');registry.dispatchEvent(e);};registry.getAllRegisteredTypeInfos=function(){return registry.registeredTypeInfos_;};registry.findTypeInfo=function(constructor){const foundIndex=this.findIndexOfRegisteredConstructor(constructor);if(foundIndex!==undefined){return this.registeredTypeInfos_[foundIndex];}
return undefined;};registry.findTypeInfoMatching=function(predicate,opt_this){opt_this=opt_this?opt_this:undefined;for(let i=0;i<registry.registeredTypeInfos_.length;++i){const typeInfo=registry.registeredTypeInfos_[i];if(predicate.call(opt_this,typeInfo)){return typeInfo;}}
return extensionRegistryOptions.defaultTypeInfo;};registry.findTypeInfoWithName=function(name){if(typeof(name)!=='string'){throw new Error('Name is not a string.');}
const typeInfo=registry.findTypeInfoMatching(function(ti){return ti.constructor.name===name;});if(typeInfo)return typeInfo;return undefined;};}
return{_decorateBasicExtensionRegistry:decorateBasicExtensionRegistry};});'use strict';tr.exportTo('tr.b',function(){const categoryPartsFor={};function getCategoryParts(category){let parts=categoryPartsFor[category];if(parts!==undefined)return parts;parts=category.split(',');categoryPartsFor[category]=parts;return parts;}
return{getCategoryParts,};});'use strict';tr.exportTo('tr.b',function(){const getCategoryParts=tr.b.getCategoryParts;const RegisteredTypeInfo=tr.b.RegisteredTypeInfo;const ExtensionRegistryOptions=tr.b.ExtensionRegistryOptions;function decorateTypeBasedExtensionRegistry(registry,extensionRegistryOptions){const savedStateStack=[];registry.registeredTypeInfos_=[];registry.categoryPartToTypeInfoMap_=new Map();registry.typeNameToTypeInfoMap_=new Map();registry.register=function(constructor,metadata){extensionRegistryOptions.validateConstructor(constructor);const typeInfo=new RegisteredTypeInfo(constructor,metadata||extensionRegistryOptions.defaultMetadata);typeInfo.typeNames=[];typeInfo.categoryParts=[];if(metadata&&metadata.typeName){typeInfo.typeNames.push(metadata.typeName);}
if(metadata&&metadata.typeNames){typeInfo.typeNames.push.apply(typeInfo.typeNames,metadata.typeNames);}
if(metadata&&metadata.categoryParts){typeInfo.categoryParts.push.apply(typeInfo.categoryParts,metadata.categoryParts);}
if(typeInfo.typeNames.length===0&&typeInfo.categoryParts.length===0){throw new Error('typeName or typeNames must be provided');}
typeInfo.typeNames.forEach(function(typeName){if(registry.typeNameToTypeInfoMap_.has(typeName)){throw new Error('typeName '+typeName+' already registered');}});typeInfo.categoryParts.forEach(function(categoryPart){if(registry.categoryPartToTypeInfoMap_.has(categoryPart)){throw new Error('categoryPart '+categoryPart+' already registered');}});let e=new tr.b.Event('will-register');e.typeInfo=typeInfo;registry.dispatchEvent(e);typeInfo.typeNames.forEach(function(typeName){registry.typeNameToTypeInfoMap_.set(typeName,typeInfo);});typeInfo.categoryParts.forEach(function(categoryPart){registry.categoryPartToTypeInfoMap_.set(categoryPart,typeInfo);});registry.registeredTypeInfos_.push(typeInfo);e=new tr.b.Event('registry-changed');registry.dispatchEvent(e);};registry.pushCleanStateBeforeTest=function(){savedStateStack.push({registeredTypeInfos:registry.registeredTypeInfos_,typeNameToTypeInfoMap:registry.typeNameToTypeInfoMap_,categoryPartToTypeInfoMap:registry.categoryPartToTypeInfoMap_});registry.registeredTypeInfos_=[];registry.typeNameToTypeInfoMap_=new Map();registry.categoryPartToTypeInfoMap_=new Map();const e=new tr.b.Event('registry-changed');registry.dispatchEvent(e);};registry.popCleanStateAfterTest=function(){const state=savedStateStack[0];savedStateStack.splice(0,1);registry.registeredTypeInfos_=state.registeredTypeInfos;registry.typeNameToTypeInfoMap_=state.typeNameToTypeInfoMap;registry.categoryPartToTypeInfoMap_=state.categoryPartToTypeInfoMap;const e=new tr.b.Event('registry-changed');registry.dispatchEvent(e);};registry.unregister=function(constructor){let typeInfoIndex=-1;for(let i=0;i<registry.registeredTypeInfos_.length;i++){if(registry.registeredTypeInfos_[i].constructor===constructor){typeInfoIndex=i;break;}}
if(typeInfoIndex===-1){throw new Error(constructor+' not registered');}
const typeInfo=registry.registeredTypeInfos_[typeInfoIndex];registry.registeredTypeInfos_.splice(typeInfoIndex,1);typeInfo.typeNames.forEach(function(typeName){registry.typeNameToTypeInfoMap_.delete(typeName);});typeInfo.categoryParts.forEach(function(categoryPart){registry.categoryPartToTypeInfoMap_.delete(categoryPart);});const e=new tr.b.Event('registry-changed');registry.dispatchEvent(e);};registry.getTypeInfo=function(category,typeName){if(category){const categoryParts=getCategoryParts(category);for(let i=0;i<categoryParts.length;i++){const categoryPart=categoryParts[i];const typeInfo=registry.categoryPartToTypeInfoMap_.get(categoryPart);if(typeInfo!==undefined)return typeInfo;}}
const typeInfo=registry.typeNameToTypeInfoMap_.get(typeName);if(typeInfo!==undefined)return typeInfo;return extensionRegistryOptions.defaultTypeInfo;};registry.getConstructor=function(category,typeName){const typeInfo=registry.getTypeInfo(category,typeName);if(typeInfo)return typeInfo.constructor;return undefined;};}
return{_decorateTypeBasedExtensionRegistry:decorateTypeBasedExtensionRegistry};});'use strict';tr.exportTo('tr.b',function(){function asArray(x){const values=[];if(x[Symbol.iterator]){for(const value of x){values.push(value);}}else{for(let i=0;i<x.length;i++){values.push(x[i]);}}
return values;}
function getOnlyElement(iterable){const iterator=iterable[Symbol.iterator]();const firstIteration=iterator.next();if(firstIteration.done){throw new Error('getOnlyElement was passed an empty iterable.');}
const secondIteration=iterator.next();if(!secondIteration.done){throw new Error('getOnlyElement was passed an iterable with multiple elements.');}
return firstIteration.value;}
function getFirstElement(iterable){const iterator=iterable[Symbol.iterator]();const result=iterator.next();if(result.done){throw new Error('getFirstElement was passed an empty iterable.');}
return result.value;}
function compareArrays(x,y,elementCmp){const minLength=Math.min(x.length,y.length);let i;for(i=0;i<minLength;i++){const tmp=elementCmp(x[i],y[i]);if(tmp)return tmp;}
if(x.length===y.length)return 0;if(x[i]===undefined)return-1;return 1;}
function comparePossiblyUndefinedValues(x,y,cmp,opt_this){if(x!==undefined&&y!==undefined){return cmp.call(opt_this,x,y);}
if(x!==undefined)return-1;if(y!==undefined)return 1;return 0;}
function concatenateObjects(){const result={};for(let i=0;i<arguments.length;i++){const object=arguments[i];for(const j in object){result[j]=object[j];}}
return result;}
function dictionaryContainsValue(dict,value){for(const key in dict){if(dict[key]===value){return true;}}
return false;}
function groupIntoMap(ary,callback,opt_this,opt_arrayConstructor){const arrayConstructor=opt_arrayConstructor||Array;const results=new Map();for(const element of ary){const key=callback.call(opt_this,element);let items=results.get(key);if(items===undefined){items=new arrayConstructor();results.set(key,items);}
items.push(element);}
return results;}
function mapItems(dict,fn,opt_this){opt_this=opt_this||this;const result={};const keys=Object.keys(dict);for(let i=0;i<keys.length;i++){const key=keys[i];result[key]=fn.call(opt_this,key,dict[key]);}
return result;}
function filterItems(dict,predicate,opt_this){opt_this=opt_this||this;const result={};const keys=Object.keys(dict);for(let i=0;i<keys.length;i++){const key=keys[i];const value=dict[key];if(predicate.call(opt_this,key,value)){result[key]=value;}}
return result;}
function inPlaceFilter(array,predicate,opt_this){opt_this=opt_this||this;let nextPosition=0;for(let i=0;i<array.length;i++){if(!predicate.call(opt_this,array[i],i))continue;if(nextPosition<i){array[nextPosition]=array[i];}
nextPosition++;}
if(nextPosition<array.length){array.length=nextPosition;}}
function iterObjectFieldsRecursively(object,func){if(!(object instanceof Object))return;if(object instanceof Array){for(let i=0;i<object.length;i++){func(object,i,object[i]);iterObjectFieldsRecursively(object[i],func);}
return;}
for(const key in object){const value=object[key];func(object,key,value);iterObjectFieldsRecursively(value,func);}}
function invertArrayOfDicts(array,opt_dictGetter,opt_this){opt_this=opt_this||this;const result={};for(let i=0;i<array.length;i++){const item=array[i];if(item===undefined)continue;const dict=opt_dictGetter?opt_dictGetter.call(opt_this,item):item;if(dict===undefined)continue;for(const key in dict){let valueList=result[key];if(valueList===undefined){result[key]=valueList=new Array(array.length);}
valueList[i]=dict[key];}}
return result;}
function arrayToDict(array,valueToKeyFn,opt_this){opt_this=opt_this||this;const result={};const length=array.length;for(let i=0;i<length;i++){const value=array[i];const key=valueToKeyFn.call(opt_this,value);result[key]=value;}
return result;}
function identity(d){return d;}
function findFirstIndexInArray(ary,opt_func,opt_this){const func=opt_func||identity;for(let i=0;i<ary.length;i++){if(func.call(opt_this,ary[i],i))return i;}
return-1;}
function findFirstInArray(ary,opt_func,opt_this){const i=findFirstIndexInArray(ary,opt_func,opt_func);if(i===-1)return undefined;return ary[i];}
function findFirstKeyInDictMatching(dict,opt_func,opt_this){const func=opt_func||identity;for(const key in dict){if(func.call(opt_this,key,dict[key])){return key;}}
return undefined;}
function mapValues(map){const values=[];for(const value of map.values()){values.push(value);}
return values;}
function setsEqual(a,b){if(!(a instanceof Set)||!(b instanceof Set))return false;if(a.size!==b.size)return false;for(const x of a){if(!b.has(x))return false;}
return true;}
return{asArray,concatenateObjects,compareArrays,comparePossiblyUndefinedValues,dictionaryContainsValue,getOnlyElement,getFirstElement,groupIntoMap,mapItems,filterItems,inPlaceFilter,iterObjectFieldsRecursively,invertArrayOfDicts,arrayToDict,identity,findFirstIndexInArray,findFirstInArray,findFirstKeyInDictMatching,mapValues,setsEqual,};});'use strict';tr.exportTo('tr.b',function(){function decorateExtensionRegistry(registry,registryOptions){if(registry.register){throw new Error('Already has registry');}
registryOptions.freeze();if(registryOptions.mode===tr.b.BASIC_REGISTRY_MODE){tr.b._decorateBasicExtensionRegistry(registry,registryOptions);}else if(registryOptions.mode===tr.b.TYPE_BASED_REGISTRY_MODE){tr.b._decorateTypeBasedExtensionRegistry(registry,registryOptions);}else{throw new Error('Unrecognized mode');}
if(registry.addEventListener===undefined){tr.b.EventTarget.decorate(registry);}}
return{decorateExtensionRegistry,};});'use strict';tr.exportTo('tr.importer',function(){function Importer(){}
Importer.prototype={__proto__:Object.prototype,get importerName(){return'Importer';},isTraceDataContainer(){return false;},extractSubtraces(){return[];},importClockSyncMarkers(){},importEvents(){},importSampleData(){},finalizeImport(){}};const options=new tr.b.ExtensionRegistryOptions(tr.b.BASIC_REGISTRY_MODE);options.defaultMetadata={};options.mandatoryBaseClass=Importer;tr.b.decorateExtensionRegistry(Importer,options);Importer.findImporterFor=function(eventData){const typeInfo=Importer.findTypeInfoMatching(function(ti){return ti.constructor.canImport(eventData);});if(typeInfo){return typeInfo.constructor;}
return undefined;};return{Importer,};});'use strict';tr.exportTo('tr.e.importer.gcloud_trace',function(){function GcloudTraceImporter(model,eventData){this.importPriority=2;this.eventData_=eventData;}
GcloudTraceImporter.canImport=function(eventData){if(typeof(eventData)!=='string'&&!(eventData instanceof String)){return false;}
const normalizedEventData=eventData.slice(0,20).replace(/\s/g,'');if(normalizedEventData.length<14)return false;return normalizedEventData.slice(0,14)==='{"projectId":"';};GcloudTraceImporter.prototype={__proto__:tr.importer.Importer.prototype,get importerName(){return'GcloudTraceImporter';},extractSubtraces(){const traceEvents=this.createEventsForTrace();return traceEvents?[traceEvents]:[];},createEventsForTrace(){const events=[];const trace=JSON.parse(this.eventData_);const spanLength=trace.spans.length;for(let i=0;i<spanLength;i++){events.push(this.createEventForSpan(trace.traceId,trace.spans[i]));}
return{'traceEvents':events};},createEventForSpan(traceId,span){let newArgs={};if(span.labels){newArgs=JSON.parse(JSON.stringify(span.labels));}
newArgs['Span ID']=span.spanId;newArgs['Start Time']=span.startTime;newArgs['End Time']=span.endTime;if(span.parentSpanId){newArgs['Parent Span ID']=span.parentSpanId;}
return{name:span.name,args:newArgs,pid:traceId,ts:Date.parse(span.startTime)*1000,dur:(Date.parse(span.endTime)-Date.parse(span.startTime))*1000,cat:'tracespan',tid:traceId,ph:'X'};}};tr.importer.Importer.register(GcloudTraceImporter);return{GcloudTraceImporter,};});'use strict';tr.exportTo('tr.b.math',function(){function convertEventsToRanges(events){return events.map(function(event){return tr.b.math.Range.fromExplicitRange(event.start,event.end);});}
function mergeRanges(inRanges,mergeThreshold,mergeFunction){const remainingEvents=inRanges.slice();remainingEvents.sort(function(x,y){return x.min-y.min;});if(remainingEvents.length<=1){const merged=[];if(remainingEvents.length===1){merged.push(mergeFunction(remainingEvents));}
return merged;}
const mergedEvents=[];let currentMergeBuffer=[];let rightEdge;function beginMerging(){currentMergeBuffer.push(remainingEvents[0]);remainingEvents.splice(0,1);rightEdge=currentMergeBuffer[0].max;}
function flushCurrentMergeBuffer(){if(currentMergeBuffer.length===0)return;mergedEvents.push(mergeFunction(currentMergeBuffer));currentMergeBuffer=[];if(remainingEvents.length!==0)beginMerging();}
beginMerging();while(remainingEvents.length){const currentEvent=remainingEvents[0];const distanceFromRightEdge=currentEvent.min-rightEdge;if(distanceFromRightEdge<mergeThreshold){rightEdge=Math.max(rightEdge,currentEvent.max);remainingEvents.splice(0,1);currentMergeBuffer.push(currentEvent);continue;}
flushCurrentMergeBuffer();}
flushCurrentMergeBuffer();return mergedEvents;}
function findEmptyRangesBetweenRanges(inRanges,opt_totalRange){if(opt_totalRange&&opt_totalRange.isEmpty)opt_totalRange=undefined;const emptyRanges=[];if(!inRanges.length){if(opt_totalRange)emptyRanges.push(opt_totalRange);return emptyRanges;}
inRanges=inRanges.slice();inRanges.sort(function(x,y){return x.min-y.min;});if(opt_totalRange&&(opt_totalRange.min<inRanges[0].min)){emptyRanges.push(tr.b.math.Range.fromExplicitRange(opt_totalRange.min,inRanges[0].min));}
inRanges.forEach(function(range,index){for(let otherIndex=0;otherIndex<inRanges.length;++otherIndex){if(index===otherIndex)continue;const other=inRanges[otherIndex];if(other.min>range.max){emptyRanges.push(tr.b.math.Range.fromExplicitRange(range.max,other.min));return;}
if(other.max>range.max){return;}}
if(opt_totalRange&&(range.max<opt_totalRange.max)){emptyRanges.push(tr.b.math.Range.fromExplicitRange(range.max,opt_totalRange.max));}});return emptyRanges;}
return{convertEventsToRanges,findEmptyRangesBetweenRanges,mergeRanges,};});!function(t,n){if("object"==typeof exports&&"object"==typeof module)module.exports=n();else if("function"==typeof define&&define.amd)define(n);else{var r=n();for(var a in r)("object"==typeof exports?exports:t)[a]=r[a]}}(this,function(){return function(t){function n(a){if(r[a])return r[a].exports;var e=r[a]={exports:{},id:a,loaded:!1};return t[a].call(e.exports,e,e.exports,n),e.loaded=!0,e.exports}var r={};return n.m=t,n.c=r,n.p="",n(0)}([function(t,n,r){n.glMatrix=r(1),n.mat2=r(2),n.mat2d=r(3),n.mat3=r(4),n.mat4=r(5),n.quat=r(6),n.vec2=r(9),n.vec3=r(7),n.vec4=r(8)},function(t,n,r){var a={};a.EPSILON=1e-6,a.ARRAY_TYPE="undefined"!=typeof Float32Array?Float32Array:Array,a.RANDOM=Math.random,a.setMatrixArrayType=function(t){GLMAT_ARRAY_TYPE=t};var e=Math.PI/180;a.toRadian=function(t){return t*e},t.exports=a},function(t,n,r){var a=r(1),e={};e.create=function(){var t=new a.ARRAY_TYPE(4);return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t},e.clone=function(t){var n=new a.ARRAY_TYPE(4);return n[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=t[3],n},e.copy=function(t,n){return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t},e.identity=function(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t},e.transpose=function(t,n){if(t===n){var r=n[1];t[1]=n[2],t[2]=r}else t[0]=n[0],t[1]=n[2],t[2]=n[1],t[3]=n[3];return t},e.invert=function(t,n){var r=n[0],a=n[1],e=n[2],u=n[3],o=r*u-e*a;return o?(o=1/o,t[0]=u*o,t[1]=-a*o,t[2]=-e*o,t[3]=r*o,t):null},e.adjoint=function(t,n){var r=n[0];return t[0]=n[3],t[1]=-n[1],t[2]=-n[2],t[3]=r,t},e.determinant=function(t){return t[0]*t[3]-t[2]*t[1]},e.multiply=function(t,n,r){var a=n[0],e=n[1],u=n[2],o=n[3],i=r[0],c=r[1],f=r[2],s=r[3];return t[0]=a*i+u*c,t[1]=e*i+o*c,t[2]=a*f+u*s,t[3]=e*f+o*s,t},e.mul=e.multiply,e.rotate=function(t,n,r){var a=n[0],e=n[1],u=n[2],o=n[3],i=Math.sin(r),c=Math.cos(r);return t[0]=a*c+u*i,t[1]=e*c+o*i,t[2]=a*-i+u*c,t[3]=e*-i+o*c,t},e.scale=function(t,n,r){var a=n[0],e=n[1],u=n[2],o=n[3],i=r[0],c=r[1];return t[0]=a*i,t[1]=e*i,t[2]=u*c,t[3]=o*c,t},e.fromRotation=function(t,n){var r=Math.sin(n),a=Math.cos(n);return t[0]=a,t[1]=r,t[2]=-r,t[3]=a,t},e.fromScaling=function(t,n){return t[0]=n[0],t[1]=0,t[2]=0,t[3]=n[1],t},e.str=function(t){return"mat2("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+")"},e.frob=function(t){return Math.sqrt(Math.pow(t[0],2)+Math.pow(t[1],2)+Math.pow(t[2],2)+Math.pow(t[3],2))},e.LDU=function(t,n,r,a){return t[2]=a[2]/a[0],r[0]=a[0],r[1]=a[1],r[3]=a[3]-t[2]*r[1],[t,n,r]},t.exports=e},function(t,n,r){var a=r(1),e={};e.create=function(){var t=new a.ARRAY_TYPE(6);return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t[4]=0,t[5]=0,t},e.clone=function(t){var n=new a.ARRAY_TYPE(6);return n[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=t[3],n[4]=t[4],n[5]=t[5],n},e.copy=function(t,n){return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t[4]=n[4],t[5]=n[5],t},e.identity=function(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t[4]=0,t[5]=0,t},e.invert=function(t,n){var r=n[0],a=n[1],e=n[2],u=n[3],o=n[4],i=n[5],c=r*u-a*e;return c?(c=1/c,t[0]=u*c,t[1]=-a*c,t[2]=-e*c,t[3]=r*c,t[4]=(e*i-u*o)*c,t[5]=(a*o-r*i)*c,t):null},e.determinant=function(t){return t[0]*t[3]-t[1]*t[2]},e.multiply=function(t,n,r){var a=n[0],e=n[1],u=n[2],o=n[3],i=n[4],c=n[5],f=r[0],s=r[1],h=r[2],M=r[3],l=r[4],v=r[5];return t[0]=a*f+u*s,t[1]=e*f+o*s,t[2]=a*h+u*M,t[3]=e*h+o*M,t[4]=a*l+u*v+i,t[5]=e*l+o*v+c,t},e.mul=e.multiply,e.rotate=function(t,n,r){var a=n[0],e=n[1],u=n[2],o=n[3],i=n[4],c=n[5],f=Math.sin(r),s=Math.cos(r);return t[0]=a*s+u*f,t[1]=e*s+o*f,t[2]=a*-f+u*s,t[3]=e*-f+o*s,t[4]=i,t[5]=c,t},e.scale=function(t,n,r){var a=n[0],e=n[1],u=n[2],o=n[3],i=n[4],c=n[5],f=r[0],s=r[1];return t[0]=a*f,t[1]=e*f,t[2]=u*s,t[3]=o*s,t[4]=i,t[5]=c,t},e.translate=function(t,n,r){var a=n[0],e=n[1],u=n[2],o=n[3],i=n[4],c=n[5],f=r[0],s=r[1];return t[0]=a,t[1]=e,t[2]=u,t[3]=o,t[4]=a*f+u*s+i,t[5]=e*f+o*s+c,t},e.fromRotation=function(t,n){var r=Math.sin(n),a=Math.cos(n);return t[0]=a,t[1]=r,t[2]=-r,t[3]=a,t[4]=0,t[5]=0,t},e.fromScaling=function(t,n){return t[0]=n[0],t[1]=0,t[2]=0,t[3]=n[1],t[4]=0,t[5]=0,t},e.fromTranslation=function(t,n){return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t[4]=n[0],t[5]=n[1],t},e.str=function(t){return"mat2d("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+", "+t[4]+", "+t[5]+")"},e.frob=function(t){return Math.sqrt(Math.pow(t[0],2)+Math.pow(t[1],2)+Math.pow(t[2],2)+Math.pow(t[3],2)+Math.pow(t[4],2)+Math.pow(t[5],2)+1)},t.exports=e},function(t,n,r){var a=r(1),e={};e.create=function(){var t=new a.ARRAY_TYPE(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},e.fromMat4=function(t,n){return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[4],t[4]=n[5],t[5]=n[6],t[6]=n[8],t[7]=n[9],t[8]=n[10],t},e.clone=function(t){var n=new a.ARRAY_TYPE(9);return n[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=t[3],n[4]=t[4],n[5]=t[5],n[6]=t[6],n[7]=t[7],n[8]=t[8],n},e.copy=function(t,n){return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t[4]=n[4],t[5]=n[5],t[6]=n[6],t[7]=n[7],t[8]=n[8],t},e.identity=function(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},e.transpose=function(t,n){if(t===n){var r=n[1],a=n[2],e=n[5];t[1]=n[3],t[2]=n[6],t[3]=r,t[5]=n[7],t[6]=a,t[7]=e}else t[0]=n[0],t[1]=n[3],t[2]=n[6],t[3]=n[1],t[4]=n[4],t[5]=n[7],t[6]=n[2],t[7]=n[5],t[8]=n[8];return t},e.invert=function(t,n){var r=n[0],a=n[1],e=n[2],u=n[3],o=n[4],i=n[5],c=n[6],f=n[7],s=n[8],h=s*o-i*f,M=-s*u+i*c,l=f*u-o*c,v=r*h+a*M+e*l;return v?(v=1/v,t[0]=h*v,t[1]=(-s*a+e*f)*v,t[2]=(i*a-e*o)*v,t[3]=M*v,t[4]=(s*r-e*c)*v,t[5]=(-i*r+e*u)*v,t[6]=l*v,t[7]=(-f*r+a*c)*v,t[8]=(o*r-a*u)*v,t):null},e.adjoint=function(t,n){var r=n[0],a=n[1],e=n[2],u=n[3],o=n[4],i=n[5],c=n[6],f=n[7],s=n[8];return t[0]=o*s-i*f,t[1]=e*f-a*s,t[2]=a*i-e*o,t[3]=i*c-u*s,t[4]=r*s-e*c,t[5]=e*u-r*i,t[6]=u*f-o*c,t[7]=a*c-r*f,t[8]=r*o-a*u,t},e.determinant=function(t){var n=t[0],r=t[1],a=t[2],e=t[3],u=t[4],o=t[5],i=t[6],c=t[7],f=t[8];return n*(f*u-o*c)+r*(-f*e+o*i)+a*(c*e-u*i)},e.multiply=function(t,n,r){var a=n[0],e=n[1],u=n[2],o=n[3],i=n[4],c=n[5],f=n[6],s=n[7],h=n[8],M=r[0],l=r[1],v=r[2],m=r[3],p=r[4],d=r[5],A=r[6],R=r[7],w=r[8];return t[0]=M*a+l*o+v*f,t[1]=M*e+l*i+v*s,t[2]=M*u+l*c+v*h,t[3]=m*a+p*o+d*f,t[4]=m*e+p*i+d*s,t[5]=m*u+p*c+d*h,t[6]=A*a+R*o+w*f,t[7]=A*e+R*i+w*s,t[8]=A*u+R*c+w*h,t},e.mul=e.multiply,e.translate=function(t,n,r){var a=n[0],e=n[1],u=n[2],o=n[3],i=n[4],c=n[5],f=n[6],s=n[7],h=n[8],M=r[0],l=r[1];return t[0]=a,t[1]=e,t[2]=u,t[3]=o,t[4]=i,t[5]=c,t[6]=M*a+l*o+f,t[7]=M*e+l*i+s,t[8]=M*u+l*c+h,t},e.rotate=function(t,n,r){var a=n[0],e=n[1],u=n[2],o=n[3],i=n[4],c=n[5],f=n[6],s=n[7],h=n[8],M=Math.sin(r),l=Math.cos(r);return t[0]=l*a+M*o,t[1]=l*e+M*i,t[2]=l*u+M*c,t[3]=l*o-M*a,t[4]=l*i-M*e,t[5]=l*c-M*u,t[6]=f,t[7]=s,t[8]=h,t},e.scale=function(t,n,r){var a=r[0],e=r[1];return t[0]=a*n[0],t[1]=a*n[1],t[2]=a*n[2],t[3]=e*n[3],t[4]=e*n[4],t[5]=e*n[5],t[6]=n[6],t[7]=n[7],t[8]=n[8],t},e.fromTranslation=function(t,n){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=n[0],t[7]=n[1],t[8]=1,t},e.fromRotation=function(t,n){var r=Math.sin(n),a=Math.cos(n);return t[0]=a,t[1]=r,t[2]=0,t[3]=-r,t[4]=a,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},e.fromScaling=function(t,n){return t[0]=n[0],t[1]=0,t[2]=0,t[3]=0,t[4]=n[1],t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},e.fromMat2d=function(t,n){return t[0]=n[0],t[1]=n[1],t[2]=0,t[3]=n[2],t[4]=n[3],t[5]=0,t[6]=n[4],t[7]=n[5],t[8]=1,t},e.fromQuat=function(t,n){var r=n[0],a=n[1],e=n[2],u=n[3],o=r+r,i=a+a,c=e+e,f=r*o,s=a*o,h=a*i,M=e*o,l=e*i,v=e*c,m=u*o,p=u*i,d=u*c;return t[0]=1-h-v,t[3]=s-d,t[6]=M+p,t[1]=s+d,t[4]=1-f-v,t[7]=l-m,t[2]=M-p,t[5]=l+m,t[8]=1-f-h,t},e.normalFromMat4=function(t,n){var r=n[0],a=n[1],e=n[2],u=n[3],o=n[4],i=n[5],c=n[6],f=n[7],s=n[8],h=n[9],M=n[10],l=n[11],v=n[12],m=n[13],p=n[14],d=n[15],A=r*i-a*o,R=r*c-e*o,w=r*f-u*o,q=a*c-e*i,Y=a*f-u*i,g=e*f-u*c,y=s*m-h*v,x=s*p-M*v,P=s*d-l*v,E=h*p-M*m,T=h*d-l*m,b=M*d-l*p,D=A*b-R*T+w*E+q*P-Y*x+g*y;return D?(D=1/D,t[0]=(i*b-c*T+f*E)*D,t[1]=(c*P-o*b-f*x)*D,t[2]=(o*T-i*P+f*y)*D,t[3]=(e*T-a*b-u*E)*D,t[4]=(r*b-e*P+u*x)*D,t[5]=(a*P-r*T-u*y)*D,t[6]=(m*g-p*Y+d*q)*D,t[7]=(p*w-v*g-d*R)*D,t[8]=(v*Y-m*w+d*A)*D,t):null},e.str=function(t){return"mat3("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+", "+t[4]+", "+t[5]+", "+t[6]+", "+t[7]+", "+t[8]+")"},e.frob=function(t){return Math.sqrt(Math.pow(t[0],2)+Math.pow(t[1],2)+Math.pow(t[2],2)+Math.pow(t[3],2)+Math.pow(t[4],2)+Math.pow(t[5],2)+Math.pow(t[6],2)+Math.pow(t[7],2)+Math.pow(t[8],2))},t.exports=e},function(t,n,r){var a=r(1),e={};e.create=function(){var t=new a.ARRAY_TYPE(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},e.clone=function(t){var n=new a.ARRAY_TYPE(16);return n[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=t[3],n[4]=t[4],n[5]=t[5],n[6]=t[6],n[7]=t[7],n[8]=t[8],n[9]=t[9],n[10]=t[10],n[11]=t[11],n[12]=t[12],n[13]=t[13],n[14]=t[14],n[15]=t[15],n},e.copy=function(t,n){return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t[4]=n[4],t[5]=n[5],t[6]=n[6],t[7]=n[7],t[8]=n[8],t[9]=n[9],t[10]=n[10],t[11]=n[11],t[12]=n[12],t[13]=n[13],t[14]=n[14],t[15]=n[15],t},e.identity=function(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},e.transpose=function(t,n){if(t===n){var r=n[1],a=n[2],e=n[3],u=n[6],o=n[7],i=n[11];t[1]=n[4],t[2]=n[8],t[3]=n[12],t[4]=r,t[6]=n[9],t[7]=n[13],t[8]=a,t[9]=u,t[11]=n[14],t[12]=e,t[13]=o,t[14]=i}else t[0]=n[0],t[1]=n[4],t[2]=n[8],t[3]=n[12],t[4]=n[1],t[5]=n[5],t[6]=n[9],t[7]=n[13],t[8]=n[2],t[9]=n[6],t[10]=n[10],t[11]=n[14],t[12]=n[3],t[13]=n[7],t[14]=n[11],t[15]=n[15];return t},e.invert=function(t,n){var r=n[0],a=n[1],e=n[2],u=n[3],o=n[4],i=n[5],c=n[6],f=n[7],s=n[8],h=n[9],M=n[10],l=n[11],v=n[12],m=n[13],p=n[14],d=n[15],A=r*i-a*o,R=r*c-e*o,w=r*f-u*o,q=a*c-e*i,Y=a*f-u*i,g=e*f-u*c,y=s*m-h*v,x=s*p-M*v,P=s*d-l*v,E=h*p-M*m,T=h*d-l*m,b=M*d-l*p,D=A*b-R*T+w*E+q*P-Y*x+g*y;return D?(D=1/D,t[0]=(i*b-c*T+f*E)*D,t[1]=(e*T-a*b-u*E)*D,t[2]=(m*g-p*Y+d*q)*D,t[3]=(M*Y-h*g-l*q)*D,t[4]=(c*P-o*b-f*x)*D,t[5]=(r*b-e*P+u*x)*D,t[6]=(p*w-v*g-d*R)*D,t[7]=(s*g-M*w+l*R)*D,t[8]=(o*T-i*P+f*y)*D,t[9]=(a*P-r*T-u*y)*D,t[10]=(v*Y-m*w+d*A)*D,t[11]=(h*w-s*Y-l*A)*D,t[12]=(i*x-o*E-c*y)*D,t[13]=(r*E-a*x+e*y)*D,t[14]=(m*R-v*q-p*A)*D,t[15]=(s*q-h*R+M*A)*D,t):null},e.adjoint=function(t,n){var r=n[0],a=n[1],e=n[2],u=n[3],o=n[4],i=n[5],c=n[6],f=n[7],s=n[8],h=n[9],M=n[10],l=n[11],v=n[12],m=n[13],p=n[14],d=n[15];return t[0]=i*(M*d-l*p)-h*(c*d-f*p)+m*(c*l-f*M),t[1]=-(a*(M*d-l*p)-h*(e*d-u*p)+m*(e*l-u*M)),t[2]=a*(c*d-f*p)-i*(e*d-u*p)+m*(e*f-u*c),t[3]=-(a*(c*l-f*M)-i*(e*l-u*M)+h*(e*f-u*c)),t[4]=-(o*(M*d-l*p)-s*(c*d-f*p)+v*(c*l-f*M)),t[5]=r*(M*d-l*p)-s*(e*d-u*p)+v*(e*l-u*M),t[6]=-(r*(c*d-f*p)-o*(e*d-u*p)+v*(e*f-u*c)),t[7]=r*(c*l-f*M)-o*(e*l-u*M)+s*(e*f-u*c),t[8]=o*(h*d-l*m)-s*(i*d-f*m)+v*(i*l-f*h),t[9]=-(r*(h*d-l*m)-s*(a*d-u*m)+v*(a*l-u*h)),t[10]=r*(i*d-f*m)-o*(a*d-u*m)+v*(a*f-u*i),t[11]=-(r*(i*l-f*h)-o*(a*l-u*h)+s*(a*f-u*i)),t[12]=-(o*(h*p-M*m)-s*(i*p-c*m)+v*(i*M-c*h)),t[13]=r*(h*p-M*m)-s*(a*p-e*m)+v*(a*M-e*h),t[14]=-(r*(i*p-c*m)-o*(a*p-e*m)+v*(a*c-e*i)),t[15]=r*(i*M-c*h)-o*(a*M-e*h)+s*(a*c-e*i),t},e.determinant=function(t){var n=t[0],r=t[1],a=t[2],e=t[3],u=t[4],o=t[5],i=t[6],c=t[7],f=t[8],s=t[9],h=t[10],M=t[11],l=t[12],v=t[13],m=t[14],p=t[15],d=n*o-r*u,A=n*i-a*u,R=n*c-e*u,w=r*i-a*o,q=r*c-e*o,Y=a*c-e*i,g=f*v-s*l,y=f*m-h*l,x=f*p-M*l,P=s*m-h*v,E=s*p-M*v,T=h*p-M*m;return d*T-A*E+R*P+w*x-q*y+Y*g},e.multiply=function(t,n,r){var a=n[0],e=n[1],u=n[2],o=n[3],i=n[4],c=n[5],f=n[6],s=n[7],h=n[8],M=n[9],l=n[10],v=n[11],m=n[12],p=n[13],d=n[14],A=n[15],R=r[0],w=r[1],q=r[2],Y=r[3];return t[0]=R*a+w*i+q*h+Y*m,t[1]=R*e+w*c+q*M+Y*p,t[2]=R*u+w*f+q*l+Y*d,t[3]=R*o+w*s+q*v+Y*A,R=r[4],w=r[5],q=r[6],Y=r[7],t[4]=R*a+w*i+q*h+Y*m,t[5]=R*e+w*c+q*M+Y*p,t[6]=R*u+w*f+q*l+Y*d,t[7]=R*o+w*s+q*v+Y*A,R=r[8],w=r[9],q=r[10],Y=r[11],t[8]=R*a+w*i+q*h+Y*m,t[9]=R*e+w*c+q*M+Y*p,t[10]=R*u+w*f+q*l+Y*d,t[11]=R*o+w*s+q*v+Y*A,R=r[12],w=r[13],q=r[14],Y=r[15],t[12]=R*a+w*i+q*h+Y*m,t[13]=R*e+w*c+q*M+Y*p,t[14]=R*u+w*f+q*l+Y*d,t[15]=R*o+w*s+q*v+Y*A,t},e.mul=e.multiply,e.translate=function(t,n,r){var a,e,u,o,i,c,f,s,h,M,l,v,m=r[0],p=r[1],d=r[2];return n===t?(t[12]=n[0]*m+n[4]*p+n[8]*d+n[12],t[13]=n[1]*m+n[5]*p+n[9]*d+n[13],t[14]=n[2]*m+n[6]*p+n[10]*d+n[14],t[15]=n[3]*m+n[7]*p+n[11]*d+n[15]):(a=n[0],e=n[1],u=n[2],o=n[3],i=n[4],c=n[5],f=n[6],s=n[7],h=n[8],M=n[9],l=n[10],v=n[11],t[0]=a,t[1]=e,t[2]=u,t[3]=o,t[4]=i,t[5]=c,t[6]=f,t[7]=s,t[8]=h,t[9]=M,t[10]=l,t[11]=v,t[12]=a*m+i*p+h*d+n[12],t[13]=e*m+c*p+M*d+n[13],t[14]=u*m+f*p+l*d+n[14],t[15]=o*m+s*p+v*d+n[15]),t},e.scale=function(t,n,r){var a=r[0],e=r[1],u=r[2];return t[0]=n[0]*a,t[1]=n[1]*a,t[2]=n[2]*a,t[3]=n[3]*a,t[4]=n[4]*e,t[5]=n[5]*e,t[6]=n[6]*e,t[7]=n[7]*e,t[8]=n[8]*u,t[9]=n[9]*u,t[10]=n[10]*u,t[11]=n[11]*u,t[12]=n[12],t[13]=n[13],t[14]=n[14],t[15]=n[15],t},e.rotate=function(t,n,r,e){var u,o,i,c,f,s,h,M,l,v,m,p,d,A,R,w,q,Y,g,y,x,P,E,T,b=e[0],D=e[1],L=e[2],_=Math.sqrt(b*b+D*D+L*L);return Math.abs(_)<a.EPSILON?null:(_=1/_,b*=_,D*=_,L*=_,u=Math.sin(r),o=Math.cos(r),i=1-o,c=n[0],f=n[1],s=n[2],h=n[3],M=n[4],l=n[5],v=n[6],m=n[7],p=n[8],d=n[9],A=n[10],R=n[11],w=b*b*i+o,q=D*b*i+L*u,Y=L*b*i-D*u,g=b*D*i-L*u,y=D*D*i+o,x=L*D*i+b*u,P=b*L*i+D*u,E=D*L*i-b*u,T=L*L*i+o,t[0]=c*w+M*q+p*Y,t[1]=f*w+l*q+d*Y,t[2]=s*w+v*q+A*Y,t[3]=h*w+m*q+R*Y,t[4]=c*g+M*y+p*x,t[5]=f*g+l*y+d*x,t[6]=s*g+v*y+A*x,t[7]=h*g+m*y+R*x,t[8]=c*P+M*E+p*T,t[9]=f*P+l*E+d*T,t[10]=s*P+v*E+A*T,t[11]=h*P+m*E+R*T,n!==t&&(t[12]=n[12],t[13]=n[13],t[14]=n[14],t[15]=n[15]),t)},e.rotateX=function(t,n,r){var a=Math.sin(r),e=Math.cos(r),u=n[4],o=n[5],i=n[6],c=n[7],f=n[8],s=n[9],h=n[10],M=n[11];return n!==t&&(t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t[12]=n[12],t[13]=n[13],t[14]=n[14],t[15]=n[15]),t[4]=u*e+f*a,t[5]=o*e+s*a,t[6]=i*e+h*a,t[7]=c*e+M*a,t[8]=f*e-u*a,t[9]=s*e-o*a,t[10]=h*e-i*a,t[11]=M*e-c*a,t},e.rotateY=function(t,n,r){var a=Math.sin(r),e=Math.cos(r),u=n[0],o=n[1],i=n[2],c=n[3],f=n[8],s=n[9],h=n[10],M=n[11];return n!==t&&(t[4]=n[4],t[5]=n[5],t[6]=n[6],t[7]=n[7],t[12]=n[12],t[13]=n[13],t[14]=n[14],t[15]=n[15]),t[0]=u*e-f*a,t[1]=o*e-s*a,t[2]=i*e-h*a,t[3]=c*e-M*a,t[8]=u*a+f*e,t[9]=o*a+s*e,t[10]=i*a+h*e,t[11]=c*a+M*e,t},e.rotateZ=function(t,n,r){var a=Math.sin(r),e=Math.cos(r),u=n[0],o=n[1],i=n[2],c=n[3],f=n[4],s=n[5],h=n[6],M=n[7];return n!==t&&(t[8]=n[8],t[9]=n[9],t[10]=n[10],t[11]=n[11],t[12]=n[12],t[13]=n[13],t[14]=n[14],t[15]=n[15]),t[0]=u*e+f*a,t[1]=o*e+s*a,t[2]=i*e+h*a,t[3]=c*e+M*a,t[4]=f*e-u*a,t[5]=s*e-o*a,t[6]=h*e-i*a,t[7]=M*e-c*a,t},e.fromTranslation=function(t,n){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=n[0],t[13]=n[1],t[14]=n[2],t[15]=1,t},e.fromScaling=function(t,n){return t[0]=n[0],t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=n[1],t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=n[2],t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},e.fromRotation=function(t,n,r){var e,u,o,i=r[0],c=r[1],f=r[2],s=Math.sqrt(i*i+c*c+f*f);return Math.abs(s)<a.EPSILON?null:(s=1/s,i*=s,c*=s,f*=s,e=Math.sin(n),u=Math.cos(n),o=1-u,t[0]=i*i*o+u,t[1]=c*i*o+f*e,t[2]=f*i*o-c*e,t[3]=0,t[4]=i*c*o-f*e,t[5]=c*c*o+u,t[6]=f*c*o+i*e,t[7]=0,t[8]=i*f*o+c*e,t[9]=c*f*o-i*e,t[10]=f*f*o+u,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t)},e.fromXRotation=function(t,n){var r=Math.sin(n),a=Math.cos(n);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=a,t[6]=r,t[7]=0,t[8]=0,t[9]=-r,t[10]=a,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},e.fromYRotation=function(t,n){var r=Math.sin(n),a=Math.cos(n);return t[0]=a,t[1]=0,t[2]=-r,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=r,t[9]=0,t[10]=a,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},e.fromZRotation=function(t,n){var r=Math.sin(n),a=Math.cos(n);return t[0]=a,t[1]=r,t[2]=0,t[3]=0,t[4]=-r,t[5]=a,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},e.fromRotationTranslation=function(t,n,r){var a=n[0],e=n[1],u=n[2],o=n[3],i=a+a,c=e+e,f=u+u,s=a*i,h=a*c,M=a*f,l=e*c,v=e*f,m=u*f,p=o*i,d=o*c,A=o*f;return t[0]=1-(l+m),t[1]=h+A,t[2]=M-d,t[3]=0,t[4]=h-A,t[5]=1-(s+m),t[6]=v+p,t[7]=0,t[8]=M+d,t[9]=v-p,t[10]=1-(s+l),t[11]=0,t[12]=r[0],t[13]=r[1],t[14]=r[2],t[15]=1,t},e.fromRotationTranslationScale=function(t,n,r,a){var e=n[0],u=n[1],o=n[2],i=n[3],c=e+e,f=u+u,s=o+o,h=e*c,M=e*f,l=e*s,v=u*f,m=u*s,p=o*s,d=i*c,A=i*f,R=i*s,w=a[0],q=a[1],Y=a[2];return t[0]=(1-(v+p))*w,t[1]=(M+R)*w,t[2]=(l-A)*w,t[3]=0,t[4]=(M-R)*q,t[5]=(1-(h+p))*q,t[6]=(m+d)*q,t[7]=0,t[8]=(l+A)*Y,t[9]=(m-d)*Y,t[10]=(1-(h+v))*Y,t[11]=0,t[12]=r[0],t[13]=r[1],t[14]=r[2],t[15]=1,t},e.fromRotationTranslationScaleOrigin=function(t,n,r,a,e){var u=n[0],o=n[1],i=n[2],c=n[3],f=u+u,s=o+o,h=i+i,M=u*f,l=u*s,v=u*h,m=o*s,p=o*h,d=i*h,A=c*f,R=c*s,w=c*h,q=a[0],Y=a[1],g=a[2],y=e[0],x=e[1],P=e[2];return t[0]=(1-(m+d))*q,t[1]=(l+w)*q,t[2]=(v-R)*q,t[3]=0,t[4]=(l-w)*Y,t[5]=(1-(M+d))*Y,t[6]=(p+A)*Y,t[7]=0,t[8]=(v+R)*g,t[9]=(p-A)*g,t[10]=(1-(M+m))*g,t[11]=0,t[12]=r[0]+y-(t[0]*y+t[4]*x+t[8]*P),t[13]=r[1]+x-(t[1]*y+t[5]*x+t[9]*P),t[14]=r[2]+P-(t[2]*y+t[6]*x+t[10]*P),t[15]=1,t},e.fromQuat=function(t,n){var r=n[0],a=n[1],e=n[2],u=n[3],o=r+r,i=a+a,c=e+e,f=r*o,s=a*o,h=a*i,M=e*o,l=e*i,v=e*c,m=u*o,p=u*i,d=u*c;return t[0]=1-h-v,t[1]=s+d,t[2]=M-p,t[3]=0,t[4]=s-d,t[5]=1-f-v,t[6]=l+m,t[7]=0,t[8]=M+p,t[9]=l-m,t[10]=1-f-h,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},e.frustum=function(t,n,r,a,e,u,o){var i=1/(r-n),c=1/(e-a),f=1/(u-o);return t[0]=2*u*i,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=2*u*c,t[6]=0,t[7]=0,t[8]=(r+n)*i,t[9]=(e+a)*c,t[10]=(o+u)*f,t[11]=-1,t[12]=0,t[13]=0,t[14]=o*u*2*f,t[15]=0,t},e.perspective=function(t,n,r,a,e){var u=1/Math.tan(n/2),o=1/(a-e);return t[0]=u/r,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=u,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=(e+a)*o,t[11]=-1,t[12]=0,t[13]=0,t[14]=2*e*a*o,t[15]=0,t},e.perspectiveFromFieldOfView=function(t,n,r,a){var e=Math.tan(n.upDegrees*Math.PI/180),u=Math.tan(n.downDegrees*Math.PI/180),o=Math.tan(n.leftDegrees*Math.PI/180),i=Math.tan(n.rightDegrees*Math.PI/180),c=2/(o+i),f=2/(e+u);return t[0]=c,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=f,t[6]=0,t[7]=0,t[8]=-((o-i)*c*.5),t[9]=(e-u)*f*.5,t[10]=a/(r-a),t[11]=-1,t[12]=0,t[13]=0,t[14]=a*r/(r-a),t[15]=0,t},e.ortho=function(t,n,r,a,e,u,o){var i=1/(n-r),c=1/(a-e),f=1/(u-o);return t[0]=-2*i,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=-2*c,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=2*f,t[11]=0,t[12]=(n+r)*i,t[13]=(e+a)*c,t[14]=(o+u)*f,t[15]=1,t},e.lookAt=function(t,n,r,u){var o,i,c,f,s,h,M,l,v,m,p=n[0],d=n[1],A=n[2],R=u[0],w=u[1],q=u[2],Y=r[0],g=r[1],y=r[2];return Math.abs(p-Y)<a.EPSILON&&Math.abs(d-g)<a.EPSILON&&Math.abs(A-y)<a.EPSILON?e.identity(t):(M=p-Y,l=d-g,v=A-y,m=1/Math.sqrt(M*M+l*l+v*v),M*=m,l*=m,v*=m,o=w*v-q*l,i=q*M-R*v,c=R*l-w*M,m=Math.sqrt(o*o+i*i+c*c),m?(m=1/m,o*=m,i*=m,c*=m):(o=0,i=0,c=0),f=l*c-v*i,s=v*o-M*c,h=M*i-l*o,m=Math.sqrt(f*f+s*s+h*h),m?(m=1/m,f*=m,s*=m,h*=m):(f=0,s=0,h=0),t[0]=o,t[1]=f,t[2]=M,t[3]=0,t[4]=i,t[5]=s,t[6]=l,t[7]=0,t[8]=c,t[9]=h,t[10]=v,t[11]=0,t[12]=-(o*p+i*d+c*A),t[13]=-(f*p+s*d+h*A),t[14]=-(M*p+l*d+v*A),t[15]=1,t)},e.str=function(t){return"mat4("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+", "+t[4]+", "+t[5]+", "+t[6]+", "+t[7]+", "+t[8]+", "+t[9]+", "+t[10]+", "+t[11]+", "+t[12]+", "+t[13]+", "+t[14]+", "+t[15]+")"},e.frob=function(t){return Math.sqrt(Math.pow(t[0],2)+Math.pow(t[1],2)+Math.pow(t[2],2)+Math.pow(t[3],2)+Math.pow(t[4],2)+Math.pow(t[5],2)+Math.pow(t[6],2)+Math.pow(t[7],2)+Math.pow(t[8],2)+Math.pow(t[9],2)+Math.pow(t[10],2)+Math.pow(t[11],2)+Math.pow(t[12],2)+Math.pow(t[13],2)+Math.pow(t[14],2)+Math.pow(t[15],2))},t.exports=e},function(t,n,r){var a=r(1),e=r(4),u=r(7),o=r(8),i={};i.create=function(){var t=new a.ARRAY_TYPE(4);return t[0]=0,t[1]=0,t[2]=0,t[3]=1,t},i.rotationTo=function(){var t=u.create(),n=u.fromValues(1,0,0),r=u.fromValues(0,1,0);return function(a,e,o){var c=u.dot(e,o);return-.999999>c?(u.cross(t,n,e),u.length(t)<1e-6&&u.cross(t,r,e),u.normalize(t,t),i.setAxisAngle(a,t,Math.PI),a):c>.999999?(a[0]=0,a[1]=0,a[2]=0,a[3]=1,a):(u.cross(t,e,o),a[0]=t[0],a[1]=t[1],a[2]=t[2],a[3]=1+c,i.normalize(a,a))}}(),i.setAxes=function(){var t=e.create();return function(n,r,a,e){return t[0]=a[0],t[3]=a[1],t[6]=a[2],t[1]=e[0],t[4]=e[1],t[7]=e[2],t[2]=-r[0],t[5]=-r[1],t[8]=-r[2],i.normalize(n,i.fromMat3(n,t))}}(),i.clone=o.clone,i.fromValues=o.fromValues,i.copy=o.copy,i.set=o.set,i.identity=function(t){return t[0]=0,t[1]=0,t[2]=0,t[3]=1,t},i.setAxisAngle=function(t,n,r){r=.5*r;var a=Math.sin(r);return t[0]=a*n[0],t[1]=a*n[1],t[2]=a*n[2],t[3]=Math.cos(r),t},i.add=o.add,i.multiply=function(t,n,r){var a=n[0],e=n[1],u=n[2],o=n[3],i=r[0],c=r[1],f=r[2],s=r[3];return t[0]=a*s+o*i+e*f-u*c,t[1]=e*s+o*c+u*i-a*f,t[2]=u*s+o*f+a*c-e*i,t[3]=o*s-a*i-e*c-u*f,t},i.mul=i.multiply,i.scale=o.scale,i.rotateX=function(t,n,r){r*=.5;var a=n[0],e=n[1],u=n[2],o=n[3],i=Math.sin(r),c=Math.cos(r);return t[0]=a*c+o*i,t[1]=e*c+u*i,t[2]=u*c-e*i,t[3]=o*c-a*i,t},i.rotateY=function(t,n,r){r*=.5;var a=n[0],e=n[1],u=n[2],o=n[3],i=Math.sin(r),c=Math.cos(r);return t[0]=a*c-u*i,t[1]=e*c+o*i,t[2]=u*c+a*i,t[3]=o*c-e*i,t},i.rotateZ=function(t,n,r){r*=.5;var a=n[0],e=n[1],u=n[2],o=n[3],i=Math.sin(r),c=Math.cos(r);return t[0]=a*c+e*i,t[1]=e*c-a*i,t[2]=u*c+o*i,t[3]=o*c-u*i,t},i.calculateW=function(t,n){var r=n[0],a=n[1],e=n[2];return t[0]=r,t[1]=a,t[2]=e,t[3]=Math.sqrt(Math.abs(1-r*r-a*a-e*e)),t},i.dot=o.dot,i.lerp=o.lerp,i.slerp=function(t,n,r,a){var e,u,o,i,c,f=n[0],s=n[1],h=n[2],M=n[3],l=r[0],v=r[1],m=r[2],p=r[3];return u=f*l+s*v+h*m+M*p,0>u&&(u=-u,l=-l,v=-v,m=-m,p=-p),1-u>1e-6?(e=Math.acos(u),o=Math.sin(e),i=Math.sin((1-a)*e)/o,c=Math.sin(a*e)/o):(i=1-a,c=a),t[0]=i*f+c*l,t[1]=i*s+c*v,t[2]=i*h+c*m,t[3]=i*M+c*p,t},i.sqlerp=function(){var t=i.create(),n=i.create();return function(r,a,e,u,o,c){return i.slerp(t,a,o,c),i.slerp(n,e,u,c),i.slerp(r,t,n,2*c*(1-c)),r}}(),i.invert=function(t,n){var r=n[0],a=n[1],e=n[2],u=n[3],o=r*r+a*a+e*e+u*u,i=o?1/o:0;return t[0]=-r*i,t[1]=-a*i,t[2]=-e*i,t[3]=u*i,t},i.conjugate=function(t,n){return t[0]=-n[0],t[1]=-n[1],t[2]=-n[2],t[3]=n[3],t},i.length=o.length,i.len=i.length,i.squaredLength=o.squaredLength,i.sqrLen=i.squaredLength,i.normalize=o.normalize,i.fromMat3=function(t,n){var r,a=n[0]+n[4]+n[8];if(a>0)r=Math.sqrt(a+1),t[3]=.5*r,r=.5/r,t[0]=(n[5]-n[7])*r,t[1]=(n[6]-n[2])*r,t[2]=(n[1]-n[3])*r;else{var e=0;n[4]>n[0]&&(e=1),n[8]>n[3*e+e]&&(e=2);var u=(e+1)%3,o=(e+2)%3;r=Math.sqrt(n[3*e+e]-n[3*u+u]-n[3*o+o]+1),t[e]=.5*r,r=.5/r,t[3]=(n[3*u+o]-n[3*o+u])*r,t[u]=(n[3*u+e]+n[3*e+u])*r,t[o]=(n[3*o+e]+n[3*e+o])*r}return t},i.str=function(t){return"quat("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+")"},t.exports=i},function(t,n,r){var a=r(1),e={};e.create=function(){var t=new a.ARRAY_TYPE(3);return t[0]=0,t[1]=0,t[2]=0,t},e.clone=function(t){var n=new a.ARRAY_TYPE(3);return n[0]=t[0],n[1]=t[1],n[2]=t[2],n},e.fromValues=function(t,n,r){var e=new a.ARRAY_TYPE(3);return e[0]=t,e[1]=n,e[2]=r,e},e.copy=function(t,n){return t[0]=n[0],t[1]=n[1],t[2]=n[2],t},e.set=function(t,n,r,a){return t[0]=n,t[1]=r,t[2]=a,t},e.add=function(t,n,r){return t[0]=n[0]+r[0],t[1]=n[1]+r[1],t[2]=n[2]+r[2],t},e.subtract=function(t,n,r){return t[0]=n[0]-r[0],t[1]=n[1]-r[1],t[2]=n[2]-r[2],t},e.sub=e.subtract,e.multiply=function(t,n,r){return t[0]=n[0]*r[0],t[1]=n[1]*r[1],t[2]=n[2]*r[2],t},e.mul=e.multiply,e.divide=function(t,n,r){return t[0]=n[0]/r[0],t[1]=n[1]/r[1],t[2]=n[2]/r[2],t},e.div=e.divide,e.min=function(t,n,r){return t[0]=Math.min(n[0],r[0]),t[1]=Math.min(n[1],r[1]),t[2]=Math.min(n[2],r[2]),t},e.max=function(t,n,r){return t[0]=Math.max(n[0],r[0]),t[1]=Math.max(n[1],r[1]),t[2]=Math.max(n[2],r[2]),t},e.scale=function(t,n,r){return t[0]=n[0]*r,t[1]=n[1]*r,t[2]=n[2]*r,t},e.scaleAndAdd=function(t,n,r,a){return t[0]=n[0]+r[0]*a,t[1]=n[1]+r[1]*a,t[2]=n[2]+r[2]*a,t},e.distance=function(t,n){var r=n[0]-t[0],a=n[1]-t[1],e=n[2]-t[2];return Math.sqrt(r*r+a*a+e*e)},e.dist=e.distance,e.squaredDistance=function(t,n){var r=n[0]-t[0],a=n[1]-t[1],e=n[2]-t[2];return r*r+a*a+e*e},e.sqrDist=e.squaredDistance,e.length=function(t){var n=t[0],r=t[1],a=t[2];return Math.sqrt(n*n+r*r+a*a)},e.len=e.length,e.squaredLength=function(t){var n=t[0],r=t[1],a=t[2];return n*n+r*r+a*a},e.sqrLen=e.squaredLength,e.negate=function(t,n){return t[0]=-n[0],t[1]=-n[1],t[2]=-n[2],t},e.inverse=function(t,n){return t[0]=1/n[0],t[1]=1/n[1],t[2]=1/n[2],t},e.normalize=function(t,n){var r=n[0],a=n[1],e=n[2],u=r*r+a*a+e*e;return u>0&&(u=1/Math.sqrt(u),t[0]=n[0]*u,t[1]=n[1]*u,t[2]=n[2]*u),t},e.dot=function(t,n){return t[0]*n[0]+t[1]*n[1]+t[2]*n[2]},e.cross=function(t,n,r){var a=n[0],e=n[1],u=n[2],o=r[0],i=r[1],c=r[2];return t[0]=e*c-u*i,t[1]=u*o-a*c,t[2]=a*i-e*o,t},e.lerp=function(t,n,r,a){var e=n[0],u=n[1],o=n[2];return t[0]=e+a*(r[0]-e),t[1]=u+a*(r[1]-u),t[2]=o+a*(r[2]-o),t},e.hermite=function(t,n,r,a,e,u){var o=u*u,i=o*(2*u-3)+1,c=o*(u-2)+u,f=o*(u-1),s=o*(3-2*u);return t[0]=n[0]*i+r[0]*c+a[0]*f+e[0]*s,t[1]=n[1]*i+r[1]*c+a[1]*f+e[1]*s,t[2]=n[2]*i+r[2]*c+a[2]*f+e[2]*s,t},e.bezier=function(t,n,r,a,e,u){var o=1-u,i=o*o,c=u*u,f=i*o,s=3*u*i,h=3*c*o,M=c*u;return t[0]=n[0]*f+r[0]*s+a[0]*h+e[0]*M,t[1]=n[1]*f+r[1]*s+a[1]*h+e[1]*M,t[2]=n[2]*f+r[2]*s+a[2]*h+e[2]*M,t},e.random=function(t,n){n=n||1;var r=2*a.RANDOM()*Math.PI,e=2*a.RANDOM()-1,u=Math.sqrt(1-e*e)*n;return t[0]=Math.cos(r)*u,t[1]=Math.sin(r)*u,t[2]=e*n,t},e.transformMat4=function(t,n,r){var a=n[0],e=n[1],u=n[2],o=r[3]*a+r[7]*e+r[11]*u+r[15];return o=o||1,t[0]=(r[0]*a+r[4]*e+r[8]*u+r[12])/o,t[1]=(r[1]*a+r[5]*e+r[9]*u+r[13])/o,t[2]=(r[2]*a+r[6]*e+r[10]*u+r[14])/o,t},e.transformMat3=function(t,n,r){var a=n[0],e=n[1],u=n[2];return t[0]=a*r[0]+e*r[3]+u*r[6],t[1]=a*r[1]+e*r[4]+u*r[7],t[2]=a*r[2]+e*r[5]+u*r[8],t},e.transformQuat=function(t,n,r){var a=n[0],e=n[1],u=n[2],o=r[0],i=r[1],c=r[2],f=r[3],s=f*a+i*u-c*e,h=f*e+c*a-o*u,M=f*u+o*e-i*a,l=-o*a-i*e-c*u;return t[0]=s*f+l*-o+h*-c-M*-i,t[1]=h*f+l*-i+M*-o-s*-c,t[2]=M*f+l*-c+s*-i-h*-o,t},e.rotateX=function(t,n,r,a){var e=[],u=[];return e[0]=n[0]-r[0],e[1]=n[1]-r[1],e[2]=n[2]-r[2],u[0]=e[0],u[1]=e[1]*Math.cos(a)-e[2]*Math.sin(a),u[2]=e[1]*Math.sin(a)+e[2]*Math.cos(a),t[0]=u[0]+r[0],t[1]=u[1]+r[1],t[2]=u[2]+r[2],t},e.rotateY=function(t,n,r,a){var e=[],u=[];return e[0]=n[0]-r[0],e[1]=n[1]-r[1],e[2]=n[2]-r[2],u[0]=e[2]*Math.sin(a)+e[0]*Math.cos(a),u[1]=e[1],u[2]=e[2]*Math.cos(a)-e[0]*Math.sin(a),t[0]=u[0]+r[0],t[1]=u[1]+r[1],t[2]=u[2]+r[2],t},e.rotateZ=function(t,n,r,a){var e=[],u=[];return e[0]=n[0]-r[0],e[1]=n[1]-r[1],e[2]=n[2]-r[2],u[0]=e[0]*Math.cos(a)-e[1]*Math.sin(a),u[1]=e[0]*Math.sin(a)+e[1]*Math.cos(a),u[2]=e[2],t[0]=u[0]+r[0],t[1]=u[1]+r[1],t[2]=u[2]+r[2],t},e.forEach=function(){var t=e.create();return function(n,r,a,e,u,o){var i,c;for(r||(r=3),a||(a=0),c=e?Math.min(e*r+a,n.length):n.length,i=a;c>i;i+=r)t[0]=n[i],t[1]=n[i+1],t[2]=n[i+2],u(t,t,o),n[i]=t[0],n[i+1]=t[1],n[i+2]=t[2];return n}}(),e.angle=function(t,n){var r=e.fromValues(t[0],t[1],t[2]),a=e.fromValues(n[0],n[1],n[2]);e.normalize(r,r),e.normalize(a,a);var u=e.dot(r,a);return u>1?0:Math.acos(u)},e.str=function(t){return"vec3("+t[0]+", "+t[1]+", "+t[2]+")"},t.exports=e},function(t,n,r){var a=r(1),e={};e.create=function(){var t=new a.ARRAY_TYPE(4);return t[0]=0,t[1]=0,t[2]=0,t[3]=0,t},e.clone=function(t){var n=new a.ARRAY_TYPE(4);return n[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=t[3],n},e.fromValues=function(t,n,r,e){var u=new a.ARRAY_TYPE(4);return u[0]=t,u[1]=n,u[2]=r,u[3]=e,u},e.copy=function(t,n){return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t},e.set=function(t,n,r,a,e){return t[0]=n,t[1]=r,t[2]=a,t[3]=e,t},e.add=function(t,n,r){return t[0]=n[0]+r[0],t[1]=n[1]+r[1],t[2]=n[2]+r[2],t[3]=n[3]+r[3],t},e.subtract=function(t,n,r){return t[0]=n[0]-r[0],t[1]=n[1]-r[1],t[2]=n[2]-r[2],t[3]=n[3]-r[3],t},e.sub=e.subtract,e.multiply=function(t,n,r){return t[0]=n[0]*r[0],t[1]=n[1]*r[1],t[2]=n[2]*r[2],t[3]=n[3]*r[3],t},e.mul=e.multiply,e.divide=function(t,n,r){return t[0]=n[0]/r[0],t[1]=n[1]/r[1],t[2]=n[2]/r[2],t[3]=n[3]/r[3],t},e.div=e.divide,e.min=function(t,n,r){return t[0]=Math.min(n[0],r[0]),t[1]=Math.min(n[1],r[1]),t[2]=Math.min(n[2],r[2]),t[3]=Math.min(n[3],r[3]),t},e.max=function(t,n,r){return t[0]=Math.max(n[0],r[0]),t[1]=Math.max(n[1],r[1]),t[2]=Math.max(n[2],r[2]),t[3]=Math.max(n[3],r[3]),t},e.scale=function(t,n,r){return t[0]=n[0]*r,t[1]=n[1]*r,t[2]=n[2]*r,t[3]=n[3]*r,t},e.scaleAndAdd=function(t,n,r,a){return t[0]=n[0]+r[0]*a,t[1]=n[1]+r[1]*a,t[2]=n[2]+r[2]*a,t[3]=n[3]+r[3]*a,t},e.distance=function(t,n){var r=n[0]-t[0],a=n[1]-t[1],e=n[2]-t[2],u=n[3]-t[3];return Math.sqrt(r*r+a*a+e*e+u*u)},e.dist=e.distance,e.squaredDistance=function(t,n){var r=n[0]-t[0],a=n[1]-t[1],e=n[2]-t[2],u=n[3]-t[3];return r*r+a*a+e*e+u*u},e.sqrDist=e.squaredDistance,e.length=function(t){var n=t[0],r=t[1],a=t[2],e=t[3];return Math.sqrt(n*n+r*r+a*a+e*e)},e.len=e.length,e.squaredLength=function(t){var n=t[0],r=t[1],a=t[2],e=t[3];return n*n+r*r+a*a+e*e},e.sqrLen=e.squaredLength,e.negate=function(t,n){return t[0]=-n[0],t[1]=-n[1],t[2]=-n[2],t[3]=-n[3],t},e.inverse=function(t,n){return t[0]=1/n[0],t[1]=1/n[1],t[2]=1/n[2],t[3]=1/n[3],t},e.normalize=function(t,n){var r=n[0],a=n[1],e=n[2],u=n[3],o=r*r+a*a+e*e+u*u;return o>0&&(o=1/Math.sqrt(o),t[0]=r*o,t[1]=a*o,t[2]=e*o,t[3]=u*o),t},e.dot=function(t,n){return t[0]*n[0]+t[1]*n[1]+t[2]*n[2]+t[3]*n[3]},e.lerp=function(t,n,r,a){var e=n[0],u=n[1],o=n[2],i=n[3];return t[0]=e+a*(r[0]-e),t[1]=u+a*(r[1]-u),t[2]=o+a*(r[2]-o),t[3]=i+a*(r[3]-i),t},e.random=function(t,n){return n=n||1,t[0]=a.RANDOM(),t[1]=a.RANDOM(),t[2]=a.RANDOM(),t[3]=a.RANDOM(),e.normalize(t,t),e.scale(t,t,n),t},e.transformMat4=function(t,n,r){var a=n[0],e=n[1],u=n[2],o=n[3];return t[0]=r[0]*a+r[4]*e+r[8]*u+r[12]*o,t[1]=r[1]*a+r[5]*e+r[9]*u+r[13]*o,t[2]=r[2]*a+r[6]*e+r[10]*u+r[14]*o,t[3]=r[3]*a+r[7]*e+r[11]*u+r[15]*o,t},e.transformQuat=function(t,n,r){var a=n[0],e=n[1],u=n[2],o=r[0],i=r[1],c=r[2],f=r[3],s=f*a+i*u-c*e,h=f*e+c*a-o*u,M=f*u+o*e-i*a,l=-o*a-i*e-c*u;return t[0]=s*f+l*-o+h*-c-M*-i,t[1]=h*f+l*-i+M*-o-s*-c,t[2]=M*f+l*-c+s*-i-h*-o,t[3]=n[3],t},e.forEach=function(){var t=e.create();return function(n,r,a,e,u,o){var i,c;for(r||(r=4),a||(a=0),c=e?Math.min(e*r+a,n.length):n.length,i=a;c>i;i+=r)t[0]=n[i],t[1]=n[i+1],t[2]=n[i+2],t[3]=n[i+3],u(t,t,o),n[i]=t[0],n[i+1]=t[1],n[i+2]=t[2],n[i+3]=t[3];return n}}(),e.str=function(t){return"vec4("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+")"},t.exports=e},function(t,n,r){var a=r(1),e={};e.create=function(){var t=new a.ARRAY_TYPE(2);return t[0]=0,t[1]=0,t},e.clone=function(t){var n=new a.ARRAY_TYPE(2);return n[0]=t[0],n[1]=t[1],n},e.fromValues=function(t,n){var r=new a.ARRAY_TYPE(2);return r[0]=t,r[1]=n,r},e.copy=function(t,n){return t[0]=n[0],t[1]=n[1],t},e.set=function(t,n,r){return t[0]=n,t[1]=r,t},e.add=function(t,n,r){return t[0]=n[0]+r[0],t[1]=n[1]+r[1],t},e.subtract=function(t,n,r){return t[0]=n[0]-r[0],t[1]=n[1]-r[1],t},e.sub=e.subtract,e.multiply=function(t,n,r){return t[0]=n[0]*r[0],t[1]=n[1]*r[1],t},e.mul=e.multiply,e.divide=function(t,n,r){return t[0]=n[0]/r[0],t[1]=n[1]/r[1],t},e.div=e.divide,e.min=function(t,n,r){return t[0]=Math.min(n[0],r[0]),t[1]=Math.min(n[1],r[1]),t},e.max=function(t,n,r){return t[0]=Math.max(n[0],r[0]),t[1]=Math.max(n[1],r[1]),t},e.scale=function(t,n,r){return t[0]=n[0]*r,t[1]=n[1]*r,t},e.scaleAndAdd=function(t,n,r,a){return t[0]=n[0]+r[0]*a,t[1]=n[1]+r[1]*a,t},e.distance=function(t,n){var r=n[0]-t[0],a=n[1]-t[1];return Math.sqrt(r*r+a*a)},e.dist=e.distance,e.squaredDistance=function(t,n){var r=n[0]-t[0],a=n[1]-t[1];return r*r+a*a},e.sqrDist=e.squaredDistance,e.length=function(t){var n=t[0],r=t[1];return Math.sqrt(n*n+r*r)},e.len=e.length,e.squaredLength=function(t){var n=t[0],r=t[1];return n*n+r*r},e.sqrLen=e.squaredLength,e.negate=function(t,n){return t[0]=-n[0],t[1]=-n[1],t},e.inverse=function(t,n){return t[0]=1/n[0],t[1]=1/n[1],t},e.normalize=function(t,n){var r=n[0],a=n[1],e=r*r+a*a;return e>0&&(e=1/Math.sqrt(e),t[0]=n[0]*e,t[1]=n[1]*e),t},e.dot=function(t,n){return t[0]*n[0]+t[1]*n[1]},e.cross=function(t,n,r){var a=n[0]*r[1]-n[1]*r[0];return t[0]=t[1]=0,t[2]=a,t},e.lerp=function(t,n,r,a){var e=n[0],u=n[1];return t[0]=e+a*(r[0]-e),t[1]=u+a*(r[1]-u),t},e.random=function(t,n){n=n||1;var r=2*a.RANDOM()*Math.PI;return t[0]=Math.cos(r)*n,t[1]=Math.sin(r)*n,t},e.transformMat2=function(t,n,r){var a=n[0],e=n[1];return t[0]=r[0]*a+r[2]*e,t[1]=r[1]*a+r[3]*e,t},e.transformMat2d=function(t,n,r){var a=n[0],e=n[1];return t[0]=r[0]*a+r[2]*e+r[4],t[1]=r[1]*a+r[3]*e+r[5],t},e.transformMat3=function(t,n,r){var a=n[0],e=n[1];return t[0]=r[0]*a+r[3]*e+r[6],t[1]=r[1]*a+r[4]*e+r[7],t},e.transformMat4=function(t,n,r){var a=n[0],e=n[1];return t[0]=r[0]*a+r[4]*e+r[12],t[1]=r[1]*a+r[5]*e+r[13],t},e.forEach=function(){var t=e.create();return function(n,r,a,e,u,o){var i,c;for(r||(r=2),a||(a=0),c=e?Math.min(e*r+a,n.length):n.length,i=a;c>i;i+=r)t[0]=n[i],t[1]=n[i+1],u(t,t,o),n[i]=t[0],n[i+1]=t[1];return n}}(),e.str=function(t){return"vec2("+t[0]+", "+t[1]+")"},t.exports=e}])});'use strict';(function(global){if(tr.isNode){const glMatrixAbsPath=HTMLImportsLoader.hrefToAbsolutePath('/gl-matrix-min.js');const glMatrixModule=require(glMatrixAbsPath);for(const exportName in glMatrixModule){global[exportName]=glMatrixModule[exportName];}}})(this);'use strict';tr.exportTo('tr.b.math',function(){const PREFERRED_NUMBER_SERIES_MULTIPLIERS=[1,2,5,10];function approximately(x,y,delta){if(delta===undefined)delta=1e-9;return Math.abs(x-y)<delta;}
function clamp(x,lo,hi){return Math.min(Math.max(x,lo),hi);}
function lerp(percentage,lo,hi){const range=hi-lo;return lo+percentage*range;}
function normalize(value,lo,hi){return(value-lo)/(hi-lo);}
function deg2rad(deg){return(Math.PI*deg)/180.0;}
function erf(x){const sign=(x>=0)?1:-1;x=Math.abs(x);const a1=0.254829592;const a2=-0.284496736;const a3=1.421413741;const a4=-1.453152027;const a5=1.061405429;const p=0.3275911;const t=1.0/(1.0+p*x);const y=1.0-(((((a5*t+a4)*t)+a3)*t+a2)*t+a1)*t*Math.exp(-x*x);return sign*y;}
const tmpVec2=vec2.create();const tmpVec2b=vec2.create();const tmpVec4=vec4.create();const tmpMat2d=mat2d.create();vec2.createFromArray=function(arr){if(arr.length!==2)throw new Error('Should be length 2');const v=vec2.create();vec2.set(v,arr[0],arr[1]);return v;};vec2.createXY=function(x,y){const v=vec2.create();vec2.set(v,x,y);return v;};vec2.toString=function(a){return'['+a[0]+', '+a[1]+']';};vec2.addTwoScaledUnitVectors=function(out,u1,scale1,u2,scale2){vec2.scale(tmpVec2,u1,scale1);vec2.scale(tmpVec2b,u2,scale2);vec2.add(out,tmpVec2,tmpVec2b);};vec2.interpolatePiecewiseFunction=function(points,x){if(x<points[0][0])return points[0][1];for(let i=1;i<points.length;++i){if(x<points[i][0]){const percent=normalize(x,points[i-1][0],points[i][0]);return lerp(percent,points[i-1][1],points[i][1]);}}
return points[points.length-1][1];};vec3.createXYZ=function(x,y,z){const v=vec3.create();vec3.set(v,x,y,z);return v;};vec3.toString=function(a){return'vec3('+a[0]+', '+a[1]+', '+a[2]+')';};mat2d.translateXY=function(out,x,y){vec2.set(tmpVec2,x,y);mat2d.translate(out,out,tmpVec2);};mat2d.scaleXY=function(out,x,y){vec2.set(tmpVec2,x,y);mat2d.scale(out,out,tmpVec2);};vec4.unitize=function(out,a){out[0]=a[0]/a[3];out[1]=a[1]/a[3];out[2]=a[2]/a[3];out[3]=1;return out;};vec2.copyFromVec4=function(out,a){vec4.unitize(tmpVec4,a);vec2.copy(out,tmpVec4);};function logOrLog10(x,base){if(base===10)return Math.log10(x);return Math.log(x)/Math.log(base);}
function lesserPower(x,opt_base){const base=opt_base||10;return Math.pow(base,Math.floor(logOrLog10(x,base)));}
function greaterPower(x,opt_base){const base=opt_base||10;return Math.pow(base,Math.ceil(logOrLog10(x,base)));}
function lesserWholeNumber(x){if(x===0)return 0;const pow10=(x<0)?-lesserPower(-x):lesserPower(x);return pow10*Math.floor(x/pow10);}
function greaterWholeNumber(x){if(x===0)return 0;const pow10=(x<0)?-lesserPower(-x):lesserPower(x);return pow10*Math.ceil(x/pow10);}
function preferredNumberLargerThanMin(min){const absMin=Math.abs(min);const conservativeGuess=tr.b.math.lesserPower(absMin);let minPreferedNumber=undefined;for(const multiplier of PREFERRED_NUMBER_SERIES_MULTIPLIERS){const tightenedGuess=conservativeGuess*multiplier;if(tightenedGuess>=absMin){minPreferedNumber=tightenedGuess;break;}}
if(minPreferedNumber===undefined){throw new Error('Could not compute preferred number for '+min);}
if(min<0)minPreferedNumber*=-1;return minPreferedNumber;}
return{approximately,clamp,lerp,normalize,deg2rad,erf,lesserPower,greaterPower,lesserWholeNumber,greaterWholeNumber,preferredNumberLargerThanMin,};});'use strict';tr.exportTo('tr.b.math',function(){function Range(){this.isEmpty_=true;this.min_=undefined;this.max_=undefined;}
Range.prototype={__proto__:Object.prototype,clone(){if(this.isEmpty)return new Range();return Range.fromExplicitRange(this.min_,this.max_);},reset(){this.isEmpty_=true;this.min_=undefined;this.max_=undefined;},get isEmpty(){return this.isEmpty_;},addRange(range){if(range.isEmpty)return;this.addValue(range.min);this.addValue(range.max);},addValue(value){if(this.isEmpty_){this.max_=value;this.min_=value;this.isEmpty_=false;return;}
this.max_=Math.max(this.max_,value);this.min_=Math.min(this.min_,value);},set min(min){this.isEmpty_=false;this.min_=min;},get min(){if(this.isEmpty_)return undefined;return this.min_;},get max(){if(this.isEmpty_)return undefined;return this.max_;},set max(max){this.isEmpty_=false;this.max_=max;},get range(){if(this.isEmpty_)return undefined;return this.max_-this.min_;},get center(){return(this.min_+this.max_)*0.5;},get duration(){if(this.isEmpty_)return 0;return this.max_-this.min_;},enclosingPowers(opt_base){if(this.isEmpty)return new Range();return Range.fromExplicitRange(tr.b.math.lesserPower(this.min_,opt_base),tr.b.math.greaterPower(this.max_,opt_base));},normalize(x){return tr.b.math.normalize(x,this.min,this.max);},lerp(x){return tr.b.math.lerp(x,this.min,this.max);},clamp(x){return tr.b.math.clamp(x,this.min,this.max);},equals(that){if(this.isEmpty&&that.isEmpty)return true;if(this.isEmpty!==that.isEmpty)return false;return(tr.b.math.approximately(this.min,that.min)&&tr.b.math.approximately(this.max,that.max));},containsExplicitRangeInclusive(min,max){if(this.isEmpty)return false;return this.min_<=min&&max<=this.max_;},containsExplicitRangeExclusive(min,max){if(this.isEmpty)return false;return this.min_<min&&max<this.max_;},intersectsExplicitRangeInclusive(min,max){if(this.isEmpty)return false;return this.min_<=max&&min<=this.max_;},intersectsExplicitRangeExclusive(min,max){if(this.isEmpty)return false;return this.min_<max&&min<this.max_;},containsRangeInclusive(range){if(range.isEmpty)return false;return this.containsExplicitRangeInclusive(range.min_,range.max_);},containsRangeExclusive(range){if(range.isEmpty)return false;return this.containsExplicitRangeExclusive(range.min_,range.max_);},intersectsRangeInclusive(range){if(range.isEmpty)return false;return this.intersectsExplicitRangeInclusive(range.min_,range.max_);},intersectsRangeExclusive(range){if(range.isEmpty)return false;return this.intersectsExplicitRangeExclusive(range.min_,range.max_);},findExplicitIntersectionDuration(min,max){min=Math.max(this.min,min);max=Math.min(this.max,max);if(max<min)return 0;return max-min;},findIntersection(range){if(this.isEmpty||range.isEmpty)return new Range();const min=Math.max(this.min,range.min);const max=Math.min(this.max,range.max);if(max<min)return new Range();return Range.fromExplicitRange(min,max);},toJSON(){if(this.isEmpty_)return{isEmpty:true};return{isEmpty:false,max:this.max,min:this.min};},filterArray(array,opt_keyFunc,opt_this){if(this.isEmpty_)return[];function binSearch(test){let i0=0;let i1=array.length;while(i0<i1){const i=Math.trunc((i0+i1)/2);if(test(i)){i1=i;}else{i0=i+1;}}
return i1;}
const keyFunc=opt_keyFunc||tr.b.identity;function getValue(index){return keyFunc.call(opt_this,array[index]);}
const first=binSearch(function(i){return this.min_===undefined||this.min_<=getValue(i);}.bind(this));const last=binSearch(function(i){return this.max_!==undefined&&this.max_<getValue(i);}.bind(this));return array.slice(first,last);}};Range.fromDict=function(d){if(d.isEmpty===true)return new Range();if(d.isEmpty===false){const range=new Range();range.min=d.min;range.max=d.max;return range;}
throw new Error('Not a range');};Range.fromExplicitRange=function(min,max){const range=new Range();range.min=min;range.max=max;return range;};Range.compareByMinTimes=function(a,b){if(!a.isEmpty&&!b.isEmpty)return a.min_-b.min_;if(a.isEmpty&&!b.isEmpty)return-1;if(!a.isEmpty&&b.isEmpty)return 1;return 0;};Range.findDifference=function(rangeA,rangeB){if(!rangeA||rangeA.duration<0||!rangeB||rangeB.duration<0){throw new Error(`Couldn't subtract ranges`);}
const resultRanges=[];if(rangeA.isEmpty)return resultRanges;if(rangeB.isEmpty)return[rangeA.clone()];const intersection=rangeA.findIntersection(rangeB);if(intersection.isEmpty){return[rangeA.clone()];}
if(rangeA.duration===0&&rangeB.duration===0){if(intersection.empty)return[rangeA.clone()];else if(intersection.duration===0)return resultRanges;throw new Error(`Two points' intersection can only be a point or empty`);}
const leftRange=tr.b.math.Range.fromExplicitRange(rangeA.min,intersection.min);if(leftRange.duration>0){resultRanges.push(leftRange);}
const rightRange=tr.b.math.Range.fromExplicitRange(intersection.max,rangeA.max);if(rightRange.duration>0){resultRanges.push(rightRange);}
return resultRanges;};Range.PERCENT_RANGE=Range.fromExplicitRange(0,1);Object.freeze(Range.PERCENT_RANGE);return{Range,};});'use strict';(function(exports){var rank={standard:function(array,key){array=array.sort(function(a,b){var x=a[key];var y=b[key];return((x<y)?-1:((x>y)?1:0));});for(var i=1;i<array.length+1;i++){array[i-1]['rank']=i;}
return array;},fractional:function(array,key){array=this.standard(array,key);var pos=0;while(pos<array.length){var sum=0;var i=0;for(i=0;array[pos+i+1]&&(array[pos+i][key]===array[pos+i+1][key]);i++){sum+=array[pos+i]['rank'];}
sum+=array[pos+i]['rank'];var endPos=pos+i+1;for(pos;pos<endPos;pos++){array[pos]['rank']=sum/(i+1);}
pos=endPos;}
return array;},rank:function(x,y){var nx=x.length,ny=y.length,combined=[],ranked;while(nx--){combined.push({set:'x',val:x[nx]});}
while(ny--){combined.push({set:'y',val:y[ny]});}
ranked=this.fractional(combined,'val');return ranked}};var erf=function erf(x){var cof=[-1.3026537197817094,6.4196979235649026e-1,1.9476473204185836e-2,-9.561514786808631e-3,-9.46595344482036e-4,3.66839497852761e-4,4.2523324806907e-5,-2.0278578112534e-5,-1.624290004647e-6,1.303655835580e-6,1.5626441722e-8,-8.5238095915e-8,6.529054439e-9,5.059343495e-9,-9.91364156e-10,-2.27365122e-10,9.6467911e-11,2.394038e-12,-6.886027e-12,8.94487e-13,3.13092e-13,-1.12708e-13,3.81e-16,7.106e-15,-1.523e-15,-9.4e-17,1.21e-16,-2.8e-17];var j=cof.length-1;var isneg=false;var d=0;var dd=0;var t,ty,tmp,res;if(x<0){x=-x;isneg=true;}
t=2/(2+x);ty=4*t-2;for(;j>0;j--){tmp=d;d=ty*d-dd+cof[j];dd=tmp;}
res=t*Math.exp(-x*x+0.5*(cof[0]+ty*d)-dd);return isneg?res-1:1-res;};var dnorm=function(x,mean,std){return 0.5*(1+erf((x-mean)/Math.sqrt(2*std*std)));}
var statistic=function(x,y){var ranked=rank.rank(x,y),nr=ranked.length,nx=x.length,ny=y.length,ranksums={x:0,y:0},i=0,t=0,nt=1,tcf,ux,uy;while(i<nr){if(i>0){if(ranked[i].val==ranked[i-1].val){nt++;}else{if(nt>1){t+=Math.pow(nt,3)-nt
nt=1;}}}
ranksums[ranked[i].set]+=ranked[i].rank
i++;}
tcf=1-(t/(Math.pow(nr,3)-nr))
ux=nx*ny+(nx*(nx+1)/2)-ranksums.x;uy=nx*ny-ux;return{tcf:tcf,ux:ux,uy:uy,big:Math.max(ux,uy),small:Math.min(ux,uy)}}
exports.test=function(x,y,alt,corr){alt=typeof alt!=='undefined'?alt:'two-sided';corr=typeof corr!=='undefined'?corr:true;var nx=x.length,ny=y.length,f=1,u,mu,std,z,p;u=statistic(x,y);if(corr){mu=(nx*ny/2)+0.5;}else{mu=nx*ny/2;}
std=Math.sqrt(u.tcf*nx*ny*(nx+ny+1)/12);if(alt=='less'){z=(u.ux-mu)/std;}else if(alt=='greater'){z=(u.uy-mu)/std;}else if(alt=='two-sided'){z=Math.abs((u.big-mu)/std);}else{console.log('Unknown alternative argument');}
if(alt=='two-sided'){f=2;}
p=dnorm(-z,0,1)*f;return{U:u.small,p:p};}})(typeof exports==='undefined'?this['mannwhitneyu']={}:exports);'use strict';(function(global){if(tr.isNode){const mwuAbsPath=HTMLImportsLoader.hrefToAbsolutePath('/mannwhitneyu.js');const mwuModule=require(mwuAbsPath);for(const exportName in mwuModule){global[exportName]=mwuModule[exportName];}}})(this);'use strict';tr.exportTo('tr.b.math',function(){const identity=x=>x;const Statistics={};Statistics.divideIfPossibleOrZero=function(numerator,denominator){if(denominator===0)return 0;return numerator/denominator;};Statistics.sum=function(ary,opt_func,opt_this){const func=opt_func||identity;let ret=0;let i=0;for(const elt of ary){ret+=func.call(opt_this,elt,i++);}
return ret;};Statistics.mean=function(ary,opt_func,opt_this){const func=opt_func||identity;let sum=0;let i=0;for(const elt of ary){sum+=func.call(opt_this,elt,i++);}
if(i===0)return undefined;return sum/i;};Statistics.geometricMean=function(ary,opt_func,opt_this){const func=opt_func||identity;let i=0;let logsum=0;for(const elt of ary){const x=func.call(opt_this,elt,i++);if(x<=0)return 0;logsum+=Math.log(Math.abs(x));}
if(i===0)return 1;return Math.exp(logsum/i);};Statistics.weightedMean=function(ary,weightCallback,opt_valueCallback,opt_this){const valueCallback=opt_valueCallback||identity;let numerator=0;let denominator=0;let i=-1;for(const elt of ary){i++;const value=valueCallback.call(opt_this,elt,i);if(value===undefined)continue;const weight=weightCallback.call(opt_this,elt,i,value);numerator+=weight*value;denominator+=weight;}
if(denominator===0)return undefined;return numerator/denominator;};Statistics.variance=function(ary,opt_func,opt_this){if(ary.length===0)return undefined;if(ary.length===1)return 0;const func=opt_func||identity;const mean=Statistics.mean(ary,func,opt_this);const sumOfSquaredDistances=Statistics.sum(ary,function(d,i){const v=func.call(this,d,i)-mean;return v*v;},opt_this);return sumOfSquaredDistances/(ary.length-1);};Statistics.stddev=function(ary,opt_func,opt_this){if(ary.length===0)return undefined;return Math.sqrt(Statistics.variance(ary,opt_func,opt_this));};Statistics.max=function(ary,opt_func,opt_this){const func=opt_func||identity;let ret=-Infinity;let i=0;for(const elt of ary){ret=Math.max(ret,func.call(opt_this,elt,i++));}
return ret;};Statistics.min=function(ary,opt_func,opt_this){const func=opt_func||identity;let ret=Infinity;let i=0;for(const elt of ary){ret=Math.min(ret,func.call(opt_this,elt,i++));}
return ret;};Statistics.range=function(ary,opt_func,opt_this){const func=opt_func||identity;const ret=new tr.b.math.Range();let i=0;for(const elt of ary){ret.addValue(func.call(opt_this,elt,i++));}
return ret;};Statistics.percentile=function(ary,percent,opt_func,opt_this){if(!(percent>=0&&percent<=1)){throw new Error('percent must be [0,1]');}
const func=opt_func||identity;const tmp=new Array(ary.length);let i=0;for(const elt of ary){tmp[i]=func.call(opt_this,elt,i++);}
tmp.sort((a,b)=>a-b);const idx=Math.floor((ary.length-1)*percent);return tmp[idx];};Statistics.normalizeSamples=function(samples){if(samples.length===0){return{normalized_samples:samples,scale:1.0};}
samples=samples.slice().sort(function(a,b){return a-b;});const low=Math.min.apply(null,samples);const high=Math.max.apply(null,samples);const newLow=0.5/samples.length;const newHigh=(samples.length-0.5)/samples.length;if(high-low===0.0){samples=Array.apply(null,new Array(samples.length)).map(function(){return 0.5;});return{normalized_samples:samples,scale:1.0};}
const scale=(newHigh-newLow)/(high-low);for(let i=0;i<samples.length;i++){samples[i]=(samples[i]-low)*scale+newLow;}
return{normalized_samples:samples,scale};};Statistics.discrepancy=function(samples,opt_locationCount){if(samples.length===0)return 0.0;let maxLocalDiscrepancy=0;const invSampleCount=1.0/samples.length;const locations=[];const countLess=[];const countLessEqual=[];if(opt_locationCount!==undefined){let sampleIndex=0;for(let i=0;i<opt_locationCount;i++){const location=i/(opt_locationCount-1);locations.push(location);while(sampleIndex<samples.length&&samples[sampleIndex]<location){sampleIndex+=1;}
countLess.push(sampleIndex);while(sampleIndex<samples.length&&samples[sampleIndex]<=location){sampleIndex+=1;}
countLessEqual.push(sampleIndex);}}else{if(samples[0]>0.0){locations.push(0.0);countLess.push(0);countLessEqual.push(0);}
for(let i=0;i<samples.length;i++){locations.push(samples[i]);countLess.push(i);countLessEqual.push(i+1);}
if(samples[-1]<1.0){locations.push(1.0);countLess.push(samples.length);countLessEqual.push(samples.length);}}
let maxDiff=0;let minDiff=0;for(let i=1;i<locations.length;i++){const length=locations[i]-locations[i-1];const countClosed=countLessEqual[i]-countLess[i-1];const countOpen=countLess[i]-countLessEqual[i-1];const countClosedIncrement=countLessEqual[i]-countLessEqual[i-1];const countOpenIncrement=countLess[i]-countLess[i-1];maxDiff=Math.max(countClosedIncrement*invSampleCount-length+maxDiff,countClosed*invSampleCount-length);minDiff=Math.min(countOpenIncrement*invSampleCount-length+minDiff,countOpen*invSampleCount-length);maxLocalDiscrepancy=Math.max(maxDiff,-minDiff,maxLocalDiscrepancy);}
return maxLocalDiscrepancy;};Statistics.timestampsDiscrepancy=function(timestamps,opt_absolute,opt_locationCount){if(timestamps.length===0)return 0.0;if(opt_absolute===undefined)opt_absolute=true;if(Array.isArray(timestamps[0])){const rangeDiscrepancies=timestamps.map(function(r){return Statistics.timestampsDiscrepancy(r);});return Math.max.apply(null,rangeDiscrepancies);}
const s=Statistics.normalizeSamples(timestamps);const samples=s.normalized_samples;const sampleScale=s.scale;let discrepancy=Statistics.discrepancy(samples,opt_locationCount);const invSampleCount=1.0/samples.length;if(opt_absolute===true){discrepancy/=sampleScale;}else{discrepancy=tr.b.math.clamp((discrepancy-invSampleCount)/(1.0-invSampleCount),0.0,1.0);}
return discrepancy;};Statistics.durationsDiscrepancy=function(durations,opt_absolute,opt_locationCount){if(durations.length===0)return 0.0;const timestamps=durations.reduce(function(prev,curr,index,array){prev.push(prev[prev.length-1]+curr);return prev;},[0]);return Statistics.timestampsDiscrepancy(timestamps,opt_absolute,opt_locationCount);};Statistics.uniformlySampleArray=function(samples,count){if(samples.length<=count){return samples;}
while(samples.length>count){const i=parseInt(Math.random()*samples.length);samples.splice(i,1);}
return samples;};Statistics.uniformlySampleStream=function(samples,streamLength,newElement,numSamples){if(streamLength<=numSamples){if(samples.length>=streamLength){samples[streamLength-1]=newElement;}else{samples.push(newElement);}
return;}
const probToKeep=numSamples/streamLength;if(Math.random()>probToKeep)return;const index=Math.floor(Math.random()*numSamples);samples[index]=newElement;};Statistics.mergeSampledStreams=function(samplesA,streamLengthA,samplesB,streamLengthB,numSamples){if(streamLengthB<numSamples){const nbElements=Math.min(streamLengthB,samplesB.length);for(let i=0;i<nbElements;++i){Statistics.uniformlySampleStream(samplesA,streamLengthA+i+1,samplesB[i],numSamples);}
return;}
if(streamLengthA<numSamples){const nbElements=Math.min(streamLengthA,samplesA.length);const tempSamples=samplesB.slice();for(let i=0;i<nbElements;++i){Statistics.uniformlySampleStream(tempSamples,streamLengthB+i+1,samplesA[i],numSamples);}
for(let i=0;i<tempSamples.length;++i){samplesA[i]=tempSamples[i];}
return;}
const nbElements=Math.min(numSamples,samplesB.length);const probOfSwapping=streamLengthB/(streamLengthA+streamLengthB);for(let i=0;i<nbElements;++i){if(Math.random()<probOfSwapping){samplesA[i]=samplesB[i];}}};function Distribution(){}
Distribution.prototype={computeDensity(x){throw Error('Not implemented');},computePercentile(x){throw Error('Not implemented');},computeComplementaryPercentile(x){return 1-this.computePercentile(x);},get mean(){throw Error('Not implemented');},get mode(){throw Error('Not implemented');},get median(){throw Error('Not implemented');},get standardDeviation(){throw Error('Not implemented');},get variance(){throw Error('Not implemented');}};Statistics.UniformDistribution=function(opt_range){if(!opt_range)opt_range=tr.b.math.Range.fromExplicitRange(0,1);this.range=opt_range;};Statistics.UniformDistribution.prototype={__proto__:Distribution.prototype,computeDensity(x){return 1/this.range.range;},computePercentile(x){return tr.b.math.normalize(x,this.range.min,this.range.max);},get mean(){return this.range.center;},get mode(){return undefined;},get median(){return this.mean;},get standardDeviation(){return Math.sqrt(this.variance);},get variance(){return Math.pow(this.range.range,2)/12;}};Statistics.NormalDistribution=function(opt_mean,opt_variance){this.mean_=opt_mean||0;this.variance_=opt_variance||1;this.standardDeviation_=Math.sqrt(this.variance_);};Statistics.NormalDistribution.prototype={__proto__:Distribution.prototype,computeDensity(x){const scale=(1.0/(this.standardDeviation*Math.sqrt(2.0*Math.PI)));const exponent=-Math.pow(x-this.mean,2)/(2.0*this.variance);return scale*Math.exp(exponent);},computePercentile(x){const standardizedX=((x-this.mean)/Math.sqrt(2.0*this.variance));return(1.0+tr.b.math.erf(standardizedX))/2.0;},get mean(){return this.mean_;},get median(){return this.mean;},get mode(){return this.mean;},get standardDeviation(){return this.standardDeviation_;},get variance(){return this.variance_;}};Statistics.LogNormalDistribution=function(opt_location,opt_shape){this.normalDistribution_=new Statistics.NormalDistribution(opt_location,Math.pow(opt_shape||1,2));};Statistics.LogNormalDistribution.prototype={__proto__:Statistics.NormalDistribution.prototype,computeDensity(x){return this.normalDistribution_.computeDensity(Math.log(x))/x;},computePercentile(x){return this.normalDistribution_.computePercentile(Math.log(x));},get mean(){return Math.exp(this.normalDistribution_.mean+
(this.normalDistribution_.variance/2));},get variance(){const nm=this.normalDistribution_.mean;const nv=this.normalDistribution_.variance;return(Math.exp(2*(nm+nv))-
Math.exp(2*nm+nv));},get standardDeviation(){return Math.sqrt(this.variance);},get median(){return Math.exp(this.normalDistribution_.mean);},get mode(){return Math.exp(this.normalDistribution_.mean-
this.normalDistribution_.variance);}};Statistics.LogNormalDistribution.fromMedianAndDiminishingReturns=function(median,diminishingReturns){diminishingReturns=Math.log(diminishingReturns/median);const shape=Math.sqrt(1-3*diminishingReturns-
Math.sqrt(Math.pow(diminishingReturns-3,2)-8))/2;const location=Math.log(median);return new Statistics.LogNormalDistribution(location,shape);};Statistics.DEFAULT_ALPHA=0.01;Statistics.MAX_SUGGESTED_SAMPLE_SIZE=20;Statistics.Significance={SIGNIFICANT:'REJECT',INSIGNIFICANT:'FAIL_TO_REJECT',NEED_MORE_DATA:'NEED_MORE_DATA',DONT_CARE:'DONT_CARE',};Statistics.mwu=function(a,b,opt_alpha,opt_reqSampleSize){const result=mannwhitneyu.test(a,b);const alpha=opt_alpha||Statistics.DEFAULT_ALPHA;if(result.p<alpha){result.significance=Statistics.Significance.SIGNIFICANT;}else if(opt_reqSampleSize&&(a.length<opt_reqSampleSize||b.length<opt_reqSampleSize)){result.significance=Statistics.Significance.NEED_MORE_DATA;}else{result.significance=Statistics.Significance.INSIGNIFICANT;}
return result;};return{Statistics,};});'use strict';const GREEK_SMALL_LETTER_MU=String.fromCharCode(956);tr.exportTo('tr.b',function(){const SECONDS_IN_A_MINUTE=60;const SECONDS_IN_AN_HOUR=SECONDS_IN_A_MINUTE*60;const SECONDS_IN_A_DAY=SECONDS_IN_AN_HOUR*24;const SECONDS_IN_A_WEEK=SECONDS_IN_A_DAY*7;const SECONDS_IN_A_YEAR=SECONDS_IN_A_DAY*365.2422;const SECONDS_IN_A_MONTH=SECONDS_IN_A_YEAR/12;const UnitPrefixScale={};const UnitScale={};function defineUnitPrefixScale(name,prefixes){if(UnitPrefixScale[name]!==undefined){throw new Error('Unit prefix scale \''+name+'\' already exists');}
if(prefixes.AUTO!==undefined){throw new Error('The \'AUTO\' unit prefix is not supported for unit'+'prefix scales and cannot be added to scale \''+name+'\'');}
UnitPrefixScale[name]=prefixes;}
UnitScale.defineUnitScale=function(name,unitScale){if(UnitScale[name]!==undefined){throw new Error('Unit scale \''+name+'\' already exists');}
if(unitScale.AUTO!==undefined){throw new Error('\'AUTO\' unit scale will be added automatically '+'for unit scale \''+name+'\'');}
unitScale.AUTO=Object.values(unitScale);unitScale.AUTO.sort((a,b)=>a.value-b.value);if(name)UnitScale[name]=unitScale;return unitScale;};UnitScale.defineUnitScaleFromPrefixScale=function(baseSymbol,baseName,prefixScale,opt_scaleName){if(baseSymbol===undefined){throw new Error('Cannot create UnitScale with undefined baseSymbol.');}
if(!baseName){throw new Error('Cannot create UnitScale without a baseName.');}
if(!prefixScale){throw new Error('Cannot create UnitScale without a prefix scale.');}
const unitScale={};for(const curPrefix of Object.keys(prefixScale)){const curScale=prefixScale[curPrefix];if(curScale.symbol===undefined||!curScale.value){throw new Error(`Cannot convert PrefixScale with malformed prefix ${curScale}.`);}
const name=curPrefix==='NONE'?baseName:`${curPrefix}_${baseName}`;unitScale[name]={value:curScale.value,symbol:curScale.symbol+baseSymbol,baseSymbol};}
return UnitScale.defineUnitScale(opt_scaleName,unitScale);};function convertUnit(value,fromScale,toScale){if(value===undefined)return undefined;const fromScaleBase=fromScale.baseSymbol;const toScaleBase=toScale.baseSymbol;if(fromScaleBase!==undefined&&toScaleBase!==undefined&&fromScaleBase!==toScaleBase){throw new Error('Cannot convert between units with different base symbols.');}
return value*(fromScale.value/toScale.value);}
defineUnitPrefixScale('BINARY',{NONE:{value:Math.pow(1024,0),symbol:''},KIBI:{value:Math.pow(1024,1),symbol:'Ki'},MEBI:{value:Math.pow(1024,2),symbol:'Mi'},GIBI:{value:Math.pow(1024,3),symbol:'Gi'},TEBI:{value:Math.pow(1024,4),symbol:'Ti'}});defineUnitPrefixScale('METRIC',{NANO:{value:1e-9,symbol:'n'},MICRO:{value:1e-6,symbol:GREEK_SMALL_LETTER_MU},MILLI:{value:1e-3,symbol:'m'},NONE:{value:1,symbol:''},KILO:{value:1e3,symbol:'k'},MEGA:{value:1e6,symbol:'M'},GIGA:{value:1e9,symbol:'G'}});UnitScale.defineUnitScale('TIME',{NANO_SEC:{value:1e-9,symbol:'ns',baseSymbol:'s'},MICRO_SEC:{value:1e-6,symbol:GREEK_SMALL_LETTER_MU+'s',baseSymbol:'s'},MILLI_SEC:{value:1e-3,symbol:'ms',baseSymbol:'s'},SEC:{value:1,symbol:'s',baseSymbol:'s'},MINUTE:{value:SECONDS_IN_A_MINUTE,symbol:'min',baseSymbol:'s'},HOUR:{value:SECONDS_IN_AN_HOUR,symbol:'hr',baseSymbol:'s'},DAY:{value:SECONDS_IN_A_DAY,symbol:'days',baseSymbol:'s'},WEEK:{value:SECONDS_IN_A_WEEK,symbol:'weeks',baseSymbol:'s'},MONTH:{value:SECONDS_IN_A_MONTH,symbol:'months',baseSymbol:'s'},YEAR:{value:SECONDS_IN_A_YEAR,symbol:'years',baseSymbol:'s'}});UnitScale.defineUnitScaleFromPrefixScale('B','BYTE',UnitPrefixScale.BINARY,'MEMORY');return{UnitPrefixScale,UnitScale,convertUnit,};});'use strict';tr.exportTo('tr.b',function(){const msDisplayMode={scale:1e-3,suffix:'ms',roundedLess(a,b){return Math.round(a*1000)<Math.round(b*1000);},formatSpec:{unitScale:[tr.b.UnitScale.TIME.MILLI_SEC],minimumFractionDigits:3,}};const nsDisplayMode={scale:1e-9,suffix:'ns',roundedLess(a,b){return Math.round(a*1000000)<Math.round(b*1000000);},formatSpec:{unitScale:[tr.b.UnitScale.TIME.NANO_SEC],maximumFractionDigits:0}};const TimeDisplayModes={ns:nsDisplayMode,ms:msDisplayMode};return{TimeDisplayModes,};});'use strict';tr.exportTo('tr.b',function(){function iterateElementDeeplyImpl(element,cb,thisArg,includeElement){if(includeElement&&cb.call(thisArg,element))return true;if(element.root&&element.root!==element&&iterateElementDeeplyImpl(element.root,cb,thisArg,false)){return true;}
const children=Polymer.dom(element).children;for(let i=0;i<children.length;i++){if(iterateElementDeeplyImpl(children[i],cb,thisArg,true)){return true;}}
return false;}
function iterateElementDeeply(element,cb,thisArg){iterateElementDeeplyImpl(element,cb,thisArg,false);}
function findDeepElementMatchingPredicate(element,predicate){let foundElement=undefined;function matches(element){const match=predicate(element);if(!match){return false;}
foundElement=element;return true;}
iterateElementDeeply(element,matches);return foundElement;}
function findDeepElementsMatchingPredicate(element,predicate){const foundElements=[];function matches(element){const match=predicate(element);if(match){foundElements.push(element);}
return false;}
iterateElementDeeply(element,matches);return foundElements;}
function findDeepElementMatching(element,selector){return findDeepElementMatchingPredicate(element,function(element){return element.matches(selector);});}
function findDeepElementsMatching(element,selector){return findDeepElementsMatchingPredicate(element,function(element){return element.matches(selector);});}
function findDeepElementWithTextContent(element,re){return findDeepElementMatchingPredicate(element,function(element){if(element.children.length!==0)return false;return re.test(Polymer.dom(element).textContent);});}
return{iterateElementDeeply,findDeepElementMatching,findDeepElementsMatching,findDeepElementMatchingPredicate,findDeepElementsMatchingPredicate,findDeepElementWithTextContent,};});'use strict';tr.exportTo('tr.b',function(){const TimeDisplayModes=tr.b.TimeDisplayModes;const PLUS_MINUS_SIGN=String.fromCharCode(177);const CACHED_FORMATTERS={};function getNumberFormatter(minSpec,maxSpec,minCtx,maxCtx){const key=minSpec+'-'+maxSpec+'-'+minCtx+'-'+maxCtx;let formatter=CACHED_FORMATTERS[key];if(formatter===undefined){let minimumFractionDigits=minCtx!==undefined?minCtx:minSpec;let maximumFractionDigits=maxCtx!==undefined?maxCtx:maxSpec;if(minimumFractionDigits>maximumFractionDigits){if(minCtx!==undefined&&maxCtx===undefined){maximumFractionDigits=minimumFractionDigits;}else if(minCtx===undefined&&maxCtx!==undefined){minimumFractionDigits=maximumFractionDigits;}}
formatter=new Intl.NumberFormat(undefined,{minimumFractionDigits,maximumFractionDigits,});CACHED_FORMATTERS[key]=formatter;}
return formatter;}
function max(a,b){if(a===undefined)return b;if(b===undefined)return a;return a.scale>b.scale?a:b;}
const ImprovementDirection={DONT_CARE:0,BIGGER_IS_BETTER:1,SMALLER_IS_BETTER:2};function Unit(unitName,jsonName,scaleBaseUnit,isDelta,improvementDirection,formatSpec){this.unitName=unitName;this.jsonName=jsonName;this.scaleBaseUnit=scaleBaseUnit;this.isDelta=isDelta;this.improvementDirection=improvementDirection;this.formatSpec_=formatSpec;this.baseUnit=undefined;this.correspondingDeltaUnit=undefined;}
Unit.prototype={asJSON(){return this.jsonName;},getUnitScale_(opt_context){let formatSpec=this.formatSpec_;let formatSpecWasFunction=false;if(typeof formatSpec==='function'){formatSpecWasFunction=true;formatSpec=formatSpec();}
const context=opt_context||{};let scale=undefined;if(context.unitScale){scale=context.unitScale;}else if(context.unitPrefix){const symbol=formatSpec.baseSymbol?formatSpec.baseSymbol:this.scaleBaseUnit.baseSymbol;scale=tr.b.UnitScale.defineUnitScaleFromPrefixScale(symbol,symbol,[context.unitPrefix]).AUTO;}else{scale=formatSpec.unitScale;if(!scale){scale=[{value:1,symbol:formatSpec.baseSymbol||'',baseSymbol:formatSpec.baseSymbol||''}];if(!formatSpecWasFunction)formatSpec.unitScale=scale;}}
if(!(scale instanceof Array)){throw new Error('Unit has a malformed unit scale.');}
return scale;},get unitString(){const scale=this.getUnitScale_();if(!scale){throw new Error('A UnitScale could not be found for Unit '+this.unitName);}
return scale[0].baseSymbol||scale[0].symbol;},format(value,opt_context){let signString='';if(value<0){signString='-';value=-value;}else if(this.isDelta){signString=value===0?PLUS_MINUS_SIGN:'+';}
const context=opt_context||{};const scale=this.getUnitScale_(context);let deltaValue=context.deltaValue===undefined?value:context.deltaValue;deltaValue=Math.abs(deltaValue)*this.scaleBaseUnit.value;let i=0;while(i<scale.length-1&&deltaValue/scale[i+1].value>=1){i++;}
const selectedSubUnit=scale[i];let formatSpec=this.formatSpec_;if(typeof formatSpec==='function')formatSpec=formatSpec();let unitString='';if(selectedSubUnit.symbol){if(!formatSpec.avoidSpacePrecedingUnit)unitString=' ';unitString+=selectedSubUnit.symbol;}
value=tr.b.convertUnit(value,this.scaleBaseUnit,selectedSubUnit);const numberString=getNumberFormatter(formatSpec.minimumFractionDigits,formatSpec.maximumFractionDigits,context.minimumFractionDigits,context.maximumFractionDigits).format(value);return signString+numberString+unitString;}};Unit.reset=function(){Unit.currentTimeDisplayMode=TimeDisplayModes.ms;};Unit.timestampFromUs=function(us){return tr.b.convertUnit(us,tr.b.UnitPrefixScale.METRIC.MICRO,tr.b.UnitPrefixScale.METRIC.MILLI);};Object.defineProperty(Unit,'currentTimeDisplayMode',{get(){return Unit.currentTimeDisplayMode_;},set(value){if(Unit.currentTimeDisplayMode_===value)return;Unit.currentTimeDisplayMode_=value;Unit.dispatchEvent(new tr.b.Event('display-mode-changed'));}});Unit.didPreferredTimeDisplayUnitChange=function(){let largest=undefined;const els=tr.b.findDeepElementsMatching(document.body,'tr-v-ui-preferred-display-unit');els.forEach(function(el){largest=max(largest,el.preferredTimeDisplayMode);});Unit.currentTimeDisplayMode=largest===undefined?TimeDisplayModes.ms:largest;};Unit.byName={};Unit.byJSONName={};Unit.fromJSON=function(object){const u=Unit.byJSONName[object];if(u){return u;}
throw new Error('Unrecognized unit');};Unit.define=function(params){const definedUnits=[];for(const improvementDirection of Object.values(ImprovementDirection)){const regularUnit=Unit.defineUnitVariant_(params,false,improvementDirection);const deltaUnit=Unit.defineUnitVariant_(params,true,improvementDirection);regularUnit.correspondingDeltaUnit=deltaUnit;deltaUnit.correspondingDeltaUnit=deltaUnit;definedUnits.push(regularUnit,deltaUnit);}
const baseUnit=Unit.byName[params.baseUnitName];definedUnits.forEach(u=>u.baseUnit=baseUnit);};Unit.nameSuffixForImprovementDirection=function(improvementDirection){switch(improvementDirection){case ImprovementDirection.DONT_CARE:return'';case ImprovementDirection.BIGGER_IS_BETTER:return'_biggerIsBetter';case ImprovementDirection.SMALLER_IS_BETTER:return'_smallerIsBetter';default:throw new Error('Unknown improvement direction: '+improvementDirection);}};Unit.defineUnitVariant_=function(params,isDelta,improvementDirection){let nameSuffix=isDelta?'Delta':'';nameSuffix+=Unit.nameSuffixForImprovementDirection(improvementDirection);const unitName=params.baseUnitName+nameSuffix;const jsonName=params.baseJsonName+nameSuffix;if(Unit.byName[unitName]!==undefined){throw new Error('Unit \''+unitName+'\' already exists');}
if(Unit.byJSONName[jsonName]!==undefined){throw new Error('JSON unit \''+jsonName+'\' alread exists');}
let scaleBaseUnit=params.scaleBaseUnit;if(!scaleBaseUnit){let formatSpec=params.formatSpec;if(typeof formatSpec==='function')formatSpec=formatSpec();const baseSymbol=formatSpec.unitScale?formatSpec.unitScale[0].baseSymbol:(formatSpec.baseSymbol||'');scaleBaseUnit={value:1,symbol:baseSymbol,baseSymbol};}
const unit=new Unit(unitName,jsonName,scaleBaseUnit,isDelta,improvementDirection,params.formatSpec);Unit.byName[unitName]=unit;Unit.byJSONName[jsonName]=unit;return unit;};tr.b.EventTarget.decorate(Unit);Unit.reset();Unit.define({baseUnitName:'timeInMsAutoFormat',baseJsonName:'msBestFitFormat',scaleBaseUnit:tr.b.UnitScale.TIME.MILLI_SEC,formatSpec:{unitScale:tr.b.UnitScale.TIME.AUTO,minimumFractionDigits:0,maximumFractionDigits:3}});Unit.define({baseUnitName:'timeDurationInMs',baseJsonName:'ms',scaleBaseUnit:tr.b.UnitScale.TIME.MILLI_SEC,formatSpec(){return Unit.currentTimeDisplayMode_.formatSpec;}});Unit.define({baseUnitName:'timeStampInMs',baseJsonName:'tsMs',scaleBaseUnit:tr.b.UnitScale.TIME.MILLI_SEC,formatSpec(){return Unit.currentTimeDisplayMode_.formatSpec;}});Unit.define({baseUnitName:'normalizedPercentage',baseJsonName:'n%',formatSpec:{unitScale:[{value:0.01,symbol:'%'}],avoidSpacePrecedingUnit:true,minimumFractionDigits:3,maximumFractionDigits:3}});Unit.define({baseUnitName:'sizeInBytes',baseJsonName:'sizeInBytes',formatSpec:{unitScale:tr.b.UnitScale.MEMORY.AUTO,minimumFractionDigits:1,maximumFractionDigits:1}});Unit.define({baseUnitName:'energyInJoules',baseJsonName:'J',formatSpec:{baseSymbol:'J',minimumFractionDigits:3}});Unit.define({baseUnitName:'powerInWatts',baseJsonName:'W',formatSpec:{baseSymbol:'W',minimumFractionDigits:3}});Unit.define({baseUnitName:'unitlessNumber',baseJsonName:'unitless',formatSpec:{minimumFractionDigits:3,maximumFractionDigits:3}});Unit.define({baseUnitName:'count',baseJsonName:'count',formatSpec:{minimumFractionDigits:0,maximumFractionDigits:0}});Unit.define({baseUnitName:'sigma',baseJsonName:'sigma',formatSpec:{baseSymbol:String.fromCharCode(963),minimumFractionDigits:1,maximumFractionDigits:1}});return{ImprovementDirection,Unit,};});'use strict';tr.exportTo('tr.b',function(){class Scalar{constructor(unit,value){if(!(unit instanceof tr.b.Unit)){throw new Error('Expected Unit');}
if(!(typeof(value)==='number')){throw new Error('Expected value to be number');}
this.unit=unit;this.value=value;}
asDict(){return{unit:this.unit.asJSON(),value:tr.b.numberToJson(this.value),};}
toString(){return this.unit.format(this.value);}
static fromDict(d){return new Scalar(tr.b.Unit.fromJSON(d.unit),tr.b.numberFromJson(d.value));}}
return{Scalar,};});'use strict';tr.exportTo('tr.c',function(){function Auditor(model){this.model_=model;}
Auditor.prototype={__proto__:Object.prototype,get model(){return this.model_;},runAnnotate(){},installUserFriendlyCategoryDriverIfNeeded(){},runAudit(){}};const options=new tr.b.ExtensionRegistryOptions(tr.b.BASIC_REGISTRY_MODE);options.defaultMetadata={};options.mandatoryBaseClass=Auditor;tr.b.decorateExtensionRegistry(Auditor,options);return{Auditor,};});'use strict';tr.exportTo('tr.b',function(){function clamp01(value){return Math.max(0,Math.min(1,value));}
function Color(opt_r,opt_g,opt_b,opt_a){this.r=Math.floor(opt_r)||0;this.g=Math.floor(opt_g)||0;this.b=Math.floor(opt_b)||0;this.a=opt_a;}
Color.fromString=function(str){let tmp;let values;if(str.substr(0,4)==='rgb('){tmp=str.substr(4,str.length-5);values=tmp.split(',').map(function(v){return v.replace(/^\s+/,'','g');});if(values.length!==3){throw new Error('Malformatted rgb-expression');}
return new Color(parseInt(values[0]),parseInt(values[1]),parseInt(values[2]));}
if(str.substr(0,5)==='rgba('){tmp=str.substr(5,str.length-6);values=tmp.split(',').map(function(v){return v.replace(/^\s+/,'','g');});if(values.length!==4){throw new Error('Malformatted rgb-expression');}
return new Color(parseInt(values[0]),parseInt(values[1]),parseInt(values[2]),parseFloat(values[3]));}
if(str[0]==='#'&&str.length===7){return new Color(parseInt(str.substr(1,2),16),parseInt(str.substr(3,2),16),parseInt(str.substr(5,2),16));}
throw new Error('Unrecognized string format.');};Color.lerp=function(a,b,percent){if(a.a!==undefined&&b.a!==undefined){return Color.lerpRGBA(a,b,percent);}
return Color.lerpRGB(a,b,percent);};Color.lerpRGB=function(a,b,percent){return new Color(((b.r-a.r)*percent)+a.r,((b.g-a.g)*percent)+a.g,((b.b-a.b)*percent)+a.b);};Color.lerpRGBA=function(a,b,percent){return new Color(((b.r-a.r)*percent)+a.r,((b.g-a.g)*percent)+a.g,((b.b-a.b)*percent)+a.b,((b.a-a.a)*percent)+a.a);};Color.fromDict=function(dict){return new Color(dict.r,dict.g,dict.b,dict.a);};Color.fromHSLExplicit=function(h,s,l,a){let r;let g;let b;function hue2rgb(p,q,t){if(t<0)t+=1;if(t>1)t-=1;if(t<1/6)return p+(q-p)*6*t;if(t<1/2)return q;if(t<2/3)return p+(q-p)*(2/3-t)*6;return p;}
if(s===0){r=g=b=l;}else{const q=l<0.5?l*(1+s):l+s-l*s;const p=2*l-q;r=hue2rgb(p,q,h+1/3);g=hue2rgb(p,q,h);b=hue2rgb(p,q,h-1/3);}
return new Color(Math.floor(r*255),Math.floor(g*255),Math.floor(b*255),a);};Color.fromHSL=function(hsl){return Color.fromHSLExplicit(hsl.h,hsl.s,hsl.l,hsl.a);};Color.prototype={clone(){const c=new Color();c.r=this.r;c.g=this.g;c.b=this.b;c.a=this.a;return c;},blendOver(bgColor){const oneMinusThisAlpha=1-this.a;const outA=this.a+bgColor.a*oneMinusThisAlpha;const bgBlend=(bgColor.a*oneMinusThisAlpha)/bgColor.a;return new Color(this.r*this.a+bgColor.r*bgBlend,this.g*this.a+bgColor.g*bgBlend,this.b*this.a+bgColor.b*bgBlend,outA);},brighten(opt_k){const k=opt_k||0.45;return new Color(Math.min(255,this.r+Math.floor(this.r*k)),Math.min(255,this.g+Math.floor(this.g*k)),Math.min(255,this.b+Math.floor(this.b*k)),this.a);},lighten(k,opt_maxL){const maxL=opt_maxL!==undefined?opt_maxL:1.0;const hsl=this.toHSL();hsl.l=Math.min(hsl.l+k,maxL);return Color.fromHSL(hsl);},darken(opt_k){let k;if(opt_k!==undefined){k=opt_k;}else{k=0.45;}
return new Color(Math.min(255,this.r-Math.floor(this.r*k)),Math.min(255,this.g-Math.floor(this.g*k)),Math.min(255,this.b-Math.floor(this.b*k)),this.a);},desaturate(opt_desaturateFactor){let desaturateFactor;if(opt_desaturateFactor!==undefined){desaturateFactor=opt_desaturateFactor;}else{desaturateFactor=1;}
const hsl=this.toHSL();hsl.s=clamp01(hsl.s*(1-desaturateFactor));return Color.fromHSL(hsl);},withAlpha(a){return new Color(this.r,this.g,this.b,a);},toString(){if(this.a!==undefined){return'rgba('+
this.r+','+this.g+','+
this.b+','+this.a+')';}
return'rgb('+this.r+','+this.g+','+this.b+')';},toHSL(){const r=this.r/255;const g=this.g/255;const b=this.b/255;const max=Math.max(r,g,b);const min=Math.min(r,g,b);let h;let s;const l=(max+min)/2;if(min===max){h=0;s=0;}else{const delta=max-min;if(l>0.5){s=delta/(2-max-min);}else{s=delta/(max+min);}
if(r===max){h=(g-b)/delta;if(g<b)h+=6;}else if(g===max){h=2+((b-r)/delta);}else{h=4+((r-g)/delta);}
h/=6;}
return{h,s,l,a:this.a};},toStringWithAlphaOverride(alpha){return'rgba('+
this.r+','+this.g+','+
this.b+','+alpha+')';}};return{Color,};});'use strict';tr.exportTo('tr.b',function(){const generalPurposeColors=[new tr.b.Color(122,98,135),new tr.b.Color(150,83,105),new tr.b.Color(44,56,189),new tr.b.Color(99,86,147),new tr.b.Color(104,129,107),new tr.b.Color(130,178,55),new tr.b.Color(87,109,147),new tr.b.Color(111,145,88),new tr.b.Color(81,152,131),new tr.b.Color(142,91,111),new tr.b.Color(81,163,70),new tr.b.Color(148,94,86),new tr.b.Color(144,89,118),new tr.b.Color(83,150,97),new tr.b.Color(105,94,139),new tr.b.Color(89,144,122),new tr.b.Color(105,119,128),new tr.b.Color(96,128,137),new tr.b.Color(145,88,145),new tr.b.Color(88,145,144),new tr.b.Color(90,100,143),new tr.b.Color(121,97,136),new tr.b.Color(111,160,73),new tr.b.Color(112,91,142),new tr.b.Color(86,147,86),new tr.b.Color(63,100,170),new tr.b.Color(81,152,107),new tr.b.Color(60,164,173),new tr.b.Color(143,72,161),new tr.b.Color(159,74,86)];const reservedColorsByName={thread_state_uninterruptible:new tr.b.Color(182,125,143),thread_state_iowait:new tr.b.Color(255,140,0),thread_state_running:new tr.b.Color(126,200,148),thread_state_runnable:new tr.b.Color(133,160,210),thread_state_sleeping:new tr.b.Color(240,240,240),thread_state_unknown:new tr.b.Color(199,155,125),background_memory_dump:new tr.b.Color(0,180,180),light_memory_dump:new tr.b.Color(0,0,180),detailed_memory_dump:new tr.b.Color(180,0,180),vsync_highlight_color:new tr.b.Color(0,0,255),generic_work:new tr.b.Color(125,125,125),good:new tr.b.Color(0,125,0),bad:new tr.b.Color(180,125,0),terrible:new tr.b.Color(180,0,0),black:new tr.b.Color(0,0,0),grey:new tr.b.Color(221,221,221),white:new tr.b.Color(255,255,255),yellow:new tr.b.Color(255,255,0),olive:new tr.b.Color(100,100,0),rail_response:new tr.b.Color(67,135,253),rail_animation:new tr.b.Color(244,74,63),rail_idle:new tr.b.Color(238,142,0),rail_load:new tr.b.Color(13,168,97),startup:new tr.b.Color(230,230,0),heap_dump_stack_frame:new tr.b.Color(128,128,128),heap_dump_object_type:new tr.b.Color(0,0,255),heap_dump_child_node_arrow:new tr.b.Color(204,102,0),cq_build_running:new tr.b.Color(255,255,119),cq_build_passed:new tr.b.Color(153,238,102),cq_build_failed:new tr.b.Color(238,136,136),cq_build_abandoned:new tr.b.Color(187,187,187),cq_build_attempt_runnig:new tr.b.Color(222,222,75),cq_build_attempt_passed:new tr.b.Color(103,218,35),cq_build_attempt_failed:new tr.b.Color(197,81,81)};const numGeneralPurposeColorIds=generalPurposeColors.length;const numReservedColorIds=Object.keys(reservedColorsByName).length;const numColorsPerVariant=numGeneralPurposeColorIds+numReservedColorIds;function ColorScheme(){}
const paletteBase=[];paletteBase.push.apply(paletteBase,generalPurposeColors);paletteBase.push.apply(paletteBase,Object.values(reservedColorsByName));ColorScheme.colors=[];ColorScheme.properties={};ColorScheme.properties={numColorsPerVariant,};function pushVariant(func){const variantColors=paletteBase.map(func);ColorScheme.colors.push.apply(ColorScheme.colors,variantColors);}
pushVariant(function(c){return c;});ColorScheme.properties.brightenedOffsets=[];ColorScheme.properties.brightenedOffsets.push(ColorScheme.colors.length);pushVariant(function(c){return c.lighten(0.3,0.8);});ColorScheme.properties.brightenedOffsets.push(ColorScheme.colors.length);pushVariant(function(c){return c.lighten(0.48,0.85);});ColorScheme.properties.brightenedOffsets.push(ColorScheme.colors.length);pushVariant(function(c){return c.lighten(0.65,0.9);});ColorScheme.properties.dimmedOffsets=[];ColorScheme.properties.dimmedOffsets.push(ColorScheme.colors.length);pushVariant(function(c){return c.desaturate();});ColorScheme.properties.dimmedOffsets.push(ColorScheme.colors.length);pushVariant(function(c){return c.desaturate(0.5);});ColorScheme.properties.dimmedOffsets.push(ColorScheme.colors.length);pushVariant(function(c){return c.desaturate(0.3);});ColorScheme.colorsAsStrings=ColorScheme.colors.map(function(c){return c.toString();});const reservedColorNameToIdMap=(function(){const m=new Map();let i=generalPurposeColors.length;for(const key of Object.keys(reservedColorsByName)){m.set(key,i++);}
return m;})();ColorScheme.getColorIdForReservedName=function(name){const id=reservedColorNameToIdMap.get(name);if(id===undefined){throw new Error('Unrecognized color '+name);}
return id;};ColorScheme.getColorForReservedNameAsString=function(reservedName){const id=ColorScheme.getColorIdForReservedName(reservedName);return ColorScheme.colorsAsStrings[id];};ColorScheme.getStringHash=function(name){let hash=0;for(let i=0;i<name.length;++i){hash=(hash+37*hash+11*name.charCodeAt(i))%0xFFFFFFFF;}
return hash;};const stringColorIdCache=new Map();ColorScheme.getColorIdForGeneralPurposeString=function(string){if(stringColorIdCache.get(string)===undefined){const hash=ColorScheme.getStringHash(string);stringColorIdCache.set(string,hash%numGeneralPurposeColorIds);}
return stringColorIdCache.get(string);};ColorScheme.getAnotherColorId=function(colorId,n){return(colorId+n)%numColorsPerVariant;};ColorScheme.getVariantColorId=function(colorId,offset){return colorId+offset;};return{ColorScheme,};});'use strict';tr.exportTo('tr.model',function(){const ColorScheme=tr.b.ColorScheme;function EventInfo(title,description,docLinks){this.title=title;this.description=description;this.docLinks=docLinks;this.colorId=ColorScheme.getColorIdForGeneralPurposeString(title);}
return{EventInfo,};});'use strict';tr.exportTo('tr.b',function(){let nextGUID=1;const UUID4_PATTERN='xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx';const GUID={allocateSimple(){return nextGUID++;},getLastSimpleGuid(){return nextGUID-1;},allocateUUID4(){return UUID4_PATTERN.replace(/[xy]/g,function(c){let r=parseInt(Math.random()*16);if(c==='y')r=(r&3)+8;return r.toString(16);});}};return{GUID,};});'use strict';tr.exportTo('tr.model',function(){function EventRegistry(){}
const options=new tr.b.ExtensionRegistryOptions(tr.b.BASIC_REGISTRY_MODE);tr.b.decorateExtensionRegistry(EventRegistry,options);EventRegistry.addEventListener('will-register',function(e){const metadata=e.typeInfo.metadata;if(metadata.name===undefined){throw new Error('Registered events must provide name metadata');}
if(metadata.pluralName===undefined){throw new Error('Registered events must provide pluralName metadata');}
if(metadata.subTypes===undefined){metadata.subTypes={};const options=new tr.b.ExtensionRegistryOptions(tr.b.TYPE_BASED_REGISTRY_MODE);options.mandatoryBaseClass=e.typeInfo.constructor;options.defaultConstructor=e.typeInfo.constructor;tr.b.decorateExtensionRegistry(metadata.subTypes,options);}else{if(!metadata.subTypes.register){throw new Error('metadata.subTypes must be an extension registry.');}}
e.typeInfo.constructor.subTypes=metadata.subTypes;});let eventsByTypeName=undefined;EventRegistry.getEventTypeInfoByTypeName=function(typeName){if(eventsByTypeName===undefined){eventsByTypeName={};EventRegistry.getAllRegisteredTypeInfos().forEach(function(typeInfo){eventsByTypeName[typeInfo.metadata.name]=typeInfo;});}
return eventsByTypeName[typeName];};EventRegistry.addEventListener('registry-changed',function(){eventsByTypeName=undefined;});function convertCamelCaseToTitleCase(name){let result=name.replace(/[A-Z]/g,' $&');result=result.charAt(0).toUpperCase()+result.slice(1);return result;}
EventRegistry.getUserFriendlySingularName=function(typeName){const typeInfo=EventRegistry.getEventTypeInfoByTypeName(typeName);const str=typeInfo.metadata.name;return convertCamelCaseToTitleCase(str);};EventRegistry.getUserFriendlyPluralName=function(typeName){const typeInfo=EventRegistry.getEventTypeInfoByTypeName(typeName);const str=typeInfo.metadata.pluralName;return convertCamelCaseToTitleCase(str);};return{EventRegistry,};});'use strict';tr.exportTo('tr.model',function(){const EventRegistry=tr.model.EventRegistry;const RequestSelectionChangeEvent=tr.b.Event.bind(undefined,'requestSelectionChange',true,false);function EventSet(opt_events){this.bounds_=new tr.b.math.Range();this.events_=new Set();this.guid_=tr.b.GUID.allocateSimple();if(opt_events){if(opt_events instanceof Array){for(const event of opt_events){this.push(event);}}else if(opt_events instanceof EventSet){this.addEventSet(opt_events);}else{this.push(opt_events);}}}
EventSet.prototype={__proto__:Object.prototype,get bounds(){return this.bounds_;},get duration(){if(this.bounds_.isEmpty)return 0;return this.bounds_.max-this.bounds_.min;},get length(){return this.events_.size;},get guid(){return this.guid_;},*[Symbol.iterator](){for(const event of this.events_){yield event;}},clear(){this.bounds_=new tr.b.math.Range();this.events_.clear();},push(...events){let numPushed;for(const event of events){if(event.guid===undefined){throw new Error('Event must have a GUID');}
if(!this.events_.has(event)){this.events_.add(event);if(event.addBoundsToRange){if(this.bounds_!==undefined){event.addBoundsToRange(this.bounds_);}}}
numPushed++;}
return numPushed;},contains(event){if(this.events_.has(event))return event;return undefined;},addEventSet(eventSet){for(const event of eventSet){this.push(event);}},intersectionIsEmpty(otherEventSet){return!this.some(event=>otherEventSet.contains(event));},equals(that){if(this.length!==that.length)return false;return this.every(event=>that.contains(event));},sortEvents(compare){const ary=this.toArray();ary.sort(compare);this.clear();for(const event of ary){this.push(event);}},getEventsOrganizedByBaseType(opt_pruneEmpty){const allTypeInfos=EventRegistry.getAllRegisteredTypeInfos();const events=this.getEventsOrganizedByCallback(function(event){let maxEventIndex=-1;let maxEventTypeInfo=undefined;allTypeInfos.forEach(function(eventTypeInfo,eventIndex){if(!(event instanceof eventTypeInfo.constructor))return;if(eventIndex>maxEventIndex){maxEventIndex=eventIndex;maxEventTypeInfo=eventTypeInfo;}});if(maxEventIndex===-1){throw new Error(`Unrecognized event type: ${event.constructor.name}`);}
return maxEventTypeInfo.metadata.name;});if(!opt_pruneEmpty){allTypeInfos.forEach(function(eventTypeInfo){if(events[eventTypeInfo.metadata.name]===undefined){events[eventTypeInfo.metadata.name]=new EventSet();}});}
return events;},getEventsOrganizedByTitle(){return this.getEventsOrganizedByCallback(function(event){if(event.title===undefined){throw new Error('An event didn\'t have a title!');}
return event.title;});},getEventsOrganizedByCallback(cb,opt_this){const groupedEvents=tr.b.groupIntoMap(this,cb,opt_this||this);const groupedEventsDict={};for(const[k,events]of groupedEvents){groupedEventsDict[k]=new EventSet(events);}
return groupedEventsDict;},enumEventsOfType(type,func){for(const event of this){if(event instanceof type){func(event);}}},get userFriendlyName(){if(this.length===0){throw new Error('Empty event set');}
const eventsByBaseType=this.getEventsOrganizedByBaseType(true);const eventTypeName=Object.keys(eventsByBaseType)[0];if(this.length===1){const tmp=EventRegistry.getUserFriendlySingularName(eventTypeName);return tr.b.getOnlyElement(this.events_).userFriendlyName;}
const numEventTypes=Object.keys(eventsByBaseType).length;if(numEventTypes!==1){return this.length+' events of various types';}
const tmp=EventRegistry.getUserFriendlyPluralName(eventTypeName);return this.length+' '+tmp;},filter(fn,opt_this){const res=new EventSet();for(const event of this){if(fn.call(opt_this,event)){res.push(event);}}
return res;},toArray(){const ary=[];for(const event of this){ary.push(event);}
return ary;},forEach(fn,opt_this){for(const event of this){fn.call(opt_this,event);}},map(fn,opt_this){const res=[];for(const event of this){res.push(fn.call(opt_this,event));}
return res;},every(fn,opt_this){for(const event of this){if(!fn.call(opt_this,event)){return false;}}
return true;},some(fn,opt_this){for(const event of this){if(fn.call(opt_this,event)){return true;}}
return false;},asDict(){const stableIds=[];for(const event of this){stableIds.push(event.stableId);}
return{'events':stableIds};},asSet(){return this.events_;}};EventSet.IMMUTABLE_EMPTY_SET=(function(){const s=new EventSet();s.push=function(){throw new Error('Cannot push to an immutable event set');};s.addEventSet=function(){throw new Error('Cannot add to an immutable event set');};Object.freeze(s);return s;})();return{EventSet,RequestSelectionChangeEvent,};});'use strict';tr.exportTo('tr.model',function(){const ColorScheme=tr.b.ColorScheme;const SelectionState={NONE:0,SELECTED:ColorScheme.properties.brightenedOffsets[0],HIGHLIGHTED:ColorScheme.properties.brightenedOffsets[1],DIMMED:ColorScheme.properties.dimmedOffsets[0],BRIGHTENED0:ColorScheme.properties.brightenedOffsets[0],BRIGHTENED1:ColorScheme.properties.brightenedOffsets[1],BRIGHTENED2:ColorScheme.properties.brightenedOffsets[2],DIMMED0:ColorScheme.properties.dimmedOffsets[0],DIMMED1:ColorScheme.properties.dimmedOffsets[1],DIMMED2:ColorScheme.properties.dimmedOffsets[2]};const brighteningLevels=[SelectionState.NONE,SelectionState.BRIGHTENED0,SelectionState.BRIGHTENED1,SelectionState.BRIGHTENED2];SelectionState.getFromBrighteningLevel=function(level){return brighteningLevels[level];};const dimmingLevels=[SelectionState.DIMMED0,SelectionState.DIMMED1,SelectionState.DIMMED2];SelectionState.getFromDimmingLevel=function(level){return dimmingLevels[level];};return{SelectionState,};});'use strict';tr.exportTo('tr.model',function(){const SelectionState=tr.model.SelectionState;function SelectableItem(modelItem){this.modelItem_=modelItem;}
SelectableItem.prototype={get modelItem(){return this.modelItem_;},get selected(){return this.selectionState===SelectionState.SELECTED;},addToSelection(selection){const modelItem=this.modelItem_;if(!modelItem)return;selection.push(modelItem);},addToTrackMap(eventToTrackMap,track){const modelItem=this.modelItem_;if(!modelItem)return;eventToTrackMap.addEvent(modelItem,track);}};return{SelectableItem,};});'use strict';tr.exportTo('tr.model',function(){const SelectableItem=tr.model.SelectableItem;const SelectionState=tr.model.SelectionState;const IMMUTABLE_EMPTY_SET=tr.model.EventSet.IMMUTABLE_EMPTY_SET;function Event(){SelectableItem.call(this,this);this.guid_=tr.b.GUID.allocateSimple();this.selectionState=SelectionState.NONE;this.info=undefined;}
Event.prototype={__proto__:SelectableItem.prototype,get guid(){return this.guid_;},get stableId(){return undefined;},get range(){const range=new tr.b.math.Range();this.addBoundsToRange(range);return range;},associatedAlerts:IMMUTABLE_EMPTY_SET,addAssociatedAlert(alert){if(this.associatedAlerts===IMMUTABLE_EMPTY_SET){this.associatedAlerts=new tr.model.EventSet();}
this.associatedAlerts.push(alert);},addBoundsToRange(range){}};return{Event,};});'use strict';tr.exportTo('tr.model',function(){function TimedEvent(start){tr.model.Event.call(this);this.start=start;this.duration=0;this.cpuStart=undefined;this.cpuDuration=undefined;this.contexts=Object.freeze([]);}
TimedEvent.prototype={__proto__:tr.model.Event.prototype,get end(){return this.start+this.duration;},addBoundsToRange(range){range.addValue(this.start);range.addValue(this.end);},bounds(that,opt_precisionUnit){if(opt_precisionUnit===undefined){opt_precisionUnit=tr.b.TimeDisplayModes.ms;}
const startsBefore=opt_precisionUnit.roundedLess(that.start,this.start);const endsAfter=opt_precisionUnit.roundedLess(this.end,that.end);return!startsBefore&&!endsAfter;}};return{TimedEvent,};});'use strict';tr.exportTo('tr.model',function(){function Alert(info,start,opt_associatedEvents,opt_args){tr.model.TimedEvent.call(this,start);this.info=info;this.args=opt_args||{};this.associatedEvents=new tr.model.EventSet(opt_associatedEvents);this.associatedEvents.forEach(function(event){event.addAssociatedAlert(this);},this);}
Alert.prototype={__proto__:tr.model.TimedEvent.prototype,get title(){return this.info.title;},get colorId(){return this.info.colorId;},get userFriendlyName(){return'Alert '+this.title+' at '+
tr.b.Unit.byName.timeStampInMs.format(this.start);}};tr.model.EventRegistry.register(Alert,{name:'alert',pluralName:'alerts'});return{Alert,};});'use strict';tr.exportTo('tr.model',function(){const ColorScheme=tr.b.ColorScheme;const Statistics=tr.b.math.Statistics;const FRAME_PERF_CLASS={GOOD:'good',BAD:'bad',TERRIBLE:'terrible',NEUTRAL:'generic_work'};function Frame(associatedEvents,threadTimeRanges,opt_args){tr.model.Event.call(this);this.threadTimeRanges=threadTimeRanges;this.associatedEvents=new tr.model.EventSet(associatedEvents);this.args=opt_args||{};this.title='Frame';this.start=Statistics.min(threadTimeRanges,function(x){return x.start;});this.end=Statistics.max(threadTimeRanges,function(x){return x.end;});this.totalDuration=Statistics.sum(threadTimeRanges,function(x){return x.end-x.start;});this.perfClass=FRAME_PERF_CLASS.NEUTRAL;}
Frame.prototype={__proto__:tr.model.Event.prototype,set perfClass(perfClass){this.colorId=ColorScheme.getColorIdForReservedName(perfClass);this.perfClass_=perfClass;},get perfClass(){return this.perfClass_;},shiftTimestampsForward(amount){this.start+=amount;this.end+=amount;for(let i=0;i<this.threadTimeRanges.length;i++){this.threadTimeRanges[i].start+=amount;this.threadTimeRanges[i].end+=amount;}},addBoundsToRange(range){range.addValue(this.start);range.addValue(this.end);}};tr.model.EventRegistry.register(Frame,{name:'frame',pluralName:'frames'});return{Frame,FRAME_PERF_CLASS,};});'use strict';tr.exportTo('tr.b.math',function(){function findLowIndexInSortedArray(ary,mapFn,loVal){if(ary.length===0)return 1;let low=0;let high=ary.length-1;let i;let comparison;let hitPos=-1;while(low<=high){i=Math.floor((low+high)/2);comparison=mapFn(ary[i])-loVal;if(comparison<0){low=i+1;continue;}else if(comparison>0){high=i-1;continue;}else{hitPos=i;high=i-1;}}
return hitPos!==-1?hitPos:low;}
function findHighIndexInSortedArray(ary,mapFn,loVal,hiVal){let lo=loVal||0;let hi=hiVal!==undefined?hiVal:ary.length;while(lo<hi){const mid=(lo+hi)>>1;if(mapFn(ary[mid])>=0){lo=mid+1;}else{hi=mid;}}
return hi;}
function findIndexInSortedIntervals(ary,mapLoFn,mapWidthFn,loVal){const first=findLowIndexInSortedArray(ary,mapLoFn,loVal);if(first===0){if(loVal>=mapLoFn(ary[0])&&loVal<mapLoFn(ary[0])+mapWidthFn(ary[0],0)){return 0;}
return-1;}
if(first<ary.length){if(loVal>=mapLoFn(ary[first])&&loVal<mapLoFn(ary[first])+mapWidthFn(ary[first],first)){return first;}
if(loVal>=mapLoFn(ary[first-1])&&loVal<mapLoFn(ary[first-1])+
mapWidthFn(ary[first-1],first-1)){return first-1;}
return ary.length;}
if(first===ary.length){if(loVal>=mapLoFn(ary[first-1])&&loVal<mapLoFn(ary[first-1])+
mapWidthFn(ary[first-1],first-1)){return first-1;}
return ary.length;}
return ary.length;}
function findIndexInSortedClosedIntervals(ary,mapLoFn,mapHiFn,val){const i=findLowIndexInSortedArray(ary,mapLoFn,val);if(i===0){if(val>=mapLoFn(ary[0],0)&&val<=mapHiFn(ary[0],0)){return 0;}
return-1;}
if(i<ary.length){if(val>=mapLoFn(ary[i-1],i-1)&&val<=mapHiFn(ary[i-1],i-1)){return i-1;}
if(val>=mapLoFn(ary[i],i)&&val<=mapHiFn(ary[i],i)){return i;}
return ary.length;}
if(i===ary.length){if(val>=mapLoFn(ary[i-1],i-1)&&val<=mapHiFn(ary[i-1],i-1)){return i-1;}
return ary.length;}
return ary.length;}
function iterateOverIntersectingIntervals(ary,mapLoFn,mapWidthFn,loVal,hiVal,cb){if(ary.length===0)return;if(loVal>hiVal)return;let i=findLowIndexInSortedArray(ary,mapLoFn,loVal);if(i===-1){return;}
if(i>0){const hi=mapLoFn(ary[i-1])+mapWidthFn(ary[i-1],i-1);if(hi>=loVal){cb(ary[i-1],i-1);}}
if(i===ary.length){return;}
for(let n=ary.length;i<n;i++){const lo=mapLoFn(ary[i]);if(lo>=hiVal)break;cb(ary[i],i);}}
function getIntersectingIntervals(ary,mapLoFn,mapWidthFn,loVal,hiVal){const tmp=[];iterateOverIntersectingIntervals(ary,mapLoFn,mapWidthFn,loVal,hiVal,function(d){tmp.push(d);});return tmp;}
function findClosestElementInSortedArray(ary,mapFn,val,maxDiff){if(ary.length===0)return null;let aftIdx=findLowIndexInSortedArray(ary,mapFn,val);const befIdx=aftIdx>0?aftIdx-1:0;if(aftIdx===ary.length)aftIdx-=1;const befDiff=Math.abs(val-mapFn(ary[befIdx]));const aftDiff=Math.abs(val-mapFn(ary[aftIdx]));if(befDiff>maxDiff&&aftDiff>maxDiff)return null;const idx=befDiff<aftDiff?befIdx:aftIdx;return ary[idx];}
function findClosestIntervalInSortedIntervals(ary,mapLoFn,mapHiFn,val,maxDiff){if(ary.length===0)return null;let idx=findLowIndexInSortedArray(ary,mapLoFn,val);if(idx>0)idx-=1;const hiInt=ary[idx];let loInt=hiInt;if(val>mapHiFn(hiInt)&&idx+1<ary.length){loInt=ary[idx+1];}
const loDiff=Math.abs(val-mapLoFn(loInt));const hiDiff=Math.abs(val-mapHiFn(hiInt));if(loDiff>maxDiff&&hiDiff>maxDiff)return null;if(loDiff<hiDiff)return loInt;return hiInt;}
return{findLowIndexInSortedArray,findHighIndexInSortedArray,findIndexInSortedIntervals,findIndexInSortedClosedIntervals,iterateOverIntersectingIntervals,getIntersectingIntervals,findClosestElementInSortedArray,findClosestIntervalInSortedIntervals,};});'use strict';tr.exportTo('tr.model.helpers',function(){const Frame=tr.model.Frame;const Statistics=tr.b.math.Statistics;const UI_DRAW_TYPE={NONE:'none',LEGACY:'legacy',MARSHMALLOW:'marshmallow'};const UI_THREAD_DRAW_NAMES={'performTraversals':UI_DRAW_TYPE.LEGACY,'Choreographer#doFrame':UI_DRAW_TYPE.MARSHMALLOW};const RENDER_THREAD_DRAW_NAME='DrawFrame';const RENDER_THREAD_INDEP_DRAW_NAME='doFrame';const RENDER_THREAD_QUEUE_NAME='queueBuffer';const RENDER_THREAD_SWAP_NAME='eglSwapBuffers';const THREAD_SYNC_NAME='syncFrameState';function getSlicesForThreadTimeRanges(threadTimeRanges){const ret=[];threadTimeRanges.forEach(function(threadTimeRange){const slices=[];threadTimeRange.thread.sliceGroup.iterSlicesInTimeRange(function(slice){slices.push(slice);},threadTimeRange.start,threadTimeRange.end);ret.push.apply(ret,slices);});return ret;}
function makeFrame(threadTimeRanges,surfaceFlinger){const args={};if(surfaceFlinger&&surfaceFlinger.hasVsyncs){const start=Statistics.min(threadTimeRanges,function(threadTimeRanges){return threadTimeRanges.start;});args.deadline=surfaceFlinger.getFrameDeadline(start);args.frameKickoff=surfaceFlinger.getFrameKickoff(start);}
const events=getSlicesForThreadTimeRanges(threadTimeRanges);return new Frame(events,threadTimeRanges,args);}
function findOverlappingDrawFrame(renderThread,uiDrawSlice){if(!renderThread)return undefined;let overlappingDrawFrame;const slices=tr.b.math.iterateOverIntersectingIntervals(renderThread.sliceGroup.slices,function(range){return range.start;},function(range){return range.end;},uiDrawSlice.start,uiDrawSlice.end,function(rtDrawSlice){if(rtDrawSlice.title===RENDER_THREAD_DRAW_NAME){const rtSyncSlice=rtDrawSlice.findDescendentSlice(THREAD_SYNC_NAME);if(rtSyncSlice&&rtSyncSlice.start>=uiDrawSlice.start&&rtSyncSlice.end<=uiDrawSlice.end){overlappingDrawFrame=rtDrawSlice;}}});return overlappingDrawFrame;}
function getPreTraversalWorkRanges(uiThread){if(!uiThread)return[];const preFrameEvents=[];uiThread.sliceGroup.slices.forEach(function(slice){if(slice.title==='obtainView'||slice.title==='setupListItem'||slice.title==='deliverInputEvent'||slice.title==='RV Scroll'){preFrameEvents.push(slice);}});uiThread.asyncSliceGroup.slices.forEach(function(slice){if(slice.title==='deliverInputEvent'){preFrameEvents.push(slice);}});return tr.b.math.mergeRanges(tr.b.math.convertEventsToRanges(preFrameEvents),3,function(events){return{start:events[0].min,end:events[events.length-1].max};});}
function getFrameStartTime(traversalStart,preTraversalWorkRanges){const preTraversalWorkRange=tr.b.math.findClosestIntervalInSortedIntervals(preTraversalWorkRanges,function(range){return range.start;},function(range){return range.end;},traversalStart,3);if(preTraversalWorkRange){return preTraversalWorkRange.start;}
return traversalStart;}
function getRtFrameEndTime(rtDrawSlice){const rtQueueSlice=rtDrawSlice.findDescendentSlice(RENDER_THREAD_QUEUE_NAME);if(rtQueueSlice){return rtQueueSlice.end;}
const rtSwapSlice=rtDrawSlice.findDescendentSlice(RENDER_THREAD_SWAP_NAME);if(rtSwapSlice){return rtSwapSlice.end;}
return rtDrawSlice.end;}
function getUiThreadDrivenFrames(app){if(!app.uiThread)return[];let preTraversalWorkRanges=[];if(app.uiDrawType===UI_DRAW_TYPE.LEGACY){preTraversalWorkRanges=getPreTraversalWorkRanges(app.uiThread);}
const frames=[];app.uiThread.sliceGroup.slices.forEach(function(slice){if(!(slice.title in UI_THREAD_DRAW_NAMES)){return;}
const threadTimeRanges=[];const uiThreadTimeRange={thread:app.uiThread,start:getFrameStartTime(slice.start,preTraversalWorkRanges),end:slice.end};threadTimeRanges.push(uiThreadTimeRange);const rtDrawSlice=findOverlappingDrawFrame(app.renderThread,slice);if(rtDrawSlice){const rtSyncSlice=rtDrawSlice.findDescendentSlice(THREAD_SYNC_NAME);if(rtSyncSlice){uiThreadTimeRange.end=Math.min(uiThreadTimeRange.end,rtSyncSlice.start);}
threadTimeRanges.push({thread:app.renderThread,start:rtDrawSlice.start,end:getRtFrameEndTime(rtDrawSlice)});}
frames.push(makeFrame(threadTimeRanges,app.surfaceFlinger));});return frames;}
function getRenderThreadDrivenFrames(app){if(!app.renderThread)return[];const frames=[];app.renderThread.sliceGroup.getSlicesOfName(RENDER_THREAD_INDEP_DRAW_NAME).forEach(function(slice){const threadTimeRanges=[{thread:app.renderThread,start:slice.start,end:slice.end}];frames.push(makeFrame(threadTimeRanges,app.surfaceFlinger));});return frames;}
function getUiDrawType(uiThread){if(!uiThread){return UI_DRAW_TYPE.NONE;}
const slices=uiThread.sliceGroup.slices;for(let i=0;i<slices.length;i++){if(slices[i].title in UI_THREAD_DRAW_NAMES){return UI_THREAD_DRAW_NAMES[slices[i].title];}}
return UI_DRAW_TYPE.NONE;}
function getInputSamples(process){let samples=undefined;for(const counterName in process.counters){if(/^android\.aq\:pending/.test(counterName)&&process.counters[counterName].numSeries===1){samples=process.counters[counterName].series[0].samples;break;}}
if(!samples)return[];const inputSamples=[];let lastValue=0;samples.forEach(function(sample){if(sample.value>lastValue){inputSamples.push(sample);}
lastValue=sample.value;});return inputSamples;}
function getAnimationAsyncSlices(uiThread){if(!uiThread)return[];const slices=[];for(const slice of uiThread.asyncSliceGroup.getDescendantEvents()){if(/^animator\:/.test(slice.title)){slices.push(slice);}}
return slices;}
function AndroidApp(process,uiThread,renderThread,surfaceFlinger,uiDrawType){this.process=process;this.uiThread=uiThread;this.renderThread=renderThread;this.surfaceFlinger=surfaceFlinger;this.uiDrawType=uiDrawType;this.frames_=undefined;this.inputs_=undefined;}
AndroidApp.createForProcessIfPossible=function(process,surfaceFlinger){let uiThread=process.getThread(process.pid);const uiDrawType=getUiDrawType(uiThread);if(uiDrawType===UI_DRAW_TYPE.NONE){uiThread=undefined;}
const renderThreads=process.findAllThreadsNamed('RenderThread');const renderThread=(renderThreads.length===1?renderThreads[0]:undefined);if(uiThread||renderThread){return new AndroidApp(process,uiThread,renderThread,surfaceFlinger,uiDrawType);}};AndroidApp.prototype={getFrames(){if(!this.frames_){const uiFrames=getUiThreadDrivenFrames(this);const rtFrames=getRenderThreadDrivenFrames(this);this.frames_=uiFrames.concat(rtFrames);this.frames_.sort(function(a,b){a.end-b.end;});}
return this.frames_;},getInputSamples(){if(!this.inputs_){this.inputs_=getInputSamples(this.process);}
return this.inputs_;},getAnimationAsyncSlices(){if(!this.animations_){this.animations_=getAnimationAsyncSlices(this.uiThread);}
return this.animations_;}};return{AndroidApp,};});'use strict';tr.exportTo('tr.model.helpers',function(){const findLowIndexInSortedArray=tr.b.math.findLowIndexInSortedArray;const VSYNC_SF_NAME='android.VSYNC-sf';const VSYNC_APP_NAME='android.VSYNC-app';const VSYNC_FALLBACK_NAME='android.VSYNC';const TIMESTAMP_FUDGE_MS=0.01;function getVsyncTimestamps(process,counterName){let vsync=process.counters[counterName];if(!vsync){vsync=process.counters[VSYNC_FALLBACK_NAME];}
if(vsync&&vsync.numSeries===1&&vsync.numSamples>1){return vsync.series[0].timestamps;}
return undefined;}
function AndroidSurfaceFlinger(process,thread){this.process=process;this.thread=thread;this.appVsync_=undefined;this.sfVsync_=undefined;this.appVsyncTimestamps_=getVsyncTimestamps(process,VSYNC_APP_NAME);this.sfVsyncTimestamps_=getVsyncTimestamps(process,VSYNC_SF_NAME);this.deadlineDelayMs_=this.appVsyncTimestamps_!==this.sfVsyncTimestamps_?5:TIMESTAMP_FUDGE_MS;}
AndroidSurfaceFlinger.createForProcessIfPossible=function(process){const mainThread=process.getThread(process.pid);if(mainThread&&mainThread.name&&/surfaceflinger/.test(mainThread.name)){return new AndroidSurfaceFlinger(process,mainThread);}
const primaryThreads=process.findAllThreadsNamed('SurfaceFlinger');if(primaryThreads.length===1){return new AndroidSurfaceFlinger(process,primaryThreads[0]);}
return undefined;};AndroidSurfaceFlinger.prototype={get hasVsyncs(){return!!this.appVsyncTimestamps_&&!!this.sfVsyncTimestamps_;},getFrameKickoff(timestamp){if(!this.hasVsyncs){throw new Error('cannot query vsync info without vsyncs');}
const firstGreaterIndex=findLowIndexInSortedArray(this.appVsyncTimestamps_,function(x){return x;},timestamp+TIMESTAMP_FUDGE_MS);if(firstGreaterIndex<1)return undefined;return this.appVsyncTimestamps_[firstGreaterIndex-1];},getFrameDeadline(timestamp){if(!this.hasVsyncs){throw new Error('cannot query vsync info without vsyncs');}
const firstGreaterIndex=findLowIndexInSortedArray(this.sfVsyncTimestamps_,function(x){return x;},timestamp+this.deadlineDelayMs_);if(firstGreaterIndex>=this.sfVsyncTimestamps_.length){return undefined;}
return this.sfVsyncTimestamps_[firstGreaterIndex];}};return{AndroidSurfaceFlinger,};});'use strict';tr.exportTo('tr.model.helpers',function(){const AndroidApp=tr.model.helpers.AndroidApp;const AndroidSurfaceFlinger=tr.model.helpers.AndroidSurfaceFlinger;const IMPORTANT_SURFACE_FLINGER_SLICES={'doComposition':true,'updateTexImage':true,'postFramebuffer':true};const IMPORTANT_UI_THREAD_SLICES={'Choreographer#doFrame':true,'performTraversals':true,'deliverInputEvent':true};const IMPORTANT_RENDER_THREAD_SLICES={'doFrame':true};function iterateImportantThreadSlices(thread,important,callback){if(!thread)return;thread.sliceGroup.slices.forEach(function(slice){if(slice.title in important){callback(slice);}});}
function AndroidModelHelper(model){this.model=model;this.apps=[];this.surfaceFlinger=undefined;const processes=model.getAllProcesses();for(let i=0;i<processes.length&&!this.surfaceFlinger;i++){this.surfaceFlinger=AndroidSurfaceFlinger.createForProcessIfPossible(processes[i]);}
model.getAllProcesses().forEach(function(process){const app=AndroidApp.createForProcessIfPossible(process,this.surfaceFlinger);if(app){this.apps.push(app);}},this);}
AndroidModelHelper.guid=tr.b.GUID.allocateSimple();AndroidModelHelper.supportsModel=function(model){return true;};AndroidModelHelper.prototype={iterateImportantSlices(callback){if(this.surfaceFlinger){iterateImportantThreadSlices(this.surfaceFlinger.thread,IMPORTANT_SURFACE_FLINGER_SLICES,callback);}
this.apps.forEach(function(app){iterateImportantThreadSlices(app.uiThread,IMPORTANT_UI_THREAD_SLICES,callback);iterateImportantThreadSlices(app.renderThread,IMPORTANT_RENDER_THREAD_SLICES,callback);});}};return{AndroidModelHelper,};});'use strict';tr.exportTo('tr.model',function(){function Slice(category,title,colorId,start,args,opt_duration,opt_cpuStart,opt_cpuDuration,opt_argsStripped,opt_bindId){if(new.target){throw new Error('Can\'t instantiate pure virtual class Slice');}
tr.model.TimedEvent.call(this,start);this.category=category||'';this.title=title;this.colorId=colorId;this.args=args;this.startStackFrame=undefined;this.endStackFrame=undefined;this.didNotFinish=false;this.inFlowEvents=[];this.outFlowEvents=[];this.subSlices=[];this.selfTime=undefined;this.cpuSelfTime=undefined;this.important=false;this.parentContainer=undefined;this.argsStripped=false;this.bind_id_=opt_bindId;this.parentSlice=undefined;this.isTopLevel=false;if(opt_duration!==undefined){this.duration=opt_duration;}
if(opt_cpuStart!==undefined){this.cpuStart=opt_cpuStart;}
if(opt_cpuDuration!==undefined){this.cpuDuration=opt_cpuDuration;}
if(opt_argsStripped!==undefined){this.argsStripped=true;}}
Slice.prototype={__proto__:tr.model.TimedEvent.prototype,get analysisTypeName(){return this.title;},get userFriendlyName(){return'Slice '+this.title+' at '+
tr.b.Unit.byName.timeStampInMs.format(this.start);},get stableId(){const parentSliceGroup=this.parentContainer.sliceGroup;return parentSliceGroup.stableId+'.'+
parentSliceGroup.slices.indexOf(this);},get bindId(){return this.bind_id_;},findDescendentSlice(targetTitle){if(!this.subSlices){return undefined;}
for(let i=0;i<this.subSlices.length;i++){if(this.subSlices[i].title===targetTitle){return this.subSlices[i];}
const slice=this.subSlices[i].findDescendentSlice(targetTitle);if(slice)return slice;}
return undefined;},get mostTopLevelSlice(){if(!this.parentSlice)return this;return this.parentSlice.mostTopLevelSlice;},getProcess(){const thread=this.parentContainer;if(thread&&thread.getProcess){return thread.getProcess();}
return undefined;},get model(){const process=this.getProcess();if(process!==undefined){return this.getProcess().model;}
return undefined;},*findTopmostSlicesRelativeToThisSlice(eventPredicate){if(eventPredicate(this)){yield this;return;}
for(const s of this.subSlices){yield*s.findTopmostSlicesRelativeToThisSlice(eventPredicate);}},iterateAllSubsequentSlices(callback,opt_this){const parentStack=[];let started=false;const topmostSlice=this.mostTopLevelSlice;parentStack.push(topmostSlice);while(parentStack.length!==0){const curSlice=parentStack.pop();if(started){callback.call(opt_this,curSlice);}else{started=(curSlice.guid===this.guid);}
for(let i=curSlice.subSlices.length-1;i>=0;i--){parentStack.push(curSlice.subSlices[i]);}}},get subsequentSlices(){const res=[];this.iterateAllSubsequentSlices(function(subseqSlice){res.push(subseqSlice);});return res;},*enumerateAllAncestors(){let curSlice=this.parentSlice;while(curSlice){yield curSlice;curSlice=curSlice.parentSlice;}},get ancestorSlices(){return Array.from(this.enumerateAllAncestors());},iterateEntireHierarchy(callback,opt_this){const mostTopLevelSlice=this.mostTopLevelSlice;callback.call(opt_this,mostTopLevelSlice);mostTopLevelSlice.iterateAllSubsequentSlices(callback,opt_this);},get entireHierarchy(){const res=[];this.iterateEntireHierarchy(function(slice){res.push(slice);});return res;},get ancestorAndSubsequentSlices(){const res=[];res.push(this);for(const aSlice of this.enumerateAllAncestors()){res.push(aSlice);}
this.iterateAllSubsequentSlices(function(sSlice){res.push(sSlice);});return res;},*enumerateAllDescendents(){for(const slice of this.subSlices){yield slice;}
for(const slice of this.subSlices){yield*slice.enumerateAllDescendents();}},get descendentSlices(){const res=[];for(const slice of this.enumerateAllDescendents()){res.push(slice);}
return res;}};return{Slice,};});'use strict';tr.exportTo('tr.model',function(){const Slice=tr.model.Slice;const SCHEDULING_STATE={DEBUG:'Debug',EXIT_DEAD:'Exit Dead',RUNNABLE:'Runnable',RUNNING:'Running',SLEEPING:'Sleeping',STOPPED:'Stopped',TASK_DEAD:'Task Dead',UNINTR_SLEEP:'Uninterruptible Sleep',UNINTR_SLEEP_WAKE_KILL:'Uninterruptible Sleep | WakeKill',UNINTR_SLEEP_WAKING:'Uninterruptible Sleep | Waking',UNINTR_SLEEP_IO:'Uninterruptible Sleep - Block I/O',UNINTR_SLEEP_WAKE_KILL_IO:'Uninterruptible Sleep | WakeKill - Block I/O',UNINTR_SLEEP_WAKING_IO:'Uninterruptible Sleep | Waking - Block I/O',UNKNOWN:'UNKNOWN',WAKE_KILL:'Wakekill',WAKING:'Waking',ZOMBIE:'Zombie'};function ThreadTimeSlice(thread,schedulingState,cat,start,args,opt_duration){Slice.call(this,cat,schedulingState,this.getColorForState_(schedulingState),start,args,opt_duration);this.thread=thread;this.schedulingState=schedulingState;this.cpuOnWhichThreadWasRunning=undefined;}
ThreadTimeSlice.prototype={__proto__:Slice.prototype,getColorForState_(state){const getColorIdForReservedName=tr.b.ColorScheme.getColorIdForReservedName;switch(state){case SCHEDULING_STATE.RUNNABLE:return getColorIdForReservedName('thread_state_runnable');case SCHEDULING_STATE.RUNNING:return getColorIdForReservedName('thread_state_running');case SCHEDULING_STATE.SLEEPING:return getColorIdForReservedName('thread_state_sleeping');case SCHEDULING_STATE.DEBUG:case SCHEDULING_STATE.EXIT_DEAD:case SCHEDULING_STATE.STOPPED:case SCHEDULING_STATE.TASK_DEAD:case SCHEDULING_STATE.UNINTR_SLEEP:case SCHEDULING_STATE.UNINTR_SLEEP_WAKE_KILL:case SCHEDULING_STATE.UNINTR_SLEEP_WAKING:case SCHEDULING_STATE.UNKNOWN:case SCHEDULING_STATE.WAKE_KILL:case SCHEDULING_STATE.WAKING:case SCHEDULING_STATE.ZOMBIE:return getColorIdForReservedName('thread_state_uninterruptible');case SCHEDULING_STATE.UNINTR_SLEEP_IO:case SCHEDULING_STATE.UNINTR_SLEEP_WAKE_KILL_IO:case SCHEDULING_STATE.UNINTR_SLEEP_WAKING_IO:return getColorIdForReservedName('thread_state_iowait');default:return getColorIdForReservedName('thread_state_unknown');}},get analysisTypeName(){return'tr.ui.analysis.ThreadTimeSlice';},getAssociatedCpuSlice(){if(!this.cpuOnWhichThreadWasRunning)return undefined;const cpuSlices=this.cpuOnWhichThreadWasRunning.slices;for(let i=0;i<cpuSlices.length;i++){const cpuSlice=cpuSlices[i];if(cpuSlice.start!==this.start)continue;if(cpuSlice.duration!==this.duration)continue;return cpuSlice;}
return undefined;},getCpuSliceThatTookCpu(){if(this.cpuOnWhichThreadWasRunning)return undefined;let curIndex=this.thread.indexOfTimeSlice(this);let cpuSliceWhenLastRunning;while(curIndex>=0){const curSlice=this.thread.timeSlices[curIndex];if(!curSlice.cpuOnWhichThreadWasRunning){curIndex--;continue;}
cpuSliceWhenLastRunning=curSlice.getAssociatedCpuSlice();break;}
if(!cpuSliceWhenLastRunning)return undefined;const cpu=cpuSliceWhenLastRunning.cpu;const indexOfSliceOnCpuWhenLastRunning=cpu.indexOf(cpuSliceWhenLastRunning);const nextRunningSlice=cpu.slices[indexOfSliceOnCpuWhenLastRunning+1];if(!nextRunningSlice)return undefined;if(Math.abs(nextRunningSlice.start-cpuSliceWhenLastRunning.end)<0.00001){return nextRunningSlice;}
return undefined;}};tr.model.EventRegistry.register(ThreadTimeSlice,{name:'threadTimeSlice',pluralName:'threadTimeSlices'});return{ThreadTimeSlice,SCHEDULING_STATE,};});'use strict';tr.exportTo('tr.model',function(){const CompoundEventSelectionState={NOT_SELECTED:0,EVENT_SELECTED:0x1,SOME_ASSOCIATED_EVENTS_SELECTED:0x2,ALL_ASSOCIATED_EVENTS_SELECTED:0x4,EVENT_AND_SOME_ASSOCIATED_SELECTED:0x1|0x2,EVENT_AND_ALL_ASSOCIATED_SELECTED:0x1|0x4};return{CompoundEventSelectionState,};});'use strict';tr.exportTo('tr.model.um',function(){const CompoundEventSelectionState=tr.model.CompoundEventSelectionState;function UserExpectation(parentModel,initiatorType,start,duration){tr.model.TimedEvent.call(this,start);this.associatedEvents=new tr.model.EventSet();this.duration=duration;this.initiatorType_=initiatorType;this.parentModel=parentModel;this.typeInfo_=undefined;this.sourceEvents=new tr.model.EventSet();}
const INITIATOR_TYPE={KEYBOARD:'Keyboard',MOUSE:'Mouse',MOUSE_WHEEL:'MouseWheel',TAP:'Tap',PINCH:'Pinch',FLING:'Fling',TOUCH:'Touch',SCROLL:'Scroll',CSS:'CSS',WEBGL:'WebGL',VIDEO:'Video'};UserExpectation.prototype={__proto__:tr.model.TimedEvent.prototype,computeCompoundEvenSelectionState(selection){let cess=CompoundEventSelectionState.NOT_SELECTED;if(selection.contains(this)){cess|=CompoundEventSelectionState.EVENT_SELECTED;}
if(this.associatedEvents.intersectionIsEmpty(selection)){return cess;}
const allContained=this.associatedEvents.every(function(event){return selection.contains(event);});if(allContained){cess|=CompoundEventSelectionState.ALL_ASSOCIATED_EVENTS_SELECTED;}else{cess|=CompoundEventSelectionState.SOME_ASSOCIATED_EVENTS_SELECTED;}
return cess;},get associatedSamples(){const samples=new tr.model.EventSet();this.associatedEvents.forEach(function(event){if(event instanceof tr.model.ThreadSlice){samples.addEventSet(event.overlappingSamples);}});return samples;},get userFriendlyName(){return this.title+' User Expectation at '+
tr.b.Unit.byName.timeStampInMs.format(this.start);},get stableId(){return('UserExpectation.'+this.guid);},get typeInfo(){if(!this.typeInfo_){this.typeInfo_=UserExpectation.subTypes.findTypeInfo(this.constructor);}
if(!this.typeInfo_){throw new Error('Unregistered UserExpectation');}
return this.typeInfo_;},get colorId(){return this.typeInfo.metadata.colorId;},get stageTitle(){return this.typeInfo.metadata.stageTitle;},get initiatorType(){return this.initiatorType_;},get title(){if(!this.initiatorType){return this.stageTitle;}
return this.initiatorType+' '+this.stageTitle;},get totalCpuMs(){let cpuMs=0;this.associatedEvents.forEach(function(event){if(event.cpuSelfTime){cpuMs+=event.cpuSelfTime;}});return cpuMs;}};const subTypes={};const options=new tr.b.ExtensionRegistryOptions(tr.b.BASIC_REGISTRY_MODE);tr.b.decorateExtensionRegistry(subTypes,options);subTypes.addEventListener('will-register',function(e){const metadata=e.typeInfo.metadata;if(metadata.stageTitle===undefined){throw new Error('Registered UserExpectations must provide '+'stageTitle');}
if(metadata.colorId===undefined){throw new Error('Registered UserExpectations must provide '+'colorId');}});tr.model.EventRegistry.register(UserExpectation,{name:'userExpectation',pluralName:'userExpectations',subTypes});return{UserExpectation,INITIATOR_TYPE,};});'use strict';tr.exportTo('tr.model.um',function(){function ResponseExpectation(parentModel,initiatorTitle,start,duration,opt_isAnimationBegin){tr.model.um.UserExpectation.call(this,parentModel,initiatorTitle,start,duration);this.isAnimationBegin=opt_isAnimationBegin||false;}
ResponseExpectation.prototype={__proto__:tr.model.um.UserExpectation.prototype,constructor:ResponseExpectation};tr.model.um.UserExpectation.subTypes.register(ResponseExpectation,{stageTitle:'Response',colorId:tr.b.ColorScheme.getColorIdForReservedName('rail_response')});return{ResponseExpectation,};});'use strict';tr.exportTo('tr.e.audits',function(){const SCHEDULING_STATE=tr.model.SCHEDULING_STATE;const Auditor=tr.c.Auditor;const AndroidModelHelper=tr.model.helpers.AndroidModelHelper;const ColorScheme=tr.b.ColorScheme;const Statistics=tr.b.math.Statistics;const FRAME_PERF_CLASS=tr.model.FRAME_PERF_CLASS;const Alert=tr.model.Alert;const EventInfo=tr.model.EventInfo;const Scalar=tr.b.Scalar;const timeDurationInMs=tr.b.Unit.byName.timeDurationInMs;const EXPECTED_FRAME_TIME_MS=16.67;function getStart(e){return e.start;}
function getDuration(e){return e.duration;}
function getCpuDuration(e){return(e.cpuDuration!==undefined)?e.cpuDuration:e.duration;}
function frameIsActivityStart(frame){return frame.associatedEvents.any(x=>x.title==='activityStart');}
function frameMissedDeadline(frame){return frame.args.deadline&&frame.args.deadline<frame.end;}
function DocLinkBuilder(){this.docLinks=[];}
DocLinkBuilder.prototype={addAppVideo(name,videoId){this.docLinks.push({label:'Video Link',textContent:('Android Performance Patterns: '+name),href:'https://www.youtube.com/watch?list=PLWz5rJ2EKKc9CBxr3BVjPTPoDPLdPIFCE&v='+videoId});return this;},addDacRef(name,link){this.docLinks.push({label:'Doc Link',textContent:(name+' documentation'),href:'https://developer.android.com/reference/'+link});return this;},build(){return this.docLinks;}};function AndroidAuditor(model){Auditor.call(this,model);const helper=model.getOrCreateHelper(AndroidModelHelper);if(helper.apps.length||helper.surfaceFlinger){this.helper=helper;}}
AndroidAuditor.viewAlphaAlertInfo_=new EventInfo('Inefficient View alpha usage','Setting an alpha between 0 and 1 has significant performance costs, if one of the fast alpha paths is not used.',new DocLinkBuilder().addAppVideo('Hidden Cost of Transparency','wIy8g8yNhNk').addDacRef('View#setAlpha()','android/view/View.html#setAlpha(float)').build());AndroidAuditor.saveLayerAlertInfo_=new EventInfo('Expensive rendering with Canvas#saveLayer()','Canvas#saveLayer() incurs extremely high rendering cost. They disrupt the rendering pipeline when drawn, forcing a flush of drawing content. Instead use View hardware layers, or static Bitmaps. This enables the offscreen buffers to be reused in between frames, and avoids the disruptive render target switch.',new DocLinkBuilder().addAppVideo('Hidden Cost of Transparency','wIy8g8yNhNk').addDacRef('Canvas#saveLayerAlpha()','android/graphics/Canvas.html#saveLayerAlpha(android.graphics.RectF, int, int)').build());AndroidAuditor.getSaveLayerAlerts_=function(frame){const badAlphaRegEx=/^(.+) alpha caused (unclipped )?saveLayer (\d+)x(\d+)$/;const saveLayerRegEx=/^(unclipped )?saveLayer (\d+)x(\d+)$/;const ret=[];const events=[];frame.associatedEvents.forEach(function(slice){const match=badAlphaRegEx.exec(slice.title);if(match){const args={'view name':match[1],'width':parseInt(match[3]),'height':parseInt(match[4])};ret.push(new Alert(AndroidAuditor.viewAlphaAlertInfo_,slice.start,[slice],args));}else if(saveLayerRegEx.test(slice.title)){events.push(slice);}},this);if(events.length>ret.length){const unclippedSeen=Statistics.sum(events,function(slice){return saveLayerRegEx.exec(slice.title)[1]?1:0;});const clippedSeen=events.length-unclippedSeen;const earliestStart=Statistics.min(events,function(slice){return slice.start;});const args={'Unclipped saveLayer count (especially bad!)':unclippedSeen,'Clipped saveLayer count':clippedSeen};events.push(frame);ret.push(new Alert(AndroidAuditor.saveLayerAlertInfo_,earliestStart,events,args));}
return ret;};AndroidAuditor.pathAlertInfo_=new EventInfo('Path texture churn','Paths are drawn with a mask texture, so when a path is modified / newly drawn, that texture must be generated and uploaded to the GPU. Ensure that you cache paths between frames and do not unnecessarily call Path#reset(). You can cut down on this cost by sharing Path object instances between drawables/views.');AndroidAuditor.getPathAlert_=function(frame){const uploadRegEx=/^Generate Path Texture$/;const events=frame.associatedEvents.filter(function(event){return event.title==='Generate Path Texture';});const start=Statistics.min(events,getStart);const duration=Statistics.sum(events,getDuration);if(duration<3)return undefined;events.push(frame);return new Alert(AndroidAuditor.pathAlertInfo_,start,events,{'Time spent':new Scalar(timeDurationInMs,duration)});};AndroidAuditor.uploadAlertInfo_=new EventInfo('Expensive Bitmap uploads','Bitmaps that have been modified / newly drawn must be uploaded to the GPU. Since this is expensive if the total number of pixels uploaded is large, reduce the amount of Bitmap churn in this animation/context, per frame.');AndroidAuditor.getUploadAlert_=function(frame){const uploadRegEx=/^Upload (\d+)x(\d+) Texture$/;const events=[];let start=Number.POSITIVE_INFINITY;let duration=0;let pixelsUploaded=0;frame.associatedEvents.forEach(function(event){const match=uploadRegEx.exec(event.title);if(match){events.push(event);start=Math.min(start,event.start);duration+=event.duration;pixelsUploaded+=parseInt(match[1])*parseInt(match[2]);}});if(events.length===0||duration<3)return undefined;const mPixels=(pixelsUploaded/1000000).toFixed(2)+' million';const args={'Pixels uploaded':mPixels,'Time spent':new Scalar(timeDurationInMs,duration)};events.push(frame);return new Alert(AndroidAuditor.uploadAlertInfo_,start,events,args);};AndroidAuditor.ListViewInflateAlertInfo_=new EventInfo('Inflation during ListView recycling','ListView item recycling involved inflating views. Ensure your Adapter#getView() recycles the incoming View, instead of constructing a new one.');AndroidAuditor.ListViewBindAlertInfo_=new EventInfo('Inefficient ListView recycling/rebinding','ListView recycling taking too much time per frame. Ensure your Adapter#getView() binds data efficiently.');AndroidAuditor.getListViewAlert_=function(frame){const events=frame.associatedEvents.filter(function(event){return event.title==='obtainView'||event.title==='setupListItem';});const duration=Statistics.sum(events,getCpuDuration);if(events.length===0||duration<3)return undefined;let hasInflation=false;for(const event of events){if(event.findDescendentSlice('inflate')){hasInflation=true;}}
const start=Statistics.min(events,getStart);const args={'Time spent':new Scalar(timeDurationInMs,duration)};args['ListView items '+(hasInflation?'inflated':'rebound')]=events.length/2;const eventInfo=hasInflation?AndroidAuditor.ListViewInflateAlertInfo_:AndroidAuditor.ListViewBindAlertInfo_;events.push(frame);return new Alert(eventInfo,start,events,args);};AndroidAuditor.measureLayoutAlertInfo_=new EventInfo('Expensive measure/layout pass','Measure/Layout took a significant time, contributing to jank. Avoid triggering layout during animations.',new DocLinkBuilder().addAppVideo('Invalidations, Layouts, and Performance','we6poP0kw6E').build());AndroidAuditor.getMeasureLayoutAlert_=function(frame){const events=frame.associatedEvents.filter(function(event){return event.title==='measure'||event.title==='layout';});const duration=Statistics.sum(events,getCpuDuration);if(events.length===0||duration<3)return undefined;const start=Statistics.min(events,getStart);events.push(frame);return new Alert(AndroidAuditor.measureLayoutAlertInfo_,start,events,{'Time spent':new Scalar(timeDurationInMs,duration)});};AndroidAuditor.viewDrawAlertInfo_=new EventInfo('Long View#draw()','Recording the drawing commands of invalidated Views took a long time. Avoid significant work in View or Drawable custom drawing, especially allocations or drawing to Bitmaps.',new DocLinkBuilder().addAppVideo('Invalidations, Layouts, and Performance','we6poP0kw6E').addAppVideo('Avoiding Allocations in onDraw()','HAK5acHQ53E').build());AndroidAuditor.getViewDrawAlert_=function(frame){let slice=undefined;for(const event of frame.associatedEvents){if(event.title==='getDisplayList'||event.title==='Record View#draw()'){slice=event;break;}}
if(!slice||getCpuDuration(slice)<3)return undefined;return new Alert(AndroidAuditor.viewDrawAlertInfo_,slice.start,[slice,frame],{'Time spent':new Scalar(timeDurationInMs,getCpuDuration(slice))});};AndroidAuditor.blockingGcAlertInfo_=new EventInfo('Blocking Garbage Collection','Blocking GCs are caused by object churn, and made worse by having large numbers of objects in the heap. Avoid allocating objects during animations/scrolling, and recycle Bitmaps to avoid triggering garbage collection.',new DocLinkBuilder().addAppVideo('Garbage Collection in Android','pzfzz50W5Uo').addAppVideo('Avoiding Allocations in onDraw()','HAK5acHQ53E').build());AndroidAuditor.getBlockingGcAlert_=function(frame){const events=frame.associatedEvents.filter(function(event){return event.title==='DVM Suspend'||event.title==='GC: Wait For Concurrent';});const blockedDuration=Statistics.sum(events,getDuration);if(blockedDuration<3)return undefined;const start=Statistics.min(events,getStart);events.push(frame);return new Alert(AndroidAuditor.blockingGcAlertInfo_,start,events,{'Blocked duration':new Scalar(timeDurationInMs,blockedDuration)});};AndroidAuditor.lockContentionAlertInfo_=new EventInfo('Lock contention','UI thread lock contention is caused when another thread holds a lock that the UI thread is trying to use. UI thread progress is blocked until the lock is released. Inspect locking done within the UI thread, and ensure critical sections are short.');AndroidAuditor.getLockContentionAlert_=function(frame){const events=frame.associatedEvents.filter(function(event){return/^Lock Contention on /.test(event.title);});const blockedDuration=Statistics.sum(events,getDuration);if(blockedDuration<1)return undefined;const start=Statistics.min(events,getStart);events.push(frame);return new Alert(AndroidAuditor.lockContentionAlertInfo_,start,events,{'Blocked duration':new Scalar(timeDurationInMs,blockedDuration)});};AndroidAuditor.schedulingAlertInfo_=new EventInfo('Scheduling delay','Work to produce this frame was descheduled for several milliseconds, contributing to jank. Ensure that code on the UI thread doesn\'t block on work being done on other threads, and that background threads (doing e.g. network or bitmap loading) are running at android.os.Process#THREAD_PRIORITY_BACKGROUND or lower so they are less likely to interrupt the UI thread. These background threads should show up with a priority number of 130 or higher in the scheduling section under the Kernel process.');AndroidAuditor.getSchedulingAlert_=function(frame){let totalDuration=0;const totalStats={};for(const ttr of frame.threadTimeRanges){const stats=ttr.thread.getSchedulingStatsForRange(ttr.start,ttr.end);for(const[key,value]of Object.entries(stats)){if(!(key in totalStats)){totalStats[key]=0;}
totalStats[key]+=value;totalDuration+=value;}}
if(!(SCHEDULING_STATE.RUNNING in totalStats)||totalDuration===0||totalDuration-totalStats[SCHEDULING_STATE.RUNNING]<3){return;}
const args={};for(const[key,value]of Object.entries(totalStats)){let newKey=key;if(key===SCHEDULING_STATE.RUNNABLE){newKey='Not scheduled, but runnable';}else if(key===SCHEDULING_STATE.UNINTR_SLEEP){newKey='Blocking I/O delay';}
args[newKey]=new Scalar(timeDurationInMs,value);}
return new Alert(AndroidAuditor.schedulingAlertInfo_,frame.start,[frame],args);};AndroidAuditor.prototype={__proto__:Auditor.prototype,renameAndSort_(){this.model.kernel.important=false;this.model.getAllProcesses().forEach(function(process){if(this.helper.surfaceFlinger&&process===this.helper.surfaceFlinger.process){if(!process.name){process.name='SurfaceFlinger';}
process.sortIndex=Number.NEGATIVE_INFINITY;process.important=false;return;}
const uiThread=process.getThread(process.pid);if(!process.name&&uiThread&&uiThread.name){if(/^ndroid\./.test(uiThread.name)){uiThread.name='a'+uiThread.name;}
process.name=uiThread.name;uiThread.name='UI Thread';}
process.sortIndex=0;for(const tid in process.threads){process.sortIndex-=process.threads[tid].sliceGroup.slices.length;}},this);this.model.getAllThreads().forEach(function(thread){if(thread.tid===thread.parent.pid){thread.sortIndex=-3;}
if(thread.name==='RenderThread'){thread.sortIndex=-2;}
if(/^hwuiTask/.test(thread.name)){thread.sortIndex=-1;}});},pushFramesAndJudgeJank_(){let badFramesObserved=0;let framesObserved=0;const surfaceFlinger=this.helper.surfaceFlinger;this.helper.apps.forEach(function(app){app.process.frames=app.getFrames();app.process.frames.forEach(function(frame){if(frame.totalDuration>EXPECTED_FRAME_TIME_MS*2){badFramesObserved+=2;frame.perfClass=FRAME_PERF_CLASS.TERRIBLE;}else if(frame.totalDuration>EXPECTED_FRAME_TIME_MS||frameMissedDeadline(frame)){badFramesObserved++;frame.perfClass=FRAME_PERF_CLASS.BAD;}else{frame.perfClass=FRAME_PERF_CLASS.GOOD;}});framesObserved+=app.process.frames.length;});if(framesObserved){const portionBad=badFramesObserved/framesObserved;if(portionBad>0.3){this.model.faviconHue='red';}else if(portionBad>0.05){this.model.faviconHue='yellow';}else{this.model.faviconHue='green';}}},pushEventInfo_(){const appAnnotator=new AppAnnotator();this.helper.apps.forEach(function(app){if(app.uiThread){appAnnotator.applyEventInfos(app.uiThread.sliceGroup);}
if(app.renderThread){appAnnotator.applyEventInfos(app.renderThread.sliceGroup);}});},runAnnotate(){if(!this.helper)return;this.renameAndSort_();this.pushFramesAndJudgeJank_();this.pushEventInfo_();this.helper.iterateImportantSlices(function(slice){slice.important=true;});},runAudit(){if(!this.helper)return;const alerts=this.model.alerts;this.helper.apps.forEach(function(app){app.getFrames().forEach(function(frame){alerts.push.apply(alerts,AndroidAuditor.getSaveLayerAlerts_(frame));if(frame.perfClass===FRAME_PERF_CLASS.NEUTRAL||frame.perfClass===FRAME_PERF_CLASS.GOOD){return;}
let alert=AndroidAuditor.getPathAlert_(frame);if(alert)alerts.push(alert);alert=AndroidAuditor.getUploadAlert_(frame);if(alert)alerts.push(alert);alert=AndroidAuditor.getListViewAlert_(frame);if(alert)alerts.push(alert);alert=AndroidAuditor.getMeasureLayoutAlert_(frame);if(alert)alerts.push(alert);alert=AndroidAuditor.getViewDrawAlert_(frame);if(alert)alerts.push(alert);alert=AndroidAuditor.getBlockingGcAlert_(frame);if(alert)alerts.push(alert);alert=AndroidAuditor.getLockContentionAlert_(frame);if(alert)alerts.push(alert);alert=AndroidAuditor.getSchedulingAlert_(frame);if(alert)alerts.push(alert);});},this);this.addRenderingInteractionRecords();this.addInputInteractionRecords();},addRenderingInteractionRecords(){const events=[];this.helper.apps.forEach(function(app){events.push.apply(events,app.getAnimationAsyncSlices());events.push.apply(events,app.getFrames());});const mergerFunction=function(events){const ir=new tr.model.um.ResponseExpectation(this.model,'Rendering',events[0].min,events[events.length-1].max-events[0].min);this.model.userModel.expectations.push(ir);}.bind(this);tr.b.math.mergeRanges(tr.b.math.convertEventsToRanges(events),30,mergerFunction);},addInputInteractionRecords(){const inputSamples=[];this.helper.apps.forEach(function(app){inputSamples.push.apply(inputSamples,app.getInputSamples());});const mergerFunction=function(events){const ir=new tr.model.um.ResponseExpectation(this.model,'Input',events[0].min,events[events.length-1].max-events[0].min);this.model.userModel.expectations.push(ir);}.bind(this);const inputRanges=inputSamples.map(function(sample){return tr.b.math.Range.fromExplicitRange(sample.timestamp,sample.timestamp);});tr.b.math.mergeRanges(inputRanges,30,mergerFunction);}};Auditor.register(AndroidAuditor);function AppAnnotator(){this.titleInfoLookup=new Map();this.titleParentLookup=new Map();this.build_();}
AppAnnotator.prototype={build_(){const registerEventInfo=function(dict){this.titleInfoLookup.set(dict.title,new EventInfo(dict.title,dict.description,dict.docLinks));if(dict.parents){this.titleParentLookup.set(dict.title,dict.parents);}}.bind(this);registerEventInfo({title:'inflate',description:'Constructing a View hierarchy from pre-processed XML via LayoutInflater#layout. This includes constructing all of the View objects in the hierarchy, and applying styled attributes.'});registerEventInfo({title:'obtainView',description:'Adapter#getView() called to bind content to a recycled View that is being presented.'});registerEventInfo({title:'setupListItem',description:'Attached a newly-bound, recycled View to its parent ListView.'});registerEventInfo({title:'setupGridItem',description:'Attached a newly-bound, recycled View to its parent GridView.'});const choreographerLinks=new DocLinkBuilder().addDacRef('Choreographer','android/view/Choreographer.html').build();registerEventInfo({title:'Choreographer#doFrame',docLinks:choreographerLinks,description:'Choreographer executes frame callbacks for inputs, animations, and rendering traversals. When this work is done, a frame will be presented to the user.'});registerEventInfo({title:'input',parents:['Choreographer#doFrame'],docLinks:choreographerLinks,description:'Input callbacks are processed. This generally encompasses dispatching input to Views, as well as any work the Views do to process this input/gesture.'});registerEventInfo({title:'animation',parents:['Choreographer#doFrame'],docLinks:choreographerLinks,description:'Animation callbacks are processed. This is generally minimal work, as animations determine progress for the frame, and push new state to animated objects (such as setting View properties).'});registerEventInfo({title:'traversals',parents:['Choreographer#doFrame'],docLinks:choreographerLinks,description:'Primary draw traversals. This is the primary traversal of the View hierarchy, including layout and draw passes.'});const traversalParents=['Choreographer#doFrame','performTraversals'];const layoutLinks=new DocLinkBuilder().addDacRef('View#Layout','android/view/View.html#Layout').build();registerEventInfo({title:'performTraversals',description:'A drawing traversal of the View hierarchy, comprised of all layout and drawing needed to produce the frame.'});registerEventInfo({title:'measure',parents:traversalParents,docLinks:layoutLinks,description:'First of two phases in view hierarchy layout. Views are asked to size themselves according to constraints supplied by their parent. Some ViewGroups may measure a child more than once to help satisfy their own constraints. Nesting ViewGroups that measure children more than once can lead to excessive and repeated work.'});registerEventInfo({title:'layout',parents:traversalParents,docLinks:layoutLinks,description:'Second of two phases in view hierarchy layout, repositioning content and child Views into their new locations.'});const drawString='Draw pass over the View hierarchy. Every invalidated View will have its drawing commands recorded. On Android versions prior to Lollipop, this would also include the issuing of draw commands to the GPU. Starting with Lollipop, it only includes the recording of commands, and syncing that information to the RenderThread.';registerEventInfo({title:'draw',parents:traversalParents,description:drawString});const recordString='Every invalidated View\'s drawing commands are recorded. Each will have View#draw() called, and is passed a Canvas that will record and store its drawing commands until it is next invalidated/rerecorded.';registerEventInfo({title:'getDisplayList',parents:['draw'],description:recordString});registerEventInfo({title:'Record View#draw()',parents:['draw'],description:recordString});registerEventInfo({title:'drawDisplayList',parents:['draw'],description:'Execution of recorded draw commands to generate a frame. This represents the actual formation and issuing of drawing commands to the GPU. On Android L and higher devices, this work is done on a dedicated RenderThread, instead of on the UI Thread.'});registerEventInfo({title:'DrawFrame',description:'RenderThread portion of the standard UI/RenderThread split frame. This represents the actual formation and issuing of drawing commands to the GPU.'});registerEventInfo({title:'doFrame',description:'RenderThread animation frame. Represents drawing work done by the RenderThread on a frame where the UI thread did not produce new drawing content.'});registerEventInfo({title:'syncFrameState',description:'Sync stage between the UI thread and the RenderThread, where the UI thread hands off a frame (including information about modified Views). Time in this method primarily consists of uploading modified Bitmaps to the GPU. After this sync is completed, the UI thread is unblocked, and the RenderThread starts to render the frame.'});registerEventInfo({title:'flush drawing commands',description:'Issuing the now complete drawing commands to the GPU.'});registerEventInfo({title:'eglSwapBuffers',description:'Complete GPU rendering of the frame.'});registerEventInfo({title:'RV Scroll',description:'RecyclerView is calculating a scroll. If there are too many of these in Systrace, some Views inside RecyclerView might be causing it. Try to avoid using EditText, focusable views or handle them with care.'});registerEventInfo({title:'RV OnLayout',description:'OnLayout has been called by the View system. If this shows up too many times in Systrace, make sure the children of RecyclerView do not update themselves directly. This will cause a full re-layout but when it happens via the Adapter notifyItemChanged, RecyclerView can avoid full layout calculation.'});registerEventInfo({title:'RV FullInvalidate',description:'NotifyDataSetChanged or equal has been called. If this is taking a long time, try sending granular notify adapter changes instead of just calling notifyDataSetChanged or setAdapter / swapAdapter. Adding stable ids to your adapter might help.'});registerEventInfo({title:'RV PartialInvalidate',description:'RecyclerView is rebinding a View. If this is taking a lot of time, consider optimizing your layout or make sure you are not doing extra operations in onBindViewHolder call.'});registerEventInfo({title:'RV OnBindView',description:'RecyclerView is rebinding a View. If this is taking a lot of time, consider optimizing your layout or make sure you are not doing extra operations in onBindViewHolder call.'});registerEventInfo({title:'RV CreateView',description:'RecyclerView is creating a new View. If too many of these are present: 1) There might be a problem in Recycling (e.g. custom Animations that set transient state and prevent recycling or ItemAnimator not implementing the contract properly. See Adapter#onFailedToRecycleView(ViewHolder). 2) There may be too many item view types. Try merging them. 3) There might be too many itemChange animations and not enough space in RecyclerPool. Try increasing your pool size and item cache size.'});registerEventInfo({title:'eglSwapBuffers',description:'The CPU has finished producing drawing commands, and is flushing drawing work to the GPU, and posting that buffer to the consumer (which is often SurfaceFlinger window composition). Once this is completed, the GPU can produce the frame content without any involvement from the CPU.'});},applyEventInfosRecursive_(parentNames,slice){const checkExpectedParentNames=function(expectedParentNames){if(!expectedParentNames)return true;return expectedParentNames.some(function(name){return parentNames.has(name);});};if(this.titleInfoLookup.has(slice.title)){if(checkExpectedParentNames(this.titleParentLookup.get(slice.title))){slice.info=this.titleInfoLookup.get(slice.title);}}
if(slice.subSlices.length>0){if(!parentNames.has(slice.title)){parentNames.set(slice.title,0);}
parentNames.set(slice.title,parentNames.get(slice.title)+1);slice.subSlices.forEach(function(subSlice){this.applyEventInfosRecursive_(parentNames,subSlice);},this);parentNames.set(slice.title,parentNames.get(slice.title)-1);if(parentNames.get(slice.title)===0){delete parentNames[slice.title];}}},applyEventInfos(sliceGroup){sliceGroup.topLevelSlices.forEach(function(slice){this.applyEventInfosRecursive_(new Map(),slice);},this);}};return{AndroidAuditor,};});'use strict';tr.exportTo('tr.model',function(){function ObjectSnapshot(objectInstance,ts,args){tr.model.Event.call(this);this.objectInstance=objectInstance;this.ts=ts;this.args=args;}
ObjectSnapshot.prototype={__proto__:tr.model.Event.prototype,preInitialize(){},initialize(){},referencedAt(item,object,field){},addBoundsToRange(range){range.addValue(this.ts);},get userFriendlyName(){return'Snapshot of '+
this.objectInstance.typeName+' '+
this.objectInstance.id+' @ '+
tr.b.Unit.byName.timeStampInMs.format(this.ts);}};tr.model.EventRegistry.register(ObjectSnapshot,{name:'objectSnapshot',pluralName:'objectSnapshots'});return{ObjectSnapshot,};});'use strict';tr.exportTo('tr.model',function(){const ObjectSnapshot=tr.model.ObjectSnapshot;function ObjectInstance(parent,scopedId,category,name,creationTs,opt_baseTypeName){tr.model.Event.call(this);this.parent=parent;this.scopedId=scopedId;this.category=category;this.baseTypeName=opt_baseTypeName?opt_baseTypeName:name;this.name=name;this.creationTs=creationTs;this.creationTsWasExplicit=false;this.deletionTs=Number.MAX_VALUE;this.deletionTsWasExplicit=false;this.colorId=0;this.bounds=new tr.b.math.Range();this.snapshots=[];this.hasImplicitSnapshots=false;}
ObjectInstance.prototype={__proto__:tr.model.Event.prototype,get typeName(){return this.name;},addBoundsToRange(range){range.addRange(this.bounds);},addSnapshot(ts,args,opt_name,opt_baseTypeName){if(ts<this.creationTs){throw new Error('Snapshots must be >= instance.creationTs');}
if(ts>=this.deletionTs){throw new Error('Snapshots cannot be added after '+'an objects deletion timestamp.');}
let lastSnapshot;if(this.snapshots.length>0){lastSnapshot=this.snapshots[this.snapshots.length-1];if(lastSnapshot.ts===ts){throw new Error('Snapshots already exists at this time!');}
if(ts<lastSnapshot.ts){throw new Error('Snapshots must be added in increasing timestamp order');}}
if(opt_name&&(this.name!==opt_name)){if(!opt_baseTypeName){throw new Error('Must provide base type name for name update');}
if(this.baseTypeName!==opt_baseTypeName){throw new Error('Cannot update type name: base types dont match');}
this.name=opt_name;}
const snapshotConstructor=tr.model.ObjectSnapshot.subTypes.getConstructor(this.category,this.name);const snapshot=new snapshotConstructor(this,ts,args);this.snapshots.push(snapshot);return snapshot;},wasDeleted(ts){let lastSnapshot;if(this.snapshots.length>0){lastSnapshot=this.snapshots[this.snapshots.length-1];if(lastSnapshot.ts>ts){throw new Error('Instance cannot be deleted at ts='+
ts+'. A snapshot exists that is older.');}}
this.deletionTs=ts;this.deletionTsWasExplicit=true;},preInitialize(){for(let i=0;i<this.snapshots.length;i++){this.snapshots[i].preInitialize();}},initialize(){for(let i=0;i<this.snapshots.length;i++){this.snapshots[i].initialize();}},isAliveAt(ts){if(ts<this.creationTs&&this.creationTsWasExplicit){return false;}
if(ts>this.deletionTs){return false;}
return true;},getSnapshotAt(ts){if(ts<this.creationTs){if(this.creationTsWasExplicit){throw new Error('ts must be within lifetime of this instance');}
return this.snapshots[0];}
if(ts>this.deletionTs){throw new Error('ts must be within lifetime of this instance');}
const snapshots=this.snapshots;const i=tr.b.math.findIndexInSortedIntervals(snapshots,function(snapshot){return snapshot.ts;},function(snapshot,i){if(i===snapshots.length-1){return snapshots[i].objectInstance.deletionTs;}
return snapshots[i+1].ts-snapshots[i].ts;},ts);if(i<0){return this.snapshots[0];}
if(i>=this.snapshots.length){return this.snapshots[this.snapshots.length-1];}
return this.snapshots[i];},updateBounds(){this.bounds.reset();this.bounds.addValue(this.creationTs);if(this.deletionTs!==Number.MAX_VALUE){this.bounds.addValue(this.deletionTs);}else if(this.snapshots.length>0){this.bounds.addValue(this.snapshots[this.snapshots.length-1].ts);}},shiftTimestampsForward(amount){this.creationTs+=amount;if(this.deletionTs!==Number.MAX_VALUE){this.deletionTs+=amount;}
this.snapshots.forEach(function(snapshot){snapshot.ts+=amount;});},get userFriendlyName(){return this.typeName+' object '+this.scopedId;}};tr.model.EventRegistry.register(ObjectInstance,{name:'objectInstance',pluralName:'objectInstances'});return{ObjectInstance,};});'use strict';tr.exportTo('tr.e.chrome',function(){const ObjectSnapshot=tr.model.ObjectSnapshot;const ObjectInstance=tr.model.ObjectInstance;function BlameContextSnapshot(){ObjectSnapshot.apply(this,arguments);}
BlameContextSnapshot.prototype={__proto__:ObjectSnapshot.prototype,get parentContext(){if(this.args.parent instanceof BlameContextSnapshot){return this.args.parent;}
return undefined;},get userFriendlyName(){return'BlameContext';}};function BlameContextInstance(){ObjectInstance.apply(this,arguments);}
BlameContextInstance.prototype={__proto__:ObjectInstance.prototype,get blameContextType(){throw new Error('Not implemented');}};return{BlameContextSnapshot,BlameContextInstance,};});'use strict';tr.exportTo('tr.e.chrome',function(){const BlameContextSnapshot=tr.e.chrome.BlameContextSnapshot;const BlameContextInstance=tr.e.chrome.BlameContextInstance;function FrameTreeNodeSnapshot(){BlameContextSnapshot.apply(this,arguments);}
FrameTreeNodeSnapshot.prototype={__proto__:BlameContextSnapshot.prototype,get renderFrame(){if(this.args.renderFrame instanceof tr.e.chrome.RenderFrameSnapshot){return this.args.renderFrame;}
return undefined;},get url(){return this.args.url;},get userFriendlyName(){return'FrameTreeNode';}};tr.model.ObjectSnapshot.subTypes.register(FrameTreeNodeSnapshot,{typeName:'FrameTreeNode'});function FrameTreeNodeInstance(){BlameContextInstance.apply(this,arguments);}
FrameTreeNodeInstance.prototype={__proto__:BlameContextInstance.prototype,get blameContextType(){return'Frame';}};tr.model.ObjectInstance.subTypes.register(FrameTreeNodeInstance,{typeName:'FrameTreeNode'});return{FrameTreeNodeSnapshot,FrameTreeNodeInstance,};});'use strict';tr.exportTo('tr.e.chrome',function(){const BlameContextSnapshot=tr.e.chrome.BlameContextSnapshot;const BlameContextInstance=tr.e.chrome.BlameContextInstance;function RenderFrameSnapshot(){BlameContextSnapshot.apply(this,arguments);}
RenderFrameSnapshot.prototype={__proto__:BlameContextSnapshot.prototype,referencedAt(item,object,field){if(item instanceof tr.e.chrome.FrameTreeNodeSnapshot&&object===item.args&&field==='renderFrame'){this.args.frameTreeNode=item;}},get frameTreeNode(){if(this.args.frameTreeNode instanceof
tr.e.chrome.FrameTreeNodeSnapshot){return this.args.frameTreeNode;}
return undefined;},get url(){if(this.frameTreeNode){return this.frameTreeNode.url;}
return undefined;},get userFriendlyName(){return'RenderFrame';}};tr.model.ObjectSnapshot.subTypes.register(RenderFrameSnapshot,{typeName:'RenderFrame'});function RenderFrameInstance(){BlameContextInstance.apply(this,arguments);}
RenderFrameInstance.prototype={__proto__:BlameContextInstance.prototype,get blameContextType(){return'Frame';}};tr.model.ObjectInstance.subTypes.register(RenderFrameInstance,{typeName:'RenderFrame'});return{RenderFrameSnapshot,RenderFrameInstance,};});'use strict';tr.exportTo('tr.e.chrome',function(){const BlameContextSnapshot=tr.e.chrome.BlameContextSnapshot;const BlameContextInstance=tr.e.chrome.BlameContextInstance;function TopLevelSnapshot(){BlameContextSnapshot.apply(this,arguments);}
TopLevelSnapshot.prototype={__proto__:BlameContextSnapshot.prototype,get userFriendlyName(){return'TopLevel';}};tr.model.ObjectSnapshot.subTypes.register(TopLevelSnapshot,{typeName:'TopLevel'});function TopLevelInstance(){BlameContextInstance.apply(this,arguments);}
TopLevelInstance.prototype={__proto__:BlameContextInstance.prototype,get blameContextType(){return'TopLevel';}};tr.model.ObjectInstance.subTypes.register(TopLevelInstance,{typeName:'TopLevel'});return{TopLevelSnapshot,TopLevelInstance,};});'use strict';tr.exportTo('tr.model',function(){function AsyncSlice(category,title,colorId,start,args,duration,opt_isTopLevel,opt_cpuStart,opt_cpuDuration,opt_argsStripped){tr.model.TimedEvent.call(this,start);this.category=category||'';this.originalTitle=title;this.title=title;this.colorId=colorId;this.args=args;this.startStackFrame=undefined;this.endStackFrame=undefined;this.didNotFinish=false;this.important=false;this.subSlices=[];this.parentContainer_=undefined;this.id=undefined;this.startThread=undefined;this.endThread=undefined;this.cpuStart=undefined;this.cpuDuration=undefined;this.argsStripped=false;this.startStackFrame=undefined;this.endStackFrame=undefined;this.duration=duration;this.isTopLevel=(opt_isTopLevel===true);if(opt_cpuStart!==undefined){this.cpuStart=opt_cpuStart;}
if(opt_cpuDuration!==undefined){this.cpuDuration=opt_cpuDuration;}
if(opt_argsStripped!==undefined){this.argsStripped=opt_argsStripped;}}
AsyncSlice.prototype={__proto__:tr.model.TimedEvent.prototype,get analysisTypeName(){return this.title;},get parentContainer(){return this.parentContainer_;},set parentContainer(parentContainer){this.parentContainer_=parentContainer;for(let i=0;i<this.subSlices.length;i++){const subSlice=this.subSlices[i];if(subSlice.parentContainer===undefined){subSlice.parentContainer=parentContainer;}}},get viewSubGroupTitle(){return this.title;},get userFriendlyName(){return'Async slice '+this.title+' at '+
tr.b.Unit.byName.timeStampInMs.format(this.start);},get stableId(){const parentAsyncSliceGroup=this.parentContainer.asyncSliceGroup;return parentAsyncSliceGroup.stableId+'.'+
parentAsyncSliceGroup.slices.indexOf(this);},*findTopmostSlicesRelativeToThisSlice(eventPredicate,opt_this){if(eventPredicate(this)){yield this;return;}
for(const s of this.subSlices){yield*s.findTopmostSlicesRelativeToThisSlice(eventPredicate);}},findDescendentSlice(targetTitle){if(!this.subSlices)return undefined;for(let i=0;i<this.subSlices.length;i++){if(this.subSlices[i].title===targetTitle){return this.subSlices[i];}
const slice=this.subSlices[i].findDescendentSlice(targetTitle);if(slice)return slice;}
return undefined;},*enumerateAllDescendents(){for(const slice of this.subSlices){yield slice;}
for(const slice of this.subSlices){yield*slice.enumerateAllDescendents();}},compareTo(that){return this.title.localeCompare(that.title);}};tr.model.EventRegistry.register(AsyncSlice,{name:'asyncSlice',pluralName:'asyncSlices'});return{AsyncSlice,};});'use strict';tr.exportTo('tr.model.helpers',function(){const MAIN_FRAMETIME_TYPE='main_frametime_type';const IMPL_FRAMETIME_TYPE='impl_frametime_type';const MAIN_RENDERING_STATS='BenchmarkInstrumentation::MainThreadRenderingStats';const IMPL_RENDERING_STATS='BenchmarkInstrumentation::ImplThreadRenderingStats';function getSlicesIntersectingRange(rangeOfInterest,slices){const slicesInFilterRange=[];for(let i=0;i<slices.length;i++){const slice=slices[i];if(rangeOfInterest.intersectsExplicitRangeInclusive(slice.start,slice.end)){slicesInFilterRange.push(slice);}}
return slicesInFilterRange;}
function ChromeProcessHelper(modelHelper,process){this.modelHelper=modelHelper;this.process=process;this.telemetryInternalRanges_=undefined;}
ChromeProcessHelper.prototype={get pid(){return this.process.pid;},isTelemetryInternalEvent(slice){if(this.telemetryInternalRanges_===undefined){this.findTelemetryInternalRanges_();}
for(const range of this.telemetryInternalRanges_){if(range.containsExplicitRangeInclusive(slice.start,slice.end)){return true;}}
return false;},findTelemetryInternalRanges_(){this.telemetryInternalRanges_=[];let start=0;for(const thread of Object.values(this.process.threads)){for(const slice of thread.asyncSliceGroup.getDescendantEvents()){if(/^telemetry\.internal\.[^.]*\.start$/.test(slice.title)){start=slice.start;}else if(/^telemetry\.internal\.[^.]*\.end$/.test(slice.title)&&start!==undefined){this.telemetryInternalRanges_.push(tr.b.math.Range.fromExplicitRange(start,slice.end));start=undefined;}}}},getFrameEventsInRange(frametimeType,range){const titleToGet=(frametimeType===MAIN_FRAMETIME_TYPE?MAIN_RENDERING_STATS:IMPL_RENDERING_STATS);const frameEvents=[];for(const event of this.process.getDescendantEvents()){if(event.title===titleToGet){if(range.intersectsExplicitRangeInclusive(event.start,event.end)){frameEvents.push(event);}}}
frameEvents.sort(function(a,b){return a.start-b.start;});return frameEvents;}};function getFrametimeDataFromEvents(frameEvents){const frametimeData=[];for(let i=1;i<frameEvents.length;i++){const diff=frameEvents[i].start-frameEvents[i-1].start;frametimeData.push({'x':frameEvents[i].start,'frametime':diff});}
return frametimeData;}
return{ChromeProcessHelper,MAIN_FRAMETIME_TYPE,IMPL_FRAMETIME_TYPE,MAIN_RENDERING_STATS,IMPL_RENDERING_STATS,getSlicesIntersectingRange,getFrametimeDataFromEvents,};});'use strict';tr.exportTo('tr.model.helpers',function(){function ChromeBrowserHelper(modelHelper,process){tr.model.helpers.ChromeProcessHelper.call(this,modelHelper,process);this.mainThread_=process.findAtMostOneThreadNamed('CrBrowserMain');if(!process.name){process.name=ChromeBrowserHelper.PROCESS_NAME;}}
ChromeBrowserHelper.PROCESS_NAME='Browser';ChromeBrowserHelper.isBrowserProcess=function(process){return!!process.findAtMostOneThreadNamed('CrBrowserMain');};ChromeBrowserHelper.prototype={__proto__:tr.model.helpers.ChromeProcessHelper.prototype,get browserName(){const hasInProcessRendererThread=this.process.findAllThreadsNamed('Chrome_InProcRendererThread').length>0;return hasInProcessRendererThread?'webview':'chrome';},get mainThread(){return this.mainThread_;},get rendererHelpers(){return this.modelHelper.rendererHelpers;},getLoadingEventsInRange(rangeOfInterest){return this.getAllAsyncSlicesMatching(function(slice){return slice.title.indexOf('WebContentsImpl Loading')===0&&rangeOfInterest.intersectsExplicitRangeInclusive(slice.start,slice.end);});},getCommitProvisionalLoadEventsInRange(rangeOfInterest){return this.getAllAsyncSlicesMatching(function(slice){return slice.title==='RenderFrameImpl::didCommitProvisionalLoad'&&rangeOfInterest.intersectsExplicitRangeInclusive(slice.start,slice.end);});},get hasLatencyEvents(){let hasLatency=false;for(const thread of this.modelHelper.model.getAllThreads()){for(const event of thread.getDescendantEvents()){if(!event.isTopLevel)continue;if(!(event instanceof tr.e.cc.InputLatencyAsyncSlice)){continue;}
hasLatency=true;}}
return hasLatency;},getLatencyEventsInRange(rangeOfInterest){return this.getAllAsyncSlicesMatching(function(slice){return(slice.title.indexOf('InputLatency')===0)&&rangeOfInterest.intersectsExplicitRangeInclusive(slice.start,slice.end);});},getAllAsyncSlicesMatching(pred,opt_this){const events=[];this.iterAllThreads(function(thread){for(const slice of thread.getDescendantEvents()){if(pred.call(opt_this,slice)){events.push(slice);}}});return events;},iterAllThreads(func,opt_this){for(const thread of Object.values(this.process.threads)){func.call(opt_this,thread);}
for(const rendererHelper of Object.values(this.rendererHelpers)){const rendererProcess=rendererHelper.process;for(const thread of Object.values(rendererProcess.threads)){func.call(opt_this,thread);}}}};return{ChromeBrowserHelper,};});'use strict';tr.exportTo('tr.model.helpers',function(){function ChromeGpuHelper(modelHelper,process){tr.model.helpers.ChromeProcessHelper.call(this,modelHelper,process);if(!process.name){process.name=ChromeGpuHelper.PROCESS_NAME;}}
ChromeGpuHelper.PROCESS_NAME='GPU Process';ChromeGpuHelper.isGpuProcess=function(process){if(process.findAtMostOneThreadNamed('CrBrowserMain')||process.findAtMostOneThreadNamed('CrRendererMain')){return false;}
return process.findAllThreadsNamed('CrGpuMain').length>0;};ChromeGpuHelper.prototype={__proto__:tr.model.helpers.ChromeProcessHelper.prototype};return{ChromeGpuHelper,};});'use strict';tr.exportTo('tr.b',function(){function SinebowColorGenerator(opt_a,opt_brightness){this.a_=(opt_a===undefined)?1:opt_a;this.brightness_=(opt_brightness===undefined)?1:opt_brightness;this.colorIndex_=0;this.keyToColor={};}
SinebowColorGenerator.prototype={colorForKey(key){if(!this.keyToColor[key]){this.keyToColor[key]=this.nextColor();}
return this.keyToColor[key];},nextColor(){const components=SinebowColorGenerator.nthColor(this.colorIndex_++);return tr.b.Color.fromString(SinebowColorGenerator.calculateColor(components[0],components[1],components[2],this.a_,this.brightness_));}};SinebowColorGenerator.PHI=(1+Math.sqrt(5))/2;SinebowColorGenerator.sinebow_=function(h){h+=0.5;h=-h;let r=Math.sin(Math.PI*h);let g=Math.sin(Math.PI*(h+1/3));let b=Math.sin(Math.PI*(h+2/3));r*=r;g*=g;b*=b;const y=2*(0.2989*r+0.5870*g+0.1140*b);r/=y;g/=y;b/=y;return[256*r,256*g,256*b];};SinebowColorGenerator.nthColor=function(n){return SinebowColorGenerator.sinebow_(n*this.PHI);};SinebowColorGenerator.calculateColor=function(r,g,b,a,brightness){if(brightness<=1){r*=brightness;g*=brightness;b*=brightness;}else{r=tr.b.math.lerp(tr.b.math.normalize(brightness,1,2),r,255);g=tr.b.math.lerp(tr.b.math.normalize(brightness,1,2),g,255);b=tr.b.math.lerp(tr.b.math.normalize(brightness,1,2),b,255);}
r=Math.round(r);g=Math.round(g);b=Math.round(b);return'rgba('+r+','+g+','+b+', '+a+')';};return{SinebowColorGenerator,};});'use strict';tr.exportTo('tr.e.chrome',function(){const SAME_AS_PARENT='same-as-parent';const TITLES_FOR_USER_FRIENDLY_CATEGORY={composite:['CompositingInputsUpdater::update','ThreadProxy::SetNeedsUpdateLayers','LayerTreeHost::UpdateLayers::CalcDrawProps','UpdateLayerTree'],gc:['minorGC','majorGC','MajorGC','MinorGC','V8.GCScavenger','V8.GCIncrementalMarking','V8.GCIdleNotification','V8.GCContext','V8.GCCompactor','V8GCController::traceDOMWrappers'],iframe_creation:['WebLocalFrameImpl::createChildframe'],imageDecode:['Decode Image','ImageFrameGenerator::decode','ImageFrameGenerator::decodeAndScale'],input:['HitTest','ScrollableArea::scrollPositionChanged','EventHandler::handleMouseMoveEvent'],layout:['FrameView::invalidateTree','FrameView::layout','FrameView::performLayout','FrameView::performPostLayoutTasks','FrameView::performPreLayoutTasks','Layer::updateLayerPositionsAfterLayout','Layout','LayoutView::hitTest','ResourceLoadPriorityOptimizer::updateAllImageResourcePriorities','WebViewImpl::layout'],parseHTML:['ParseHTML','HTMLDocumentParser::didReceiveParsedChunkFromBackgroundParser','HTMLDocumentParser::processParsedChunkFromBackgroundParser','HTMLDocumentParser::processTokenizedChunkFromBackgroundParser',],raster:['DisplayListRasterSource::PerformSolidColorAnalysis','Picture::Raster','RasterBufferImpl::Playback','RasterTask','RasterizerTaskImpl::RunOnWorkerThread','SkCanvas::drawImageRect()','SkCanvas::drawPicture()','SkCanvas::drawTextBlob()','TileTaskWorkerPool::PlaybackToMemory'],record:['ContentLayerDelegate::paintContents','DeprecatedPaintLayerCompositor::updateIfNeededRecursive','DeprecatedPaintLayerCompositor::updateLayerPositionsAfterLayout','Paint','Picture::Record','PictureLayer::Update','RenderLayer::updateLayerPositionsAfterLayout'],style:['CSSParserImpl::parseStyleSheet.parse','CSSParserImpl::parseStyleSheet.tokenize','Document::updateStyle','Document::updateStyleInvalidationIfNeeded','ParseAuthorStyleSheet','RuleSet::addRulesFromSheet','StyleElement::processStyleSheet','StyleEngine::createResolver','StyleSheetContents::parseAuthorStyleSheet','UpdateLayoutTree'],script_parse_and_compile:['v8.parseOnBackground','V8.ScriptCompiler'],script_execute:['V8.Execute','WindowProxy::initialize'],resource_loading:['ResourceFetcher::requestResource','ResourceDispatcher::OnReceivedData','ResourceDispatcher::OnRequestComplete','ResourceDispatcher::OnReceivedResponse','Resource::appendData'],renderer_misc:['DecodeFont','ThreadState::completeSweep'],v8_runtime:[],[SAME_AS_PARENT]:['SyncChannel::Send']};const COLOR_FOR_USER_FRIENDLY_CATEGORY=new tr.b.SinebowColorGenerator();const USER_FRIENDLY_CATEGORY_FOR_TITLE=new Map();for(const category in TITLES_FOR_USER_FRIENDLY_CATEGORY){TITLES_FOR_USER_FRIENDLY_CATEGORY[category].forEach(function(title){USER_FRIENDLY_CATEGORY_FOR_TITLE.set(title,category);});}
const USER_FRIENDLY_CATEGORY_FOR_EVENT_CATEGORY={netlog:'net',overhead:'overhead',startup:'startup',gpu:'gpu'};function ChromeUserFriendlyCategoryDriver(){}
ChromeUserFriendlyCategoryDriver.fromEvent=function(event){let userFriendlyCategory=USER_FRIENDLY_CATEGORY_FOR_TITLE.get(event.title);if(userFriendlyCategory){if(userFriendlyCategory===SAME_AS_PARENT){if(event.parentSlice){return ChromeUserFriendlyCategoryDriver.fromEvent(event.parentSlice);}}else{return userFriendlyCategory;}}
const eventCategoryParts=tr.b.getCategoryParts(event.category);for(let i=0;i<eventCategoryParts.length;++i){const eventCategory=eventCategoryParts[i];userFriendlyCategory=USER_FRIENDLY_CATEGORY_FOR_EVENT_CATEGORY[eventCategory];if(userFriendlyCategory){return userFriendlyCategory;}}
return'other';};ChromeUserFriendlyCategoryDriver.getColor=function(ufc){return COLOR_FOR_USER_FRIENDLY_CATEGORY.colorForKey(ufc);};ChromeUserFriendlyCategoryDriver.ALL_TITLES=['other'];for(const category in TITLES_FOR_USER_FRIENDLY_CATEGORY){if(category===SAME_AS_PARENT)continue;ChromeUserFriendlyCategoryDriver.ALL_TITLES.push(category);}
for(const category of Object.values(USER_FRIENDLY_CATEGORY_FOR_EVENT_CATEGORY)){ChromeUserFriendlyCategoryDriver.ALL_TITLES.push(category);}
ChromeUserFriendlyCategoryDriver.ALL_TITLES.sort();for(const category of ChromeUserFriendlyCategoryDriver.ALL_TITLES){ChromeUserFriendlyCategoryDriver.getColor(category);}
return{ChromeUserFriendlyCategoryDriver,};});'use strict';tr.exportTo('tr.model.helpers',function(){const NET_CATEGORIES=new Set(['net','netlog','disabled-by-default-netlog','disabled-by-default-network']);class ChromeThreadHelper{constructor(thread){this.thread=thread;}
getNetworkEvents(){const networkEvents=[];for(const slice of this.thread.asyncSliceGroup.slices){const categories=tr.b.getCategoryParts(slice.category);const isNetEvent=category=>NET_CATEGORIES.has(category);if(categories.filter(isNetEvent).length===0)continue;networkEvents.push(slice);}
return networkEvents;}}
return{ChromeThreadHelper,};});'use strict';tr.exportTo('tr.model.helpers',function(){const ChromeThreadHelper=tr.model.helpers.ChromeThreadHelper;function ChromeRendererHelper(modelHelper,process){tr.model.helpers.ChromeProcessHelper.call(this,modelHelper,process);this.mainThread_=process.findAtMostOneThreadNamed('CrRendererMain')||process.findAtMostOneThreadNamed('Chrome_InProcRendererThread');this.compositorThread_=process.findAtMostOneThreadNamed('Compositor');this.rasterWorkerThreads_=process.findAllThreadsMatching(function(t){if(t.name===undefined)return false;if(t.name.indexOf('CompositorTileWorker')===0)return true;if(t.name.indexOf('CompositorRasterWorker')===0)return true;return false;});if(!process.name){process.name=ChromeRendererHelper.PROCESS_NAME;}}
ChromeRendererHelper.PROCESS_NAME='Renderer';ChromeRendererHelper.isRenderProcess=function(process){if(process.findAtMostOneThreadNamed('CrRendererMain'))return true;if(process.findAtMostOneThreadNamed('Compositor'))return true;return false;};ChromeRendererHelper.isTracingProcess=function(process){return process.labels!==undefined&&process.labels.length===1&&process.labels[0]==='chrome://tracing';};ChromeRendererHelper.prototype={__proto__:tr.model.helpers.ChromeProcessHelper.prototype,get mainThread(){return this.mainThread_;},get compositorThread(){return this.compositorThread_;},get rasterWorkerThreads(){return this.rasterWorkerThreads_;},get isChromeTracingUI(){return ChromeRendererHelper.isTracingProcess(this.process);},};return{ChromeRendererHelper,};});'use strict';tr.exportTo('tr.model.helpers',function(){function findChromeBrowserProcesses(model){return model.getAllProcesses(tr.model.helpers.ChromeBrowserHelper.isBrowserProcess);}
function findChromeRenderProcesses(model){return model.getAllProcesses(tr.model.helpers.ChromeRendererHelper.isRenderProcess);}
function findChromeGpuProcess(model){const gpuProcesses=model.getAllProcesses(tr.model.helpers.ChromeGpuHelper.isGpuProcess);if(gpuProcesses.length!==1)return undefined;return gpuProcesses[0];}
function ChromeModelHelper(model){this.model_=model;const browserProcesses=findChromeBrowserProcesses(model);this.browserHelpers_=browserProcesses.map(p=>new tr.model.helpers.ChromeBrowserHelper(this,p));const gpuProcess=findChromeGpuProcess(model);if(gpuProcess){this.gpuHelper_=new tr.model.helpers.ChromeGpuHelper(this,gpuProcess);}else{this.gpuHelper_=undefined;}
const rendererProcesses_=findChromeRenderProcesses(model);this.rendererHelpers_={};rendererProcesses_.forEach(function(renderProcess){const rendererHelper=new tr.model.helpers.ChromeRendererHelper(this,renderProcess);this.rendererHelpers_[rendererHelper.pid]=rendererHelper;},this);this.chromeBounds_=undefined;}
ChromeModelHelper.guid=tr.b.GUID.allocateSimple();ChromeModelHelper.supportsModel=function(model){if(findChromeBrowserProcesses(model).length)return true;if(findChromeRenderProcesses(model).length)return true;return false;};ChromeModelHelper.prototype={get pid(){throw new Error('woah');},get process(){throw new Error('woah');},get model(){return this.model_;},get browserProcess(){if(this.browserHelper===undefined)return undefined;return this.browserHelper.process;},get browserHelper(){return this.browserHelpers_[0];},get browserHelpers(){return this.browserHelpers_;},get gpuHelper(){return this.gpuHelper_;},get rendererHelpers(){return this.rendererHelpers_;},get rendererWithLargestPid(){let largestPid=-1;for(const pid in this.rendererHelpers){const rendererHelper=this.rendererHelpers[pid];if(rendererHelper.isChromeTracingUI)continue;if(pid>largestPid)largestPid=pid;}
if(largestPid===-1)return undefined;return this.rendererHelpers[largestPid];},get chromeBounds(){if(!this.chromeBounds_){this.chromeBounds_=new tr.b.math.Range();for(const browserHelper of
Object.values(this.browserHelpers)){this.chromeBounds_.addRange(browserHelper.process.bounds);}}
if(this.chromeBounds_.isEmpty){return undefined;}
return this.chromeBounds_;}};return{ChromeModelHelper,};});'use strict';tr.exportTo('tr.e.cc',function(){const AsyncSlice=tr.model.AsyncSlice;const EventSet=tr.model.EventSet;const UI_COMP_NAME='INPUT_EVENT_LATENCY_UI_COMPONENT';const ORIGINAL_COMP_NAME='INPUT_EVENT_LATENCY_ORIGINAL_COMPONENT';const BEGIN_COMP_NAME='INPUT_EVENT_LATENCY_BEGIN_RWH_COMPONENT';const END_COMP_NAME='INPUT_EVENT_LATENCY_TERMINATED_FRAME_SWAP_COMPONENT';const MAIN_RENDERER_THREAD_NAME='CrRendererMain';const COMPOSITOR_THREAD_NAME='Compositor';const POSTTASK_FLOW_EVENT='disabled-by-default-toplevel.flow';const IPC_FLOW_EVENT='disabled-by-default-ipc.flow';const INPUT_EVENT_TYPE_NAMES={CHAR:'Char',CLICK:'GestureClick',CONTEXT_MENU:'ContextMenu',FLING_CANCEL:'GestureFlingCancel',FLING_START:'GestureFlingStart',KEY_DOWN:'KeyDown',KEY_DOWN_RAW:'RawKeyDown',KEY_UP:'KeyUp',LATENCY_SCROLL_UPDATE:'ScrollUpdate',MOUSE_DOWN:'MouseDown',MOUSE_ENTER:'MouseEnter',MOUSE_LEAVE:'MouseLeave',MOUSE_MOVE:'MouseMove',MOUSE_UP:'MouseUp',MOUSE_WHEEL:'MouseWheel',PINCH_BEGIN:'GesturePinchBegin',PINCH_END:'GesturePinchEnd',PINCH_UPDATE:'GesturePinchUpdate',SCROLL_BEGIN:'GestureScrollBegin',SCROLL_END:'GestureScrollEnd',SCROLL_UPDATE:'GestureScrollUpdate',SCROLL_UPDATE_RENDERER:'ScrollUpdate',SHOW_PRESS:'GestureShowPress',TAP:'GestureTap',TAP_CANCEL:'GestureTapCancel',TAP_DOWN:'GestureTapDown',TOUCH_CANCEL:'TouchCancel',TOUCH_END:'TouchEnd',TOUCH_MOVE:'TouchMove',TOUCH_START:'TouchStart',UNKNOWN:'UNKNOWN'};function InputLatencyAsyncSlice(){AsyncSlice.apply(this,arguments);this.associatedEvents_=new EventSet();this.typeName_=undefined;if(!this.isLegacyEvent){this.determineModernTypeName_();}}
InputLatencyAsyncSlice.prototype={__proto__:AsyncSlice.prototype,get isLegacyEvent(){return this.title==='InputLatency';},get typeName(){if(!this.typeName_){this.determineLegacyTypeName_();}
return this.typeName_;},checkTypeName_(){if(!this.typeName_){throw new Error('Unable to determine typeName');}
let found=false;for(const typeName in INPUT_EVENT_TYPE_NAMES){if(this.typeName===INPUT_EVENT_TYPE_NAMES[typeName]){found=true;break;}}
if(!found){this.typeName_=INPUT_EVENT_TYPE_NAMES.UNKNOWN;}},determineModernTypeName_(){const lastColonIndex=this.title.lastIndexOf(':');if(lastColonIndex<0)return;const characterAfterLastColonIndex=lastColonIndex+1;this.typeName_=this.title.slice(characterAfterLastColonIndex);this.checkTypeName_();},determineLegacyTypeName_(){for(const subSlice of this.enumerateAllDescendents()){const subSliceIsAInputLatencyAsyncSlice=(subSlice instanceof InputLatencyAsyncSlice);if(!subSliceIsAInputLatencyAsyncSlice)continue;if(!subSlice.typeName)continue;if(this.typeName_&&subSlice.typeName_){const subSliceHasDifferentTypeName=(this.typeName_!==subSlice.typeName_);if(subSliceHasDifferentTypeName){throw new Error('InputLatencyAsyncSlice.determineLegacyTypeName_() '+' found multiple typeNames');}}
this.typeName_=subSlice.typeName_;}
if(!this.typeName_){throw new Error('InputLatencyAsyncSlice.determineLegacyTypeName_() failed');}
this.checkTypeName_();},getRendererHelper(sourceSlices){const traceModel=this.startThread.parent.model;const modelHelper=traceModel.getOrCreateHelper(tr.model.helpers.ChromeModelHelper);if(!modelHelper)return undefined;let mainThread=undefined;let compositorThread=undefined;for(const i in sourceSlices){if(sourceSlices[i].parentContainer.name===MAIN_RENDERER_THREAD_NAME){mainThread=sourceSlices[i].parentContainer;}else if(sourceSlices[i].parentContainer.name===COMPOSITOR_THREAD_NAME){compositorThread=sourceSlices[i].parentContainer;}
if(mainThread&&compositorThread)break;}
const rendererHelpers=modelHelper.rendererHelpers;const pids=Object.keys(rendererHelpers);for(let i=0;i<pids.length;i++){const pid=pids[i];const rendererHelper=rendererHelpers[pid];if(rendererHelper.mainThread===mainThread||rendererHelper.compositorThread===compositorThread){return rendererHelper;}}
return undefined;},addEntireSliceHierarchy(slice){this.associatedEvents_.push(slice);slice.iterateAllSubsequentSlices(function(subsequentSlice){this.associatedEvents_.push(subsequentSlice);},this);},addDirectlyAssociatedEvents(flowEvents){const slices=[];flowEvents.forEach(function(flowEvent){this.associatedEvents_.push(flowEvent);const newSource=flowEvent.startSlice.mostTopLevelSlice;if(slices.indexOf(newSource)===-1){slices.push(newSource);}},this);const lastFlowEvent=flowEvents[flowEvents.length-1];const lastSource=lastFlowEvent.endSlice.mostTopLevelSlice;if(slices.indexOf(lastSource)===-1){slices.push(lastSource);}
return slices;},addScrollUpdateEvents(rendererHelper){if(!rendererHelper||!rendererHelper.compositorThread){return;}
const compositorThread=rendererHelper.compositorThread;const gestureScrollUpdateStart=this.start;const gestureScrollUpdateEnd=this.end;const allCompositorAsyncSlices=compositorThread.asyncSliceGroup.slices;for(const i in allCompositorAsyncSlices){const slice=allCompositorAsyncSlices[i];if(slice.title!=='Latency::ScrollUpdate')continue;const parentId=slice.args.data.INPUT_EVENT_LATENCY_FORWARD_SCROLL_UPDATE_TO_MAIN_COMPONENT.sequence_number;if(parentId===undefined){if(slice.start<gestureScrollUpdateStart||slice.start>=gestureScrollUpdateEnd){continue;}}else{if(parseInt(parentId)!==parseInt(this.id)){continue;}}
slice.associatedEvents.forEach(function(event){this.associatedEvents_.push(event);},this);break;}},belongToOtherInputs(slice,flowEvents){let fromOtherInputs=false;slice.iterateEntireHierarchy(function(subsequentSlice){if(fromOtherInputs)return;subsequentSlice.inFlowEvents.forEach(function(inflow){if(fromOtherInputs)return;if(inflow.category.indexOf('input')>-1){if(flowEvents.indexOf(inflow)===-1){fromOtherInputs=true;}}},this);},this);return fromOtherInputs;},triggerOtherInputs(event,flowEvents){if(event.outFlowEvents===undefined||event.outFlowEvents.length===0){return false;}
const flow=event.outFlowEvents[0];if(flow.category!==POSTTASK_FLOW_EVENT||!flow.endSlice){return false;}
const endSlice=flow.endSlice;if(this.belongToOtherInputs(endSlice.mostTopLevelSlice,flowEvents)){return true;}
return false;},followSubsequentSlices(event,queue,visited,flowEvents){let stopFollowing=false;let inputAck=false;event.iterateAllSubsequentSlices(function(slice){if(stopFollowing)return;if(slice.title==='TaskQueueManager::RunTask')return;if(slice.title==='ThreadProxy::ScheduledActionSendBeginMainFrame'){return;}
if(slice.title==='Scheduler::ScheduleBeginImplFrameDeadline'){if(this.triggerOtherInputs(slice,flowEvents))return;}
if(slice.title==='CompositorImpl::PostComposite'){if(this.triggerOtherInputs(slice,flowEvents))return;}
if(slice.title==='InputRouterImpl::ProcessInputEventAck'){inputAck=true;}
if(inputAck&&slice.title==='InputRouterImpl::FilterAndSendWebInputEvent'){stopFollowing=true;}
this.followCurrentSlice(slice,queue,visited);},this);},followCurrentSlice(event,queue,visited){event.outFlowEvents.forEach(function(outflow){if((outflow.category===POSTTASK_FLOW_EVENT||outflow.category===IPC_FLOW_EVENT)&&outflow.endSlice){this.associatedEvents_.push(outflow);const nextEvent=outflow.endSlice.mostTopLevelSlice;if(!visited.contains(nextEvent)){visited.push(nextEvent);queue.push(nextEvent);}}},this);},backtraceFromDraw(beginImplFrame,visited){const pendingEventQueue=[];pendingEventQueue.push(beginImplFrame.mostTopLevelSlice);while(pendingEventQueue.length!==0){const event=pendingEventQueue.pop();this.addEntireSliceHierarchy(event);event.inFlowEvents.forEach(function(inflow){if(inflow.category===POSTTASK_FLOW_EVENT&&inflow.startSlice){const nextEvent=inflow.startSlice.mostTopLevelSlice;if(!visited.contains(nextEvent)){visited.push(nextEvent);pendingEventQueue.push(nextEvent);}}},this);}},sortRasterizerSlices(rasterWorkerThreads,sortedRasterizerSlices){rasterWorkerThreads.forEach(function(rasterizer){Array.prototype.push.apply(sortedRasterizerSlices,rasterizer.sliceGroup.slices);},this);sortedRasterizerSlices.sort(function(a,b){if(a.start!==b.start){return a.start-b.start;}
return a.guid-b.guid;});},addRasterizationEvents(prepareTiles,rendererHelper,visited,flowEvents,sortedRasterizerSlices){if(!prepareTiles.args.prepare_tiles_id)return;if(!rendererHelper||!rendererHelper.rasterWorkerThreads){return;}
const rasterWorkerThreads=rendererHelper.rasterWorkerThreads;const prepareTileId=prepareTiles.args.prepare_tiles_id;const pendingEventQueue=[];if(sortedRasterizerSlices.length===0){this.sortRasterizerSlices(rasterWorkerThreads,sortedRasterizerSlices);}
let numFinishedTasks=0;const RASTER_TASK_TITLE='RasterizerTaskImpl::RunOnWorkerThread';const IMAGEDECODE_TASK_TITLE='ImageDecodeTaskImpl::RunOnWorkerThread';const FINISHED_TASK_TITLE='TaskSetFinishedTaskImpl::RunOnWorkerThread';for(let i=0;i<sortedRasterizerSlices.length;i++){const task=sortedRasterizerSlices[i];if(task.title===RASTER_TASK_TITLE||task.title===IMAGEDECODE_TASK_TITLE){if(task.args.source_prepare_tiles_id===prepareTileId){this.addEntireSliceHierarchy(task.mostTopLevelSlice);}}else if(task.title===FINISHED_TASK_TITLE){if(task.start>prepareTiles.start){pendingEventQueue.push(task.mostTopLevelSlice);if(++numFinishedTasks===3)break;}}}
while(pendingEventQueue.length!==0){const event=pendingEventQueue.pop();this.addEntireSliceHierarchy(event);this.followSubsequentSlices(event,pendingEventQueue,visited,flowEvents);}},addOtherCausallyRelatedEvents(rendererHelper,sourceSlices,flowEvents,sortedRasterizerSlices){const pendingEventQueue=[];const visitedEvents=new EventSet();let beginImplFrame=undefined;let prepareTiles=undefined;sortedRasterizerSlices=[];sourceSlices.forEach(function(sourceSlice){if(!visitedEvents.contains(sourceSlice)){visitedEvents.push(sourceSlice);pendingEventQueue.push(sourceSlice);}},this);while(pendingEventQueue.length!==0){const event=pendingEventQueue.pop();this.addEntireSliceHierarchy(event);this.followCurrentSlice(event,pendingEventQueue,visitedEvents);this.followSubsequentSlices(event,pendingEventQueue,visitedEvents,flowEvents);const COMPOSITOR_PREPARE_TILES='TileManager::PrepareTiles';prepareTiles=event.findDescendentSlice(COMPOSITOR_PREPARE_TILES);if(prepareTiles){this.addRasterizationEvents(prepareTiles,rendererHelper,visitedEvents,flowEvents,sortedRasterizerSlices);}
const COMPOSITOR_ON_BIFD='Scheduler::OnBeginImplFrameDeadline';beginImplFrame=event.findDescendentSlice(COMPOSITOR_ON_BIFD);if(beginImplFrame){this.backtraceFromDraw(beginImplFrame,visitedEvents);}}
const INPUT_GSU='InputLatency::GestureScrollUpdate';if(this.title===INPUT_GSU){this.addScrollUpdateEvents(rendererHelper);}},get associatedEvents(){if(this.associatedEvents_.length!==0){return this.associatedEvents_;}
const modelIndices=this.startThread.parent.model.modelIndices;const flowEvents=modelIndices.getFlowEventsWithId(this.id);if(flowEvents.length===0){return this.associatedEvents_;}
const sourceSlices=this.addDirectlyAssociatedEvents(flowEvents);const rendererHelper=this.getRendererHelper(sourceSlices);this.addOtherCausallyRelatedEvents(rendererHelper,sourceSlices,flowEvents);return this.associatedEvents_;},get inputLatency(){if(!('data'in this.args))return undefined;const data=this.args.data;if(!(END_COMP_NAME in data))return undefined;let latency=0;const endTime=data[END_COMP_NAME].time;if(ORIGINAL_COMP_NAME in data){latency=endTime-data[ORIGINAL_COMP_NAME].time;}else if(UI_COMP_NAME in data){latency=endTime-data[UI_COMP_NAME].time;}else if(BEGIN_COMP_NAME in data){latency=endTime-data[BEGIN_COMP_NAME].time;}else{throw new Error('No valid begin latency component');}
return latency;}};const eventTypeNames=['Char','ContextMenu','GestureClick','GestureFlingCancel','GestureFlingStart','GestureScrollBegin','GestureScrollEnd','GestureScrollUpdate','GestureShowPress','GestureTap','GestureTapCancel','GestureTapDown','GesturePinchBegin','GesturePinchEnd','GesturePinchUpdate','KeyDown','KeyUp','MouseDown','MouseEnter','MouseLeave','MouseMove','MouseUp','MouseWheel','RawKeyDown','ScrollUpdate','TouchCancel','TouchEnd','TouchMove','TouchStart'];const allTypeNames=['InputLatency'];eventTypeNames.forEach(function(eventTypeName){allTypeNames.push('InputLatency:'+eventTypeName);allTypeNames.push('InputLatency::'+eventTypeName);});AsyncSlice.subTypes.register(InputLatencyAsyncSlice,{typeNames:allTypeNames,categoryParts:['latencyInfo']});return{InputLatencyAsyncSlice,INPUT_EVENT_TYPE_NAMES,};});'use strict';tr.exportTo('tr.model',function(){return{BROWSER_PROCESS_PID_REF:-1,OBJECT_DEFAULT_SCOPE:'ptr',LOCAL_ID_PHASES:new Set(['N','D','O','(',')'])};});'use strict';tr.exportTo('tr.e.audits',function(){const Auditor=tr.c.Auditor;function ChromeAuditor(model){Auditor.call(this,model);const modelHelper=this.model.getOrCreateHelper(tr.model.helpers.ChromeModelHelper);if(modelHelper&&modelHelper.browserHelper){this.modelHelper=modelHelper;}else{this.modelHelper=undefined;}}
ChromeAuditor.prototype={__proto__:Auditor.prototype,runAnnotate(){if(!this.modelHelper)return;for(const pid in this.modelHelper.rendererHelpers){const rendererHelper=this.modelHelper.rendererHelpers[pid];if(rendererHelper.isChromeTracingUI){rendererHelper.process.important=false;}}},installUserFriendlyCategoryDriverIfNeeded(){this.model.addUserFriendlyCategoryDriver(tr.e.chrome.ChromeUserFriendlyCategoryDriver);},runAudit(){if(!this.modelHelper)return;this.model.replacePIDRefsInPatchups(tr.model.BROWSER_PROCESS_PID_REF,this.modelHelper.browserProcess.pid);this.model.applyObjectRefPatchups();}};Auditor.register(ChromeAuditor);return{ChromeAuditor,};});'use strict';tr.exportTo('tr.e.chrome',function(){const KNOWN_PROPERTIES={absX:1,absY:1,address:1,anonymous:1,childNeeds:1,children:1,classNames:1,col:1,colSpan:1,float:1,height:1,htmlId:1,name:1,posChildNeeds:1,positioned:1,positionedMovement:1,relX:1,relY:1,relativePositioned:1,row:1,rowSpan:1,selfNeeds:1,stickyPositioned:1,tag:1,width:1};function LayoutObject(snapshot,args){this.snapshot_=snapshot;this.id_=args.address;this.name_=args.name;this.childLayoutObjects_=[];this.otherProperties_={};this.tag_=args.tag;this.relativeRect_=tr.b.math.Rect.fromXYWH(args.relX,args.relY,args.width,args.height);this.absoluteRect_=tr.b.math.Rect.fromXYWH(args.absX,args.absY,args.width,args.height);this.isFloat_=args.float;this.isStickyPositioned_=args.stickyPositioned;this.isPositioned_=args.positioned;this.isRelativePositioned_=args.relativePositioned;this.isAnonymous_=args.anonymous;this.htmlId_=args.htmlId;this.classNames_=args.classNames;this.needsLayoutReasons_=[];if(args.selfNeeds){this.needsLayoutReasons_.push('self');}
if(args.childNeeds){this.needsLayoutReasons_.push('child');}
if(args.posChildNeeds){this.needsLayoutReasons_.push('positionedChild');}
if(args.positionedMovement){this.needsLayoutReasons_.push('positionedMovement');}
this.tableRow_=args.row;this.tableCol_=args.col;this.tableRowSpan_=args.rowSpan;this.tableColSpan_=args.colSpan;if(args.children){args.children.forEach(function(child){this.childLayoutObjects_.push(new LayoutObject(snapshot,child));}.bind(this));}
for(const property in args){if(!KNOWN_PROPERTIES[property]){this.otherProperties_[property]=args[property];}}}
LayoutObject.prototype={get snapshot(){return this.snapshot_;},get id(){return this.id_;},get name(){return this.name_;},get tag(){return this.tag_;},get relativeRect(){return this.relativeRect_;},get absoluteRect(){return this.absoluteRect_;},get isPositioned(){return this.isPositioned_;},get isFloat(){return this.isFloat_;},get isStickyPositioned(){return this.isStickyPositioned_;},get isRelativePositioned(){return this.isRelativePositioned_;},get isAnonymous(){return this.isAnonymous_;},get tableRow(){return this.tableRow_;},get tableCol(){return this.tableCol_;},get tableRowSpan(){return this.tableRowSpan_;},get tableColSpan(){return this.tableColSpan_;},get htmlId(){return this.htmlId_;},get classNames(){return this.classNames_;},get needsLayoutReasons(){return this.needsLayoutReasons_;},get hasChildLayoutObjects(){return this.childLayoutObjects_.length>0;},get childLayoutObjects(){return this.childLayoutObjects_;},traverseTree(cb,opt_this){cb.call(opt_this,this);if(!this.hasChildLayoutObjects)return;this.childLayoutObjects.forEach(function(child){child.traverseTree(cb,opt_this);});},get otherPropertyNames(){const names=[];for(const name in this.otherProperties_){names.push(name);}
return names;},getProperty(name){return this.otherProperties_[name];},get previousSnapshotLayoutObject(){if(!this.snapshot.previousSnapshot)return undefined;return this.snapshot.previousSnapshot.getLayoutObjectById(this.id);},get nextSnapshotLayoutObject(){if(!this.snapshot.nextSnapshot)return undefined;return this.snapshot.nextSnapshot.getLayoutObjectById(this.id);}};return{LayoutObject,};});'use strict';tr.exportTo('tr.e.chrome',function(){const ObjectSnapshot=tr.model.ObjectSnapshot;const ObjectInstance=tr.model.ObjectInstance;function LayoutTreeInstance(){ObjectInstance.apply(this,arguments);}
LayoutTreeInstance.prototype={__proto__:ObjectInstance.prototype,};ObjectInstance.subTypes.register(LayoutTreeInstance,{typeName:'LayoutTree'});function LayoutTreeSnapshot(){ObjectSnapshot.apply(this,arguments);this.rootLayoutObject=new tr.e.chrome.LayoutObject(this,this.args);}
LayoutTreeSnapshot.prototype={__proto__:ObjectSnapshot.prototype,};ObjectSnapshot.subTypes.register(LayoutTreeSnapshot,{typeName:'LayoutTree'});return{LayoutTreeInstance,LayoutTreeSnapshot,};});'use strict';tr.exportTo('tr.model',function(){function EventContainer(){this.guid_=tr.b.GUID.allocateSimple();this.important=true;this.bounds_=new tr.b.math.Range();}
EventContainer.prototype={get guid(){return this.guid_;},get stableId(){throw new Error('Not implemented');},get bounds(){return this.bounds_;},updateBounds(){throw new Error('Not implemented');},shiftTimestampsForward(amount){throw new Error('Not implemented');},*childEvents(){},*getDescendantEvents(){yield*this.childEvents();for(const container of this.childEventContainers()){yield*container.getDescendantEvents();}},*childEventContainers(){},*getDescendantEventContainers(){yield this;for(const container of this.childEventContainers()){yield*container.getDescendantEventContainers();}},*findTopmostSlicesInThisContainer(eventPredicate,opt_this){},*findTopmostSlices(eventPredicate){for(const ec of this.getDescendantEventContainers()){yield*ec.findTopmostSlicesInThisContainer(eventPredicate);}},*findTopmostSlicesNamed(name){yield*this.findTopmostSlices(e=>e.title===name);}};return{EventContainer,};});'use strict';tr.exportTo('tr.model',function(){const Event=tr.model.Event;const EventRegistry=tr.model.EventRegistry;class ResourceUsageSample extends Event{constructor(series,start,usage){super();this.series_=series;this.start_=start;this.usage_=usage;}
get series(){return this.series_;}
get start(){return this.start_;}
set start(value){this.start_=value;}
get usage(){return this.usage_;}
set usage(value){this.usage_=value;}
addBoundsToRange(range){range.addValue(this.start);}}
EventRegistry.register(ResourceUsageSample,{name:'resourceUsageSample',pluralName:'resourceUsageSamples'});return{ResourceUsageSample,};});'use strict';tr.exportTo('tr.model',function(){const ResourceUsageSample=tr.model.ResourceUsageSample;class ResourceUsageSeries extends tr.model.EventContainer{constructor(device){super();this.device_=device;this.samples_=[];}
get device(){return this.device_;}
get samples(){return this.samples_;}
get stableId(){return this.device_.stableId+'.ResourceUsageSeries';}
addUsageSample(ts,val){const sample=new ResourceUsageSample(this,ts,val);this.samples_.push(sample);return sample;}
computeResourceTimeConsumedInMs(start,end){const measurementRange=tr.b.math.Range.fromExplicitRange(start,end);let resourceTimeInMs=0;let startIndex=tr.b.math.findLowIndexInSortedArray(this.samples,x=>x.start,start)-1;const endIndex=tr.b.math.findLowIndexInSortedArray(this.samples,x=>x.start,end);if(startIndex<0)startIndex=0;for(let i=startIndex;i<endIndex;i++){const sample=this.samples[i];const nextSample=this.samples[i+1];const sampleRange=new tr.b.math.Range();sampleRange.addValue(sample.start);sampleRange.addValue(nextSample?nextSample.start:sample.start);const intersectionRangeInMs=measurementRange.findIntersection(sampleRange);resourceTimeInMs+=intersectionRangeInMs.duration*sample.usage;}
return resourceTimeInMs;}
getSamplesWithinRange(start,end){const startIndex=tr.b.math.findLowIndexInSortedArray(this.samples,x=>x.start,start);const endIndex=tr.b.math.findLowIndexInSortedArray(this.samples,x=>x.start,end);return this.samples.slice(startIndex,endIndex);}
shiftTimestampsForward(amount){for(let i=0;i<this.samples_.length;++i){this.samples_[i].start+=amount;}}
updateBounds(){this.bounds.reset();if(this.samples_.length===0)return;this.bounds.addValue(this.samples_[0].start);this.bounds.addValue(this.samples_[this.samples_.length-1].start);}*childEvents(){yield*this.samples_;}}
return{ResourceUsageSeries,};});'use strict';tr.exportTo('tr.e.audits',function(){class CpuUsageAuditor extends tr.c.Auditor{constructor(model){super();this.model_=model;}
runAnnotate(){this.model_.device.cpuUsageSeries=this.computeCpuUsageSeries_(this.model_.bounds.min,this.model_.bounds.max,this.computeCpuUsage_());}
computeBinSize_(start,end){const MIN_BIN_SIZE_MS=1.0;const MAX_NUM_BINS=100000;const interval=end-start;let binSize=MIN_BIN_SIZE_MS;while(binSize*MAX_NUM_BINS<interval)binSize*=2;return binSize;}
computeCpuUsageSeries_(start,end,usageRecords){const series=new tr.model.ResourceUsageSeries();if(start===undefined)return series;const binSize=this.computeBinSize_(start,end);const numBins=Math.ceil((end-start)/binSize);const arr=new Array(numBins).fill(0);for(const record of usageRecords){const firstIndex=Math.ceil((record.start-start)/binSize);const lastIndex=Math.floor((record.end-start)/binSize);for(let i=firstIndex;i<=lastIndex;i++)arr[i]+=record.usage;}
for(let i=0;i<numBins;i++){series.addUsageSample(start+(i*binSize),arr[i]);}
return series;}
computeCpuUsage_(){const model=this.model_;const result=[];for(const pid in model.processes){for(const e of model.processes[pid].getDescendantEvents()){if(!(e instanceof tr.model.ThreadSlice)||e.duration===0||e.cpuDuration===undefined){continue;}
if(e.selfTime===0||e.selfTime===undefined||e.cpuSelfTime===undefined){continue;}
const usage=tr.b.math.clamp(e.cpuSelfTime/e.selfTime,0,1);let lastTime=e.start;for(const subslice of e.subSlices){result.push({usage,start:lastTime,end:subslice.start});lastTime=subslice.end;}
result.push({usage,start:lastTime,end:e.end});}}
return result;}}
tr.c.Auditor.register(CpuUsageAuditor);return{CpuUsageAuditor};});'use strict';tr.exportTo('tr.b',function(){function Base64(){}
function b64ToUint6(nChr){if(nChr>64&&nChr<91)return nChr-65;if(nChr>96&&nChr<123)return nChr-71;if(nChr>47&&nChr<58)return nChr+4;if(nChr===43)return 62;if(nChr===47)return 63;return 0;}
Base64.getDecodedBufferLength=function(input){return input.length*3+1>>2;};Base64.EncodeArrayBufferToString=function(input){let binary='';const bytes=new Uint8Array(input);const len=bytes.byteLength;for(let i=0;i<len;i++){binary+=String.fromCharCode(bytes[i]);}
return btoa(binary);};Base64.DecodeToTypedArray=function(input,output){const nInLen=input.length;const nOutLen=nInLen*3+1>>2;let nMod3=0;let nMod4=0;let nUint24=0;let nOutIdx=0;if(nOutLen>output.byteLength){throw new Error('Output buffer too small to decode.');}
for(let nInIdx=0;nInIdx<nInLen;nInIdx++){nMod4=nInIdx&3;nUint24|=b64ToUint6(input.charCodeAt(nInIdx))<<18-6*nMod4;if(nMod4===3||nInLen-nInIdx===1){for(nMod3=0;nMod3<3&&nOutIdx<nOutLen;nMod3++,nOutIdx++){output.setUint8(nOutIdx,nUint24>>>(16>>>nMod3&24)&255);}
nUint24=0;}}
return nOutIdx-1;};Base64.btoa=function(input){return btoa(input);};Base64.atob=function(input){return atob(input);};return{Base64,};});'use strict';tr.exportTo('tr.e.importer.etw',function(){function Parser(importer){this.importer=importer;this.model=importer.model;}
Parser.prototype={__proto__:Object.prototype};const options=new tr.b.ExtensionRegistryOptions(tr.b.BASIC_REGISTRY_MODE);options.mandatoryBaseClass=Parser;tr.b.decorateExtensionRegistry(Parser,options);return{Parser,};});'use strict';tr.exportTo('tr.e.importer.etw',function(){const Parser=tr.e.importer.etw.Parser;const guid='68FDD900-4A3E-11D1-84F4-0000F80464E3';const kEventTraceHeaderOpcode=0;function EventTraceParser(importer){Parser.call(this,importer);importer.registerEventHandler(guid,kEventTraceHeaderOpcode,EventTraceParser.prototype.decodeHeader.bind(this));}
EventTraceParser.prototype={__proto__:Parser.prototype,decodeFields(header,decoder){if(header.version!==2){throw new Error('Incompatible EventTrace event version.');}
const bufferSize=decoder.decodeUInt32();const version=decoder.decodeUInt32();const providerVersion=decoder.decodeUInt32();const numberOfProcessors=decoder.decodeUInt32();const endTime=decoder.decodeUInt64ToString();const timerResolution=decoder.decodeUInt32();const maxFileSize=decoder.decodeUInt32();const logFileMode=decoder.decodeUInt32();const buffersWritten=decoder.decodeUInt32();const startBuffers=decoder.decodeUInt32();const pointerSize=decoder.decodeUInt32();const eventsLost=decoder.decodeUInt32();const cpuSpeed=decoder.decodeUInt32();const loggerName=decoder.decodeUInteger(header.is64);const logFileName=decoder.decodeUInteger(header.is64);const timeZoneInformation=decoder.decodeTimeZoneInformation();const padding=decoder.decodeUInt32();const bootTime=decoder.decodeUInt64ToString();const perfFreq=decoder.decodeUInt64ToString();const startTime=decoder.decodeUInt64ToString();const reservedFlags=decoder.decodeUInt32();const buffersLost=decoder.decodeUInt32();const sessionNameString=decoder.decodeW16String();const logFileNameString=decoder.decodeW16String();return{bufferSize,version,providerVersion,numberOfProcessors,endTime,timerResolution,maxFileSize,logFileMode,buffersWritten,startBuffers,pointerSize,eventsLost,cpuSpeed,loggerName,logFileName,timeZoneInformation,bootTime,perfFreq,startTime,reservedFlags,buffersLost,sessionNameString,logFileNameString};},decodeHeader(header,decoder){const fields=this.decodeFields(header,decoder);return true;}};Parser.register(EventTraceParser);return{EventTraceParser,};});'use strict';tr.exportTo('tr.e.importer.etw',function(){const Parser=tr.e.importer.etw.Parser;const guid='3D6FA8D0-FE05-11D0-9DDA-00C04FD7BA7C';const kProcessStartOpcode=1;const kProcessEndOpcode=2;const kProcessDCStartOpcode=3;const kProcessDCEndOpcode=4;const kProcessDefunctOpcode=39;function ProcessParser(importer){Parser.call(this,importer);importer.registerEventHandler(guid,kProcessStartOpcode,ProcessParser.prototype.decodeStart.bind(this));importer.registerEventHandler(guid,kProcessEndOpcode,ProcessParser.prototype.decodeEnd.bind(this));importer.registerEventHandler(guid,kProcessDCStartOpcode,ProcessParser.prototype.decodeDCStart.bind(this));importer.registerEventHandler(guid,kProcessDCEndOpcode,ProcessParser.prototype.decodeDCEnd.bind(this));importer.registerEventHandler(guid,kProcessDefunctOpcode,ProcessParser.prototype.decodeDefunct.bind(this));}
ProcessParser.prototype={__proto__:Parser.prototype,decodeFields(header,decoder){if(header.version>5){throw new Error('Incompatible Process event version.');}
let pageDirectoryBase;if(header.version===1){pageDirectoryBase=decoder.decodeUInteger(header.is64);}
let uniqueProcessKey;if(header.version>=2){uniqueProcessKey=decoder.decodeUInteger(header.is64);}
const processId=decoder.decodeUInt32();const parentId=decoder.decodeUInt32();let sessionId;let exitStatus;if(header.version>=1){sessionId=decoder.decodeUInt32();exitStatus=decoder.decodeInt32();}
let directoryTableBase;if(header.version>=3){directoryTableBase=decoder.decodeUInteger(header.is64);}
let flags;if(header.version>=4){flags=decoder.decodeUInt32();}
const userSID=decoder.decodeSID(header.is64);let imageFileName;if(header.version>=1){imageFileName=decoder.decodeString();}
let commandLine;if(header.version>=2){commandLine=decoder.decodeW16String();}
let packageFullName;let applicationId;if(header.version>=4){packageFullName=decoder.decodeW16String();applicationId=decoder.decodeW16String();}
let exitTime;if(header.version===5&&header.opcode===kProcessDefunctOpcode){exitTime=decoder.decodeUInt64ToString();}
return{pageDirectoryBase,uniqueProcessKey,processId,parentId,sessionId,exitStatus,directoryTableBase,flags,userSID,imageFileName,commandLine,packageFullName,applicationId,exitTime};},decodeStart(header,decoder){const fields=this.decodeFields(header,decoder);const process=this.model.getOrCreateProcess(fields.processId);if(process.hasOwnProperty('has_ended')){throw new Error('Process clash detected.');}
process.name=fields.imageFileName;return true;},decodeEnd(header,decoder){const fields=this.decodeFields(header,decoder);const process=this.model.getOrCreateProcess(fields.processId);process.has_ended=true;return true;},decodeDCStart(header,decoder){const fields=this.decodeFields(header,decoder);const process=this.model.getOrCreateProcess(fields.processId);if(process.hasOwnProperty('has_ended')){throw new Error('Process clash detected.');}
process.name=fields.imageFileName;return true;},decodeDCEnd(header,decoder){const fields=this.decodeFields(header,decoder);const process=this.model.getOrCreateProcess(fields.processId);process.has_ended=true;return true;},decodeDefunct(header,decoder){const fields=this.decodeFields(header,decoder);return true;}};Parser.register(ProcessParser);return{ProcessParser,};});'use strict';tr.exportTo('tr.e.importer.etw',function(){const Parser=tr.e.importer.etw.Parser;const guid='3D6FA8D1-FE05-11D0-9DDA-00C04FD7BA7C';const kThreadStartOpcode=1;const kThreadEndOpcode=2;const kThreadDCStartOpcode=3;const kThreadDCEndOpcode=4;const kThreadCSwitchOpcode=36;function ThreadParser(importer){Parser.call(this,importer);importer.registerEventHandler(guid,kThreadStartOpcode,ThreadParser.prototype.decodeStart.bind(this));importer.registerEventHandler(guid,kThreadEndOpcode,ThreadParser.prototype.decodeEnd.bind(this));importer.registerEventHandler(guid,kThreadDCStartOpcode,ThreadParser.prototype.decodeDCStart.bind(this));importer.registerEventHandler(guid,kThreadDCEndOpcode,ThreadParser.prototype.decodeDCEnd.bind(this));importer.registerEventHandler(guid,kThreadCSwitchOpcode,ThreadParser.prototype.decodeCSwitch.bind(this));}
ThreadParser.prototype={__proto__:Parser.prototype,decodeFields(header,decoder){if(header.version>3){throw new Error('Incompatible Thread event version.');}
const processId=decoder.decodeUInt32();const threadId=decoder.decodeUInt32();let stackBase;let stackLimit;let userStackBase;let userStackLimit;let affinity;let startAddr;let win32StartAddr;let tebBase;let subProcessTag;let basePriority;let pagePriority;let ioPriority;let threadFlags;let waitMode;if(header.version===1){if(header.opcode===kThreadStartOpcode||header.opcode===kThreadDCStartOpcode){stackBase=decoder.decodeUInteger(header.is64);stackLimit=decoder.decodeUInteger(header.is64);userStackBase=decoder.decodeUInteger(header.is64);userStackLimit=decoder.decodeUInteger(header.is64);startAddr=decoder.decodeUInteger(header.is64);win32StartAddr=decoder.decodeUInteger(header.is64);waitMode=decoder.decodeInt8();decoder.skip(3);}}else{stackBase=decoder.decodeUInteger(header.is64);stackLimit=decoder.decodeUInteger(header.is64);userStackBase=decoder.decodeUInteger(header.is64);userStackLimit=decoder.decodeUInteger(header.is64);if(header.version===2){startAddr=decoder.decodeUInteger(header.is64);}else{affinity=decoder.decodeUInteger(header.is64);}
win32StartAddr=decoder.decodeUInteger(header.is64);tebBase=decoder.decodeUInteger(header.is64);subProcessTag=decoder.decodeUInt32();if(header.version===3){basePriority=decoder.decodeUInt8();pagePriority=decoder.decodeUInt8();ioPriority=decoder.decodeUInt8();threadFlags=decoder.decodeUInt8();}}
return{processId,threadId,stackBase,stackLimit,userStackBase,userStackLimit,affinity,startAddr,win32StartAddr,tebBase,subProcessTag,waitMode,basePriority,pagePriority,ioPriority,threadFlags};},decodeCSwitchFields(header,decoder){if(header.version!==2){throw new Error('Incompatible Thread event version.');}
const newThreadId=decoder.decodeUInt32();const oldThreadId=decoder.decodeUInt32();const newThreadPriority=decoder.decodeInt8();const oldThreadPriority=decoder.decodeInt8();const previousCState=decoder.decodeUInt8();const spareByte=decoder.decodeInt8();const oldThreadWaitReason=decoder.decodeInt8();const oldThreadWaitMode=decoder.decodeInt8();const oldThreadState=decoder.decodeInt8();const oldThreadWaitIdealProcessor=decoder.decodeInt8();const newThreadWaitTime=decoder.decodeUInt32();const reserved=decoder.decodeUInt32();return{newThreadId,oldThreadId,newThreadPriority,oldThreadPriority,previousCState,spareByte,oldThreadWaitReason,oldThreadWaitMode,oldThreadState,oldThreadWaitIdealProcessor,newThreadWaitTime,reserved};},decodeStart(header,decoder){const fields=this.decodeFields(header,decoder);this.importer.createThreadIfNeeded(fields.processId,fields.threadId);return true;},decodeEnd(header,decoder){const fields=this.decodeFields(header,decoder);this.importer.removeThreadIfPresent(fields.threadId);return true;},decodeDCStart(header,decoder){const fields=this.decodeFields(header,decoder);this.importer.createThreadIfNeeded(fields.processId,fields.threadId);return true;},decodeDCEnd(header,decoder){const fields=this.decodeFields(header,decoder);this.importer.removeThreadIfPresent(fields.threadId);return true;},decodeCSwitch(header,decoder){const fields=this.decodeCSwitchFields(header,decoder);const cpu=this.importer.getOrCreateCpu(header.cpu);const newThread=this.importer.getThreadFromWindowsTid(fields.newThreadId);let newThreadName;if(newThread&&newThread.userFriendlyName){newThreadName=newThread.userFriendlyName;}else{const newProcessId=this.importer.getPidFromWindowsTid(fields.newThreadId);const newProcess=this.model.getProcess(newProcessId);let newProcessName;if(newProcess){newProcessName=newProcess.name;}else{newProcessName='Unknown process';}
newThreadName=newProcessName+' (tid '+fields.newThreadId+')';}
cpu.switchActiveThread(header.timestamp,{},fields.newThreadId,newThreadName,fields);return true;}};Parser.register(ThreadParser);return{ThreadParser,};});'use strict';tr.exportTo('tr.b',function(){function max(a,b){if(a===undefined)return b;if(b===undefined)return a;return Math.max(a,b);}
function IntervalTree(beginPositionCb,endPositionCb){this.beginPositionCb_=beginPositionCb;this.endPositionCb_=endPositionCb;this.root_=undefined;this.size_=0;}
IntervalTree.prototype={insert(datum){const startPosition=this.beginPositionCb_(datum);const endPosition=this.endPositionCb_(datum);const node=new IntervalTreeNode(datum,startPosition,endPosition);this.size_++;this.root_=this.insertNode_(this.root_,node);this.root_.colour=Colour.BLACK;return datum;},insertNode_(root,node){if(root===undefined)return node;if(root.leftNode&&root.leftNode.isRed&&root.rightNode&&root.rightNode.isRed){this.flipNodeColour_(root);}
if(node.key<root.key){root.leftNode=this.insertNode_(root.leftNode,node);}else if(node.key===root.key){root.merge(node);}else{root.rightNode=this.insertNode_(root.rightNode,node);}
if(root.rightNode&&root.rightNode.isRed&&(root.leftNode===undefined||!root.leftNode.isRed)){root=this.rotateLeft_(root);}
if(root.leftNode&&root.leftNode.isRed&&root.leftNode.leftNode&&root.leftNode.leftNode.isRed){root=this.rotateRight_(root);}
return root;},rotateRight_(node){const sibling=node.leftNode;node.leftNode=sibling.rightNode;sibling.rightNode=node;sibling.colour=node.colour;node.colour=Colour.RED;return sibling;},rotateLeft_(node){const sibling=node.rightNode;node.rightNode=sibling.leftNode;sibling.leftNode=node;sibling.colour=node.colour;node.colour=Colour.RED;return sibling;},flipNodeColour_(node){node.colour=this.flipColour_(node.colour);node.leftNode.colour=this.flipColour_(node.leftNode.colour);node.rightNode.colour=this.flipColour_(node.rightNode.colour);},flipColour_(colour){return colour===Colour.RED?Colour.BLACK:Colour.RED;},updateHighValues(){this.updateHighValues_(this.root_);},updateHighValues_(node){if(node===undefined)return undefined;node.maxHighLeft=this.updateHighValues_(node.leftNode);node.maxHighRight=this.updateHighValues_(node.rightNode);return max(max(node.maxHighLeft,node.highValue),node.maxHighRight);},validateFindArguments_(queryLow,queryHigh){if(queryLow===undefined||queryHigh===undefined){throw new Error('queryLow and queryHigh must be defined');}
if((typeof queryLow!=='number')||(typeof queryHigh!=='number')){throw new Error('queryLow and queryHigh must be numbers');}},findIntersection(queryLow,queryHigh){this.validateFindArguments_(queryLow,queryHigh);if(this.root_===undefined)return[];const ret=[];this.root_.appendIntersectionsInto_(ret,queryLow,queryHigh);return ret;},get size(){return this.size_;},get root(){return this.root_;},dump_(){if(this.root_===undefined)return[];return this.root_.dump();}};const Colour={RED:'red',BLACK:'black'};function IntervalTreeNode(datum,lowValue,highValue){this.lowValue_=lowValue;this.data_=[{datum,high:highValue,low:lowValue}];this.colour_=Colour.RED;this.parentNode_=undefined;this.leftNode_=undefined;this.rightNode_=undefined;this.maxHighLeft_=undefined;this.maxHighRight_=undefined;}
IntervalTreeNode.prototype={appendIntersectionsInto_(ret,queryLow,queryHigh){if(this.lowValue_>=queryHigh){if(!this.leftNode_)return;return this.leftNode_.appendIntersectionsInto_(ret,queryLow,queryHigh);}
if(this.maxHighLeft_>queryLow){this.leftNode_.appendIntersectionsInto_(ret,queryLow,queryHigh);}
if(this.highValue>queryLow){for(let i=(this.data.length-1);i>=0;--i){if(this.data[i].high<queryLow)break;ret.push(this.data[i].datum);}}
if(this.rightNode_){this.rightNode_.appendIntersectionsInto_(ret,queryLow,queryHigh);}},get colour(){return this.colour_;},set colour(colour){this.colour_=colour;},get key(){return this.lowValue_;},get lowValue(){return this.lowValue_;},get highValue(){return this.data_[this.data_.length-1].high;},set leftNode(left){this.leftNode_=left;},get leftNode(){return this.leftNode_;},get hasLeftNode(){return this.leftNode_!==undefined;},set rightNode(right){this.rightNode_=right;},get rightNode(){return this.rightNode_;},get hasRightNode(){return this.rightNode_!==undefined;},set parentNode(parent){this.parentNode_=parent;},get parentNode(){return this.parentNode_;},get isRootNode(){return this.parentNode_===undefined;},set maxHighLeft(high){this.maxHighLeft_=high;},get maxHighLeft(){return this.maxHighLeft_;},set maxHighRight(high){this.maxHighRight_=high;},get maxHighRight(){return this.maxHighRight_;},get data(){return this.data_;},get isRed(){return this.colour_===Colour.RED;},merge(node){for(let i=0;i<node.data.length;i++){this.data_.push(node.data[i]);}
this.data_.sort(function(a,b){return a.high-b.high;});},dump(){const ret={};if(this.leftNode_){ret.left=this.leftNode_.dump();}
ret.data=this.data_.map(function(d){return[d.low,d.high];});if(this.rightNode_){ret.right=this.rightNode_.dump();}
return ret;}};return{IntervalTree,};});'use strict';tr.exportTo('tr.b.math',function(){const tmpVec2s=[];for(let i=0;i<8;i++){tmpVec2s[i]=vec2.create();}
const tmpVec2a=vec4.create();const tmpVec4a=vec4.create();const tmpVec4b=vec4.create();const tmpMat4=mat4.create();const tmpMat4b=mat4.create();const p00=vec2.createXY(0,0);const p10=vec2.createXY(1,0);const p01=vec2.createXY(0,1);const p11=vec2.createXY(1,1);const lerpingVecA=vec2.create();const lerpingVecB=vec2.create();function lerpVec2(out,a,b,amt){vec2.scale(lerpingVecA,a,amt);vec2.scale(lerpingVecB,b,1-amt);vec2.add(out,lerpingVecA,lerpingVecB);vec2.normalize(out,out);return out;}
function Quad(){this.p1=vec2.create();this.p2=vec2.create();this.p3=vec2.create();this.p4=vec2.create();}
Quad.fromXYWH=function(x,y,w,h){const q=new Quad();vec2.set(q.p1,x,y);vec2.set(q.p2,x+w,y);vec2.set(q.p3,x+w,y+h);vec2.set(q.p4,x,y+h);return q;};Quad.fromRect=function(r){return new Quad.fromXYWH(r.x,r.y,r.width,r.height);};Quad.from4Vecs=function(p1,p2,p3,p4){const q=new Quad();vec2.set(q.p1,p1[0],p1[1]);vec2.set(q.p2,p2[0],p2[1]);vec2.set(q.p3,p3[0],p3[1]);vec2.set(q.p4,p4[0],p4[1]);return q;};Quad.from8Array=function(arr){if(arr.length!==8){throw new Error('Array must be 8 long');}
const q=new Quad();q.p1[0]=arr[0];q.p1[1]=arr[1];q.p2[0]=arr[2];q.p2[1]=arr[3];q.p3[0]=arr[4];q.p3[1]=arr[5];q.p4[0]=arr[6];q.p4[1]=arr[7];return q;};Quad.prototype={pointInside(point){return pointInImplicitQuad(point,this.p1,this.p2,this.p3,this.p4);},boundingRect(){const x0=Math.min(this.p1[0],this.p2[0],this.p3[0],this.p4[0]);const y0=Math.min(this.p1[1],this.p2[1],this.p3[1],this.p4[1]);const x1=Math.max(this.p1[0],this.p2[0],this.p3[0],this.p4[0]);const y1=Math.max(this.p1[1],this.p2[1],this.p3[1],this.p4[1]);return new tr.b.math.Rect.fromXYWH(x0,y0,x1-x0,y1-y0);},clone(){const q=new Quad();vec2.copy(q.p1,this.p1);vec2.copy(q.p2,this.p2);vec2.copy(q.p3,this.p3);vec2.copy(q.p4,this.p4);return q;},scale(s){const q=new Quad();this.scaleFast(q,s);return q;},scaleFast(dstQuad,s){vec2.copy(dstQuad.p1,this.p1,s);vec2.copy(dstQuad.p2,this.p2,s);vec2.copy(dstQuad.p3,this.p3,s);vec2.copy(dstQuad.p3,this.p3,s);},isRectangle(){const bounds=this.boundingRect();return(bounds.x===this.p1[0]&&bounds.y===this.p1[1]&&bounds.width===this.p2[0]-this.p1[0]&&bounds.y===this.p2[1]&&bounds.width===this.p3[0]-this.p1[0]&&bounds.height===this.p3[1]-this.p2[1]&&bounds.x===this.p4[0]&&bounds.height===this.p4[1]-this.p2[1]);},projectUnitRect(rect){const q=new Quad();this.projectUnitRectFast(q,rect);return q;},projectUnitRectFast(dstQuad,rect){const v12=tmpVec2s[0];const v14=tmpVec2s[1];const v23=tmpVec2s[2];const v43=tmpVec2s[3];vec2.sub(v12,this.p2,this.p1);const l12=vec2.length(v12);vec2.scale(v12,v12,1/l12);vec2.sub(v14,this.p4,this.p1);const l14=vec2.length(v14);vec2.scale(v14,v14,1/l14);vec2.sub(v23,this.p3,this.p2);const l23=vec2.length(v23);vec2.scale(v23,v23,1/l23);vec2.sub(v43,this.p3,this.p4);const l43=vec2.length(v43);vec2.scale(v43,v43,1/l43);const b12=tmpVec2s[0];const b14=tmpVec2s[1];const b23=tmpVec2s[2];const b43=tmpVec2s[3];lerpVec2(b12,v12,v43,rect.y);lerpVec2(b43,v12,v43,1-rect.bottom);lerpVec2(b14,v14,v23,rect.x);lerpVec2(b23,v14,v23,1-rect.right);vec2.addTwoScaledUnitVectors(tmpVec2a,b12,l12*rect.x,b14,l14*rect.y);vec2.add(dstQuad.p1,this.p1,tmpVec2a);vec2.addTwoScaledUnitVectors(tmpVec2a,b12,l12*-(1.0-rect.right),b23,l23*rect.y);vec2.add(dstQuad.p2,this.p2,tmpVec2a);vec2.addTwoScaledUnitVectors(tmpVec2a,b43,l43*-(1.0-rect.right),b23,l23*-(1.0-rect.bottom));vec2.add(dstQuad.p3,this.p3,tmpVec2a);vec2.addTwoScaledUnitVectors(tmpVec2a,b43,l43*rect.left,b14,l14*-(1.0-rect.bottom));vec2.add(dstQuad.p4,this.p4,tmpVec2a);},toString(){return'Quad('+
vec2.toString(this.p1)+', '+
vec2.toString(this.p2)+', '+
vec2.toString(this.p3)+', '+
vec2.toString(this.p4)+')';}};function sign(p1,p2,p3){return(p1[0]-p3[0])*(p2[1]-p3[1])-
(p2[0]-p3[0])*(p1[1]-p3[1]);}
function pointInTriangle2(pt,p1,p2,p3){const b1=sign(pt,p1,p2)<0.0;const b2=sign(pt,p2,p3)<0.0;const b3=sign(pt,p3,p1)<0.0;return((b1===b2)&&(b2===b3));}
function pointInImplicitQuad(point,p1,p2,p3,p4){return pointInTriangle2(point,p1,p2,p3)||pointInTriangle2(point,p1,p3,p4);}
return{pointInTriangle2,pointInImplicitQuad,Quad,};});'use strict';tr.exportTo('tr.b',function(){function addSingletonGetter(ctor){ctor.getInstance=function(){return ctor.instance_||(ctor.instance_=new ctor());};}
function deepCopy(value){if(!(value instanceof Object)){if(value===undefined||value===null)return value;if(typeof value==='string')return value.substring();if(typeof value==='boolean')return value;if(typeof value==='number')return value;throw new Error('Unrecognized: '+typeof value);}
const object=value;if(object instanceof Array){const res=new Array(object.length);for(let i=0;i<object.length;i++){res[i]=deepCopy(object[i]);}
return res;}
if(object.__proto__!==Object.prototype){throw new Error('Can only clone simple types');}
const res={};for(const key in object){res[key]=deepCopy(object[key]);}
return res;}
function normalizeException(e){if(e===undefined||e===null){return{typeName:'UndefinedError',message:'Unknown: null or undefined exception',stack:'Unknown'};}
if(typeof(e)==='string'){return{typeName:'StringError',message:e,stack:[e]};}
let typeName;if(e.name){typeName=e.name;}else if(e.constructor){if(e.constructor.name){typeName=e.constructor.name;}else{typeName='AnonymousError';}}else{typeName='ErrorWithNoConstructor';}
const msg=e.message?e.message:'Unknown';return{typeName,message:msg,stack:e.stack?e.stack:[msg]};}
function stackTraceAsString(){return new Error().stack+'';}
function stackTrace(){let stack=stackTraceAsString();stack=stack.split('\n');return stack.slice(2);}
function getUsingPath(path,fromDict){const parts=path.split('.');let cur=fromDict;for(let part;parts.length&&(part=parts.shift());){if(!parts.length){return cur[part];}else if(part in cur){cur=cur[part];}else{return undefined;}}
return undefined;}
function formatDate(date){return date.toISOString().replace('T',' ').slice(0,19);}
function numberToJson(n){if(isNaN(n))return'NaN';if(n===Infinity)return'Infinity';if(n===-Infinity)return'-Infinity';return n;}
function numberFromJson(n){if(n==='NaN'||n===null)return NaN;if(n==='Infinity')return Infinity;if(n==='-Infinity')return-Infinity;return n;}
function runLengthEncoding(ary){const encodedArray=[];for(const element of ary){if(encodedArray.length===0||encodedArray[encodedArray.length-1].value!==element){encodedArray.push({value:element,count:1,});}else{encodedArray[encodedArray.length-1].count+=1;}}
return encodedArray;}
return{addSingletonGetter,deepCopy,normalizeException,stackTrace,stackTraceAsString,formatDate,numberToJson,numberFromJson,getUsingPath,runLengthEncoding,};});'use strict';tr.exportTo('tr.b',function(){const ESTIMATED_IDLE_PERIOD_LENGTH_MILLISECONDS=10;const REQUEST_IDLE_CALLBACK_TIMEOUT_MILLISECONDS=100;const recordRAFStacks=false;let pendingPreAFs=[];let pendingRAFs=[];const pendingIdleCallbacks=[];let currentRAFDispatchList=undefined;let rafScheduled=false;let idleWorkScheduled=false;function scheduleRAF(){if(rafScheduled)return;rafScheduled=true;if(tr.isHeadless){Promise.resolve().then(function(){processRequests(false,0);},function(e){throw e;});}else{if(window.requestAnimationFrame){window.requestAnimationFrame(processRequests.bind(this,false));}else{const delta=Date.now()-window.performance.now();window.webkitRequestAnimationFrame(function(domTimeStamp){processRequests(false,domTimeStamp-delta);});}}}
function nativeRequestIdleCallbackSupported(){return!tr.isHeadless&&window.requestIdleCallback;}
function scheduleIdleWork(){if(idleWorkScheduled)return;if(!nativeRequestIdleCallbackSupported()){scheduleRAF();return;}
idleWorkScheduled=true;window.requestIdleCallback(function(deadline,didTimeout){processIdleWork(false,deadline);},{timeout:REQUEST_IDLE_CALLBACK_TIMEOUT_MILLISECONDS});}
function onAnimationFrameError(e,opt_stack){console.log(e.stack);if(tr.isHeadless)throw e;if(opt_stack)console.log(opt_stack);if(e.message){console.error(e.message,e.stack);}else{console.error(e);}}
function runTask(task,frameBeginTime){try{task.callback.call(task.context,frameBeginTime);}catch(e){tr.b.onAnimationFrameError(e,task.stack);}}
function processRequests(forceAllTasksToRun,frameBeginTime){rafScheduled=false;const currentPreAFs=pendingPreAFs;currentRAFDispatchList=pendingRAFs;pendingPreAFs=[];pendingRAFs=[];const hasRAFTasks=currentPreAFs.length||currentRAFDispatchList.length;for(let i=0;i<currentPreAFs.length;i++){runTask(currentPreAFs[i],frameBeginTime);}
while(currentRAFDispatchList.length>0){runTask(currentRAFDispatchList.shift(),frameBeginTime);}
currentRAFDispatchList=undefined;if((!hasRAFTasks&&!nativeRequestIdleCallbackSupported())||forceAllTasksToRun){const rafCompletionDeadline=frameBeginTime+ESTIMATED_IDLE_PERIOD_LENGTH_MILLISECONDS;processIdleWork(forceAllTasksToRun,{timeRemaining(){return rafCompletionDeadline-window.performance.now();}});}
if(pendingIdleCallbacks.length>0)scheduleIdleWork();}
function processIdleWork(forceAllTasksToRun,deadline){idleWorkScheduled=false;while(pendingIdleCallbacks.length>0){runTask(pendingIdleCallbacks.shift());if(!forceAllTasksToRun&&(tr.isHeadless||deadline.timeRemaining()<=0)){break;}}
if(pendingIdleCallbacks.length>0)scheduleIdleWork();}
function getStack_(){if(!recordRAFStacks)return'';const stackLines=tr.b.stackTrace();stackLines.shift();return stackLines.join('\n');}
function requestPreAnimationFrame(callback,opt_this){pendingPreAFs.push({callback,context:opt_this||global,stack:getStack_()});scheduleRAF();}
function requestAnimationFrameInThisFrameIfPossible(callback,opt_this){if(!currentRAFDispatchList){requestAnimationFrame(callback,opt_this);return;}
currentRAFDispatchList.push({callback,context:opt_this||global,stack:getStack_()});return;}
function requestAnimationFrame(callback,opt_this){pendingRAFs.push({callback,context:opt_this||global,stack:getStack_()});scheduleRAF();}
function animationFrame(){return new Promise(resolve=>requestAnimationFrame(resolve));}
function requestIdleCallback(callback,opt_this){pendingIdleCallbacks.push({callback,context:opt_this||global,stack:getStack_()});scheduleIdleWork();}
function forcePendingRAFTasksToRun(frameBeginTime){if(!rafScheduled)return;processRequests(false,frameBeginTime);}
function forceAllPendingTasksToRunForTest(){if(!rafScheduled&&!idleWorkScheduled)return;processRequests(true,0);}
function timeout(ms){return new Promise(resolve=>window.setTimeout(resolve,ms));}
function idle(){return new Promise(resolve=>requestIdleCallback(resolve));}
return{animationFrame,forceAllPendingTasksToRunForTest,forcePendingRAFTasksToRun,idle,onAnimationFrameError,requestAnimationFrame,requestAnimationFrameInThisFrameIfPossible,requestIdleCallback,requestPreAnimationFrame,timeout,};});'use strict';tr.exportTo('tr.b',function(){class Mark{constructor(groupName,functionName){if(tr.isHeadless)return;this.groupName_=groupName;this.functionName_=functionName;const guid=tr.b.GUID.allocateSimple();this.measureName_=`${groupName} ${functionName}`;this.startMarkName_=`${this.measureName} ${guid} start`;this.endMarkName_=`${this.measureName} ${guid} end`;window.performance.mark(this.startMarkName_);}
get groupName(){return this.groupName_;}
get functionName(){return this.functionName_;}
get measureName(){return this.measureName_;}
get startMark(){return tr.b.getOnlyElement(window.performance.getEntriesByName(this.startMarkName_));}
get endMark(){return tr.b.getOnlyElement(window.performance.getEntriesByName(this.endMarkName_));}
get durationMs(){return this.endMark.startTime-this.startMark.startTime;}
end(){if(tr.isHeadless)return;window.performance.mark(this.endMarkName_);window.performance.measure(this.measureName_,this.startMarkName_,this.endMarkName_);if(!(window.ga instanceof Function))return;ga('send',{hitType:'event',eventCategory:this.groupName,eventAction:this.functionName,eventValue:this.durationMs,});}}
class Timing{static mark(groupName,functionName){return new Mark(groupName,functionName);}
static instant(groupName,functionName,opt_value){const valueString=opt_value===undefined?'':' '+opt_value;console.timeStamp(`${groupName} ${functionName}${valueString}`);if(!(window.ga instanceof Function))return;ga('send',{hitType:'event',eventCategory:groupName,eventAction:functionName,eventValue:opt_value,});}}
return{Timing,};});'use strict';tr.exportTo('tr.b',function(){const Timing=tr.b.Timing;function Task(runCb,thisArg){if(runCb!==undefined&&thisArg===undefined&&runCb.prototype!==undefined){throw new Error('Almost certainly you meant to pass a bound callback '+'or thisArg.');}
this.runCb_=runCb;this.thisArg_=thisArg;this.afterTask_=undefined;this.subTasks_=[];this.updatesUi_=false;}
Task.prototype={get name(){return this.runCb_.name;},set updatesUi(value){this.updatesUi_=value;},subTask(cb,thisArg){if(cb instanceof Task){this.subTasks_.push(cb);}else{this.subTasks_.push(new Task(cb,thisArg));}
return this.subTasks_[this.subTasks_.length-1];},run(){if(this.runCb_!==undefined)this.runCb_.call(this.thisArg_,this);const subTasks=this.subTasks_;this.subTasks_=undefined;if(!subTasks.length)return this.afterTask_;for(let i=1;i<subTasks.length;i++){subTasks[i-1].afterTask_=subTasks[i];}
subTasks[subTasks.length-1].afterTask_=this.afterTask_;return subTasks[0];},after(cb,thisArg){if(this.afterTask_){throw new Error('Has an after task already');}
if(cb instanceof Task){this.afterTask_=cb;}else{this.afterTask_=new Task(cb,thisArg);}
return this.afterTask_;},enqueue(cb,thisArg){if(!this.afterTask_)return this.after(cb,thisArg);return this.afterTask_.enqueue(cb,thisArg);}};Task.RunSynchronously=function(task){let curTask=task;while(curTask){curTask=curTask.run();}};Task.RunWhenIdle=function(task){return new Promise(function(resolve,reject){let curTask=task;function runAnother(){try{curTask=curTask.run();}catch(e){reject(e);return;}
if(curTask){if(curTask.updatesUi_){tr.b.requestAnimationFrameInThisFrameIfPossible(runAnother);}else{tr.b.requestIdleCallback(runAnother);}
return;}
resolve();}
tr.b.requestIdleCallback(runAnother);});};return{Task,};});'use strict';tr.exportTo('tr.c',function(){function makeCaseInsensitiveRegex(pattern){pattern=pattern.replace(/[.*+?^${}()|[\]\\]/g,'\\$&');return new RegExp(pattern,'i');}
function Filter(){}
Filter.prototype={__proto__:Object.prototype,matchCounter(counter){return true;},matchCpu(cpu){return true;},matchProcess(process){return true;},matchSlice(slice){return true;},matchThread(thread){return true;}};function TitleOrCategoryFilter(text){Filter.call(this);this.regex_=makeCaseInsensitiveRegex(text);if(!text.length){throw new Error('Filter text is empty.');}}
TitleOrCategoryFilter.prototype={__proto__:Filter.prototype,matchSlice(slice){if(slice.title===undefined&&slice.category===undefined){return false;}
return this.regex_.test(slice.title)||(!!slice.category&&this.regex_.test(slice.category));}};function ExactTitleFilter(text){Filter.call(this);this.text_=text;if(!text.length){throw new Error('Filter text is empty.');}}
ExactTitleFilter.prototype={__proto__:Filter.prototype,matchSlice(slice){return slice.title===this.text_;}};function FullTextFilter(text){Filter.call(this);this.regex_=makeCaseInsensitiveRegex(text);this.titleOrCategoryFilter_=new TitleOrCategoryFilter(text);}
FullTextFilter.prototype={__proto__:Filter.prototype,matchObject_(obj){for(const key in obj){if(!obj.hasOwnProperty(key))continue;if(this.regex_.test(key))return true;if(this.regex_.test(obj[key]))return true;}
return false;},matchSlice(slice){if(this.titleOrCategoryFilter_.matchSlice(slice))return true;return this.matchObject_(slice.args);}};return{Filter,TitleOrCategoryFilter,ExactTitleFilter,FullTextFilter,};});'use strict';tr.exportTo('tr.model',function(){const ClockDomainId={BATTOR:'BATTOR',UNKNOWN_CHROME_LEGACY:'UNKNOWN_CHROME_LEGACY',LINUX_CLOCK_MONOTONIC:'LINUX_CLOCK_MONOTONIC',LINUX_FTRACE_GLOBAL:'LINUX_FTRACE_GLOBAL',MAC_MACH_ABSOLUTE_TIME:'MAC_MACH_ABSOLUTE_TIME',WIN_ROLLOVER_PROTECTED_TIME_GET_TIME:'WIN_ROLLOVER_PROTECTED_TIME_GET_TIME',WIN_QPC:'WIN_QPC',SYSTRACE:'SYSTRACE',TELEMETRY:'TELEMETRY'};const POSSIBLE_CHROME_CLOCK_DOMAINS=new Set([ClockDomainId.UNKNOWN_CHROME_LEGACY,ClockDomainId.LINUX_CLOCK_MONOTONIC,ClockDomainId.MAC_MACH_ABSOLUTE_TIME,ClockDomainId.WIN_ROLLOVER_PROTECTED_TIME_GET_TIME,ClockDomainId.WIN_QPC]);const BATTOR_FAST_SYNC_THRESHOLD_MS=3;function ClockSyncManager(){this.domainsSeen_=new Set();this.markersBySyncId_=new Map();this.transformerMapByDomainId_={};}
ClockSyncManager.prototype={addClockSyncMarker(domainId,syncId,startTs,opt_endTs){this.onDomainSeen_(domainId);if(Object.values(ClockDomainId).indexOf(domainId)<0){throw new Error('"'+domainId+'" is not in the list of known '+'clock domain IDs.');}
if(this.modelDomainId_){throw new Error('Cannot add new clock sync markers after getting '+'a model time transformer.');}
const marker=new ClockSyncMarker(domainId,startTs,opt_endTs);if(!this.markersBySyncId_.has(syncId)){this.markersBySyncId_.set(syncId,[marker]);return;}
const markers=this.markersBySyncId_.get(syncId);if(markers.length===2){throw new Error('Clock sync with ID "'+syncId+'" is already '+'complete - cannot add a third clock sync marker to it.');}
if(markers[0].domainId===domainId){throw new Error('A clock domain cannot sync with itself.');}
markers.push(marker);this.onSyncCompleted_(markers[0],marker);},get markersBySyncId(){return this.markersBySyncId_;},get domainsSeen(){return this.domainsSeen_;},getModelTimeTransformer(domainId){this.onDomainSeen_(domainId);if(!this.modelDomainId_){this.selectModelDomainId_();}
return this.getTimeTransformerRaw_(domainId,this.modelDomainId_).fn;},getTimeTransformerError(fromDomainId,toDomainId){this.onDomainSeen_(fromDomainId);this.onDomainSeen_(toDomainId);return this.getTimeTransformerRaw_(fromDomainId,toDomainId).error;},getTimeTransformerRaw_(fromDomainId,toDomainId){const transformer=this.getTransformerBetween_(fromDomainId,toDomainId);if(!transformer){throw new Error('No clock sync markers exist pairing clock domain "'+
fromDomainId+'" '+'with target clock domain "'+
toDomainId+'".');}
return transformer;},getTransformerBetween_(fromDomainId,toDomainId){const visitedDomainIds=new Set();const queue=[{domainId:fromDomainId,transformer:Transformer.IDENTITY}];while(queue.length>0){queue.sort((domain1,domain2)=>domain1.transformer.error-domain2.transformer.error);const current=queue.shift();if(current.domainId===toDomainId){return current.transformer;}
if(visitedDomainIds.has(current.domainId)){continue;}
visitedDomainIds.add(current.domainId);const outgoingTransformers=this.transformerMapByDomainId_[current.domainId];if(!outgoingTransformers)continue;for(const outgoingDomainId in outgoingTransformers){const toNextDomainTransformer=outgoingTransformers[outgoingDomainId];const toCurrentDomainTransformer=current.transformer;queue.push({domainId:outgoingDomainId,transformer:Transformer.compose(toNextDomainTransformer,toCurrentDomainTransformer)});}}
return undefined;},selectModelDomainId_(){this.ensureAllDomainsAreConnected_();for(const chromeDomainId of POSSIBLE_CHROME_CLOCK_DOMAINS){if(this.domainsSeen_.has(chromeDomainId)){this.modelDomainId_=chromeDomainId;return;}}
const domainsSeenArray=Array.from(this.domainsSeen_);domainsSeenArray.sort();this.modelDomainId_=domainsSeenArray[0];},ensureAllDomainsAreConnected_(){let firstDomainId=undefined;for(const domainId of this.domainsSeen_){if(!firstDomainId){firstDomainId=domainId;continue;}
if(!this.getTransformerBetween_(firstDomainId,domainId)){throw new Error('Unable to select a master clock domain because no '+'path can be found from "'+firstDomainId+'" to "'+domainId+'".');}}
return true;},onDomainSeen_(domainId){if(domainId===ClockDomainId.UNKNOWN_CHROME_LEGACY&&!this.domainsSeen_.has(ClockDomainId.UNKNOWN_CHROME_LEGACY)){for(const chromeDomainId of POSSIBLE_CHROME_CLOCK_DOMAINS){if(chromeDomainId===ClockDomainId.UNKNOWN_CHROME_LEGACY){continue;}
this.collapseDomains_(ClockDomainId.UNKNOWN_CHROME_LEGACY,chromeDomainId);}}
this.domainsSeen_.add(domainId);},onSyncCompleted_(marker1,marker2){const forwardTransformer=Transformer.fromMarkers(marker1,marker2);const backwardTransformer=Transformer.fromMarkers(marker2,marker1);const existingTransformer=this.getOrCreateTransformerMap_(marker1.domainId)[marker2.domainId];if(!existingTransformer||forwardTransformer.error<existingTransformer.error){this.getOrCreateTransformerMap_(marker1.domainId)[marker2.domainId]=forwardTransformer;this.getOrCreateTransformerMap_(marker2.domainId)[marker1.domainId]=backwardTransformer;}},collapseDomains_(domain1Id,domain2Id){this.getOrCreateTransformerMap_(domain1Id)[domain2Id]=this.getOrCreateTransformerMap_(domain2Id)[domain1Id]=Transformer.IDENTITY;},getOrCreateTransformerMap_(domainId){if(!this.transformerMapByDomainId_[domainId]){this.transformerMapByDomainId_[domainId]={};}
return this.transformerMapByDomainId_[domainId];},computeDotGraph(){let dotString='graph {\n';const domainsSeen=[...this.domainsSeen_].sort();for(const domainId of domainsSeen){dotString+=` ${domainId}[shape=box]\n`;}
const markersBySyncIdEntries=[...this.markersBySyncId_.entries()].sort(([syncId1,markers1],[syncId2,markers2])=>syncId1.localeCompare(syncId2));for(const[syncId,markers]of markersBySyncIdEntries){const sortedMarkers=markers.sort((a,b)=>a.domainId.localeCompare(b.domainId));for(const m of markers){dotString+=` "${syncId}" -- ${m.domainId} `;dotString+=`[label="[${m.startTs}, ${m.endTs}]"]\n`;}}
dotString+='}';return dotString;}};function ClockSyncMarker(domainId,startTs,opt_endTs){this.domainId=domainId;this.startTs=startTs;this.endTs=opt_endTs===undefined?startTs:opt_endTs;}
ClockSyncMarker.prototype={get duration(){return this.endTs-this.startTs;},get ts(){return this.startTs+this.duration/2;}};function Transformer(fn,error){this.fn=fn;this.error=error;}
Transformer.IDENTITY=new Transformer(tr.b.identity,0);Transformer.compose=function(aToB,bToC){return new Transformer((ts)=>bToC.fn(aToB.fn(ts)),aToB.error+bToC.error);};Transformer.fromMarkers=function(fromMarker,toMarker){let fromTs=fromMarker.ts;let toTs=toMarker.ts;if(fromMarker.domainId===ClockDomainId.BATTOR&&toMarker.duration>BATTOR_FAST_SYNC_THRESHOLD_MS){toTs=toMarker.startTs;}else if(toMarker.domainId===ClockDomainId.BATTOR&&fromMarker.duration>BATTOR_FAST_SYNC_THRESHOLD_MS){fromTs=fromMarker.startTs;}
const tsShift=toTs-fromTs;return new Transformer((ts)=>ts+tsShift,fromMarker.duration+toMarker.duration);};return{ClockDomainId,ClockSyncManager,};});'use strict';tr.exportTo('tr.model',function(){function CounterSample(series,timestamp,value){tr.model.Event.call(this);this.series_=series;this.timestamp_=timestamp;this.value_=value;}
CounterSample.groupByTimestamp=function(samples){const samplesByTimestamp=tr.b.groupIntoMap(samples,s=>s.timestamp);const timestamps=Array.from(samplesByTimestamp.keys());timestamps.sort();const groups=[];for(const ts of timestamps){const group=samplesByTimestamp.get(ts);group.sort((x,y)=>x.series.seriesIndex-y.series.seriesIndex);groups.push(group);}
return groups;};CounterSample.prototype={__proto__:tr.model.Event.prototype,get series(){return this.series_;},get timestamp(){return this.timestamp_;},get value(){return this.value_;},set timestamp(timestamp){this.timestamp_=timestamp;},addBoundsToRange(range){range.addValue(this.timestamp);},getSampleIndex(){return tr.b.math.findLowIndexInSortedArray(this.series.timestamps,function(x){return x;},this.timestamp_);},get userFriendlyName(){return'Counter sample from '+this.series_.title+' at '+
tr.b.Unit.byName.timeStampInMs.format(this.timestamp);}};tr.model.EventRegistry.register(CounterSample,{name:'counterSample',pluralName:'counterSamples'});return{CounterSample,};});'use strict';tr.exportTo('tr.model',function(){const CounterSample=tr.model.CounterSample;function CounterSeries(name,color){tr.model.EventContainer.call(this);this.name_=name;this.color_=color;this.timestamps_=[];this.samples_=[];this.counter=undefined;this.seriesIndex=undefined;}
CounterSeries.prototype={__proto__:tr.model.EventContainer.prototype,get length(){return this.timestamps_.length;},get name(){return this.name_;},get color(){return this.color_;},get samples(){return this.samples_;},get timestamps(){return this.timestamps_;},getSample(idx){return this.samples_[idx];},getTimestamp(idx){return this.timestamps_[idx];},addCounterSample(ts,val){const sample=new CounterSample(this,ts,val);this.addSample(sample);return sample;},addSample(sample){this.timestamps_.push(sample.timestamp);this.samples_.push(sample);},getStatistics(sampleIndices){let sum=0;let min=Number.MAX_VALUE;let max=-Number.MAX_VALUE;for(let i=0;i<sampleIndices.length;++i){const sample=this.getSample(sampleIndices[i]).value;sum+=sample;min=Math.min(sample,min);max=Math.max(sample,max);}
return{min,max,avg:(sum/sampleIndices.length),start:this.getSample(sampleIndices[0]).value,end:this.getSample(sampleIndices.length-1).value};},shiftTimestampsForward(amount){for(let i=0;i<this.timestamps_.length;++i){this.timestamps_[i]+=amount;this.samples_[i].timestamp=this.timestamps_[i];}},*childEvents(){yield*this.samples_;},*childEventContainers(){}};return{CounterSeries,};});'use strict';tr.exportTo('tr.model',function(){function Counter(parent,id,category,name){tr.model.EventContainer.call(this);this.parent_=parent;this.id_=id;this.category_=category||'';this.name_=name;this.series_=[];this.totals=[];}
Counter.prototype={__proto__:tr.model.EventContainer.prototype,get parent(){return this.parent_;},get id(){return this.id_;},get category(){return this.category_;},get name(){return this.name_;},*childEvents(){},*childEventContainers(){yield*this.series;},set timestamps(arg){throw new Error('Bad counter API. No cookie.');},set seriesNames(arg){throw new Error('Bad counter API. No cookie.');},set seriesColors(arg){throw new Error('Bad counter API. No cookie.');},set samples(arg){throw new Error('Bad counter API. No cookie.');},addSeries(series){series.counter=this;series.seriesIndex=this.series_.length;this.series_.push(series);return series;},getSeries(idx){return this.series_[idx];},get series(){return this.series_;},get numSeries(){return this.series_.length;},get numSamples(){if(this.series_.length===0)return 0;return this.series_[0].length;},get timestamps(){if(this.series_.length===0)return[];return this.series_[0].timestamps;},getSampleStatistics(sampleIndices){sampleIndices.sort();const ret=[];this.series_.forEach(function(series){ret.push(series.getStatistics(sampleIndices));});return ret;},shiftTimestampsForward(amount){for(let i=0;i<this.series_.length;++i){this.series_[i].shiftTimestampsForward(amount);}},updateBounds(){this.totals=[];this.maxTotal=0;this.bounds.reset();if(this.series_.length===0)return;const firstSeries=this.series_[0];const lastSeries=this.series_[this.series_.length-1];this.bounds.addValue(firstSeries.getTimestamp(0));this.bounds.addValue(lastSeries.getTimestamp(lastSeries.length-1));const numSeries=this.numSeries;this.maxTotal=-Infinity;for(let i=0;i<firstSeries.length;++i){let total=0;this.series_.forEach(function(series){total+=series.getSample(i).value;this.totals.push(total);}.bind(this));this.maxTotal=Math.max(total,this.maxTotal);}}};Counter.compare=function(x,y){let tmp=x.parent.compareTo(y.parent);if(tmp!==0)return tmp;tmp=x.name.localeCompare(y.name);if(tmp===0)return x.tid-y.tid;return tmp;};return{Counter,};});'use strict';tr.exportTo('tr.model',function(){const Slice=tr.model.Slice;function CpuSlice(cat,title,colorId,start,args,opt_duration){Slice.apply(this,arguments);this.threadThatWasRunning=undefined;this.cpu=undefined;}
CpuSlice.prototype={__proto__:Slice.prototype,get analysisTypeName(){return'tr.ui.analysis.CpuSlice';},getAssociatedTimeslice(){if(!this.threadThatWasRunning){return undefined;}
const timeSlices=this.threadThatWasRunning.timeSlices;for(let i=0;i<timeSlices.length;i++){const timeSlice=timeSlices[i];if(timeSlice.start!==this.start){continue;}
if(timeSlice.duration!==this.duration){continue;}
return timeSlice;}
return undefined;}};tr.model.EventRegistry.register(CpuSlice,{name:'cpuSlice',pluralName:'cpuSlices'});return{CpuSlice,};});'use strict';tr.exportTo('tr.model',function(){function TimeToObjectInstanceMap(createObjectInstanceFunction,parent,scopedId){this.createObjectInstanceFunction_=createObjectInstanceFunction;this.parent=parent;this.scopedId=scopedId;this.instances=[];}
TimeToObjectInstanceMap.prototype={idWasCreated(category,name,ts){if(this.instances.length===0){this.instances.push(this.createObjectInstanceFunction_(this.parent,this.scopedId,category,name,ts));this.instances[0].creationTsWasExplicit=true;return this.instances[0];}
let lastInstance=this.instances[this.instances.length-1];if(ts<lastInstance.deletionTs){throw new Error('Mutation of the TimeToObjectInstanceMap must be '+'done in ascending timestamp order.');}
lastInstance=this.createObjectInstanceFunction_(this.parent,this.scopedId,category,name,ts);lastInstance.creationTsWasExplicit=true;this.instances.push(lastInstance);return lastInstance;},addSnapshot(category,name,ts,args,opt_baseTypeName){if(this.instances.length===0){this.instances.push(this.createObjectInstanceFunction_(this.parent,this.scopedId,category,name,ts,opt_baseTypeName));}
const i=tr.b.math.findIndexInSortedIntervals(this.instances,function(inst){return inst.creationTs;},function(inst){return inst.deletionTs-inst.creationTs;},ts);let instance;if(i<0){instance=this.instances[0];if(ts>instance.deletionTs||instance.creationTsWasExplicit){throw new Error('At the provided timestamp, no instance was still alive');}
if(instance.snapshots.length!==0){throw new Error('Cannot shift creationTs forward, '+'snapshots have been added. First snap was at ts='+
instance.snapshots[0].ts+' and creationTs was '+
instance.creationTs);}
instance.creationTs=ts;}else if(i>=this.instances.length){instance=this.instances[this.instances.length-1];if(ts>=instance.deletionTs){instance=this.createObjectInstanceFunction_(this.parent,this.scopedId,category,name,ts,opt_baseTypeName);this.instances.push(instance);}else{let lastValidIndex;for(let i=this.instances.length-1;i>=0;i--){const tmp=this.instances[i];if(ts>=tmp.deletionTs)break;if(tmp.creationTsWasExplicit===false&&tmp.snapshots.length===0){lastValidIndex=i;}}
if(lastValidIndex===undefined){throw new Error('Cannot add snapshot. No instance was alive that was mutable.');}
instance=this.instances[lastValidIndex];instance.creationTs=ts;}}else{instance=this.instances[i];}
return instance.addSnapshot(ts,args,name,opt_baseTypeName);},get lastInstance(){if(this.instances.length===0)return undefined;return this.instances[this.instances.length-1];},idWasDeleted(category,name,ts){if(this.instances.length===0){this.instances.push(this.createObjectInstanceFunction_(this.parent,this.scopedId,category,name,ts));}
let lastInstance=this.instances[this.instances.length-1];if(ts<lastInstance.creationTs){throw new Error('Cannot delete an id before it was created');}
if(lastInstance.deletionTs===Number.MAX_VALUE){lastInstance.wasDeleted(ts);return lastInstance;}
if(ts<lastInstance.deletionTs){throw new Error('id was already deleted earlier.');}
lastInstance=this.createObjectInstanceFunction_(this.parent,this.scopedId,category,name,ts);this.instances.push(lastInstance);lastInstance.wasDeleted(ts);return lastInstance;},getInstanceAt(ts){const i=tr.b.math.findIndexInSortedIntervals(this.instances,function(inst){return inst.creationTs;},function(inst){return inst.deletionTs-inst.creationTs;},ts);if(i<0){if(this.instances[0].creationTsWasExplicit){return undefined;}
return this.instances[0];}else if(i>=this.instances.length){return undefined;}
return this.instances[i];}};return{TimeToObjectInstanceMap,};});'use strict';tr.exportTo('tr.model',function(){const ObjectInstance=tr.model.ObjectInstance;const ObjectSnapshot=tr.model.ObjectSnapshot;function ObjectCollection(parent){tr.model.EventContainer.call(this);this.parent=parent;this.instanceMapsByScopedId_={};this.instancesByTypeName_={};this.createObjectInstance_=this.createObjectInstance_.bind(this);}
ObjectCollection.prototype={__proto__:tr.model.EventContainer.prototype,*childEvents(){for(const instance of this.getAllObjectInstances()){yield instance;yield*instance.snapshots;}},createObjectInstance_(parent,scopedId,category,name,creationTs,opt_baseTypeName){const constructor=tr.model.ObjectInstance.subTypes.getConstructor(category,name);const instance=new constructor(parent,scopedId,category,name,creationTs,opt_baseTypeName);const typeName=instance.typeName;let instancesOfTypeName=this.instancesByTypeName_[typeName];if(!instancesOfTypeName){instancesOfTypeName=[];this.instancesByTypeName_[typeName]=instancesOfTypeName;}
instancesOfTypeName.push(instance);return instance;},getOrCreateInstanceMap_(scopedId){let dict;if(scopedId.scope in this.instanceMapsByScopedId_){dict=this.instanceMapsByScopedId_[scopedId.scope];}else{dict={};this.instanceMapsByScopedId_[scopedId.scope]=dict;}
let instanceMap=dict[scopedId.id];if(instanceMap)return instanceMap;instanceMap=new tr.model.TimeToObjectInstanceMap(this.createObjectInstance_,this.parent,scopedId);dict[scopedId.id]=instanceMap;return instanceMap;},idWasCreated(scopedId,category,name,ts){const instanceMap=this.getOrCreateInstanceMap_(scopedId);return instanceMap.idWasCreated(category,name,ts);},addSnapshot(scopedId,category,name,ts,args,opt_baseTypeName){const instanceMap=this.getOrCreateInstanceMap_(scopedId);const snapshot=instanceMap.addSnapshot(category,name,ts,args,opt_baseTypeName);if(snapshot.objectInstance.category!==category){const msg='Added snapshot name='+name+' with cat='+category+' impossible. It instance was created/snapshotted with cat='+
snapshot.objectInstance.category+' name='+
snapshot.objectInstance.name;throw new Error(msg);}
if(opt_baseTypeName&&snapshot.objectInstance.baseTypeName!==opt_baseTypeName){throw new Error('Could not add snapshot with baseTypeName='+
opt_baseTypeName+'. It '+'was previously created with name='+
snapshot.objectInstance.baseTypeName);}
if(snapshot.objectInstance.name!==name){throw new Error('Could not add snapshot with name='+name+'. It '+'was previously created with name='+
snapshot.objectInstance.name);}
return snapshot;},idWasDeleted(scopedId,category,name,ts){const instanceMap=this.getOrCreateInstanceMap_(scopedId);const deletedInstance=instanceMap.idWasDeleted(category,name,ts);if(!deletedInstance)return;if(deletedInstance.category!==category){const msg='Deleting object '+deletedInstance.name+' with a different category '+'than when it was created. It previous had cat='+
deletedInstance.category+' but the delete command '+'had cat='+category;throw new Error(msg);}
if(deletedInstance.baseTypeName!==name){throw new Error('Deletion requested for name='+
name+' could not proceed: '+'An existing object with baseTypeName='+
deletedInstance.baseTypeName+' existed.');}},autoDeleteObjects(maxTimestamp){for(const imapById of Object.values(this.instanceMapsByScopedId_)){for(const i2imap of Object.values(imapById)){const lastInstance=i2imap.lastInstance;if(lastInstance.deletionTs!==Number.MAX_VALUE)continue;i2imap.idWasDeleted(lastInstance.category,lastInstance.name,maxTimestamp);lastInstance.deletionTsWasExplicit=false;}}},getObjectInstanceAt(scopedId,ts){let instanceMap;if(scopedId.scope in this.instanceMapsByScopedId_){instanceMap=this.instanceMapsByScopedId_[scopedId.scope][scopedId.id];}
if(!instanceMap)return undefined;return instanceMap.getInstanceAt(ts);},getSnapshotAt(scopedId,ts){const instance=this.getObjectInstanceAt(scopedId,ts);if(!instance)return undefined;return instance.getSnapshotAt(ts);},iterObjectInstances(iter,opt_this){opt_this=opt_this||this;for(const imapById of Object.values(this.instanceMapsByScopedId_)){for(const i2imap of Object.values(imapById)){i2imap.instances.forEach(iter,opt_this);}}},getAllObjectInstances(){const instances=[];this.iterObjectInstances(function(i){instances.push(i);});return instances;},getAllInstancesNamed(name){return this.instancesByTypeName_[name];},getAllInstancesByTypeName(){return this.instancesByTypeName_;},preInitializeAllObjects(){this.iterObjectInstances(function(instance){instance.preInitialize();});},initializeAllObjects(){this.iterObjectInstances(function(instance){instance.initialize();});},initializeInstances(){this.iterObjectInstances(function(instance){instance.initialize();});},updateBounds(){this.bounds.reset();this.iterObjectInstances(function(instance){instance.updateBounds();this.bounds.addRange(instance.bounds);},this);},shiftTimestampsForward(amount){this.iterObjectInstances(function(instance){instance.shiftTimestampsForward(amount);});},addCategoriesToDict(categoriesDict){this.iterObjectInstances(function(instance){categoriesDict[instance.category]=true;});}};return{ObjectCollection,};});'use strict';tr.exportTo('tr.model',function(){function AsyncSliceGroup(parentContainer,opt_name){tr.model.EventContainer.call(this);this.parentContainer_=parentContainer;this.slices=[];this.name_=opt_name;this.viewSubGroups_=undefined;}
AsyncSliceGroup.prototype={__proto__:tr.model.EventContainer.prototype,get parentContainer(){return this.parentContainer_;},get model(){return this.parentContainer_.parent.model;},get stableId(){return this.parentContainer_.stableId+'.AsyncSliceGroup';},getSettingsKey(){if(!this.name_)return undefined;const parentKey=this.parentContainer_.getSettingsKey();if(!parentKey)return undefined;return parentKey+'.'+this.name_;},push(slice){slice.parentContainer=this.parentContainer;this.slices.push(slice);return slice;},get length(){return this.slices.length;},shiftTimestampsForward(amount){for(let sI=0;sI<this.slices.length;sI++){const slice=this.slices[sI];slice.start=(slice.start+amount);const shiftSubSlices=function(subSlices){if(subSlices===undefined||subSlices.length===0)return;for(let sJ=0;sJ<subSlices.length;sJ++){subSlices[sJ].start+=amount;shiftSubSlices(subSlices[sJ].subSlices);}};shiftSubSlices(slice.subSlices);}},updateBounds(){this.bounds.reset();for(let i=0;i<this.slices.length;i++){this.bounds.addValue(this.slices[i].start);this.bounds.addValue(this.slices[i].end);}},get viewSubGroups(){if(this.viewSubGroups_===undefined){let prefix='';if(this.name!==undefined){prefix=this.name+'.';}else{prefix='';}
const subGroupsByTitle={};for(let i=0;i<this.slices.length;++i){const slice=this.slices[i];const subGroupTitle=slice.viewSubGroupTitle;if(!subGroupsByTitle[subGroupTitle]){subGroupsByTitle[subGroupTitle]=new AsyncSliceGroup(this.parentContainer_,prefix+subGroupTitle);}
subGroupsByTitle[subGroupTitle].push(slice);}
this.viewSubGroups_=Object.values(subGroupsByTitle);this.viewSubGroups_.sort(function(a,b){return a.slices[0].compareTo(b.slices[0]);});}
return this.viewSubGroups_;},*findTopmostSlicesInThisContainer(eventPredicate,opt_this){for(const slice of this.slices){if(slice.isTopLevel){yield*slice.findTopmostSlicesRelativeToThisSlice(eventPredicate,opt_this);}}},*childEvents(){for(const slice of this.slices){yield slice;if(slice.subSlices){yield*slice.subSlices;}}},*childEventContainers(){}};return{AsyncSliceGroup,};});'use strict';tr.exportTo('tr.model',function(){const Slice=tr.model.Slice;function ThreadSlice(cat,title,colorId,start,args,opt_duration,opt_cpuStart,opt_cpuDuration,opt_argsStripped,opt_bindId){Slice.call(this,cat,title,colorId,start,args,opt_duration,opt_cpuStart,opt_cpuDuration,opt_argsStripped,opt_bindId);this.subSlices=[];}
ThreadSlice.prototype={__proto__:Slice.prototype,get overlappingSamples(){const samples=new tr.model.EventSet();if(!this.parentContainer||!this.parentContainer.samples){return samples;}
this.parentContainer.samples.forEach(function(sample){if(this.start<=sample.start&&sample.start<=this.end){samples.push(sample);}},this);return samples;}};tr.model.EventRegistry.register(ThreadSlice,{name:'slice',pluralName:'slices'});return{ThreadSlice,};});'use strict';tr.exportTo('tr.model',function(){const ColorScheme=tr.b.ColorScheme;const ThreadSlice=tr.model.ThreadSlice;function getSliceLo(s){return s.start;}
function getSliceHi(s){return s.end;}
function SliceGroup(parentContainer,opt_sliceConstructor,opt_name){tr.model.EventContainer.call(this);this.parentContainer_=parentContainer;const sliceConstructor=opt_sliceConstructor||ThreadSlice;this.sliceConstructor=sliceConstructor;this.sliceConstructorSubTypes=this.sliceConstructor.subTypes;if(!this.sliceConstructorSubTypes){throw new Error('opt_sliceConstructor must have a subtype registry.');}
this.openPartialSlices_=[];this.slices=[];this.topLevelSlices=[];this.haveTopLevelSlicesBeenBuilt=false;this.name_=opt_name;if(this.model===undefined){throw new Error('SliceGroup must have model defined.');}}
SliceGroup.prototype={__proto__:tr.model.EventContainer.prototype,get parentContainer(){return this.parentContainer_;},get model(){return this.parentContainer_.model;},get stableId(){return this.parentContainer_.stableId+'.SliceGroup';},getSettingsKey(){if(!this.name_)return undefined;const parentKey=this.parentContainer_.getSettingsKey();if(!parentKey)return undefined;return parentKey+'.'+this.name;},get length(){return this.slices.length;},pushSlice(slice){this.haveTopLevelSlicesBeenBuilt=false;slice.parentContainer=this.parentContainer_;this.slices.push(slice);return slice;},pushSlices(slices){this.haveTopLevelSlicesBeenBuilt=false;slices.forEach(function(slice){slice.parentContainer=this.parentContainer_;this.slices.push(slice);},this);},beginSlice(category,title,ts,opt_args,opt_tts,opt_argsStripped,opt_colorId){if(this.openPartialSlices_.length){const prevSlice=this.openPartialSlices_[this.openPartialSlices_.length-1];if(ts<prevSlice.start){throw new Error('Slices must be added in increasing timestamp order');}}
const colorId=opt_colorId||ColorScheme.getColorIdForGeneralPurposeString(title);const sliceConstructorSubTypes=this.sliceConstructorSubTypes;const sliceType=sliceConstructorSubTypes.getConstructor(category,title);const slice=new sliceType(category,title,colorId,ts,opt_args?opt_args:{},null,opt_tts,undefined,opt_argsStripped);this.openPartialSlices_.push(slice);slice.didNotFinish=true;this.pushSlice(slice);return slice;},isTimestampValidForBeginOrEnd(ts){if(!this.openPartialSlices_.length)return true;const top=this.openPartialSlices_[this.openPartialSlices_.length-1];return ts>=top.start;},get openSliceCount(){return this.openPartialSlices_.length;},get mostRecentlyOpenedPartialSlice(){if(!this.openPartialSlices_.length)return undefined;return this.openPartialSlices_[this.openPartialSlices_.length-1];},endSlice(ts,opt_tts,opt_colorId){if(!this.openSliceCount){throw new Error('endSlice called without an open slice');}
const slice=this.openPartialSlices_[this.openSliceCount-1];this.openPartialSlices_.splice(this.openSliceCount-1,1);if(ts<slice.start){throw new Error('Slice '+slice.title+' end time is before its start.');}
slice.duration=ts-slice.start;slice.didNotFinish=false;slice.colorId=opt_colorId||slice.colorId;if(opt_tts&&slice.cpuStart!==undefined){slice.cpuDuration=opt_tts-slice.cpuStart;}
return slice;},pushCompleteSlice(category,title,ts,duration,tts,cpuDuration,opt_args,opt_argsStripped,opt_colorId,opt_bindId){const colorId=opt_colorId||ColorScheme.getColorIdForGeneralPurposeString(title);const sliceConstructorSubTypes=this.sliceConstructorSubTypes;const sliceType=sliceConstructorSubTypes.getConstructor(category,title);const slice=new sliceType(category,title,colorId,ts,opt_args?opt_args:{},duration,tts,cpuDuration,opt_argsStripped,opt_bindId);if(duration===undefined){slice.didNotFinish=true;}
this.pushSlice(slice);return slice;},autoCloseOpenSlices(){this.updateBounds();const maxTimestamp=this.bounds.max;for(let sI=0;sI<this.slices.length;sI++){const slice=this.slices[sI];if(slice.didNotFinish){slice.duration=maxTimestamp-slice.start;}}
this.openPartialSlices_=[];},shiftTimestampsForward(amount){for(let sI=0;sI<this.slices.length;sI++){const slice=this.slices[sI];slice.start=(slice.start+amount);}},updateBounds(){this.bounds.reset();for(let i=0;i<this.slices.length;i++){this.bounds.addValue(this.slices[i].start);this.bounds.addValue(this.slices[i].end);}},copySlice(slice){const sliceConstructorSubTypes=this.sliceConstructorSubTypes;const sliceType=sliceConstructorSubTypes.getConstructor(slice.category,slice.title);const newSlice=new sliceType(slice.category,slice.title,slice.colorId,slice.start,slice.args,slice.duration,slice.cpuStart,slice.cpuDuration);newSlice.didNotFinish=slice.didNotFinish;return newSlice;},*findTopmostSlicesInThisContainer(eventPredicate,opt_this){if(!this.haveTopLevelSlicesBeenBuilt){throw new Error('Nope');}
for(const s of this.topLevelSlices){yield*s.findTopmostSlicesRelativeToThisSlice(eventPredicate);}},*childEvents(){yield*this.slices;},*childEventContainers(){},getSlicesOfName(title){const slices=[];for(let i=0;i<this.slices.length;i++){if(this.slices[i].title===title){slices.push(this.slices[i]);}}
return slices;},iterSlicesInTimeRange(callback,start,end){const ret=[];tr.b.math.iterateOverIntersectingIntervals(this.topLevelSlices,function(s){return s.start;},function(s){return s.duration;},start,end,function(topLevelSlice){callback(topLevelSlice);for(const slice of topLevelSlice.enumerateAllDescendents()){callback(slice);}});return ret;},findFirstSlice(){if(!this.haveTopLevelSlicesBeenBuilt){throw new Error('Nope');}
if(0===this.slices.length)return undefined;return this.slices[0];},findSliceAtTs(ts){if(!this.haveTopLevelSlicesBeenBuilt)throw new Error('Nope');let i=tr.b.math.findIndexInSortedClosedIntervals(this.topLevelSlices,getSliceLo,getSliceHi,ts);if(i===-1||i===this.topLevelSlices.length){return undefined;}
let curSlice=this.topLevelSlices[i];while(true){i=tr.b.math.findIndexInSortedClosedIntervals(curSlice.subSlices,getSliceLo,getSliceHi,ts);if(i===-1||i===curSlice.subSlices.length){return curSlice;}
curSlice=curSlice.subSlices[i];}},findNextSliceAfter(ts,refGuid){let i=tr.b.math.findLowIndexInSortedArray(this.slices,getSliceLo,ts);if(i===this.slices.length){return undefined;}
for(;i<this.slices.length;i++){const slice=this.slices[i];if(slice.start>ts)return slice;if(slice.guid<=refGuid)continue;return slice;}
return undefined;},hasCpuDuration_(){if(this.slices.some(function(slice){return slice.cpuDuration!==undefined;}))return true;return false;},createSubSlices(){this.haveTopLevelSlicesBeenBuilt=true;this.createSubSlicesImpl_();if(!this.hasCpuDuration_()&&this.parentContainer.timeSlices){this.addCpuTimeToSubslices_(this.parentContainer.timeSlices);}
this.slices.forEach(function(slice){let selfTime=slice.duration;for(let i=0;i<slice.subSlices.length;i++){selfTime-=slice.subSlices[i].duration;}
slice.selfTime=selfTime;if(slice.cpuDuration===undefined)return;let cpuSelfTime=slice.cpuDuration;for(let i=0;i<slice.subSlices.length;i++){if(slice.subSlices[i].cpuDuration!==undefined){cpuSelfTime-=slice.subSlices[i].cpuDuration;}}
slice.cpuSelfTime=cpuSelfTime;});},createSubSlicesImpl_(){const precisionUnit=this.model.intrinsicTimeUnit;function addSliceIfBounds(parent,child){if(parent.bounds(child,precisionUnit)){child.parentSlice=parent;if(parent.subSlices===undefined){parent.subSlices=[];}
parent.subSlices.push(child);return true;}
return false;}
if(!this.slices.length)return;const ops=[];for(let i=0;i<this.slices.length;i++){if(this.slices[i].subSlices){this.slices[i].subSlices.splice(0,this.slices[i].subSlices.length);}
ops.push(i);}
const originalSlices=this.slices;ops.sort(function(ix,iy){const x=originalSlices[ix];const y=originalSlices[iy];if(x.start!==y.start){return x.start-y.start;}
return ix-iy;});const slices=new Array(this.slices.length);for(let i=0;i<ops.length;i++){slices[i]=originalSlices[ops[i]];}
let rootSlice=slices[0];this.topLevelSlices=[];this.topLevelSlices.push(rootSlice);rootSlice.isTopLevel=true;for(let i=1;i<slices.length;i++){const slice=slices[i];while(rootSlice!==undefined&&(!addSliceIfBounds(rootSlice,slice))){rootSlice=rootSlice.parentSlice;}
if(rootSlice===undefined){this.topLevelSlices.push(slice);slice.isTopLevel=true;}
rootSlice=slice;}
this.slices=slices;},addCpuTimeToSubslices_(timeSlices){const SCHEDULING_STATE=tr.model.SCHEDULING_STATE;let sliceIdx=0;timeSlices.forEach(function(timeSlice){if(timeSlice.schedulingState===SCHEDULING_STATE.RUNNING){while(sliceIdx<this.topLevelSlices.length){if(this.addCpuTimeToSubslice_(this.topLevelSlices[sliceIdx],timeSlice)){sliceIdx++;}else{break;}}}},this);},addCpuTimeToSubslice_(slice,timeSlice){if(slice.start>timeSlice.end||slice.end<timeSlice.start){return slice.end<=timeSlice.end;}
let duration=timeSlice.duration;if(slice.start>timeSlice.start){duration-=slice.start-timeSlice.start;}
if(timeSlice.end>slice.end){duration-=timeSlice.end-slice.end;}
if(slice.cpuDuration){slice.cpuDuration+=duration;}else{slice.cpuDuration=duration;}
for(let i=0;i<slice.subSlices.length;i++){this.addCpuTimeToSubslice_(slice.subSlices[i],timeSlice);}
return slice.end<=timeSlice.end;}};SliceGroup.merge=function(groupA,groupB){if(groupA.openPartialSlices_.length>0){throw new Error('groupA has open partial slices');}
if(groupB.openPartialSlices_.length>0){throw new Error('groupB has open partial slices');}
if(groupA.parentContainer!==groupB.parentContainer){throw new Error('Different parent threads. Cannot merge');}
if(groupA.sliceConstructor!==groupB.sliceConstructor){throw new Error('Different slice constructors. Cannot merge');}
const result=new SliceGroup(groupA.parentContainer,groupA.sliceConstructor,groupA.name_);const slicesA=groupA.slices;const slicesB=groupB.slices;let idxA=0;let idxB=0;const openA=[];const openB=[];const splitOpenSlices=function(when){for(let i=0;i<openB.length;i++){const oldSlice=openB[i];const oldEnd=oldSlice.end;if(when<oldSlice.start||oldEnd<when){throw new Error('slice should not be split');}
const newSlice=result.copySlice(oldSlice);newSlice.start=when;newSlice.duration=oldEnd-when;if(newSlice.title.indexOf(' (cont.)')===-1){newSlice.title+=' (cont.)';}
oldSlice.duration=when-oldSlice.start;openB[i]=newSlice;result.pushSlice(newSlice);}};const closeOpenSlices=function(upTo){while(openA.length>0||openB.length>0){const nextA=openA[openA.length-1];const nextB=openB[openB.length-1];const endA=nextA&&nextA.end;const endB=nextB&&nextB.end;if((endA===undefined||endA>upTo)&&(endB===undefined||endB>upTo)){return;}
if(endB===undefined||endA<endB){splitOpenSlices(endA);openA.pop();}else{openB.pop();}}};while(idxA<slicesA.length||idxB<slicesB.length){const sA=slicesA[idxA];const sB=slicesB[idxB];let nextSlice;let isFromB;if(sA===undefined||(sB!==undefined&&sA.start>sB.start)){nextSlice=result.copySlice(sB);isFromB=true;idxB++;}else{nextSlice=result.copySlice(sA);isFromB=false;idxA++;}
closeOpenSlices(nextSlice.start);result.pushSlice(nextSlice);if(isFromB){openB.push(nextSlice);}else{splitOpenSlices(nextSlice.start);openA.push(nextSlice);}}
closeOpenSlices();return result;};return{SliceGroup,};});'use strict';tr.exportTo('tr.model',function(){const AsyncSlice=tr.model.AsyncSlice;const AsyncSliceGroup=tr.model.AsyncSliceGroup;const SliceGroup=tr.model.SliceGroup;const ThreadSlice=tr.model.ThreadSlice;const ThreadTimeSlice=tr.model.ThreadTimeSlice;function Thread(parent,tid){if(!parent){throw new Error('Parent must be provided.');}
tr.model.EventContainer.call(this);this.parent=parent;this.sortIndex=0;this.tid=tid;this.name=undefined;this.samples_=undefined;this.sliceGroup=new SliceGroup(this,ThreadSlice,'slices');this.timeSlices=undefined;this.kernelSliceGroup=new SliceGroup(this,ThreadSlice,'kernel-slices');this.asyncSliceGroup=new AsyncSliceGroup(this,'async-slices');}
Thread.prototype={__proto__:tr.model.EventContainer.prototype,get model(){return this.parent.model;},get stableId(){return this.parent.stableId+'.'+this.tid;},compareTo(that){return Thread.compare(this,that);},*childEventContainers(){if(this.sliceGroup.length){yield this.sliceGroup;}
if(this.kernelSliceGroup.length){yield this.kernelSliceGroup;}
if(this.asyncSliceGroup.length){yield this.asyncSliceGroup;}},*childEvents(){if(this.timeSlices){yield*this.timeSlices;}},iterateAllPersistableObjects(cb){cb(this);if(this.sliceGroup.length){cb(this.sliceGroup);}
this.asyncSliceGroup.viewSubGroups.forEach(cb);},shiftTimestampsForward(amount){this.sliceGroup.shiftTimestampsForward(amount);if(this.timeSlices){for(let i=0;i<this.timeSlices.length;i++){const slice=this.timeSlices[i];slice.start+=amount;}}
this.kernelSliceGroup.shiftTimestampsForward(amount);this.asyncSliceGroup.shiftTimestampsForward(amount);},get isEmpty(){if(this.sliceGroup.length)return false;if(this.sliceGroup.openSliceCount)return false;if(this.timeSlices&&this.timeSlices.length)return false;if(this.kernelSliceGroup.length)return false;if(this.asyncSliceGroup.length)return false;if(this.samples_.length)return false;return true;},updateBounds(){this.bounds.reset();this.sliceGroup.updateBounds();this.bounds.addRange(this.sliceGroup.bounds);this.kernelSliceGroup.updateBounds();this.bounds.addRange(this.kernelSliceGroup.bounds);this.asyncSliceGroup.updateBounds();this.bounds.addRange(this.asyncSliceGroup.bounds);if(this.timeSlices&&this.timeSlices.length){this.bounds.addValue(this.timeSlices[0].start);this.bounds.addValue(this.timeSlices[this.timeSlices.length-1].end);}
if(this.samples_&&this.samples_.length){this.bounds.addValue(this.samples_[0].start);this.bounds.addValue(this.samples_[this.samples_.length-1].end);}},addCategoriesToDict(categoriesDict){for(let i=0;i<this.sliceGroup.length;i++){categoriesDict[this.sliceGroup.slices[i].category]=true;}
for(let i=0;i<this.kernelSliceGroup.length;i++){categoriesDict[this.kernelSliceGroup.slices[i].category]=true;}
for(let i=0;i<this.asyncSliceGroup.length;i++){categoriesDict[this.asyncSliceGroup.slices[i].category]=true;}
if(this.samples_){for(let i=0;i<this.samples_.length;i++){categoriesDict[this.samples_[i].category]=true;}}},autoCloseOpenSlices(){this.sliceGroup.autoCloseOpenSlices();this.kernelSliceGroup.autoCloseOpenSlices();},mergeKernelWithUserland(){if(this.kernelSliceGroup.length>0){const newSlices=SliceGroup.merge(this.sliceGroup,this.kernelSliceGroup);this.sliceGroup.slices=newSlices.slices;this.kernelSliceGroup=new SliceGroup(this);this.updateBounds();}},createSubSlices(){this.sliceGroup.createSubSlices();this.samples_=this.parent.model.samples.filter(sample=>sample.thread===this);},get userFriendlyName(){return this.name||this.tid;},get userFriendlyDetails(){return'tid: '+this.tid+
(this.name?', name: '+this.name:'');},getSettingsKey(){if(!this.name)return undefined;const parentKey=this.parent.getSettingsKey();if(!parentKey)return undefined;return parentKey+'.'+this.name;},getProcess(){return this.parent;},indexOfTimeSlice(timeSlice){const i=tr.b.math.findLowIndexInSortedArray(this.timeSlices,function(slice){return slice.start;},timeSlice.start);if(this.timeSlices[i]!==timeSlice)return undefined;return i;},getCpuStatsForRange(range){const stats={};stats.total=0;if(!this.timeSlices)return stats;function addStatsForSlice(threadTimeSlice){const freqRange=tr.b.math.Range.fromExplicitRange(threadTimeSlice.start,threadTimeSlice.end);const intersection=freqRange.findIntersection(range);if(threadTimeSlice.schedulingState===tr.model.SCHEDULING_STATE.RUNNING){const cpu=threadTimeSlice.cpuOnWhichThreadWasRunning;if(!(cpu.cpuNumber in stats)){stats[cpu.cpuNumber]=0;}
stats[cpu.cpuNumber]+=intersection.duration;stats.total+=intersection.duration;}}
tr.b.math.iterateOverIntersectingIntervals(this.timeSlices,function(x){return x.start;},function(x){return x.end;},range.min,range.max,addStatsForSlice);return stats;},getSchedulingStatsForRange(start,end){const stats={};if(!this.timeSlices)return stats;function addStatsForSlice(threadTimeSlice){const overlapStart=Math.max(threadTimeSlice.start,start);const overlapEnd=Math.min(threadTimeSlice.end,end);const schedulingState=threadTimeSlice.schedulingState;if(!(schedulingState in stats))stats[schedulingState]=0;stats[schedulingState]+=overlapEnd-overlapStart;}
tr.b.math.iterateOverIntersectingIntervals(this.timeSlices,function(x){return x.start;},function(x){return x.end;},start,end,addStatsForSlice);return stats;},get samples(){return this.samples_;},get type(){const re=/^[^0-9|\/]+/;const matches=re.exec(this.name);if(matches&&matches[0])return matches[0];throw new Error('Could not determine thread type for thread name '+
this.name);}};Thread.compare=function(x,y){let tmp=x.parent.compareTo(y.parent);if(tmp)return tmp;tmp=x.sortIndex-y.sortIndex;if(tmp)return tmp;tmp=tr.b.comparePossiblyUndefinedValues(x.name,y.name,function(x,y){return x.localeCompare(y);});if(tmp)return tmp;return x.tid-y.tid;};return{Thread,};});'use strict';tr.exportTo('tr.model',function(){const Thread=tr.model.Thread;const Counter=tr.model.Counter;function ProcessBase(model){if(!model){throw new Error('Must provide a model');}
tr.model.EventContainer.call(this);this.model=model;this.threads={};this.counters={};this.objects=new tr.model.ObjectCollection(this);this.sortIndex=0;}
ProcessBase.compare=function(x,y){return x.sortIndex-y.sortIndex;};ProcessBase.prototype={__proto__:tr.model.EventContainer.prototype,get stableId(){throw new Error('Not implemented');},*childEventContainers(){yield*Object.values(this.threads);yield*Object.values(this.counters);yield this.objects;},iterateAllPersistableObjects(cb){cb(this);for(const tid in this.threads){this.threads[tid].iterateAllPersistableObjects(cb);}},get numThreads(){let n=0;for(const p in this.threads){n++;}
return n;},shiftTimestampsForward(amount){for(const child of this.childEventContainers()){child.shiftTimestampsForward(amount);}},autoCloseOpenSlices(){for(const tid in this.threads){const thread=this.threads[tid];thread.autoCloseOpenSlices();}},autoDeleteObjects(maxTimestamp){this.objects.autoDeleteObjects(maxTimestamp);},preInitializeObjects(){this.objects.preInitializeAllObjects();},initializeObjects(){this.objects.initializeAllObjects();},mergeKernelWithUserland(){for(const tid in this.threads){const thread=this.threads[tid];thread.mergeKernelWithUserland();}},updateBounds(){this.bounds.reset();for(const tid in this.threads){this.threads[tid].updateBounds();this.bounds.addRange(this.threads[tid].bounds);}
for(const id in this.counters){this.counters[id].updateBounds();this.bounds.addRange(this.counters[id].bounds);}
this.objects.updateBounds();this.bounds.addRange(this.objects.bounds);},addCategoriesToDict(categoriesDict){for(const tid in this.threads){this.threads[tid].addCategoriesToDict(categoriesDict);}
for(const id in this.counters){categoriesDict[this.counters[id].category]=true;}
this.objects.addCategoriesToDict(categoriesDict);},findAllThreadsMatching(predicate,opt_this){const threads=[];for(const tid in this.threads){const thread=this.threads[tid];if(predicate.call(opt_this,thread)){threads.push(thread);}}
return threads;},findAllThreadsNamed(name){const threads=this.findAllThreadsMatching(function(thread){if(!thread.name)return false;return thread.name===name;});return threads;},findAtMostOneThreadNamed(name){const threads=this.findAllThreadsNamed(name);if(threads.length===0)return undefined;if(threads.length>1){throw new Error('Expected no more than one '+name);}
return threads[0];},pruneEmptyContainers(){const threadsToKeep={};for(const tid in this.threads){const thread=this.threads[tid];if(!thread.isEmpty){threadsToKeep[tid]=thread;}}
this.threads=threadsToKeep;},getThread(tid){return this.threads[tid];},getOrCreateThread(tid){if(!this.threads[tid]){this.threads[tid]=new Thread(this,tid);}
return this.threads[tid];},getOrCreateCounter(cat,name){const id=cat+'.'+name;if(!this.counters[id]){this.counters[id]=new Counter(this,id,cat,name);}
return this.counters[id];},getSettingsKey(){throw new Error('Not implemented');},createSubSlices(){for(const tid in this.threads){this.threads[tid].createSubSlices();}}};return{ProcessBase,};});'use strict';tr.exportTo('tr.model',function(){const ColorScheme=tr.b.ColorScheme;const Counter=tr.model.Counter;const CpuSlice=tr.model.CpuSlice;function Cpu(kernel,number){if(kernel===undefined||number===undefined){throw new Error('Missing arguments');}
this.kernel=kernel;this.cpuNumber=number;this.slices=[];this.counters={};this.bounds_=new tr.b.math.Range();this.samples_=undefined;this.lastActiveTimestamp_=undefined;this.lastActiveThread_=undefined;this.lastActiveName_=undefined;this.lastActiveArgs_=undefined;}
Cpu.prototype={__proto__:tr.model.EventContainer.prototype,get samples(){return this.samples_;},get userFriendlyName(){return'CPU '+this.cpuNumber;},*findTopmostSlicesInThisContainer(eventPredicate,opt_this){for(const s of this.slices){yield*s.findTopmostSlicesRelativeToThisSlice(eventPredicate,opt_this);}},*childEvents(){yield*this.slices;if(this.samples_){yield*this.samples_;}},*childEventContainers(){yield*Object.values(this.counters);},getOrCreateCounter(cat,name){const id=cat+'.'+name;if(!this.counters[id]){this.counters[id]=new Counter(this,id,cat,name);}
return this.counters[id];},getCounter(cat,name){const id=cat+'.'+name;if(!this.counters[id]){return undefined;}
return this.counters[id];},shiftTimestampsForward(amount){for(let sI=0;sI<this.slices.length;sI++){this.slices[sI].start=(this.slices[sI].start+amount);}
for(const id in this.counters){this.counters[id].shiftTimestampsForward(amount);}},updateBounds(){this.bounds_.reset();if(this.slices.length){this.bounds_.addValue(this.slices[0].start);this.bounds_.addValue(this.slices[this.slices.length-1].end);}
for(const id in this.counters){this.counters[id].updateBounds();this.bounds_.addRange(this.counters[id].bounds);}
if(this.samples_&&this.samples_.length){this.bounds_.addValue(this.samples_[0].start);this.bounds_.addValue(this.samples_[this.samples_.length-1].end);}},createSubSlices(){this.samples_=this.kernel.model.samples.filter(function(sample){return sample.cpu===this;},this);},addCategoriesToDict(categoriesDict){for(let i=0;i<this.slices.length;i++){categoriesDict[this.slices[i].category]=true;}
for(const id in this.counters){categoriesDict[this.counters[id].category]=true;}
for(let i=0;i<this.samples_.length;i++){categoriesDict[this.samples_[i].category]=true;}},indexOf(cpuSlice){const i=tr.b.math.findLowIndexInSortedArray(this.slices,function(slice){return slice.start;},cpuSlice.start);if(this.slices[i]!==cpuSlice)return undefined;return i;},closeActiveThread(endTimestamp,args){if(this.lastActiveThread_===undefined||this.lastActiveThread_===0){return;}
if(endTimestamp<this.lastActiveTimestamp_){throw new Error('The end timestamp of a thread running on CPU '+
this.cpuNumber+' is before its start timestamp.');}
for(const key in args){this.lastActiveArgs_[key]=args[key];}
const duration=endTimestamp-this.lastActiveTimestamp_;const slice=new tr.model.CpuSlice('',this.lastActiveName_,ColorScheme.getColorIdForGeneralPurposeString(this.lastActiveName_),this.lastActiveTimestamp_,this.lastActiveArgs_,duration);slice.cpu=this;this.slices.push(slice);this.lastActiveTimestamp_=undefined;this.lastActiveThread_=undefined;this.lastActiveName_=undefined;this.lastActiveArgs_=undefined;},switchActiveThread(timestamp,oldThreadArgs,newThreadId,newThreadName,newThreadArgs){this.closeActiveThread(timestamp,oldThreadArgs);this.lastActiveTimestamp_=timestamp;this.lastActiveThread_=newThreadId;this.lastActiveName_=newThreadName;this.lastActiveArgs_=newThreadArgs;},getFreqStatsForRange(range){const stats={};function addStatsForFreq(freqSample,index){const freqEnd=(index<freqSample.series_.length-1)?freqSample.series_.samples_[index+1].timestamp:range.max;const freqRange=tr.b.math.Range.fromExplicitRange(freqSample.timestamp,freqEnd);const intersection=freqRange.findIntersection(range);if(!(freqSample.value in stats)){stats[freqSample.value]=0;}
stats[freqSample.value]+=intersection.duration;}
const freqCounter=this.getCounter('','Clock Frequency');if(freqCounter!==undefined){const freqSeries=freqCounter.getSeries(0);if(!freqSeries)return;tr.b.math.iterateOverIntersectingIntervals(freqSeries.samples_,function(x){return x.timestamp;},function(x,index){if(index<freqSeries.length-1){return freqSeries.samples_[index+1].timestamp;}
return range.max;},range.min,range.max,addStatsForFreq);}
return stats;}};Cpu.compare=function(x,y){return x.cpuNumber-y.cpuNumber;};return{Cpu,};});'use strict';tr.exportTo('tr.model',function(){const Event=tr.model.Event;const EventRegistry=tr.model.EventRegistry;function PowerSample(series,start,powerInW){Event.call(this);this.series_=series;this.start_=parseFloat(start);this.powerInW_=parseFloat(powerInW);}
PowerSample.prototype={__proto__:Event.prototype,get series(){return this.series_;},get start(){return this.start_;},set start(value){this.start_=value;},get powerInW(){return this.powerInW_;},set powerInW(value){this.powerInW_=value;},addBoundsToRange(range){range.addValue(this.start);}};EventRegistry.register(PowerSample,{name:'powerSample',pluralName:'powerSamples'});return{PowerSample,};});'use strict';tr.exportTo('tr.model',function(){const PowerSample=tr.model.PowerSample;function PowerSeries(device){tr.model.EventContainer.call(this);this.device_=device;this.samples_=[];}
PowerSeries.prototype={__proto__:tr.model.EventContainer.prototype,get device(){return this.device_;},get samples(){return this.samples_;},get stableId(){return this.device_.stableId+'.PowerSeries';},addPowerSample(ts,val){const sample=new PowerSample(this,ts,val);this.samples_.push(sample);return sample;},getEnergyConsumedInJ(start,end){const measurementRange=tr.b.math.Range.fromExplicitRange(start,end);let energyConsumedInJ=0;let startIndex=tr.b.math.findLowIndexInSortedArray(this.samples,x=>x.start,start)-1;const endIndex=tr.b.math.findLowIndexInSortedArray(this.samples,x=>x.start,end);if(startIndex<0){startIndex=0;}
for(let i=startIndex;i<endIndex;i++){const sample=this.samples[i];const nextSample=this.samples[i+1];const sampleRange=new tr.b.math.Range();sampleRange.addValue(sample.start);sampleRange.addValue(nextSample?nextSample.start:sample.start);const intersectionRangeInMs=measurementRange.findIntersection(sampleRange);const durationInS=tr.b.convertUnit(intersectionRangeInMs.duration,tr.b.UnitPrefixScale.METRIC.MILLI,tr.b.UnitPrefixScale.METRIC.NONE);energyConsumedInJ+=durationInS*sample.powerInW;}
return energyConsumedInJ;},getSamplesWithinRange(start,end){const startIndex=tr.b.math.findLowIndexInSortedArray(this.samples,x=>x.start,start);const endIndex=tr.b.math.findLowIndexInSortedArray(this.samples,x=>x.start,end);return this.samples.slice(startIndex,endIndex);},shiftTimestampsForward(amount){for(let i=0;i<this.samples_.length;++i){this.samples_[i].start+=amount;}},updateBounds(){this.bounds.reset();if(this.samples_.length===0)return;this.bounds.addValue(this.samples_[0].start);this.bounds.addValue(this.samples_[this.samples_.length-1].start);},*childEvents(){yield*this.samples_;},};return{PowerSeries,};});'use strict';tr.exportTo('tr.model',function(){function Device(model){if(!model){throw new Error('Must provide a model.');}
tr.model.EventContainer.call(this);this.powerSeries_=undefined;this.cpuUsageSeries_=undefined;this.vSyncTimestamps_=[];}
Device.compare=function(x,y){return x.guid-y.guid;};Device.prototype={__proto__:tr.model.EventContainer.prototype,compareTo(that){return Device.compare(this,that);},get userFriendlyName(){return'Device';},get userFriendlyDetails(){return'Device';},get stableId(){return'Device';},getSettingsKey(){return'device';},get powerSeries(){return this.powerSeries_;},set powerSeries(powerSeries){this.powerSeries_=powerSeries;},get cpuUsageSeries(){return this.cpuUsageSeries_;},set cpuUsageSeries(cpuUsageSeries){this.cpuUsageSeries_=cpuUsageSeries;},get vSyncTimestamps(){return this.vSyncTimestamps_;},set vSyncTimestamps(value){this.vSyncTimestamps_=value;},updateBounds(){this.bounds.reset();for(const child of this.childEventContainers()){child.updateBounds();this.bounds.addRange(child.bounds);}},shiftTimestampsForward(amount){for(const child of this.childEventContainers()){child.shiftTimestampsForward(amount);}
for(let i=0;i<this.vSyncTimestamps_.length;i++){this.vSyncTimestamps_[i]+=amount;}},addCategoriesToDict(categoriesDict){},*childEventContainers(){if(this.powerSeries_){yield this.powerSeries_;}
if(this.cpuUsageSeries_){yield this.cpuUsageSeries_;}}};return{Device,};});'use strict';tr.exportTo('tr.model',function(){function FlowEvent(category,id,title,colorId,start,args,opt_duration){tr.model.TimedEvent.call(this,start);this.category=category||'';this.title=title;this.colorId=colorId;this.start=start;this.args=args;this.id=id;this.startSlice=undefined;this.endSlice=undefined;this.startStackFrame=undefined;this.endStackFrame=undefined;if(opt_duration!==undefined){this.duration=opt_duration;}}
FlowEvent.prototype={__proto__:tr.model.TimedEvent.prototype,get userFriendlyName(){return'Flow event named '+this.title+' at '+
tr.b.Unit.byName.timeStampInMs.format(this.timestamp);}};tr.model.EventRegistry.register(FlowEvent,{name:'flowEvent',pluralName:'flowEvents'});return{FlowEvent,};});'use strict';tr.exportTo('tr.model',function(){function ContainerMemoryDump(start){tr.model.TimedEvent.call(this,start);this.levelOfDetail=undefined;this.memoryAllocatorDumps_=undefined;this.memoryAllocatorDumpsByFullName_=undefined;}
ContainerMemoryDump.LevelOfDetail={BACKGROUND:0,LIGHT:1,DETAILED:2};ContainerMemoryDump.prototype={__proto__:tr.model.TimedEvent.prototype,shiftTimestampsForward(amount){this.start+=amount;},get memoryAllocatorDumps(){return this.memoryAllocatorDumps_;},set memoryAllocatorDumps(memoryAllocatorDumps){this.memoryAllocatorDumps_=memoryAllocatorDumps;this.forceRebuildingMemoryAllocatorDumpByFullNameIndex();},getMemoryAllocatorDumpByFullName(fullName){if(this.memoryAllocatorDumps_===undefined)return undefined;if(this.memoryAllocatorDumpsByFullName_===undefined){const index={};function addDumpsToIndex(dumps){dumps.forEach(function(dump){index[dump.fullName]=dump;addDumpsToIndex(dump.children);});}
addDumpsToIndex(this.memoryAllocatorDumps_);this.memoryAllocatorDumpsByFullName_=index;}
return this.memoryAllocatorDumpsByFullName_[fullName];},forceRebuildingMemoryAllocatorDumpByFullNameIndex(){this.memoryAllocatorDumpsByFullName_=undefined;},iterateRootAllocatorDumps(fn,opt_this){if(this.memoryAllocatorDumps===undefined)return;this.memoryAllocatorDumps.forEach(fn,opt_this||this);}};return{ContainerMemoryDump,};});'use strict';tr.exportTo('tr.model',function(){function MemoryAllocatorDump(containerMemoryDump,fullName,opt_guid){this.fullName=fullName;this.parent=undefined;this.children=[];this.numerics={};this.diagnostics={};this.containerMemoryDump=containerMemoryDump;this.owns=undefined;this.ownedBy=[];this.ownedBySiblingSizes=new Map();this.retains=[];this.retainedBy=[];this.weak=false;this.infos=[];this.guid=opt_guid;}
MemoryAllocatorDump.SIZE_NUMERIC_NAME='size';MemoryAllocatorDump.EFFECTIVE_SIZE_NUMERIC_NAME='effective_size';MemoryAllocatorDump.RESIDENT_SIZE_NUMERIC_NAME='resident_size';MemoryAllocatorDump.DISPLAYED_SIZE_NUMERIC_NAME=MemoryAllocatorDump.EFFECTIVE_SIZE_NUMERIC_NAME;MemoryAllocatorDump.prototype={get name(){return this.fullName.substring(this.fullName.lastIndexOf('/')+1);},get quantifiedName(){return'\''+this.fullName+'\' in '+
this.containerMemoryDump.containerName;},getDescendantDumpByFullName(fullName){return this.containerMemoryDump.getMemoryAllocatorDumpByFullName(this.fullName+'/'+fullName);},isDescendantOf(otherDump){if(this===otherDump)return true;if(this.parent===undefined)return false;return this.parent.isDescendantOf(otherDump);},addNumeric(name,numeric){if(!(numeric instanceof tr.b.Scalar)){throw new Error('Numeric value must be an instance of Scalar.');}
if(name in this.numerics){throw new Error('Duplicate numeric name: '+name+'.');}
this.numerics[name]=numeric;},addDiagnostic(name,text){if(typeof text!=='string'){throw new Error('Diagnostic text must be a string.');}
if(name in this.diagnostics){throw new Error('Duplicate diagnostic name: '+name+'.');}
this.diagnostics[name]=text;},aggregateNumericsRecursively(opt_model){const numericNames=new Set();this.children.forEach(function(child){child.aggregateNumericsRecursively(opt_model);for(const[item,value]of Object.entries(child.numerics)){numericNames.add(item,value);}},this);numericNames.forEach(function(numericName){if(numericName===MemoryAllocatorDump.SIZE_NUMERIC_NAME||numericName===MemoryAllocatorDump.EFFECTIVE_SIZE_NUMERIC_NAME||this.numerics[numericName]!==undefined){return;}
this.numerics[numericName]=MemoryAllocatorDump.aggregateNumerics(this.children.map(function(child){return child.numerics[numericName];}),opt_model);},this);}};MemoryAllocatorDump.aggregateNumerics=function(numerics,opt_model){let shouldLogWarning=!!opt_model;let aggregatedUnit=undefined;let aggregatedValue=0;numerics.forEach(function(numeric){if(numeric===undefined)return;const unit=numeric.unit;if(aggregatedUnit===undefined){aggregatedUnit=unit;}else if(aggregatedUnit!==unit){if(shouldLogWarning){opt_model.importWarning({type:'numeric_parse_error',message:'Multiple units provided for numeric: \''+
aggregatedUnit.unitName+'\' and \''+unit.unitName+'\'.'});shouldLogWarning=false;}
aggregatedUnit=tr.b.Unit.byName.unitlessNumber_smallerIsBetter;}
aggregatedValue+=numeric.value;},this);if(aggregatedUnit===undefined)return undefined;return new tr.b.Scalar(aggregatedUnit,aggregatedValue);};function MemoryAllocatorDumpLink(source,target,opt_importance){this.source=source;this.target=target;this.importance=opt_importance;this.size=undefined;}
const MemoryAllocatorDumpInfoType={PROVIDED_SIZE_LESS_THAN_AGGREGATED_CHILDREN:0,PROVIDED_SIZE_LESS_THAN_LARGEST_OWNER:1};return{MemoryAllocatorDump,MemoryAllocatorDumpLink,MemoryAllocatorDumpInfoType,};});'use strict';tr.exportTo('tr.model',function(){function GlobalMemoryDump(model,start){tr.model.ContainerMemoryDump.call(this,start);this.model=model;this.processMemoryDumps={};}
const SIZE_NUMERIC_NAME=tr.model.MemoryAllocatorDump.SIZE_NUMERIC_NAME;const EFFECTIVE_SIZE_NUMERIC_NAME=tr.model.MemoryAllocatorDump.EFFECTIVE_SIZE_NUMERIC_NAME;const MemoryAllocatorDumpInfoType=tr.model.MemoryAllocatorDumpInfoType;const PROVIDED_SIZE_LESS_THAN_AGGREGATED_CHILDREN=MemoryAllocatorDumpInfoType.PROVIDED_SIZE_LESS_THAN_AGGREGATED_CHILDREN;const PROVIDED_SIZE_LESS_THAN_LARGEST_OWNER=MemoryAllocatorDumpInfoType.PROVIDED_SIZE_LESS_THAN_LARGEST_OWNER;function getSize(dump){const numeric=dump.numerics[SIZE_NUMERIC_NAME];if(numeric===undefined)return 0;return numeric.value;}
function hasSize(dump){return dump.numerics[SIZE_NUMERIC_NAME]!==undefined;}
function optional(value,defaultValue){if(value===undefined)return defaultValue;return value;}
GlobalMemoryDump.prototype={__proto__:tr.model.ContainerMemoryDump.prototype,get userFriendlyName(){return'Global memory dump at '+
tr.b.Unit.byName.timeStampInMs.format(this.start);},get containerName(){return'global space';},finalizeGraph(){this.removeWeakDumps();this.setUpTracingOverheadOwnership();this.aggregateNumerics();this.calculateSizes();this.calculateEffectiveSizes();this.discountTracingOverheadFromVmRegions();this.forceRebuildingMemoryAllocatorDumpByFullNameIndices();},removeWeakDumps(){this.traverseAllocatorDumpsInDepthFirstPreOrder(function(dump){if(dump.weak)return;if((dump.owns!==undefined&&dump.owns.target.weak)||(dump.parent!==undefined&&dump.parent.weak)){dump.weak=true;}});function removeWeakDumpsFromListRecursively(dumps){tr.b.inPlaceFilter(dumps,function(dump){if(dump.weak){return false;}
removeWeakDumpsFromListRecursively(dump.children);tr.b.inPlaceFilter(dump.ownedBy,function(ownershipLink){return!ownershipLink.source.weak;});return true;});}
this.iterateContainerDumps(function(containerDump){const memoryAllocatorDumps=containerDump.memoryAllocatorDumps;if(memoryAllocatorDumps!==undefined){removeWeakDumpsFromListRecursively(memoryAllocatorDumps);}});},calculateSizes(){this.traverseAllocatorDumpsInDepthFirstPostOrder(this.calculateMemoryAllocatorDumpSize_.bind(this));},calculateMemoryAllocatorDumpSize_(dump){let shouldDefineSize=false;function getDependencySize(dependencyDump){const numeric=dependencyDump.numerics[SIZE_NUMERIC_NAME];if(numeric===undefined)return 0;shouldDefineSize=true;return numeric.value;}
const sizeNumeric=dump.numerics[SIZE_NUMERIC_NAME];let size=0;let checkDependencySizeIsConsistent=function(){};if(sizeNumeric!==undefined){size=sizeNumeric.value;shouldDefineSize=true;if(sizeNumeric.unit!==tr.b.Unit.byName.sizeInBytes_smallerIsBetter){this.model.importWarning({type:'memory_dump_parse_error',message:'Invalid unit of \'size\' numeric of memory allocator '+'dump '+dump.quantifiedName+': '+
sizeNumeric.unit.unitName+'.'});}
checkDependencySizeIsConsistent=function(dependencySize,dependencyInfoType,dependencyName){if(size>=dependencySize)return;this.model.importWarning({type:'memory_dump_parse_error',message:'Size provided by memory allocator dump \''+
dump.fullName+'\''+
tr.b.Unit.byName.sizeInBytes.format(size)+') is less than '+dependencyName+' ('+
tr.b.Unit.byName.sizeInBytes.format(dependencySize)+').'});dump.infos.push({type:dependencyInfoType,providedSize:size,dependencySize});}.bind(this);}
let aggregatedChildrenSize=0;const allOverlaps={};dump.children.forEach(function(childDump){function aggregateDescendantDump(descendantDump){const ownedDumpLink=descendantDump.owns;if(ownedDumpLink!==undefined&&ownedDumpLink.target.isDescendantOf(dump)){let ownedChildDump=ownedDumpLink.target;while(ownedChildDump.parent!==dump){ownedChildDump=ownedChildDump.parent;}
if(childDump!==ownedChildDump){const ownedBySiblingSize=getDependencySize(descendantDump);if(ownedBySiblingSize>0){const previousTotalOwnedBySiblingSize=ownedChildDump.ownedBySiblingSizes.get(childDump)||0;const updatedTotalOwnedBySiblingSize=previousTotalOwnedBySiblingSize+ownedBySiblingSize;ownedChildDump.ownedBySiblingSizes.set(childDump,updatedTotalOwnedBySiblingSize);}}
return;}
if(descendantDump.children.length===0){aggregatedChildrenSize+=getDependencySize(descendantDump);return;}
descendantDump.children.forEach(aggregateDescendantDump);}
aggregateDescendantDump(childDump);});checkDependencySizeIsConsistent(aggregatedChildrenSize,PROVIDED_SIZE_LESS_THAN_AGGREGATED_CHILDREN,'the aggregated size of its children');let largestOwnerSize=0;dump.ownedBy.forEach(function(ownershipLink){const owner=ownershipLink.source;const ownerSize=getDependencySize(owner);largestOwnerSize=Math.max(largestOwnerSize,ownerSize);});checkDependencySizeIsConsistent(largestOwnerSize,PROVIDED_SIZE_LESS_THAN_LARGEST_OWNER,'the size of its largest owner');if(!shouldDefineSize){delete dump.numerics[SIZE_NUMERIC_NAME];return;}
size=Math.max(size,aggregatedChildrenSize,largestOwnerSize);dump.numerics[SIZE_NUMERIC_NAME]=new tr.b.Scalar(tr.b.Unit.byName.sizeInBytes_smallerIsBetter,size);if(aggregatedChildrenSize<size&&dump.children!==undefined&&dump.children.length>0){const virtualChild=new tr.model.MemoryAllocatorDump(dump.containerMemoryDump,dump.fullName+'/<unspecified>');virtualChild.parent=dump;dump.children.unshift(virtualChild);virtualChild.numerics[SIZE_NUMERIC_NAME]=new tr.b.Scalar(tr.b.Unit.byName.sizeInBytes_smallerIsBetter,size-aggregatedChildrenSize);}},calculateEffectiveSizes(){this.traverseAllocatorDumpsInDepthFirstPostOrder(this.calculateDumpSubSizes_.bind(this));this.traverseAllocatorDumpsInDepthFirstPostOrder(this.calculateDumpOwnershipCoefficient_.bind(this));this.traverseAllocatorDumpsInDepthFirstPreOrder(this.calculateDumpCumulativeOwnershipCoefficient_.bind(this));this.traverseAllocatorDumpsInDepthFirstPostOrder(this.calculateDumpEffectiveSize_.bind(this));},calculateDumpSubSizes_(dump){if(!hasSize(dump))return;if(dump.children===undefined||dump.children.length===0){const size=getSize(dump);dump.notOwningSubSize_=size;dump.notOwnedSubSize_=size;return;}
let notOwningSubSize=0;dump.children.forEach(function(childDump){if(childDump.owns!==undefined)return;notOwningSubSize+=optional(childDump.notOwningSubSize_,0);});dump.notOwningSubSize_=notOwningSubSize;let notOwnedSubSize=0;dump.children.forEach(function(childDump){if(childDump.ownedBy.length===0){notOwnedSubSize+=optional(childDump.notOwnedSubSize_,0);return;}
let largestChildOwnerSize=0;childDump.ownedBy.forEach(function(ownershipLink){largestChildOwnerSize=Math.max(largestChildOwnerSize,getSize(ownershipLink.source));});notOwnedSubSize+=getSize(childDump)-largestChildOwnerSize;});dump.notOwnedSubSize_=notOwnedSubSize;},calculateDumpOwnershipCoefficient_(dump){if(!hasSize(dump))return;if(dump.ownedBy.length===0)return;const owners=dump.ownedBy.map(function(ownershipLink){return{dump:ownershipLink.source,importance:optional(ownershipLink.importance,0),notOwningSubSize:optional(ownershipLink.source.notOwningSubSize_,0)};});owners.sort(function(a,b){if(a.importance===b.importance){return a.notOwningSubSize-b.notOwningSubSize;}
return b.importance-a.importance;});let currentImportanceStartPos=0;let alreadyAttributedSubSize=0;while(currentImportanceStartPos<owners.length){const currentImportance=owners[currentImportanceStartPos].importance;let nextImportanceStartPos=currentImportanceStartPos+1;while(nextImportanceStartPos<owners.length&&owners[nextImportanceStartPos].importance===currentImportance){nextImportanceStartPos++;}
let attributedNotOwningSubSize=0;for(let pos=currentImportanceStartPos;pos<nextImportanceStartPos;pos++){const owner=owners[pos];const notOwningSubSize=owner.notOwningSubSize;if(notOwningSubSize>alreadyAttributedSubSize){attributedNotOwningSubSize+=(notOwningSubSize-alreadyAttributedSubSize)/(nextImportanceStartPos-pos);alreadyAttributedSubSize=notOwningSubSize;}
let owningCoefficient=0;if(notOwningSubSize!==0){owningCoefficient=attributedNotOwningSubSize/notOwningSubSize;}
owner.dump.owningCoefficient_=owningCoefficient;}
currentImportanceStartPos=nextImportanceStartPos;}
const notOwnedSubSize=optional(dump.notOwnedSubSize_,0);const remainderSubSize=notOwnedSubSize-alreadyAttributedSubSize;let ownedCoefficient=0;if(notOwnedSubSize!==0){ownedCoefficient=remainderSubSize/notOwnedSubSize;}
dump.ownedCoefficient_=ownedCoefficient;},calculateDumpCumulativeOwnershipCoefficient_(dump){if(!hasSize(dump))return;let cumulativeOwnedCoefficient=optional(dump.ownedCoefficient_,1);const parent=dump.parent;if(dump.parent!==undefined){cumulativeOwnedCoefficient*=dump.parent.cumulativeOwnedCoefficient_;}
dump.cumulativeOwnedCoefficient_=cumulativeOwnedCoefficient;let cumulativeOwningCoefficient;if(dump.owns!==undefined){cumulativeOwningCoefficient=dump.owningCoefficient_*dump.owns.target.cumulativeOwningCoefficient_;}else if(dump.parent!==undefined){cumulativeOwningCoefficient=dump.parent.cumulativeOwningCoefficient_;}else{cumulativeOwningCoefficient=1;}
dump.cumulativeOwningCoefficient_=cumulativeOwningCoefficient;},calculateDumpEffectiveSize_(dump){if(!hasSize(dump)){delete dump.numerics[EFFECTIVE_SIZE_NUMERIC_NAME];return;}
let effectiveSize;if(dump.children===undefined||dump.children.length===0){effectiveSize=getSize(dump)*dump.cumulativeOwningCoefficient_*dump.cumulativeOwnedCoefficient_;}else{effectiveSize=0;dump.children.forEach(function(childDump){if(!hasSize(childDump))return;effectiveSize+=childDump.numerics[EFFECTIVE_SIZE_NUMERIC_NAME].value;});}
dump.numerics[EFFECTIVE_SIZE_NUMERIC_NAME]=new tr.b.Scalar(tr.b.Unit.byName.sizeInBytes_smallerIsBetter,effectiveSize);},aggregateNumerics(){this.iterateRootAllocatorDumps(function(dump){dump.aggregateNumericsRecursively(this.model);});this.iterateRootAllocatorDumps(this.propagateNumericsAndDiagnosticsRecursively);for(const processMemoryDump of Object.values(this.processMemoryDumps)){processMemoryDump.iterateRootAllocatorDumps(function(dump){dump.aggregateNumericsRecursively(this.model);},this);}},propagateNumericsAndDiagnosticsRecursively(globalAllocatorDump){['numerics','diagnostics'].forEach(function(field){for(const[name,value]of
Object.entries(globalAllocatorDump[field])){globalAllocatorDump.ownedBy.forEach(function(ownershipLink){const processAllocatorDump=ownershipLink.source;if(processAllocatorDump[field][name]!==undefined){return;}
processAllocatorDump[field][name]=value;});}});globalAllocatorDump.children.forEach(this.propagateNumericsAndDiagnosticsRecursively,this);},setUpTracingOverheadOwnership(){for(const dump of Object.values(this.processMemoryDumps)){dump.setUpTracingOverheadOwnership(this.model);}},discountTracingOverheadFromVmRegions(){for(const dump of Object.values(this.processMemoryDumps)){dump.discountTracingOverheadFromVmRegions(this.model);}},forceRebuildingMemoryAllocatorDumpByFullNameIndices(){this.iterateContainerDumps(function(containerDump){containerDump.forceRebuildingMemoryAllocatorDumpByFullNameIndex();});},iterateContainerDumps(fn){fn.call(this,this);for(const processDump of Object.values(this.processMemoryDumps)){fn.call(this,processDump);}},iterateAllRootAllocatorDumps(fn){this.iterateContainerDumps(function(containerDump){containerDump.iterateRootAllocatorDumps(fn,this);});},traverseAllocatorDumpsInDepthFirstPostOrder(fn){const visitedDumps=new WeakSet();const openDumps=new WeakSet();function visit(dump){if(visitedDumps.has(dump))return;if(openDumps.has(dump)){throw new Error(dump.userFriendlyName+' contains a cycle');}
openDumps.add(dump);dump.ownedBy.forEach(function(ownershipLink){visit.call(this,ownershipLink.source);},this);dump.children.forEach(visit,this);fn.call(this,dump);visitedDumps.add(dump);openDumps.delete(dump);}
this.iterateAllRootAllocatorDumps(visit);},traverseAllocatorDumpsInDepthFirstPreOrder(fn){const visitedDumps=new WeakSet();function visit(dump){if(visitedDumps.has(dump))return;if(dump.owns!==undefined&&!visitedDumps.has(dump.owns.target)){return;}
if(dump.parent!==undefined&&!visitedDumps.has(dump.parent)){return;}
fn.call(this,dump);visitedDumps.add(dump);dump.ownedBy.forEach(function(ownershipLink){visit.call(this,ownershipLink.source);},this);dump.children.forEach(visit,this);}
this.iterateAllRootAllocatorDumps(visit);}};tr.model.EventRegistry.register(GlobalMemoryDump,{name:'globalMemoryDump',pluralName:'globalMemoryDumps'});return{GlobalMemoryDump,};});'use strict';tr.exportTo('tr.model',function(){const InstantEventType={GLOBAL:1,PROCESS:2};function InstantEvent(category,title,colorId,start,args){tr.model.TimedEvent.call(this,start);this.category=category||'';this.title=title;this.colorId=colorId;this.args=args;this.type=undefined;}
InstantEvent.prototype={__proto__:tr.model.TimedEvent.prototype};function GlobalInstantEvent(category,title,colorId,start,args){InstantEvent.apply(this,arguments);this.type=InstantEventType.GLOBAL;}
GlobalInstantEvent.prototype={__proto__:InstantEvent.prototype,get userFriendlyName(){return'Global instant event '+this.title+' @ '+
tr.b.Unit.byName.timeStampInMs.format(start);}};function ProcessInstantEvent(category,title,colorId,start,args){InstantEvent.apply(this,arguments);this.type=InstantEventType.PROCESS;}
ProcessInstantEvent.prototype={__proto__:InstantEvent.prototype,get userFriendlyName(){return'Process-level instant event '+this.title+' @ '+
tr.b.Unit.byName.timeStampInMs.format(start);}};tr.model.EventRegistry.register(InstantEvent,{name:'instantEvent',pluralName:'instantEvents'});return{GlobalInstantEvent,ProcessInstantEvent,InstantEventType,InstantEvent,};});'use strict';tr.exportTo('tr.model',function(){const Cpu=tr.model.Cpu;const ProcessBase=tr.model.ProcessBase;function Kernel(model){ProcessBase.call(this,model);this.cpus={};this.softwareMeasuredCpuCount_=undefined;}
Kernel.compare=function(x,y){return 0;};Kernel.prototype={__proto__:ProcessBase.prototype,compareTo(that){return Kernel.compare(this,that);},get userFriendlyName(){return'Kernel';},get userFriendlyDetails(){return'Kernel';},get stableId(){return'Kernel';},getOrCreateCpu(cpuNumber){if(!this.cpus[cpuNumber]){this.cpus[cpuNumber]=new Cpu(this,cpuNumber);}
return this.cpus[cpuNumber];},get softwareMeasuredCpuCount(){return this.softwareMeasuredCpuCount_;},set softwareMeasuredCpuCount(softwareMeasuredCpuCount){if(this.softwareMeasuredCpuCount_!==undefined&&this.softwareMeasuredCpuCount_!==softwareMeasuredCpuCount){throw new Error('Cannot change the softwareMeasuredCpuCount once it is set');}
this.softwareMeasuredCpuCount_=softwareMeasuredCpuCount;},get bestGuessAtCpuCount(){const realCpuCount=Object.keys(this.cpus).length;if(realCpuCount!==0){return realCpuCount;}
return this.softwareMeasuredCpuCount;},updateBounds(){ProcessBase.prototype.updateBounds.call(this);for(const cpuNumber in this.cpus){const cpu=this.cpus[cpuNumber];cpu.updateBounds();this.bounds.addRange(cpu.bounds);}},createSubSlices(){ProcessBase.prototype.createSubSlices.call(this);for(const cpuNumber in this.cpus){const cpu=this.cpus[cpuNumber];cpu.createSubSlices();}},addCategoriesToDict(categoriesDict){ProcessBase.prototype.addCategoriesToDict.call(this,categoriesDict);for(const cpuNumber in this.cpus){this.cpus[cpuNumber].addCategoriesToDict(categoriesDict);}},getSettingsKey(){return'kernel';},*childEventContainers(){yield*ProcessBase.prototype.childEventContainers.call(this);yield*Object.values(this.cpus);},};return{Kernel,};});'use strict';tr.exportTo('tr.model',function(){function ModelIndices(model){this.flowEventsById_={};model.flowEvents.forEach(function(fe){if(fe.id!==undefined){if(!this.flowEventsById_.hasOwnProperty(fe.id)){this.flowEventsById_[fe.id]=[];}
this.flowEventsById_[fe.id].push(fe);}},this);}
ModelIndices.prototype={addEventWithId(id,event){if(!this.flowEventsById_.hasOwnProperty(id)){this.flowEventsById_[id]=[];}
this.flowEventsById_[id].push(event);},getFlowEventsWithId(id){if(!this.flowEventsById_.hasOwnProperty(id)){return[];}
return this.flowEventsById_[id];}};return{ModelIndices,};});'use strict';tr.exportTo('tr.model',function(){function ModelStats(){this.traceEventCountsByKey_=new Map();this.allTraceEventStats_=[];this.traceEventStatsInTimeIntervals_=new Map();this.allTraceEventStatsInTimeIntervals_=[];this.hasEventSizesinBytes_=false;this.traceImportDurationMs_=undefined;}
ModelStats.prototype={TIME_INTERVAL_SIZE_IN_MS:100,willProcessBasicTraceEvent(phase,category,title,ts,opt_eventSizeinBytes){const key=phase+'/'+category+'/'+title;let eventStats=this.traceEventCountsByKey_.get(key);if(eventStats===undefined){eventStats={phase,category,title,numEvents:0,totalEventSizeinBytes:0};this.traceEventCountsByKey_.set(key,eventStats);this.allTraceEventStats_.push(eventStats);}
eventStats.numEvents++;const timeIntervalKey=Math.floor(tr.b.Unit.timestampFromUs(ts)/this.TIME_INTERVAL_SIZE_IN_MS);let eventStatsByTimeInverval=this.traceEventStatsInTimeIntervals_.get(timeIntervalKey);if(eventStatsByTimeInverval===undefined){eventStatsByTimeInverval={timeInterval:timeIntervalKey,numEvents:0,totalEventSizeinBytes:0};this.traceEventStatsInTimeIntervals_.set(timeIntervalKey,eventStatsByTimeInverval);this.allTraceEventStatsInTimeIntervals_.push(eventStatsByTimeInverval);}
eventStatsByTimeInverval.numEvents++;if(opt_eventSizeinBytes!==undefined){this.hasEventSizesinBytes_=true;eventStats.totalEventSizeinBytes+=opt_eventSizeinBytes;eventStatsByTimeInverval.totalEventSizeinBytes+=opt_eventSizeinBytes;}},get allTraceEventStats(){return this.allTraceEventStats_;},get allTraceEventStatsInTimeIntervals(){return this.allTraceEventStatsInTimeIntervals_;},get hasEventSizesinBytes(){return this.hasEventSizesinBytes_;},get traceImportDurationMs(){return this.traceImportDurationMs_;},set traceImportDurationMs(traceImportDurationMs){this.traceImportDurationMs_=traceImportDurationMs;}};return{ModelStats,};});'use strict';tr.exportTo('tr.model',function(){function VMRegion(startAddress,sizeInBytes,protectionFlags,mappedFile,byteStats){this.startAddress=startAddress;this.sizeInBytes=sizeInBytes;this.protectionFlags=protectionFlags;this.mappedFile=mappedFile||'';this.byteStats=byteStats||{};}
VMRegion.PROTECTION_FLAG_READ=4;VMRegion.PROTECTION_FLAG_WRITE=2;VMRegion.PROTECTION_FLAG_EXECUTE=1;VMRegion.PROTECTION_FLAG_MAYSHARE=128;VMRegion.prototype={get uniqueIdWithinProcess(){return this.mappedFile+'#'+this.startAddress;},get protectionFlagsToString(){if(this.protectionFlags===undefined)return undefined;return((this.protectionFlags&VMRegion.PROTECTION_FLAG_READ?'r':'-')+
(this.protectionFlags&VMRegion.PROTECTION_FLAG_WRITE?'w':'-')+
(this.protectionFlags&VMRegion.PROTECTION_FLAG_EXECUTE?'x':'-')+
(this.protectionFlags&VMRegion.PROTECTION_FLAG_MAYSHARE?'s':'p'));}};VMRegion.fromDict=function(dict){return new VMRegion(dict.startAddress,dict.sizeInBytes,dict.protectionFlags,dict.mappedFile,dict.byteStats);};function VMRegionClassificationNode(opt_rule){this.rule_=opt_rule||VMRegionClassificationNode.CLASSIFICATION_RULES;this.hasRegions=false;this.sizeInBytes=undefined;this.byteStats={};this.children_=undefined;this.regions_=[];}
VMRegionClassificationNode.CLASSIFICATION_RULES={name:'Total',children:[{name:'Android',file:/^\/dev\/ashmem(?!\/libc malloc)/,children:[{name:'Java runtime',file:/^\/dev\/ashmem\/dalvik-/,children:[{name:'Spaces',file:/\/dalvik-(alloc|main|large object|non moving|zygote) space/,children:[{name:'Normal',file:/\/dalvik-(alloc|main)/},{name:'Large',file:/\/dalvik-large object/},{name:'Zygote',file:/\/dalvik-zygote/},{name:'Non-moving',file:/\/dalvik-non moving/}]},{name:'Linear Alloc',file:/\/dalvik-LinearAlloc/},{name:'Indirect Reference Table',file:/\/dalvik-indirect.ref/},{name:'Cache',file:/\/dalvik-jit-code-cache/},{name:'Accounting'}]},{name:'Cursor',file:/\/CursorWindow/},{name:'Ashmem'}]},{name:'Native heap',file:/^((\[heap\])|(\[anon:)|(\/dev\/ashmem\/libc malloc)|(\[discounted tracing overhead\])|$)/},{name:'Stack',file:/^\[stack/},{name:'Files',file:/\.((((jar)|(apk)|(ttf)|(odex)|(oat)|(art))$)|(dex)|(so))/,children:[{name:'so',file:/\.so/},{name:'jar',file:/\.jar$/},{name:'apk',file:/\.apk$/},{name:'ttf',file:/\.ttf$/},{name:'dex',file:/\.((dex)|(odex$))/},{name:'oat',file:/\.oat$/},{name:'art',file:/\.art$/}]},{name:'Devices',file:/(^\/dev\/)|(anon_inode:dmabuf)/,children:[{name:'GPU',file:/\/((nv)|(mali)|(kgsl))/},{name:'DMA',file:/anon_inode:dmabuf/}]}]};VMRegionClassificationNode.OTHER_RULE={name:'Other'};VMRegionClassificationNode.fromRegions=function(regions,opt_rules){const tree=new VMRegionClassificationNode(opt_rules);tree.regions_=regions;for(let i=0;i<regions.length;i++){tree.addStatsFromRegion_(regions[i]);}
return tree;};VMRegionClassificationNode.prototype={get title(){return this.rule_.name;},get children(){if(this.isLeafNode){return undefined;}
if(this.children_===undefined){this.buildTree_();}
return this.children_;},get regions(){if(!this.isLeafNode){return undefined;}
return this.regions_;},get allRegionsForTesting(){if(this.regions_!==undefined){if(this.children_!==undefined){throw new Error('Internal error: a VM region classification node '+'cannot have both regions and children');}
return this.regions_;}
let regions=[];this.children_.forEach(function(childNode){regions=regions.concat(childNode.allRegionsForTesting);});return regions;},get isLeafNode(){const children=this.rule_.children;return children===undefined||children.length===0;},addRegion(region){this.addRegionRecursively_(region,true);},someRegion(fn,opt_this){if(this.regions_!==undefined){return this.regions_.some(fn,opt_this);}
return this.children_.some(function(childNode){return childNode.someRegion(fn,opt_this);});},addRegionRecursively_(region,addStatsToThisNode){if(addStatsToThisNode){this.addStatsFromRegion_(region);}
if(this.regions_!==undefined){if(this.children_!==undefined){throw new Error('Internal error: a VM region classification node '+'cannot have both regions and children');}
this.regions_.push(region);return;}
function regionRowMatchesChildNide(child){const fileRegExp=child.rule_.file;if(fileRegExp===undefined)return true;return fileRegExp.test(region.mappedFile);}
let matchedChild=tr.b.findFirstInArray(this.children_,regionRowMatchesChildNide);if(matchedChild===undefined){if(this.children_.length!==this.rule_.children.length){throw new Error('Internal error');}
matchedChild=new VMRegionClassificationNode(VMRegionClassificationNode.OTHER_RULE);this.children_.push(matchedChild);}
matchedChild.addRegionRecursively_(region,true);},buildTree_(){const cachedRegions=this.regions_;this.regions_=undefined;this.buildChildNodesRecursively_();for(let i=0;i<cachedRegions.length;i++){this.addRegionRecursively_(cachedRegions[i],false);}},buildChildNodesRecursively_(){if(this.children_!==undefined){throw new Error('Internal error: Classification node already has children');}
if(this.regions_!==undefined&&this.regions_.length!==0){throw new Error('Internal error: Classification node should have no regions');}
if(this.isLeafNode){return;}
this.regions_=undefined;this.children_=this.rule_.children.map(function(childRule){const child=new VMRegionClassificationNode(childRule);child.buildChildNodesRecursively_();return child;});},addStatsFromRegion_(region){this.hasRegions=true;const regionSizeInBytes=region.sizeInBytes;if(regionSizeInBytes!==undefined){this.sizeInBytes=(this.sizeInBytes||0)+regionSizeInBytes;}
const thisByteStats=this.byteStats;const regionByteStats=region.byteStats;for(const byteStatName in regionByteStats){const regionByteStatValue=regionByteStats[byteStatName];if(regionByteStatValue===undefined)continue;thisByteStats[byteStatName]=(thisByteStats[byteStatName]||0)+regionByteStatValue;}}};return{VMRegion,VMRegionClassificationNode,};});'use strict';tr.exportTo('tr.model',function(){const DISCOUNTED_ALLOCATOR_NAMES=['winheap','malloc'];const TRACING_OVERHEAD_PATH=['allocated_objects','tracing_overhead'];const SIZE_NUMERIC_NAME=tr.model.MemoryAllocatorDump.SIZE_NUMERIC_NAME;const RESIDENT_SIZE_NUMERIC_NAME=tr.model.MemoryAllocatorDump.RESIDENT_SIZE_NUMERIC_NAME;function getSizeNumericValue(dump,sizeNumericName){const sizeNumeric=dump.numerics[sizeNumericName];if(sizeNumeric===undefined)return 0;return sizeNumeric.value;}
function ProcessMemoryDump(globalMemoryDump,process,start){tr.model.ContainerMemoryDump.call(this,start);this.process=process;this.globalMemoryDump=globalMemoryDump;this.totals=undefined;this.vmRegions=undefined;this.heapDumps=undefined;this.tracingOverheadOwnershipSetUp_=false;this.tracingOverheadDiscountedFromVmRegions_=false;}
ProcessMemoryDump.prototype={__proto__:tr.model.ContainerMemoryDump.prototype,get userFriendlyName(){return'Process memory dump at '+
tr.b.Unit.byName.timeStampInMs.format(this.start);},get containerName(){return this.process.userFriendlyName;},get processMemoryDumps(){const dumps={};dumps[this.process.pid]=this;return dumps;},get hasOwnVmRegions(){return this.vmRegions!==undefined;},setUpTracingOverheadOwnership(opt_model){if(this.tracingOverheadOwnershipSetUp_)return;this.tracingOverheadOwnershipSetUp_=true;const tracingDump=this.getMemoryAllocatorDumpByFullName('tracing');if(tracingDump===undefined||tracingDump.owns!==undefined){return;}
if(tracingDump.owns!==undefined)return;const hasDiscountedFromAllocatorDumps=DISCOUNTED_ALLOCATOR_NAMES.some(function(allocatorName){const allocatorDump=this.getMemoryAllocatorDumpByFullName(allocatorName);if(allocatorDump===undefined){return false;}
let nextPathIndex=0;let currentDump=allocatorDump;let currentFullName=allocatorName;for(;nextPathIndex<TRACING_OVERHEAD_PATH.length;nextPathIndex++){const childFullName=currentFullName+'/'+
TRACING_OVERHEAD_PATH[nextPathIndex];const childDump=this.getMemoryAllocatorDumpByFullName(childFullName);if(childDump===undefined)break;currentDump=childDump;currentFullName=childFullName;}
for(;nextPathIndex<TRACING_OVERHEAD_PATH.length;nextPathIndex++){const childFullName=currentFullName+'/'+
TRACING_OVERHEAD_PATH[nextPathIndex];const childDump=new tr.model.MemoryAllocatorDump(currentDump.containerMemoryDump,childFullName);childDump.parent=currentDump;currentDump.children.push(childDump);currentFullName=childFullName;currentDump=childDump;}
const ownershipLink=new tr.model.MemoryAllocatorDumpLink(tracingDump,currentDump);tracingDump.owns=ownershipLink;currentDump.ownedBy.push(ownershipLink);return true;},this);if(hasDiscountedFromAllocatorDumps){this.forceRebuildingMemoryAllocatorDumpByFullNameIndex();}},discountTracingOverheadFromVmRegions(opt_model){if(this.tracingOverheadDiscountedFromVmRegions_)return;this.tracingOverheadDiscountedFromVmRegions_=true;const tracingDump=this.getMemoryAllocatorDumpByFullName('tracing');if(tracingDump===undefined)return;const discountedSize=getSizeNumericValue(tracingDump,SIZE_NUMERIC_NAME);const discountedResidentSize=getSizeNumericValue(tracingDump,RESIDENT_SIZE_NUMERIC_NAME);if(discountedSize<=0&&discountedResidentSize<=0)return;if(this.totals!==undefined){if(this.totals.residentBytes!==undefined){this.totals.residentBytes-=discountedResidentSize;}
if(this.totals.peakResidentBytes!==undefined){this.totals.peakResidentBytes-=discountedResidentSize;}}
if(this.vmRegions!==undefined){const hasSizeInBytes=this.vmRegions.sizeInBytes!==undefined;const hasPrivateDirtyResident=this.vmRegions.byteStats.privateDirtyResident!==undefined;const hasProportionalResident=this.vmRegions.byteStats.proportionalResident!==undefined;if((hasSizeInBytes&&discountedSize>0)||((hasPrivateDirtyResident||hasProportionalResident)&&discountedResidentSize>0)){const byteStats={};if(hasPrivateDirtyResident){byteStats.privateDirtyResident=-discountedResidentSize;}
if(hasProportionalResident){byteStats.proportionalResident=-discountedResidentSize;}
this.vmRegions.addRegion(tr.model.VMRegion.fromDict({mappedFile:'[discounted tracing overhead]',sizeInBytes:hasSizeInBytes?-discountedSize:undefined,byteStats}));}}}};ProcessMemoryDump.hookUpMostRecentVmRegionsLinks=function(processDumps){let mostRecentVmRegions=undefined;processDumps.forEach(function(processDump){if(processDump.vmRegions!==undefined){mostRecentVmRegions=processDump.vmRegions;}
processDump.mostRecentVmRegions=mostRecentVmRegions;});};tr.model.EventRegistry.register(ProcessMemoryDump,{name:'processMemoryDump',pluralName:'processMemoryDumps'});return{ProcessMemoryDump,};});'use strict';tr.exportTo('tr.model',function(){const ProcessBase=tr.model.ProcessBase;const ProcessInstantEvent=tr.model.ProcessInstantEvent;const Frame=tr.model.Frame;const ProcessMemoryDump=tr.model.ProcessMemoryDump;function Process(model,pid){if(model===undefined){throw new Error('model must be provided');}
if(pid===undefined){throw new Error('pid must be provided');}
tr.model.ProcessBase.call(this,model);this.pid=pid;this.name=undefined;this.labels=[];this.uptime_seconds=0;this.instantEvents=[];this.memoryDumps=[];this.frames=[];this.activities=[];}
Process.compare=function(x,y){let tmp=tr.model.ProcessBase.compare(x,y);if(tmp)return tmp;tmp=tr.b.comparePossiblyUndefinedValues(x.name,y.name,function(x,y){return x.localeCompare(y);});if(tmp)return tmp;tmp=tr.b.compareArrays(x.labels,y.labels,function(x,y){return x.localeCompare(y);});if(tmp)return tmp;return x.pid-y.pid;};Process.prototype={__proto__:tr.model.ProcessBase.prototype,get stableId(){return this.pid;},compareTo(that){return Process.compare(this,that);},*childEvents(){yield*ProcessBase.prototype.childEvents.call(this);yield*this.instantEvents;yield*this.frames;yield*this.memoryDumps;},addLabelIfNeeded(labelName){for(let i=0;i<this.labels.length;i++){if(this.labels[i]===labelName)return;}
this.labels.push(labelName);},get userFriendlyName(){let res;if(this.name){res=this.name+' (pid '+this.pid+')';}else{res='Process '+this.pid;}
if(this.labels.length){res+=': '+this.labels.join(', ');}
if(this.uptime_seconds){res+=', uptime:'+this.uptime_seconds+'s';}
return res;},get userFriendlyDetails(){if(this.name){return this.name+' (pid '+this.pid+')';}
return'pid: '+this.pid;},getSettingsKey(){if(!this.name)return undefined;if(!this.labels.length)return'processes.'+this.name;return'processes.'+this.name+'.'+this.labels.join('.');},shiftTimestampsForward(amount){for(let i=0;i<this.instantEvents.length;i++){this.instantEvents[i].start+=amount;}
for(let i=0;i<this.frames.length;i++){this.frames[i].shiftTimestampsForward(amount);}
for(let i=0;i<this.memoryDumps.length;i++){this.memoryDumps[i].shiftTimestampsForward(amount);}
for(let i=0;i<this.activities.length;i++){this.activities[i].shiftTimestampsForward(amount);}
tr.model.ProcessBase.prototype.shiftTimestampsForward.apply(this,arguments);},updateBounds(){tr.model.ProcessBase.prototype.updateBounds.apply(this);for(let i=0;i<this.frames.length;i++){this.frames[i].addBoundsToRange(this.bounds);}
for(let i=0;i<this.memoryDumps.length;i++){this.memoryDumps[i].addBoundsToRange(this.bounds);}
for(let i=0;i<this.activities.length;i++){this.activities[i].addBoundsToRange(this.bounds);}},sortMemoryDumps(){this.memoryDumps.sort(function(x,y){return x.start-y.start;});tr.model.ProcessMemoryDump.hookUpMostRecentVmRegionsLinks(this.memoryDumps);}};return{Process,};});'use strict';tr.exportTo('tr.model',function(){function Sample(start,title,leafNode,thread,opt_cpu,opt_weight,opt_args){tr.model.TimedEvent.call(this,start);this.start_=start;this.title_=title;this.leafNode_=leafNode;this.thread_=thread;this.colorId_=leafNode.colorId;this.cpu_=opt_cpu;this.weight_=opt_weight;this.args=opt_args||{};}
Sample.prototype={__proto__:tr.model.TimedEvent.prototype,get title(){return this.title_;},get colorId(){return this.colorId_;},get thread(){return this.thread_;},get leafNode(){return this.leafNode_;},get userFriendlyName(){return'Sample at '+
tr.b.Unit.byName.timeStampInMs.format(this.start);},get userFriendlyStack(){return this.leafNode_.userFriendlyStack;},getNodesAsArray(){const nodes=[];let node=this.leafNode_;while(node!==undefined){nodes.push(node);node=node.parentNode;}
return nodes;},get cpu(){return this.cpu_;},get weight(){return this.weight_;},};tr.model.EventRegistry.register(Sample,{name:'Sample',pluralName:'Samples'});return{Sample,};});'use strict';tr.exportTo('tr.model',function(){function StackFrame(parentFrame,id,title,colorId,opt_sourceInfo){if(id===undefined){throw new Error('id must be given');}
this.parentFrame_=parentFrame;this.id=id;this.title_=title;this.colorId=colorId;this.children=[];this.sourceInfo_=opt_sourceInfo;if(this.parentFrame_){this.parentFrame_.addChild(this);}}
StackFrame.prototype={get parentFrame(){return this.parentFrame_;},get title(){if(this.sourceInfo_){const src=this.sourceInfo_.toString();return this.title_+(src===''?'':' '+src);}
return this.title_;},get domain(){let result='unknown';if(this.sourceInfo_&&this.sourceInfo_.domain){result=this.sourceInfo_.domain;}
if(result==='unknown'&&this.parentFrame){result=this.parentFrame.domain;}
return result;},get sourceInfo(){return this.sourceInfo_;},set parentFrame(parentFrame){if(this.parentFrame_){Polymer.dom(this.parentFrame_).removeChild(this);}
this.parentFrame_=parentFrame;if(this.parentFrame_){this.parentFrame_.addChild(this);}},addChild(child){this.children.push(child);},removeChild(child){const i=this.children.indexOf(child.id);if(i===-1){throw new Error('omg');}
this.children.splice(i,1);},removeAllChildren(){for(let i=0;i<this.children.length;i++){this.children[i].parentFrame_=undefined;}
this.children.splice(0,this.children.length);},get stackTrace(){const stack=[this];let cur=this.parentFrame;while(cur){stack.push(cur);cur=cur.parentFrame;}
return stack;},getUserFriendlyStackTrace(){return this.stackTrace.map(function(x){return x.title;});}};return{StackFrame,};});'use strict';tr.exportTo('tr.model.um',function(){class Segment extends tr.model.TimedEvent{constructor(start,duration){super(start);this.duration=duration;this.expectations_=[];}
get expectations(){return this.expectations_;}
clone(){const clone=new Segment(this.start,this.duration);clone.expectations.push(...this.expectations);return clone;}
addSegment(other){this.duration+=other.duration;this.expectations.push(...other.expectations);}}
return{Segment,};});'use strict';tr.exportTo('tr.model.um',function(){class UserModel extends tr.model.EventContainer{constructor(parentModel){super();this.parentModel_=parentModel;this.expectations_=new tr.model.EventSet();this.segments_=[];}
get stableId(){return'UserModel';}
get parentModel(){return this.parentModel_;}
sortExpectations(){this.expectations_.sortEvents((x,y)=>(x.start-y.start));}
get expectations(){return this.expectations_;}
shiftTimestampsForward(amount){}
addCategoriesToDict(categoriesDict){}
get segments(){return this.segments_;}*childEvents(){yield*this.expectations;}*childEventContainers(){}
updateBounds(){this.bounds.reset();for(const expectation of this.expectations){expectation.addBoundsToRange(this.bounds);}}
resegment(getKeyForSegment){const newSegments=[];let prevKey=undefined;let prevSegment=undefined;for(let i=0;i<this.segments.length;++i){const segment=this.segments[i];const key=getKeyForSegment(segment,i);if(prevSegment!==undefined&&key===prevKey){prevSegment.addSegment(segment);}else{prevSegment=segment.clone();newSegments.push(prevSegment);}
prevKey=key;}
return newSegments;}}
return{UserModel,};});'use strict';tr.exportTo('tr',function(){const Process=tr.model.Process;const Device=tr.model.Device;const Kernel=tr.model.Kernel;const GlobalMemoryDump=tr.model.GlobalMemoryDump;const GlobalInstantEvent=tr.model.GlobalInstantEvent;const FlowEvent=tr.model.FlowEvent;const Alert=tr.model.Alert;const Sample=tr.model.Sample;function Model(){tr.model.EventContainer.call(this);tr.b.EventTarget.decorate(this);this.timestampShiftToZeroAmount_=0;this.faviconHue='blue';this.device=new Device(this);this.kernel=new Kernel(this);this.processes={};this.metadata=[];this.categories=[];this.instantEvents=[];this.flowEvents=[];this.clockSyncManager=new tr.model.ClockSyncManager();this.intrinsicTimeUnit_=undefined;this.stackFrames={};this.samples=[];this.alerts=[];this.userModel=new tr.model.um.UserModel(this);this.flowIntervalTree=new tr.b.IntervalTree((f)=>f.start,(f)=>f.end);this.globalMemoryDumps=[];this.userFriendlyCategoryDrivers_=[];this.annotationsByGuid_={};this.modelIndices=undefined;this.stats=new tr.model.ModelStats();this.importWarnings_=[];this.reportedImportWarnings_={};this.isTimeHighResolution_=true;this.patchupsToApply_=[];this.doesHelperGUIDSupportThisModel_={};this.helpersByConstructorGUID_={};this.eventsByStableId_=undefined;}
Model.prototype={__proto__:tr.model.EventContainer.prototype,getEventByStableId(stableId){if(this.eventsByStableId_===undefined){this.eventsByStableId_={};for(const event of this.getDescendantEvents()){this.eventsByStableId_[event.stableId]=event;}}
return this.eventsByStableId_[stableId];},getOrCreateHelper(constructor){if(!constructor.guid){throw new Error('Helper constructors must have GUIDs');}
if(this.helpersByConstructorGUID_[constructor.guid]===undefined){if(this.doesHelperGUIDSupportThisModel_[constructor.guid]===undefined){this.doesHelperGUIDSupportThisModel_[constructor.guid]=constructor.supportsModel(this);}
if(!this.doesHelperGUIDSupportThisModel_[constructor.guid]){return undefined;}
this.helpersByConstructorGUID_[constructor.guid]=new constructor(this);}
return this.helpersByConstructorGUID_[constructor.guid];},*childEvents(){yield*this.globalMemoryDumps;yield*this.instantEvents;yield*this.flowEvents;yield*this.alerts;yield*this.samples;},*childEventContainers(){yield this.userModel;yield this.device;yield this.kernel;yield*Object.values(this.processes);},iterateAllPersistableObjects(callback){this.kernel.iterateAllPersistableObjects(callback);for(const pid in this.processes){this.processes[pid].iterateAllPersistableObjects(callback);}},updateBounds(){this.bounds.reset();const bounds=this.bounds;for(const ec of this.childEventContainers()){ec.updateBounds();bounds.addRange(ec.bounds);}
for(const event of this.childEvents()){event.addBoundsToRange(bounds);}},shiftWorldToZero(){const shiftAmount=-this.bounds.min;this.timestampShiftToZeroAmount_=shiftAmount;for(const ec of this.childEventContainers()){ec.shiftTimestampsForward(shiftAmount);}
for(const event of this.childEvents()){event.start+=shiftAmount;}
this.updateBounds();},convertTimestampToModelTime(sourceClockDomainName,ts){if(sourceClockDomainName!=='traceEventClock'){throw new Error('Only traceEventClock is supported.');}
return tr.b.Unit.timestampFromUs(ts)+
this.timestampShiftToZeroAmount_;},get numProcesses(){let n=0;for(const p in this.processes){n++;}
return n;},getProcess(pid){return this.processes[pid];},getOrCreateProcess(pid){if(!this.processes[pid]){this.processes[pid]=new Process(this,pid);}
return this.processes[pid];},addStackFrame(stackFrame){if(this.stackFrames[stackFrame.id]){throw new Error('Stack frame already exists');}
this.stackFrames[stackFrame.id]=stackFrame;return stackFrame;},updateCategories_(){const categoriesDict={};this.userModel.addCategoriesToDict(categoriesDict);this.device.addCategoriesToDict(categoriesDict);this.kernel.addCategoriesToDict(categoriesDict);for(const pid in this.processes){this.processes[pid].addCategoriesToDict(categoriesDict);}
this.categories=[];for(const category in categoriesDict){if(category!==''){this.categories.push(category);}}},getAllThreads(){const threads=[];for(const tid in this.kernel.threads){threads.push(process.threads[tid]);}
for(const pid in this.processes){const process=this.processes[pid];for(const tid in process.threads){threads.push(process.threads[tid]);}}
return threads;},getAllProcesses(opt_predicate){const processes=[];for(const pid in this.processes){const process=this.processes[pid];if(opt_predicate===undefined||opt_predicate(process)){processes.push(process);}}
return processes;},getAllCounters(){const counters=[];counters.push.apply(counters,Object.values(this.device.counters||{}));counters.push.apply(counters,Object.values(this.kernel.counters||{}));for(const pid in this.processes){const process=this.processes[pid];for(const tid in process.counters){counters.push(process.counters[tid]);}}
return counters;},getAnnotationByGUID(guid){return this.annotationsByGuid_[guid];},addAnnotation(annotation){if(!annotation.guid){throw new Error('Annotation with undefined guid given');}
this.annotationsByGuid_[annotation.guid]=annotation;tr.b.dispatchSimpleEvent(this,'annotationChange');},removeAnnotation(annotation){this.annotationsByGuid_[annotation.guid].onRemove();delete this.annotationsByGuid_[annotation.guid];tr.b.dispatchSimpleEvent(this,'annotationChange');},getAllAnnotations(){return Object.values(this.annotationsByGuid_);},addUserFriendlyCategoryDriver(ufcd){this.userFriendlyCategoryDrivers_.push(ufcd);},getUserFriendlyCategoryFromEvent(event){for(let i=0;i<this.userFriendlyCategoryDrivers_.length;i++){const ufc=this.userFriendlyCategoryDrivers_[i].fromEvent(event);if(ufc!==undefined)return ufc;}
return undefined;},findAllThreadsNamed(name){const namedThreads=[];namedThreads.push.apply(namedThreads,this.kernel.findAllThreadsNamed(name));for(const pid in this.processes){namedThreads.push.apply(namedThreads,this.processes[pid].findAllThreadsNamed(name));}
return namedThreads;},get importOptions(){return this.importOptions_;},set importOptions(options){this.importOptions_=options;},get intrinsicTimeUnit(){if(this.intrinsicTimeUnit_===undefined){return tr.b.TimeDisplayModes.ms;}
return this.intrinsicTimeUnit_;},set intrinsicTimeUnit(value){if(this.intrinsicTimeUnit_===value)return;if(this.intrinsicTimeUnit_!==undefined){throw new Error('Intrinsic time unit already set');}
this.intrinsicTimeUnit_=value;},get isTimeHighResolution(){return this.isTimeHighResolution_;},set isTimeHighResolution(value){this.isTimeHighResolution_=value;},get canonicalUrl(){return this.canonicalUrl_;},set canonicalUrl(value){if(this.canonicalUrl_===value)return;if(this.canonicalUrl_!==undefined){throw new Error('canonicalUrl already set');}
this.canonicalUrl_=value;},importWarning(data){data.showToUser=!!data.showToUser;this.importWarnings_.push(data);if(this.reportedImportWarnings_[data.type]===true)return;this.reportedImportWarnings_[data.type]=true;},get hasImportWarnings(){return(this.importWarnings_.length>0);},get importWarnings(){return this.importWarnings_;},get importWarningsThatShouldBeShownToUser(){return this.importWarnings_.filter(function(warning){return warning.showToUser;});},autoCloseOpenSlices(){this.samples.sort(function(x,y){return x.start-y.start;});this.updateBounds();this.kernel.autoCloseOpenSlices();for(const pid in this.processes){this.processes[pid].autoCloseOpenSlices();}},createSubSlices(){this.kernel.createSubSlices();for(const pid in this.processes){this.processes[pid].createSubSlices();}},preInitializeObjects(){for(const pid in this.processes){this.processes[pid].preInitializeObjects();}},initializeObjects(){for(const pid in this.processes){this.processes[pid].initializeObjects();}},pruneEmptyContainers(){this.kernel.pruneEmptyContainers();for(const pid in this.processes){this.processes[pid].pruneEmptyContainers();}},mergeKernelWithUserland(){for(const pid in this.processes){this.processes[pid].mergeKernelWithUserland();}},computeWorldBounds(shiftWorldToZero){this.updateBounds();this.updateCategories_();if(shiftWorldToZero){this.shiftWorldToZero();}},buildFlowEventIntervalTree(){for(let i=0;i<this.flowEvents.length;++i){const flowEvent=this.flowEvents[i];this.flowIntervalTree.insert(flowEvent);}
this.flowIntervalTree.updateHighValues();},cleanupUndeletedObjects(){for(const pid in this.processes){this.processes[pid].autoDeleteObjects(this.bounds.max);}},sortMemoryDumps(){this.globalMemoryDumps.sort(function(x,y){return x.start-y.start;});for(const pid in this.processes){this.processes[pid].sortMemoryDumps();}},finalizeMemoryGraphs(){this.globalMemoryDumps.forEach(function(dump){dump.finalizeGraph();});},buildEventIndices(){this.modelIndices=new tr.model.ModelIndices(this);},sortAlerts(){this.alerts.sort(function(x,y){return x.start-y.start;});},applyObjectRefPatchups(){const unresolved=[];this.patchupsToApply_.forEach(function(patchup){if(patchup.pidRef in this.processes){const snapshot=this.processes[patchup.pidRef].objects.getSnapshotAt(patchup.scopedId,patchup.ts);if(snapshot){patchup.object[patchup.field]=snapshot;snapshot.referencedAt(patchup.item,patchup.object,patchup.field);return;}}
unresolved.push(patchup);},this);this.patchupsToApply_=unresolved;},replacePIDRefsInPatchups(oldPidRef,newPidRef){this.patchupsToApply_.forEach(function(patchup){if(patchup.pidRef===oldPidRef){patchup.pidRef=newPidRef;}});},joinRefs(){this.joinObjectRefs_();this.applyObjectRefPatchups();},joinObjectRefs_(){for(const[pid,process]of Object.entries(this.processes)){this.joinObjectRefsForProcess_(pid,process);}},joinObjectRefsForProcess_(pid,process){for(const thread of Object.values(process.threads)){thread.asyncSliceGroup.slices.forEach(function(item){this.searchItemForIDRefs_(pid,'start',item);},this);thread.sliceGroup.slices.forEach(function(item){this.searchItemForIDRefs_(pid,'start',item);},this);}
process.objects.iterObjectInstances(function(instance){instance.snapshots.forEach(function(item){this.searchItemForIDRefs_(pid,'ts',item);},this);},this);},searchItemForIDRefs_(pid,itemTimestampField,item){if(!item.args&&!item.contexts)return;const patchupsToApply=this.patchupsToApply_;function handleField(object,fieldName,fieldValue){if(!fieldValue||(!fieldValue.id_ref&&!fieldValue.idRef)){return;}
const scope=fieldValue.scope||tr.model.OBJECT_DEFAULT_SCOPE;const idRef=fieldValue.id_ref||fieldValue.idRef;const scopedId=new tr.model.ScopedId(scope,idRef);const pidRef=fieldValue.pid_ref||fieldValue.pidRef||pid;const ts=item[itemTimestampField];patchupsToApply.push({item,object,field:fieldName,pidRef,scopedId,ts});}
function iterObjectFieldsRecursively(object){if(!(object instanceof Object))return;if((object instanceof tr.model.ObjectSnapshot)||(object instanceof Float32Array)||(object instanceof tr.b.math.Quad)){return;}
if(object instanceof Array){for(let i=0;i<object.length;i++){handleField(object,i,object[i]);iterObjectFieldsRecursively(object[i]);}
return;}
for(const key in object){const value=object[key];handleField(object,key,value);iterObjectFieldsRecursively(value);}}
iterObjectFieldsRecursively(item.args);iterObjectFieldsRecursively(item.contexts);}};return{Model,};});'use strict';tr.exportTo('tr.e.importer.etw',function(){const kThreadGuid='3D6FA8D1-FE05-11D0-9DDA-00C04FD7BA7C';const kThreadDCStartOpcode=3;function Decoder(){this.payload_=new DataView(new ArrayBuffer(256));}
Decoder.prototype={__proto__:Object.prototype,reset(base64Payload){const decodedSize=tr.b.Base64.getDecodedBufferLength(base64Payload);if(decodedSize>this.payload_.byteLength){this.payload_=new DataView(new ArrayBuffer(decodedSize));}
tr.b.Base64.DecodeToTypedArray(base64Payload,this.payload_);this.position_=0;},skip(length){this.position_+=length;},decodeUInt8(){const result=this.payload_.getUint8(this.position_,true);this.position_+=1;return result;},decodeUInt16(){const result=this.payload_.getUint16(this.position_,true);this.position_+=2;return result;},decodeUInt32(){const result=this.payload_.getUint32(this.position_,true);this.position_+=4;return result;},decodeUInt64ToString(){const low=this.decodeUInt32();const high=this.decodeUInt32();const lowStr=('0000000'+low.toString(16)).substr(-8);const highStr=('0000000'+high.toString(16)).substr(-8);const result=highStr+lowStr;return result;},decodeInt8(){const result=this.payload_.getInt8(this.position_,true);this.position_+=1;return result;},decodeInt16(){const result=this.payload_.getInt16(this.position_,true);this.position_+=2;return result;},decodeInt32(){const result=this.payload_.getInt32(this.position_,true);this.position_+=4;return result;},decodeInt64ToString(){return this.decodeUInt64ToString();},decodeUInteger(is64){if(is64){return this.decodeUInt64ToString();}
return this.decodeUInt32();},decodeString(){let str='';while(true){const c=this.decodeUInt8();if(!c)return str;str=str+String.fromCharCode(c);}},decodeW16String(){let str='';while(true){const c=this.decodeUInt16();if(!c)return str;str=str+String.fromCharCode(c);}},decodeFixedW16String(length){const oldPosition=this.position_;let str='';for(let i=0;i<length;i++){const c=this.decodeUInt16();if(!c)break;str=str+String.fromCharCode(c);}
this.position_=oldPosition+2*length;return str;},decodeBytes(length){const bytes=[];for(let i=0;i<length;++i){const c=this.decodeUInt8();bytes.push(c);}
return bytes;},decodeSID(is64){const pSid=this.decodeUInteger(is64);const attributes=this.decodeUInt32();if(is64){this.decodeUInt32();}
const revision=this.decodeUInt8();const subAuthorityCount=this.decodeUInt8();this.decodeUInt16();this.decodeUInt32();if(revision!==1){throw new Error('Invalid SID revision: could not decode the SID structure.');}
const sid=this.decodeBytes(4*subAuthorityCount);return{pSid,attributes,sid};},decodeSystemTime(){const wYear=this.decodeInt16();const wMonth=this.decodeInt16();const wDayOfWeek=this.decodeInt16();const wDay=this.decodeInt16();const wHour=this.decodeInt16();const wMinute=this.decodeInt16();const wSecond=this.decodeInt16();const wMilliseconds=this.decodeInt16();return{wYear,wMonth,wDayOfWeek,wDay,wHour,wMinute,wSecond,wMilliseconds};},decodeTimeZoneInformation(){const bias=this.decodeUInt32();const standardName=this.decodeFixedW16String(32);const standardDate=this.decodeSystemTime();const standardBias=this.decodeUInt32();const daylightName=this.decodeFixedW16String(32);const daylightDate=this.decodeSystemTime();const daylightBias=this.decodeUInt32();return{bias,standardName,standardDate,standardBias,daylightName,daylightDate,daylightBias};}};function EtwImporter(model,events){this.importPriority=3;this.model_=model;this.events_=events;this.handlers_={};this.decoder_=new Decoder();this.walltime_=undefined;this.ticks_=undefined;this.is64bit_=undefined;this.tidsToPid_={};const allTypeInfos=tr.e.importer.etw.Parser.getAllRegisteredTypeInfos();this.parsers_=allTypeInfos.map(function(typeInfo){return new typeInfo.constructor(this);},this);}
EtwImporter.canImport=function(events){if(!events.hasOwnProperty('name')||!events.hasOwnProperty('content')||events.name!=='ETW'){return false;}
return true;};EtwImporter.prototype={__proto__:tr.importer.Importer.prototype,get importerName(){return'EtwImporter';},get model(){return this.model_;},createThreadIfNeeded(pid,tid){this.tidsToPid_[tid]=pid;},removeThreadIfPresent(tid){this.tidsToPid_[tid]=undefined;},getPidFromWindowsTid(tid){if(tid===0)return 0;const pid=this.tidsToPid_[tid];if(pid===undefined){return 0;}
return pid;},getThreadFromWindowsTid(tid){const pid=this.getPidFromWindowsTid(tid);const process=this.model_.getProcess(pid);if(!process)return undefined;return process.getThread(tid);},getOrCreateCpu(cpuNumber){const cpu=this.model_.kernel.getOrCreateCpu(cpuNumber);return cpu;},importEvents(){this.events_.content.forEach(this.parseInfo.bind(this));if(this.walltime_===undefined||this.ticks_===undefined){throw Error('Cannot find clock sync information in the system trace.');}
if(this.is64bit_===undefined){throw Error('Cannot determine pointer size of the system trace.');}
this.events_.content.forEach(this.parseEvent.bind(this));},importTimestamp(timestamp){const ts=parseInt(timestamp,16);return(ts-this.walltime_+this.ticks_)/1000.;},parseInfo(event){if(event.hasOwnProperty('guid')&&event.hasOwnProperty('walltime')&&event.hasOwnProperty('tick')&&event.guid==='ClockSync'){this.walltime_=parseInt(event.walltime,16);this.ticks_=parseInt(event.tick,16);}
if(this.is64bit_===undefined&&event.hasOwnProperty('guid')&&event.hasOwnProperty('op')&&event.hasOwnProperty('ver')&&event.hasOwnProperty('payload')&&event.guid===kThreadGuid&&event.op===kThreadDCStartOpcode){const decodedSize=tr.b.Base64.getDecodedBufferLength(event.payload);if(event.ver===1){if(decodedSize>=52){this.is64bit_=true;}else{this.is64bit_=false;}}else if(event.ver===2){if(decodedSize>=64){this.is64bit_=true;}else{this.is64bit_=false;}}else if(event.ver===3){if(decodedSize>=60){this.is64bit_=true;}else{this.is64bit_=false;}}}
return true;},parseEvent(event){if(!event.hasOwnProperty('guid')||!event.hasOwnProperty('op')||!event.hasOwnProperty('ver')||!event.hasOwnProperty('cpu')||!event.hasOwnProperty('ts')||!event.hasOwnProperty('payload')){return false;}
const timestamp=this.importTimestamp(event.ts);const header={guid:event.guid,opcode:event.op,version:event.ver,cpu:event.cpu,timestamp,is64:this.is64bit_};const decoder=this.decoder_;decoder.reset(event.payload);const handler=this.getEventHandler(header.guid,header.opcode);if(!handler)return false;if(!handler(header,decoder)){this.model_.importWarning({type:'parse_error',message:'Malformed '+header.guid+' event ('+event.payload+')'});return false;}
return true;},registerEventHandler(guid,opcode,handler){if(this.handlers_[guid]===undefined){this.handlers_[guid]=[];}
this.handlers_[guid][opcode]=handler;},getEventHandler(guid,opcode){if(this.handlers_[guid]===undefined){return undefined;}
return this.handlers_[guid][opcode];}};tr.importer.Importer.register(EtwImporter);return{EtwImporter,};});'use strict';tr.exportTo('tr.b',function(){class TraceStream{static get HEADER_SIZE(){return Math.pow(2,10);}
static get CHUNK_SIZE(){return Math.pow(2,20);}
get isBinary(){throw new Error('Not implemented');}
get hasData(){throw new Error('Not implemented');}
get header(){throw new Error('Not implemented');}
readUntilDelimiter(delim){throw new Error('Not implemented');}
readNumBytes(opt_size){throw new Error('Not implemented');}
rewind(){throw new Error('Not implemented');}
substream(offset,opt_length,opt_headerSize){throw new Error('Not implemented');}}
return{TraceStream,};});'use strict';tr.exportTo('tr.b',function(){const MAX_FUNCTION_ARGS_COUNT=Math.pow(2,15)-1;class InMemoryTraceStream extends tr.b.TraceStream{constructor(buffer,isBinary,opt_headerSize){super();if(!buffer instanceof Uint8Array){throw new Error('buffer should be a Uint8Array');}
const headerSize=opt_headerSize||tr.b.TraceStream.HEADER_SIZE;this.data_=buffer;this.isBinary_=isBinary;this.header_=InMemoryTraceStream.uint8ArrayToString_(this.data_.subarray(0,headerSize));this.cursor_=0;}
get isBinary(){return this.isBinary_;}
get hasData(){return this.cursor_<this.data_.length;}
get header(){return this.header_;}
get data(){return this.data_;}
toString(){this.rewind();return this.readNumBytes(Number.MAX_VALUE);}
readUntilDelimiter(delim){if(delim.length!==1){throw new Error('delim must be exactly one character');}
const offset=this.data_.indexOf(delim.charCodeAt(0),this.cursor_)+1;return this.readToOffset_(offset>0?Math.min(offset,this.data_.length):this.data_.length);}
readNumBytes(opt_size){if(opt_size!==undefined&&opt_size<=0){throw new Error(`readNumBytes expects a positive size (${opt_size} given)`);}
const size=opt_size||tr.b.TraceStream.CHUNK_SIZE;const offset=Math.min(this.cursor_+size,this.data_.length);return this.readToOffset_(offset);}
rewind(){this.cursor_=0;}
substream(startOffset,opt_endOffset,opt_headerSize){return new InMemoryTraceStream(this.data_.subarray(startOffset,opt_endOffset),this.isBinary_,opt_headerSize);}
readToOffset_(offset){const out=InMemoryTraceStream.uint8ArrayToString_(this.data_.subarray(this.cursor_,offset));this.cursor_=offset;return out;}
static uint8ArrayToString_(arr){const c=[];for(let i=0;i<arr.length;i+=MAX_FUNCTION_ARGS_COUNT){c.push(String.fromCharCode(...arr.subarray(i,i+MAX_FUNCTION_ARGS_COUNT)));}
return c.join('');}}
return{InMemoryTraceStream,};});!function(a){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=a();else if("function"==typeof define&&define.amd)define([],a);else{var b;"undefined"!=typeof window?b=window:"undefined"!=typeof global?b=global:"undefined"!=typeof self&&(b=self),b.JSZip=a()}}(function(){return function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};b[g][0].call(j.exports,function(a){var c=b[g][1][a];return e(c?c:a)},j,j.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g<d.length;g++)e(d[g]);return e}({1:[function(a,b,c){"use strict";var d="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";c.encode=function(a){for(var b,c,e,f,g,h,i,j="",k=0;k<a.length;)b=a.charCodeAt(k++),c=a.charCodeAt(k++),e=a.charCodeAt(k++),f=b>>2,g=(3&b)<<4|c>>4,h=(15&c)<<2|e>>6,i=63&e,isNaN(c)?h=i=64:isNaN(e)&&(i=64),j=j+d.charAt(f)+d.charAt(g)+d.charAt(h)+d.charAt(i);return j},c.decode=function(a){var b,c,e,f,g,h,i,j="",k=0;for(a=a.replace(/[^A-Za-z0-9\+\/\=]/g,"");k<a.length;)f=d.indexOf(a.charAt(k++)),g=d.indexOf(a.charAt(k++)),h=d.indexOf(a.charAt(k++)),i=d.indexOf(a.charAt(k++)),b=f<<2|g>>4,c=(15&g)<<4|h>>2,e=(3&h)<<6|i,j+=String.fromCharCode(b),64!=h&&(j+=String.fromCharCode(c)),64!=i&&(j+=String.fromCharCode(e));return j}},{}],2:[function(a,b){"use strict";function c(){this.compressedSize=0,this.uncompressedSize=0,this.crc32=0,this.compressionMethod=null,this.compressedContent=null}c.prototype={getContent:function(){return null},getCompressedContent:function(){return null}},b.exports=c},{}],3:[function(a,b,c){"use strict";c.STORE={magic:"\x00\x00",compress:function(a){return a},uncompress:function(a){return a},compressInputType:null,uncompressInputType:null},c.DEFLATE=a("./flate")},{"./flate":8}],4:[function(a,b){"use strict";var c=a("./utils"),d=[0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117];b.exports=function(a,b){if("undefined"==typeof a||!a.length)return 0;var e="string"!==c.getTypeOf(a);"undefined"==typeof b&&(b=0);var f=0,g=0,h=0;b=-1^b;for(var i=0,j=a.length;j>i;i++)h=e?a[i]:a.charCodeAt(i),g=255&(b^h),f=d[g],b=b>>>8^f;return-1^b}},{"./utils":21}],5:[function(a,b){"use strict";function c(){this.data=null,this.length=0,this.index=0}var d=a("./utils");c.prototype={checkOffset:function(a){this.checkIndex(this.index+a)},checkIndex:function(a){if(this.length<a||0>a)throw new Error("End of data reached (data length = "+this.length+", asked index = "+a+"). Corrupted zip ?")},setIndex:function(a){this.checkIndex(a),this.index=a},skip:function(a){this.setIndex(this.index+a)},byteAt:function(){},readInt:function(a){var b,c=0;for(this.checkOffset(a),b=this.index+a-1;b>=this.index;b--)c=(c<<8)+this.byteAt(b);return this.index+=a,c},readString:function(a){return d.transformTo("string",this.readData(a))},readData:function(){},lastIndexOfSignature:function(){},readDate:function(){var a=this.readInt(4);return new Date((a>>25&127)+1980,(a>>21&15)-1,a>>16&31,a>>11&31,a>>5&63,(31&a)<<1)}},b.exports=c},{"./utils":21}],6:[function(a,b,c){"use strict";c.base64=!1,c.binary=!1,c.dir=!1,c.createFolders=!1,c.date=null,c.compression=null,c.comment=null},{}],7:[function(a,b,c){"use strict";var d=a("./utils");c.string2binary=function(a){return d.string2binary(a)},c.string2Uint8Array=function(a){return d.transformTo("uint8array",a)},c.uint8Array2String=function(a){return d.transformTo("string",a)},c.string2Blob=function(a){var b=d.transformTo("arraybuffer",a);return d.arrayBuffer2Blob(b)},c.arrayBuffer2Blob=function(a){return d.arrayBuffer2Blob(a)},c.transformTo=function(a,b){return d.transformTo(a,b)},c.getTypeOf=function(a){return d.getTypeOf(a)},c.checkSupport=function(a){return d.checkSupport(a)},c.MAX_VALUE_16BITS=d.MAX_VALUE_16BITS,c.MAX_VALUE_32BITS=d.MAX_VALUE_32BITS,c.pretty=function(a){return d.pretty(a)},c.findCompression=function(a){return d.findCompression(a)},c.isRegExp=function(a){return d.isRegExp(a)}},{"./utils":21}],8:[function(a,b,c){"use strict";var d="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Uint32Array,e=a("pako");c.uncompressInputType=d?"uint8array":"array",c.compressInputType=d?"uint8array":"array",c.magic="\b\x00",c.compress=function(a){return e.deflateRaw(a)},c.uncompress=function(a){return e.inflateRaw(a)}},{pako:24}],9:[function(a,b){"use strict";function c(a,b){return this instanceof c?(this.files={},this.comment=null,this.root="",a&&this.load(a,b),void(this.clone=function(){var a=new c;for(var b in this)"function"!=typeof this[b]&&(a[b]=this[b]);return a})):new c(a,b)}var d=a("./base64");c.prototype=a("./object"),c.prototype.load=a("./load"),c.support=a("./support"),c.defaults=a("./defaults"),c.utils=a("./deprecatedPublicUtils"),c.base64={encode:function(a){return d.encode(a)},decode:function(a){return d.decode(a)}},c.compressions=a("./compressions"),b.exports=c},{"./base64":1,"./compressions":3,"./defaults":6,"./deprecatedPublicUtils":7,"./load":10,"./object":13,"./support":17}],10:[function(a,b){"use strict";var c=a("./base64"),d=a("./zipEntries");b.exports=function(a,b){var e,f,g,h;for(b=b||{},b.base64&&(a=c.decode(a)),f=new d(a,b),e=f.files,g=0;g<e.length;g++)h=e[g],this.file(h.fileName,h.decompressed,{binary:!0,optimizedBinaryString:!0,date:h.date,dir:h.dir,comment:h.fileComment.length?h.fileComment:null,createFolders:b.createFolders});return f.zipComment.length&&(this.comment=f.zipComment),this}},{"./base64":1,"./zipEntries":22}],11:[function(a,b){(function(a){"use strict";b.exports=function(b,c){return new a(b,c)},b.exports.test=function(b){return a.isBuffer(b)}}).call(this,"undefined"!=typeof Buffer?Buffer:void 0)},{}],12:[function(a,b){"use strict";function c(a){this.data=a,this.length=this.data.length,this.index=0}var d=a("./uint8ArrayReader");c.prototype=new d,c.prototype.readData=function(a){this.checkOffset(a);var b=this.data.slice(this.index,this.index+a);return this.index+=a,b},b.exports=c},{"./uint8ArrayReader":18}],13:[function(a,b){"use strict";var c=a("./support"),d=a("./utils"),e=a("./crc32"),f=a("./signature"),g=a("./defaults"),h=a("./base64"),i=a("./compressions"),j=a("./compressedObject"),k=a("./nodeBuffer"),l=a("./utf8"),m=a("./stringWriter"),n=a("./uint8ArrayWriter"),o=function(a){if(a._data instanceof j&&(a._data=a._data.getContent(),a.options.binary=!0,a.options.base64=!1,"uint8array"===d.getTypeOf(a._data))){var b=a._data;a._data=new Uint8Array(b.length),0!==b.length&&a._data.set(b,0)}return a._data},p=function(a){var b=o(a),e=d.getTypeOf(b);return"string"===e?!a.options.binary&&c.nodebuffer?k(b,"utf-8"):a.asBinary():b},q=function(a){var b=o(this);return null===b||"undefined"==typeof b?"":(this.options.base64&&(b=h.decode(b)),b=a&&this.options.binary?A.utf8decode(b):d.transformTo("string",b),a||this.options.binary||(b=d.transformTo("string",A.utf8encode(b))),b)},r=function(a,b,c){this.name=a,this.dir=c.dir,this.date=c.date,this.comment=c.comment,this._data=b,this.options=c,this._initialMetadata={dir:c.dir,date:c.date}};r.prototype={asText:function(){return q.call(this,!0)},asBinary:function(){return q.call(this,!1)},asNodeBuffer:function(){var a=p(this);return d.transformTo("nodebuffer",a)},asUint8Array:function(){var a=p(this);return d.transformTo("uint8array",a)},asArrayBuffer:function(){return this.asUint8Array().buffer}};var s=function(a,b){var c,d="";for(c=0;b>c;c++)d+=String.fromCharCode(255&a),a>>>=8;return d},t=function(){var a,b,c={};for(a=0;a<arguments.length;a++)for(b in arguments[a])arguments[a].hasOwnProperty(b)&&"undefined"==typeof c[b]&&(c[b]=arguments[a][b]);return c},u=function(a){return a=a||{},a.base64!==!0||null!==a.binary&&void 0!==a.binary||(a.binary=!0),a=t(a,g),a.date=a.date||new Date,null!==a.compression&&(a.compression=a.compression.toUpperCase()),a},v=function(a,b,c){var e,f=d.getTypeOf(b);if(c=u(c),c.createFolders&&(e=w(a))&&x.call(this,e,!0),c.dir||null===b||"undefined"==typeof b)c.base64=!1,c.binary=!1,b=null;else if("string"===f)c.binary&&!c.base64&&c.optimizedBinaryString!==!0&&(b=d.string2binary(b));else{if(c.base64=!1,c.binary=!0,!(f||b instanceof j))throw new Error("The data of '"+a+"' is in an unsupported format !");"arraybuffer"===f&&(b=d.transformTo("uint8array",b))}var g=new r(a,b,c);return this.files[a]=g,g},w=function(a){"/"==a.slice(-1)&&(a=a.substring(0,a.length-1));var b=a.lastIndexOf("/");return b>0?a.substring(0,b):""},x=function(a,b){return"/"!=a.slice(-1)&&(a+="/"),b="undefined"!=typeof b?b:!1,this.files[a]||v.call(this,a,null,{dir:!0,createFolders:b}),this.files[a]},y=function(a,b){var c,f=new j;return a._data instanceof j?(f.uncompressedSize=a._data.uncompressedSize,f.crc32=a._data.crc32,0===f.uncompressedSize||a.dir?(b=i.STORE,f.compressedContent="",f.crc32=0):a._data.compressionMethod===b.magic?f.compressedContent=a._data.getCompressedContent():(c=a._data.getContent(),f.compressedContent=b.compress(d.transformTo(b.compressInputType,c)))):(c=p(a),(!c||0===c.length||a.dir)&&(b=i.STORE,c=""),f.uncompressedSize=c.length,f.crc32=e(c),f.compressedContent=b.compress(d.transformTo(b.compressInputType,c))),f.compressedSize=f.compressedContent.length,f.compressionMethod=b.magic,f},z=function(a,b,c,g){var h,i,j,k,m=(c.compressedContent,d.transformTo("string",l.utf8encode(b.name))),n=b.comment||"",o=d.transformTo("string",l.utf8encode(n)),p=m.length!==b.name.length,q=o.length!==n.length,r=b.options,t="",u="",v="";j=b._initialMetadata.dir!==b.dir?b.dir:r.dir,k=b._initialMetadata.date!==b.date?b.date:r.date,h=k.getHours(),h<<=6,h|=k.getMinutes(),h<<=5,h|=k.getSeconds()/2,i=k.getFullYear()-1980,i<<=4,i|=k.getMonth()+1,i<<=5,i|=k.getDate(),p&&(u=s(1,1)+s(e(m),4)+m,t+="up"+s(u.length,2)+u),q&&(v=s(1,1)+s(this.crc32(o),4)+o,t+="uc"+s(v.length,2)+v);var w="";w+="\n\x00",w+=p||q?"\x00\b":"\x00\x00",w+=c.compressionMethod,w+=s(h,2),w+=s(i,2),w+=s(c.crc32,4),w+=s(c.compressedSize,4),w+=s(c.uncompressedSize,4),w+=s(m.length,2),w+=s(t.length,2);var x=f.LOCAL_FILE_HEADER+w+m+t,y=f.CENTRAL_FILE_HEADER+"\x00"+w+s(o.length,2)+"\x00\x00\x00\x00"+(j===!0?"\x00\x00\x00":"\x00\x00\x00\x00")+s(g,4)+m+t+o;return{fileRecord:x,dirRecord:y,compressedObject:c}},A={load:function(){throw new Error("Load method is not defined. Is the file jszip-load.js included ?")},filter:function(a){var b,c,d,e,f=[];for(b in this.files)this.files.hasOwnProperty(b)&&(d=this.files[b],e=new r(d.name,d._data,t(d.options)),c=b.slice(this.root.length,b.length),b.slice(0,this.root.length)===this.root&&a(c,e)&&f.push(e));return f},file:function(a,b,c){if(1===arguments.length){if(d.isRegExp(a)){var e=a;return this.filter(function(a,b){return!b.dir&&e.test(a)})}return this.filter(function(b,c){return!c.dir&&b===a})[0]||null}return a=this.root+a,v.call(this,a,b,c),this},folder:function(a){if(!a)return this;if(d.isRegExp(a))return this.filter(function(b,c){return c.dir&&a.test(b)});var b=this.root+a,c=x.call(this,b),e=this.clone();return e.root=c.name,e},remove:function(a){a=this.root+a;var b=this.files[a];if(b||("/"!=a.slice(-1)&&(a+="/"),b=this.files[a]),b&&!b.dir)delete this.files[a];else for(var c=this.filter(function(b,c){return c.name.slice(0,a.length)===a}),d=0;d<c.length;d++)delete this.files[c[d].name];return this},generate:function(a){a=t(a||{},{base64:!0,compression:"STORE",type:"base64",comment:null}),d.checkSupport(a.type);var b,c,e=[],g=0,j=0,k=d.transformTo("string",this.utf8encode(a.comment||this.comment||""));for(var l in this.files)if(this.files.hasOwnProperty(l)){var o=this.files[l],p=o.options.compression||a.compression.toUpperCase(),q=i[p];if(!q)throw new Error(p+" is not a valid compression method !");var r=y.call(this,o,q),u=z.call(this,l,o,r,g);g+=u.fileRecord.length+r.compressedSize,j+=u.dirRecord.length,e.push(u)}var v="";v=f.CENTRAL_DIRECTORY_END+"\x00\x00\x00\x00"+s(e.length,2)+s(e.length,2)+s(j,4)+s(g,4)+s(k.length,2)+k;var w=a.type.toLowerCase();for(b="uint8array"===w||"arraybuffer"===w||"blob"===w||"nodebuffer"===w?new n(g+j+v.length):new m(g+j+v.length),c=0;c<e.length;c++)b.append(e[c].fileRecord),b.append(e[c].compressedObject.compressedContent);for(c=0;c<e.length;c++)b.append(e[c].dirRecord);b.append(v);var x=b.finalize();switch(a.type.toLowerCase()){case"uint8array":case"arraybuffer":case"nodebuffer":return d.transformTo(a.type.toLowerCase(),x);case"blob":return d.arrayBuffer2Blob(d.transformTo("arraybuffer",x));case"base64":return a.base64?h.encode(x):x;default:return x}},crc32:function(a,b){return e(a,b)},utf8encode:function(a){return d.transformTo("string",l.utf8encode(a))},utf8decode:function(a){return l.utf8decode(a)}};b.exports=A},{"./base64":1,"./compressedObject":2,"./compressions":3,"./crc32":4,"./defaults":6,"./nodeBuffer":11,"./signature":14,"./stringWriter":16,"./support":17,"./uint8ArrayWriter":19,"./utf8":20,"./utils":21}],14:[function(a,b,c){"use strict";c.LOCAL_FILE_HEADER="PK",c.CENTRAL_FILE_HEADER="PK",c.CENTRAL_DIRECTORY_END="PK",c.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK",c.ZIP64_CENTRAL_DIRECTORY_END="PK",c.DATA_DESCRIPTOR="PK\b"},{}],15:[function(a,b){"use strict";function c(a,b){this.data=a,b||(this.data=e.string2binary(this.data)),this.length=this.data.length,this.index=0}var d=a("./dataReader"),e=a("./utils");c.prototype=new d,c.prototype.byteAt=function(a){return this.data.charCodeAt(a)},c.prototype.lastIndexOfSignature=function(a){return this.data.lastIndexOf(a)},c.prototype.readData=function(a){this.checkOffset(a);var b=this.data.slice(this.index,this.index+a);return this.index+=a,b},b.exports=c},{"./dataReader":5,"./utils":21}],16:[function(a,b){"use strict";var c=a("./utils"),d=function(){this.data=[]};d.prototype={append:function(a){a=c.transformTo("string",a),this.data.push(a)},finalize:function(){return this.data.join("")}},b.exports=d},{"./utils":21}],17:[function(a,b,c){(function(a){"use strict";if(c.base64=!0,c.array=!0,c.string=!0,c.arraybuffer="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array,c.nodebuffer="undefined"!=typeof a,c.uint8array="undefined"!=typeof Uint8Array,"undefined"==typeof ArrayBuffer)c.blob=!1;else{var b=new ArrayBuffer(0);try{c.blob=0===new Blob([b],{type:"application/zip"}).size}catch(d){try{var e=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder||window.MSBlobBuilder,f=new e;f.append(b),c.blob=0===f.getBlob("application/zip").size}catch(d){c.blob=!1}}}}).call(this,"undefined"!=typeof Buffer?Buffer:void 0)},{}],18:[function(a,b){"use strict";function c(a){a&&(this.data=a,this.length=this.data.length,this.index=0)}var d=a("./dataReader");c.prototype=new d,c.prototype.byteAt=function(a){return this.data[a]},c.prototype.lastIndexOfSignature=function(a){for(var b=a.charCodeAt(0),c=a.charCodeAt(1),d=a.charCodeAt(2),e=a.charCodeAt(3),f=this.length-4;f>=0;--f)if(this.data[f]===b&&this.data[f+1]===c&&this.data[f+2]===d&&this.data[f+3]===e)return f;return-1},c.prototype.readData=function(a){if(this.checkOffset(a),0===a)return new Uint8Array(0);var b=this.data.subarray(this.index,this.index+a);return this.index+=a,b},b.exports=c},{"./dataReader":5}],19:[function(a,b){"use strict";var c=a("./utils"),d=function(a){this.data=new Uint8Array(a),this.index=0};d.prototype={append:function(a){0!==a.length&&(a=c.transformTo("uint8array",a),this.data.set(a,this.index),this.index+=a.length)},finalize:function(){return this.data}},b.exports=d},{"./utils":21}],20:[function(a,b,c){"use strict";for(var d=a("./utils"),e=a("./support"),f=a("./nodeBuffer"),g=new Array(256),h=0;256>h;h++)g[h]=h>=252?6:h>=248?5:h>=240?4:h>=224?3:h>=192?2:1;g[254]=g[254]=1;var i=function(a){var b,c,d,f,g,h=a.length,i=0;for(f=0;h>f;f++)c=a.charCodeAt(f),55296===(64512&c)&&h>f+1&&(d=a.charCodeAt(f+1),56320===(64512&d)&&(c=65536+(c-55296<<10)+(d-56320),f++)),i+=128>c?1:2048>c?2:65536>c?3:4;for(b=e.uint8array?new Uint8Array(i):new Array(i),g=0,f=0;i>g;f++)c=a.charCodeAt(f),55296===(64512&c)&&h>f+1&&(d=a.charCodeAt(f+1),56320===(64512&d)&&(c=65536+(c-55296<<10)+(d-56320),f++)),128>c?b[g++]=c:2048>c?(b[g++]=192|c>>>6,b[g++]=128|63&c):65536>c?(b[g++]=224|c>>>12,b[g++]=128|c>>>6&63,b[g++]=128|63&c):(b[g++]=240|c>>>18,b[g++]=128|c>>>12&63,b[g++]=128|c>>>6&63,b[g++]=128|63&c);return b},j=function(a,b){var c;for(b=b||a.length,b>a.length&&(b=a.length),c=b-1;c>=0&&128===(192&a[c]);)c--;return 0>c?b:0===c?b:c+g[a[c]]>b?c:b},k=function(a){var b,c,e,f,h=a.length,i=new Array(2*h);for(c=0,b=0;h>b;)if(e=a[b++],128>e)i[c++]=e;else if(f=g[e],f>4)i[c++]=65533,b+=f-1;else{for(e&=2===f?31:3===f?15:7;f>1&&h>b;)e=e<<6|63&a[b++],f--;f>1?i[c++]=65533:65536>e?i[c++]=e:(e-=65536,i[c++]=55296|e>>10&1023,i[c++]=56320|1023&e)}return i.length!==c&&(i.subarray?i=i.subarray(0,c):i.length=c),d.applyFromCharCode(i)};c.utf8encode=function(a){return e.nodebuffer?f(a,"utf-8"):i(a)},c.utf8decode=function(a){if(e.nodebuffer)return d.transformTo("nodebuffer",a).toString("utf-8");a=d.transformTo(e.uint8array?"uint8array":"array",a);for(var b=[],c=0,f=a.length,g=65536;f>c;){var h=j(a,Math.min(c+g,f));b.push(e.uint8array?k(a.subarray(c,h)):k(a.slice(c,h))),c=h}return b.join("")}},{"./nodeBuffer":11,"./support":17,"./utils":21}],21:[function(a,b,c){"use strict";function d(a){return a}function e(a,b){for(var c=0;c<a.length;++c)b[c]=255&a.charCodeAt(c);return b}function f(a){var b=65536,d=[],e=a.length,f=c.getTypeOf(a),g=0,h=!0;try{switch(f){case"uint8array":String.fromCharCode.apply(null,new Uint8Array(0));break;case"nodebuffer":String.fromCharCode.apply(null,j(0))}}catch(i){h=!1}if(!h){for(var k="",l=0;l<a.length;l++)k+=String.fromCharCode(a[l]);return k}for(;e>g&&b>1;)try{d.push("array"===f||"nodebuffer"===f?String.fromCharCode.apply(null,a.slice(g,Math.min(g+b,e))):String.fromCharCode.apply(null,a.subarray(g,Math.min(g+b,e)))),g+=b}catch(i){b=Math.floor(b/2)}return d.join("")}function g(a,b){for(var c=0;c<a.length;c++)b[c]=a[c];return b}var h=a("./support"),i=a("./compressions"),j=a("./nodeBuffer");c.string2binary=function(a){for(var b="",c=0;c<a.length;c++)b+=String.fromCharCode(255&a.charCodeAt(c));return b},c.arrayBuffer2Blob=function(a){c.checkSupport("blob");try{return new Blob([a],{type:"application/zip"})}catch(b){try{var d=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder||window.MSBlobBuilder,e=new d;return e.append(a),e.getBlob("application/zip")}catch(b){throw new Error("Bug : can't construct the Blob.")}}},c.applyFromCharCode=f;var k={};k.string={string:d,array:function(a){return e(a,new Array(a.length))},arraybuffer:function(a){return k.string.uint8array(a).buffer},uint8array:function(a){return e(a,new Uint8Array(a.length))},nodebuffer:function(a){return e(a,j(a.length))}},k.array={string:f,array:d,arraybuffer:function(a){return new Uint8Array(a).buffer},uint8array:function(a){return new Uint8Array(a)},nodebuffer:function(a){return j(a)}},k.arraybuffer={string:function(a){return f(new Uint8Array(a))},array:function(a){return g(new Uint8Array(a),new Array(a.byteLength))},arraybuffer:d,uint8array:function(a){return new Uint8Array(a)},nodebuffer:function(a){return j(new Uint8Array(a))}},k.uint8array={string:f,array:function(a){return g(a,new Array(a.length))},arraybuffer:function(a){return a.buffer},uint8array:d,nodebuffer:function(a){return j(a)}},k.nodebuffer={string:f,array:function(a){return g(a,new Array(a.length))},arraybuffer:function(a){return k.nodebuffer.uint8array(a).buffer},uint8array:function(a){return g(a,new Uint8Array(a.length))},nodebuffer:d},c.transformTo=function(a,b){if(b||(b=""),!a)return b;c.checkSupport(a);var d=c.getTypeOf(b),e=k[d][a](b);return e},c.getTypeOf=function(a){return"string"==typeof a?"string":"[object Array]"===Object.prototype.toString.call(a)?"array":h.nodebuffer&&j.test(a)?"nodebuffer":h.uint8array&&a instanceof Uint8Array?"uint8array":h.arraybuffer&&a instanceof ArrayBuffer?"arraybuffer":void 0},c.checkSupport=function(a){var b=h[a.toLowerCase()];if(!b)throw new Error(a+" is not supported by this browser")},c.MAX_VALUE_16BITS=65535,c.MAX_VALUE_32BITS=-1,c.pretty=function(a){var b,c,d="";for(c=0;c<(a||"").length;c++)b=a.charCodeAt(c),d+="\\x"+(16>b?"0":"")+b.toString(16).toUpperCase();return d},c.findCompression=function(a){for(var b in i)if(i.hasOwnProperty(b)&&i[b].magic===a)return i[b];return null},c.isRegExp=function(a){return"[object RegExp]"===Object.prototype.toString.call(a)}},{"./compressions":3,"./nodeBuffer":11,"./support":17}],22:[function(a,b){"use strict";function c(a,b){this.files=[],this.loadOptions=b,a&&this.load(a)}var d=a("./stringReader"),e=a("./nodeBufferReader"),f=a("./uint8ArrayReader"),g=a("./utils"),h=a("./signature"),i=a("./zipEntry"),j=a("./support"),k=a("./object");c.prototype={checkSignature:function(a){var b=this.reader.readString(4);if(b!==a)throw new Error("Corrupted zip or bug : unexpected signature ("+g.pretty(b)+", expected "+g.pretty(a)+")")},readBlockEndOfCentral:function(){this.diskNumber=this.reader.readInt(2),this.diskWithCentralDirStart=this.reader.readInt(2),this.centralDirRecordsOnThisDisk=this.reader.readInt(2),this.centralDirRecords=this.reader.readInt(2),this.centralDirSize=this.reader.readInt(4),this.centralDirOffset=this.reader.readInt(4),this.zipCommentLength=this.reader.readInt(2),this.zipComment=this.reader.readString(this.zipCommentLength),this.zipComment=k.utf8decode(this.zipComment)},readBlockZip64EndOfCentral:function(){this.zip64EndOfCentralSize=this.reader.readInt(8),this.versionMadeBy=this.reader.readString(2),this.versionNeeded=this.reader.readInt(2),this.diskNumber=this.reader.readInt(4),this.diskWithCentralDirStart=this.reader.readInt(4),this.centralDirRecordsOnThisDisk=this.reader.readInt(8),this.centralDirRecords=this.reader.readInt(8),this.centralDirSize=this.reader.readInt(8),this.centralDirOffset=this.reader.readInt(8),this.zip64ExtensibleData={};for(var a,b,c,d=this.zip64EndOfCentralSize-44,e=0;d>e;)a=this.reader.readInt(2),b=this.reader.readInt(4),c=this.reader.readString(b),this.zip64ExtensibleData[a]={id:a,length:b,value:c}},readBlockZip64EndOfCentralLocator:function(){if(this.diskWithZip64CentralDirStart=this.reader.readInt(4),this.relativeOffsetEndOfZip64CentralDir=this.reader.readInt(8),this.disksCount=this.reader.readInt(4),this.disksCount>1)throw new Error("Multi-volumes zip are not supported")},readLocalFiles:function(){var a,b;for(a=0;a<this.files.length;a++)b=this.files[a],this.reader.setIndex(b.localHeaderOffset),this.checkSignature(h.LOCAL_FILE_HEADER),b.readLocalPart(this.reader),b.handleUTF8()},readCentralDir:function(){var a;for(this.reader.setIndex(this.centralDirOffset);this.reader.readString(4)===h.CENTRAL_FILE_HEADER;)a=new i({zip64:this.zip64},this.loadOptions),a.readCentralPart(this.reader),this.files.push(a)},readEndOfCentral:function(){var a=this.reader.lastIndexOfSignature(h.CENTRAL_DIRECTORY_END);if(-1===a)throw new Error("Corrupted zip : can't find end of central directory");if(this.reader.setIndex(a),this.checkSignature(h.CENTRAL_DIRECTORY_END),this.readBlockEndOfCentral(),this.diskNumber===g.MAX_VALUE_16BITS||this.diskWithCentralDirStart===g.MAX_VALUE_16BITS||this.centralDirRecordsOnThisDisk===g.MAX_VALUE_16BITS||this.centralDirRecords===g.MAX_VALUE_16BITS||this.centralDirSize===g.MAX_VALUE_32BITS||this.centralDirOffset===g.MAX_VALUE_32BITS){if(this.zip64=!0,a=this.reader.lastIndexOfSignature(h.ZIP64_CENTRAL_DIRECTORY_LOCATOR),-1===a)throw new Error("Corrupted zip : can't find the ZIP64 end of central directory locator");this.reader.setIndex(a),this.checkSignature(h.ZIP64_CENTRAL_DIRECTORY_LOCATOR),this.readBlockZip64EndOfCentralLocator(),this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir),this.checkSignature(h.ZIP64_CENTRAL_DIRECTORY_END),this.readBlockZip64EndOfCentral()}},prepareReader:function(a){var b=g.getTypeOf(a);this.reader="string"!==b||j.uint8array?"nodebuffer"===b?new e(a):new f(g.transformTo("uint8array",a)):new d(a,this.loadOptions.optimizedBinaryString)},load:function(a){this.prepareReader(a),this.readEndOfCentral(),this.readCentralDir(),this.readLocalFiles()}},b.exports=c},{"./nodeBufferReader":12,"./object":13,"./signature":14,"./stringReader":15,"./support":17,"./uint8ArrayReader":18,"./utils":21,"./zipEntry":23}],23:[function(a,b){"use strict";function c(a,b){this.options=a,this.loadOptions=b}var d=a("./stringReader"),e=a("./utils"),f=a("./compressedObject"),g=a("./object");c.prototype={isEncrypted:function(){return 1===(1&this.bitFlag)},useUTF8:function(){return 2048===(2048&this.bitFlag)},prepareCompressedContent:function(a,b,c){return function(){var d=a.index;a.setIndex(b);var e=a.readData(c);return a.setIndex(d),e}},prepareContent:function(a,b,c,d,f){return function(){var a=e.transformTo(d.uncompressInputType,this.getCompressedContent()),b=d.uncompress(a);if(b.length!==f)throw new Error("Bug : uncompressed data size mismatch");return b}},readLocalPart:function(a){var b,c;if(a.skip(22),this.fileNameLength=a.readInt(2),c=a.readInt(2),this.fileName=a.readString(this.fileNameLength),a.skip(c),-1==this.compressedSize||-1==this.uncompressedSize)throw new Error("Bug or corrupted zip : didn't get enough informations from the central directory (compressedSize == -1 || uncompressedSize == -1)");if(b=e.findCompression(this.compressionMethod),null===b)throw new Error("Corrupted zip : compression "+e.pretty(this.compressionMethod)+" unknown (inner file : "+this.fileName+")");if(this.decompressed=new f,this.decompressed.compressedSize=this.compressedSize,this.decompressed.uncompressedSize=this.uncompressedSize,this.decompressed.crc32=this.crc32,this.decompressed.compressionMethod=this.compressionMethod,this.decompressed.getCompressedContent=this.prepareCompressedContent(a,a.index,this.compressedSize,b),this.decompressed.getContent=this.prepareContent(a,a.index,this.compressedSize,b,this.uncompressedSize),this.loadOptions.checkCRC32&&(this.decompressed=e.transformTo("string",this.decompressed.getContent()),g.crc32(this.decompressed)!==this.crc32))throw new Error("Corrupted zip : CRC32 mismatch")},readCentralPart:function(a){if(this.versionMadeBy=a.readString(2),this.versionNeeded=a.readInt(2),this.bitFlag=a.readInt(2),this.compressionMethod=a.readString(2),this.date=a.readDate(),this.crc32=a.readInt(4),this.compressedSize=a.readInt(4),this.uncompressedSize=a.readInt(4),this.fileNameLength=a.readInt(2),this.extraFieldsLength=a.readInt(2),this.fileCommentLength=a.readInt(2),this.diskNumberStart=a.readInt(2),this.internalFileAttributes=a.readInt(2),this.externalFileAttributes=a.readInt(4),this.localHeaderOffset=a.readInt(4),this.isEncrypted())throw new Error("Encrypted zip are not supported");this.fileName=a.readString(this.fileNameLength),this.readExtraFields(a),this.parseZIP64ExtraField(a),this.fileComment=a.readString(this.fileCommentLength),this.dir=16&this.externalFileAttributes?!0:!1},parseZIP64ExtraField:function(){if(this.extraFields[1]){var a=new d(this.extraFields[1].value);this.uncompressedSize===e.MAX_VALUE_32BITS&&(this.uncompressedSize=a.readInt(8)),this.compressedSize===e.MAX_VALUE_32BITS&&(this.compressedSize=a.readInt(8)),this.localHeaderOffset===e.MAX_VALUE_32BITS&&(this.localHeaderOffset=a.readInt(8)),this.diskNumberStart===e.MAX_VALUE_32BITS&&(this.diskNumberStart=a.readInt(4))}},readExtraFields:function(a){var b,c,d,e=a.index;for(this.extraFields=this.extraFields||{};a.index<e+this.extraFieldsLength;)b=a.readInt(2),c=a.readInt(2),d=a.readString(c),this.extraFields[b]={id:b,length:c,value:d}},handleUTF8:function(){if(this.useUTF8())this.fileName=g.utf8decode(this.fileName),this.fileComment=g.utf8decode(this.fileComment);else{var a=this.findExtraFieldUnicodePath();null!==a&&(this.fileName=a);var b=this.findExtraFieldUnicodeComment();null!==b&&(this.fileComment=b)}},findExtraFieldUnicodePath:function(){var a=this.extraFields[28789];if(a){var b=new d(a.value);return 1!==b.readInt(1)?null:g.crc32(this.fileName)!==b.readInt(4)?null:g.utf8decode(b.readString(a.length-5))}return null},findExtraFieldUnicodeComment:function(){var a=this.extraFields[25461];if(a){var b=new d(a.value);return 1!==b.readInt(1)?null:g.crc32(this.fileComment)!==b.readInt(4)?null:g.utf8decode(b.readString(a.length-5))}return null}},b.exports=c},{"./compressedObject":2,"./object":13,"./stringReader":15,"./utils":21}],24:[function(a,b){"use strict";var c=a("./lib/utils/common").assign,d=a("./lib/deflate"),e=a("./lib/inflate"),f=a("./lib/zlib/constants"),g={};c(g,d,e,f),b.exports=g},{"./lib/deflate":25,"./lib/inflate":26,"./lib/utils/common":27,"./lib/zlib/constants":30}],25:[function(a,b,c){"use strict";function d(a,b){var c=new s(b);if(c.push(a,!0),c.err)throw c.msg;return c.result}function e(a,b){return b=b||{},b.raw=!0,d(a,b)}function f(a,b){return b=b||{},b.gzip=!0,d(a,b)}var g=a("./zlib/deflate.js"),h=a("./utils/common"),i=a("./utils/strings"),j=a("./zlib/messages"),k=a("./zlib/zstream"),l=0,m=4,n=0,o=1,p=-1,q=0,r=8,s=function(a){this.options=h.assign({level:p,method:r,chunkSize:16384,windowBits:15,memLevel:8,strategy:q,to:""},a||{});var b=this.options;b.raw&&b.windowBits>0?b.windowBits=-b.windowBits:b.gzip&&b.windowBits>0&&b.windowBits<16&&(b.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new k,this.strm.avail_out=0;var c=g.deflateInit2(this.strm,b.level,b.method,b.windowBits,b.memLevel,b.strategy);if(c!==n)throw new Error(j[c]);b.header&&g.deflateSetHeader(this.strm,b.header)};s.prototype.push=function(a,b){var c,d,e=this.strm,f=this.options.chunkSize;if(this.ended)return!1;d=b===~~b?b:b===!0?m:l,e.input="string"==typeof a?i.string2buf(a):a,e.next_in=0,e.avail_in=e.input.length;do{if(0===e.avail_out&&(e.output=new h.Buf8(f),e.next_out=0,e.avail_out=f),c=g.deflate(e,d),c!==o&&c!==n)return this.onEnd(c),this.ended=!0,!1;(0===e.avail_out||0===e.avail_in&&d===m)&&this.onData("string"===this.options.to?i.buf2binstring(h.shrinkBuf(e.output,e.next_out)):h.shrinkBuf(e.output,e.next_out))}while((e.avail_in>0||0===e.avail_out)&&c!==o);return d===m?(c=g.deflateEnd(this.strm),this.onEnd(c),this.ended=!0,c===n):!0},s.prototype.onData=function(a){this.chunks.push(a)},s.prototype.onEnd=function(a){a===n&&(this.result="string"===this.options.to?this.chunks.join(""):h.flattenChunks(this.chunks)),this.chunks=[],this.err=a,this.msg=this.strm.msg},c.Deflate=s,c.deflate=d,c.deflateRaw=e,c.gzip=f},{"./utils/common":27,"./utils/strings":28,"./zlib/deflate.js":32,"./zlib/messages":37,"./zlib/zstream":39}],26:[function(a,b,c){"use strict";function d(a,b){var c=new m(b);if(c.push(a,!0),c.err)throw c.msg;return c.result}function e(a,b){return b=b||{},b.raw=!0,d(a,b)}var f=a("./zlib/inflate.js"),g=a("./utils/common"),h=a("./utils/strings"),i=a("./zlib/constants"),j=a("./zlib/messages"),k=a("./zlib/zstream"),l=a("./zlib/gzheader"),m=function(a){this.options=g.assign({chunkSize:16384,windowBits:0,to:""},a||{});var b=this.options;b.raw&&b.windowBits>=0&&b.windowBits<16&&(b.windowBits=-b.windowBits,0===b.windowBits&&(b.windowBits=-15)),!(b.windowBits>=0&&b.windowBits<16)||a&&a.windowBits||(b.windowBits+=32),b.windowBits>15&&b.windowBits<48&&0===(15&b.windowBits)&&(b.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new k,this.strm.avail_out=0;var c=f.inflateInit2(this.strm,b.windowBits);if(c!==i.Z_OK)throw new Error(j[c]);this.header=new l,f.inflateGetHeader(this.strm,this.header)};m.prototype.push=function(a,b){var c,d,e,j,k,l=this.strm,m=this.options.chunkSize;if(this.ended)return!1;d=b===~~b?b:b===!0?i.Z_FINISH:i.Z_NO_FLUSH,l.input="string"==typeof a?h.binstring2buf(a):a,l.next_in=0,l.avail_in=l.input.length;do{if(0===l.avail_out&&(l.output=new g.Buf8(m),l.next_out=0,l.avail_out=m),c=f.inflate(l,i.Z_NO_FLUSH),c!==i.Z_STREAM_END&&c!==i.Z_OK)return this.onEnd(c),this.ended=!0,!1;l.next_out&&(0===l.avail_out||c===i.Z_STREAM_END||0===l.avail_in&&d===i.Z_FINISH)&&("string"===this.options.to?(e=h.utf8border(l.output,l.next_out),j=l.next_out-e,k=h.buf2string(l.output,e),l.next_out=j,l.avail_out=m-j,j&&g.arraySet(l.output,l.output,e,j,0),this.onData(k)):this.onData(g.shrinkBuf(l.output,l.next_out)))}while(l.avail_in>0&&c!==i.Z_STREAM_END);return c===i.Z_STREAM_END&&(d=i.Z_FINISH),d===i.Z_FINISH?(c=f.inflateEnd(this.strm),this.onEnd(c),this.ended=!0,c===i.Z_OK):!0},m.prototype.onData=function(a){this.chunks.push(a)},m.prototype.onEnd=function(a){a===i.Z_OK&&(this.result="string"===this.options.to?this.chunks.join(""):g.flattenChunks(this.chunks)),this.chunks=[],this.err=a,this.msg=this.strm.msg},c.Inflate=m,c.inflate=d,c.inflateRaw=e,c.ungzip=d},{"./utils/common":27,"./utils/strings":28,"./zlib/constants":30,"./zlib/gzheader":33,"./zlib/inflate.js":35,"./zlib/messages":37,"./zlib/zstream":39}],27:[function(a,b,c){"use strict";var d="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Int32Array;c.assign=function(a){for(var b=Array.prototype.slice.call(arguments,1);b.length;){var c=b.shift();if(c){if("object"!=typeof c)throw new TypeError(c+"must be non-object");for(var d in c)c.hasOwnProperty(d)&&(a[d]=c[d])}}return a},c.shrinkBuf=function(a,b){return a.length===b?a:a.subarray?a.subarray(0,b):(a.length=b,a)};var e={arraySet:function(a,b,c,d,e){if(b.subarray&&a.subarray)return void a.set(b.subarray(c,c+d),e);for(var f=0;d>f;f++)a[e+f]=b[c+f]},flattenChunks:function(a){var b,c,d,e,f,g;for(d=0,b=0,c=a.length;c>b;b++)d+=a[b].length;for(g=new Uint8Array(d),e=0,b=0,c=a.length;c>b;b++)f=a[b],g.set(f,e),e+=f.length;return g}},f={arraySet:function(a,b,c,d,e){for(var f=0;d>f;f++)a[e+f]=b[c+f]},flattenChunks:function(a){return[].concat.apply([],a)}};c.setTyped=function(a){a?(c.Buf8=Uint8Array,c.Buf16=Uint16Array,c.Buf32=Int32Array,c.assign(c,e)):(c.Buf8=Array,c.Buf16=Array,c.Buf32=Array,c.assign(c,f))},c.setTyped(d)},{}],28:[function(a,b,c){"use strict";function d(a,b){if(65537>b&&(a.subarray&&g||!a.subarray&&f))return String.fromCharCode.apply(null,e.shrinkBuf(a,b));for(var c="",d=0;b>d;d++)c+=String.fromCharCode(a[d]);return c}var e=a("./common"),f=!0,g=!0;try{String.fromCharCode.apply(null,[0])}catch(h){f=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(h){g=!1}for(var i=new e.Buf8(256),j=0;256>j;j++)i[j]=j>=252?6:j>=248?5:j>=240?4:j>=224?3:j>=192?2:1;i[254]=i[254]=1,c.string2buf=function(a){var b,c,d,f,g,h=a.length,i=0;for(f=0;h>f;f++)c=a.charCodeAt(f),55296===(64512&c)&&h>f+1&&(d=a.charCodeAt(f+1),56320===(64512&d)&&(c=65536+(c-55296<<10)+(d-56320),f++)),i+=128>c?1:2048>c?2:65536>c?3:4;for(b=new e.Buf8(i),g=0,f=0;i>g;f++)c=a.charCodeAt(f),55296===(64512&c)&&h>f+1&&(d=a.charCodeAt(f+1),56320===(64512&d)&&(c=65536+(c-55296<<10)+(d-56320),f++)),128>c?b[g++]=c:2048>c?(b[g++]=192|c>>>6,b[g++]=128|63&c):65536>c?(b[g++]=224|c>>>12,b[g++]=128|c>>>6&63,b[g++]=128|63&c):(b[g++]=240|c>>>18,b[g++]=128|c>>>12&63,b[g++]=128|c>>>6&63,b[g++]=128|63&c);return b},c.buf2binstring=function(a){return d(a,a.length)},c.binstring2buf=function(a){for(var b=new e.Buf8(a.length),c=0,d=b.length;d>c;c++)b[c]=a.charCodeAt(c);return b},c.buf2string=function(a,b){var c,e,f,g,h=b||a.length,j=new Array(2*h);for(e=0,c=0;h>c;)if(f=a[c++],128>f)j[e++]=f;else if(g=i[f],g>4)j[e++]=65533,c+=g-1;else{for(f&=2===g?31:3===g?15:7;g>1&&h>c;)f=f<<6|63&a[c++],g--;g>1?j[e++]=65533:65536>f?j[e++]=f:(f-=65536,j[e++]=55296|f>>10&1023,j[e++]=56320|1023&f)}return d(j,e)},c.utf8border=function(a,b){var c;for(b=b||a.length,b>a.length&&(b=a.length),c=b-1;c>=0&&128===(192&a[c]);)c--;return 0>c?b:0===c?b:c+i[a[c]]>b?c:b}},{"./common":27}],29:[function(a,b){"use strict";function c(a,b,c,d){for(var e=65535&a|0,f=a>>>16&65535|0,g=0;0!==c;){g=c>2e3?2e3:c,c-=g;do e=e+b[d++]|0,f=f+e|0;while(--g);e%=65521,f%=65521}return e|f<<16|0}b.exports=c},{}],30:[function(a,b){b.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],31:[function(a,b){"use strict";function c(){for(var a,b=[],c=0;256>c;c++){a=c;for(var d=0;8>d;d++)a=1&a?3988292384^a>>>1:a>>>1;b[c]=a}return b}function d(a,b,c,d){var f=e,g=d+c;a=-1^a;for(var h=d;g>h;h++)a=a>>>8^f[255&(a^b[h])];return-1^a}var e=c();b.exports=d},{}],32:[function(a,b,c){"use strict";function d(a,b){return a.msg=G[b],b}function e(a){return(a<<1)-(a>4?9:0)}function f(a){for(var b=a.length;--b>=0;)a[b]=0}function g(a){var b=a.state,c=b.pending;c>a.avail_out&&(c=a.avail_out),0!==c&&(C.arraySet(a.output,b.pending_buf,b.pending_out,c,a.next_out),a.next_out+=c,b.pending_out+=c,a.total_out+=c,a.avail_out-=c,b.pending-=c,0===b.pending&&(b.pending_out=0))}function h(a,b){D._tr_flush_block(a,a.block_start>=0?a.block_start:-1,a.strstart-a.block_start,b),a.block_start=a.strstart,g(a.strm)}function i(a,b){a.pending_buf[a.pending++]=b}function j(a,b){a.pending_buf[a.pending++]=b>>>8&255,a.pending_buf[a.pending++]=255&b}function k(a,b,c,d){var e=a.avail_in;return e>d&&(e=d),0===e?0:(a.avail_in-=e,C.arraySet(b,a.input,a.next_in,e,c),1===a.state.wrap?a.adler=E(a.adler,b,e,c):2===a.state.wrap&&(a.adler=F(a.adler,b,e,c)),a.next_in+=e,a.total_in+=e,e)}function l(a,b){var c,d,e=a.max_chain_length,f=a.strstart,g=a.prev_length,h=a.nice_match,i=a.strstart>a.w_size-jb?a.strstart-(a.w_size-jb):0,j=a.window,k=a.w_mask,l=a.prev,m=a.strstart+ib,n=j[f+g-1],o=j[f+g];a.prev_length>=a.good_match&&(e>>=2),h>a.lookahead&&(h=a.lookahead);do if(c=b,j[c+g]===o&&j[c+g-1]===n&&j[c]===j[f]&&j[++c]===j[f+1]){f+=2,c++;do;while(j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&m>f);if(d=ib-(m-f),f=m-ib,d>g){if(a.match_start=b,g=d,d>=h)break;n=j[f+g-1],o=j[f+g]}}while((b=l[b&k])>i&&0!==--e);return g<=a.lookahead?g:a.lookahead}function m(a){var b,c,d,e,f,g=a.w_size;do{if(e=a.window_size-a.lookahead-a.strstart,a.strstart>=g+(g-jb)){C.arraySet(a.window,a.window,g,g,0),a.match_start-=g,a.strstart-=g,a.block_start-=g,c=a.hash_size,b=c;do d=a.head[--b],a.head[b]=d>=g?d-g:0;while(--c);c=g,b=c;do d=a.prev[--b],a.prev[b]=d>=g?d-g:0;while(--c);e+=g}if(0===a.strm.avail_in)break;if(c=k(a.strm,a.window,a.strstart+a.lookahead,e),a.lookahead+=c,a.lookahead+a.insert>=hb)for(f=a.strstart-a.insert,a.ins_h=a.window[f],a.ins_h=(a.ins_h<<a.hash_shift^a.window[f+1])&a.hash_mask;a.insert&&(a.ins_h=(a.ins_h<<a.hash_shift^a.window[f+hb-1])&a.hash_mask,a.prev[f&a.w_mask]=a.head[a.ins_h],a.head[a.ins_h]=f,f++,a.insert--,!(a.lookahead+a.insert<hb)););}while(a.lookahead<jb&&0!==a.strm.avail_in)}function n(a,b){var c=65535;for(c>a.pending_buf_size-5&&(c=a.pending_buf_size-5);;){if(a.lookahead<=1){if(m(a),0===a.lookahead&&b===H)return sb;if(0===a.lookahead)break}a.strstart+=a.lookahead,a.lookahead=0;var d=a.block_start+c;if((0===a.strstart||a.strstart>=d)&&(a.lookahead=a.strstart-d,a.strstart=d,h(a,!1),0===a.strm.avail_out))return sb;if(a.strstart-a.block_start>=a.w_size-jb&&(h(a,!1),0===a.strm.avail_out))return sb}return a.insert=0,b===K?(h(a,!0),0===a.strm.avail_out?ub:vb):a.strstart>a.block_start&&(h(a,!1),0===a.strm.avail_out)?sb:sb}function o(a,b){for(var c,d;;){if(a.lookahead<jb){if(m(a),a.lookahead<jb&&b===H)return sb;if(0===a.lookahead)break}if(c=0,a.lookahead>=hb&&(a.ins_h=(a.ins_h<<a.hash_shift^a.window[a.strstart+hb-1])&a.hash_mask,c=a.prev[a.strstart&a.w_mask]=a.head[a.ins_h],a.head[a.ins_h]=a.strstart),0!==c&&a.strstart-c<=a.w_size-jb&&(a.match_length=l(a,c)),a.match_length>=hb)if(d=D._tr_tally(a,a.strstart-a.match_start,a.match_length-hb),a.lookahead-=a.match_length,a.match_length<=a.max_lazy_match&&a.lookahead>=hb){a.match_length--;do a.strstart++,a.ins_h=(a.ins_h<<a.hash_shift^a.window[a.strstart+hb-1])&a.hash_mask,c=a.prev[a.strstart&a.w_mask]=a.head[a.ins_h],a.head[a.ins_h]=a.strstart;while(0!==--a.match_length);a.strstart++}else a.strstart+=a.match_length,a.match_length=0,a.ins_h=a.window[a.strstart],a.ins_h=(a.ins_h<<a.hash_shift^a.window[a.strstart+1])&a.hash_mask;else d=D._tr_tally(a,0,a.window[a.strstart]),a.lookahead--,a.strstart++;if(d&&(h(a,!1),0===a.strm.avail_out))return sb}return a.insert=a.strstart<hb-1?a.strstart:hb-1,b===K?(h(a,!0),0===a.strm.avail_out?ub:vb):a.last_lit&&(h(a,!1),0===a.strm.avail_out)?sb:tb}function p(a,b){for(var c,d,e;;){if(a.lookahead<jb){if(m(a),a.lookahead<jb&&b===H)return sb;if(0===a.lookahead)break}if(c=0,a.lookahead>=hb&&(a.ins_h=(a.ins_h<<a.hash_shift^a.window[a.strstart+hb-1])&a.hash_mask,c=a.prev[a.strstart&a.w_mask]=a.head[a.ins_h],a.head[a.ins_h]=a.strstart),a.prev_length=a.match_length,a.prev_match=a.match_start,a.match_length=hb-1,0!==c&&a.prev_length<a.max_lazy_match&&a.strstart-c<=a.w_size-jb&&(a.match_length=l(a,c),a.match_length<=5&&(a.strategy===S||a.match_length===hb&&a.strstart-a.match_start>4096)&&(a.match_length=hb-1)),a.prev_length>=hb&&a.match_length<=a.prev_length){e=a.strstart+a.lookahead-hb,d=D._tr_tally(a,a.strstart-1-a.prev_match,a.prev_length-hb),a.lookahead-=a.prev_length-1,a.prev_length-=2;do++a.strstart<=e&&(a.ins_h=(a.ins_h<<a.hash_shift^a.window[a.strstart+hb-1])&a.hash_mask,c=a.prev[a.strstart&a.w_mask]=a.head[a.ins_h],a.head[a.ins_h]=a.strstart);while(0!==--a.prev_length);if(a.match_available=0,a.match_length=hb-1,a.strstart++,d&&(h(a,!1),0===a.strm.avail_out))return sb}else if(a.match_available){if(d=D._tr_tally(a,0,a.window[a.strstart-1]),d&&h(a,!1),a.strstart++,a.lookahead--,0===a.strm.avail_out)return sb}else a.match_available=1,a.strstart++,a.lookahead--}return a.match_available&&(d=D._tr_tally(a,0,a.window[a.strstart-1]),a.match_available=0),a.insert=a.strstart<hb-1?a.strstart:hb-1,b===K?(h(a,!0),0===a.strm.avail_out?ub:vb):a.last_lit&&(h(a,!1),0===a.strm.avail_out)?sb:tb}function q(a,b){for(var c,d,e,f,g=a.window;;){if(a.lookahead<=ib){if(m(a),a.lookahead<=ib&&b===H)return sb;if(0===a.lookahead)break}if(a.match_length=0,a.lookahead>=hb&&a.strstart>0&&(e=a.strstart-1,d=g[e],d===g[++e]&&d===g[++e]&&d===g[++e])){f=a.strstart+ib;do;while(d===g[++e]&&d===g[++e]&&d===g[++e]&&d===g[++e]&&d===g[++e]&&d===g[++e]&&d===g[++e]&&d===g[++e]&&f>e);a.match_length=ib-(f-e),a.match_length>a.lookahead&&(a.match_length=a.lookahead)}if(a.match_length>=hb?(c=D._tr_tally(a,1,a.match_length-hb),a.lookahead-=a.match_length,a.strstart+=a.match_length,a.match_length=0):(c=D._tr_tally(a,0,a.window[a.strstart]),a.lookahead--,a.strstart++),c&&(h(a,!1),0===a.strm.avail_out))return sb}return a.insert=0,b===K?(h(a,!0),0===a.strm.avail_out?ub:vb):a.last_lit&&(h(a,!1),0===a.strm.avail_out)?sb:tb}function r(a,b){for(var c;;){if(0===a.lookahead&&(m(a),0===a.lookahead)){if(b===H)return sb;break}if(a.match_length=0,c=D._tr_tally(a,0,a.window[a.strstart]),a.lookahead--,a.strstart++,c&&(h(a,!1),0===a.strm.avail_out))return sb}return a.insert=0,b===K?(h(a,!0),0===a.strm.avail_out?ub:vb):a.last_lit&&(h(a,!1),0===a.strm.avail_out)?sb:tb}function s(a){a.window_size=2*a.w_size,f(a.head),a.max_lazy_match=B[a.level].max_lazy,a.good_match=B[a.level].good_length,a.nice_match=B[a.level].nice_length,a.max_chain_length=B[a.level].max_chain,a.strstart=0,a.block_start=0,a.lookahead=0,a.insert=0,a.match_length=a.prev_length=hb-1,a.match_available=0,a.ins_h=0}function t(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=Y,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new C.Buf16(2*fb),this.dyn_dtree=new C.Buf16(2*(2*db+1)),this.bl_tree=new C.Buf16(2*(2*eb+1)),f(this.dyn_ltree),f(this.dyn_dtree),f(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new C.Buf16(gb+1),this.heap=new C.Buf16(2*cb+1),f(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new C.Buf16(2*cb+1),f(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function u(a){var b;return a&&a.state?(a.total_in=a.total_out=0,a.data_type=X,b=a.state,b.pending=0,b.pending_out=0,b.wrap<0&&(b.wrap=-b.wrap),b.status=b.wrap?lb:qb,a.adler=2===b.wrap?0:1,b.last_flush=H,D._tr_init(b),M):d(a,O)}function v(a){var b=u(a);return b===M&&s(a.state),b}function w(a,b){return a&&a.state?2!==a.state.wrap?O:(a.state.gzhead=b,M):O}function x(a,b,c,e,f,g){if(!a)return O;var h=1;if(b===R&&(b=6),0>e?(h=0,e=-e):e>15&&(h=2,e-=16),1>f||f>Z||c!==Y||8>e||e>15||0>b||b>9||0>g||g>V)return d(a,O);8===e&&(e=9);var i=new t;return a.state=i,i.strm=a,i.wrap=h,i.gzhead=null,i.w_bits=e,i.w_size=1<<i.w_bits,i.w_mask=i.w_size-1,i.hash_bits=f+7,i.hash_size=1<<i.hash_bits,i.hash_mask=i.hash_size-1,i.hash_shift=~~((i.hash_bits+hb-1)/hb),i.window=new C.Buf8(2*i.w_size),i.head=new C.Buf16(i.hash_size),i.prev=new C.Buf16(i.w_size),i.lit_bufsize=1<<f+6,i.pending_buf_size=4*i.lit_bufsize,i.pending_buf=new C.Buf8(i.pending_buf_size),i.d_buf=i.lit_bufsize>>1,i.l_buf=3*i.lit_bufsize,i.level=b,i.strategy=g,i.method=c,v(a)}function y(a,b){return x(a,b,Y,$,_,W)}function z(a,b){var c,h,k,l;if(!a||!a.state||b>L||0>b)return a?d(a,O):O;if(h=a.state,!a.output||!a.input&&0!==a.avail_in||h.status===rb&&b!==K)return d(a,0===a.avail_out?Q:O);if(h.strm=a,c=h.last_flush,h.last_flush=b,h.status===lb)if(2===h.wrap)a.adler=0,i(h,31),i(h,139),i(h,8),h.gzhead?(i(h,(h.gzhead.text?1:0)+(h.gzhead.hcrc?2:0)+(h.gzhead.extra?4:0)+(h.gzhead.name?8:0)+(h.gzhead.comment?16:0)),i(h,255&h.gzhead.time),i(h,h.gzhead.time>>8&255),i(h,h.gzhead.time>>16&255),i(h,h.gzhead.time>>24&255),i(h,9===h.level?2:h.strategy>=T||h.level<2?4:0),i(h,255&h.gzhead.os),h.gzhead.extra&&h.gzhead.extra.length&&(i(h,255&h.gzhead.extra.length),i(h,h.gzhead.extra.length>>8&255)),h.gzhead.hcrc&&(a.adler=F(a.adler,h.pending_buf,h.pending,0)),h.gzindex=0,h.status=mb):(i(h,0),i(h,0),i(h,0),i(h,0),i(h,0),i(h,9===h.level?2:h.strategy>=T||h.level<2?4:0),i(h,wb),h.status=qb);else{var m=Y+(h.w_bits-8<<4)<<8,n=-1;n=h.strategy>=T||h.level<2?0:h.level<6?1:6===h.level?2:3,m|=n<<6,0!==h.strstart&&(m|=kb),m+=31-m%31,h.status=qb,j(h,m),0!==h.strstart&&(j(h,a.adler>>>16),j(h,65535&a.adler)),a.adler=1}if(h.status===mb)if(h.gzhead.extra){for(k=h.pending;h.gzindex<(65535&h.gzhead.extra.length)&&(h.pending!==h.pending_buf_size||(h.gzhead.hcrc&&h.pending>k&&(a.adler=F(a.adler,h.pending_buf,h.pending-k,k)),g(a),k=h.pending,h.pending!==h.pending_buf_size));)i(h,255&h.gzhead.extra[h.gzindex]),h.gzindex++;h.gzhead.hcrc&&h.pending>k&&(a.adler=F(a.adler,h.pending_buf,h.pending-k,k)),h.gzindex===h.gzhead.extra.length&&(h.gzindex=0,h.status=nb)}else h.status=nb;if(h.status===nb)if(h.gzhead.name){k=h.pending;do{if(h.pending===h.pending_buf_size&&(h.gzhead.hcrc&&h.pending>k&&(a.adler=F(a.adler,h.pending_buf,h.pending-k,k)),g(a),k=h.pending,h.pending===h.pending_buf_size)){l=1;break}l=h.gzindex<h.gzhead.name.length?255&h.gzhead.name.charCodeAt(h.gzindex++):0,i(h,l)}while(0!==l);h.gzhead.hcrc&&h.pending>k&&(a.adler=F(a.adler,h.pending_buf,h.pending-k,k)),0===l&&(h.gzindex=0,h.status=ob)}else h.status=ob;if(h.status===ob)if(h.gzhead.comment){k=h.pending;do{if(h.pending===h.pending_buf_size&&(h.gzhead.hcrc&&h.pending>k&&(a.adler=F(a.adler,h.pending_buf,h.pending-k,k)),g(a),k=h.pending,h.pending===h.pending_buf_size)){l=1;break}l=h.gzindex<h.gzhead.comment.length?255&h.gzhead.comment.charCodeAt(h.gzindex++):0,i(h,l)}while(0!==l);h.gzhead.hcrc&&h.pending>k&&(a.adler=F(a.adler,h.pending_buf,h.pending-k,k)),0===l&&(h.status=pb)}else h.status=pb;if(h.status===pb&&(h.gzhead.hcrc?(h.pending+2>h.pending_buf_size&&g(a),h.pending+2<=h.pending_buf_size&&(i(h,255&a.adler),i(h,a.adler>>8&255),a.adler=0,h.status=qb)):h.status=qb),0!==h.pending){if(g(a),0===a.avail_out)return h.last_flush=-1,M}else if(0===a.avail_in&&e(b)<=e(c)&&b!==K)return d(a,Q);if(h.status===rb&&0!==a.avail_in)return d(a,Q);if(0!==a.avail_in||0!==h.lookahead||b!==H&&h.status!==rb){var o=h.strategy===T?r(h,b):h.strategy===U?q(h,b):B[h.level].func(h,b);if((o===ub||o===vb)&&(h.status=rb),o===sb||o===ub)return 0===a.avail_out&&(h.last_flush=-1),M;if(o===tb&&(b===I?D._tr_align(h):b!==L&&(D._tr_stored_block(h,0,0,!1),b===J&&(f(h.head),0===h.lookahead&&(h.strstart=0,h.block_start=0,h.insert=0))),g(a),0===a.avail_out))return h.last_flush=-1,M}return b!==K?M:h.wrap<=0?N:(2===h.wrap?(i(h,255&a.adler),i(h,a.adler>>8&255),i(h,a.adler>>16&255),i(h,a.adler>>24&255),i(h,255&a.total_in),i(h,a.total_in>>8&255),i(h,a.total_in>>16&255),i(h,a.total_in>>24&255)):(j(h,a.adler>>>16),j(h,65535&a.adler)),g(a),h.wrap>0&&(h.wrap=-h.wrap),0!==h.pending?M:N)}function A(a){var b;return a&&a.state?(b=a.state.status,b!==lb&&b!==mb&&b!==nb&&b!==ob&&b!==pb&&b!==qb&&b!==rb?d(a,O):(a.state=null,b===qb?d(a,P):M)):O}var B,C=a("../utils/common"),D=a("./trees"),E=a("./adler32"),F=a("./crc32"),G=a("./messages"),H=0,I=1,J=3,K=4,L=5,M=0,N=1,O=-2,P=-3,Q=-5,R=-1,S=1,T=2,U=3,V=4,W=0,X=2,Y=8,Z=9,$=15,_=8,ab=29,bb=256,cb=bb+1+ab,db=30,eb=19,fb=2*cb+1,gb=15,hb=3,ib=258,jb=ib+hb+1,kb=32,lb=42,mb=69,nb=73,ob=91,pb=103,qb=113,rb=666,sb=1,tb=2,ub=3,vb=4,wb=3,xb=function(a,b,c,d,e){this.good_length=a,this.max_lazy=b,this.nice_length=c,this.max_chain=d,this.func=e};B=[new xb(0,0,0,0,n),new xb(4,4,8,4,o),new xb(4,5,16,8,o),new xb(4,6,32,32,o),new xb(4,4,16,16,p),new xb(8,16,32,32,p),new xb(8,16,128,128,p),new xb(8,32,128,256,p),new xb(32,128,258,1024,p),new xb(32,258,258,4096,p)],c.deflateInit=y,c.deflateInit2=x,c.deflateReset=v,c.deflateResetKeep=u,c.deflateSetHeader=w,c.deflate=z,c.deflateEnd=A,c.deflateInfo="pako deflate (from Nodeca project)"},{"../utils/common":27,"./adler32":29,"./crc32":31,"./messages":37,"./trees":38}],33:[function(a,b){"use strict";function c(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}b.exports=c},{}],34:[function(a,b){"use strict";var c=30,d=12;b.exports=function(a,b){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C;e=a.state,f=a.next_in,B=a.input,g=f+(a.avail_in-5),h=a.next_out,C=a.output,i=h-(b-a.avail_out),j=h+(a.avail_out-257),k=e.dmax,l=e.wsize,m=e.whave,n=e.wnext,o=e.window,p=e.hold,q=e.bits,r=e.lencode,s=e.distcode,t=(1<<e.lenbits)-1,u=(1<<e.distbits)-1;a:do{15>q&&(p+=B[f++]<<q,q+=8,p+=B[f++]<<q,q+=8),v=r[p&t];b:for(;;){if(w=v>>>24,p>>>=w,q-=w,w=v>>>16&255,0===w)C[h++]=65535&v;else{if(!(16&w)){if(0===(64&w)){v=r[(65535&v)+(p&(1<<w)-1)];continue b}if(32&w){e.mode=d;break a}a.msg="invalid literal/length code",e.mode=c;break a}x=65535&v,w&=15,w&&(w>q&&(p+=B[f++]<<q,q+=8),x+=p&(1<<w)-1,p>>>=w,q-=w),15>q&&(p+=B[f++]<<q,q+=8,p+=B[f++]<<q,q+=8),v=s[p&u];c:for(;;){if(w=v>>>24,p>>>=w,q-=w,w=v>>>16&255,!(16&w)){if(0===(64&w)){v=s[(65535&v)+(p&(1<<w)-1)];continue c}a.msg="invalid distance code",e.mode=c;break a}if(y=65535&v,w&=15,w>q&&(p+=B[f++]<<q,q+=8,w>q&&(p+=B[f++]<<q,q+=8)),y+=p&(1<<w)-1,y>k){a.msg="invalid distance too far back",e.mode=c;break a}if(p>>>=w,q-=w,w=h-i,y>w){if(w=y-w,w>m&&e.sane){a.msg="invalid distance too far back",e.mode=c;break a}if(z=0,A=o,0===n){if(z+=l-w,x>w){x-=w;do C[h++]=o[z++];while(--w);z=h-y,A=C}}else if(w>n){if(z+=l+n-w,w-=n,x>w){x-=w;do C[h++]=o[z++];while(--w);if(z=0,x>n){w=n,x-=w;do C[h++]=o[z++];while(--w);z=h-y,A=C}}}else if(z+=n-w,x>w){x-=w;do C[h++]=o[z++];while(--w);z=h-y,A=C}for(;x>2;)C[h++]=A[z++],C[h++]=A[z++],C[h++]=A[z++],x-=3;x&&(C[h++]=A[z++],x>1&&(C[h++]=A[z++]))}else{z=h-y;do C[h++]=C[z++],C[h++]=C[z++],C[h++]=C[z++],x-=3;while(x>2);x&&(C[h++]=C[z++],x>1&&(C[h++]=C[z++]))}break}}break}}while(g>f&&j>h);x=q>>3,f-=x,q-=x<<3,p&=(1<<q)-1,a.next_in=f,a.next_out=h,a.avail_in=g>f?5+(g-f):5-(f-g),a.avail_out=j>h?257+(j-h):257-(h-j),e.hold=p,e.bits=q}},{}],35:[function(a,b,c){"use strict";function d(a){return(a>>>24&255)+(a>>>8&65280)+((65280&a)<<8)+((255&a)<<24)}function e(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new r.Buf16(320),this.work=new r.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function f(a){var b;return a&&a.state?(b=a.state,a.total_in=a.total_out=b.total=0,a.msg="",b.wrap&&(a.adler=1&b.wrap),b.mode=K,b.last=0,b.havedict=0,b.dmax=32768,b.head=null,b.hold=0,b.bits=0,b.lencode=b.lendyn=new r.Buf32(ob),b.distcode=b.distdyn=new r.Buf32(pb),b.sane=1,b.back=-1,C):F}function g(a){var b;return a&&a.state?(b=a.state,b.wsize=0,b.whave=0,b.wnext=0,f(a)):F}function h(a,b){var c,d;return a&&a.state?(d=a.state,0>b?(c=0,b=-b):(c=(b>>4)+1,48>b&&(b&=15)),b&&(8>b||b>15)?F:(null!==d.window&&d.wbits!==b&&(d.window=null),d.wrap=c,d.wbits=b,g(a))):F}function i(a,b){var c,d;return a?(d=new e,a.state=d,d.window=null,c=h(a,b),c!==C&&(a.state=null),c):F}function j(a){return i(a,rb)}function k(a){if(sb){var b;for(p=new r.Buf32(512),q=new r.Buf32(32),b=0;144>b;)a.lens[b++]=8;for(;256>b;)a.lens[b++]=9;for(;280>b;)a.lens[b++]=7;for(;288>b;)a.lens[b++]=8;for(v(x,a.lens,0,288,p,0,a.work,{bits:9}),b=0;32>b;)a.lens[b++]=5;v(y,a.lens,0,32,q,0,a.work,{bits:5}),sb=!1}a.lencode=p,a.lenbits=9,a.distcode=q,a.distbits=5}function l(a,b,c,d){var e,f=a.state;return null===f.window&&(f.wsize=1<<f.wbits,f.wnext=0,f.whave=0,f.window=new r.Buf8(f.wsize)),d>=f.wsize?(r.arraySet(f.window,b,c-f.wsize,f.wsize,0),f.wnext=0,f.whave=f.wsize):(e=f.wsize-f.wnext,e>d&&(e=d),r.arraySet(f.window,b,c-d,e,f.wnext),d-=e,d?(r.arraySet(f.window,b,c-d,d,0),f.wnext=d,f.whave=f.wsize):(f.wnext+=e,f.wnext===f.wsize&&(f.wnext=0),f.whave<f.wsize&&(f.whave+=e))),0}function m(a,b){var c,e,f,g,h,i,j,m,n,o,p,q,ob,pb,qb,rb,sb,tb,ub,vb,wb,xb,yb,zb,Ab=0,Bb=new r.Buf8(4),Cb=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!a||!a.state||!a.output||!a.input&&0!==a.avail_in)return F;c=a.state,c.mode===V&&(c.mode=W),h=a.next_out,f=a.output,j=a.avail_out,g=a.next_in,e=a.input,i=a.avail_in,m=c.hold,n=c.bits,o=i,p=j,xb=C;a:for(;;)switch(c.mode){case K:if(0===c.wrap){c.mode=W;break}for(;16>n;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(2&c.wrap&&35615===m){c.check=0,Bb[0]=255&m,Bb[1]=m>>>8&255,c.check=t(c.check,Bb,2,0),m=0,n=0,c.mode=L;break}if(c.flags=0,c.head&&(c.head.done=!1),!(1&c.wrap)||(((255&m)<<8)+(m>>8))%31){a.msg="incorrect header check",c.mode=lb;break}if((15&m)!==J){a.msg="unknown compression method",c.mode=lb;break}if(m>>>=4,n-=4,wb=(15&m)+8,0===c.wbits)c.wbits=wb;else if(wb>c.wbits){a.msg="invalid window size",c.mode=lb;break}c.dmax=1<<wb,a.adler=c.check=1,c.mode=512&m?T:V,m=0,n=0;break;case L:for(;16>n;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(c.flags=m,(255&c.flags)!==J){a.msg="unknown compression method",c.mode=lb;break}if(57344&c.flags){a.msg="unknown header flags set",c.mode=lb;break}c.head&&(c.head.text=m>>8&1),512&c.flags&&(Bb[0]=255&m,Bb[1]=m>>>8&255,c.check=t(c.check,Bb,2,0)),m=0,n=0,c.mode=M;case M:for(;32>n;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}c.head&&(c.head.time=m),512&c.flags&&(Bb[0]=255&m,Bb[1]=m>>>8&255,Bb[2]=m>>>16&255,Bb[3]=m>>>24&255,c.check=t(c.check,Bb,4,0)),m=0,n=0,c.mode=N;case N:for(;16>n;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}c.head&&(c.head.xflags=255&m,c.head.os=m>>8),512&c.flags&&(Bb[0]=255&m,Bb[1]=m>>>8&255,c.check=t(c.check,Bb,2,0)),m=0,n=0,c.mode=O;case O:if(1024&c.flags){for(;16>n;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}c.length=m,c.head&&(c.head.extra_len=m),512&c.flags&&(Bb[0]=255&m,Bb[1]=m>>>8&255,c.check=t(c.check,Bb,2,0)),m=0,n=0}else c.head&&(c.head.extra=null);c.mode=P;case P:if(1024&c.flags&&(q=c.length,q>i&&(q=i),q&&(c.head&&(wb=c.head.extra_len-c.length,c.head.extra||(c.head.extra=new Array(c.head.extra_len)),r.arraySet(c.head.extra,e,g,q,wb)),512&c.flags&&(c.check=t(c.check,e,q,g)),i-=q,g+=q,c.length-=q),c.length))break a;c.length=0,c.mode=Q;case Q:if(2048&c.flags){if(0===i)break a;q=0;do wb=e[g+q++],c.head&&wb&&c.length<65536&&(c.head.name+=String.fromCharCode(wb));while(wb&&i>q);if(512&c.flags&&(c.check=t(c.check,e,q,g)),i-=q,g+=q,wb)break a}else c.head&&(c.head.name=null);c.length=0,c.mode=R;case R:if(4096&c.flags){if(0===i)break a;q=0;do wb=e[g+q++],c.head&&wb&&c.length<65536&&(c.head.comment+=String.fromCharCode(wb));while(wb&&i>q);if(512&c.flags&&(c.check=t(c.check,e,q,g)),i-=q,g+=q,wb)break a}else c.head&&(c.head.comment=null);c.mode=S;case S:if(512&c.flags){for(;16>n;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(m!==(65535&c.check)){a.msg="header crc mismatch",c.mode=lb;break}m=0,n=0}c.head&&(c.head.hcrc=c.flags>>9&1,c.head.done=!0),a.adler=c.check=0,c.mode=V;break;case T:for(;32>n;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}a.adler=c.check=d(m),m=0,n=0,c.mode=U;case U:if(0===c.havedict)return a.next_out=h,a.avail_out=j,a.next_in=g,a.avail_in=i,c.hold=m,c.bits=n,E;a.adler=c.check=1,c.mode=V;case V:if(b===A||b===B)break a;case W:if(c.last){m>>>=7&n,n-=7&n,c.mode=ib;break}for(;3>n;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}switch(c.last=1&m,m>>>=1,n-=1,3&m){case 0:c.mode=X;break;case 1:if(k(c),c.mode=bb,b===B){m>>>=2,n-=2;break a}break;case 2:c.mode=$;break;case 3:a.msg="invalid block type",c.mode=lb}m>>>=2,n-=2;break;case X:for(m>>>=7&n,n-=7&n;32>n;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if((65535&m)!==(m>>>16^65535)){a.msg="invalid stored block lengths",c.mode=lb;break}if(c.length=65535&m,m=0,n=0,c.mode=Y,b===B)break a;case Y:c.mode=Z;case Z:if(q=c.length){if(q>i&&(q=i),q>j&&(q=j),0===q)break a;r.arraySet(f,e,g,q,h),i-=q,g+=q,j-=q,h+=q,c.length-=q;break}c.mode=V;break;case $:for(;14>n;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(c.nlen=(31&m)+257,m>>>=5,n-=5,c.ndist=(31&m)+1,m>>>=5,n-=5,c.ncode=(15&m)+4,m>>>=4,n-=4,c.nlen>286||c.ndist>30){a.msg="too many length or distance symbols",c.mode=lb;break}c.have=0,c.mode=_;case _:for(;c.have<c.ncode;){for(;3>n;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}c.lens[Cb[c.have++]]=7&m,m>>>=3,n-=3}for(;c.have<19;)c.lens[Cb[c.have++]]=0;if(c.lencode=c.lendyn,c.lenbits=7,yb={bits:c.lenbits},xb=v(w,c.lens,0,19,c.lencode,0,c.work,yb),c.lenbits=yb.bits,xb){a.msg="invalid code lengths set",c.mode=lb;break}c.have=0,c.mode=ab;case ab:for(;c.have<c.nlen+c.ndist;){for(;Ab=c.lencode[m&(1<<c.lenbits)-1],qb=Ab>>>24,rb=Ab>>>16&255,sb=65535&Ab,!(n>=qb);){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(16>sb)m>>>=qb,n-=qb,c.lens[c.have++]=sb;else{if(16===sb){for(zb=qb+2;zb>n;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(m>>>=qb,n-=qb,0===c.have){a.msg="invalid bit length repeat",c.mode=lb;break}wb=c.lens[c.have-1],q=3+(3&m),m>>>=2,n-=2}else if(17===sb){for(zb=qb+3;zb>n;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}m>>>=qb,n-=qb,wb=0,q=3+(7&m),m>>>=3,n-=3}else{for(zb=qb+7;zb>n;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}m>>>=qb,n-=qb,wb=0,q=11+(127&m),m>>>=7,n-=7}if(c.have+q>c.nlen+c.ndist){a.msg="invalid bit length repeat",c.mode=lb;break}for(;q--;)c.lens[c.have++]=wb}}if(c.mode===lb)break;if(0===c.lens[256]){a.msg="invalid code -- missing end-of-block",c.mode=lb;break}if(c.lenbits=9,yb={bits:c.lenbits},xb=v(x,c.lens,0,c.nlen,c.lencode,0,c.work,yb),c.lenbits=yb.bits,xb){a.msg="invalid literal/lengths set",c.mode=lb;break}if(c.distbits=6,c.distcode=c.distdyn,yb={bits:c.distbits},xb=v(y,c.lens,c.nlen,c.ndist,c.distcode,0,c.work,yb),c.distbits=yb.bits,xb){a.msg="invalid distances set",c.mode=lb;break}if(c.mode=bb,b===B)break a;case bb:c.mode=cb;case cb:if(i>=6&&j>=258){a.next_out=h,a.avail_out=j,a.next_in=g,a.avail_in=i,c.hold=m,c.bits=n,u(a,p),h=a.next_out,f=a.output,j=a.avail_out,g=a.next_in,e=a.input,i=a.avail_in,m=c.hold,n=c.bits,c.mode===V&&(c.back=-1);break}for(c.back=0;Ab=c.lencode[m&(1<<c.lenbits)-1],qb=Ab>>>24,rb=Ab>>>16&255,sb=65535&Ab,!(n>=qb);){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(rb&&0===(240&rb)){for(tb=qb,ub=rb,vb=sb;Ab=c.lencode[vb+((m&(1<<tb+ub)-1)>>tb)],qb=Ab>>>24,rb=Ab>>>16&255,sb=65535&Ab,!(n>=tb+qb);){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}m>>>=tb,n-=tb,c.back+=tb}if(m>>>=qb,n-=qb,c.back+=qb,c.length=sb,0===rb){c.mode=hb;break}if(32&rb){c.back=-1,c.mode=V;break}if(64&rb){a.msg="invalid literal/length code",c.mode=lb;break}c.extra=15&rb,c.mode=db;case db:if(c.extra){for(zb=c.extra;zb>n;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}c.length+=m&(1<<c.extra)-1,m>>>=c.extra,n-=c.extra,c.back+=c.extra}c.was=c.length,c.mode=eb;case eb:for(;Ab=c.distcode[m&(1<<c.distbits)-1],qb=Ab>>>24,rb=Ab>>>16&255,sb=65535&Ab,!(n>=qb);){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(0===(240&rb)){for(tb=qb,ub=rb,vb=sb;Ab=c.distcode[vb+((m&(1<<tb+ub)-1)>>tb)],qb=Ab>>>24,rb=Ab>>>16&255,sb=65535&Ab,!(n>=tb+qb);){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}m>>>=tb,n-=tb,c.back+=tb}if(m>>>=qb,n-=qb,c.back+=qb,64&rb){a.msg="invalid distance code",c.mode=lb;break}c.offset=sb,c.extra=15&rb,c.mode=fb;case fb:if(c.extra){for(zb=c.extra;zb>n;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}c.offset+=m&(1<<c.extra)-1,m>>>=c.extra,n-=c.extra,c.back+=c.extra}if(c.offset>c.dmax){a.msg="invalid distance too far back",c.mode=lb;break}c.mode=gb;case gb:if(0===j)break a;if(q=p-j,c.offset>q){if(q=c.offset-q,q>c.whave&&c.sane){a.msg="invalid distance too far back",c.mode=lb;break}q>c.wnext?(q-=c.wnext,ob=c.wsize-q):ob=c.wnext-q,q>c.length&&(q=c.length),pb=c.window}else pb=f,ob=h-c.offset,q=c.length;q>j&&(q=j),j-=q,c.length-=q;do f[h++]=pb[ob++];while(--q);0===c.length&&(c.mode=cb);break;case hb:if(0===j)break a;f[h++]=c.length,j--,c.mode=cb;break;case ib:if(c.wrap){for(;32>n;){if(0===i)break a;i--,m|=e[g++]<<n,n+=8}if(p-=j,a.total_out+=p,c.total+=p,p&&(a.adler=c.check=c.flags?t(c.check,f,p,h-p):s(c.check,f,p,h-p)),p=j,(c.flags?m:d(m))!==c.check){a.msg="incorrect data check",c.mode=lb;break}m=0,n=0}c.mode=jb;case jb:if(c.wrap&&c.flags){for(;32>n;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(m!==(4294967295&c.total)){a.msg="incorrect length check",c.mode=lb;break}m=0,n=0}c.mode=kb;case kb:xb=D;break a;case lb:xb=G;break a;case mb:return H;case nb:default:return F}return a.next_out=h,a.avail_out=j,a.next_in=g,a.avail_in=i,c.hold=m,c.bits=n,(c.wsize||p!==a.avail_out&&c.mode<lb&&(c.mode<ib||b!==z))&&l(a,a.output,a.next_out,p-a.avail_out)?(c.mode=mb,H):(o-=a.avail_in,p-=a.avail_out,a.total_in+=o,a.total_out+=p,c.total+=p,c.wrap&&p&&(a.adler=c.check=c.flags?t(c.check,f,p,a.next_out-p):s(c.check,f,p,a.next_out-p)),a.data_type=c.bits+(c.last?64:0)+(c.mode===V?128:0)+(c.mode===bb||c.mode===Y?256:0),(0===o&&0===p||b===z)&&xb===C&&(xb=I),xb)}function n(a){if(!a||!a.state)return F;var b=a.state;return b.window&&(b.window=null),a.state=null,C}function o(a,b){var c;return a&&a.state?(c=a.state,0===(2&c.wrap)?F:(c.head=b,b.done=!1,C)):F}var p,q,r=a("../utils/common"),s=a("./adler32"),t=a("./crc32"),u=a("./inffast"),v=a("./inftrees"),w=0,x=1,y=2,z=4,A=5,B=6,C=0,D=1,E=2,F=-2,G=-3,H=-4,I=-5,J=8,K=1,L=2,M=3,N=4,O=5,P=6,Q=7,R=8,S=9,T=10,U=11,V=12,W=13,X=14,Y=15,Z=16,$=17,_=18,ab=19,bb=20,cb=21,db=22,eb=23,fb=24,gb=25,hb=26,ib=27,jb=28,kb=29,lb=30,mb=31,nb=32,ob=852,pb=592,qb=15,rb=qb,sb=!0;c.inflateReset=g,c.inflateReset2=h,c.inflateResetKeep=f,c.inflateInit=j,c.inflateInit2=i,c.inflate=m,c.inflateEnd=n,c.inflateGetHeader=o,c.inflateInfo="pako inflate (from Nodeca project)"},{"../utils/common":27,"./adler32":29,"./crc32":31,"./inffast":34,"./inftrees":36}],36:[function(a,b){"use strict";var c=a("../utils/common"),d=15,e=852,f=592,g=0,h=1,i=2,j=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],k=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],l=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],m=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];b.exports=function(a,b,n,o,p,q,r,s){var t,u,v,w,x,y,z,A,B,C=s.bits,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=null,O=0,P=new c.Buf16(d+1),Q=new c.Buf16(d+1),R=null,S=0;for(D=0;d>=D;D++)P[D]=0;for(E=0;o>E;E++)P[b[n+E]]++;for(H=C,G=d;G>=1&&0===P[G];G--);if(H>G&&(H=G),0===G)return p[q++]=20971520,p[q++]=20971520,s.bits=1,0;for(F=1;G>F&&0===P[F];F++);for(F>H&&(H=F),K=1,D=1;d>=D;D++)if(K<<=1,K-=P[D],0>K)return-1;if(K>0&&(a===g||1!==G))return-1;for(Q[1]=0,D=1;d>D;D++)Q[D+1]=Q[D]+P[D];for(E=0;o>E;E++)0!==b[n+E]&&(r[Q[b[n+E]]++]=E);if(a===g?(N=R=r,y=19):a===h?(N=j,O-=257,R=k,S-=257,y=256):(N=l,R=m,y=-1),M=0,E=0,D=F,x=q,I=H,J=0,v=-1,L=1<<H,w=L-1,a===h&&L>e||a===i&&L>f)return 1;for(var T=0;;){T++,z=D-J,r[E]<y?(A=0,B=r[E]):r[E]>y?(A=R[S+r[E]],B=N[O+r[E]]):(A=96,B=0),t=1<<D-J,u=1<<I,F=u;do u-=t,p[x+(M>>J)+u]=z<<24|A<<16|B|0;while(0!==u);for(t=1<<D-1;M&t;)t>>=1;if(0!==t?(M&=t-1,M+=t):M=0,E++,0===--P[D]){if(D===G)break;D=b[n+r[E]]}if(D>H&&(M&w)!==v){for(0===J&&(J=H),x+=F,I=D-J,K=1<<I;G>I+J&&(K-=P[I+J],!(0>=K));)I++,K<<=1;if(L+=1<<I,a===h&&L>e||a===i&&L>f)return 1;v=M&w,p[v]=H<<24|I<<16|x-q|0}}return 0!==M&&(p[x+M]=D-J<<24|64<<16|0),s.bits=H,0}},{"../utils/common":27}],37:[function(a,b){"use strict";b.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],38:[function(a,b,c){"use strict";function d(a){for(var b=a.length;--b>=0;)a[b]=0}function e(a){return 256>a?gb[a]:gb[256+(a>>>7)]}function f(a,b){a.pending_buf[a.pending++]=255&b,a.pending_buf[a.pending++]=b>>>8&255}function g(a,b,c){a.bi_valid>V-c?(a.bi_buf|=b<<a.bi_valid&65535,f(a,a.bi_buf),a.bi_buf=b>>V-a.bi_valid,a.bi_valid+=c-V):(a.bi_buf|=b<<a.bi_valid&65535,a.bi_valid+=c)}function h(a,b,c){g(a,c[2*b],c[2*b+1])}function i(a,b){var c=0;do c|=1&a,a>>>=1,c<<=1;while(--b>0);return c>>>1}function j(a){16===a.bi_valid?(f(a,a.bi_buf),a.bi_buf=0,a.bi_valid=0):a.bi_valid>=8&&(a.pending_buf[a.pending++]=255&a.bi_buf,a.bi_buf>>=8,a.bi_valid-=8)}function k(a,b){var c,d,e,f,g,h,i=b.dyn_tree,j=b.max_code,k=b.stat_desc.static_tree,l=b.stat_desc.has_stree,m=b.stat_desc.extra_bits,n=b.stat_desc.extra_base,o=b.stat_desc.max_length,p=0;for(f=0;U>=f;f++)a.bl_count[f]=0;for(i[2*a.heap[a.heap_max]+1]=0,c=a.heap_max+1;T>c;c++)d=a.heap[c],f=i[2*i[2*d+1]+1]+1,f>o&&(f=o,p++),i[2*d+1]=f,d>j||(a.bl_count[f]++,g=0,d>=n&&(g=m[d-n]),h=i[2*d],a.opt_len+=h*(f+g),l&&(a.static_len+=h*(k[2*d+1]+g)));if(0!==p){do{for(f=o-1;0===a.bl_count[f];)f--;a.bl_count[f]--,a.bl_count[f+1]+=2,a.bl_count[o]--,p-=2}while(p>0);for(f=o;0!==f;f--)for(d=a.bl_count[f];0!==d;)e=a.heap[--c],e>j||(i[2*e+1]!==f&&(a.opt_len+=(f-i[2*e+1])*i[2*e],i[2*e+1]=f),d--)}}function l(a,b,c){var d,e,f=new Array(U+1),g=0;for(d=1;U>=d;d++)f[d]=g=g+c[d-1]<<1;for(e=0;b>=e;e++){var h=a[2*e+1];0!==h&&(a[2*e]=i(f[h]++,h))}}function m(){var a,b,c,d,e,f=new Array(U+1);for(c=0,d=0;O-1>d;d++)for(ib[d]=c,a=0;a<1<<_[d];a++)hb[c++]=d;for(hb[c-1]=d,e=0,d=0;16>d;d++)for(jb[d]=e,a=0;a<1<<ab[d];a++)gb[e++]=d;for(e>>=7;R>d;d++)for(jb[d]=e<<7,a=0;a<1<<ab[d]-7;a++)gb[256+e++]=d;for(b=0;U>=b;b++)f[b]=0;for(a=0;143>=a;)eb[2*a+1]=8,a++,f[8]++;for(;255>=a;)eb[2*a+1]=9,a++,f[9]++;for(;279>=a;)eb[2*a+1]=7,a++,f[7]++;for(;287>=a;)eb[2*a+1]=8,a++,f[8]++;for(l(eb,Q+1,f),a=0;R>a;a++)fb[2*a+1]=5,fb[2*a]=i(a,5);kb=new nb(eb,_,P+1,Q,U),lb=new nb(fb,ab,0,R,U),mb=new nb(new Array(0),bb,0,S,W)}function n(a){var b;for(b=0;Q>b;b++)a.dyn_ltree[2*b]=0;for(b=0;R>b;b++)a.dyn_dtree[2*b]=0;for(b=0;S>b;b++)a.bl_tree[2*b]=0;a.dyn_ltree[2*X]=1,a.opt_len=a.static_len=0,a.last_lit=a.matches=0}function o(a){a.bi_valid>8?f(a,a.bi_buf):a.bi_valid>0&&(a.pending_buf[a.pending++]=a.bi_buf),a.bi_buf=0,a.bi_valid=0}function p(a,b,c,d){o(a),d&&(f(a,c),f(a,~c)),E.arraySet(a.pending_buf,a.window,b,c,a.pending),a.pending+=c}function q(a,b,c,d){var e=2*b,f=2*c;return a[e]<a[f]||a[e]===a[f]&&d[b]<=d[c]}function r(a,b,c){for(var d=a.heap[c],e=c<<1;e<=a.heap_len&&(e<a.heap_len&&q(b,a.heap[e+1],a.heap[e],a.depth)&&e++,!q(b,d,a.heap[e],a.depth));)a.heap[c]=a.heap[e],c=e,e<<=1;a.heap[c]=d}function s(a,b,c){var d,f,i,j,k=0;if(0!==a.last_lit)do d=a.pending_buf[a.d_buf+2*k]<<8|a.pending_buf[a.d_buf+2*k+1],f=a.pending_buf[a.l_buf+k],k++,0===d?h(a,f,b):(i=hb[f],h(a,i+P+1,b),j=_[i],0!==j&&(f-=ib[i],g(a,f,j)),d--,i=e(d),h(a,i,c),j=ab[i],0!==j&&(d-=jb[i],g(a,d,j)));while(k<a.last_lit);h(a,X,b)}function t(a,b){var c,d,e,f=b.dyn_tree,g=b.stat_desc.static_tree,h=b.stat_desc.has_stree,i=b.stat_desc.elems,j=-1;for(a.heap_len=0,a.heap_max=T,c=0;i>c;c++)0!==f[2*c]?(a.heap[++a.heap_len]=j=c,a.depth[c]=0):f[2*c+1]=0;for(;a.heap_len<2;)e=a.heap[++a.heap_len]=2>j?++j:0,f[2*e]=1,a.depth[e]=0,a.opt_len--,h&&(a.static_len-=g[2*e+1]);for(b.max_code=j,c=a.heap_len>>1;c>=1;c--)r(a,f,c);e=i;do c=a.heap[1],a.heap[1]=a.heap[a.heap_len--],r(a,f,1),d=a.heap[1],a.heap[--a.heap_max]=c,a.heap[--a.heap_max]=d,f[2*e]=f[2*c]+f[2*d],a.depth[e]=(a.depth[c]>=a.depth[d]?a.depth[c]:a.depth[d])+1,f[2*c+1]=f[2*d+1]=e,a.heap[1]=e++,r(a,f,1);while(a.heap_len>=2);a.heap[--a.heap_max]=a.heap[1],k(a,b),l(f,j,a.bl_count)}function u(a,b,c){var d,e,f=-1,g=b[1],h=0,i=7,j=4;for(0===g&&(i=138,j=3),b[2*(c+1)+1]=65535,d=0;c>=d;d++)e=g,g=b[2*(d+1)+1],++h<i&&e===g||(j>h?a.bl_tree[2*e]+=h:0!==e?(e!==f&&a.bl_tree[2*e]++,a.bl_tree[2*Y]++):10>=h?a.bl_tree[2*Z]++:a.bl_tree[2*$]++,h=0,f=e,0===g?(i=138,j=3):e===g?(i=6,j=3):(i=7,j=4))}function v(a,b,c){var d,e,f=-1,i=b[1],j=0,k=7,l=4;for(0===i&&(k=138,l=3),d=0;c>=d;d++)if(e=i,i=b[2*(d+1)+1],!(++j<k&&e===i)){if(l>j){do h(a,e,a.bl_tree);while(0!==--j)}else 0!==e?(e!==f&&(h(a,e,a.bl_tree),j--),h(a,Y,a.bl_tree),g(a,j-3,2)):10>=j?(h(a,Z,a.bl_tree),g(a,j-3,3)):(h(a,$,a.bl_tree),g(a,j-11,7));j=0,f=e,0===i?(k=138,l=3):e===i?(k=6,l=3):(k=7,l=4)}}function w(a){var b;for(u(a,a.dyn_ltree,a.l_desc.max_code),u(a,a.dyn_dtree,a.d_desc.max_code),t(a,a.bl_desc),b=S-1;b>=3&&0===a.bl_tree[2*cb[b]+1];b--);return a.opt_len+=3*(b+1)+5+5+4,b}function x(a,b,c,d){var e;for(g(a,b-257,5),g(a,c-1,5),g(a,d-4,4),e=0;d>e;e++)g(a,a.bl_tree[2*cb[e]+1],3);v(a,a.dyn_ltree,b-1),v(a,a.dyn_dtree,c-1)}function y(a){var b,c=4093624447;for(b=0;31>=b;b++,c>>>=1)if(1&c&&0!==a.dyn_ltree[2*b])return G;if(0!==a.dyn_ltree[18]||0!==a.dyn_ltree[20]||0!==a.dyn_ltree[26])return H;for(b=32;P>b;b++)if(0!==a.dyn_ltree[2*b])return H;return G}function z(a){pb||(m(),pb=!0),a.l_desc=new ob(a.dyn_ltree,kb),a.d_desc=new ob(a.dyn_dtree,lb),a.bl_desc=new ob(a.bl_tree,mb),a.bi_buf=0,a.bi_valid=0,n(a)}function A(a,b,c,d){g(a,(J<<1)+(d?1:0),3),p(a,b,c,!0)}function B(a){g(a,K<<1,3),h(a,X,eb),j(a)}function C(a,b,c,d){var e,f,h=0;a.level>0?(a.strm.data_type===I&&(a.strm.data_type=y(a)),t(a,a.l_desc),t(a,a.d_desc),h=w(a),e=a.opt_len+3+7>>>3,f=a.static_len+3+7>>>3,e>=f&&(e=f)):e=f=c+5,e>=c+4&&-1!==b?A(a,b,c,d):a.strategy===F||f===e?(g(a,(K<<1)+(d?1:0),3),s(a,eb,fb)):(g(a,(L<<1)+(d?1:0),3),x(a,a.l_desc.max_code+1,a.d_desc.max_code+1,h+1),s(a,a.dyn_ltree,a.dyn_dtree)),n(a),d&&o(a)}function D(a,b,c){return a.pending_buf[a.d_buf+2*a.last_lit]=b>>>8&255,a.pending_buf[a.d_buf+2*a.last_lit+1]=255&b,a.pending_buf[a.l_buf+a.last_lit]=255&c,a.last_lit++,0===b?a.dyn_ltree[2*c]++:(a.matches++,b--,a.dyn_ltree[2*(hb[c]+P+1)]++,a.dyn_dtree[2*e(b)]++),a.last_lit===a.lit_bufsize-1}var E=a("../utils/common"),F=4,G=0,H=1,I=2,J=0,K=1,L=2,M=3,N=258,O=29,P=256,Q=P+1+O,R=30,S=19,T=2*Q+1,U=15,V=16,W=7,X=256,Y=16,Z=17,$=18,_=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],ab=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],bb=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],cb=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],db=512,eb=new Array(2*(Q+2));d(eb);var fb=new Array(2*R);d(fb);var gb=new Array(db);d(gb);var hb=new Array(N-M+1);d(hb);var ib=new Array(O);d(ib);var jb=new Array(R);d(jb);var kb,lb,mb,nb=function(a,b,c,d,e){this.static_tree=a,this.extra_bits=b,this.extra_base=c,this.elems=d,this.max_length=e,this.has_stree=a&&a.length},ob=function(a,b){this.dyn_tree=a,this.max_code=0,this.stat_desc=b},pb=!1;c._tr_init=z,c._tr_stored_block=A,c._tr_flush_block=C,c._tr_tally=D,c._tr_align=B},{"../utils/common":27}],39:[function(a,b){"use strict";function c(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}b.exports=c},{}]},{},[9])(9)});'use strict';if(tr.isVinn){global.window={};}'use strict';if(tr.isVinn){global.JSZip=global.window.JSZip;global.window=undefined;}else if(tr.isNode){const jsZipAbsPath=HTMLImportsLoader.hrefToAbsolutePath('/jszip.min.js');const jsZipModule=require(jsZipAbsPath);global.JSZip=jsZipModule;}'use strict';tr.exportTo('tr.e.importer',function(){const GZIP_MEMBER_HEADER_ID_SIZE=3;const GZIP_HEADER_ID1=0x1f;const GZIP_HEADER_ID2=0x8b;const GZIP_DEFLATE_COMPRESSION=8;function GzipImporter(model,eventData){this.inflateAsTraceStream=false;if(typeof(eventData)==='string'||eventData instanceof String){eventData=JSZip.utils.transformTo('uint8array',eventData);}else if(eventData instanceof ArrayBuffer){eventData=new Uint8Array(eventData);}else if(eventData instanceof tr.b.InMemoryTraceStream){eventData=eventData.data;this.inflateAsTraceStream_=true;}else{throw new Error('Unknown gzip data format');}
this.model_=model;this.gzipData_=eventData;}
GzipImporter.canImport=function(eventData){if(eventData instanceof tr.b.InMemoryTraceStream){eventData=eventData.header;}
let header;if(eventData instanceof ArrayBuffer){header=new Uint8Array(eventData.slice(0,GZIP_MEMBER_HEADER_ID_SIZE));}else if(typeof(eventData)==='string'||eventData instanceof String){header=eventData.substring(0,GZIP_MEMBER_HEADER_ID_SIZE);header=JSZip.utils.transformTo('uint8array',header);}else{return false;}
return header[0]===GZIP_HEADER_ID1&&header[1]===GZIP_HEADER_ID2&&header[2]===GZIP_DEFLATE_COMPRESSION;};GzipImporter.inflateGzipData_=function(data){let position=0;function getByte(){if(position>=data.length){throw new Error('Unexpected end of gzip data');}
return data[position++];}
function getWord(){const low=getByte();const high=getByte();return(high<<8)+low;}
function skipBytes(amount){position+=amount;}
function skipZeroTerminatedString(){while(getByte()!==0){}}
const id1=getByte();const id2=getByte();if(id1!==GZIP_HEADER_ID1||id2!==GZIP_HEADER_ID2){throw new Error('Not gzip data');}
const compressionMethod=getByte();if(compressionMethod!==GZIP_DEFLATE_COMPRESSION){throw new Error('Unsupported compression method: '+compressionMethod);}
const flags=getByte();const haveHeaderCrc=flags&(1<<1);const haveExtraFields=flags&(1<<2);const haveFileName=flags&(1<<3);const haveComment=flags&(1<<4);skipBytes(4+1+1);if(haveExtraFields){const bytesToSkip=getWord();skipBytes(bytesToSkip);}
if(haveFileName)skipZeroTerminatedString();if(haveComment)skipZeroTerminatedString();if(haveHeaderCrc)getWord();const inflatedData=JSZip.compressions.DEFLATE.uncompress(data.subarray(position));if(this.inflateAsTraceStream_){return GzipImporter.transformToStream(inflatedData);}
let string;try{string=GzipImporter.transformToString(inflatedData);}catch(err){return GzipImporter.transformToStream(inflatedData);}
if(inflatedData.length>0&&string.length===0){throw new RangeError('Inflated gzip data too long to fit into a string'+' ('+inflatedData.length+').');}
return string;};GzipImporter.transformToStream=function(data){const type=JSZip.utils.getTypeOf(data);if(type==='uint8array')return new tr.b.InMemoryTraceStream(data,false);throw new Error(`Cannot transform ${type} to TraceStream.`);};GzipImporter.transformToString=function(data){if(typeof TextDecoder==='undefined'){return JSZip.utils.transformTo('string',data);}
const type=JSZip.utils.getTypeOf(data);if(type==='string')return data;if(type==='array'){data=new Uint8Array(data);}
const decoder=new TextDecoder('utf-8');return decoder.decode(data);};GzipImporter.prototype={__proto__:tr.importer.Importer.prototype,get importerName(){return'GzipImporter';},isTraceDataContainer(){return true;},extractSubtraces(){const eventData=GzipImporter.inflateGzipData_(this.gzipData_);return eventData?[eventData]:[];}};tr.importer.Importer.register(GzipImporter);return{GzipImporter,};});'use strict';tr.exportTo('tr.importer',function(){class SimpleLineReader{constructor(text){this.data_=text instanceof tr.b.TraceStream?text:text.split('\n');this.curLine_=0;this.readLastLine_=false;this.savedLines_=undefined;}*[Symbol.iterator](){let lastLine=undefined;while(this.hasData_){if(this.readLastLine_){this.curLine_++;this.readLastLine_=false;}else if(this.data_ instanceof tr.b.TraceStream){this.curLine_++;const line=this.data_.readUntilDelimiter('\n');lastLine=line.endsWith('\n')?line.slice(0,-1):line;}else{this.curLine_++;lastLine=this.data_[this.curLine_-1];}
yield lastLine;}}
get curLineNumber(){return this.curLine_;}
get hasData_(){if(this.data_ instanceof tr.b.TraceStream)return this.data_.hasData;return this.curLine_<this.data_.length;}
advanceToLineMatching(regex){for(const line of this){if(this.savedLines_!==undefined)this.savedLines_.push(line);if(regex.test(line)){this.goBack_();return true;}}
return false;}
goBack_(){if(this.readLastLine_){throw new Error('There should be at least one nextLine call between '+'any two goBack calls.');}
if(this.curLine_===0){throw new Error('There should be at least one nextLine call before '+'the first goBack call.');}
this.readLastLine_=true;this.curLine_--;}
beginSavingLines(){this.savedLines_=[];}
endSavingLinesAndGetResult(){const tmp=this.savedLines_;this.savedLines_=undefined;return tmp;}}
return{SimpleLineReader,};});'use strict';tr.exportTo('tr.e.importer',function(){function Trace2HTMLImporter(model,events){this.importPriority=0;}
Trace2HTMLImporter.subtraces_=[];function _extractEventsFromHTML(text){Trace2HTMLImporter.subtraces_=[];const r=new tr.importer.SimpleLineReader(text);while(true){if(!r.advanceToLineMatching(new RegExp('^<\s*script id="viewer-data" '+'type="(application\/json|text\/plain)">$'))){break;}
r.beginSavingLines();if(!r.advanceToLineMatching(/^<\/\s*script>$/))return;let rawEvents=r.endSavingLinesAndGetResult();rawEvents=rawEvents.slice(1,rawEvents.length-1);const data64=rawEvents.join('\n');const buffer=new ArrayBuffer(tr.b.Base64.getDecodedBufferLength(data64));const len=tr.b.Base64.DecodeToTypedArray(data64,new DataView(buffer));Trace2HTMLImporter.subtraces_.push(buffer.slice(0,len));}}
function _canImportFromHTML(text){if(!/^<!DOCTYPE html>/.test(text))return false;_extractEventsFromHTML(text);if(Trace2HTMLImporter.subtraces_.length===0)return false;return true;}
Trace2HTMLImporter.canImport=function(events){if(events instanceof tr.b.TraceStream)return false;return _canImportFromHTML(events);};Trace2HTMLImporter.prototype={__proto__:tr.importer.Importer.prototype,get importerName(){return'Trace2HTMLImporter';},isTraceDataContainer(){return true;},extractSubtraces(){return Trace2HTMLImporter.subtraces_;},importEvents(){}};tr.importer.Importer.register(Trace2HTMLImporter);return{Trace2HTMLImporter,};});'use strict';tr.exportTo('tr.e.importer.v8',function(){function SplayTree(){}
SplayTree.prototype.root_=null;SplayTree.prototype.isEmpty=function(){return!this.root_;};SplayTree.prototype.insert=function(key,value){if(this.isEmpty()){this.root_=new SplayTree.Node(key,value);return;}
this.splay_(key);if(this.root_.key===key){return;}
const node=new SplayTree.Node(key,value);if(key>this.root_.key){node.left=this.root_;node.right=this.root_.right;this.root_.right=null;}else{node.right=this.root_;node.left=this.root_.left;this.root_.left=null;}
this.root_=node;};SplayTree.prototype.remove=function(key){if(this.isEmpty()){throw Error('Key not found: '+key);}
this.splay_(key);if(this.root_.key!==key){throw Error('Key not found: '+key);}
const removed=this.root_;if(!this.root_.left){this.root_=this.root_.right;}else{const right=this.root_.right;this.root_=this.root_.left;this.splay_(key);this.root_.right=right;}
return removed;};SplayTree.prototype.find=function(key){if(this.isEmpty())return null;this.splay_(key);return this.root_.key===key?this.root_:null;};SplayTree.prototype.findMin=function(){if(this.isEmpty())return null;let current=this.root_;while(current.left){current=current.left;}
return current;};SplayTree.prototype.findMax=function(opt_startNode){if(this.isEmpty())return null;let current=opt_startNode||this.root_;while(current.right){current=current.right;}
return current;};SplayTree.prototype.findGreatestLessThan=function(key){if(this.isEmpty())return null;this.splay_(key);if(this.root_.key<=key){return this.root_;}
if(this.root_.left){return this.findMax(this.root_.left);}
return null;};SplayTree.prototype.exportKeysAndValues=function(){const result=[];this.traverse_(function(node){result.push([node.key,node.value]);});return result;};SplayTree.prototype.exportValues=function(){const result=[];this.traverse_(function(node){result.push(node.value);});return result;};SplayTree.prototype.splay_=function(key){if(this.isEmpty())return;const dummy=new SplayTree.Node(null,null);let left=dummy;let right=dummy;let current=this.root_;while(true){if(key<current.key){if(!current.left){break;}
if(key<current.left.key){const tmp=current.left;current.left=tmp.right;tmp.right=current;current=tmp;if(!current.left){break;}}
right.left=current;right=current;current=current.left;}else if(key>current.key){if(!current.right){break;}
if(key>current.right.key){const tmp=current.right;current.right=tmp.left;tmp.left=current;current=tmp;if(!current.right){break;}}
left.right=current;left=current;current=current.right;}else{break;}}
left.right=current.left;right.left=current.right;current.left=dummy.right;current.right=dummy.left;this.root_=current;};SplayTree.prototype.traverse_=function(f){const nodesToVisit=[this.root_];while(nodesToVisit.length>0){const node=nodesToVisit.shift();if(node===null)continue;f(node);nodesToVisit.push(node.left);nodesToVisit.push(node.right);}};SplayTree.Node=function(key,value){this.key=key;this.value=value;};SplayTree.Node.prototype.left=null;SplayTree.Node.prototype.right=null;return{SplayTree,};});'use strict';tr.exportTo('tr.e.importer.v8',function(){function CodeMap(){this.dynamics_=new tr.e.importer.v8.SplayTree();this.dynamicsNameGen_=new tr.e.importer.v8.CodeMap.NameGenerator();this.statics_=new tr.e.importer.v8.SplayTree();this.libraries_=new tr.e.importer.v8.SplayTree();this.pages_=[];}
CodeMap.PAGE_ALIGNMENT=12;CodeMap.PAGE_SIZE=1<<CodeMap.PAGE_ALIGNMENT;CodeMap.prototype.addCode=function(start,codeEntry){this.deleteAllCoveredNodes_(this.dynamics_,start,start+codeEntry.size);this.dynamics_.insert(start,codeEntry);};CodeMap.prototype.moveCode=function(from,to){const removedNode=this.dynamics_.remove(from);this.deleteAllCoveredNodes_(this.dynamics_,to,to+removedNode.value.size);this.dynamics_.insert(to,removedNode.value);};CodeMap.prototype.deleteCode=function(start){const removedNode=this.dynamics_.remove(start);};CodeMap.prototype.addLibrary=function(start,codeEntry){this.markPages_(start,start+codeEntry.size);this.libraries_.insert(start,codeEntry);};CodeMap.prototype.addStaticCode=function(start,codeEntry){this.statics_.insert(start,codeEntry);};CodeMap.prototype.markPages_=function(start,end){for(let addr=start;addr<=end;addr+=CodeMap.PAGE_SIZE){this.pages_[addr>>>CodeMap.PAGE_ALIGNMENT]=1;}};CodeMap.prototype.deleteAllCoveredNodes_=function(tree,start,end){const toDelete=[];let addr=end-1;while(addr>=start){const node=tree.findGreatestLessThan(addr);if(!node)break;const start2=node.key;const end2=start2+node.value.size;if(start2<end&&start<end2)toDelete.push(start2);addr=start2-1;}
for(let i=0,l=toDelete.length;i<l;++i)tree.remove(toDelete[i]);};CodeMap.prototype.isAddressBelongsTo_=function(addr,node){return addr>=node.key&&addr<(node.key+node.value.size);};CodeMap.prototype.findInTree_=function(tree,addr){const node=tree.findGreatestLessThan(addr);return node&&this.isAddressBelongsTo_(addr,node)?node.value:null;};CodeMap.prototype.findEntryInLibraries=function(addr){const pageAddr=addr>>>CodeMap.PAGE_ALIGNMENT;if(pageAddr in this.pages_){return this.findInTree_(this.libraries_,addr);}
return undefined;};CodeMap.prototype.findEntry=function(addr){const pageAddr=addr>>>CodeMap.PAGE_ALIGNMENT;if(pageAddr in this.pages_){return this.findInTree_(this.statics_,addr)||this.findInTree_(this.libraries_,addr);}
const min=this.dynamics_.findMin();const max=this.dynamics_.findMax();if(max!==null&&addr<(max.key+max.value.size)&&addr>=min.key){const dynaEntry=this.findInTree_(this.dynamics_,addr);if(dynaEntry===null)return null;if(!dynaEntry.nameUpdated_){dynaEntry.name=this.dynamicsNameGen_.getName(dynaEntry.name);dynaEntry.nameUpdated_=true;}
return dynaEntry;}
return null;};CodeMap.prototype.findDynamicEntryByStartAddress=function(addr){const node=this.dynamics_.find(addr);return node?node.value:null;};CodeMap.prototype.getAllDynamicEntries=function(){return this.dynamics_.exportValues();};CodeMap.prototype.getAllDynamicEntriesWithAddresses=function(){return this.dynamics_.exportKeysAndValues();};CodeMap.prototype.getAllStaticEntries=function(){return this.statics_.exportValues();};CodeMap.prototype.getAllLibrariesEntries=function(){return this.libraries_.exportValues();};CodeMap.CodeState={COMPILED:0,OPTIMIZABLE:1,OPTIMIZED:2};CodeMap.CodeEntry=function(size,opt_name,opt_type){this.id=tr.b.GUID.allocateSimple();this.size=size;this.name_=opt_name||'';this.type=opt_type||'';this.nameUpdated_=false;};CodeMap.CodeEntry.prototype={__proto__:Object.prototype,get name(){return this.name_;},set name(value){this.name_=value;},toString(){this.name_+': '+this.size.toString(16);}};CodeMap.CodeEntry.TYPE={SHARED_LIB:'SHARED_LIB',CPP:'CPP'};CodeMap.DynamicFuncCodeEntry=function(size,type,func,state){CodeMap.CodeEntry.call(this,size,'',type);this.func=func;this.state=state;};CodeMap.DynamicFuncCodeEntry.STATE_PREFIX=['','~','*'];CodeMap.DynamicFuncCodeEntry.prototype={__proto__:CodeMap.CodeEntry.prototype,get name(){return CodeMap.DynamicFuncCodeEntry.STATE_PREFIX[this.state]+
this.func.name;},set name(value){this.name_=value;},getRawName(){return this.func.getName();},isJSFunction(){return true;},toString(){return this.type+': '+this.name+': '+this.size.toString(16);}};CodeMap.FunctionEntry=function(name){CodeMap.CodeEntry.call(this,0,name);};CodeMap.FunctionEntry.prototype={__proto__:CodeMap.CodeEntry.prototype,get name(){let name=this.name_;if(name.length===0){name='<anonymous>';}else if(name.charAt(0)===' '){name='<anonymous>'+name;}
return name;},set name(value){this.name_=value;}};CodeMap.NameGenerator=function(){this.knownNames_={};};CodeMap.NameGenerator.prototype.getName=function(name){if(!(name in this.knownNames_)){this.knownNames_[name]=0;return name;}
const count=++this.knownNames_[name];return name+' {'+count+'}';};return{CodeMap,};});'use strict';tr.exportTo('tr.e.importer.v8',function(){function CsvParser(){}
CsvParser.CSV_FIELD_RE_=/^"((?:[^"]|"")*)"|([^,]*)/;CsvParser.DOUBLE_QUOTE_RE_=/""/g;CsvParser.prototype.parseLine=function(line){const fieldRe=CsvParser.CSV_FIELD_RE_;const doubleQuoteRe=CsvParser.DOUBLE_QUOTE_RE_;let pos=0;const endPos=line.length;const fields=[];if(endPos>0){do{const fieldMatch=fieldRe.exec(line.substr(pos));if(typeof fieldMatch[1]==='string'){const field=fieldMatch[1];pos+=field.length+3;fields.push(field.replace(doubleQuoteRe,'"'));}else{const field=fieldMatch[2];pos+=field.length+1;fields.push(field);}}while(pos<=endPos);}
return fields;};function LogReader(dispatchTable){this.dispatchTable_=dispatchTable;this.lineNum_=0;this.csvParser_=new CsvParser();}
LogReader.prototype.printError=function(str){};LogReader.prototype.processLogChunk=function(chunk){this.processLog_(chunk.split('\n'));};LogReader.prototype.processLogLine=function(line){this.processLog_([line]);};LogReader.prototype.processStack=function(pc,func,stack){const fullStack=func?[pc,func]:[pc];let prevFrame=pc;for(let i=0,n=stack.length;i<n;++i){const frame=stack[i];const firstChar=frame.charAt(0);if(firstChar==='+'||firstChar==='-'){prevFrame+=parseInt(frame,16);fullStack.push(prevFrame);}else if(firstChar!=='o'){fullStack.push(parseInt(frame,16));}}
return fullStack;};LogReader.prototype.skipDispatch=function(dispatch){return false;};LogReader.prototype.dispatchLogRow_=function(fields){const command=fields[0];if(!(command in this.dispatchTable_))return;const dispatch=this.dispatchTable_[command];if(dispatch===null||this.skipDispatch(dispatch)){return;}
const parsedFields=[];for(let i=0;i<dispatch.parsers.length;++i){const parser=dispatch.parsers[i];if(parser===null){parsedFields.push(fields[1+i]);}else if(typeof parser==='function'){parsedFields.push(parser(fields[1+i]));}else{parsedFields.push(fields.slice(1+i));break;}}
dispatch.processor.apply(this,parsedFields);};LogReader.prototype.processLog_=function(lines){for(let i=0,n=lines.length;i<n;++i,++this.lineNum_){const line=lines[i];if(!line){continue;}
try{const fields=this.csvParser_.parseLine(line);this.dispatchLogRow_(fields);}catch(e){this.printError('line '+(this.lineNum_+1)+': '+
(e.message||e));}}};return{LogReader,};});'use strict';tr.exportTo('tr.model',function(){function ProfileNode(id,title,parentNode){this.id_=id;this.title_=title;this.parentNode_=parentNode;this.colorId_=-1;this.userFriendlyStack_=[];}
ProfileNode.prototype={__proto__:Object.prototype,get title(){return this.title_;},get parentNode(){return this.parentNode_;},set parentNode(value){this.parentNode_=value;},get id(){return this.id_;},get colorId(){return this.colorId_;},set colorId(value){this.colorId_=value;},get userFriendlyName(){return this.title_;},get userFriendlyStack(){if(this.userFriendlyStack_.length===0){this.userFriendlyStack_=[this.userFriendlyName];if(this.parentNode_!==undefined){this.userFriendlyStack_=this.userFriendlyStack_.concat(this.parentNode_.userFriendlyStack);}}
return this.userFriendlyStack_;},get sampleTitle(){throw new Error('Not implemented.');}};tr.model.EventRegistry.register(ProfileNode,{name:'Node',pluralName:'Nodes'});return{ProfileNode,};});'use strict';tr.exportTo('tr.e.v8',function(){const ProfileNode=tr.model.ProfileNode;function V8CpuProfileNode(id,callFrame,parentNode){ProfileNode.call(this,id,callFrame.functionName,parentNode);this.callFrame_=tr.b.deepCopy(callFrame);this.deoptReason_='';this.colorId_=tr.b.ColorScheme.getColorIdForGeneralPurposeString(callFrame.functionName);}
V8CpuProfileNode.prototype={__proto__:ProfileNode.prototype,get functionName(){return this.callFrame_.functionName;},get scriptId(){return this.callFrame_.scriptId;},get url(){if(!this.callFrame_.url){return'unknown';}
let url=this.callFrame_.url;if(this.callFrame_.lineNumber===undefined){return url;}
url=url+':'+this.callFrame_.lineNumber;if(this.callFrame_.columnNumber===undefined){return url;}
url=url+':'+this.callFrame_.columnNumber;return url;},get deoptReason(){return this.deoptReason_;},set deoptReason(value){this.deoptReason_=value;},get userFriendlyName(){const name=this.functionName+' url: '+this.url;return!this.deoptReason_?name:name+' Deoptimized reason: '+this.deoptReason_;},get sampleTitle(){return'V8 Sample';}};V8CpuProfileNode.constructFromObject=function(profileTree,node){const nodeId=node.id;if(nodeId===1){return undefined;}
const parentNode=profileTree.getNode(node.parent);const profileNode=new V8CpuProfileNode(nodeId,node.callFrame,parentNode);if(node.deoptReason!==undefined){profileNode.deoptReason=node.deoptReason;}
return profileNode;};ProfileNode.subTypes.register(V8CpuProfileNode,{typeName:'cpuProfile',name:'v8 cpu profile node',pluralName:'v8 cpu profile nodes'});ProfileNode.subTypes.register(V8CpuProfileNode,{typeName:'legacySample',name:'v8 cpu profile node',pluralName:'v8 cpu profile nodes'});return{ProfileNode,};});'use strict';tr.exportTo('tr.model',function(){function ProfileTree(){this.startTime_=undefined;this.endTime_=undefined;this.tree_=new Map();this.pid_=-1;this.tid_=-1;}
ProfileTree.prototype={__proto__:Object.prototype,get pid(){return this.pid_;},set pid(value){this.pid_=value;},get tid(){return this.tid_;},set tid(value){this.tid_=value;},get tree(){return this.tree_;},get startTime(){return this.startTime_;},set startTime(value){this.startTime_=value;this.endTime_=value;},get endTime(){return this.endTime_;},set endTime(value){this.endTime_=value;},add(node){if(this.tree_.has(node.id)){throw new Error('Conflict id in the profile tree.');}
this.tree_.set(node.id,node);return node;},getNode(nodeId){return this.tree_.get(nodeId);}};return{ProfileTree,};});'use strict';tr.exportTo('tr.e.importer.v8',function(){const CodeEntry=tr.e.importer.v8.CodeMap.CodeEntry;const CodeMap=tr.e.importer.v8.CodeMap;const ColorScheme=tr.b.ColorScheme;const DynamicFuncCodeEntry=tr.e.importer.v8.CodeMap.DynamicFuncCodeEntry;const FunctionEntry=tr.e.importer.v8.CodeMap.FunctionEntry;const ProfileNodeType=tr.model.ProfileNode.subTypes.getConstructor(undefined,'legacySample');function V8LogImporter(model,eventData){this.importPriority=3;this.model_=model;this.logData_=eventData;this.code_map_=new CodeMap();this.v8_timer_thread_=undefined;this.v8_thread_=undefined;this.profileTree_=new tr.model.ProfileTree();this.profileTree_.add(new ProfileNodeType(-1,{url:'',functionName:'unknown'}));this.v8_stack_timeline_=[];}
const kV8BinarySuffixes=['/d8','/libv8.so'];const TimerEventDefaultArgs={'V8.Execute':{pause:false,no_execution:false},'V8.External':{pause:false,no_execution:true},'V8.CompileFullCode':{pause:true,no_execution:true},'V8.RecompileSynchronous':{pause:true,no_execution:true},'V8.RecompileParallel':{pause:false,no_execution:false},'V8.CompileEval':{pause:true,no_execution:true},'V8.Parse':{pause:true,no_execution:true},'V8.PreParse':{pause:true,no_execution:true},'V8.ParseLazy':{pause:true,no_execution:true},'V8.GCScavenger':{pause:true,no_execution:true},'V8.GCCompactor':{pause:true,no_execution:true},'V8.GCContext':{pause:true,no_execution:true}};V8LogImporter.canImport=function(eventData){if(typeof(eventData)!=='string'&&!(eventData instanceof String)){return false;}
return eventData.substring(0,11)==='v8-version,'||eventData.substring(0,12)==='timer-event,'||eventData.substring(0,5)==='tick,'||eventData.substring(0,15)==='shared-library,'||eventData.substring(0,9)==='profiler,'||eventData.substring(0,14)==='code-creation,';};V8LogImporter.prototype={__proto__:tr.importer.Importer.prototype,get importerName(){return'V8LogImporter';},processTimerEvent_(name,startInUs,lengthInUs){const args=TimerEventDefaultArgs[name];if(args===undefined)return;const startInMs=tr.b.convertUnit(startInUs,tr.b.UnitPrefixScale.METRIC.MICRO,tr.b.UnitPrefixScale.METRIC.MILLI);const lengthInMs=tr.b.convertUnit(lengthInUs,tr.b.UnitPrefixScale.METRIC.MICRO,tr.b.UnitPrefixScale.METRIC.MILLI);const colorId=ColorScheme.getColorIdForGeneralPurposeString(name);const slice=new tr.model.ThreadSlice('v8',name,colorId,startInMs,args,lengthInMs);this.v8_timer_thread_.sliceGroup.pushSlice(slice);},processTimerEventStart_(name,startInUs){const args=TimerEventDefaultArgs[name];if(args===undefined)return;const startInMs=tr.b.convertUnit(startInUs,tr.b.UnitPrefixScale.METRIC.MICRO,tr.b.UnitPrefixScale.METRIC.MILLI);this.v8_timer_thread_.sliceGroup.beginSlice('v8',name,startInMs,args);},processTimerEventEnd_(name,endInUs){const endInMs=tr.b.convertUnit(endInUs,tr.b.UnitPrefixScale.METRIC.MICRO,tr.b.UnitPrefixScale.METRIC.MILLI);this.v8_timer_thread_.sliceGroup.endSlice(endInMs);},processCodeCreateEvent_(type,kind,address,size,name,maybeFunc){function parseState(s){switch(s){case'':return CodeMap.CodeState.COMPILED;case'~':return CodeMap.CodeState.OPTIMIZABLE;case'*':return CodeMap.CodeState.OPTIMIZED;}
throw new Error('unknown code state: '+s);}
if(maybeFunc.length){const funcAddr=parseInt(maybeFunc[0]);const state=parseState(maybeFunc[1]);let func=this.code_map_.findDynamicEntryByStartAddress(funcAddr);if(!func){func=new FunctionEntry(name);func.kind=kind;this.code_map_.addCode(funcAddr,func);}else if(func.name!==name){func.name=name;}
let entry=this.code_map_.findDynamicEntryByStartAddress(address);if(entry){if(entry.size===size&&entry.func===func){entry.state=state;}}else{entry=new DynamicFuncCodeEntry(size,type,func,state);entry.kind=kind;this.code_map_.addCode(address,entry);}}else{const codeEntry=new CodeEntry(size,name);codeEntry.kind=kind;this.code_map_.addCode(address,codeEntry);}},processCodeMoveEvent_(from,to){this.code_map_.moveCode(from,to);},processCodeDeleteEvent_(address){this.code_map_.deleteCode(address);},processSharedLibrary_(name,start,end){const codeEntry=new CodeEntry(end-start,name,CodeEntry.TYPE.SHARED_LIB);codeEntry.kind=-3;for(let i=0;i<kV8BinarySuffixes.length;i++){const suffix=kV8BinarySuffixes[i];if(name.indexOf(suffix,name.length-suffix.length)>=0){codeEntry.kind=-1;break;}}
this.code_map_.addLibrary(start,codeEntry);},processCppSymbol_(address,size,name){const codeEntry=new CodeEntry(size,name,CodeEntry.TYPE.CPP);codeEntry.kind=-1;this.code_map_.addStaticCode(address,codeEntry);},processTickEvent_(pc,startInUs,isExternalCallback,tosOrExternalCallback,vmstate,stack){const startInMs=tr.b.convertUnit(startInUs,tr.b.UnitPrefixScale.METRIC.MICRO,tr.b.UnitPrefixScale.METRIC.MILLI);function findChildWithEntryID(stackFrame,entryID){for(let i=0;i<stackFrame.children.length;i++){if(stackFrame.children[i].entryID===entryID){return stackFrame.children[i];}}
return undefined;}
function processStack(pc,func,stack){const fullStack=func?[pc,func]:[pc];let prevFrame=pc;for(let i=0,n=stack.length;i<n;++i){const frame=stack[i];const firstChar=frame.charAt(0);if(firstChar==='+'||firstChar==='-'){prevFrame+=parseInt(frame,16);fullStack.push(prevFrame);}else if(firstChar!=='o'){fullStack.push(parseInt(frame,16));}}
return fullStack;}
if(isExternalCallback){pc=tosOrExternalCallback;tosOrExternalCallback=0;}else if(tosOrExternalCallback){const funcEntry=this.code_map_.findEntry(tosOrExternalCallback);if(!funcEntry||!funcEntry.isJSFunction||!funcEntry.isJSFunction()){tosOrExternalCallback=0;}}
let processedStack=processStack(pc,tosOrExternalCallback,stack);let node=undefined;let lastNode=undefined;processedStack=processedStack.reverse();for(let i=0,n=processedStack.length;i<n;i++){const frame=processedStack[i];if(!frame)break;const entry=this.code_map_.findEntry(frame);if(!entry&&i!==0){continue;}
let sourceInfo=undefined;if(entry&&entry.type===CodeEntry.TYPE.CPP){const libEntry=this.code_map_.findEntryInLibraries(frame);if(libEntry){sourceInfo={file:libEntry.name};}}
const entryId=entry?entry.id:-1;node=this.profileTree_.getNode(entryId);if(node===undefined){node=this.profileTree_.add(new ProfileNodeType(entryId,{functionName:entry.name,url:sourceInfo?sourceInfo.file:'',lineNumber:sourceInfo?sourceInfo.line:undefined,columnNumber:sourceInfo?sourceInfo.column:undefined,scriptId:sourceInfo?sourceInfo.scriptId:undefined},lastNode));}
lastNode=node;}
this.model_.samples.push(new tr.model.Sample(startInMs,'V8 PC',node,this.v8_thread_,undefined,1));},processDistortion_(distortionInPicoseconds){},processPlotRange_(start,end){},processV8Version_(major,minor,build,patch,candidate){},importEvents(){const logreader=new tr.e.importer.v8.LogReader({'timer-event':{parsers:[null,parseInt,parseInt],processor:this.processTimerEvent_.bind(this)},'shared-library':{parsers:[null,parseInt,parseInt],processor:this.processSharedLibrary_.bind(this)},'timer-event-start':{parsers:[null,parseInt],processor:this.processTimerEventStart_.bind(this)},'timer-event-end':{parsers:[null,parseInt],processor:this.processTimerEventEnd_.bind(this)},'code-creation':{parsers:[null,parseInt,parseInt,parseInt,null,'var-args'],processor:this.processCodeCreateEvent_.bind(this)},'code-move':{parsers:[parseInt,parseInt],processor:this.processCodeMoveEvent_.bind(this)},'code-delete':{parsers:[parseInt],processor:this.processCodeDeleteEvent_.bind(this)},'cpp':{parsers:[parseInt,parseInt,null],processor:this.processCppSymbol_.bind(this)},'tick':{parsers:[parseInt,parseInt,parseInt,parseInt,parseInt,'var-args'],processor:this.processTickEvent_.bind(this)},'distortion':{parsers:[parseInt],processor:this.processDistortion_.bind(this)},'plot-range':{parsers:[parseInt,parseInt],processor:this.processPlotRange_.bind(this)},'v8-version':{parsers:[parseInt,parseInt,parseInt,parseInt,parseInt],processor:this.processV8Version_.bind(this)}});this.v8_timer_thread_=this.model_.getOrCreateProcess(-32).getOrCreateThread(1);this.v8_timer_thread_.name='V8 Timers';this.v8_thread_=this.model_.getOrCreateProcess(-32).getOrCreateThread(2);this.v8_thread_.name='V8';const lines=this.logData_.split('\n');for(let i=0;i<lines.length;i++){logreader.processLogLine(lines[i]);}
function addSlices(slices,thread){for(let i=0;i<slices.length;i++){const duration=slices[i].end-slices[i].start;const slice=new tr.model.ThreadSlice('v8',slices[i].name,ColorScheme.getColorIdForGeneralPurposeString(slices[i].name),slices[i].start,{},duration);thread.sliceGroup.pushSlice(slice);addSlices(slices[i].children,thread);}}
addSlices(this.v8_stack_timeline_,this.v8_thread_);}};tr.importer.Importer.register(V8LogImporter);return{V8LogImporter,};});'use strict';tr.exportTo('tr.e.importer',function(){function ZipImporter(model,eventData){if(eventData instanceof ArrayBuffer){eventData=new Uint8Array(eventData);}
this.model_=model;this.eventData_=eventData;}
ZipImporter.canImport=function(eventData){let header;if(eventData instanceof ArrayBuffer){header=new Uint8Array(eventData.slice(0,2));}else if(typeof(eventData)==='string'||eventData instanceof String){header=[eventData.charCodeAt(0),eventData.charCodeAt(1)];}else{return false;}
return header[0]==='P'.charCodeAt(0)&&header[1]==='K'.charCodeAt(0);};ZipImporter.prototype={__proto__:tr.importer.Importer.prototype,get importerName(){return'ZipImporter';},isTraceDataContainer(){return true;},extractSubtraces(){const zip=new JSZip(this.eventData_);const subtraces=[];for(const idx in zip.files){subtraces.push(zip.files[idx].asBinary());}
return subtraces;}};tr.importer.Importer.register(ZipImporter);return{ZipImporter,};});'use strict';tr.exportTo('tr.model',function(){function HeapEntry(heapDump,leafStackFrame,objectTypeName,size,count,valuesAreTotals){this.heapDump=heapDump;this.leafStackFrame=leafStackFrame;this.objectTypeName=objectTypeName;this.size=size;this.count=count;this.valuesAreTotals=valuesAreTotals;}
function HeapDump(processMemoryDump,allocatorName,isComplete){this.processMemoryDump=processMemoryDump;this.allocatorName=allocatorName;this.isComplete=isComplete;this.entries=[];}
HeapDump.prototype={addEntry(leafStackFrame,objectTypeName,size,count,opt_valuesAreTotals){if(opt_valuesAreTotals===undefined)opt_valuesAreTotals=true;const valuesAreTotals=opt_valuesAreTotals;const entry=new HeapEntry(this,leafStackFrame,objectTypeName,size,count,valuesAreTotals);this.entries.push(entry);return entry;}};return{HeapEntry,HeapDump,};});'use strict';tr.exportTo('tr.e.importer',function(){function HeapDumpTraceEventImporter(heapProfileExpander,stackFrames,processMemoryDump,idPrefix,model){this.expander=heapProfileExpander;this.stackFrames=stackFrames;this.processMemoryDump=processMemoryDump;this.idPrefix=idPrefix;this.model=model;}
HeapDumpTraceEventImporter.prototype={getLeafStackFrame(stackFrameId){if(stackFrameId==='')return undefined;const parentId=this.idPrefix+stackFrameId;const id=parentId+':self';if(!this.stackFrames[id]){const parentStackFrame=this.stackFrames[parentId];const stackFrame=new tr.model.StackFrame(parentStackFrame,id,'<self>',undefined);this.model.addStackFrame(stackFrame);}
return this.stackFrames[id];},parseEntry(entry,heapDump){const size=entry.size;const count=entry.count;const leafStackFrame=this.getLeafStackFrame(entry.node.id);const objectTypeName=entry.type.name;const valuesAreTotals=false;if(objectTypeName===undefined){this.model_.importWarning({type:'memory_dump_parse_error',message:'Missing object type name (ID '+typeId+')',});}
heapDump.addEntry(leafStackFrame,objectTypeName,size,count,valuesAreTotals);},parse(){const heapDumps={};const inflated=this.expander.inflated;for(const[allocatorName,entries]of Object.entries(inflated)){const heapDump=new tr.model.HeapDump(this.processMemoryDump,allocatorName);for(const entry of entries){this.parseEntry(entry,heapDump);}
heapDump.isComplete=true;heapDumps[allocatorName]=heapDump;}
return heapDumps;},};return{HeapDumpTraceEventImporter,};});'use strict';tr.exportTo('tr.e.importer',function(){function LegacyHeapDumpTraceEventImporter(model,processMemoryDump,processObjectTypeNameMap,idPrefix,dumpId,rawHeapDumps){this.model_=model;this.processObjectTypeNameMap_=processObjectTypeNameMap;this.idPrefix_=idPrefix;this.processMemoryDump_=processMemoryDump;this.pid_=this.processMemoryDump_.process.pid;this.dumpId_=dumpId;this.rawHeapDumps_=rawHeapDumps;}
LegacyHeapDumpTraceEventImporter.prototype={parseRawHeapDump(rawHeapDump,allocatorName){const model=this.model_;const processMemoryDump=this.processMemoryDump_;const heapDump=new tr.model.HeapDump(processMemoryDump,allocatorName);const entries=rawHeapDump.entries;if(entries===undefined||entries.length===0){this.model_.importWarning({type:'memory_dump_parse_error',message:'No heap entries in a '+allocatorName+' heap dump for PID='+this.pid_+' and dump ID='+this.dumpId_+'.'});return undefined;}
const isOldFormat=entries[0].bt===undefined;if(!isOldFormat&&this.processObjectTypeNameMap_===undefined){return undefined;}
for(let i=0;i<entries.length;i++){const entry=entries[i];const size=parseInt(entry.size,16);const leafStackFrameIndex=entry.bt;let leafStackFrame;if(isOldFormat){if(leafStackFrameIndex===undefined){leafStackFrame=undefined;}else{let leafStackFrameId=this.idPrefix_+leafStackFrameIndex;if(leafStackFrameIndex===''){leafStackFrame=undefined;}else{leafStackFrame=model.stackFrames[leafStackFrameId];if(leafStackFrame===undefined){this.model_.importWarning({type:'memory_dump_parse_error',message:'Missing leaf stack frame (ID '+
leafStackFrameId+') of heap entry '+i+' (size '+
size+') in a '+allocatorName+' heap dump for PID='+this.pid_+'.'});continue;}}
leafStackFrameId+=':self';if(model.stackFrames[leafStackFrameId]!==undefined){leafStackFrame=model.stackFrames[leafStackFrameId];}else{leafStackFrame=new tr.model.StackFrame(leafStackFrame,leafStackFrameId,'<self>',undefined);model.addStackFrame(leafStackFrame);}}}else{if(leafStackFrameIndex===undefined){this.model_.importWarning({type:'memory_dump_parse_error',message:'Missing stack frame ID of heap entry '+i+' (size '+size+') in a '+allocatorName+' heap dump for PID='+this.pid_+'.'});continue;}
const leafStackFrameId=this.idPrefix_+leafStackFrameIndex;if(leafStackFrameIndex===''){leafStackFrame=undefined;}else{leafStackFrame=model.stackFrames[leafStackFrameId];if(leafStackFrame===undefined){this.model_.importWarning({type:'memory_dump_parse_error',message:'Missing leaf stack frame (ID '+leafStackFrameId+') of heap entry '+i+' (size '+size+') in a '+
allocatorName+' heap dump for PID='+this.pid_+'.'});continue;}}}
const objectTypeId=entry.type;let objectTypeName;if(objectTypeId===undefined){objectTypeName=undefined;}else if(this.processObjectTypeNameMap_===undefined){continue;}else{objectTypeName=this.processObjectTypeNameMap_[objectTypeId];if(objectTypeName===undefined){this.model_.importWarning({type:'memory_dump_parse_error',message:'Missing object type name (ID '+objectTypeId+') of heap entry '+i+' (size '+size+') in a '+
allocatorName+' heap dump for PID='+this.pid_+'.'});continue;}}
const count=entry.count===undefined?undefined:parseInt(entry.count,16);heapDump.addEntry(leafStackFrame,objectTypeName,size,count);}
return heapDump;},parse(){const heapDumps={};for(const allocatorName in this.rawHeapDumps_){const rawHeapDump=this.rawHeapDumps_[allocatorName];const heapDump=this.parseRawHeapDump(rawHeapDump,allocatorName);if(heapDump!==undefined&&heapDump.entries.length>0){heapDumps[allocatorName]=heapDump;}}
return heapDumps;},};return{LegacyHeapDumpTraceEventImporter,};});(function(window,Object,Array,Error,JSON,undefined){var partialComplete=varArgs(function(fn,args){var numBoundArgs=args.length;return varArgs(function(callArgs){for(var i=0;i<callArgs.length;i++){args[numBoundArgs+i]=callArgs[i];}
args.length=numBoundArgs+callArgs.length;return fn.apply(this,args);});}),compose=varArgs(function(fns){var fnsList=arrayAsList(fns);function next(params,curFn){return[apply(params,curFn)];}
return varArgs(function(startParams){return foldR(next,startParams,fnsList)[0];});});function compose2(f1,f2){return function(){return f1.call(this,f2.apply(this,arguments));}}
function attr(key){return function(o){return o[key];};}
var lazyUnion=varArgs(function(fns){return varArgs(function(params){var maybeValue;for(var i=0;i<len(fns);i++){maybeValue=apply(params,fns[i]);if(maybeValue){return maybeValue;}}});});function apply(args,fn){return fn.apply(undefined,args);}
function varArgs(fn){var numberOfFixedArguments=fn.length-1,slice=Array.prototype.slice;if(numberOfFixedArguments==0){return function(){return fn.call(this,slice.call(arguments));}}else if(numberOfFixedArguments==1){return function(){return fn.call(this,arguments[0],slice.call(arguments,1));}}
var argsHolder=Array(fn.length);return function(){for(var i=0;i<numberOfFixedArguments;i++){argsHolder[i]=arguments[i];}
argsHolder[numberOfFixedArguments]=slice.call(arguments,numberOfFixedArguments);return fn.apply(this,argsHolder);}}
function flip(fn){return function(a,b){return fn(b,a);}}
function lazyIntersection(fn1,fn2){return function(param){return fn1(param)&&fn2(param);};}
function noop(){}
function always(){return true}
function functor(val){return function(){return val;}}
function isOfType(T,maybeSomething){return maybeSomething&&maybeSomething.constructor===T;}
var len=attr('length'),isString=partialComplete(isOfType,String);function defined(value){return value!==undefined;}
function hasAllProperties(fieldList,o){return(o instanceof Object)&&all(function(field){return(field in o);},fieldList);}
function cons(x,xs){return[x,xs];}
var emptyList=null,head=attr(0),tail=attr(1);function arrayAsList(inputArray){return reverseList(inputArray.reduce(flip(cons),emptyList));}
var list=varArgs(arrayAsList);function listAsArray(list){return foldR(function(arraySoFar,listItem){arraySoFar.unshift(listItem);return arraySoFar;},[],list);}
function map(fn,list){return list?cons(fn(head(list)),map(fn,tail(list))):emptyList;}
function foldR(fn,startValue,list){return list?fn(foldR(fn,startValue,tail(list)),head(list)):startValue;}
function foldR1(fn,list){return tail(list)?fn(foldR1(fn,tail(list)),head(list)):head(list);}
function without(list,test,removedFn){return withoutInner(list,removedFn||noop);function withoutInner(subList,removedFn){return subList?(test(head(subList))?(removedFn(head(subList)),tail(subList)):cons(head(subList),withoutInner(tail(subList),removedFn))):emptyList;}}
function all(fn,list){return!list||(fn(head(list))&&all(fn,tail(list)));}
function applyEach(fnList,args){if(fnList){head(fnList).apply(null,args);applyEach(tail(fnList),args);}}
function reverseList(list){function reverseInner(list,reversedAlready){if(!list){return reversedAlready;}
return reverseInner(tail(list),cons(head(list),reversedAlready))}
return reverseInner(list,emptyList);}
function first(test,list){return list&&(test(head(list))?head(list):first(test,tail(list)));}
function clarinet(eventBus){"use strict";var
emitSaxKey=eventBus(SAX_KEY).emit,emitValueOpen=eventBus(SAX_VALUE_OPEN).emit,emitValueClose=eventBus(SAX_VALUE_CLOSE).emit,emitFail=eventBus(FAIL_EVENT).emit,MAX_BUFFER_LENGTH=64*1024,stringTokenPattern=/[\\"\n]/g,_n=0,BEGIN=_n++,VALUE=_n++,OPEN_OBJECT=_n++,CLOSE_OBJECT=_n++,OPEN_ARRAY=_n++,CLOSE_ARRAY=_n++,STRING=_n++,OPEN_KEY=_n++,CLOSE_KEY=_n++,TRUE=_n++,TRUE2=_n++,TRUE3=_n++,FALSE=_n++,FALSE2=_n++,FALSE3=_n++,FALSE4=_n++,NULL=_n++,NULL2=_n++,NULL3=_n++,NUMBER_DECIMAL_POINT=_n++,NUMBER_DIGIT=_n,bufferCheckPosition=MAX_BUFFER_LENGTH,latestError,c,p,textNode=undefined,numberNode="",slashed=false,closed=false,state=BEGIN,stack=[],unicodeS=null,unicodeI=0,depth=0,position=0,column=0,line=1;function checkBufferLength(){var maxActual=0;if(textNode!==undefined&&textNode.length>MAX_BUFFER_LENGTH){emitError("Max buffer length exceeded: textNode");maxActual=Math.max(maxActual,textNode.length);}
if(numberNode.length>MAX_BUFFER_LENGTH){emitError("Max buffer length exceeded: numberNode");maxActual=Math.max(maxActual,numberNode.length);}
bufferCheckPosition=(MAX_BUFFER_LENGTH-maxActual)
+position;}
eventBus(STREAM_DATA).on(handleData);eventBus(STREAM_END).on(handleStreamEnd);function emitError(errorString){if(textNode!==undefined){emitValueOpen(textNode);emitValueClose();textNode=undefined;}
latestError=Error(errorString+"\nLn: "+line+"\nCol: "+column+"\nChr: "+c);emitFail(errorReport(undefined,undefined,latestError));}
function handleStreamEnd(){if(state==BEGIN){emitValueOpen({});emitValueClose();closed=true;return;}
if(state!==VALUE||depth!==0)
emitError("Unexpected end");if(textNode!==undefined){emitValueOpen(textNode);emitValueClose();textNode=undefined;}
closed=true;}
function whitespace(c){return c=='\r'||c=='\n'||c==' '||c=='\t';}
function handleData(chunk){if(latestError)
return;if(closed){return emitError("Cannot write after close");}
var i=0;c=chunk[0];while(c){p=c;c=chunk[i++];if(!c)break;position++;if(c=="\n"){line++;column=0;}else column++;switch(state){case BEGIN:if(c==="{")state=OPEN_OBJECT;else if(c==="[")state=OPEN_ARRAY;else if(!whitespace(c))
return emitError("Non-whitespace before {[.");continue;case OPEN_KEY:case OPEN_OBJECT:if(whitespace(c))continue;if(state===OPEN_KEY)stack.push(CLOSE_KEY);else{if(c==='}'){emitValueOpen({});emitValueClose();state=stack.pop()||VALUE;continue;}else stack.push(CLOSE_OBJECT);}
if(c==='"')
state=STRING;else
return emitError("Malformed object key should start with \" ");continue;case CLOSE_KEY:case CLOSE_OBJECT:if(whitespace(c))continue;if(c===':'){if(state===CLOSE_OBJECT){stack.push(CLOSE_OBJECT);if(textNode!==undefined){emitValueOpen({});emitSaxKey(textNode);textNode=undefined;}
depth++;}else{if(textNode!==undefined){emitSaxKey(textNode);textNode=undefined;}}
state=VALUE;}else if(c==='}'){if(textNode!==undefined){emitValueOpen(textNode);emitValueClose();textNode=undefined;}
emitValueClose();depth--;state=stack.pop()||VALUE;}else if(c===','){if(state===CLOSE_OBJECT)
stack.push(CLOSE_OBJECT);if(textNode!==undefined){emitValueOpen(textNode);emitValueClose();textNode=undefined;}
state=OPEN_KEY;}else
return emitError('Bad object');continue;case OPEN_ARRAY:case VALUE:if(whitespace(c))continue;if(state===OPEN_ARRAY){emitValueOpen([]);depth++;state=VALUE;if(c===']'){emitValueClose();depth--;state=stack.pop()||VALUE;continue;}else{stack.push(CLOSE_ARRAY);}}
if(c==='"')state=STRING;else if(c==='{')state=OPEN_OBJECT;else if(c==='[')state=OPEN_ARRAY;else if(c==='t')state=TRUE;else if(c==='f')state=FALSE;else if(c==='n')state=NULL;else if(c==='-'){numberNode+=c;}else if(c==='0'){numberNode+=c;state=NUMBER_DIGIT;}else if('123456789'.indexOf(c)!==-1){numberNode+=c;state=NUMBER_DIGIT;}else
return emitError("Bad value");continue;case CLOSE_ARRAY:if(c===','){stack.push(CLOSE_ARRAY);if(textNode!==undefined){emitValueOpen(textNode);emitValueClose();textNode=undefined;}
state=VALUE;}else if(c===']'){if(textNode!==undefined){emitValueOpen(textNode);emitValueClose();textNode=undefined;}
emitValueClose();depth--;state=stack.pop()||VALUE;}else if(whitespace(c))
continue;else
return emitError('Bad array');continue;case STRING:if(textNode===undefined){textNode="";}
var starti=i-1;STRING_BIGLOOP:while(true){while(unicodeI>0){unicodeS+=c;c=chunk.charAt(i++);if(unicodeI===4){textNode+=String.fromCharCode(parseInt(unicodeS,16));unicodeI=0;starti=i-1;}else{unicodeI++;}
if(!c)break STRING_BIGLOOP;}
if(c==='"'&&!slashed){state=stack.pop()||VALUE;textNode+=chunk.substring(starti,i-1);break;}
if(c==='\\'&&!slashed){slashed=true;textNode+=chunk.substring(starti,i-1);c=chunk.charAt(i++);if(!c)break;}
if(slashed){slashed=false;if(c==='n'){textNode+='\n';}
else if(c==='r'){textNode+='\r';}
else if(c==='t'){textNode+='\t';}
else if(c==='f'){textNode+='\f';}
else if(c==='b'){textNode+='\b';}
else if(c==='u'){unicodeI=1;unicodeS='';}else{textNode+=c;}
c=chunk.charAt(i++);starti=i-1;if(!c)break;else continue;}
stringTokenPattern.lastIndex=i;var reResult=stringTokenPattern.exec(chunk);if(!reResult){i=chunk.length+1;textNode+=chunk.substring(starti,i-1);break;}
i=reResult.index+1;c=chunk.charAt(reResult.index);if(!c){textNode+=chunk.substring(starti,i-1);break;}}
continue;case TRUE:if(!c)continue;if(c==='r')state=TRUE2;else
return emitError('Invalid true started with t'+c);continue;case TRUE2:if(!c)continue;if(c==='u')state=TRUE3;else
return emitError('Invalid true started with tr'+c);continue;case TRUE3:if(!c)continue;if(c==='e'){emitValueOpen(true);emitValueClose();state=stack.pop()||VALUE;}else
return emitError('Invalid true started with tru'+c);continue;case FALSE:if(!c)continue;if(c==='a')state=FALSE2;else
return emitError('Invalid false started with f'+c);continue;case FALSE2:if(!c)continue;if(c==='l')state=FALSE3;else
return emitError('Invalid false started with fa'+c);continue;case FALSE3:if(!c)continue;if(c==='s')state=FALSE4;else
return emitError('Invalid false started with fal'+c);continue;case FALSE4:if(!c)continue;if(c==='e'){emitValueOpen(false);emitValueClose();state=stack.pop()||VALUE;}else
return emitError('Invalid false started with fals'+c);continue;case NULL:if(!c)continue;if(c==='u')state=NULL2;else
return emitError('Invalid null started with n'+c);continue;case NULL2:if(!c)continue;if(c==='l')state=NULL3;else
return emitError('Invalid null started with nu'+c);continue;case NULL3:if(!c)continue;if(c==='l'){emitValueOpen(null);emitValueClose();state=stack.pop()||VALUE;}else
return emitError('Invalid null started with nul'+c);continue;case NUMBER_DECIMAL_POINT:if(c==='.'){numberNode+=c;state=NUMBER_DIGIT;}else
return emitError('Leading zero not followed by .');continue;case NUMBER_DIGIT:if('0123456789'.indexOf(c)!==-1)numberNode+=c;else if(c==='.'){if(numberNode.indexOf('.')!==-1)
return emitError('Invalid number has two dots');numberNode+=c;}else if(c==='e'||c==='E'){if(numberNode.indexOf('e')!==-1||numberNode.indexOf('E')!==-1)
return emitError('Invalid number has two exponential');numberNode+=c;}else if(c==="+"||c==="-"){if(!(p==='e'||p==='E'))
return emitError('Invalid symbol in number');numberNode+=c;}else{if(numberNode){emitValueOpen(parseFloat(numberNode));emitValueClose();numberNode="";}
i--;state=stack.pop()||VALUE;}
continue;default:return emitError("Unknown state: "+state);}}
if(position>=bufferCheckPosition)
checkBufferLength();}}
function ascentManager(oboeBus,handlers){"use strict";var listenerId={},ascent;function stateAfter(handler){return function(param){ascent=handler(ascent,param);}}
for(var eventName in handlers){oboeBus(eventName).on(stateAfter(handlers[eventName]),listenerId);}
oboeBus(NODE_SWAP).on(function(newNode){var oldHead=head(ascent),key=keyOf(oldHead),ancestors=tail(ascent),parentNode;if(ancestors){parentNode=nodeOf(head(ancestors));parentNode[key]=newNode;}});oboeBus(NODE_DROP).on(function(){var oldHead=head(ascent),key=keyOf(oldHead),ancestors=tail(ascent),parentNode;if(ancestors){parentNode=nodeOf(head(ancestors));delete parentNode[key];}});oboeBus(ABORTING).on(function(){for(var eventName in handlers){oboeBus(eventName).un(listenerId);}});}
function parseResponseHeaders(headerStr){var headers={};headerStr&&headerStr.split('\u000d\u000a').forEach(function(headerPair){var index=headerPair.indexOf('\u003a\u0020');headers[headerPair.substring(0,index)]=headerPair.substring(index+2);});return headers;}
function isCrossOrigin(pageLocation,ajaxHost){function defaultPort(protocol){return{'http:':80,'https:':443}[protocol];}
function portOf(location){return location.port||defaultPort(location.protocol||pageLocation.protocol);}
return!!((ajaxHost.protocol&&(ajaxHost.protocol!=pageLocation.protocol))||(ajaxHost.host&&(ajaxHost.host!=pageLocation.host))||(ajaxHost.host&&(portOf(ajaxHost)!=portOf(pageLocation))));}
function parseUrlOrigin(url){var URL_HOST_PATTERN=/(\w+:)?(?:\/\/)([\w.-]+)?(?::(\d+))?\/?/,urlHostMatch=URL_HOST_PATTERN.exec(url)||[];return{protocol:urlHostMatch[1]||'',host:urlHostMatch[2]||'',port:urlHostMatch[3]||''};}
function httpTransport(){return new XMLHttpRequest();}
function streamingHttp(oboeBus,xhr,method,url,data,headers,withCredentials){"use strict";var emitStreamData=oboeBus(STREAM_DATA).emit,emitFail=oboeBus(FAIL_EVENT).emit,numberOfCharsAlreadyGivenToCallback=0,stillToSendStartEvent=true;oboeBus(ABORTING).on(function(){xhr.onreadystatechange=null;xhr.abort();});function handleProgress(){var textSoFar=xhr.responseText,newText=textSoFar.substr(numberOfCharsAlreadyGivenToCallback);if(newText){emitStreamData(newText);}
numberOfCharsAlreadyGivenToCallback=len(textSoFar);}
if('onprogress'in xhr){xhr.onprogress=handleProgress;}
xhr.onreadystatechange=function(){function sendStartIfNotAlready(){try{stillToSendStartEvent&&oboeBus(HTTP_START).emit(xhr.status,parseResponseHeaders(xhr.getAllResponseHeaders()));stillToSendStartEvent=false;}catch(e){}}
switch(xhr.readyState){case 2:case 3:return sendStartIfNotAlready();case 4:sendStartIfNotAlready();var successful=String(xhr.status)[0]==2;if(successful){handleProgress();oboeBus(STREAM_END).emit();}else{emitFail(errorReport(xhr.status,xhr.responseText));}}};try{xhr.open(method,url,true);for(var headerName in headers){xhr.setRequestHeader(headerName,headers[headerName]);}
if(!isCrossOrigin(window.location,parseUrlOrigin(url))){xhr.setRequestHeader('X-Requested-With','XMLHttpRequest');}
xhr.withCredentials=withCredentials;xhr.send(data);}catch(e){window.setTimeout(partialComplete(emitFail,errorReport(undefined,undefined,e)),0);}}
var jsonPathSyntax=(function(){var
regexDescriptor=function regexDescriptor(regex){return regex.exec.bind(regex);},jsonPathClause=varArgs(function(componentRegexes){componentRegexes.unshift(/^/);return regexDescriptor(RegExp(componentRegexes.map(attr('source')).join('')));}),possiblyCapturing=/(\$?)/,namedNode=/([\w-_]+|\*)/,namePlaceholder=/()/,nodeInArrayNotation=/\["([^"]+)"\]/,numberedNodeInArrayNotation=/\[(\d+|\*)\]/,fieldList=/{([\w ]*?)}/,optionalFieldList=/(?:{([\w ]*?)})?/
,jsonPathNamedNodeInObjectNotation=jsonPathClause(possiblyCapturing,namedNode,optionalFieldList),jsonPathNamedNodeInArrayNotation=jsonPathClause(possiblyCapturing,nodeInArrayNotation,optionalFieldList),jsonPathNumberedNodeInArrayNotation=jsonPathClause(possiblyCapturing,numberedNodeInArrayNotation,optionalFieldList),jsonPathPureDuckTyping=jsonPathClause(possiblyCapturing,namePlaceholder,fieldList),jsonPathDoubleDot=jsonPathClause(/\.\./),jsonPathDot=jsonPathClause(/\./),jsonPathBang=jsonPathClause(possiblyCapturing,/!/),emptyString=jsonPathClause(/$/);return function(fn){return fn(lazyUnion(jsonPathNamedNodeInObjectNotation,jsonPathNamedNodeInArrayNotation,jsonPathNumberedNodeInArrayNotation,jsonPathPureDuckTyping),jsonPathDoubleDot,jsonPathDot,jsonPathBang,emptyString);};}());function namedNode(key,node){return{key:key,node:node};}
var keyOf=attr('key');var nodeOf=attr('node');var ROOT_PATH={};function incrementalContentBuilder(oboeBus){var emitNodeOpened=oboeBus(NODE_OPENED).emit,emitNodeClosed=oboeBus(NODE_CLOSED).emit,emitRootOpened=oboeBus(ROOT_PATH_FOUND).emit,emitRootClosed=oboeBus(ROOT_NODE_FOUND).emit;function arrayIndicesAreKeys(possiblyInconsistentAscent,newDeepestNode){var parentNode=nodeOf(head(possiblyInconsistentAscent));return isOfType(Array,parentNode)?keyFound(possiblyInconsistentAscent,len(parentNode),newDeepestNode):possiblyInconsistentAscent;}
function nodeOpened(ascent,newDeepestNode){if(!ascent){emitRootOpened(newDeepestNode);return keyFound(ascent,ROOT_PATH,newDeepestNode);}
var arrayConsistentAscent=arrayIndicesAreKeys(ascent,newDeepestNode),ancestorBranches=tail(arrayConsistentAscent),previouslyUnmappedName=keyOf(head(arrayConsistentAscent));appendBuiltContent(ancestorBranches,previouslyUnmappedName,newDeepestNode);return cons(namedNode(previouslyUnmappedName,newDeepestNode),ancestorBranches);}
function appendBuiltContent(ancestorBranches,key,node){nodeOf(head(ancestorBranches))[key]=node;}
function keyFound(ascent,newDeepestName,maybeNewDeepestNode){if(ascent){appendBuiltContent(ascent,newDeepestName,maybeNewDeepestNode);}
var ascentWithNewPath=cons(namedNode(newDeepestName,maybeNewDeepestNode),ascent);emitNodeOpened(ascentWithNewPath);return ascentWithNewPath;}
function nodeClosed(ascent){emitNodeClosed(ascent);return tail(ascent)||emitRootClosed(nodeOf(head(ascent)));}
var contentBuilderHandlers={};contentBuilderHandlers[SAX_VALUE_OPEN]=nodeOpened;contentBuilderHandlers[SAX_VALUE_CLOSE]=nodeClosed;contentBuilderHandlers[SAX_KEY]=keyFound;return contentBuilderHandlers;}
var jsonPathCompiler=jsonPathSyntax(function(pathNodeSyntax,doubleDotSyntax,dotSyntax,bangSyntax,emptySyntax){var CAPTURING_INDEX=1;var NAME_INDEX=2;var FIELD_LIST_INDEX=3;var headKey=compose2(keyOf,head),headNode=compose2(nodeOf,head);function nameClause(previousExpr,detection){var name=detection[NAME_INDEX],matchesName=(!name||name=='*')?always:function(ascent){return headKey(ascent)==name};return lazyIntersection(matchesName,previousExpr);}
function duckTypeClause(previousExpr,detection){var fieldListStr=detection[FIELD_LIST_INDEX];if(!fieldListStr)
return previousExpr;var hasAllrequiredFields=partialComplete(hasAllProperties,arrayAsList(fieldListStr.split(/\W+/))),isMatch=compose2(hasAllrequiredFields,headNode);return lazyIntersection(isMatch,previousExpr);}
function capture(previousExpr,detection){var capturing=!!detection[CAPTURING_INDEX];if(!capturing)
return previousExpr;return lazyIntersection(previousExpr,head);}
function skip1(previousExpr){if(previousExpr==always){return always;}
function notAtRoot(ascent){return headKey(ascent)!=ROOT_PATH;}
return lazyIntersection(notAtRoot,compose2(previousExpr,tail));}
function skipMany(previousExpr){if(previousExpr==always){return always;}
var
terminalCaseWhenArrivingAtRoot=rootExpr(),terminalCaseWhenPreviousExpressionIsSatisfied=previousExpr,recursiveCase=skip1(function(ascent){return cases(ascent);}),cases=lazyUnion(terminalCaseWhenArrivingAtRoot,terminalCaseWhenPreviousExpressionIsSatisfied,recursiveCase);return cases;}
function rootExpr(){return function(ascent){return headKey(ascent)==ROOT_PATH;};}
function statementExpr(lastClause){return function(ascent){var exprMatch=lastClause(ascent);return exprMatch===true?head(ascent):exprMatch;};}
function expressionsReader(exprs,parserGeneratedSoFar,detection){return foldR(function(parserGeneratedSoFar,expr){return expr(parserGeneratedSoFar,detection);},parserGeneratedSoFar,exprs);}
function generateClauseReaderIfTokenFound(tokenDetector,clauseEvaluatorGenerators,jsonPath,parserGeneratedSoFar,onSuccess){var detected=tokenDetector(jsonPath);if(detected){var compiledParser=expressionsReader(clauseEvaluatorGenerators,parserGeneratedSoFar,detected),remainingUnparsedJsonPath=jsonPath.substr(len(detected[0]));return onSuccess(remainingUnparsedJsonPath,compiledParser);}}
function clauseMatcher(tokenDetector,exprs){return partialComplete(generateClauseReaderIfTokenFound,tokenDetector,exprs);}
var clauseForJsonPath=lazyUnion(clauseMatcher(pathNodeSyntax,list(capture,duckTypeClause,nameClause,skip1)),clauseMatcher(doubleDotSyntax,list(skipMany)),clauseMatcher(dotSyntax,list()),clauseMatcher(bangSyntax,list(capture,rootExpr)),clauseMatcher(emptySyntax,list(statementExpr)),function(jsonPath){throw Error('"'+jsonPath+'" could not be tokenised')});function returnFoundParser(_remainingJsonPath,compiledParser){return compiledParser}
function compileJsonPathToFunction(uncompiledJsonPath,parserGeneratedSoFar){var onFind=uncompiledJsonPath?compileJsonPathToFunction:returnFoundParser;return clauseForJsonPath(uncompiledJsonPath,parserGeneratedSoFar,onFind);}
return function(jsonPath){try{return compileJsonPathToFunction(jsonPath,always);}catch(e){throw Error('Could not compile "'+jsonPath+'" because '+e.message);}}});function singleEventPubSub(eventType,newListener,removeListener){var listenerTupleList,listenerList;function hasId(id){return function(tuple){return tuple.id==id;};}
return{on:function(listener,listenerId){var tuple={listener:listener,id:listenerId||listener};if(newListener){newListener.emit(eventType,listener,tuple.id);}
listenerTupleList=cons(tuple,listenerTupleList);listenerList=cons(listener,listenerList);return this;},emit:function(){applyEach(listenerList,arguments);},un:function(listenerId){var removed;listenerTupleList=without(listenerTupleList,hasId(listenerId),function(tuple){removed=tuple;});if(removed){listenerList=without(listenerList,function(listener){return listener==removed.listener;});if(removeListener){removeListener.emit(eventType,removed.listener,removed.id);}}},listeners:function(){return listenerList;},hasListener:function(listenerId){var test=listenerId?hasId(listenerId):always;return defined(first(test,listenerTupleList));}};}
function pubSub(){var singles={},newListener=newSingle('newListener'),removeListener=newSingle('removeListener');function newSingle(eventName){return singles[eventName]=singleEventPubSub(eventName,newListener,removeListener);}
function pubSubInstance(eventName){return singles[eventName]||newSingle(eventName);}
['emit','on','un'].forEach(function(methodName){pubSubInstance[methodName]=varArgs(function(eventName,parameters){apply(parameters,pubSubInstance(eventName)[methodName]);});});return pubSubInstance;}
var
_S=1,NODE_OPENED=_S++,NODE_CLOSED=_S++,NODE_SWAP=_S++,NODE_DROP=_S++,FAIL_EVENT='fail',ROOT_NODE_FOUND=_S++,ROOT_PATH_FOUND=_S++,HTTP_START='start',STREAM_DATA='data',STREAM_END='end',ABORTING=_S++,SAX_KEY=_S++,SAX_VALUE_OPEN=_S++,SAX_VALUE_CLOSE=_S++;function errorReport(statusCode,body,error){try{var jsonBody=JSON.parse(body);}catch(e){}
return{statusCode:statusCode,body:body,jsonBody:jsonBody,thrown:error};}
function patternAdapter(oboeBus,jsonPathCompiler){var predicateEventMap={node:oboeBus(NODE_CLOSED),path:oboeBus(NODE_OPENED)};function emitMatchingNode(emitMatch,node,ascent){var descent=reverseList(ascent);emitMatch(node,listAsArray(tail(map(keyOf,descent))),listAsArray(map(nodeOf,descent)));}
function addUnderlyingListener(fullEventName,predicateEvent,compiledJsonPath){var emitMatch=oboeBus(fullEventName).emit;predicateEvent.on(function(ascent){var maybeMatchingMapping=compiledJsonPath(ascent);if(maybeMatchingMapping!==false){emitMatchingNode(emitMatch,nodeOf(maybeMatchingMapping),ascent);}},fullEventName);oboeBus('removeListener').on(function(removedEventName){if(removedEventName==fullEventName){if(!oboeBus(removedEventName).listeners()){predicateEvent.un(fullEventName);}}});}
oboeBus('newListener').on(function(fullEventName){var match=/(node|path):(.*)/.exec(fullEventName);if(match){var predicateEvent=predicateEventMap[match[1]];if(!predicateEvent.hasListener(fullEventName)){addUnderlyingListener(fullEventName,predicateEvent,jsonPathCompiler(match[2]));}}})}
function instanceApi(oboeBus,contentSource){var oboeApi,fullyQualifiedNamePattern=/^(node|path):./,rootNodeFinishedEvent=oboeBus(ROOT_NODE_FOUND),emitNodeDrop=oboeBus(NODE_DROP).emit,emitNodeSwap=oboeBus(NODE_SWAP).emit,addListener=varArgs(function(eventId,parameters){if(oboeApi[eventId]){apply(parameters,oboeApi[eventId]);}else{var event=oboeBus(eventId),listener=parameters[0];if(fullyQualifiedNamePattern.test(eventId)){addForgettableCallback(event,listener);}else{event.on(listener);}}
return oboeApi;}),removeListener=function(eventId,p2,p3){if(eventId=='done'){rootNodeFinishedEvent.un(p2);}else if(eventId=='node'||eventId=='path'){oboeBus.un(eventId+':'+p2,p3);}else{var listener=p2;oboeBus(eventId).un(listener);}
return oboeApi;};function addProtectedCallback(eventName,callback){oboeBus(eventName).on(protectedCallback(callback),callback);return oboeApi;}
function addForgettableCallback(event,callback,listenerId){listenerId=listenerId||callback;var safeCallback=protectedCallback(callback);event.on(function(){var discard=false;oboeApi.forget=function(){discard=true;};apply(arguments,safeCallback);delete oboeApi.forget;if(discard){event.un(listenerId);}},listenerId);return oboeApi;}
function protectedCallback(callback){return function(){try{return callback.apply(oboeApi,arguments);}catch(e){setTimeout(function(){throw new Error(e.message);});}}}
function fullyQualifiedPatternMatchEvent(type,pattern){return oboeBus(type+':'+pattern);}
function wrapCallbackToSwapNodeIfSomethingReturned(callback){return function(){var returnValueFromCallback=callback.apply(this,arguments);if(defined(returnValueFromCallback)){if(returnValueFromCallback==oboe.drop){emitNodeDrop();}else{emitNodeSwap(returnValueFromCallback);}}}}
function addSingleNodeOrPathListener(eventId,pattern,callback){var effectiveCallback;if(eventId=='node'){effectiveCallback=wrapCallbackToSwapNodeIfSomethingReturned(callback);}else{effectiveCallback=callback;}
addForgettableCallback(fullyQualifiedPatternMatchEvent(eventId,pattern),effectiveCallback,callback);}
function addMultipleNodeOrPathListeners(eventId,listenerMap){for(var pattern in listenerMap){addSingleNodeOrPathListener(eventId,pattern,listenerMap[pattern]);}}
function addNodeOrPathListenerApi(eventId,jsonPathOrListenerMap,callback){if(isString(jsonPathOrListenerMap)){addSingleNodeOrPathListener(eventId,jsonPathOrListenerMap,callback);}else{addMultipleNodeOrPathListeners(eventId,jsonPathOrListenerMap);}
return oboeApi;}
oboeBus(ROOT_PATH_FOUND).on(function(rootNode){oboeApi.root=functor(rootNode);});oboeBus(HTTP_START).on(function(_statusCode,headers){oboeApi.header=function(name){return name?headers[name]:headers;}});return oboeApi={on:addListener,addListener:addListener,removeListener:removeListener,emit:oboeBus.emit,node:partialComplete(addNodeOrPathListenerApi,'node'),path:partialComplete(addNodeOrPathListenerApi,'path'),done:partialComplete(addForgettableCallback,rootNodeFinishedEvent),start:partialComplete(addProtectedCallback,HTTP_START),fail:oboeBus(FAIL_EVENT).on,abort:oboeBus(ABORTING).emit,write:oboeBus(STREAM_DATA).emit,finish:oboeBus(STREAM_END).emit,header:noop,root:noop,source:contentSource};}
function wire(httpMethodName,contentSource,body,headers,withCredentials){var oboeBus=pubSub();if(contentSource){streamingHttp(oboeBus,httpTransport(),httpMethodName,contentSource,body,headers,withCredentials);}
clarinet(oboeBus);ascentManager(oboeBus,incrementalContentBuilder(oboeBus));patternAdapter(oboeBus,jsonPathCompiler);return instanceApi(oboeBus,contentSource);}
function applyDefaults(passthrough,url,httpMethodName,body,headers,withCredentials,cached){headers=headers?JSON.parse(JSON.stringify(headers)):{};if(body){if(!isString(body)){body=JSON.stringify(body);headers['Content-Type']=headers['Content-Type']||'application/json';}}else{body=null;}
function modifiedUrl(baseUrl,cached){if(cached===false){if(baseUrl.indexOf('?')==-1){baseUrl+='?';}else{baseUrl+='&';}
baseUrl+='_='+new Date().getTime();}
return baseUrl;}
return passthrough(httpMethodName||'GET',modifiedUrl(url,cached),body,headers,withCredentials||false);}
function oboe(arg1){var nodeStreamMethodNames=list('resume','pause','pipe'),isStream=partialComplete(hasAllProperties,nodeStreamMethodNames);if(arg1){if(isStream(arg1)||isString(arg1)){return applyDefaults(wire,arg1);}else{return applyDefaults(wire,arg1.url,arg1.method,arg1.body,arg1.headers,arg1.withCredentials,arg1.cached);}}else{return wire();}}
oboe.drop=function(){return oboe.drop;};if(typeof define==="function"&&define.amd){define("oboe",[],function(){return oboe;});}else if(typeof exports==='object'){module.exports=oboe;}else{window.oboe=oboe;}})((function(){try{return window;}catch(e){return self;}}()),Object,Array,Error,JSON);'use strict';if(tr.isHeadless){global.window={};}'use strict';if(tr.isVinn){global.oboe=global.window.oboe;global.window=undefined;}else if(tr.isNode){global.window=undefined;const path=HTMLImportsLoader.hrefToAbsolutePath('/oboe/dist/oboe-node.js');global.oboe=require(path);}'use strict';tr.exportTo('tr.e.importer',function(){const STRING_ID_SUFFIX='_sid';const PLURAL_STRING_ID_SUFFIX='_sids';function isStringReference(s){return s.endsWith(STRING_ID_SUFFIX)||s.endsWith(PLURAL_STRING_ID_SUFFIX);}
function getStringReferenceName(name){if(name.endsWith(PLURAL_STRING_ID_SUFFIX)){return name.slice(0,-PLURAL_STRING_ID_SUFFIX.length);}
return name.slice(0,-STRING_ID_SUFFIX.length);}
function deferenceStrings(idToString,o){const clone=Object.assign({},o);for(const[key,value]of Object.entries(clone)){if(isStringReference(key)){const name=getStringReferenceName(key);clone[name]=idToString(value);}}
return clone;}
function singularize(word){if(word.endsWith('s')){return word.slice(0,-1);}
return word;}
function getMetadataPairs(dataJson){const isMetadata=v=>typeof v!=='object'||Array.isArray(v);const pairs=Object.entries(dataJson);const metadataPairs=pairs.filter(([_,v])=>isMetadata(v));return metadataPairs;}
function getGroupPairs(dataJson){const pairs=Object.entries(dataJson);const nonMapPairs=pairs.filter(([k,_])=>k!=='maps');const groupPairs=nonMapPairs.filter(([_,v])=>typeof v==='object');return groupPairs;}
function createMap(mapJson){const map=new Map();for(const entry of mapJson){if(entry.id===undefined){throw new Error('Missing required key "id" in streaming event.');}
map.set(entry.id,entry);}
return map;}
function createMaps(mapsJson){const maps=new Map();for(const[name,mapJson]of Object.entries(mapsJson)){maps.set(name,createMap(mapJson));}
return maps;}
function createGroup(groupJson,opt_startTime){const entries=[];const n=Object.values(groupJson)[0].length;for(let i=0;i<n;i++){const entry={};for(const name in groupJson){entry[name]=groupJson[name][i];}
entries.push(entry);}
const timeDelta=groupJson.timeDelta;if(opt_startTime===undefined&&timeDelta!==undefined){throw new Error('Missing required key "startTime" in streaming event.');}
if(opt_startTime){let delta=0;for(const entry of entries){delta+=entry.timeDelta?entry.timeDelta:0;entry.time=opt_startTime+delta;}}
return entries;}
function createGroups(groupsJson,opt_startTime){const groups=new Map();for(const[name,groupJson]of Object.entries(groupsJson)){groups.set(name,createGroup(groupJson,opt_startTime));}
return groups;}
function createMetadata(metadataPairs){const metadata=new Map();for(const[name,value]of metadataPairs){metadata.set(name,value);}
if(metadata.get('version')===undefined){throw new Error('Missing required key "version" in streaming event.');}
return metadata;}
class ProfilingDictionaryReader{constructor(opt_metadata,opt_maps,opt_groups,opt_parent){this.metadata=opt_metadata||new Map();this.maps=opt_maps||new Map();this.groups=opt_groups||new Map();this.parent_=opt_parent||undefined;this.inflated_=undefined;this.raw_=undefined;this.boundGetString_=this.getString.bind(this);this.deferenceStrings_=o=>deferenceStrings(this.boundGetString_,o);}
static empty(){return new ProfilingDictionaryReader();}
get parent(){return this.parent_;}
get raw(){if(this.raw_)return this.raw_;this.raw_={};for(const[name,group]of this.groups.entries()){this.raw_[name]=group;}
return this.raw_;}
get inflated(){if(this.inflated_)return this.inflated_;this.inflated_={};for(const[name,group]of this.groups.entries()){this.inflated_[name]=this.inflateGroup(group);}
return this.inflated_;}
getNewMap(name){return this.maps.get(name)||new Map();}
getMapValue(mapName,id){let value=this.getNewMap(mapName).get(id);if(value===undefined&&this.parent){value=this.parent.getMapValue(mapName,id);}
return value;}
getString(id){const value=this.getMapValue('strings',id);if(value===undefined)return undefined;return value.string;}
hasMap(name){if(this.maps.has(name))return true;if(this.parent===undefined)return false;return this.parent.hasMap(name);}
inflateGroup(group){return group.map(this.inflateEntry.bind(this));}
inflateEntry(entry){const inflatedEntry={};for(const[name,value]of Object.entries(entry)){let inflatedValue;if(this.hasMap(name)){const id=value;inflatedValue=this.deferenceStrings_(this.getMapValue(name,id));}else{inflatedValue=value;}
inflatedEntry[singularize(name)]=inflatedValue;}
return this.deferenceStrings_(inflatedEntry);}
expandData(data){const mapsJson=data.maps||{};const groupsJson=data.allocators||{};const metadataPairs=getMetadataPairs(data);const metadata=createMetadata(metadataPairs);const opt_startTime=metadata.get('startTime');const maps=createMaps(mapsJson);const groups=createGroups(groupsJson,opt_startTime);return new ProfilingDictionaryReader(metadata,maps,groups,this);}
expandEvent(event){return this.expandData(event.args.data);}}
return{ProfilingDictionaryReader,singularize,deferenceStringsForTest:deferenceStrings,};});'use strict';tr.exportTo('tr.model.source_info',function(){function SourceInfo(file,opt_line,opt_column){this.file_=file;this.line_=opt_line||-1;this.column_=opt_column||-1;}
SourceInfo.prototype={get file(){return this.file_;},get line(){return this.line_;},get column(){return this.column_;},get domain(){if(!this.file_)return undefined;const domain=this.file_.match(/(.*:\/\/[^:\/]*)/i);return domain?domain[1]:undefined;},toString(){let str='';if(this.file_){str+=this.file_;}
if(this.line_>0){str+=':'+this.line_;}
if(this.column_>0){str+=':'+this.column_;}
return str;}};return{SourceInfo,};});'use strict';tr.exportTo('tr.model.source_info',function(){function JSSourceInfo(file,line,column,isNative,scriptId,state){tr.model.source_info.SourceInfo.call(this,file,line,column);this.isNative_=isNative;this.scriptId_=scriptId;this.state_=state;}
JSSourceInfo.prototype={__proto__:tr.model.source_info.SourceInfo.prototype,get state(){return this.state_;},get isNative(){return this.isNative_;},get scriptId(){return this.scriptId_;},toString(){const str=this.isNative_?'[native v8] ':'';return str+
tr.model.source_info.SourceInfo.prototype.toString.call(this);}};const JSSourceState={COMPILED:'compiled',OPTIMIZABLE:'optimizable',OPTIMIZED:'optimized',UNKNOWN:'unknown',};return{JSSourceInfo,JSSourceState,};});'use strict';tr.exportTo('tr.e.importer',function(){function TraceCodeEntry(address,size,name,scriptId){this.id_=tr.b.GUID.allocateSimple();this.address_=address;this.size_=size;const rePrefix=/^(\w*:)?([*~]?)(.*)$/m;const tokens=rePrefix.exec(name);const prefix=tokens[1];let state=tokens[2];const body=tokens[3];if(state==='*'){state=tr.model.source_info.JSSourceState.OPTIMIZED;}else if(state==='~'){state=tr.model.source_info.JSSourceState.OPTIMIZABLE;}else if(state===''){state=tr.model.source_info.JSSourceState.COMPILED;}else{state=tr.model.source_info.JSSourceState.UNKNOWN;}
let rawName;let rawUrl;if(prefix==='Script:'){rawName='';rawUrl=body;}else{const spacePos=body.lastIndexOf(' ');rawName=spacePos!==-1?body.substr(0,spacePos):body;rawUrl=spacePos!==-1?body.substr(spacePos+1):'';}
function splitLineAndColumn(url){const lineColumnRegEx=/(?::(\d+))?(?::(\d+))?$/;const lineColumnMatch=lineColumnRegEx.exec(url);let lineNumber;let columnNumber;if(typeof(lineColumnMatch[1])==='string'){lineNumber=parseInt(lineColumnMatch[1],10);lineNumber=isNaN(lineNumber)?undefined:lineNumber-1;}
if(typeof(lineColumnMatch[2])==='string'){columnNumber=parseInt(lineColumnMatch[2],10);columnNumber=isNaN(columnNumber)?undefined:columnNumber-1;}
return{url:url.substring(0,url.length-lineColumnMatch[0].length),lineNumber,columnNumber};}
const nativeSuffix=' native';const isNative=rawName.endsWith(nativeSuffix);this.name_=isNative?rawName.slice(0,-nativeSuffix.length):rawName;const urlData=splitLineAndColumn(rawUrl);const url=urlData.url||'';const line=urlData.lineNumber||0;const column=urlData.columnNumber||0;this.sourceInfo_=new tr.model.source_info.JSSourceInfo(url,line,column,isNative,scriptId,state);}
TraceCodeEntry.prototype={get id(){return this.id_;},get sourceInfo(){return this.sourceInfo_;},get name(){return this.name_;},set address(address){this.address_=address;},get address(){return this.address_;},set size(size){this.size_=size;},get size(){return this.size_;}};return{TraceCodeEntry,};});'use strict';tr.exportTo('tr.e.importer',function(){function TraceCodeMap(){this.banks_=new Map();}
TraceCodeMap.prototype={addEntry(addressHex,size,name,scriptId){const entry=new tr.e.importer.TraceCodeEntry(this.getAddress_(addressHex),size,name,scriptId);this.addEntry_(addressHex,entry);},moveEntry(oldAddressHex,newAddressHex,size){const entry=this.getBank_(oldAddressHex).removeEntry(this.getAddress_(oldAddressHex));if(!entry)return;entry.address=this.getAddress_(newAddressHex);entry.size=size;this.addEntry_(newAddressHex,entry);},lookupEntry(addressHex){return this.getBank_(addressHex).lookupEntry(this.getAddress_(addressHex));},addEntry_(addressHex,entry){this.getBank_(addressHex).addEntry(entry);},getAddress_(addressHex){const bankSizeHexDigits=13;addressHex=addressHex.slice(2);return parseInt(addressHex.slice(-bankSizeHexDigits),16);},getBank_(addressHex){addressHex=addressHex.slice(2);const bankSizeHexDigits=13;const maxHexDigits=16;const bankName=addressHex.slice(-maxHexDigits,-bankSizeHexDigits);let bank=this.banks_.get(bankName);if(!bank){bank=new TraceCodeBank();this.banks_.set(bankName,bank);}
return bank;}};function TraceCodeBank(){this.entries_=[];}
TraceCodeBank.prototype={removeEntry(address){if(this.entries_.length===0)return undefined;const index=tr.b.math.findLowIndexInSortedArray(this.entries_,function(entry){return entry.address;},address);const entry=this.entries_[index];if(!entry||entry.address!==address)return undefined;this.entries_.splice(index,1);return entry;},lookupEntry(address){const index=tr.b.math.findHighIndexInSortedArray(this.entries_,function(e){return address-e.address;})-1;const entry=this.entries_[index];return entry&&address<entry.address+entry.size?entry:undefined;},addEntry(newEntry){if(this.entries_.length===0){this.entries_.push(newEntry);}
const endAddress=newEntry.address+newEntry.size;const lastIndex=tr.b.math.findLowIndexInSortedArray(this.entries_,function(entry){return entry.address;},endAddress);let index;for(index=lastIndex-1;index>=0;--index){const entry=this.entries_[index];const entryEndAddress=entry.address+entry.size;if(entryEndAddress<=newEntry.address)break;}
++index;this.entries_.splice(index,lastIndex-index,newEntry);}};return{TraceCodeMap,};});'use strict';tr.exportTo('tr.importer',function(){function ContextProcessor(model){this.model_=model;this.activeContexts_=[];this.stackPerType_={};this.contextCache_={};this.contextSetCache_={};this.cachedEntryForActiveContexts_=undefined;this.seenSnapshots_={};}
ContextProcessor.prototype={enterContext(contextType,scopedId){const newActiveContexts=[this.getOrCreateContext_(contextType,scopedId),];for(const oldContext of this.activeContexts_){if(oldContext.type===contextType){this.pushContext_(oldContext);}else{newActiveContexts.push(oldContext);}}
this.activeContexts_=newActiveContexts;this.cachedEntryForActiveContexts_=undefined;},leaveContext(contextType,scopedId){this.leaveContextImpl_(context=>context.type===contextType&&context.snapshot.scope===scopedId.scope&&context.snapshot.idRef===scopedId.id);},destroyContext(scopedId){for(const stack of Object.values(this.stackPerType_)){let newLength=0;for(let i=0;i<stack.length;++i){if(stack[i].snapshot.scope!==scopedId.scope||stack[i].snapshot.idRef!==scopedId.id){stack[newLength++]=stack[i];}}
stack.length=newLength;}
this.leaveContextImpl_(context=>context.snapshot.scope===scopedId.scope&&context.snapshot.idRef===scopedId.id);},leaveContextImpl_(predicate){const newActiveContexts=[];for(const oldContext of this.activeContexts_){if(predicate(oldContext)){const previousContext=this.popContext_(oldContext.type);if(previousContext){newActiveContexts.push(previousContext);}}else{newActiveContexts.push(oldContext);}}
this.activeContexts_=newActiveContexts;this.cachedEntryForActiveContexts_=undefined;},getOrCreateContext_(contextType,scopedId){const context={type:contextType,snapshot:{scope:scopedId.scope,idRef:scopedId.id}};const key=this.getContextKey_(context);if(key in this.contextCache_){return this.contextCache_[key];}
this.contextCache_[key]=context;const snapshotKey=this.getSnapshotKey_(scopedId);this.seenSnapshots_[snapshotKey]=true;return context;},pushContext_(context){if(!(context.type in this.stackPerType_)){this.stackPerType_[context.type]=[];}
this.stackPerType_[context.type].push(context);},popContext_(contextType){if(!(contextType in this.stackPerType_)){return undefined;}
return this.stackPerType_[contextType].pop();},getContextKey_(context){return[context.type,context.snapshot.scope,context.snapshot.idRef].join('\x00');},getSnapshotKey_(scopedId){return[scopedId.scope,scopedId.idRef].join('\x00');},get activeContexts(){if(this.cachedEntryForActiveContexts_===undefined){let key=[];for(const context of this.activeContexts_){key.push(this.getContextKey_(context));}
key.sort();key=key.join('\x00');if(key in this.contextSetCache_){this.cachedEntryForActiveContexts_=this.contextSetCache_[key];}else{this.activeContexts_.sort(function(a,b){const keyA=this.getContextKey_(a);const keyB=this.getContextKey_(b);if(keyA<keyB){return-1;}
if(keyA>keyB){return 1;}
return 0;}.bind(this));this.contextSetCache_[key]=Object.freeze(this.activeContexts_);this.cachedEntryForActiveContexts_=this.contextSetCache_[key];}}
return this.cachedEntryForActiveContexts_;},invalidateContextCacheForSnapshot(scopedId){const snapshotKey=this.getSnapshotKey_(scopedId);if(!(snapshotKey in this.seenSnapshots_))return;this.contextCache_={};this.contextSetCache_={};this.cachedEntryForActiveContexts_=undefined;this.activeContexts_=this.activeContexts_.map(function(context){if(context.snapshot.scope!==scopedId.scope||context.snapshot.idRef!==scopedId.id){return context;}
return{type:context.type,snapshot:{scope:context.snapshot.scope,idRef:context.snapshot.idRef}};});this.seenSnapshots_={};},};return{ContextProcessor,};});'use strict';tr.exportTo('tr.model',function(){function Annotation(){this.guid_=tr.b.GUID.allocateSimple();this.view_=undefined;}
Annotation.fromDictIfPossible=function(args){if(args.typeName===undefined){throw new Error('Missing typeName argument');}
const typeInfo=Annotation.findTypeInfoMatching(function(typeInfo){return typeInfo.metadata.typeName===args.typeName;});if(typeInfo===undefined)return undefined;return typeInfo.constructor.fromDict(args);};Annotation.fromDict=function(){throw new Error('Not implemented');};Annotation.prototype={get guid(){return this.guid_;},onRemove(){},toDict(){throw new Error('Not implemented');},getOrCreateView(viewport){if(!this.view_){this.view_=this.createView_(viewport);}
return this.view_;},createView_(){throw new Error('Not implemented');}};const options=new tr.b.ExtensionRegistryOptions(tr.b.BASIC_REGISTRY_MODE);tr.b.decorateExtensionRegistry(Annotation,options);Annotation.addEventListener('will-register',function(e){if(!e.typeInfo.constructor.hasOwnProperty('fromDict')){throw new Error('Must have fromDict method');}
if(!e.typeInfo.metadata.typeName){throw new Error('Registered Annotations must provide typeName');}});return{Annotation,};});'use strict';tr.exportTo('tr.model',function(){function YComponent(stableId,yPercentOffset){this.stableId=stableId;this.yPercentOffset=yPercentOffset;}
YComponent.prototype={toDict(){return{stableId:this.stableId,yPercentOffset:this.yPercentOffset};}};function Location(xWorld,yComponents){this.xWorld_=xWorld;this.yComponents_=yComponents;}
Location.fromViewCoordinates=function(viewport,viewX,viewY){const dt=viewport.currentDisplayTransform;const xWorld=dt.xViewToWorld(viewX);const yComponents=[];let elem=document.elementFromPoint(viewX+viewport.modelTrackContainer.canvas.offsetLeft,viewY+viewport.modelTrackContainer.canvas.offsetTop);while(elem instanceof tr.ui.tracks.Track){if(elem.eventContainer){const boundRect=elem.getBoundingClientRect();const yPercentOffset=(viewY-boundRect.top)/boundRect.height;yComponents.push(new YComponent(elem.eventContainer.stableId,yPercentOffset));}
elem=elem.parentElement;}
if(yComponents.length===0)return;return new Location(xWorld,yComponents);};Location.fromStableIdAndTimestamp=function(viewport,stableId,ts){const xWorld=ts;const yComponents=[];const containerToTrack=viewport.containerToTrackMap;let elem=containerToTrack.getTrackByStableId(stableId);if(!elem)return;const firstY=elem.getBoundingClientRect().top;while(elem instanceof tr.ui.tracks.Track){if(elem.eventContainer){const boundRect=elem.getBoundingClientRect();const yPercentOffset=(firstY-boundRect.top)/boundRect.height;yComponents.push(new YComponent(elem.eventContainer.stableId,yPercentOffset));}
elem=elem.parentElement;}
if(yComponents.length===0)return;return new Location(xWorld,yComponents);};Location.prototype={get xWorld(){return this.xWorld_;},getContainingTrack(viewport){const containerToTrack=viewport.containerToTrackMap;for(const i in this.yComponents_){const yComponent=this.yComponents_[i];const track=containerToTrack.getTrackByStableId(yComponent.stableId);if(track!==undefined)return track;}},toViewCoordinates(viewport){const dt=viewport.currentDisplayTransform;const containerToTrack=viewport.containerToTrackMap;const viewX=dt.xWorldToView(this.xWorld_);let viewY=-1;for(const index in this.yComponents_){const yComponent=this.yComponents_[index];const track=containerToTrack.getTrackByStableId(yComponent.stableId);if(track!==undefined){const boundRect=track.getBoundingClientRect();viewY=yComponent.yPercentOffset*boundRect.height+boundRect.top;break;}}
return{viewX,viewY};},toDict(){return{xWorld:this.xWorld_,yComponents:this.yComponents_};}};return{Location,};});'use strict';tr.exportTo('tr.ui.annotations',function(){function AnnotationView(viewport,annotation){}
AnnotationView.prototype={draw(ctx){throw new Error('Not implemented');}};return{AnnotationView,};});'use strict';tr.exportTo('tr.ui.annotations',function(){function RectAnnotationView(viewport,annotation){this.viewport_=viewport;this.annotation_=annotation;}
RectAnnotationView.prototype={__proto__:tr.ui.annotations.AnnotationView.prototype,draw(ctx){const dt=this.viewport_.currentDisplayTransform;const startCoords=this.annotation_.startLocation.toViewCoordinates(this.viewport_);const endCoords=this.annotation_.endLocation.toViewCoordinates(this.viewport_);let startY=startCoords.viewY-ctx.canvas.getBoundingClientRect().top;const sizeY=endCoords.viewY-startCoords.viewY;if(startY+sizeY<0){startY=sizeY;}else if(startY<0){startY=0;}
ctx.fillStyle=this.annotation_.fillStyle;ctx.fillRect(startCoords.viewX,startY,endCoords.viewX-startCoords.viewX,sizeY);}};return{RectAnnotationView,};});'use strict';tr.exportTo('tr.model',function(){function RectAnnotation(start,end){tr.model.Annotation.apply(this,arguments);this.startLocation_=start;this.endLocation_=end;this.fillStyle='rgba(255, 180, 0, 0.3)';}
RectAnnotation.fromDict=function(dict){const args=dict.args;const startLoc=new tr.model.Location(args.start.xWorld,args.start.yComponents);const endLoc=new tr.model.Location(args.end.xWorld,args.end.yComponents);return new tr.model.RectAnnotation(startLoc,endLoc);};RectAnnotation.prototype={__proto__:tr.model.Annotation.prototype,get startLocation(){return this.startLocation_;},get endLocation(){return this.endLocation_;},toDict(){return{typeName:'rect',args:{start:this.startLocation.toDict(),end:this.endLocation.toDict()}};},createView_(viewport){return new tr.ui.annotations.RectAnnotationView(viewport,this);}};tr.model.Annotation.register(RectAnnotation,{typeName:'rect'});return{RectAnnotation,};});'use strict';tr.exportTo('tr.ui.annotations',function(){function CommentBoxAnnotationView(viewport,annotation){this.viewport_=viewport;this.annotation_=annotation;this.textArea_=undefined;this.styleWidth=250;this.styleHeight=50;this.fontSize=10;this.rightOffset=50;this.topOffset=25;}
CommentBoxAnnotationView.prototype={__proto__:tr.ui.annotations.AnnotationView.prototype,removeTextArea(){Polymer.dom(Polymer.dom(this.textArea_).parentNode).removeChild(this.textArea_);},draw(ctx){const coords=this.annotation_.location.toViewCoordinates(this.viewport_);if(coords.viewX<0){if(this.textArea_){this.textArea_.style.visibility='hidden';}
return;}
if(!this.textArea_){this.textArea_=document.createElement('textarea');this.textArea_.style.position='absolute';this.textArea_.readOnly=true;this.textArea_.value=this.annotation_.text;this.textArea_.style.zIndex=1;Polymer.dom(Polymer.dom(ctx.canvas).parentNode).appendChild(this.textArea_);}
this.textArea_.style.width=this.styleWidth+'px';this.textArea_.style.height=this.styleHeight+'px';this.textArea_.style.fontSize=this.fontSize+'px';this.textArea_.style.visibility='visible';this.textArea_.style.left=coords.viewX+ctx.canvas.getBoundingClientRect().left+
this.rightOffset+'px';this.textArea_.style.top=coords.viewY-ctx.canvas.getBoundingClientRect().top-
this.topOffset+'px';ctx.strokeStyle='rgb(0, 0, 0)';ctx.lineWidth=2;ctx.beginPath();tr.ui.b.drawLine(ctx,coords.viewX,coords.viewY-ctx.canvas.getBoundingClientRect().top,coords.viewX+this.rightOffset,coords.viewY-this.topOffset-
ctx.canvas.getBoundingClientRect().top);ctx.stroke();}};return{CommentBoxAnnotationView,};});'use strict';tr.exportTo('tr.model',function(){function CommentBoxAnnotation(location,text){tr.model.Annotation.apply(this,arguments);this.location=location;this.text=text;}
CommentBoxAnnotation.fromDict=function(dict){const args=dict.args;const location=new tr.model.Location(args.location.xWorld,args.location.yComponents);return new tr.model.CommentBoxAnnotation(location,args.text);};CommentBoxAnnotation.prototype={__proto__:tr.model.Annotation.prototype,onRemove(){this.view_.removeTextArea();},toDict(){return{typeName:'comment_box',args:{text:this.text,location:this.location.toDict()}};},createView_(viewport){return new tr.ui.annotations.CommentBoxAnnotationView(viewport,this);}};tr.model.Annotation.register(CommentBoxAnnotation,{typeName:'comment_box'});return{CommentBoxAnnotation,};});'use strict';tr.exportTo('tr.model',function(){function ScopedId(scope,id,pid){if(scope===undefined){throw new Error('Scope should be defined. Use \''+
tr.model.OBJECT_DEFAULT_SCOPE+'\' as the default scope.');}
this.scope=scope;this.id=id;this.pid=pid;}
ScopedId.prototype={toString(){const pidStr=this.pid===undefined?'':'pid: '+this.pid+', ';return'{'+pidStr+'scope: '+this.scope+', id: '+this.id+'}';},toStringWithDelimiter(delim){return(this.pid===undefined?'':this.pid)+delim+
this.scope+delim+this.id;}};return{ScopedId,};});'use strict';tr.exportTo('tr.ui.annotations',function(){function XMarkerAnnotationView(viewport,annotation){this.viewport_=viewport;this.annotation_=annotation;}
XMarkerAnnotationView.prototype={__proto__:tr.ui.annotations.AnnotationView.prototype,draw(ctx){const dt=this.viewport_.currentDisplayTransform;const viewX=dt.xWorldToView(this.annotation_.timestamp);ctx.beginPath();tr.ui.b.drawLine(ctx,viewX,0,viewX,ctx.canvas.height);ctx.strokeStyle=this.annotation_.strokeStyle;ctx.stroke();}};return{XMarkerAnnotationView,};});'use strict';tr.exportTo('tr.model',function(){function XMarkerAnnotation(timestamp){tr.model.Annotation.apply(this,arguments);this.timestamp=timestamp;this.strokeStyle='rgba(0, 0, 255, 0.5)';}
XMarkerAnnotation.fromDict=function(dict){return new XMarkerAnnotation(dict.args.timestamp);};XMarkerAnnotation.prototype={__proto__:tr.model.Annotation.prototype,toDict(){return{typeName:'xmarker',args:{timestamp:this.timestamp}};},createView_(viewport){return new tr.ui.annotations.XMarkerAnnotationView(viewport,this);}};tr.model.Annotation.register(XMarkerAnnotation,{typeName:'xmarker'});return{XMarkerAnnotation,};});'use strict';tr.exportTo('tr.e.importer',function(){const Base64=tr.b.Base64;const deepCopy=tr.b.deepCopy;const ColorScheme=tr.b.ColorScheme;const HeapDumpTraceEventImporter=tr.e.importer.HeapDumpTraceEventImporter;const LegacyHeapDumpTraceEventImporter=tr.e.importer.LegacyHeapDumpTraceEventImporter;const StreamingEventExpander=tr.e.importer.StreamingEventExpander;const ProfilingDictionaryReader=tr.e.importer.ProfilingDictionaryReader;function getEventColor(event,opt_customName){if(event.cname){return ColorScheme.getColorIdForReservedName(event.cname);}else if(opt_customName||event.name){return ColorScheme.getColorIdForGeneralPurposeString(opt_customName||event.name);}}
function isLegacyChromeClockSyncEvent(event){return event.name!==undefined&&event.name.startsWith(LEGACY_CHROME_CLOCK_SYNC_EVENT_NAME_PREFIX)&&((event.ph==='S')||(event.ph==='F'));}
const PRODUCER='producer';const CONSUMER='consumer';const STEP='step';const BACKGROUND=tr.model.ContainerMemoryDump.LevelOfDetail.BACKGROUND;const LIGHT=tr.model.ContainerMemoryDump.LevelOfDetail.LIGHT;const DETAILED=tr.model.ContainerMemoryDump.LevelOfDetail.DETAILED;const MEMORY_DUMP_LEVEL_OF_DETAIL_ORDER=[undefined,BACKGROUND,LIGHT,DETAILED];const GLOBAL_MEMORY_ALLOCATOR_DUMP_PREFIX='global/';const LEGACY_CHROME_CLOCK_SYNC_EVENT_NAME_PREFIX='ClockSyncEvent.';const BYTE_STAT_NAME_MAP={'pc':'privateCleanResident','pd':'privateDirtyResident','sc':'sharedCleanResident','sd':'sharedDirtyResident','pss':'proportionalResident','sw':'swapped'};const WEAK_MEMORY_ALLOCATOR_DUMP_FLAG=1<<0;const OBJECT_TYPE_NAME_PATTERNS=[{prefix:'const char *WTF::getStringWithTypeName() [T = ',suffix:']'},{prefix:'const char* WTF::getStringWithTypeName() [with T = ',suffix:']'},{prefix:'const char *__cdecl WTF::getStringWithTypeName<',suffix:'>(void)'}];const SUBTRACE_FIELDS=new Set(['powerTraceAsString','systemTraceEvents',]);const NON_METADATA_FIELDS=new Set(['displayTimeUnit','samples','stackFrames','traceAnnotations','traceEvents',...SUBTRACE_FIELDS]);function TraceEventImporter(model,eventData){this.hasEvents_=undefined;this.importPriority=1;this.model_=model;this.events_=undefined;this.sampleEvents_=undefined;this.stackFrameEvents_=undefined;this.stackFrameTree_=new tr.model.ProfileTree();this.subtraces_=[];this.eventsWereFromString_=false;this.softwareMeasuredCpuCount_=undefined;this.allAsyncEvents_=[];this.allFlowEvents_=[];this.allObjectEvents_=[];this.contextProcessorPerThread={};this.traceEventSampleStackFramesByName_={};this.v8ProcessCodeMaps_={};this.v8ProcessRootStackFrame_={};this.v8SamplingData_=[];this.profileTrees_=new Map();this.profileInfo_=new Map();this.legacyChromeClockSyncStartEvent_=undefined;this.legacyChromeClockSyncFinishEvent_=undefined;this.allMemoryDumpEvents_={};this.heapProfileExpander=new ProfilingDictionaryReader();this.objectTypeNameMap_={};this.clockDomainId_=tr.model.ClockDomainId.UNKNOWN_CHROME_LEGACY;this.toModelTime_=undefined;if(typeof(eventData)==='string'||eventData instanceof String){eventData=eventData.trim();if(eventData[0]==='['){eventData=eventData.replace(/\s*,\s*$/,'');if(eventData[eventData.length-1]!==']'){eventData=eventData+']';}}
this.events_=JSON.parse(eventData);this.eventsWereFromString_=true;}else{this.events_=eventData;}
if(this.events_.traceEvents){const container=this.events_;this.events_=this.events_.traceEvents;for(const subtraceField of SUBTRACE_FIELDS){if(container[subtraceField]){this.storeSubtrace_(container[subtraceField]);}}
this.storeSamples_(container.samples);this.storeStackFrames_(container.stackFrames);this.storeDisplayTimeUnit_(container.displayTimeUnit);this.storeTraceAnnotations_(container.traceAnnotations);this.storeMetadata_(container);}else if(this.events_ instanceof tr.b.TraceStream){const parser=oboe().node('{cat ph}',function(e){return oboe.drop;}).node('!.powerTraceAsString',this.storeSubtrace_.bind(this)).node('!.systemTraceEvents',this.storeSubtrace_.bind(this)).node('!.samples',this.storeSamples_.bind(this)).node('!.stackFrames',this.storeStackFrames_.bind(this)).node('!.displayTimeUnit',this.storeDisplayTimeUnit_.bind(this)).node('!.traceAnnotations',this.storeTraceAnnotations_.bind(this)).done(this.storeMetadata_.bind(this));this.events_.rewind();while(this.events_.hasData){parser.write(this.events_.readNumBytes());}
parser.finish();}}
TraceEventImporter.canImport=function(eventData){if(eventData instanceof tr.b.TraceStream){if(eventData.isBinary)return false;eventData=eventData.header;}
if(typeof(eventData)==='string'||eventData instanceof String){eventData=eventData.trim();return eventData[0]==='{'||eventData[0]==='[';}
if(eventData instanceof Array&&eventData.length&&eventData[0].ph){return true;}
if(eventData.traceEvents){if(eventData.traceEvents instanceof Array){if(eventData.traceEvents.length&&eventData.traceEvents[0].ph){return true;}
if(eventData.samples&&eventData.samples.length&&eventData.stackFrames!==undefined){return true;}}}
return false;};TraceEventImporter.scopedIdForEvent_=function(event){const scope=event.scope||tr.model.OBJECT_DEFAULT_SCOPE;let pid=undefined;if(event.id!==undefined){if(event.id2!==undefined){throw new Error('Event has both id and id2');}
pid=tr.model.LOCAL_ID_PHASES.has(event.ph)?event.pid:undefined;return new tr.model.ScopedId(scope,event.id,pid);}else if(event.id2!==undefined){if(event.id2.global!==undefined){return new tr.model.ScopedId(scope,event.id2.global);}else if(event.id2.local!==undefined){return new tr.model.ScopedId(scope,event.id2.local,event.pid);}
throw new Error('Event that uses id2 must have either a global or local ID');}
return undefined;};TraceEventImporter.prototype={__proto__:tr.importer.Importer.prototype,get importerName(){return'TraceEventImporter';},extractSubtraces(){const subtraces=this.subtraces_;this.subtraces_=[];return subtraces;},deepCopyIfNeeded_(obj){if(obj===undefined)obj={};if(this.eventsWereFromString_)return obj;return deepCopy(obj);},deepCopyAlways_(obj){if(obj===undefined)obj={};return deepCopy(obj);},processAsyncEvent(event){const thread=this.model_.getOrCreateProcess(event.pid).getOrCreateThread(event.tid);this.allAsyncEvents_.push({sequenceNumber:this.allAsyncEvents_.length,event,thread});},processFlowEvent(event,opt_slice){const thread=this.model_.getOrCreateProcess(event.pid).getOrCreateThread(event.tid);this.allFlowEvents_.push({refGuid:tr.b.GUID.getLastSimpleGuid(),sequenceNumber:this.allFlowEvents_.length,event,slice:opt_slice,thread});},processCounterEvent(event){let ctrName;if(event.id!==undefined){ctrName=event.name+'['+event.id+']';}else{ctrName=event.name;}
const ctr=this.model_.getOrCreateProcess(event.pid).getOrCreateCounter(event.cat,ctrName);const reservedColorId=event.cname?getEventColor(event):undefined;if(ctr.numSeries===0){for(const seriesName in event.args){const colorId=reservedColorId||getEventColor(event,ctr.name+'.'+seriesName);ctr.addSeries(new tr.model.CounterSeries(seriesName,colorId));}
if(ctr.numSeries===0){this.model_.importWarning({type:'counter_parse_error',message:'Expected counter '+event.name+' to have at least one argument to use as a value.'});delete ctr.parent.counters[ctr.name];return;}}
const ts=this.toModelTimeFromUs_(event.ts);ctr.series.forEach(function(series){const val=event.args[series.name]?event.args[series.name]:0;series.addCounterSample(ts,val);});},processObjectEvent(event){const thread=this.model_.getOrCreateProcess(event.pid).getOrCreateThread(event.tid);this.allObjectEvents_.push({sequenceNumber:this.allObjectEvents_.length,event,thread});if(thread.guid in this.contextProcessorPerThread){const processor=this.contextProcessorPerThread[thread.guid];const scopedId=TraceEventImporter.scopedIdForEvent_(event);if(event.ph==='D'){processor.destroyContext(scopedId);}
processor.invalidateContextCacheForSnapshot(scopedId);}},processContextEvent(event){const thread=this.model_.getOrCreateProcess(event.pid).getOrCreateThread(event.tid);if(!(thread.guid in this.contextProcessorPerThread)){this.contextProcessorPerThread[thread.guid]=new tr.importer.ContextProcessor(this.model_);}
const scopedId=TraceEventImporter.scopedIdForEvent_(event);const contextType=event.name;const processor=this.contextProcessorPerThread[thread.guid];if(event.ph==='('){processor.enterContext(contextType,scopedId);}else if(event.ph===')'){processor.leaveContext(contextType,scopedId);}else{this.model_.importWarning({type:'unknown_context_phase',message:'Unknown context event phase: '+event.ph+'.'});}},setContextsFromThread_(thread,slice){if(thread.guid in this.contextProcessorPerThread){slice.contexts=this.contextProcessorPerThread[thread.guid].activeContexts;}},processDurationEvent(event){const thread=this.model_.getOrCreateProcess(event.pid).getOrCreateThread(event.tid);const ts=this.toModelTimeFromUs_(event.ts);if(!thread.sliceGroup.isTimestampValidForBeginOrEnd(ts)){this.model_.importWarning({type:'duration_parse_error',message:'Timestamps are moving backward.'});return;}
if(event.ph==='B'){const slice=thread.sliceGroup.beginSlice(event.cat,event.name,this.toModelTimeFromUs_(event.ts),this.deepCopyIfNeeded_(event.args),this.toModelTimeFromUs_(event.tts),event.argsStripped,getEventColor(event));slice.startStackFrame=this.getStackFrameForEvent_(event);this.setContextsFromThread_(thread,slice);}else if(event.ph==='I'||event.ph==='i'||event.ph==='R'){if(event.s!==undefined&&event.s!=='t'){throw new Error('This should never happen');}
thread.sliceGroup.beginSlice(event.cat,event.name,this.toModelTimeFromUs_(event.ts),this.deepCopyIfNeeded_(event.args),this.toModelTimeFromUs_(event.tts),event.argsStripped,getEventColor(event));const slice=thread.sliceGroup.endSlice(this.toModelTimeFromUs_(event.ts),this.toModelTimeFromUs_(event.tts));slice.startStackFrame=this.getStackFrameForEvent_(event);slice.endStackFrame=undefined;}else{if(!thread.sliceGroup.openSliceCount){this.model_.importWarning({type:'duration_parse_error',message:'E phase event without a matching B phase event.'});return;}
const slice=thread.sliceGroup.endSlice(this.toModelTimeFromUs_(event.ts),this.toModelTimeFromUs_(event.tts),getEventColor(event));if(event.name&&slice.title!==event.name){this.model_.importWarning({type:'title_match_error',message:'Titles do not match. Title is '+
slice.title+' in openSlice, and is '+
event.name+' in endSlice'});}
slice.endStackFrame=this.getStackFrameForEvent_(event);this.mergeArgsInto_(slice.args,event.args,slice.title);}},mergeArgsInto_(dstArgs,srcArgs,eventName){for(const arg in srcArgs){if(dstArgs[arg]!==undefined){this.model_.importWarning({type:'arg_merge_error',message:'Different phases of '+eventName+' provided values for argument '+arg+'.'+' The last provided value will be used.'});}
dstArgs[arg]=this.deepCopyIfNeeded_(srcArgs[arg]);}},processCompleteEvent(event){if(event.cat!==undefined&&event.cat.indexOf('trace_event_overhead')>-1){return undefined;}
const thread=this.model_.getOrCreateProcess(event.pid).getOrCreateThread(event.tid);if(event.flow_out){if(event.flow_in){event.flowPhase=STEP;}else{event.flowPhase=PRODUCER;}}else if(event.flow_in){event.flowPhase=CONSUMER;}
const slice=thread.sliceGroup.pushCompleteSlice(event.cat,event.name,this.toModelTimeFromUs_(event.ts),this.maybeToModelTimeFromUs_(event.dur),this.maybeToModelTimeFromUs_(event.tts),this.maybeToModelTimeFromUs_(event.tdur),this.deepCopyIfNeeded_(event.args),event.argsStripped,getEventColor(event),event.bind_id);slice.startStackFrame=this.getStackFrameForEvent_(event);slice.endStackFrame=this.getStackFrameForEvent_(event,true);this.setContextsFromThread_(thread,slice);return slice;},processJitCodeEvent(event){if(this.v8ProcessCodeMaps_[event.pid]===undefined){this.v8ProcessCodeMaps_[event.pid]=new tr.e.importer.TraceCodeMap();}
const map=this.v8ProcessCodeMaps_[event.pid];const data=event.args.data;if(event.name==='JitCodeMoved'){map.moveEntry(data.code_start,data.new_code_start,data.code_len);}else{map.addEntry(data.code_start,data.code_len,data.name,data.script_id);}},processMetadataEvent(event){if(event.name==='JitCodeAdded'||event.name==='JitCodeMoved'){this.v8SamplingData_.push(event);return;}
if(event.argsStripped)return;if(event.name==='process_name'){const process=this.model_.getOrCreateProcess(event.pid);process.name=event.args.name;}else if(event.name==='process_labels'){const process=this.model_.getOrCreateProcess(event.pid);const labels=event.args.labels.split(',');for(let i=0;i<labels.length;i++){process.addLabelIfNeeded(labels[i]);}}else if(event.name==='process_uptime_seconds'){const process=this.model_.getOrCreateProcess(event.pid);process.uptime_seconds=event.args.uptime;}else if(event.name==='process_sort_index'){const process=this.model_.getOrCreateProcess(event.pid);process.sortIndex=event.args.sort_index;}else if(event.name==='thread_name'){const thread=this.model_.getOrCreateProcess(event.pid).getOrCreateThread(event.tid);thread.name=event.args.name;}else if(event.name==='thread_sort_index'){const thread=this.model_.getOrCreateProcess(event.pid).getOrCreateThread(event.tid);thread.sortIndex=event.args.sort_index;}else if(event.name==='num_cpus'){let n=event.args.number;if(this.softwareMeasuredCpuCount_!==undefined){n=Math.max(n,this.softwareMeasuredCpuCount_);}
this.softwareMeasuredCpuCount_=n;}else if(event.name==='stackFrames'){const stackFrames=event.args.stackFrames;if(stackFrames===undefined){this.model_.importWarning({type:'metadata_parse_error',message:'No stack frames found in a \''+event.name+'\' metadata event'});}else{this.importStackFrames_(stackFrames,'p'+event.pid+':');}}else if(event.name==='typeNames'){const objectTypeNameMap=event.args.typeNames;if(objectTypeNameMap===undefined){this.model_.importWarning({type:'metadata_parse_error',message:'No mapping from object type IDs to names found in a \''+
event.name+'\' metadata event'});}else{this.importObjectTypeNameMap_(objectTypeNameMap,event.pid);}}else if(event.name==='TraceConfig'){this.model_.metadata.push({name:'TraceConfig',value:event.args.value});}else{this.model_.importWarning({type:'metadata_parse_error',message:'Unrecognized metadata name: '+event.name});}},processInstantEvent(event){if(event.name==='JitCodeAdded'||event.name==='JitCodeMoved'){this.v8SamplingData_.push(event);return;}
if(event.s==='t'||event.s===undefined){this.processDurationEvent(event);return;}
let constructor;switch(event.s){case'g':constructor=tr.model.GlobalInstantEvent;break;case'p':constructor=tr.model.ProcessInstantEvent;break;default:this.model_.importWarning({type:'instant_parse_error',message:'I phase event with unknown "s" field value.'});return;}
const instantEvent=new constructor(event.cat,event.name,getEventColor(event),this.toModelTimeFromUs_(event.ts),this.deepCopyIfNeeded_(event.args));switch(instantEvent.type){case tr.model.InstantEventType.GLOBAL:this.model_.instantEvents.push(instantEvent);break;case tr.model.InstantEventType.PROCESS:{const process=this.model_.getOrCreateProcess(event.pid);process.instantEvents.push(instantEvent);break;}
default:throw new Error('Unknown instant event type: '+event.s);}},getOrCreateProfileTree_(sampleType,id){if(!this.profileTrees_.has(sampleType)){this.profileTrees_.set(sampleType,new Map());}
const profileTreeMap=this.profileTrees_.get(sampleType);if(profileTreeMap.has(id)){return profileTreeMap.get(id);}
const profileTree=new tr.model.ProfileTree();profileTreeMap.set(id,profileTree);const info=this.profileInfo_.get(id);if(info!==undefined){profileTree.startTime=info.startTime;profileTree.pid=info.pid;profileTree.tid=info.tid;}
return profileTree;},processSample(event){if(event.args===undefined||event.args.data===undefined){return;}
if(event.id===undefined){throw new Error('No event ID in sample');}
const data=event.args.data;if(data.startTime!==undefined){this.profileInfo_.set(event.id,{startTime:data.startTime,pid:event.pid,tid:event.tid});}
const timeDeltas=data.timeDeltas;for(const sampleType in data){if(sampleType==='timeDeltas'||sampleType==='startTime'){continue;}
if(data[sampleType].samples&&timeDeltas&&data[sampleType].samples.length!==timeDeltas.length){throw new Error('samples and timeDeltas array should have same length');}
const profileTree=this.getOrCreateProfileTree_(sampleType,event.id);const nodes=data[sampleType].nodes;const samples=data[sampleType].samples;if(nodes!==undefined){for(const node of nodes){const ProfileNodeType=tr.model.ProfileNode.subTypes.getConstructor(undefined,sampleType);const profileNode=ProfileNodeType.constructFromObject(profileTree,node);if(profileNode===undefined){continue;}
profileTree.add(profileNode);}}
if(samples!==undefined){const thread=this.model_.getOrCreateProcess(profileTree.pid).getOrCreateThread(profileTree.tid);for(let i=0,len=samples.length;i<len;++i){const node=profileTree.getNode(samples[i]);profileTree.endTime+=timeDeltas[i];const start=this.toModelTimeFromUs_(profileTree.endTime);this.model_.samples.push(new tr.model.Sample(start,node.sampleTitle,node,thread));}}}},processLegacyV8Sample(event){const data=event.args.data;const sampleType='legacySample';const ProfileNodeType=tr.model.ProfileNode.subTypes.getConstructor(undefined,sampleType);if(data.vm_state==='js'&&!data.stack.length)return;const profileTree=this.getOrCreateProfileTree_(sampleType,event.pid);if(profileTree.getNode(-1)===undefined){profileTree.add(new ProfileNodeType(-1,{url:'',scriptId:-1,functionName:'unknown'},undefined));}
let node=undefined;if(data.stack.length>0&&this.v8ProcessCodeMaps_[event.pid]){const map=this.v8ProcessCodeMaps_[event.pid];data.stack.reverse();let parentNode=undefined;for(let i=0;i<data.stack.length;i++){const entry=map.lookupEntry(data.stack[i]);if(entry===undefined){node=profileTree.getNode(-1);}else{node=profileTree.getNode(entry.id);if(node===undefined){const sourceInfo=entry.sourceInfo;node=new ProfileNodeType(entry.id,{functionName:entry.name,url:entry.sourceInfo.file,lineNumber:sourceInfo.line!==-1?sourceInfo.line:undefined,columnNumber:sourceInfo.column!==-1?sourceInfo.column:undefined,scriptid:entry.sourceInfo.scriptId},parentNode);profileTree.add(node);}}
parentNode=node;}}else{node=profileTree.getNode(data.vm_state);if(node===undefined){node=new ProfileNodeType(data.vm_state,{url:'',functionName:data.vm_state},undefined);profileTree.add(node);}}
const thread=this.model_.getOrCreateProcess(event.pid).getOrCreateThread(event.tid);this.model_.samples.push(new tr.model.Sample(this.toModelTimeFromUs_(event.ts),node.sampleTitle,node,thread));},processTraceSampleEvent(event){if(event.name==='V8Sample'||event.name.startsWith('Profile')){this.v8SamplingData_.push(event);return;}
let node=this.stackFrameTree_.getNode(event.name);if(node===undefined&&event.sf!==undefined){node=this.stackFrameTree_.getNode('g'+event.sf);}
if(node===undefined){let id=event.name;if(event.sf){id='g'+event.sf;}
const ProfileNodeType=tr.model.ProfileNode.subTypes.getConstructor(undefined,'legacySample');node=this.stackFrameTree_.add(new ProfileNodeType(id,{functionName:event.name},undefined));}
const thread=this.model_.getOrCreateProcess(event.pid).getOrCreateThread(event.tid);const sample=new tr.model.Sample(this.toModelTimeFromUs_(event.ts),'Trace Event Sample',node,thread,undefined,1,this.deepCopyIfNeeded_(event.args));this.setContextsFromThread_(thread,sample);this.model_.samples.push(sample);},processMemoryDumpEvent(event){if(event.ph!=='v'){throw new Error('Invalid memory dump event phase "'+event.ph+'".');}
const dumpId=event.id;if(dumpId===undefined){this.model_.importWarning({type:'memory_dump_parse_error',message:'Memory dump event (phase \''+event.ph+'\') without a dump ID.'});return;}
const pid=event.pid;if(pid===undefined){this.model_.importWarning({type:'memory_dump_parse_error',message:'Memory dump event (phase\''+event.ph+'\', dump ID \''+
dumpId+'\') without a PID.'});return;}
const allEvents=this.allMemoryDumpEvents_;let dumpIdEvents=allEvents[dumpId];if(dumpIdEvents===undefined){allEvents[dumpId]=dumpIdEvents={};}
let processEvents=dumpIdEvents[pid];if(processEvents===undefined){dumpIdEvents[pid]=processEvents=[];}
processEvents.push(event);},processClockSyncEvent(event){if(event.ph!=='c'){throw new Error('Invalid clock sync event phase "'+event.ph+'".');}
const syncId=event.args.sync_id;if(syncId===undefined){this.model_.importWarning({type:'clock_sync_parse_error',message:'Clock sync at time '+event.ts+' without an ID.'});return;}
if(event.args&&event.args.issue_ts!==undefined){this.model_.clockSyncManager.addClockSyncMarker(this.clockDomainId_,syncId,tr.b.Unit.timestampFromUs(event.args.issue_ts),tr.b.Unit.timestampFromUs(event.ts));}else{this.model_.clockSyncManager.addClockSyncMarker(this.clockDomainId_,syncId,tr.b.Unit.timestampFromUs(event.ts));}},processLegacyChromeClockSyncEvent(event){if(event.ph==='S'){this.legacyChromeClockSyncStartEvent_=event;}else if(event.ph==='F'){this.legacyChromeClockSyncFinishEvent_=event;}
if(this.legacyChromeClockSyncStartEvent_===undefined||this.legacyChromeClockSyncFinishEvent_===undefined){return;}
const startSyncId=this.legacyChromeClockSyncStartEvent_.name.substring(LEGACY_CHROME_CLOCK_SYNC_EVENT_NAME_PREFIX.length);const finishSyncId=this.legacyChromeClockSyncFinishEvent_.name.substring(LEGACY_CHROME_CLOCK_SYNC_EVENT_NAME_PREFIX.length);if(startSyncId!==finishSyncId){throw new Error('Inconsistent clock sync ID of legacy Chrome clock sync events');}
this.model_.clockSyncManager.addClockSyncMarker(this.clockDomainId_,startSyncId,tr.b.Unit.timestampFromUs(this.legacyChromeClockSyncStartEvent_.ts),tr.b.Unit.timestampFromUs(this.legacyChromeClockSyncFinishEvent_.ts));},processV8Events(){this.v8SamplingData_.sort(function(a,b){if(a.ts!==b.ts)return a.ts-b.ts;if(a.ph==='M'||a.ph==='I'){return-1;}else if(b.ph==='M'||b.ph==='I'){return 1;}
return 0;});const length=this.v8SamplingData_.length;for(let i=0;i<length;++i){const event=this.v8SamplingData_[i];if(event.ph==='M'||event.ph==='I'){this.processJitCodeEvent(event);}else if(event.ph==='P'){if(event.name.startsWith('Profile')){this.processSample(event);}else{this.processLegacyV8Sample(event);}}}},importClockSyncMarkers(){if(this.events_ instanceof tr.b.TraceStream){const parser=oboe().node('{cat ph}',this.importClockSyncMarker_.bind(this));this.events_.rewind();while(this.events_.hasData){parser.write(this.events_.readNumBytes());}
parser.finish();}else{for(let i=0;i<this.events_.length;i++){this.importClockSyncMarker_(this.events_[i]);}}},importClockSyncMarker_(event){const isLegacyChromeClockSync=isLegacyChromeClockSyncEvent(event);if(event.ph!=='c'&&!isLegacyChromeClockSync)return;const eventSizeInBytes=this.model_.importOptions.trackDetailedModelStats?JSON.stringify(event).length:undefined;this.model_.stats.willProcessBasicTraceEvent('clock_sync',event.cat,event.name,event.ts,eventSizeInBytes);if(isLegacyChromeClockSync){this.processLegacyChromeClockSyncEvent(event);}else{this.processClockSyncEvent(event);}},importEvents(){this.hasEvents_=false;if(this.stackFrameEvents_){this.importStackFrames_(this.stackFrameEvents_,'g');}
if(this.traceAnnotations_)this.importAnnotations_();if(this.events_ instanceof tr.b.TraceStream){const parser=oboe().node('{cat ph}',this.processEvent_.bind(this));this.events_.rewind();while(this.events_.hasData){parser.write(this.events_.readNumBytes());}
parser.finish();}else{for(let eI=0;eI<this.events_.length;eI++){this.processEvent_(this.events_[eI]);}}
this.processV8Events();for(const frame of Object.values(this.v8ProcessRootStackFrame_)){frame.removeAllChildren();}},storeSubtrace_(subtrace){this.subtraces_.push(subtrace);return oboe.drop;},storeSamples_(samples){this.sampleEvents_=samples;return oboe.drop;},storeStackFrames_(stackFrames){this.stackFrameEvents_=stackFrames;return oboe.drop;},storeDisplayTimeUnit_(unitName){if(!unitName)return;const unit=tr.b.TimeDisplayModes[unitName];if(unit===undefined){throw new Error('Unit '+unitName+' is not supported.');}
this.model_.intrinsicTimeUnit=unit;return oboe.drop;},storeTraceAnnotations_(traceAnnotations){this.traceAnnotations_=traceAnnotations;return oboe.drop;},storeMetadata_(container){for(const fieldName of Object.keys(container)){if(NON_METADATA_FIELDS.has(fieldName))continue;this.model_.metadata.push({name:fieldName,value:container[fieldName]});if(fieldName!=='metadata')continue;const metadata=container[fieldName];if(metadata['highres-ticks']){this.model_.isTimeHighResolution=metadata['highres-ticks'];}
if(metadata['clock-domain']){this.clockDomainId_=metadata['clock-domain'];}}
return oboe.drop;},processEvent_(event){this.hasEvents_=true;const importOptions=this.model_.importOptions;const trackDetailedModelStats=importOptions.trackDetailedModelStats;const modelStats=this.model_.stats;if(event.args==='__stripped__'){event.argsStripped=true;event.args=undefined;}
let eventSizeInBytes=undefined;if(trackDetailedModelStats){eventSizeInBytes=JSON.stringify(event).length;}
switch(event.ph){case'B':case'E':modelStats.willProcessBasicTraceEvent('begin_end (non-compact)',event.cat,event.name,event.ts,eventSizeInBytes);this.processDurationEvent(event);break;case'X':{modelStats.willProcessBasicTraceEvent('begin_end (compact)',event.cat,event.name,event.ts,eventSizeInBytes);const slice=this.processCompleteEvent(event);if(slice!==undefined&&event.bind_id!==undefined){this.processFlowEvent(event,slice);}
break;}
case'b':case'e':case'n':case'S':case'F':case'T':case'p':modelStats.willProcessBasicTraceEvent('async',event.cat,event.name,event.ts,eventSizeInBytes);this.processAsyncEvent(event);break;case'I':case'i':case'R':modelStats.willProcessBasicTraceEvent('instant',event.cat,event.name,event.ts,eventSizeInBytes);this.processInstantEvent(event);break;case'P':modelStats.willProcessBasicTraceEvent('samples',event.cat,event.name,event.ts,eventSizeInBytes);this.processTraceSampleEvent(event);break;case'C':modelStats.willProcessBasicTraceEvent('counters',event.cat,event.name,event.ts,eventSizeInBytes);this.processCounterEvent(event);break;case'M':modelStats.willProcessBasicTraceEvent('metadata',event.cat,event.name,event.ts,eventSizeInBytes);this.processMetadataEvent(event);break;case'N':case'D':case'O':modelStats.willProcessBasicTraceEvent('objects',event.cat,event.name,event.ts,eventSizeInBytes);this.processObjectEvent(event);break;case's':case't':case'f':modelStats.willProcessBasicTraceEvent('flows',event.cat,event.name,event.ts,eventSizeInBytes);this.processFlowEvent(event);break;case'v':modelStats.willProcessBasicTraceEvent('memory_dumps',event.cat,event.name,event.ts,eventSizeInBytes);this.processMemoryDumpEvent(event);break;case'(':case')':this.processContextEvent(event);break;case'c':break;default:modelStats.willProcessBasicTraceEvent('unknown',event.cat,event.name,event.ts,eventSizeInBytes);this.model_.importWarning({type:'parse_error',message:'Unrecognized event phase: '+
event.ph+' ('+event.name+')'});}
return oboe.drop;},importStackFrames_(rawStackFrames,idPrefix){const model=this.model_;for(const id in rawStackFrames){const rawStackFrame=rawStackFrames[id];const fullId=idPrefix+id;const textForColor=rawStackFrame.category?rawStackFrame.category:rawStackFrame.name;const stackFrame=new tr.model.StackFrame(undefined,fullId,rawStackFrame.name,ColorScheme.getColorIdForGeneralPurposeString(textForColor));model.addStackFrame(stackFrame);}
for(const id in rawStackFrames){const fullId=idPrefix+id;const stackFrame=model.stackFrames[fullId];if(stackFrame===undefined){throw new Error('Internal error');}
const rawStackFrame=rawStackFrames[id];const parentId=rawStackFrame.parent;let parentStackFrame;if(parentId===undefined){parentStackFrame=undefined;}else{const parentFullId=idPrefix+parentId;parentStackFrame=model.stackFrames[parentFullId];if(parentStackFrame===undefined){this.model_.importWarning({type:'metadata_parse_error',message:'Missing parent frame with ID '+parentFullId+' for stack frame \''+stackFrame.name+'\' (ID '+fullId+').'});}}
stackFrame.parentFrame=parentStackFrame;}
const ProfileNodeType=tr.model.ProfileNode.subTypes.getConstructor(undefined,'legacySample');if(idPrefix==='g'){for(const id in rawStackFrames){const rawStackFrame=rawStackFrames[id];const textForColor=rawStackFrame.category?rawStackFrame.category:rawStackFrame.name;const node=this.stackFrameTree_.add(new ProfileNodeType('g'+id,{functionName:rawStackFrame.name},undefined));node.colorId=ColorScheme.getColorIdForGeneralPurposeString(textForColor);node.parentId=rawStackFrame.parent;}
for(const id in rawStackFrames){const node=this.stackFrameTree_.getNode('g'+id);const parentId=node.parentId;let parentNode=undefined;if(parentId!==undefined){parentNode=this.stackFrameTree_.getNode('g'+parentId);if(parentNode===undefined){this.model_.importWarning({type:'metadata_parse_error',message:'Missing parent frame with ID '+parentId+' for stack frame \''+node.name+'\' (ID '+node.id+').'});}
node.parentNode=parentNode;}}}},importObjectTypeNameMap_(rawObjectTypeNameMap,pid){if(pid in this.objectTypeNameMap_){this.model_.importWarning({type:'metadata_parse_error',message:'Mapping from object type IDs to names provided for pid='+
pid+' multiple times.'});return;}
let objectTypeNamePrefix=undefined;let objectTypeNameSuffix=undefined;const objectTypeNameMap={};for(const objectTypeId in rawObjectTypeNameMap){const rawObjectTypeName=rawObjectTypeNameMap[objectTypeId];if(objectTypeNamePrefix===undefined){for(let i=0;i<OBJECT_TYPE_NAME_PATTERNS.length;i++){const pattern=OBJECT_TYPE_NAME_PATTERNS[i];if(rawObjectTypeName.startsWith(pattern.prefix)&&rawObjectTypeName.endsWith(pattern.suffix)){objectTypeNamePrefix=pattern.prefix;objectTypeNameSuffix=pattern.suffix;break;}}}
if(objectTypeNamePrefix!==undefined&&rawObjectTypeName.startsWith(objectTypeNamePrefix)&&rawObjectTypeName.endsWith(objectTypeNameSuffix)){objectTypeNameMap[objectTypeId]=rawObjectTypeName.substring(objectTypeNamePrefix.length,rawObjectTypeName.length-objectTypeNameSuffix.length);}else{objectTypeNameMap[objectTypeId]=rawObjectTypeName;}}
this.objectTypeNameMap_[pid]=objectTypeNameMap;},importAnnotations_(){for(const id in this.traceAnnotations_){const annotation=tr.model.Annotation.fromDictIfPossible(this.traceAnnotations_[id]);if(!annotation){this.model_.importWarning({type:'annotation_warning',message:'Unrecognized traceAnnotation typeName \"'+
this.traceAnnotations_[id].typeName+'\"'});continue;}
this.model_.addAnnotation(annotation);}},finalizeImport(){if(this.softwareMeasuredCpuCount_!==undefined){this.model_.kernel.softwareMeasuredCpuCount=this.softwareMeasuredCpuCount_;}
this.createAsyncSlices_();this.createFlowSlices_();this.createExplicitObjects_();this.createImplicitObjects_();this.createMemoryDumps_();},getStackFrameForEvent_(event,opt_lookForEndEvent){let sf;let stack;if(opt_lookForEndEvent){sf=event.esf;stack=event.estack;}else{sf=event.sf;stack=event.stack;}
if(stack!==undefined&&sf!==undefined){this.model_.importWarning({type:'stack_frame_and_stack_error',message:'Event at '+event.ts+' cannot have both a stack and a stackframe.'});return undefined;}
if(stack!==undefined){return this.model_.resolveStackToStackFrame_(event.pid,stack);}
if(sf===undefined)return undefined;const stackFrame=this.model_.stackFrames['g'+sf];if(stackFrame===undefined){this.model_.importWarning({type:'sample_import_error',message:'No frame for '+sf});return;}
return stackFrame;},resolveStackToStackFrame_(pid,stack){return undefined;},importSampleData(){if(!this.sampleEvents_)return;const m=this.model_;const events=this.sampleEvents_;if(this.hasEvents_===undefined){throw new Error('importEvents is not run before importSampleData');}else if(!this.hasEvents_){for(let i=0;i<events.length;i++){const event=events[i];m.getOrCreateProcess(event.tid).getOrCreateThread(event.tid);}}
const threadsByTid={};m.getAllThreads().forEach(function(t){threadsByTid[t.tid]=t;});for(let i=0;i<events.length;i++){const event=events[i];const thread=threadsByTid[event.tid];if(thread===undefined){m.importWarning({type:'sample_import_error',message:'Thread '+events.tid+'not found'});continue;}
let cpu;if(event.cpu!==undefined){cpu=m.kernel.getOrCreateCpu(event.cpu);}
const leafNode=this.stackFrameTree_.getNode('g'+event.sf);const sample=new tr.model.Sample(this.toModelTimeFromUs_(event.ts),event.name,leafNode,thread,cpu,event.weight);m.samples.push(sample);}},createAsyncSlices_(){if(this.allAsyncEvents_.length===0)return;this.allAsyncEvents_.sort(function(x,y){const d=x.event.ts-y.event.ts;if(d!==0)return d;return x.sequenceNumber-y.sequenceNumber;});const legacyEvents=[];const nestableAsyncEventsByKey={};const nestableMeasureAsyncEventsByKey={};for(let i=0;i<this.allAsyncEvents_.length;i++){const asyncEventState=this.allAsyncEvents_[i];const event=asyncEventState.event;if(event.ph==='S'||event.ph==='F'||event.ph==='T'||event.ph==='p'){legacyEvents.push(asyncEventState);continue;}
if(event.cat===undefined){this.model_.importWarning({type:'async_slice_parse_error',message:'Nestable async events (ph: b, e, or n) require a '+'cat parameter.'});continue;}
if(event.name===undefined){this.model_.importWarning({type:'async_slice_parse_error',message:'Nestable async events (ph: b, e, or n) require a '+'name parameter.'});continue;}
const id=TraceEventImporter.scopedIdForEvent_(event);if(id===undefined){this.model_.importWarning({type:'async_slice_parse_error',message:'Nestable async events (ph: b, e, or n) require an '+'id parameter.'});continue;}
if(event.cat==='blink.user_timing'){const matched=/([^\/:]+):([^\/:]+)\/?(.*)/.exec(event.name);if(matched!==null){const key=matched[1]+':'+event.cat;event.args=JSON.parse(Base64.atob(matched[3])||'{}');if(nestableMeasureAsyncEventsByKey[key]===undefined){nestableMeasureAsyncEventsByKey[key]=[];}
nestableMeasureAsyncEventsByKey[key].push(asyncEventState);continue;}}
const key=event.cat+':'+id.toStringWithDelimiter(':');if(nestableAsyncEventsByKey[key]===undefined){nestableAsyncEventsByKey[key]=[];}
nestableAsyncEventsByKey[key].push(asyncEventState);}
this.createLegacyAsyncSlices_(legacyEvents);this.createNestableAsyncSlices_(nestableMeasureAsyncEventsByKey);this.createNestableAsyncSlices_(nestableAsyncEventsByKey);},createLegacyAsyncSlices_(legacyEvents){if(legacyEvents.length===0)return;legacyEvents.sort(function(x,y){const d=x.event.ts-y.event.ts;if(d!==0)return d;return x.sequenceNumber-y.sequenceNumber;});const asyncEventStatesByNameThenID={};for(let i=0;i<legacyEvents.length;i++){const asyncEventState=legacyEvents[i];const event=asyncEventState.event;const name=event.name;if(name===undefined){this.model_.importWarning({type:'async_slice_parse_error',message:'Async events (ph: S, T, p, or F) require a name '+' parameter.'});continue;}
const id=TraceEventImporter.scopedIdForEvent_(event);if(id===undefined){this.model_.importWarning({type:'async_slice_parse_error',message:'Async events (ph: S, T, p, or F) require an id parameter.'});continue;}
const key=id.toStringWithDelimiter(':');if(event.ph==='S'){if(asyncEventStatesByNameThenID[name]===undefined){asyncEventStatesByNameThenID[name]={};}
if(asyncEventStatesByNameThenID[name][key]){this.model_.importWarning({type:'async_slice_parse_error',message:'At '+event.ts+', a slice of the same id '+id+' was alrady open.'});continue;}
asyncEventStatesByNameThenID[name][key]=[];asyncEventStatesByNameThenID[name][key].push(asyncEventState);}else{if(asyncEventStatesByNameThenID[name]===undefined){this.model_.importWarning({type:'async_slice_parse_error',message:'At '+event.ts+', no slice named '+name+' was open.'});continue;}
if(asyncEventStatesByNameThenID[name][key]===undefined){this.model_.importWarning({type:'async_slice_parse_error',message:'At '+event.ts+', no slice named '+name+' with id='+id+' was open.'});continue;}
const events=asyncEventStatesByNameThenID[name][key];events.push(asyncEventState);if(event.ph==='F'){const asyncSliceConstructor=tr.model.AsyncSlice.subTypes.getConstructor(events[0].event.cat,name);const slice=new asyncSliceConstructor(events[0].event.cat,name,getEventColor(events[0].event),this.toModelTimeFromUs_(events[0].event.ts),tr.b.concatenateObjects(events[0].event.args,events[events.length-1].event.args),this.toModelTimeFromUs_(event.ts-events[0].event.ts),true,undefined,undefined,events[0].event.argsStripped);slice.startThread=events[0].thread;slice.endThread=asyncEventState.thread;slice.id=key;const stepType=events[1].event.ph;let isValid=true;for(let j=1;j<events.length-1;++j){if(events[j].event.ph==='T'||events[j].event.ph==='p'){isValid=this.assertStepTypeMatches_(stepType,events[j]);if(!isValid)break;}
if(events[j].event.ph==='S'){this.model_.importWarning({type:'async_slice_parse_error',message:'At '+events[j].event.ts+', a slice named '+
name+' with id='+id+' had a step before the start event.'});continue;}
if(events[j].event.ph==='F'){this.model_.importWarning({type:'async_slice_parse_error',message:'At '+events[j].event.ts+', a slice named '+
name+' with id='+id+' had a step after the finish event.'});continue;}
const startIndex=j+(stepType==='T'?0:-1);const endIndex=startIndex+1;let subName=name;if(!events[j].event.argsStripped&&(events[j].event.ph==='T'||events[j].event.ph==='p')){subName=subName+':'+events[j].event.args.step;}
const asyncSliceConstructor=tr.model.AsyncSlice.subTypes.getConstructor(events[0].event.cat,subName);const subSlice=new asyncSliceConstructor(events[0].event.cat,subName,getEventColor(event,subName+j),this.toModelTimeFromUs_(events[startIndex].event.ts),this.deepCopyIfNeeded_(events[j].event.args),this.toModelTimeFromUs_(events[endIndex].event.ts-events[startIndex].event.ts),undefined,undefined,events[startIndex].event.argsStripped);subSlice.startThread=events[startIndex].thread;subSlice.endThread=events[endIndex].thread;subSlice.id=key;slice.subSlices.push(subSlice);}
if(isValid){slice.startThread.asyncSliceGroup.push(slice);}
delete asyncEventStatesByNameThenID[name][key];}}}},createNestableAsyncSlices_(nestableEventsByKey){for(const key in nestableEventsByKey){const eventStateEntries=nestableEventsByKey[key];const parentStack=[];for(let i=0;i<eventStateEntries.length;++i){const eventStateEntry=eventStateEntries[i];if(eventStateEntry.event.ph==='e'){let parentIndex=-1;for(let k=parentStack.length-1;k>=0;--k){if(parentStack[k].event.name===eventStateEntry.event.name){parentIndex=k;break;}}
if(parentIndex===-1){eventStateEntry.finished=false;}else{parentStack[parentIndex].end=eventStateEntry;while(parentIndex<parentStack.length){parentStack.pop();}}}
if(parentStack.length>0){eventStateEntry.parentEntry=parentStack[parentStack.length-1];}
if(eventStateEntry.event.ph==='b'){parentStack.push(eventStateEntry);}}
const topLevelSlices=[];for(let i=0;i<eventStateEntries.length;++i){const eventStateEntry=eventStateEntries[i];if(eventStateEntry.event.ph==='e'&&eventStateEntry.finished===undefined){continue;}
let startState=undefined;let endState=undefined;let sliceArgs=eventStateEntry.event.args||{};let sliceError=undefined;const id=TraceEventImporter.scopedIdForEvent_(eventStateEntry.event);if(eventStateEntry.event.ph==='n'){startState=eventStateEntry;endState=eventStateEntry;}else if(eventStateEntry.event.ph==='b'){if(eventStateEntry.end===undefined){eventStateEntry.end=eventStateEntries[eventStateEntries.length-1];sliceError='Slice has no matching END. End time has been adjusted.';this.model_.importWarning({type:'async_slice_parse_error',message:'Nestable async BEGIN event at '+
eventStateEntry.event.ts+' with name='+
eventStateEntry.event.name+' and id='+id+' was unmatched.'});}else{function concatenateArguments(args1,args2){if(args1.params===undefined||args2.params===undefined){return tr.b.concatenateObjects(args1,args2);}
const args3={};args3.params=tr.b.concatenateObjects(args1.params,args2.params);return tr.b.concatenateObjects(args1,args2,args3);}
const endArgs=eventStateEntry.end.event.args||{};sliceArgs=concatenateArguments(sliceArgs,endArgs);}
startState=eventStateEntry;endState=eventStateEntry.end;}else{sliceError='Slice has no matching BEGIN. Start time has been adjusted.';this.model_.importWarning({type:'async_slice_parse_error',message:'Nestable async END event at '+
eventStateEntry.event.ts+' with name='+
eventStateEntry.event.name+' and id='+id+' was unmatched.'});startState=eventStateEntries[0];endState=eventStateEntry;}
const isTopLevel=(eventStateEntry.parentEntry===undefined);const asyncSliceConstructor=tr.model.AsyncSlice.subTypes.getConstructor(eventStateEntry.event.cat,eventStateEntry.event.name);let threadStart=undefined;let threadDuration=undefined;if(startState.event.tts&&startState.event.use_async_tts){threadStart=this.toModelTimeFromUs_(startState.event.tts);if(endState.event.tts){const threadEnd=this.toModelTimeFromUs_(endState.event.tts);threadDuration=threadEnd-threadStart;}}
const slice=new asyncSliceConstructor(eventStateEntry.event.cat,eventStateEntry.event.name,getEventColor(endState.event),this.toModelTimeFromUs_(startState.event.ts),sliceArgs,this.toModelTimeFromUs_(endState.event.ts-startState.event.ts),isTopLevel,threadStart,threadDuration,startState.event.argsStripped);slice.startThread=startState.thread;slice.endThread=endState.thread;slice.startStackFrame=this.getStackFrameForEvent_(startState.event);slice.endStackFrame=this.getStackFrameForEvent_(endState.event);slice.id=key;if(sliceError!==undefined){slice.error=sliceError;}
eventStateEntry.slice=slice;if(isTopLevel){topLevelSlices.push(slice);}else if(eventStateEntry.parentEntry.slice!==undefined){eventStateEntry.parentEntry.slice.subSlices.push(slice);}}
for(let si=0;si<topLevelSlices.length;si++){topLevelSlices[si].startThread.asyncSliceGroup.push(topLevelSlices[si]);}}},assertStepTypeMatches_(stepType,event){if(stepType!==event.event.ph){this.model_.importWarning({type:'async_slice_parse_error',message:'At '+event.event.ts+', a slice named '+
event.event.name+' with id='+
TraceEventImporter.scopedIdForEvent_(event.event)+' had both begin and end steps, which is not allowed.'});return false;}
return true;},validateFlowEvent_(event){if(event.name===undefined){this.model_.importWarning({type:'flow_slice_parse_error',message:'Flow events (ph: s, t or f) require a name parameter.'});return false;}
if(event.ph==='s'||event.ph==='f'||event.ph==='t'){if(event.id===undefined){this.model_.importWarning({type:'flow_slice_parse_error',message:'Flow events (ph: s, t or f) require an id parameter.'});return false;}
return true;}
if(event.bind_id){if(event.flow_in===undefined&&event.flow_out===undefined){this.model_.importWarning({type:'flow_slice_parse_error',message:'Flow producer or consumer require flow_in or flow_out.'});return false;}
return true;}
return false;},createFlowSlices_(){if(this.allFlowEvents_.length===0)return;const createFlowEvent=function(thread,event,opt_slice){let startSlice;let flowId;let flowStartTs;if(event.bind_id){startSlice=opt_slice;flowId=event.bind_id;flowStartTs=this.toModelTimeFromUs_(event.ts+event.dur);}else{const ts=this.toModelTimeFromUs_(event.ts);startSlice=thread.sliceGroup.findSliceAtTs(ts);if(startSlice===undefined)return undefined;flowId=event.id;flowStartTs=ts;}
const flowEvent=new tr.model.FlowEvent(event.cat,flowId,event.name,getEventColor(event),flowStartTs,this.deepCopyAlways_(event.args));flowEvent.startSlice=startSlice;flowEvent.startStackFrame=this.getStackFrameForEvent_(event);flowEvent.endStackFrame=undefined;startSlice.outFlowEvents.push(flowEvent);return flowEvent;}.bind(this);const finishFlowEventWith=function(flowEvent,thread,event,refGuid,bindToParent,opt_slice){let endSlice;if(event.bind_id){endSlice=opt_slice;}else{const ts=this.toModelTimeFromUs_(event.ts);if(bindToParent){endSlice=thread.sliceGroup.findSliceAtTs(ts);}else{endSlice=thread.sliceGroup.findNextSliceAfter(ts,refGuid);}
if(endSlice===undefined)return false;}
endSlice.inFlowEvents.push(flowEvent);flowEvent.endSlice=endSlice;flowEvent.duration=this.toModelTimeFromUs_(event.ts)-flowEvent.start;flowEvent.endStackFrame=this.getStackFrameForEvent_(event);this.mergeArgsInto_(flowEvent.args,event.args,flowEvent.title);return true;}.bind(this);const processFlowConsumer=function(flowIdToEvent,sliceGuidToEvent,event,slice){let flowEvent=flowIdToEvent[event.bind_id];if(flowEvent===undefined){this.model_.importWarning({type:'flow_slice_ordering_error',message:'Flow consumer '+event.bind_id+' does not have '+'a flow producer'});return false;}else if(flowEvent.endSlice){const flowProducer=flowEvent.startSlice;flowEvent=createFlowEvent(undefined,sliceGuidToEvent[flowProducer.guid],flowProducer);}
const refGuid=undefined;const ok=finishFlowEventWith(flowEvent,undefined,event,refGuid,undefined,slice);if(ok){this.model_.flowEvents.push(flowEvent);}else{this.model_.importWarning({type:'flow_slice_end_error',message:'Flow consumer '+event.bind_id+' does not end '+'at an actual slice, so cannot be created.'});return false;}
return true;}.bind(this);const processFlowProducer=function(flowIdToEvent,flowStatus,event,slice){if(flowIdToEvent[event.bind_id]&&flowStatus[event.bind_id]){this.model_.importWarning({type:'flow_slice_start_error',message:'Flow producer '+event.bind_id+' already seen'});return false;}
const flowEvent=createFlowEvent(undefined,event,slice);if(!flowEvent){this.model_.importWarning({type:'flow_slice_start_error',message:'Flow producer '+event.bind_id+' does not start'+'a flow'});return false;}
flowIdToEvent[event.bind_id]=flowEvent;}.bind(this);this.allFlowEvents_.sort(function(x,y){const d=x.event.ts-y.event.ts;if(d!==0)return d;return x.sequenceNumber-y.sequenceNumber;});const flowIdToEvent={};const sliceGuidToEvent={};const flowStatus={};for(let i=0;i<this.allFlowEvents_.length;++i){const data=this.allFlowEvents_[i];const refGuid=data.refGuid;const event=data.event;const thread=data.thread;if(!this.validateFlowEvent_(event))continue;if(event.bind_id){const slice=data.slice;sliceGuidToEvent[slice.guid]=event;if(event.flowPhase===PRODUCER){if(!processFlowProducer(flowIdToEvent,flowStatus,event,slice)){continue;}
flowStatus[event.bind_id]=true;}else{if(!processFlowConsumer(flowIdToEvent,sliceGuidToEvent,event,slice)){continue;}
flowStatus[event.bind_id]=false;if(event.flowPhase===STEP){if(!processFlowProducer(flowIdToEvent,flowStatus,event,slice)){continue;}
flowStatus[event.bind_id]=true;}}
continue;}
let flowEvent;if(event.ph==='s'){if(flowIdToEvent[event.id]){this.model_.importWarning({type:'flow_slice_start_error',message:'event id '+event.id+' already seen when '+'encountering start of flow event.'});continue;}
flowEvent=createFlowEvent(thread,event);if(!flowEvent){this.model_.importWarning({type:'flow_slice_start_error',message:'event id '+event.id+' does not start '+'at an actual slice, so cannot be created.'});continue;}
flowIdToEvent[event.id]=flowEvent;}else if(event.ph==='t'||event.ph==='f'){flowEvent=flowIdToEvent[event.id];if(flowEvent===undefined){this.model_.importWarning({type:'flow_slice_ordering_error',message:'Found flow phase '+event.ph+' for id: '+event.id+' but no flow start found.'});continue;}
let bindToParent=event.ph==='t';if(event.ph==='f'){if(event.bp===undefined){if(event.cat.indexOf('input')>-1){bindToParent=true;}else if(event.cat.indexOf('ipc.flow')>-1){bindToParent=true;}}else{if(event.bp!=='e'){this.model_.importWarning({type:'flow_slice_bind_point_error',message:'Flow event with invalid binding point (event.bp).'});continue;}
bindToParent=true;}}
const ok=finishFlowEventWith(flowEvent,thread,event,refGuid,bindToParent);if(ok){this.model_.flowEvents.push(flowEvent);}else{this.model_.importWarning({type:'flow_slice_end_error',message:'event id '+event.id+' does not end '+'at an actual slice, so cannot be created.'});}
flowIdToEvent[event.id]=undefined;if(ok&&event.ph==='t'){flowEvent=createFlowEvent(thread,event);flowIdToEvent[event.id]=flowEvent;}}}},createExplicitObjects_(){if(this.allObjectEvents_.length===0)return;const processEvent=function(objectEventState){const event=objectEventState.event;const scopedId=TraceEventImporter.scopedIdForEvent_(event);const thread=objectEventState.thread;if(event.name===undefined){this.model_.importWarning({type:'object_parse_error',message:'While processing '+JSON.stringify(event)+': '+'Object events require an name parameter.'});}
if(scopedId===undefined||scopedId.id===undefined){this.model_.importWarning({type:'object_parse_error',message:'While processing '+JSON.stringify(event)+': '+'Object events require an id parameter.'});}
const process=thread.parent;const ts=this.toModelTimeFromUs_(event.ts);let instance;if(event.ph==='N'){try{instance=process.objects.idWasCreated(scopedId,event.cat,event.name,ts);}catch(e){this.model_.importWarning({type:'object_parse_error',message:'While processing create of '+
scopedId+' at ts='+ts+': '+e});return;}}else if(event.ph==='O'){if(event.args.snapshot===undefined){this.model_.importWarning({type:'object_parse_error',message:'While processing '+scopedId+' at ts='+ts+': '+'Snapshots must have args: {snapshot: ...}'});return;}
let snapshot;try{const args=this.deepCopyIfNeeded_(event.args.snapshot);let cat;if(args.cat){cat=args.cat;delete args.cat;}else{cat=event.cat;}
let baseTypename;if(args.base_type){baseTypename=args.base_type;delete args.base_type;}else{baseTypename=undefined;}
snapshot=process.objects.addSnapshot(scopedId,cat,event.name,ts,args,baseTypename);snapshot.snapshottedOnThread=thread;}catch(e){this.model_.importWarning({type:'object_parse_error',message:'While processing snapshot of '+
scopedId+' at ts='+ts+': '+e});return;}
instance=snapshot.objectInstance;}else if(event.ph==='D'){try{process.objects.idWasDeleted(scopedId,event.cat,event.name,ts);const instanceMap=process.objects.getOrCreateInstanceMap_(scopedId);instance=instanceMap.lastInstance;}catch(e){this.model_.importWarning({type:'object_parse_error',message:'While processing delete of '+
scopedId+' at ts='+ts+': '+e});return;}}
if(instance){instance.colorId=getEventColor(event,instance.typeName);}}.bind(this);this.allObjectEvents_.sort(function(x,y){const d=x.event.ts-y.event.ts;if(d!==0)return d;return x.sequenceNumber-y.sequenceNumber;});const allObjectEvents=this.allObjectEvents_;for(let i=0;i<allObjectEvents.length;i++){const objectEventState=allObjectEvents[i];try{processEvent.call(this,objectEventState);}catch(e){this.model_.importWarning({type:'object_parse_error',message:e.message});}}},createImplicitObjects_(){for(const proc of Object.values(this.model_.processes)){this.createImplicitObjectsForProcess_(proc);}},createImplicitObjectsForProcess_(process){function processField(referencingObject,referencingObjectFieldName,referencingObjectFieldValue,containingSnapshot){if(!referencingObjectFieldValue)return;if(referencingObjectFieldValue instanceof
tr.model.ObjectSnapshot){return null;}
if(referencingObjectFieldValue.id===undefined)return;const implicitSnapshot=referencingObjectFieldValue;const rawId=implicitSnapshot.id;const m=/(.+)\/(.+)/.exec(rawId);if(!m){throw new Error('Implicit snapshots must have names.');}
delete implicitSnapshot.id;const name=m[1];const id=m[2];let res;let cat;if(implicitSnapshot.cat!==undefined){cat=implicitSnapshot.cat;}else{cat=containingSnapshot.objectInstance.category;}
let baseTypename;if(implicitSnapshot.base_type){baseTypename=implicitSnapshot.base_type;}else{baseTypename=undefined;}
const scope=containingSnapshot.objectInstance.scopedId.scope;try{res=process.objects.addSnapshot(new tr.model.ScopedId(scope,id),cat,name,containingSnapshot.ts,implicitSnapshot,baseTypename);}catch(e){this.model_.importWarning({type:'object_snapshot_parse_error',message:'While processing implicit snapshot of '+
rawId+' at ts='+containingSnapshot.ts+': '+e});return;}
res.objectInstance.hasImplicitSnapshots=true;res.containingSnapshot=containingSnapshot;res.snapshottedOnThread=containingSnapshot.snapshottedOnThread;referencingObject[referencingObjectFieldName]=res;if(!(res instanceof tr.model.ObjectSnapshot)){throw new Error('Created object must be instanceof snapshot');}
return res.args;}
function iterObject(object,func,containingSnapshot,thisArg){if(!(object instanceof Object))return;if(object instanceof Array){for(let i=0;i<object.length;i++){const res=func.call(thisArg,object,i,object[i],containingSnapshot);if(res===null)continue;if(res){iterObject(res,func,containingSnapshot,thisArg);}else{iterObject(object[i],func,containingSnapshot,thisArg);}}
return;}
for(const key in object){const res=func.call(thisArg,object,key,object[key],containingSnapshot);if(res===null)continue;if(res){iterObject(res,func,containingSnapshot,thisArg);}else{iterObject(object[key],func,containingSnapshot,thisArg);}}}
process.objects.iterObjectInstances(function(instance){instance.snapshots.forEach(function(snapshot){if(snapshot.args.id!==undefined){throw new Error('args cannot have an id field inside it');}
iterObject(snapshot.args,processField,snapshot,this);},this);},this);},createMemoryDumps_(){for(const dumpId in this.allMemoryDumpEvents_){this.createGlobalMemoryDump_(this.allMemoryDumpEvents_[dumpId],dumpId);}},createGlobalMemoryDump_(dumpIdEvents,dumpId){const globalRange=new tr.b.math.Range();for(const pid in dumpIdEvents){const processEvents=dumpIdEvents[pid];for(let i=0;i<processEvents.length;i++){globalRange.addValue(this.toModelTimeFromUs_(processEvents[i].ts));}}
if(globalRange.isEmpty){throw new Error('Internal error: Global memory dump without events');}
const globalMemoryDump=new tr.model.GlobalMemoryDump(this.model_,globalRange.min);globalMemoryDump.duration=globalRange.range;this.model_.globalMemoryDumps.push(globalMemoryDump);const globalMemoryAllocatorDumpsByFullName={};const levelsOfDetail={};const allMemoryAllocatorDumpsByGuid={};for(const pid in dumpIdEvents){this.createProcessMemoryDump_(globalMemoryDump,globalMemoryAllocatorDumpsByFullName,levelsOfDetail,allMemoryAllocatorDumpsByGuid,dumpIdEvents[pid],pid,dumpId);}
globalMemoryDump.levelOfDetail=levelsOfDetail.global;globalMemoryDump.memoryAllocatorDumps=this.inferMemoryAllocatorDumpTree_(globalMemoryAllocatorDumpsByFullName);this.parseMemoryDumpAllocatorEdges_(allMemoryAllocatorDumpsByGuid,dumpIdEvents,dumpId);},createProcessMemoryDump_(globalMemoryDump,globalMemoryAllocatorDumpsByFullName,levelsOfDetail,allMemoryAllocatorDumpsByGuid,processEvents,pid,dumpId){const processRange=new tr.b.math.Range();for(let i=0;i<processEvents.length;i++){processRange.addValue(this.toModelTimeFromUs_(processEvents[i].ts));}
if(processRange.isEmpty){throw new Error('Internal error: Process memory dump without events');}
const process=this.model_.getOrCreateProcess(pid);const processMemoryDump=new tr.model.ProcessMemoryDump(globalMemoryDump,process,processRange.min);processMemoryDump.duration=processRange.range;process.memoryDumps.push(processMemoryDump);globalMemoryDump.processMemoryDumps[pid]=processMemoryDump;const processMemoryAllocatorDumpsByFullName={};for(let i=0;i<processEvents.length;i++){const processEvent=processEvents[i];const dumps=processEvent.args.dumps;if(dumps===undefined){this.model_.importWarning({type:'memory_dump_parse_error',message:'\'dumps\' field not found in a process memory dump'+' event for PID='+pid+' and dump ID='+dumpId+'.'});continue;}
this.parseMemoryDumpTotals_(processMemoryDump,dumps,pid,dumpId);this.parseMemoryDumpVmRegions_(processMemoryDump,dumps,pid,dumpId);this.parseMemoryDumpHeapDumps_(processMemoryDump,dumps,pid,dumpId);this.parseMemoryDumpLevelOfDetail_(levelsOfDetail,dumps,pid,dumpId);this.parseMemoryDumpAllocatorDumps_(processMemoryDump,globalMemoryDump,processMemoryAllocatorDumpsByFullName,globalMemoryAllocatorDumpsByFullName,allMemoryAllocatorDumpsByGuid,dumps,pid,dumpId);}
if(levelsOfDetail.process===undefined){levelsOfDetail.process=processMemoryDump.vmRegions?DETAILED:LIGHT;}
if(!this.updateMemoryDumpLevelOfDetail_(levelsOfDetail,'global',levelsOfDetail.process)){this.model_.importWarning({type:'memory_dump_parse_error',message:'diffent levels of detail provided for global memory'+' dump (dump ID='+dumpId+').'});}
processMemoryDump.levelOfDetail=levelsOfDetail.process;delete levelsOfDetail.process;processMemoryDump.memoryAllocatorDumps=this.inferMemoryAllocatorDumpTree_(processMemoryAllocatorDumpsByFullName);},parseMemoryDumpTotals_(processMemoryDump,dumps,pid,dumpId){const rawTotals=dumps.process_totals;if(rawTotals===undefined)return;if(processMemoryDump.totals!==undefined){this.model_.importWarning({type:'memory_dump_parse_error',message:'Process totals provided multiple times for'+' process memory dump for PID='+pid+' and dump ID='+dumpId+'.'});return;}
const totals={};let platformSpecificTotals=undefined;for(const rawTotalName in rawTotals){const rawTotalValue=rawTotals[rawTotalName];if(rawTotalValue===undefined)continue;if(rawTotalName==='resident_set_bytes'){totals.residentBytes=parseInt(rawTotalValue,16);continue;}
if(rawTotalName==='peak_resident_set_bytes'){totals.peakResidentBytes=parseInt(rawTotalValue,16);continue;}
if(rawTotalName==='is_peak_rss_resetable'){totals.arePeakResidentBytesResettable=!!rawTotalValue;continue;}
if(platformSpecificTotals===undefined){platformSpecificTotals={};totals.platformSpecific=platformSpecificTotals;}
platformSpecificTotals[rawTotalName]=parseInt(rawTotalValue,16);}
if(totals.peakResidentBytes===undefined&&totals.arePeakResidentBytesResettable!==undefined){this.model_.importWarning({type:'memory_dump_parse_error',message:'Optional field peak_resident_set_bytes found'+' but is_peak_rss_resetable not found in'+' process memory dump for PID='+pid+' and dump ID='+dumpId+'.'});}
if(totals.arePeakResidentBytesResettable!==undefined&&totals.peakResidentBytes===undefined){this.model_.importWarning({type:'memory_dump_parse_error',message:'Optional field is_peak_rss_resetable found'+' but peak_resident_set_bytes not found in'+' process memory dump for PID='+pid+' and dump ID='+dumpId+'.'});}
processMemoryDump.totals=totals;},parseMemoryDumpVmRegions_(processMemoryDump,dumps,pid,dumpId){const rawProcessMmaps=dumps.process_mmaps;if(rawProcessMmaps===undefined)return;const rawVmRegions=rawProcessMmaps.vm_regions;if(rawVmRegions===undefined)return;if(processMemoryDump.vmRegions!==undefined){this.model_.importWarning({type:'memory_dump_parse_error',message:'VM regions provided multiple times for'+' process memory dump for PID='+pid+' and dump ID='+dumpId+'.'});return;}
const vmRegions=new Array(rawVmRegions.length);for(let i=0;i<rawVmRegions.length;i++){const rawVmRegion=rawVmRegions[i];const byteStats={};const rawByteStats=rawVmRegion.bs;for(const rawByteStatName in rawByteStats){const rawByteStatValue=rawByteStats[rawByteStatName];if(rawByteStatValue===undefined){this.model_.importWarning({type:'memory_dump_parse_error',message:'Byte stat \''+rawByteStatName+'\' of VM region '+
i+' ('+rawVmRegion.mf+') in process memory dump for '+'PID='+pid+' and dump ID='+dumpId+' does not have a value.'});continue;}
const byteStatName=BYTE_STAT_NAME_MAP[rawByteStatName];if(byteStatName===undefined){this.model_.importWarning({type:'memory_dump_parse_error',message:'Unknown byte stat name \''+rawByteStatName+'\' ('+
rawByteStatValue+') of VM region '+i+' ('+
rawVmRegion.mf+') in process memory dump for PID='+pid+' and dump ID='+dumpId+'.'});continue;}
byteStats[byteStatName]=parseInt(rawByteStatValue,16);if(byteStatName==='proportionalResident'&&byteStats[byteStatName]===0){byteStats[byteStatName]=undefined;}}
vmRegions[i]=new tr.model.VMRegion(parseInt(rawVmRegion.sa,16),parseInt(rawVmRegion.sz,16),rawVmRegion.pf,rawVmRegion.mf,byteStats);}
processMemoryDump.vmRegions=tr.model.VMRegionClassificationNode.fromRegions(vmRegions);},parseMemoryDumpHeapDumps_(processMemoryDump,dumps,pid,dumpId){const idPrefix='p'+pid+':';let importer;if(dumps.heaps){const processTypeMap=this.objectTypeNameMap_[pid];if(processTypeMap===undefined){this.model_.importWarning({type:'memory_dump_parse_error',message:'Missing mapping from object type IDs to names.'});}
importer=new LegacyHeapDumpTraceEventImporter(this.model_,processMemoryDump,processTypeMap,idPrefix,dumpId,dumps.heaps);}else if(dumps.heaps_v2){const data=dumps.heaps_v2;this.heapProfileExpander=this.heapProfileExpander.expandData(data);this.addNewStackFramesFromExpander_(this.heapProfileExpander,idPrefix);importer=new HeapDumpTraceEventImporter(this.heapProfileExpander,this.model_.stackFrames,processMemoryDump,idPrefix,this.model_);}
if(!importer)return;const heapDumps=importer.parse();if(!heapDumps)return;if(processMemoryDump.heapDumps!==undefined){this.model_.importWarning({type:'memory_dump_parse_error',message:'Heap dumps provided multiple times for'+' process memory dump for PID='+pid+' and dump ID='+dumpId+'.'});return;}
if(Object.keys(heapDumps).length>0){processMemoryDump.heapDumps=heapDumps;}},addNewStackFramesFromExpander_(expander,idPrefix){const nodeMap=expander.getNewMap('nodes');const newStackFrames={};for(const[id,stackFrame]of nodeMap.entries()){if(!this.model_.stackFrames[idPrefix+id]){newStackFrames[id]={id,name:expander.getString(stackFrame.name_sid),};if(stackFrame.parent)newStackFrames[id].parent=stackFrame.parent;}}
this.importStackFrames_(newStackFrames,idPrefix);},parseMemoryDumpLevelOfDetail_(levelsOfDetail,dumps,pid,dumpId){const rawLevelOfDetail=dumps.level_of_detail;let level;switch(rawLevelOfDetail){case'background':level=BACKGROUND;break;case'light':level=LIGHT;break;case'detailed':level=DETAILED;break;case undefined:level=undefined;break;default:this.model_.importWarning({type:'memory_dump_parse_error',message:'unknown raw level of detail \''+rawLevelOfDetail+'\' of process memory dump for PID='+pid+' and dump ID='+dumpId+'.'});return;}
if(!this.updateMemoryDumpLevelOfDetail_(levelsOfDetail,'process',level)){this.model_.importWarning({type:'memory_dump_parse_error',message:'diffent levels of detail provided for process memory'+' dump for PID='+pid+' (dump ID='+dumpId+').'});}},updateMemoryDumpLevelOfDetail_(levelsOfDetail,scope,level){if(!(scope in levelsOfDetail)||level===levelsOfDetail[scope]){levelsOfDetail[scope]=level;return true;}
if(MEMORY_DUMP_LEVEL_OF_DETAIL_ORDER.indexOf(level)>MEMORY_DUMP_LEVEL_OF_DETAIL_ORDER.indexOf(levelsOfDetail[scope])){levelsOfDetail[scope]=level;}
return false;},parseMemoryDumpAllocatorDumps_(processMemoryDump,globalMemoryDump,processMemoryAllocatorDumpsByFullName,globalMemoryAllocatorDumpsByFullName,allMemoryAllocatorDumpsByGuid,dumps,pid,dumpId){const rawAllocatorDumps=dumps.allocators;if(rawAllocatorDumps===undefined)return;for(let fullName in rawAllocatorDumps){const rawAllocatorDump=rawAllocatorDumps[fullName];const guid=rawAllocatorDump.guid;if(guid===undefined){this.model_.importWarning({type:'memory_dump_parse_error',message:'Memory allocator dump '+fullName+' for PID='+pid+' and dump ID='+dumpId+' does not have a GUID.'});}
const flags=rawAllocatorDump.flags||0;const isWeakDump=!!(flags&WEAK_MEMORY_ALLOCATOR_DUMP_FLAG);let containerMemoryDump;let dstIndex;if(fullName.startsWith(GLOBAL_MEMORY_ALLOCATOR_DUMP_PREFIX)){fullName=fullName.substring(GLOBAL_MEMORY_ALLOCATOR_DUMP_PREFIX.length);containerMemoryDump=globalMemoryDump;dstIndex=globalMemoryAllocatorDumpsByFullName;}else{containerMemoryDump=processMemoryDump;dstIndex=processMemoryAllocatorDumpsByFullName;}
let allocatorDump=allMemoryAllocatorDumpsByGuid[guid];if(allocatorDump===undefined){if(fullName in dstIndex){this.model_.importWarning({type:'memory_dump_parse_error',message:'Multiple GUIDs provided for'+' memory allocator dump '+fullName+': '+
dstIndex[fullName].guid+', '+guid+' (ignored) for'+' PID='+pid+' and dump ID='+dumpId+'.'});continue;}
allocatorDump=new tr.model.MemoryAllocatorDump(containerMemoryDump,fullName,guid);allocatorDump.weak=isWeakDump;dstIndex[fullName]=allocatorDump;if(guid!==undefined){allMemoryAllocatorDumpsByGuid[guid]=allocatorDump;}}else{if(allocatorDump.containerMemoryDump!==containerMemoryDump){this.model_.importWarning({type:'memory_dump_parse_error',message:'Memory allocator dump '+fullName+' (GUID='+guid+') for PID='+pid+' and dump ID='+
dumpId+' dumped in different contexts.'});continue;}
if(allocatorDump.fullName!==fullName){this.model_.importWarning({type:'memory_dump_parse_error',message:'Memory allocator dump with GUID='+guid+' for PID='+
pid+' and dump ID='+dumpId+' has multiple names: '+
allocatorDump.fullName+', '+fullName+' (ignored).'});continue;}
if(!isWeakDump){allocatorDump.weak=false;}}
let attributes=rawAllocatorDump.attrs;if(attributes===undefined){this.model_.importWarning({type:'memory_dump_parse_error',message:'Memory allocator dump '+fullName+' (GUID='+guid+') for PID='+pid+' and dump ID='+dumpId+' does not have attributes.'});attributes={};}
for(const attrName in attributes){const attrArgs=attributes[attrName];const attrType=attrArgs.type;const attrValue=attrArgs.value;switch(attrType){case'scalar':{if(attrName in allocatorDump.numerics){this.model_.importWarning({type:'memory_dump_parse_error',message:'Multiple values provided for scalar attribute '+
attrName+' of memory allocator dump '+fullName+' (GUID='+guid+') for PID='+pid+' and dump ID='+
dumpId+'.'});break;}
const unit=attrArgs.units==='bytes'?tr.b.Unit.byName.sizeInBytes_smallerIsBetter:tr.b.Unit.byName.unitlessNumber_smallerIsBetter;const value=parseInt(attrValue,16);allocatorDump.addNumeric(attrName,new tr.b.Scalar(unit,value));break;}
case'string':if(attrName in allocatorDump.diagnostics){this.model_.importWarning({type:'memory_dump_parse_error',message:'Multiple values provided for string attribute '+
attrName+' of memory allocator dump '+fullName+' (GUID='+guid+') for PID='+pid+' and dump ID='+
dumpId+'.'});break;}
allocatorDump.addDiagnostic(attrName,attrValue);break;default:this.model_.importWarning({type:'memory_dump_parse_error',message:'Unknown type provided for attribute '+attrName+' of memory allocator dump '+fullName+' (GUID='+guid+') for PID='+pid+' and dump ID='+dumpId+': '+
attrType});break;}}}},inferMemoryAllocatorDumpTree_(memoryAllocatorDumpsByFullName){const rootAllocatorDumps=[];const fullNames=Object.keys(memoryAllocatorDumpsByFullName);fullNames.sort();for(let i=0;i<fullNames.length;i++){let fullName=fullNames[i];let allocatorDump=memoryAllocatorDumpsByFullName[fullName];while(true){const lastSlashIndex=fullName.lastIndexOf('/');if(lastSlashIndex===-1){rootAllocatorDumps.push(allocatorDump);break;}
const parentFullName=fullName.substring(0,lastSlashIndex);let parentAllocatorDump=memoryAllocatorDumpsByFullName[parentFullName];let parentAlreadyExisted=true;if(parentAllocatorDump===undefined){parentAlreadyExisted=false;parentAllocatorDump=new tr.model.MemoryAllocatorDump(allocatorDump.containerMemoryDump,parentFullName);if(allocatorDump.weak!==false){parentAllocatorDump.weak=undefined;}
memoryAllocatorDumpsByFullName[parentFullName]=parentAllocatorDump;}
allocatorDump.parent=parentAllocatorDump;parentAllocatorDump.children.push(allocatorDump);if(parentAlreadyExisted){if(!allocatorDump.weak){while(parentAllocatorDump!==undefined&&parentAllocatorDump.weak===undefined){parentAllocatorDump.weak=false;parentAllocatorDump=parentAllocatorDump.parent;}}
break;}
fullName=parentFullName;allocatorDump=parentAllocatorDump;}}
for(const fullName in memoryAllocatorDumpsByFullName){const allocatorDump=memoryAllocatorDumpsByFullName[fullName];if(allocatorDump.weak===undefined){allocatorDump.weak=true;}}
return rootAllocatorDumps;},parseMemoryDumpAllocatorEdges_(allMemoryAllocatorDumpsByGuid,dumpIdEvents,dumpId){for(const pid in dumpIdEvents){const processEvents=dumpIdEvents[pid];for(let i=0;i<processEvents.length;i++){const processEvent=processEvents[i];const dumps=processEvent.args.dumps;if(dumps===undefined)continue;const rawEdges=dumps.allocators_graph;if(rawEdges===undefined)continue;for(let j=0;j<rawEdges.length;j++){const rawEdge=rawEdges[j];const sourceGuid=rawEdge.source;const sourceDump=allMemoryAllocatorDumpsByGuid[sourceGuid];if(sourceDump===undefined){this.model_.importWarning({type:'memory_dump_parse_error',message:'Edge for PID='+pid+' and dump ID='+dumpId+' is missing source memory allocator dump (GUID='+
sourceGuid+').'});continue;}
const targetGuid=rawEdge.target;const targetDump=allMemoryAllocatorDumpsByGuid[targetGuid];if(targetDump===undefined){this.model_.importWarning({type:'memory_dump_parse_error',message:'Edge for PID='+pid+' and dump ID='+dumpId+' is missing target memory allocator dump (GUID='+
targetGuid+').'});continue;}
const importance=rawEdge.importance;const edge=new tr.model.MemoryAllocatorDumpLink(sourceDump,targetDump,importance);switch(rawEdge.type){case'ownership':if(sourceDump.owns!==undefined){this.model_.importWarning({type:'memory_dump_parse_error',message:'Memory allocator dump '+sourceDump.fullName+' (GUID='+sourceGuid+') already owns a memory'+' allocator dump ('+
sourceDump.owns.target.fullName+').'});}else{sourceDump.owns=edge;targetDump.ownedBy.push(edge);}
break;case'retention':sourceDump.retains.push(edge);targetDump.retainedBy.push(edge);break;default:this.model_.importWarning({type:'memory_dump_parse_error',message:'Invalid edge type: '+rawEdge.type+' (PID='+pid+', dump ID='+dumpId+', source='+sourceGuid+', target='+targetGuid+', importance='+importance+').'});}}}}},toModelTimeFromUs_(ts){if(!this.toModelTime_){this.toModelTime_=this.model_.clockSyncManager.getModelTimeTransformer(this.clockDomainId_);}
return this.toModelTime_(tr.b.Unit.timestampFromUs(ts));},maybeToModelTimeFromUs_(ts){if(ts===undefined){return undefined;}
return this.toModelTimeFromUs_(ts);}};tr.importer.Importer.register(TraceEventImporter);return{TraceEventImporter,};});'use strict';tr.exportTo('tr.e.measure',function(){const AsyncSlice=tr.model.AsyncSlice;function MeasureAsyncSlice(){this.groupTitle_='Ungrouped Measure';const matched=/([^\/:]+):([^\/:]+)\/?(.*)/.exec(arguments[1]);if(matched!==null){arguments[1]=matched[2];this.groupTitle_=matched[1];}
AsyncSlice.apply(this,arguments);}
MeasureAsyncSlice.prototype={__proto__:AsyncSlice.prototype,get viewSubGroupTitle(){return this.groupTitle_;},get title(){return this.title_;},set title(title){this.title_=title;}};AsyncSlice.subTypes.register(MeasureAsyncSlice,{categoryParts:['blink.user_timing']});return{MeasureAsyncSlice,};});'use strict';tr.exportTo('tr.e.net',function(){const AsyncSlice=tr.model.AsyncSlice;function NetAsyncSlice(){AsyncSlice.apply(this,arguments);this.url_=undefined;this.byteCount_=undefined;this.isTitleComputed_=false;this.isUrlComputed_=false;}
NetAsyncSlice.prototype={__proto__:AsyncSlice.prototype,get viewSubGroupTitle(){return'NetLog';},get title(){if(this.isTitleComputed_||!this.isTopLevel){return this.title_;}
if(this.url!==undefined&&this.url.length>0){this.title_=this.url;}else if(this.args!==undefined&&this.args.source_type!==undefined){this.title_=this.args.source_type;}
this.isTitleComputed_=true;return this.title_;},set title(title){this.title_=title;},get url(){if(this.isUrlComputed_){return this.url_;}
if(this.args!==undefined&&this.args.params!==undefined&&this.args.params.url!==undefined){this.url_=this.args.params.url;}else if(this.subSlices!==undefined&&this.subSlices.length>0){for(let i=0;i<this.subSlices.length&&!this.url_;i++){if(this.subSlices[i].url!==undefined){this.url_=this.subSlices[i].url;}}}
this.isUrlComputed_=true;return this.url_;},get byteCount(){if(this.byteCount_!==undefined){return this.byteCount_;}
this.byteCount_=0;if((this.originalTitle==='URL_REQUEST_JOB_FILTERED_BYTES_READ'||this.originalTitle==='URL_REQUEST_JOB_BYTES_READ')&&this.args!==undefined&&this.args.params!==undefined&&this.args.params.byte_count!==undefined){this.byteCount_=this.args.params.byte_count;}
for(let i=0;i<this.subSlices.length;i++){this.byteCount_+=this.subSlices[i].byteCount;}
return this.byteCount_;}};AsyncSlice.subTypes.register(NetAsyncSlice,{categoryParts:['netlog','disabled-by-default-netlog']});return{NetAsyncSlice,};});'use strict';tr.exportTo('tr.model',function(){const ColorScheme=tr.b.ColorScheme;function Activity(name,category,range,args){tr.model.TimedEvent.call(this,range.min);this.title=name;this.category=category;this.colorId=ColorScheme.getColorIdForGeneralPurposeString(name);this.duration=range.duration;this.args=args;this.name=name;}
Activity.prototype={__proto__:tr.model.TimedEvent.prototype,shiftTimestampsForward(amount){this.start+=amount;},addBoundsToRange(range){range.addValue(this.start);range.addValue(this.end);}};return{Activity,};});'use strict';tr.exportTo('tr.e.importer.android',function(){const Importer=tr.importer.Importer;const ACTIVITY_STATE={NONE:'none',CREATED:'created',STARTED:'started',RESUMED:'resumed',PAUSED:'paused',STOPPED:'stopped',DESTROYED:'destroyed'};const activityMap={};function EventLogImporter(model,events){this.model_=model;this.events_=events;this.importPriority=3;}
const eventLogActivityRE=new RegExp('(\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}.\\d+)'+'\\s+(\\d+)\\s+(\\d+)\\s+([A-Z])\\s*'+'(am_\\w+)\\s*:(.*)');const amCreateRE=new RegExp('\s*\\[.*,.*,.*,(.*),.*,.*,.*,.*\\]');const amFocusedRE=new RegExp('\s*\\[\\d+,(.*)\\]');const amProcStartRE=new RegExp('\s*\\[\\d+,\\d+,\\d+,.*,activity,(.*)\\]');const amOnResumeRE=new RegExp('\s*\\[\\d+,(.*)\\]');const amOnPauseRE=new RegExp('\s*\\[\\d+,(.*)\\]');const amLaunchTimeRE=new RegExp('\s*\\[\\d+,\\d+,(.*),(\\d+),(\\d+)');const amDestroyRE=new RegExp('\s*\\[\\d+,\\d+,\\d+,(.*)\\]');EventLogImporter.canImport=function(events){if(!(typeof(events)==='string'||events instanceof String)){return false;}
if(/^<!DOCTYPE html>/.test(events))return false;return eventLogActivityRE.test(events);};EventLogImporter.prototype={__proto__:Importer.prototype,get importerName(){return'EventLogImporter';},get model(){return this.model_;},getFullActivityName(component){const componentSplit=component.split('/');if(componentSplit[1].startsWith('.')){return componentSplit[0]+componentSplit[1];}
return componentSplit[1];},getProcName(component){const componentSplit=component.split('/');return componentSplit[0];},findOrCreateActivity(activityName){if(activityName in activityMap){return activityMap[activityName];}
const activity={state:ACTIVITY_STATE.NONE,name:activityName};activityMap[activityName]=activity;return activity;},deleteActivity(activityName){delete activityMap[activityName];},handleCreateActivity(ts,activityName){const activity=this.findOrCreateActivity(activityName);activity.state=ACTIVITY_STATE.CREATED;activity.createdTs=ts;},handleFocusActivity(ts,procName,activityName){const activity=this.findOrCreateActivity(activityName);activity.lastFocusedTs=ts;},handleProcStartForActivity(ts,activityName){const activity=this.findOrCreateActivity(activityName);activity.procStartTs=ts;},handleOnResumeCalled(ts,pid,activityName){const activity=this.findOrCreateActivity(activityName);activity.state=ACTIVITY_STATE.RESUMED;activity.lastResumeTs=ts;activity.pid=pid;},handleOnPauseCalled(ts,activityName){const activity=this.findOrCreateActivity(activityName);activity.state=ACTIVITY_STATE.PAUSED;activity.lastPauseTs=ts;if(ts>this.model_.bounds.min&&ts<this.model_.bounds.max){this.addActivityToProcess(activity);}},handleLaunchTime(ts,activityName,launchTime){const activity=this.findOrCreateActivity(activityName);activity.launchTime=launchTime;},handleDestroyActivity(ts,activityName){this.deleteActivity(activityName);},addActivityToProcess(activity){if(activity.pid===undefined)return;const process=this.model_.getOrCreateProcess(activity.pid);const range=tr.b.math.Range.fromExplicitRange(Math.max(this.model_.bounds.min,activity.lastResumeTs),activity.lastPauseTs);const newActivity=new tr.model.Activity(activity.name,'Android Activity',range,{created:activity.createdTs,procstart:activity.procStartTs,lastfocus:activity.lastFocusedTs});process.activities.push(newActivity);},parseAmLine_(line){let match=eventLogActivityRE.exec(line);if(!match)return;const firstRealtimeTs=this.model_.bounds.min-
this.model_.realtime_to_monotonic_offset_ms;const year=new Date(firstRealtimeTs).getFullYear();const ts=match[1].substring(0,5)+'-'+year+' '+
match[1].substring(5,match[1].length);const monotonicTs=Date.parse(ts)+
this.model_.realtime_to_monotonic_offset_ms;const pid=match[2];const action=match[5];const data=match[6];if(action==='am_create_activity'){match=amCreateRE.exec(data);if(match&&match.length>=2){this.handleCreateActivity(monotonicTs,this.getFullActivityName(match[1]));}}else if(action==='am_focused_activity'){match=amFocusedRE.exec(data);if(match&&match.length>=2){this.handleFocusActivity(monotonicTs,this.getProcName(match[1]),this.getFullActivityName(match[1]));}}else if(action==='am_proc_start'){match=amProcStartRE.exec(data);if(match&&match.length>=2){this.handleProcStartForActivity(monotonicTs,this.getFullActivityName(match[1]));}}else if(action==='am_on_resume_called'){match=amOnResumeRE.exec(data);if(match&&match.length>=2){this.handleOnResumeCalled(monotonicTs,pid,match[1]);}}else if(action==='am_on_paused_called'){match=amOnPauseRE.exec(data);if(match&&match.length>=2){this.handleOnPauseCalled(monotonicTs,match[1]);}}else if(action==='am_activity_launch_time'){match=amLaunchTimeRE.exec(data);this.handleLaunchTime(monotonicTs,this.getFullActivityName(match[1]),match[2]);}else if(action==='am_destroy_activity'){match=amDestroyRE.exec(data);if(match&&match.length===2){this.handleDestroyActivity(monotonicTs,this.getFullActivityName(match[1]));}}},importEvents(){if(isNaN(this.model_.realtime_to_monotonic_offset_ms)){this.model_.importWarning({type:'eveng_log_clock_sync',message:'Need a trace_event_clock_sync to map realtime to import.'});return;}
this.model_.updateBounds();const lines=this.events_.split('\n');lines.forEach(this.parseAmLine_,this);for(const activityName in activityMap){const activity=activityMap[activityName];if(activity.state===ACTIVITY_STATE.RESUMED){activity.lastPauseTs=this.model_.bounds.max;this.addActivityToProcess(activity);}}}};Importer.register(EventLogImporter);return{EventLogImporter,};});'use strict';tr.exportTo('tr.e.importer.android.process_data',function(){const Importer=tr.importer.Importer;const PROCESS_DUMP_HEADER='PROCESS DUMP';function ProcessDataImporter(model,processData){this.model_=model;this.processDataLines=processData.split('\n');this.importPriority=3;}
ProcessDataImporter.canImport=function(events){if(!(typeof(events)==='string'||events instanceof String)){return false;}
if(events.split('\n')[0]===PROCESS_DUMP_HEADER){return true;}
return false;};ProcessDataImporter.prototype={__proto__:Importer.prototype,get importerName(){return'ProcessDataImporter';},get model(){return this.model_;},parseEventData(data){const allDumpedProcesses={};let parseProcesses=false;let parseThreads=false;let legacy=false;for(let i=1;i<data.length;i++){const cols=data[i].split(/\s+/);if(cols[0].startsWith('USER')){if(parseProcesses){parseProcesses=false;parseThreads=true;}else{parseThreads=false;parseProcesses=true;}
const colCount=cols.length;if(parseProcesses&&colCount===9){legacy=false;}else if(parseProcesses&&colCount===8){legacy=true;}
continue;}
if(parseProcesses){const pid=Number(cols[1]);if(allDumpedProcesses[pid]===undefined){allDumpedProcesses[pid]={};}
allDumpedProcesses[pid]={'name':cols[8],pid,'comm':cols[9]};continue;}
if(parseThreads){let pid;let tid;let name;if(legacy){pid=Number(cols[1]);if(allDumpedProcesses[pid]!==undefined){tid=pid;}else{tid=pid;pid=Number(cols[2]);}
name=cols.slice(8).join(' ');}else{pid=Number(cols[1]);tid=Number(cols[2]);name=cols.slice(3).join(' ');}
if(allDumpedProcesses[pid]===undefined)continue;if(allDumpedProcesses[pid].threads===undefined){allDumpedProcesses[pid].threads={};}
allDumpedProcesses[pid].threads[tid]={tid,name};continue;}}
return allDumpedProcesses;},importEvents(){const allDumpedProcesses=this.parseEventData(this.processDataLines);const modelProcesses=this.model_.getAllProcesses();for(let i=0;i<modelProcesses.length;i++){const modelProcess=modelProcesses[i];const pid=modelProcess.pid;const dumpedProcess=allDumpedProcesses[pid];if(dumpedProcess===undefined){continue;}
modelProcess.name=dumpedProcess.name;const processDumpThreads=dumpedProcess.threads;if(processDumpThreads!==undefined){for(const tid in modelProcess.threads){const modelThread=modelProcess.threads[tid];if(Number(pid)===Number(tid)){modelThread.name='UI thread';}else if(modelThread.name==='<...>'){if(processDumpThreads[tid]!==undefined){modelThread.name=processDumpThreads[tid].name;}}}}}}};Importer.register(ProcessDataImporter);return{ProcessDataImporter,};});'use strict';tr.exportTo('tr.e.importer.battor',function(){function BattorImporter(model,events){this.importPriority=3;this.model_=model;this.samples_=[];this.syncTimestampsById_=new Map();this.parseTrace_(events);}
const battorDataLineRE=new RegExp('^(-?\\d+\\.\\d+)\\s+(-?\\d+\\.\\d+)\\s+(-?\\d+\\.\\d+)'+'(?:\\s+<(\\S+)>)?$');const battorHeaderLineRE=/^# BattOr/;BattorImporter.canImport=function(events){if(!(typeof(events)==='string'||events instanceof String)){return false;}
return battorHeaderLineRE.test(events);};BattorImporter.prototype={__proto__:tr.importer.Importer.prototype,get importerName(){return'BattorImporter';},get model(){return this.model_;},importClockSyncMarkers(){for(const[syncId,ts]of this.syncTimestampsById_){this.model_.clockSyncManager.addClockSyncMarker(tr.model.ClockDomainId.BATTOR,syncId,ts);}},importEvents(){if(this.model_.device.powerSeries){this.model_.importWarning({type:'import_error',message:'Power counter exists, can not import BattOr power trace.'});return;}
const modelTimeTransformer=this.model_.clockSyncManager.getModelTimeTransformer(tr.model.ClockDomainId.BATTOR);const powerSeries=this.model_.device.powerSeries=new tr.model.PowerSeries(this.model_.device);for(let i=0;i<this.samples_.length;i++){const sample=this.samples_[i];powerSeries.addPowerSample(modelTimeTransformer(sample.ts),sample.powerInW);}},parseTrace_(trace){const lines=trace.split('\n');for(let line of lines){line=line.trim();if(line.length===0)continue;if(line.startsWith('#'))continue;const groups=battorDataLineRE.exec(line);if(!groups){this.model_.importWarning({type:'parse_error',message:'Unrecognized line in BattOr trace: '+line});continue;}
const ts=parseFloat(groups[1]);const voltageInV=tr.b.convertUnit(parseFloat(groups[2]),tr.b.UnitPrefixScale.METRIC.MILLI,tr.b.UnitPrefixScale.METRIC.NONE);const currentInA=tr.b.convertUnit(parseFloat(groups[3]),tr.b.UnitPrefixScale.METRIC.MILLI,tr.b.UnitPrefixScale.METRIC.NONE);const syncId=groups[4];if(syncId){this.syncTimestampsById_.set(syncId,ts);}
if(voltageInV<0||currentInA<0){this.model_.importWarning({type:'parse_error',message:'The following line in the BattOr trace has a negative '+'voltage or current, neither of which are allowed: '+line+'. A common cause of this is that the device is charging '+'while the trace is being recorded.'});continue;}
this.samples_.push(new Sample(ts,voltageInV,currentInA));}}};function Sample(ts,voltageInV,currentInA){this.ts=ts;this.voltageInV=voltageInV;this.currentInA=currentInA;}
Sample.prototype={get powerInW(){return this.voltageInV*this.currentInA;}};tr.importer.Importer.register(BattorImporter);return{BattorImporter,};});'use strict';tr.exportTo('tr.e.importer.ddms',function(){const kPid=0;const kCategory='java';const kMethodLutEndMarker='\n*end\n';const kThreadsStart='\n*threads\n';const kMethodsStart='\n*methods\n';const kTraceMethodEnter=0x00;const kTraceMethodExit=0x01;const kTraceUnroll=0x02;const kTraceMethodActionMask=0x03;const kTraceHeaderLength=32;const kTraceMagicValue=0x574f4c53;const kTraceVersionSingleClock=2;const kTraceVersionDualClock=3;const kTraceRecordSizeSingleClock=10;const kTraceRecordSizeDualClock=14;function Reader(stringPayload){this.position_=0;this.data_=JSZip.utils.transformTo('uint8array',stringPayload);}
Reader.prototype={__proto__:Object.prototype,uint8(){const result=this.data_[this.position_];this.position_+=1;return result;},uint16(){let result=0;result+=this.uint8();result+=this.uint8()<<8;return result;},uint32(){let result=0;result+=this.uint8();result+=this.uint8()<<8;result+=this.uint8()<<16;result+=this.uint8()<<24;return result;},uint64(){const low=this.uint32();const high=this.uint32();const lowStr=('0000000'+low.toString(16)).substr(-8);const highStr=('0000000'+high.toString(16)).substr(-8);const result=highStr+lowStr;return result;},seekTo(position){this.position_=position;},hasMore(){return this.position_<this.data_.length;}};function DdmsImporter(model,data){this.importPriority=3;this.model_=model;this.data_=data;}
DdmsImporter.canImport=function(data){if(typeof(data)==='string'||data instanceof String){const header=data.slice(0,1000);return header.startsWith('*version\n')&&header.indexOf('\nvm=')>=0&&header.indexOf(kThreadsStart)>=0;}
return false;};DdmsImporter.prototype={__proto__:tr.importer.Importer.prototype,get importerName(){return'DdmsImporter';},get model(){return this.model_;},importEvents(){const divider=this.data_.indexOf(kMethodLutEndMarker)+
kMethodLutEndMarker.length;this.metadata_=this.data_.slice(0,divider);this.methods_={};this.parseThreads();this.parseMethods();const traceReader=new Reader(this.data_.slice(divider));const magic=traceReader.uint32();if(magic!==kTraceMagicValue){throw Error('Failed to match magic value');}
this.version_=traceReader.uint16();if(this.version_!==kTraceVersionDualClock){throw Error('Unknown version');}
const dataOffest=traceReader.uint16();const startDateTime=traceReader.uint64();const recordSize=traceReader.uint16();traceReader.seekTo(dataOffest);while(traceReader.hasMore()){this.parseTraceEntry(traceReader);}},parseTraceEntry(reader){const tid=reader.uint16();const methodPacked=reader.uint32();const cpuSinceStart=reader.uint32();const wallClockSinceStart=reader.uint32();let method=methodPacked&~kTraceMethodActionMask;const action=methodPacked&kTraceMethodActionMask;const thread=this.getTid(tid);method=this.getMethodName(method);if(action===kTraceMethodEnter){thread.sliceGroup.beginSlice(kCategory,method,wallClockSinceStart,undefined,cpuSinceStart);}else if(thread.sliceGroup.openSliceCount){thread.sliceGroup.endSlice(wallClockSinceStart,cpuSinceStart);}},parseThreads(){let threads=this.metadata_.slice(this.metadata_.indexOf(kThreadsStart)+
kThreadsStart.length);threads=threads.slice(0,threads.indexOf('\n*'));threads=threads.split('\n');threads.forEach(this.parseThread.bind(this));},parseThread(threadLine){const tid=threadLine.slice(0,threadLine.indexOf('\t'));const thread=this.getTid(parseInt(tid));thread.name=threadLine.slice(threadLine.indexOf('\t')+1);},getTid(tid){return this.model_.getOrCreateProcess(kPid).getOrCreateThread(tid);},parseMethods(){let methods=this.metadata_.slice(this.metadata_.indexOf(kMethodsStart)+
kMethodsStart.length);methods=methods.slice(0,methods.indexOf('\n*'));methods=methods.split('\n');methods.forEach(this.parseMethod.bind(this));},parseMethod(methodLine){const data=methodLine.split('\t');const methodId=parseInt(data[0]);const methodName=data[1]+'.'+data[2]+data[3];this.addMethod(methodId,methodName);},addMethod(methodId,methodName){this.methods_[methodId]=methodName;},getMethodName(methodId){return this.methods_[methodId];}};tr.importer.Importer.register(DdmsImporter);return{DdmsImporter,};});'use strict';tr.exportTo('tr.e.importer.linux_perf',function(){function Parser(importer){this.importer=importer;this.model=importer.model;}
Parser.prototype={__proto__:Object.prototype};const options=new tr.b.ExtensionRegistryOptions(tr.b.BASIC_REGISTRY_MODE);options.mandatoryBaseClass=Parser;tr.b.decorateExtensionRegistry(Parser,options);return{Parser,};});'use strict';tr.exportTo('tr.e.importer.linux_perf',function(){const ColorScheme=tr.b.ColorScheme;const Parser=tr.e.importer.linux_perf.Parser;function AndroidParser(importer){Parser.call(this,importer);importer.registerEventHandler('tracing_mark_write:android',AndroidParser.prototype.traceMarkWriteAndroidEvent.bind(this));importer.registerEventHandler('0:android',AndroidParser.prototype.traceMarkWriteAndroidEvent.bind(this));this.model_=importer.model_;this.ppids_={};}
function parseArgs(argsString){const args={};if(argsString){const argsArray=argsString.split(';');for(let i=0;i<argsArray.length;++i){const parts=argsArray[i].split('=');if(parts[0]){args[parts.shift()]=parts.join('=');}}}
return args;}
AndroidParser.prototype={__proto__:Parser.prototype,openAsyncSlice(thread,category,name,cookie,ts,args){const asyncSliceConstructor=tr.model.AsyncSlice.subTypes.getConstructor(category,name);const slice=new asyncSliceConstructor(category,name,ColorScheme.getColorIdForGeneralPurposeString(name),ts,args);const key=category+':'+name+':'+cookie;slice.id=cookie;slice.startThread=thread;if(!this.openAsyncSlices){this.openAsyncSlices={};}
this.openAsyncSlices[key]=slice;},closeAsyncSlice(thread,category,name,cookie,ts,args){if(!this.openAsyncSlices){return;}
const key=category+':'+name+':'+cookie;const slice=this.openAsyncSlices[key];if(!slice){return;}
for(const arg in args){if(slice.args[arg]!==undefined){this.model_.importWarning({type:'parse_error',message:'Both the S and F events of '+slice.title+' provided values for argument '+arg+'.'+' The value of the F event will be used.'});}
slice.args[arg]=args[arg];}
slice.endThread=thread;slice.duration=ts-slice.start;slice.startThread.asyncSliceGroup.push(slice);delete this.openAsyncSlices[key];},traceMarkWriteAndroidEvent(eventName,cpuNumber,pid,ts,eventBase){const eventData=eventBase.details.split('|');switch(eventData[0]){case'B':{const ppid=parseInt(eventData[1]);const title=eventData[2];const args=parseArgs(eventData[3]);let category=eventData[4];if(category===undefined)category='android';const thread=this.model_.getOrCreateProcess(ppid).getOrCreateThread(pid);thread.name=eventBase.threadName;if(!thread.sliceGroup.isTimestampValidForBeginOrEnd(ts)){this.model_.importWarning({type:'parse_error',message:'Timestamps are moving backward.'});return false;}
this.ppids_[pid]=ppid;thread.sliceGroup.beginSlice(category,title,ts,args);break;}
case'E':{const ppid=this.ppids_[pid];if(ppid===undefined){break;}
const thread=this.model_.getOrCreateProcess(ppid).getOrCreateThread(pid);if(!thread.sliceGroup.openSliceCount){break;}
const slice=thread.sliceGroup.endSlice(ts);const args=parseArgs(eventData[3]);for(const arg in args){if(slice.args[arg]!==undefined){this.model_.importWarning({type:'parse_error',message:'Both the B and E events of '+slice.title+' provided values for argument '+arg+'.'+' The value of the E event will be used.'});}
slice.args[arg]=args[arg];}
break;}
case'C':{const ppid=parseInt(eventData[1]);const name=eventData[2];const value=parseInt(eventData[3]);let category=eventData[4];if(category===undefined)category='android';const ctr=this.model_.getOrCreateProcess(ppid).getOrCreateCounter(category,name);if(ctr.numSeries===0){ctr.addSeries(new tr.model.CounterSeries(value,ColorScheme.getColorIdForGeneralPurposeString(ctr.name+'.'+'value')));}
ctr.series.forEach(function(series){series.addCounterSample(ts,value);});break;}
case'S':{const ppid=parseInt(eventData[1]);const name=eventData[2];const cookie=parseInt(eventData[3]);const args=parseArgs(eventData[4]);let category=eventData[5];if(category===undefined)category='android';const thread=this.model_.getOrCreateProcess(ppid).getOrCreateThread(pid);thread.name=eventBase.threadName;this.ppids_[pid]=ppid;this.openAsyncSlice(thread,category,name,cookie,ts,args);break;}
case'F':{const ppid=parseInt(eventData[1]);const name=eventData[2];const cookie=parseInt(eventData[3]);const args=parseArgs(eventData[4]);let category=eventData[5];if(category===undefined)category='android';const thread=this.model_.getOrCreateProcess(ppid).getOrCreateThread(pid);thread.name=eventBase.threadName;this.ppids_[pid]=ppid;this.closeAsyncSlice(thread,category,name,cookie,ts,args);break;}
default:return false;}
return true;}};Parser.register(AndroidParser);return{AndroidParser,};});'use strict';tr.exportTo('tr.e.importer.linux_perf',function(){const ColorScheme=tr.b.ColorScheme;const Parser=tr.e.importer.linux_perf.Parser;const binderTransRE=new RegExp('transaction=(\\d+) dest_node=(\\d+) '+'dest_proc=(\\d+) dest_thread=(\\d+) '+'reply=(\\d+) flags=(0x[0-9a-fA-F]+) '+'code=(0x[0-9a-fA-F]+)');const binderTransReceivedRE=/transaction=(\d+)/;function isBinderThread(name){return(name.indexOf('Binder')>-1);}
const TF_ONE_WAY=0x01;const TF_ROOT_OBJECT=0x04;const TF_STATUS_CODE=0x08;const TF_ACCEPT_FDS=0x10;const NO_FLAGS=0;function binderFlagsToHuman(num){const flag=parseInt(num,16);let str='';if(flag&TF_ONE_WAY){str+='this is a one-way call: async, no return; ';}
if(flag&TF_ROOT_OBJECT){str+='contents are the components root object; ';}
if(flag&TF_STATUS_CODE){str+='contents are a 32-bit status code; ';}
if(flag&TF_ACCEPT_FDS){str+='allow replies with file descriptors; ';}
if(flag===NO_FLAGS){str+='No Flags Set';}
return str;}
function isReplyToOrigin(calling,called){return(called.dest_proc===calling.calling_pid||called.dest_thread===calling.calling_pid);}
function binderCodeToHuman(code){return'Java Layer Dependent';}
function doInternalSlice(trans,slice,ts){if(slice.subSlices.length!==0){slice.subSlices[0].start=ts;return slice.subSlices[0];}
const kthread=trans.calling_kthread.thread;const internalSlice=kthread.sliceGroup.pushCompleteSlice('binder',slice.title,ts,.001,0,0,slice.args);internalSlice.title=slice.title;internalSlice.id=slice.id;internalSlice.colorId=slice.colorId;slice.subSlices.push(internalSlice);return internalSlice;}
function generateBinderArgsForSlice(trans,cThreadName){return{'Transaction Id':trans.transaction_key,'Destination Node':trans.dest_node,'Destination Process':trans.dest_proc,'Destination Thread':trans.dest_thread,'Destination Name':cThreadName,'Reply transaction?':trans.is_reply_transaction,'Flags':trans.flags+' '+
binderFlagsToHuman(trans.flags),'Code':trans.code+' '+
binderCodeToHuman(trans.code),'Calling PID':trans.calling_pid,'Calling tgid':trans.calling_kthread.thread.parent.pid};}
function BinderTransaction(events,callingPid,callingTs,callingKthread){this.transaction_key=parseInt(events[1]);this.dest_node=parseInt(events[2]);this.dest_proc=parseInt(events[3]);this.dest_thread=parseInt(events[4]);this.is_reply_transaction=parseInt(events[5])===1?true:false;this.expect_reply=((this.is_reply_transaction===false)&&(parseInt(events[6],16)&TF_ONE_WAY)===0);this.flags=events[6];this.code=events[7];this.calling_pid=callingPid;this.calling_ts=callingTs;this.calling_kthread=callingKthread;}
function BinderParser(importer){Parser.call(this,importer);importer.registerEventHandler('binder_locked',BinderParser.prototype.binderLocked.bind(this));importer.registerEventHandler('binder_unlock',BinderParser.prototype.binderUnlock.bind(this));importer.registerEventHandler('binder_lock',BinderParser.prototype.binderLock.bind(this));importer.registerEventHandler('binder_transaction',BinderParser.prototype.binderTransaction.bind(this));importer.registerEventHandler('binder_transaction_received',BinderParser.prototype.binderTransactionReceived.bind(this));this.model_=importer.model;this.kthreadlookup={};this.importer_=importer;this.transWaitingRecv={};this.syncTransWaitingCompletion={};this.recursiveSyncTransWaitingCompletion_ByPID={};this.receivedTransWaitingConversion={};}
BinderParser.prototype={__proto__:Parser.prototype,binderLock(eventName,cpuNumber,pid,ts,eventBase){const tgid=parseInt(eventBase.tgid);if(isNaN(tgid))return false;this.doNameMappings(pid,tgid,eventName.threadName);const kthread=this.importer_.getOrCreateBinderKernelThread(eventBase.threadName,tgid,pid);kthread.binderAttemptLockTS=ts;kthread.binderOpenTsA=ts;return true;},binderLocked(eventName,cpuNumber,pid,ts,eventBase){const tgid=parseInt(eventBase.tgid);if(isNaN(tgid))return false;const binderThread=isBinderThread(eventBase.threadName);const name=eventBase.threadName;const kthread=this.importer_.getOrCreateBinderKernelThread(eventBase.threadName,tgid,pid);this.doNameMappings(pid,tgid,name);const rthread=kthread.thread;kthread.binderLockAquiredTS=ts;if(kthread.binderAttemptLockTS===undefined)return false;const args=this.generateArgsForSlice(tgid,pid,name,kthread);rthread.sliceGroup.pushCompleteSlice('binder','binder lock waiting',kthread.binderAttemptLockTS,ts-kthread.binderAttemptLockTS,0,0,args);kthread.binderAttemptLockTS=undefined;return true;},binderUnlock(eventName,cpuNumber,pid,ts,eventBase){const tgid=parseInt(eventBase.tgid);if(isNaN(tgid))return false;const kthread=this.importer_.getOrCreateBinderKernelThread(eventBase.threadName,tgid,pid);if(kthread.binderLockAquiredTS===undefined)return false;const args=this.generateArgsForSlice(tgid,pid,eventBase.threadName,kthread);kthread.thread.sliceGroup.pushCompleteSlice('binder','binder lock held',kthread.binderLockAquiredTS,ts-kthread.binderLockAquiredTS,0,0,args);kthread.binderLockAquiredTS=undefined;return true;},binderTransaction(eventName,cpuNumber,pid,ts,eventBase){const event=binderTransRE.exec(eventBase.details);if(event===undefined)return false;const tgid=parseInt(eventBase.tgid);if(isNaN(tgid))return false;this.doNameMappings(pid,tgid,eventBase.threadName);const kthread=this.importer_.getOrCreateBinderKernelThread(eventBase.threadName,tgid,pid);const trans=new BinderTransaction(event,pid,ts,kthread);const args=generateBinderArgsForSlice(trans,eventBase.threadName);const priorReceive=this.getPriorReceiveOnPID(pid);if(priorReceive!==false){return this.modelPriorReceive(priorReceive,ts,pid,tgid,kthread,trans,args,event);}
const recursiveTrans=this.getRecursiveTransactionNeedingCompletion(pid);if(recursiveTrans!==false){return this.modelRecursiveTransactions(recursiveTrans,ts,pid,kthread,trans,args);}
const slice=kthread.thread.sliceGroup.pushCompleteSlice('binder','',ts,.03,0,0,args);slice.colorId=ColorScheme.getColorIdForGeneralPurposeString(ts.toString());trans.slice=slice;if(trans.expect_reply){slice.title='binder transaction';}else{slice.title='binder transaction async';}
this.addTransactionWaitingForRecv(trans.transaction_key,trans);return true;},binderTransactionReceived(eventName,cpuNumber,pid,ts,eventBase){const event=binderTransReceivedRE.exec(eventBase.details);if(event===undefined)return false;const tgid=parseInt(eventBase.tgid);if(isNaN(tgid))return false;const transactionkey=parseInt(event[1]);const kthread=this.importer_.getOrCreateBinderKernelThread(eventBase.threadName,tgid,pid);const syncComplete=this.getSyncTransNeedsCompletion(transactionkey);if(syncComplete!==false){const syncTrans=syncComplete[0];const syncSlice=syncTrans.slice;const responseTrans=syncComplete[1];const responseSlice=responseTrans.slice;syncSlice.duration=ts-syncSlice.start;const syncInternal=doInternalSlice(syncTrans,syncSlice,ts);const responseTs=responseSlice.start+responseSlice.duration;const responseInternal=doInternalSlice(responseTrans,responseSlice,responseTs);if(responseSlice.outFlowEvents.length===0||syncSlice.inFlowEvents.length===0){const flow=this.generateFlow(responseInternal,syncInternal,responseTrans,syncTrans);syncSlice.inFlowEvents.push(flow);responseSlice.outFlowEvents.push(flow);this.model_.flowEvents.push(flow);}
for(let i=1;i<syncSlice.inFlowEvents.length;i++){syncSlice.inFlowEvents[i].duration=ts-syncSlice.inFlowEvents[i].start;}
return true;}
const trForRecv=this.getTransactionWaitingForRecv(transactionkey);if(trForRecv!==false){if(!trForRecv.expect_reply){const args=generateBinderArgsForSlice(trForRecv,eventBase.threadName);const slice=kthread.thread.sliceGroup.pushCompleteSlice('binder','binder Async recv',ts,.03,0,0,args);const fakeEvent=[0,0,0,0,0,0,0];const fakeTrans=new BinderTransaction(fakeEvent,pid,ts,kthread);const flow=this.generateFlow(trForRecv.slice,slice,trForRecv,fakeTrans);this.model_.flowEvents.push(flow);trForRecv.slice.title='binder transaction async';trForRecv.slice.duration=.03;return true;}
trForRecv.slice.title='binder transaction';this.setCurrentReceiveOnPID(pid,[ts,trForRecv]);return true;}
return false;},modelRecursiveTransactions(recursiveTrans,ts,pid,kthread,trans,args){const recursiveSlice=recursiveTrans[1].slice;const origSlice=recursiveTrans[0].slice;recursiveSlice.duration=ts-recursiveSlice.start;trans.slice=recursiveSlice;if(trans.is_reply_transaction){origSlice.duration=ts-origSlice.start;this.addSyncTransNeedingCompletion(trans.transaction_key,recursiveTrans);if(isReplyToOrigin(recursiveTrans[0],trans)){this.removeRecursiveTransaction(pid);}}else{const slice=kthread.thread.sliceGroup.pushCompleteSlice('binder','',ts,.03,0,0,args);trans.slice=slice;this.addTransactionWaitingForRecv(trans.transaction_key,trans);}
return true;},modelPriorReceive(priorReceive,ts,pid,tgid,kthread,trans,args,event){const calleeSlice=priorReceive[1].slice;const calleeTrans=priorReceive[1];const recvTs=priorReceive[0];let slice=kthread.thread.sliceGroup.pushCompleteSlice('binder','',recvTs,ts-recvTs,0,0,args);const flow=this.generateFlow(calleeSlice,slice,calleeTrans,trans);this.model_.flowEvents.push(flow);trans.slice=slice;if(trans.is_reply_transaction){slice.title='binder reply';this.addSyncTransNeedingCompletion(trans.transaction_key,[calleeTrans,trans]);}else{slice.title='binder reply';const trans1=new BinderTransaction(event,pid,ts,kthread);slice=kthread.thread.sliceGroup.pushCompleteSlice('binder','binder transaction',recvTs,(ts-recvTs),0,0,args);if(!trans.expect_reply){slice.title='binder transaction async';slice.duration=.03;}else{}
trans1.slice=slice;this.addRecursiveSyncTransNeedingCompletion(pid,[calleeTrans,trans]);this.addTransactionWaitingForRecv(trans.transaction_key,trans1);}
return true;},getRecursiveTransactionNeedingCompletion(pid){if(this.recursiveSyncTransWaitingCompletion_ByPID[pid]===undefined){return false;}
const len=this.recursiveSyncTransWaitingCompletion_ByPID[pid].length;if(len===0)return false;return this.recursiveSyncTransWaitingCompletion_ByPID[pid][len-1];},addRecursiveSyncTransNeedingCompletion(pid,tuple){if(this.recursiveSyncTransWaitingCompletion_ByPID[pid]===undefined){this.recursiveSyncTransWaitingCompletion_ByPID[pid]=[];}
this.recursiveSyncTransWaitingCompletion_ByPID[pid].push(tuple);},removeRecursiveTransaction(pid){const len=this.recursiveSyncTransWaitingCompletion_ByPID[pid].length;if(len===0){delete this.recursiveSyncTransWaitingCompletion_ByPID[pid];return;}
this.recursiveSyncTransWaitingCompletion_ByPID[pid].splice(len-1,1);},setCurrentReceiveOnPID(pid,tuple){if(this.receivedTransWaitingConversion[pid]===undefined){this.receivedTransWaitingConversion[pid]=[];}
this.receivedTransWaitingConversion[pid].push(tuple);},getPriorReceiveOnPID(pid){if(this.receivedTransWaitingConversion[pid]===undefined){return false;}
const len=this.receivedTransWaitingConversion[pid].length;if(len===0)return false;return this.receivedTransWaitingConversion[pid].splice(len-1,1)[0];},addSyncTransNeedingCompletion(transactionkey,tuple){const dict=this.syncTransWaitingCompletion;dict[transactionkey]=tuple;},getSyncTransNeedsCompletion(transactionkey){const ret=this.syncTransWaitingCompletion[transactionkey];if(ret===undefined)return false;delete this.syncTransWaitingCompletion[transactionkey];return ret;},getTransactionWaitingForRecv(transactionkey){const ret=this.transWaitingRecv[transactionkey];if(ret===undefined)return false;delete this.transWaitingRecv[transactionkey];return ret;},addTransactionWaitingForRecv(transactionkey,transaction){this.transWaitingRecv[transactionkey]=transaction;},generateFlow(from,to,fromTrans,toTrans){const title='Transaction from : '+
this.pid2name(fromTrans.calling_pid)+' From PID: '+fromTrans.calling_pid+' to pid: '+
toTrans.calling_pid+' Thread Name: '+this.pid2name(toTrans.calling_pid);const ts=from.start;const flow=new tr.model.FlowEvent('binder','binder',title,1,ts,[]);flow.startSlice=from;flow.endSlice=to;flow.start=from.start;flow.duration=to.start-ts;from.outFlowEvents.push(flow);to.inFlowEvents.push(flow);return flow;},generateArgsForSlice(tgid,pid,name,kthread){return{'Thread Name':name,pid,'gid':tgid};},pid2name(pid){return this.kthreadlookup[pid];},doNameMappings(pid,tgid,name){this.registerPidName(pid,name);this.registerPidName(tgid,name);},registerPidName(pid,name){if(this.pid2name(pid)===undefined){this.kthreadlookup[pid]=name;}}};Parser.register(BinderParser);return{BinderParser,};});'use strict';tr.exportTo('tr.e.importer.linux_perf',function(){const ColorScheme=tr.b.ColorScheme;const Parser=tr.e.importer.linux_perf.Parser;function BusParser(importer){Parser.call(this,importer);importer.registerEventHandler('memory_bus_usage',BusParser.prototype.traceMarkWriteBusEvent.bind(this));this.model_=importer.model_;this.ppids_={};}
BusParser.prototype={__proto__:Parser.prototype,traceMarkWriteBusEvent(eventName,cpuNumber,pid,ts,eventBase,threadName){const re=new RegExp('bus=(\\S+) rw_bytes=(\\d+) r_bytes=(\\d+) '+'w_bytes=(\\d+) cycles=(\\d+) ns=(\\d+)');const event=re.exec(eventBase.details);const name=event[1];const rwBytes=parseInt(event[2]);const rBytes=parseInt(event[3]);const wBytes=parseInt(event[4]);const cycles=parseInt(event[5]);const ns=parseInt(event[6]);const sec=tr.b.convertUnit(ns,tr.b.UnitPrefixScale.METRIC.NANO,tr.b.UnitPrefixScale.METRIC.NONE);const readBandwidthInBps=rBytes/sec;const readBandwidthInMiBps=tr.b.convertUnit(readBandwidthInBps,tr.b.UnitPrefixScale.BINARY.NONE,tr.b.UnitPrefixScale.BINARY.MEBI);const writeBandwidthInBps=wBytes/sec;const writeBandwidthInMiBps=tr.b.convertUnit(writeBandwidthInBps,tr.b.UnitPrefixScale.BINARY.NONE,tr.b.UnitPrefixScale.BINARY.MEBI);let ctr=this.model_.kernel.getOrCreateCounter(null,'bus '+name+' read');if(ctr.numSeries===0){ctr.addSeries(new tr.model.CounterSeries('value',ColorScheme.getColorIdForGeneralPurposeString(ctr.name+'.'+'value')));}
ctr.series.forEach(function(series){series.addCounterSample(ts,readBandwidthInMiBps);});ctr=this.model_.kernel.getOrCreateCounter(null,'bus '+name+' write');if(ctr.numSeries===0){ctr.addSeries(new tr.model.CounterSeries('value',ColorScheme.getColorIdForGeneralPurposeString(ctr.name+'.'+'value')));}
ctr.series.forEach(function(series){series.addCounterSample(ts,writeBandwidthInMiBps);});return true;}};Parser.register(BusParser);return{BusParser,};});'use strict';tr.exportTo('tr.e.importer.linux_perf',function(){const ColorScheme=tr.b.ColorScheme;const Parser=tr.e.importer.linux_perf.Parser;function ClockParser(importer){Parser.call(this,importer);importer.registerEventHandler('clock_set_rate',ClockParser.prototype.traceMarkWriteClockEvent.bind(this));this.model_=importer.model_;this.ppids_={};}
ClockParser.prototype={__proto__:Parser.prototype,traceMarkWriteClockEvent(eventName,cpuNumber,pid,ts,eventBase,threadName){const event=/(\S+) state=(\d+) cpu_id=(\d+)/.exec(eventBase.details);const name=event[1];const rate=parseInt(event[2]);const ctr=this.model_.kernel.getOrCreateCounter(null,name);if(ctr.numSeries===0){ctr.addSeries(new tr.model.CounterSeries('value',ColorScheme.getColorIdForGeneralPurposeString(ctr.name+'.'+'value')));}
ctr.series.forEach(function(series){series.addCounterSample(ts,rate);});return true;}};Parser.register(ClockParser);return{ClockParser,};});'use strict';tr.exportTo('tr.e.importer.linux_perf',function(){const ColorScheme=tr.b.ColorScheme;const Parser=tr.e.importer.linux_perf.Parser;function CpufreqParser(importer){Parser.call(this,importer);importer.registerEventHandler('cpufreq_interactive_up',CpufreqParser.prototype.cpufreqUpDownEvent.bind(this));importer.registerEventHandler('cpufreq_interactive_down',CpufreqParser.prototype.cpufreqUpDownEvent.bind(this));importer.registerEventHandler('cpufreq_interactive_already',CpufreqParser.prototype.cpufreqTargetEvent.bind(this));importer.registerEventHandler('cpufreq_interactive_notyet',CpufreqParser.prototype.cpufreqTargetEvent.bind(this));importer.registerEventHandler('cpufreq_interactive_setspeed',CpufreqParser.prototype.cpufreqTargetEvent.bind(this));importer.registerEventHandler('cpufreq_interactive_target',CpufreqParser.prototype.cpufreqTargetEvent.bind(this));importer.registerEventHandler('cpufreq_interactive_boost',CpufreqParser.prototype.cpufreqBoostUnboostEvent.bind(this));importer.registerEventHandler('cpufreq_interactive_unboost',CpufreqParser.prototype.cpufreqBoostUnboostEvent.bind(this));}
function splitData(input){const data={};const args=input.split(/\s+/);const len=args.length;for(let i=0;i<len;i++){const item=args[i].split('=');data[item[0]]=parseInt(item[1]);}
return data;}
CpufreqParser.prototype={__proto__:Parser.prototype,cpufreqSlice(ts,eventName,cpu,args){const kthread=this.importer.getOrCreatePseudoThread('cpufreq');kthread.openSlice=eventName;const slice=new tr.model.ThreadSlice('',kthread.openSlice,ColorScheme.getColorIdForGeneralPurposeString(kthread.openSlice),ts,args,0);kthread.thread.sliceGroup.pushSlice(slice);},cpufreqBoostSlice(ts,eventName,args){const kthread=this.importer.getOrCreatePseudoThread('cpufreq_boost');kthread.openSlice=eventName;const slice=new tr.model.ThreadSlice('',kthread.openSlice,ColorScheme.getColorIdForGeneralPurposeString(kthread.openSlice),ts,args,0);kthread.thread.sliceGroup.pushSlice(slice);},cpufreqUpDownEvent(eventName,cpuNumber,pid,ts,eventBase){const data=splitData(eventBase.details);this.cpufreqSlice(ts,eventName,data.cpu,data);return true;},cpufreqTargetEvent(eventName,cpuNumber,pid,ts,eventBase){const data=splitData(eventBase.details);this.cpufreqSlice(ts,eventName,data.cpu,data);return true;},cpufreqBoostUnboostEvent(eventName,cpuNumber,pid,ts,eventBase){this.cpufreqBoostSlice(ts,eventName,{type:eventBase.details});return true;}};Parser.register(CpufreqParser);return{CpufreqParser,};});'use strict';tr.exportTo('tr.e.importer.linux_perf',function(){const ColorScheme=tr.b.ColorScheme;const Parser=tr.e.importer.linux_perf.Parser;function DiskParser(importer){Parser.call(this,importer);importer.registerEventHandler('f2fs_write_begin',DiskParser.prototype.f2fsWriteBeginEvent.bind(this));importer.registerEventHandler('f2fs_write_end',DiskParser.prototype.f2fsWriteEndEvent.bind(this));importer.registerEventHandler('f2fs_sync_file_enter',DiskParser.prototype.f2fsSyncFileEnterEvent.bind(this));importer.registerEventHandler('f2fs_sync_file_exit',DiskParser.prototype.f2fsSyncFileExitEvent.bind(this));importer.registerEventHandler('ext4_sync_file_enter',DiskParser.prototype.ext4SyncFileEnterEvent.bind(this));importer.registerEventHandler('ext4_sync_file_exit',DiskParser.prototype.ext4SyncFileExitEvent.bind(this));importer.registerEventHandler('ext4_da_write_begin',DiskParser.prototype.ext4WriteBeginEvent.bind(this));importer.registerEventHandler('ext4_da_write_end',DiskParser.prototype.ext4WriteEndEvent.bind(this));importer.registerEventHandler('block_rq_issue',DiskParser.prototype.blockRqIssueEvent.bind(this));importer.registerEventHandler('block_rq_complete',DiskParser.prototype.blockRqCompleteEvent.bind(this));}
DiskParser.prototype={__proto__:Parser.prototype,openAsyncSlice(ts,category,threadName,pid,key,name){const kthread=this.importer.getOrCreateKernelThread(category+':'+threadName,pid);const asyncSliceConstructor=tr.model.AsyncSlice.subTypes.getConstructor(category,name);const slice=new asyncSliceConstructor(category,name,ColorScheme.getColorIdForGeneralPurposeString(name),ts);slice.startThread=kthread.thread;if(!kthread.openAsyncSlices){kthread.openAsyncSlices={};}
kthread.openAsyncSlices[key]=slice;},closeAsyncSlice(ts,category,threadName,pid,key,args){const kthread=this.importer.getOrCreateKernelThread(category+':'+threadName,pid);if(kthread.openAsyncSlices){const slice=kthread.openAsyncSlices[key];if(slice){slice.duration=ts-slice.start;slice.args=args;slice.endThread=kthread.thread;slice.subSlices=[new tr.model.AsyncSlice(category,slice.title,slice.colorId,slice.start,slice.args,slice.duration)];kthread.thread.asyncSliceGroup.push(slice);delete kthread.openAsyncSlices[key];}}},f2fsWriteBeginEvent(eventName,cpuNumber,pid,ts,eventBase){const event=/dev = \((\d+,\d+)\), ino = (\d+), pos = (\d+), len = (\d+), flags = (\d+)/.exec(eventBase.details);if(!event)return false;const device=event[1];const inode=parseInt(event[2]);const pos=parseInt(event[3]);const len=parseInt(event[4]);const key=device+'-'+inode+'-'+pos+'-'+len;this.openAsyncSlice(ts,'f2fs',eventBase.threadName,eventBase.pid,key,'f2fs_write');return true;},f2fsWriteEndEvent(eventName,cpuNumber,pid,ts,eventBase){const event=/dev = \((\d+,\d+)\), ino = (\d+), pos = (\d+), len = (\d+), copied = (\d+)/.exec(eventBase.details);if(!event)return false;const device=event[1];const inode=parseInt(event[2]);const pos=parseInt(event[3]);const len=parseInt(event[4]);const error=parseInt(event[5])!==len;const key=device+'-'+inode+'-'+pos+'-'+len;this.closeAsyncSlice(ts,'f2fs',eventBase.threadName,eventBase.pid,key,{device,inode,error});return true;},ext4WriteBeginEvent(eventName,cpuNumber,pid,ts,eventBase){const event=/dev (\d+,\d+) ino (\d+) pos (\d+) len (\d+) flags (\d+)/.exec(eventBase.details);if(!event)return false;const device=event[1];const inode=parseInt(event[2]);const pos=parseInt(event[3]);const len=parseInt(event[4]);const key=device+'-'+inode+'-'+pos+'-'+len;this.openAsyncSlice(ts,'ext4',eventBase.threadName,eventBase.pid,key,'ext4_write');return true;},ext4WriteEndEvent(eventName,cpuNumber,pid,ts,eventBase){const event=/dev (\d+,\d+) ino (\d+) pos (\d+) len (\d+) copied (\d+)/.exec(eventBase.details);if(!event)return false;const device=event[1];const inode=parseInt(event[2]);const pos=parseInt(event[3]);const len=parseInt(event[4]);const error=parseInt(event[5])!==len;const key=device+'-'+inode+'-'+pos+'-'+len;this.closeAsyncSlice(ts,'ext4',eventBase.threadName,eventBase.pid,key,{device,inode,error});return true;},f2fsSyncFileEnterEvent(eventName,cpuNumber,pid,ts,eventBase){const event=new RegExp('dev = \\((\\d+,\\d+)\\), ino = (\\d+), pino = (\\d+), i_mode = (\\S+), '+'i_size = (\\d+), i_nlink = (\\d+), i_blocks = (\\d+), i_advise = (\\d+)').exec(eventBase.details);if(!event)return false;const device=event[1];const inode=parseInt(event[2]);const key=device+'-'+inode;this.openAsyncSlice(ts,'f2fs',eventBase.threadName,eventBase.pid,key,'fsync');return true;},f2fsSyncFileExitEvent(eventName,cpuNumber,pid,ts,eventBase){const event=new RegExp('dev = \\((\\d+,\\d+)\\), ino = (\\d+), checkpoint is (\\S+), '+'datasync = (\\d+), ret = (\\d+)').exec(eventBase.details.replace('not needed','not_needed'));if(!event)return false;const device=event[1];const inode=parseInt(event[2]);const error=parseInt(event[5]);const key=device+'-'+inode;this.closeAsyncSlice(ts,'f2fs',eventBase.threadName,eventBase.pid,key,{device,inode,error});return true;},ext4SyncFileEnterEvent(eventName,cpuNumber,pid,ts,eventBase){const event=/dev (\d+,\d+) ino (\d+) parent (\d+) datasync (\d+)/.exec(eventBase.details);if(!event)return false;const device=event[1];const inode=parseInt(event[2]);const datasync=(event[4]==='1')||(event[4]===1);const key=device+'-'+inode;const action=datasync?'fdatasync':'fsync';this.openAsyncSlice(ts,'ext4',eventBase.threadName,eventBase.pid,key,action);return true;},ext4SyncFileExitEvent(eventName,cpuNumber,pid,ts,eventBase){const event=/dev (\d+,\d+) ino (\d+) ret (\d+)/.exec(eventBase.details);if(!event)return false;const device=event[1];const inode=parseInt(event[2]);const error=parseInt(event[3]);const key=device+'-'+inode;this.closeAsyncSlice(ts,'ext4',eventBase.threadName,eventBase.pid,key,{device,inode,error});return true;},blockRqIssueEvent(eventName,cpuNumber,pid,ts,eventBase){const event=new RegExp('(\\d+,\\d+) (F)?([DWRN])(F)?(A)?(S)?(M)? '+'\\d+ \\(.*\\) (\\d+) \\+ (\\d+) \\[.*\\]').exec(eventBase.details);if(!event)return false;let action;switch(event[3]){case'D':action='discard';break;case'W':action='write';break;case'R':action='read';break;case'N':action='none';break;default:action='unknown';break;}
if(event[2]){action+=' flush';}
if(event[4]==='F'){action+=' fua';}
if(event[5]==='A'){action+=' ahead';}
if(event[6]==='S'){action+=' sync';}
if(event[7]==='M'){action+=' meta';}
const device=event[1];const sector=parseInt(event[8]);const numSectors=parseInt(event[9]);const key=device+'-'+sector+'-'+numSectors;this.openAsyncSlice(ts,'block',eventBase.threadName,eventBase.pid,key,action);return true;},blockRqCompleteEvent(eventName,cpuNumber,pid,ts,eventBase){const event=new RegExp('(\\d+,\\d+) (F)?([DWRN])(F)?(A)?(S)?(M)? '+'\\(.*\\) (\\d+) \\+ (\\d+) \\[(.*)\\]').exec(eventBase.details);if(!event)return false;const device=event[1];const sector=parseInt(event[8]);const numSectors=parseInt(event[9]);const error=parseInt(event[10]);const key=device+'-'+sector+'-'+numSectors;this.closeAsyncSlice(ts,'block',eventBase.threadName,eventBase.pid,key,{device,sector,numSectors,error});return true;}};Parser.register(DiskParser);return{DiskParser,};});'use strict';tr.exportTo('tr.e.importer.linux_perf',function(){const ColorScheme=tr.b.ColorScheme;const Parser=tr.e.importer.linux_perf.Parser;function DrmParser(importer){Parser.call(this,importer);importer.registerEventHandler('drm_vblank_event',DrmParser.prototype.vblankEvent.bind(this));}
DrmParser.prototype={__proto__:Parser.prototype,drmVblankSlice(ts,eventName,args){const kthread=this.importer.getOrCreatePseudoThread('drm_vblank');kthread.openSlice=eventName;const slice=new tr.model.ThreadSlice('',kthread.openSlice,ColorScheme.getColorIdForGeneralPurposeString(kthread.openSlice),ts,args,0);kthread.thread.sliceGroup.pushSlice(slice);},vblankEvent(eventName,cpuNumber,pid,ts,eventBase){const event=/crtc=(\d+), seq=(\d+)/.exec(eventBase.details);if(!event)return false;const crtc=parseInt(event[1]);const seq=parseInt(event[2]);this.drmVblankSlice(ts,'vblank:'+crtc,{crtc,seq});return true;}};Parser.register(DrmParser);return{DrmParser,};});'use strict';tr.exportTo('tr.e.importer.linux_perf',function(){const ColorScheme=tr.b.ColorScheme;const Parser=tr.e.importer.linux_perf.Parser;function ExynosParser(importer){Parser.call(this,importer);importer.registerEventHandler('exynos_busfreq_target_int',ExynosParser.prototype.busfreqTargetIntEvent.bind(this));importer.registerEventHandler('exynos_busfreq_target_mif',ExynosParser.prototype.busfreqTargetMifEvent.bind(this));importer.registerEventHandler('exynos_page_flip_state',ExynosParser.prototype.pageFlipStateEvent.bind(this));}
ExynosParser.prototype={__proto__:Parser.prototype,exynosBusfreqSample(name,ts,frequency){const targetCpu=this.importer.getOrCreateCpu(0);const counter=targetCpu.getOrCreateCounter('',name);if(counter.numSeries===0){counter.addSeries(new tr.model.CounterSeries('frequency',ColorScheme.getColorIdForGeneralPurposeString(counter.name+'.'+'frequency')));}
counter.series.forEach(function(series){series.addCounterSample(ts,frequency);});},busfreqTargetIntEvent(eventName,cpuNumber,pid,ts,eventBase){const event=/frequency=(\d+)/.exec(eventBase.details);if(!event)return false;this.exynosBusfreqSample('INT Frequency',ts,parseInt(event[1]));return true;},busfreqTargetMifEvent(eventName,cpuNumber,pid,ts,eventBase){const event=/frequency=(\d+)/.exec(eventBase.details);if(!event)return false;this.exynosBusfreqSample('MIF Frequency',ts,parseInt(event[1]));return true;},exynosPageFlipStateOpenSlice(ts,pipe,fb,state){const kthread=this.importer.getOrCreatePseudoThread('exynos_flip_state (pipe:'+pipe+', fb:'+fb+')');kthread.openSliceTS=ts;kthread.openSlice=state;},exynosPageFlipStateCloseSlice(ts,pipe,fb,args){const kthread=this.importer.getOrCreatePseudoThread('exynos_flip_state (pipe:'+pipe+', fb:'+fb+')');if(kthread.openSlice){const slice=new tr.model.ThreadSlice('',kthread.openSlice,ColorScheme.getColorIdForGeneralPurposeString(kthread.openSlice),kthread.openSliceTS,args,ts-kthread.openSliceTS);kthread.thread.sliceGroup.pushSlice(slice);}
kthread.openSlice=undefined;},pageFlipStateEvent(eventName,cpuNumber,pid,ts,eventBase){const event=/pipe=(\d+), fb=(\d+), state=(.*)/.exec(eventBase.details);if(!event)return false;const pipe=parseInt(event[1]);const fb=parseInt(event[2]);const state=event[3];this.exynosPageFlipStateCloseSlice(ts,pipe,fb,{pipe,fb});if(state!=='flipped'){this.exynosPageFlipStateOpenSlice(ts,pipe,fb,state);}
return true;}};Parser.register(ExynosParser);return{ExynosParser,};});'use strict';tr.exportTo('tr.e.importer.linux_perf',function(){const Parser=tr.e.importer.linux_perf.Parser;function GestureParser(importer){Parser.call(this,importer);importer.registerEventHandler('tracing_mark_write:log',GestureParser.prototype.logEvent.bind(this));importer.registerEventHandler('tracing_mark_write:SyncInterpret',GestureParser.prototype.syncEvent.bind(this));importer.registerEventHandler('tracing_mark_write:HandleTimer',GestureParser.prototype.timerEvent.bind(this));}
GestureParser.prototype={__proto__:Parser.prototype,gestureOpenSlice(title,ts,opt_args){const thread=this.importer.getOrCreatePseudoThread('gesture').thread;thread.sliceGroup.beginSlice('touchpad_gesture',title,ts,opt_args);},gestureCloseSlice(title,ts){const thread=this.importer.getOrCreatePseudoThread('gesture').thread;if(thread.sliceGroup.openSliceCount){const slice=thread.sliceGroup.mostRecentlyOpenedPartialSlice;if(slice.title!==title){this.importer.model.importWarning({type:'title_match_error',message:'Titles do not match. Title is '+
slice.title+' in openSlice, and is '+
title+' in endSlice'});}else{thread.sliceGroup.endSlice(ts);}}},logEvent(eventName,cpuNumber,pid,ts,eventBase){const innerEvent=/^\s*(\w+):\s*(\w+)$/.exec(eventBase.details);switch(innerEvent[1]){case'start':this.gestureOpenSlice('GestureLog',ts,{name:innerEvent[2]});break;case'end':this.gestureCloseSlice('GestureLog',ts);}
return true;},syncEvent(eventName,cpuNumber,pid,ts,eventBase){const innerEvent=/^\s*(\w+):\s*(\w+)$/.exec(eventBase.details);switch(innerEvent[1]){case'start':this.gestureOpenSlice('SyncInterpret',ts,{interpreter:innerEvent[2]});break;case'end':this.gestureCloseSlice('SyncInterpret',ts);}
return true;},timerEvent(eventName,cpuNumber,pid,ts,eventBase){const innerEvent=/^\s*(\w+):\s*(\w+)$/.exec(eventBase.details);switch(innerEvent[1]){case'start':this.gestureOpenSlice('HandleTimer',ts,{interpreter:innerEvent[2]});break;case'end':this.gestureCloseSlice('HandleTimer',ts);}
return true;}};Parser.register(GestureParser);return{GestureParser,};});'use strict';tr.exportTo('tr.e.importer.linux_perf',function(){const ColorScheme=tr.b.ColorScheme;const Parser=tr.e.importer.linux_perf.Parser;function I2cParser(importer){Parser.call(this,importer);importer.registerEventHandler('i2c_write',I2cParser.prototype.i2cWriteEvent.bind(this));importer.registerEventHandler('i2c_read',I2cParser.prototype.i2cReadEvent.bind(this));importer.registerEventHandler('i2c_reply',I2cParser.prototype.i2cReplyEvent.bind(this));importer.registerEventHandler('i2c_result',I2cParser.prototype.i2cResultEvent.bind(this));}
const i2cWriteReplyRE=new RegExp('i2c-(\\d+) #(\\d+) a=([\\da-fA-F]+) f=([\\da-fA-F]+) l=(\\d+) '+'(\\[[\\da-fA-F\\-]+\\])');const i2cReadRE=/i2c-(\d+) #(\d+) a=([\da-fA-F]+) f=([\da-fA-F]+) l=(\d+)/;const i2cResultRE=/i2c-(\d+) n=(\d+) ret=(\d+)/;I2cParser.prototype={__proto__:Parser.prototype,i2cWriteEvent(eventName,cpuNumber,pid,ts,eventBase){const event=i2cWriteReplyRE.exec(eventBase.details);if(!event)return false;const adapterNumber=parseInt(event[1]);const messageNumber=event[2];const address=event[3];const flags=event[4];const dataLength=event[5];const data=event[6];const thread=this.importer.getOrCreatePseudoThread('i2c adapter '+adapterNumber);pushLastSliceIfNeeded(thread,event[1],ts);thread.lastEntryTitle='i2c write';thread.lastEntryTs=ts;thread.lastEntryArgs={'Message number':messageNumber,'Address':address,'Flags':flags,'Data Length':dataLength,'Data':data};return true;},i2cReadEvent(eventName,cpuNumber,pid,ts,eventBase){const event=i2cReadRE.exec(eventBase.details);if(!event)return false;const adapterNumber=parseInt(event[1]);const messageNumber=event[2];const address=event[3];const flags=event[4];const dataLength=event[5];const thread=this.importer.getOrCreatePseudoThread('i2c adapter '+adapterNumber);pushLastSliceIfNeeded(thread,event[1],ts);thread.lastEntryTitle='i2c read';thread.lastEntryTs=ts;thread.lastEntryArgs={'Message number':messageNumber,'Address':address,'Flags':flags,'Data Length':dataLength};return true;},i2cReplyEvent(eventName,cpuNumber,pid,ts,eventBase){const event=i2cWriteReplyRE.exec(eventBase.details);if(!event)return false;const adapterNumber=parseInt(event[1]);const messageNumber=event[2];const address=event[3];const flags=event[4];const dataLength=event[5];const data=event[6];const thread=this.importer.getOrCreatePseudoThread('i2c adapter '+adapterNumber);pushLastSliceIfNeeded(thread,event[1],ts);thread.lastEntryTitle='i2c reply';thread.lastEntryTs=ts;thread.lastEntryArgs={'Message number':messageNumber,'Address':address,'Flags':flags,'Data Length':dataLength,'Data':data};return true;},i2cResultEvent(eventName,cpuNumber,pid,ts,eventBase){const event=i2cResultRE.exec(eventBase.details);if(!event)return false;const adapterNumber=parseInt(event[1]);const numMessages=event[2];const ret=event[3];const thread=this.importer.getOrCreatePseudoThread('i2c adapter '+adapterNumber);const args=thread.lastEntryArgs;if(args!==undefined){args['Number of messages']=numMessages;args.Return=ret;}
pushLastSliceIfNeeded(thread,event[1],ts);thread.lastEntryTitle=undefined;thread.lastEntryTs=undefined;thread.lastEntryArgs=undefined;return true;},};function pushLastSliceIfNeeded(thread,id,currentTs){if(thread.lastEntryTs!==undefined){const duration=currentTs-thread.lastEntryTs;const slice=new tr.model.ThreadSlice('',thread.lastEntryTitle,ColorScheme.getColorIdForGeneralPurposeString(id),thread.lastEntryTs,thread.lastEntryArgs,duration);thread.thread.sliceGroup.pushSlice(slice);}}
Parser.register(I2cParser);return{I2cParser,};});'use strict';tr.exportTo('tr.e.importer.linux_perf',function(){const ColorScheme=tr.b.ColorScheme;const Parser=tr.e.importer.linux_perf.Parser;function I915Parser(importer){Parser.call(this,importer);importer.registerEventHandler('i915_gem_object_create',I915Parser.prototype.gemObjectCreateEvent.bind(this));importer.registerEventHandler('i915_gem_object_bind',I915Parser.prototype.gemObjectBindEvent.bind(this));importer.registerEventHandler('i915_gem_object_unbind',I915Parser.prototype.gemObjectBindEvent.bind(this));importer.registerEventHandler('i915_gem_object_change_domain',I915Parser.prototype.gemObjectChangeDomainEvent.bind(this));importer.registerEventHandler('i915_gem_object_pread',I915Parser.prototype.gemObjectPreadWriteEvent.bind(this));importer.registerEventHandler('i915_gem_object_pwrite',I915Parser.prototype.gemObjectPreadWriteEvent.bind(this));importer.registerEventHandler('i915_gem_object_fault',I915Parser.prototype.gemObjectFaultEvent.bind(this));importer.registerEventHandler('i915_gem_object_clflush',I915Parser.prototype.gemObjectDestroyEvent.bind(this));importer.registerEventHandler('i915_gem_object_destroy',I915Parser.prototype.gemObjectDestroyEvent.bind(this));importer.registerEventHandler('i915_gem_ring_dispatch',I915Parser.prototype.gemRingDispatchEvent.bind(this));importer.registerEventHandler('i915_gem_ring_flush',I915Parser.prototype.gemRingFlushEvent.bind(this));importer.registerEventHandler('i915_gem_request',I915Parser.prototype.gemRequestEvent.bind(this));importer.registerEventHandler('i915_gem_request_add',I915Parser.prototype.gemRequestEvent.bind(this));importer.registerEventHandler('i915_gem_request_complete',I915Parser.prototype.gemRequestEvent.bind(this));importer.registerEventHandler('i915_gem_request_retire',I915Parser.prototype.gemRequestEvent.bind(this));importer.registerEventHandler('i915_gem_request_wait_begin',I915Parser.prototype.gemRequestEvent.bind(this));importer.registerEventHandler('i915_gem_request_wait_end',I915Parser.prototype.gemRequestEvent.bind(this));importer.registerEventHandler('i915_gem_ring_wait_begin',I915Parser.prototype.gemRingWaitEvent.bind(this));importer.registerEventHandler('i915_gem_ring_wait_end',I915Parser.prototype.gemRingWaitEvent.bind(this));importer.registerEventHandler('i915_reg_rw',I915Parser.prototype.regRWEvent.bind(this));importer.registerEventHandler('i915_flip_request',I915Parser.prototype.flipEvent.bind(this));importer.registerEventHandler('i915_flip_complete',I915Parser.prototype.flipEvent.bind(this));importer.registerEventHandler('intel_gpu_freq_change',I915Parser.prototype.gpuFrequency.bind(this));}
I915Parser.prototype={__proto__:Parser.prototype,i915FlipOpenSlice(ts,obj,plane){const kthread=this.importer.getOrCreatePseudoThread('i915_flip');kthread.openSliceTS=ts;kthread.openSlice='flip:'+obj+'/'+plane;},i915FlipCloseSlice(ts,args){const kthread=this.importer.getOrCreatePseudoThread('i915_flip');if(kthread.openSlice){const slice=new tr.model.ThreadSlice('',kthread.openSlice,ColorScheme.getColorIdForGeneralPurposeString(kthread.openSlice),kthread.openSliceTS,args,ts-kthread.openSliceTS);kthread.thread.sliceGroup.pushSlice(slice);}
kthread.openSlice=undefined;},i915GemObjectSlice(ts,eventName,obj,args){const kthread=this.importer.getOrCreatePseudoThread('i915_gem');kthread.openSlice=eventName+':'+obj;const slice=new tr.model.ThreadSlice('',kthread.openSlice,ColorScheme.getColorIdForGeneralPurposeString(kthread.openSlice),ts,args,0);kthread.thread.sliceGroup.pushSlice(slice);},i915GemRingSlice(ts,eventName,dev,ring,args){const kthread=this.importer.getOrCreatePseudoThread('i915_gem_ring');kthread.openSlice=eventName+':'+dev+'.'+ring;const slice=new tr.model.ThreadSlice('',kthread.openSlice,ColorScheme.getColorIdForGeneralPurposeString(kthread.openSlice),ts,args,0);kthread.thread.sliceGroup.pushSlice(slice);},i915RegSlice(ts,eventName,reg,args){const kthread=this.importer.getOrCreatePseudoThread('i915_reg');kthread.openSlice=eventName+':'+reg;const slice=new tr.model.ThreadSlice('',kthread.openSlice,ColorScheme.getColorIdForGeneralPurposeString(kthread.openSlice),ts,args,0);kthread.thread.sliceGroup.pushSlice(slice);},i915FreqChangeSlice(ts,eventName,args){const kthread=this.importer.getOrCreatePseudoThread('i915_gpu_freq');kthread.openSlice=eventName;const slice=new tr.model.ThreadSlice('',kthread.openSlice,ColorScheme.getColorIdForGeneralPurposeString(kthread.openSlice),ts,args,0);kthread.thread.sliceGroup.pushSlice(slice);},gemObjectCreateEvent(eventName,cpuNumber,pid,ts,eventBase){const event=/obj=(\w+), size=(\d+)/.exec(eventBase.details);if(!event)return false;const obj=event[1];const size=parseInt(event[2]);this.i915GemObjectSlice(ts,eventName,obj,{obj,size});return true;},gemObjectBindEvent(eventName,cpuNumber,pid,ts,eventBase){const event=/obj=(\w+), offset=(\w+), size=(\d+)/.exec(eventBase.details);if(!event)return false;const obj=event[1];const offset=event[2];const size=parseInt(event[3]);this.i915ObjectGemSlice(ts,eventName+':'+obj,{obj,offset,size});return true;},gemObjectChangeDomainEvent(eventName,cpuNumber,pid,ts,eventBase){const event=/obj=(\w+), read=(\w+=>\w+), write=(\w+=>\w+)/.exec(eventBase.details);if(!event)return false;const obj=event[1];const read=event[2];const write=event[3];this.i915GemObjectSlice(ts,eventName,obj,{obj,read,write});return true;},gemObjectPreadWriteEvent(eventName,cpuNumber,pid,ts,eventBase){const event=/obj=(\w+), offset=(\d+), len=(\d+)/.exec(eventBase.details);if(!event)return false;const obj=event[1];const offset=parseInt(event[2]);const len=parseInt(event[3]);this.i915GemObjectSlice(ts,eventName,obj,{obj,offset,len});return true;},gemObjectFaultEvent(eventName,cpuNumber,pid,ts,eventBase){const event=/obj=(\w+), (\w+) index=(\d+)/.exec(eventBase.details);if(!event)return false;const obj=event[1];const type=event[2];const index=parseInt(event[3]);this.i915GemObjectSlice(ts,eventName,obj,{obj,type,index});return true;},gemObjectDestroyEvent(eventName,cpuNumber,pid,ts,eventBase){const event=/obj=(\w+)/.exec(eventBase.details);if(!event)return false;const obj=event[1];this.i915GemObjectSlice(ts,eventName,obj,{obj});return true;},gemRingDispatchEvent(eventName,cpuNumber,pid,ts,eventBase){const event=/dev=(\d+), ring=(\d+), seqno=(\d+)/.exec(eventBase.details);if(!event)return false;const dev=parseInt(event[1]);const ring=parseInt(event[2]);const seqno=parseInt(event[3]);this.i915GemRingSlice(ts,eventName,dev,ring,{dev,ring,seqno});return true;},gemRingFlushEvent(eventName,cpuNumber,pid,ts,eventBase){const event=/dev=(\d+), ring=(\w+), invalidate=(\w+), flush=(\w+)/.exec(eventBase.details);if(!event)return false;const dev=parseInt(event[1]);const ring=parseInt(event[2]);const invalidate=event[3];const flush=event[4];this.i915GemRingSlice(ts,eventName,dev,ring,{dev,ring,invalidate,flush});return true;},gemRequestEvent(eventName,cpuNumber,pid,ts,eventBase){const event=/dev=(\d+), ring=(\d+), seqno=(\d+)/.exec(eventBase.details);if(!event)return false;const dev=parseInt(event[1]);const ring=parseInt(event[2]);const seqno=parseInt(event[3]);this.i915GemRingSlice(ts,eventName,dev,ring,{dev,ring,seqno});return true;},gemRingWaitEvent(eventName,cpuNumber,pid,ts,eventBase){const event=/dev=(\d+), ring=(\d+)/.exec(eventBase.details);if(!event)return false;const dev=parseInt(event[1]);const ring=parseInt(event[2]);this.i915GemRingSlice(ts,eventName,dev,ring,{dev,ring});return true;},regRWEvent(eventName,cpuNumber,pid,ts,eventBase){const event=/(\w+) reg=(\w+), len=(\d+), val=(\(\w+, \w+\))/.exec(eventBase.details);if(!event)return false;const rw=event[1];const reg=event[2];const len=event[3];const data=event[3];this.i915RegSlice(ts,rw,reg,{rw,reg,len,data});return true;},flipEvent(eventName,cpuNumber,pid,ts,eventBase){const event=/plane=(\d+), obj=(\w+)/.exec(eventBase.details);if(!event)return false;const plane=parseInt(event[1]);const obj=event[2];if(eventName==='i915_flip_request'){this.i915FlipOpenSlice(ts,obj,plane);}else{this.i915FlipCloseSlice(ts,{obj,plane});}
return true;},gpuFrequency(eventName,cpuNumver,pid,ts,eventBase){const event=/new_freq=(\d+)/.exec(eventBase.details);if(!event)return false;const freq=parseInt(event[1]);this.i915FreqChangeSlice(ts,eventName,{freq});return true;}};Parser.register(I915Parser);return{I915Parser,};});'use strict';tr.exportTo('tr.e.importer.linux_perf',function(){const ColorScheme=tr.b.ColorScheme;const Parser=tr.e.importer.linux_perf.Parser;function IrqParser(importer){Parser.call(this,importer);importer.registerEventHandler('irq_handler_entry',IrqParser.prototype.irqHandlerEntryEvent.bind(this));importer.registerEventHandler('irq_handler_exit',IrqParser.prototype.irqHandlerExitEvent.bind(this));importer.registerEventHandler('softirq_raise',IrqParser.prototype.softirqRaiseEvent.bind(this));importer.registerEventHandler('softirq_entry',IrqParser.prototype.softirqEntryEvent.bind(this));importer.registerEventHandler('softirq_exit',IrqParser.prototype.softirqExitEvent.bind(this));importer.registerEventHandler('ipi_entry',IrqParser.prototype.ipiEntryEvent.bind(this));importer.registerEventHandler('ipi_exit',IrqParser.prototype.ipiExitEvent.bind(this));}
const irqHandlerEntryRE=/irq=(\d+) name=(.+)/;const irqHandlerExitRE=/irq=(\d+) ret=(.+)/;const softirqRE=/vec=(\d+) \[action=(.+)\]/;const ipiHandlerExitRE=/\((.+)\)/;IrqParser.prototype={__proto__:Parser.prototype,irqHandlerEntryEvent(eventName,cpuNumber,pid,ts,eventBase){const event=irqHandlerEntryRE.exec(eventBase.details);if(!event)return false;const irq=parseInt(event[1]);const name=event[2];const thread=this.importer.getOrCreatePseudoThread('irqs cpu '+cpuNumber);thread.lastEntryTs=ts;thread.irqName=name;return true;},irqHandlerExitEvent(eventName,cpuNumber,pid,ts,eventBase){const event=irqHandlerExitRE.exec(eventBase.details);if(!event)return false;const irq=parseInt(event[1]);const ret=event[2];const thread=this.importer.getOrCreatePseudoThread('irqs cpu '+cpuNumber);if(thread.lastEntryTs!==undefined){const duration=ts-thread.lastEntryTs;const slice=new tr.model.ThreadSlice('','IRQ ('+thread.irqName+')',ColorScheme.getColorIdForGeneralPurposeString(event[1]),thread.lastEntryTs,{ret},duration);thread.thread.sliceGroup.pushSlice(slice);}
thread.lastEntryTs=undefined;thread.irqName=undefined;return true;},softirqRaiseEvent(eventName,cpuNumber,pid,ts,eventBase){return true;},softirqEntryEvent(eventName,cpuNumber,pid,ts,eventBase){const event=softirqRE.exec(eventBase.details);if(!event)return false;const action=event[2];const thread=this.importer.getOrCreatePseudoThread('softirq cpu '+cpuNumber);thread.lastEntryTs=ts;return true;},softirqExitEvent(eventName,cpuNumber,pid,ts,eventBase){const event=softirqRE.exec(eventBase.details);if(!event)return false;const vec=parseInt(event[1]);const action=event[2];const thread=this.importer.getOrCreatePseudoThread('softirq cpu '+cpuNumber);if(thread.lastEntryTs!==undefined){const duration=ts-thread.lastEntryTs;const slice=new tr.model.ThreadSlice('',action,ColorScheme.getColorIdForGeneralPurposeString(event[1]),thread.lastEntryTs,{vec},duration);thread.thread.sliceGroup.pushSlice(slice);}
thread.lastEntryTs=undefined;return true;},ipiEntryEvent(eventName,cpuNumber,pid,ts,eventBase){const thread=this.importer.getOrCreatePseudoThread('irqs cpu '+cpuNumber);thread.lastEntryTs=ts;return true;},ipiExitEvent(eventName,cpuNumber,pid,ts,eventBase){const event=ipiHandlerExitRE.exec(eventBase.details);if(!event)return false;const ipiName=event[1];const thread=this.importer.getOrCreatePseudoThread('irqs cpu '+cpuNumber);if(thread.lastEntryTs!==undefined){const duration=ts-thread.lastEntryTs;const slice=new tr.model.ThreadSlice('','IPI ('+ipiName+')',ColorScheme.getColorIdForGeneralPurposeString(ipiName),thread.lastEntryTs,{},duration);thread.thread.sliceGroup.pushSlice(slice);}
thread.lastEntryTs=undefined;return true;}};Parser.register(IrqParser);return{IrqParser,};});'use strict';tr.exportTo('tr.e.importer.linux_perf',function(){const LinuxPerfParser=tr.e.importer.linux_perf.Parser;function KernelFuncParser(importer){LinuxPerfParser.call(this,importer);importer.registerEventHandler('graph_ent',KernelFuncParser.prototype.traceKernelFuncEnterEvent.bind(this));importer.registerEventHandler('graph_ret',KernelFuncParser.prototype.traceKernelFuncReturnEvent.bind(this));this.model_=importer.model_;this.ppids_={};}
const TestExports={};const funcEnterRE=new RegExp('func=(.+)');TestExports.funcEnterRE=funcEnterRE;KernelFuncParser.prototype={__proto__:LinuxPerfParser.prototype,traceKernelFuncEnterEvent(eventName,cpuNumber,pid,ts,eventBase){const eventData=funcEnterRE.exec(eventBase.details);if(!eventData)return false;if(eventBase.tgid===undefined){return false;}
const tgid=parseInt(eventBase.tgid);const name=eventData[1];const thread=this.model_.getOrCreateProcess(tgid).getOrCreateThread(pid);thread.name=eventBase.threadName;const slices=thread.kernelSliceGroup;if(!slices.isTimestampValidForBeginOrEnd(ts)){this.model_.importWarning({type:'parse_error',message:'Timestamps are moving backward.'});return false;}
const slice=slices.beginSlice(null,name,ts,{});return true;},traceKernelFuncReturnEvent(eventName,cpuNumber,pid,ts,eventBase){if(eventBase.tgid===undefined){return false;}
const tgid=parseInt(eventBase.tgid);const thread=this.model_.getOrCreateProcess(tgid).getOrCreateThread(pid);thread.name=eventBase.threadName;const slices=thread.kernelSliceGroup;if(!slices.isTimestampValidForBeginOrEnd(ts)){this.model_.importWarning({type:'parse_error',message:'Timestamps are moving backward.'});return false;}
if(slices.openSliceCount>0){slices.endSlice(ts);}
return true;}};LinuxPerfParser.register(KernelFuncParser);return{KernelFuncParser,};});'use strict';tr.exportTo('tr.e.importer.linux_perf',function(){const ColorScheme=tr.b.ColorScheme;const Parser=tr.e.importer.linux_perf.Parser;function MaliParser(importer){Parser.call(this,importer);importer.registerEventHandler('mali_dvfs_event',MaliParser.prototype.dvfsEventEvent.bind(this));importer.registerEventHandler('mali_dvfs_set_clock',MaliParser.prototype.dvfsSetClockEvent.bind(this));importer.registerEventHandler('mali_dvfs_set_voltage',MaliParser.prototype.dvfsSetVoltageEvent.bind(this));this.addJMCounter('mali_hwc_MESSAGES_SENT','Messages Sent');this.addJMCounter('mali_hwc_MESSAGES_RECEIVED','Messages Received');this.addJMCycles('mali_hwc_GPU_ACTIVE','GPU Active');this.addJMCycles('mali_hwc_IRQ_ACTIVE','IRQ Active');for(let i=0;i<7;i++){const jobStr='JS'+i;const jobHWCStr='mali_hwc_'+jobStr;this.addJMCounter(jobHWCStr+'_JOBS',jobStr+' Jobs');this.addJMCounter(jobHWCStr+'_TASKS',jobStr+' Tasks');this.addJMCycles(jobHWCStr+'_ACTIVE',jobStr+' Active');this.addJMCycles(jobHWCStr+'_WAIT_READ',jobStr+' Wait Read');this.addJMCycles(jobHWCStr+'_WAIT_ISSUE',jobStr+' Wait Issue');this.addJMCycles(jobHWCStr+'_WAIT_DEPEND',jobStr+' Wait Depend');this.addJMCycles(jobHWCStr+'_WAIT_FINISH',jobStr+' Wait Finish');}
this.addTilerCounter('mali_hwc_TRIANGLES','Triangles');this.addTilerCounter('mali_hwc_QUADS','Quads');this.addTilerCounter('mali_hwc_POLYGONS','Polygons');this.addTilerCounter('mali_hwc_POINTS','Points');this.addTilerCounter('mali_hwc_LINES','Lines');this.addTilerCounter('mali_hwc_VCACHE_HIT','VCache Hit');this.addTilerCounter('mali_hwc_VCACHE_MISS','VCache Miss');this.addTilerCounter('mali_hwc_FRONT_FACING','Front Facing');this.addTilerCounter('mali_hwc_BACK_FACING','Back Facing');this.addTilerCounter('mali_hwc_PRIM_VISIBLE','Prim Visible');this.addTilerCounter('mali_hwc_PRIM_CULLED','Prim Culled');this.addTilerCounter('mali_hwc_PRIM_CLIPPED','Prim Clipped');this.addTilerCounter('mali_hwc_WRBUF_HIT','Wrbuf Hit');this.addTilerCounter('mali_hwc_WRBUF_MISS','Wrbuf Miss');this.addTilerCounter('mali_hwc_WRBUF_LINE','Wrbuf Line');this.addTilerCounter('mali_hwc_WRBUF_PARTIAL','Wrbuf Partial');this.addTilerCounter('mali_hwc_WRBUF_STALL','Wrbuf Stall');this.addTilerCycles('mali_hwc_ACTIVE','Tiler Active');this.addTilerCycles('mali_hwc_INDEX_WAIT','Index Wait');this.addTilerCycles('mali_hwc_INDEX_RANGE_WAIT','Index Range Wait');this.addTilerCycles('mali_hwc_VERTEX_WAIT','Vertex Wait');this.addTilerCycles('mali_hwc_PCACHE_WAIT','Pcache Wait');this.addTilerCycles('mali_hwc_WRBUF_WAIT','Wrbuf Wait');this.addTilerCycles('mali_hwc_BUS_READ','Bus Read');this.addTilerCycles('mali_hwc_BUS_WRITE','Bus Write');this.addTilerCycles('mali_hwc_TILER_UTLB_STALL','Tiler UTLB Stall');this.addTilerCycles('mali_hwc_TILER_UTLB_HIT','Tiler UTLB Hit');this.addFragCycles('mali_hwc_FRAG_ACTIVE','Active');this.addFragCounter('mali_hwc_FRAG_PRIMATIVES','Primitives');this.addFragCounter('mali_hwc_FRAG_PRIMATIVES_DROPPED','Primitives Dropped');this.addFragCycles('mali_hwc_FRAG_CYCLE_DESC','Descriptor Processing');this.addFragCycles('mali_hwc_FRAG_CYCLES_PLR','PLR Processing??');this.addFragCycles('mali_hwc_FRAG_CYCLES_VERT','Vertex Processing');this.addFragCycles('mali_hwc_FRAG_CYCLES_TRISETUP','Triangle Setup');this.addFragCycles('mali_hwc_FRAG_CYCLES_RAST','Rasterization???');this.addFragCounter('mali_hwc_FRAG_THREADS','Threads');this.addFragCounter('mali_hwc_FRAG_DUMMY_THREADS','Dummy Threads');this.addFragCounter('mali_hwc_FRAG_QUADS_RAST','Quads Rast');this.addFragCounter('mali_hwc_FRAG_QUADS_EZS_TEST','Quads EZS Test');this.addFragCounter('mali_hwc_FRAG_QUADS_EZS_KILLED','Quads EZS Killed');this.addFragCounter('mali_hwc_FRAG_QUADS_LZS_TEST','Quads LZS Test');this.addFragCounter('mali_hwc_FRAG_QUADS_LZS_KILLED','Quads LZS Killed');this.addFragCycles('mali_hwc_FRAG_CYCLE_NO_TILE','No Tiles');this.addFragCounter('mali_hwc_FRAG_NUM_TILES','Tiles');this.addFragCounter('mali_hwc_FRAG_TRANS_ELIM','Transactions Eliminated');this.addComputeCycles('mali_hwc_COMPUTE_ACTIVE','Active');this.addComputeCounter('mali_hwc_COMPUTE_TASKS','Tasks');this.addComputeCounter('mali_hwc_COMPUTE_THREADS','Threads Started');this.addComputeCycles('mali_hwc_COMPUTE_CYCLES_DESC','Waiting for Descriptors');this.addTripipeCycles('mali_hwc_TRIPIPE_ACTIVE','Active');this.addArithCounter('mali_hwc_ARITH_WORDS','Instructions (/Pipes)');this.addArithCycles('mali_hwc_ARITH_CYCLES_REG','Reg scheduling stalls (/Pipes)');this.addArithCycles('mali_hwc_ARITH_CYCLES_L0','L0 cache miss stalls (/Pipes)');this.addArithCounter('mali_hwc_ARITH_FRAG_DEPEND','Frag dep check failures (/Pipes)');this.addLSCounter('mali_hwc_LS_WORDS','Instruction Words Completed');this.addLSCounter('mali_hwc_LS_ISSUES','Full Pipeline Issues');this.addLSCounter('mali_hwc_LS_RESTARTS','Restarts (unpairable insts)');this.addLSCounter('mali_hwc_LS_REISSUES_MISS','Pipeline reissue (cache miss/uTLB)');this.addLSCounter('mali_hwc_LS_REISSUES_VD','Pipeline reissue (varying data)');this.addLSCounter('mali_hwc_LS_REISSUE_ATTRIB_MISS','Pipeline reissue (attribute cache miss)');this.addLSCounter('mali_hwc_LS_REISSUE_NO_WB','Writeback not used');this.addTexCounter('mali_hwc_TEX_WORDS','Words');this.addTexCounter('mali_hwc_TEX_BUBBLES','Bubbles');this.addTexCounter('mali_hwc_TEX_WORDS_L0','Words L0');this.addTexCounter('mali_hwc_TEX_WORDS_DESC','Words Desc');this.addTexCounter('mali_hwc_TEX_THREADS','Threads');this.addTexCounter('mali_hwc_TEX_RECIRC_FMISS','Recirc due to Full Miss');this.addTexCounter('mali_hwc_TEX_RECIRC_DESC','Recirc due to Desc Miss');this.addTexCounter('mali_hwc_TEX_RECIRC_MULTI','Recirc due to Multipass');this.addTexCounter('mali_hwc_TEX_RECIRC_PMISS','Recirc due to Partial Cache Miss');this.addTexCounter('mali_hwc_TEX_RECIRC_CONF','Recirc due to Cache Conflict');this.addLSCCounter('mali_hwc_LSC_READ_HITS','Read Hits');this.addLSCCounter('mali_hwc_LSC_READ_MISSES','Read Misses');this.addLSCCounter('mali_hwc_LSC_WRITE_HITS','Write Hits');this.addLSCCounter('mali_hwc_LSC_WRITE_MISSES','Write Misses');this.addLSCCounter('mali_hwc_LSC_ATOMIC_HITS','Atomic Hits');this.addLSCCounter('mali_hwc_LSC_ATOMIC_MISSES','Atomic Misses');this.addLSCCounter('mali_hwc_LSC_LINE_FETCHES','Line Fetches');this.addLSCCounter('mali_hwc_LSC_DIRTY_LINE','Dirty Lines');this.addLSCCounter('mali_hwc_LSC_SNOOPS','Snoops');this.addAXICounter('mali_hwc_AXI_TLB_STALL','Address channel stall');this.addAXICounter('mali_hwc_AXI_TLB_MISS','Cache Miss');this.addAXICounter('mali_hwc_AXI_TLB_TRANSACTION','Transactions');this.addAXICounter('mali_hwc_LS_TLB_MISS','LS Cache Miss');this.addAXICounter('mali_hwc_LS_TLB_HIT','LS Cache Hit');this.addAXICounter('mali_hwc_AXI_BEATS_READ','Read Beats');this.addAXICounter('mali_hwc_AXI_BEATS_WRITE','Write Beats');this.addMMUCounter('mali_hwc_MMU_TABLE_WALK','Page Table Walks');this.addMMUCounter('mali_hwc_MMU_REPLAY_MISS','Cache Miss from Replay Buffer');this.addMMUCounter('mali_hwc_MMU_REPLAY_FULL','Replay Buffer Full');this.addMMUCounter('mali_hwc_MMU_NEW_MISS','Cache Miss on New Request');this.addMMUCounter('mali_hwc_MMU_HIT','Cache Hit');this.addMMUCycles('mali_hwc_UTLB_STALL','UTLB Stalled');this.addMMUCycles('mali_hwc_UTLB_REPLAY_MISS','UTLB Replay Miss');this.addMMUCycles('mali_hwc_UTLB_REPLAY_FULL','UTLB Replay Full');this.addMMUCycles('mali_hwc_UTLB_NEW_MISS','UTLB New Miss');this.addMMUCycles('mali_hwc_UTLB_HIT','UTLB Hit');this.addL2Counter('mali_hwc_L2_READ_BEATS','Read Beats');this.addL2Counter('mali_hwc_L2_WRITE_BEATS','Write Beats');this.addL2Counter('mali_hwc_L2_ANY_LOOKUP','Any Lookup');this.addL2Counter('mali_hwc_L2_READ_LOOKUP','Read Lookup');this.addL2Counter('mali_hwc_L2_SREAD_LOOKUP','Shareable Read Lookup');this.addL2Counter('mali_hwc_L2_READ_REPLAY','Read Replayed');this.addL2Counter('mali_hwc_L2_READ_SNOOP','Read Snoop');this.addL2Counter('mali_hwc_L2_READ_HIT','Read Cache Hit');this.addL2Counter('mali_hwc_L2_CLEAN_MISS','CleanUnique Miss');this.addL2Counter('mali_hwc_L2_WRITE_LOOKUP','Write Lookup');this.addL2Counter('mali_hwc_L2_SWRITE_LOOKUP','Shareable Write Lookup');this.addL2Counter('mali_hwc_L2_WRITE_REPLAY','Write Replayed');this.addL2Counter('mali_hwc_L2_WRITE_SNOOP','Write Snoop');this.addL2Counter('mali_hwc_L2_WRITE_HIT','Write Cache Hit');this.addL2Counter('mali_hwc_L2_EXT_READ_FULL','ExtRD with BIU Full');this.addL2Counter('mali_hwc_L2_EXT_READ_HALF','ExtRD with BIU >1/2 Full');this.addL2Counter('mali_hwc_L2_EXT_WRITE_FULL','ExtWR with BIU Full');this.addL2Counter('mali_hwc_L2_EXT_WRITE_HALF','ExtWR with BIU >1/2 Full');this.addL2Counter('mali_hwc_L2_EXT_READ','External Read (ExtRD)');this.addL2Counter('mali_hwc_L2_EXT_READ_LINE','ExtRD (linefill)');this.addL2Counter('mali_hwc_L2_EXT_WRITE','External Write (ExtWR)');this.addL2Counter('mali_hwc_L2_EXT_WRITE_LINE','ExtWR (linefill)');this.addL2Counter('mali_hwc_L2_EXT_WRITE_SMALL','ExtWR (burst size <64B)');this.addL2Counter('mali_hwc_L2_EXT_BARRIER','External Barrier');this.addL2Counter('mali_hwc_L2_EXT_AR_STALL','Address Read stalls');this.addL2Counter('mali_hwc_L2_EXT_R_BUF_FULL','Response Buffer full stalls');this.addL2Counter('mali_hwc_L2_EXT_RD_BUF_FULL','Read Data Buffer full stalls');this.addL2Counter('mali_hwc_L2_EXT_R_RAW','RAW hazard stalls');this.addL2Counter('mali_hwc_L2_EXT_W_STALL','Write Data stalls');this.addL2Counter('mali_hwc_L2_EXT_W_BUF_FULL','Write Data Buffer full');this.addL2Counter('mali_hwc_L2_EXT_R_W_HAZARD','WAW or WAR hazard stalls');this.addL2Counter('mali_hwc_L2_TAG_HAZARD','Tag hazard replays');this.addL2Cycles('mali_hwc_L2_SNOOP_FULL','Snoop buffer full');this.addL2Cycles('mali_hwc_L2_REPLAY_FULL','Replay buffer full');importer.registerEventHandler('tracing_mark_write:mali_driver',MaliParser.prototype.maliDDKEvent.bind(this));this.model_=importer.model_;}
MaliParser.prototype={__proto__:Parser.prototype,maliDDKOpenSlice(pid,tid,ts,func,blockinfo){const thread=this.importer.model_.getOrCreateProcess(pid).getOrCreateThread(tid);const funcArgs=/^([\w\d_]*)(?:\(\))?:?\s*(.*)$/.exec(func);thread.sliceGroup.beginSlice('gpu-driver',funcArgs[1],ts,{'args':funcArgs[2],blockinfo});},maliDDKCloseSlice(pid,tid,ts,args,blockinfo){const thread=this.importer.model_.getOrCreateProcess(pid).getOrCreateThread(tid);if(!thread.sliceGroup.openSliceCount){return;}
thread.sliceGroup.endSlice(ts);},autoDetectLineRE(line){const lineREWithThread=/^\s*\(([\w\-]*)\)\s*(\w+):\s*([\w\\\/\.\-]*@\d*):?\s*(.*)$/;if(lineREWithThread.test(line)){return lineREWithThread;}
const lineRENoThread=/^s*()(\w+):\s*([\w\\\/.\-]*):?\s*(.*)$/;if(lineRENoThread.test(line)){return lineRENoThread;}
return null;},lineRE:null,maliDDKEvent(eventName,cpuNumber,pid,ts,eventBase){if(this.lineRE===null){this.lineRE=this.autoDetectLineRE(eventBase.details);if(this.lineRE===null)return false;}
const maliEvent=this.lineRE.exec(eventBase.details);const tid=(maliEvent[1]===''?'mali':maliEvent[1]);switch(maliEvent[2]){case'cros_trace_print_enter':this.maliDDKOpenSlice(pid,tid,ts,maliEvent[4],maliEvent[3]);break;case'cros_trace_print_exit':this.maliDDKCloseSlice(pid,tid,ts,[],maliEvent[3]);}
return true;},dvfsSample(counterName,seriesName,ts,s){const value=parseInt(s);const counter=this.model_.kernel.getOrCreateCounter('DVFS',counterName);if(counter.numSeries===0){counter.addSeries(new tr.model.CounterSeries(seriesName,ColorScheme.getColorIdForGeneralPurposeString(counter.name)));}
counter.series.forEach(function(series){series.addCounterSample(ts,value);});},dvfsEventEvent(eventName,cpuNumber,pid,ts,eventBase){const event=/utilization=(\d+)/.exec(eventBase.details);if(!event)return false;this.dvfsSample('DVFS Utilization','utilization',ts,event[1]);return true;},dvfsSetClockEvent(eventName,cpuNumber,pid,ts,eventBase){const event=/frequency=(\d+)/.exec(eventBase.details);if(!event)return false;this.dvfsSample('DVFS Frequency','frequency',ts,event[1]);return true;},dvfsSetVoltageEvent(eventName,cpuNumber,pid,ts,eventBase){const event=/voltage=(\d+)/.exec(eventBase.details);if(!event)return false;this.dvfsSample('DVFS Voltage','voltage',ts,event[1]);return true;},hwcSample(cat,counterName,seriesName,ts,eventBase){const event=/val=(\d+)/.exec(eventBase.details);if(!event)return false;const value=parseInt(event[1]);const counter=this.model_.kernel.getOrCreateCounter(cat,counterName);if(counter.numSeries===0){counter.addSeries(new tr.model.CounterSeries(seriesName,ColorScheme.getColorIdForGeneralPurposeString(counter.name)));}
counter.series.forEach(function(series){series.addCounterSample(ts,value);});return true;},jmSample(ctrName,seriesName,ts,eventBase){return this.hwcSample('mali:jm','JM: '+ctrName,seriesName,ts,eventBase);},addJMCounter(hwcEventName,hwcTitle){function handler(eventName,cpuNumber,pid,ts,eventBase){return this.jmSample(hwcTitle,'count',ts,eventBase);}
this.importer.registerEventHandler(hwcEventName,handler.bind(this));},addJMCycles(hwcEventName,hwcTitle){function handler(eventName,cpuNumber,pid,ts,eventBase){return this.jmSample(hwcTitle,'cycles',ts,eventBase);}
this.importer.registerEventHandler(hwcEventName,handler.bind(this));},tilerSample(ctrName,seriesName,ts,eventBase){return this.hwcSample('mali:tiler','Tiler: '+ctrName,seriesName,ts,eventBase);},addTilerCounter(hwcEventName,hwcTitle){function handler(eventName,cpuNumber,pid,ts,eventBase){return this.tilerSample(hwcTitle,'count',ts,eventBase);}
this.importer.registerEventHandler(hwcEventName,handler.bind(this));},addTilerCycles(hwcEventName,hwcTitle){function handler(eventName,cpuNumber,pid,ts,eventBase){return this.tilerSample(hwcTitle,'cycles',ts,eventBase);}
this.importer.registerEventHandler(hwcEventName,handler.bind(this));},fragSample(ctrName,seriesName,ts,eventBase){return this.hwcSample('mali:fragment','Fragment: '+ctrName,seriesName,ts,eventBase);},addFragCounter(hwcEventName,hwcTitle){function handler(eventName,cpuNumber,pid,ts,eventBase){return this.fragSample(hwcTitle,'count',ts,eventBase);}
this.importer.registerEventHandler(hwcEventName,handler.bind(this));},addFragCycles(hwcEventName,hwcTitle){function handler(eventName,cpuNumber,pid,ts,eventBase){return this.fragSample(hwcTitle,'cycles',ts,eventBase);}
this.importer.registerEventHandler(hwcEventName,handler.bind(this));},computeSample(ctrName,seriesName,ts,eventBase){return this.hwcSample('mali:compute','Compute: '+ctrName,seriesName,ts,eventBase);},addComputeCounter(hwcEventName,hwcTitle){function handler(eventName,cpuNumber,pid,ts,eventBase){return this.computeSample(hwcTitle,'count',ts,eventBase);}
this.importer.registerEventHandler(hwcEventName,handler.bind(this));},addComputeCycles(hwcEventName,hwcTitle){function handler(eventName,cpuNumber,pid,ts,eventBase){return this.computeSample(hwcTitle,'cycles',ts,eventBase);}
this.importer.registerEventHandler(hwcEventName,handler.bind(this));},addTripipeCycles(hwcEventName,hwcTitle){function handler(eventName,cpuNumber,pid,ts,eventBase){return this.hwcSample('mali:shader','Tripipe: '+hwcTitle,'cycles',ts,eventBase);}
this.importer.registerEventHandler(hwcEventName,handler.bind(this));},arithSample(ctrName,seriesName,ts,eventBase){return this.hwcSample('mali:arith','Arith: '+ctrName,seriesName,ts,eventBase);},addArithCounter(hwcEventName,hwcTitle){function handler(eventName,cpuNumber,pid,ts,eventBase){return this.arithSample(hwcTitle,'count',ts,eventBase);}
this.importer.registerEventHandler(hwcEventName,handler.bind(this));},addArithCycles(hwcEventName,hwcTitle){function handler(eventName,cpuNumber,pid,ts,eventBase){return this.arithSample(hwcTitle,'cycles',ts,eventBase);}
this.importer.registerEventHandler(hwcEventName,handler.bind(this));},addLSCounter(hwcEventName,hwcTitle){function handler(eventName,cpuNumber,pid,ts,eventBase){return this.hwcSample('mali:ls','LS: '+hwcTitle,'count',ts,eventBase);}
this.importer.registerEventHandler(hwcEventName,handler.bind(this));},textureSample(ctrName,seriesName,ts,eventBase){return this.hwcSample('mali:texture','Texture: '+ctrName,seriesName,ts,eventBase);},addTexCounter(hwcEventName,hwcTitle){function handler(eventName,cpuNumber,pid,ts,eventBase){return this.textureSample(hwcTitle,'count',ts,eventBase);}
this.importer.registerEventHandler(hwcEventName,handler.bind(this));},addLSCCounter(hwcEventName,hwcTitle){function handler(eventName,cpuNumber,pid,ts,eventBase){return this.hwcSample('mali:lsc','LSC: '+hwcTitle,'count',ts,eventBase);}
this.importer.registerEventHandler(hwcEventName,handler.bind(this));},addAXICounter(hwcEventName,hwcTitle){function handler(eventName,cpuNumber,pid,ts,eventBase){return this.hwcSample('mali:axi','AXI: '+hwcTitle,'count',ts,eventBase);}
this.importer.registerEventHandler(hwcEventName,handler.bind(this));},mmuSample(ctrName,seriesName,ts,eventBase){return this.hwcSample('mali:mmu','MMU: '+ctrName,seriesName,ts,eventBase);},addMMUCounter(hwcEventName,hwcTitle){function handler(eventName,cpuNumber,pid,ts,eventBase){return this.mmuSample(hwcTitle,'count',ts,eventBase);}
this.importer.registerEventHandler(hwcEventName,handler.bind(this));},addMMUCycles(hwcEventName,hwcTitle){function handler(eventName,cpuNumber,pid,ts,eventBase){return this.mmuSample(hwcTitle,'cycles',ts,eventBase);}
this.importer.registerEventHandler(hwcEventName,handler.bind(this));},l2Sample(ctrName,seriesName,ts,eventBase){return this.hwcSample('mali:l2','L2: '+ctrName,seriesName,ts,eventBase);},addL2Counter(hwcEventName,hwcTitle){function handler(eventName,cpuNumber,pid,ts,eventBase){return this.l2Sample(hwcTitle,'count',ts,eventBase);}
this.importer.registerEventHandler(hwcEventName,handler.bind(this));},addL2Cycles(hwcEventName,hwcTitle){function handler(eventName,cpuNumber,pid,ts,eventBase){return this.l2Sample(hwcTitle,'cycles',ts,eventBase);}
this.importer.registerEventHandler(hwcEventName,handler.bind(this));}};Parser.register(MaliParser);return{MaliParser,};});'use strict';tr.exportTo('tr.e.importer.linux_perf',function(){const Parser=tr.e.importer.linux_perf.Parser;function MemReclaimParser(importer){Parser.call(this,importer);importer.registerEventHandler('mm_vmscan_kswapd_wake',MemReclaimParser.prototype.kswapdWake.bind(this));importer.registerEventHandler('mm_vmscan_kswapd_sleep',MemReclaimParser.prototype.kswapdSleep.bind(this));importer.registerEventHandler('mm_vmscan_direct_reclaim_begin',MemReclaimParser.prototype.reclaimBegin.bind(this));importer.registerEventHandler('mm_vmscan_direct_reclaim_end',MemReclaimParser.prototype.reclaimEnd.bind(this));}
const kswapdWakeRE=/nid=(\d+) order=(\d+)/;const kswapdSleepRE=/nid=(\d+)/;const reclaimBeginRE=/order=(\d+) may_writepage=\d+ gfp_flags=(.+)/;const reclaimEndRE=/nr_reclaimed=(\d+)/;MemReclaimParser.prototype={__proto__:Parser.prototype,kswapdWake(eventName,cpuNumber,pid,ts,eventBase){const event=kswapdWakeRE.exec(eventBase.details);if(!event)return false;const tgid=parseInt(eventBase.tgid);const nid=parseInt(event[1]);const order=parseInt(event[2]);const kthread=this.importer.getOrCreateKernelThread(eventBase.threadName,tgid,pid);if(kthread.openSliceTS){if(order>kthread.order){kthread.order=order;}}else{kthread.openSliceTS=ts;kthread.order=order;}
return true;},kswapdSleep(eventName,cpuNumber,pid,ts,eventBase){const tgid=parseInt(eventBase.tgid);const kthread=this.importer.getOrCreateKernelThread(eventBase.threadName,tgid,pid);if(kthread.openSliceTS){kthread.thread.sliceGroup.pushCompleteSlice('memreclaim',eventBase.threadName,kthread.openSliceTS,ts-kthread.openSliceTS,0,0,{order:kthread.order});}
kthread.openSliceTS=undefined;kthread.order=undefined;return true;},reclaimBegin(eventName,cpuNumber,pid,ts,eventBase){const event=reclaimBeginRE.exec(eventBase.details);if(!event)return false;const order=parseInt(event[1]);const gfp=event[2];const tgid=parseInt(eventBase.tgid);const kthread=this.importer.getOrCreateKernelThread(eventBase.threadName,tgid,pid);kthread.openSliceTS=ts;kthread.order=order;kthread.gfp=gfp;return true;},reclaimEnd(eventName,cpuNumber,pid,ts,eventBase){const event=reclaimEndRE.exec(eventBase.details);if(!event)return false;const nrReclaimed=parseInt(event[1]);const tgid=parseInt(eventBase.tgid);const kthread=this.importer.getOrCreateKernelThread(eventBase.threadName,tgid,pid);if(kthread.openSliceTS!==undefined){kthread.thread.sliceGroup.pushCompleteSlice('memreclaim','direct reclaim',kthread.openSliceTS,ts-kthread.openSliceTS,0,0,{order:kthread.order,gfp:kthread.gfp,nr_reclaimed:nrReclaimed});}
kthread.openSliceTS=undefined;kthread.order=undefined;kthread.gfp=undefined;return true;}};Parser.register(MemReclaimParser);return{MemReclaimParser,};});'use strict';tr.exportTo('tr.e.importer.linux_perf',function(){const ColorScheme=tr.b.ColorScheme;const Parser=tr.e.importer.linux_perf.Parser;function PowerParser(importer){Parser.call(this,importer);importer.registerEventHandler('power_start',PowerParser.prototype.powerStartEvent.bind(this));importer.registerEventHandler('power_frequency',PowerParser.prototype.powerFrequencyEvent.bind(this));importer.registerEventHandler('cpu_frequency',PowerParser.prototype.cpuFrequencyEvent.bind(this));importer.registerEventHandler('cpu_frequency_limits',PowerParser.prototype.cpuFrequencyLimitsEvent.bind(this));importer.registerEventHandler('cpu_idle',PowerParser.prototype.cpuIdleEvent.bind(this));}
PowerParser.prototype={__proto__:Parser.prototype,cpuStateSlice(ts,targetCpuNumber,eventType,cpuState){const targetCpu=this.importer.getOrCreateCpu(targetCpuNumber);if(eventType!=='1'){this.importer.model.importWarning({type:'parse_error',message:'Don\'t understand power_start events of '+'type '+eventType});return;}
const powerCounter=targetCpu.getOrCreateCounter('','C-State');if(powerCounter.numSeries===0){powerCounter.addSeries(new tr.model.CounterSeries('state',ColorScheme.getColorIdForGeneralPurposeString(powerCounter.name+'.'+'state')));}
powerCounter.series.forEach(function(series){series.addCounterSample(ts,cpuState);});},cpuIdleSlice(ts,targetCpuNumber,cpuState){const targetCpu=this.importer.getOrCreateCpu(targetCpuNumber);const powerCounter=targetCpu.getOrCreateCounter('','C-State');if(powerCounter.numSeries===0){powerCounter.addSeries(new tr.model.CounterSeries('state',ColorScheme.getColorIdForGeneralPurposeString(powerCounter.name)));}
const val=(cpuState!==4294967295?cpuState+1:0);powerCounter.series.forEach(function(series){series.addCounterSample(ts,val);});},cpuFrequencySlice(ts,targetCpuNumber,powerState){const targetCpu=this.importer.getOrCreateCpu(targetCpuNumber);const powerCounter=targetCpu.getOrCreateCounter('','Clock Frequency');if(powerCounter.numSeries===0){powerCounter.addSeries(new tr.model.CounterSeries('state',ColorScheme.getColorIdForGeneralPurposeString(powerCounter.name+'.'+'state')));}
powerCounter.series.forEach(function(series){series.addCounterSample(ts,powerState);});},cpuFrequencyLimitsSlice(ts,targetCpuNumber,minFreq,maxFreq){const targetCpu=this.importer.getOrCreateCpu(targetCpuNumber);const powerCounter=targetCpu.getOrCreateCounter('','Clock Frequency Limits');if(powerCounter.numSeries===0){powerCounter.addSeries(new tr.model.CounterSeries('Min Frequency',ColorScheme.getColorIdForGeneralPurposeString(powerCounter.name+'.'+'Min Frequency')));powerCounter.addSeries(new tr.model.CounterSeries('Max Frequency',ColorScheme.getColorIdForGeneralPurposeString(powerCounter.name+'.'+'Max Frequency')));}
powerCounter.series.forEach(function(series){if(series.name==='Min Frequency'){series.addCounterSample(ts,minFreq);}
if(series.name==='Max Frequency'){series.addCounterSample(ts,maxFreq);}});},powerStartEvent(eventName,cpuNumber,pid,ts,eventBase){const event=/type=(\d+) state=(\d) cpu_id=(\d+)/.exec(eventBase.details);if(!event)return false;const targetCpuNumber=parseInt(event[3]);const cpuState=parseInt(event[2]);this.cpuStateSlice(ts,targetCpuNumber,event[1],cpuState);return true;},powerFrequencyEvent(eventName,cpuNumber,pid,ts,eventBase){const event=/type=(\d+) state=(\d+) cpu_id=(\d+)/.exec(eventBase.details);if(!event)return false;const targetCpuNumber=parseInt(event[3]);const powerState=parseInt(event[2]);this.cpuFrequencySlice(ts,targetCpuNumber,powerState);return true;},cpuFrequencyEvent(eventName,cpuNumber,pid,ts,eventBase){const event=/state=(\d+) cpu_id=(\d+)/.exec(eventBase.details);if(!event)return false;const targetCpuNumber=parseInt(event[2]);const powerState=parseInt(event[1]);this.cpuFrequencySlice(ts,targetCpuNumber,powerState);return true;},cpuFrequencyLimitsEvent(eventName,cpu,pid,ts,eventBase){const event=/min=(\d+) max=(\d+) cpu_id=(\d+)/.exec(eventBase.details);if(!event)return false;const targetCpuNumber=parseInt(event[3]);const minFreq=parseInt(event[1]);const maxFreq=parseInt(event[2]);this.cpuFrequencyLimitsSlice(ts,targetCpuNumber,minFreq,maxFreq);return true;},cpuIdleEvent(eventName,cpuNumber,pid,ts,eventBase){const event=/state=(\d+) cpu_id=(\d+)/.exec(eventBase.details);if(!event)return false;const targetCpuNumber=parseInt(event[2]);const cpuState=parseInt(event[1]);this.cpuIdleSlice(ts,targetCpuNumber,cpuState);return true;}};Parser.register(PowerParser);return{PowerParser,};});'use strict';tr.exportTo('tr.e.importer.linux_perf',function(){const ColorScheme=tr.b.ColorScheme;const Parser=tr.e.importer.linux_perf.Parser;function RegulatorParser(importer){Parser.call(this,importer);importer.registerEventHandler('regulator_enable',RegulatorParser.prototype.regulatorEnableEvent.bind(this));importer.registerEventHandler('regulator_enable_delay',RegulatorParser.prototype.regulatorEnableDelayEvent.bind(this));importer.registerEventHandler('regulator_enable_complete',RegulatorParser.prototype.regulatorEnableCompleteEvent.bind(this));importer.registerEventHandler('regulator_disable',RegulatorParser.prototype.regulatorDisableEvent.bind(this));importer.registerEventHandler('regulator_disable_complete',RegulatorParser.prototype.regulatorDisableCompleteEvent.bind(this));importer.registerEventHandler('regulator_set_voltage',RegulatorParser.prototype.regulatorSetVoltageEvent.bind(this));importer.registerEventHandler('regulator_set_voltage_complete',RegulatorParser.prototype.regulatorSetVoltageCompleteEvent.bind(this));this.model_=importer.model_;}
const regulatorEnableRE=/name=(.+)/;const regulatorDisableRE=/name=(.+)/;const regulatorSetVoltageCompleteRE=/name=(\S+), val=(\d+)/;RegulatorParser.prototype={__proto__:Parser.prototype,getCtr_(ctrName,valueName){const ctr=this.model_.kernel.getOrCreateCounter(null,'vreg '+ctrName+' '+valueName);if(ctr.series[0]===undefined){ctr.addSeries(new tr.model.CounterSeries(valueName,ColorScheme.getColorIdForGeneralPurposeString(ctrName+'.'+valueName)));}
return ctr;},regulatorEnableEvent(eventName,cpuNum,pid,ts,eventBase){const event=regulatorEnableRE.exec(eventBase.details);if(!event)return false;const name=event[1];const ctr=this.getCtr_(name,'enabled');ctr.series[0].addCounterSample(ts,1);return true;},regulatorEnableDelayEvent(eventName,cpuNum,pid,ts,eventBase){return true;},regulatorEnableCompleteEvent(eventName,cpuNum,pid,ts,eventBase){return true;},regulatorDisableEvent(eventName,cpuNum,pid,ts,eventBase){const event=regulatorDisableRE.exec(eventBase.details);if(!event)return false;const name=event[1];const ctr=this.getCtr_(name,'enabled');ctr.series[0].addCounterSample(ts,0);return true;},regulatorDisableCompleteEvent(eventName,cpuNum,pid,ts,eventBase){return true;},regulatorSetVoltageEvent(eventName,cpuNum,pid,ts,eventBase){return true;},regulatorSetVoltageCompleteEvent(eventName,cpuNum,pid,ts,eventBase){const event=regulatorSetVoltageCompleteRE.exec(eventBase.details);if(!event)return false;const name=event[1];const voltage=parseInt(event[2]);const ctr=this.getCtr_(name,'voltage');ctr.series[0].addCounterSample(ts,voltage);return true;}};Parser.register(RegulatorParser);return{RegulatorParser,};});'use strict';tr.exportTo('tr.e.importer.linux_perf',function(){const Parser=tr.e.importer.linux_perf.Parser;function SchedParser(importer){Parser.call(this,importer);importer.registerEventHandler('sched_switch',SchedParser.prototype.schedSwitchEvent.bind(this));importer.registerEventHandler('sched_wakeup',SchedParser.prototype.schedWakeupEvent.bind(this));importer.registerEventHandler('sched_blocked_reason',SchedParser.prototype.schedBlockedEvent.bind(this));importer.registerEventHandler('sched_cpu_hotplug',SchedParser.prototype.schedCpuHotplugEvent.bind(this));}
const TestExports={};const schedSwitchRE=new RegExp('prev_comm=(.+) prev_pid=(\\d+) prev_prio=(\\d+) '+'prev_state=(\\S\\+?|\\S\\|\\S) ==> '+'next_comm=(.+) next_pid=(\\d+) next_prio=(\\d+)');const schedBlockedRE=new RegExp('pid=(\\d+) iowait=(\\d) caller=(.+)');TestExports.schedSwitchRE=schedSwitchRE;const schedWakeupRE=/comm=(.+) pid=(\d+) prio=(\d+)(?: success=\d+)? target_cpu=(\d+)/;TestExports.schedWakeupRE=schedWakeupRE;SchedParser.prototype={__proto__:Parser.prototype,schedSwitchEvent(eventName,cpuNumber,pid,ts,eventBase){const event=schedSwitchRE.exec(eventBase.details);if(!event)return false;const prevState=event[4];const nextComm=event[5];const nextPid=parseInt(event[6]);const nextPrio=parseInt(event[7]);if(eventBase.tgid!==undefined){const tgid=parseInt(eventBase.tgid);const process=this.importer.model_.getOrCreateProcess(tgid);if(!process.getThread(pid)){const thread=process.getOrCreateThread(pid);thread.name=eventBase.threadName;}}
const nextThread=this.importer.threadsByLinuxPid[nextPid];let nextName;if(nextThread){nextName=nextThread.userFriendlyName;}else{nextName=nextComm;}
const cpu=this.importer.getOrCreateCpu(cpuNumber);cpu.switchActiveThread(ts,{stateWhenDescheduled:prevState},nextPid,nextName,{comm:nextComm,tid:nextPid,prio:nextPrio});return true;},schedWakeupEvent(eventName,cpuNumber,pid,ts,eventBase){const event=schedWakeupRE.exec(eventBase.details);if(!event)return false;const fromPid=pid;const comm=event[1];pid=parseInt(event[2]);const prio=parseInt(event[3]);this.importer.markPidRunnable(ts,pid,comm,prio,fromPid);return true;},schedCpuHotplugEvent(eventName,cpuNumber,pid,ts,eventBase){const event=/cpu (\d+) (.+) error=(\d+)/.exec(eventBase.details);if(!event)return false;cpuNumber=event[1];const state=event[2];const targetCpu=this.importer.getOrCreateCpu(cpuNumber);const powerCounter=targetCpu.getOrCreateCounter('','Cpu Hotplug');if(powerCounter.numSeries===0){powerCounter.addSeries(new tr.model.CounterSeries('State',tr.b.ColorScheme.getColorIdForGeneralPurposeString(powerCounter.name+'.'+'State')));}
powerCounter.series.forEach(function(series){if(series.name==='State'){series.addCounterSample(ts,state.localeCompare('offline')?0:1);}});return true;},schedBlockedEvent(eventName,cpuNumber,pid,ts,eventBase){const event=schedBlockedRE.exec(eventBase.details);if(!event)return false;pid=parseInt(event[1]);const iowait=parseInt(event[2]);const caller=event[3];this.importer.addPidBlockedReason(ts,pid,iowait,caller);return true;}};Parser.register(SchedParser);return{SchedParser,_SchedParserTestExports:TestExports};});'use strict';tr.exportTo('tr.e.importer.linux_perf',function(){const ColorScheme=tr.b.ColorScheme;const Parser=tr.e.importer.linux_perf.Parser;function SyncParser(importer){Parser.call(this,importer);importer.registerEventHandler('sync_timeline',SyncParser.prototype.timelineEvent.bind(this));importer.registerEventHandler('sync_wait',SyncParser.prototype.syncWaitEvent.bind(this));importer.registerEventHandler('sync_pt',SyncParser.prototype.syncPtEvent.bind(this));this.model_=importer.model_;}
const syncTimelineRE=/name=(\S+) value=(\S*)/;const syncWaitRE=/(\S+) name=(\S+) state=(\d+)/;const syncPtRE=/name=(\S+) value=(\S*)/;SyncParser.prototype={__proto__:Parser.prototype,timelineEvent(eventName,cpuNumber,pid,ts,eventBase){const event=syncTimelineRE.exec(eventBase.details);if(!event)return false;const thread=this.importer.getOrCreatePseudoThread(event[1]);if(thread.lastActiveTs!==undefined){const duration=ts-thread.lastActiveTs;let value=thread.lastActiveValue;if(value===undefined)value=' ';const slice=new tr.model.ThreadSlice('',value,ColorScheme.getColorIdForGeneralPurposeString(value),thread.lastActiveTs,{},duration);thread.thread.sliceGroup.pushSlice(slice);}
thread.lastActiveTs=ts;thread.lastActiveValue=event[2];return true;},syncWaitEvent(eventName,cpuNumber,pid,ts,eventBase){const event=syncWaitRE.exec(eventBase.details);if(!event)return false;if(eventBase.tgid===undefined){return false;}
const tgid=parseInt(eventBase.tgid);const thread=this.model_.getOrCreateProcess(tgid).getOrCreateThread(pid);thread.name=eventBase.threadName;const slices=thread.kernelSliceGroup;if(!slices.isTimestampValidForBeginOrEnd(ts)){this.model_.importWarning({type:'parse_error',message:'Timestamps are moving backward.'});return false;}
const name='fence_wait("'+event[2]+'")';if(event[1]==='begin'){const slice=slices.beginSlice(null,name,ts,{'Start state':event[3]});}else if(event[1]==='end'){if(slices.openSliceCount>0){slices.endSlice(ts);}}else{return false;}
return true;},syncPtEvent(eventName,cpuNumber,pid,ts,eventBase){return!!syncPtRE.exec(eventBase.details);}};Parser.register(SyncParser);return{SyncParser,};});'use strict';tr.exportTo('tr.e.importer.linux_perf',function(){const ColorScheme=tr.b.ColorScheme;const Parser=tr.e.importer.linux_perf.Parser;function WorkqueueParser(importer){Parser.call(this,importer);importer.registerEventHandler('workqueue_execute_start',WorkqueueParser.prototype.executeStartEvent.bind(this));importer.registerEventHandler('workqueue_execute_end',WorkqueueParser.prototype.executeEndEvent.bind(this));importer.registerEventHandler('workqueue_queue_work',WorkqueueParser.prototype.executeQueueWork.bind(this));importer.registerEventHandler('workqueue_activate_work',WorkqueueParser.prototype.executeActivateWork.bind(this));}
const workqueueExecuteStartRE=/work struct (.+): function (\S+)/;const workqueueExecuteEndRE=/work struct (.+)/;WorkqueueParser.prototype={__proto__:Parser.prototype,executeStartEvent(eventName,cpuNumber,pid,ts,eventBase){const event=workqueueExecuteStartRE.exec(eventBase.details);if(!event)return false;const kthread=this.importer.getOrCreateKernelThread(eventBase.threadName,pid,pid);kthread.openSliceTS=ts;kthread.openSlice=event[2];return true;},executeEndEvent(eventName,cpuNumber,pid,ts,eventBase){const event=workqueueExecuteEndRE.exec(eventBase.details);if(!event)return false;const kthread=this.importer.getOrCreateKernelThread(eventBase.threadName,pid,pid);if(kthread.openSlice){const slice=new tr.model.ThreadSlice('',kthread.openSlice,ColorScheme.getColorIdForGeneralPurposeString(kthread.openSlice),kthread.openSliceTS,{},ts-kthread.openSliceTS);kthread.thread.sliceGroup.pushSlice(slice);}
kthread.openSlice=undefined;return true;},executeQueueWork(eventName,cpuNumber,pid,ts,eventBase){return true;},executeActivateWork(eventName,cpuNumber,pid,ts,eventBase){return true;}};Parser.register(WorkqueueParser);return{WorkqueueParser,};});'use strict';tr.exportTo('tr.e.importer.linux_perf',function(){const MONOTONIC_TO_FTRACE_GLOBAL_SYNC_ID='linux_clock_monotonic_to_ftrace_global';function FTraceImporter(model,events){this.importPriority=2;this.model_=model;this.events_=events;this.wakeups_=[];this.blockedReasons_=[];this.kernelThreadStates_={};this.buildMapFromLinuxPidsToThreads_();this.lines_=[];this.pseudoThreadCounter=1;this.parsers_=[];this.eventHandlers_={};this.haveClockSyncedMonotonicToGlobal_=false;this.clockDomainId_=tr.model.ClockDomainId.LINUX_FTRACE_GLOBAL;}
const TestExports={};const lineREWithTGID=new RegExp('^\\s*(.+)-(\\d+)\\s+\\(\\s*(\\d+|-+)\\)\\s\\[(\\d+)\\]'+'\\s+[dX.][Nnp.][Hhs.][0-9a-f.]'+'\\s+(\\d+\\.\\d+):\\s+(\\S+):\\s(.*)$');const lineParserWithTGID=function(line){const groups=lineREWithTGID.exec(line);if(!groups)return groups;let tgid=groups[3];if(tgid[0]==='-')tgid=undefined;return{threadName:groups[1],pid:groups[2],tgid,cpuNumber:groups[4],timestamp:groups[5],eventName:groups[6],details:groups[7]};};TestExports.lineParserWithTGID=lineParserWithTGID;const lineREWithIRQInfo=new RegExp('^\\s*(.+)-(\\d+)\\s+\\[(\\d+)\\]'+'\\s+[dX.][Nnp.][Hhs.][0-9a-f.]'+'\\s+(\\d+\\.\\d+):\\s+(\\S+):\\s(.*)$');const lineParserWithIRQInfo=function(line){const groups=lineREWithIRQInfo.exec(line);if(!groups)return groups;return{threadName:groups[1],pid:groups[2],cpuNumber:groups[3],timestamp:groups[4],eventName:groups[5],details:groups[6]};};TestExports.lineParserWithIRQInfo=lineParserWithIRQInfo;const lineREWithLegacyFmt=/^\s*(.+)-(\d+)\s+\[(\d+)\]\s*(\d+\.\d+):\s+(\S+):\s(.*)$/;const lineParserWithLegacyFmt=function(line){const groups=lineREWithLegacyFmt.exec(line);if(!groups){return groups;}
return{threadName:groups[1],pid:groups[2],cpuNumber:groups[3],timestamp:groups[4],eventName:groups[5],details:groups[6]};};TestExports.lineParserWithLegacyFmt=lineParserWithLegacyFmt;const traceEventClockSyncRE=/trace_event_clock_sync: parent_ts=(\d+\.?\d*)/;TestExports.traceEventClockSyncRE=traceEventClockSyncRE;const realTimeClockSyncRE=/trace_event_clock_sync: realtime_ts=(\d+)/;const genericClockSyncRE=/trace_event_clock_sync: name=([\w\-]+)/;const pseudoKernelPID=0;function autoDetectLineParser(line){if(line[0]==='{')return false;if(lineREWithTGID.test(line))return lineParserWithTGID;if(lineREWithIRQInfo.test(line))return lineParserWithIRQInfo;if(lineREWithLegacyFmt.test(line))return lineParserWithLegacyFmt;return undefined;}
TestExports.autoDetectLineParser=autoDetectLineParser;FTraceImporter.canImport=function(events){if(events instanceof tr.b.TraceStream)events=events.header;if(!(typeof(events)==='string'||events instanceof String)){return false;}
if(FTraceImporter._extractEventsFromSystraceHTML(events,false).ok){return true;}
if(FTraceImporter._extractEventsFromSystraceMultiHTML(events,false).ok){return true;}
if(/^# tracer:/.test(events))return true;const lineBreakIndex=events.indexOf('\n');if(lineBreakIndex>-1)events=events.substring(0,lineBreakIndex);if(autoDetectLineParser(events))return true;return false;};FTraceImporter._extractEventsFromSystraceHTML=function(incomingEvents,produceResult){const failure={ok:false};if(produceResult===undefined)produceResult=true;const header=incomingEvents instanceof tr.b.TraceStream?incomingEvents.header:incomingEvents;if(!/^<!DOCTYPE html>/.test(header))return failure;const r=new tr.importer.SimpleLineReader(incomingEvents);if(!r.advanceToLineMatching(/^ <script>$/))return failure;if(!r.advanceToLineMatching(/^ var linuxPerfData = "\\$/))return failure;const eventsBeginAtLine=r.curLineNumber+1;r.beginSavingLines();if(!r.advanceToLineMatching(/^ <\/script>$/))return failure;let rawEvents=r.endSavingLinesAndGetResult();rawEvents=rawEvents.slice(1,rawEvents.length-1);if(!r.advanceToLineMatching(/^<\/body>$/))return failure;if(!r.advanceToLineMatching(/^<\/html>$/))return failure;function endsWith(str,suffix){return str.indexOf(suffix,str.length-suffix.length)!==-1;}
function stripSuffix(str,suffix){if(!endsWith(str,suffix))return str;return str.substring(str,str.length-suffix.length);}
let events=[];if(produceResult){for(let i=0;i<rawEvents.length;i++){let event=rawEvents[i];event=stripSuffix(event,'\\n\\');events.push(event);}}else{events=[rawEvents[rawEvents.length-1]];}
const oldLastEvent=events[events.length-1];const newLastEvent=stripSuffix(oldLastEvent,'\\n";');if(newLastEvent===oldLastEvent)return failure;events[events.length-1]=newLastEvent;return{ok:true,lines:produceResult?events:undefined,eventsBeginAtLine};};FTraceImporter._extractEventsFromSystraceMultiHTML=function(incomingEvents,produceResult){const failure={ok:false};if(produceResult===undefined)produceResult=true;const header=incomingEvents instanceof tr.b.TraceStream?incomingEvents.header:incomingEvents;if(!(new RegExp('^<!DOCTYPE HTML>','i').test(header)))return failure;const r=new tr.importer.SimpleLineReader(incomingEvents);let events=[];let eventsBeginAtLine;while(!/^# tracer:/.test(events)){if(!r.advanceToLineMatching(/^ <script class="trace-data" type="application\/text">$/)){return failure;}
eventsBeginAtLine=r.curLineNumber+1;r.beginSavingLines();if(!r.advanceToLineMatching(/^ <\/script>$/))return failure;events=r.endSavingLinesAndGetResult();events=events.slice(1,events.length-1);}
if(!r.advanceToLineMatching(/^<\/body>$/))return failure;if(!r.advanceToLineMatching(/^<\/html>$/))return failure;return{ok:true,lines:produceResult?events:undefined,eventsBeginAtLine,};};FTraceImporter.prototype={__proto__:tr.importer.Importer.prototype,get importerName(){return'FTraceImporter';},get model(){return this.model_;},importClockSyncMarkers(){this.lazyInit_();this.forEachLine_(function(text,eventBase,cpuNumber,pid,ts){const eventName=eventBase.eventName;if(eventName!=='tracing_mark_write'&&eventName!=='0')return;if(traceEventClockSyncRE.exec(eventBase.details)||genericClockSyncRE.exec(eventBase.details)){this.traceClockSyncEvent_(eventName,cpuNumber,pid,ts,eventBase);}else if(realTimeClockSyncRE.exec(eventBase.details)){const match=realTimeClockSyncRE.exec(eventBase.details);this.model_.realtime_to_monotonic_offset_ms=ts-match[1];}}.bind(this));},importEvents(){const modelTimeTransformer=this.model_.clockSyncManager.getModelTimeTransformer(this.clockDomainId_);this.importCpuData_(modelTimeTransformer);this.buildMapFromLinuxPidsToThreads_();this.buildPerThreadCpuSlicesFromCpuState_();},registerEventHandler(eventName,handler){this.eventHandlers_[eventName]=handler;},getOrCreateCpu(cpuNumber){return this.model_.kernel.getOrCreateCpu(cpuNumber);},getOrCreateKernelThread(kernelThreadName,pid,tid){if(!this.kernelThreadStates_[kernelThreadName]){const thread=this.model_.getOrCreateProcess(pid).getOrCreateThread(tid);thread.name=kernelThreadName;this.kernelThreadStates_[kernelThreadName]={pid,thread,openSlice:undefined,openSliceTS:undefined};this.threadsByLinuxPid[pid]=thread;}
return this.kernelThreadStates_[kernelThreadName];},getOrCreateBinderKernelThread(kernelThreadName,pid,tid){const key=kernelThreadName+pid+tid;if(!this.kernelThreadStates_[key]){const thread=this.model_.getOrCreateProcess(pid).getOrCreateThread(tid);thread.name=kernelThreadName;this.kernelThreadStates_[key]={pid,thread,openSlice:undefined,openSliceTS:undefined};this.threadsByLinuxPid[pid]=thread;}
return this.kernelThreadStates_[key];},getOrCreatePseudoThread(threadName){let thread=this.kernelThreadStates_[threadName];if(!thread){thread=this.getOrCreateKernelThread(threadName,pseudoKernelPID,this.pseudoThreadCounter);this.pseudoThreadCounter++;}
return thread;},markPidRunnable(ts,pid,comm,prio,fromPid){this.wakeups_.push({ts,tid:pid,fromTid:fromPid});},addPidBlockedReason(ts,pid,iowait,caller){this.blockedReasons_.push({ts,tid:pid,iowait,caller});},buildMapFromLinuxPidsToThreads_(){this.threadsByLinuxPid={};this.model_.getAllThreads().forEach(function(thread){this.threadsByLinuxPid[thread.tid]=thread;}.bind(this));},buildPerThreadCpuSlicesFromCpuState_(){const SCHEDULING_STATE=tr.model.SCHEDULING_STATE;for(const cpuNumber in this.model_.kernel.cpus){const cpu=this.model_.kernel.cpus[cpuNumber];for(let i=0;i<cpu.slices.length;i++){const cpuSlice=cpu.slices[i];const thread=this.threadsByLinuxPid[cpuSlice.args.tid];if(!thread)continue;cpuSlice.threadThatWasRunning=thread;if(!thread.tempCpuSlices){thread.tempCpuSlices=[];}
thread.tempCpuSlices.push(cpuSlice);}}
for(const i in this.wakeups_){const wakeup=this.wakeups_[i];const thread=this.threadsByLinuxPid[wakeup.tid];if(!thread)continue;thread.tempWakeups=thread.tempWakeups||[];thread.tempWakeups.push(wakeup);}
for(const i in this.blockedReasons_){const reason=this.blockedReasons_[i];const thread=this.threadsByLinuxPid[reason.tid];if(!thread)continue;thread.tempBlockedReasons=thread.tempBlockedReasons||[];thread.tempBlockedReasons.push(reason);}
this.model_.getAllThreads().forEach(function(thread){if(thread.tempCpuSlices===undefined)return;const origSlices=thread.tempCpuSlices;delete thread.tempCpuSlices;origSlices.sort(function(x,y){return x.start-y.start;});const wakeups=thread.tempWakeups||[];delete thread.tempWakeups;wakeups.sort(function(x,y){return x.ts-y.ts;});const reasons=thread.tempBlockedReasons||[];delete thread.tempBlockedReasons;reasons.sort(function(x,y){return x.ts-y.ts;});const slices=[];if(origSlices.length){const slice=origSlices[0];if(wakeups.length&&wakeups[0].ts<slice.start){const wakeup=wakeups.shift();const wakeupDuration=slice.start-wakeup.ts;const args={'wakeup from tid':wakeup.fromTid};slices.push(new tr.model.ThreadTimeSlice(thread,SCHEDULING_STATE.RUNNABLE,'',wakeup.ts,args,wakeupDuration));}
const runningSlice=new tr.model.ThreadTimeSlice(thread,SCHEDULING_STATE.RUNNING,'',slice.start,{},slice.duration);runningSlice.cpuOnWhichThreadWasRunning=slice.cpu;slices.push(runningSlice);}
let wakeup=undefined;for(let i=1;i<origSlices.length;i++){const prevSlice=origSlices[i-1];const nextSlice=origSlices[i];let midDuration=nextSlice.start-prevSlice.end;while(wakeups.length&&wakeups[0].ts<nextSlice.start){const w=wakeups.shift();if(wakeup===undefined&&w.ts>prevSlice.end){wakeup=w;}}
let blockedReason=undefined;while(reasons.length&&reasons[0].ts<prevSlice.end){const r=reasons.shift();}
if(wakeup!==undefined&&reasons.length&&reasons[0].ts<wakeup.ts){blockedReason=reasons.shift();}
const pushSleep=function(state){if(wakeup!==undefined){midDuration=wakeup.ts-prevSlice.end;}
if(blockedReason!==undefined){const args={'kernel callsite when blocked:':blockedReason.caller};if(blockedReason.iowait){switch(state){case SCHEDULING_STATE.UNINTR_SLEEP:state=SCHEDULING_STATE.UNINTR_SLEEP_IO;break;case SCHEDULING_STATE.UNINTR_SLEEP_WAKE_KILL:state=SCHEDULING_STATE.UNINTR_SLEEP_WAKE_KILL_IO;break;case SCHEDULING_STATE.UNINTR_SLEEP_WAKING:state=SCHEDULING_STATE.UNINTR_SLEEP_WAKE_KILL_IO;break;default:}}
slices.push(new tr.model.ThreadTimeSlice(thread,state,'',prevSlice.end,args,midDuration));}else{slices.push(new tr.model.ThreadTimeSlice(thread,state,'',prevSlice.end,{},midDuration));}
if(wakeup!==undefined){const wakeupDuration=nextSlice.start-wakeup.ts;const args={'wakeup from tid':wakeup.fromTid};slices.push(new tr.model.ThreadTimeSlice(thread,SCHEDULING_STATE.RUNNABLE,'',wakeup.ts,args,wakeupDuration));wakeup=undefined;}};if(prevSlice.args.stateWhenDescheduled==='S'){pushSleep(SCHEDULING_STATE.SLEEPING);}else if(prevSlice.args.stateWhenDescheduled==='R'||prevSlice.args.stateWhenDescheduled==='R+'){slices.push(new tr.model.ThreadTimeSlice(thread,SCHEDULING_STATE.RUNNABLE,'',prevSlice.end,{},midDuration));}else if(prevSlice.args.stateWhenDescheduled==='D'){pushSleep(SCHEDULING_STATE.UNINTR_SLEEP);}else if(prevSlice.args.stateWhenDescheduled==='T'){slices.push(new tr.model.ThreadTimeSlice(thread,SCHEDULING_STATE.STOPPED,'',prevSlice.end,{},midDuration));}else if(prevSlice.args.stateWhenDescheduled==='t'){slices.push(new tr.model.ThreadTimeSlice(thread,SCHEDULING_STATE.DEBUG,'',prevSlice.end,{},midDuration));}else if(prevSlice.args.stateWhenDescheduled==='Z'){slices.push(new tr.model.ThreadTimeSlice(thread,SCHEDULING_STATE.ZOMBIE,'',prevSlice.end,{},midDuration));}else if(prevSlice.args.stateWhenDescheduled==='X'){slices.push(new tr.model.ThreadTimeSlice(thread,SCHEDULING_STATE.EXIT_DEAD,'',prevSlice.end,{},midDuration));}else if(prevSlice.args.stateWhenDescheduled==='x'){slices.push(new tr.model.ThreadTimeSlice(thread,SCHEDULING_STATE.TASK_DEAD,'',prevSlice.end,{},midDuration));}else if(prevSlice.args.stateWhenDescheduled==='K'){slices.push(new tr.model.ThreadTimeSlice(thread,SCHEDULING_STATE.WAKE_KILL,'',prevSlice.end,{},midDuration));}else if(prevSlice.args.stateWhenDescheduled==='W'){slices.push(new tr.model.ThreadTimeSlice(thread,SCHEDULING_STATE.WAKING,'',prevSlice.end,{},midDuration));}else if(prevSlice.args.stateWhenDescheduled==='D|K'){pushSleep(SCHEDULING_STATE.UNINTR_SLEEP_WAKE_KILL);}else if(prevSlice.args.stateWhenDescheduled==='D|W'){pushSleep(SCHEDULING_STATE.UNINTR_SLEEP_WAKING);}else{slices.push(new tr.model.ThreadTimeSlice(thread,SCHEDULING_STATE.UNKNOWN,'',prevSlice.end,{},midDuration));this.model_.importWarning({type:'parse_error',message:'Unrecognized sleep state: '+
prevSlice.args.stateWhenDescheduled});}
const runningSlice=new tr.model.ThreadTimeSlice(thread,SCHEDULING_STATE.RUNNING,'',nextSlice.start,{},nextSlice.duration);runningSlice.cpuOnWhichThreadWasRunning=prevSlice.cpu;slices.push(runningSlice);}
thread.timeSlices=slices;},this);},createParsers_(){const allTypeInfos=tr.e.importer.linux_perf.Parser.getAllRegisteredTypeInfos();const parsers=allTypeInfos.map(function(typeInfo){return new typeInfo.constructor(this);},this);return parsers;},registerDefaultHandlers_(){this.registerEventHandler('tracing_mark_write',FTraceImporter.prototype.traceMarkingWriteEvent_.bind(this));this.registerEventHandler('0',FTraceImporter.prototype.traceMarkingWriteEvent_.bind(this));this.registerEventHandler('tracing_mark_write:trace_event_clock_sync',function(){return true;});this.registerEventHandler('0:trace_event_clock_sync',function(){return true;});},traceClockSyncEvent_(eventName,cpuNumber,pid,ts,eventBase){let event=/name=(\w+?)\s(.+)/.exec(eventBase.details);if(event){const name=event[1];const pieces=event[2].split(' ');const args={perfTs:ts};for(let i=0;i<pieces.length;i++){const parts=pieces[i].split('=');if(parts.length!==2){throw new Error('omgbbq');}
args[parts[0]]=parts[1];}
this.model_.clockSyncManager.addClockSyncMarker(this.clockDomainId_,name,ts);return true;}
event=/name=([\w\-]+)/.exec(eventBase.details);if(event){this.model_.clockSyncManager.addClockSyncMarker(this.clockDomainId_,event[1],ts);return true;}
event=/parent_ts=(\d+\.?\d*)/.exec(eventBase.details);if(!event)return false;let monotonicTs=event[1]*1000;if(monotonicTs===0)monotonicTs=ts;if(this.haveClockSyncedMonotonicToGlobal_){return true;}
this.model_.clockSyncManager.addClockSyncMarker(this.clockDomainId_,MONOTONIC_TO_FTRACE_GLOBAL_SYNC_ID,ts);this.model_.clockSyncManager.addClockSyncMarker(tr.model.ClockDomainId.LINUX_CLOCK_MONOTONIC,MONOTONIC_TO_FTRACE_GLOBAL_SYNC_ID,monotonicTs);this.haveClockSyncedMonotonicToGlobal_=true;return true;},traceMarkingWriteEvent_(eventName,cpuNumber,pid,ts,eventBase,threadName){eventBase.details=eventBase.details.replace(/\\n.*$/,'');const event=/^\s*(\w+):\s*(.*)$/.exec(eventBase.details);if(!event){const tag=eventBase.details.substring(0,2);if(tag==='B|'||tag==='E'||tag==='E|'||tag==='X|'||tag==='C|'||tag==='S|'||tag==='F|'){eventBase.subEventName='android';}else{return false;}}else{eventBase.subEventName=event[1];eventBase.details=event[2];}
const writeEventName=eventName+':'+eventBase.subEventName;const handler=this.eventHandlers_[writeEventName];if(!handler){this.model_.importWarning({type:'parse_error',message:'Unknown trace_marking_write event '+writeEventName});return true;}
return handler(writeEventName,cpuNumber,pid,ts,eventBase,threadName);},importCpuData_(modelTimeTransformer){this.forEachLine_(function(text,eventBase,cpuNumber,pid,ts){const eventName=eventBase.eventName;const handler=this.eventHandlers_[eventName];if(!handler){this.model_.importWarning({type:'parse_error',message:'Unknown event '+eventName+' ('+text+')'});return;}
ts=modelTimeTransformer(ts);if(!handler(eventName,cpuNumber,pid,ts,eventBase)){this.model_.importWarning({type:'parse_error',message:'Malformed '+eventName+' event ('+text+')'});}}.bind(this));},parseLines_(){let extractResult=FTraceImporter._extractEventsFromSystraceHTML(this.events_,true);if(!extractResult.ok){extractResult=FTraceImporter._extractEventsFromSystraceMultiHTML(this.events_,true);}
let lineParser=undefined;if(extractResult.ok){for(const line of extractResult.lines){lineParser=this.parseLine_(line,lineParser);}}else{const r=new tr.importer.SimpleLineReader(this.events_);for(const line of r){lineParser=this.parseLine_(line,lineParser);}}},parseLine_(line,lineParser){line=line.trim();if(line.length===0)return lineParser;if(/^#/.test(line)){const clockType=/^# clock_type=([A-Z_]+)$/.exec(line);if(clockType){this.clockDomainId_=clockType[1];}
return lineParser;}
if(!lineParser){lineParser=autoDetectLineParser(line);if(!lineParser){this.model_.importWarning({type:'parse_error',message:'Cannot parse line: '+line});return lineParser;}}
const eventBase=lineParser(line);if(!eventBase){this.model_.importWarning({type:'parse_error',message:'Unrecognized line: '+line});return lineParser;}
this.lines_.push([line,eventBase,parseInt(eventBase.cpuNumber),parseInt(eventBase.pid),parseFloat(eventBase.timestamp)*1000]);return lineParser;},forEachLine_(handler){for(let i=0;i<this.lines_.length;++i){const line=this.lines_[i];handler.apply(this,line);}},lazyInit_(){this.parsers_=this.createParsers_();this.registerDefaultHandlers_();this.parseLines_();}};tr.importer.Importer.register(FTraceImporter);return{FTraceImporter,_FTraceImporterTestExports:TestExports};});'use strict';function filterDuplicateTimestamps(timestamps){const dedupedTimestamps=[];let lastTs=0;for(const ts of timestamps){if(ts-lastTs>=1){dedupedTimestamps.push(ts);lastTs=ts;}}
return dedupedTimestamps;}
tr.exportTo('tr.e.audits',function(){const VSYNC_COUNTER_PRECISIONS={'android.VSYNC-app':15,'android.VSYNC':15};const VSYNC_SLICE_PRECISIONS={'RenderWidgetHostViewAndroid::OnVSync':5,'VSYNC':10,'vblank':10,'DisplayLinkMac::GetVSyncParameters':5};const BEGIN_FRAME_SLICE_PRECISION={'DisplayScheduler::BeginFrame':10};function VSyncAuditor(model){tr.c.Auditor.call(this,model);}
VSyncAuditor.prototype={__proto__:tr.c.Auditor.prototype,runAnnotate(){this.model.device.vSyncTimestamps=this.findVSyncTimestamps(this.model);},findVSyncTimestamps(model){let times=[];let maxPrecision=Number.NEGATIVE_INFINITY;let maxTitle=undefined;function useInstead(title,precisions){const precision=precisions[title];if(precision===undefined)return false;if(title===maxTitle)return true;if(precision<=maxPrecision){if(precision===maxPrecision){model.importWarning({type:'VSyncAuditor',message:'Encountered two different VSync events ('+
maxTitle+', '+title+') with the same precision, '+'ignoring the newer one ('+title+')',showToUser:false,});}
return false;}
maxPrecision=precision;maxTitle=title;times=[];return true;}
for(const pid in model.processes){const process=model.processes[pid];for(const cid in process.counters){if(useInstead(cid,VSYNC_COUNTER_PRECISIONS)){const counter=process.counters[cid];for(let i=0;i<counter.series.length;i++){const series=counter.series[i];Array.prototype.push.apply(times,series.timestamps);}}}
for(const tid in process.threads){const thread=process.threads[tid];for(let i=0;i<thread.sliceGroup.slices.length;i++){const slice=thread.sliceGroup.slices[i];if(useInstead(slice.title,VSYNC_SLICE_PRECISIONS)){times.push(slice.start);}else if(useInstead(slice.title,BEGIN_FRAME_SLICE_PRECISION)&&slice.args.args&&slice.args.args.frame_time_us){times.push(slice.args.args.frame_time_us/1000.0);}}}}
times.sort(function(x,y){return x-y;});return filterDuplicateTimestamps(times);}};tr.c.Auditor.register(VSyncAuditor);return{VSyncAuditor,};});'use strict';tr.exportTo('tr.importer',function(){function EmptyImporter(events){this.importPriority=0;}
EmptyImporter.canImport=function(eventData){if(eventData instanceof Array&&eventData.length===0){return true;}
if(typeof(eventData)==='string'||eventData instanceof String){return eventData.length===0;}
return false;};EmptyImporter.prototype={__proto__:tr.importer.Importer.prototype,get importerName(){return'EmptyImporter';}};tr.importer.Importer.register(EmptyImporter);return{EmptyImporter,};});'use strict';tr.exportTo('tr.model.um',function(){function AnimationExpectation(parentModel,initiatorTitle,start,duration){tr.model.um.UserExpectation.call(this,parentModel,initiatorTitle,start,duration);this.frameEvents_=undefined;}
AnimationExpectation.prototype={__proto__:tr.model.um.UserExpectation.prototype,constructor:AnimationExpectation,get frameEvents(){if(this.frameEvents_){return this.frameEvents_;}
this.frameEvents_=new tr.model.EventSet();this.associatedEvents.forEach(function(event){if(event.title===tr.model.helpers.IMPL_RENDERING_STATS){this.frameEvents_.push(event);}},this);return this.frameEvents_;}};tr.model.um.UserExpectation.subTypes.register(AnimationExpectation,{stageTitle:'Animation',colorId:tr.b.ColorScheme.getColorIdForReservedName('rail_animation')});return{AnimationExpectation,};});'use strict';tr.exportTo('tr.importer',function(){function ProtoExpectation(type,initiatorType){this.type=type;this.initiatorType=initiatorType;this.start=Infinity;this.end=-Infinity;this.associatedEvents=new tr.model.EventSet();this.isAnimationBegin=false;}
ProtoExpectation.RESPONSE_TYPE='r';ProtoExpectation.ANIMATION_TYPE='a';ProtoExpectation.IGNORED_TYPE='ignored';const INITIATOR_HIERARCHY=[tr.model.um.INITIATOR_TYPE.PINCH,tr.model.um.INITIATOR_TYPE.FLING,tr.model.um.INITIATOR_TYPE.MOUSE_WHEEL,tr.model.um.INITIATOR_TYPE.SCROLL,tr.model.um.INITIATOR_TYPE.VIDEO,tr.model.um.INITIATOR_TYPE.WEBGL,tr.model.um.INITIATOR_TYPE.CSS,tr.model.um.INITIATOR_TYPE.MOUSE,tr.model.um.INITIATOR_TYPE.KEYBOARD,tr.model.um.INITIATOR_TYPE.TAP,tr.model.um.INITIATOR_TYPE.TOUCH];function combineInitiatorTypes(title1,title2){for(const item of INITIATOR_HIERARCHY){if(title1===item||title2===item)return item;}
throw new Error('Invalid titles in combineInitiatorTypes');}
ProtoExpectation.prototype={get isValid(){return this.end>this.start;},containsTypeNames(typeNames){return this.associatedEvents.some(x=>typeNames.indexOf(x.typeName)>=0);},containsSliceTitle(title){return this.associatedEvents.some(x=>title===x.title);},createInteractionRecord(model){if(this.type!==ProtoExpectation.IGNORED_TYPE&&!this.isValid){model.importWarning({type:'ProtoExpectation',message:'Please file a bug with this trace. '+this.debug(),showToUser:true});return undefined;}
const duration=this.end-this.start;let ir=undefined;switch(this.type){case ProtoExpectation.RESPONSE_TYPE:ir=new tr.model.um.ResponseExpectation(model,this.initiatorType,this.start,duration,this.isAnimationBegin);break;case ProtoExpectation.ANIMATION_TYPE:ir=new tr.model.um.AnimationExpectation(model,this.initiatorType,this.start,duration);break;}
if(!ir)return undefined;ir.sourceEvents.addEventSet(this.associatedEvents);function pushAssociatedEvents(event){ir.associatedEvents.push(event);if(event.associatedEvents){ir.associatedEvents.addEventSet(event.associatedEvents);}}
this.associatedEvents.forEach(function(event){pushAssociatedEvents(event);if(event.subSlices){event.subSlices.forEach(pushAssociatedEvents);}});return ir;},merge(other){this.initiatorType=combineInitiatorTypes(this.initiatorType,other.initiatorType);this.associatedEvents.addEventSet(other.associatedEvents);this.start=Math.min(this.start,other.start);this.end=Math.max(this.end,other.end);if(other.isAnimationBegin){this.isAnimationBegin=true;}},pushEvent(event){this.start=Math.min(this.start,event.start);this.end=Math.max(this.end,event.end);this.associatedEvents.push(event);},containsTimestampInclusive(timestamp){return(this.start<=timestamp)&&(timestamp<=this.end);},intersects(other){return(other.start<this.end)&&(other.end>this.start);},isNear(event,threshold){return(this.end+threshold)>event.start;},debug(){let debugString=this.type+'(';debugString+=parseInt(this.start)+' ';debugString+=parseInt(this.end);this.associatedEvents.forEach(function(event){debugString+=' '+event.typeName;});return debugString+')';}};return{ProtoExpectation,};});'use strict';tr.exportTo('tr.importer',function(){const ProtoExpectation=tr.importer.ProtoExpectation;const INITIATOR_TYPE=tr.model.um.INITIATOR_TYPE;const INPUT_TYPE=tr.e.cc.INPUT_EVENT_TYPE_NAMES;const KEYBOARD_TYPE_NAMES=[INPUT_TYPE.CHAR,INPUT_TYPE.KEY_DOWN_RAW,INPUT_TYPE.KEY_DOWN,INPUT_TYPE.KEY_UP];const MOUSE_RESPONSE_TYPE_NAMES=[INPUT_TYPE.CLICK,INPUT_TYPE.CONTEXT_MENU];const MOUSE_WHEEL_TYPE_NAMES=[INPUT_TYPE.MOUSE_WHEEL];const MOUSE_DRAG_TYPE_NAMES=[INPUT_TYPE.MOUSE_DOWN,INPUT_TYPE.MOUSE_MOVE,INPUT_TYPE.MOUSE_UP];const TAP_TYPE_NAMES=[INPUT_TYPE.TAP,INPUT_TYPE.TAP_CANCEL,INPUT_TYPE.TAP_DOWN];const PINCH_TYPE_NAMES=[INPUT_TYPE.PINCH_BEGIN,INPUT_TYPE.PINCH_END,INPUT_TYPE.PINCH_UPDATE];const FLING_TYPE_NAMES=[INPUT_TYPE.FLING_CANCEL,INPUT_TYPE.FLING_START];const TOUCH_TYPE_NAMES=[INPUT_TYPE.TOUCH_END,INPUT_TYPE.TOUCH_MOVE,INPUT_TYPE.TOUCH_START];const SCROLL_TYPE_NAMES=[INPUT_TYPE.SCROLL_BEGIN,INPUT_TYPE.SCROLL_END,INPUT_TYPE.SCROLL_UPDATE];const ALL_HANDLED_TYPE_NAMES=[].concat(KEYBOARD_TYPE_NAMES,MOUSE_RESPONSE_TYPE_NAMES,MOUSE_WHEEL_TYPE_NAMES,MOUSE_DRAG_TYPE_NAMES,PINCH_TYPE_NAMES,TAP_TYPE_NAMES,FLING_TYPE_NAMES,TOUCH_TYPE_NAMES,SCROLL_TYPE_NAMES);const RENDERER_FLING_TITLE='InputHandlerProxy::HandleGestureFling::started';const PLAYBACK_EVENT_TITLE='VideoPlayback';const CSS_ANIMATION_TITLE='Animation';const INPUT_MERGE_THRESHOLD_MS=200;const ANIMATION_MERGE_THRESHOLD_MS=32;const MOUSE_WHEEL_THRESHOLD_MS=40;const MOUSE_MOVE_THRESHOLD_MS=40;function compareEvents(x,y){if(x.start!==y.start){return x.start-y.start;}
if(x.end!==y.end){return x.end-y.end;}
if(x.guid&&y.guid){return x.guid-y.guid;}
return 0;}
function forEventTypesIn(events,typeNames,cb,opt_this){events.forEach(function(event){if(typeNames.indexOf(event.typeName)>=0){cb.call(opt_this,event);}});}
function causedFrame(event){return event.associatedEvents.some(x=>x.title===tr.model.helpers.IMPL_RENDERING_STATS);}
function getSortedFrameEventsByProcess(modelHelper){const frameEventsByPid={};for(const[pid,rendererHelper]of
Object.entries(modelHelper.rendererHelpers)){frameEventsByPid[pid]=rendererHelper.getFrameEventsInRange(tr.model.helpers.IMPL_FRAMETIME_TYPE,modelHelper.model.bounds);}
return frameEventsByPid;}
function getSortedInputEvents(modelHelper){const inputEvents=[];const browserProcess=modelHelper.browserHelper.process;const mainThread=browserProcess.findAtMostOneThreadNamed('CrBrowserMain');for(const slice of mainThread.asyncSliceGroup.getDescendantEvents()){if(!slice.isTopLevel)continue;if(!(slice instanceof tr.e.cc.InputLatencyAsyncSlice))continue;if(isNaN(slice.start)||isNaN(slice.duration)||isNaN(slice.end)){continue;}
inputEvents.push(slice);}
return inputEvents.sort(compareEvents);}
function findProtoExpectations(modelHelper,sortedInputEvents){const protoExpectations=[];const handlers=[handleKeyboardEvents,handleMouseResponseEvents,handleMouseWheelEvents,handleMouseDragEvents,handleTapResponseEvents,handlePinchEvents,handleFlingEvents,handleTouchEvents,handleScrollEvents,handleCSSAnimations,handleWebGLAnimations,handleVideoAnimations];handlers.forEach(function(handler){protoExpectations.push.apply(protoExpectations,handler(modelHelper,sortedInputEvents));});protoExpectations.sort(compareEvents);return protoExpectations;}
function handleKeyboardEvents(modelHelper,sortedInputEvents){const protoExpectations=[];forEventTypesIn(sortedInputEvents,KEYBOARD_TYPE_NAMES,function(event){const pe=new ProtoExpectation(ProtoExpectation.RESPONSE_TYPE,INITIATOR_TYPE.KEYBOARD);pe.pushEvent(event);protoExpectations.push(pe);});return protoExpectations;}
function handleMouseResponseEvents(modelHelper,sortedInputEvents){const protoExpectations=[];forEventTypesIn(sortedInputEvents,MOUSE_RESPONSE_TYPE_NAMES,function(event){const pe=new ProtoExpectation(ProtoExpectation.RESPONSE_TYPE,INITIATOR_TYPE.MOUSE);pe.pushEvent(event);protoExpectations.push(pe);});return protoExpectations;}
function handleMouseWheelEvents(modelHelper,sortedInputEvents){const protoExpectations=[];let currentPE=undefined;let prevEvent_=undefined;forEventTypesIn(sortedInputEvents,MOUSE_WHEEL_TYPE_NAMES,function(event){const prevEvent=prevEvent_;prevEvent_=event;if(currentPE&&(prevEvent.start+MOUSE_WHEEL_THRESHOLD_MS)>=event.start){if(currentPE.type===ProtoExpectation.ANIMATION_TYPE){currentPE.pushEvent(event);}else{currentPE=new ProtoExpectation(ProtoExpectation.ANIMATION_TYPE,INITIATOR_TYPE.MOUSE_WHEEL);currentPE.pushEvent(event);protoExpectations.push(currentPE);}
return;}
currentPE=new ProtoExpectation(ProtoExpectation.RESPONSE_TYPE,INITIATOR_TYPE.MOUSE_WHEEL);currentPE.pushEvent(event);protoExpectations.push(currentPE);});return protoExpectations;}
function handleMouseDragEvents(modelHelper,sortedInputEvents){const protoExpectations=[];let currentPE=undefined;let mouseDownEvent=undefined;forEventTypesIn(sortedInputEvents,MOUSE_DRAG_TYPE_NAMES,function(event){switch(event.typeName){case INPUT_TYPE.MOUSE_DOWN:if(causedFrame(event)){const pe=new ProtoExpectation(ProtoExpectation.RESPONSE_TYPE,INITIATOR_TYPE.MOUSE);pe.pushEvent(event);protoExpectations.push(pe);}else{mouseDownEvent=event;}
break;case INPUT_TYPE.MOUSE_MOVE:if(!causedFrame(event)){const pe=new ProtoExpectation(ProtoExpectation.IGNORED_TYPE);pe.pushEvent(event);protoExpectations.push(pe);}else if(!currentPE||!currentPE.isNear(event,MOUSE_MOVE_THRESHOLD_MS)){currentPE=new ProtoExpectation(ProtoExpectation.RESPONSE_TYPE,INITIATOR_TYPE.MOUSE);currentPE.pushEvent(event);if(mouseDownEvent){currentPE.associatedEvents.push(mouseDownEvent);mouseDownEvent=undefined;}
protoExpectations.push(currentPE);}else{if(currentPE.type===ProtoExpectation.ANIMATION_TYPE){currentPE.pushEvent(event);}else{currentPE=new ProtoExpectation(ProtoExpectation.ANIMATION_TYPE,INITIATOR_TYPE.MOUSE);currentPE.pushEvent(event);protoExpectations.push(currentPE);}}
break;case INPUT_TYPE.MOUSE_UP:if(!mouseDownEvent){const pe=new ProtoExpectation(causedFrame(event)?ProtoExpectation.RESPONSE_TYPE:ProtoExpectation.IGNORED_TYPE,INITIATOR_TYPE.MOUSE);pe.pushEvent(event);protoExpectations.push(pe);break;}
if(currentPE){currentPE.pushEvent(event);}else{currentPE=new ProtoExpectation(ProtoExpectation.RESPONSE_TYPE,INITIATOR_TYPE.MOUSE);if(mouseDownEvent){currentPE.associatedEvents.push(mouseDownEvent);}
currentPE.pushEvent(event);protoExpectations.push(currentPE);}
mouseDownEvent=undefined;currentPE=undefined;break;}});if(mouseDownEvent){currentPE=new ProtoExpectation(ProtoExpectation.IGNORED_TYPE);currentPE.pushEvent(mouseDownEvent);protoExpectations.push(currentPE);}
return protoExpectations;}
function handleTapResponseEvents(modelHelper,sortedInputEvents){const protoExpectations=[];let currentPE=undefined;forEventTypesIn(sortedInputEvents,TAP_TYPE_NAMES,function(event){switch(event.typeName){case INPUT_TYPE.TAP_DOWN:currentPE=new ProtoExpectation(ProtoExpectation.RESPONSE_TYPE,INITIATOR_TYPE.TAP);currentPE.pushEvent(event);protoExpectations.push(currentPE);break;case INPUT_TYPE.TAP:if(currentPE){currentPE.pushEvent(event);}else{currentPE=new ProtoExpectation(ProtoExpectation.RESPONSE_TYPE,INITIATOR_TYPE.TAP);currentPE.pushEvent(event);protoExpectations.push(currentPE);}
currentPE=undefined;break;case INPUT_TYPE.TAP_CANCEL:if(!currentPE){const pe=new ProtoExpectation(ProtoExpectation.IGNORED_TYPE);pe.pushEvent(event);protoExpectations.push(pe);break;}
if(currentPE.isNear(event,INPUT_MERGE_THRESHOLD_MS)){currentPE.pushEvent(event);}else{currentPE=new ProtoExpectation(ProtoExpectation.RESPONSE_TYPE,INITIATOR_TYPE.TAP);currentPE.pushEvent(event);protoExpectations.push(currentPE);}
currentPE=undefined;break;}});return protoExpectations;}
function handlePinchEvents(modelHelper,sortedInputEvents){const protoExpectations=[];let currentPE=undefined;let sawFirstUpdate=false;const modelBounds=modelHelper.model.bounds;forEventTypesIn(sortedInputEvents,PINCH_TYPE_NAMES,function(event){switch(event.typeName){case INPUT_TYPE.PINCH_BEGIN:if(currentPE&¤tPE.isNear(event,INPUT_MERGE_THRESHOLD_MS)){currentPE.pushEvent(event);break;}
currentPE=new ProtoExpectation(ProtoExpectation.RESPONSE_TYPE,INITIATOR_TYPE.PINCH);currentPE.pushEvent(event);currentPE.isAnimationBegin=true;protoExpectations.push(currentPE);sawFirstUpdate=false;break;case INPUT_TYPE.PINCH_UPDATE:if(!currentPE||((currentPE.type===ProtoExpectation.RESPONSE_TYPE)&&sawFirstUpdate)||!currentPE.isNear(event,INPUT_MERGE_THRESHOLD_MS)){currentPE=new ProtoExpectation(ProtoExpectation.ANIMATION_TYPE,INITIATOR_TYPE.PINCH);currentPE.pushEvent(event);protoExpectations.push(currentPE);}else{currentPE.pushEvent(event);sawFirstUpdate=true;}
break;case INPUT_TYPE.PINCH_END:if(currentPE){currentPE.pushEvent(event);}else{const pe=new ProtoExpectation(ProtoExpectation.IGNORED_TYPE);pe.pushEvent(event);protoExpectations.push(pe);}
currentPE=undefined;break;}});return protoExpectations;}
function handleFlingEvents(modelHelper,sortedInputEvents){const protoExpectations=[];let currentPE=undefined;function isRendererFling(event){return event.title===RENDERER_FLING_TITLE;}
const browserHelper=modelHelper.browserHelper;const flingEvents=browserHelper.getAllAsyncSlicesMatching(isRendererFling);forEventTypesIn(sortedInputEvents,FLING_TYPE_NAMES,function(event){flingEvents.push(event);});flingEvents.sort(compareEvents);flingEvents.forEach(function(event){if(event.title===RENDERER_FLING_TITLE){if(currentPE){currentPE.pushEvent(event);}else{currentPE=new ProtoExpectation(ProtoExpectation.ANIMATION_TYPE,INITIATOR_TYPE.FLING);currentPE.pushEvent(event);protoExpectations.push(currentPE);}
return;}
switch(event.typeName){case INPUT_TYPE.FLING_START:if(currentPE){modelHelper.model.importWarning({type:'UserModelBuilder',message:'Please file a bug with this trace: FlingStart',showToUser:true});currentPE.pushEvent(event);}else{currentPE=new ProtoExpectation(ProtoExpectation.ANIMATION_TYPE,INITIATOR_TYPE.FLING);currentPE.pushEvent(event);currentPE.end=0;protoExpectations.push(currentPE);}
break;case INPUT_TYPE.FLING_CANCEL:if(currentPE){currentPE.pushEvent(event);currentPE.end=event.start;currentPE=undefined;}else{const pe=new ProtoExpectation(ProtoExpectation.IGNORED_TYPE);pe.pushEvent(event);protoExpectations.push(pe);}
break;}});if(currentPE&&!currentPE.end){currentPE.end=modelHelper.model.bounds.max;}
return protoExpectations;}
function handleTouchEvents(modelHelper,sortedInputEvents){const protoExpectations=[];let currentPE=undefined;let sawFirstMove=false;forEventTypesIn(sortedInputEvents,TOUCH_TYPE_NAMES,function(event){switch(event.typeName){case INPUT_TYPE.TOUCH_START:if(currentPE){currentPE.pushEvent(event);}else{currentPE=new ProtoExpectation(ProtoExpectation.RESPONSE_TYPE,INITIATOR_TYPE.TOUCH);currentPE.pushEvent(event);currentPE.isAnimationBegin=true;protoExpectations.push(currentPE);sawFirstMove=false;}
break;case INPUT_TYPE.TOUCH_MOVE:if(!currentPE){currentPE=new ProtoExpectation(ProtoExpectation.ANIMATION_TYPE,INITIATOR_TYPE.TOUCH);currentPE.pushEvent(event);protoExpectations.push(currentPE);break;}
if((sawFirstMove&&(currentPE.type===ProtoExpectation.RESPONSE_TYPE))||!currentPE.isNear(event,INPUT_MERGE_THRESHOLD_MS)){const prevEnd=currentPE.end;currentPE=new ProtoExpectation(ProtoExpectation.ANIMATION_TYPE,INITIATOR_TYPE.TOUCH);currentPE.pushEvent(event);currentPE.start=prevEnd;protoExpectations.push(currentPE);}else{currentPE.pushEvent(event);sawFirstMove=true;}
break;case INPUT_TYPE.TOUCH_END:if(!currentPE){const pe=new ProtoExpectation(ProtoExpectation.IGNORED_TYPE);pe.pushEvent(event);protoExpectations.push(pe);break;}
if(currentPE.isNear(event,INPUT_MERGE_THRESHOLD_MS)){currentPE.pushEvent(event);}else{const pe=new ProtoExpectation(ProtoExpectation.IGNORED_TYPE);pe.pushEvent(event);protoExpectations.push(pe);}
currentPE=undefined;break;}});return protoExpectations;}
function handleScrollEvents(modelHelper,sortedInputEvents){const protoExpectations=[];let currentPE=undefined;let sawFirstUpdate=false;forEventTypesIn(sortedInputEvents,SCROLL_TYPE_NAMES,function(event){switch(event.typeName){case INPUT_TYPE.SCROLL_BEGIN:currentPE=new ProtoExpectation(ProtoExpectation.RESPONSE_TYPE,INITIATOR_TYPE.SCROLL);currentPE.pushEvent(event);currentPE.isAnimationBegin=true;protoExpectations.push(currentPE);sawFirstUpdate=false;break;case INPUT_TYPE.SCROLL_UPDATE:if(currentPE){if(currentPE.isNear(event,INPUT_MERGE_THRESHOLD_MS)&&((currentPE.type===ProtoExpectation.ANIMATION_TYPE)||!sawFirstUpdate)){currentPE.pushEvent(event);sawFirstUpdate=true;}else{currentPE=new ProtoExpectation(ProtoExpectation.ANIMATION_TYPE,INITIATOR_TYPE.SCROLL);currentPE.pushEvent(event);protoExpectations.push(currentPE);}}else{currentPE=new ProtoExpectation(ProtoExpectation.ANIMATION_TYPE,INITIATOR_TYPE.SCROLL);currentPE.pushEvent(event);protoExpectations.push(currentPE);}
break;case INPUT_TYPE.SCROLL_END:if(!currentPE){modelHelper.model.importWarning({type:'UserModelBuilder',message:'Please file a bug with this trace: ScrollEnd',showToUser:true});const pe=new ProtoExpectation(ProtoExpectation.IGNORED_TYPE);pe.pushEvent(event);protoExpectations.push(pe);break;}
currentPE.pushEvent(event);break;}});return protoExpectations;}
function handleVideoAnimations(modelHelper,sortedInputEvents){const events=[];for(const pid in modelHelper.rendererHelpers){for(const tid in modelHelper.rendererHelpers[pid].process.threads){for(const asyncSlice of
modelHelper.rendererHelpers[pid].process.threads[tid].asyncSliceGroup.slices){if(asyncSlice.title===PLAYBACK_EVENT_TITLE){events.push(asyncSlice);}}}}
events.sort(tr.importer.compareEvents);const protoExpectations=[];for(const event of events){const currentPE=new ProtoExpectation(ProtoExpectation.ANIMATION_TYPE,INITIATOR_TYPE.VIDEO);currentPE.start=event.start;currentPE.end=event.end;currentPE.pushEvent(event);protoExpectations.push(currentPE);}
return protoExpectations;}
function handleCSSAnimations(modelHelper,sortedInputEvents){const animationEvents=modelHelper.browserHelper.getAllAsyncSlicesMatching(function(event){return((event.title===CSS_ANIMATION_TITLE)&&event.isTopLevel&&(event.duration>0));});const animationRanges=[];function pushAnimationRange(start,end,animation){const range=tr.b.math.Range.fromExplicitRange(start,end);range.animation=animation;animationRanges.push(range);}
animationEvents.forEach(function(animation){if(animation.subSlices.length===0){pushAnimationRange(animation.start,animation.end,animation);}else{let start=undefined;animation.subSlices.forEach(function(sub){if((sub.args.data.state==='running')&&(start===undefined)){start=sub.start;}else if((sub.args.data.state==='paused')||(sub.args.data.state==='idle')||(sub.args.data.state==='finished')){if(start===undefined){start=modelHelper.model.bounds.min;}
pushAnimationRange(start,sub.start,animation);start=undefined;}});if(start!==undefined){pushAnimationRange(start,animation.end,animation);}}});return animationRanges.map(function(range){const protoExpectation=new ProtoExpectation(ProtoExpectation.ANIMATION_TYPE,INITIATOR_TYPE.CSS);protoExpectation.start=range.min;protoExpectation.end=range.max;protoExpectation.associatedEvents.push(range.animation);return protoExpectation;});}
function findWebGLEvents(modelHelper,mailboxEvents,animationEvents){for(const event of modelHelper.model.getDescendantEvents()){if(event.title==='DrawingBuffer::prepareMailbox'){mailboxEvents.push(event);}else if(event.title==='PageAnimator::serviceScriptedAnimations'){animationEvents.push(event);}}}
function findMailboxEventsNearAnimationEvents(mailboxEvents,animationEvents){if(animationEvents.length===0)return[];mailboxEvents.sort(compareEvents);animationEvents.sort(compareEvents);const animationIterator=animationEvents[Symbol.iterator]();let animationEvent=animationIterator.next().value;const filteredEvents=[];for(const event of mailboxEvents){while(animationEvent&&(animationEvent.start<(event.start-ANIMATION_MERGE_THRESHOLD_MS))){animationEvent=animationIterator.next().value;}
if(!animationEvent)break;if(animationEvent.start<(event.start+ANIMATION_MERGE_THRESHOLD_MS)){filteredEvents.push(event);}}
return filteredEvents;}
function createProtoExpectationsFromMailboxEvents(mailboxEvents){const protoExpectations=[];let currentPE=undefined;for(const event of mailboxEvents){if(currentPE===undefined||!currentPE.isNear(event,ANIMATION_MERGE_THRESHOLD_MS)){currentPE=new ProtoExpectation(ProtoExpectation.ANIMATION_TYPE,INITIATOR_TYPE.WEBGL);currentPE.pushEvent(event);protoExpectations.push(currentPE);}else{currentPE.pushEvent(event);}}
return protoExpectations;}
function handleWebGLAnimations(modelHelper,sortedInputEvents){const prepareMailboxEvents=[];const scriptedAnimationEvents=[];findWebGLEvents(modelHelper,prepareMailboxEvents,scriptedAnimationEvents);const webGLMailboxEvents=findMailboxEventsNearAnimationEvents(prepareMailboxEvents,scriptedAnimationEvents);return createProtoExpectationsFromMailboxEvents(webGLMailboxEvents);}
function postProcessProtoExpectations(modelHelper,protoExpectations){protoExpectations=findFrameEventsForAnimations(modelHelper,protoExpectations);protoExpectations=mergeIntersectingResponses(protoExpectations);protoExpectations=mergeIntersectingAnimations(protoExpectations);protoExpectations=fixResponseAnimationStarts(protoExpectations);protoExpectations=fixTapResponseTouchAnimations(protoExpectations);return protoExpectations;}
function mergeIntersectingResponses(protoExpectations){const newPEs=[];while(protoExpectations.length){const pe=protoExpectations.shift();newPEs.push(pe);if(pe.type!==ProtoExpectation.RESPONSE_TYPE)continue;for(let i=0;i<protoExpectations.length;++i){const otherPE=protoExpectations[i];if(otherPE.type!==pe.type)continue;if(!otherPE.intersects(pe))continue;const typeNames=pe.associatedEvents.map(function(event){return event.typeName;});if(otherPE.containsTypeNames(typeNames))continue;pe.merge(otherPE);protoExpectations.splice(i,1);--i;}}
return newPEs;}
function mergeIntersectingAnimations(protoExpectations){const newPEs=[];while(protoExpectations.length){const pe=protoExpectations.shift();newPEs.push(pe);if(pe.type!==ProtoExpectation.ANIMATION_TYPE)continue;const isCSS=pe.initiatorType===INITIATOR_TYPE.CSS;const isFling=pe.containsTypeNames([INPUT_TYPE.FLING_START]);const isVideo=pe.initiatorType===INITIATOR_TYPE.VIDEO;for(let i=0;i<protoExpectations.length;++i){const otherPE=protoExpectations[i];if(otherPE.type!==pe.type)continue;if((isCSS&&otherPE.initiatorType!==INITIATOR_TYPE.CSS)||isFling!==otherPE.containsTypeNames([INPUT_TYPE.FLING_START])||isVideo&&otherPE.initiatorType!==INITIATOR_TYPE.VIDEO){continue;}
if(isCSS){if(!pe.isNear(otherPE,ANIMATION_MERGE_THRESHOLD_MS)){continue;}}else if(!otherPE.intersects(pe)){continue;}
pe.merge(otherPE);protoExpectations.splice(i,1);--i;}}
return newPEs;}
function fixResponseAnimationStarts(protoExpectations){protoExpectations.forEach(function(ape){if(ape.type!==ProtoExpectation.ANIMATION_TYPE){return;}
protoExpectations.forEach(function(rpe){if(rpe.type!==ProtoExpectation.RESPONSE_TYPE){return;}
if(!ape.containsTimestampInclusive(rpe.end)){return;}
if(ape.containsTimestampInclusive(rpe.start)){return;}
ape.start=rpe.end;});});return protoExpectations;}
function fixTapResponseTouchAnimations(protoExpectations){function isTapResponse(pe){return(pe.type===ProtoExpectation.RESPONSE_TYPE)&&pe.containsTypeNames([INPUT_TYPE.TAP]);}
function isTouchAnimation(pe){return(pe.type===ProtoExpectation.ANIMATION_TYPE)&&pe.containsTypeNames([INPUT_TYPE.TOUCH_MOVE])&&!pe.containsTypeNames([INPUT_TYPE.SCROLL_UPDATE,INPUT_TYPE.PINCH_UPDATE]);}
const newPEs=[];while(protoExpectations.length){const pe=protoExpectations.shift();newPEs.push(pe);const peIsTapResponse=isTapResponse(pe);const peIsTouchAnimation=isTouchAnimation(pe);if(!peIsTapResponse&&!peIsTouchAnimation){continue;}
for(let i=0;i<protoExpectations.length;++i){const otherPE=protoExpectations[i];if(!otherPE.intersects(pe))continue;if(peIsTapResponse&&!isTouchAnimation(otherPE))continue;if(peIsTouchAnimation&&!isTapResponse(otherPE))continue;pe.type=ProtoExpectation.RESPONSE_TYPE;pe.merge(otherPE);protoExpectations.splice(i,1);--i;}}
return newPEs;}
function findFrameEventsForAnimations(modelHelper,protoExpectations){const newPEs=[];const frameEventsByPid=getSortedFrameEventsByProcess(modelHelper);for(const pe of protoExpectations){if(pe.type!==ProtoExpectation.ANIMATION_TYPE){newPEs.push(pe);continue;}
const frameEvents=[];for(const pid of Object.keys(modelHelper.rendererHelpers)){const range=tr.b.math.Range.fromExplicitRange(pe.start,pe.end);frameEvents.push.apply(frameEvents,range.filterArray(frameEventsByPid[pid],e=>e.start));}
if(frameEvents.length===0&&!(pe.initiatorType===INITIATOR_TYPE.WEBGL)){pe.type=ProtoExpectation.IGNORED_TYPE;newPEs.push(pe);continue;}
pe.associatedEvents.addEventSet(frameEvents);newPEs.push(pe);}
return newPEs;}
function checkAllInputEventsHandled(modelHelper,sortedInputEvents,protoExpectations){const handledEvents=[];protoExpectations.forEach(function(protoExpectation){protoExpectation.associatedEvents.forEach(function(event){if((event.title===CSS_ANIMATION_TITLE)&&(event.subSlices.length>0)){return;}
if((handledEvents.indexOf(event)>=0)&&(event.title!==tr.model.helpers.IMPL_RENDERING_STATS)){modelHelper.model.importWarning({type:'UserModelBuilder',message:'Please file a bug with this trace: '+`double-handled event: ${event.typeName} @ ${event.start}`,showToUser:true});return;}
handledEvents.push(event);});});sortedInputEvents.forEach(function(event){if(handledEvents.indexOf(event)<0){modelHelper.model.importWarning({type:'UserModelBuilder',message:'Please file a bug with this trace: '+`double-handled event: ${event.typeName} @ ${event.start}`,showToUser:true});}});}
function findInputExpectations(modelHelper){const sortedInputEvents=getSortedInputEvents(modelHelper);let protoExpectations=findProtoExpectations(modelHelper,sortedInputEvents);protoExpectations=postProcessProtoExpectations(modelHelper,protoExpectations);checkAllInputEventsHandled(modelHelper,sortedInputEvents,protoExpectations);const expectations=[];protoExpectations.forEach(function(protoExpectation){const ir=protoExpectation.createInteractionRecord(modelHelper.model);if(ir){expectations.push(ir);}});return expectations;}
return{findInputExpectations,compareEvents,CSS_ANIMATION_TITLE,};});'use strict';tr.exportTo('tr.model.um',function(){const LOAD_SUBTYPE_NAMES={SUCCESSFUL:'Successful',FAILED:'Failed',};const DOES_LOAD_SUBTYPE_NAME_EXIST={};for(const key in LOAD_SUBTYPE_NAMES){DOES_LOAD_SUBTYPE_NAME_EXIST[LOAD_SUBTYPE_NAMES[key]]=true;}
function LoadExpectation(parentModel,initiatorTitle,start,duration){if(!DOES_LOAD_SUBTYPE_NAME_EXIST[initiatorTitle]){throw new Error(initiatorTitle+' is not in LOAD_SUBTYPE_NAMES');}
tr.model.um.UserExpectation.call(this,parentModel,initiatorTitle,start,duration);this.renderProcess=undefined;this.renderMainThread=undefined;this.routingId=undefined;this.parentRoutingId=undefined;this.loadFinishedEvent=undefined;}
LoadExpectation.prototype={__proto__:tr.model.um.UserExpectation.prototype,constructor:LoadExpectation};tr.model.um.UserExpectation.subTypes.register(LoadExpectation,{stageTitle:'Load',colorId:tr.b.ColorScheme.getColorIdForReservedName('rail_load')});return{LOAD_SUBTYPE_NAMES,LoadExpectation,};});'use strict';tr.exportTo('tr.importer',function(){const NAVIGATION_START='NavigationTiming navigationStart';const FIRST_CONTENTFUL_PAINT_TITLE='firstContentfulPaint';function findLoadExpectations(modelHelper){const events=[];for(const event of modelHelper.model.getDescendantEvents()){if((event.title===NAVIGATION_START)||(event.title===FIRST_CONTENTFUL_PAINT_TITLE)){events.push(event);}}
events.sort(tr.importer.compareEvents);const loads=[];let startEvent=undefined;for(const event of events){if(event.title===NAVIGATION_START){startEvent=event;}else if(event.title===FIRST_CONTENTFUL_PAINT_TITLE){if(startEvent){loads.push(new tr.model.um.LoadExpectation(modelHelper.model,tr.model.um.LOAD_SUBTYPE_NAMES.SUCCESSFUL,startEvent.start,event.start-startEvent.start));startEvent=undefined;}}}
if(startEvent){loads.push(new tr.model.um.LoadExpectation(modelHelper.model,tr.model.um.LOAD_SUBTYPE_NAMES.SUCCESSFUL,startEvent.start,modelHelper.model.bounds.max-startEvent.start));}
return loads;}
return{findLoadExpectations,};});'use strict';tr.exportTo('tr.model.um',function(){function StartupExpectation(parentModel,start,duration){tr.model.um.UserExpectation.call(this,parentModel,'',start,duration);}
StartupExpectation.prototype={__proto__:tr.model.um.UserExpectation.prototype,constructor:StartupExpectation};tr.model.um.UserExpectation.subTypes.register(StartupExpectation,{stageTitle:'Startup',colorId:tr.b.ColorScheme.getColorIdForReservedName('startup')});return{StartupExpectation,};});'use strict';tr.exportTo('tr.importer',function(){function getAllFrameEvents(modelHelper){const frameEvents=[];frameEvents.push.apply(frameEvents,modelHelper.browserHelper.getFrameEventsInRange(tr.model.helpers.IMPL_FRAMETIME_TYPE,modelHelper.model.bounds));for(const renderer of Object.values(modelHelper.rendererHelpers)){frameEvents.push.apply(frameEvents,renderer.getFrameEventsInRange(tr.model.helpers.IMPL_FRAMETIME_TYPE,modelHelper.model.bounds));}
return frameEvents.sort(tr.importer.compareEvents);}
function getStartupEvents(modelHelper){function isStartupSlice(slice){return slice.title==='BrowserMainLoop::CreateThreads';}
const events=modelHelper.browserHelper.getAllAsyncSlicesMatching(isStartupSlice);const deduper=new tr.model.EventSet();events.forEach(function(event){const sliceGroup=event.parentContainer.sliceGroup;const slice=sliceGroup&&sliceGroup.findFirstSlice();if(slice){deduper.push(slice);}});return deduper.toArray();}
function findStartupExpectations(modelHelper){const openingEvents=getStartupEvents(modelHelper);const closingEvents=getAllFrameEvents(modelHelper);const startups=[];openingEvents.forEach(function(openingEvent){closingEvents.forEach(function(closingEvent){if(openingEvent.closingEvent)return;if(closingEvent.openingEvent)return;if(closingEvent.start<=openingEvent.start)return;if(openingEvent.parentContainer.parent.pid!==closingEvent.parentContainer.parent.pid){return;}
openingEvent.closingEvent=closingEvent;closingEvent.openingEvent=openingEvent;const se=new tr.model.um.StartupExpectation(modelHelper.model,openingEvent.start,closingEvent.end-openingEvent.start);se.associatedEvents.push(openingEvent);se.associatedEvents.push(closingEvent);startups.push(se);});});return startups;}
return{findStartupExpectations,};});'use strict';tr.exportTo('tr.model',function(){function getAssociatedEvents(irs){const allAssociatedEvents=new tr.model.EventSet();irs.forEach(function(ir){ir.associatedEvents.forEach(function(event){if(event instanceof tr.model.FlowEvent)return;allAssociatedEvents.push(event);});});return allAssociatedEvents;}
function getUnassociatedEvents(model,associatedEvents){const unassociatedEvents=new tr.model.EventSet();for(const proc of model.getAllProcesses()){for(const thread of Object.values(proc.threads)){for(const event of thread.sliceGroup.getDescendantEvents()){if(!associatedEvents.contains(event)){unassociatedEvents.push(event);}}}}
return unassociatedEvents;}
function getTotalCpuDuration(events){let cpuMs=0;events.forEach(function(event){if(event.cpuSelfTime){cpuMs+=event.cpuSelfTime;}});return cpuMs;}
function getIRCoverageFromModel(model){const associatedEvents=getAssociatedEvents(model.userModel.expectations);if(!associatedEvents.length)return undefined;const unassociatedEvents=getUnassociatedEvents(model,associatedEvents);const associatedCpuMs=getTotalCpuDuration(associatedEvents);const unassociatedCpuMs=getTotalCpuDuration(unassociatedEvents);const totalEventCount=associatedEvents.length+unassociatedEvents.length;const totalCpuMs=associatedCpuMs+unassociatedCpuMs;let coveredEventsCpuTimeRatio=undefined;if(totalCpuMs!==0){coveredEventsCpuTimeRatio=associatedCpuMs/totalCpuMs;}
return{associatedEventsCount:associatedEvents.length,unassociatedEventsCount:unassociatedEvents.length,associatedEventsCpuTimeMs:associatedCpuMs,unassociatedEventsCpuTimeMs:unassociatedCpuMs,coveredEventsCountRatio:associatedEvents.length/totalEventCount,coveredEventsCpuTimeRatio};}
return{getIRCoverageFromModel,getAssociatedEvents,getUnassociatedEvents,};});'use strict';tr.exportTo('tr.model.um',function(){function IdleExpectation(parentModel,start,duration){const initiatorTitle='';tr.model.um.UserExpectation.call(this,parentModel,initiatorTitle,start,duration);}
IdleExpectation.prototype={__proto__:tr.model.um.UserExpectation.prototype,constructor:IdleExpectation};tr.model.um.UserExpectation.subTypes.register(IdleExpectation,{stageTitle:'Idle',colorId:tr.b.ColorScheme.getColorIdForReservedName('rail_idle')});return{IdleExpectation,};});'use strict';tr.exportTo('tr.importer',function(){const INSIGNIFICANT_MS=1;class UserModelBuilder{constructor(model){this.model=model;this.modelHelper=model.getOrCreateHelper(tr.model.helpers.ChromeModelHelper);}
static supportsModelHelper(modelHelper){return modelHelper.browserHelper!==undefined;}
buildUserModel(){if(!this.modelHelper||!this.modelHelper.browserHelper)return;try{for(const ue of this.findUserExpectations()){this.model.userModel.expectations.push(ue);}
this.model.userModel.segments.push(...this.findSegments());}catch(error){this.model.importWarning({type:'UserModelBuilder',message:error,showToUser:true});}}
findSegments(){let timestamps=new Set();for(const expectation of this.model.userModel.expectations){timestamps.add(expectation.start);timestamps.add(expectation.end);}
timestamps=[...timestamps];timestamps.sort((x,y)=>x-y);const segments=[];for(let i=0;i<timestamps.length-1;++i){const segment=new tr.model.um.Segment(timestamps[i],timestamps[i+1]-timestamps[i]);segments.push(segment);const segmentRange=tr.b.math.Range.fromExplicitRange(segment.start,segment.end);for(const expectation of this.model.userModel.expectations){const expectationRange=tr.b.math.Range.fromExplicitRange(expectation.start,expectation.end);if(segmentRange.intersectsRangeExclusive(expectationRange)){segment.expectations.push(expectation);}}}
return segments;}
findUserExpectations(){const expectations=[];expectations.push.apply(expectations,tr.importer.findStartupExpectations(this.modelHelper));expectations.push.apply(expectations,tr.importer.findLoadExpectations(this.modelHelper));expectations.push.apply(expectations,tr.importer.findInputExpectations(this.modelHelper));expectations.push.apply(expectations,this.findIdleExpectations(expectations));this.collectUnassociatedEvents_(expectations);return expectations;}
collectUnassociatedEvents_(expectations){const vacuumUEs=[];for(const expectation of expectations){if(expectation instanceof tr.model.um.IdleExpectation||expectation instanceof tr.model.um.LoadExpectation||expectation instanceof tr.model.um.StartupExpectation){vacuumUEs.push(expectation);}}
if(vacuumUEs.length===0)return;const allAssociatedEvents=tr.model.getAssociatedEvents(expectations);const unassociatedEvents=tr.model.getUnassociatedEvents(this.model,allAssociatedEvents);for(const event of unassociatedEvents){if(!(event instanceof tr.model.ThreadSlice))continue;if(!event.isTopLevel)continue;for(let index=0;index<vacuumUEs.length;++index){const expectation=vacuumUEs[index];if((event.start>=expectation.start)&&(event.start<expectation.end)){expectation.associatedEvents.addEventSet(event.entireHierarchy);break;}}}}
findIdleExpectations(otherUEs){if(this.model.bounds.isEmpty)return;const emptyRanges=tr.b.math.findEmptyRangesBetweenRanges(tr.b.math.convertEventsToRanges(otherUEs),this.model.bounds);const expectations=[];const model=this.model;for(const range of emptyRanges){if(range.max<(range.min+INSIGNIFICANT_MS))continue;expectations.push(new tr.model.um.IdleExpectation(model,range.min,range.max-range.min));}
return expectations;}}
function createCustomizeModelLinesFromModel(model){const modelLines=[];modelLines.push(' audits.addEvent(model.browserMain,');modelLines.push(' {title: \'model start\', start: 0, end: 1});');const typeNames={};for(const typeName in tr.e.cc.INPUT_EVENT_TYPE_NAMES){typeNames[tr.e.cc.INPUT_EVENT_TYPE_NAMES[typeName]]=typeName;}
let modelEvents=new tr.model.EventSet();for(const ue of model.userModel.expectations){modelEvents.addEventSet(ue.sourceEvents);}
modelEvents=modelEvents.toArray();modelEvents.sort(tr.importer.compareEvents);for(const event of modelEvents){const startAndEnd='start: '+parseInt(event.start)+', '+'end: '+parseInt(event.end)+'});';if(event instanceof tr.e.cc.InputLatencyAsyncSlice){modelLines.push(' audits.addInputEvent(model, INPUT_TYPE.'+
typeNames[event.typeName]+',');}else if(event.title==='RenderFrameImpl::didCommitProvisionalLoad'){modelLines.push(' audits.addCommitLoadEvent(model,');}else if(event.title==='InputHandlerProxy::HandleGestureFling::started'){modelLines.push(' audits.addFlingAnimationEvent(model,');}else if(event.title===tr.model.helpers.IMPL_RENDERING_STATS){modelLines.push(' audits.addFrameEvent(model,');}else if(event.title===tr.importer.CSS_ANIMATION_TITLE){modelLines.push(' audits.addEvent(model.rendererMain, {');modelLines.push(' title: \'Animation\', '+startAndEnd);return;}else{throw new Error('You must extend createCustomizeModelLinesFromModel()'+'to support this event:\n'+event.title+'\n');}
modelLines.push(' {'+startAndEnd);}
modelLines.push(' audits.addEvent(model.browserMain,');modelLines.push(' {'+'title: \'model end\', '+'start: '+(parseInt(model.bounds.max)-1)+', '+'end: '+parseInt(model.bounds.max)+'});');return modelLines;}
function createExpectedUELinesFromModel(model){const expectedLines=[];const ueCount=model.userModel.expectations.length;for(let index=0;index<ueCount;++index){const expectation=model.userModel.expectations[index];let ueString=' {';ueString+='title: \''+expectation.title+'\', ';ueString+='start: '+parseInt(expectation.start)+', ';ueString+='end: '+parseInt(expectation.end)+', ';ueString+='eventCount: '+expectation.sourceEvents.length;ueString+='}';if(index<(ueCount-1))ueString+=',';expectedLines.push(ueString);}
return expectedLines;}
function createUEFinderTestCaseStringFromModel(model){const filename=window.location.hash.substr(1);let testName=filename.substr(filename.lastIndexOf('/')+1);testName=testName.substr(0,testName.indexOf('.'));try{const testLines=[];testLines.push(' /*');testLines.push(' This test was generated from');testLines.push(' '+filename+'');testLines.push(' */');testLines.push(' test(\''+testName+'\', function() {');testLines.push(' const verifier = new UserExpectationVerifier();');testLines.push(' verifier.customizeModelCallback = function(model) {');testLines.push.apply(testLines,createCustomizeModelLinesFromModel(model));testLines.push(' };');testLines.push(' verifier.expectedUEs = [');testLines.push.apply(testLines,createExpectedUELinesFromModel(model));testLines.push(' ];');testLines.push(' verifier.verify();');testLines.push(' });');return testLines.join('\n');}catch(error){return error;}}
return{UserModelBuilder,createUEFinderTestCaseStringFromModel,};});'use strict';tr.exportTo('tr.ui.b',function(){function decorate(source,constr){let elements;if(typeof source==='string'){elements=Polymer.dom(tr.doc).querySelectorAll(source);}else{elements=[source];}
for(let i=0,el;el=elements[i];i++){if(!(el instanceof constr)){constr.decorate(el);}}}
function define(className,opt_parentConstructor,opt_tagNS){if(typeof className==='function'){throw new Error('Passing functions as className is deprecated. Please '+'use (className, opt_parentConstructor) to subclass');}
className=className.toLowerCase();if(opt_parentConstructor&&!opt_parentConstructor.tagName){throw new Error('opt_parentConstructor was not '+'created by tr.ui.b.define');}
let tagName=className;let tagNS=undefined;if(opt_parentConstructor){if(opt_tagNS){throw new Error('Must not specify tagNS if parentConstructor is given');}
let parent=opt_parentConstructor;while(parent&&parent.tagName){tagName=parent.tagName;tagNS=parent.tagNS;parent=parent.parentConstructor;}}else{tagNS=opt_tagNS;}
function f(){if(opt_parentConstructor&&f.prototype.__proto__!==opt_parentConstructor.prototype){throw new Error(className+' prototye\'s __proto__ field is messed up. '+'It MUST be the prototype of '+opt_parentConstructor.tagName);}
let el;if(tagNS===undefined){el=tr.doc.createElement(tagName);}else{el=tr.doc.createElementNS(tagNS,tagName);}
f.decorate.call(this,el,arguments);return el;}
f.decorate=function(el){el.__proto__=f.prototype;el.decorate.apply(el,arguments[1]);el.constructor=f;};f.className=className;f.tagName=tagName;f.tagNS=tagNS;f.parentConstructor=(opt_parentConstructor?opt_parentConstructor:undefined);f.toString=function(){if(!f.parentConstructor){return f.tagName;}
return f.parentConstructor.toString()+'::'+f.className;};return f;}
function elementIsChildOf(el,potentialParent){if(el===potentialParent)return false;let cur=el;while(Polymer.dom(cur).parentNode){if(cur===potentialParent)return true;cur=Polymer.dom(cur).parentNode;}
return false;}
return{decorate,define,elementIsChildOf,};});'use strict';tr.exportTo('tr.b.math',function(){function Rect(){this.x=0;this.y=0;this.width=0;this.height=0;}
Rect.fromXYWH=function(x,y,w,h){const rect=new Rect();rect.x=x;rect.y=y;rect.width=w;rect.height=h;return rect;};Rect.fromArray=function(ary){if(ary.length!==4){throw new Error('ary.length must be 4');}
const rect=new Rect();rect.x=ary[0];rect.y=ary[1];rect.width=ary[2];rect.height=ary[3];return rect;};Rect.prototype={__proto__:Object.prototype,get left(){return this.x;},get top(){return this.y;},get right(){return this.x+this.width;},get bottom(){return this.y+this.height;},toString(){return'Rect('+this.x+', '+this.y+', '+
this.width+', '+this.height+')';},toArray(){return[this.x,this.y,this.width,this.height];},clone(){const rect=new Rect();rect.x=this.x;rect.y=this.y;rect.width=this.width;rect.height=this.height;return rect;},enlarge(pad){const rect=new Rect();this.enlargeFast(rect,pad);return rect;},enlargeFast(out,pad){out.x=this.x-pad;out.y=this.y-pad;out.width=this.width+2*pad;out.height=this.height+2*pad;return out;},size(){return{width:this.width,height:this.height};},scale(s){const rect=new Rect();this.scaleFast(rect,s);return rect;},scaleSize(s){return Rect.fromXYWH(this.x,this.y,this.width*s,this.height*s);},scaleFast(out,s){out.x=this.x*s;out.y=this.y*s;out.width=this.width*s;out.height=this.height*s;return out;},translate(v){const rect=new Rect();this.translateFast(rect,v);return rect;},translateFast(out,v){out.x=this.x+v[0];out.y=this.x+v[1];out.width=this.width;out.height=this.height;return out;},asUVRectInside(containingRect){const rect=new Rect();rect.x=(this.x-containingRect.x)/containingRect.width;rect.y=(this.y-containingRect.y)/containingRect.height;rect.width=this.width/containingRect.width;rect.height=this.height/containingRect.height;return rect;},intersects(that){let ok=true;ok&=this.x<that.right;ok&=this.right>that.x;ok&=this.y<that.bottom;ok&=this.bottom>that.y;return ok;},equalTo(rect){return rect&&(this.x===rect.x)&&(this.y===rect.y)&&(this.width===rect.width)&&(this.height===rect.height);}};return{Rect,};});'use strict';tr.exportTo('tr.ui.b',function(){function instantiateTemplate(selector,doc){doc=doc||document;const el=Polymer.dom(doc).querySelector(selector);if(!el){throw new Error('Element not found');}
return doc.importNode(el.content,true);}
function windowRectForElement(element){const position=[element.offsetLeft,element.offsetTop];const size=[element.offsetWidth,element.offsetHeight];let node=element.offsetParent;while(node){position[0]+=node.offsetLeft;position[1]+=node.offsetTop;node=node.offsetParent;}
return tr.b.math.Rect.fromXYWH(position[0],position[1],size[0],size[1]);}
function scrollIntoViewIfNeeded(el){const pr=el.parentElement.getBoundingClientRect();const cr=el.getBoundingClientRect();if(cr.top<pr.top){el.scrollIntoView(true);}else if(cr.bottom>pr.bottom){el.scrollIntoView(false);}}
function extractUrlString(url){let extracted=url.replace(/url\((.*)\)/,'$1');extracted=extracted.replace(/\"(.*)\"/,'$1');return extracted;}
function toThreeDigitLocaleString(value){return value.toLocaleString(undefined,{minimumFractionDigits:3,maximumFractionDigits:3});}
function isUnknownElementName(name){return document.createElement(name)instanceof HTMLUnknownElement;}
return{isUnknownElementName,toThreeDigitLocaleString,instantiateTemplate,windowRectForElement,scrollIntoViewIfNeeded,extractUrlString,};});'use strict';tr.exportTo('tr.ui.b',function(){if(tr.isHeadless)return{};const THIS_DOC=document.currentScript.ownerDocument;const Overlay=tr.ui.b.define('overlay');Overlay.prototype={__proto__:HTMLDivElement.prototype,decorate(){Polymer.dom(this).classList.add('overlay');this.parentEl_=this.ownerDocument.body;this.visible_=false;this.userCanClose_=true;this.onKeyDown_=this.onKeyDown_.bind(this);this.onClick_=this.onClick_.bind(this);this.onFocusIn_=this.onFocusIn_.bind(this);this.onDocumentClick_=this.onDocumentClick_.bind(this);this.onClose_=this.onClose_.bind(this);this.addEventListener('visible-change',tr.ui.b.Overlay.prototype.onVisibleChange_.bind(this),true);const createShadowRoot=this.createShadowRoot||this.webkitCreateShadowRoot;this.shadow_=createShadowRoot.call(this);Polymer.dom(this.shadow_).appendChild(tr.ui.b.instantiateTemplate('#overlay-template',THIS_DOC));this.closeBtn_=Polymer.dom(this.shadow_).querySelector('close-button');this.closeBtn_.addEventListener('click',this.onClose_);Polymer.dom(this.shadow_).querySelector('overlay-frame').addEventListener('click',this.onClick_);this.observer_=new WebKitMutationObserver(this.didButtonBarMutate_.bind(this));this.observer_.observe(Polymer.dom(this.shadow_).querySelector('button-bar'),{childList:true});Object.defineProperty(this,'title',{get(){return Polymer.dom(Polymer.dom(this.shadow_).querySelector('title')).textContent;},set(title){Polymer.dom(Polymer.dom(this.shadow_).querySelector('title')).textContent=title;}});},set userCanClose(userCanClose){this.userCanClose_=userCanClose;this.closeBtn_.style.display=userCanClose?'block':'none';},get buttons(){return Polymer.dom(this.shadow_).querySelector('button-bar');},get visible(){return this.visible_;},set visible(newValue){if(this.visible_===newValue)return;this.visible_=newValue;const e=new tr.b.Event('visible-change');this.dispatchEvent(e);},onVisibleChange_(){this.visible_?this.show_():this.hide_();},show_(){Polymer.dom(this.parentEl_).appendChild(this);if(this.userCanClose_){this.addEventListener('keydown',this.onKeyDown_.bind(this));this.addEventListener('click',this.onDocumentClick_.bind(this));this.closeBtn_.addEventListener('click',this.onClose_);}
this.parentEl_.addEventListener('focusin',this.onFocusIn_);this.tabIndex=0;const elList=Polymer.dom(this).querySelectorAll('button, input, list, select, a');if(elList.length>0){if(elList[0]===this.closeBtn_){if(elList.length>1)return elList[1].focus();}else{return elList[0].focus();}}
this.focus();},hide_(){Polymer.dom(this.parentEl_).removeChild(this);this.parentEl_.removeEventListener('focusin',this.onFocusIn_);if(this.closeBtn_){this.closeBtn_.removeEventListener('click',this.onClose_);}
document.removeEventListener('keydown',this.onKeyDown_);document.removeEventListener('click',this.onDocumentClick_);},onClose_(e){this.visible=false;if((e.type!=='keydown')||(e.type==='keydown'&&e.keyCode===27)){e.stopPropagation();}
e.preventDefault();tr.b.dispatchSimpleEvent(this,'closeclick');},onFocusIn_(e){if(e.target===this)return;tr.b.timeout(0).then(()=>this.focus());e.preventDefault();e.stopPropagation();},didButtonBarMutate_(e){const hasButtons=this.buttons.children.length>0;if(hasButtons){Polymer.dom(this.shadow_).querySelector('button-bar').style.display=undefined;}else{Polymer.dom(this.shadow_).querySelector('button-bar').style.display='none';}},onKeyDown_(e){if(e.keyCode===9&&e.shiftKey&&e.target===this){e.preventDefault();return;}
if(e.keyCode!==27)return;this.onClose_(e);},onClick_(e){e.stopPropagation();},onDocumentClick_(e){if(!this.userCanClose_)return;this.onClose_(e);}};Overlay.showError=function(msg,opt_err){const o=new Overlay();o.title='Error';Polymer.dom(o).textContent=msg;if(opt_err){const e=tr.b.normalizeException(opt_err);const stackDiv=document.createElement('pre');Polymer.dom(stackDiv).textContent=e.stack;stackDiv.style.paddingLeft='8px';stackDiv.style.margin=0;Polymer.dom(o).appendChild(stackDiv);}
const b=document.createElement('button');Polymer.dom(b).textContent='OK';b.addEventListener('click',function(){o.visible=false;});Polymer.dom(o.buttons).appendChild(b);o.visible=true;return o;};return{Overlay,};});'use strict';tr.exportTo('tr.importer',function(){const Timing=tr.b.Timing;function ImportOptions(){this.shiftWorldToZero=true;this.pruneEmptyContainers=true;this.showImportWarnings=true;this.trackDetailedModelStats=false;this.customizeModelCallback=undefined;const auditorTypes=tr.c.Auditor.getAllRegisteredTypeInfos();this.auditorConstructors=auditorTypes.map(function(typeInfo){return typeInfo.constructor;});}
function Import(model,opt_options){if(model===undefined){throw new Error('Must provide model to import into.');}
this.importing_=false;this.importOptions_=opt_options||new ImportOptions();this.model_=model;this.model_.importOptions=this.importOptions_;}
Import.prototype={__proto__:Object.prototype,importTraces(traces){const progressMeter={update(msg){}};tr.b.Task.RunSynchronously(this.createImportTracesTask(progressMeter,traces));},importTracesWithProgressDialog(traces){if(tr.isHeadless){throw new Error('Cannot use this method in headless mode.');}
const overlay=tr.ui.b.Overlay();overlay.title='Importing...';overlay.userCanClose=false;overlay.msgEl=document.createElement('div');Polymer.dom(overlay).appendChild(overlay.msgEl);overlay.msgEl.style.margin='20px';overlay.update=function(msg){Polymer.dom(this.msgEl).textContent=msg;};overlay.visible=true;const promise=tr.b.Task.RunWhenIdle(this.createImportTracesTask(overlay,traces));promise.then(function(){overlay.visible=false;},function(err){overlay.visible=false;});return promise;},createImportTracesTask(progressMeter,traces){const importStartTimeMs=performance.now();if(this.importing_){throw new Error('Already importing.');}
this.importing_=true;const importTask=new tr.b.Task(function prepareImport(){progressMeter.update('I will now import your traces for you...');},this);let lastTask=importTask;const importers=[];function addImportStage(title,callback){lastTask=lastTask.after(()=>progressMeter.update(title));lastTask.updatesUi=true;lastTask=lastTask.after(callback);}
function addStageForEachImporter(title,callback){lastTask=lastTask.after((task)=>{importers.forEach((importer,index)=>{const uiSubTask=task.subTask(()=>{progressMeter.update(`${title} ${index + 1} of ${importers.length}`);});uiSubTask.updatesUi=true;task.subTask(()=>callback(importer));});});}
addImportStage('Creating importers...',()=>{traces=traces.slice(0);progressMeter.update('Creating importers...');for(let i=0;i<traces.length;++i){importers.push(this.createImporter_(traces[i]));}
for(let i=0;i<importers.length;i++){const subtraces=importers[i].extractSubtraces();for(let j=0;j<subtraces.length;j++){try{traces.push(subtraces[j]);importers.push(this.createImporter_(subtraces[j]));}catch(error){this.model_.importWarning({type:error.name,message:error.message,showToUser:true,});continue;}}}
if(traces.length&&!this.hasEventDataDecoder_(importers)){throw new Error('Could not find an importer for the provided eventData.');}
importers.sort(function(x,y){return x.importPriority-y.importPriority;});});addStageForEachImporter('Importing clock sync markers',importer=>importer.importClockSyncMarkers());addStageForEachImporter('Importing',importer=>importer.importEvents());if(this.importOptions_.customizeModelCallback){addImportStage('Customizing',()=>{this.importOptions_.customizeModelCallback(this.model_);});}
addStageForEachImporter('Importing sample data',importer=>importer.importSampleData());addImportStage('Autoclosing open slices...',()=>{this.model_.autoCloseOpenSlices();this.model_.createSubSlices();});addStageForEachImporter('Finalizing import',importer=>importer.finalizeImport());addImportStage('Initializing objects (step 1/2)...',()=>this.model_.preInitializeObjects());if(this.importOptions_.pruneEmptyContainers){addImportStage('Pruning empty containers...',()=>this.model_.pruneEmptyContainers());}
addImportStage('Merging kernel with userland...',()=>this.model_.mergeKernelWithUserland());let auditors=[];addImportStage('Adding arbitrary data to model...',()=>{auditors=this.importOptions_.auditorConstructors.map(auditorConstructor=>new auditorConstructor(this.model_));auditors.forEach((auditor)=>{auditor.runAnnotate();auditor.installUserFriendlyCategoryDriverIfNeeded();});});addImportStage('Computing final world bounds...',()=>{this.model_.computeWorldBounds(this.importOptions_.shiftWorldToZero);});addImportStage('Building flow event map...',()=>this.model_.buildFlowEventIntervalTree());addImportStage('Joining object refs...',()=>this.model_.joinRefs());addImportStage('Cleaning up undeleted objects...',()=>this.model_.cleanupUndeletedObjects());addImportStage('Sorting memory dumps...',()=>this.model_.sortMemoryDumps());addImportStage('Finalizing memory dump graphs...',()=>this.model_.finalizeMemoryGraphs());addImportStage('Initializing objects (step 2/2)...',()=>this.model_.initializeObjects());addImportStage('Building event indices...',()=>this.model_.buildEventIndices());addImportStage('Building UserModel...',()=>{const userModelBuilder=new tr.importer.UserModelBuilder(this.model_);userModelBuilder.buildUserModel();});addImportStage('Sorting user expectations...',()=>this.model_.userModel.sortExpectations());addImportStage('Running auditors...',()=>{auditors.forEach(auditor=>auditor.runAudit());});addImportStage('Updating alerts...',()=>this.model_.sortAlerts());addImportStage('Update bounds...',()=>this.model_.updateBounds());addImportStage('Looking for warnings...',()=>{if(!this.model_.isTimeHighResolution){this.model_.importWarning({type:'low_resolution_timer',message:'Trace time is low resolution, trace may be unusable.',showToUser:true});}});lastTask.after(()=>{this.importing_=false;this.model_.stats.traceImportDurationMs=performance.now()-importStartTimeMs;});return importTask;},createImporter_(eventData){const importerConstructor=tr.importer.Importer.findImporterFor(eventData);if(!importerConstructor){throw new Error('Couldn\'t create an importer for the provided '+'eventData.');}
return new importerConstructor(this.model_,eventData);},hasEventDataDecoder_(importers){for(let i=0;i<importers.length;++i){if(!importers[i].isTraceDataContainer())return true;}
return false;}};return{ImportOptions,Import,};});'use strict';tr.exportTo('tr.e.v8',function(){const ThreadSlice=tr.model.ThreadSlice;function V8GCStatsThreadSlice(){ThreadSlice.apply(this,arguments);this.liveObjects_=JSON.parse(this.args.live);delete this.args.live;this.deadObjects_=JSON.parse(this.args.dead);delete this.args.dead;}
V8GCStatsThreadSlice.prototype={__proto__:ThreadSlice.prototype,get liveObjects(){return this.liveObjects_;},get deadObjects(){return this.deadObjects_;}};ThreadSlice.subTypes.register(V8GCStatsThreadSlice,{categoryParts:['disabled-by-default-v8.gc_stats'],name:'v8 gc stats slice',pluralName:'v8 gc stats slices'});return{V8GCStatsThreadSlice,};});'use strict';tr.exportTo('tr.e.v8',function(){const ThreadSlice=tr.model.ThreadSlice;function V8ICStatsThreadSlice(){ThreadSlice.apply(this,arguments);this.icStats_=undefined;if(this.args['ic-stats']){this.icStats_=this.args['ic-stats'].data;delete this.args['ic-stats'];}}
V8ICStatsThreadSlice.prototype={__proto__:ThreadSlice.prototype,get icStats(){return this.icStats_;}};ThreadSlice.subTypes.register(V8ICStatsThreadSlice,{categoryParts:['disabled-by-default-v8.ic_stats'],name:'v8 ic stats slice',pluralName:'v8 ic stats slices'});return{V8ICStatsThreadSlice,};});'use strict';tr.exportTo('tr.e.v8',function(){const ThreadSlice=tr.model.ThreadSlice;function V8ThreadSlice(){ThreadSlice.apply(this,arguments);this.runtimeCallStats_=undefined;}
V8ThreadSlice.prototype={__proto__:ThreadSlice.prototype,get runtimeCallStats(){if('runtime-call-stats'in this.args){this.runtimeCallStats_=this.args['runtime-call-stats'];delete this.args['runtime-call-stats'];}
return this.runtimeCallStats_;}};ThreadSlice.subTypes.register(V8ThreadSlice,{categoryParts:['v8','disabled-by-default-v8.runtime_stats'],name:'v8 slice',pluralName:'v8 slices'});return{V8ThreadSlice,};});'use strict';tr.exportTo('tr.e.cc',function(){function PictureAsImageData(picture,errorOrImageData){this.picture_=picture;if(errorOrImageData instanceof ImageData){this.error_=undefined;this.imageData_=errorOrImageData;}else{this.error_=errorOrImageData;this.imageData_=undefined;}}
PictureAsImageData.Pending=function(picture){return new PictureAsImageData(picture,undefined);};PictureAsImageData.prototype={get picture(){return this.picture_;},get error(){return this.error_;},get imageData(){return this.imageData_;},isPending(){return this.error_===undefined&&this.imageData_===undefined;},asCanvas(){if(!this.imageData_)return;const canvas=document.createElement('canvas');const ctx=canvas.getContext('2d');canvas.width=this.imageData_.width;canvas.height=this.imageData_.height;ctx.putImageData(this.imageData_,0,0);return canvas;}};return{PictureAsImageData,};});'use strict';tr.exportTo('tr.e.cc',function(){const convertedNameCache={};function convertNameToJSConvention(name){if(name in convertedNameCache){return convertedNameCache[name];}
if(name[0]==='_'||name[name.length-1]==='_'){convertedNameCache[name]=name;return name;}
const words=name.split('_');if(words.length===1){convertedNameCache[name]=words[0];return words[0];}
for(let i=1;i<words.length;i++){words[i]=words[i][0].toUpperCase()+words[i].substring(1);}
convertedNameCache[name]=words.join('');return convertedNameCache[name];}
function convertObjectFieldNamesToJSConventions(object){tr.b.iterObjectFieldsRecursively(object,function(object,fieldName,fieldValue){delete object[fieldName];object[newFieldName]=fieldValue;return newFieldName;});}
function convertQuadSuffixedTypesToQuads(object){tr.b.iterObjectFieldsRecursively(object,function(object,fieldName,fieldValue){});}
function convertObject(object){convertObjectFieldNamesToJSConventions(object);convertQuadSuffixedTypesToQuads(object);}
function moveRequiredFieldsFromArgsToToplevel(object,fields){for(let i=0;i<fields.length;i++){const key=fields[i];if(object.args[key]===undefined){throw Error('Expected field '+key+' not found in args');}
if(object[key]!==undefined){throw Error('Field '+key+' already in object');}
object[key]=object.args[key];delete object.args[key];}}
function moveOptionalFieldsFromArgsToToplevel(object,fields){for(let i=0;i<fields.length;i++){const key=fields[i];if(object.args[key]===undefined)continue;if(object[key]!==undefined){throw Error('Field '+key+' already in object');}
object[key]=object.args[key];delete object.args[key];}}
function preInitializeObject(object){preInitializeObjectInner(object.args,false);}
function preInitializeObjectInner(object,hasRecursed){if(!(object instanceof Object))return;if(object instanceof Array){for(let i=0;i<object.length;i++){preInitializeObjectInner(object[i],true);}
return;}
if(hasRecursed&&(object instanceof tr.model.ObjectSnapshot||object instanceof tr.model.ObjectInstance)){return;}
for(let key in object){const newKey=convertNameToJSConvention(key);if(newKey!==key){const value=object[key];delete object[key];object[newKey]=value;key=newKey;}
if(/Quad$/.test(key)&&!(object[key]instanceof tr.b.math.Quad)){let q;try{q=tr.b.math.Quad.from8Array(object[key]);}catch(e){}
object[key]=q;continue;}
if(/Rect$/.test(key)&&!(object[key]instanceof tr.b.math.Rect)){let r;try{r=tr.b.math.Rect.fromArray(object[key]);}catch(e){}
object[key]=r;}
preInitializeObjectInner(object[key],true);}}
return{preInitializeObject,convertNameToJSConvention,moveRequiredFieldsFromArgsToToplevel,moveOptionalFieldsFromArgsToToplevel,};});'use strict';tr.exportTo('tr.e.cc',function(){const ObjectSnapshot=tr.model.ObjectSnapshot;const PictureCount=0;const OPS_TIMING_ITERATIONS=3;function Picture(skp64,layerRect){this.skp64_=skp64;this.layerRect_=layerRect;this.guid_=tr.b.GUID.allocateSimple();}
Picture.prototype={get canSave(){return true;},get layerRect(){return this.layerRect_;},get guid(){return this.guid_;},getBase64SkpData(){return this.skp64_;},getOps(){if(!PictureSnapshot.CanGetOps()){console.error(PictureSnapshot.HowToEnablePictureDebugging());return undefined;}
const ops=window.chrome.skiaBenchmarking.getOps({skp64:this.skp64_,params:{layer_rect:this.layerRect_.toArray()}});if(!ops){console.error('Failed to get picture ops.');}
return ops;},getOpTimings(){if(!PictureSnapshot.CanGetOpTimings()){console.error(PictureSnapshot.HowToEnablePictureDebugging());return undefined;}
const opTimings=window.chrome.skiaBenchmarking.getOpTimings({skp64:this.skp64_,params:{layer_rect:this.layerRect_.toArray()}});if(!opTimings){console.error('Failed to get picture op timings.');}
return opTimings;},tagOpsWithTimings(ops){const opTimings=[];for(let iteration=0;iteration<OPS_TIMING_ITERATIONS;iteration++){opTimings[iteration]=this.getOpTimings();if(!opTimings[iteration]||!opTimings[iteration].cmd_times){return ops;}
if(opTimings[iteration].cmd_times.length!==ops.length){return ops;}}
for(let opIndex=0;opIndex<ops.length;opIndex++){let min=Number.MAX_VALUE;for(let i=0;i<OPS_TIMING_ITERATIONS;i++){min=Math.min(min,opTimings[i].cmd_times[opIndex]);}
ops[opIndex].cmd_time=min;}
return ops;},rasterize(params,rasterCompleteCallback){if(!PictureSnapshot.CanRasterize()||!PictureSnapshot.CanGetOps()){rasterCompleteCallback(new tr.e.cc.PictureAsImageData(this,tr.e.cc.PictureSnapshot.HowToEnablePictureDebugging()));return;}
const raster=window.chrome.skiaBenchmarking.rasterize({skp64:this.skp64_,params:{layer_rect:this.layerRect_.toArray()}},{stop:params.stopIndex===undefined?-1:params.stopIndex,overdraw:!!params.showOverdraw,params:{}});if(raster){const canvas=document.createElement('canvas');const ctx=canvas.getContext('2d');canvas.width=raster.width;canvas.height=raster.height;const imageData=ctx.createImageData(raster.width,raster.height);imageData.data.set(new Uint8ClampedArray(raster.data));rasterCompleteCallback(new tr.e.cc.PictureAsImageData(this,imageData));}else{const error='Failed to rasterize picture. '+'Your recording may be from an old Chrome version. '+'The SkPicture format is not backward compatible.';rasterCompleteCallback(new tr.e.cc.PictureAsImageData(this,error));}}};function LayeredPicture(pictures){this.guid_=tr.b.GUID.allocateSimple();this.pictures_=pictures;this.layerRect_=undefined;}
LayeredPicture.prototype={__proto__:Picture.prototype,get canSave(){return false;},get typeName(){return'cc::LayeredPicture';},get layerRect(){if(this.layerRect_!==undefined){return this.layerRect_;}
this.layerRect_={x:0,y:0,width:0,height:0};for(let i=0;i<this.pictures_.length;++i){const rect=this.pictures_[i].layerRect;this.layerRect_.x=Math.min(this.layerRect_.x,rect.x);this.layerRect_.y=Math.min(this.layerRect_.y,rect.y);this.layerRect_.width=Math.max(this.layerRect_.width,rect.x+rect.width);this.layerRect_.height=Math.max(this.layerRect_.height,rect.y+rect.height);}
return this.layerRect_;},get guid(){return this.guid_;},getBase64SkpData(){throw new Error('Not available with a LayeredPicture.');},getOps(){let ops=[];for(let i=0;i<this.pictures_.length;++i){ops=ops.concat(this.pictures_[i].getOps());}
return ops;},getOpTimings(){const opTimings=this.pictures_[0].getOpTimings();for(let i=1;i<this.pictures_.length;++i){const timings=this.pictures_[i].getOpTimings();opTimings.cmd_times=opTimings.cmd_times.concat(timings.cmd_times);opTimings.total_time+=timings.total_time;}
return opTimings;},tagOpsWithTimings(ops){const opTimings=[];for(let iteration=0;iteration<OPS_TIMING_ITERATIONS;iteration++){opTimings[iteration]=this.getOpTimings();if(!opTimings[iteration]||!opTimings[iteration].cmd_times){return ops;}}
for(let opIndex=0;opIndex<ops.length;opIndex++){let min=Number.MAX_VALUE;for(let i=0;i<OPS_TIMING_ITERATIONS;i++){min=Math.min(min,opTimings[i].cmd_times[opIndex]);}
ops[opIndex].cmd_time=min;}
return ops;},rasterize(params,rasterCompleteCallback){this.picturesAsImageData_=[];const rasterCallback=function(pictureAsImageData){this.picturesAsImageData_.push(pictureAsImageData);if(this.picturesAsImageData_.length!==this.pictures_.length){return;}
const canvas=document.createElement('canvas');const ctx=canvas.getContext('2d');canvas.width=this.layerRect.width;canvas.height=this.layerRect.height;for(let i=0;i<this.picturesAsImageData_.length;++i){ctx.putImageData(this.picturesAsImageData_[i].imageData,this.pictures_[i].layerRect.x,this.pictures_[i].layerRect.y);}
this.picturesAsImageData_=[];rasterCompleteCallback(new tr.e.cc.PictureAsImageData(this,ctx.getImageData(this.layerRect.x,this.layerRect.y,this.layerRect.width,this.layerRect.height)));}.bind(this);for(let i=0;i<this.pictures_.length;++i){this.pictures_[i].rasterize(params,rasterCallback);}}};function PictureSnapshot(){ObjectSnapshot.apply(this,arguments);}
PictureSnapshot.HasSkiaBenchmarking=function(){return tr.isExported('chrome.skiaBenchmarking');};PictureSnapshot.CanRasterize=function(){if(!PictureSnapshot.HasSkiaBenchmarking()){return false;}
if(!window.chrome.skiaBenchmarking.rasterize){return false;}
return true;};PictureSnapshot.CanGetOps=function(){if(!PictureSnapshot.HasSkiaBenchmarking()){return false;}
if(!window.chrome.skiaBenchmarking.getOps){return false;}
return true;};PictureSnapshot.CanGetOpTimings=function(){if(!PictureSnapshot.HasSkiaBenchmarking()){return false;}
if(!window.chrome.skiaBenchmarking.getOpTimings){return false;}
return true;};PictureSnapshot.CanGetInfo=function(){if(!PictureSnapshot.HasSkiaBenchmarking()){return false;}
if(!window.chrome.skiaBenchmarking.getInfo){return false;}
return true;};PictureSnapshot.HowToEnablePictureDebugging=function(){if(tr.isHeadless){return'Pictures only work in chrome';}
const usualReason=['For pictures to show up, you need to have Chrome running with ','--enable-skia-benchmarking. Please restart chrome with this flag ','and try again.'].join('');if(!tr.isExported('global.chrome.skiaBenchmarking')){return usualReason;}
if(!global.chrome.skiaBenchmarking.rasterize){return'Your chrome is old';}
if(!global.chrome.skiaBenchmarking.getOps){return'Your chrome is old: skiaBenchmarking.getOps not found';}
if(!global.chrome.skiaBenchmarking.getOpTimings){return'Your chrome is old: skiaBenchmarking.getOpTimings not found';}
if(!global.chrome.skiaBenchmarking.getInfo){return'Your chrome is old: skiaBenchmarking.getInfo not found';}
return'Rasterizing is on';};PictureSnapshot.prototype={__proto__:ObjectSnapshot.prototype,preInitialize(){tr.e.cc.preInitializeObject(this);this.rasterResult_=undefined;},initialize(){if(this.args.alias){this.args=this.args.alias.args;}
if(!this.args.params.layerRect){throw new Error('Missing layer rect');}
this.layerRect_=this.args.params.layerRect;this.picture_=new Picture(this.args.skp64,this.args.params.layerRect);},set picture(picture){this.picture_=picture;},get canSave(){return this.picture_.canSave;},get layerRect(){return this.layerRect_?this.layerRect_:this.picture_.layerRect;},get guid(){return this.picture_.guid;},getBase64SkpData(){return this.picture_.getBase64SkpData();},getOps(){return this.picture_.getOps();},getOpTimings(){return this.picture_.getOpTimings();},tagOpsWithTimings(ops){return this.picture_.tagOpsWithTimings(ops);},rasterize(params,rasterCompleteCallback){this.picture_.rasterize(params,rasterCompleteCallback);}};ObjectSnapshot.subTypes.register(PictureSnapshot,{typeNames:['cc::Picture']});return{PictureSnapshot,Picture,LayeredPicture,};});'use strict';tr.exportTo('tr.e.cc',function(){const ObjectSnapshot=tr.model.ObjectSnapshot;function DisplayItemList(skp64,layerRect){tr.e.cc.Picture.apply(this,arguments);}
DisplayItemList.prototype={__proto__:tr.e.cc.Picture.prototype};function DisplayItemListSnapshot(){tr.e.cc.PictureSnapshot.apply(this,arguments);}
DisplayItemListSnapshot.prototype={__proto__:tr.e.cc.PictureSnapshot.prototype,initialize(){tr.e.cc.PictureSnapshot.prototype.initialize.call(this);this.displayItems_=this.args.params.items;},get items(){return this.displayItems_;}};ObjectSnapshot.subTypes.register(DisplayItemListSnapshot,{typeNames:['cc::DisplayItemList']});return{DisplayItemListSnapshot,DisplayItemList,};});'use strict';tr.exportTo('tr.b.math',function(){function BBox2(){this.isEmpty_=true;this.min_=undefined;this.max_=undefined;}
BBox2.prototype={__proto__:Object.prototype,reset(){this.isEmpty_=true;this.min_=undefined;this.max_=undefined;},get isEmpty(){return this.isEmpty_;},addBBox2(bbox2){if(bbox2.isEmpty)return;this.addVec2(bbox2.min_);this.addVec2(bbox2.max_);},clone(){const bbox=new BBox2();bbox.addBBox2(this);return bbox;},addXY(x,y){if(this.isEmpty_){this.max_=vec2.create();this.min_=vec2.create();vec2.set(this.max_,x,y);vec2.set(this.min_,x,y);this.isEmpty_=false;return;}
this.max_[0]=Math.max(this.max_[0],x);this.max_[1]=Math.max(this.max_[1],y);this.min_[0]=Math.min(this.min_[0],x);this.min_[1]=Math.min(this.min_[1],y);},addVec2(value){if(this.isEmpty_){this.max_=vec2.create();this.min_=vec2.create();vec2.set(this.max_,value[0],value[1]);vec2.set(this.min_,value[0],value[1]);this.isEmpty_=false;return;}
this.max_[0]=Math.max(this.max_[0],value[0]);this.max_[1]=Math.max(this.max_[1],value[1]);this.min_[0]=Math.min(this.min_[0],value[0]);this.min_[1]=Math.min(this.min_[1],value[1]);},addQuad(quad){this.addVec2(quad.p1);this.addVec2(quad.p2);this.addVec2(quad.p3);this.addVec2(quad.p4);},get minVec2(){if(this.isEmpty_)return undefined;return this.min_;},get maxVec2(){if(this.isEmpty_)return undefined;return this.max_;},get sizeAsVec2(){if(this.isEmpty_){throw new Error('Empty BBox2 has no size');}
const size=vec2.create();vec2.subtract(size,this.max_,this.min_);return size;},get size(){if(this.isEmpty_){throw new Error('Empty BBox2 has no size');}
return{width:this.max_[0]-this.min_[0],height:this.max_[1]-this.min_[1]};},get width(){if(this.isEmpty_){throw new Error('Empty BBox2 has no width');}
return this.max_[0]-this.min_[0];},get height(){if(this.isEmpty_){throw new Error('Empty BBox2 has no width');}
return this.max_[1]-this.min_[1];},toString(){if(this.isEmpty_)return'empty';return'min=('+this.min_[0]+','+this.min_[1]+') '+'max=('+this.max_[0]+','+this.max_[1]+')';},asRect(){return tr.b.math.Rect.fromXYWH(this.min_[0],this.min_[1],this.max_[0]-this.min_[0],this.max_[1]-this.min_[1]);}};return{BBox2,};});'use strict';tr.exportTo('tr.e.cc',function(){const constants={};constants.ACTIVE_TREE=0;constants.PENDING_TREE=1;constants.HIGH_PRIORITY_BIN=0;constants.LOW_PRIORITY_BIN=1;constants.SEND_BEGIN_FRAME_EVENT='ThreadProxy::ScheduledActionSendBeginMainFrame';constants.BEGIN_MAIN_FRAME_EVENT='ThreadProxy::BeginMainFrame';return{constants};});'use strict';tr.exportTo('tr.e.cc',function(){function Region(){this.rects=[];}
Region.fromArray=function(array){if(array.length%4!==0){throw new Error('Array must consist be a multiple of 4 in length');}
const r=new Region();for(let i=0;i<array.length;i+=4){r.rects.push(tr.b.math.Rect.fromXYWH(array[i],array[i+1],array[i+2],array[i+3]));}
return r;};Region.fromArrayOrUndefined=function(array){if(array===undefined)return new Region();return Region.fromArray(array);};Region.prototype={__proto__:Region.prototype,rectIntersects(r){for(let i=0;i<this.rects.length;i++){if(this.rects[i].intersects(r))return true;}
return false;},addRect(r){this.rects.push(r);}};return{Region,};});'use strict';tr.exportTo('tr.e.cc',function(){function TileCoverageRect(rect,tile){this.geometryRect=rect;this.tile=tile;}
return{TileCoverageRect,};});'use strict';tr.exportTo('tr.e.cc',function(){const constants=tr.e.cc.constants;const ObjectSnapshot=tr.model.ObjectSnapshot;function LayerImplSnapshot(){ObjectSnapshot.apply(this,arguments);}
LayerImplSnapshot.prototype={__proto__:ObjectSnapshot.prototype,preInitialize(){tr.e.cc.preInitializeObject(this);this.layerTreeImpl_=undefined;this.parentLayer=undefined;},initialize(){this.invalidation=new tr.e.cc.Region();this.annotatedInvalidation=new tr.e.cc.Region();this.unrecordedRegion=new tr.e.cc.Region();this.pictures=[];tr.e.cc.moveRequiredFieldsFromArgsToToplevel(this,['layerId','layerQuad']);tr.e.cc.moveOptionalFieldsFromArgsToToplevel(this,['children','maskLayer','replicaLayer','idealContentsScale','geometryContentsScale','layoutRects','usingGpuRasterization']);this.gpuMemoryUsageInBytes=this.args.gpuMemoryUsage;this.bounds=tr.b.math.Rect.fromXYWH(0,0,this.args.bounds.width,this.args.bounds.height);if(this.args.animationBounds){this.animationBoundsRect=tr.b.math.Rect.fromXYWH(this.args.animationBounds[0],this.args.animationBounds[1],this.args.animationBounds[3],this.args.animationBounds[4]);}
if(this.children){for(let i=0;i<this.children.length;i++){this.children[i].parentLayer=this;}}
if(this.maskLayer){this.maskLayer.parentLayer=this;}
if(this.replicaLayer){this.replicaLayer.parentLayer=this;}
if(!this.geometryContentsScale){this.geometryContentsScale=1.0;}
if(!this.idealContentsScale){this.idealContentsScale=1.0;}
this.touchEventHandlerRegion=tr.e.cc.Region.fromArrayOrUndefined(this.args.touchEventHandlerRegion);this.wheelEventHandlerRegion=tr.e.cc.Region.fromArrayOrUndefined(this.args.wheelEventHandlerRegion);this.nonFastScrollableRegion=tr.e.cc.Region.fromArrayOrUndefined(this.args.nonFastScrollableRegion);},get layerTreeImpl(){if(this.layerTreeImpl_){return this.layerTreeImpl_;}
if(this.parentLayer){return this.parentLayer.layerTreeImpl;}
return undefined;},set layerTreeImpl(layerTreeImpl){this.layerTreeImpl_=layerTreeImpl;},get activeLayer(){if(this.layerTreeImpl.whichTree===constants.ACTIVE_TREE){return this;}
const activeTree=this.layerTreeImpl.layerTreeHostImpl.activeTree;return activeTree.findLayerWithId(this.layerId);},get pendingLayer(){if(this.layerTreeImpl.whichTree===constants.PENDING_TREE){return this;}
const pendingTree=this.layerTreeImpl.layerTreeHostImpl.pendingTree;return pendingTree.findLayerWithId(this.layerId);}};function PictureLayerImplSnapshot(){LayerImplSnapshot.apply(this,arguments);}
PictureLayerImplSnapshot.prototype={__proto__:LayerImplSnapshot.prototype,initialize(){LayerImplSnapshot.prototype.initialize.call(this);if(this.args.invalidation){this.invalidation=tr.e.cc.Region.fromArray(this.args.invalidation);delete this.args.invalidation;}
if(this.args.annotatedInvalidationRects){this.annotatedInvalidation=new tr.e.cc.Region();for(let i=0;i<this.args.annotatedInvalidationRects.length;++i){const annotatedRect=this.args.annotatedInvalidationRects[i];const rect=annotatedRect.geometryRect;rect.reason=annotatedRect.reason;this.annotatedInvalidation.addRect(rect);}
delete this.args.annotatedInvalidationRects;}
if(this.args.unrecordedRegion){this.unrecordedRegion=tr.e.cc.Region.fromArray(this.args.unrecordedRegion);delete this.args.unrecordedRegion;}
if(this.args.pictures){this.pictures=this.args.pictures;this.pictures.sort(function(a,b){return a.ts-b.ts;});}
this.tileCoverageRects=[];if(this.args.coverageTiles){for(let i=0;i<this.args.coverageTiles.length;++i){const rect=this.args.coverageTiles[i].geometryRect.scale(this.idealContentsScale);const tile=this.args.coverageTiles[i].tile;this.tileCoverageRects.push(new tr.e.cc.TileCoverageRect(rect,tile));}
delete this.args.coverageTiles;}}};ObjectSnapshot.subTypes.register(PictureLayerImplSnapshot,{typeName:'cc::PictureLayerImpl'});ObjectSnapshot.subTypes.register(LayerImplSnapshot,{typeNames:['cc::LayerImpl','cc::DelegatedRendererLayerImpl','cc::HeadsUpDisplayLayerImpl','cc::IOSurfaceLayerImpl','cc::NinePatchLayerImpl','cc::PictureImageLayerImpl','cc::ScrollbarLayerImpl','cc::SolidColorLayerImpl','cc::SolidColorScrollbarLayerImpl','cc::SurfaceLayerImpl','cc::TextureLayerImpl','cc::TiledLayerImpl','cc::VideoLayerImpl','cc::PaintedScrollbarLayerImpl','ClankPatchLayer','TabBorderLayer','CounterLayer']});return{LayerImplSnapshot,PictureLayerImplSnapshot,};});'use strict';tr.exportTo('tr.e.cc',function(){const constants=tr.e.cc.constants;const ObjectSnapshot=tr.model.ObjectSnapshot;function LayerTreeImplSnapshot(){ObjectSnapshot.apply(this,arguments);}
LayerTreeImplSnapshot.prototype={__proto__:ObjectSnapshot.prototype,preInitialize(){tr.e.cc.preInitializeObject(this);this.layerTreeHostImpl=undefined;this.whichTree=undefined;this.sourceFrameNumber=undefined;},initialize(){tr.e.cc.moveRequiredFieldsFromArgsToToplevel(this,['renderSurfaceLayerList']);tr.e.cc.moveOptionalFieldsFromArgsToToplevel(this,['rootLayer','layers']);if(this.args.sourceFrameNumber){this.sourceFrameNumber=this.args.sourceFrameNumber;}
if(this.rootLayer){this.rootLayer.layerTreeImpl=this;}else{for(let i=0;i<this.layers.length;i++){this.layers[i].layerTreeImpl=this;}}
if(this.args.swapPromiseTraceIds&&this.args.swapPromiseTraceIds.length){this.tracedInputLatencies=[];const ownProcess=this.objectInstance.parent;const modelHelper=ownProcess.model.getOrCreateHelper(tr.model.helpers.ChromeModelHelper);if(modelHelper){this._initializeTracedInputLatencies(modelHelper);}}},_initializeTracedInputLatencies(modelHelper){const latencyEvents=modelHelper.browserHelper.getLatencyEventsInRange(modelHelper.model.bounds);latencyEvents.forEach(function(event){for(let i=0;i<this.args.swapPromiseTraceIds.length;i++){if(!event.args.data||!event.args.data.trace_id){continue;}
if(parseInt(event.args.data.trace_id)===this.args.swapPromiseTraceIds[i]){this.tracedInputLatencies.push(event);}}},this);},get hasSourceFrameBeenDrawnBefore(){if(this.whichTree===tr.e.cc.constants.PENDING_TREE){return false;}
if(this.sourceFrameNumber===undefined)return;const thisLTHI=this.layerTreeHostImpl;const thisLTHIIndex=thisLTHI.objectInstance.snapshots.indexOf(thisLTHI);const prevLTHIIndex=thisLTHIIndex-1;if(prevLTHIIndex<0||prevLTHIIndex>=thisLTHI.objectInstance.snapshots.length){return false;}
const prevLTHI=thisLTHI.objectInstance.snapshots[prevLTHIIndex];if(!prevLTHI.activeTree)return false;if(prevLTHI.activeTree.sourceFrameNumber===undefined)return;return prevLTHI.activeTree.sourceFrameNumber===this.sourceFrameNumber;},get otherTree(){const other=this.whichTree===constants.ACTIVE_TREE?constants.PENDING_TREE:constants.ACTIVE_TREE;return this.layerTreeHostImpl.getTree(other);},get gpuMemoryUsageInBytes(){let totalBytes=0;this.iterLayers(function(layer){if(layer.gpuMemoryUsageInBytes!==undefined){totalBytes+=layer.gpuMemoryUsageInBytes;}});return totalBytes;},iterLayers(func,thisArg){const visitedLayers={};function visitLayer(layer,depth,isMask,isReplica){if(visitedLayers[layer.layerId])return;visitedLayers[layer.layerId]=true;func.call(thisArg,layer,depth,isMask,isReplica);if(layer.children){for(let i=0;i<layer.children.length;i++){visitLayer(layer.children[i],depth+1);}}
if(layer.maskLayer){visitLayer(layer.maskLayer,depth+1,true,false);}
if(layer.replicaLayer){visitLayer(layer.replicaLayer,depth+1,false,true);}}
if(this.rootLayer){visitLayer(this.rootLayer,0,false,false);}else{for(let i=0;i<this.layers.length;i++){visitLayer(this.layers[i],0,false,false);}}},findLayerWithId(id){let foundLayer=undefined;function visitLayer(layer){if(layer.layerId===id){foundLayer=layer;}}
this.iterLayers(visitLayer);return foundLayer;}};ObjectSnapshot.subTypes.register(LayerTreeImplSnapshot,{typeName:'cc::LayerTreeImpl'});return{LayerTreeImplSnapshot,};});'use strict';tr.exportTo('tr.e.cc',function(){const constants=tr.e.cc.constants;const ObjectSnapshot=tr.model.ObjectSnapshot;const ObjectInstance=tr.model.ObjectInstance;function LayerTreeHostImplSnapshot(){ObjectSnapshot.apply(this,arguments);}
LayerTreeHostImplSnapshot.prototype={__proto__:ObjectSnapshot.prototype,preInitialize(){tr.e.cc.preInitializeObject(this);},initialize(){tr.e.cc.moveRequiredFieldsFromArgsToToplevel(this,['deviceViewportSize','activeTree']);tr.e.cc.moveOptionalFieldsFromArgsToToplevel(this,['pendingTree']);if(this.args.activeTiles!==undefined){this.activeTiles=this.args.activeTiles;delete this.args.activeTiles;}else if(this.args.tiles!==undefined){this.activeTiles=this.args.tiles;delete this.args.tiles;}
if(!this.activeTiles){this.activeTiles=[];}
this.activeTree.layerTreeHostImpl=this;this.activeTree.whichTree=constants.ACTIVE_TREE;if(this.pendingTree){this.pendingTree.layerTreeHostImpl=this;this.pendingTree.whichTree=constants.PENDING_TREE;}},getContentsScaleNames(){const scales={};for(let i=0;i<this.activeTiles.length;++i){const tile=this.activeTiles[i];scales[tile.contentsScale]=tile.resolution;}
return scales;},getTree(whichTree){if(whichTree===constants.ACTIVE_TREE){return this.activeTree;}
if(whichTree===constants.PENDING_TREE){return this.pendingTree;}
throw new Exception('Unknown tree type + '+whichTree);},get tilesHaveGpuMemoryUsageInfo(){if(this.tilesHaveGpuMemoryUsageInfo_!==undefined){return this.tilesHaveGpuMemoryUsageInfo_;}
for(let i=0;i<this.activeTiles.length;i++){if(this.activeTiles[i].gpuMemoryUsageInBytes===undefined){continue;}
this.tilesHaveGpuMemoryUsageInfo_=true;return true;}
this.tilesHaveGpuMemoryUsageInfo_=false;return false;},get gpuMemoryUsageInBytes(){if(!this.tilesHaveGpuMemoryUsageInfo)return;let usage=0;for(let i=0;i<this.activeTiles.length;i++){const u=this.activeTiles[i].gpuMemoryUsageInBytes;if(u!==undefined)usage+=u;}
return usage;},get userFriendlyName(){let frameNumber;if(!this.activeTree){frameNumber=this.objectInstance.snapshots.indexOf(this);}else{if(this.activeTree.sourceFrameNumber===undefined){frameNumber=this.objectInstance.snapshots.indexOf(this);}else{frameNumber=this.activeTree.sourceFrameNumber;}}
return'cc::LayerTreeHostImpl frame '+frameNumber;}};ObjectSnapshot.subTypes.register(LayerTreeHostImplSnapshot,{typeName:'cc::LayerTreeHostImpl'});function LayerTreeHostImplInstance(){ObjectInstance.apply(this,arguments);this.allLayersBBox_=undefined;}
LayerTreeHostImplInstance.prototype={__proto__:ObjectInstance.prototype,get allContentsScales(){if(this.allContentsScales_){return this.allContentsScales_;}
const scales={};for(const tileID in this.allTileHistories_){const tileHistory=this.allTileHistories_[tileID];scales[tileHistory.contentsScale]=true;}
this.allContentsScales_=Object.keys(scales);return this.allContentsScales_;},get allLayersBBox(){if(this.allLayersBBox_){return this.allLayersBBox_;}
const bbox=new tr.b.math.BBox2();function handleTree(tree){tree.renderSurfaceLayerList.forEach(function(layer){bbox.addQuad(layer.layerQuad);});}
this.snapshots.forEach(function(lthi){handleTree(lthi.activeTree);if(lthi.pendingTree){handleTree(lthi.pendingTree);}});this.allLayersBBox_=bbox;return this.allLayersBBox_;}};ObjectInstance.subTypes.register(LayerTreeHostImplInstance,{typeName:'cc::LayerTreeHostImpl'});return{LayerTreeHostImplSnapshot,LayerTreeHostImplInstance,};});'use strict';tr.exportTo('tr.e.cc',function(){const tileTypes={highRes:'highRes',lowRes:'lowRes',extraHighRes:'extraHighRes',extraLowRes:'extraLowRes',missing:'missing',culled:'culled',solidColor:'solidColor',picture:'picture',directPicture:'directPicture',unknown:'unknown'};const tileBorder={highRes:{color:'rgba(80, 200, 200, 0.7)',width:1},lowRes:{color:'rgba(212, 83, 192, 0.7)',width:2},extraHighRes:{color:'rgba(239, 231, 20, 0.7)',width:2},extraLowRes:{color:'rgba(93, 186, 18, 0.7)',width:2},missing:{color:'rgba(255, 0, 0, 0.7)',width:1},culled:{color:'rgba(160, 100, 0, 0.8)',width:1},solidColor:{color:'rgba(128, 128, 128, 0.7)',width:1},picture:{color:'rgba(64, 64, 64, 0.7)',width:1},directPicture:{color:'rgba(127, 255, 0, 1.0)',width:1},unknown:{color:'rgba(0, 0, 0, 1.0)',width:2}};return{tileTypes,tileBorder};});'use strict';tr.exportTo('tr.e.cc',function(){const ObjectSnapshot=tr.model.ObjectSnapshot;function TileSnapshot(){ObjectSnapshot.apply(this,arguments);}
TileSnapshot.prototype={__proto__:ObjectSnapshot.prototype,preInitialize(){tr.e.cc.preInitializeObject(this);},initialize(){tr.e.cc.moveOptionalFieldsFromArgsToToplevel(this,['layerId','contentsScale','contentRect']);if(this.args.managedState){this.resolution=this.args.managedState.resolution;this.isSolidColor=this.args.managedState.isSolidColor;this.isUsingGpuMemory=this.args.managedState.isUsingGpuMemory;this.hasResource=this.args.managedState.hasResource;this.scheduledPriority=this.args.scheduledPriority;this.gpuMemoryUsageInBytes=this.args.gpuMemoryUsage;}else{this.resolution=this.args.resolution;this.isSolidColor=this.args.drawInfo.isSolidColor;this.isUsingGpuMemory=this.args.isUsingGpuMemory;this.hasResource=this.args.hasResource;this.scheduledPriority=this.args.scheduledPriority;this.gpuMemoryUsageInBytes=this.args.gpuMemoryUsage;}
if(this.contentRect){this.layerRect=this.contentRect.scale(1.0/this.contentsScale);}
if(this.isSolidColor){this.type_=tr.e.cc.tileTypes.solidColor;}else if(!this.hasResource){this.type_=tr.e.cc.tileTypes.missing;}else if(this.resolution==='HIGH_RESOLUTION'){this.type_=tr.e.cc.tileTypes.highRes;}else if(this.resolution==='LOW_RESOLUTION'){this.type_=tr.e.cc.tileTypes.lowRes;}else{this.type_=tr.e.cc.tileTypes.unknown;}},getTypeForLayer(layer){let type=this.type_;if(type===tr.e.cc.tileTypes.unknown){if(this.contentsScale<layer.idealContentsScale){type=tr.e.cc.tileTypes.extraLowRes;}else if(this.contentsScale>layer.idealContentsScale){type=tr.e.cc.tileTypes.extraHighRes;}}
return type;}};ObjectSnapshot.subTypes.register(TileSnapshot,{typeName:'cc::Tile'});return{TileSnapshot,};});'use strict';tr.exportTo('tr.ui.b',function(){const Location=tr.model.Location;function UIState(location,scaleX){this.location_=location;this.scaleX_=scaleX;}
UIState.fromUserFriendlyString=function(model,viewport,stateString){const navByFinderPattern=/^(-?\d+(\.\d+)?)@(.+)x(\d+(\.\d+)?)$/g;const match=navByFinderPattern.exec(stateString);if(!match)return;const timestamp=parseFloat(match[1]);const stableId=match[3];const scaleX=parseFloat(match[4]);if(scaleX<=0){throw new Error('Invalid ScaleX value in UI State string.');}
if(!viewport.containerToTrackMap.getTrackByStableId(stableId)){throw new Error('Invalid StableID given in UI State String.');}
const loc=tr.model.Location.fromStableIdAndTimestamp(viewport,stableId,timestamp);return new UIState(loc,scaleX);};UIState.prototype={get location(){return this.location_;},get scaleX(){return this.scaleX_;},toUserFriendlyString(viewport){const timestamp=this.location_.xWorld;const stableId=this.location_.getContainingTrack(viewport).eventContainer.stableId;const scaleX=this.scaleX_;return timestamp.toFixed(5)+'@'+stableId+'x'+scaleX.toFixed(5);},toDict(){return{location:this.location_.toDict(),scaleX:this.scaleX_};}};return{UIState,};});'use strict';tr.exportTo('tr.ui.b',function(){const EventSet=tr.model.EventSet;const SelectionState=tr.model.SelectionState;function BrushingState(){this.guid_=tr.b.GUID.allocateSimple();this.selection_=new EventSet();this.findMatches_=new EventSet();this.analysisViewRelatedEvents_=new EventSet();this.analysisLinkHoveredEvents_=new EventSet();this.appliedToModel_=undefined;this.viewSpecificBrushingStates_={};}
BrushingState.prototype={get guid(){return this.guid_;},clone(){const that=new BrushingState();that.selection_=this.selection_;that.findMatches_=this.findMatches_;that.analysisViewRelatedEvents_=this.analysisViewRelatedEvents_;that.analysisLinkHoveredEvents_=this.analysisLinkHoveredEvents_;that.viewSpecificBrushingStates_=this.viewSpecificBrushingStates_;return that;},equals(that){if(!this.selection_.equals(that.selection_)){return false;}
if(!this.findMatches_.equals(that.findMatches_)){return false;}
if(!this.analysisViewRelatedEvents_.equals(that.analysisViewRelatedEvents_)){return false;}
if(!this.analysisLinkHoveredEvents_.equals(that.analysisLinkHoveredEvents_)){return false;}
return true;},get selectionOfInterest(){if(this.selection_.length){return this.selection_;}
if(this.highlight_.length){return this.highlight_;}
if(this.analysisViewRelatedEvents_.length){return this.analysisViewRelatedEvents_;}
if(this.analysisLinkHoveredEvents_.length){return this.analysisLinkHoveredEvents_;}
return this.selection_;},get selection(){return this.selection_;},set selection(selection){if(this.appliedToModel_){throw new Error('Cannot mutate this state right now');}
if(selection===undefined){selection=new EventSet();}
this.selection_=selection;},get findMatches(){return this.findMatches_;},set findMatches(findMatches){if(this.appliedToModel_){throw new Error('Cannot mutate this state right now');}
if(findMatches===undefined){findMatches=new EventSet();}
this.findMatches_=findMatches;},get analysisViewRelatedEvents(){return this.analysisViewRelatedEvents_;},set analysisViewRelatedEvents(analysisViewRelatedEvents){if(this.appliedToModel_){throw new Error('Cannot mutate this state right now');}
if(analysisViewRelatedEvents===undefined){analysisViewRelatedEvents=new EventSet();}
this.analysisViewRelatedEvents_=analysisViewRelatedEvents;},get analysisLinkHoveredEvents(){return this.analysisLinkHoveredEvents_;},set analysisLinkHoveredEvents(analysisLinkHoveredEvents){if(this.appliedToModel_){throw new Error('Cannot mutate this state right now');}
if(analysisLinkHoveredEvents===undefined){analysisLinkHoveredEvents=new EventSet();}
this.analysisLinkHoveredEvents_=analysisLinkHoveredEvents;},get isAppliedToModel(){return this.appliedToModel_!==undefined;},get viewSpecificBrushingStates(){return this.viewSpecificBrushingStates_;},set viewSpecificBrushingStates(viewSpecificBrushingStates){this.viewSpecificBrushingStates_=viewSpecificBrushingStates;},get dimmedEvents_(){const dimmedEvents=new EventSet();dimmedEvents.addEventSet(this.findMatches);dimmedEvents.addEventSet(this.analysisViewRelatedEvents_);return dimmedEvents;},get brightenedEvents_(){const brightenedEvents=new EventSet();brightenedEvents.addEventSet(this.selection_);brightenedEvents.addEventSet(this.analysisLinkHoveredEvents_);return brightenedEvents;},applyToEventSelectionStates(model){this.appliedToModel_=model;const dimmedEvents=this.dimmedEvents_;if(model){const newDefaultState=(dimmedEvents.length?SelectionState.DIMMED0:SelectionState.NONE);const currentDefaultState=tr.b.getFirstElement(model.getDescendantEvents()).selectionState;if(currentDefaultState!==newDefaultState){for(const e of model.getDescendantEvents()){e.selectionState=newDefaultState;}}}
let score;for(const e of dimmedEvents){score=0;if(this.findMatches_.contains(e)){score++;}
if(this.analysisViewRelatedEvents_.contains(e)){score++;}
e.selectionState=SelectionState.getFromDimmingLevel(score);}
for(const e of this.brightenedEvents_){score=0;if(this.selection_.contains(e)){score++;}
if(this.analysisLinkHoveredEvents_.contains(e)){score++;}
e.selectionState=SelectionState.getFromBrighteningLevel(score);}},transferModelOwnershipToClone(that){if(!this.appliedToModel_){throw new Error('Not applied');}
that.appliedToModel_=this.appliedToModel_;this.appliedToModel_=undefined;},unapplyFromEventSelectionStates(){if(!this.appliedToModel_){throw new Error('Not applied');}
const model=this.appliedToModel_;this.appliedToModel_=undefined;const dimmedEvents=this.dimmedEvents_;const defaultState=(dimmedEvents.length?SelectionState.DIMMED0:SelectionState.NONE);for(const e of this.brightenedEvents_){e.selectionState=defaultState;}
for(const e of dimmedEvents){e.selectionState=defaultState;}
return defaultState;}};return{BrushingState,};});'use strict';tr.exportTo('tr.ui.b',function(){function Animation(){}
Animation.prototype={canTakeOverFor(existingAnimation){throw new Error('Not implemented');},takeOverFor(existingAnimation,newStartTimestamp,target){throw new Error('Not implemented');},start(timestamp,target){throw new Error('Not implemented');},didStopEarly(timestamp,target,willBeTakenOverByAnotherAnimation){},tick(timestamp,target){throw new Error('Not implemented');}};return{Animation,};});'use strict';tr.exportTo('tr.ui.b',function(){function AnimationController(){tr.b.EventTarget.call(this);this.target_=undefined;this.activeAnimation_=undefined;this.tickScheduled_=false;}
AnimationController.prototype={__proto__:tr.b.EventTarget.prototype,get target(){return this.target_;},set target(target){if(this.activeAnimation_){throw new Error('Cannot change target while animation is running.');}
if(target.cloneAnimationState===undefined||typeof target.cloneAnimationState!=='function'){throw new Error('target must have a cloneAnimationState function');}
this.target_=target;},get activeAnimation(){return this.activeAnimation_;},get hasActiveAnimation(){return!!this.activeAnimation_;},queueAnimation(animation,opt_now){if(this.target_===undefined){throw new Error('Cannot queue animations without a target');}
let now;if(opt_now!==undefined){now=opt_now;}else{now=window.performance.now();}
if(this.activeAnimation_){const done=this.activeAnimation_.tick(now,this.target_);if(done){this.activeAnimation_=undefined;}}
if(this.activeAnimation_){if(animation.canTakeOverFor(this.activeAnimation_)){this.activeAnimation_.didStopEarly(now,this.target_,true);animation.takeOverFor(this.activeAnimation_,now,this.target_);}else{this.activeAnimation_.didStopEarly(now,this.target_,false);}}
this.activeAnimation_=animation;this.activeAnimation_.start(now,this.target_);if(this.tickScheduled_)return;this.tickScheduled_=true;tr.b.requestAnimationFrame(this.tickActiveAnimation_,this);},cancelActiveAnimation(opt_now){if(!this.activeAnimation_)return;let now;if(opt_now!==undefined){now=opt_now;}else{now=window.performance.now();}
this.activeAnimation_.didStopEarly(now,this.target_,false);this.activeAnimation_=undefined;},tickActiveAnimation_(frameBeginTime){this.tickScheduled_=false;if(!this.activeAnimation_)return;if(this.target_===undefined){this.activeAnimation_.didStopEarly(frameBeginTime,this.target_,false);return;}
const oldTargetState=this.target_.cloneAnimationState();const done=this.activeAnimation_.tick(frameBeginTime,this.target_);if(done){this.activeAnimation_=undefined;}
if(this.activeAnimation_){this.tickScheduled_=true;tr.b.requestAnimationFrame(this.tickActiveAnimation_,this);}
if(oldTargetState){const e=new tr.b.Event('didtick');e.oldTargetState=oldTargetState;this.dispatchEvent(e,false,false);}}};return{AnimationController,};});'use strict';tr.exportTo('tr.b',function(){function Settings(){return Settings;}
if(tr.b.unittest&&tr.b.unittest.TestRunner){tr.b.unittest.TestRunner.addEventListener('tr-unittest-will-run',function(){if(tr.isHeadless){Settings.setAlternativeStorageInstance(new HeadlessStorage());}else{Settings.setAlternativeStorageInstance(global.sessionStorage);global.sessionStorage.clear();}});}
function SessionSettings(){return SessionSettings;}
function AddStaticStorageFunctionsToClass_(inputClass,storage){inputClass.storage_=storage;inputClass.get=function(key,opt_default,opt_namespace){key=inputClass.namespace_(key,opt_namespace);const rawVal=inputClass.storage_.getItem(key);if(rawVal===null||rawVal===undefined){return opt_default;}
try{return JSON.parse(rawVal).value;}catch(e){inputClass.storage_.removeItem(key);return opt_default;}};inputClass.set=function(key,value,opt_namespace){if(value===undefined){throw new Error('Settings.set: value must not be undefined');}
const v=JSON.stringify({value});inputClass.storage_.setItem(inputClass.namespace_(key,opt_namespace),v);};inputClass.keys=function(opt_namespace){const result=[];opt_namespace=opt_namespace||'';for(let i=0;i<inputClass.storage_.length;i++){const key=inputClass.storage_.key(i);if(inputClass.isnamespaced_(key,opt_namespace)){result.push(inputClass.unnamespace_(key,opt_namespace));}}
return result;};inputClass.isnamespaced_=function(key,opt_namespace){return key.indexOf(inputClass.normalize_(opt_namespace))===0;};inputClass.namespace_=function(key,opt_namespace){return inputClass.normalize_(opt_namespace)+key;};inputClass.unnamespace_=function(key,opt_namespace){return key.replace(inputClass.normalize_(opt_namespace),'');};inputClass.normalize_=function(opt_namespace){return inputClass.NAMESPACE+(opt_namespace?opt_namespace+'.':'');};inputClass.setAlternativeStorageInstance=function(instance){inputClass.storage_=instance;};inputClass.getAlternativeStorageInstance=function(){if(!tr.isHeadless&&inputClass.storage_===localStorage){return undefined;}
return inputClass.storage_;};inputClass.NAMESPACE='trace-viewer';}
function HeadlessStorage(){this.length=0;this.hasItem_={};this.items_={};this.itemsAsArray_=undefined;}
HeadlessStorage.prototype={key(index){return this.itemsAsArray[index];},get itemsAsArray(){if(this.itemsAsArray_!==undefined){return this.itemsAsArray_;}
const itemsAsArray=[];for(const k in this.items_){itemsAsArray.push(k);}
this.itemsAsArray_=itemsAsArray;return this.itemsAsArray_;},getItem(key){if(!this.hasItem_[key]){return null;}
return this.items_[key];},removeItem(key){if(!this.hasItem_[key]){return;}
const value=this.items_[key];delete this.hasItem_[key];delete this.items_[key];this.length--;this.itemsAsArray_=undefined;return value;},setItem(key,value){if(this.hasItem_[key]){this.items_[key]=value;return;}
this.items_[key]=value;this.hasItem_[key]=true;this.length++;this.itemsAsArray_=undefined;return value;}};if(tr.isHeadless){AddStaticStorageFunctionsToClass_(Settings,new HeadlessStorage());AddStaticStorageFunctionsToClass_(SessionSettings,new HeadlessStorage());}else{AddStaticStorageFunctionsToClass_(Settings,localStorage);AddStaticStorageFunctionsToClass_(SessionSettings,sessionStorage);}
return{Settings,SessionSettings,};});'use strict';tr.exportTo('tr.ui.b',function(){function createSpan(opt_dictionary){let ownerDocument=document;if(opt_dictionary&&opt_dictionary.ownerDocument){ownerDocument=opt_dictionary.ownerDocument;}
const spanEl=ownerDocument.createElement('span');if(opt_dictionary){if(opt_dictionary.className){spanEl.className=opt_dictionary.className;}
if(opt_dictionary.textContent){Polymer.dom(spanEl).textContent=opt_dictionary.textContent;}
if(opt_dictionary.tooltip){spanEl.title=opt_dictionary.tooltip;}
if(opt_dictionary.parent){Polymer.dom(opt_dictionary.parent).appendChild(spanEl);}
if(opt_dictionary.bold){spanEl.style.fontWeight='bold';}
if(opt_dictionary.italic){spanEl.style.fontStyle='italic';}
if(opt_dictionary.marginLeft){spanEl.style.marginLeft=opt_dictionary.marginLeft;}
if(opt_dictionary.marginRight){spanEl.style.marginRight=opt_dictionary.marginRight;}
if(opt_dictionary.backgroundColor){spanEl.style.backgroundColor=opt_dictionary.backgroundColor;}
if(opt_dictionary.color){spanEl.style.color=opt_dictionary.color;}}
return spanEl;}
function createLink(opt_args){let ownerDocument=document;if(opt_args&&opt_args.ownerDocument){ownerDocument=opt_args.ownerDocument;}
const linkEl=ownerDocument.createElement('a');if(opt_args){if(opt_args.href)linkEl.href=opt_args.href;if(opt_args.tooltip)linkEl.title=opt_args.tooltip;if(opt_args.color)linkEl.style.color=opt_args.color;if(opt_args.bold)linkEl.style.fontWeight='bold';if(opt_args.italic)linkEl.style.fontStyle='italic';if(opt_args.className)linkEl.className=opt_args.className;if(opt_args.parent)Polymer.dom(opt_args.parent).appendChild(linkEl);if(opt_args.marginLeft)linkEl.style.marginLeft=opt_args.marginLeft;if(opt_args.marginRight)linkEl.style.marginRight=opt_args.marginRight;if(opt_args.backgroundColor){linkEl.style.backgroundColor=opt_args.backgroundColor;}
if(opt_args.textContent){Polymer.dom(linkEl).textContent=opt_args.textContent;}}
return linkEl;}
function createDiv(opt_dictionary){const divEl=document.createElement('div');if(opt_dictionary){if(opt_dictionary.className){divEl.className=opt_dictionary.className;}
if(opt_dictionary.parent){Polymer.dom(opt_dictionary.parent).appendChild(divEl);}
if(opt_dictionary.textContent){Polymer.dom(divEl).textContent=opt_dictionary.textContent;}
if(opt_dictionary.maxWidth){divEl.style.maxWidth=opt_dictionary.maxWidth;}}
return divEl;}
function createScopedStyle(styleContent){const styleEl=document.createElement('style');styleEl.scoped=true;Polymer.dom(styleEl).innerHTML=styleContent;return styleEl;}
function valuesEqual(a,b){if(a instanceof Array&&b instanceof Array){return a.length===b.length&&JSON.stringify(a)===JSON.stringify(b);}
return a===b;}
function createSelector(targetEl,targetElProperty,settingsKey,defaultValue,items,opt_namespace){let defaultValueIndex;for(let i=0;i<items.length;i++){const item=items[i];if(valuesEqual(item.value,defaultValue)){defaultValueIndex=i;break;}}
if(defaultValueIndex===undefined){throw new Error('defaultValue must be in the items list');}
const selectorEl=document.createElement('select');selectorEl.addEventListener('change',onChange);for(let i=0;i<items.length;i++){const item=items[i];const optionEl=document.createElement('option');Polymer.dom(optionEl).textContent=item.label;optionEl.targetPropertyValue=item.value;optionEl.item=item;Polymer.dom(selectorEl).appendChild(optionEl);}
function onChange(e){const value=selectorEl.selectedOptions[0].targetPropertyValue;tr.b.Settings.set(settingsKey,value,opt_namespace);targetEl[targetElProperty]=value;}
const oldSetter=targetEl.__lookupSetter__('selectedIndex');selectorEl.__defineGetter__('selectedValue',function(v){return selectorEl.children[selectorEl.selectedIndex].targetPropertyValue;});selectorEl.__defineGetter__('selectedItem',function(v){return selectorEl.children[selectorEl.selectedIndex].item;});selectorEl.__defineSetter__('selectedValue',function(v){for(let i=0;i<selectorEl.children.length;i++){const value=selectorEl.children[i].targetPropertyValue;if(valuesEqual(value,v)){const changed=selectorEl.selectedIndex!==i;if(changed){selectorEl.selectedIndex=i;onChange();}
return;}}
throw new Error('Not a valid value');});const initialValue=tr.b.Settings.get(settingsKey,defaultValue,opt_namespace);let didSet=false;for(let i=0;i<selectorEl.children.length;i++){if(valuesEqual(selectorEl.children[i].targetPropertyValue,initialValue)){didSet=true;targetEl[targetElProperty]=initialValue;selectorEl.selectedIndex=i;break;}}
if(!didSet){selectorEl.selectedIndex=defaultValueIndex;targetEl[targetElProperty]=defaultValue;}
return selectorEl;}
function createEditCategorySpan(optionGroupEl,targetEl){const spanEl=createSpan({className:'edit-categories'});Polymer.dom(spanEl).textContent='Edit categories';Polymer.dom(spanEl).classList.add('labeled-option');spanEl.addEventListener('click',function(){targetEl.onClickEditCategories();});return spanEl;}
function createOptionGroup(targetEl,targetElProperty,settingsKey,defaultValue,items){function onChange(){let value=[];if(this.value.length){value=this.value.split(',');}
tr.b.Settings.set(settingsKey,value);targetEl[targetElProperty]=value;}
const optionGroupEl=createSpan({className:'labeled-option-group'});const initialValue=tr.b.Settings.get(settingsKey,defaultValue);for(let i=0;i<items.length;++i){const item=items[i];const id='category-preset-'+item.label.replace(/ /g,'-');const radioEl=document.createElement('input');radioEl.type='radio';Polymer.dom(radioEl).setAttribute('id',id);Polymer.dom(radioEl).setAttribute('name','category-presets-group');Polymer.dom(radioEl).setAttribute('value',item.value);radioEl.addEventListener('change',onChange.bind(radioEl,targetEl,targetElProperty,settingsKey));if(valuesEqual(initialValue,item.value)){radioEl.checked=true;}
const labelEl=document.createElement('label');Polymer.dom(labelEl).textContent=item.label;Polymer.dom(labelEl).setAttribute('for',id);const spanEl=createSpan({className:'labeled-option'});Polymer.dom(spanEl).appendChild(radioEl);Polymer.dom(spanEl).appendChild(labelEl);spanEl.__defineSetter__('checked',function(opt_bool){const changed=radioEl.checked!==(!!opt_bool);if(!changed)return;radioEl.checked=!!opt_bool;onChange();});spanEl.__defineGetter__('checked',function(){return radioEl.checked;});Polymer.dom(optionGroupEl).appendChild(spanEl);}
Polymer.dom(optionGroupEl).appendChild(createEditCategorySpan(optionGroupEl,targetEl));if(!initialValue.length){Polymer.dom(optionGroupEl).classList.add('categories-expanded');}
targetEl[targetElProperty]=initialValue;return optionGroupEl;}
let nextCheckboxId=1;function createCheckBox(targetEl,targetElProperty,settingsKey,defaultValue,label,opt_changeCb){const buttonEl=document.createElement('input');buttonEl.type='checkbox';let initialValue=defaultValue;if(settingsKey!==undefined){initialValue=tr.b.Settings.get(settingsKey,defaultValue);buttonEl.checked=!!initialValue;}
if(targetEl){targetEl[targetElProperty]=initialValue;}
function onChange(){if(settingsKey!==undefined){tr.b.Settings.set(settingsKey,buttonEl.checked);}
if(targetEl){targetEl[targetElProperty]=buttonEl.checked;}
if(opt_changeCb){opt_changeCb.call();}}
buttonEl.addEventListener('change',onChange);const id='#checkbox-'+nextCheckboxId++;const spanEl=createSpan({className:'labeled-checkbox'});Polymer.dom(buttonEl).setAttribute('id',id);const labelEl=document.createElement('label');Polymer.dom(labelEl).textContent=label;Polymer.dom(labelEl).setAttribute('for',id);Polymer.dom(spanEl).appendChild(buttonEl);Polymer.dom(spanEl).appendChild(labelEl);spanEl.__defineSetter__('checked',function(opt_bool){const changed=buttonEl.checked!==(!!opt_bool);if(!changed)return;buttonEl.checked=!!opt_bool;onChange();});spanEl.__defineGetter__('checked',function(){return buttonEl.checked;});return spanEl;}
function createButton(label,opt_callback,opt_this){const buttonEl=document.createElement('input');buttonEl.type='button';buttonEl.value=label;function onClick(){opt_callback.call(opt_this||buttonEl);}
if(opt_callback){buttonEl.addEventListener('click',onClick);}
return buttonEl;}
function createTextInput(targetEl,targetElProperty,settingsKey,defaultValue){const initialValue=tr.b.Settings.get(settingsKey,defaultValue);const el=document.createElement('input');el.type='text';function onChange(e){tr.b.Settings.set(settingsKey,el.value);targetEl[targetElProperty]=el.value;}
el.addEventListener('input',onChange);el.value=initialValue;targetEl[targetElProperty]=initialValue;return el;}
function isElementAttachedToDocument(el){let cur=el;while(Polymer.dom(cur).parentNode){cur=Polymer.dom(cur).parentNode;}
return(cur===el.ownerDocument||cur.nodeName==='#document-fragment');}
function asHTMLOrTextNode(value,opt_ownerDocument){if(value instanceof Node){return value;}
const ownerDocument=opt_ownerDocument||document;return ownerDocument.createTextNode(value);}
return{createSpan,createLink,createDiv,createScopedStyle,createSelector,createOptionGroup,createCheckBox,createButton,createTextInput,isElementAttachedToDocument,asHTMLOrTextNode,};});'use strict';tr.exportTo('tr.ui.b',function(){const elidedTitleCacheDict=new Map();const elidedTitleCache=new ElidedTitleCache();function ElidedTitleCache(){this.textWidthMap=new Map();}
ElidedTitleCache.prototype={get(ctx,pixWidth,title,width,sliceDuration){let elidedDict=elidedTitleCacheDict.get(title);if(!elidedDict){elidedDict=new Map();elidedTitleCacheDict.set(title,elidedDict);}
let elidedDictForPixWidth=elidedDict.get(pixWidth);if(!elidedDictForPixWidth){elidedDict.set(pixWidth,new Map());elidedDictForPixWidth=elidedDict.get(pixWidth);}
let stringWidthPair=elidedDictForPixWidth.get(sliceDuration);if(stringWidthPair===undefined){let newtitle=title;let elided=false;while(this.labelWidthWorld(ctx,newtitle,pixWidth)>sliceDuration){if(newtitle.length*0.75<1)break;newtitle=newtitle.substring(0,newtitle.length*0.75);elided=true;}
if(elided&&newtitle.length>3){newtitle=newtitle.substring(0,newtitle.length-3)+'...';}
stringWidthPair=new ElidedStringWidthPair(newtitle,this.labelWidth(ctx,newtitle));elidedDictForPixWidth.set(sliceDuration,stringWidthPair);}
return stringWidthPair;},quickMeasureText_(ctx,text){let w=this.textWidthMap.get(text);if(!w){w=ctx.measureText(text).width;this.textWidthMap.set(text,w);}
return w;},labelWidth(ctx,title){return this.quickMeasureText_(ctx,title)+2;},labelWidthWorld(ctx,title,pixWidth){return this.labelWidth(ctx,title)*pixWidth;}};function ElidedStringWidthPair(string,width){this.string=string;this.width=width;}
return{ElidedTitleCache,};});'use strict';tr.exportTo('tr.ui.b',function(){const ColorScheme=tr.b.ColorScheme;const colors=ColorScheme.colors;const colorsAsStrings=ColorScheme.colorsAsStrings;const SelectionState=tr.model.SelectionState;const EventPresenter={getSelectableItemColorAsString(item){const offset=this.getColorIdOffset_(item);const colorId=ColorScheme.getVariantColorId(item.colorId,offset);return colorsAsStrings[colorId];},getColorIdOffset_(event){return event.selectionState;},getTextColor(event){if(event.selectionState===SelectionState.DIMMED){return'rgb(60,60,60)';}
return'rgb(0,0,0)';},getSliceColorId(slice){const offset=this.getColorIdOffset_(slice);return ColorScheme.getVariantColorId(slice.colorId,offset);},getSliceAlpha(slice,async){let alpha=1;if(async){alpha*=0.3;}
return alpha;},getInstantSliceColor(instant){const offset=this.getColorIdOffset_(instant);const colorId=ColorScheme.getVariantColorId(instant.colorId,offset);return colors[colorId].toStringWithAlphaOverride(1.0);},getObjectInstanceColor(instance){const offset=this.getColorIdOffset_(instance);const colorId=ColorScheme.getVariantColorId(instance.colorId,offset);return colors[colorId].toStringWithAlphaOverride(0.25);},getObjectSnapshotColor(snapshot){const offset=this.getColorIdOffset_(snapshot);let colorId=snapshot.objectInstance.colorId;colorId=ColorScheme.getVariantColorId(colorId,offset);return colors[colorId];},getCounterSeriesColor(colorId,selectionState,opt_alphaMultiplier){const event={selectionState};const offset=this.getColorIdOffset_(event);const c=colors[ColorScheme.getVariantColorId(colorId,offset)];return c.toStringWithAlphaOverride(opt_alphaMultiplier!==undefined?opt_alphaMultiplier:1.0);},getBarSnapshotColor(snapshot,offset){const snapshotOffset=this.getColorIdOffset_(snapshot);let colorId=snapshot.objectInstance.colorId;colorId=ColorScheme.getAnotherColorId(colorId,offset);colorId=ColorScheme.getVariantColorId(colorId,snapshotOffset);return colors[colorId].toStringWithAlphaOverride(1.0);}};return{EventPresenter,};});'use strict';tr.exportTo('tr.ui.b',function(){const elidedTitleCache=new tr.ui.b.ElidedTitleCache();const ColorScheme=tr.b.ColorScheme;const colorsAsStrings=ColorScheme.colorsAsStrings;const EventPresenter=tr.ui.b.EventPresenter;const blackColorId=ColorScheme.getColorIdForReservedName('black');const THIN_SLICE_HEIGHT=4;const SLICE_WAITING_WIDTH_DRAW_THRESHOLD=3;const SLICE_ACTIVE_WIDTH_DRAW_THRESHOLD=1;const SHOULD_ELIDE_TEXT=true;function drawLine(ctx,x1,y1,x2,y2){ctx.moveTo(x1,y1);ctx.lineTo(x2,y2);}
function drawTriangle(ctx,x1,y1,x2,y2,x3,y3){ctx.beginPath();ctx.moveTo(x1,y1);ctx.lineTo(x2,y2);ctx.lineTo(x3,y3);ctx.closePath();}
function drawArrow(ctx,x1,y1,x2,y2,arrowLength,arrowWidth){const dx=x2-x1;const dy=y2-y1;const len=Math.sqrt(dx*dx+dy*dy);const perc=(len-arrowLength)/len;const bx=x1+perc*dx;const by=y1+perc*dy;const ux=dx/len;const uy=dy/len;const ax=uy*arrowWidth;const ay=-ux*arrowWidth;ctx.beginPath();drawLine(ctx,x1,y1,x2,y2);ctx.stroke();drawTriangle(ctx,bx+ax,by+ay,x2,y2,bx-ax,by-ay);ctx.fill();}
function drawSlices(ctx,dt,viewLWorld,viewRWorld,viewHeight,slices,async){const pixelRatio=window.devicePixelRatio||1;const pixWidth=dt.xViewVectorToWorld(1);const height=viewHeight*pixelRatio;let darkRectHeight=THIN_SLICE_HEIGHT*pixelRatio;if(height<darkRectHeight){darkRectHeight=0;}
const lightRectHeight=height-darkRectHeight;ctx.save();dt.applyTransformToCanvas(ctx);const rect=new tr.ui.b.FastRectRenderer(ctx,2*pixWidth,2*pixWidth,colorsAsStrings);rect.setYandH(0,height);const lowSlice=tr.b.math.findLowIndexInSortedArray(slices,function(slice){return slice.start+slice.duration;},viewLWorld);let hadTopLevel=false;for(let i=lowSlice;i<slices.length;++i){const slice=slices[i];const x=slice.start;if(x>viewRWorld)break;let w=pixWidth;if(slice.duration>0){w=Math.max(slice.duration,0.000001);if(w<pixWidth){w=pixWidth;}}
const colorId=EventPresenter.getSliceColorId(slice);const alpha=EventPresenter.getSliceAlpha(slice,async);const lightAlpha=alpha*0.70;if(async&&slice.isTopLevel){rect.setYandH(3,height-3);hadTopLevel=true;}else{rect.setYandH(0,height);}
if(!slice.cpuDuration){rect.fillRect(x,w,colorId,alpha);continue;}
let activeWidth=w*(slice.cpuDuration/slice.duration);let waitingWidth=w-activeWidth;if(activeWidth<SLICE_ACTIVE_WIDTH_DRAW_THRESHOLD*pixWidth){activeWidth=0;waitingWidth=w;}
if(waitingWidth<SLICE_WAITING_WIDTH_DRAW_THRESHOLD*pixWidth){activeWidth=w;waitingWidth=0;}
if(activeWidth>0){rect.fillRect(x,activeWidth,colorId,alpha);}
if(waitingWidth>0){rect.setYandH(0,lightRectHeight);rect.fillRect(x+activeWidth-pixWidth,waitingWidth+pixWidth,colorId,lightAlpha);rect.setYandH(lightRectHeight,darkRectHeight);rect.fillRect(x+activeWidth-pixWidth,waitingWidth+pixWidth,colorId,alpha);rect.setYandH(0,height);}}
rect.flush();if(async&&hadTopLevel){rect.setYandH(2,1);for(let i=lowSlice;i<slices.length;++i){const slice=slices[i];const x=slice.start;if(x>viewRWorld)break;if(!slice.isTopLevel)continue;let w=pixWidth;if(slice.duration>0){w=Math.max(slice.duration,0.000001);if(w<pixWidth){w=pixWidth;}}
rect.fillRect(x,w,blackColorId,0.7);}
rect.flush();}
ctx.restore();}
function drawInstantSlicesAsLines(ctx,dt,viewLWorld,viewRWorld,viewHeight,slices,lineWidthInPixels){const pixelRatio=window.devicePixelRatio||1;const height=viewHeight*pixelRatio;const pixWidth=dt.xViewVectorToWorld(1);ctx.save();ctx.lineWidth=pixWidth*lineWidthInPixels*pixelRatio;dt.applyTransformToCanvas(ctx);ctx.beginPath();const lowSlice=tr.b.math.findLowIndexInSortedArray(slices,function(slice){return slice.start;},viewLWorld);for(let i=lowSlice;i<slices.length;++i){const slice=slices[i];const x=slice.start;if(x>viewRWorld)break;ctx.strokeStyle=EventPresenter.getInstantSliceColor(slice);ctx.beginPath();ctx.moveTo(x,0);ctx.lineTo(x,height);ctx.stroke();}
ctx.restore();}
function drawLabels(ctx,dt,viewLWorld,viewRWorld,slices,async,fontSize,yOffset){const pixelRatio=window.devicePixelRatio||1;const pixWidth=dt.xViewVectorToWorld(1);ctx.save();ctx.textAlign='center';ctx.textBaseline='top';ctx.font=(fontSize*pixelRatio)+'px sans-serif';if(async){ctx.font='italic '+ctx.font;}
const cY=yOffset*pixelRatio;const lowSlice=tr.b.math.findLowIndexInSortedArray(slices,function(slice){return slice.start+slice.duration;},viewLWorld);const quickDiscardThresshold=pixWidth*20;for(let i=lowSlice;i<slices.length;++i){const slice=slices[i];if(slice.start>viewRWorld)break;if(slice.duration<=quickDiscardThresshold)continue;const title=slice.title+
(slice.didNotFinish?' (Did Not Finish)':'');let drawnTitle=title;let drawnWidth=elidedTitleCache.labelWidth(ctx,drawnTitle);const fullLabelWidth=elidedTitleCache.labelWidthWorld(ctx,drawnTitle,pixWidth);if(SHOULD_ELIDE_TEXT&&fullLabelWidth>slice.duration){const elidedValues=elidedTitleCache.get(ctx,pixWidth,drawnTitle,drawnWidth,slice.duration);drawnTitle=elidedValues.string;drawnWidth=elidedValues.width;}
if(drawnWidth*pixWidth<slice.duration){ctx.fillStyle=EventPresenter.getTextColor(slice);const cX=dt.xWorldToView(slice.start+0.5*slice.duration);ctx.fillText(drawnTitle,cX,cY,drawnWidth);}}
ctx.restore();}
return{drawSlices,drawInstantSlicesAsLines,drawLabels,drawLine,drawTriangle,drawArrow,elidedTitleCache_:elidedTitleCache,THIN_SLICE_HEIGHT,};});'use strict';tr.exportTo('tr.ui',function(){function TimelineDisplayTransform(opt_that){if(opt_that){this.set(opt_that);return;}
this.scaleX=1;this.panX=0;this.panY=0;}
TimelineDisplayTransform.prototype={set(that){this.scaleX=that.scaleX;this.panX=that.panX;this.panY=that.panY;},clone(){return new TimelineDisplayTransform(this);},equals(that){let eq=true;if(that===undefined||that===null){return false;}
eq&=this.panX===that.panX;eq&=this.panY===that.panY;eq&=this.scaleX===that.scaleX;return!!eq;},almostEquals(that){let eq=true;if(that===undefined||that===null){return false;}
eq&=Math.abs(this.panX-that.panX)<0.001;eq&=Math.abs(this.panY-that.panY)<0.001;eq&=Math.abs(this.scaleX-that.scaleX)<0.001;return!!eq;},incrementPanXInViewUnits(xDeltaView){this.panX+=this.xViewVectorToWorld(xDeltaView);},xPanWorldPosToViewPos(worldX,viewX,viewWidth){if(typeof viewX==='string'){if(viewX==='left'){viewX=0;}else if(viewX==='center'){viewX=viewWidth/2;}else if(viewX==='right'){viewX=viewWidth-1;}else{throw new Error('viewX must be left|center|right or number.');}}
this.panX=(viewX/this.scaleX)-worldX;},xPanWorldBoundsIntoView(worldMin,worldMax,viewWidth){if(this.xWorldToView(worldMin)<0){this.xPanWorldPosToViewPos(worldMin,'left',viewWidth);}else if(this.xWorldToView(worldMax)>viewWidth){this.xPanWorldPosToViewPos(worldMax,'right',viewWidth);}},xSetWorldBounds(worldMin,worldMax,viewWidth){const worldWidth=worldMax-worldMin;const scaleX=viewWidth/worldWidth;const panX=-worldMin;this.setPanAndScale(panX,scaleX);},setPanAndScale(p,s){this.scaleX=s;this.panX=p;},xWorldToView(x){return(x+this.panX)*this.scaleX;},xWorldVectorToView(x){return x*this.scaleX;},xViewToWorld(x){return(x/this.scaleX)-this.panX;},xViewVectorToWorld(x){return x/this.scaleX;},applyTransformToCanvas(ctx){ctx.transform(this.scaleX,0,0,1,this.panX*this.scaleX,0);}};return{TimelineDisplayTransform,};});'use strict';tr.exportTo('tr.ui',function(){function SnapIndicator(y,height){this.y=y;this.height=height;}
function TimelineInterestRange(vp){this.viewport_=vp;this.range_=new tr.b.math.Range();this.leftSelected_=false;this.rightSelected_=false;this.leftSnapIndicator_=undefined;this.rightSnapIndicator_=undefined;}
TimelineInterestRange.prototype={get isEmpty(){return this.range_.isEmpty;},reset(){this.range_.reset();this.leftSelected_=false;this.rightSelected_=false;this.leftSnapIndicator_=undefined;this.rightSnapIndicator_=undefined;this.viewport_.dispatchChangeEvent();},get min(){return this.range_.min;},set min(min){this.range_.min=min;this.viewport_.dispatchChangeEvent();},get max(){return this.range_.max;},set max(max){this.range_.max=max;this.viewport_.dispatchChangeEvent();},set(range){this.range_.reset();this.range_.addRange(range);this.viewport_.dispatchChangeEvent();},setMinAndMax(min,max){this.range_.min=min;this.range_.max=max;this.viewport_.dispatchChangeEvent();},get range(){return this.range_.range;},asRangeObject(){const range=new tr.b.math.Range();range.addRange(this.range_);return range;},get leftSelected(){return this.leftSelected_;},set leftSelected(leftSelected){if(this.leftSelected_===leftSelected)return;this.leftSelected_=leftSelected;this.viewport_.dispatchChangeEvent();},get rightSelected(){return this.rightSelected_;},set rightSelected(rightSelected){if(this.rightSelected_===rightSelected)return;this.rightSelected_=rightSelected;this.viewport_.dispatchChangeEvent();},get leftSnapIndicator(){return this.leftSnapIndicator_;},set leftSnapIndicator(leftSnapIndicator){this.leftSnapIndicator_=leftSnapIndicator;this.viewport_.dispatchChangeEvent();},get rightSnapIndicator(){return this.rightSnapIndicator_;},set rightSnapIndicator(rightSnapIndicator){this.rightSnapIndicator_=rightSnapIndicator;this.viewport_.dispatchChangeEvent();},draw(ctx,viewLWorld,viewRWorld){if(this.range_.isEmpty)return;const dt=this.viewport_.currentDisplayTransform;const markerLWorld=this.min;const markerRWorld=this.max;const markerLView=Math.round(dt.xWorldToView(markerLWorld));const markerRView=Math.round(dt.xWorldToView(markerRWorld));ctx.fillStyle='rgba(0, 0, 0, 0.2)';if(markerLWorld>viewLWorld){ctx.fillRect(dt.xWorldToView(viewLWorld),0,markerLView,ctx.canvas.height);}
if(markerRWorld<viewRWorld){ctx.fillRect(markerRView,0,dt.xWorldToView(viewRWorld),ctx.canvas.height);}
const pixelRatio=window.devicePixelRatio||1;ctx.lineWidth=Math.round(pixelRatio);if(this.range_.range>0){this.drawLine_(ctx,viewLWorld,viewRWorld,ctx.canvas.height,this.min,this.leftSelected_);this.drawLine_(ctx,viewLWorld,viewRWorld,ctx.canvas.height,this.max,this.rightSelected_);}else{this.drawLine_(ctx,viewLWorld,viewRWorld,ctx.canvas.height,this.min,this.leftSelected_||this.rightSelected_);}
ctx.lineWidth=1;},drawLine_(ctx,viewLWorld,viewRWorld,height,ts,selected){if(ts<viewLWorld||ts>=viewRWorld)return;const dt=this.viewport_.currentDisplayTransform;const viewX=Math.round(dt.xWorldToView(ts));ctx.save();ctx.translate((Math.round(ctx.lineWidth)%2)/2,0);ctx.beginPath();tr.ui.b.drawLine(ctx,viewX,0,viewX,height);if(selected){ctx.strokeStyle='rgb(255, 0, 0)';}else{ctx.strokeStyle='rgb(0, 0, 0)';}
ctx.stroke();ctx.restore();},drawIndicators(ctx,viewLWorld,viewRWorld){if(this.leftSnapIndicator_){this.drawIndicator_(ctx,viewLWorld,viewRWorld,this.range_.min,this.leftSnapIndicator_,this.leftSelected_);}
if(this.rightSnapIndicator_){this.drawIndicator_(ctx,viewLWorld,viewRWorld,this.range_.max,this.rightSnapIndicator_,this.rightSelected_);}},drawIndicator_(ctx,viewLWorld,viewRWorld,xWorld,si,selected){const dt=this.viewport_.currentDisplayTransform;const viewX=Math.round(dt.xWorldToView(xWorld));ctx.save();ctx.translate((Math.round(ctx.lineWidth)%2)/2,0);const pixelRatio=window.devicePixelRatio||1;const viewY=si.y*devicePixelRatio;const viewHeight=si.height*devicePixelRatio;const arrowSize=4*pixelRatio;if(selected){ctx.fillStyle='rgb(255, 0, 0)';}else{ctx.fillStyle='rgb(0, 0, 0)';}
tr.ui.b.drawTriangle(ctx,viewX-arrowSize*0.75,viewY,viewX+arrowSize*0.75,viewY,viewX,viewY+arrowSize);ctx.fill();tr.ui.b.drawTriangle(ctx,viewX-arrowSize*0.75,viewY+viewHeight,viewX+arrowSize*0.75,viewY+viewHeight,viewX,viewY+viewHeight-arrowSize);ctx.fill();ctx.restore();}};return{SnapIndicator,TimelineInterestRange,};});'use strict';tr.exportTo('tr.ui.tracks',function(){function ContainerToTrackMap(){this.stableIdToTrackMap_={};}
ContainerToTrackMap.prototype={addContainer(container,track){if(!track){throw new Error('Must provide a track.');}
this.stableIdToTrackMap_[container.stableId]=track;},clear(){this.stableIdToTrackMap_={};},getTrackByStableId(stableId){return this.stableIdToTrackMap_[stableId];}};return{ContainerToTrackMap,};});'use strict';tr.exportTo('tr.ui.tracks',function(){function EventToTrackMap(){}
EventToTrackMap.prototype={addEvent(event,track){if(!track){throw new Error('Must provide a track.');}
this[event.guid]=track;}};return{EventToTrackMap,};});'use strict';tr.exportTo('tr.ui',function(){const TimelineDisplayTransform=tr.ui.TimelineDisplayTransform;const TimelineInterestRange=tr.ui.TimelineInterestRange;const IDEAL_MAJOR_MARK_DISTANCE_PX=150;const MAJOR_MARK_ROUNDING_FACTOR=100000;class AnimationControllerProxy{constructor(target){this.target_=target;}
get panX(){return this.target_.currentDisplayTransform_.panX;}
set panX(panX){this.target_.currentDisplayTransform_.panX=panX;}
get panY(){return this.target_.currentDisplayTransform_.panY;}
set panY(panY){this.target_.currentDisplayTransform_.panY=panY;}
get scaleX(){return this.target_.currentDisplayTransform_.scaleX;}
set scaleX(scaleX){this.target_.currentDisplayTransform_.scaleX=scaleX;}
cloneAnimationState(){return this.target_.currentDisplayTransform_.clone();}
xPanWorldPosToViewPos(xWorld,xView){this.target_.currentDisplayTransform_.xPanWorldPosToViewPos(xWorld,xView,this.target_.modelTrackContainer_.canvas.clientWidth);}}
function TimelineViewport(parentEl){this.parentEl_=parentEl;this.modelTrackContainer_=undefined;this.currentDisplayTransform_=new TimelineDisplayTransform();this.initAnimationController_();this.showFlowEvents_=false;this.highlightVSync_=false;this.highDetails_=false;this.gridTimebase_=0;this.gridStep_=1000/60;this.gridEnabled_=false;this.hasCalledSetupFunction_=false;this.onResize_=this.onResize_.bind(this);this.onModelTrackControllerScroll_=this.onModelTrackControllerScroll_.bind(this);this.timeMode_=TimelineViewport.TimeMode.TIME_IN_MS;this.majorMarkWorldPositions_=[];this.majorMarkUnit_=undefined;this.interestRange_=new TimelineInterestRange(this);this.eventToTrackMap_=new tr.ui.tracks.EventToTrackMap();this.containerToTrackMap=new tr.ui.tracks.ContainerToTrackMap();this.dispatchChangeEvent=this.dispatchChangeEvent.bind(this);}
TimelineViewport.TimeMode={TIME_IN_MS:0,REVISIONS:1};TimelineViewport.prototype={__proto__:tr.b.EventTarget.prototype,get isAttachedToDocumentOrInTestMode(){if(this.parentEl_===undefined)return;return tr.ui.b.isElementAttachedToDocument(this.parentEl_);},onResize_(){this.dispatchChangeEvent();},dispatchChangeEvent(){tr.b.dispatchSimpleEvent(this,'change');},detach(){window.removeEventListener('resize',this.dispatchChangeEvent);},initAnimationController_(){this.dtAnimationController_=new tr.ui.b.AnimationController();this.dtAnimationController_.addEventListener('didtick',function(e){this.onCurentDisplayTransformChange_(e.oldTargetState);}.bind(this));this.dtAnimationController_.target=new AnimationControllerProxy(this);},get currentDisplayTransform(){return this.currentDisplayTransform_;},setDisplayTransformImmediately(displayTransform){this.dtAnimationController_.cancelActiveAnimation();const oldDisplayTransform=this.dtAnimationController_.target.cloneAnimationState();this.currentDisplayTransform_.set(displayTransform);this.onCurentDisplayTransformChange_(oldDisplayTransform);},queueDisplayTransformAnimation(animation){if(!(animation instanceof tr.ui.b.Animation)){throw new Error('animation must be instanceof tr.ui.b.Animation');}
this.dtAnimationController_.queueAnimation(animation);},onCurentDisplayTransformChange_(oldDisplayTransform){if(this.modelTrackContainer_){this.currentDisplayTransform.panY=tr.b.math.clamp(this.currentDisplayTransform.panY,0,this.modelTrackContainer_.scrollHeight-
this.modelTrackContainer_.clientHeight);}
const changed=!this.currentDisplayTransform.equals(oldDisplayTransform);const yChanged=this.currentDisplayTransform.panY!==oldDisplayTransform.panY;if(yChanged){this.modelTrackContainer_.scrollTop=this.currentDisplayTransform.panY;}
if(changed){this.dispatchChangeEvent();}},onModelTrackControllerScroll_(e){if(this.dtAnimationController_.activeAnimation&&this.dtAnimationController_.activeAnimation.affectsPanY){this.dtAnimationController_.cancelActiveAnimation();}
const panY=this.modelTrackContainer_.scrollTop;this.currentDisplayTransform_.panY=panY;},get modelTrackContainer(){return this.modelTrackContainer_;},set modelTrackContainer(m){if(this.modelTrackContainer_){this.modelTrackContainer_.removeEventListener('scroll',this.onModelTrackControllerScroll_);}
this.modelTrackContainer_=m;this.modelTrackContainer_.addEventListener('scroll',this.onModelTrackControllerScroll_);},get showFlowEvents(){return this.showFlowEvents_;},set showFlowEvents(showFlowEvents){this.showFlowEvents_=showFlowEvents;this.dispatchChangeEvent();},get highlightVSync(){return this.highlightVSync_;},set highlightVSync(highlightVSync){this.highlightVSync_=highlightVSync;this.dispatchChangeEvent();},get highDetails(){return this.highDetails_;},set highDetails(highDetails){this.highDetails_=highDetails;this.dispatchChangeEvent();},get gridEnabled(){return this.gridEnabled_;},set gridEnabled(enabled){if(this.gridEnabled_===enabled)return;this.gridEnabled_=enabled&&true;this.dispatchChangeEvent();},get gridTimebase(){return this.gridTimebase_;},set gridTimebase(timebase){if(this.gridTimebase_===timebase)return;this.gridTimebase_=timebase;this.dispatchChangeEvent();},get gridStep(){return this.gridStep_;},get interestRange(){return this.interestRange_;},get majorMarkWorldPositions(){return this.majorMarkWorldPositions_;},get majorMarkUnit(){switch(this.timeMode_){case TimelineViewport.TimeMode.TIME_IN_MS:return tr.b.Unit.byName.timeInMsAutoFormat;case TimelineViewport.TimeMode.REVISIONS:return tr.b.Unit.byName.count;default:throw new Error('Cannot get Unit for unsupported time mode '+this.timeMode_);}},get timeMode(){return this.timeMode_;},set timeMode(mode){this.timeMode_=mode;this.dispatchChangeEvent();},updateMajorMarkData(viewLWorld,viewRWorld){const pixelRatio=window.devicePixelRatio||1;const dt=this.currentDisplayTransform;const idealMajorMarkDistancePix=IDEAL_MAJOR_MARK_DISTANCE_PX*pixelRatio;const idealMajorMarkDistanceWorld=dt.xViewVectorToWorld(idealMajorMarkDistancePix);const majorMarkDistanceWorld=tr.b.math.preferredNumberLargerThanMin(idealMajorMarkDistanceWorld);const firstMajorMark=Math.floor(viewLWorld/majorMarkDistanceWorld)*majorMarkDistanceWorld;this.majorMarkWorldPositions_=[];for(let curX=firstMajorMark;curX<viewRWorld;curX+=majorMarkDistanceWorld){this.majorMarkWorldPositions_.push(Math.floor(MAJOR_MARK_ROUNDING_FACTOR*curX)/MAJOR_MARK_ROUNDING_FACTOR);}},drawMajorMarkLines(ctx){ctx.save();ctx.translate((Math.round(ctx.lineWidth)%2)/2,0);ctx.beginPath();for(const majorMark of this.majorMarkWorldPositions_){const x=this.currentDisplayTransform.xWorldToView(majorMark);tr.ui.b.drawLine(ctx,x,0,x,ctx.canvas.height);}
ctx.strokeStyle='#ddd';ctx.stroke();ctx.restore();},drawGridLines(ctx,viewLWorld,viewRWorld){if(!this.gridEnabled)return;const dt=this.currentDisplayTransform;let x=this.gridTimebase;ctx.save();ctx.translate((Math.round(ctx.lineWidth)%2)/2,0);ctx.beginPath();while(x<viewRWorld){if(x>=viewLWorld){const vx=Math.floor(dt.xWorldToView(x));tr.ui.b.drawLine(ctx,vx,0,vx,ctx.canvas.height);}
x+=this.gridStep;}
ctx.strokeStyle='rgba(255, 0, 0, 0.25)';ctx.stroke();ctx.restore();},getShiftedSelection(selection,offset){const newSelection=new tr.model.EventSet();for(const event of selection){if(event instanceof tr.model.FlowEvent){if(offset>0){newSelection.push(event.endSlice);}else if(offset<0){newSelection.push(event.startSlice);}else{}
continue;}
const track=this.trackForEvent(event);track.addEventNearToProvidedEventToSelection(event,offset,newSelection);}
if(newSelection.length===0)return undefined;return newSelection;},rebuildEventToTrackMap(){this.eventToTrackMap_=new tr.ui.tracks.EventToTrackMap();this.modelTrackContainer_.addEventsToTrackMap(this.eventToTrackMap_);},rebuildContainerToTrackMap(){this.containerToTrackMap.clear();this.modelTrackContainer_.addContainersToTrackMap(this.containerToTrackMap);},trackForEvent(event){return this.eventToTrackMap_[event.guid];}};return{TimelineViewport,};});'use strict';tr.exportTo('tr.c',function(){const BrushingState=tr.ui.b.BrushingState;const EventSet=tr.model.EventSet;const SelectionState=tr.model.SelectionState;const Viewport=tr.ui.TimelineViewport;function BrushingStateController(timelineView){tr.b.EventTarget.call(this);this.timelineView_=timelineView;this.currentBrushingState_=new BrushingState();this.onPopState_=this.onPopState_.bind(this);this.historyEnabled_=false;this.selections_={};}
BrushingStateController.prototype={__proto__:tr.b.EventTarget.prototype,dispatchChangeEvent_(){const e=new tr.b.Event('change',false,false);this.dispatchEvent(e);},get model(){if(!this.timelineView_){return undefined;}
return this.timelineView_.model;},get trackView(){if(!this.timelineView_){return undefined;}
return this.timelineView_.trackView;},get viewport(){if(!this.timelineView_){return undefined;}
if(!this.timelineView_.trackView){return undefined;}
return this.timelineView_.trackView.viewport;},get historyEnabled(){return this.historyEnabled_;},set historyEnabled(historyEnabled){this.historyEnabled_=!!historyEnabled;if(historyEnabled){window.addEventListener('popstate',this.onPopState_);}else{window.removeEventListener('popstate',this.onPopState_);}},modelWillChange(){if(this.currentBrushingState_.isAppliedToModel){this.currentBrushingState_.unapplyFromEventSelectionStates();}},modelDidChange(){this.selections_={};this.currentBrushingState_=new BrushingState();this.currentBrushingState_.applyToEventSelectionStates(this.model);const e=new tr.b.Event('model-changed',false,false);this.dispatchEvent(e);this.dispatchChangeEvent_();},onUserInitiatedSelectionChange_(){const selection=this.selection;if(this.historyEnabled){this.selections_[selection.guid]=selection;const state={selection_guid:selection.guid};window.history.pushState(state,document.title);}},onPopState_(e){if(e.state===null)return;const selection=this.selections_[e.state.selection_guid];if(selection){const newState=this.currentBrushingState_.clone();newState.selection=selection;this.currentBrushingState=newState;}
e.stopPropagation();},get selection(){return this.currentBrushingState_.selection;},get findMatches(){return this.currentBrushingState_.findMatches;},get selectionOfInterest(){return this.currentBrushingState_.selectionOfInterest;},get currentBrushingState(){return this.currentBrushingState_;},set currentBrushingState(newBrushingState){if(newBrushingState.isAppliedToModel){throw new Error('Cannot apply this state, it is applied');}
const hasValueChanged=!this.currentBrushingState_.equals(newBrushingState);if(newBrushingState!==this.currentBrushingState_&&!hasValueChanged){if(this.currentBrushingState_.isAppliedToModel){this.currentBrushingState_.transferModelOwnershipToClone(newBrushingState);}
this.currentBrushingState_=newBrushingState;return;}
if(this.currentBrushingState_.isAppliedToModel){this.currentBrushingState_.unapplyFromEventSelectionStates();}
this.currentBrushingState_=newBrushingState;this.currentBrushingState_.applyToEventSelectionStates(this.model);this.dispatchChangeEvent_();},addAllEventsMatchingFilterToSelectionAsTask(filter,selection){const timelineView=this.timelineView_.trackView;if(!timelineView){return new tr.b.Task();}
return timelineView.addAllEventsMatchingFilterToSelectionAsTask(filter,selection);},findTextChangedTo(allPossibleMatches){const newBrushingState=this.currentBrushingState_.clone();newBrushingState.findMatches=allPossibleMatches;this.currentBrushingState=newBrushingState;},findFocusChangedTo(currentFocus){const newBrushingState=this.currentBrushingState_.clone();newBrushingState.selection=currentFocus;this.currentBrushingState=newBrushingState;this.onUserInitiatedSelectionChange_();},findTextCleared(){if(this.xNavStringMarker_!==undefined){this.model.removeAnnotation(this.xNavStringMarker_);this.xNavStringMarker_=undefined;}
if(this.guideLineAnnotation_!==undefined){this.model.removeAnnotation(this.guideLineAnnotation_);this.guideLineAnnotation_=undefined;}
const newBrushingState=this.currentBrushingState_.clone();newBrushingState.selection=new EventSet();newBrushingState.findMatches=new EventSet();this.currentBrushingState=newBrushingState;this.onUserInitiatedSelectionChange_();},uiStateFromString(string){return tr.ui.b.UIState.fromUserFriendlyString(this.model,this.viewport,string);},navToPosition(uiState,showNavLine){this.trackView.navToPosition(uiState,showNavLine);},changeSelectionFromTimeline(selection){const newBrushingState=this.currentBrushingState_.clone();newBrushingState.selection=selection;newBrushingState.findMatches=new EventSet();this.currentBrushingState=newBrushingState;this.onUserInitiatedSelectionChange_();},showScriptControlSelection(selection){const newBrushingState=this.currentBrushingState_.clone();newBrushingState.selection=selection;newBrushingState.findMatches=new EventSet();this.currentBrushingState=newBrushingState;},changeSelectionFromRequestSelectionChangeEvent(selection){const newBrushingState=this.currentBrushingState_.clone();newBrushingState.selection=selection;newBrushingState.findMatches=new EventSet();this.currentBrushingState=newBrushingState;this.onUserInitiatedSelectionChange_();},changeAnalysisViewRelatedEvents(eventSet){const newBrushingState=this.currentBrushingState_.clone();newBrushingState.analysisViewRelatedEvents=eventSet;this.currentBrushingState=newBrushingState;},changeAnalysisLinkHoveredEvents(eventSet){const newBrushingState=this.currentBrushingState_.clone();newBrushingState.analysisLinkHoveredEvents=eventSet;this.currentBrushingState=newBrushingState;},getViewSpecificBrushingState(viewId){return this.currentBrushingState.viewSpecificBrushingStates[viewId];},changeViewSpecificBrushingState(viewId,newState){const oldStates=this.currentBrushingState_.viewSpecificBrushingStates;const newStates={};for(const id in oldStates){newStates[id]=oldStates[id];}
if(newState===undefined){delete newStates[viewId];}else{newStates[viewId]=newState;}
const newBrushingState=this.currentBrushingState_.clone();newBrushingState.viewSpecificBrushingStates=newStates;this.currentBrushingState=newBrushingState;}};BrushingStateController.getControllerForElement=function(element){if(tr.isHeadless){throw new Error('Unsupported');}
let currentElement=element;while(currentElement){if(currentElement.brushingStateController){return currentElement.brushingStateController;}
if(currentElement.parentElement){currentElement=currentElement.parentElement;continue;}
let currentNode=currentElement;while(Polymer.dom(currentNode).parentNode){currentNode=Polymer.dom(currentNode).parentNode;}
currentElement=currentNode.host;}
return undefined;};return{BrushingStateController,};});'use strict';Polymer({is:'tr-ui-a-analysis-link',properties:{href:{type:String}},listeners:{'click':'onClicked_','mouseenter':'onMouseEnter_','mouseleave':'onMouseLeave_'},ready(){this.selection_=undefined;},attached(){this.controller_=tr.c.BrushingStateController.getControllerForElement(this);},detached(){this.clearHighlight_();this.controller_=undefined;},set color(c){this.style.color=c;},get selection(){return this.selection_;},set selection(selection){this.selection_=selection;Polymer.dom(this).textContent=selection.userFriendlyName;},setSelectionAndContent(selection,opt_textContent){this.selection_=selection;if(opt_textContent){Polymer.dom(this).textContent=opt_textContent;}},getCurrentSelection_(){if(typeof this.selection_==='function'){return this.selection_();}
return this.selection_;},setHighlight_(opt_eventSet){if(this.controller_){this.controller_.changeAnalysisLinkHoveredEvents(opt_eventSet);}},clearHighlight_(opt_eventSet){this.setHighlight_();},onClicked_(clickEvent){if(!this.selection_)return;clickEvent.stopPropagation();const event=new tr.model.RequestSelectionChangeEvent();event.selection=this.getCurrentSelection_();this.dispatchEvent(event);},onMouseEnter_(){this.setHighlight_(this.getCurrentSelection_());},onMouseLeave_(){this.clearHighlight_();}});'use strict';tr.exportTo('tr.ui.b',function(){const TableFormat={};TableFormat.SelectionMode={NONE:0,ROW:1,CELL:2};TableFormat.HighlightStyle={DEFAULT:0,NONE:1,LIGHT:2,DARK:3};TableFormat.ColumnAlignment={LEFT:0,RIGHT:1};return{TableFormat,};});'use strict';(function(){const RIGHT_ARROW=String.fromCharCode(0x25b6);const UNSORTED_ARROW=String.fromCharCode(0x25BF);const ASCENDING_ARROW=String.fromCharCode(0x25B4);const DESCENDING_ARROW=String.fromCharCode(0x25BE);const SelectionMode=tr.ui.b.TableFormat.SelectionMode;const HighlightStyle=tr.ui.b.TableFormat.HighlightStyle;const ColumnAlignment=tr.ui.b.TableFormat.ColumnAlignment;Polymer({is:'tr-ui-b-table',created(){this.selectionMode_=SelectionMode.NONE;this.rowHighlightStyle_=HighlightStyle.DEFAULT;this.cellHighlightStyle_=HighlightStyle.DEFAULT;this.selectedTableRowInfo_=undefined;this.selectedColumnIndex_=undefined;this.tableColumns_=[];this.tableRows_=[];this.tableRowsInfo_=new WeakMap();this.tableFooterRows_=[];this.tableFooterRowsInfo_=new WeakMap();this.sortColumnIndex_=undefined;this.sortDescending_=false;this.columnsWithExpandButtons_=[];this.headerCells_=[];this.showHeader_=true;this.emptyValue_=undefined;this.subRowsPropertyName_='subRows';this.customizeTableRowCallback_=undefined;this.defaultExpansionStateCallback_=undefined;this.userCanModifySortOrder_=true;this.computedFontSizePx_=undefined;},ready(){this.$.body.addEventListener('keydown',this.onKeyDown_.bind(this),true);this.$.body.addEventListener('focus',this.onFocus_.bind(this),true);},clear(){this.selectionMode_=SelectionMode.NONE;this.rowHighlightStyle_=HighlightStyle.DEFAULT;this.cellHighlightStyle_=HighlightStyle.DEFAULT;this.selectedTableRowInfo_=undefined;this.selectedColumnIndex_=undefined;Polymer.dom(this).textContent='';this.tableColumns_=[];this.tableRows_=[];this.tableRowsInfo_=new WeakMap();this.tableFooterRows_=[];this.tableFooterRowsInfo_=new WeakMap();this.sortColumnIndex_=undefined;this.sortDescending_=false;this.columnsWithExpandButtons_=[];this.headerCells_=[];this.showHeader_=true;this.emptyValue_=undefined;this.subRowsPropertyName_='subRows';this.defaultExpansionStateCallback_=undefined;this.userCanModifySortOrder_=true;},set zebra(zebra){if(zebra){this.setAttribute('zebra',true);}else{this.removeAttribute('zebra');}},get zebra(){return this.getAttribute('zebra');},get showHeader(){return this.showHeader_;},set showHeader(showHeader){this.showHeader_=showHeader;this.scheduleRebuildHeaders_();},set subRowsPropertyName(name){this.subRowsPropertyName_=name;},set defaultExpansionStateCallback(cb){this.defaultExpansionStateCallback_=cb;this.scheduleRebuildBody_();},set customizeTableRowCallback(cb){this.customizeTableRowCallback_=cb;this.scheduleRebuildBody_();},get emptyValue(){return this.emptyValue_;},set emptyValue(emptyValue){const previousEmptyValue=this.emptyValue_;this.emptyValue_=emptyValue;if(this.tableRows_.length===0&&emptyValue!==previousEmptyValue){this.scheduleRebuildBody_();}},set tableColumns(columns){let columnsWithExpandButtons=[];for(let i=0;i<columns.length;i++){if(columns[i].showExpandButtons){columnsWithExpandButtons.push(i);}}
if(columnsWithExpandButtons.length===0){columnsWithExpandButtons=[0];}
for(let i=0;i<columns.length;i++){const colInfo=columns[i];if(colInfo.width===undefined)continue;const hasExpandButton=columnsWithExpandButtons.includes(i);const w=colInfo.width;if(w){if(/\d+px/.test(w)){continue;}else if(/\d+%/.test(w)){if(hasExpandButton){throw new Error('Columns cannot be %-sized and host '+' an expand button');}}else{throw new Error('Unrecognized width string');}}}
let sortIndex=undefined;const currentSortColumn=this.tableColumns[this.sortColumnIndex_];if(currentSortColumn){for(const[i,column]of columns.entries()){if(currentSortColumn.title===column.title){sortIndex=i;break;}}}
this.tableColumns_=columns;this.headerCells_=[];this.columnsWithExpandButtons_=columnsWithExpandButtons;this.scheduleRebuildHeaders_();this.sortColumnIndex=sortIndex;this.tableRows=this.tableRows_;},get tableColumns(){return this.tableColumns_;},set tableRows(rows){this.selectedTableRowInfo_=undefined;this.selectedColumnIndex_=undefined;this.tableRows_=rows;this.tableRowsInfo_=new WeakMap();this.scheduleRebuildBody_();},get tableRows(){return this.tableRows_;},set footerRows(rows){this.tableFooterRows_=rows;this.tableFooterRowsInfo_=new WeakMap();this.scheduleRebuildFooter_();},get footerRows(){return this.tableFooterRows_;},get userCanModifySortOrder(){return this.userCanModifySortOrder_;},set userCanModifySortOrder(userCanModifySortOrder){const newUserCanModifySortOrder=!!userCanModifySortOrder;if(newUserCanModifySortOrder===this.userCanModifySortOrder_){return;}
this.userCanModifySortOrder_=newUserCanModifySortOrder;this.scheduleRebuildHeaders_();},set sortColumnIndex(number){if(number===this.sortColumnIndex_)return;if(number!==undefined){if(this.tableColumns_.length<=number){throw new Error('Column number '+number+' is out of bounds.');}
if(!this.tableColumns_[number].cmp){throw new Error('Column '+number+' does not have a comparator.');}}
this.sortColumnIndex_=number;this.updateHeaderArrows_();this.scheduleRebuildBody_();this.dispatchSortingChangedEvent_();},get sortColumnIndex(){return this.sortColumnIndex_;},set sortDescending(value){const newValue=!!value;if(newValue!==this.sortDescending_){this.sortDescending_=newValue;this.updateHeaderArrows_();this.scheduleRebuildBody_();this.dispatchSortingChangedEvent_();}},get sortDescending(){return this.sortDescending_;},updateHeaderArrows_(){for(let i=0;i<this.headerCells_.length;i++){const headerCell=this.headerCells_[i];const isColumnCurrentlySorted=i===this.sortColumnIndex_;if(!this.tableColumns_[i].cmp||(!this.userCanModifySortOrder_&&!isColumnCurrentlySorted)){headerCell.sideContent='';continue;}
if(!isColumnCurrentlySorted){headerCell.sideContent=UNSORTED_ARROW;headerCell.sideContentDisabled=false;continue;}
headerCell.sideContent=this.sortDescending_?DESCENDING_ARROW:ASCENDING_ARROW;headerCell.sideContentDisabled=!this.userCanModifySortOrder_;}},generateHeaderColumns_(){const selectedTableColumnIndex=this.selectedTableColumnIndex;Polymer.dom(this.$.cols).textContent='';for(let i=0;i<this.tableColumns_.length;++i){const colElement=document.createElement('col');if(i===selectedTableColumnIndex){colElement.setAttribute('selected',true);}
Polymer.dom(this.$.cols).appendChild(colElement);}
this.headerCells_=[];Polymer.dom(this.$.head).textContent='';if(!this.showHeader_)return;const tr=this.appendNewElement_(this.$.head,'tr');for(let i=0;i<this.tableColumns_.length;i++){const td=this.appendNewElement_(tr,'td');const headerCell=document.createElement('tr-ui-b-table-header-cell');headerCell.column=this.tableColumns_[i];if(this.tableColumns_[i].cmp){const isColumnCurrentlySorted=i===this.sortColumnIndex_;if(isColumnCurrentlySorted){headerCell.sideContent=this.sortDescending_?DESCENDING_ARROW:ASCENDING_ARROW;if(!this.userCanModifySortOrder_){headerCell.sideContentDisabled=true;}}
if(this.userCanModifySortOrder_){Polymer.dom(td).classList.add('sensitive');if(!isColumnCurrentlySorted){headerCell.sideContent=UNSORTED_ARROW;}
headerCell.tapCallback=this.createSortCallback_(i);}}
Polymer.dom(td).appendChild(headerCell);this.headerCells_.push(headerCell);}},applySizes_(){if(this.tableRows_.length===0&&!this.showHeader)return;let rowToRemoveSizing;let rowToSize;if(this.showHeader){rowToSize=Polymer.dom(this.$.head).children[0];rowToRemoveSizing=Polymer.dom(this.$.body).children[0];}else{rowToSize=Polymer.dom(this.$.body).children[0];rowToRemoveSizing=Polymer.dom(this.$.head).children[0];}
for(let i=0;i<this.tableColumns_.length;i++){if(rowToRemoveSizing&&Polymer.dom(rowToRemoveSizing).children[i]){const tdToRemoveSizing=Polymer.dom(rowToRemoveSizing).children[i];tdToRemoveSizing.style.minWidth='';tdToRemoveSizing.style.width='';}
const td=Polymer.dom(rowToSize).children[i];let delta;if(this.columnsWithExpandButtons_.includes(i)){td.style.paddingLeft=this.basicIndentation_+'px';delta=this.basicIndentation_+'px';}else{delta=undefined;}
function calc(base,delta){if(delta){return'calc('+base+' - '+delta+')';}
return base;}
const w=this.tableColumns_[i].width;if(w){if(/\d+px/.test(w)){td.style.minWidth=calc(w,delta);}else if(/\d+%/.test(w)){td.style.width=w;}else{throw new Error('Unrecognized width string: '+w);}}}},createSortCallback_(columnNumber){return function(){if(!this.userCanModifySortOrder_)return;const previousIndex=this.sortColumnIndex;this.sortColumnIndex=columnNumber;if(previousIndex!==columnNumber){this.sortDescending=false;}else{this.sortDescending=!this.sortDescending;}}.bind(this);},generateTableRowNodes_(tableSection,userRows,rowInfoMap,indentation,lastAddedRow,parentRowInfo){if(this.sortColumnIndex_!==undefined&&tableSection===this.$.body){userRows=userRows.slice();userRows.sort(function(rowA,rowB){let c=this.tableColumns_[this.sortColumnIndex_].cmp(rowA,rowB);if(this.sortDescending_){c=-c;}
return c;}.bind(this));}
for(let i=0;i<userRows.length;i++){const userRow=userRows[i];const rowInfo=this.getOrCreateRowInfoFor_(rowInfoMap,userRow,parentRowInfo);const htmlNode=this.getHTMLNodeForRowInfo_(tableSection,rowInfo,rowInfoMap,indentation);if(lastAddedRow===undefined){Polymer.dom(tableSection).insertBefore(htmlNode,Polymer.dom(tableSection).firstChild);}else{const nextSiblingOfLastAdded=Polymer.dom(lastAddedRow).nextSibling;Polymer.dom(tableSection).insertBefore(htmlNode,nextSiblingOfLastAdded);}
lastAddedRow=htmlNode;if(!rowInfo.isExpanded)continue;lastAddedRow=this.generateTableRowNodes_(tableSection,userRow[this.subRowsPropertyName_],rowInfoMap,indentation+1,lastAddedRow,rowInfo);}
return lastAddedRow;},getOrCreateRowInfoFor_(rowInfoMap,userRow,parentRowInfo){let rowInfo=undefined;if(rowInfoMap.has(userRow)){rowInfo=rowInfoMap.get(userRow);}else{rowInfo={userRow,htmlNode:undefined,parentRowInfo};rowInfoMap.set(userRow,rowInfo);}
rowInfo.isExpanded=this.getExpandedForUserRow_(userRow);return rowInfo;},customizeTableRow_(userRow,trElement){if(!this.customizeTableRowCallback_)return;this.customizeTableRowCallback_(userRow,trElement);},get basicIndentation_(){if(this.computedFontSizePx_===undefined){this.computedFontSizePx_=parseInt(getComputedStyle(this).fontSize)||16;}
return this.computedFontSizePx_-2;},getHTMLNodeForRowInfo_(tableSection,rowInfo,rowInfoMap,indentation){if(rowInfo.htmlNode){this.customizeTableRow_(rowInfo.userRow,rowInfo.htmlNode);return rowInfo.htmlNode;}
const INDENT_SPACE=indentation*16;const INDENT_SPACE_NO_BUTTON=indentation*16+this.basicIndentation_;const trElement=this.ownerDocument.createElement('tr');rowInfo.htmlNode=trElement;rowInfo.indentation=indentation;trElement.rowInfo=rowInfo;this.customizeTableRow_(rowInfo.userRow,trElement);const isBodyRow=tableSection===this.$.body;const isExpandableRow=rowInfo.userRow[this.subRowsPropertyName_]&&rowInfo.userRow[this.subRowsPropertyName_].length;for(let i=0;i<this.tableColumns_.length;){const td=this.appendNewElement_(trElement,'td');td.columnIndex=i;const column=this.tableColumns_[i];const value=column.value(rowInfo.userRow);const colSpan=column.colSpan?column.colSpan:1;td.style.colSpan=colSpan;switch(column.align){case undefined:case ColumnAlignment.LEFT:break;case ColumnAlignment.RIGHT:td.style.textAlign='right';break;default:throw new Error('Invalid alignment of column at index='+i+': '+column.align);}
if(this.doesColumnIndexSupportSelection(i)){Polymer.dom(td).classList.add('supports-selection');}
if(this.columnsWithExpandButtons_.includes(i)){if(rowInfo.userRow[this.subRowsPropertyName_]&&rowInfo.userRow[this.subRowsPropertyName_].length>0){td.style.paddingLeft=INDENT_SPACE+'px';td.style.display='flex';const expandButton=this.appendNewElement_(td,'expand-button');Polymer.dom(expandButton).textContent=RIGHT_ARROW;if(rowInfo.isExpanded){Polymer.dom(expandButton).classList.add('button-expanded');}}else{td.style.paddingLeft=INDENT_SPACE_NO_BUTTON+'px';}}
if(value!==undefined){Polymer.dom(td).appendChild(tr.ui.b.asHTMLOrTextNode(value,this.ownerDocument));}
td.addEventListener('click',function(i,clickEvent){clickEvent.preventDefault();if(!isBodyRow&&!isExpandableRow)return;clickEvent.stopPropagation();if(clickEvent.target.tagName==='EXPAND-BUTTON'){this.setExpandedForUserRow_(tableSection,rowInfoMap,rowInfo.userRow,!rowInfo.isExpanded);return;}
if(isBodyRow&&this.selectionMode_!==SelectionMode.NONE){let shouldSelect=false;let shouldFocus=false;switch(this.selectionMode_){case SelectionMode.ROW:shouldSelect=this.selectedTableRowInfo_!==rowInfo;shouldFocus=true;break;case SelectionMode.CELL:if(this.doesColumnIndexSupportSelection(i)){shouldSelect=this.selectedTableRowInfo_!==rowInfo||this.selectedColumnIndex_!==i;shouldFocus=true;}
break;default:throw new Error('Invalid selection mode '+
this.selectionMode_);}
if(shouldFocus){this.focus();}
if(shouldSelect){this.didTableRowInfoGetClicked_(rowInfo,i);return;}}
if(isExpandableRow){this.setExpandedForUserRow_(tableSection,rowInfoMap,rowInfo.userRow,!rowInfo.isExpanded);}}.bind(this,i));if(isBodyRow){td.addEventListener('dblclick',function(i,e){e.stopPropagation();this.dispatchStepIntoEvent_(rowInfo,i);}.bind(this,i));}
i+=colSpan;}
return rowInfo.htmlNode;},removeSubNodes_(tableSection,rowInfo,rowInfoMap){if(rowInfo.userRow[this.subRowsPropertyName_]===undefined)return;for(let i=0;i<rowInfo.userRow[this.subRowsPropertyName_].length;i++){const subRow=rowInfo.userRow[this.subRowsPropertyName_][i];const subRowInfo=rowInfoMap.get(subRow);if(!subRowInfo)continue;const subNode=subRowInfo.htmlNode;if(subNode&&Polymer.dom(subNode).parentNode===tableSection){Polymer.dom(tableSection).removeChild(subNode);this.removeSubNodes_(tableSection,subRowInfo,rowInfoMap);}}},scheduleRebuildHeaders_(){this.headerDirty_=true;this.scheduleRebuild_();},scheduleRebuildBody_(){this.bodyDirty_=true;this.scheduleRebuild_();},scheduleRebuildFooter_(){this.footerDirty_=true;this.scheduleRebuild_();},scheduleRebuild_(){if(this.rebuildPending_)return;this.rebuildPending_=true;setTimeout(function(){this.rebuildPending_=false;this.rebuild();}.bind(this),0);},rebuildIfNeeded_(){this.rebuild();},rebuild(){const wasBodyOrHeaderDirty=this.headerDirty_||this.bodyDirty_;if(this.headerDirty_){this.generateHeaderColumns_();this.headerDirty_=false;}
if(this.bodyDirty_){Polymer.dom(this.$.body).textContent='';this.generateTableRowNodes_(this.$.body,this.tableRows_,this.tableRowsInfo_,0,undefined,undefined);if(this.tableRows_.length===0&&this.emptyValue_!==undefined){const trElement=this.ownerDocument.createElement('tr');Polymer.dom(this.$.body).appendChild(trElement);Polymer.dom(trElement).classList.add('empty-row');const td=this.ownerDocument.createElement('td');Polymer.dom(trElement).appendChild(td);td.colSpan=this.tableColumns_.length;const emptyValue=this.emptyValue_;Polymer.dom(td).appendChild(tr.ui.b.asHTMLOrTextNode(emptyValue,this.ownerDocument));}
this.bodyDirty_=false;}
if(wasBodyOrHeaderDirty)this.applySizes_();if(this.footerDirty_){Polymer.dom(this.$.foot).textContent='';this.generateTableRowNodes_(this.$.foot,this.tableFooterRows_,this.tableFooterRowsInfo_,0,undefined,undefined);if(this.tableFooterRowsInfo_.length){Polymer.dom(this.$.body).classList.add('has-footer');}else{Polymer.dom(this.$.body).classList.remove('has-footer');}
this.footerDirty_=false;}},appendNewElement_(parent,tagName){const element=parent.ownerDocument.createElement(tagName);Polymer.dom(parent).appendChild(element);return element;},getExpandedForTableRow(userRow){this.rebuildIfNeeded_();const rowInfo=this.tableRowsInfo_.get(userRow);if(rowInfo===undefined){throw new Error('Row has not been seen, must expand its parents');}
return rowInfo.isExpanded;},getExpandedForUserRow_(userRow){if(userRow[this.subRowsPropertyName_]===undefined){return false;}
if(userRow[this.subRowsPropertyName_].length===0){return false;}
if(userRow.isExpanded){return true;}
if((userRow.isExpanded!==undefined)&&(userRow.isExpanded===false)){return false;}
const rowInfo=this.tableRowsInfo_.get(userRow);if(rowInfo&&rowInfo.isExpanded){return true;}
if(this.defaultExpansionStateCallback_===undefined){return false;}
let parentUserRow=undefined;if(rowInfo&&rowInfo.parentRowInfo){parentUserRow=rowInfo.parentRowInfo.userRow;}
return this.defaultExpansionStateCallback_(userRow,parentUserRow);},setExpandedForTableRow(userRow,expanded){this.rebuildIfNeeded_();const rowInfo=this.tableRowsInfo_.get(userRow);if(rowInfo===undefined){throw new Error('Row has not been seen, must expand its parents');}
return this.setExpandedForUserRow_(this.$.body,this.tableRowsInfo_,userRow,expanded);},setExpandedForUserRow_(tableSection,rowInfoMap,userRow,expanded){this.rebuildIfNeeded_();const rowInfo=rowInfoMap.get(userRow);if(rowInfo===undefined){throw new Error('Row has not been seen, must expand its parents');}
const wasExpanded=rowInfo.isExpanded;rowInfo.isExpanded=!!expanded;if(rowInfo.htmlNode===undefined)return;if(rowInfo.htmlNode.parentElement!==tableSection){return;}
const expandButton=Polymer.dom(rowInfo.htmlNode).querySelector('expand-button');if(rowInfo.isExpanded){Polymer.dom(expandButton).classList.add('button-expanded');const lastAddedRow=rowInfo.htmlNode;if(rowInfo.userRow[this.subRowsPropertyName_]){this.generateTableRowNodes_(tableSection,rowInfo.userRow[this.subRowsPropertyName_],rowInfoMap,rowInfo.indentation+1,lastAddedRow,rowInfo);}}else{Polymer.dom(expandButton).classList.remove('button-expanded');this.removeSubNodes_(tableSection,rowInfo,rowInfoMap);}
if(wasExpanded!==rowInfo.isExpanded){const e=new tr.b.Event('row-expanded-changed');e.row=rowInfo.userRow;this.dispatchEvent(e);}
this.maybeUpdateSelectedRow_();},get selectionMode(){return this.selectionMode_;},set selectionMode(selectionMode){if(!tr.b.dictionaryContainsValue(SelectionMode,selectionMode)){throw new Error('Invalid selection mode '+selectionMode);}
this.rebuildIfNeeded_();this.selectionMode_=selectionMode;this.didSelectionStateChange_();},get rowHighlightStyle(){return this.rowHighlightStyle_;},set rowHighlightStyle(rowHighlightStyle){if(!tr.b.dictionaryContainsValue(HighlightStyle,rowHighlightStyle)){throw new Error('Invalid row highlight style '+rowHighlightStyle);}
this.rebuildIfNeeded_();this.rowHighlightStyle_=rowHighlightStyle;this.didSelectionStateChange_();},get resolvedRowHighlightStyle(){if(this.rowHighlightStyle_!==HighlightStyle.DEFAULT){return this.rowHighlightStyle_;}
switch(this.selectionMode_){case SelectionMode.NONE:return HighlightStyle.NONE;case SelectionMode.ROW:return HighlightStyle.DARK;case SelectionMode.CELL:return HighlightStyle.LIGHT;default:throw new Error('Invalid selection mode '+selectionMode);}},get cellHighlightStyle(){return this.cellHighlightStyle_;},set cellHighlightStyle(cellHighlightStyle){if(!tr.b.dictionaryContainsValue(HighlightStyle,cellHighlightStyle)){throw new Error('Invalid cell highlight style '+cellHighlightStyle);}
this.rebuildIfNeeded_();this.cellHighlightStyle_=cellHighlightStyle;this.didSelectionStateChange_();},get resolvedCellHighlightStyle(){if(this.cellHighlightStyle_!==HighlightStyle.DEFAULT){return this.cellHighlightStyle_;}
switch(this.selectionMode_){case SelectionMode.NONE:case SelectionMode.ROW:return HighlightStyle.NONE;case SelectionMode.CELL:return HighlightStyle.DARK;default:throw new Error('Invalid selection mode '+selectionMode);}},setHighlightStyle_(highlightAttribute,resolvedHighlightStyle){switch(resolvedHighlightStyle){case HighlightStyle.NONE:Polymer.dom(this.$.body).removeAttribute(highlightAttribute);break;case HighlightStyle.LIGHT:Polymer.dom(this.$.body).setAttribute(highlightAttribute,'light');break;case HighlightStyle.DARK:Polymer.dom(this.$.body).setAttribute(highlightAttribute,'dark');break;default:throw new Error('Invalid resolved highlight style '+
resolvedHighlightStyle);}},didSelectionStateChange_(){this.setHighlightStyle_('row-highlight-style',this.resolvedRowHighlightStyle);this.setHighlightStyle_('cell-highlight-style',this.resolvedCellHighlightStyle);this.removeSelectedState_();switch(this.selectionMode_){case SelectionMode.ROW:Polymer.dom(this.$.body).setAttribute('selection-mode','row');Polymer.dom(this.$.body).setAttribute('tabindex',0);this.selectedColumnIndex_=undefined;break;case SelectionMode.CELL:Polymer.dom(this.$.body).setAttribute('selection-mode','cell');Polymer.dom(this.$.body).setAttribute('tabindex',0);if(this.selectedTableRowInfo_&&this.selectedColumnIndex_===undefined){const i=this.getFirstSelectableColumnIndex_();if(i===-1){this.selectedTableRowInfo_=undefined;}else{this.selectedColumnIndex_=i;}}
break;case SelectionMode.NONE:Polymer.dom(this.$.body).removeAttribute('selection-mode');Polymer.dom(this.$.body).removeAttribute('tabindex');this.$.body.blur();this.selectedTableRowInfo_=undefined;this.selectedColumnIndex_=undefined;break;default:throw new Error('Invalid selection mode '+this.selectionMode_);}
this.maybeUpdateSelectedRow_();},maybeUpdateSelectedRow_(){if(this.selectedTableRowInfo_===undefined)return;function isVisible(rowInfo){if(!rowInfo.htmlNode)return false;return!!rowInfo.htmlNode.parentElement;}
if(isVisible(this.selectedTableRowInfo_)){this.updateSelectedState_();return;}
this.removeSelectedState_();let curRowInfo=this.selectedTableRowInfo_;while(curRowInfo&&!isVisible(curRowInfo)){curRowInfo=curRowInfo.parentRowInfo;}
this.selectedTableRowInfo_=curRowInfo;if(this.selectedTableRowInfo_){this.updateSelectedState_();}else{this.selectedColumnIndex_=undefined;}},didTableRowInfoGetClicked_(rowInfo,columnIndex){switch(this.selectionMode_){case SelectionMode.NONE:return;case SelectionMode.CELL:if(!this.doesColumnIndexSupportSelection(columnIndex)){return;}
if(this.selectedColumnIndex!==columnIndex){this.selectedColumnIndex=columnIndex;}
case SelectionMode.ROW:if(this.selectedTableRowInfo_!==rowInfo){this.selectedTableRow=rowInfo.userRow;}}},dispatchStepIntoEvent_(rowInfo,columnIndex){const e=new tr.b.Event('step-into');e.tableRow=rowInfo.userRow;e.tableColumn=this.tableColumns_[columnIndex];e.columnIndex=columnIndex;this.dispatchEvent(e);},get selectedCell(){const row=this.selectedTableRow;const columnIndex=this.selectedColumnIndex;if(row===undefined||columnIndex===undefined||this.tableColumns_.length<=columnIndex){return undefined;}
const column=this.tableColumns_[columnIndex];return{row,column,value:column.value(row)};},get selectedTableColumnIndex(){const cols=Polymer.dom(this.$.cols).children;for(let i=0;i<cols.length;++i){if(cols[i].getAttribute('selected')){return i;}}
return undefined;},set selectedTableColumnIndex(selectedIndex){const cols=Polymer.dom(this.$.cols).children;for(let i=0;i<cols.length;++i){if(i===selectedIndex){cols[i].setAttribute('selected',true);}else{cols[i].removeAttribute('selected');}}},get selectedTableRow(){if(!this.selectedTableRowInfo_)return undefined;return this.selectedTableRowInfo_.userRow;},set selectedTableRow(userRow){this.rebuildIfNeeded_();if(this.selectionMode_===SelectionMode.NONE){throw new Error('Selection is off.');}
let rowInfo;if(userRow===undefined){rowInfo=undefined;}else{rowInfo=this.tableRowsInfo_.get(userRow);if(!rowInfo){throw new Error('Row has not been seen, must expand its parents.');}}
const e=this.prepareToChangeSelection_();if(!rowInfo){this.selectedColumnIndex_=undefined;}else{switch(this.selectionMode_){case SelectionMode.ROW:this.selectedColumnIndex_=undefined;break;case SelectionMode.CELL:if(this.selectedColumnIndex_===undefined){const i=this.getFirstSelectableColumnIndex_();if(i===-1){throw new Error('Cannot find a selectable column.');}
this.selectedColumnIndex_=i;}
break;default:throw new Error('Invalid selection mode '+this.selectionMode_);}}
this.selectedTableRowInfo_=rowInfo;this.updateSelectedState_();this.dispatchEvent(e);},prepareToChangeSelection_(){const e=new tr.b.Event('selection-changed');const previousSelectedRowInfo=this.selectedTableRowInfo_;if(previousSelectedRowInfo){e.previousSelectedTableRow=previousSelectedRowInfo.userRow;}else{e.previousSelectedTableRow=undefined;}
this.removeSelectedState_();return e;},removeSelectedState_(){this.setSelectedState_(false);},updateSelectedState_(){this.setSelectedState_(true);},setSelectedState_(select){if(this.selectedTableRowInfo_===undefined)return;const rowNode=this.selectedTableRowInfo_.htmlNode;if(select){Polymer.dom(rowNode).setAttribute('selected',true);}else{Polymer.dom(rowNode).removeAttribute('selected');}
const cellNode=Polymer.dom(rowNode).children[this.selectedColumnIndex_];if(!cellNode)return;if(select){Polymer.dom(cellNode).setAttribute('selected',true);}else{Polymer.dom(cellNode).removeAttribute('selected');}},doesColumnIndexSupportSelection(columnIndex){const columnInfo=this.tableColumns_[columnIndex];const scs=columnInfo.supportsCellSelection;if(scs===false)return false;return true;},getFirstSelectableColumnIndex_(){for(let i=0;i<this.tableColumns_.length;i++){if(this.doesColumnIndexSupportSelection(i)){return i;}}
return-1;},getSelectableNodeGivenTableRowNode_(htmlNode){switch(this.selectionMode_){case SelectionMode.ROW:return htmlNode;case SelectionMode.CELL:return Polymer.dom(htmlNode).children[this.selectedColumnIndex_];default:throw new Error('Invalid selection mode '+this.selectionMode_);}},get selectedColumnIndex(){if(this.selectionMode_!==SelectionMode.CELL){return undefined;}
return this.selectedColumnIndex_;},set selectedColumnIndex(selectedColumnIndex){this.rebuildIfNeeded_();if(this.selectionMode_===SelectionMode.NONE){throw new Error('Selection is off.');}
if(selectedColumnIndex<0||selectedColumnIndex>=this.tableColumns_.length){throw new Error('Invalid index');}
if(!this.doesColumnIndexSupportSelection(selectedColumnIndex)){throw new Error('Selection is not supported on this column');}
const e=this.prepareToChangeSelection_();if(this.selectedColumnIndex_===undefined){this.selectedTableRowInfo_=undefined;}else if(!this.selectedTableRowInfo_){if(this.tableRows_.length===0){throw new Error('No available row to be selected');}
this.selectedTableRowInfo_=this.tableRowsInfo_.get(this.tableRows_[0]);}
this.selectedColumnIndex_=selectedColumnIndex;this.updateSelectedState_();this.dispatchEvent(e);},onKeyDown_(e){if(this.selectionMode_===SelectionMode.NONE)return;const CODE_TO_COMMAND_NAMES={13:'ENTER',32:'SPACE',37:'ARROW_LEFT',38:'ARROW_UP',39:'ARROW_RIGHT',40:'ARROW_DOWN'};const cmdName=CODE_TO_COMMAND_NAMES[e.keyCode];if(cmdName===undefined)return;e.stopPropagation();e.preventDefault();this.performKeyCommand_(cmdName);},onFocus_(e){if(this.selectionMode_===SelectionMode.NONE||this.selectedTableRow||this.tableRows_.length===0){return;}
if(this.selectionMode_===SelectionMode.CELL&&this.getFirstSelectableColumnIndex_()===-1){return;}
this.selectedTableRow=this.tableRows_[0];},focus(){this.$.body.focus();this.onFocus_();},blur(){this.$.body.blur();},get isFocused(){return this.root.activeElement===this.$.body;},performKeyCommand_(cmdName){this.rebuildIfNeeded_();switch(cmdName){case'ARROW_UP':this.selectPreviousOrFirstRowIfPossible_();return;case'ARROW_DOWN':this.selectNextOrFirstRowIfPossible_();return;case'ARROW_RIGHT':switch(this.selectionMode_){case SelectionMode.NONE:return;case SelectionMode.ROW:this.expandRowAndSelectChildRowIfPossible_();return;case SelectionMode.CELL:this.selectNextSelectableCellToTheRightIfPossible_();return;default:throw new Error('Invalid selection mode '+this.selectionMode_);}
case'ARROW_LEFT':switch(this.selectionMode_){case SelectionMode.NONE:return;case SelectionMode.ROW:this.collapseRowOrSelectParentRowIfPossible_();return;case SelectionMode.CELL:this.selectNextSelectableCellToTheLeftIfPossible_();return;default:throw new Error('Invalid selection mode '+this.selectionMode_);}
case'SPACE':this.toggleRowExpansionStateIfPossible_();return;case'ENTER':this.stepIntoSelectionIfPossible_();return;default:throw new Error('Unrecognized command '+cmdName);}},selectPreviousOrFirstRowIfPossible_(){const prev=this.selectedTableRowInfo_?this.selectedTableRowInfo_.htmlNode.previousElementSibling:this.$.body.firstChild;if(!prev)return;if(this.selectionMode_===SelectionMode.CELL&&this.getFirstSelectableColumnIndex_()===-1){return;}
tr.ui.b.scrollIntoViewIfNeeded(prev);this.selectedTableRow=prev.rowInfo.userRow;},selectNextOrFirstRowIfPossible_(){this.getFirstSelectableColumnIndex_;const next=this.selectedTableRowInfo_?this.selectedTableRowInfo_.htmlNode.nextElementSibling:this.$.body.firstChild;if(!next)return;if(this.selectionMode_===SelectionMode.CELL&&this.getFirstSelectableColumnIndex_()===-1){return;}
tr.ui.b.scrollIntoViewIfNeeded(next);this.selectedTableRow=next.rowInfo.userRow;},expandRowAndSelectChildRowIfPossible_(){const selectedRowInfo=this.selectedTableRowInfo_;if(!selectedRowInfo||selectedRowInfo.userRow[this.subRowsPropertyName_]===undefined||selectedRowInfo.userRow[this.subRowsPropertyName_].length===0){return;}
if(!selectedRowInfo.isExpanded){this.setExpandedForTableRow(selectedRowInfo.userRow,true);}
this.selectedTableRow=selectedRowInfo.htmlNode.nextElementSibling.rowInfo.userRow;},collapseRowOrSelectParentRowIfPossible_(){const selectedRowInfo=this.selectedTableRowInfo_;if(!selectedRowInfo)return;if(selectedRowInfo.isExpanded){this.setExpandedForTableRow(selectedRowInfo.userRow,false);}else{const parentRowInfo=selectedRowInfo.parentRowInfo;if(parentRowInfo){this.selectedTableRow=parentRowInfo.userRow;}}},selectNextSelectableCellToTheRightIfPossible_(){if(!this.selectedTableRowInfo_||this.selectedColumnIndex_===undefined){return;}
for(let i=this.selectedColumnIndex_+1;i<this.tableColumns_.length;i++){if(this.doesColumnIndexSupportSelection(i)){this.selectedColumnIndex=i;return;}}},selectNextSelectableCellToTheLeftIfPossible_(){if(!this.selectedTableRowInfo_||this.selectedColumnIndex_===undefined){return;}
for(let i=this.selectedColumnIndex_-1;i>=0;i--){if(this.doesColumnIndexSupportSelection(i)){this.selectedColumnIndex=i;return;}}},toggleRowExpansionStateIfPossible_(){const selectedRowInfo=this.selectedTableRowInfo_;if(!selectedRowInfo||selectedRowInfo.userRow[this.subRowsPropertyName_]===undefined||selectedRowInfo.userRow[this.subRowsPropertyName_].length===0){return;}
this.setExpandedForTableRow(selectedRowInfo.userRow,!selectedRowInfo.isExpanded);},stepIntoSelectionIfPossible_(){if(!this.selectedTableRowInfo_)return;this.dispatchStepIntoEvent_(this.selectedTableRowInfo_,this.selectedColumnIndex_);},dispatchSortingChangedEvent_(){const e=new tr.b.Event('sort-column-changed');e.sortColumnIndex=this.sortColumnIndex_;e.sortDescending=this.sortDescending_;this.dispatchEvent(e);}});})();'use strict';const ColumnAlignment=tr.ui.b.TableFormat.ColumnAlignment;Polymer({is:'tr-ui-b-table-header-cell',created(){this.tapCallback_=undefined;this.cellTitle_='';this.align_=undefined;this.selectable_=false;this.column_=undefined;},ready(){this.addEventListener('click',this.onTap_.bind(this));},set column(column){this.column_=column;this.align=column.align;this.cellTitle=column.title;},get column(){return this.column_;},set cellTitle(value){this.cellTitle_=value;const titleNode=tr.ui.b.asHTMLOrTextNode(this.cellTitle_,this.ownerDocument);this.$.title.innerText='';Polymer.dom(this.$.title).appendChild(titleNode);},get cellTitle(){return this.cellTitle_;},set align(align){switch(align){case undefined:case ColumnAlignment.LEFT:this.style.justifyContent='';break;case ColumnAlignment.RIGHT:this.style.justifyContent='flex-end';break;default:throw new Error('Invalid alignment of column (title=\''+
this.cellTitle_+'\'): '+align);}
this.align_=align;},get align(){return this.align_;},clearSideContent(){Polymer.dom(this.$.side).textContent='';},set sideContent(content){Polymer.dom(this.$.side).textContent=content;this.$.side.style.display=content?'inline':'none';},get sideContent(){return Polymer.dom(this.$.side).textContent;},set sideContentDisabled(sideContentDisabled){this.$.side.classList.toggle('disabled',sideContentDisabled);},get sideContentDisabled(){return this.$.side.classList.contains('disabled');},set tapCallback(callback){this.style.cursor='pointer';this.tapCallback_=callback;},get tapCallback(){return this.tapCallback_;},onTap_(){if(this.tapCallback_){this.tapCallback_();}}});'use strict';tr.exportTo('tr.b.math',function(){class RunningStatistics{constructor(){this.mean_=0;this.count_=0;this.max_=-Infinity;this.min_=Infinity;this.sum_=0;this.variance_=0;this.meanlogs_=0;}
get count(){return this.count_;}
get geometricMean(){if(this.meanlogs_===undefined)return 0;return Math.exp(this.meanlogs_);}
get mean(){if(this.count_===0)return undefined;return this.mean_;}
get max(){return this.max_;}
get min(){return this.min_;}
get sum(){return this.sum_;}
get variance(){if(this.count_===0)return undefined;if(this.count_===1)return 0;return this.variance_/(this.count_-1);}
get stddev(){if(this.count_===0)return undefined;return Math.sqrt(this.variance);}
add(x){this.count_++;this.max_=Math.max(this.max_,x);this.min_=Math.min(this.min_,x);this.sum_+=x;if(x<=0){this.meanlogs_=undefined;}else if(this.meanlogs_!==undefined){this.meanlogs_+=(Math.log(Math.abs(x))-this.meanlogs_)/this.count;}
if(this.count_===1){this.mean_=x;this.variance_=0;}else{const oldMean=this.mean_;const oldVariance=this.variance_;if(oldMean===Infinity||oldMean===-Infinity){this.mean_=this.sum_/this.count_;}else{this.mean_=oldMean+(x-oldMean)/this.count_;}
this.variance_=oldVariance+(x-oldMean)*(x-this.mean_);}}
merge(other){const result=new RunningStatistics();result.count_=this.count_+other.count_;result.sum_=this.sum_+other.sum_;result.min_=Math.min(this.min_,other.min_);result.max_=Math.max(this.max_,other.max_);if(result.count===0){result.mean_=0;result.variance_=0;result.meanlogs_=0;}else{result.mean_=result.sum/result.count;const deltaMean=(this.mean||0)-(other.mean||0);result.variance_=this.variance_+other.variance_+
(this.count*other.count*deltaMean*deltaMean/result.count);if(this.meanlogs_===undefined||other.meanlogs_===undefined){result.meanlogs_=undefined;}else{result.meanlogs_=(this.count*this.meanlogs_+
other.count*other.meanlogs_)/result.count;}}
return result;}
asDict(){if(!this.count){return[];}
return[this.count_,this.max_,this.meanlogs_,this.mean_,this.min_,this.sum_,this.variance_,];}
static fromDict(dict){const result=new RunningStatistics();if(dict.length!==7){return result;}
[result.count_,result.max_,result.meanlogs_,result.mean_,result.min_,result.sum_,result.variance_,]=dict;return result;}}
return{RunningStatistics,};});'use strict';tr.exportTo('tr.v.d',function(){class Diagnostic{constructor(){this.guid_=undefined;}
clone(){return new this.constructor();}
canAddDiagnostic(otherDiagnostic){return false;}
addDiagnostic(otherDiagnostic){throw new Error('Abstract virtual method: subclasses must override '+'this method if they override canAddDiagnostic');}
get guid(){if(this.guid_===undefined){this.guid_=tr.b.GUID.allocateUUID4();}
return this.guid_;}
set guid(guid){if(this.guid_!==undefined){throw new Error('Cannot reset guid');}
this.guid_=guid;}
asDictOrReference(){if(this.guid_!==undefined){return this.guid_;}
return this.asDict();}
asDict(){const result={type:this.constructor.name};if(this.guid_!==undefined){result.guid=this.guid_;}
this.asDictInto_(result);return result;}
asDictInto_(d){throw new Error('Abstract virtual method: subclasses must override '+'this method if they override canAddDiagnostic');}
static fromDict(d){const typeInfo=Diagnostic.findTypeInfoWithName(d.type);if(!typeInfo){throw new Error('Unrecognized diagnostic type: '+d.type);}
const diagnostic=typeInfo.constructor.fromDict(d);if(d.guid!==undefined)diagnostic.guid=d.guid;return diagnostic;}}
const options=new tr.b.ExtensionRegistryOptions(tr.b.BASIC_REGISTRY_MODE);options.defaultMetadata={};options.mandatoryBaseClass=Diagnostic;tr.b.decorateExtensionRegistry(Diagnostic,options);Diagnostic.addEventListener('will-register',function(e){const constructor=e.typeInfo.constructor;if(!(constructor.fromDict instanceof Function)||(constructor.fromDict===Diagnostic.fromDict)||(constructor.fromDict.length!==1)){throw new Error('Diagnostics must define fromDict(d)');}});return{Diagnostic,};});'use strict';tr.exportTo('tr.v.d',function(){class Breakdown extends tr.v.d.Diagnostic{constructor(){super();this.values_=new Map();this.colorScheme=undefined;}
clone(){const clone=new Breakdown();clone.colorScheme=this.colorScheme;clone.addDiagnostic(this);return clone;}
canAddDiagnostic(otherDiagnostic){return((otherDiagnostic instanceof Breakdown)&&(otherDiagnostic.colorScheme===this.colorScheme));}
addDiagnostic(otherDiagnostic){for(const[name,value]of otherDiagnostic){this.set(name,this.get(name)+value);}
return this;}
set(name,value){if(typeof name!=='string'||typeof value!=='number'){throw new Error('Breakdown maps from strings to numbers');}
this.values_.set(name,value);}
get(name){return this.values_.get(name)||0;}*[Symbol.iterator](){for(const pair of this.values_){yield pair;}}
asDictInto_(d){d.values={};for(const[name,value]of this){d.values[name]=tr.b.numberToJson(value);}
if(this.colorScheme){d.colorScheme=this.colorScheme;}}
static fromDict(d){const breakdown=new Breakdown();for(const[name,value]of Object.entries(d.values)){breakdown.set(name,tr.b.numberFromJson(value));}
if(d.colorScheme){breakdown.colorScheme=d.colorScheme;}
return breakdown;}}
tr.v.d.Diagnostic.register(Breakdown,{elementName:'tr-v-ui-breakdown-span'});return{Breakdown,};});'use strict';tr.exportTo('tr.v.d',function(){class BuildbotInfo extends tr.v.d.Diagnostic{constructor(info){super();this.displayMasterName_=info.displayMasterName||'';this.displayBotName_=info.displayBotName||'';this.buildbotMasterName_=info.buildbotMasterName||'';this.buildbotName_=info.buildbotName||'';this.buildNumber_=info.buildNumber||0;this.logUri_=info.logUri||'';}
addToHistogram(hist){hist.diagnostics.set(BuildbotInfo.NAME,this);}
clone(){const clone=new tr.v.d.MergedBuildbotInfo();clone.addDiagnostic(this);return clone;}
asDictInto_(d){d.displayMasterName=this.displayMasterName;d.displayBotName=this.displayBotName;d.buildbotMasterName=this.buildbotMasterName;d.buildbotName=this.buildbotName;d.buildNumber=this.buildNumber;d.logUri=this.logUri;}
get displayMasterName(){return this.displayMasterName_;}
get displayBotName(){return this.displayBotName_;}
get buildbotMasterName(){return this.buildbotMasterName_;}
get buildbotName(){return this.buildbotName_;}
get buildNumber(){return this.buildNumber_;}
get logUri(){return this.logUri_;}
static fromDict(d){return new BuildbotInfo(d);}
static getFromHistogram(hist){return hist.diagnostics.get(BuildbotInfo.NAME);}
static getField(hist,fieldName,defaultValue){const buildbot=BuildbotInfo.getFromHistogram(hist);if(!(buildbot instanceof tr.v.d.BuildbotInfo)||!buildbot[fieldName]){return defaultValue;}
return buildbot[fieldName];}}
BuildbotInfo.NAME='buildbot';tr.v.d.Diagnostic.register(BuildbotInfo,{elementName:'tr-v-ui-buildbot-info-span'});return{BuildbotInfo,};});'use strict';tr.exportTo('tr.v.d',function(){class Generic extends tr.v.d.Diagnostic{constructor(value){super();this.value=value;}
clone(){const clone=new tr.v.d.CollectedGeneric();clone.addDiagnostic(this);return clone;}
asDictInto_(d){d.value=this.value;}
static fromDict(d){return new Generic(d.value);}}
tr.v.d.Diagnostic.register(Generic,{elementName:'tr-v-ui-generic-diagnostic-span'});return{Generic,};});'use strict';tr.exportTo('tr.v.d',function(){class CollectedGeneric extends tr.v.d.Generic{constructor(){super([]);}
canAddDiagnostic(otherDiagnostic){return otherDiagnostic instanceof tr.v.d.Generic;}
addDiagnostic(otherDiagnostic){if(otherDiagnostic instanceof CollectedGeneric){this.value.push(...otherDiagnostic.value);}else{this.value.push(otherDiagnostic.value);}}}
tr.v.d.Diagnostic.register(CollectedGeneric,{elementName:'tr-v-ui-generic-diagnostic-span'});return{CollectedGeneric,};});'use strict';tr.exportTo('tr.v.d',function(){class CollectedRelatedEventSet extends tr.v.d.Diagnostic{constructor(){super();this.eventSetsByCanonicalUrl_=new Map();}
asDictInto_(d){d.events={};for(const[canonicalUrl,eventSet]of this){d.events[canonicalUrl]=[];for(const event of eventSet){d.events[canonicalUrl].push({stableId:event.stableId,title:event.title,start:event.start,duration:event.duration});}}}
static fromDict(d){const result=new CollectedRelatedEventSet();for(const[canonicalUrl,events]of Object.entries(d.events)){result.eventSetsByCanonicalUrl_.set(canonicalUrl,events.map(e=>new tr.v.d.EventRef(e)));}
return result;}
get size(){return this.eventSetsByCanonicalUrl_.size;}
get(canonicalUrl){return this.eventSetsByCanonicalUrl_.get(canonicalUrl);}*[Symbol.iterator](){for(const[canonicalUrl,eventSet]of this.eventSetsByCanonicalUrl_){yield[canonicalUrl,eventSet];}}
canAddDiagnostic(otherDiagnostic){return otherDiagnostic instanceof tr.v.d.RelatedEventSet||otherDiagnostic instanceof tr.v.d.CollectedRelatedEventSet;}
addEventSetForCanonicalUrl(canonicalUrl,events){let myEventSet=this.eventSetsByCanonicalUrl_.get(canonicalUrl);if(myEventSet===undefined){myEventSet=new Set();this.eventSetsByCanonicalUrl_.set(canonicalUrl,myEventSet);}
for(const event of events){myEventSet.add(event);}}
addDiagnostic(otherDiagnostic){if(otherDiagnostic instanceof tr.v.d.CollectedRelatedEventSet){for(const[canonicalUrl,otherEventSet]of otherDiagnostic){this.addEventSetForCanonicalUrl(canonicalUrl,otherEventSet);}
return;}
if(!otherDiagnostic.canonicalUrl)return;this.addEventSetForCanonicalUrl(otherDiagnostic.canonicalUrl,otherDiagnostic);}}
tr.v.d.Diagnostic.register(CollectedRelatedEventSet,{elementName:'tr-v-ui-collected-related-event-set-span'});return{CollectedRelatedEventSet,};});'use strict';tr.exportTo('tr.v.d',function(){class DeviceInfo extends tr.v.d.Diagnostic{constructor(opt_info){super();const info=opt_info||{};this.chromeVersion_=info.chromeVersion||'';this.osName_=info.osName||'';this.osVersion_=info.osVersion||'';this.gpuInfo_=info.gpuInfo||undefined;this.arch_=info.arch||undefined;this.ram_=info.ram||0;}
addToHistogram(hist){hist.diagnostics.set(DeviceInfo.NAME,this);}
static getFromHistogram(hist){return hist.diagnostics.get(DeviceInfo.NAME);}
clone(){const clone=new tr.v.d.MergedDeviceInfo();clone.addDiagnostic(this);return clone;}
asDictInto_(d){d.chromeVersion=this.chromeVersion;d.osName=this.osName;d.osVersion=this.osVersion;d.gpuInfo=this.gpuInfo;d.arch=this.arch;d.ram=this.ram;}
static fromDict(d){return new DeviceInfo(d);}
get chromeVersion(){return this.chromeVersion_;}
get osName(){return this.osName_;}
get osVersion(){return this.osVersion_;}
get gpuInfo(){return this.gpuInfo_;}
get arch(){return this.arch_;}
get ram(){return this.ram_;}}
DeviceInfo.NAME='device';tr.v.d.Diagnostic.register(DeviceInfo,{elementName:'tr-v-ui-device-info-span'});return{DeviceInfo,};});'use strict';tr.exportTo('tr.v.d',function(){class DiagnosticRef{constructor(guid){this.guid=guid;}
asDict(){return this.guid;}}
return{DiagnosticRef,};});'use strict';tr.exportTo('tr.v.d',function(){class GroupingPath extends tr.v.d.Diagnostic{constructor(groupingPath){super();this.groupingPath_=groupingPath;}
clone(){return new GroupingPath(Array.from(this.groupingPath_));}
addToHistogram(hist){hist.diagnostics.set(GroupingPath.NAME,this);}
static getFromHistogram(hist){return hist.diagnostics.get(GroupingPath.NAME);}
equals(other){return 0===tr.b.compareArrays(this.groupingPath_,other.groupingPath_,(x,y)=>x.localeCompare(y));}
asDictInto_(d){d.groupingPath=this.groupingPath_;}
static fromDict(d){return new GroupingPath(d.groupingPath);}}
GroupingPath.NAME='grouping path';tr.v.d.Diagnostic.register(GroupingPath);return{GroupingPath,};});'use strict';tr.exportTo('tr.v.d',function(){class MergedBuildbotInfo extends tr.v.d.Diagnostic{constructor(info){super();this.displayMasterNames_=new Set();this.displayBotNames_=new Set();this.buildbotMasterNames_=new Set();this.buildbotNames_=new Set();this.buildNumbers_=new Set();this.logUris_=new Set();}
clone(){const clone=new MergedBuildbotInfo();clone.addDiagnostic(this);return clone;}
addToHistogram(hist){hist.diagnostics.set(tr.v.d.BuildbotInfo.NAME,this);}
equals(other){if(!(other instanceof MergedBuildbotInfo))return false;if(!tr.b.setsEqual(this.displayMasterNames,other.displayMasterNames)){return false;}
if(!tr.b.setsEqual(this.displayBotNames,other.displayBotNames)){return false;}
if(!tr.b.setsEqual(this.buildbotMasterNames,other.buildbotMasterNames)){return false;}
if(!tr.b.setsEqual(this.buildbotNames,other.buildbotNames)){return false;}
if(!tr.b.setsEqual(this.buildNumbers,other.buildNumbers))return false;if(!tr.b.setsEqual(this.logUris,other.logUris))return false;return true;}
canAddDiagnostic(otherDiagnostic){return otherDiagnostic instanceof MergedBuildbotInfo||otherDiagnostic instanceof tr.v.d.BuildbotInfo;}
addDiagnostic(otherDiagnostic){if(otherDiagnostic instanceof MergedBuildbotInfo){for(const name of otherDiagnostic.displayMasterNames){this.displayMasterNames.add(name);}
for(const name of otherDiagnostic.displayBotNames){this.displayBotNames.add(name);}
for(const name of otherDiagnostic.buildbotMasterNames){this.buildbotMasterNames.add(name);}
for(const name of otherDiagnostic.buildbotNames){this.buildbotNames.add(name);}
for(const name of otherDiagnostic.buildNumbers){this.buildNumbers.add(name);}
for(const name of otherDiagnostic.logUris){this.logUris.add(name);}
return this;}
if(otherDiagnostic.displayMasterName){this.displayMasterNames.add(otherDiagnostic.displayMasterName);}
if(otherDiagnostic.displayBotName){this.displayBotNames.add(otherDiagnostic.displayBotName);}
if(otherDiagnostic.buildbotMasterName){this.buildbotMasterNames.add(otherDiagnostic.buildbotMasterName);}
if(otherDiagnostic.buildbotName){this.buildbotNames.add(otherDiagnostic.buildbotName);}
if(otherDiagnostic.buildNumber){this.buildNumbers.add(otherDiagnostic.buildNumber);}
if(otherDiagnostic.logUri){this.logUris.add(otherDiagnostic.logUri);}
return this;}
asDictInto_(d){d.displayMasterNames=Array.from(this.displayMasterNames);d.displayBotNames=Array.from(this.displayBotNames);d.buildbotMasterNames=Array.from(this.buildbotMasterNames);d.buildbotNames=Array.from(this.buildbotNames);d.buildNumbers=Array.from(this.buildNumbers);d.logUris=Array.from(this.logUris);}
get displayMasterNames(){return this.displayMasterNames_;}
get displayBotNames(){return this.displayBotNames_;}
get buildbotMasterNames(){return this.buildbotMasterNames_;}
get buildbotNames(){return this.buildbotNames_;}
get buildNumbers(){return this.buildNumbers_;}
get logUris(){return this.logUris_;}
static fromDict(d){const info=new MergedBuildbotInfo();for(const name of d.displayMasterNames){info.displayMasterNames.add(name);}
for(const name of d.displayBotNames){info.displayBotNames.add(name);}
for(const name of d.buildbotMasterNames){info.buildbotMasterNames.add(name);}
for(const name of d.buildbotNames){info.buildbotNames.add(name);}
for(const name of d.buildNumbers){info.buildNumbers.add(name);}
for(const name of d.logUris){info.logUris.add(name);}
return info;}}
tr.v.d.Diagnostic.register(MergedBuildbotInfo,{elementName:'tr-v-ui-merged-buildbot-info-span'});return{MergedBuildbotInfo,};});'use strict';tr.exportTo('tr.v.d',function(){class MergedDeviceInfo extends tr.v.d.Diagnostic{constructor(){super();this.chromeVersions_=new Set();this.osNames_=new Set();this.osVersions_=new Set();}
clone(){const clone=new tr.v.d.MergedDeviceInfo();clone.addDiagnostic(this);return clone;}
addToHistogram(hist){hist.diagnostics.set(tr.v.d.DeviceInfo.NAME,this);}
canAddDiagnostic(otherDiagnostic){return otherDiagnostic instanceof MergedDeviceInfo||otherDiagnostic instanceof tr.v.d.DeviceInfo;}
addDiagnostic(otherDiagnostic){if(otherDiagnostic instanceof MergedDeviceInfo){for(const name of otherDiagnostic.osNames){this.osNames.add(name);}
for(const name of otherDiagnostic.osVersions){this.osVersions.add(name);}
for(const name of otherDiagnostic.chromeVersions){this.chromeVersions.add(name);}
return this;}
if(otherDiagnostic.osName){this.osNames.add(otherDiagnostic.osName);}
if(otherDiagnostic.osVersion){this.osVersions.add(otherDiagnostic.osVersion);}
if(otherDiagnostic.chromeVersion){this.chromeVersions.add(otherDiagnostic.chromeVersion);}
return this;}
equals(other){if(!(other instanceof MergedDeviceInfo))return false;if(!tr.b.setsEqual(this.chromeVersions,other.chromeVersions)){return false;}
if(!tr.b.setsEqual(this.osVersions,other.osVersions))return false;if(!tr.b.setsEqual(this.osNames,other.osNames))return false;return true;}
asDictInto_(d){d.chromeVersions=Array.from(this.chromeVersions);d.osNames=Array.from(this.osNames);d.osVersions=Array.from(this.osVersions);}
static fromDict(d){const info=new MergedDeviceInfo();for(const chromeVersion of d.chromeVersions){info.chromeVersions.add(chromeVersion);}
for(const osName of d.osNames){info.osNames.add(osName);}
for(const osVersion of d.osVersions){info.osVersions.add(osVersion);}
return info;}
get chromeVersions(){return this.chromeVersions_;}
get osNames(){return this.osNames_;}
get osVersions(){return this.osVersions_;}}
tr.v.d.Diagnostic.register(MergedDeviceInfo,{elementName:'tr-v-ui-merged-device-info-span'});return{MergedDeviceInfo,};});'use strict';tr.exportTo('tr.v.d',function(){const REPO_NAMES=['chromium','v8','catapult','angle','skia','webrtc'];class MergedRevisionInfo extends tr.v.d.Diagnostic{constructor(opt_info){super();const info=opt_info||{};this.chromiumCommitPositions_=new Set(info.chromiumCommitPositions||[]);this.v8CommitPositions_=new Set(info.v8CommitPositions||[]);this.chromium_=info.chromium||[];this.v8_=info.v8||[];this.catapult_=info.catapult||[];this.angle_=info.angle||[];this.skia_=info.skia||[];this.webrtc_=info.webrtc||[];}
clone(){const clone=new MergedRevisionInfo();clone.addDiagnostic(this);return clone;}
addToHistogram(hist){hist.diagnostics.set(tr.v.d.RevisionInfo.NAME,this);}
canAddDiagnostic(otherDiagnostic,name,parentHist,otherParentHist){return otherDiagnostic instanceof tr.v.d.RevisionInfo||otherDiagnostic instanceof MergedRevisionInfo;}
addDiagnostic(otherDiagnostic,name,parentHist,otherParentHist){if(otherDiagnostic instanceof MergedRevisionInfo){for(const pos of otherDiagnostic.chromiumCommitPositions){this.chromiumCommitPositions.add(pos);}
for(const pos of otherDiagnostic.v8CommitPositions){this.v8CommitPositions.add(pos);}
for(const repo of REPO_NAMES){for(const otherRevs of otherDiagnostic[repo]){let found=false;for(const revs of this[repo]){if(otherRevs[0]===revs[0]&&otherRevs[1]===revs[1]){found=true;break;}}
if(!found){this[repo].push(otherRevs);}}}
return this;}
if(otherDiagnostic.chromiumCommitPosition!==undefined){this.chromiumCommitPositions.add(otherDiagnostic.chromiumCommitPosition);}
if(otherDiagnostic.v8CommitPosition!==undefined){this.v8CommitPositions.add(otherDiagnostic.v8CommitPosition);}
for(const repo of REPO_NAMES){const otherRevs=otherDiagnostic[repo];let found=false;for(const revs of this[repo]){if(otherRevs[0]===revs[0]&&otherRevs[1]===revs[1]){found=true;break;}}
if(!found){this[repo].push(otherRevs);}}
return this;}
asDictInto_(d){d.chromiumCommitPositions=this.chromiumCommitPositions;d.v8CommitPositions=this.v8CommitPositions;d.chromium=this.chromium;d.v8=this.v8;d.catapult=this.catapult;d.angle=this.angle;d.skia=this.skia;d.webrtc=this.webrtc;}
static fromDict(d){return new MergedRevisionInfo(d);}
get chromiumCommitPositions(){return this.chromiumCommitPositions_;}
get v8CommitPositions(){return this.v8CommitPositions_;}
get chromium(){return this.chromium_;}
get v8(){return this.v8_;}
get catapult(){return this.catapult_;}
get angle(){return this.angle_;}
get skia(){return this.skia_;}
get webrtc(){return this.webrtc_;}}
tr.v.d.Diagnostic.register(MergedRevisionInfo,{elementName:'tr-v-ui-merged-revision-info-span'});return{MergedRevisionInfo,};});'use strict';tr.exportTo('tr.v.d',function(){class MergedTelemetryInfo extends tr.v.d.Diagnostic{constructor(){super();this.benchmarkNames_=new Set();this.benchmarkStartsMs_=new Set();this.labels_=new Set();this.legacyTIRLabels_=new Set();this.storyDisplayNames_=new Set();this.storyGroupingKeys_=new Map();this.storysetRepeatCounters_=new Set();}
clone(){const clone=new tr.v.d.MergedTelemetryInfo();clone.addDiagnostic(this);return clone;}
addToHistogram(hist){hist.diagnostics.set(tr.v.d.TelemetryInfo.NAME,this);}
equals(other){if(!(other instanceof MergedTelemetryInfo))return false;if(!tr.b.setsEqual(this.benchmarkNames,other.benchmarkNames)){return false;}
if(!tr.b.setsEqual(this.labels,other.labels))return false;if(!tr.b.setsEqual(this.storyDisplayNames,other.storyDisplayNames)){return false;}
if(!tr.b.setsEqual(this.legacyTIRLabels,other.legacyTIRLabels)){return false;}
if(!tr.b.setsEqual(this.storysetRepeatCounters,other.storysetRepeatCounters)){return false;}
if(!tr.b.setsEqual(this.benchmarkStartsMs,other.benchmarkStartsMs)){return false;}
if(!tr.b.setsEqual(new Set(this.storyGroupingKeys.keys()),new Set(other.storyGroupingKeys.keys()))){return false;}
for(const[k,vs]of this.storyGroupingKeys){if(!tr.b.setsEqual(vs,other.storyGroupingKeys.get(k))){return false;}}
return true;}
canAddDiagnostic(otherDiagnostic){return otherDiagnostic instanceof MergedTelemetryInfo||otherDiagnostic instanceof tr.v.d.TelemetryInfo;}
addDiagnostic(otherDiagnostic){if(otherDiagnostic instanceof MergedTelemetryInfo){for(const name of otherDiagnostic.benchmarkNames){this.benchmarkNames.add(name);}
for(const t of otherDiagnostic.benchmarkStartsMs){this.benchmarkStartsMs.add(t);}
for(const name of otherDiagnostic.labels){this.labels.add(name);}
for(const name of otherDiagnostic.legacyTIRLabels){this.legacyTIRLabels.add(name);}
for(const name of otherDiagnostic.storyDisplayNames){this.storyDisplayNames.add(name);}
for(const name of otherDiagnostic.storysetRepeatCounters){this.storysetRepeatCounters.add(name);}
for(const[name,value]of otherDiagnostic.storyGroupingKeys){if(this.storyGroupingKeys.has(name)){for(const subValue of value){this.storyGroupingKeys.get(name).add(subValue);}}else{this.storyGroupingKeys.set(name,new Set(value));}}
return;}
if(otherDiagnostic.benchmarkName){this.benchmarkNames.add(otherDiagnostic.benchmarkName);}
if(otherDiagnostic.benchmarkStart!==undefined){this.benchmarkStartsMs.add(otherDiagnostic.benchmarkStart.getTime());}
if(otherDiagnostic.label){this.labels.add(otherDiagnostic.label);}
if(otherDiagnostic.legacyTIRLabel){this.legacyTIRLabels.add(otherDiagnostic.legacyTIRLabel);}
if(otherDiagnostic.storyDisplayName){this.storyDisplayNames.add(otherDiagnostic.storyDisplayName);}
for(const[name,value]of otherDiagnostic.storyGroupingKeys){if(this.storyGroupingKeys.has(name)){this.storyGroupingKeys.get(name).add(value);}else{this.storyGroupingKeys.set(name,new Set([value]));}}
if(otherDiagnostic.storysetRepeatCounter!==undefined){this.storysetRepeatCounters.add(otherDiagnostic.storysetRepeatCounter);}}
asDictInto_(d){if(this.benchmarkNames.size){d.benchmarkNames=Array.from(this.benchmarkNames);}
if(this.benchmarkStartsMs.size){d.benchmarkStartsMs=Array.from(this.benchmarkStartsMs);}
if(this.labels.size){d.labels=Array.from(this.labels);}
if(this.legacyTIRLabels.size){d.legacyTIRLabels=this.legacyTIRLabels;}
if(this.storyDisplayNames.size){d.storyDisplayNames=Array.from(this.storyDisplayNames);}
if(this.storyGroupingKeys.size){d.storyGroupingKeys={};for(const[name,values]of this.storyGroupingKeys){d.storyGroupingKeys[name]=Array.from(values);}}
if(this.storysetRepeatCounters.size){d.storysetRepeatCounters=Array.from(this.storysetRepeatCounters);}}
static fromDict(d){const info=new MergedTelemetryInfo();for(const n of d.benchmarkNames||[]){info.benchmarkNames_.add(n);}
for(const n of d.benchmarkStartsMs||[]){info.benchmarkStartsMs_.add(n);}
for(const n of d.labels||[]){info.labels_.add(n);}
for(const n of d.legacyTIRLabels||[]){info.legacyTIRLabels_.add(n);}
for(const n of d.storyDisplayNames||[]){info.storyDisplayNames_.add(n);}
for(const[name,values]of Object.entries(d.storyGroupingKeys||{})){info.storyGroupingKeys_.set(name,new Set(values));}
for(const n of d.storysetRepeatCounters||[]){info.storysetRepeatCounters_.add(n);}
return info;}
get displayLabel(){if(this.labels.size){return Array.from(this.labels).join('\n');}
return Array.from(this.benchmarkNames).concat(this.benchmarkStartStrings).join('\n');}
get benchmarkNames(){return this.benchmarkNames_;}
get labels(){return this.labels_;}
get legacyTIRLabels(){return this.legacyTIRLabels_;}
get storyGroupingKeys(){return this.storyGroupingKeys_;}
get storyDisplayNames(){return this.storyDisplayNames_;}
get storysetRepeatCounters(){return this.storysetRepeatCounters_;}
get storysetRepeatCounterLabel(){return'storyset repeat '+Array.from(this.storysetRepeatCounters).join(',');}
get benchmarkStartsMs(){return this.benchmarkStartsMs_;}
get benchmarkStarts(){const startsMs=Array.from(this.benchmarkStartsMs);startsMs.sort((x,y)=>x-y);return startsMs.map(t=>new Date(t));}
get benchmarkStartStrings(){return this.benchmarkStarts.map(tr.b.formatDate);}
static getField(hist,fieldName,defaultValue){const telemetry=tr.v.d.TelemetryInfo.getFromHistogram(hist);if(!(telemetry instanceof tr.v.d.MergedTelemetryInfo)||!telemetry[fieldName]){return defaultValue;}
return telemetry[fieldName];}
static getStoryGroupingKeyLabel(hist,storyGroupingKey){const telemetry=tr.v.d.TelemetryInfo.getFromHistogram(hist);if(!(telemetry instanceof tr.v.d.MergedTelemetryInfo)){return storyGroupingKey+': undefined';}
return storyGroupingKey+': '+
telemetry.storyGroupingKeys[storyGroupingKey];}
static makeStoryGroupingKeyLabelGetter(storyGroupingKey){return v=>MergedTelemetryInfo.getStoryGroupingKeyLabel(v,storyGroupingKey);}}
tr.v.d.Diagnostic.register(MergedTelemetryInfo,{elementName:'tr-v-ui-merged-telemetry-info-span'});return{MergedTelemetryInfo,};});'use strict';tr.exportTo('tr.v.d.',function(){class Ownership extends tr.v.d.Diagnostic{constructor(emails,component){super();this.emails=emails||[];if(typeof(component)==='string'){this.component=component;}}
asDictInto_(d){if(this.component!==undefined){d.component=this.component;}
d.emails=this.emails;}
clone(){return new Ownership(this.emails,this.component);}
static fromDict(d){return new Ownership(d.emails,d.component);}}
tr.v.d.Diagnostic.register(Ownership);return{Ownership,};});'use strict';tr.exportTo('tr.v.d',function(){class EventRef{constructor(event){this.stableId=event.stableId;this.title=event.title;this.start=event.start;this.duration=event.duration;this.end=this.start+this.duration;this.guid=tr.b.GUID.allocateSimple();}}
return{EventRef,};});'use strict';tr.exportTo('tr.v.d',function(){class RelatedEventSet extends tr.v.d.Diagnostic{constructor(opt_events){super();this.eventsByStableId_=new Map();this.canonicalUrl_=undefined;if(opt_events){if(opt_events instanceof tr.model.EventSet||opt_events instanceof Array){for(const event of opt_events){this.add(event);}}else{this.add(opt_events);}}}
clone(){const clone=new tr.v.d.CollectedRelatedEventSet();clone.addDiagnostic(this);return clone;}
add(event){this.eventsByStableId_.set(event.stableId,event);}
has(event){return this.eventsByStableId_.has(event.stableId);}
get length(){return this.eventsByStableId_.size;}*[Symbol.iterator](){for(const event of this.eventsByStableId_.values()){yield event;}}
get canonicalUrl(){return this.canonicalUrl_;}
resolve(model,opt_required){for(const[stableId,value]of this.eventsByStableId_){if(!(value instanceof tr.v.d.EventRef))continue;const event=model.getEventByStableId(stableId);if(event instanceof tr.model.Event){this.eventsByStableId_.set(stableId,event);}else if(opt_required){throw new Error('Unable to find Event '+stableId);}}}
asDictInto_(d){d.events=[];for(const event of this){d.events.push({stableId:event.stableId,title:event.title,start:event.start,duration:event.duration});}}
static fromDict(d){return new RelatedEventSet(d.events.map(event=>new tr.v.d.EventRef(event)));}}
tr.v.d.Diagnostic.register(RelatedEventSet,{elementName:'tr-v-ui-related-event-set-span'});return{RelatedEventSet,};});'use strict';tr.exportTo('tr.v.d',function(){function HistogramRef(guid){this.guid=guid;}
return{HistogramRef};});'use strict';tr.exportTo('tr.v.d',function(){class RelatedHistogramMap extends tr.v.d.Diagnostic{constructor(){super();this.histogramsByName_=new Map();}
canAddDiagnostic(otherDiagnostic){return otherDiagnostic instanceof RelatedHistogramMap;}
addDiagnostic(otherDiagnostic){}
mergeRelationships(otherDiagnostic,parentHist,otherParentHist){const parentGroupingPath=tr.v.d.GroupingPath.getFromHistogram(parentHist);for(const[name,otherRelatedHist]of otherDiagnostic){const mergedTo=otherRelatedHist.diagnostics.get(tr.v.d.MERGED_TO_DIAGNOSTIC_KEY);if(mergedTo===undefined)continue;for(const relatedHist of mergedTo){const relatedGroupingPath=tr.v.d.GroupingPath.getFromHistogram(relatedHist);if(relatedGroupingPath===undefined)continue;if(!parentGroupingPath.equals(relatedGroupingPath))continue;this.set(name,relatedHist);}}}
get(name){return this.histogramsByName_.get(name);}
set(name,hist){if(!(hist instanceof tr.v.Histogram)&&!(hist instanceof tr.v.d.HistogramRef)){throw new Error('Must be instanceof Histogram or HistogramRef: '+
hist);}
this.histogramsByName_.set(name,hist);}
add(hist){this.set(hist.name,hist);}
get length(){return this.histogramsByName_.size;}*[Symbol.iterator](){for(const pair of this.histogramsByName_){yield pair;}}
resolve(histograms,opt_required){for(const[name,value]of this){if(!(value instanceof tr.v.d.HistogramRef))continue;const guid=value.guid;const hist=histograms.lookupHistogram(guid);if(hist instanceof tr.v.Histogram){this.histogramsByName_.set(name,hist);}else if(opt_required){throw new Error('Unable to find Histogram '+guid);}}}
asDictInto_(d){d.values={};for(const[name,hist]of this){d.values[name]=hist.guid;}}
static fromDict(d){const map=new RelatedHistogramMap();for(const[name,guid]of Object.entries(d.values)){map.set(name,new tr.v.d.HistogramRef(guid));}
return map;}}
tr.v.d.Diagnostic.register(RelatedHistogramMap,{elementName:'tr-v-ui-related-histogram-map-span'});return{RelatedHistogramMap,};});'use strict';tr.exportTo('tr.v.d',function(){const COLOR_SCHEME_CHROME_USER_FRIENDLY_CATEGORY_DRIVER='ChromeUserFriendlyCategory';class RelatedHistogramBreakdown extends tr.v.d.RelatedHistogramMap{constructor(){super();this.colorScheme=undefined;}
clone(){const clone=new RelatedHistogramBreakdown();clone.colorScheme=this.colorScheme;return clone;}
canAddDiagnostic(otherDiagnostic){return otherDiagnostic instanceof RelatedHistogramBreakdown&&otherDiagnostic.colorScheme===this.colorScheme;}
set(name,hist){if(!(hist instanceof tr.v.d.HistogramRef)){if(!(hist instanceof tr.v.Histogram)){throw new Error('RelatedHistogramBreakdown can only contain Histograms');}
if((this.length>0)&&(hist.unit!==tr.b.getFirstElement(this)[1].unit)){throw new Error('Units mismatch',tr.b.getFirstElement(this)[1].unit,hist.unit);}}
tr.v.d.RelatedHistogramMap.prototype.set.call(this,name,hist);}
asDictInto_(d){tr.v.d.RelatedHistogramMap.prototype.asDictInto_.call(this,d);if(this.colorScheme)d.colorScheme=this.colorScheme;}
static fromDict(d){const diagnostic=new RelatedHistogramBreakdown();for(const[name,guid]of Object.entries(d.values)){diagnostic.set(name,new tr.v.d.HistogramRef(guid));}
if(d.colorScheme)diagnostic.colorScheme=d.colorScheme;return diagnostic;}
static buildFromEvents(histograms,namePrefix,events,categoryForEvent,unit,opt_sampleForEvent,opt_binBoundaries,opt_this){const sampleForEvent=opt_sampleForEvent||((event)=>event.cpuSelfTime);const diagnostic=new RelatedHistogramBreakdown();for(const event of events){const sample=sampleForEvent.call(opt_this,event);if(sample===undefined)continue;const eventCategory=categoryForEvent.call(opt_this,event);let hist=diagnostic.get(eventCategory);if(hist===undefined){hist=new tr.v.Histogram(namePrefix+eventCategory,unit,opt_binBoundaries);histograms.addHistogram(hist);diagnostic.set(eventCategory,hist);}
hist.addSample(sample,{relatedEvents:new tr.v.d.RelatedEventSet([event])});}
return diagnostic;}}
tr.v.d.Diagnostic.register(RelatedHistogramBreakdown,{elementName:'tr-v-ui-breakdown-span'});return{COLOR_SCHEME_CHROME_USER_FRIENDLY_CATEGORY_DRIVER,RelatedHistogramBreakdown,};});'use strict';tr.exportTo('tr.v.d',function(){class RelatedHistogramSet extends tr.v.d.Diagnostic{constructor(opt_histograms){super();this.histogramsByGuid_=new Map();if(opt_histograms){for(const hist of opt_histograms){this.add(hist);}}}
canAddDiagnostic(otherDiagnostic){return otherDiagnostic instanceof RelatedHistogramSet;}
addDiagnostic(otherDiagnostic){}
mergeRelationships(otherDiagnostic,parentHist,otherParentHist){const parentGroupingPath=tr.v.d.GroupingPath.getFromHistogram(parentHist);for(const otherRelatedHist of otherDiagnostic){const mergedTo=otherRelatedHist.diagnostics.get(tr.v.d.MERGED_TO_DIAGNOSTIC_KEY);if(mergedTo===undefined)continue;for(const relatedHist of mergedTo){if(this.has(relatedHist))continue;const relatedGroupingPath=tr.v.d.GroupingPath.getFromHistogram(relatedHist);if(relatedGroupingPath===undefined)continue;if(!parentGroupingPath.equals(relatedGroupingPath))continue;this.add(relatedHist);}}}
add(hist){if(!(hist instanceof tr.v.Histogram)&&!(hist instanceof tr.v.d.HistogramRef)){throw new Error('Must be instanceof Histogram or HistogramRef: '+
hist);}
if(this.histogramsByGuid_.has(hist.guid)){throw new Error('Tried to add same hist twice');}
this.histogramsByGuid_.set(hist.guid,hist);}
has(hist){return this.histogramsByGuid_.has(hist.guid);}
get length(){return this.histogramsByGuid_.size;}*[Symbol.iterator](){for(const[guid,hist]of this.histogramsByGuid_){yield hist;}}
resolve(histograms,opt_required){for(const[guid,value]of this.histogramsByGuid_){if(!(value instanceof tr.v.d.HistogramRef))continue;const hist=histograms.lookupHistogram(guid);if(hist instanceof tr.v.Histogram){this.histogramsByGuid_.set(guid,hist);}else if(opt_required){throw new Error('Unable to find Histogram '+guid);}}}
asDictInto_(d){d.guids=[];for(const hist of this){d.guids.push(hist.guid);}}
static fromDict(d){return new RelatedHistogramSet(d.guids.map(guid=>new tr.v.d.HistogramRef(guid)));}}
tr.v.d.Diagnostic.register(RelatedHistogramSet,{elementName:'tr-v-ui-related-histogram-set-span'});return{RelatedHistogramSet,};});'use strict';tr.exportTo('tr.v.d',function(){class RevisionInfo extends tr.v.d.Diagnostic{constructor(info){super();this.chromiumCommitPosition_=info.chromiumCommitPosition||undefined;this.v8CommitPosition_=info.v8CommitPosition||undefined;this.chromium_=info.chromium||[];this.v8_=info.v8||[];this.catapult_=info.catapult||[];this.angle_=info.angle||[];this.skia_=info.skia||[];this.webrtc_=info.webrtc||[];}
addToHistogram(hist){hist.diagnostics.set(RevisionInfo.NAME,this);}
clone(){const clone=new tr.v.d.MergedRevisionInfo();clone.addDiagnostic(this);return clone;}
asDictInto_(d){d.chromiumCommitPosition=this.chromiumCommitPosition;d.v8CommitPosition=this.v8CommitPosition;d.chromium=this.chromium;d.v8=this.v8;d.catapult=this.catapult;d.angle=this.angle;d.skia=this.skia;d.webrtc=this.webrtc;}
static fromDict(d){return new RevisionInfo(d);}
get chromiumCommitPosition(){return this.chromiumCommitPosition_;}
get v8CommitPosition(){return this.v8CommitPosition_;}
get chromium(){return this.chromium_;}
get v8(){return this.v8_;}
get catapult(){return this.catapult_;}
get angle(){return this.angle_;}
get skia(){return this.skia_;}
get webrtc(){return this.webrtc_;}}
RevisionInfo.NAME='revisions';tr.v.d.Diagnostic.register(RevisionInfo,{elementName:'tr-v-ui-revision-info-span'});return{RevisionInfo,};});'use strict';tr.exportTo('tr.v.d',function(){class Scalar extends tr.v.d.Diagnostic{constructor(value){super();if(!(value instanceof tr.b.Scalar)){throw new Error('expected Scalar');}
this.value=value;}
clone(){return new Scalar(this.value);}
asDictInto_(d){d.value=this.value.asDict();}
static fromDict(d){return new Scalar(tr.b.Scalar.fromDict(d.value));}}
tr.v.d.Diagnostic.register(Scalar,{elementName:'tr-v-ui-scalar-diagnostic-span'});return{Scalar,};});'use strict';tr.exportTo('tr.v.d',function(){class TagMap extends tr.v.d.Diagnostic{constructor(opt_info){super();this.tagsToStoryDisplayNames_=new Map();if(opt_info){for(const[tag,storyDisplayNames]of Object.entries(opt_info.tagsToStoryDisplayNames||{})){this.tagsToStoryDisplayNames.set(tag,new Set(storyDisplayNames));}}}
clone(){const clone=new TagMap();clone.addDiagnostic(this);return clone;}
addToHistogram(hist){hist.diagnostics.set(tr.v.d.TagMap.NAME,this);}
equals(other){if(!(other instanceof TagMap))return false;const keys1=new Set(this.tagsToStoryDisplayNames.keys());const keys2=new Set(other.tagsToStoryDisplayNames.keys());if(!tr.b.setsEqual(keys1,keys2)){return false;}
for(const key of keys1){if(!tr.b.setsEqual(this.tagsToStoryDisplayNames.get(key),other.tagsToStoryDisplayNames.get(key))){return false;}}
return true;}
canAddDiagnostic(otherDiagnostic){return otherDiagnostic instanceof TagMap;}
addDiagnostic(otherDiagnostic){for(const[name,storyDisplayNames]of
otherDiagnostic.tagsToStoryDisplayNames){if(!this.tagsToStoryDisplayNames.has(name)){this.tagsToStoryDisplayNames.set(name,new Set());}
for(const t of storyDisplayNames){this.tagsToStoryDisplayNames.get(name).add(t);}}
return this;}
asDictInto_(d){d.tagsToStoryDisplayNames={};for(const[name,value]of this.tagsToStoryDisplayNames){d.tagsToStoryDisplayNames[name]=Array.from(value);}}
get tagsToStoryDisplayNames(){return this.tagsToStoryDisplayNames_;}
static fromDict(d){const info=new TagMap();for(const[name,values]of
Object.entries(d.tagsToStoryDisplayNames||{})){info.tagsToStoryDisplayNames.set(name,new Set(values));}
return info;}}
TagMap.NAME='tagmap';tr.v.d.Diagnostic.register(TagMap);return{TagMap,};});'use strict';tr.exportTo('tr.v.d',function(){class TelemetryInfo extends tr.v.d.Diagnostic{constructor(opt_info){super();this.benchmarkName_='';this.benchmarkStart_=undefined;this.label_='';this.legacyTIRLabel_='';this.storyDisplayName_='';this.storyGroupingKeys_=new Map();this.storysetRepeatCounter_=undefined;this.canonicalUrl_='';if(opt_info){this.addInfo(opt_info);}}
clone(){const clone=new tr.v.d.MergedTelemetryInfo();clone.addDiagnostic(this);return clone;}
addInfo(info){if(info.benchmarkName){this.benchmarkName_=info.benchmarkName;}
if(info.benchmarkStartMs!==undefined){this.benchmarkStart_=new Date(info.benchmarkStartMs);}
if(info.label){this.label_=info.label;}
if(info.storyDisplayName){this.storyDisplayName_=info.storyDisplayName;}
for(const[name,value]of Object.entries(info.storyGroupingKeys||{})){this.storyGroupingKeys_.set(name,value);}
if(info.storysetRepeatCounter!==undefined){this.storysetRepeatCounter_=info.storysetRepeatCounter;}
if(info.legacyTIRLabel){this.legacyTIRLabel_=info.legacyTIRLabel;}
if(info.canonicalUrl){this.canonicalUrl_=info.canonicalUrl;}}
addToHistogram(hist){hist.diagnostics.set(TelemetryInfo.NAME,this);}
static getFromHistogram(hist){return hist.diagnostics.get(TelemetryInfo.NAME)||hist.diagnostics.get('iteration');}
asDictInto_(d){d.benchmarkName=this.benchmarkName;if(this.benchmarkStart){d.benchmarkStartMs=this.benchmarkStart.getTime();}
d.label=this.label;d.storyDisplayName=this.storyDisplayName;if(this.storyGroupingKeys.size>0){d.storyGroupingKeys={};for(const[name,value]of this.storyGroupingKeys){d.storyGroupingKeys[name]=value;}}
d.storysetRepeatCounter=this.storysetRepeatCounter;d.legacyTIRLabel=this.legacyTIRLabel;d.canonicalUrl=this.canonicalUrl;}
static fromDict(d){const info=new TelemetryInfo();info.addInfo(d);return info;}
get displayLabel(){if(this.label)return this.label;return this.benchmarkName+'\n'+this.benchmarkStartString;}
get benchmarkName(){return this.benchmarkName_;}
get label(){return this.label_;}
get legacyTIRLabel(){return this.legacyTIRLabel_;}
set legacyTIRLabel(tir){this.legacyTIRLabel_=tir;}
get storyGroupingKeys(){return this.storyGroupingKeys_;}
get storyDisplayName(){return this.storyDisplayName_;}
get storysetRepeatCounter(){return this.storysetRepeatCounter_;}
get storysetRepeatCounterLabel(){return'storyset repeat '+this.storysetRepeatCounter;}
get canonicalUrl(){return this.canonicalUrl_;}
get benchmarkStart(){return this.benchmarkStart_;}
get benchmarkStartString(){if(this.benchmarkStart_===undefined)return'';return tr.b.formatDate(this.benchmarkStart);}
static getField(hist,fieldName,defaultValue){const telemetry=tr.v.d.TelemetryInfo.getFromHistogram(hist);if(!(telemetry instanceof tr.v.d.TelemetryInfo)||!telemetry[fieldName]){return defaultValue;}
return telemetry[fieldName];}
static getStoryGroupingKeyLabel(hist,storyGroupingKey){const telemetry=tr.v.d.TelemetryInfo.getFromHistogram(hist);if(!(telemetry instanceof tr.v.d.TelemetryInfo)){return storyGroupingKey+': undefined';}
return storyGroupingKey+': '+
telemetry.storyGroupingKeys.get(storyGroupingKey);}
static makeStoryGroupingKeyLabelGetter(storyGroupingKey){return v=>TelemetryInfo.getStoryGroupingKeyLabel(v,storyGroupingKey);}}
TelemetryInfo.NAME='telemetry';tr.v.d.Diagnostic.register(TelemetryInfo,{elementName:'tr-v-ui-telemetry-info-span'});return{TelemetryInfo,};});'use strict';tr.exportTo('tr.v.d',function(){class UnmergeableDiagnosticSet extends tr.v.d.Diagnostic{constructor(diagnostics){super();this._diagnostics=diagnostics;}
clone(){const clone=new tr.v.d.UnmergeableDiagnosticSet();clone.addDiagnostic(this);return clone;}
canAddDiagnostic(otherDiagnostic){return true;}
addDiagnostic(otherDiagnostic){if(otherDiagnostic instanceof UnmergeableDiagnosticSet){for(const subOtherDiagnostic of otherDiagnostic){const clone=subOtherDiagnostic.clone();this.addDiagnostic(clone);}
return;}
for(let i=0;i<this._diagnostics.length;++i){if(this._diagnostics[i].canAddDiagnostic(otherDiagnostic)){this._diagnostics[i].addDiagnostic(otherDiagnostic);return;}}
const clone=otherDiagnostic.clone();this._diagnostics.push(clone);}
mergeRelationships(otherDiagnostic,parentHist,otherParentHist){if(otherDiagnostic instanceof UnmergeableDiagnosticSet){for(const subDiagnostic of otherDiagnostic){this.mergeRelationships(subDiagnostic,parentHist,otherParentHist);}
return;}
for(const subDiagnostic of this){if(!(subDiagnostic instanceof tr.v.d.RelatedHistogramSet)&&!(subDiagnostic instanceof tr.v.d.RelatedHistogramMap)&&!(subDiagnostic instanceof tr.v.d.RelatedHistogramBreakdown)){continue;}
subDiagnostic.mergeRelationships(otherDiagnostic,parentHist,otherParentHist);}}
get length(){return this._diagnostics.length;}*[Symbol.iterator](){for(const diagnostic of this._diagnostics)yield diagnostic;}
asDictInto_(d){d.diagnostics=this._diagnostics.map(d=>d.asDictOrReference());}
static fromDict(d){return new UnmergeableDiagnosticSet(d.diagnostics.map(d=>((typeof d==='string')?new tr.v.d.DiagnosticRef(d):tr.v.d.Diagnostic.fromDict(d))));}}
tr.v.d.Diagnostic.register(UnmergeableDiagnosticSet,{elementName:'tr-v-ui-unmergeable-diagnostic-set-span'});return{UnmergeableDiagnosticSet,};});'use strict';tr.exportTo('tr.v.d',function(){const MERGED_FROM_DIAGNOSTIC_KEY='merged from';const MERGED_TO_DIAGNOSTIC_KEY='merged to';class DiagnosticMap extends Map{set(name,diagnostic){if(typeof(name)!=='string'){throw new Error('name must be string, not '+name);}
if(!(diagnostic instanceof tr.v.d.Diagnostic)&&!(diagnostic instanceof tr.v.d.DiagnosticRef)){throw new Error('Must be instanceof Diagnostic: '+diagnostic);}
Map.prototype.set.call(this,name,diagnostic);}
addDicts(dict){for(const[name,diagnosticDict]of Object.entries(dict)){if(typeof diagnosticDict==='string'){this.set(name,new tr.v.d.DiagnosticRef(diagnosticDict));}else{this.set(name,tr.v.d.Diagnostic.fromDict(diagnosticDict));}}}
resolveSharedDiagnostics(histograms,opt_required){for(const[name,value]of this){if(!(value instanceof tr.v.d.DiagnosticRef)){continue;}
const guid=value.guid;const diagnostic=histograms.lookupDiagnostic(guid);if(diagnostic instanceof tr.v.d.Diagnostic){this.set(name,diagnostic);}else if(opt_required){throw new Error('Unable to find shared Diagnostic '+guid);}}}
asDict(){const dict={};for(const[name,diagnostic]of this){dict[name]=diagnostic.asDictOrReference();}
return dict;}
static fromDict(d){const diagnostics=new DiagnosticMap();diagnostics.addDicts(d);return diagnostics;}
static fromObject(obj){const diagnostics=new DiagnosticMap();for(const[name,diagnostic]of Object.entries(obj)){diagnostics.set(name,diagnostic);}
return diagnostics;}
addDiagnostics(other){for(const[name,otherDiagnostic]of other){if(name===MERGED_FROM_DIAGNOSTIC_KEY||name===MERGED_TO_DIAGNOSTIC_KEY||name===tr.v.d.GroupingPath){continue;}
const myDiagnostic=this.get(name);if(myDiagnostic!==undefined&&myDiagnostic.canAddDiagnostic(otherDiagnostic)){myDiagnostic.addDiagnostic(otherDiagnostic);continue;}
const clone=otherDiagnostic.clone();if(myDiagnostic===undefined){this.set(name,clone);continue;}
this.set(name,new tr.v.d.UnmergeableDiagnosticSet([myDiagnostic,clone]));}}
mergeRelationships(parentHist){for(const[name,diagnostic]of this){if(!(diagnostic instanceof tr.v.d.RelatedHistogramSet)&&!(diagnostic instanceof tr.v.d.RelatedHistogramMap)&&!(diagnostic instanceof tr.v.d.RelatedHistogramBreakdown)&&!(diagnostic instanceof tr.v.d.UnmergeableDiagnosticSet)){continue;}
for(const otherHist of this.get(MERGED_FROM_DIAGNOSTIC_KEY)){const otherDiagnostic=otherHist.diagnostics.get(name);if(!(otherDiagnostic instanceof tr.v.d.RelatedHistogramSet)&&!(otherDiagnostic instanceof tr.v.d.RelatedHistogramMap)&&!(otherDiagnostic instanceof tr.v.d.RelatedHistogramBreakdown)&&!(otherDiagnostic instanceof tr.v.d.UnmergeableDiagnosticSet)){continue;}
diagnostic.mergeRelationships(otherDiagnostic,parentHist,otherHist);}}}}
return{DiagnosticMap,MERGED_FROM_DIAGNOSTIC_KEY,MERGED_TO_DIAGNOSTIC_KEY,};});'use strict';tr.exportTo('tr.v',function(){const MAX_DIAGNOSTIC_MAPS=16;const DEFAULT_SAMPLE_VALUES_PER_BIN=10;const DEFAULT_REBINNED_COUNT=40;const DEFAULT_BOUNDARIES_FOR_UNIT=new Map();const DELTA=String.fromCharCode(916);const Z_SCORE_NAME='z-score';const P_VALUE_NAME='p-value';const U_STATISTIC_NAME='U';function percentToString(percent,opt_force3){if(percent<0||percent>1){throw new Error('percent must be in [0,1]');}
if(percent===0)return'000';if(percent===1)return'100';let str=percent.toString();if(str[1]!=='.'){throw new Error('Unexpected percent');}
str=str+'0'.repeat(Math.max(4-str.length,0));if(str.length>4){if(opt_force3){str=str.slice(0,4);}else{str=str.slice(0,4)+'_'+str.slice(4);}}
return'0'+str.slice(2);}
function percentFromString(s){return parseFloat(s[0]+'.'+s.substr(1).replace(/_/g,''));}
class HistogramBin{constructor(range){this.range=range;this.count=0;this.diagnosticMaps=[];}
addSample(value){this.count+=1;}
addDiagnosticMap(diagnostics){tr.b.math.Statistics.uniformlySampleStream(this.diagnosticMaps,this.count,diagnostics,MAX_DIAGNOSTIC_MAPS);}
addBin(other){if(!this.range.equals(other.range)){throw new Error('Merging incompatible Histogram bins.');}
tr.b.math.Statistics.mergeSampledStreams(this.diagnosticMaps,this.count,other.diagnosticMaps,other.count,MAX_DIAGNOSTIC_MAPS);this.count+=other.count;}
fromDict(dict){this.count=dict[0];if(dict.length>1){for(const map of dict[1]){this.diagnosticMaps.push(tr.v.d.DiagnosticMap.fromDict(map));}}}
asDict(){if(!this.diagnosticMaps.length){return[this.count];}
return[this.count,this.diagnosticMaps.map(d=>d.asDict())];}}
const DEFAULT_SUMMARY_OPTIONS=new Map([['avg',true],['count',true],['geometricMean',false],['max',true],['min',true],['nans',false],['std',true],['sum',true],]);class Histogram{constructor(name,unit,opt_binBoundaries){let binBoundaries=opt_binBoundaries;if(!binBoundaries){const baseUnit=unit.baseUnit?unit.baseUnit:unit;binBoundaries=DEFAULT_BOUNDARIES_FOR_UNIT.get(baseUnit.unitName);}
this.guid_=undefined;this.binBoundariesDict_=binBoundaries.asDict();this.allBins=binBoundaries.bins.slice();this.description='';this.diagnostics=new tr.v.d.DiagnosticMap();this.maxNumSampleValues_=this.defaultMaxNumSampleValues_;this.name_=name;this.nanDiagnosticMaps=[];this.numNans=0;this.running_=undefined;this.sampleValues_=[];this.shortName=undefined;this.summaryOptions=new Map(DEFAULT_SUMMARY_OPTIONS);this.summaryOptions.set('percentile',[]);this.summaryOptions.set('iprs',[]);this.unit=unit;}
static create(name,unit,samples,opt_options){const options=opt_options||{};const hist=new Histogram(name,unit,options.binBoundaries);if(options.description)hist.description=options.description;if(options.shortName)hist.shortName=options.shortName;if(options.summaryOptions){let summaryOptions=options.summaryOptions;if(!(summaryOptions instanceof Map)){summaryOptions=Object.entries(summaryOptions);}
for(const[name,value]of summaryOptions){hist.summaryOptions.set(name,value);}}
if(options.diagnostics!==undefined){let diagnostics=options.diagnostics;if(!(diagnostics instanceof Map)){diagnostics=Object.entries(diagnostics);}
for(const[name,diagnostic]of diagnostics){hist.diagnostics.set(name,diagnostic);}}
if(!(samples instanceof Array))samples=[samples];for(const sample of samples){if(typeof sample==='object'){hist.addSample(sample.value,sample.diagnostics);}else{hist.addSample(sample);}}
return hist;}
get running(){return this.running_;}
get maxNumSampleValues(){return this.maxNumSampleValues_;}
set maxNumSampleValues(n){this.maxNumSampleValues_=n;tr.b.math.Statistics.uniformlySampleArray(this.sampleValues_,this.maxNumSampleValues_);}
get name(){return this.name_;}
get guid(){if(this.guid_===undefined){this.guid_=tr.b.GUID.allocateUUID4();}
return this.guid_;}
set guid(guid){if(this.guid_!==undefined){throw new Error('Cannot reset guid');}
this.guid_=guid;}
static fromDict(dict){const hist=new Histogram(dict.name,tr.b.Unit.fromJSON(dict.unit),HistogramBinBoundaries.fromDict(dict.binBoundaries));hist.guid=dict.guid;if(dict.shortName){hist.shortName=dict.shortName;}
if(dict.description){hist.description=dict.description;}
if(dict.diagnostics){hist.diagnostics.addDicts(dict.diagnostics);}
if(dict.allBins){if(dict.allBins.length!==undefined){for(let i=0;i<dict.allBins.length;++i){hist.allBins[i]=new HistogramBin(hist.allBins[i].range);hist.allBins[i].fromDict(dict.allBins[i]);}}else{for(const[i,binDict]of Object.entries(dict.allBins)){hist.allBins[i]=new HistogramBin(hist.allBins[i].range);hist.allBins[i].fromDict(binDict);}}}
if(dict.running){hist.running_=tr.b.math.RunningStatistics.fromDict(dict.running);}
if(dict.summaryOptions){if(dict.summaryOptions.iprs){dict.summaryOptions.iprs=dict.summaryOptions.iprs.map(r=>tr.b.math.Range.fromExplicitRange(r[0],r[1]));}
hist.customizeSummaryOptions(dict.summaryOptions);}
if(dict.maxNumSampleValues!==undefined){hist.maxNumSampleValues=dict.maxNumSampleValues;}
if(dict.sampleValues){hist.sampleValues_=dict.sampleValues;}
if(dict.numNans){hist.numNans=dict.numNans;}
if(dict.nanDiagnostics){for(const map of dict.nanDiagnostics){hist.nanDiagnosticMaps.push(tr.v.d.DiagnosticMap.fromDict(map));}}
return hist;}
get numValues(){return this.running_?this.running_.count:0;}
get average(){return this.running_?this.running_.mean:undefined;}
get standardDeviation(){return this.running_?this.running_.stddev:undefined;}
get geometricMean(){return this.running_?this.running_.geometricMean:0;}
get sum(){return this.running_?this.running_.sum:0;}
get min(){return this.running_?this.running_.min:Infinity;}
get max(){return this.running_?this.running_.max:-Infinity;}
getDifferenceSignificance(other,opt_alpha){if(this.unit!==other.unit){throw new Error('Cannot compare Histograms with different units');}
if(this.unit.improvementDirection===tr.b.ImprovementDirection.DONT_CARE){return tr.b.math.Statistics.Significance.DONT_CARE;}
if(!(other instanceof Histogram)){throw new Error('Unable to compute a p-value');}
const testResult=tr.b.math.Statistics.mwu(this.sampleValues,other.sampleValues,opt_alpha);return testResult.significance;}
getApproximatePercentile(percent){if(percent<0||percent>1){throw new Error('percent must be in [0,1]');}
if(this.numValues===0)return undefined;if(this.allBins.length===1){const sortedSampleValues=this.sampleValues.slice().sort((x,y)=>x-y);return sortedSampleValues[Math.floor((sortedSampleValues.length-1)*percent)];}
let valuesToSkip=Math.floor((this.numValues-1)*percent);for(const bin of this.allBins){valuesToSkip-=bin.count;if(valuesToSkip>=0)continue;if(bin.range.min===-Number.MAX_VALUE){return bin.range.max;}
if(bin.range.max===Number.MAX_VALUE){return bin.range.min;}
return bin.range.center;}
return this.allBins[this.allBins.length-1].range.min;}
getBinIndexForValue(value){const i=tr.b.math.findHighIndexInSortedArray(this.allBins,b=>((value<b.range.max)?-1:1));if(0<=i&&i<this.allBins.length)return i;return this.allBins.length-1;}
getBinForValue(value){return this.allBins[this.getBinIndexForValue(value)];}
addSample(value,opt_diagnostics){if(opt_diagnostics&&!(opt_diagnostics instanceof tr.v.d.DiagnosticMap)){opt_diagnostics=tr.v.d.DiagnosticMap.fromObject(opt_diagnostics);}
if(typeof(value)!=='number'||isNaN(value)){this.numNans++;if(opt_diagnostics){tr.b.math.Statistics.uniformlySampleStream(this.nanDiagnosticMaps,this.numNans,opt_diagnostics,MAX_DIAGNOSTIC_MAPS);}}else{if(this.running_===undefined){this.running_=new tr.b.math.RunningStatistics();}
this.running_.add(value);const binIndex=this.getBinIndexForValue(value);let bin=this.allBins[binIndex];if(bin.count===0){bin=new HistogramBin(bin.range);this.allBins[binIndex]=bin;}
bin.addSample(value);if(opt_diagnostics){bin.addDiagnosticMap(opt_diagnostics);}}
tr.b.math.Statistics.uniformlySampleStream(this.sampleValues_,this.numValues+this.numNans,value,this.maxNumSampleValues);}
sampleValuesInto(samples){for(const sampleValue of this.sampleValues){samples.push(sampleValue);}}
canAddHistogram(other){if(this.unit!==other.unit){return false;}
if(this.binBoundariesDict_===other.binBoundariesDict_){return true;}
if(this.binBoundariesDict_.length!==other.binBoundariesDict_.length){return false;}
for(let i=0;i<this.binBoundariesDict_.length;++i){const slice=this.binBoundariesDict_[i];const otherSlice=other.binBoundariesDict_[i];if(slice instanceof Array){if(!(otherSlice instanceof Array)){return false;}
if(slice[0]!==otherSlice[0]||!tr.b.math.approximately(slice[1],otherSlice[1])||slice[2]!==otherSlice[2]){return false;}}else{if(otherSlice instanceof Array){return false;}
if(!tr.b.math.approximately(slice,otherSlice)){return false;}}}
return true;}
addHistogram(other){if(!this.canAddHistogram(other)){throw new Error('Merging incompatible Histograms');}
tr.b.math.Statistics.mergeSampledStreams(this.nanDiagnosticMaps,this.numNans,other.nanDiagnosticMaps,other.numNans,MAX_DIAGNOSTIC_MAPS);tr.b.math.Statistics.mergeSampledStreams(this.sampleValues,this.numValues+this.numNans,other.sampleValues,other.numValues+other.numNans,(this.maxNumSampleValues+other.maxNumSampleValues)/2);this.numNans+=other.numNans;if(other.running_!==undefined){if(this.running_===undefined){this.running_=new tr.b.math.RunningStatistics();}
this.running_=this.running_.merge(other.running_);}
for(let i=0;i<this.allBins.length;++i){let bin=this.allBins[i];if(bin.count===0){bin=new HistogramBin(bin.range);this.allBins[i]=bin;}
bin.addBin(other.allBins[i]);}
let mergedFrom=this.diagnostics.get(tr.v.d.MERGED_FROM_DIAGNOSTIC_KEY);if(!mergedFrom){mergedFrom=new tr.v.d.RelatedHistogramSet();this.diagnostics.set(tr.v.d.MERGED_FROM_DIAGNOSTIC_KEY,mergedFrom);}
mergedFrom.add(other);let mergedTo=other.diagnostics.get(tr.v.d.MERGED_TO_DIAGNOSTIC_KEY);if(!mergedTo){mergedTo=new tr.v.d.RelatedHistogramSet();other.diagnostics.set(tr.v.d.MERGED_TO_DIAGNOSTIC_KEY,mergedTo);}
mergedTo.add(this);this.diagnostics.addDiagnostics(other.diagnostics);for(const[stat,option]of other.summaryOptions){if(stat==='percentile'){const percentiles=this.summaryOptions.get(stat);for(const percent of option){if(!percentiles.includes(percent))percentiles.push(percent);}}else if(stat==='iprs'){const thisIprs=this.summaryOptions.get(stat);for(const ipr of option){let found=false;for(const thisIpr of thisIprs){found=ipr.equals(thisIpr);if(found)break;}
if(!found)thisIprs.push(ipr);}}else if(option&&!this.summaryOptions.get(stat)){this.summaryOptions.set(stat,true);}}}
customizeSummaryOptions(summaryOptions){for(const[key,value]of Object.entries(summaryOptions)){this.summaryOptions.set(key,value);}}
getStatisticScalar(statName,opt_referenceHistogram,opt_mwu){if(statName==='avg'){if(this.running_===undefined)return undefined;return new tr.b.Scalar(this.unit,this.average);}
if(statName==='std'){if(this.standardDeviation===undefined)return undefined;return new tr.b.Scalar(this.unit,this.standardDeviation);}
if(statName==='geometricMean'){return new tr.b.Scalar(this.unit,this.geometricMean);}
if(statName==='min'||statName==='max'||statName==='sum'){if(this.running_===undefined){this.running_=new tr.b.math.RunningStatistics();}
return new tr.b.Scalar(this.unit,this.running_[statName]);}
if(statName==='nans'){return new tr.b.Scalar(tr.b.Unit.byName.count_smallerIsBetter,this.numNans);}
if(statName==='count'){return new tr.b.Scalar(tr.b.Unit.byName.count_smallerIsBetter,this.numValues);}
if(statName.substr(0,4)==='pct_'){const percent=percentFromString(statName.substr(4));if(this.numValues===0)return undefined;const percentile=this.getApproximatePercentile(percent);return new tr.b.Scalar(this.unit,percentile);}
if(statName.substr(0,4)==='ipr_'){let lower=percentFromString(statName.substr(4,3));let upper=percentFromString(statName.substr(8));if(lower>=upper){throw new Error('Invalid inter-percentile range: '+statName);}
lower=this.getApproximatePercentile(lower);upper=this.getApproximatePercentile(upper);return new tr.b.Scalar(this.unit,upper-lower);}
if(!this.canCompare(opt_referenceHistogram)){throw new Error('Cannot compute '+statName+' when histograms are not comparable');}
const suffix=tr.b.Unit.nameSuffixForImprovementDirection(this.unit.improvementDirection);const deltaIndex=statName.indexOf(DELTA);if(deltaIndex>=0){const baseStatName=statName.substr(deltaIndex+1);const thisStat=this.getStatisticScalar(baseStatName);const otherStat=opt_referenceHistogram.getStatisticScalar(baseStatName);const deltaValue=thisStat.value-otherStat.value;if(statName[0]==='%'){return new tr.b.Scalar(tr.b.Unit.byName['normalizedPercentageDelta'+suffix],deltaValue/otherStat.value);}
return new tr.b.Scalar(thisStat.unit.correspondingDeltaUnit,deltaValue);}
if(statName===Z_SCORE_NAME){return new tr.b.Scalar(tr.b.Unit.byName['sigmaDelta'+suffix],(this.average-opt_referenceHistogram.average)/opt_referenceHistogram.standardDeviation);}
const mwu=opt_mwu||tr.b.math.Statistics.mwu(this.sampleValues,opt_referenceHistogram.sampleValues);if(statName===P_VALUE_NAME){return new tr.b.Scalar(tr.b.Unit.byName.unitlessNumber,mwu.p);}
if(statName===U_STATISTIC_NAME){return new tr.b.Scalar(tr.b.Unit.byName.unitlessNumber,mwu.U);}
throw new Error('Unrecognized statistic name: '+statName);}
get statisticsNames(){const statisticsNames=new Set();for(const[statName,option]of this.summaryOptions){if(statName==='percentile'){for(const pctile of option){statisticsNames.add('pct_'+tr.v.percentToString(pctile));}}else if(statName==='iprs'){for(const range of option){statisticsNames.add('ipr_'+tr.v.percentToString(range.min,true)+'_'+tr.v.percentToString(range.max,true));}}else if(option){statisticsNames.add(statName);}}
return statisticsNames;}
canCompare(other){return other instanceof Histogram&&this.unit===other.unit&&this.numValues>0&&other.numValues>0;}
getAvailableStatisticName(statName,opt_referenceHist){if(this.canCompare(opt_referenceHist))return statName;if(statName===Z_SCORE_NAME||statName===P_VALUE_NAME||statName===U_STATISTIC_NAME){return'avg';}
const deltaIndex=statName.indexOf(DELTA);if(deltaIndex<0)return statName;return statName.substr(deltaIndex+1);}
static getDeltaStatisticsNames(statNames){const deltaNames=[];for(const statName of statNames){deltaNames.push(`${DELTA}${statName}`);deltaNames.push(`%${DELTA}${statName}`);}
return deltaNames.concat([Z_SCORE_NAME,P_VALUE_NAME,U_STATISTIC_NAME]);}
get statisticsScalars(){const results=new Map();for(const statName of this.statisticsNames){const scalar=this.getStatisticScalar(statName);if(scalar===undefined)continue;results.set(statName,scalar);}
return results;}
get sampleValues(){return this.sampleValues_;}
clone(){const binBoundaries=HistogramBinBoundaries.fromDict(this.binBoundariesDict_);const hist=new Histogram(this.name,this.unit,binBoundaries);for(const[stat,option]of this.summaryOptions){if(stat==='percentile'||stat==='iprs'){hist.summaryOptions.set(stat,Array.from(option));}else{hist.summaryOptions.set(stat,option);}}
hist.addHistogram(this);return hist;}
rebin(newBoundaries){const rebinned=new tr.v.Histogram(this.name,this.unit,newBoundaries);rebinned.description=this.description;for(const sample of this.sampleValues){rebinned.addSample(sample);}
rebinned.running_=this.running_;for(const[name,diagnostic]of this.diagnostics){rebinned.diagnostics.set(name,diagnostic);}
for(const[stat,option]of this.summaryOptions){if(stat==='percentile'){rebinned.summaryOptions.set(stat,Array.from(option));}else{rebinned.summaryOptions.set(stat,option);}}
return rebinned;}
asDict(){const dict={};dict.name=this.name;dict.unit=this.unit.asJSON();dict.guid=this.guid;if(this.binBoundariesDict_!==undefined){dict.binBoundaries=this.binBoundariesDict_;}
if(this.shortName){dict.shortName=this.shortName;}
if(this.description){dict.description=this.description;}
if(this.diagnostics.size){dict.diagnostics=this.diagnostics.asDict();}
if(this.maxNumSampleValues!==this.defaultMaxNumSampleValues_){dict.maxNumSampleValues=this.maxNumSampleValues;}
if(this.numNans){dict.numNans=this.numNans;}
if(this.nanDiagnosticMaps.length){dict.nanDiagnostics=this.nanDiagnosticMaps.map(dm=>dm.asDict());}
if(this.numValues){dict.sampleValues=this.sampleValues.slice();dict.running=this.running_.asDict();dict.allBins=this.allBinsAsDict_();}
const summaryOptions={};let anyOverriddenSummaryOptions=false;for(const[name,value]of this.summaryOptions){let option;if(name==='percentile'){if(value.length===0)continue;option=Array.from(value);}else if(name==='iprs'){if(value.length===0)continue;option=value.map(r=>[r.min,r.max]);}else if(value===DEFAULT_SUMMARY_OPTIONS.get(name)){continue;}else{option=value;}
summaryOptions[name]=option;anyOverriddenSummaryOptions=true;}
if(anyOverriddenSummaryOptions){dict.summaryOptions=summaryOptions;}
return dict;}
allBinsAsDict_(){const numBins=this.allBins.length;let emptyBins=0;for(let i=0;i<numBins;++i){if(this.allBins[i].count===0){++emptyBins;}}
if(emptyBins===numBins){return undefined;}
if(emptyBins>(numBins/2)){const allBinsDict={};for(let i=0;i<numBins;++i){const bin=this.allBins[i];if(bin.count>0){allBinsDict[i]=bin.asDict();}}
return allBinsDict;}
const allBinsArray=[];for(let i=0;i<numBins;++i){allBinsArray.push(this.allBins[i].asDict());}
return allBinsArray;}
get defaultMaxNumSampleValues_(){return DEFAULT_SAMPLE_VALUES_PER_BIN*Math.max(this.allBins.length,DEFAULT_REBINNED_COUNT);}}
Histogram.AVERAGE_ONLY_SUMMARY_OPTIONS={count:false,max:false,min:false,std:false,sum:false,};const HISTOGRAM_BIN_BOUNDARIES_CACHE=new Map();class HistogramBinBoundaries{static createLinear(min,max,numBins){return new HistogramBinBoundaries(min).addLinearBins(max,numBins);}
static createExponential(min,max,numBins){return new HistogramBinBoundaries(min).addExponentialBins(max,numBins);}
static createWithBoundaries(binBoundaries){const builder=new HistogramBinBoundaries(binBoundaries[0]);for(const boundary of binBoundaries.slice(1)){builder.addBinBoundary(boundary);}
return builder;}
constructor(minBinBoundary){this.builder_=[minBinBoundary];this.range_=new tr.b.math.Range();this.range_.addValue(minBinBoundary);this.binRanges_=undefined;this.bins_=undefined;}
get range(){return this.range_;}
asDict(){if(this.builder_.length===1&&this.builder_[0]===Number.MAX_VALUE){return undefined;}
return this.builder_;}
pushBuilderSlice_(slice){this.builder_.push(slice);this.builder_=this.builder_.slice();}
static fromDict(dict){if(dict===undefined){return HistogramBinBoundaries.SINGULAR;}
const cacheKey=JSON.stringify(dict);if(HISTOGRAM_BIN_BOUNDARIES_CACHE.has(cacheKey)){return HISTOGRAM_BIN_BOUNDARIES_CACHE.get(cacheKey);}
const binBoundaries=new HistogramBinBoundaries(dict[0]);for(const slice of dict.slice(1)){if(!(slice instanceof Array)){binBoundaries.addBinBoundary(slice);continue;}
switch(slice[0]){case HistogramBinBoundaries.SLICE_TYPE.LINEAR:binBoundaries.addLinearBins(slice[1],slice[2]);break;case HistogramBinBoundaries.SLICE_TYPE.EXPONENTIAL:binBoundaries.addExponentialBins(slice[1],slice[2]);break;default:throw new Error('Unrecognized HistogramBinBoundaries slice type');}}
HISTOGRAM_BIN_BOUNDARIES_CACHE.set(cacheKey,binBoundaries);return binBoundaries;}
get bins(){if(this.bins_===undefined){this.buildBins_();}
return this.bins_;}
buildBins_(){this.bins_=this.binRanges.map(r=>new HistogramBin(r));}
get binRanges(){if(this.binRanges_===undefined){this.buildBinRanges_();}
return this.binRanges_;}
buildBinRanges_(){if(typeof this.builder_[0]!=='number'){throw new Error('Invalid start of builder_');}
this.binRanges_=[];let prevBoundary=this.builder_[0];if(prevBoundary>-Number.MAX_VALUE){this.binRanges_.push(tr.b.math.Range.fromExplicitRange(-Number.MAX_VALUE,prevBoundary));}
for(const slice of this.builder_.slice(1)){if(!(slice instanceof Array)){this.binRanges_.push(tr.b.math.Range.fromExplicitRange(prevBoundary,slice));prevBoundary=slice;continue;}
const nextMaxBinBoundary=slice[1];const binCount=slice[2];const sliceMinBinBoundary=prevBoundary;switch(slice[0]){case HistogramBinBoundaries.SLICE_TYPE.LINEAR:{const binWidth=(nextMaxBinBoundary-prevBoundary)/binCount;for(let i=1;i<binCount;i++){const boundary=sliceMinBinBoundary+i*binWidth;this.binRanges_.push(tr.b.math.Range.fromExplicitRange(prevBoundary,boundary));prevBoundary=boundary;}
break;}
case HistogramBinBoundaries.SLICE_TYPE.EXPONENTIAL:{const binExponentWidth=Math.log(nextMaxBinBoundary/prevBoundary)/binCount;for(let i=1;i<binCount;i++){const boundary=sliceMinBinBoundary*Math.exp(i*binExponentWidth);this.binRanges_.push(tr.b.math.Range.fromExplicitRange(prevBoundary,boundary));prevBoundary=boundary;}
break;}
default:throw new Error('Unrecognized HistogramBinBoundaries slice type');}
this.binRanges_.push(tr.b.math.Range.fromExplicitRange(prevBoundary,nextMaxBinBoundary));prevBoundary=nextMaxBinBoundary;}
if(prevBoundary<Number.MAX_VALUE){this.binRanges_.push(tr.b.math.Range.fromExplicitRange(prevBoundary,Number.MAX_VALUE));}}
addBinBoundary(nextMaxBinBoundary){if(nextMaxBinBoundary<=this.range.max){throw new Error('The added max bin boundary must be larger than '+'the current max boundary');}
this.binRanges_=undefined;this.bins_=undefined;this.pushBuilderSlice_(nextMaxBinBoundary);this.range.addValue(nextMaxBinBoundary);return this;}
addLinearBins(nextMaxBinBoundary,binCount){if(binCount<=0){throw new Error('Bin count must be positive');}
if(nextMaxBinBoundary<=this.range.max){throw new Error('The new max bin boundary must be greater than '+'the previous max bin boundary');}
this.binRanges_=undefined;this.bins_=undefined;this.pushBuilderSlice_([HistogramBinBoundaries.SLICE_TYPE.LINEAR,nextMaxBinBoundary,binCount]);this.range.addValue(nextMaxBinBoundary);return this;}
addExponentialBins(nextMaxBinBoundary,binCount){if(binCount<=0){throw new Error('Bin count must be positive');}
if(this.range.max<=0){throw new Error('Current max bin boundary must be positive');}
if(this.range.max>=nextMaxBinBoundary){throw new Error('The last added max boundary must be greater than '+'the current max boundary boundary');}
this.binRanges_=undefined;this.bins_=undefined;this.pushBuilderSlice_([HistogramBinBoundaries.SLICE_TYPE.EXPONENTIAL,nextMaxBinBoundary,binCount]);this.range.addValue(nextMaxBinBoundary);return this;}}
HistogramBinBoundaries.SLICE_TYPE={LINEAR:0,EXPONENTIAL:1,};HistogramBinBoundaries.SINGULAR=new HistogramBinBoundaries(Number.MAX_VALUE);DEFAULT_BOUNDARIES_FOR_UNIT.set(tr.b.Unit.byName.timeDurationInMs.unitName,HistogramBinBoundaries.createExponential(1e-3,1e6,1e2));DEFAULT_BOUNDARIES_FOR_UNIT.set(tr.b.Unit.byName.timeStampInMs.unitName,HistogramBinBoundaries.createLinear(0,1e10,1e3));DEFAULT_BOUNDARIES_FOR_UNIT.set(tr.b.Unit.byName.normalizedPercentage.unitName,HistogramBinBoundaries.createLinear(0,1.0,20));DEFAULT_BOUNDARIES_FOR_UNIT.set(tr.b.Unit.byName.sizeInBytes.unitName,HistogramBinBoundaries.createExponential(1,1e12,1e2));DEFAULT_BOUNDARIES_FOR_UNIT.set(tr.b.Unit.byName.energyInJoules.unitName,HistogramBinBoundaries.createExponential(1e-3,1e3,50));DEFAULT_BOUNDARIES_FOR_UNIT.set(tr.b.Unit.byName.powerInWatts.unitName,HistogramBinBoundaries.createExponential(1e-3,1,50));DEFAULT_BOUNDARIES_FOR_UNIT.set(tr.b.Unit.byName.unitlessNumber.unitName,HistogramBinBoundaries.createExponential(1e-3,1e3,50));DEFAULT_BOUNDARIES_FOR_UNIT.set(tr.b.Unit.byName.count.unitName,HistogramBinBoundaries.createExponential(1,1e3,20));DEFAULT_BOUNDARIES_FOR_UNIT.set(tr.b.Unit.byName.sigma.unitName,HistogramBinBoundaries.createLinear(-5,5,50));return{DEFAULT_REBINNED_COUNT,DELTA,Histogram,HistogramBinBoundaries,P_VALUE_NAME,U_STATISTIC_NAME,Z_SCORE_NAME,percentFromString,percentToString,};});'use strict';tr.exportTo('tr.v.ui',function(){Polymer({is:'tr-v-ui-scalar-context-controller',created(){this.host_=undefined;this.groupToContext_=new Map();this.dirtyGroups_=new Set();},attached(){if(this.host_){throw new Error('Scalar context controller is already attached to a host');}
const host=findParentOrHost(this);if(host.__scalarContextController){throw new Error('Multiple scalar context controllers attached to this host');}
host.__scalarContextController=this;this.host_=host;},detached(){if(!this.host_){throw new Error('Scalar context controller is not attached to a host');}
if(this.host_.__scalarContextController!==this){throw new Error('Scalar context controller is not attached to its host');}
delete this.host_.__scalarContextController;this.host_=undefined;},getContext(group){return this.groupToContext_.get(group);},onScalarSpanAdded(group,span){let context=this.groupToContext_.get(group);if(context===undefined){context={spans:new Set(),range:new tr.b.math.Range()};this.groupToContext_.set(group,context);}
if(context.spans.has(span)){throw new Error('Scalar span already registered with group: '+group);}
context.spans.add(span);this.markGroupDirtyAndScheduleUpdate_(group);},onScalarSpanRemoved(group,span){const context=this.groupToContext_.get(group);if(!context.spans.has(span)){throw new Error('Scalar span not registered with group: '+group);}
context.spans.delete(span);this.markGroupDirtyAndScheduleUpdate_(group);},onScalarSpanUpdated(group,span){const context=this.groupToContext_.get(group);if(!context.spans.has(span)){throw new Error('Scalar span not registered with group: '+group);}
this.markGroupDirtyAndScheduleUpdate_(group);},markGroupDirtyAndScheduleUpdate_(group){const alreadyDirty=this.dirtyGroups_.size>0;this.dirtyGroups_.add(group);if(!alreadyDirty){tr.b.requestAnimationFrameInThisFrameIfPossible(this.updateContext,this);}},updateContext(){const groups=this.dirtyGroups_;if(groups.size===0)return;this.dirtyGroups_=new Set();for(const group of groups){this.updateGroup_(group);}
const event=new tr.b.Event('context-updated');event.groups=groups;this.dispatchEvent(event);},updateGroup_(group){const context=this.groupToContext_.get(group);if(context.spans.size===0){this.groupToContext_.delete(group);return;}
context.range.reset();for(const span of context.spans){context.range.addValue(span.value);}}});function getScalarContextControllerForElement(element){while(element){if(element.__scalarContextController){return element.__scalarContextController;}
element=findParentOrHost(element);}
return undefined;}
function findParentOrHost(node){if(node.parentElement){return node.parentElement;}
while(Polymer.dom(node).parentNode){node=Polymer.dom(node).parentNode;}
return node.host;}
return{getScalarContextControllerForElement,};});'use strict';tr.exportTo('tr.v.ui',function(){function createScalarSpan(value,opt_config){if(value===undefined)return'';const config=opt_config||{};const ownerDocument=config.ownerDocument||document;const span=ownerDocument.createElement('tr-v-ui-scalar-span');let numericValue;if(value instanceof tr.b.Scalar){span.value=value;numericValue=value.value;}else if(value instanceof tr.v.Histogram){numericValue=value.average;if(numericValue===undefined)return'';span.setValueAndUnit(numericValue,value.unit);}else{const unit=config.unit;if(unit===undefined){throw new Error('Unit must be provided in config when value is a number');}
span.setValueAndUnit(value,unit);numericValue=value;}
if(config.context){span.context=config.context;}
if(config.customContextRange){span.customContextRange=config.customContextRange;}
if(config.leftAlign){span.leftAlign=true;}
if(config.inline){span.inline=true;}
if(config.significance!==undefined){span.significance=config.significance;}
if(config.contextGroup!==undefined){span.contextGroup=config.contextGroup;}
return span;}
return{createScalarSpan,};});'use strict';Polymer({is:'tr-v-ui-scalar-span',properties:{contextGroup:{type:String,reflectToAttribute:true,observer:'contextGroupChanged_'}},created(){this.value_=undefined;this.unit_=undefined;this.context_=undefined;this.warning_=undefined;this.significance_=tr.b.math.Statistics.Significance.DONT_CARE;this.shouldSearchForContextController_=false;this.lazyContextController_=undefined;this.onContextUpdated_=this.onContextUpdated_.bind(this);this.customContextRange_=undefined;},get significance(){return this.significance_;},set significance(s){this.significance_=s;this.updateContents_();},set contentTextDecoration(deco){this.$.content.style.textDecoration=deco;},get value(){return this.value_;},set value(value){if(value instanceof tr.b.Scalar){this.value_=value.value;this.unit_=value.unit;}else{this.value_=value;}
this.updateContents_();if(this.hasContext_(this.contextGroup)){this.contextController_.onScalarSpanUpdated(this.contextGroup,this);}else{this.updateSparkline_();}},get contextController_(){if(this.shouldSearchForContextController_){this.lazyContextController_=tr.v.ui.getScalarContextControllerForElement(this);this.shouldSearchForContextController_=false;}
return this.lazyContextController_;},hasContext_(contextGroup){return!!(contextGroup&&this.contextController_);},contextGroupChanged_(newContextGroup,oldContextGroup){this.detachFromContextControllerIfPossible_(oldContextGroup);if(!this.attachToContextControllerIfPossible_(newContextGroup)){this.onContextUpdated_();}},attachToContextControllerIfPossible_(contextGroup){if(!this.hasContext_(contextGroup))return false;this.contextController_.addEventListener('context-updated',this.onContextUpdated_);this.contextController_.onScalarSpanAdded(contextGroup,this);return true;},detachFromContextControllerIfPossible_(contextGroup){if(!this.hasContext_(contextGroup))return;this.contextController_.removeEventListener('context-updated',this.onContextUpdated_);this.contextController_.onScalarSpanRemoved(contextGroup,this);},attached(){tr.b.Unit.addEventListener('display-mode-changed',this.updateContents_.bind(this));this.shouldSearchForContextController_=true;this.attachToContextControllerIfPossible_(this.contextGroup);},detached(){tr.b.Unit.removeEventListener('display-mode-changed',this.updateContents_.bind(this));this.detachFromContextControllerIfPossible_(this.contextGroup);this.shouldSearchForContextController_=false;this.lazyContextController_=undefined;},onContextUpdated_(){this.updateSparkline_();},get context(){return this.context_;},set context(context){this.context_=context;this.updateContents_();},get unit(){return this.unit_;},set unit(unit){this.unit_=unit;this.updateContents_();this.updateSparkline_();},setValueAndUnit(value,unit){this.value_=value;this.unit_=unit;this.updateContents_();},get customContextRange(){return this.customContextRange_;},set customContextRange(customContextRange){this.customContextRange_=customContextRange;this.updateSparkline_();},get inline(){return Polymer.dom(this).classList.contains('inline');},set inline(inline){if(inline){Polymer.dom(this).classList.add('inline');}else{Polymer.dom(this).classList.remove('inline');}},get leftAlign(){return Polymer.dom(this).classList.contains('left-align');},set leftAlign(leftAlign){if(leftAlign){Polymer.dom(this).classList.add('left-align');}else{Polymer.dom(this).classList.remove('left-align');}},updateSparkline_(){Polymer.dom(this.$.sparkline).classList.remove('positive');Polymer.dom(this.$.sparkline).classList.remove('better');Polymer.dom(this.$.sparkline).classList.remove('worse');Polymer.dom(this.$.sparkline).classList.remove('same');this.$.sparkline.style.display='none';this.$.sparkline.style.left='0';this.$.sparkline.style.width='0';let range=this.customContextRange_;if(!range&&this.hasContext_(this.contextGroup)){const context=this.contextController_.getContext(this.contextGroup);if(context){range=context.range;}}
if(!range||range.isEmpty)return;const leftPoint=Math.min(range.min,0);const rightPoint=Math.max(range.max,0);const pointDistance=rightPoint-leftPoint;if(pointDistance===0){return;}
this.$.sparkline.style.display='block';let left;let width;if(this.value>0){width=Math.min(this.value,rightPoint);left=-leftPoint;Polymer.dom(this.$.sparkline).classList.add('positive');}else if(this.value<=0){width=-Math.max(this.value,leftPoint);left=(-leftPoint)-width;}
this.$.sparkline.style.left=this.buildSparklineStyle_(left/pointDistance,false);this.$.sparkline.style.width=this.buildSparklineStyle_(width/pointDistance,true);const changeClass=this.changeClassName_;if(changeClass){Polymer.dom(this.$.sparkline).classList.add(changeClass);}},buildSparklineStyle_(ratio,isWidth){let position='calc('+ratio+' * (100% - 1px)';if(isWidth){position+=' + 1px';}
position+=')';return position;},updateContents_(){Polymer.dom(this.$.content).textContent='';Polymer.dom(this.$.content).classList.remove('better');Polymer.dom(this.$.content).classList.remove('worse');Polymer.dom(this.$.content).classList.remove('same');this.$.insignificant.style.display='';this.$.significantly_better.style.display='';this.$.significantly_worse.style.display='';if(this.unit_===undefined)return;this.$.content.title='';Polymer.dom(this.$.content).textContent=this.unit_.format(this.value,this.context);this.updateDelta_();},updateDelta_(){let changeClass=this.changeClassName_;if(!changeClass){this.$.significance.style.display='none';return;}
this.$.significance.style.display='inline';let title;switch(changeClass){case'better':title='improvement';break;case'worse':title='regression';break;case'same':title='no change';break;default:throw new Error('Unknown change class: '+changeClass);}
Polymer.dom(this.$.content).classList.add(changeClass);switch(this.significance){case tr.b.math.Statistics.Significance.DONT_CARE:break;case tr.b.math.Statistics.Significance.INSIGNIFICANT:if(changeClass!=='same')title='insignificant '+title;this.$.insignificant.style.display='inline';changeClass='same';break;case tr.b.math.Statistics.Significance.SIGNIFICANT:if(changeClass==='same'){throw new Error('How can no change be significant?');}
this.$['significantly_'+changeClass].style.display='inline';title='significant '+title;break;default:throw new Error('Unknown significance '+this.significance);}
this.$.significance.title=title;this.$.content.title=title;},get changeClassName_(){if(!this.unit_||!this.unit_.isDelta)return undefined;switch(this.unit_.improvementDirection){case tr.b.ImprovementDirection.DONT_CARE:return undefined;case tr.b.ImprovementDirection.BIGGER_IS_BETTER:if(this.value===0)return'same';return this.value>0?'better':'worse';case tr.b.ImprovementDirection.SMALLER_IS_BETTER:if(this.value===0)return'same';return this.value<0?'better':'worse';default:throw new Error('Unknown improvement direction: '+
this.unit_.improvementDirection);}},get warning(){return this.warning_;},set warning(warning){this.warning_=warning;const warningEl=this.$.warning;if(this.warning_){warningEl.title=warning;warningEl.style.display='inline';}else{warningEl.title='';warningEl.style.display='';}},get timestamp(){return this.value;},set timestamp(timestamp){if(timestamp instanceof tr.b.u.TimeStamp){this.value=timestamp;return;}
this.setValueAndUnit(timestamp,tr.b.u.Units.timeStampInMs);},get duration(){return this.value;},set duration(duration){if(duration instanceof tr.b.u.TimeDuration){this.value=duration;return;}
this.setValueAndUnit(duration,tr.b.u.Units.timeDurationInMs);}});'use strict';const URL_REGEX=/^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)$/;function isTable(object){if(!(object instanceof Array)||(object.length<2))return false;for(const colName in object[0]){if(typeof colName!=='string')return false;}
for(let i=0;i<object.length;++i){if(!(object[i]instanceof Object))return false;for(const colName in object[i]){if(i&&(object[0][colName]===undefined))return false;const cellType=typeof object[i][colName];if(cellType!=='string'&&cellType!=='number')return false;}
if(i){for(const colName in object[0]){if(object[i][colName]===undefined)return false;}}}
return true;}
Polymer({is:'tr-ui-a-generic-object-view',ready(){this.object_=undefined;},get object(){return this.object_;},set object(object){this.object_=object;this.updateContents_();},updateContents_(){Polymer.dom(this.$.content).textContent='';this.appendElementsForType_('',this.object_,0,0,5,'');},appendElementsForType_(label,object,indent,depth,maxDepth,suffix){if(depth>maxDepth){this.appendSimpleText_(label,indent,'<recursion limit reached>',suffix);return;}
if(object===undefined){this.appendSimpleText_(label,indent,'undefined',suffix);return;}
if(object===null){this.appendSimpleText_(label,indent,'null',suffix);return;}
if(!(object instanceof Object)){const type=typeof object;if(type!=='string'){return this.appendSimpleText_(label,indent,object,suffix);}
let objectReplaced=false;if((object[0]==='{'&&object[object.length-1]==='}')||(object[0]==='['&&object[object.length-1]===']')){try{object=JSON.parse(object);objectReplaced=true;}catch(e){}}
if(!objectReplaced){if(object.includes('\n')){const lines=object.split('\n');lines.forEach(function(line,i){let text;let ioff;let ll;let ss;if(i===0){text='"'+line;ioff=0;ll=label;ss='';}else if(i<lines.length-1){text=line;ioff=1;ll='';ss='';}else{text=line+'"';ioff=1;ll='';ss=suffix;}
const el=this.appendSimpleText_(ll,indent+ioff*label.length+ioff,text,ss);el.style.whiteSpace='pre';return el;},this);return;}
if(object.match(URL_REGEX)){const link=document.createElement('a');link.href=object;link.textContent=object;this.appendElementWithLabel_(label,indent,link,suffix);return;}
this.appendSimpleText_(label,indent,'"'+object+'"',suffix);return;}}
if(object instanceof tr.model.ObjectSnapshot){const link=document.createElement('tr-ui-a-analysis-link');link.selection=new tr.model.EventSet(object);this.appendElementWithLabel_(label,indent,link,suffix);return;}
if(object instanceof tr.model.ObjectInstance){const link=document.createElement('tr-ui-a-analysis-link');link.selection=new tr.model.EventSet(object);this.appendElementWithLabel_(label,indent,link,suffix);return;}
if(object instanceof tr.b.math.Rect){this.appendSimpleText_(label,indent,object.toString(),suffix);return;}
if(object instanceof tr.b.Scalar){const el=this.ownerDocument.createElement('tr-v-ui-scalar-span');el.value=object;el.inline=true;this.appendElementWithLabel_(label,indent,el,suffix);return;}
if(object instanceof Array){this.appendElementsForArray_(label,object,indent,depth,maxDepth,suffix);return;}
this.appendElementsForObject_(label,object,indent,depth,maxDepth,suffix);},appendElementsForArray_(label,object,indent,depth,maxDepth,suffix){if(object.length===0){this.appendSimpleText_(label,indent,'[]',suffix);return;}
if(isTable(object)){const table=document.createElement('tr-ui-b-table');const columns=[];for(const colName of Object.keys(object[0])){let allStrings=true;let allNumbers=true;for(let i=0;i<object.length;++i){if(typeof(object[i][colName])!=='string'){allStrings=false;}
if(typeof(object[i][colName])!=='number'){allNumbers=false;}
if(!allStrings&&!allNumbers)break;}
const column={title:colName};column.value=function(row){return row[colName];};if(allStrings){column.cmp=function(x,y){return x[colName].localeCompare(y[colName]);};}else if(allNumbers){column.cmp=function(x,y){return x[colName]-y[colName];};}
columns.push(column);}
table.tableColumns=columns;table.tableRows=object;this.appendElementWithLabel_(label,indent,table,suffix);table.rebuild();return;}
this.appendElementsForType_(label+'[',object[0],indent,depth+1,maxDepth,object.length>1?',':']'+suffix);for(let i=1;i<object.length;i++){this.appendElementsForType_('',object[i],indent+label.length+1,depth+1,maxDepth,i<object.length-1?',':']'+suffix);}
return;},appendElementsForObject_(label,object,indent,depth,maxDepth,suffix){const keys=Object.keys(object);if(keys.length===0){this.appendSimpleText_(label,indent,'{}',suffix);return;}
this.appendElementsForType_(label+'{'+keys[0]+': ',object[keys[0]],indent,depth,maxDepth,keys.length>1?',':'}'+suffix);for(let i=1;i<keys.length;i++){this.appendElementsForType_(keys[i]+': ',object[keys[i]],indent+label.length+1,depth+1,maxDepth,i<keys.length-1?',':'}'+suffix);}},appendElementWithLabel_(label,indent,dataElement,suffix){const row=document.createElement('div');const indentSpan=document.createElement('span');indentSpan.style.whiteSpace='pre';for(let i=0;i<indent;i++){Polymer.dom(indentSpan).textContent+=' ';}
Polymer.dom(row).appendChild(indentSpan);const labelSpan=document.createElement('span');Polymer.dom(labelSpan).textContent=label;Polymer.dom(row).appendChild(labelSpan);Polymer.dom(row).appendChild(dataElement);const suffixSpan=document.createElement('span');Polymer.dom(suffixSpan).textContent=suffix;Polymer.dom(row).appendChild(suffixSpan);row.dataElement=dataElement;Polymer.dom(this.$.content).appendChild(row);},appendSimpleText_(label,indent,text,suffix){const el=this.ownerDocument.createElement('span');Polymer.dom(el).textContent=text;this.appendElementWithLabel_(label,indent,el,suffix);return el;}});'use strict';Polymer({is:'tr-ui-a-generic-object-view-with-label',ready(){this.labelEl_=document.createElement('div');this.genericObjectView_=document.createElement('tr-ui-a-generic-object-view');Polymer.dom(this.root).appendChild(this.labelEl_);Polymer.dom(this.root).appendChild(this.genericObjectView_);},get label(){return Polymer.dom(this.labelEl_).textContent;},set label(label){Polymer.dom(this.labelEl_).textContent=label;},get object(){return this.genericObjectView_.object;},set object(object){this.genericObjectView_.object=object;}});'use strict';tr.exportTo('tr.ui.analysis',function(){const ObjectSnapshotView=tr.ui.b.define('object-snapshot-view');ObjectSnapshotView.prototype={__proto__:HTMLDivElement.prototype,decorate(){this.objectSnapshot_=undefined;},get requiresTallView(){return true;},set modelEvent(obj){this.objectSnapshot=obj;},get modelEvent(){return this.objectSnapshot;},get objectSnapshot(){return this.objectSnapshot_;},set objectSnapshot(i){this.objectSnapshot_=i;this.updateContents();},updateContents(){throw new Error('Not implemented');}};const options=new tr.b.ExtensionRegistryOptions(tr.b.TYPE_BASED_REGISTRY_MODE);options.mandatoryBaseClass=ObjectSnapshotView;options.defaultMetadata={showInstances:true,showInTrackView:true};tr.b.decorateExtensionRegistry(ObjectSnapshotView,options);return{ObjectSnapshotView,};});'use strict';Polymer({is:'tr-ui-b-drag-handle',created(){this.lastMousePos_=0;this.onMouseMove_=this.onMouseMove_.bind(this);this.onMouseUp_=this.onMouseUp_.bind(this);this.addEventListener('mousedown',this.onMouseDown_);this.target_=undefined;this.horizontal=true;this.observer_=new WebKitMutationObserver(this.didTargetMutate_.bind(this));this.targetSizesByModeKey_={};},get modeKey_(){return this.target_.className===''?'.':this.target_.className;},get target(){return this.target_;},set target(target){this.observer_.disconnect();this.target_=target;if(!this.target_)return;this.observer_.observe(this.target_,{attributes:true,attributeFilter:['class']});},get horizontal(){return this.horizontal_;},set horizontal(h){this.horizontal_=h;if(this.horizontal_){this.className='horizontal-drag-handle';}else{this.className='vertical-drag-handle';}},get vertical(){return!this.horizontal_;},set vertical(v){this.horizontal=!v;},forceMutationObserverFlush_(){const records=this.observer_.takeRecords();if(records.length){this.didTargetMutate_(records);}},didTargetMutate_(e){const modeSize=this.targetSizesByModeKey_[this.modeKey_];if(modeSize!==undefined){this.setTargetSize_(modeSize);return;}
this.target_.style[this.targetStyleKey_]='';},get targetStyleKey_(){return this.horizontal_?'height':'width';},getTargetSize_(){const targetStyleKey=this.targetStyleKey_;if(!this.target_.style[targetStyleKey]){this.target_.style[targetStyleKey]=window.getComputedStyle(this.target_)[targetStyleKey];}
const size=parseInt(this.target_.style[targetStyleKey]);this.targetSizesByModeKey_[this.modeKey_]=size;return size;},setTargetSize_(s){this.target_.style[this.targetStyleKey_]=s+'px';this.targetSizesByModeKey_[this.modeKey_]=s;tr.b.dispatchSimpleEvent(this,'drag-handle-resize',true,false);},applyDelta_(delta){const curSize=this.getTargetSize_();let newSize;if(this.target_===this.nextElementSibling){newSize=curSize+delta;}else{newSize=curSize-delta;}
this.setTargetSize_(newSize);},onMouseMove_(e){const curMousePos=this.horizontal_?e.clientY:e.clientX;const delta=this.lastMousePos_-curMousePos;this.applyDelta_(delta);this.lastMousePos_=curMousePos;e.preventDefault();return true;},onMouseDown_(e){if(!this.target_)return;this.forceMutationObserverFlush_();this.lastMousePos_=this.horizontal_?e.clientY:e.clientX;document.addEventListener('mousemove',this.onMouseMove_);document.addEventListener('mouseup',this.onMouseUp_);e.preventDefault();return true;},onMouseUp_(e){document.removeEventListener('mousemove',this.onMouseMove_);document.removeEventListener('mouseup',this.onMouseUp_);e.preventDefault();}});'use strict';tr.exportTo('tr.ui.b',function(){function HotKey(dict){if(dict.eventType===undefined){throw new Error('eventType must be given');}
if(dict.keyCode===undefined&&dict.keyCodes===undefined){throw new Error('keyCode or keyCodes must be given');}
if(dict.keyCode!==undefined&&dict.keyCodes!==undefined){throw new Error('Only keyCode or keyCodes can be given');}
if(dict.callback===undefined){throw new Error('callback must be given');}
this.eventType_=dict.eventType;this.keyCodes_=[];if(dict.keyCode){this.pushKeyCode_(dict.keyCode);}else if(dict.keyCodes){dict.keyCodes.forEach(this.pushKeyCode_,this);}
this.useCapture_=!!dict.useCapture;this.callback_=dict.callback;this.thisArg_=dict.thisArg!==undefined?dict.thisArg:undefined;this.helpText_=dict.helpText!==undefined?dict.helpText:undefined;}
HotKey.prototype={get eventType(){return this.eventType_;},get keyCodes(){return this.keyCodes_;},get helpText(){return this.helpText_;},call(e){this.callback_.call(this.thisArg_,e);},pushKeyCode_(keyCode){this.keyCodes_.push(keyCode);}};return{HotKey,};});'use strict';Polymer({is:'tv-ui-b-hotkey-controller',created(){this.isAttached_=false;this.globalMode_=false;this.slavedToParentController_=undefined;this.curHost_=undefined;this.childControllers_=[];this.bubblingKeyDownHotKeys_={};this.capturingKeyDownHotKeys_={};this.bubblingKeyPressHotKeys_={};this.capturingKeyPressHotKeys_={};this.onBubblingKeyDown_=this.onKey_.bind(this,false);this.onCapturingKeyDown_=this.onKey_.bind(this,true);this.onBubblingKeyPress_=this.onKey_.bind(this,false);this.onCapturingKeyPress_=this.onKey_.bind(this,true);},attached(){this.isAttached_=true;const host=this.findHost_();if(host.__hotkeyController){throw new Error('Multiple hotkey controllers attached to this host');}
host.__hotkeyController=this;this.curHost_=host;let parentElement;if(host.parentElement){parentElement=host.parentElement;}else{parentElement=Polymer.dom(host).parentNode.host;}
const parentController=tr.b.getHotkeyControllerForElement(parentElement);if(parentController){this.slavedToParentController_=parentController;parentController.addChildController_(this);return;}
host.addEventListener('keydown',this.onBubblingKeyDown_,false);host.addEventListener('keydown',this.onCapturingKeyDown_,true);host.addEventListener('keypress',this.onBubblingKeyPress_,false);host.addEventListener('keypress',this.onCapturingKeyPress_,true);},detached(){this.isAttached_=false;const host=this.curHost_;if(!host)return;delete host.__hotkeyController;this.curHost_=undefined;if(this.slavedToParentController_){this.slavedToParentController_.removeChildController_(this);this.slavedToParentController_=undefined;return;}
host.removeEventListener('keydown',this.onBubblingKeyDown_,false);host.removeEventListener('keydown',this.onCapturingKeyDown_,true);host.removeEventListener('keypress',this.onBubblingKeyPress_,false);host.removeEventListener('keypress',this.onCapturingKeyPress_,true);},addChildController_(controller){const i=this.childControllers_.indexOf(controller);if(i!==-1){throw new Error('Controller already registered');}
this.childControllers_.push(controller);},removeChildController_(controller){const i=this.childControllers_.indexOf(controller);if(i===-1){throw new Error('Controller not registered');}
this.childControllers_.splice(i,1);return controller;},getKeyMapForEventType_(eventType,useCapture){if(eventType==='keydown'){if(!useCapture){return this.bubblingKeyDownHotKeys_;}
return this.capturingKeyDownHotKeys_;}
if(eventType==='keypress'){if(!useCapture){return this.bubblingKeyPressHotKeys_;}
return this.capturingKeyPressHotKeys_;}
throw new Error('Unsupported key event');},addHotKey(hotKey){if(!(hotKey instanceof tr.ui.b.HotKey)){throw new Error('hotKey must be a tr.ui.b.HotKey');}
const keyMap=this.getKeyMapForEventType_(hotKey.eventType,hotKey.useCapture);for(let i=0;i<hotKey.keyCodes.length;i++){const keyCode=hotKey.keyCodes[i];if(keyMap[keyCode]){throw new Error('Key is already bound for keyCode='+keyCode);}}
for(let i=0;i<hotKey.keyCodes.length;i++){const keyCode=hotKey.keyCodes[i];keyMap[keyCode]=hotKey;}
return hotKey;},removeHotKey(hotKey){if(!(hotKey instanceof tr.ui.b.HotKey)){throw new Error('hotKey must be a tr.ui.b.HotKey');}
const keyMap=this.getKeyMapForEventType_(hotKey.eventType,hotKey.useCapture);for(let i=0;i<hotKey.keyCodes.length;i++){const keyCode=hotKey.keyCodes[i];if(!keyMap[keyCode]){throw new Error('Key is not bound for keyCode='+keyCode);}
keyMap[keyCode]=hotKey;}
for(let i=0;i<hotKey.keyCodes.length;i++){const keyCode=hotKey.keyCodes[i];delete keyMap[keyCode];}
return hotKey;},get globalMode(){return this.globalMode_;},set globalMode(globalMode){const wasAttached=this.isAttached_;if(wasAttached){this.detached();}
this.globalMode_=!!globalMode;if(wasAttached){this.attached();}},get topmostConroller_(){if(this.slavedToParentController_){return this.slavedToParentController_.topmostConroller_;}
return this;},childRequestsGeneralFocus(child){const topmost=this.topmostConroller_;if(topmost.curHost_){if(topmost.curHost_.hasAttribute('tabIndex')){topmost.curHost_.focus();}else{if(document.activeElement){document.activeElement.blur();}}}else{if(document.activeElement){document.activeElement.blur();}}},childRequestsBlur(child){child.blur();const topmost=this.topmostConroller_;if(topmost.curHost_){topmost.curHost_.focus();}},findHost_(){if(this.globalMode_)return document.body;if(this.parentElement)return this.parentElement;if(!Polymer.dom(this).parentNode)return this.host;let node=this.parentNode;while(Polymer.dom(node).parentNode)node=Polymer.dom(node).parentNode;return node.host;},appendMatchingHotKeysTo_(matchedHotKeys,useCapture,e){const localKeyMap=this.getKeyMapForEventType_(e.type,useCapture);const localHotKey=localKeyMap[e.keyCode];if(localHotKey){matchedHotKeys.push(localHotKey);}
for(let i=0;i<this.childControllers_.length;i++){const controller=this.childControllers_[i];controller.appendMatchingHotKeysTo_(matchedHotKeys,useCapture,e);}},onKey_(useCapture,e){if(!useCapture&&e.path[0].tagName==='INPUT')return;let sortedControllers;const matchedHotKeys=[];this.appendMatchingHotKeysTo_(matchedHotKeys,useCapture,e);if(matchedHotKeys.length===0)return false;if(matchedHotKeys.length>1){throw new Error('More than one hotKey is currently unsupported');}
const hotKey=matchedHotKeys[0];let prevented=0;prevented|=hotKey.call(e);return!prevented&&e.defaultPrevented;}});'use strict';tr.exportTo('tr.b',function(){function getHotkeyControllerForElement(refElement){let curElement=refElement;while(curElement){if(curElement.tagName==='tv-ui-b-hotkey-controller'){return curElement;}
if(curElement.__hotkeyController){return curElement.__hotkeyController;}
if(curElement.parentElement){curElement=curElement.parentElement;continue;}
curElement=findHost(curElement);}
return undefined;}
function findHost(initialNode){let node=initialNode;while(Polymer.dom(node).parentNode){node=Polymer.dom(node).parentNode;}
return node.host;}
return{getHotkeyControllerForElement,};});'use strict';Polymer({is:'tr-ui-b-info-bar',ready(){this.messageEl_=this.$.message;this.buttonsEl_=this.$.buttons;this.message='';},get message(){return Polymer.dom(this.messageEl_).textContent;},set message(message){Polymer.dom(this.messageEl_).textContent=message;},get visible(){return!this.hidden;},set visible(visible){this.hidden=!visible;},removeAllButtons(){Polymer.dom(this.buttonsEl_).textContent='';},addButton(text,clickCallback){const button=document.createElement('button');Polymer.dom(button).textContent=text;button.addEventListener('click',clickCallback);Polymer.dom(this.buttonsEl_).appendChild(button);return button;}});'use strict';tr.exportTo('tr.ui.b',function(){const ContainerThatDecoratesItsChildren=tr.ui.b.define('div');ContainerThatDecoratesItsChildren.prototype={__proto__:HTMLDivElement.prototype,decorate(){this.observer_=new WebKitMutationObserver(this.didMutate_.bind(this));this.observer_.observe(this,{childList:true});Object.defineProperty(this,'textContent',{get:undefined,set:this.onSetTextContent_});},appendChild(x){HTMLDivElement.prototype.appendChild.call(this,x);this.didMutate_(this.observer_.takeRecords());},insertBefore(x,y){HTMLDivElement.prototype.insertBefore.call(this,x,y);this.didMutate_(this.observer_.takeRecords());},removeChild(x){HTMLDivElement.prototype.removeChild.call(this,x);this.didMutate_(this.observer_.takeRecords());},replaceChild(x,y){HTMLDivElement.prototype.replaceChild.call(this,x,y);this.didMutate_(this.observer_.takeRecords());},onSetTextContent_(textContent){if(textContent!==''){throw new Error('textContent can only be set to \'\'.');}
this.clear();},clear(){while(Polymer.dom(this).lastChild){HTMLDivElement.prototype.removeChild.call(this,Polymer.dom(this).lastChild);}
this.didMutate_(this.observer_.takeRecords());},didMutate_(records){this.beginDecorating_();for(let i=0;i<records.length;i++){const addedNodes=records[i].addedNodes;if(addedNodes){for(let j=0;j<addedNodes.length;j++){this.decorateChild_(addedNodes[j]);}}
const removedNodes=records[i].removedNodes;if(removedNodes){for(let j=0;j<removedNodes.length;j++){this.undecorateChild_(removedNodes[j]);}}}
this.doneDecoratingForNow_();},decorateChild_(child){throw new Error('Not implemented');},undecorateChild_(child){throw new Error('Not implemented');},beginDecorating_(){},doneDecoratingForNow_(){}};return{ContainerThatDecoratesItsChildren,};});'use strict';tr.exportTo('tr.ui.b',function(){const ListView=tr.ui.b.define('x-list-view',tr.ui.b.ContainerThatDecoratesItsChildren);ListView.prototype={__proto__:tr.ui.b.ContainerThatDecoratesItsChildren.prototype,decorate(){tr.ui.b.ContainerThatDecoratesItsChildren.prototype.decorate.call(this);Polymer.dom(this).classList.add('x-list-view');this.onItemClicked_=this.onItemClicked_.bind(this);this.onKeyDown_=this.onKeyDown_.bind(this);this.tabIndex=0;this.addEventListener('keydown',this.onKeyDown_);this.selectionChanged_=false;},decorateChild_(item){Polymer.dom(item).classList.add('list-item');item.addEventListener('click',this.onItemClicked_,true);Object.defineProperty(item,'selected',{configurable:true,get:()=>item.hasAttribute('selected'),set:value=>{const oldSelection=this.selectedElement;if(oldSelection&&oldSelection!==item&&value){Polymer.dom(this.selectedElement).removeAttribute('selected');}
if(value){Polymer.dom(item).setAttribute('selected','selected');}else{Polymer.dom(item).removeAttribute('selected');}
const newSelection=this.selectedElement;if(newSelection!==oldSelection){tr.b.dispatchSimpleEvent(this,'selection-changed',false);}},});},undecorateChild_(item){this.selectionChanged_|=item.selected;Polymer.dom(item).classList.remove('list-item');item.removeEventListener('click',this.onItemClicked_);delete item.selected;},beginDecorating_(){this.selectionChanged_=false;},doneDecoratingForNow_(){if(this.selectionChanged_){tr.b.dispatchSimpleEvent(this,'selection-changed',false);}},get selectedElement(){const el=Polymer.dom(this).querySelector('.list-item[selected]');if(!el)return undefined;return el;},set selectedElement(el){if(!el){if(this.selectedElement){this.selectedElement.selected=false;}
return;}
if(el.parentElement!==this){throw new Error('Can only select elements that are children of this list view');}
el.selected=true;},getElementByIndex(index){return Polymer.dom(this).querySelector('.list-item:nth-child('+index+')');},clear(){const changed=this.selectedElement!==undefined;tr.ui.b.ContainerThatDecoratesItsChildren.prototype.clear.call(this);if(changed){tr.b.dispatchSimpleEvent(this,'selection-changed',false);}},onItemClicked_(e){const currentSelectedElement=this.selectedElement;if(currentSelectedElement){Polymer.dom(currentSelectedElement).removeAttribute('selected');}
let element=e.target;while(element.parentElement!==this){element=element.parentElement;}
if(element!==currentSelectedElement){Polymer.dom(element).setAttribute('selected','selected');}
tr.b.dispatchSimpleEvent(this,'selection-changed',false);},onKeyDown_(e){if(this.selectedElement===undefined)return;if(e.keyCode===38){const prev=Polymer.dom(this.selectedElement).previousSibling;if(prev){prev.selected=true;tr.ui.b.scrollIntoViewIfNeeded(prev);e.preventDefault();return true;}}else if(e.keyCode===40){const next=Polymer.dom(this.selectedElement).nextSibling;if(next){next.selected=true;tr.ui.b.scrollIntoViewIfNeeded(next);e.preventDefault();return true;}}},addItem(textContent){const item=document.createElement('div');Polymer.dom(item).textContent=textContent;Polymer.dom(this).appendChild(item);return item;}};return{ListView,};});'use strict';tr.exportTo('tr.ui.b',function(){const MOUSE_SELECTOR_MODE={};MOUSE_SELECTOR_MODE.SELECTION=0x1;MOUSE_SELECTOR_MODE.PANSCAN=0x2;MOUSE_SELECTOR_MODE.ZOOM=0x4;MOUSE_SELECTOR_MODE.TIMING=0x8;MOUSE_SELECTOR_MODE.ROTATE=0x10;MOUSE_SELECTOR_MODE.ALL_MODES=0x1F;const MOUSE_SELECTOR_MODE_INFOS={};MOUSE_SELECTOR_MODE_INFOS[MOUSE_SELECTOR_MODE.PANSCAN]={mode:MOUSE_SELECTOR_MODE.PANSCAN,title:'pan',eventNames:{enter:'enterpan',begin:'beginpan',update:'updatepan',end:'endpan',exit:'exitpan'},activeBackgroundPosition:'-30px -10px',defaultBackgroundPosition:'0 -10px'};MOUSE_SELECTOR_MODE_INFOS[MOUSE_SELECTOR_MODE.SELECTION]={mode:MOUSE_SELECTOR_MODE.SELECTION,title:'selection',eventNames:{enter:'enterselection',begin:'beginselection',update:'updateselection',end:'endselection',exit:'exitselection'},activeBackgroundPosition:'-30px -40px',defaultBackgroundPosition:'0 -40px'};MOUSE_SELECTOR_MODE_INFOS[MOUSE_SELECTOR_MODE.ZOOM]={mode:MOUSE_SELECTOR_MODE.ZOOM,title:'zoom',eventNames:{enter:'enterzoom',begin:'beginzoom',update:'updatezoom',end:'endzoom',exit:'exitzoom'},activeBackgroundPosition:'-30px -70px',defaultBackgroundPosition:'0 -70px'};MOUSE_SELECTOR_MODE_INFOS[MOUSE_SELECTOR_MODE.TIMING]={mode:MOUSE_SELECTOR_MODE.TIMING,title:'timing',eventNames:{enter:'entertiming',begin:'begintiming',update:'updatetiming',end:'endtiming',exit:'exittiming'},activeBackgroundPosition:'-30px -100px',defaultBackgroundPosition:'0 -100px'};MOUSE_SELECTOR_MODE_INFOS[MOUSE_SELECTOR_MODE.ROTATE]={mode:MOUSE_SELECTOR_MODE.ROTATE,title:'rotate',eventNames:{enter:'enterrotate',begin:'beginrotate',update:'updaterotate',end:'endrotate',exit:'exitrotate'},activeBackgroundPosition:'-30px -130px',defaultBackgroundPosition:'0 -130px'};return{MOUSE_SELECTOR_MODE_INFOS,MOUSE_SELECTOR_MODE,};});'use strict';Polymer({is:'tr-ui-b-mouse-mode-icon',properties:{modeName:{type:String,reflectToAttribute:true,observer:'modeNameChanged'},},created(){this.active_=false;this.acceleratorKey_=undefined;},ready(){this.updateContents_();},get mode(){return tr.ui.b.MOUSE_SELECTOR_MODE[this.modeName];},set mode(mode){const modeInfo=tr.ui.b.MOUSE_SELECTOR_MODE_INFOS[mode];const modeName=tr.b.findFirstKeyInDictMatching(tr.ui.b.MOUSE_SELECTOR_MODE,function(modeName,candidateMode){return candidateMode===mode;});if(modeName===undefined){throw new Error('Unknown mode');}
this.modeName=modeName;},modeNameChanged(){this.updateContents_();},get active(){return this.active_;},set active(active){this.active_=!!active;if(this.active_){Polymer.dom(this).classList.add('active');}else{Polymer.dom(this).classList.remove('active');}
this.updateContents_();},get acceleratorKey(){return this.acceleratorKey_;},set acceleratorKey(acceleratorKey){this.acceleratorKey_=acceleratorKey;this.updateContents_();},updateContents_(){if(this.modeName===undefined)return;const mode=this.mode;if(mode===undefined){throw new Error('Invalid mode');}
const modeInfo=tr.ui.b.MOUSE_SELECTOR_MODE_INFOS[mode];if(!modeInfo){throw new Error('Invalid mode');}
let title=modeInfo.title;if(this.acceleratorKey_){title=title+' ('+this.acceleratorKey_+')';}
this.title=title;let bp;if(this.active_){bp=modeInfo.activeBackgroundPosition;}else{bp=modeInfo.defaultBackgroundPosition;}
this.style.backgroundPosition=bp;}});'use strict';tr.exportTo('tr.ui.b',function(){function MouseTracker(opt_targetElement){this.onMouseDown_=this.onMouseDown_.bind(this);this.onMouseMove_=this.onMouseMove_.bind(this);this.onMouseUp_=this.onMouseUp_.bind(this);this.targetElement=opt_targetElement;}
MouseTracker.prototype={get targetElement(){return this.targetElement_;},set targetElement(targetElement){if(this.targetElement_){this.targetElement_.removeEventListener('mousedown',this.onMouseDown_);}
this.targetElement_=targetElement;if(this.targetElement_){this.targetElement_.addEventListener('mousedown',this.onMouseDown_);}},onMouseDown_(e){if(e.button!==0)return true;e=this.remakeEvent_(e,'mouse-tracker-start');this.targetElement_.dispatchEvent(e);document.addEventListener('mousemove',this.onMouseMove_);document.addEventListener('mouseup',this.onMouseUp_);this.targetElement_.addEventListener('blur',this.onMouseUp_);this.savePreviousUserSelect_=document.body.style['-webkit-user-select'];document.body.style['-webkit-user-select']='none';e.preventDefault();return true;},onMouseMove_(e){e=this.remakeEvent_(e,'mouse-tracker-move');this.targetElement_.dispatchEvent(e);},onMouseUp_(e){document.removeEventListener('mousemove',this.onMouseMove_);document.removeEventListener('mouseup',this.onMouseUp_);this.targetElement_.removeEventListener('blur',this.onMouseUp_);document.body.style['-webkit-user-select']=this.savePreviousUserSelect_;e=this.remakeEvent_(e,'mouse-tracker-end');this.targetElement_.dispatchEvent(e);},remakeEvent_(e,newType){const remade=new tr.b.Event(newType,true,true);remade.x=e.x;remade.y=e.y;remade.offsetX=e.offsetX;remade.offsetY=e.offsetY;remade.clientX=e.clientX;remade.clientY=e.clientY;return remade;}};function trackMouseMovesUntilMouseUp(mouseMoveHandler,opt_mouseUpHandler,opt_keyUpHandler){function cleanupAndDispatchToMouseUp(e){document.removeEventListener('mousemove',mouseMoveHandler);if(opt_keyUpHandler){document.removeEventListener('keyup',opt_keyUpHandler);}
document.removeEventListener('mouseup',cleanupAndDispatchToMouseUp);if(opt_mouseUpHandler){opt_mouseUpHandler(e);}}
document.addEventListener('mousemove',mouseMoveHandler);if(opt_keyUpHandler){document.addEventListener('keyup',opt_keyUpHandler);}
document.addEventListener('mouseup',cleanupAndDispatchToMouseUp);}
return{MouseTracker,trackMouseMovesUntilMouseUp,};});'use strict';tr.exportTo('tr.ui.b',function(){const MOUSE_SELECTOR_MODE=tr.ui.b.MOUSE_SELECTOR_MODE;const MOUSE_SELECTOR_MODE_INFOS=tr.ui.b.MOUSE_SELECTOR_MODE_INFOS;const MIN_MOUSE_SELECTION_DISTANCE=4;const MODIFIER={SHIFT:0x1,SPACE:0x2,CMD_OR_CTRL:0x4};function isCmdOrCtrlPressed(event){if(tr.isMac)return event.metaKey;return event.ctrlKey;}
Polymer({is:'tr-ui-b-mouse-mode-selector',created(){this.supportedModeMask_=MOUSE_SELECTOR_MODE.ALL_MODES;this.initialRelativeMouseDownPos_={x:0,y:0};this.defaultMode_=MOUSE_SELECTOR_MODE.PANSCAN;this.settingsKey_=undefined;this.mousePos_={x:0,y:0};this.mouseDownPos_={x:0,y:0};this.onMouseDown_=this.onMouseDown_.bind(this);this.onMouseMove_=this.onMouseMove_.bind(this);this.onMouseUp_=this.onMouseUp_.bind(this);this.onKeyDown_=this.onKeyDown_.bind(this);this.onKeyUp_=this.onKeyUp_.bind(this);this.mode_=undefined;this.modeToKeyCodeMap_={};this.modifierToModeMap_={};this.targetElement_=undefined;this.modeBeforeAlternativeModeActivated_=null;this.isInteracting_=false;this.isClick_=false;},ready(){this.buttonsEl_=Polymer.dom(this.root).querySelector('.buttons');this.dragHandleEl_=Polymer.dom(this.root).querySelector('.drag-handle');this.supportedModeMask=MOUSE_SELECTOR_MODE.ALL_MODES;this.dragHandleEl_.addEventListener('mousedown',this.onDragHandleMouseDown_.bind(this));this.buttonsEl_.addEventListener('mouseup',this.onButtonMouseUp_);this.buttonsEl_.addEventListener('mousedown',this.onButtonMouseDown_);this.buttonsEl_.addEventListener('click',this.onButtonPress_.bind(this));},attached(){document.addEventListener('keydown',this.onKeyDown_);document.addEventListener('keyup',this.onKeyUp_);},detached(){document.removeEventListener('keydown',this.onKeyDown_);document.removeEventListener('keyup',this.onKeyUp_);},get targetElement(){return this.targetElement_;},set targetElement(target){if(this.targetElement_){this.targetElement_.removeEventListener('mousedown',this.onMouseDown_);}
this.targetElement_=target;if(this.targetElement_){this.targetElement_.addEventListener('mousedown',this.onMouseDown_);}},get defaultMode(){return this.defaultMode_;},set defaultMode(defaultMode){this.defaultMode_=defaultMode;},get settingsKey(){return this.settingsKey_;},set settingsKey(settingsKey){this.settingsKey_=settingsKey;if(!this.settingsKey_)return;let mode=tr.b.Settings.get(this.settingsKey_+'.mode',undefined);if(MOUSE_SELECTOR_MODE_INFOS[mode]===undefined){mode=undefined;}
if((mode&this.supportedModeMask_)===0){mode=undefined;}
if(!mode)mode=this.defaultMode_;this.mode=mode;const pos=tr.b.Settings.get(this.settingsKey_+'.pos',undefined);if(pos)this.pos=pos;},get supportedModeMask(){return this.supportedModeMask_;},set supportedModeMask(supportedModeMask){if(this.mode&&(supportedModeMask&this.mode)===0){throw new Error('supportedModeMask must include current mode.');}
function createButtonForMode(mode){return button;}
this.supportedModeMask_=supportedModeMask;Polymer.dom(this.buttonsEl_).textContent='';for(const modeName in MOUSE_SELECTOR_MODE){if(modeName==='ALL_MODES')continue;const mode=MOUSE_SELECTOR_MODE[modeName];if((this.supportedModeMask_&mode)===0)continue;const button=document.createElement('tr-ui-b-mouse-mode-icon');button.mode=mode;Polymer.dom(button).classList.add('tool-button');Polymer.dom(this.buttonsEl_).appendChild(button);}},getButtonForMode_(mode){for(let i=0;i<this.buttonsEl_.children.length;i++){const buttonEl=this.buttonsEl_.children[i];if(buttonEl.mode===mode){return buttonEl;}}
return undefined;},get mode(){return this.currentMode_;},set mode(newMode){if(newMode!==undefined){if(typeof newMode!=='number'){throw new Error('Mode must be a number');}
if((newMode&this.supportedModeMask_)===0){throw new Error('Cannot switch to this mode, it is not supported');}
if(MOUSE_SELECTOR_MODE_INFOS[newMode]===undefined){throw new Error('Unrecognized mode');}}
let modeInfo;if(this.currentMode_===newMode)return;if(this.currentMode_){const buttonEl=this.getButtonForMode_(this.currentMode_);if(buttonEl)buttonEl.active=false;if(this.isInteracting_){const mouseEvent=this.createEvent_(MOUSE_SELECTOR_MODE_INFOS[this.mode].eventNames.end);this.dispatchEvent(mouseEvent);}
modeInfo=MOUSE_SELECTOR_MODE_INFOS[this.currentMode_];tr.b.dispatchSimpleEvent(this,modeInfo.eventNames.exit,true);}
this.currentMode_=newMode;if(this.currentMode_){const buttonEl=this.getButtonForMode_(this.currentMode_);if(buttonEl)buttonEl.active=true;this.mouseDownPos_.x=this.mousePos_.x;this.mouseDownPos_.y=this.mousePos_.y;modeInfo=MOUSE_SELECTOR_MODE_INFOS[this.currentMode_];if(!this.isInAlternativeMode_){tr.b.dispatchSimpleEvent(this,modeInfo.eventNames.enter,true);}
if(this.isInteracting_){const mouseEvent=this.createEvent_(MOUSE_SELECTOR_MODE_INFOS[this.mode].eventNames.begin);this.dispatchEvent(mouseEvent);}}
if(this.settingsKey_&&!this.isInAlternativeMode_){tr.b.Settings.set(this.settingsKey_+'.mode',this.mode);}},setKeyCodeForMode(mode,keyCode){if((mode&this.supportedModeMask_)===0){throw new Error('Mode not supported');}
this.modeToKeyCodeMap_[mode]=keyCode;if(!this.buttonsEl_)return;const buttonEl=this.getButtonForMode_(mode);if(buttonEl){buttonEl.acceleratorKey=String.fromCharCode(keyCode);}},setCurrentMousePosFromEvent_(e){this.mousePos_.x=e.clientX;this.mousePos_.y=e.clientY;},createEvent_(eventName,sourceEvent){const event=new tr.b.Event(eventName,true);event.clientX=this.mousePos_.x;event.clientY=this.mousePos_.y;event.deltaX=this.mousePos_.x-this.mouseDownPos_.x;event.deltaY=this.mousePos_.y-this.mouseDownPos_.y;event.mouseDownX=this.mouseDownPos_.x;event.mouseDownY=this.mouseDownPos_.y;event.didPreventDefault=false;event.preventDefault=function(){event.didPreventDefault=true;if(sourceEvent){sourceEvent.preventDefault();}};event.stopPropagation=function(){sourceEvent.stopPropagation();};event.stopImmediatePropagation=function(){throw new Error('Not implemented');};return event;},onMouseDown_(e){if(e.button!==0)return;this.setCurrentMousePosFromEvent_(e);const mouseEvent=this.createEvent_(MOUSE_SELECTOR_MODE_INFOS[this.mode].eventNames.begin,e);if(this.mode===MOUSE_SELECTOR_MODE.SELECTION){mouseEvent.appendSelection=isCmdOrCtrlPressed(e);}
this.dispatchEvent(mouseEvent);this.isInteracting_=true;this.isClick_=true;tr.ui.b.trackMouseMovesUntilMouseUp(this.onMouseMove_,this.onMouseUp_);},onMouseMove_(e){this.setCurrentMousePosFromEvent_(e);const mouseEvent=this.createEvent_(MOUSE_SELECTOR_MODE_INFOS[this.mode].eventNames.update,e);this.dispatchEvent(mouseEvent);if(this.isInteracting_){this.checkIsClick_(e);}},onMouseUp_(e){if(e.button!==0)return;const mouseEvent=this.createEvent_(MOUSE_SELECTOR_MODE_INFOS[this.mode].eventNames.end,e);mouseEvent.isClick=this.isClick_;this.dispatchEvent(mouseEvent);if(this.isClick_&&!mouseEvent.didPreventDefault){this.dispatchClickEvents_(e);}
this.isInteracting_=false;this.updateAlternativeModeState_(e);},onButtonMouseDown_(e){e.preventDefault();e.stopImmediatePropagation();},onButtonMouseUp_(e){e.preventDefault();e.stopImmediatePropagation();},onButtonPress_(e){this.modeBeforeAlternativeModeActivated_=undefined;this.mode=e.target.mode;e.preventDefault();},onKeyDown_(e){if(e.path[0].tagName==='INPUT')return;if(e.keyCode===' '.charCodeAt(0)){this.spacePressed_=true;}
this.updateAlternativeModeState_(e);},onKeyUp_(e){if(e.path[0].tagName==='INPUT')return;if(e.keyCode===' '.charCodeAt(0)){this.spacePressed_=false;}
let didHandleKey=false;for(const[modeStr,keyCode]of Object.entries(this.modeToKeyCodeMap_)){if(e.keyCode===keyCode){this.modeBeforeAlternativeModeActivated_=undefined;const mode=parseInt(modeStr);this.mode=mode;didHandleKey=true;}}
if(didHandleKey){e.preventDefault();e.stopPropagation();return;}
this.updateAlternativeModeState_(e);},updateAlternativeModeState_(e){const shiftPressed=e.shiftKey;const spacePressed=this.spacePressed_;const cmdOrCtrlPressed=isCmdOrCtrlPressed(e);const smm=this.supportedModeMask_;let newMode;let isNewModeAnAlternativeMode=false;if(shiftPressed&&(this.modifierToModeMap_[MODIFIER.SHIFT]&smm)!==0){newMode=this.modifierToModeMap_[MODIFIER.SHIFT];isNewModeAnAlternativeMode=true;}else if(spacePressed&&(this.modifierToModeMap_[MODIFIER.SPACE]&smm)!==0){newMode=this.modifierToModeMap_[MODIFIER.SPACE];isNewModeAnAlternativeMode=true;}else if(cmdOrCtrlPressed&&(this.modifierToModeMap_[MODIFIER.CMD_OR_CTRL]&smm)!==0){newMode=this.modifierToModeMap_[MODIFIER.CMD_OR_CTRL];isNewModeAnAlternativeMode=true;}else{if(this.isInAlternativeMode_){newMode=this.modeBeforeAlternativeModeActivated_;isNewModeAnAlternativeMode=false;}else{newMode=undefined;}}
if(this.mode===newMode||newMode===undefined)return;if(isNewModeAnAlternativeMode){this.modeBeforeAlternativeModeActivated_=this.mode;}
this.mode=newMode;},get isInAlternativeMode_(){return!!this.modeBeforeAlternativeModeActivated_;},setModifierForAlternateMode(mode,modifier){this.modifierToModeMap_[modifier]=mode;},get pos(){return{x:parseInt(this.style.left),y:parseInt(this.style.top)};},set pos(pos){pos=this.constrainPositionToBounds_(pos);this.style.left=pos.x+'px';this.style.top=pos.y+'px';if(this.settingsKey_){tr.b.Settings.set(this.settingsKey_+'.pos',this.pos);}},constrainPositionToBounds_(pos){const parent=this.offsetParent||document.body;const parentRect=tr.ui.b.windowRectForElement(parent);const top=0;const bottom=parentRect.height-this.offsetHeight;const left=0;const right=parentRect.width-this.offsetWidth;const res={};res.x=Math.max(pos.x,left);res.x=Math.min(res.x,right);res.y=Math.max(pos.y,top);res.y=Math.min(res.y,bottom);return res;},onDragHandleMouseDown_(e){e.preventDefault();e.stopImmediatePropagation();const mouseDownPos={x:e.clientX-this.offsetLeft,y:e.clientY-this.offsetTop};tr.ui.b.trackMouseMovesUntilMouseUp(function(e){const pos={};pos.x=e.clientX-mouseDownPos.x;pos.y=e.clientY-mouseDownPos.y;this.pos=pos;}.bind(this));},checkIsClick_(e){if(!this.isInteracting_||!this.isClick_)return;const deltaX=this.mousePos_.x-this.mouseDownPos_.x;const deltaY=this.mousePos_.y-this.mouseDownPos_.y;const minDist=MIN_MOUSE_SELECTION_DISTANCE;if(deltaX*deltaX+deltaY*deltaY>minDist*minDist){this.isClick_=false;}},dispatchClickEvents_(e){if(!this.isClick_)return;const modeInfo=MOUSE_SELECTOR_MODE_INFOS[MOUSE_SELECTOR_MODE.SELECTION];const eventNames=modeInfo.eventNames;let mouseEvent=this.createEvent_(eventNames.begin);mouseEvent.appendSelection=isCmdOrCtrlPressed(e);this.dispatchEvent(mouseEvent);mouseEvent=this.createEvent_(eventNames.end);this.dispatchEvent(mouseEvent);}});return{MIN_MOUSE_SELECTION_DISTANCE,MODIFIER,};});'use strict';(function(){const DETAILS_SPLIT_REGEX=/^(\S*)\s*([\S\s]*)$/;Polymer({is:'tr-ui-e-chrome-cc-display-item-list-item',created(){Polymer.dom(this).setAttribute('name','');Polymer.dom(this).setAttribute('rawDetails','');Polymer.dom(this).setAttribute('richDetails',undefined);Polymer.dom(this).setAttribute('data_',undefined);},get data(){return this.data_;},set data(data){this.data_=data;if(!data){this.name='DATA MISSING';this.rawDetails='';this.richDetails=undefined;}else if(typeof data==='string'){const match=data.match(DETAILS_SPLIT_REGEX);this.name=match[1];this.rawDetails=match[2];this.richDetails=undefined;}else{this.name=data.name;this.rawDetails='';this.richDetails=data;}},stopPropagation(e){e.stopPropagation();},_computeIf(richDetails){return richDetails&&richDetails.skp64;},_computeHref(richDetails){return'data:application/octet-stream;base64,'+richDetails.skp64;}});})();'use strict';tr.exportTo('tr.ui.e.chrome.cc',function(){function Selection(){this.selectionToSetIfClicked=undefined;}
Selection.prototype={get specicifity(){throw new Error('Not implemented');},get associatedLayerId(){throw new Error('Not implemented');},get associatedRenderPassId(){throw new Error('Not implemented');},get highlightsByLayerId(){return{};},createAnalysis(){throw new Error('Not implemented');},findEquivalent(lthi){throw new Error('Not implemented');}};function RenderPassSelection(renderPass,renderPassId){if(!renderPass||(renderPassId===undefined)){throw new Error('Render pass (with id) is required');}
this.renderPass_=renderPass;this.renderPassId_=renderPassId;}
RenderPassSelection.prototype={__proto__:Selection.prototype,get specicifity(){return 1;},get associatedLayerId(){return undefined;},get associatedRenderPassId(){return this.renderPassId_;},get renderPass(){return this.renderPass_;},createAnalysis(){const dataView=document.createElement('tr-ui-a-generic-object-view-with-label');dataView.label='RenderPass '+this.renderPassId_;dataView.object=this.renderPass_.args;return dataView;},get title(){return this.renderPass_.objectInstance.typeName;}};function LayerSelection(layer){if(!layer){throw new Error('Layer is required');}
this.layer_=layer;}
LayerSelection.prototype={__proto__:Selection.prototype,get specicifity(){return 1;},get associatedLayerId(){return this.layer_.layerId;},get associatedRenderPassId(){return undefined;},get layer(){return this.layer_;},createAnalysis(){const dataView=document.createElement('tr-ui-a-generic-object-view-with-label');dataView.label='Layer '+this.layer_.layerId;if(this.layer_.usingGpuRasterization){dataView.label+=' (GPU-rasterized)';}
dataView.object=this.layer_.args;return dataView;},get title(){return this.layer_.objectInstance.typeName;},findEquivalent(lthi){const layer=lthi.activeTree.findLayerWithId(this.layer_.layerId)||lthi.pendingTree.findLayerWithId(this.layer_.layerId);if(!layer)return undefined;return new LayerSelection(layer);}};function TileSelection(tile,opt_data){this.tile_=tile;this.data_=opt_data||{};}
TileSelection.prototype={__proto__:Selection.prototype,get specicifity(){return 2;},get associatedLayerId(){return this.tile_.layerId;},get highlightsByLayerId(){const highlights={};highlights[this.tile_.layerId]=[{colorKey:this.tile_.objectInstance.typeName,rect:this.tile_.layerRect}];return highlights;},createAnalysis(){const analysis=document.createElement('tr-ui-a-generic-object-view-with-label');analysis.label='Tile '+this.tile_.objectInstance.id+' on layer '+
this.tile_.layerId;if(this.data_){analysis.object={moreInfo:this.data_,tileArgs:this.tile_.args};}else{analysis.object=this.tile_.args;}
return analysis;},findEquivalent(lthi){const tileInstance=this.tile_.tileInstance;if(lthi.ts<tileInstance.creationTs||lthi.ts>=tileInstance.deletionTs){return undefined;}
const tileSnapshot=tileInstance.getSnapshotAt(lthi.ts);if(!tileSnapshot)return undefined;return new TileSelection(tileSnapshot);}};function LayerRectSelection(layer,rectType,rect,opt_data){this.layer_=layer;this.rectType_=rectType;this.rect_=rect;this.data_=opt_data!==undefined?opt_data:rect;}
LayerRectSelection.prototype={__proto__:Selection.prototype,get specicifity(){return 2;},get associatedLayerId(){return this.layer_.layerId;},get highlightsByLayerId(){const highlights={};highlights[this.layer_.layerId]=[{colorKey:this.rectType_,rect:this.rect_}];return highlights;},createAnalysis(){const analysis=document.createElement('tr-ui-a-generic-object-view-with-label');analysis.label=this.rectType_+' on layer '+this.layer_.layerId;analysis.object=this.data_;return analysis;},findEquivalent(lthi){return undefined;}};function AnimationRectSelection(layer,rect){this.layer_=layer;this.rect_=rect;}
AnimationRectSelection.prototype={__proto__:Selection.prototype,get specicifity(){return 0;},get associatedLayerId(){return this.layer_.layerId;},createAnalysis(){const analysis=document.createElement('tr-ui-a-generic-object-view-with-label');analysis.label='Animation Bounds of layer '+this.layer_.layerId;analysis.object=this.rect_;return analysis;}};return{Selection,RenderPassSelection,LayerSelection,TileSelection,LayerRectSelection,AnimationRectSelection,};});'use strict';tr.exportTo('tr.ui.e.chrome.cc',function(){const OPS_TIMING_ITERATIONS=3;const ANNOTATION='Comment';const BEGIN_ANNOTATION='BeginCommentGroup';const END_ANNOTATION='EndCommentGroup';const ANNOTATION_ID='ID: ';const ANNOTATION_CLASS='CLASS: ';const ANNOTATION_TAG='TAG: ';const constants=tr.e.cc.constants;const PictureOpsListView=tr.ui.b.define('tr-ui-e-chrome-cc-picture-ops-list-view');PictureOpsListView.prototype={__proto__:HTMLDivElement.prototype,decorate(){this.opsList_=new tr.ui.b.ListView();Polymer.dom(this).appendChild(this.opsList_);this.selectedOp_=undefined;this.selectedOpIndex_=undefined;this.opsList_.addEventListener('selection-changed',this.onSelectionChanged_.bind(this));this.picture_=undefined;},get picture(){return this.picture_;},set picture(picture){this.picture_=picture;this.updateContents_();},updateContents_(){this.opsList_.clear();if(!this.picture_)return;let ops=this.picture_.getOps();if(!ops)return;ops=this.picture_.tagOpsWithTimings(ops);ops=this.opsTaggedWithAnnotations_(ops);for(let i=0;i<ops.length;i++){const op=ops[i];const item=document.createElement('div');item.opIndex=op.opIndex;Polymer.dom(item).textContent=i+') '+op.cmd_string;if(op.elementInfo.tag||op.elementInfo.id||op.elementInfo.class){const elementInfo=document.createElement('span');Polymer.dom(elementInfo).classList.add('elementInfo');const tag=op.elementInfo.tag?op.elementInfo.tag:'unknown';const id=op.elementInfo.id?'id='+op.elementInfo.id:undefined;const className=op.elementInfo.class?'class='+
op.elementInfo.class:undefined;Polymer.dom(elementInfo).textContent='<'+tag+(id?' ':'')+
(id?id:'')+(className?' ':'')+
(className?className:'')+'>';Polymer.dom(item).appendChild(elementInfo);}
if(op.info.length>0){const infoItem=document.createElement('div');Polymer.dom(infoItem).textContent=JSON.stringify(op.info);Polymer.dom(item).appendChild(infoItem);}
if(op.cmd_time&&op.cmd_time>=0.0001){const time=document.createElement('span');Polymer.dom(time).classList.add('time');const rounded=op.cmd_time.toFixed(4);Polymer.dom(time).textContent='('+rounded+'ms)';Polymer.dom(item).appendChild(time);}
Polymer.dom(this.opsList_).appendChild(item);}},onSelectionChanged_(e){let beforeSelectedOp=true;if(this.opsList_.selectedElement===this.selectedOp_){this.opsList_.selectedElement=undefined;beforeSelectedOp=false;this.selectedOpIndex_=undefined;}
this.selectedOp_=this.opsList_.selectedElement;const ops=this.opsList_.children;for(let i=0;i<ops.length;i++){const op=ops[i];if(op===this.selectedOp_){beforeSelectedOp=false;this.selectedOpIndex_=op.opIndex;}else if(beforeSelectedOp){Polymer.dom(op).setAttribute('beforeSelection','beforeSelection');}else{Polymer.dom(op).removeAttribute('beforeSelection');}}
tr.b.dispatchSimpleEvent(this,'selection-changed',false);},get numOps(){return this.opsList_.children.length;},get selectedOpIndex(){return this.selectedOpIndex_;},set selectedOpIndex(s){this.selectedOpIndex_=s;if(s===undefined){this.opsList_.selectedElement=this.selectedOp_;this.onSelectionChanged_();}else{if(s<0)throw new Error('Invalid index');if(s>=this.numOps)throw new Error('Invalid index');this.opsList_.selectedElement=this.opsList_.getElementByIndex(s+1);tr.ui.b.scrollIntoViewIfNeeded(this.opsList_.selectedElement);}},opsTaggedWithAnnotations_(ops){const annotationGroups=[];const opsWithoutAnnotations=[];for(let opIndex=0;opIndex<ops.length;opIndex++){const op=ops[opIndex];op.opIndex=opIndex;switch(op.cmd_string){case BEGIN_ANNOTATION:annotationGroups.push([]);break;case END_ANNOTATION:annotationGroups.pop();break;case ANNOTATION:annotationGroups[annotationGroups.length-1].push(op);break;default:{const annotations=[];let elementInfo={};annotationGroups.forEach(function(annotationGroup){elementInfo={};annotationGroup.forEach(function(annotation){annotation.info.forEach(function(info){if(info.includes(ANNOTATION_TAG)){elementInfo.tag=info.substring(info.indexOf(ANNOTATION_TAG)+
ANNOTATION_TAG.length).toLowerCase();}else if(info.includes(ANNOTATION_ID)){elementInfo.id=info.substring(info.indexOf(ANNOTATION_ID)+
ANNOTATION_ID.length);}else if(info.includes(ANNOTATION_CLASS)){elementInfo.class=info.substring(info.indexOf(ANNOTATION_CLASS)+
ANNOTATION_CLASS.length);}
annotations.push(info);});});});op.annotations=annotations;op.elementInfo=elementInfo;opsWithoutAnnotations.push(op);}}}
return opsWithoutAnnotations;}};return{PictureOpsListView,};});'use strict';tr.exportTo('tr.ui.e.chrome.cc',function(){const THIS_DOC=document.currentScript.ownerDocument;const DisplayItemDebugger=tr.ui.b.define('tr-ui-e-chrome-cc-display-item-debugger');DisplayItemDebugger.prototype={__proto__:HTMLDivElement.prototype,decorate(){const node=tr.ui.b.instantiateTemplate('#tr-ui-e-chrome-cc-display-item-debugger-template',THIS_DOC);Polymer.dom(this).appendChild(node);this.pictureAsImageData_=undefined;this.zoomScaleValue_=1;this.sizeInfo_=Polymer.dom(this).querySelector('.size');this.rasterArea_=Polymer.dom(this).querySelector('raster-area');this.rasterCanvas_=Polymer.dom(this.rasterArea_).querySelector('canvas');this.rasterCtx_=this.rasterCanvas_.getContext('2d');this.trackMouse_();this.displayItemInfo_=Polymer.dom(this).querySelector('display-item-info');this.displayItemInfo_.addEventListener('click',this.onDisplayItemInfoClick_.bind(this),false);this.displayItemListView_=new tr.ui.b.ListView();this.displayItemListView_.addEventListener('selection-changed',this.onDisplayItemListSelection_.bind(this));Polymer.dom(this.displayItemInfo_).appendChild(this.displayItemListView_);this.displayListFilename_=Polymer.dom(this).querySelector('.dlfilename');this.displayListExportButton_=Polymer.dom(this).querySelector('.dlexport');this.displayListExportButton_.addEventListener('click',this.onExportDisplayListClicked_.bind(this));this.skpFilename_=Polymer.dom(this).querySelector('.skpfilename');this.skpExportButton_=Polymer.dom(this).querySelector('.skpexport');this.skpExportButton_.addEventListener('click',this.onExportSkPictureClicked_.bind(this));const leftPanel=Polymer.dom(this).querySelector('left-panel');const middleDragHandle=document.createElement('tr-ui-b-drag-handle');middleDragHandle.horizontal=false;middleDragHandle.target=leftPanel;const rightPanel=Polymer.dom(this).querySelector('right-panel');this.infoBar_=document.createElement('tr-ui-b-info-bar');Polymer.dom(this.rasterArea_).insertBefore(this.infoBar_,this.rasterCanvas_);Polymer.dom(this).insertBefore(middleDragHandle,rightPanel);this.picture_=undefined;this.pictureOpsListView_=new tr.ui.e.chrome.cc.PictureOpsListView();Polymer.dom(rightPanel).insertBefore(this.pictureOpsListView_,this.rasterArea_);this.pictureOpsListDragHandle_=document.createElement('tr-ui-b-drag-handle');this.pictureOpsListDragHandle_.horizontal=false;this.pictureOpsListDragHandle_.target=this.pictureOpsListView_;Polymer.dom(rightPanel).insertBefore(this.pictureOpsListDragHandle_,this.rasterArea_);},get picture(){return this.picture_;},set displayItemList(displayItemList){this.displayItemList_=displayItemList;this.picture=this.displayItemList_;this.displayItemListView_.clear();this.displayItemList_.items.forEach(function(item){const listItem=document.createElement('tr-ui-e-chrome-cc-display-item-list-item');listItem.data=item;Polymer.dom(this.displayItemListView_).appendChild(listItem);}.bind(this));},set picture(picture){this.picture_=picture;const showOpsList=picture&&picture!==this.displayItemList_;this.updateDrawOpsList_(showOpsList);if(picture){const size=this.getRasterCanvasSize_();this.rasterCanvas_.width=size.width;this.rasterCanvas_.height=size.height;}
const bounds=this.rasterArea_.getBoundingClientRect();const selectorBounds=this.mouseModeSelector_.getBoundingClientRect();this.mouseModeSelector_.pos={x:(bounds.right-selectorBounds.width-10),y:bounds.top};this.rasterize_();this.scheduleUpdateContents_();},getRasterCanvasSize_(){const style=window.getComputedStyle(this.rasterArea_);let width=parseInt(style.width);let height=parseInt(style.height);if(this.picture_){width=Math.max(width,this.picture_.layerRect.width);height=Math.max(height,this.picture_.layerRect.height);}
return{width,height};},scheduleUpdateContents_(){if(this.updateContentsPending_)return;this.updateContentsPending_=true;tr.b.requestAnimationFrameInThisFrameIfPossible(this.updateContents_.bind(this));},updateContents_(){this.updateContentsPending_=false;if(this.picture_){Polymer.dom(this.sizeInfo_).textContent='('+
this.picture_.layerRect.width+' x '+
this.picture_.layerRect.height+')';}
if(!this.pictureAsImageData_)return;this.infoBar_.visible=false;this.infoBar_.removeAllButtons();if(this.pictureAsImageData_.error){this.infoBar_.message='Cannot rasterize...';this.infoBar_.addButton('More info...',function(e){const overlay=new tr.ui.b.Overlay();Polymer.dom(overlay).textContent=this.pictureAsImageData_.error;overlay.visible=true;e.stopPropagation();return false;}.bind(this));this.infoBar_.visible=true;}
this.drawPicture_();},drawPicture_(){const size=this.getRasterCanvasSize_();if(size.width!==this.rasterCanvas_.width){this.rasterCanvas_.width=size.width;}
if(size.height!==this.rasterCanvas_.height){this.rasterCanvas_.height=size.height;}
this.rasterCtx_.clearRect(0,0,size.width,size.height);if(!this.picture_||!this.pictureAsImageData_.imageData)return;const imgCanvas=this.pictureAsImageData_.asCanvas();const w=imgCanvas.width;const h=imgCanvas.height;this.rasterCtx_.drawImage(imgCanvas,0,0,w,h,0,0,w*this.zoomScaleValue_,h*this.zoomScaleValue_);},rasterize_(){if(this.picture_){this.picture_.rasterize({showOverdraw:false},this.onRasterComplete_.bind(this));}},onRasterComplete_(pictureAsImageData){this.pictureAsImageData_=pictureAsImageData;this.scheduleUpdateContents_();},onDisplayItemListSelection_(e){const selected=this.displayItemListView_.selectedElement;if(!selected){this.picture=this.displayItemList_;return;}
const index=Array.prototype.indexOf.call(this.displayItemListView_.children,selected);const displayItem=this.displayItemList_.items[index];if(displayItem&&displayItem.skp64){this.picture=new tr.e.cc.Picture(displayItem.skp64,this.displayItemList_.layerRect);}else{this.picture=undefined;}},onDisplayItemInfoClick_(e){if(e&&e.target===this.displayItemInfo_){this.displayItemListView_.selectedElement=undefined;}},updateDrawOpsList_(showOpsList){if(showOpsList){this.pictureOpsListView_.picture=this.picture_;if(this.pictureOpsListView_.numOps>0){Polymer.dom(this.pictureOpsListView_).classList.add('hasPictureOps');Polymer.dom(this.pictureOpsListDragHandle_).classList.add('hasPictureOps');}}else{Polymer.dom(this.pictureOpsListView_).classList.remove('hasPictureOps');Polymer.dom(this.pictureOpsListDragHandle_).classList.remove('hasPictureOps');}},trackMouse_(){this.mouseModeSelector_=document.createElement('tr-ui-b-mouse-mode-selector');this.mouseModeSelector_.targetElement=this.rasterArea_;Polymer.dom(this.rasterArea_).appendChild(this.mouseModeSelector_);this.mouseModeSelector_.supportedModeMask=tr.ui.b.MOUSE_SELECTOR_MODE.ZOOM;this.mouseModeSelector_.mode=tr.ui.b.MOUSE_SELECTOR_MODE.ZOOM;this.mouseModeSelector_.defaultMode=tr.ui.b.MOUSE_SELECTOR_MODE.ZOOM;this.mouseModeSelector_.settingsKey='pictureDebugger.mouseModeSelector';this.mouseModeSelector_.addEventListener('beginzoom',this.onBeginZoom_.bind(this));this.mouseModeSelector_.addEventListener('updatezoom',this.onUpdateZoom_.bind(this));this.mouseModeSelector_.addEventListener('endzoom',this.onEndZoom_.bind(this));},onBeginZoom_(e){this.isZooming_=true;this.lastMouseViewPos_=this.extractRelativeMousePosition_(e);e.preventDefault();},onUpdateZoom_(e){if(!this.isZooming_)return;const currentMouseViewPos=this.extractRelativeMousePosition_(e);this.zoomScaleValue_+=((this.lastMouseViewPos_.y-currentMouseViewPos.y)*0.001);this.zoomScaleValue_=Math.max(this.zoomScaleValue_,0.1);this.drawPicture_();this.lastMouseViewPos_=currentMouseViewPos;},onEndZoom_(e){this.lastMouseViewPos_=undefined;this.isZooming_=false;e.preventDefault();},extractRelativeMousePosition_(e){return{x:e.clientX-this.rasterArea_.offsetLeft,y:e.clientY-this.rasterArea_.offsetTop};},saveFile_(filename,rawData){if(!rawData)return;const length=rawData.length;const arrayBuffer=new ArrayBuffer(length);const uint8Array=new Uint8Array(arrayBuffer);for(let c=0;c<length;c++){uint8Array[c]=rawData.charCodeAt(c);}
const blob=new Blob([uint8Array],{type:'application/octet-binary'});const blobUrl=window.URL.createObjectURL(blob);const link=document.createElementNS('http://www.w3.org/1999/xhtml','a');link.href=blobUrl;link.download=filename;const event=document.createEvent('MouseEvents');event.initMouseEvent('click',true,false,window,0,0,0,0,0,false,false,false,false,0,null);link.dispatchEvent(event);},onExportDisplayListClicked_(){const rawData=JSON.stringify(this.displayItemList_.items);this.saveFile_(this.displayListFilename_.value,rawData);},onExportSkPictureClicked_(){const rawData=tr.b.Base64.atob(this.picture_.getBase64SkpData());this.saveFile_(this.skpFilename_.value,rawData);}};return{DisplayItemDebugger,};});'use strict';tr.exportTo('tr.ui.e.chrome.cc',function(){const DisplayItemSnapshotView=tr.ui.b.define('tr-ui-e-chrome-cc-display-item-list-view',tr.ui.analysis.ObjectSnapshotView);DisplayItemSnapshotView.prototype={__proto__:tr.ui.analysis.ObjectSnapshotView.prototype,decorate(){Polymer.dom(this).classList.add('tr-ui-e-chrome-cc-display-item-list-view');this.displayItemDebugger_=new tr.ui.e.chrome.cc.DisplayItemDebugger();Polymer.dom(this).appendChild(this.displayItemDebugger_);},updateContents(){if(this.objectSnapshot_&&this.displayItemDebugger_){this.displayItemDebugger_.displayItemList=this.objectSnapshot_;}}};tr.ui.analysis.ObjectSnapshotView.register(DisplayItemSnapshotView,{typeNames:['cc::DisplayItemList'],showInstances:false});return{DisplayItemSnapshotView,};});'use strict';tr.exportTo('tr.ui.e.chrome.cc',function(){const constants=tr.e.cc.constants;const RENDER_PASS_QUADS=Math.max(constants.ACTIVE_TREE,constants.PENDING_TREE)+1;const LayerPicker=tr.ui.b.define('tr-ui-e-chrome-cc-layer-picker');LayerPicker.prototype={__proto__:HTMLUnknownElement.prototype,decorate(){this.lthi_=undefined;this.controls_=document.createElement('top-controls');this.renderPassQuads_=false;this.itemList_=new tr.ui.b.ListView();Polymer.dom(this).appendChild(this.controls_);Polymer.dom(this).appendChild(this.itemList_);this.itemList_.addEventListener('selection-changed',this.onItemSelectionChanged_.bind(this));Polymer.dom(this.controls_).appendChild(tr.ui.b.createSelector(this,'whichTree','layerPicker.whichTree',constants.ACTIVE_TREE,[{label:'Active tree',value:constants.ACTIVE_TREE},{label:'Pending tree',value:constants.PENDING_TREE},{label:'Render pass quads',value:RENDER_PASS_QUADS}]));this.showPureTransformLayers_=false;const showPureTransformLayers=tr.ui.b.createCheckBox(this,'showPureTransformLayers','layerPicker.showPureTransformLayers',false,'Transform layers');Polymer.dom(showPureTransformLayers).classList.add('show-transform-layers');showPureTransformLayers.title='When checked, pure transform layers are shown';Polymer.dom(this.controls_).appendChild(showPureTransformLayers);},get lthiSnapshot(){return this.lthiSnapshot_;},set lthiSnapshot(lthiSnapshot){this.lthiSnapshot_=lthiSnapshot;this.updateContents_();},get whichTree(){return this.renderPassQuads_?constants.ACTIVE_TREE:this.whichTree_;},set whichTree(whichTree){this.whichTree_=whichTree;this.renderPassQuads_=(whichTree===RENDER_PASS_QUADS);this.updateContents_();tr.b.dispatchSimpleEvent(this,'selection-change',false);},get layerTreeImpl(){if(this.lthiSnapshot===undefined)return undefined;return this.lthiSnapshot.getTree(this.whichTree);},get isRenderPassQuads(){return this.renderPassQuads_;},get showPureTransformLayers(){return this.showPureTransformLayers_;},set showPureTransformLayers(show){if(this.showPureTransformLayers_===show)return;this.showPureTransformLayers_=show;this.updateContents_();},getRenderPassInfos_(){if(!this.lthiSnapshot_)return[];const renderPassInfo=[];if(!this.lthiSnapshot_.args.frame||!this.lthiSnapshot_.args.frame.renderPasses){return renderPassInfo;}
const renderPasses=this.lthiSnapshot_.args.frame.renderPasses;for(let i=0;i<renderPasses.length;++i){const info={renderPass:renderPasses[i],depth:0,id:i,name:'cc::RenderPass'};renderPassInfo.push(info);}
return renderPassInfo;},getLayerInfos_(){if(!this.lthiSnapshot_)return[];const tree=this.lthiSnapshot_.getTree(this.whichTree_);if(!tree)return[];const layerInfos=[];const showPureTransformLayers=this.showPureTransformLayers_;function isPureTransformLayer(layer){if(layer.args.compositingReasons&&layer.args.compositingReasons.length!==1&&layer.args.compositingReasons[0]!=='No reasons given'){return false;}
if(layer.args.drawsContent)return false;return true;}
const visitedLayers={};function visitLayer(layer,depth,isMask,isReplica){if(visitedLayers[layer.layerId])return;visitedLayers[layer.layerId]=true;const info={layer,depth};if(layer.args.drawsContent){info.name=layer.objectInstance.name;}else{info.name='cc::LayerImpl';}
if(layer.usingGpuRasterization){info.name+=' (G)';}
info.isMaskLayer=isMask;info.replicaLayer=isReplica;if(showPureTransformLayers||!isPureTransformLayer(layer)){layerInfos.push(info);}}
tree.iterLayers(visitLayer);return layerInfos;},updateContents_(){if(this.renderPassQuads_){this.updateRenderPassContents_();}else{this.updateLayerContents_();}},updateRenderPassContents_(){this.itemList_.clear();let selectedRenderPassId;if(this.selection_&&this.selection_.associatedRenderPassId){selectedRenderPassId=this.selection_.associatedRenderPassId;}
const renderPassInfos=this.getRenderPassInfos_();renderPassInfos.forEach(function(renderPassInfo){const renderPass=renderPassInfo.renderPass;const id=renderPassInfo.id;const item=this.createElementWithDepth_(renderPassInfo.depth);const labelEl=Polymer.dom(item).appendChild(tr.ui.b.createSpan());Polymer.dom(labelEl).textContent=renderPassInfo.name+' '+id;item.renderPass=renderPass;item.renderPassId=id;Polymer.dom(this.itemList_).appendChild(item);if(id===selectedRenderPassId){renderPass.selectionState=tr.model.SelectionState.SELECTED;}},this);},updateLayerContents_(){this.changingItemSelection_=true;try{this.itemList_.clear();let selectedLayerId;if(this.selection_&&this.selection_.associatedLayerId){selectedLayerId=this.selection_.associatedLayerId;}
const layerInfos=this.getLayerInfos_();layerInfos.forEach(function(layerInfo){const layer=layerInfo.layer;const id=layer.layerId;const item=this.createElementWithDepth_(layerInfo.depth);const labelEl=Polymer.dom(item).appendChild(tr.ui.b.createSpan());Polymer.dom(labelEl).textContent=layerInfo.name+' '+id;const notesEl=Polymer.dom(item).appendChild(tr.ui.b.createSpan());if(layerInfo.isMaskLayer){Polymer.dom(notesEl).textContent+='(mask)';}
if(layerInfo.isReplicaLayer){Polymer.dom(notesEl).textContent+='(replica)';}
if((layer.gpuMemoryUsageInBytes!==undefined)&&(layer.gpuMemoryUsageInBytes>0)){const gpuUsageStr=tr.b.Unit.byName.sizeInBytes.format(layer.gpuMemoryUsageInBytes);Polymer.dom(notesEl).textContent+=' ('+gpuUsageStr+' MiB)';}
item.layer=layer;Polymer.dom(this.itemList_).appendChild(item);if(layer.layerId===selectedLayerId){layer.selectionState=tr.model.SelectionState.SELECTED;item.selected=true;}},this);}finally{this.changingItemSelection_=false;}},createElementWithDepth_(depth){const item=document.createElement('div');const indentEl=Polymer.dom(item).appendChild(tr.ui.b.createSpan());indentEl.style.whiteSpace='pre';for(let i=0;i<depth;i++){Polymer.dom(indentEl).textContent=Polymer.dom(indentEl).textContent+' ';}
return item;},onItemSelectionChanged_(e){if(this.changingItemSelection_)return;if(this.renderPassQuads_){this.onRenderPassSelected_(e);}else{this.onLayerSelected_(e);}
tr.b.dispatchSimpleEvent(this,'selection-change',false);},onRenderPassSelected_(e){let selectedRenderPass;let selectedRenderPassId;if(this.itemList_.selectedElement){selectedRenderPass=this.itemList_.selectedElement.renderPass;selectedRenderPassId=this.itemList_.selectedElement.renderPassId;}
if(selectedRenderPass){this.selection_=new tr.ui.e.chrome.cc.RenderPassSelection(selectedRenderPass,selectedRenderPassId);}else{this.selection_=undefined;}},onLayerSelected_(e){let selectedLayer;if(this.itemList_.selectedElement){selectedLayer=this.itemList_.selectedElement.layer;}
if(selectedLayer){this.selection_=new tr.ui.e.chrome.cc.LayerSelection(selectedLayer);}else{this.selection_=undefined;}},get selection(){return this.selection_;},set selection(selection){if(this.selection_===selection)return;this.selection_=selection;this.updateContents_();}};return{LayerPicker,};});'use strict';tr.exportTo('tr.e.cc',function(){const ObjectSnapshot=tr.model.ObjectSnapshot;function RenderPassSnapshot(){ObjectSnapshot.apply(this,arguments);}
RenderPassSnapshot.prototype={__proto__:ObjectSnapshot.prototype,preInitialize(){tr.e.cc.preInitializeObject(this);},initialize(){tr.e.cc.moveRequiredFieldsFromArgsToToplevel(this,['quadList']);}};ObjectSnapshot.subTypes.register(RenderPassSnapshot,{typeName:'cc::RenderPass'});return{RenderPassSnapshot,};});'use strict';tr.exportTo('tr.ui.b',function(){const deg2rad=tr.b.math.deg2rad;const constants={DEFAULT_SCALE:0.5,DEFAULT_EYE_DISTANCE:10000,MINIMUM_DISTANCE:1000,MAXIMUM_DISTANCE:100000,FOV:15,RESCALE_TIMEOUT_MS:200,MAXIMUM_TILT:80,SETTINGS_NAMESPACE:'tr.ui_camera'};const Camera=tr.ui.b.define('camera');Camera.prototype={__proto__:HTMLUnknownElement.prototype,decorate(eventSource){this.eventSource_=eventSource;this.eventSource_.addEventListener('beginpan',this.onPanBegin_.bind(this));this.eventSource_.addEventListener('updatepan',this.onPanUpdate_.bind(this));this.eventSource_.addEventListener('endpan',this.onPanEnd_.bind(this));this.eventSource_.addEventListener('beginzoom',this.onZoomBegin_.bind(this));this.eventSource_.addEventListener('updatezoom',this.onZoomUpdate_.bind(this));this.eventSource_.addEventListener('endzoom',this.onZoomEnd_.bind(this));this.eventSource_.addEventListener('beginrotate',this.onRotateBegin_.bind(this));this.eventSource_.addEventListener('updaterotate',this.onRotateUpdate_.bind(this));this.eventSource_.addEventListener('endrotate',this.onRotateEnd_.bind(this));this.eye_=[0,0,constants.DEFAULT_EYE_DISTANCE];this.gazeTarget_=[0,0,0];this.rotation_=[0,0];this.pixelRatio_=window.devicePixelRatio||1;},get modelViewMatrix(){const mvMatrix=mat4.create();mat4.lookAt(mvMatrix,this.eye_,this.gazeTarget_,[0,1,0]);return mvMatrix;},get projectionMatrix(){const rect=tr.ui.b.windowRectForElement(this.canvas_).scaleSize(this.pixelRatio_);const aspectRatio=rect.width/rect.height;const matrix=mat4.create();mat4.perspective(matrix,deg2rad(constants.FOV),aspectRatio,1,100000);return matrix;},set canvas(c){this.canvas_=c;},set deviceRect(rect){this.deviceRect_=rect;},get stackingDistanceDampening(){const gazeVector=[this.gazeTarget_[0]-this.eye_[0],this.gazeTarget_[1]-this.eye_[1],this.gazeTarget_[2]-this.eye_[2]];vec3.normalize(gazeVector,gazeVector);return 1+gazeVector[2];},loadCameraFromSettings(settings){this.eye_=settings.get('eye',this.eye_,constants.SETTINGS_NAMESPACE);this.gazeTarget_=settings.get('gaze_target',this.gazeTarget_,constants.SETTINGS_NAMESPACE);this.rotation_=settings.get('rotation',this.rotation_,constants.SETTINGS_NAMESPACE);this.dispatchRenderEvent_();},saveCameraToSettings(settings){settings.set('eye',this.eye_,constants.SETTINGS_NAMESPACE);settings.set('gaze_target',this.gazeTarget_,constants.SETTINGS_NAMESPACE);settings.set('rotation',this.rotation_,constants.SETTINGS_NAMESPACE);},resetCamera(){this.eye_=[0,0,constants.DEFAULT_EYE_DISTANCE];this.gazeTarget_=[0,0,0];this.rotation_=[0,0];const settings=tr.b.SessionSettings();const keys=settings.keys(constants.SETTINGS_NAMESPACE);if(keys.length!==0){this.loadCameraFromSettings(settings);return;}
if(this.deviceRect_){const rect=tr.ui.b.windowRectForElement(this.canvas_).scaleSize(this.pixelRatio_);this.eye_[0]=this.deviceRect_.width/2;this.eye_[1]=this.deviceRect_.height/2;this.gazeTarget_[0]=this.deviceRect_.width/2;this.gazeTarget_[1]=this.deviceRect_.height/2;}
this.saveCameraToSettings(settings);this.dispatchRenderEvent_();},updatePanByDelta(delta){const rect=tr.ui.b.windowRectForElement(this.canvas_).scaleSize(this.pixelRatio_);const eyeVector=[this.eye_[0]-this.gazeTarget_[0],this.eye_[1]-this.gazeTarget_[1],this.eye_[2]-this.gazeTarget_[2]];const length=vec3.length(eyeVector);vec3.normalize(eyeVector,eyeVector);const halfFov=constants.FOV/2;const multiplier=2.0*length*Math.tan(deg2rad(halfFov))/rect.height;const up=[0,1,0];const rotMatrix=mat4.create();mat4.rotate(rotMatrix,rotMatrix,deg2rad(this.rotation_[1]),[0,1,0]);mat4.rotate(rotMatrix,rotMatrix,deg2rad(this.rotation_[0]),[1,0,0]);vec3.transformMat4(up,up,rotMatrix);const right=[0,0,0];vec3.cross(right,eyeVector,up);vec3.normalize(right,right);for(let i=0;i<3;++i){this.gazeTarget_[i]+=delta[0]*multiplier*right[i]-delta[1]*multiplier*up[i];this.eye_[i]=this.gazeTarget_[i]+length*eyeVector[i];}
if(Math.abs(this.gazeTarget_[2])>1e-6){const gazeVector=[-eyeVector[0],-eyeVector[1],-eyeVector[2]];const newLength=tr.b.math.clamp(-this.eye_[2]/gazeVector[2],constants.MINIMUM_DISTANCE,constants.MAXIMUM_DISTANCE);for(let i=0;i<3;++i){this.gazeTarget_[i]=this.eye_[i]+newLength*gazeVector[i];}}
this.saveCameraToSettings(tr.b.SessionSettings());this.dispatchRenderEvent_();},updateZoomByDelta(delta){let deltaY=delta[1];deltaY=tr.b.math.clamp(deltaY,-50,50);let scale=1.0-deltaY/100.0;const eyeVector=[0,0,0];vec3.subtract(eyeVector,this.eye_,this.gazeTarget_);const length=vec3.length(eyeVector);if(length*scale<constants.MINIMUM_DISTANCE){scale=constants.MINIMUM_DISTANCE/length;}else if(length*scale>constants.MAXIMUM_DISTANCE){scale=constants.MAXIMUM_DISTANCE/length;}
vec3.scale(eyeVector,eyeVector,scale);vec3.add(this.eye_,this.gazeTarget_,eyeVector);this.saveCameraToSettings(tr.b.SessionSettings());this.dispatchRenderEvent_();},updateRotateByDelta(delta){delta[0]*=0.5;delta[1]*=0.5;if(Math.abs(this.rotation_[0]+delta[1])>constants.MAXIMUM_TILT){return;}
if(Math.abs(this.rotation_[1]-delta[0])>constants.MAXIMUM_TILT){return;}
const eyeVector=[0,0,0,0];vec3.subtract(eyeVector,this.eye_,this.gazeTarget_);const rotMatrix=mat4.create();mat4.rotate(rotMatrix,rotMatrix,-deg2rad(this.rotation_[0]),[1,0,0]);mat4.rotate(rotMatrix,rotMatrix,-deg2rad(this.rotation_[1]),[0,1,0]);vec4.transformMat4(eyeVector,eyeVector,rotMatrix);this.rotation_[0]+=delta[1];this.rotation_[1]-=delta[0];mat4.identity(rotMatrix);mat4.rotate(rotMatrix,rotMatrix,deg2rad(this.rotation_[1]),[0,1,0]);mat4.rotate(rotMatrix,rotMatrix,deg2rad(this.rotation_[0]),[1,0,0]);vec4.transformMat4(eyeVector,eyeVector,rotMatrix);vec3.add(this.eye_,this.gazeTarget_,eyeVector);this.saveCameraToSettings(tr.b.SessionSettings());this.dispatchRenderEvent_();},onPanBegin_(e){this.panning_=true;this.lastMousePosition_=this.getMousePosition_(e);},onPanUpdate_(e){if(!this.panning_)return;const delta=this.getMouseDelta_(e,this.lastMousePosition_);this.lastMousePosition_=this.getMousePosition_(e);this.updatePanByDelta(delta);},onPanEnd_(e){this.panning_=false;},onZoomBegin_(e){this.zooming_=true;const p=this.getMousePosition_(e);this.lastMousePosition_=p;this.zoomPoint_=p;},onZoomUpdate_(e){if(!this.zooming_)return;const delta=this.getMouseDelta_(e,this.lastMousePosition_);this.lastMousePosition_=this.getMousePosition_(e);this.updateZoomByDelta(delta);},onZoomEnd_(e){this.zooming_=false;this.zoomPoint_=undefined;},onRotateBegin_(e){this.rotating_=true;this.lastMousePosition_=this.getMousePosition_(e);},onRotateUpdate_(e){if(!this.rotating_)return;const delta=this.getMouseDelta_(e,this.lastMousePosition_);this.lastMousePosition_=this.getMousePosition_(e);this.updateRotateByDelta(delta);},onRotateEnd_(e){this.rotating_=false;},getMousePosition_(e){const rect=tr.ui.b.windowRectForElement(this.canvas_);return[(e.clientX-rect.x)*this.pixelRatio_,(e.clientY-rect.y)*this.pixelRatio_];},getMouseDelta_(e,p){const newP=this.getMousePosition_(e);return[newP[0]-p[0],newP[1]-p[1]];},dispatchRenderEvent_(){tr.b.dispatchSimpleEvent(this,'renderrequired',false,false);}};return{Camera,};});'use strict';tr.exportTo('tr.ui.b',function(){const THIS_DOC=document.currentScript.ownerDocument;const constants={};constants.IMAGE_LOAD_RETRY_TIME_MS=500;constants.SUBDIVISION_MINIMUM=1;constants.SUBDIVISION_RECURSION_DEPTH=3;constants.SUBDIVISION_DEPTH_THRESHOLD=100;constants.FAR_PLANE_DISTANCE=10000;function drawTexturedTriangle(ctx,img,p0,p1,p2,t0,t1,t2){const tmpP0=[p0[0],p0[1]];const tmpP1=[p1[0],p1[1]];const tmpP2=[p2[0],p2[1]];const tmpT0=[t0[0],t0[1]];const tmpT1=[t1[0],t1[1]];const tmpT2=[t2[0],t2[1]];ctx.beginPath();ctx.moveTo(tmpP0[0],tmpP0[1]);ctx.lineTo(tmpP1[0],tmpP1[1]);ctx.lineTo(tmpP2[0],tmpP2[1]);ctx.closePath();tmpP1[0]-=tmpP0[0];tmpP1[1]-=tmpP0[1];tmpP2[0]-=tmpP0[0];tmpP2[1]-=tmpP0[1];tmpT1[0]-=tmpT0[0];tmpT1[1]-=tmpT0[1];tmpT2[0]-=tmpT0[0];tmpT2[1]-=tmpT0[1];const det=1/(tmpT1[0]*tmpT2[1]-tmpT2[0]*tmpT1[1]);const a=(tmpT2[1]*tmpP1[0]-tmpT1[1]*tmpP2[0])*det;const b=(tmpT2[1]*tmpP1[1]-tmpT1[1]*tmpP2[1])*det;const c=(tmpT1[0]*tmpP2[0]-tmpT2[0]*tmpP1[0])*det;const d=(tmpT1[0]*tmpP2[1]-tmpT2[0]*tmpP1[1])*det;const e=tmpP0[0]-a*tmpT0[0]-c*tmpT0[1];const f=tmpP0[1]-b*tmpT0[0]-d*tmpT0[1];ctx.save();ctx.transform(a,b,c,d,e,f);ctx.clip();ctx.drawImage(img,0,0);ctx.restore();}
function drawTriangleSub(ctx,img,p0,p1,p2,t0,t1,t2,opt_recursionDepth){const depth=opt_recursionDepth||0;let subdivisionIndex=0;if(depth<constants.SUBDIVISION_MINIMUM){subdivisionIndex=7;}else if(depth<constants.SUBDIVISION_RECURSION_DEPTH){if(Math.abs(p0[2]-p1[2])>constants.SUBDIVISION_DEPTH_THRESHOLD){subdivisionIndex+=1;}
if(Math.abs(p0[2]-p2[2])>constants.SUBDIVISION_DEPTH_THRESHOLD){subdivisionIndex+=2;}
if(Math.abs(p1[2]-p2[2])>constants.SUBDIVISION_DEPTH_THRESHOLD){subdivisionIndex+=4;}}
const p01=vec4.create();const p02=vec4.create();const p12=vec4.create();const t01=vec2.create();const t02=vec2.create();const t12=vec2.create();for(let i=0;i<2;++i){p0[i]*=p0[2];p1[i]*=p1[2];p2[i]*=p2[2];}
for(let i=0;i<4;++i){p01[i]=(p0[i]+p1[i])/2;p02[i]=(p0[i]+p2[i])/2;p12[i]=(p1[i]+p2[i])/2;}
for(let i=0;i<2;++i){p0[i]/=p0[2];p1[i]/=p1[2];p2[i]/=p2[2];p01[i]/=p01[2];p02[i]/=p02[2];p12[i]/=p12[2];}
for(let i=0;i<2;++i){t01[i]=(t0[i]+t1[i])/2;t02[i]=(t0[i]+t2[i])/2;t12[i]=(t1[i]+t2[i])/2;}
switch(subdivisionIndex){case 1:drawTriangleSub(ctx,img,p0,p01,p2,t0,t01,t2,depth+1);drawTriangleSub(ctx,img,p01,p1,p2,t01,t1,t2,depth+1);break;case 2:drawTriangleSub(ctx,img,p0,p1,p02,t0,t1,t02,depth+1);drawTriangleSub(ctx,img,p1,p02,p2,t1,t02,t2,depth+1);break;case 3:drawTriangleSub(ctx,img,p0,p01,p02,t0,t01,t02,depth+1);drawTriangleSub(ctx,img,p02,p01,p2,t02,t01,t2,depth+1);drawTriangleSub(ctx,img,p01,p1,p2,t01,t1,t2,depth+1);break;case 4:drawTriangleSub(ctx,img,p0,p12,p2,t0,t12,t2,depth+1);drawTriangleSub(ctx,img,p0,p1,p12,t0,t1,t12,depth+1);break;case 5:drawTriangleSub(ctx,img,p0,p01,p2,t0,t01,t2,depth+1);drawTriangleSub(ctx,img,p2,p01,p12,t2,t01,t12,depth+1);drawTriangleSub(ctx,img,p01,p1,p12,t01,t1,t12,depth+1);break;case 6:drawTriangleSub(ctx,img,p0,p12,p02,t0,t12,t02,depth+1);drawTriangleSub(ctx,img,p0,p1,p12,t0,t1,t12,depth+1);drawTriangleSub(ctx,img,p02,p12,p2,t02,t12,t2,depth+1);break;case 7:drawTriangleSub(ctx,img,p0,p01,p02,t0,t01,t02,depth+1);drawTriangleSub(ctx,img,p01,p12,p02,t01,t12,t02,depth+1);drawTriangleSub(ctx,img,p01,p1,p12,t01,t1,t12,depth+1);drawTriangleSub(ctx,img,p02,p12,p2,t02,t12,t2,depth+1);break;default:drawTexturedTriangle(ctx,img,p0,p1,p2,t0,t1,t2);break;}}
const tmpVec4=vec4.create();function transform(transformed,point,matrix,viewport){vec4.set(tmpVec4,point[0],point[1],0,1);vec4.transformMat4(tmpVec4,tmpVec4,matrix);let w=tmpVec4[3];if(w<1e-6)w=1e-6;transformed[0]=((tmpVec4[0]/w)+1)*viewport.width/2;transformed[1]=((tmpVec4[1]/w)+1)*viewport.height/2;transformed[2]=w;}
function drawProjectedQuadBackgroundToContext(quad,p1,p2,p3,p4,ctx,quadCanvas){if(quad.imageData){quadCanvas.width=quad.imageData.width;quadCanvas.height=quad.imageData.height;quadCanvas.getContext('2d').putImageData(quad.imageData,0,0);const quadBBox=new tr.b.math.BBox2();quadBBox.addQuad(quad);const iw=quadCanvas.width;const ih=quadCanvas.height;drawTriangleSub(ctx,quadCanvas,p1,p2,p4,[0,0],[iw,0],[0,ih]);drawTriangleSub(ctx,quadCanvas,p2,p3,p4,[iw,0],[iw,ih],[0,ih]);}
if(quad.backgroundColor){ctx.fillStyle=quad.backgroundColor;ctx.beginPath();ctx.moveTo(p1[0],p1[1]);ctx.lineTo(p2[0],p2[1]);ctx.lineTo(p3[0],p3[1]);ctx.lineTo(p4[0],p4[1]);ctx.closePath();ctx.fill();}}
function drawProjectedQuadOutlineToContext(quad,p1,p2,p3,p4,ctx,quadCanvas){ctx.beginPath();ctx.moveTo(p1[0],p1[1]);ctx.lineTo(p2[0],p2[1]);ctx.lineTo(p3[0],p3[1]);ctx.lineTo(p4[0],p4[1]);ctx.closePath();ctx.save();if(quad.borderColor){ctx.strokeStyle=quad.borderColor;}else{ctx.strokeStyle='rgb(128,128,128)';}
if(quad.shadowOffset){ctx.shadowColor='rgb(0, 0, 0)';ctx.shadowOffsetX=quad.shadowOffset[0];ctx.shadowOffsetY=quad.shadowOffset[1];if(quad.shadowBlur){ctx.shadowBlur=quad.shadowBlur;}}
if(quad.borderWidth){ctx.lineWidth=quad.borderWidth;}else{ctx.lineWidth=1;}
ctx.stroke();ctx.restore();}
function drawProjectedQuadSelectionOutlineToContext(quad,p1,p2,p3,p4,ctx,quadCanvas){if(!quad.upperBorderColor)return;ctx.lineWidth=8;ctx.strokeStyle=quad.upperBorderColor;ctx.beginPath();ctx.moveTo(p1[0],p1[1]);ctx.lineTo(p2[0],p2[1]);ctx.lineTo(p3[0],p3[1]);ctx.lineTo(p4[0],p4[1]);ctx.closePath();ctx.stroke();}
function drawProjectedQuadToContext(passNumber,quad,p1,p2,p3,p4,ctx,quadCanvas){if(passNumber===0){drawProjectedQuadBackgroundToContext(quad,p1,p2,p3,p4,ctx,quadCanvas);}else if(passNumber===1){drawProjectedQuadOutlineToContext(quad,p1,p2,p3,p4,ctx,quadCanvas);}else if(passNumber===2){drawProjectedQuadSelectionOutlineToContext(quad,p1,p2,p3,p4,ctx,quadCanvas);}else{throw new Error('Invalid pass number');}}
const tmpP1=vec3.create();const tmpP2=vec3.create();const tmpP3=vec3.create();const tmpP4=vec3.create();function transformAndProcessQuads(matrix,viewport,quads,numPasses,handleQuadFunc,opt_arg1,opt_arg2){for(let passNumber=0;passNumber<numPasses;passNumber++){for(let i=0;i<quads.length;i++){const quad=quads[i];transform(tmpP1,quad.p1,matrix,viewport);transform(tmpP2,quad.p2,matrix,viewport);transform(tmpP3,quad.p3,matrix,viewport);transform(tmpP4,quad.p4,matrix,viewport);handleQuadFunc(passNumber,quad,tmpP1,tmpP2,tmpP3,tmpP4,opt_arg1,opt_arg2);}}}
const QuadStackView=tr.ui.b.define('quad-stack-view');QuadStackView.prototype={__proto__:HTMLDivElement.prototype,decorate(){this.className='quad-stack-view';const node=tr.ui.b.instantiateTemplate('#quad-stack-view-template',THIS_DOC);Polymer.dom(this).appendChild(node);this.updateHeaderVisibility_();this.canvas_=Polymer.dom(this).querySelector('#canvas');this.chromeImages_={left:Polymer.dom(this).querySelector('#chrome-left'),mid:Polymer.dom(this).querySelector('#chrome-mid'),right:Polymer.dom(this).querySelector('#chrome-right')};const stackingDistanceSlider=Polymer.dom(this).querySelector('#stacking-distance-slider');stackingDistanceSlider.value=tr.b.Settings.get('quadStackView.stackingDistance',45);stackingDistanceSlider.addEventListener('change',this.onStackingDistanceChange_.bind(this));stackingDistanceSlider.addEventListener('input',this.onStackingDistanceChange_.bind(this));this.trackMouse_();this.camera_=new tr.ui.b.Camera(this.mouseModeSelector_);this.camera_.addEventListener('renderrequired',this.onRenderRequired_.bind(this));this.cameraWasReset_=false;this.camera_.canvas=this.canvas_;this.viewportRect_=tr.b.math.Rect.fromXYWH(0,0,0,0);this.pixelRatio_=window.devicePixelRatio||1;},updateHeaderVisibility_(){if(this.headerText){Polymer.dom(this).querySelector('#header').style.display='';}else{Polymer.dom(this).querySelector('#header').style.display='none';}},get headerText(){return Polymer.dom(this).querySelector('#header').textContent;},set headerText(headerText){Polymer.dom(this).querySelector('#header').textContent=headerText;this.updateHeaderVisibility_();},onStackingDistanceChange_(e){tr.b.Settings.set('quadStackView.stackingDistance',this.stackingDistance);this.scheduleRender();e.stopPropagation();},get stackingDistance(){return Polymer.dom(this).querySelector('#stacking-distance-slider').value;},get mouseModeSelector(){return this.mouseModeSelector_;},get camera(){return this.camera_;},set quads(q){this.quads_=q;this.scheduleRender();},set deviceRect(rect){if(!rect||rect.equalTo(this.deviceRect_))return;this.deviceRect_=rect;this.camera_.deviceRect=rect;this.chromeQuad_=undefined;},resize(){if(!this.offsetParent)return true;const width=parseInt(window.getComputedStyle(this.offsetParent).width);const height=parseInt(window.getComputedStyle(this.offsetParent).height);const rect=tr.b.math.Rect.fromXYWH(0,0,width,height);if(rect.equalTo(this.viewportRect_))return false;this.viewportRect_=rect;this.style.width=width+'px';this.style.height=height+'px';this.canvas_.style.width=width+'px';this.canvas_.style.height=height+'px';this.canvas_.width=this.pixelRatio_*width;this.canvas_.height=this.pixelRatio_*height;if(!this.cameraWasReset_){this.camera_.resetCamera();this.cameraWasReset_=true;}
return true;},readyToDraw(){if(!this.chromeImages_.left.src){let leftContent=window.getComputedStyle(this.chromeImages_.left).backgroundImage;leftContent=tr.ui.b.extractUrlString(leftContent);let midContent=window.getComputedStyle(this.chromeImages_.mid).backgroundImage;midContent=tr.ui.b.extractUrlString(midContent);let rightContent=window.getComputedStyle(this.chromeImages_.right).backgroundImage;rightContent=tr.ui.b.extractUrlString(rightContent);this.chromeImages_.left.src=leftContent;this.chromeImages_.mid.src=midContent;this.chromeImages_.right.src=rightContent;}
return(this.chromeImages_.left.height>0)&&(this.chromeImages_.mid.height>0)&&(this.chromeImages_.right.height>0);},get chromeQuad(){if(this.chromeQuad_)return this.chromeQuad_;const chromeCanvas=document.createElement('canvas');const offsetY=this.chromeImages_.left.height;chromeCanvas.width=this.deviceRect_.width;chromeCanvas.height=this.deviceRect_.height+offsetY;const leftWidth=this.chromeImages_.left.width;const midWidth=this.chromeImages_.mid.width;const rightWidth=this.chromeImages_.right.width;const chromeCtx=chromeCanvas.getContext('2d');chromeCtx.drawImage(this.chromeImages_.left,0,0);chromeCtx.save();chromeCtx.translate(leftWidth,0);const s=(this.deviceRect_.width-leftWidth-rightWidth)/midWidth;chromeCtx.scale(s,1);chromeCtx.drawImage(this.chromeImages_.mid,0,0);chromeCtx.restore();chromeCtx.drawImage(this.chromeImages_.right,leftWidth+s*midWidth,0);const chromeRect=tr.b.math.Rect.fromXYWH(this.deviceRect_.x,this.deviceRect_.y-offsetY,this.deviceRect_.width,this.deviceRect_.height+offsetY);const chromeQuad=tr.b.math.Quad.fromRect(chromeRect);chromeQuad.stackingGroupId=this.maxStackingGroupId_+1;chromeQuad.imageData=chromeCtx.getImageData(0,0,chromeCanvas.width,chromeCanvas.height);chromeQuad.shadowOffset=[0,0];chromeQuad.shadowBlur=5;chromeQuad.borderWidth=3;this.chromeQuad_=chromeQuad;return this.chromeQuad_;},scheduleRender(){if(this.redrawScheduled_)return false;this.redrawScheduled_=true;tr.b.requestAnimationFrame(this.render,this);},onRenderRequired_(e){this.scheduleRender();},stackTransformAndProcessQuads_(numPasses,handleQuadFunc,includeChromeQuad,opt_arg1,opt_arg2){const mv=this.camera_.modelViewMatrix;const p=this.camera_.projectionMatrix;const viewport=tr.b.math.Rect.fromXYWH(0,0,this.canvas_.width,this.canvas_.height);const quadStacks=[];for(let i=0;i<this.quads_.length;++i){const quad=this.quads_[i];const stackingId=quad.stackingGroupId||0;while(stackingId>=quadStacks.length){quadStacks.push([]);}
quadStacks[stackingId].push(quad);}
const mvp=mat4.create();this.maxStackingGroupId_=quadStacks.length;const effectiveStackingDistance=this.stackingDistance*this.camera_.stackingDistanceDampening;mat4.multiply(mvp,p,mv);for(let i=0;i<quadStacks.length;++i){transformAndProcessQuads(mvp,viewport,quadStacks[i],numPasses,handleQuadFunc,opt_arg1,opt_arg2);mat4.translate(mv,mv,[0,0,effectiveStackingDistance]);mat4.multiply(mvp,p,mv);}
if(includeChromeQuad&&this.deviceRect_){transformAndProcessQuads(mvp,viewport,[this.chromeQuad],numPasses,drawProjectedQuadToContext,opt_arg1,opt_arg2);}},render(){this.redrawScheduled_=false;if(!this.readyToDraw()){setTimeout(this.scheduleRender.bind(this),constants.IMAGE_LOAD_RETRY_TIME_MS);return;}
if(!this.quads_)return;const canvasCtx=this.canvas_.getContext('2d');if(!this.resize()){canvasCtx.clearRect(0,0,this.canvas_.width,this.canvas_.height);}
const quadCanvas=document.createElement('canvas');this.stackTransformAndProcessQuads_(3,drawProjectedQuadToContext,true,canvasCtx,quadCanvas);quadCanvas.width=0;},trackMouse_(){this.mouseModeSelector_=document.createElement('tr-ui-b-mouse-mode-selector');this.mouseModeSelector_.targetElement=this.canvas_;this.mouseModeSelector_.supportedModeMask=tr.ui.b.MOUSE_SELECTOR_MODE.SELECTION|tr.ui.b.MOUSE_SELECTOR_MODE.PANSCAN|tr.ui.b.MOUSE_SELECTOR_MODE.ZOOM|tr.ui.b.MOUSE_SELECTOR_MODE.ROTATE;this.mouseModeSelector_.mode=tr.ui.b.MOUSE_SELECTOR_MODE.PANSCAN;this.mouseModeSelector_.pos={x:0,y:100};Polymer.dom(this).appendChild(this.mouseModeSelector_);this.mouseModeSelector_.settingsKey='quadStackView.mouseModeSelector';this.mouseModeSelector_.setModifierForAlternateMode(tr.ui.b.MOUSE_SELECTOR_MODE.ROTATE,tr.ui.b.MODIFIER.SHIFT);this.mouseModeSelector_.setModifierForAlternateMode(tr.ui.b.MOUSE_SELECTOR_MODE.PANSCAN,tr.ui.b.MODIFIER.SPACE);this.mouseModeSelector_.setModifierForAlternateMode(tr.ui.b.MOUSE_SELECTOR_MODE.ZOOM,tr.ui.b.MODIFIER.CMD_OR_CTRL);this.mouseModeSelector_.addEventListener('updateselection',this.onSelectionUpdate_.bind(this));this.mouseModeSelector_.addEventListener('endselection',this.onSelectionUpdate_.bind(this));},extractRelativeMousePosition_(e){const br=this.canvas_.getBoundingClientRect();return[this.pixelRatio_*(e.clientX-this.canvas_.offsetLeft-br.left),this.pixelRatio_*(e.clientY-this.canvas_.offsetTop-br.top)];},onSelectionUpdate_(e){const mousePos=this.extractRelativeMousePosition_(e);const res=[];function handleQuad(passNumber,quad,p1,p2,p3,p4){if(tr.b.math.pointInImplicitQuad(mousePos,p1,p2,p3,p4)){res.push(quad);}}
this.stackTransformAndProcessQuads_(1,handleQuad,false);e=new tr.b.Event('selectionchange');e.quads=res;this.dispatchEvent(e);}};return{QuadStackView,};});'use strict';tr.exportTo('tr.ui.e.chrome.cc',function(){const ColorScheme=tr.b.ColorScheme;const THIS_DOC=document.currentScript.ownerDocument;const TILE_HEATMAP_TYPE={};TILE_HEATMAP_TYPE.NONE='none';TILE_HEATMAP_TYPE.SCHEDULED_PRIORITY='scheduledPriority';TILE_HEATMAP_TYPE.USING_GPU_MEMORY='usingGpuMemory';const cc=tr.ui.e.chrome.cc;function createTileRectsSelectorBaseOptions(){return[{label:'None',value:'none'},{label:'Coverage Rects',value:'coverage'}];}
const LayerTreeQuadStackView=tr.ui.b.define('tr-ui-e-chrome-cc-layer-tree-quad-stack-view');LayerTreeQuadStackView.prototype={__proto__:HTMLDivElement.prototype,decorate(){this.isRenderPassQuads_=false;this.pictureAsImageData_={};this.messages_=[];this.controls_=document.createElement('top-controls');this.infoBar_=document.createElement('tr-ui-b-info-bar');this.quadStackView_=new tr.ui.b.QuadStackView();this.quadStackView_.addEventListener('selectionchange',this.onQuadStackViewSelectionChange_.bind(this));this.extraHighlightsByLayerId_=undefined;this.inputEventImageData_=undefined;const m=tr.ui.b.MOUSE_SELECTOR_MODE;const mms=this.quadStackView_.mouseModeSelector;mms.settingsKey='tr.e.cc.layerTreeQuadStackView.mouseModeSelector';mms.setKeyCodeForMode(m.SELECTION,'Z'.charCodeAt(0));mms.setKeyCodeForMode(m.PANSCAN,'X'.charCodeAt(0));mms.setKeyCodeForMode(m.ZOOM,'C'.charCodeAt(0));mms.setKeyCodeForMode(m.ROTATE,'V'.charCodeAt(0));const node=tr.ui.b.instantiateTemplate('#tr-ui-e-chrome-cc-layer-tree-quad-stack-view-template',THIS_DOC);Polymer.dom(this).appendChild(node);Polymer.dom(this).appendChild(this.controls_);Polymer.dom(this).appendChild(this.infoBar_);Polymer.dom(this).appendChild(this.quadStackView_);this.tileRectsSelector_=tr.ui.b.createSelector(this,'howToShowTiles','layerView.howToShowTiles','none',createTileRectsSelectorBaseOptions());Polymer.dom(this.controls_).appendChild(this.tileRectsSelector_);const tileHeatmapText=tr.ui.b.createSpan({textContent:'Tile heatmap:'});Polymer.dom(this.controls_).appendChild(tileHeatmapText);const tileHeatmapSelector=tr.ui.b.createSelector(this,'tileHeatmapType','layerView.tileHeatmapType',TILE_HEATMAP_TYPE.NONE,[{label:'None',value:TILE_HEATMAP_TYPE.NONE},{label:'Scheduled Priority',value:TILE_HEATMAP_TYPE.SCHEDULED_PRIORITY},{label:'Is using GPU memory',value:TILE_HEATMAP_TYPE.USING_GPU_MEMORY}]);Polymer.dom(this.controls_).appendChild(tileHeatmapSelector);const showOtherLayersCheckbox=tr.ui.b.createCheckBox(this,'showOtherLayers','layerView.showOtherLayers',true,'Other layers/passes');showOtherLayersCheckbox.title='When checked, show all layers, selected or not.';Polymer.dom(this.controls_).appendChild(showOtherLayersCheckbox);const showInvalidationsCheckbox=tr.ui.b.createCheckBox(this,'showInvalidations','layerView.showInvalidations',true,'Invalidations');showInvalidationsCheckbox.title='When checked, compositing invalidations are highlighted in red';Polymer.dom(this.controls_).appendChild(showInvalidationsCheckbox);const showUnrecordedRegionCheckbox=tr.ui.b.createCheckBox(this,'showUnrecordedRegion','layerView.showUnrecordedRegion',true,'Unrecorded area');showUnrecordedRegionCheckbox.title='When checked, unrecorded areas are highlighted in yellow';Polymer.dom(this.controls_).appendChild(showUnrecordedRegionCheckbox);const showBottlenecksCheckbox=tr.ui.b.createCheckBox(this,'showBottlenecks','layerView.showBottlenecks',true,'Bottlenecks');showBottlenecksCheckbox.title='When checked, scroll bottlenecks are highlighted';Polymer.dom(this.controls_).appendChild(showBottlenecksCheckbox);const showLayoutRectsCheckbox=tr.ui.b.createCheckBox(this,'showLayoutRects','layerView.showLayoutRects',false,'Layout rects');showLayoutRectsCheckbox.title='When checked, shows rects for regions where layout happened';Polymer.dom(this.controls_).appendChild(showLayoutRectsCheckbox);const showContentsCheckbox=tr.ui.b.createCheckBox(this,'showContents','layerView.showContents',true,'Contents');showContentsCheckbox.title='When checked, show the rendered contents inside the layer outlines';Polymer.dom(this.controls_).appendChild(showContentsCheckbox);const showAnimationBoundsCheckbox=tr.ui.b.createCheckBox(this,'showAnimationBounds','layerView.showAnimationBounds',false,'Animation Bounds');showAnimationBoundsCheckbox.title='When checked, show a border around'+' a layer showing the extent of its animation.';Polymer.dom(this.controls_).appendChild(showAnimationBoundsCheckbox);const showInputEventsCheckbox=tr.ui.b.createCheckBox(this,'showInputEvents','layerView.showInputEvents',true,'Input events');showInputEventsCheckbox.title='When checked, input events are '+'displayed as circles.';Polymer.dom(this.controls_).appendChild(showInputEventsCheckbox);this.whatRasterizedLink_=document.createElement('a');Polymer.dom(this.whatRasterizedLink_).classList.add('what-rasterized');Polymer.dom(this.whatRasterizedLink_).textContent='What rasterized?';this.whatRasterizedLink_.addEventListener('click',this.onWhatRasterizedLinkClicked_.bind(this));Polymer.dom(this).appendChild(this.whatRasterizedLink_);},get layerTreeImpl(){return this.layerTreeImpl_;},set isRenderPassQuads(newValue){this.isRenderPassQuads_=newValue;},set layerTreeImpl(layerTreeImpl){if(this.layerTreeImpl_===layerTreeImpl)return;this.layerTreeImpl_=layerTreeImpl;this.selection=undefined;},get extraHighlightsByLayerId(){return this.extraHighlightsByLayerId_;},set extraHighlightsByLayerId(extraHighlightsByLayerId){this.extraHighlightsByLayerId_=extraHighlightsByLayerId;this.scheduleUpdateContents_();},get showOtherLayers(){return this.showOtherLayers_;},set showOtherLayers(show){this.showOtherLayers_=show;this.updateContents_();},get showAnimationBounds(){return this.showAnimationBounds_;},set showAnimationBounds(show){this.showAnimationBounds_=show;this.updateContents_();},get showInputEvents(){return this.showInputEvents_;},set showInputEvents(show){this.showInputEvents_=show;this.updateContents_();},get showContents(){return this.showContents_;},set showContents(show){this.showContents_=show;this.updateContents_();},get showInvalidations(){return this.showInvalidations_;},set showInvalidations(show){this.showInvalidations_=show;this.updateContents_();},get showUnrecordedRegion(){return this.showUnrecordedRegion_;},set showUnrecordedRegion(show){this.showUnrecordedRegion_=show;this.updateContents_();},get showBottlenecks(){return this.showBottlenecks_;},set showBottlenecks(show){this.showBottlenecks_=show;this.updateContents_();},get showLayoutRects(){return this.showLayoutRects_;},set showLayoutRects(show){this.showLayoutRects_=show;this.updateContents_();},get howToShowTiles(){return this.howToShowTiles_;},set howToShowTiles(val){if(val!=='none'&&val!=='coverage'&&isNaN(parseFloat(val))){throw new Error('howToShowTiles requires "none" or "coverage" or a number');}
this.howToShowTiles_=val;this.updateContents_();},get tileHeatmapType(){return this.tileHeatmapType_;},set tileHeatmapType(val){this.tileHeatmapType_=val;this.updateContents_();},get selection(){return this.selection_;},set selection(selection){if(this.selection===selection)return;this.selection_=selection;tr.b.dispatchSimpleEvent(this,'selection-change');this.updateContents_();},regenerateContent(){this.updateTilesSelector_();this.updateContents_();},loadDataForImageElement_(image,callback){const imageContent=window.getComputedStyle(image).backgroundImage;image.src=tr.ui.b.extractUrlString(imageContent);image.onload=function(){const canvas=document.createElement('canvas');const ctx=canvas.getContext('2d');canvas.width=image.width;canvas.height=image.height;ctx.drawImage(image,0,0);const imageData=ctx.getImageData(0,0,canvas.width,canvas.height);callback(imageData);};},onQuadStackViewSelectionChange_(e){const selectableQuads=e.quads.filter(function(q){return q.selectionToSetIfClicked!==undefined;});if(selectableQuads.length===0){this.selection=undefined;return;}
selectableQuads.sort(function(x,y){const z=x.stackingGroupId-y.stackingGroupId;if(z!==0)return z;return x.selectionToSetIfClicked.specicifity-
y.selectionToSetIfClicked.specicifity;});const quadToSelect=selectableQuads[selectableQuads.length-1];this.selection=quadToSelect.selectionToSetIfClicked;},scheduleUpdateContents_(){if(this.updateContentsPending_)return;this.updateContentsPending_=true;tr.b.requestAnimationFrameInThisFrameIfPossible(this.updateContents_,this);},updateContents_(){if(!this.layerTreeImpl_){this.quadStackView_.headerText='No tree';this.quadStackView_.quads=[];return;}
const status=this.computePictureLoadingStatus_();if(!status.picturesComplete)return;const lthi=this.layerTreeImpl_.layerTreeHostImpl;const lthiInstance=lthi.objectInstance;const worldViewportRect=tr.b.math.Rect.fromXYWH(0,0,lthi.deviceViewportSize.width,lthi.deviceViewportSize.height);this.quadStackView_.deviceRect=worldViewportRect;if(this.isRenderPassQuads_){this.quadStackView_.quads=this.generateRenderPassQuads();}else{this.quadStackView_.quads=this.generateLayerQuads();}
this.updateWhatRasterizedLinkState_();let message='';if(lthi.tilesHaveGpuMemoryUsageInfo){const thisTreeUsageInBytes=this.layerTreeImpl_.gpuMemoryUsageInBytes;const otherTreeUsageInBytes=lthi.gpuMemoryUsageInBytes-
thisTreeUsageInBytes;message+=tr.b.convertUnit(thisTreeUsageInBytes,tr.b.UnitPrefixScale.BINARY.NONE,tr.b.UnitPrefixScale.BINARY.MEBI).toFixed(1)+' MiB on this tree';if(otherTreeUsageInBytes){message+=', '+
tr.b.convertUnit(otherTreeUsageInBytes,tr.b.UnitPrefixScale.BINARY.NONE,tr.b.UnitPrefixScale.BINARY.MEBI).toFixed(1)+' MiB on the other tree';}}else{if(this.layerTreeImpl_){const thisTreeUsageInBytes=this.layerTreeImpl_.gpuMemoryUsageInBytes;message+=tr.b.convertUnit(thisTreeUsageInBytes,tr.b.UnitPrefixScale.BINARY.NONE,tr.b.UnitPrefixScale.BINARY.MEBI).toFixed(1)+' MiB on this tree';if(this.layerTreeImpl_.otherTree){message+=', ??? MiB on other tree. ';}}}
if(lthi.args.tileManagerBasicState){const tmgs=lthi.args.tileManagerBasicState.globalState;message+=' (softMax='+
tr.b.convertUnit(tmgs.softMemoryLimitInBytes,tr.b.UnitPrefixScale.BINARY.NONE,tr.b.UnitPrefixScale.BINARY.MEBI).toFixed(1)+' MiB, hardMax='+
tr.b.convertUnit(tmgs.hardMemoryLimitInBytes,tr.b.UnitPrefixScale.BINARY.NONE,tr.b.UnitPrefixScale.BINARY.MEBI).toFixed(1)+' MiB, '+
tmgs.memoryLimitPolicy+')';}else{const thread=lthi.snapshottedOnThread;const didManageTilesSlices=thread.sliceGroup.slices.filter(s=>{if(s.category!=='tr.e.cc')return false;if(s.title!=='DidManage')return false;if(s.end>lthi.ts)return false;return true;});didManageTilesSlices.sort(function(x,y){return x.end-y.end;});if(didManageTilesSlices.length>0){const newest=didManageTilesSlices[didManageTilesSlices.length-1];const tmgs=newest.args.state.global_state;message+=' (softMax='+
tr.b.convertUnit(tmgs.softMemoryLimitInBytes,tr.b.UnitPrefixScale.BINARY.NONE,tr.b.UnitPrefixScale.BINARY.MEBI).toFixed(1)+' MiB, hardMax='+
tr.b.convertUnit(tmgs.hardMemoryLimitInBytes,tr.b.UnitPrefixScale.BINARY.NONE,tr.b.UnitPrefixScale.BINARY.MEBI).toFixed(1)+' MiB, '+
tmgs.memoryLimitPolicy+')';}}
if(this.layerTreeImpl_.otherTree){message+=' (Another tree exists)';}
if(message.length){this.quadStackView_.headerText=message;}else{this.quadStackView_.headerText=undefined;}
this.updateInfoBar_(status.messages);},updateTilesSelector_(){const data=createTileRectsSelectorBaseOptions();if(this.layerTreeImpl_){const lthi=this.layerTreeImpl_.layerTreeHostImpl;const scaleNames=lthi.getContentsScaleNames();for(const scale in scaleNames){data.push({label:'Scale '+scale+' ('+scaleNames[scale]+')',value:scale});}}
const newSelector=tr.ui.b.createSelector(this,'howToShowTiles','layerView.howToShowTiles','none',data);this.controls_.replaceChild(newSelector,this.tileRectsSelector_);this.tileRectsSelector_=newSelector;},computePictureLoadingStatus_(){const layers=this.layers;const status={messages:[],picturesComplete:true};if(this.showContents){let hasPendingRasterizeImage=false;let firstPictureError=undefined;let hasMissingLayerRect=false;let hasUnresolvedPictureRef=false;for(let i=0;i<layers.length;i++){const layer=layers[i];for(let ir=0;ir<layer.pictures.length;++ir){const picture=layer.pictures[ir];if(picture.idRef){hasUnresolvedPictureRef=true;continue;}
if(!picture.layerRect){hasMissingLayerRect=true;continue;}
const pictureAsImageData=this.pictureAsImageData_[picture.guid];if(!pictureAsImageData){hasPendingRasterizeImage=true;this.pictureAsImageData_[picture.guid]=tr.e.cc.PictureAsImageData.Pending(this);picture.rasterize({stopIndex:undefined},function(pictureImageData){const picture_=pictureImageData.picture;this.pictureAsImageData_[picture_.guid]=pictureImageData;this.scheduleUpdateContents_();}.bind(this));continue;}
if(pictureAsImageData.isPending()){hasPendingRasterizeImage=true;continue;}
if(pictureAsImageData.error){if(!firstPictureError){firstPictureError=pictureAsImageData.error;}
break;}}}
if(hasPendingRasterizeImage){status.picturesComplete=false;}else{if(hasUnresolvedPictureRef){status.messages.push({header:'Missing picture',details:'Your trace didn\'t have pictures for every layer. '+'Old chrome versions had this problem'});}
if(hasMissingLayerRect){status.messages.push({header:'Missing layer rect',details:'Your trace may be corrupt or from a very old '+'Chrome revision.'});}
if(firstPictureError){status.messages.push({header:'Cannot rasterize',details:firstPictureError});}}}
if(this.showInputEvents&&this.layerTreeImpl.tracedInputLatencies&&this.inputEventImageData_===undefined){const image=Polymer.dom(this).querySelector('#input-event');if(!image.src){this.loadDataForImageElement_(image,function(imageData){this.inputEventImageData_=imageData;this.updateContentsPending_=false;this.scheduleUpdateContents_();}.bind(this));}
status.picturesComplete=false;}
return status;},get selectedRenderPass(){if(this.selection){return this.selection.renderPass_;}},get selectedLayer(){if(this.selection){const selectedLayerId=this.selection.associatedLayerId;return this.layerTreeImpl_.findLayerWithId(selectedLayerId);}},get renderPasses(){let renderPasses=this.layerTreeImpl.layerTreeHostImpl.args.frame.renderPasses;if(!this.showOtherLayers){const selectedRenderPass=this.selectedRenderPass;if(selectedRenderPass){renderPasses=[selectedRenderPass];}}
return renderPasses;},get layers(){let layers=this.layerTreeImpl.renderSurfaceLayerList;if(!this.showOtherLayers){const selectedLayer=this.selectedLayer;if(selectedLayer){layers=[selectedLayer];}}
return layers;},appendImageQuads_(quads,layer,layerQuad){for(let ir=0;ir<layer.pictures.length;++ir){const picture=layer.pictures[ir];if(!picture.layerRect)continue;const unitRect=picture.layerRect.asUVRectInside(layer.bounds);const iq=layerQuad.projectUnitRect(unitRect);const pictureData=this.pictureAsImageData_[picture.guid];if(this.showContents&&pictureData&&pictureData.imageData){iq.imageData=pictureData.imageData;iq.borderColor='rgba(0,0,0,0)';}else{iq.imageData=undefined;}
iq.stackingGroupId=layerQuad.stackingGroupId;quads.push(iq);}},appendAnimationQuads_(quads,layer,layerQuad){if(!layer.animationBoundsRect)return;const rect=layer.animationBoundsRect;const abq=tr.b.math.Quad.fromRect(rect);abq.backgroundColor='rgba(164,191,48,0.5)';abq.borderColor='rgba(205,255,0,0.75)';abq.borderWidth=3.0;abq.stackingGroupId=layerQuad.stackingGroupId;abq.selectionToSetIfClicked=new cc.AnimationRectSelection(layer,rect);quads.push(abq);},appendInvalidationQuads_(quads,layer,layerQuad){if(layer.layerTreeImpl.hasSourceFrameBeenDrawnBefore)return;for(let ir=0;ir<layer.annotatedInvalidation.rects.length;ir++){const rect=layer.annotatedInvalidation.rects[ir];const unitRect=rect.asUVRectInside(layer.bounds);const iq=layerQuad.projectUnitRect(unitRect);iq.backgroundColor='rgba(0, 255, 0, 0.1)';if(rect.reason==='renderer insertion'){iq.backgroundColor='rgba(0, 255, 128, 0.1)';}
iq.borderColor='rgba(0, 255, 0, 1)';iq.stackingGroupId=layerQuad.stackingGroupId;iq.selectionToSetIfClicked=new cc.LayerRectSelection(layer,'Invalidation rect ('+rect.reason+')',rect,rect);quads.push(iq);}
if(layer.annotatedInvalidation.rects.length===0){for(let ir=0;ir<layer.invalidation.rects.length;ir++){const rect=layer.invalidation.rects[ir];const unitRect=rect.asUVRectInside(layer.bounds);const iq=layerQuad.projectUnitRect(unitRect);iq.backgroundColor='rgba(0, 255, 0, 0.1)';iq.borderColor='rgba(0, 255, 0, 1)';iq.stackingGroupId=layerQuad.stackingGroupId;iq.selectionToSetIfClicked=new cc.LayerRectSelection(layer,'Invalidation rect',rect,rect);quads.push(iq);}}},appendUnrecordedRegionQuads_(quads,layer,layerQuad){for(let ir=0;ir<layer.unrecordedRegion.rects.length;ir++){const rect=layer.unrecordedRegion.rects[ir];const unitRect=rect.asUVRectInside(layer.bounds);const iq=layerQuad.projectUnitRect(unitRect);iq.backgroundColor='rgba(240, 230, 140, 0.3)';iq.borderColor='rgba(240, 230, 140, 1)';iq.stackingGroupId=layerQuad.stackingGroupId;iq.selectionToSetIfClicked=new cc.LayerRectSelection(layer,'Unrecorded area',rect,rect);quads.push(iq);}},appendBottleneckQuads_(quads,layer,layerQuad,stackingGroupId){function processRegion(region,label,borderColor){const backgroundColor=borderColor.clone();backgroundColor.a=0.4*(borderColor.a||1.0);if(!region||!region.rects)return;for(let ir=0;ir<region.rects.length;ir++){const rect=region.rects[ir];const unitRect=rect.asUVRectInside(layer.bounds);const iq=layerQuad.projectUnitRect(unitRect);iq.backgroundColor=backgroundColor.toString();iq.borderColor=borderColor.toString();iq.borderWidth=4.0;iq.stackingGroupId=stackingGroupId;iq.selectionToSetIfClicked=new cc.LayerRectSelection(layer,label,rect,rect);quads.push(iq);}}
processRegion(layer.touchEventHandlerRegion,'Touch listener',tr.b.Color.fromString('rgb(228, 226, 27)'));processRegion(layer.wheelEventHandlerRegion,'Wheel listener',tr.b.Color.fromString('rgb(176, 205, 29)'));processRegion(layer.nonFastScrollableRegion,'Repaints on scroll',tr.b.Color.fromString('rgb(213, 134, 32)'));},appendTileCoverageRectQuads_(quads,layer,layerQuad,heatmapType){if(!layer.tileCoverageRects)return;const tiles=[];for(let ct=0;ct<layer.tileCoverageRects.length;++ct){const tile=layer.tileCoverageRects[ct].tile;if(tile!==undefined)tiles.push(tile);}
const lthi=this.layerTreeImpl_.layerTreeHostImpl;const minMax=this.getMinMaxForHeatmap_(lthi.activeTiles,heatmapType);const heatmapResult=this.computeHeatmapColors_(tiles,minMax,heatmapType);let heatIndex=0;for(let ct=0;ct<layer.tileCoverageRects.length;++ct){let rect=layer.tileCoverageRects[ct].geometryRect;rect=rect.scale(1.0/layer.geometryContentsScale);const tile=layer.tileCoverageRects[ct].tile;const unitRect=rect.asUVRectInside(layer.bounds);const quad=layerQuad.projectUnitRect(unitRect);quad.backgroundColor='rgba(0, 0, 0, 0)';quad.stackingGroupId=layerQuad.stackingGroupId;let type=tr.e.cc.tileTypes.missing;if(tile){type=tile.getTypeForLayer(layer);quad.backgroundColor=heatmapResult[heatIndex].color;++heatIndex;}
quad.borderColor=tr.e.cc.tileBorder[type].color;quad.borderWidth=tr.e.cc.tileBorder[type].width;let label;if(tile){label='coverageRect';}else{label='checkerboard coverageRect';}
quad.selectionToSetIfClicked=new cc.LayerRectSelection(layer,label,rect,layer.tileCoverageRects[ct]);quads.push(quad);}},appendLayoutRectQuads_(quads,layer,layerQuad){if(!layer.layoutRects){return;}
for(let ct=0;ct<layer.layoutRects.length;++ct){let rect=layer.layoutRects[ct].geometryRect;rect=rect.scale(1.0/layer.geometryContentsScale);const unitRect=rect.asUVRectInside(layer.bounds);const quad=layerQuad.projectUnitRect(unitRect);quad.backgroundColor='rgba(0, 0, 0, 0)';quad.stackingGroupId=layerQuad.stackingGroupId;quad.borderColor='rgba(0, 0, 200, 0.7)';quad.borderWidth=2;const label='Layout rect';quad.selectionToSetIfClicked=new cc.LayerRectSelection(layer,label,rect);quads.push(quad);}},getValueForHeatmap_(tile,heatmapType){if(heatmapType===TILE_HEATMAP_TYPE.SCHEDULED_PRIORITY){return tile.scheduledPriority===0?undefined:tile.scheduledPriority;}else if(heatmapType===TILE_HEATMAP_TYPE.USING_GPU_MEMORY){if(tile.isSolidColor)return 0.5;return tile.isUsingGpuMemory?0:1;}},getMinMaxForHeatmap_(tiles,heatmapType){const range=new tr.b.math.Range();if(heatmapType===TILE_HEATMAP_TYPE.USING_GPU_MEMORY){range.addValue(0);range.addValue(1);return range;}
for(let i=0;i<tiles.length;++i){const value=this.getValueForHeatmap_(tiles[i],heatmapType);if(value===undefined)continue;range.addValue(value);}
if(range.range===0){range.addValue(1);}
return range;},computeHeatmapColors_(tiles,minMax,heatmapType){const min=minMax.min;const max=minMax.max;const color=function(value){let hue=120*(1-(value-min)/(max-min));if(hue<0)hue=0;return'hsla('+hue+', 100%, 50%, 0.5)';};const values=[];for(let i=0;i<tiles.length;++i){const tile=tiles[i];const value=this.getValueForHeatmap_(tile,heatmapType);const res={value,color:value!==undefined?color(value):undefined};values.push(res);}
return values;},appendTilesWithScaleQuads_(quads,layer,layerQuad,scale,heatmapType){const lthi=this.layerTreeImpl_.layerTreeHostImpl;const tiles=[];for(let i=0;i<lthi.activeTiles.length;++i){const tile=lthi.activeTiles[i];if(Math.abs(tile.contentsScale-scale)>1e-6){continue;}
if(layer.layerId!==tile.layerId)continue;tiles.push(tile);}
const minMax=this.getMinMaxForHeatmap_(lthi.activeTiles,heatmapType);const heatmapResult=this.computeHeatmapColors_(tiles,minMax,heatmapType);for(let i=0;i<tiles.length;++i){const tile=tiles[i];const rect=tile.layerRect;if(!tile.layerRect)continue;const unitRect=rect.asUVRectInside(layer.bounds);const quad=layerQuad.projectUnitRect(unitRect);quad.backgroundColor='rgba(0, 0, 0, 0)';quad.stackingGroupId=layerQuad.stackingGroupId;const type=tile.getTypeForLayer(layer);quad.borderColor=tr.e.cc.tileBorder[type].color;quad.borderWidth=tr.e.cc.tileBorder[type].width;quad.backgroundColor=heatmapResult[i].color;const data={tileType:type};if(heatmapType!==TILE_HEATMAP_TYPE.NONE){data[heatmapType]=heatmapResult[i].value;}
quad.selectionToSetIfClicked=new cc.TileSelection(tile,data);quads.push(quad);}},appendHighlightQuadsForLayer_(quads,layer,layerQuad,highlights){highlights.forEach(function(highlight){const rect=highlight.rect;const unitRect=rect.asUVRectInside(layer.bounds);const quad=layerQuad.projectUnitRect(unitRect);let colorId=ColorScheme.getColorIdForGeneralPurposeString(highlight.colorKey);const offset=ColorScheme.properties.brightenedOffsets[0];colorId=ColorScheme.getVariantColorId(colorId,offset);const color=ColorScheme.colors[colorId];const quadForDrawing=quad.clone();quadForDrawing.backgroundColor=color.withAlpha(0.5).toString();quadForDrawing.borderColor=color.withAlpha(1.0).darken().toString();quadForDrawing.stackingGroupId=layerQuad.stackingGroupId;quads.push(quadForDrawing);},this);},generateRenderPassQuads(){if(!this.layerTreeImpl.layerTreeHostImpl.args.frame)return[];const renderPasses=this.renderPasses;if(!renderPasses)return[];const quads=[];for(let i=0;i<renderPasses.length;++i){const quadList=renderPasses[i].quadList;for(let j=0;j<quadList.length;++j){const drawQuad=quadList[j];const quad=drawQuad.rectAsTargetSpaceQuad.clone();quad.borderColor='rgb(170, 204, 238)';quad.borderWidth=2;quad.stackingGroupId=i;quads.push(quad);}}
return quads;},generateLayerQuads(){this.updateContentsPending_=false;const layers=this.layers;const quads=[];let nextStackingGroupId=0;const alreadyVisitedLayerIds={};let selectionHighlightsByLayerId;if(this.selection){selectionHighlightsByLayerId=this.selection.highlightsByLayerId;}else{selectionHighlightsByLayerId={};}
const extraHighlightsByLayerId=this.extraHighlightsByLayerId||{};for(let i=1;i<=layers.length;i++){const layer=layers[layers.length-i];alreadyVisitedLayerIds[layer.layerId]=true;if(layer.objectInstance.name==='cc::NinePatchLayerImpl'){continue;}
const layerQuad=layer.layerQuad.clone();if(layer.usingGpuRasterization){const pixelRatio=window.devicePixelRatio||1;layerQuad.borderWidth=2.0*pixelRatio;layerQuad.borderColor='rgba(154,205,50,0.75)';}else{layerQuad.borderColor='rgba(0,0,0,0.75)';}
layerQuad.stackingGroupId=nextStackingGroupId++;layerQuad.selectionToSetIfClicked=new cc.LayerSelection(layer);layerQuad.layer=layer;if(this.showOtherLayers&&this.selectedLayer===layer){layerQuad.upperBorderColor='rgb(156,189,45)';}
if(this.showAnimationBounds){this.appendAnimationQuads_(quads,layer,layerQuad);}
this.appendImageQuads_(quads,layer,layerQuad);quads.push(layerQuad);if(this.showInvalidations){this.appendInvalidationQuads_(quads,layer,layerQuad);}
if(this.showUnrecordedRegion){this.appendUnrecordedRegionQuads_(quads,layer,layerQuad);}
if(this.showBottlenecks){this.appendBottleneckQuads_(quads,layer,layerQuad,layerQuad.stackingGroupId);}
if(this.showLayoutRects){this.appendLayoutRectQuads_(quads,layer,layerQuad);}
if(this.howToShowTiles==='coverage'){this.appendTileCoverageRectQuads_(quads,layer,layerQuad,this.tileHeatmapType);}else if(this.howToShowTiles!=='none'){this.appendTilesWithScaleQuads_(quads,layer,layerQuad,this.howToShowTiles,this.tileHeatmapType);}
let highlights;highlights=extraHighlightsByLayerId[layer.layerId];if(highlights){this.appendHighlightQuadsForLayer_(quads,layer,layerQuad,highlights);}
highlights=selectionHighlightsByLayerId[layer.layerId];if(highlights){this.appendHighlightQuadsForLayer_(quads,layer,layerQuad,highlights);}}
this.layerTreeImpl.iterLayers(function(layer,depth,isMask,isReplica){if(!this.showOtherLayers&&this.selectedLayer!==layer)return;if(alreadyVisitedLayerIds[layer.layerId])return;const layerQuad=layer.layerQuad;const stackingGroupId=nextStackingGroupId++;if(this.showBottlenecks){this.appendBottleneckQuads_(quads,layer,layerQuad,stackingGroupId);}},this);const tracedInputLatencies=this.layerTreeImpl.tracedInputLatencies;if(this.showInputEvents&&tracedInputLatencies){for(let i=0;i<tracedInputLatencies.length;i++){const coordinatesArray=tracedInputLatencies[i].args.data.coordinates;for(let j=0;j<coordinatesArray.length;j++){const inputQuad=tr.b.math.Quad.fromXYWH(coordinatesArray[j].x-25,coordinatesArray[j].y-25,50,50);inputQuad.borderColor='rgba(0, 0, 0, 0)';inputQuad.imageData=this.inputEventImageData_;quads.push(inputQuad);}}}
return quads;},updateInfoBar_(infoBarMessages){if(infoBarMessages.length){this.infoBar_.removeAllButtons();this.infoBar_.message='Some problems were encountered...';this.infoBar_.addButton('More info...',function(e){const overlay=new tr.ui.b.Overlay();Polymer.dom(overlay).textContent='';infoBarMessages.forEach(function(message){const title=document.createElement('h3');Polymer.dom(title).textContent=message.header;const details=document.createElement('div');Polymer.dom(details).textContent=message.details;Polymer.dom(overlay).appendChild(title);Polymer.dom(overlay).appendChild(details);});overlay.visible=true;e.stopPropagation();return false;});this.infoBar_.visible=true;}else{this.infoBar_.removeAllButtons();this.infoBar_.message='';this.infoBar_.visible=false;}},getWhatRasterized_(){const lthi=this.layerTreeImpl_.layerTreeHostImpl;const renderProcess=lthi.objectInstance.parent;const tasks=[];for(const event of renderProcess.getDescendantEvents()){if(!(event instanceof tr.model.Slice))continue;const tile=tr.e.cc.getTileFromRasterTaskSlice(event);if(tile===undefined)continue;if(tile.containingSnapshot===lthi){tasks.push(event);}}
return tasks;},updateWhatRasterizedLinkState_(){const tasks=this.getWhatRasterized_();if(tasks.length){Polymer.dom(this.whatRasterizedLink_).textContent=tasks.length+' raster tasks';this.whatRasterizedLink_.style.display='';}else{Polymer.dom(this.whatRasterizedLink_).textContent='';this.whatRasterizedLink_.style.display='none';}},onWhatRasterizedLinkClicked_(){const tasks=this.getWhatRasterized_();const event=new tr.model.RequestSelectionChangeEvent();event.selection=new tr.model.EventSet(tasks);this.dispatchEvent(event);}};return{LayerTreeQuadStackView,};});'use strict';tr.exportTo('tr.ui.e.chrome.cc',function(){const constants=tr.e.cc.constants;const LayerView=tr.ui.b.define('tr-ui-e-chrome-cc-layer-view');LayerView.prototype={__proto__:HTMLDivElement.prototype,decorate(){this.layerTreeQuadStackView_=new tr.ui.e.chrome.cc.LayerTreeQuadStackView();this.dragBar_=document.createElement('tr-ui-b-drag-handle');this.analysisEl_=document.createElement('tr-ui-e-chrome-cc-layer-view-analysis');this.analysisEl_.addEventListener('requestSelectionChange',this.onRequestSelectionChangeFromAnalysisEl_.bind(this));this.dragBar_.target=this.analysisEl_;Polymer.dom(this).appendChild(this.layerTreeQuadStackView_);Polymer.dom(this).appendChild(this.dragBar_);Polymer.dom(this).appendChild(this.analysisEl_);this.layerTreeQuadStackView_.addEventListener('selection-change',function(){this.layerTreeQuadStackViewSelectionChanged_();}.bind(this));this.layerTreeQuadStackViewSelectionChanged_();},get layerTreeImpl(){return this.layerTreeQuadStackView_.layerTreeImpl;},set layerTreeImpl(newValue){return this.layerTreeQuadStackView_.layerTreeImpl=newValue;},set isRenderPassQuads(newValue){return this.layerTreeQuadStackView_.isRenderPassQuads=newValue;},get selection(){return this.layerTreeQuadStackView_.selection;},set selection(newValue){this.layerTreeQuadStackView_.selection=newValue;},regenerateContent(){this.layerTreeQuadStackView_.regenerateContent();},layerTreeQuadStackViewSelectionChanged_(){const selection=this.layerTreeQuadStackView_.selection;if(selection){this.dragBar_.style.display='';this.analysisEl_.style.display='';Polymer.dom(this.analysisEl_).textContent='';const layer=selection.layer;if(layer&&layer.args&&layer.args.pictures){Polymer.dom(this.analysisEl_).appendChild(this.createPictureBtn_(layer.args.pictures));}
const analysis=selection.createAnalysis();Polymer.dom(this.analysisEl_).appendChild(analysis);}else{this.dragBar_.style.display='none';this.analysisEl_.style.display='none';const analysis=Polymer.dom(this.analysisEl_).firstChild;if(analysis){Polymer.dom(this.analysisEl_).removeChild(analysis);}
this.layerTreeQuadStackView_.style.height=window.getComputedStyle(this).height;}
tr.b.dispatchSimpleEvent(this,'selection-change');},createPictureBtn_(pictures){if(!(pictures instanceof Array)){pictures=[pictures];}
const link=document.createElement('tr-ui-a-analysis-link');link.selection=function(){const layeredPicture=new tr.e.cc.LayeredPicture(pictures);const snapshot=new tr.e.cc.PictureSnapshot(layeredPicture);snapshot.picture=layeredPicture;const selection=new tr.model.EventSet();selection.push(snapshot);return selection;};Polymer.dom(link).textContent='View in Picture Debugger';return link;},onRequestSelectionChangeFromAnalysisEl_(e){if(!(e.selection instanceof tr.ui.e.chrome.cc.Selection)){return;}
e.stopPropagation();this.selection=e.selection;},get extraHighlightsByLayerId(){return this.layerTreeQuadStackView_.extraHighlightsByLayerId;},set extraHighlightsByLayerId(extraHighlightsByLayerId){this.layerTreeQuadStackView_.extraHighlightsByLayerId=extraHighlightsByLayerId;}};return{LayerView,};});'use strict';tr.exportTo('tr.ui.e.chrome.cc',function(){const LayerTreeHostImplSnapshotView=tr.ui.b.define('tr-ui-e-chrome-cc-layer-tree-host-impl-snapshot-view',tr.ui.analysis.ObjectSnapshotView);LayerTreeHostImplSnapshotView.prototype={__proto__:tr.ui.analysis.ObjectSnapshotView.prototype,decorate(){Polymer.dom(this).classList.add('tr-ui-e-chrome-cc-lthi-s-view');this.selection_=undefined;this.layerPicker_=new tr.ui.e.chrome.cc.LayerPicker();this.layerPicker_.addEventListener('selection-change',this.onLayerPickerSelectionChanged_.bind(this));this.layerView_=new tr.ui.e.chrome.cc.LayerView();this.layerView_.addEventListener('selection-change',this.onLayerViewSelectionChanged_.bind(this));this.dragHandle_=document.createElement('tr-ui-b-drag-handle');this.dragHandle_.horizontal=false;this.dragHandle_.target=this.layerView_;Polymer.dom(this).appendChild(this.layerPicker_);Polymer.dom(this).appendChild(this.dragHandle_);Polymer.dom(this).appendChild(this.layerView_);this.onLayerViewSelectionChanged_();this.onLayerPickerSelectionChanged_();},get objectSnapshot(){return this.objectSnapshot_;},set objectSnapshot(objectSnapshot){this.objectSnapshot_=objectSnapshot;const lthi=this.objectSnapshot;let layerTreeImpl;if(lthi){layerTreeImpl=lthi.getTree(this.layerPicker_.whichTree);}
this.layerPicker_.lthiSnapshot=lthi;this.layerView_.layerTreeImpl=layerTreeImpl;this.layerView_.regenerateContent();if(!this.selection_)return;this.selection=this.selection_.findEquivalent(lthi);},get selection(){return this.selection_;},set selection(selection){if(this.selection_===selection)return;this.selection_=selection;this.layerPicker_.selection=selection;this.layerView_.selection=selection;tr.b.dispatchSimpleEvent(this,'cc-selection-change');},onLayerPickerSelectionChanged_(){this.selection_=this.layerPicker_.selection;this.layerView_.selection=this.selection;this.layerView_.layerTreeImpl=this.layerPicker_.layerTreeImpl;this.layerView_.isRenderPassQuads=this.layerPicker_.isRenderPassQuads;this.layerView_.regenerateContent();tr.b.dispatchSimpleEvent(this,'cc-selection-change');},onLayerViewSelectionChanged_(){this.selection_=this.layerView_.selection;this.layerPicker_.selection=this.selection;tr.b.dispatchSimpleEvent(this,'cc-selection-change');},get extraHighlightsByLayerId(){return this.layerView_.extraHighlightsByLayerId;},set extraHighlightsByLayerId(extraHighlightsByLayerId){this.layerView_.extraHighlightsByLayerId=extraHighlightsByLayerId;}};tr.ui.analysis.ObjectSnapshotView.register(LayerTreeHostImplSnapshotView,{typeName:'cc::LayerTreeHostImpl'});return{LayerTreeHostImplSnapshotView,};});'use strict';tr.exportTo('tr.ui.e.chrome.cc',function(){const OPS_TIMING_ITERATIONS=3;const CHART_PADDING_LEFT=65;const CHART_PADDING_RIGHT=40;const AXIS_PADDING_LEFT=60;const AXIS_PADDING_RIGHT=35;const AXIS_PADDING_TOP=25;const AXIS_PADDING_BOTTOM=45;const AXIS_LABEL_PADDING=5;const AXIS_TICK_SIZE=10;const LABEL_PADDING=5;const LABEL_INTERLEAVE_OFFSET=15;const BAR_PADDING=5;const VERTICAL_TICKS=5;const HUE_CHAR_CODE_ADJUSTMENT=5.7;const PictureOpsChartSummaryView=tr.ui.b.define('tr-ui-e-chrome-cc-picture-ops-chart-summary-view');PictureOpsChartSummaryView.prototype={__proto__:HTMLDivElement.prototype,decorate(){this.picture_=undefined;this.pictureDataProcessed_=false;this.chartScale_=window.devicePixelRatio;this.chart_=document.createElement('canvas');this.chartCtx_=this.chart_.getContext('2d');Polymer.dom(this).appendChild(this.chart_);this.opsTimingData_=[];this.chartWidth_=0;this.chartHeight_=0;this.requiresRedraw_=true;this.currentBarMouseOverTarget_=null;this.chart_.addEventListener('mousemove',this.onMouseMove_.bind(this));},get requiresRedraw(){return this.requiresRedraw_;},set requiresRedraw(requiresRedraw){this.requiresRedraw_=requiresRedraw;},get picture(){return this.picture_;},set picture(picture){this.picture_=picture;this.pictureDataProcessed_=false;if(Polymer.dom(this).classList.contains('hidden'))return;this.processPictureData_();this.requiresRedraw=true;this.updateChartContents();},hide(){Polymer.dom(this).classList.add('hidden');},show(){Polymer.dom(this).classList.remove('hidden');if(this.pictureDataProcessed_)return;this.processPictureData_();this.requiresRedraw=true;this.updateChartContents();},onMouseMove_(e){const lastBarMouseOverTarget=this.currentBarMouseOverTarget_;this.currentBarMouseOverTarget_=null;const x=e.offsetX;const y=e.offsetY;const chartLeft=CHART_PADDING_LEFT;const chartRight=this.chartWidth_-CHART_PADDING_RIGHT;const chartTop=AXIS_PADDING_TOP;const chartBottom=this.chartHeight_-AXIS_PADDING_BOTTOM;const chartInnerWidth=chartRight-chartLeft;if(x>chartLeft&&x<chartRight&&y>chartTop&&y<chartBottom){this.currentBarMouseOverTarget_=Math.floor((x-chartLeft)/chartInnerWidth*this.opsTimingData_.length);this.currentBarMouseOverTarget_=tr.b.math.clamp(this.currentBarMouseOverTarget_,0,this.opsTimingData_.length-1);}
if(this.currentBarMouseOverTarget_===lastBarMouseOverTarget)return;this.drawChartContents_();},updateChartContents(){if(this.requiresRedraw){this.updateChartDimensions_();}
this.drawChartContents_();},updateChartDimensions_(){this.chartWidth_=this.offsetWidth;this.chartHeight_=this.offsetHeight;this.chart_.width=this.chartWidth_*this.chartScale_;this.chart_.height=this.chartHeight_*this.chartScale_;this.chart_.style.width=this.chartWidth_+'px';this.chart_.style.height=this.chartHeight_+'px';this.chartCtx_.scale(this.chartScale_,this.chartScale_);},processPictureData_(){this.resetOpsTimingData_();this.pictureDataProcessed_=true;if(!this.picture_)return;let ops=this.picture_.getOps();if(!ops)return;ops=this.picture_.tagOpsWithTimings(ops);if(ops[0].cmd_time===undefined)return;this.collapseOpsToTimingBuckets_(ops);},drawChartContents_(){this.clearChartContents_();if(this.opsTimingData_.length===0){this.showNoTimingDataMessage_();return;}
this.drawChartAxes_();this.drawBars_();this.drawLineAtBottomOfChart_();if(this.currentBarMouseOverTarget_===null)return;this.drawTooltip_();},drawLineAtBottomOfChart_(){this.chartCtx_.strokeStyle='#AAA';this.chartCtx_.moveTo(0,this.chartHeight_-0.5);this.chartCtx_.lineTo(this.chartWidth_,this.chartHeight_-0.5);this.chartCtx_.stroke();},drawTooltip_(){const tooltipData=this.opsTimingData_[this.currentBarMouseOverTarget_];const tooltipTitle=tooltipData.cmd_string;const tooltipTime=tooltipData.cmd_time.toFixed(4);const tooltipWidth=110;const tooltipHeight=40;const chartInnerWidth=this.chartWidth_-CHART_PADDING_RIGHT-
CHART_PADDING_LEFT;const barWidth=chartInnerWidth/this.opsTimingData_.length;const tooltipOffset=Math.round((tooltipWidth-barWidth)*0.5);const left=CHART_PADDING_LEFT+this.currentBarMouseOverTarget_*barWidth-tooltipOffset;const top=Math.round((this.chartHeight_-tooltipHeight)*0.5);this.chartCtx_.save();this.chartCtx_.shadowOffsetX=0;this.chartCtx_.shadowOffsetY=5;this.chartCtx_.shadowBlur=4;this.chartCtx_.shadowColor='rgba(0,0,0,0.4)';this.chartCtx_.strokeStyle='#888';this.chartCtx_.fillStyle='#EEE';this.chartCtx_.fillRect(left,top,tooltipWidth,tooltipHeight);this.chartCtx_.shadowColor='transparent';this.chartCtx_.translate(0.5,0.5);this.chartCtx_.strokeRect(left,top,tooltipWidth,tooltipHeight);this.chartCtx_.restore();this.chartCtx_.fillStyle='#222';this.chartCtx_.textBaseline='top';this.chartCtx_.font='800 12px Arial';this.chartCtx_.fillText(tooltipTitle,left+8,top+8);this.chartCtx_.fillStyle='#555';this.chartCtx_.textBaseline='top';this.chartCtx_.font='400 italic 10px Arial';this.chartCtx_.fillText('Total: '+tooltipTime+'ms',left+8,top+22);},drawBars_(){const len=this.opsTimingData_.length;const max=this.opsTimingData_[0].cmd_time;const min=this.opsTimingData_[len-1].cmd_time;const width=this.chartWidth_-CHART_PADDING_LEFT-CHART_PADDING_RIGHT;const height=this.chartHeight_-AXIS_PADDING_TOP-AXIS_PADDING_BOTTOM;const barWidth=Math.floor(width/len);let opData;let opTiming;let opHeight;let opLabel;let barLeft;for(let b=0;b<len;b++){opData=this.opsTimingData_[b];opTiming=opData.cmd_time/max;opHeight=Math.round(Math.max(1,opTiming*height));opLabel=opData.cmd_string;barLeft=CHART_PADDING_LEFT+b*barWidth;this.chartCtx_.fillStyle=this.getOpColor_(opLabel);this.chartCtx_.fillRect(barLeft+BAR_PADDING,AXIS_PADDING_TOP+
height-opHeight,barWidth-2*BAR_PADDING,opHeight);}},getOpColor_(opName){const characters=opName.split('');const hue=characters.reduce(this.reduceNameToHue,0)%360;return'hsl('+hue+', 30%, 50%)';},reduceNameToHue(previousValue,currentValue,index,array){return Math.round(previousValue+currentValue.charCodeAt(0)*HUE_CHAR_CODE_ADJUSTMENT);},drawChartAxes_(){const len=this.opsTimingData_.length;const max=this.opsTimingData_[0].cmd_time;const min=this.opsTimingData_[len-1].cmd_time;const width=this.chartWidth_-AXIS_PADDING_LEFT-AXIS_PADDING_RIGHT;const height=this.chartHeight_-AXIS_PADDING_TOP-AXIS_PADDING_BOTTOM;const totalBarWidth=this.chartWidth_-CHART_PADDING_LEFT-
CHART_PADDING_RIGHT;const barWidth=Math.floor(totalBarWidth/len);const tickYInterval=height/(VERTICAL_TICKS-1);let tickYPosition=0;const tickValInterval=(max-min)/(VERTICAL_TICKS-1);let tickVal=0;this.chartCtx_.fillStyle='#333';this.chartCtx_.strokeStyle='#777';this.chartCtx_.save();this.chartCtx_.translate(0.5,0.5);this.chartCtx_.save();this.chartCtx_.translate(AXIS_PADDING_LEFT,AXIS_PADDING_TOP);this.chartCtx_.moveTo(0,0);this.chartCtx_.lineTo(0,height);this.chartCtx_.lineTo(width,height);this.chartCtx_.font='10px Arial';this.chartCtx_.textAlign='right';this.chartCtx_.textBaseline='middle';for(let t=0;t<VERTICAL_TICKS;t++){tickYPosition=Math.round(t*tickYInterval);tickVal=(max-t*tickValInterval).toFixed(4);this.chartCtx_.moveTo(0,tickYPosition);this.chartCtx_.lineTo(-AXIS_TICK_SIZE,tickYPosition);this.chartCtx_.fillText(tickVal,-AXIS_TICK_SIZE-AXIS_LABEL_PADDING,tickYPosition);}
this.chartCtx_.stroke();this.chartCtx_.restore();this.chartCtx_.save();this.chartCtx_.translate(CHART_PADDING_LEFT+Math.round(barWidth*0.5),AXIS_PADDING_TOP+height+LABEL_PADDING);this.chartCtx_.font='10px Arial';this.chartCtx_.textAlign='center';this.chartCtx_.textBaseline='top';let labelTickLeft;let labelTickBottom;for(let l=0;l<len;l++){labelTickLeft=Math.round(l*barWidth);labelTickBottom=l%2*LABEL_INTERLEAVE_OFFSET;this.chartCtx_.save();this.chartCtx_.moveTo(labelTickLeft,-LABEL_PADDING);this.chartCtx_.lineTo(labelTickLeft,labelTickBottom);this.chartCtx_.stroke();this.chartCtx_.restore();this.chartCtx_.fillText(this.opsTimingData_[l].cmd_string,labelTickLeft,labelTickBottom);}
this.chartCtx_.restore();this.chartCtx_.restore();},clearChartContents_(){this.chartCtx_.clearRect(0,0,this.chartWidth_,this.chartHeight_);},showNoTimingDataMessage_(){this.chartCtx_.font='800 italic 14px Arial';this.chartCtx_.fillStyle='#333';this.chartCtx_.textAlign='center';this.chartCtx_.textBaseline='middle';this.chartCtx_.fillText('No timing data available.',this.chartWidth_*0.5,this.chartHeight_*0.5);},collapseOpsToTimingBuckets_(ops){const opsTimingDataIndexHash_={};const timingData=this.opsTimingData_;let op;let opIndex;for(let i=0;i<ops.length;i++){op=ops[i];if(op.cmd_time===undefined)continue;opIndex=opsTimingDataIndexHash_[op.cmd_string]||null;if(opIndex===null){timingData.push({cmd_time:0,cmd_string:op.cmd_string});opIndex=timingData.length-1;opsTimingDataIndexHash_[op.cmd_string]=opIndex;}
timingData[opIndex].cmd_time+=op.cmd_time;}
timingData.sort(this.sortTimingBucketsByOpTimeDescending_);this.collapseTimingBucketsToOther_(4);},collapseTimingBucketsToOther_(count){const timingData=this.opsTimingData_;const otherSource=timingData.splice(count,timingData.length-count);let otherDestination=null;if(!otherSource.length)return;timingData.push({cmd_time:0,cmd_string:'Other'});otherDestination=timingData[timingData.length-1];for(let i=0;i<otherSource.length;i++){otherDestination.cmd_time+=otherSource[i].cmd_time;}},sortTimingBucketsByOpTimeDescending_(a,b){return b.cmd_time-a.cmd_time;},resetOpsTimingData_(){this.opsTimingData_.length=0;}};return{PictureOpsChartSummaryView,};});'use strict';tr.exportTo('tr.ui.e.chrome.cc',function(){const BAR_PADDING=1;const BAR_WIDTH=5;const CHART_PADDING_LEFT=65;const CHART_PADDING_RIGHT=30;const CHART_PADDING_BOTTOM=35;const CHART_PADDING_TOP=20;const AXIS_PADDING_LEFT=55;const AXIS_PADDING_RIGHT=30;const AXIS_PADDING_BOTTOM=35;const AXIS_PADDING_TOP=20;const AXIS_TICK_SIZE=5;const AXIS_LABEL_PADDING=5;const VERTICAL_TICKS=5;const HUE_CHAR_CODE_ADJUSTMENT=5.7;const PictureOpsChartView=tr.ui.b.define('tr-ui-e-chrome-cc-picture-ops-chart-view');PictureOpsChartView.prototype={__proto__:HTMLDivElement.prototype,decorate(){this.picture_=undefined;this.pictureOps_=undefined;this.opCosts_=undefined;this.chartScale_=window.devicePixelRatio;this.chart_=document.createElement('canvas');this.chartCtx_=this.chart_.getContext('2d');Polymer.dom(this).appendChild(this.chart_);this.selectedOpIndex_=undefined;this.chartWidth_=0;this.chartHeight_=0;this.dimensionsHaveChanged_=true;this.currentBarMouseOverTarget_=undefined;this.ninetyFifthPercentileCost_=0;this.totalOpCost_=0;this.chart_.addEventListener('click',this.onClick_.bind(this));this.chart_.addEventListener('mousemove',this.onMouseMove_.bind(this));this.usePercentileScale_=false;this.usePercentileScaleCheckbox_=tr.ui.b.createCheckBox(this,'usePercentileScale','PictureOpsChartView.usePercentileScale',false,'Limit to 95%-ile');Polymer.dom(this.usePercentileScaleCheckbox_).classList.add('use-percentile-scale');Polymer.dom(this).appendChild(this.usePercentileScaleCheckbox_);},get dimensionsHaveChanged(){return this.dimensionsHaveChanged_;},set dimensionsHaveChanged(dimensionsHaveChanged){this.dimensionsHaveChanged_=dimensionsHaveChanged;},get usePercentileScale(){return this.usePercentileScale_;},set usePercentileScale(usePercentileScale){this.usePercentileScale_=usePercentileScale;this.drawChartContents_();},get numOps(){return this.opCosts_.length;},get selectedOpIndex(){return this.selectedOpIndex_;},set selectedOpIndex(selectedOpIndex){if(selectedOpIndex<0)throw new Error('Invalid index');if(selectedOpIndex>=this.numOps)throw new Error('Invalid index');this.selectedOpIndex_=selectedOpIndex;},get picture(){return this.picture_;},set picture(picture){this.picture_=picture;this.pictureOps_=picture.tagOpsWithTimings(picture.getOps());this.currentBarMouseOverTarget_=undefined;this.processPictureData_();this.dimensionsHaveChanged=true;},processPictureData_(){if(this.pictureOps_===undefined)return;let totalOpCost=0;this.opCosts_=this.pictureOps_.map(function(op){totalOpCost+=op.cmd_time;return op.cmd_time;});this.opCosts_.sort();const ninetyFifthPercentileCostIndex=Math.floor(this.opCosts_.length*0.95);this.ninetyFifthPercentileCost_=this.opCosts_[ninetyFifthPercentileCostIndex];this.maxCost_=this.opCosts_[this.opCosts_.length-1];this.totalOpCost_=totalOpCost;},extractBarIndex_(e){let index=undefined;if(this.pictureOps_===undefined||this.pictureOps_.length===0){return index;}
const x=e.offsetX;const y=e.offsetY;const totalBarWidth=(BAR_WIDTH+BAR_PADDING)*this.pictureOps_.length;const chartLeft=CHART_PADDING_LEFT;const chartTop=0;const chartBottom=this.chartHeight_-CHART_PADDING_BOTTOM;const chartRight=chartLeft+totalBarWidth;if(x<chartLeft||x>chartRight||y<chartTop||y>chartBottom){return index;}
index=Math.floor((x-chartLeft)/totalBarWidth*this.pictureOps_.length);index=tr.b.math.clamp(index,0,this.pictureOps_.length-1);return index;},onClick_(e){const barClicked=this.extractBarIndex_(e);if(barClicked===undefined)return;if(barClicked===this.selectedOpIndex){this.selectedOpIndex=undefined;}else{this.selectedOpIndex=barClicked;}
e.preventDefault();tr.b.dispatchSimpleEvent(this,'selection-changed',false);},onMouseMove_(e){const lastBarMouseOverTarget=this.currentBarMouseOverTarget_;this.currentBarMouseOverTarget_=this.extractBarIndex_(e);if(this.currentBarMouseOverTarget_===lastBarMouseOverTarget){return;}
this.drawChartContents_();},scrollSelectedItemIntoViewIfNecessary(){if(this.selectedOpIndex===undefined){return;}
const width=this.offsetWidth;const left=this.scrollLeft;const right=left+width;const targetLeft=CHART_PADDING_LEFT+
(BAR_WIDTH+BAR_PADDING)*this.selectedOpIndex;if(targetLeft>left&&targetLeft<right){return;}
this.scrollLeft=(targetLeft-width*0.5);},updateChartContents(){if(this.dimensionsHaveChanged){this.updateChartDimensions_();}
this.drawChartContents_();},updateChartDimensions_(){if(!this.pictureOps_)return;let width=CHART_PADDING_LEFT+CHART_PADDING_RIGHT+
((BAR_WIDTH+BAR_PADDING)*this.pictureOps_.length);if(width<this.offsetWidth){width=this.offsetWidth;}
this.chartWidth_=width;this.chartHeight_=this.getBoundingClientRect().height;this.chart_.width=this.chartWidth_*this.chartScale_;this.chart_.height=this.chartHeight_*this.chartScale_;this.chart_.style.width=this.chartWidth_+'px';this.chart_.style.height=this.chartHeight_+'px';this.chartCtx_.scale(this.chartScale_,this.chartScale_);this.dimensionsHaveChanged=false;},drawChartContents_(){this.clearChartContents_();if(this.pictureOps_===undefined||this.pictureOps_.length===0||this.pictureOps_[0].cmd_time===undefined){this.showNoTimingDataMessage_();return;}
this.drawSelection_();this.drawBars_();this.drawChartAxes_();this.drawLinesAtTickMarks_();this.drawLineAtBottomOfChart_();if(this.currentBarMouseOverTarget_===undefined){return;}
this.drawTooltip_();},drawSelection_(){if(this.selectedOpIndex===undefined){return;}
const width=(BAR_WIDTH+BAR_PADDING)*this.selectedOpIndex;this.chartCtx_.fillStyle='rgb(223, 235, 230)';this.chartCtx_.fillRect(CHART_PADDING_LEFT,CHART_PADDING_TOP,width,this.chartHeight_-CHART_PADDING_TOP-CHART_PADDING_BOTTOM);},drawChartAxes_(){const min=this.opCosts_[0];const max=this.opCosts_[this.opCosts_.length-1];const height=this.chartHeight_-AXIS_PADDING_TOP-AXIS_PADDING_BOTTOM;const tickYInterval=height/(VERTICAL_TICKS-1);let tickYPosition=0;const tickValInterval=(max-min)/(VERTICAL_TICKS-1);let tickVal=0;this.chartCtx_.fillStyle='#333';this.chartCtx_.strokeStyle='#777';this.chartCtx_.save();this.chartCtx_.translate(0.5,0.5);this.chartCtx_.beginPath();this.chartCtx_.moveTo(AXIS_PADDING_LEFT,AXIS_PADDING_TOP);this.chartCtx_.lineTo(AXIS_PADDING_LEFT,this.chartHeight_-
AXIS_PADDING_BOTTOM);this.chartCtx_.lineTo(this.chartWidth_-AXIS_PADDING_RIGHT,this.chartHeight_-AXIS_PADDING_BOTTOM);this.chartCtx_.stroke();this.chartCtx_.closePath();this.chartCtx_.translate(AXIS_PADDING_LEFT,AXIS_PADDING_TOP);this.chartCtx_.font='10px Arial';this.chartCtx_.textAlign='right';this.chartCtx_.textBaseline='middle';this.chartCtx_.beginPath();for(let t=0;t<VERTICAL_TICKS;t++){tickYPosition=Math.round(t*tickYInterval);tickVal=(max-t*tickValInterval).toFixed(4);this.chartCtx_.moveTo(0,tickYPosition);this.chartCtx_.lineTo(-AXIS_TICK_SIZE,tickYPosition);this.chartCtx_.fillText(tickVal,-AXIS_TICK_SIZE-AXIS_LABEL_PADDING,tickYPosition);}
this.chartCtx_.stroke();this.chartCtx_.closePath();this.chartCtx_.restore();},drawLinesAtTickMarks_(){const height=this.chartHeight_-AXIS_PADDING_TOP-AXIS_PADDING_BOTTOM;const width=this.chartWidth_-AXIS_PADDING_LEFT-AXIS_PADDING_RIGHT;const tickYInterval=height/(VERTICAL_TICKS-1);let tickYPosition=0;this.chartCtx_.save();this.chartCtx_.translate(AXIS_PADDING_LEFT+0.5,AXIS_PADDING_TOP+0.5);this.chartCtx_.beginPath();this.chartCtx_.strokeStyle='rgba(0,0,0,0.05)';for(let t=0;t<VERTICAL_TICKS;t++){tickYPosition=Math.round(t*tickYInterval);this.chartCtx_.moveTo(0,tickYPosition);this.chartCtx_.lineTo(width,tickYPosition);this.chartCtx_.stroke();}
this.chartCtx_.restore();this.chartCtx_.closePath();},drawLineAtBottomOfChart_(){this.chartCtx_.strokeStyle='#AAA';this.chartCtx_.beginPath();this.chartCtx_.moveTo(0,this.chartHeight_-0.5);this.chartCtx_.lineTo(this.chartWidth_,this.chartHeight_-0.5);this.chartCtx_.stroke();this.chartCtx_.closePath();},drawTooltip_(){const tooltipData=this.pictureOps_[this.currentBarMouseOverTarget_];const tooltipTitle=tooltipData.cmd_string;const tooltipTime=tooltipData.cmd_time.toFixed(4);const toolTipTimePercentage=((tooltipData.cmd_time/this.totalOpCost_)*100).toFixed(2);const tooltipWidth=120;const tooltipHeight=40;const chartInnerWidth=this.chartWidth_-CHART_PADDING_RIGHT-
CHART_PADDING_LEFT;const barWidth=BAR_WIDTH+BAR_PADDING;const tooltipOffset=Math.round((tooltipWidth-barWidth)*0.5);const left=CHART_PADDING_LEFT+this.currentBarMouseOverTarget_*barWidth-tooltipOffset;const top=Math.round((this.chartHeight_-tooltipHeight)*0.5);this.chartCtx_.save();this.chartCtx_.shadowOffsetX=0;this.chartCtx_.shadowOffsetY=5;this.chartCtx_.shadowBlur=4;this.chartCtx_.shadowColor='rgba(0,0,0,0.4)';this.chartCtx_.strokeStyle='#888';this.chartCtx_.fillStyle='#EEE';this.chartCtx_.fillRect(left,top,tooltipWidth,tooltipHeight);this.chartCtx_.shadowColor='transparent';this.chartCtx_.translate(0.5,0.5);this.chartCtx_.strokeRect(left,top,tooltipWidth,tooltipHeight);this.chartCtx_.restore();this.chartCtx_.fillStyle='#222';this.chartCtx_.textAlign='left';this.chartCtx_.textBaseline='top';this.chartCtx_.font='800 12px Arial';this.chartCtx_.fillText(tooltipTitle,left+8,top+8);this.chartCtx_.fillStyle='#555';this.chartCtx_.font='400 italic 10px Arial';this.chartCtx_.fillText(tooltipTime+'ms ('+
toolTipTimePercentage+'%)',left+8,top+22);},drawBars_(){let op;let opColor=0;let opHeight=0;const opWidth=BAR_WIDTH+BAR_PADDING;let opHover=false;const bottom=this.chartHeight_-CHART_PADDING_BOTTOM;const maxHeight=this.chartHeight_-CHART_PADDING_BOTTOM-
CHART_PADDING_TOP;let maxValue;if(this.usePercentileScale){maxValue=this.ninetyFifthPercentileCost_;}else{maxValue=this.maxCost_;}
for(let b=0;b<this.pictureOps_.length;b++){op=this.pictureOps_[b];opHeight=Math.round((op.cmd_time/maxValue)*maxHeight);opHeight=Math.max(opHeight,1);opHover=(b===this.currentBarMouseOverTarget_);opColor=this.getOpColor_(op.cmd_string,opHover);if(b===this.selectedOpIndex){this.chartCtx_.fillStyle='#FFFF00';}else{this.chartCtx_.fillStyle=opColor;}
this.chartCtx_.fillRect(CHART_PADDING_LEFT+b*opWidth,bottom-opHeight,BAR_WIDTH,opHeight);}},getOpColor_(opName,hover){const characters=opName.split('');const hue=characters.reduce(this.reduceNameToHue,0)%360;const saturation=30;const lightness=hover?'75%':'50%';return'hsl('+hue+', '+saturation+'%, '+lightness+'%)';},reduceNameToHue(previousValue,currentValue,index,array){return Math.round(previousValue+currentValue.charCodeAt(0)*HUE_CHAR_CODE_ADJUSTMENT);},clearChartContents_(){this.chartCtx_.clearRect(0,0,this.chartWidth_,this.chartHeight_);},showNoTimingDataMessage_(){this.chartCtx_.font='800 italic 14px Arial';this.chartCtx_.fillStyle='#333';this.chartCtx_.textAlign='center';this.chartCtx_.textBaseline='middle';this.chartCtx_.fillText('No timing data available.',this.chartWidth_*0.5,this.chartHeight_*0.5);}};return{PictureOpsChartView,};});'use strict';tr.exportTo('tr.ui.e.chrome.cc',function(){const THIS_DOC=document.currentScript.ownerDocument;const PictureDebugger=tr.ui.b.define('tr-ui-e-chrome-cc-picture-debugger');PictureDebugger.prototype={__proto__:HTMLDivElement.prototype,decorate(){const node=tr.ui.b.instantiateTemplate('#tr-ui-e-chrome-cc-picture-debugger-template',THIS_DOC);Polymer.dom(this).appendChild(node);this.pictureAsImageData_=undefined;this.showOverdraw_=false;this.zoomScaleValue_=1;this.sizeInfo_=Polymer.dom(this).querySelector('.size');this.rasterArea_=Polymer.dom(this).querySelector('raster-area');this.rasterCanvas_=Polymer.dom(this.rasterArea_).querySelector('canvas');this.rasterCtx_=this.rasterCanvas_.getContext('2d');this.filename_=Polymer.dom(this).querySelector('.filename');this.drawOpsChartSummaryView_=new tr.ui.e.chrome.cc.PictureOpsChartSummaryView();this.drawOpsChartView_=new tr.ui.e.chrome.cc.PictureOpsChartView();this.drawOpsChartView_.addEventListener('selection-changed',this.onChartBarClicked_.bind(this));this.exportButton_=Polymer.dom(this).querySelector('.export');this.exportButton_.addEventListener('click',this.onSaveAsSkPictureClicked_.bind(this));this.trackMouse_();const overdrawCheckbox=tr.ui.b.createCheckBox(this,'showOverdraw','pictureView.showOverdraw',false,'Show overdraw');const chartCheckbox=tr.ui.b.createCheckBox(this,'showSummaryChart','pictureView.showSummaryChart',false,'Show timing summary');const pictureInfo=Polymer.dom(this).querySelector('picture-info');Polymer.dom(pictureInfo).appendChild(overdrawCheckbox);Polymer.dom(pictureInfo).appendChild(chartCheckbox);this.drawOpsView_=new tr.ui.e.chrome.cc.PictureOpsListView();this.drawOpsView_.addEventListener('selection-changed',this.onChangeDrawOps_.bind(this));const leftPanel=Polymer.dom(this).querySelector('left-panel');Polymer.dom(leftPanel).appendChild(this.drawOpsChartSummaryView_);Polymer.dom(leftPanel).appendChild(this.drawOpsView_);const middleDragHandle=document.createElement('tr-ui-b-drag-handle');middleDragHandle.horizontal=false;middleDragHandle.target=leftPanel;const rightPanel=Polymer.dom(this).querySelector('right-panel');rightPanel.replaceChild(this.drawOpsChartView_,Polymer.dom(rightPanel).querySelector('tr-ui-e-chrome-cc-picture-ops-chart-view'));this.infoBar_=document.createElement('tr-ui-b-info-bar');Polymer.dom(this.rasterArea_).appendChild(this.infoBar_);Polymer.dom(this).insertBefore(middleDragHandle,rightPanel);this.picture_=undefined;const hkc=document.createElement('tv-ui-b-hotkey-controller');hkc.addHotKey(new tr.ui.b.HotKey({eventType:'keypress',thisArg:this,keyCode:'h'.charCodeAt(0),callback(e){this.moveSelectedOpBy(-1);e.stopPropagation();}}));hkc.addHotKey(new tr.ui.b.HotKey({eventType:'keypress',thisArg:this,keyCode:'l'.charCodeAt(0),callback(e){this.moveSelectedOpBy(1);e.stopPropagation();}}));Polymer.dom(this).appendChild(hkc);this.mutationObserver_=new MutationObserver(this.onMutation_.bind(this));this.mutationObserver_.observe(leftPanel,{attributes:true});},onMutation_(mutations){for(let m=0;m<mutations.length;m++){if(mutations[m].attributeName==='style'){this.drawOpsChartSummaryView_.requiresRedraw=true;this.drawOpsChartSummaryView_.updateChartContents();this.drawOpsChartView_.dimensionsHaveChanged=true;this.drawOpsChartView_.updateChartContents();break;}}},onSaveAsSkPictureClicked_(){const rawData=tr.b.Base64.atob(this.picture_.getBase64SkpData());const length=rawData.length;const arrayBuffer=new ArrayBuffer(length);const uint8Array=new Uint8Array(arrayBuffer);for(let c=0;c<length;c++){uint8Array[c]=rawData.charCodeAt(c);}
const blob=new Blob([uint8Array],{type:'application/octet-binary'});const blobUrl=window.webkitURL.createObjectURL(blob);const link=document.createElementNS('http://www.w3.org/1999/xhtml','a');link.href=blobUrl;link.download=this.filename_.value;const event=document.createEvent('MouseEvents');event.initMouseEvent('click',true,false,window,0,0,0,0,0,false,false,false,false,0,null);link.dispatchEvent(event);},get picture(){return this.picture_;},set picture(picture){this.drawOpsView_.picture=picture;this.drawOpsChartView_.picture=picture;this.drawOpsChartSummaryView_.picture=picture;this.picture_=picture;this.exportButton_.disabled=!this.picture_.canSave;if(picture){const size=this.getRasterCanvasSize_();this.rasterCanvas_.width=size.width;this.rasterCanvas_.height=size.height;}
const bounds=this.rasterArea_.getBoundingClientRect();const selectorBounds=this.mouseModeSelector_.getBoundingClientRect();this.mouseModeSelector_.pos={x:(bounds.right-selectorBounds.width-10),y:bounds.top};this.rasterize_();this.scheduleUpdateContents_();},getRasterCanvasSize_(){const style=window.getComputedStyle(this.rasterArea_);const width=Math.max(parseInt(style.width),this.picture_.layerRect.width);const height=Math.max(parseInt(style.height),this.picture_.layerRect.height);return{width,height};},scheduleUpdateContents_(){if(this.updateContentsPending_)return;this.updateContentsPending_=true;tr.b.requestAnimationFrameInThisFrameIfPossible(this.updateContents_.bind(this));},updateContents_(){this.updateContentsPending_=false;if(this.picture_){Polymer.dom(this.sizeInfo_).textContent='('+
this.picture_.layerRect.width+' x '+
this.picture_.layerRect.height+')';}
this.drawOpsChartView_.updateChartContents();this.drawOpsChartView_.scrollSelectedItemIntoViewIfNecessary();if(!this.pictureAsImageData_)return;this.infoBar_.visible=false;this.infoBar_.removeAllButtons();if(this.pictureAsImageData_.error){this.infoBar_.message='Cannot rasterize...';this.infoBar_.addButton('More info...',function(e){const overlay=new tr.ui.b.Overlay();Polymer.dom(overlay).textContent=this.pictureAsImageData_.error;overlay.visible=true;e.stopPropagation();return false;}.bind(this));this.infoBar_.visible=true;}
this.drawPicture_();},drawPicture_(){const size=this.getRasterCanvasSize_();if(size.width!==this.rasterCanvas_.width){this.rasterCanvas_.width=size.width;}
if(size.height!==this.rasterCanvas_.height){this.rasterCanvas_.height=size.height;}
this.rasterCtx_.clearRect(0,0,size.width,size.height);if(!this.pictureAsImageData_.imageData)return;const imgCanvas=this.pictureAsImageData_.asCanvas();const w=imgCanvas.width;const h=imgCanvas.height;this.rasterCtx_.drawImage(imgCanvas,0,0,w,h,0,0,w*this.zoomScaleValue_,h*this.zoomScaleValue_);},rasterize_(){if(this.picture_){this.picture_.rasterize({stopIndex:this.drawOpsView_.selectedOpIndex,showOverdraw:this.showOverdraw_},this.onRasterComplete_.bind(this));}},onRasterComplete_(pictureAsImageData){this.pictureAsImageData_=pictureAsImageData;this.scheduleUpdateContents_();},moveSelectedOpBy(increment){if(this.selectedOpIndex===undefined){this.selectedOpIndex=0;return;}
this.selectedOpIndex=tr.b.math.clamp(this.selectedOpIndex+increment,0,this.numOps);},get numOps(){return this.drawOpsView_.numOps;},get selectedOpIndex(){return this.drawOpsView_.selectedOpIndex;},set selectedOpIndex(index){this.drawOpsView_.selectedOpIndex=index;this.drawOpsChartView_.selectedOpIndex=index;},onChartBarClicked_(e){this.drawOpsView_.selectedOpIndex=this.drawOpsChartView_.selectedOpIndex;},onChangeDrawOps_(e){this.rasterize_();this.scheduleUpdateContents_();this.drawOpsChartView_.selectedOpIndex=this.drawOpsView_.selectedOpIndex;},set showOverdraw(v){this.showOverdraw_=v;this.rasterize_();},set showSummaryChart(chartShouldBeVisible){if(chartShouldBeVisible){this.drawOpsChartSummaryView_.show();}else{this.drawOpsChartSummaryView_.hide();}},trackMouse_(){this.mouseModeSelector_=document.createElement('tr-ui-b-mouse-mode-selector');this.mouseModeSelector_.targetElement=this.rasterArea_;Polymer.dom(this.rasterArea_).appendChild(this.mouseModeSelector_);this.mouseModeSelector_.supportedModeMask=tr.ui.b.MOUSE_SELECTOR_MODE.ZOOM;this.mouseModeSelector_.mode=tr.ui.b.MOUSE_SELECTOR_MODE.ZOOM;this.mouseModeSelector_.defaultMode=tr.ui.b.MOUSE_SELECTOR_MODE.ZOOM;this.mouseModeSelector_.settingsKey='pictureDebugger.mouseModeSelector';this.mouseModeSelector_.addEventListener('beginzoom',this.onBeginZoom_.bind(this));this.mouseModeSelector_.addEventListener('updatezoom',this.onUpdateZoom_.bind(this));this.mouseModeSelector_.addEventListener('endzoom',this.onEndZoom_.bind(this));},onBeginZoom_(e){this.isZooming_=true;this.lastMouseViewPos_=this.extractRelativeMousePosition_(e);e.preventDefault();},onUpdateZoom_(e){if(!this.isZooming_)return;const currentMouseViewPos=this.extractRelativeMousePosition_(e);this.zoomScaleValue_+=((this.lastMouseViewPos_.y-currentMouseViewPos.y)*0.001);this.zoomScaleValue_=Math.max(this.zoomScaleValue_,0.1);this.drawPicture_();this.lastMouseViewPos_=currentMouseViewPos;},onEndZoom_(e){this.lastMouseViewPos_=undefined;this.isZooming_=false;e.preventDefault();},extractRelativeMousePosition_(e){return{x:e.clientX-this.rasterArea_.offsetLeft,y:e.clientY-this.rasterArea_.offsetTop};}};return{PictureDebugger,};});'use strict';tr.exportTo('tr.ui.e.chrome.cc',function(){const PictureSnapshotView=tr.ui.b.define('tr-ui-e-chrome-cc-picture-snapshot-view',tr.ui.analysis.ObjectSnapshotView);PictureSnapshotView.prototype={__proto__:tr.ui.analysis.ObjectSnapshotView.prototype,decorate(){Polymer.dom(this).classList.add('tr-ui-e-chrome-cc-picture-snapshot-view');this.pictureDebugger_=new tr.ui.e.chrome.cc.PictureDebugger();Polymer.dom(this).appendChild(this.pictureDebugger_);},updateContents(){if(this.objectSnapshot_&&this.pictureDebugger_){this.pictureDebugger_.picture=this.objectSnapshot_;}}};tr.ui.analysis.ObjectSnapshotView.register(PictureSnapshotView,{typeNames:['cc::Picture','cc::LayeredPicture'],showInstances:false});return{PictureSnapshotView,};});'use strict';tr.exportTo('tr.e.cc',function(){const knownRasterTaskNames=['TileManager::RunRasterTask','RasterWorkerPoolTaskImpl::RunRasterOnThread','RasterWorkerPoolTaskImpl::Raster','RasterTaskImpl::Raster','cc::RasterTask','RasterTask'];const knownAnalysisTaskNames=['TileManager::RunAnalyzeTask','RasterWorkerPoolTaskImpl::RunAnalysisOnThread','RasterWorkerPoolTaskImpl::Analyze','RasterTaskImpl::Analyze','cc::AnalyzeTask','AnalyzeTask'];function getTileFromRasterTaskSlice(slice){if(!(isSliceDoingRasterization(slice)||isSliceDoingAnalysis(slice))){return undefined;}
let tileData;if(slice.args.data){tileData=slice.args.data;}else{tileData=slice.args.tileData;}
if(tileData===undefined)return undefined;if(tileData.tile_id)return tileData.tile_id;const tile=tileData.tileId;if(!(tile instanceof tr.e.cc.TileSnapshot)){return undefined;}
return tileData.tileId;}
function isSliceDoingRasterization(slice){return knownRasterTaskNames.includes(slice.title);}
function isSliceDoingAnalysis(slice){return knownAnalysisTaskNames.includes(slice.title);}
return{getTileFromRasterTaskSlice,isSliceDoingRasterization,isSliceDoingAnalysis};});'use strict';tr.exportTo('tr.ui.analysis',function(){const AnalysisSubView={set tabLabel(label){Polymer.dom(this).setAttribute('tab-label',label);},get tabLabel(){return this.getAttribute('tab-label');},get requiresTallView(){return false;},get relatedEventsToHighlight(){return undefined;},set selection(selection){throw new Error('Not implemented!');},get selection(){throw new Error('Not implemented!');}};const allTypeInfosByEventProto=new Map();let onlyRootTypeInfosByEventProto=undefined;let eventProtoToRootTypeInfoMap=undefined;function AnalysisSubViewTypeInfo(eventConstructor,options){if(options.multi===undefined){throw new Error('missing field: multi');}
if(options.title===undefined){throw new Error('missing field: title');}
this.eventConstructor=eventConstructor;this.singleTagName=undefined;this.singleTitle=undefined;this.multiTagName=undefined;this.multiTitle=undefined;this.childrenTypeInfos_=undefined;}
AnalysisSubViewTypeInfo.prototype={get childrenTypeInfos(){return this.childrenTypeInfos_;},resetchildrenTypeInfos(){this.childrenTypeInfos_=[];}};AnalysisSubView.register=function(tagName,eventConstructor,options){let typeInfo=allTypeInfosByEventProto.get(eventConstructor.prototype);if(typeInfo===undefined){typeInfo=new AnalysisSubViewTypeInfo(eventConstructor,options);allTypeInfosByEventProto.set(typeInfo.eventConstructor.prototype,typeInfo);onlyRootTypeInfosByEventProto=undefined;}
if(!options.multi){if(typeInfo.singleTagName!==undefined){throw new Error('SingleTagName already set');}
typeInfo.singleTagName=tagName;typeInfo.singleTitle=options.title;}else{if(typeInfo.multiTagName!==undefined){throw new Error('MultiTagName already set');}
typeInfo.multiTagName=tagName;typeInfo.multiTitle=options.title;}
return typeInfo;};function rebuildRootSubViewTypeInfos(){onlyRootTypeInfosByEventProto=new Map();allTypeInfosByEventProto.forEach(function(typeInfo){typeInfo.resetchildrenTypeInfos();});allTypeInfosByEventProto.forEach(function(typeInfo,eventProto){const eventPrototype=typeInfo.eventConstructor.prototype;let lastEventProto=eventPrototype;let curEventProto=eventPrototype.__proto__;while(true){if(!allTypeInfosByEventProto.has(curEventProto)){const rootTypeInfo=allTypeInfosByEventProto.get(lastEventProto);const rootEventProto=lastEventProto;const isNew=onlyRootTypeInfosByEventProto.has(rootEventProto);onlyRootTypeInfosByEventProto.set(rootEventProto,rootTypeInfo);break;}
lastEventProto=curEventProto;curEventProto=curEventProto.__proto__;}});allTypeInfosByEventProto.forEach(function(typeInfo,eventProto){const eventPrototype=typeInfo.eventConstructor.prototype;const parentEventProto=eventPrototype.__proto__;const parentTypeInfo=allTypeInfosByEventProto.get(parentEventProto);if(!parentTypeInfo)return;parentTypeInfo.childrenTypeInfos.push(typeInfo);});eventProtoToRootTypeInfoMap=new Map();allTypeInfosByEventProto.forEach(function(typeInfo,eventProto){const eventPrototype=typeInfo.eventConstructor.prototype;let curEventProto=eventPrototype;while(true){if(onlyRootTypeInfosByEventProto.has(curEventProto)){const rootTypeInfo=onlyRootTypeInfosByEventProto.get(curEventProto);eventProtoToRootTypeInfoMap.set(eventPrototype,rootTypeInfo);break;}
curEventProto=curEventProto.__proto__;}});}
function findLowestTypeInfoForEvents(thisTypeInfo,events){if(events.length===0)return thisTypeInfo;const event0=tr.b.getFirstElement(events);let candidateSubTypeInfo;for(let i=0;i<thisTypeInfo.childrenTypeInfos.length;i++){const childTypeInfo=thisTypeInfo.childrenTypeInfos[i];if(event0 instanceof childTypeInfo.eventConstructor){candidateSubTypeInfo=childTypeInfo;break;}}
if(!candidateSubTypeInfo)return thisTypeInfo;let allMatch=true;for(const event of events){if(event instanceof candidateSubTypeInfo.eventConstructor)continue;allMatch=false;break;}
if(!allMatch){return thisTypeInfo;}
return findLowestTypeInfoForEvents(candidateSubTypeInfo,events);}
const primaryEventProtoToTypeInfoMap=new Map();function getRootTypeInfoForEvent(event){const curProto=event.__proto__;const typeInfo=primaryEventProtoToTypeInfoMap.get(curProto);if(typeInfo)return typeInfo;return getRootTypeInfoForEventSlow(event);}
function getRootTypeInfoForEventSlow(event){let typeInfo;let curProto=event.__proto__;while(true){if(curProto===Object.prototype){throw new Error('No view registered for '+event.toString());}
typeInfo=onlyRootTypeInfosByEventProto.get(curProto);if(typeInfo){primaryEventProtoToTypeInfoMap.set(event.__proto__,typeInfo);return typeInfo;}
curProto=curProto.__proto__;}}
AnalysisSubView.getEventsOrganizedByTypeInfo=function(selection){if(onlyRootTypeInfosByEventProto===undefined){rebuildRootSubViewTypeInfos();}
const eventsByRootTypeInfo=tr.b.groupIntoMap(selection,function(event){return getRootTypeInfoForEvent(event);},this,tr.model.EventSet);const eventsByLowestTypeInfo=new Map();eventsByRootTypeInfo.forEach(function(events,typeInfo){const lowestTypeInfo=findLowestTypeInfoForEvents(typeInfo,events);eventsByLowestTypeInfo.set(lowestTypeInfo,events);});return eventsByLowestTypeInfo;};return{AnalysisSubView,AnalysisSubViewTypeInfo,};});Polymer({is:'tr-ui-a-sub-view',behaviors:[tr.ui.analysis.AnalysisSubView]});'use strict';Polymer({is:'tr-ui-a-stack-frame',ready(){this.stackFrame_=undefined;this.$.table.tableColumns=[];this.$.table.showHeader=true;},get stackFrame(){return this.stackFrame_;},set stackFrame(stackFrame){const table=this.$.table;this.stackFrame_=stackFrame;if(stackFrame===undefined){table.tableColumns=[];table.tableRows=[];table.rebuild();return;}
let hasName=false;let hasTitle=false;table.tableRows=stackFrame.stackTrace;table.tableRows.forEach(function(row){hasName|=row.name!==undefined;hasTitle|=row.title!==undefined;});const cols=[];if(hasName){cols.push({title:'Name',value(row){return row.name;}});}
if(hasTitle){cols.push({title:'Title',value(row){return row.title;}});}
table.tableColumns=cols;table.rebuild();},tableForTesting(){return this.$.table;}});'use strict';Polymer({is:'tr-ui-a-single-event-sub-view',behaviors:[tr.ui.analysis.AnalysisSubView],properties:{isFlow:{type:Boolean,value:false}},ready(){this.currentSelection_=undefined;this.$.table.tableColumns=[{title:'Label',value(row){return row.name;},width:'150px'},{title:'Value',width:'100%',value(row){return row.value;}}];this.$.table.showHeader=false;},get selection(){return this.currentSelection_;},set selection(selection){if(selection.length!==1){throw new Error('Only supports single slices');}
this.setSelectionWithoutErrorChecks(selection);},setSelectionWithoutErrorChecks(selection){this.currentSelection_=selection;this.updateContents_();},getFlowEventRows_(event){const rows=this.getEventRowsHelper_(event);rows.splice(0,0,{name:'ID',value:event.id});function createLinkTo(slice){const linkEl=document.createElement('tr-ui-a-analysis-link');linkEl.setSelectionAndContent(function(){return new tr.model.EventSet(slice);});Polymer.dom(linkEl).textContent=slice.userFriendlyName;return linkEl;}
rows.push({name:'From',value:createLinkTo(event.startSlice)});rows.push({name:'To',value:createLinkTo(event.endSlice)});return rows;},getEventRowsHelper_(event){const rows=[];if(event.error){rows.push({name:'Error',value:event.error});}
if(event.title){rows.push({name:'Title',value:event.title});}
if(event.category){rows.push({name:'Category',value:event.category});}
if(event.model!==undefined){const ufc=event.model.getUserFriendlyCategoryFromEvent(event);if(ufc!==undefined){rows.push({name:'User Friendly Category',value:ufc});}}
if(event.name){rows.push({name:'Name',value:event.name});}
rows.push({name:'Start',value:tr.v.ui.createScalarSpan(event.start,{unit:tr.b.Unit.byName.timeStampInMs})});if(event.duration){rows.push({name:'Wall Duration',value:tr.v.ui.createScalarSpan(event.duration,{unit:tr.b.Unit.byName.timeDurationInMs})});}
if(event.cpuDuration){rows.push({name:'CPU Duration',value:tr.v.ui.createScalarSpan(event.cpuDuration,{unit:tr.b.Unit.byName.timeDurationInMs})});}
if(event.subSlices!==undefined&&event.subSlices.length!==0){if(event.selfTime){rows.push({name:'Self Time',value:tr.v.ui.createScalarSpan(event.selfTime,{unit:tr.b.Unit.byName.timeDurationInMs})});}
if(event.cpuSelfTime){const cpuSelfTimeEl=tr.v.ui.createScalarSpan(event.cpuSelfTime,{unit:tr.b.Unit.byName.timeDurationInMs});if(event.cpuSelfTime>event.selfTime){cpuSelfTimeEl.warning=' Note that CPU Self Time is larger than Self Time. '+'This is a known limitation of this system, which occurs '+'due to several subslices, rounding issues, and imprecise '+'time at which we get cpu- and real-time.';}
rows.push({name:'CPU Self Time',value:cpuSelfTimeEl});}}
if(event.durationInUserTime){rows.push({name:'Duration (U)',value:tr.v.ui.createScalarSpan(event.durationInUserTime,{unit:tr.b.Unit.byName.timeDurationInMs})});}
function createStackFrameEl(sf){const sfEl=document.createElement('tr-ui-a-stack-frame');sfEl.stackFrame=sf;return sfEl;}
if(event.startStackFrame&&event.endStackFrame){if(event.startStackFrame===event.endStackFrame){rows.push({name:'Start+End Stack Trace',value:createStackFrameEl(event.startStackFrame)});}else{rows.push({name:'Start Stack Trace',value:createStackFrameEl(event.startStackFrame)});rows.push({name:'End Stack Trace',value:createStackFrameEl(event.endStackFrame)});}}else if(event.startStackFrame){rows.push({name:'Start Stack Trace',value:createStackFrameEl(event.startStackFrame)});}else if(event.endStackFrame){rows.push({name:'End Stack Trace',value:createStackFrameEl(event.endStackFrame)});}
if(event.info){const descriptionEl=tr.ui.b.createDiv({textContent:event.info.description,maxWidth:'300px'});rows.push({name:'Description',value:descriptionEl});if(event.info.docLinks){event.info.docLinks.forEach(function(linkObject){const linkEl=document.createElement('a');linkEl.target='_blank';linkEl.href=linkObject.href;Polymer.dom(linkEl).textContent=Polymer.dom(linkObject).textContent;rows.push({name:linkObject.label,value:linkEl});});}}
if(event.associatedAlerts.length){const alertSubRows=[];event.associatedAlerts.forEach(function(alert){const linkEl=document.createElement('tr-ui-a-analysis-link');linkEl.setSelectionAndContent(function(){return new tr.model.EventSet(alert);},alert.info.description);alertSubRows.push({name:alert.title,value:linkEl});});rows.push({name:'Alerts',value:'',isExpanded:true,subRows:alertSubRows});}
return rows;},getEventRows_(event){if(this.isFlow){return this.getFlowEventRows_(event);}
return this.getEventRowsHelper_(event);},addArgsToRows_(rows,args){let n=0;for(const argName in args){n+=1;}
if(n>0){const subRows=[];for(const argName in args){n+=1;}
if(n>0){const subRows=[];for(const argName in args){const argView=document.createElement('tr-ui-a-generic-object-view');argView.object=args[argName];subRows.push({name:argName,value:argView});}
rows.push({name:'Args',value:'',isExpanded:true,subRows});}}},addContextsToRows_(rows,contexts){if(contexts.length){const subRows=contexts.map(function(context){const contextView=document.createElement('tr-ui-a-generic-object-view');contextView.object=context;return{name:'Context',value:contextView};});rows.push({name:'Contexts',value:'',isExpanded:true,subRows});}},updateContents_(){if(this.currentSelection_===undefined){this.$.table.rows=[];this.$.table.rebuild();return;}
const event=tr.b.getOnlyElement(this.currentSelection_);const rows=this.getEventRows_(event);if(event.argsStripped){rows.push({name:'Args',value:'Stripped'});}else{this.addArgsToRows_(rows,event.args);}
this.addContextsToRows_(rows,event.contexts);const customizeRowsEvent=new tr.b.Event('customize-rows');customizeRowsEvent.rows=rows;this.dispatchEvent(customizeRowsEvent);this.$.table.tableRows=rows;this.$.table.rebuild();}});'use strict';Polymer({is:'tr-ui-e-chrome-cc-raster-task-view',created(){this.selection_=undefined;},set selection(selection){this.selection_=selection;this.updateContents_();},updateColumns_(hadCpuDurations){const timeSpanConfig={unit:tr.b.Unit.byName.timeDurationInMs,ownerDocument:this.ownerDocument};const columns=[{title:'Layer',value(row){if(row.isTotals)return'Totals';if(row.layer){const linkEl=document.createElement('tr-ui-a-analysis-link');linkEl.setSelectionAndContent(function(){return new tr.ui.e.chrome.cc.LayerSelection(costs.layer);},'Layer '+row.layerId);return linkEl;}
return'Layer '+row.layerId;},width:'250px'},{title:'Num Tiles',value(row){return row.numTiles;},cmp(a,b){return a.numTiles-b.numTiles;}},{title:'Num Analysis Tasks',value(row){return row.numAnalysisTasks;},cmp(a,b){return a.numAnalysisTasks-b.numAnalysisTasks;}},{title:'Num Raster Tasks',value(row){return row.numRasterTasks;},cmp(a,b){return a.numRasterTasks-b.numRasterTasks;}},{title:'Wall Duration (ms)',value(row){return tr.v.ui.createScalarSpan(row.duration,timeSpanConfig);},cmp(a,b){return a.duration-b.duration;}}];if(hadCpuDurations){columns.push({title:'CPU Duration (ms)',value(row){return tr.v.ui.createScalarSpan(row.cpuDuration,timeSpanConfig);},cmp(a,b){return a.cpuDuration-b.cpuDuration;}});}
let colWidthPercentage;if(columns.length===1){colWidthPercentage='100%';}else{colWidthPercentage=(100/(columns.length-1)).toFixed(3)+'%';}
for(let i=1;i<columns.length;i++){columns[i].width=colWidthPercentage;}
this.$.content.tableColumns=columns;this.$.content.sortColumnIndex=columns.length-1;},updateContents_(){const table=this.$.content;if(this.selection_.length===0){this.$.link.setSelectionAndContent(undefined,'');table.tableRows=[];table.footerRows=[];table.rebuild();return;}
const lthi=tr.e.cc.getTileFromRasterTaskSlice(tr.b.getFirstElement(this.selection_)).containingSnapshot;this.$.link.setSelectionAndContent(function(){return new tr.model.EventSet(lthi);},lthi.userFriendlyName);const costsByLayerId={};function getCurrentCostsForLayerId(tile){const layerId=tile.layerId;const lthi=tile.containingSnapshot;let layer;if(lthi.activeTree){layer=lthi.activeTree.findLayerWithId(layerId);}
if(layer===undefined&<hi.pendingTree){layer=lthi.pendingTree.findLayerWithId(layerId);}
if(costsByLayerId[layerId]===undefined){costsByLayerId[layerId]={layerId,layer,numTiles:0,numAnalysisTasks:0,numRasterTasks:0,duration:0,cpuDuration:0};}
return costsByLayerId[layerId];}
let totalDuration=0;let totalCpuDuration=0;let totalNumAnalyzeTasks=0;let totalNumRasterizeTasks=0;let hadCpuDurations=false;const tilesThatWeHaveSeen={};this.selection_.forEach(function(slice){const tile=tr.e.cc.getTileFromRasterTaskSlice(slice);const curCosts=getCurrentCostsForLayerId(tile);if(!tilesThatWeHaveSeen[tile.objectInstance.id]){tilesThatWeHaveSeen[tile.objectInstance.id]=true;curCosts.numTiles+=1;}
if(tr.e.cc.isSliceDoingAnalysis(slice)){curCosts.numAnalysisTasks+=1;totalNumAnalyzeTasks+=1;}else{curCosts.numRasterTasks+=1;totalNumRasterizeTasks+=1;}
curCosts.duration+=slice.duration;totalDuration+=slice.duration;if(slice.cpuDuration!==undefined){curCosts.cpuDuration+=slice.cpuDuration;totalCpuDuration+=slice.cpuDuration;hadCpuDurations=true;}});this.updateColumns_(hadCpuDurations);table.tableRows=Object.values(costsByLayerId);table.rebuild();table.footerRows=[{isTotals:true,numTiles:Object.keys(tilesThatWeHaveSeen).length,numAnalysisTasks:totalNumAnalyzeTasks,numRasterTasks:totalNumRasterizeTasks,duration:totalDuration,cpuDuration:totalCpuDuration}];}});'use strict';tr.exportTo('tr.ui.e.chrome.cc',function(){function RasterTaskSelection(selection){tr.ui.e.chrome.cc.Selection.call(this);const whySupported=RasterTaskSelection.whySuported(selection);if(!whySupported.ok){throw new Error('Fail: '+whySupported.why);}
this.slices_=tr.b.asArray(selection);this.tiles_=this.slices_.map(function(slice){const tile=tr.e.cc.getTileFromRasterTaskSlice(slice);if(tile===undefined){throw new Error('This should never happen due to .supports check.');}
return tile;});}
RasterTaskSelection.whySuported=function(selection){if(!(selection instanceof tr.model.EventSet)){return{ok:false,why:'Must be selection'};}
if(selection.length===0){return{ok:false,why:'Selection must be non empty'};}
let referenceSnapshot=undefined;for(const event of selection){if(!(event instanceof tr.model.Slice)){return{ok:false,why:'Not a slice'};}
const tile=tr.e.cc.getTileFromRasterTaskSlice(event);if(tile===undefined){return{ok:false,why:'No tile found'};}
if(!referenceSnapshot){referenceSnapshot=tile.containingSnapshot;}else{if(tile.containingSnapshot!==referenceSnapshot){return{ok:false,why:'Raster tasks are from different compositor instances'};}}}
return{ok:true};};RasterTaskSelection.supports=function(selection){return RasterTaskSelection.whySuported(selection).ok;};RasterTaskSelection.prototype={__proto__:tr.ui.e.chrome.cc.Selection.prototype,get specicifity(){return 3;},get associatedLayerId(){const tile0=this.tiles_[0];const allSameLayer=this.tiles_.every(function(tile){tile.layerId===tile0.layerId;});if(allSameLayer){return tile0.layerId;}
return undefined;},get extraHighlightsByLayerId(){const highlights={};this.tiles_.forEach(function(tile,i){if(highlights[tile.layerId]===undefined){highlights[tile.layerId]=[];}
const slice=this.slices_[i];highlights[tile.layerId].push({colorKey:slice.title,rect:tile.layerRect});},this);return highlights;},createAnalysis(){const sel=new tr.model.EventSet();this.slices_.forEach(function(slice){sel.push(slice);});let analysis;if(sel.length===1){analysis=document.createElement('tr-ui-a-single-event-sub-view');}else{analysis=document.createElement('tr-ui-e-chrome-cc-raster-task-view');}
analysis.selection=sel;return analysis;},findEquivalent(lthi){return undefined;},get containingSnapshot(){return this.tiles_[0].containingSnapshot;}};return{RasterTaskSelection,};});'use strict';tr.exportTo('tr.ui.e.chrome.cc',function(){const TileSnapshotView=tr.ui.b.define('tr-ui-e-chrome-cc-tile-snapshot-view',tr.ui.analysis.ObjectSnapshotView);TileSnapshotView.prototype={__proto__:tr.ui.analysis.ObjectSnapshotView.prototype,decorate(){Polymer.dom(this).classList.add('tr-ui-e-chrome-cc-tile-snapshot-view');this.layerTreeView_=new tr.ui.e.chrome.cc.LayerTreeHostImplSnapshotView();Polymer.dom(this).appendChild(this.layerTreeView_);},updateContents(){const tile=this.objectSnapshot_;const layerTreeHostImpl=tile.containingSnapshot;if(!layerTreeHostImpl)return;this.layerTreeView_.objectSnapshot=layerTreeHostImpl;this.layerTreeView_.selection=new tr.ui.e.chrome.cc.TileSelection(tile);}};tr.ui.analysis.ObjectSnapshotView.register(TileSnapshotView,{typeName:'cc::Tile',showInTrackView:false});return{TileSnapshotView,};});'use strict';tr.exportTo('tr.e.gpu',function(){const AsyncSlice=tr.model.AsyncSlice;function GpuAsyncSlice(){AsyncSlice.apply(this,arguments);}
GpuAsyncSlice.prototype={__proto__:AsyncSlice.prototype,get viewSubGroupTitle(){if(this.args.channel){if(this.category==='disabled-by-default-gpu.device'){return'Device.'+this.args.channel;}
return'Service.'+this.args.channel;}
return this.title;}};AsyncSlice.subTypes.register(GpuAsyncSlice,{categoryParts:['disabled-by-default-gpu.device','disabled-by-default-gpu.service']});return{GpuAsyncSlice,};});'use strict';tr.exportTo('tr.e.gpu',function(){const ObjectSnapshot=tr.model.ObjectSnapshot;function StateSnapshot(){ObjectSnapshot.apply(this,arguments);}
StateSnapshot.prototype={__proto__:ObjectSnapshot.prototype,preInitialize(){this.screenshot_=undefined;},initialize(){if(this.args.screenshot){this.screenshot_=this.args.screenshot;}},get screenshot(){return this.screenshot_;}};ObjectSnapshot.subTypes.register(StateSnapshot,{typeName:'gpu::State'});return{StateSnapshot,};});'use strict';tr.exportTo('tr.ui.e.chrome.gpu',function(){const StateSnapshotView=tr.ui.b.define('tr-ui-e-chrome-gpu-state-snapshot-view',tr.ui.analysis.ObjectSnapshotView);StateSnapshotView.prototype={__proto__:tr.ui.analysis.ObjectSnapshotView.prototype,decorate(){Polymer.dom(this).classList.add('tr-ui-e-chrome-gpu-state-snapshot-view');this.screenshotImage_=document.createElement('img');Polymer.dom(this).appendChild(this.screenshotImage_);},updateContents(){if(this.objectSnapshot_&&this.objectSnapshot_.screenshot){this.screenshotImage_.src='data:image/png;base64,'+
this.objectSnapshot_.screenshot;}}};tr.ui.analysis.ObjectSnapshotView.register(StateSnapshotView,{typeName:'gpu::State'});return{StateSnapshotView,};});'use strict';tr.exportTo('tr.ui.analysis',function(){Polymer({is:'tr-ui-a-layout-tree-sub-view',behaviors:['tr-ui-a-sub-view'],set selection(selection){this.currentSelection_=selection;this.updateContents_();},get selection(){return this.currentSelection_;},updateContents_(){this.set('$.content.textContent','');if(!this.currentSelection_)return;const columns=[{title:'Tag/Name',value(layoutObject){return layoutObject.tag||':'+layoutObject.name;}},{title:'htmlId',value(layoutObject){return layoutObject.htmlId||'';}},{title:'classNames',value(layoutObject){return layoutObject.classNames||'';}},{title:'reasons',value(layoutObject){return layoutObject.needsLayoutReasons.join(', ');}},{title:'width',value(layoutObject){return layoutObject.absoluteRect.width;}},{title:'height',value(layoutObject){return layoutObject.absoluteRect.height;}},{title:'absX',value(layoutObject){return layoutObject.absoluteRect.left;}},{title:'absY',value(layoutObject){return layoutObject.absoluteRect.top;}},{title:'relX',value(layoutObject){return layoutObject.relativeRect.left;}},{title:'relY',value(layoutObject){return layoutObject.relativeRect.top;}},{title:'float',value(layoutObject){return layoutObject.isFloat?'float':'';}},{title:'positioned',value(layoutObject){return layoutObject.isPositioned?'positioned':'';}},{title:'relative',value(layoutObject){return layoutObject.isRelativePositioned?'relative':'';}},{title:'sticky',value(layoutObject){return layoutObject.isStickyPositioned?'sticky':'';}},{title:'anonymous',value(layoutObject){return layoutObject.isAnonymous?'anonymous':'';}},{title:'row',value(layoutObject){if(layoutObject.tableRow===undefined){return'';}
return layoutObject.tableRow;}},{title:'col',value(layoutObject){if(layoutObject.tableCol===undefined){return'';}
return layoutObject.tableCol;}},{title:'rowSpan',value(layoutObject){if(layoutObject.tableRowSpan===undefined){return'';}
return layoutObject.tableRowSpan;}},{title:'colSpan',value(layoutObject){if(layoutObject.tableColSpan===undefined){return'';}
return layoutObject.tableColSpan;}},{title:'address',value(layoutObject){return layoutObject.id.toString(16);}}];const table=this.ownerDocument.createElement('tr-ui-b-table');table.defaultExpansionStateCallback=function(layoutObject,parentLayoutObject){return true;};table.subRowsPropertyName='childLayoutObjects';table.tableColumns=columns;table.tableRows=this.currentSelection_.map(function(snapshot){return snapshot.rootLayoutObject;});table.rebuild();Polymer.dom(this.$.content).appendChild(table);},});return{};});tr.ui.analysis.AnalysisSubView.register('tr-ui-a-layout-tree-sub-view',tr.e.chrome.LayoutTreeSnapshot,{multi:false,title:'Layout Tree',});tr.ui.analysis.AnalysisSubView.register('tr-ui-a-layout-tree-sub-view',tr.e.chrome.LayoutTreeSnapshot,{multi:true,title:'Layout Trees',});'use strict';tr.exportTo('tr.ui.behaviors',function(){const SidePanel={get rangeOfInterest(){throw new Error('Not implemented');},set rangeOfInterest(rangeOfInterest){throw new Error('Not implemented');},get selection(){throw new Error('Not implemented');},set selection(selection){throw new Error('Not implemented');},get model(){throw new Error('Not implemented');},set model(model){throw new Error('Not implemented');},supportsModel(m){throw new Error('Not implemented');}};return{SidePanel,};});'use strict';tr.exportTo('tr.ui.side_panel',function(){function SidePanelRegistry(){}
const options=new tr.b.ExtensionRegistryOptions(tr.b.BASIC_REGISTRY_MODE);tr.b.decorateExtensionRegistry(SidePanelRegistry,options);return{SidePanelRegistry,};});'use strict';tr.exportTo('tr.ui.e.s',function(){const BlameContextSnapshot=tr.e.chrome.BlameContextSnapshot;const FrameTreeNodeSnapshot=tr.e.chrome.FrameTreeNodeSnapshot;const RenderFrameSnapshot=tr.e.chrome.RenderFrameSnapshot;const TopLevelSnapshot=tr.e.chrome.TopLevelSnapshot;const BlameContextInstance=tr.e.chrome.BlameContextInstance;const FrameTreeNodeInstance=tr.e.chrome.FrameTreeNodeInstance;const RenderFrameInstance=tr.e.chrome.RenderFrameInstance;const TopLevelInstance=tr.e.chrome.TopLevelInstance;function Row(context){this.subRows=undefined;this.contexts=[];this.type=undefined;this.renderer='N/A';this.url=undefined;this.time=0;this.eventsOfInterest=new tr.model.EventSet();if(context===undefined)return;this.type=context.objectInstance.blameContextType;this.contexts.push(context);if(context instanceof FrameTreeNodeSnapshot){if(context.renderFrame){this.contexts.push(context.renderFrame);this.renderer=context.renderFrame.objectInstance.parent.pid;}}else if(context instanceof RenderFrameSnapshot){if(context.frameTreeNode){this.contexts.push(context.frameTreeNode);}
this.renderer=context.objectInstance.parent.pid;}else if(context instanceof TopLevelSnapshot){this.renderer=context.objectInstance.parent.pid;}else{throw new Error('Unknown context type');}
this.eventsOfInterest.addEventSet(this.contexts);this.url=context.url;}
const groupFunctions={none:rows=>rows,tree(rows,rowMap){const getParentRow=function(row){let pivot;row.contexts.forEach(function(context){if(context instanceof tr.e.chrome.FrameTreeNodeSnapshot){pivot=context;}});if(pivot&&pivot.parentContext){return rowMap[pivot.parentContext.guid];}
return undefined;};const rootRows=[];rows.forEach(function(row){const parentRow=getParentRow(row);if(parentRow===undefined){rootRows.push(row);return;}
if(parentRow.subRows===undefined){parentRow.subRows=[];}
parentRow.subRows.push(row);});const aggregateAllDescendants=function(row){if(!row.subRows){if(getParentRow(row)){row.type='Subframe';}
return row;}
const result=new Row();result.type='Frame Tree';result.renderer=row.renderer;result.url=row.url;result.subRows=[row];row.subRows.forEach(subRow=>result.subRows.push(aggregateAllDescendants(subRow)));result.subRows.forEach(function(subRow){result.time+=subRow.time;result.eventsOfInterest.addEventSet(subRow.eventsOfInterest);});row.subRows=undefined;return result;};return rootRows.map(rootRow=>aggregateAllDescendants(rootRow));}};Polymer({is:'tr-ui-e-s-frame-data-side-panel',behaviors:[tr.ui.behaviors.SidePanel],ready(){this.model_=undefined;this.rangeOfInterest_=new tr.b.math.Range();this.$.table.showHeader=true;this.$.table.selectionMode=tr.ui.b.TableFormat.SelectionMode.ROW;this.$.table.tableColumns=this.createFrameDataTableColumns_();this.$.table.addEventListener('selection-changed',function(e){this.selectEventSet_(this.$.table.selectedTableRow.eventsOfInterest);}.bind(this));this.$.select.addEventListener('change',function(e){this.updateContents_();}.bind(this));},selectEventSet_(eventSet){const event=new tr.model.RequestSelectionChangeEvent();event.selection=eventSet;this.dispatchEvent(event);},createFrameDataTableColumns_(){return[{title:'Renderer',value:row=>row.renderer,cmp:(a,b)=>a.renderer-b.renderer},{title:'Type',value:row=>row.type},{title:'Time',value:row=>tr.v.ui.createScalarSpan(row.time,{unit:tr.b.Unit.byName.timeStampInMs,ownerDocument:this.ownerDocument}),cmp:(a,b)=>a.time-b.time},{title:'URL',value:row=>row.url,cmp:(a,b)=>(a.url||'').localeCompare(b.url||'')}];},createFrameDataTableRows_(){if(!this.model_)return[];const rows=[];const rowMap={};for(const proc of Object.values(this.model_.processes)){proc.objects.iterObjectInstances(function(objectInstance){if(!(objectInstance instanceof BlameContextInstance)){return;}
objectInstance.snapshots.forEach(function(snapshot){if(rowMap[snapshot.guid])return;const row=new Row(snapshot);row.contexts.forEach(context=>rowMap[context.guid]=row);rows.push(row);},this);},this);}
for(const proc of Object.values(this.model_.processes)){for(const thread of Object.values(proc.threads)){thread.sliceGroup.iterSlicesInTimeRange(function(topLevelSlice){topLevelSlice.contexts.forEach(function(context){if(!context.snapshot.guid||!rowMap[context.snapshot.guid]){return;}
const row=rowMap[context.snapshot.guid];row.eventsOfInterest.push(topLevelSlice);row.time+=topLevelSlice.selfTime||0;});},this.currentRangeOfInterest.min,this.currentRangeOfInterest.max);}}
const select=this.$.select;const groupOption=select.options[select.selectedIndex].value;const groupFunction=groupFunctions[groupOption];return groupFunction(rows,rowMap);},updateContents_(){this.$.table.tableRows=this.createFrameDataTableRows_();this.$.table.rebuild();},supportsModel(m){if(!m){return{supported:false,reason:'No model available.'};}
const ans={supported:false};for(const proc of Object.values(m.processes)){proc.objects.iterObjectInstances(function(instance){if(instance instanceof BlameContextInstance){ans.supported=true;}});}
if(!ans.supported){ans.reason='No frame data available';}
return ans;},get currentRangeOfInterest(){if(this.rangeOfInterest_.isEmpty){return this.model_.bounds;}
return this.rangeOfInterest_;},get rangeOfInterest(){return this.rangeOfInterest_;},set rangeOfInterest(rangeOfInterest){this.rangeOfInterest_=rangeOfInterest;this.updateContents_();},get selection(){},set selection(_){},get textLabel(){return'Frame Data';},get model(){return this.model_;},set model(model){this.model_=model;this.updateContents_();}});tr.ui.side_panel.SidePanelRegistry.register(function(){return document.createElement('tr-ui-e-s-frame-data-side-panel');});});'use strict';Polymer({is:'tr-ui-b-chart-legend-key',ready(){this.$.checkbox.addEventListener('change',this.onCheckboxChange_.bind(this));},onCheckboxChange_(){tr.b.dispatchSimpleEvent(this,tr.ui.b.DataSeriesEnableChangeEventType,true,false,{key:Polymer.dom(this).textContent,enabled:this.enabled});},set textContent(t){Polymer.dom(this.$.label).textContent=t;Polymer.dom(this.$.link).textContent=t;this.updateContents_();},set width(w){w-=20;this.$.link.style.width=w+'px';this.$.label.style.width=w+'px';},get textContent(){return Polymer.dom(this.$.label).textContent;},set optional(optional){this.$.checkbox.style.visibility=optional?'visible':'hidden';},get optional(){return this.$.checkbox.style.visibility==='visible';},set enabled(enabled){this.$.checkbox.checked=enabled?'checked':'';},get enabled(){return this.$.checkbox.checked;},set color(c){this.$.label.style.color=c;this.$.link.color=c;},set target(target){this.$.link.setSelectionAndContent(target,Polymer.dom(this.$.label).textContent);this.updateContents_();},get target(){return this.$.link.selection;},set title(title){this.$.link.title=title;},updateContents_(){this.$.link.style.display=this.target?'':'none';this.$.label.style.display=this.target?'none':'';this.$.label.htmlFor=this.optional?'checkbox':'';}});'use strict';(function(window){window.define=function(x){window.d3=x;};window.define.amd=true;})(this);!function(){function n(n){return null!=n&&!isNaN(n)}function t(n){return n.length}function e(n){for(var t=1;n*t%1;)t*=10;return t}function r(n,t){try{for(var e in t)Object.defineProperty(n.prototype,e,{value:t[e],enumerable:!1})}catch(r){n.prototype=t}}function u(){}function i(n){return aa+n in this}function o(n){return n=aa+n,n in this&&delete this[n]}function a(){var n=[];return this.forEach(function(t){n.push(t)}),n}function c(){var n=0;for(var t in this)t.charCodeAt(0)===ca&&++n;return n}function s(){for(var n in this)if(n.charCodeAt(0)===ca)return!1;return!0}function l(){}function f(n,t,e){return function(){var r=e.apply(t,arguments);return r===t?n:r}}function h(n,t){if(t in n)return t;t=t.charAt(0).toUpperCase()+t.substring(1);for(var e=0,r=sa.length;r>e;++e){var u=sa[e]+t;if(u in n)return u}}function g(){}function p(){}function v(n){function t(){for(var t,r=e,u=-1,i=r.length;++u<i;)(t=r[u].on)&&t.apply(this,arguments);return n}var e=[],r=new u;return t.on=function(t,u){var i,o=r.get(t);return arguments.length<2?o&&o.on:(o&&(o.on=null,e=e.slice(0,i=e.indexOf(o)).concat(e.slice(i+1)),r.remove(t)),u&&e.push(r.set(t,{on:u})),n)},t}function d(){Xo.event.preventDefault()}function m(){for(var n,t=Xo.event;n=t.sourceEvent;)t=n;return t}function y(n){for(var t=new p,e=0,r=arguments.length;++e<r;)t[arguments[e]]=v(t);return t.of=function(e,r){return function(u){try{var i=u.sourceEvent=Xo.event;u.target=n,Xo.event=u,t[u.type].apply(e,r)}finally{Xo.event=i}}},t}function x(n){return fa(n,da),n}function M(n){return"function"==typeof n?n:function(){return ha(n,this)}}function _(n){return"function"==typeof n?n:function(){return ga(n,this)}}function b(n,t){function e(){this.removeAttribute(n)}function r(){this.removeAttributeNS(n.space,n.local)}function u(){this.setAttribute(n,t)}function i(){this.setAttributeNS(n.space,n.local,t)}function o(){var e=t.apply(this,arguments);null==e?this.removeAttribute(n):this.setAttribute(n,e)}function a(){var e=t.apply(this,arguments);null==e?this.removeAttributeNS(n.space,n.local):this.setAttributeNS(n.space,n.local,e)}return n=Xo.ns.qualify(n),null==t?n.local?r:e:"function"==typeof t?n.local?a:o:n.local?i:u}function w(n){return n.trim().replace(/\s+/g," ")}function S(n){return new RegExp("(?:^|\\s+)"+Xo.requote(n)+"(?:\\s+|$)","g")}function k(n){return n.trim().split(/^|\s+/)}function E(n,t){function e(){for(var e=-1;++e<u;)n[e](this,t)}function r(){for(var e=-1,r=t.apply(this,arguments);++e<u;)n[e](this,r)}n=k(n).map(A);var u=n.length;return"function"==typeof t?r:e}function A(n){var t=S(n);return function(e,r){if(u=e.classList)return r?u.add(n):u.remove(n);var u=e.getAttribute("class")||"";r?(t.lastIndex=0,t.test(u)||e.setAttribute("class",w(u+" "+n))):e.setAttribute("class",w(u.replace(t," ")))}}function C(n,t,e){function r(){this.style.removeProperty(n)}function u(){this.style.setProperty(n,t,e)}function i(){var r=t.apply(this,arguments);null==r?this.style.removeProperty(n):this.style.setProperty(n,r,e)}return null==t?r:"function"==typeof t?i:u}function N(n,t){function e(){delete this[n]}function r(){this[n]=t}function u(){var e=t.apply(this,arguments);null==e?delete this[n]:this[n]=e}return null==t?e:"function"==typeof t?u:r}function L(n){return"function"==typeof n?n:(n=Xo.ns.qualify(n)).local?function(){return this.ownerDocument.createElementNS(n.space,n.local)}:function(){return this.ownerDocument.createElementNS(this.namespaceURI,n)}}function T(n){return{__data__:n}}function q(n){return function(){return va(this,n)}}function z(n){return arguments.length||(n=Xo.ascending),function(t,e){return t&&e?n(t.__data__,e.__data__):!t-!e}}function R(n,t){for(var e=0,r=n.length;r>e;e++)for(var u,i=n[e],o=0,a=i.length;a>o;o++)(u=i[o])&&t(u,o,e);return n}function D(n){return fa(n,ya),n}function P(n){var t,e;return function(r,u,i){var o,a=n[i].update,c=a.length;for(i!=e&&(e=i,t=0),u>=t&&(t=u+1);!(o=a[t])&&++t<c;);return o}}function U(){var n=this.__transition__;n&&++n.active}function j(n,t,e){function r(){var t=this[o];t&&(this.removeEventListener(n,t,t.$),delete this[o])}function u(){var u=c(t,Bo(arguments));r.call(this),this.addEventListener(n,this[o]=u,u.$=e),u._=t}function i(){var t,e=new RegExp("^__on([^.]+)"+Xo.requote(n)+"$");for(var r in this)if(t=r.match(e)){var u=this[r];this.removeEventListener(t[1],u,u.$),delete this[r]}}var o="__on"+n,a=n.indexOf("."),c=H;a>0&&(n=n.substring(0,a));var s=Ma.get(n);return s&&(n=s,c=F),a?t?u:r:t?g:i}function H(n,t){return function(e){var r=Xo.event;Xo.event=e,t[0]=this.__data__;try{n.apply(this,t)}finally{Xo.event=r}}}function F(n,t){var e=H(n,t);return function(n){var t=this,r=n.relatedTarget;r&&(r===t||8&r.compareDocumentPosition(t))||e.call(t,n)}}function O(){var n=".dragsuppress-"+ ++ba,t="click"+n,e=Xo.select(Go).on("touchmove"+n,d).on("dragstart"+n,d).on("selectstart"+n,d);if(_a){var r=Jo.style,u=r[_a];r[_a]="none"}return function(i){function o(){e.on(t,null)}e.on(n,null),_a&&(r[_a]=u),i&&(e.on(t,function(){d(),o()},!0),setTimeout(o,0))}}function Y(n,t){t.changedTouches&&(t=t.changedTouches[0]);var e=n.ownerSVGElement||n;if(e.createSVGPoint){var r=e.createSVGPoint();if(0>wa&&(Go.scrollX||Go.scrollY)){e=Xo.select("body").append("svg").style({position:"absolute",top:0,left:0,margin:0,padding:0,border:"none"},"important");var u=e[0][0].getScreenCTM();wa=!(u.f||u.e),e.remove()}return wa?(r.x=t.pageX,r.y=t.pageY):(r.x=t.clientX,r.y=t.clientY),r=r.matrixTransform(n.getScreenCTM().inverse()),[r.x,r.y]}var i=n.getBoundingClientRect();return[t.clientX-i.left-n.clientLeft,t.clientY-i.top-n.clientTop]}function I(n){return n>0?1:0>n?-1:0}function Z(n,t,e){return(t[0]-n[0])*(e[1]-n[1])-(t[1]-n[1])*(e[0]-n[0])}function V(n){return n>1?0:-1>n?Sa:Math.acos(n)}function X(n){return n>1?Ea:-1>n?-Ea:Math.asin(n)}function $(n){return((n=Math.exp(n))-1/n)/2}function B(n){return((n=Math.exp(n))+1/n)/2}function W(n){return((n=Math.exp(2*n))-1)/(n+1)}function J(n){return(n=Math.sin(n/2))*n}function G(){}function K(n,t,e){return new Q(n,t,e)}function Q(n,t,e){this.h=n,this.s=t,this.l=e}function nt(n,t,e){function r(n){return n>360?n-=360:0>n&&(n+=360),60>n?i+(o-i)*n/60:180>n?o:240>n?i+(o-i)*(240-n)/60:i}function u(n){return Math.round(255*r(n))}var i,o;return n=isNaN(n)?0:(n%=360)<0?n+360:n,t=isNaN(t)?0:0>t?0:t>1?1:t,e=0>e?0:e>1?1:e,o=.5>=e?e*(1+t):e+t-e*t,i=2*e-o,gt(u(n+120),u(n),u(n-120))}function tt(n,t,e){return new et(n,t,e)}function et(n,t,e){this.h=n,this.c=t,this.l=e}function rt(n,t,e){return isNaN(n)&&(n=0),isNaN(t)&&(t=0),ut(e,Math.cos(n*=Na)*t,Math.sin(n)*t)}function ut(n,t,e){return new it(n,t,e)}function it(n,t,e){this.l=n,this.a=t,this.b=e}function ot(n,t,e){var r=(n+16)/116,u=r+t/500,i=r-e/200;return u=ct(u)*Fa,r=ct(r)*Oa,i=ct(i)*Ya,gt(lt(3.2404542*u-1.5371385*r-.4985314*i),lt(-.969266*u+1.8760108*r+.041556*i),lt(.0556434*u-.2040259*r+1.0572252*i))}function at(n,t,e){return n>0?tt(Math.atan2(e,t)*La,Math.sqrt(t*t+e*e),n):tt(0/0,0/0,n)}function ct(n){return n>.206893034?n*n*n:(n-4/29)/7.787037}function st(n){return n>.008856?Math.pow(n,1/3):7.787037*n+4/29}function lt(n){return Math.round(255*(.00304>=n?12.92*n:1.055*Math.pow(n,1/2.4)-.055))}function ft(n){return gt(n>>16,255&n>>8,255&n)}function ht(n){return ft(n)+""}function gt(n,t,e){return new pt(n,t,e)}function pt(n,t,e){this.r=n,this.g=t,this.b=e}function vt(n){return 16>n?"0"+Math.max(0,n).toString(16):Math.min(255,n).toString(16)}function dt(n,t,e){var r,u,i,o,a=0,c=0,s=0;if(u=/([a-z]+)\((.*)\)/i.exec(n))switch(i=u[2].split(","),u[1]){case"hsl":return e(parseFloat(i[0]),parseFloat(i[1])/100,parseFloat(i[2])/100);case"rgb":return t(Mt(i[0]),Mt(i[1]),Mt(i[2]))}return(o=Va.get(n))?t(o.r,o.g,o.b):(null!=n&&"#"===n.charAt(0)&&(r=parseInt(n.substring(1),16),isNaN(r)||(4===n.length?(a=(3840&r)>>4,a=a>>4|a,c=240&r,c=c>>4|c,s=15&r,s=s<<4|s):7===n.length&&(a=(16711680&r)>>16,c=(65280&r)>>8,s=255&r))),t(a,c,s))}function mt(n,t,e){var r,u,i=Math.min(n/=255,t/=255,e/=255),o=Math.max(n,t,e),a=o-i,c=(o+i)/2;return a?(u=.5>c?a/(o+i):a/(2-o-i),r=n==o?(t-e)/a+(e>t?6:0):t==o?(e-n)/a+2:(n-t)/a+4,r*=60):(r=0/0,u=c>0&&1>c?0:r),K(r,u,c)}function yt(n,t,e){n=xt(n),t=xt(t),e=xt(e);var r=st((.4124564*n+.3575761*t+.1804375*e)/Fa),u=st((.2126729*n+.7151522*t+.072175*e)/Oa),i=st((.0193339*n+.119192*t+.9503041*e)/Ya);return ut(116*u-16,500*(r-u),200*(u-i))}function xt(n){return(n/=255)<=.04045?n/12.92:Math.pow((n+.055)/1.055,2.4)}function Mt(n){var t=parseFloat(n);return"%"===n.charAt(n.length-1)?Math.round(2.55*t):t}function _t(n){return"function"==typeof n?n:function(){return n}}function bt(n){return n}function wt(n){return function(t,e,r){return 2===arguments.length&&"function"==typeof e&&(r=e,e=null),St(t,e,n,r)}}function St(n,t,e,r){function u(){var n,t=c.status;if(!t&&c.responseText||t>=200&&300>t||304===t){try{n=e.call(i,c)}catch(r){return o.error.call(i,r),void 0}o.load.call(i,n)}else o.error.call(i,c)}var i={},o=Xo.dispatch("beforesend","progress","load","error"),a={},c=new XMLHttpRequest,s=null;return!Go.XDomainRequest||"withCredentials"in c||!/^(http(s)?:)?\/\//.test(n)||(c=new XDomainRequest),"onload"in c?c.onload=c.onerror=u:c.onreadystatechange=function(){c.readyState>3&&u()},c.onprogress=function(n){var t=Xo.event;Xo.event=n;try{o.progress.call(i,c)}finally{Xo.event=t}},i.header=function(n,t){return n=(n+"").toLowerCase(),arguments.length<2?a[n]:(null==t?delete a[n]:a[n]=t+"",i)},i.mimeType=function(n){return arguments.length?(t=null==n?null:n+"",i):t},i.responseType=function(n){return arguments.length?(s=n,i):s},i.response=function(n){return e=n,i},["get","post"].forEach(function(n){i[n]=function(){return i.send.apply(i,[n].concat(Bo(arguments)))}}),i.send=function(e,r,u){if(2===arguments.length&&"function"==typeof r&&(u=r,r=null),c.open(e,n,!0),null==t||"accept"in a||(a.accept=t+",*/*"),c.setRequestHeader)for(var l in a)c.setRequestHeader(l,a[l]);return null!=t&&c.overrideMimeType&&c.overrideMimeType(t),null!=s&&(c.responseType=s),null!=u&&i.on("error",u).on("load",function(n){u(null,n)}),o.beforesend.call(i,c),c.send(null==r?null:r),i},i.abort=function(){return c.abort(),i},Xo.rebind(i,o,"on"),null==r?i:i.get(kt(r))}function kt(n){return 1===n.length?function(t,e){n(null==t?e:null)}:n}function Et(){var n=At(),t=Ct()-n;t>24?(isFinite(t)&&(clearTimeout(Wa),Wa=setTimeout(Et,t)),Ba=0):(Ba=1,Ga(Et))}function At(){var n=Date.now();for(Ja=Xa;Ja;)n>=Ja.t&&(Ja.f=Ja.c(n-Ja.t)),Ja=Ja.n;return n}function Ct(){for(var n,t=Xa,e=1/0;t;)t.f?t=n?n.n=t.n:Xa=t.n:(t.t<e&&(e=t.t),t=(n=t).n);return $a=n,e}function Nt(n,t){return t-(n?Math.ceil(Math.log(n)/Math.LN10):1)}function Lt(n,t){var e=Math.pow(10,3*oa(8-t));return{scale:t>8?function(n){return n/e}:function(n){return n*e},symbol:n}}function Tt(n){var t=n.decimal,e=n.thousands,r=n.grouping,u=n.currency,i=r?function(n){for(var t=n.length,u=[],i=0,o=r[0];t>0&&o>0;)u.push(n.substring(t-=o,t+o)),o=r[i=(i+1)%r.length];return u.reverse().join(e)}:bt;return function(n){var e=Qa.exec(n),r=e[1]||" ",o=e[2]||">",a=e[3]||"",c=e[4]||"",s=e[5],l=+e[6],f=e[7],h=e[8],g=e[9],p=1,v="",d="",m=!1;switch(h&&(h=+h.substring(1)),(s||"0"===r&&"="===o)&&(s=r="0",o="=",f&&(l-=Math.floor((l-1)/4))),g){case"n":f=!0,g="g";break;case"%":p=100,d="%",g="f";break;case"p":p=100,d="%",g="r";break;case"b":case"o":case"x":case"X":"#"===c&&(v="0"+g.toLowerCase());case"c":case"d":m=!0,h=0;break;case"s":p=-1,g="r"}"$"===c&&(v=u[0],d=u[1]),"r"!=g||h||(g="g"),null!=h&&("g"==g?h=Math.max(1,Math.min(21,h)):("e"==g||"f"==g)&&(h=Math.max(0,Math.min(20,h)))),g=nc.get(g)||qt;var y=s&&f;return function(n){var e=d;if(m&&n%1)return"";var u=0>n||0===n&&0>1/n?(n=-n,"-"):a;if(0>p){var c=Xo.formatPrefix(n,h);n=c.scale(n),e=c.symbol+d}else n*=p;n=g(n,h);var x=n.lastIndexOf("."),M=0>x?n:n.substring(0,x),_=0>x?"":t+n.substring(x+1);!s&&f&&(M=i(M));var b=v.length+M.length+_.length+(y?0:u.length),w=l>b?new Array(b=l-b+1).join(r):"";return y&&(M=i(w+M)),u+=v,n=M+_,("<"===o?u+n+w:">"===o?w+u+n:"^"===o?w.substring(0,b>>=1)+u+n+w.substring(b):u+(y?n:w+n))+e}}}function qt(n){return n+""}function zt(){this._=new Date(arguments.length>1?Date.UTC.apply(this,arguments):arguments[0])}function Rt(n,t,e){function r(t){var e=n(t),r=i(e,1);return r-t>t-e?e:r}function u(e){return t(e=n(new ec(e-1)),1),e}function i(n,e){return t(n=new ec(+n),e),n}function o(n,r,i){var o=u(n),a=[];if(i>1)for(;r>o;)e(o)%i||a.push(new Date(+o)),t(o,1);else for(;r>o;)a.push(new Date(+o)),t(o,1);return a}function a(n,t,e){try{ec=zt;var r=new zt;return r._=n,o(r,t,e)}finally{ec=Date}}n.floor=n,n.round=r,n.ceil=u,n.offset=i,n.range=o;var c=n.utc=Dt(n);return c.floor=c,c.round=Dt(r),c.ceil=Dt(u),c.offset=Dt(i),c.range=a,n}function Dt(n){return function(t,e){try{ec=zt;var r=new zt;return r._=t,n(r,e)._}finally{ec=Date}}}function Pt(n){function t(n){function t(t){for(var e,u,i,o=[],a=-1,c=0;++a<r;)37===n.charCodeAt(a)&&(o.push(n.substring(c,a)),null!=(u=uc[e=n.charAt(++a)])&&(e=n.charAt(++a)),(i=C[e])&&(e=i(t,null==u?"e"===e?" ":"0":u)),o.push(e),c=a+1);return o.push(n.substring(c,a)),o.join("")}var r=n.length;return t.parse=function(t){var r={y:1900,m:0,d:1,H:0,M:0,S:0,L:0,Z:null},u=e(r,n,t,0);if(u!=t.length)return null;"p"in r&&(r.H=r.H%12+12*r.p);var i=null!=r.Z&&ec!==zt,o=new(i?zt:ec);return"j"in r?o.setFullYear(r.y,0,r.j):"w"in r&&("W"in r||"U"in r)?(o.setFullYear(r.y,0,1),o.setFullYear(r.y,0,"W"in r?(r.w+6)%7+7*r.W-(o.getDay()+5)%7:r.w+7*r.U-(o.getDay()+6)%7)):o.setFullYear(r.y,r.m,r.d),o.setHours(r.H+Math.floor(r.Z/100),r.M+r.Z%100,r.S,r.L),i?o._:o},t.toString=function(){return n},t}function e(n,t,e,r){for(var u,i,o,a=0,c=t.length,s=e.length;c>a;){if(r>=s)return-1;if(u=t.charCodeAt(a++),37===u){if(o=t.charAt(a++),i=N[o in uc?t.charAt(a++):o],!i||(r=i(n,e,r))<0)return-1}else if(u!=e.charCodeAt(r++))return-1}return r}function r(n,t,e){b.lastIndex=0;var r=b.exec(t.substring(e));return r?(n.w=w.get(r[0].toLowerCase()),e+r[0].length):-1}function u(n,t,e){M.lastIndex=0;var r=M.exec(t.substring(e));return r?(n.w=_.get(r[0].toLowerCase()),e+r[0].length):-1}function i(n,t,e){E.lastIndex=0;var r=E.exec(t.substring(e));return r?(n.m=A.get(r[0].toLowerCase()),e+r[0].length):-1}function o(n,t,e){S.lastIndex=0;var r=S.exec(t.substring(e));return r?(n.m=k.get(r[0].toLowerCase()),e+r[0].length):-1}function a(n,t,r){return e(n,C.c.toString(),t,r)}function c(n,t,r){return e(n,C.x.toString(),t,r)}function s(n,t,r){return e(n,C.X.toString(),t,r)}function l(n,t,e){var r=x.get(t.substring(e,e+=2).toLowerCase());return null==r?-1:(n.p=r,e)}var f=n.dateTime,h=n.date,g=n.time,p=n.periods,v=n.days,d=n.shortDays,m=n.months,y=n.shortMonths;t.utc=function(n){function e(n){try{ec=zt;var t=new ec;return t._=n,r(t)}finally{ec=Date}}var r=t(n);return e.parse=function(n){try{ec=zt;var t=r.parse(n);return t&&t._}finally{ec=Date}},e.toString=r.toString,e},t.multi=t.utc.multi=ee;var x=Xo.map(),M=jt(v),_=Ht(v),b=jt(d),w=Ht(d),S=jt(m),k=Ht(m),E=jt(y),A=Ht(y);p.forEach(function(n,t){x.set(n.toLowerCase(),t)});var C={a:function(n){return d[n.getDay()]},A:function(n){return v[n.getDay()]},b:function(n){return y[n.getMonth()]},B:function(n){return m[n.getMonth()]},c:t(f),d:function(n,t){return Ut(n.getDate(),t,2)},e:function(n,t){return Ut(n.getDate(),t,2)},H:function(n,t){return Ut(n.getHours(),t,2)},I:function(n,t){return Ut(n.getHours()%12||12,t,2)},j:function(n,t){return Ut(1+tc.dayOfYear(n),t,3)},L:function(n,t){return Ut(n.getMilliseconds(),t,3)},m:function(n,t){return Ut(n.getMonth()+1,t,2)},M:function(n,t){return Ut(n.getMinutes(),t,2)},p:function(n){return p[+(n.getHours()>=12)]},S:function(n,t){return Ut(n.getSeconds(),t,2)},U:function(n,t){return Ut(tc.sundayOfYear(n),t,2)},w:function(n){return n.getDay()},W:function(n,t){return Ut(tc.mondayOfYear(n),t,2)},x:t(h),X:t(g),y:function(n,t){return Ut(n.getFullYear()%100,t,2)},Y:function(n,t){return Ut(n.getFullYear()%1e4,t,4)},Z:ne,"%":function(){return"%"}},N={a:r,A:u,b:i,B:o,c:a,d:Bt,e:Bt,H:Jt,I:Jt,j:Wt,L:Qt,m:$t,M:Gt,p:l,S:Kt,U:Ot,w:Ft,W:Yt,x:c,X:s,y:Zt,Y:It,Z:Vt,"%":te};return t}function Ut(n,t,e){var r=0>n?"-":"",u=(r?-n:n)+"",i=u.length;return r+(e>i?new Array(e-i+1).join(t)+u:u)}function jt(n){return new RegExp("^(?:"+n.map(Xo.requote).join("|")+")","i")}function Ht(n){for(var t=new u,e=-1,r=n.length;++e<r;)t.set(n[e].toLowerCase(),e);return t}function Ft(n,t,e){ic.lastIndex=0;var r=ic.exec(t.substring(e,e+1));return r?(n.w=+r[0],e+r[0].length):-1}function Ot(n,t,e){ic.lastIndex=0;var r=ic.exec(t.substring(e));return r?(n.U=+r[0],e+r[0].length):-1}function Yt(n,t,e){ic.lastIndex=0;var r=ic.exec(t.substring(e));return r?(n.W=+r[0],e+r[0].length):-1}function It(n,t,e){ic.lastIndex=0;var r=ic.exec(t.substring(e,e+4));return r?(n.y=+r[0],e+r[0].length):-1}function Zt(n,t,e){ic.lastIndex=0;var r=ic.exec(t.substring(e,e+2));return r?(n.y=Xt(+r[0]),e+r[0].length):-1}function Vt(n,t,e){return/^[+-]\d{4}$/.test(t=t.substring(e,e+5))?(n.Z=+t,e+5):-1}function Xt(n){return n+(n>68?1900:2e3)}function $t(n,t,e){ic.lastIndex=0;var r=ic.exec(t.substring(e,e+2));return r?(n.m=r[0]-1,e+r[0].length):-1}function Bt(n,t,e){ic.lastIndex=0;var r=ic.exec(t.substring(e,e+2));return r?(n.d=+r[0],e+r[0].length):-1}function Wt(n,t,e){ic.lastIndex=0;var r=ic.exec(t.substring(e,e+3));return r?(n.j=+r[0],e+r[0].length):-1}function Jt(n,t,e){ic.lastIndex=0;var r=ic.exec(t.substring(e,e+2));return r?(n.H=+r[0],e+r[0].length):-1}function Gt(n,t,e){ic.lastIndex=0;var r=ic.exec(t.substring(e,e+2));return r?(n.M=+r[0],e+r[0].length):-1}function Kt(n,t,e){ic.lastIndex=0;var r=ic.exec(t.substring(e,e+2));return r?(n.S=+r[0],e+r[0].length):-1}function Qt(n,t,e){ic.lastIndex=0;var r=ic.exec(t.substring(e,e+3));return r?(n.L=+r[0],e+r[0].length):-1}function ne(n){var t=n.getTimezoneOffset(),e=t>0?"-":"+",r=~~(oa(t)/60),u=oa(t)%60;return e+Ut(r,"0",2)+Ut(u,"0",2)}function te(n,t,e){oc.lastIndex=0;var r=oc.exec(t.substring(e,e+1));return r?e+r[0].length:-1}function ee(n){for(var t=n.length,e=-1;++e<t;)n[e][0]=this(n[e][0]);return function(t){for(var e=0,r=n[e];!r[1](t);)r=n[++e];return r[0](t)}}function re(){}function ue(n,t,e){var r=e.s=n+t,u=r-n,i=r-u;e.t=n-i+(t-u)}function ie(n,t){n&&lc.hasOwnProperty(n.type)&&lc[n.type](n,t)}function oe(n,t,e){var r,u=-1,i=n.length-e;for(t.lineStart();++u<i;)r=n[u],t.point(r[0],r[1],r[2]);t.lineEnd()}function ae(n,t){var e=-1,r=n.length;for(t.polygonStart();++e<r;)oe(n[e],t,1);t.polygonEnd()}function ce(){function n(n,t){n*=Na,t=t*Na/2+Sa/4;var e=n-r,o=e>=0?1:-1,a=o*e,c=Math.cos(t),s=Math.sin(t),l=i*s,f=u*c+l*Math.cos(a),h=l*o*Math.sin(a);hc.add(Math.atan2(h,f)),r=n,u=c,i=s}var t,e,r,u,i;gc.point=function(o,a){gc.point=n,r=(t=o)*Na,u=Math.cos(a=(e=a)*Na/2+Sa/4),i=Math.sin(a)},gc.lineEnd=function(){n(t,e)}}function se(n){var t=n[0],e=n[1],r=Math.cos(e);return[r*Math.cos(t),r*Math.sin(t),Math.sin(e)]}function le(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]}function fe(n,t){return[n[1]*t[2]-n[2]*t[1],n[2]*t[0]-n[0]*t[2],n[0]*t[1]-n[1]*t[0]]}function he(n,t){n[0]+=t[0],n[1]+=t[1],n[2]+=t[2]}function ge(n,t){return[n[0]*t,n[1]*t,n[2]*t]}function pe(n){var t=Math.sqrt(n[0]*n[0]+n[1]*n[1]+n[2]*n[2]);n[0]/=t,n[1]/=t,n[2]/=t}function ve(n){return[Math.atan2(n[1],n[0]),X(n[2])]}function de(n,t){return oa(n[0]-t[0])<Aa&&oa(n[1]-t[1])<Aa}function me(n,t){n*=Na;var e=Math.cos(t*=Na);ye(e*Math.cos(n),e*Math.sin(n),Math.sin(t))}function ye(n,t,e){++pc,dc+=(n-dc)/pc,mc+=(t-mc)/pc,yc+=(e-yc)/pc}function xe(){function n(n,u){n*=Na;var i=Math.cos(u*=Na),o=i*Math.cos(n),a=i*Math.sin(n),c=Math.sin(u),s=Math.atan2(Math.sqrt((s=e*c-r*a)*s+(s=r*o-t*c)*s+(s=t*a-e*o)*s),t*o+e*a+r*c);vc+=s,xc+=s*(t+(t=o)),Mc+=s*(e+(e=a)),_c+=s*(r+(r=c)),ye(t,e,r)}var t,e,r;kc.point=function(u,i){u*=Na;var o=Math.cos(i*=Na);t=o*Math.cos(u),e=o*Math.sin(u),r=Math.sin(i),kc.point=n,ye(t,e,r)}}function Me(){kc.point=me}function _e(){function n(n,t){n*=Na;var e=Math.cos(t*=Na),o=e*Math.cos(n),a=e*Math.sin(n),c=Math.sin(t),s=u*c-i*a,l=i*o-r*c,f=r*a-u*o,h=Math.sqrt(s*s+l*l+f*f),g=r*o+u*a+i*c,p=h&&-V(g)/h,v=Math.atan2(h,g);bc+=p*s,wc+=p*l,Sc+=p*f,vc+=v,xc+=v*(r+(r=o)),Mc+=v*(u+(u=a)),_c+=v*(i+(i=c)),ye(r,u,i)}var t,e,r,u,i;kc.point=function(o,a){t=o,e=a,kc.point=n,o*=Na;var c=Math.cos(a*=Na);r=c*Math.cos(o),u=c*Math.sin(o),i=Math.sin(a),ye(r,u,i)},kc.lineEnd=function(){n(t,e),kc.lineEnd=Me,kc.point=me}}function be(){return!0}function we(n,t,e,r,u){var i=[],o=[];if(n.forEach(function(n){if(!((t=n.length-1)<=0)){var t,e=n[0],r=n[t];if(de(e,r)){u.lineStart();for(var a=0;t>a;++a)u.point((e=n[a])[0],e[1]);return u.lineEnd(),void 0}var c=new ke(e,n,null,!0),s=new ke(e,null,c,!1);c.o=s,i.push(c),o.push(s),c=new ke(r,n,null,!1),s=new ke(r,null,c,!0),c.o=s,i.push(c),o.push(s)}}),o.sort(t),Se(i),Se(o),i.length){for(var a=0,c=e,s=o.length;s>a;++a)o[a].e=c=!c;for(var l,f,h=i[0];;){for(var g=h,p=!0;g.v;)if((g=g.n)===h)return;l=g.z,u.lineStart();do{if(g.v=g.o.v=!0,g.e){if(p)for(var a=0,s=l.length;s>a;++a)u.point((f=l[a])[0],f[1]);else r(g.x,g.n.x,1,u);g=g.n}else{if(p){l=g.p.z;for(var a=l.length-1;a>=0;--a)u.point((f=l[a])[0],f[1])}else r(g.x,g.p.x,-1,u);g=g.p}g=g.o,l=g.z,p=!p}while(!g.v);u.lineEnd()}}}function Se(n){if(t=n.length){for(var t,e,r=0,u=n[0];++r<t;)u.n=e=n[r],e.p=u,u=e;u.n=e=n[0],e.p=u}}function ke(n,t,e,r){this.x=n,this.z=t,this.o=e,this.e=r,this.v=!1,this.n=this.p=null}function Ee(n,t,e,r){return function(u,i){function o(t,e){var r=u(t,e);n(t=r[0],e=r[1])&&i.point(t,e)}function a(n,t){var e=u(n,t);d.point(e[0],e[1])}function c(){y.point=a,d.lineStart()}function s(){y.point=o,d.lineEnd()}function l(n,t){v.push([n,t]);var e=u(n,t);M.point(e[0],e[1])}function f(){M.lineStart(),v=[]}function h(){l(v[0][0],v[0][1]),M.lineEnd();var n,t=M.clean(),e=x.buffer(),r=e.length;if(v.pop(),p.push(v),v=null,r){if(1&t){n=e[0];var u,r=n.length-1,o=-1;for(i.lineStart();++o<r;)i.point((u=n[o])[0],u[1]);return i.lineEnd(),void 0}r>1&&2&t&&e.push(e.pop().concat(e.shift())),g.push(e.filter(Ae))}}var g,p,v,d=t(i),m=u.invert(r[0],r[1]),y={point:o,lineStart:c,lineEnd:s,polygonStart:function(){y.point=l,y.lineStart=f,y.lineEnd=h,g=[],p=[],i.polygonStart()},polygonEnd:function(){y.point=o,y.lineStart=c,y.lineEnd=s,g=Xo.merge(g);var n=Le(m,p);g.length?we(g,Ne,n,e,i):n&&(i.lineStart(),e(null,null,1,i),i.lineEnd()),i.polygonEnd(),g=p=null},sphere:function(){i.polygonStart(),i.lineStart(),e(null,null,1,i),i.lineEnd(),i.polygonEnd()}},x=Ce(),M=t(x);return y}}function Ae(n){return n.length>1}function Ce(){var n,t=[];return{lineStart:function(){t.push(n=[])},point:function(t,e){n.push([t,e])},lineEnd:g,buffer:function(){var e=t;return t=[],n=null,e},rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))}}}function Ne(n,t){return((n=n.x)[0]<0?n[1]-Ea-Aa:Ea-n[1])-((t=t.x)[0]<0?t[1]-Ea-Aa:Ea-t[1])}function Le(n,t){var e=n[0],r=n[1],u=[Math.sin(e),-Math.cos(e),0],i=0,o=0;hc.reset();for(var a=0,c=t.length;c>a;++a){var s=t[a],l=s.length;if(l)for(var f=s[0],h=f[0],g=f[1]/2+Sa/4,p=Math.sin(g),v=Math.cos(g),d=1;;){d===l&&(d=0),n=s[d];var m=n[0],y=n[1]/2+Sa/4,x=Math.sin(y),M=Math.cos(y),_=m-h,b=_>=0?1:-1,w=b*_,S=w>Sa,k=p*x;if(hc.add(Math.atan2(k*b*Math.sin(w),v*M+k*Math.cos(w))),i+=S?_+b*ka:_,S^h>=e^m>=e){var E=fe(se(f),se(n));pe(E);var A=fe(u,E);pe(A);var C=(S^_>=0?-1:1)*X(A[2]);(r>C||r===C&&(E[0]||E[1]))&&(o+=S^_>=0?1:-1)}if(!d++)break;h=m,p=x,v=M,f=n}}return(-Aa>i||Aa>i&&0>hc)^1&o}function Te(n){var t,e=0/0,r=0/0,u=0/0;return{lineStart:function(){n.lineStart(),t=1},point:function(i,o){var a=i>0?Sa:-Sa,c=oa(i-e);oa(c-Sa)<Aa?(n.point(e,r=(r+o)/2>0?Ea:-Ea),n.point(u,r),n.lineEnd(),n.lineStart(),n.point(a,r),n.point(i,r),t=0):u!==a&&c>=Sa&&(oa(e-u)<Aa&&(e-=u*Aa),oa(i-a)<Aa&&(i-=a*Aa),r=qe(e,r,i,o),n.point(u,r),n.lineEnd(),n.lineStart(),n.point(a,r),t=0),n.point(e=i,r=o),u=a},lineEnd:function(){n.lineEnd(),e=r=0/0},clean:function(){return 2-t}}}function qe(n,t,e,r){var u,i,o=Math.sin(n-e);return oa(o)>Aa?Math.atan((Math.sin(t)*(i=Math.cos(r))*Math.sin(e)-Math.sin(r)*(u=Math.cos(t))*Math.sin(n))/(u*i*o)):(t+r)/2}function ze(n,t,e,r){var u;if(null==n)u=e*Ea,r.point(-Sa,u),r.point(0,u),r.point(Sa,u),r.point(Sa,0),r.point(Sa,-u),r.point(0,-u),r.point(-Sa,-u),r.point(-Sa,0),r.point(-Sa,u);else if(oa(n[0]-t[0])>Aa){var i=n[0]<t[0]?Sa:-Sa;u=e*i/2,r.point(-i,u),r.point(0,u),r.point(i,u)}else r.point(t[0],t[1])}function Re(n){function t(n,t){return Math.cos(n)*Math.cos(t)>i}function e(n){var e,i,c,s,l;return{lineStart:function(){s=c=!1,l=1},point:function(f,h){var g,p=[f,h],v=t(f,h),d=o?v?0:u(f,h):v?u(f+(0>f?Sa:-Sa),h):0;if(!e&&(s=c=v)&&n.lineStart(),v!==c&&(g=r(e,p),(de(e,g)||de(p,g))&&(p[0]+=Aa,p[1]+=Aa,v=t(p[0],p[1]))),v!==c)l=0,v?(n.lineStart(),g=r(p,e),n.point(g[0],g[1])):(g=r(e,p),n.point(g[0],g[1]),n.lineEnd()),e=g;else if(a&&e&&o^v){var m;d&i||!(m=r(p,e,!0))||(l=0,o?(n.lineStart(),n.point(m[0][0],m[0][1]),n.point(m[1][0],m[1][1]),n.lineEnd()):(n.point(m[1][0],m[1][1]),n.lineEnd(),n.lineStart(),n.point(m[0][0],m[0][1])))}!v||e&&de(e,p)||n.point(p[0],p[1]),e=p,c=v,i=d},lineEnd:function(){c&&n.lineEnd(),e=null},clean:function(){return l|(s&&c)<<1}}}function r(n,t,e){var r=se(n),u=se(t),o=[1,0,0],a=fe(r,u),c=le(a,a),s=a[0],l=c-s*s;if(!l)return!e&&n;var f=i*c/l,h=-i*s/l,g=fe(o,a),p=ge(o,f),v=ge(a,h);he(p,v);var d=g,m=le(p,d),y=le(d,d),x=m*m-y*(le(p,p)-1);if(!(0>x)){var M=Math.sqrt(x),_=ge(d,(-m-M)/y);if(he(_,p),_=ve(_),!e)return _;var b,w=n[0],S=t[0],k=n[1],E=t[1];w>S&&(b=w,w=S,S=b);var A=S-w,C=oa(A-Sa)<Aa,N=C||Aa>A;if(!C&&k>E&&(b=k,k=E,E=b),N?C?k+E>0^_[1]<(oa(_[0]-w)<Aa?k:E):k<=_[1]&&_[1]<=E:A>Sa^(w<=_[0]&&_[0]<=S)){var L=ge(d,(-m+M)/y);return he(L,p),[_,ve(L)]}}}function u(t,e){var r=o?n:Sa-n,u=0;return-r>t?u|=1:t>r&&(u|=2),-r>e?u|=4:e>r&&(u|=8),u}var i=Math.cos(n),o=i>0,a=oa(i)>Aa,c=cr(n,6*Na);return Ee(t,e,c,o?[0,-n]:[-Sa,n-Sa])}function De(n,t,e,r){return function(u){var i,o=u.a,a=u.b,c=o.x,s=o.y,l=a.x,f=a.y,h=0,g=1,p=l-c,v=f-s;if(i=n-c,p||!(i>0)){if(i/=p,0>p){if(h>i)return;g>i&&(g=i)}else if(p>0){if(i>g)return;i>h&&(h=i)}if(i=e-c,p||!(0>i)){if(i/=p,0>p){if(i>g)return;i>h&&(h=i)}else if(p>0){if(h>i)return;g>i&&(g=i)}if(i=t-s,v||!(i>0)){if(i/=v,0>v){if(h>i)return;g>i&&(g=i)}else if(v>0){if(i>g)return;i>h&&(h=i)}if(i=r-s,v||!(0>i)){if(i/=v,0>v){if(i>g)return;i>h&&(h=i)}else if(v>0){if(h>i)return;g>i&&(g=i)}return h>0&&(u.a={x:c+h*p,y:s+h*v}),1>g&&(u.b={x:c+g*p,y:s+g*v}),u}}}}}}function Pe(n,t,e,r){function u(r,u){return oa(r[0]-n)<Aa?u>0?0:3:oa(r[0]-e)<Aa?u>0?2:1:oa(r[1]-t)<Aa?u>0?1:0:u>0?3:2}function i(n,t){return o(n.x,t.x)}function o(n,t){var e=u(n,1),r=u(t,1);return e!==r?e-r:0===e?t[1]-n[1]:1===e?n[0]-t[0]:2===e?n[1]-t[1]:t[0]-n[0]}return function(a){function c(n){for(var t=0,e=d.length,r=n[1],u=0;e>u;++u)for(var i,o=1,a=d[u],c=a.length,s=a[0];c>o;++o)i=a[o],s[1]<=r?i[1]>r&&Z(s,i,n)>0&&++t:i[1]<=r&&Z(s,i,n)<0&&--t,s=i;return 0!==t}function s(i,a,c,s){var l=0,f=0;if(null==i||(l=u(i,c))!==(f=u(a,c))||o(i,a)<0^c>0){do s.point(0===l||3===l?n:e,l>1?r:t);while((l=(l+c+4)%4)!==f)}else s.point(a[0],a[1])}function l(u,i){return u>=n&&e>=u&&i>=t&&r>=i}function f(n,t){l(n,t)&&a.point(n,t)}function h(){N.point=p,d&&d.push(m=[]),S=!0,w=!1,_=b=0/0}function g(){v&&(p(y,x),M&&w&&A.rejoin(),v.push(A.buffer())),N.point=f,w&&a.lineEnd()}function p(n,t){n=Math.max(-Ac,Math.min(Ac,n)),t=Math.max(-Ac,Math.min(Ac,t));var e=l(n,t);if(d&&m.push([n,t]),S)y=n,x=t,M=e,S=!1,e&&(a.lineStart(),a.point(n,t));else if(e&&w)a.point(n,t);else{var r={a:{x:_,y:b},b:{x:n,y:t}};C(r)?(w||(a.lineStart(),a.point(r.a.x,r.a.y)),a.point(r.b.x,r.b.y),e||a.lineEnd(),k=!1):e&&(a.lineStart(),a.point(n,t),k=!1)}_=n,b=t,w=e}var v,d,m,y,x,M,_,b,w,S,k,E=a,A=Ce(),C=De(n,t,e,r),N={point:f,lineStart:h,lineEnd:g,polygonStart:function(){a=A,v=[],d=[],k=!0},polygonEnd:function(){a=E,v=Xo.merge(v);var t=c([n,r]),e=k&&t,u=v.length;(e||u)&&(a.polygonStart(),e&&(a.lineStart(),s(null,null,1,a),a.lineEnd()),u&&we(v,i,t,s,a),a.polygonEnd()),v=d=m=null}};return N}}function Ue(n,t){function e(e,r){return e=n(e,r),t(e[0],e[1])}return n.invert&&t.invert&&(e.invert=function(e,r){return e=t.invert(e,r),e&&n.invert(e[0],e[1])}),e}function je(n){var t=0,e=Sa/3,r=nr(n),u=r(t,e);return u.parallels=function(n){return arguments.length?r(t=n[0]*Sa/180,e=n[1]*Sa/180):[180*(t/Sa),180*(e/Sa)]},u}function He(n,t){function e(n,t){var e=Math.sqrt(i-2*u*Math.sin(t))/u;return[e*Math.sin(n*=u),o-e*Math.cos(n)]}var r=Math.sin(n),u=(r+Math.sin(t))/2,i=1+r*(2*u-r),o=Math.sqrt(i)/u;return e.invert=function(n,t){var e=o-t;return[Math.atan2(n,e)/u,X((i-(n*n+e*e)*u*u)/(2*u))]},e}function Fe(){function n(n,t){Nc+=u*n-r*t,r=n,u=t}var t,e,r,u;Rc.point=function(i,o){Rc.point=n,t=r=i,e=u=o},Rc.lineEnd=function(){n(t,e)}}function Oe(n,t){Lc>n&&(Lc=n),n>qc&&(qc=n),Tc>t&&(Tc=t),t>zc&&(zc=t)}function Ye(){function n(n,t){o.push("M",n,",",t,i)}function t(n,t){o.push("M",n,",",t),a.point=e}function e(n,t){o.push("L",n,",",t)}function r(){a.point=n}function u(){o.push("Z")}var i=Ie(4.5),o=[],a={point:n,lineStart:function(){a.point=t},lineEnd:r,polygonStart:function(){a.lineEnd=u},polygonEnd:function(){a.lineEnd=r,a.point=n},pointRadius:function(n){return i=Ie(n),a},result:function(){if(o.length){var n=o.join("");return o=[],n}}};return a}function Ie(n){return"m0,"+n+"a"+n+","+n+" 0 1,1 0,"+-2*n+"a"+n+","+n+" 0 1,1 0,"+2*n+"z"}function Ze(n,t){dc+=n,mc+=t,++yc}function Ve(){function n(n,r){var u=n-t,i=r-e,o=Math.sqrt(u*u+i*i);xc+=o*(t+n)/2,Mc+=o*(e+r)/2,_c+=o,Ze(t=n,e=r)}var t,e;Pc.point=function(r,u){Pc.point=n,Ze(t=r,e=u)}}function Xe(){Pc.point=Ze}function $e(){function n(n,t){var e=n-r,i=t-u,o=Math.sqrt(e*e+i*i);xc+=o*(r+n)/2,Mc+=o*(u+t)/2,_c+=o,o=u*n-r*t,bc+=o*(r+n),wc+=o*(u+t),Sc+=3*o,Ze(r=n,u=t)}var t,e,r,u;Pc.point=function(i,o){Pc.point=n,Ze(t=r=i,e=u=o)},Pc.lineEnd=function(){n(t,e)}}function Be(n){function t(t,e){n.moveTo(t,e),n.arc(t,e,o,0,ka)}function e(t,e){n.moveTo(t,e),a.point=r}function r(t,e){n.lineTo(t,e)}function u(){a.point=t}function i(){n.closePath()}var o=4.5,a={point:t,lineStart:function(){a.point=e},lineEnd:u,polygonStart:function(){a.lineEnd=i},polygonEnd:function(){a.lineEnd=u,a.point=t},pointRadius:function(n){return o=n,a},result:g};return a}function We(n){function t(n){return(a?r:e)(n)}function e(t){return Ke(t,function(e,r){e=n(e,r),t.point(e[0],e[1])})}function r(t){function e(e,r){e=n(e,r),t.point(e[0],e[1])}function r(){x=0/0,S.point=i,t.lineStart()}function i(e,r){var i=se([e,r]),o=n(e,r);u(x,M,y,_,b,w,x=o[0],M=o[1],y=e,_=i[0],b=i[1],w=i[2],a,t),t.point(x,M)}function o(){S.point=e,t.lineEnd()}function c(){r(),S.point=s,S.lineEnd=l}function s(n,t){i(f=n,h=t),g=x,p=M,v=_,d=b,m=w,S.point=i}function l(){u(x,M,y,_,b,w,g,p,f,v,d,m,a,t),S.lineEnd=o,o()}var f,h,g,p,v,d,m,y,x,M,_,b,w,S={point:e,lineStart:r,lineEnd:o,polygonStart:function(){t.polygonStart(),S.lineStart=c},polygonEnd:function(){t.polygonEnd(),S.lineStart=r}};return S}function u(t,e,r,a,c,s,l,f,h,g,p,v,d,m){var y=l-t,x=f-e,M=y*y+x*x;if(M>4*i&&d--){var _=a+g,b=c+p,w=s+v,S=Math.sqrt(_*_+b*b+w*w),k=Math.asin(w/=S),E=oa(oa(w)-1)<Aa||oa(r-h)<Aa?(r+h)/2:Math.atan2(b,_),A=n(E,k),C=A[0],N=A[1],L=C-t,T=N-e,q=x*L-y*T;(q*q/M>i||oa((y*L+x*T)/M-.5)>.3||o>a*g+c*p+s*v)&&(u(t,e,r,a,c,s,C,N,E,_/=S,b/=S,w,d,m),m.point(C,N),u(C,N,E,_,b,w,l,f,h,g,p,v,d,m))}}var i=.5,o=Math.cos(30*Na),a=16;return t.precision=function(n){return arguments.length?(a=(i=n*n)>0&&16,t):Math.sqrt(i)},t}function Je(n){var t=We(function(t,e){return n([t*La,e*La])});return function(n){return tr(t(n))}}function Ge(n){this.stream=n}function Ke(n,t){return{point:t,sphere:function(){n.sphere()},lineStart:function(){n.lineStart()},lineEnd:function(){n.lineEnd()},polygonStart:function(){n.polygonStart()},polygonEnd:function(){n.polygonEnd()}}}function Qe(n){return nr(function(){return n})()}function nr(n){function t(n){return n=a(n[0]*Na,n[1]*Na),[n[0]*h+c,s-n[1]*h]}function e(n){return n=a.invert((n[0]-c)/h,(s-n[1])/h),n&&[n[0]*La,n[1]*La]}function r(){a=Ue(o=ur(m,y,x),i);var n=i(v,d);return c=g-n[0]*h,s=p+n[1]*h,u()}function u(){return l&&(l.valid=!1,l=null),t}var i,o,a,c,s,l,f=We(function(n,t){return n=i(n,t),[n[0]*h+c,s-n[1]*h]}),h=150,g=480,p=250,v=0,d=0,m=0,y=0,x=0,M=Ec,_=bt,b=null,w=null;return t.stream=function(n){return l&&(l.valid=!1),l=tr(M(o,f(_(n)))),l.valid=!0,l},t.clipAngle=function(n){return arguments.length?(M=null==n?(b=n,Ec):Re((b=+n)*Na),u()):b},t.clipExtent=function(n){return arguments.length?(w=n,_=n?Pe(n[0][0],n[0][1],n[1][0],n[1][1]):bt,u()):w},t.scale=function(n){return arguments.length?(h=+n,r()):h},t.translate=function(n){return arguments.length?(g=+n[0],p=+n[1],r()):[g,p]},t.center=function(n){return arguments.length?(v=n[0]%360*Na,d=n[1]%360*Na,r()):[v*La,d*La]},t.rotate=function(n){return arguments.length?(m=n[0]%360*Na,y=n[1]%360*Na,x=n.length>2?n[2]%360*Na:0,r()):[m*La,y*La,x*La]},Xo.rebind(t,f,"precision"),function(){return i=n.apply(this,arguments),t.invert=i.invert&&e,r()}}function tr(n){return Ke(n,function(t,e){n.point(t*Na,e*Na)})}function er(n,t){return[n,t]}function rr(n,t){return[n>Sa?n-ka:-Sa>n?n+ka:n,t]}function ur(n,t,e){return n?t||e?Ue(or(n),ar(t,e)):or(n):t||e?ar(t,e):rr}function ir(n){return function(t,e){return t+=n,[t>Sa?t-ka:-Sa>t?t+ka:t,e]}}function or(n){var t=ir(n);return t.invert=ir(-n),t}function ar(n,t){function e(n,t){var e=Math.cos(t),a=Math.cos(n)*e,c=Math.sin(n)*e,s=Math.sin(t),l=s*r+a*u;return[Math.atan2(c*i-l*o,a*r-s*u),X(l*i+c*o)]}var r=Math.cos(n),u=Math.sin(n),i=Math.cos(t),o=Math.sin(t);return e.invert=function(n,t){var e=Math.cos(t),a=Math.cos(n)*e,c=Math.sin(n)*e,s=Math.sin(t),l=s*i-c*o;return[Math.atan2(c*i+s*o,a*r+l*u),X(l*r-a*u)]},e}function cr(n,t){var e=Math.cos(n),r=Math.sin(n);return function(u,i,o,a){var c=o*t;null!=u?(u=sr(e,u),i=sr(e,i),(o>0?i>u:u>i)&&(u+=o*ka)):(u=n+o*ka,i=n-.5*c);for(var s,l=u;o>0?l>i:i>l;l-=c)a.point((s=ve([e,-r*Math.cos(l),-r*Math.sin(l)]))[0],s[1])}}function sr(n,t){var e=se(t);e[0]-=n,pe(e);var r=V(-e[1]);return((-e[2]<0?-r:r)+2*Math.PI-Aa)%(2*Math.PI)}function lr(n,t,e){var r=Xo.range(n,t-Aa,e).concat(t);return function(n){return r.map(function(t){return[n,t]})}}function fr(n,t,e){var r=Xo.range(n,t-Aa,e).concat(t);return function(n){return r.map(function(t){return[t,n]})}}function hr(n){return n.source}function gr(n){return n.target}function pr(n,t,e,r){var u=Math.cos(t),i=Math.sin(t),o=Math.cos(r),a=Math.sin(r),c=u*Math.cos(n),s=u*Math.sin(n),l=o*Math.cos(e),f=o*Math.sin(e),h=2*Math.asin(Math.sqrt(J(r-t)+u*o*J(e-n))),g=1/Math.sin(h),p=h?function(n){var t=Math.sin(n*=h)*g,e=Math.sin(h-n)*g,r=e*c+t*l,u=e*s+t*f,o=e*i+t*a;return[Math.atan2(u,r)*La,Math.atan2(o,Math.sqrt(r*r+u*u))*La]}:function(){return[n*La,t*La]};return p.distance=h,p}function vr(){function n(n,u){var i=Math.sin(u*=Na),o=Math.cos(u),a=oa((n*=Na)-t),c=Math.cos(a);Uc+=Math.atan2(Math.sqrt((a=o*Math.sin(a))*a+(a=r*i-e*o*c)*a),e*i+r*o*c),t=n,e=i,r=o}var t,e,r;jc.point=function(u,i){t=u*Na,e=Math.sin(i*=Na),r=Math.cos(i),jc.point=n},jc.lineEnd=function(){jc.point=jc.lineEnd=g}}function dr(n,t){function e(t,e){var r=Math.cos(t),u=Math.cos(e),i=n(r*u);return[i*u*Math.sin(t),i*Math.sin(e)]}return e.invert=function(n,e){var r=Math.sqrt(n*n+e*e),u=t(r),i=Math.sin(u),o=Math.cos(u);return[Math.atan2(n*i,r*o),Math.asin(r&&e*i/r)]},e}function mr(n,t){function e(n,t){var e=oa(oa(t)-Ea)<Aa?0:o/Math.pow(u(t),i);return[e*Math.sin(i*n),o-e*Math.cos(i*n)]}var r=Math.cos(n),u=function(n){return Math.tan(Sa/4+n/2)},i=n===t?Math.sin(n):Math.log(r/Math.cos(t))/Math.log(u(t)/u(n)),o=r*Math.pow(u(n),i)/i;return i?(e.invert=function(n,t){var e=o-t,r=I(i)*Math.sqrt(n*n+e*e);return[Math.atan2(n,e)/i,2*Math.atan(Math.pow(o/r,1/i))-Ea]},e):xr}function yr(n,t){function e(n,t){var e=i-t;return[e*Math.sin(u*n),i-e*Math.cos(u*n)]}var r=Math.cos(n),u=n===t?Math.sin(n):(r-Math.cos(t))/(t-n),i=r/u+n;return oa(u)<Aa?er:(e.invert=function(n,t){var e=i-t;return[Math.atan2(n,e)/u,i-I(u)*Math.sqrt(n*n+e*e)]},e)}function xr(n,t){return[n,Math.log(Math.tan(Sa/4+t/2))]}function Mr(n){var t,e=Qe(n),r=e.scale,u=e.translate,i=e.clipExtent;return e.scale=function(){var n=r.apply(e,arguments);return n===e?t?e.clipExtent(null):e:n},e.translate=function(){var n=u.apply(e,arguments);return n===e?t?e.clipExtent(null):e:n},e.clipExtent=function(n){var o=i.apply(e,arguments);if(o===e){if(t=null==n){var a=Sa*r(),c=u();i([[c[0]-a,c[1]-a],[c[0]+a,c[1]+a]])}}else t&&(o=null);return o},e.clipExtent(null)}function _r(n,t){return[Math.log(Math.tan(Sa/4+t/2)),-n]}function br(n){return n[0]}function wr(n){return n[1]}function Sr(n){for(var t=n.length,e=[0,1],r=2,u=2;t>u;u++){for(;r>1&&Z(n[e[r-2]],n[e[r-1]],n[u])<=0;)--r;e[r++]=u}return e.slice(0,r)}function kr(n,t){return n[0]-t[0]||n[1]-t[1]}function Er(n,t,e){return(e[0]-t[0])*(n[1]-t[1])<(e[1]-t[1])*(n[0]-t[0])}function Ar(n,t,e,r){var u=n[0],i=e[0],o=t[0]-u,a=r[0]-i,c=n[1],s=e[1],l=t[1]-c,f=r[1]-s,h=(a*(c-s)-f*(u-i))/(f*o-a*l);return[u+h*o,c+h*l]}function Cr(n){var t=n[0],e=n[n.length-1];return!(t[0]-e[0]||t[1]-e[1])}function Nr(){Jr(this),this.edge=this.site=this.circle=null}function Lr(n){var t=Jc.pop()||new Nr;return t.site=n,t}function Tr(n){Or(n),$c.remove(n),Jc.push(n),Jr(n)}function qr(n){var t=n.circle,e=t.x,r=t.cy,u={x:e,y:r},i=n.P,o=n.N,a=[n];Tr(n);for(var c=i;c.circle&&oa(e-c.circle.x)<Aa&&oa(r-c.circle.cy)<Aa;)i=c.P,a.unshift(c),Tr(c),c=i;a.unshift(c),Or(c);for(var s=o;s.circle&&oa(e-s.circle.x)<Aa&&oa(r-s.circle.cy)<Aa;)o=s.N,a.push(s),Tr(s),s=o;a.push(s),Or(s);var l,f=a.length;for(l=1;f>l;++l)s=a[l],c=a[l-1],$r(s.edge,c.site,s.site,u);c=a[0],s=a[f-1],s.edge=Vr(c.site,s.site,null,u),Fr(c),Fr(s)}function zr(n){for(var t,e,r,u,i=n.x,o=n.y,a=$c._;a;)if(r=Rr(a,o)-i,r>Aa)a=a.L;else{if(u=i-Dr(a,o),!(u>Aa)){r>-Aa?(t=a.P,e=a):u>-Aa?(t=a,e=a.N):t=e=a;break}if(!a.R){t=a;break}a=a.R}var c=Lr(n);if($c.insert(t,c),t||e){if(t===e)return Or(t),e=Lr(t.site),$c.insert(c,e),c.edge=e.edge=Vr(t.site,c.site),Fr(t),Fr(e),void 0;if(!e)return c.edge=Vr(t.site,c.site),void 0;Or(t),Or(e);var s=t.site,l=s.x,f=s.y,h=n.x-l,g=n.y-f,p=e.site,v=p.x-l,d=p.y-f,m=2*(h*d-g*v),y=h*h+g*g,x=v*v+d*d,M={x:(d*y-g*x)/m+l,y:(h*x-v*y)/m+f};$r(e.edge,s,p,M),c.edge=Vr(s,n,null,M),e.edge=Vr(n,p,null,M),Fr(t),Fr(e)}}function Rr(n,t){var e=n.site,r=e.x,u=e.y,i=u-t;if(!i)return r;var o=n.P;if(!o)return-1/0;e=o.site;var a=e.x,c=e.y,s=c-t;if(!s)return a;var l=a-r,f=1/i-1/s,h=l/s;return f?(-h+Math.sqrt(h*h-2*f*(l*l/(-2*s)-c+s/2+u-i/2)))/f+r:(r+a)/2}function Dr(n,t){var e=n.N;if(e)return Rr(e,t);var r=n.site;return r.y===t?r.x:1/0}function Pr(n){this.site=n,this.edges=[]}function Ur(n){for(var t,e,r,u,i,o,a,c,s,l,f=n[0][0],h=n[1][0],g=n[0][1],p=n[1][1],v=Xc,d=v.length;d--;)if(i=v[d],i&&i.prepare())for(a=i.edges,c=a.length,o=0;c>o;)l=a[o].end(),r=l.x,u=l.y,s=a[++o%c].start(),t=s.x,e=s.y,(oa(r-t)>Aa||oa(u-e)>Aa)&&(a.splice(o,0,new Br(Xr(i.site,l,oa(r-f)<Aa&&p-u>Aa?{x:f,y:oa(t-f)<Aa?e:p}:oa(u-p)<Aa&&h-r>Aa?{x:oa(e-p)<Aa?t:h,y:p}:oa(r-h)<Aa&&u-g>Aa?{x:h,y:oa(t-h)<Aa?e:g}:oa(u-g)<Aa&&r-f>Aa?{x:oa(e-g)<Aa?t:f,y:g}:null),i.site,null)),++c)}function jr(n,t){return t.angle-n.angle}function Hr(){Jr(this),this.x=this.y=this.arc=this.site=this.cy=null}function Fr(n){var t=n.P,e=n.N;if(t&&e){var r=t.site,u=n.site,i=e.site;if(r!==i){var o=u.x,a=u.y,c=r.x-o,s=r.y-a,l=i.x-o,f=i.y-a,h=2*(c*f-s*l);if(!(h>=-Ca)){var g=c*c+s*s,p=l*l+f*f,v=(f*g-s*p)/h,d=(c*p-l*g)/h,f=d+a,m=Gc.pop()||new Hr;m.arc=n,m.site=u,m.x=v+o,m.y=f+Math.sqrt(v*v+d*d),m.cy=f,n.circle=m;for(var y=null,x=Wc._;x;)if(m.y<x.y||m.y===x.y&&m.x<=x.x){if(!x.L){y=x.P;break}x=x.L}else{if(!x.R){y=x;break}x=x.R}Wc.insert(y,m),y||(Bc=m)}}}}function Or(n){var t=n.circle;t&&(t.P||(Bc=t.N),Wc.remove(t),Gc.push(t),Jr(t),n.circle=null)}function Yr(n){for(var t,e=Vc,r=De(n[0][0],n[0][1],n[1][0],n[1][1]),u=e.length;u--;)t=e[u],(!Ir(t,n)||!r(t)||oa(t.a.x-t.b.x)<Aa&&oa(t.a.y-t.b.y)<Aa)&&(t.a=t.b=null,e.splice(u,1))}function Ir(n,t){var e=n.b;if(e)return!0;var r,u,i=n.a,o=t[0][0],a=t[1][0],c=t[0][1],s=t[1][1],l=n.l,f=n.r,h=l.x,g=l.y,p=f.x,v=f.y,d=(h+p)/2,m=(g+v)/2;if(v===g){if(o>d||d>=a)return;if(h>p){if(i){if(i.y>=s)return}else i={x:d,y:c};e={x:d,y:s}}else{if(i){if(i.y<c)return}else i={x:d,y:s};e={x:d,y:c}}}else if(r=(h-p)/(v-g),u=m-r*d,-1>r||r>1)if(h>p){if(i){if(i.y>=s)return}else i={x:(c-u)/r,y:c};e={x:(s-u)/r,y:s}}else{if(i){if(i.y<c)return}else i={x:(s-u)/r,y:s};e={x:(c-u)/r,y:c}}else if(v>g){if(i){if(i.x>=a)return}else i={x:o,y:r*o+u};e={x:a,y:r*a+u}}else{if(i){if(i.x<o)return}else i={x:a,y:r*a+u};e={x:o,y:r*o+u}}return n.a=i,n.b=e,!0}function Zr(n,t){this.l=n,this.r=t,this.a=this.b=null}function Vr(n,t,e,r){var u=new Zr(n,t);return Vc.push(u),e&&$r(u,n,t,e),r&&$r(u,t,n,r),Xc[n.i].edges.push(new Br(u,n,t)),Xc[t.i].edges.push(new Br(u,t,n)),u}function Xr(n,t,e){var r=new Zr(n,null);return r.a=t,r.b=e,Vc.push(r),r}function $r(n,t,e,r){n.a||n.b?n.l===e?n.b=r:n.a=r:(n.a=r,n.l=t,n.r=e)}function Br(n,t,e){var r=n.a,u=n.b;this.edge=n,this.site=t,this.angle=e?Math.atan2(e.y-t.y,e.x-t.x):n.l===t?Math.atan2(u.x-r.x,r.y-u.y):Math.atan2(r.x-u.x,u.y-r.y)}function Wr(){this._=null}function Jr(n){n.U=n.C=n.L=n.R=n.P=n.N=null}function Gr(n,t){var e=t,r=t.R,u=e.U;u?u.L===e?u.L=r:u.R=r:n._=r,r.U=u,e.U=r,e.R=r.L,e.R&&(e.R.U=e),r.L=e}function Kr(n,t){var e=t,r=t.L,u=e.U;u?u.L===e?u.L=r:u.R=r:n._=r,r.U=u,e.U=r,e.L=r.R,e.L&&(e.L.U=e),r.R=e}function Qr(n){for(;n.L;)n=n.L;return n}function nu(n,t){var e,r,u,i=n.sort(tu).pop();for(Vc=[],Xc=new Array(n.length),$c=new Wr,Wc=new Wr;;)if(u=Bc,i&&(!u||i.y<u.y||i.y===u.y&&i.x<u.x))(i.x!==e||i.y!==r)&&(Xc[i.i]=new Pr(i),zr(i),e=i.x,r=i.y),i=n.pop();else{if(!u)break;qr(u.arc)}t&&(Yr(t),Ur(t));var o={cells:Xc,edges:Vc};return $c=Wc=Vc=Xc=null,o}function tu(n,t){return t.y-n.y||t.x-n.x}function eu(n,t,e){return(n.x-e.x)*(t.y-n.y)-(n.x-t.x)*(e.y-n.y)}function ru(n){return n.x}function uu(n){return n.y}function iu(){return{leaf:!0,nodes:[],point:null,x:null,y:null}}function ou(n,t,e,r,u,i){if(!n(t,e,r,u,i)){var o=.5*(e+u),a=.5*(r+i),c=t.nodes;c[0]&&ou(n,c[0],e,r,o,a),c[1]&&ou(n,c[1],o,r,u,a),c[2]&&ou(n,c[2],e,a,o,i),c[3]&&ou(n,c[3],o,a,u,i)}}function au(n,t){n=Xo.rgb(n),t=Xo.rgb(t);var e=n.r,r=n.g,u=n.b,i=t.r-e,o=t.g-r,a=t.b-u;return function(n){return"#"+vt(Math.round(e+i*n))+vt(Math.round(r+o*n))+vt(Math.round(u+a*n))}}function cu(n,t){var e,r={},u={};for(e in n)e in t?r[e]=fu(n[e],t[e]):u[e]=n[e];for(e in t)e in n||(u[e]=t[e]);return function(n){for(e in r)u[e]=r[e](n);return u}}function su(n,t){return t-=n=+n,function(e){return n+t*e}}function lu(n,t){var e,r,u,i,o,a=0,c=0,s=[],l=[];for(n+="",t+="",Qc.lastIndex=0,r=0;e=Qc.exec(t);++r)e.index&&s.push(t.substring(a,c=e.index)),l.push({i:s.length,x:e[0]}),s.push(null),a=Qc.lastIndex;for(a<t.length&&s.push(t.substring(a)),r=0,i=l.length;(e=Qc.exec(n))&&i>r;++r)if(o=l[r],o.x==e[0]){if(o.i)if(null==s[o.i+1])for(s[o.i-1]+=o.x,s.splice(o.i,1),u=r+1;i>u;++u)l[u].i--;else for(s[o.i-1]+=o.x+s[o.i+1],s.splice(o.i,2),u=r+1;i>u;++u)l[u].i-=2;else if(null==s[o.i+1])s[o.i]=o.x;else for(s[o.i]=o.x+s[o.i+1],s.splice(o.i+1,1),u=r+1;i>u;++u)l[u].i--;l.splice(r,1),i--,r--}else o.x=su(parseFloat(e[0]),parseFloat(o.x));for(;i>r;)o=l.pop(),null==s[o.i+1]?s[o.i]=o.x:(s[o.i]=o.x+s[o.i+1],s.splice(o.i+1,1)),i--;return 1===s.length?null==s[0]?(o=l[0].x,function(n){return o(n)+""}):function(){return t}:function(n){for(r=0;i>r;++r)s[(o=l[r]).i]=o.x(n);return s.join("")}}function fu(n,t){for(var e,r=Xo.interpolators.length;--r>=0&&!(e=Xo.interpolators[r](n,t)););return e}function hu(n,t){var e,r=[],u=[],i=n.length,o=t.length,a=Math.min(n.length,t.length);for(e=0;a>e;++e)r.push(fu(n[e],t[e]));for(;i>e;++e)u[e]=n[e];for(;o>e;++e)u[e]=t[e];return function(n){for(e=0;a>e;++e)u[e]=r[e](n);return u}}function gu(n){return function(t){return 0>=t?0:t>=1?1:n(t)}}function pu(n){return function(t){return 1-n(1-t)}}function vu(n){return function(t){return.5*(.5>t?n(2*t):2-n(2-2*t))}}function du(n){return n*n}function mu(n){return n*n*n}function yu(n){if(0>=n)return 0;if(n>=1)return 1;var t=n*n,e=t*n;return 4*(.5>n?e:3*(n-t)+e-.75)}function xu(n){return function(t){return Math.pow(t,n)}}function Mu(n){return 1-Math.cos(n*Ea)}function _u(n){return Math.pow(2,10*(n-1))}function bu(n){return 1-Math.sqrt(1-n*n)}function wu(n,t){var e;return arguments.length<2&&(t=.45),arguments.length?e=t/ka*Math.asin(1/n):(n=1,e=t/4),function(r){return 1+n*Math.pow(2,-10*r)*Math.sin((r-e)*ka/t)}}function Su(n){return n||(n=1.70158),function(t){return t*t*((n+1)*t-n)}}function ku(n){return 1/2.75>n?7.5625*n*n:2/2.75>n?7.5625*(n-=1.5/2.75)*n+.75:2.5/2.75>n?7.5625*(n-=2.25/2.75)*n+.9375:7.5625*(n-=2.625/2.75)*n+.984375}function Eu(n,t){n=Xo.hcl(n),t=Xo.hcl(t);var e=n.h,r=n.c,u=n.l,i=t.h-e,o=t.c-r,a=t.l-u;return isNaN(o)&&(o=0,r=isNaN(r)?t.c:r),isNaN(i)?(i=0,e=isNaN(e)?t.h:e):i>180?i-=360:-180>i&&(i+=360),function(n){return rt(e+i*n,r+o*n,u+a*n)+""}}function Au(n,t){n=Xo.hsl(n),t=Xo.hsl(t);var e=n.h,r=n.s,u=n.l,i=t.h-e,o=t.s-r,a=t.l-u;return isNaN(o)&&(o=0,r=isNaN(r)?t.s:r),isNaN(i)?(i=0,e=isNaN(e)?t.h:e):i>180?i-=360:-180>i&&(i+=360),function(n){return nt(e+i*n,r+o*n,u+a*n)+""}}function Cu(n,t){n=Xo.lab(n),t=Xo.lab(t);var e=n.l,r=n.a,u=n.b,i=t.l-e,o=t.a-r,a=t.b-u;return function(n){return ot(e+i*n,r+o*n,u+a*n)+""}}function Nu(n,t){return t-=n,function(e){return Math.round(n+t*e)}}function Lu(n){var t=[n.a,n.b],e=[n.c,n.d],r=qu(t),u=Tu(t,e),i=qu(zu(e,t,-u))||0;t[0]*e[1]<e[0]*t[1]&&(t[0]*=-1,t[1]*=-1,r*=-1,u*=-1),this.rotate=(r?Math.atan2(t[1],t[0]):Math.atan2(-e[0],e[1]))*La,this.translate=[n.e,n.f],this.scale=[r,i],this.skew=i?Math.atan2(u,i)*La:0}function Tu(n,t){return n[0]*t[0]+n[1]*t[1]}function qu(n){var t=Math.sqrt(Tu(n,n));return t&&(n[0]/=t,n[1]/=t),t}function zu(n,t,e){return n[0]+=e*t[0],n[1]+=e*t[1],n}function Ru(n,t){var e,r=[],u=[],i=Xo.transform(n),o=Xo.transform(t),a=i.translate,c=o.translate,s=i.rotate,l=o.rotate,f=i.skew,h=o.skew,g=i.scale,p=o.scale;return a[0]!=c[0]||a[1]!=c[1]?(r.push("translate(",null,",",null,")"),u.push({i:1,x:su(a[0],c[0])},{i:3,x:su(a[1],c[1])})):c[0]||c[1]?r.push("translate("+c+")"):r.push(""),s!=l?(s-l>180?l+=360:l-s>180&&(s+=360),u.push({i:r.push(r.pop()+"rotate(",null,")")-2,x:su(s,l)})):l&&r.push(r.pop()+"rotate("+l+")"),f!=h?u.push({i:r.push(r.pop()+"skewX(",null,")")-2,x:su(f,h)}):h&&r.push(r.pop()+"skewX("+h+")"),g[0]!=p[0]||g[1]!=p[1]?(e=r.push(r.pop()+"scale(",null,",",null,")"),u.push({i:e-4,x:su(g[0],p[0])},{i:e-2,x:su(g[1],p[1])})):(1!=p[0]||1!=p[1])&&r.push(r.pop()+"scale("+p+")"),e=u.length,function(n){for(var t,i=-1;++i<e;)r[(t=u[i]).i]=t.x(n);return r.join("")}}function Du(n,t){return t=t-(n=+n)?1/(t-n):0,function(e){return(e-n)*t}}function Pu(n,t){return t=t-(n=+n)?1/(t-n):0,function(e){return Math.max(0,Math.min(1,(e-n)*t))}}function Uu(n){for(var t=n.source,e=n.target,r=Hu(t,e),u=[t];t!==r;)t=t.parent,u.push(t);for(var i=u.length;e!==r;)u.splice(i,0,e),e=e.parent;return u}function ju(n){for(var t=[],e=n.parent;null!=e;)t.push(n),n=e,e=e.parent;return t.push(n),t}function Hu(n,t){if(n===t)return n;for(var e=ju(n),r=ju(t),u=e.pop(),i=r.pop(),o=null;u===i;)o=u,u=e.pop(),i=r.pop();return o}function Fu(n){n.fixed|=2}function Ou(n){n.fixed&=-7}function Yu(n){n.fixed|=4,n.px=n.x,n.py=n.y}function Iu(n){n.fixed&=-5}function Zu(n,t,e){var r=0,u=0;if(n.charge=0,!n.leaf)for(var i,o=n.nodes,a=o.length,c=-1;++c<a;)i=o[c],null!=i&&(Zu(i,t,e),n.charge+=i.charge,r+=i.charge*i.cx,u+=i.charge*i.cy);if(n.point){n.leaf||(n.point.x+=Math.random()-.5,n.point.y+=Math.random()-.5);var s=t*e[n.point.index];n.charge+=n.pointCharge=s,r+=s*n.point.x,u+=s*n.point.y}n.cx=r/n.charge,n.cy=u/n.charge}function Vu(n,t){return Xo.rebind(n,t,"sort","children","value"),n.nodes=n,n.links=Wu,n}function Xu(n){return n.children}function $u(n){return n.value}function Bu(n,t){return t.value-n.value}function Wu(n){return Xo.merge(n.map(function(n){return(n.children||[]).map(function(t){return{source:n,target:t}})}))}function Ju(n){return n.x}function Gu(n){return n.y}function Ku(n,t,e){n.y0=t,n.y=e}function Qu(n){return Xo.range(n.length)}function ni(n){for(var t=-1,e=n[0].length,r=[];++t<e;)r[t]=0;return r}function ti(n){for(var t,e=1,r=0,u=n[0][1],i=n.length;i>e;++e)(t=n[e][1])>u&&(r=e,u=t);return r}function ei(n){return n.reduce(ri,0)}function ri(n,t){return n+t[1]}function ui(n,t){return ii(n,Math.ceil(Math.log(t.length)/Math.LN2+1))}function ii(n,t){for(var e=-1,r=+n[0],u=(n[1]-r)/t,i=[];++e<=t;)i[e]=u*e+r;return i}function oi(n){return[Xo.min(n),Xo.max(n)]}function ai(n,t){return n.parent==t.parent?1:2}function ci(n){var t=n.children;return t&&t.length?t[0]:n._tree.thread}function si(n){var t,e=n.children;return e&&(t=e.length)?e[t-1]:n._tree.thread}function li(n,t){var e=n.children;if(e&&(u=e.length))for(var r,u,i=-1;++i<u;)t(r=li(e[i],t),n)>0&&(n=r);return n}function fi(n,t){return n.x-t.x}function hi(n,t){return t.x-n.x}function gi(n,t){return n.depth-t.depth}function pi(n,t){function e(n,r){var u=n.children;if(u&&(o=u.length))for(var i,o,a=null,c=-1;++c<o;)i=u[c],e(i,a),a=i;t(n,r)}e(n,null)}function vi(n){for(var t,e=0,r=0,u=n.children,i=u.length;--i>=0;)t=u[i]._tree,t.prelim+=e,t.mod+=e,e+=t.shift+(r+=t.change)}function di(n,t,e){n=n._tree,t=t._tree;var r=e/(t.number-n.number);n.change+=r,t.change-=r,t.shift+=e,t.prelim+=e,t.mod+=e}function mi(n,t,e){return n._tree.ancestor.parent==t.parent?n._tree.ancestor:e}function yi(n,t){return n.value-t.value}function xi(n,t){var e=n._pack_next;n._pack_next=t,t._pack_prev=n,t._pack_next=e,e._pack_prev=t}function Mi(n,t){n._pack_next=t,t._pack_prev=n}function _i(n,t){var e=t.x-n.x,r=t.y-n.y,u=n.r+t.r;return.999*u*u>e*e+r*r}function bi(n){function t(n){l=Math.min(n.x-n.r,l),f=Math.max(n.x+n.r,f),h=Math.min(n.y-n.r,h),g=Math.max(n.y+n.r,g)}if((e=n.children)&&(s=e.length)){var e,r,u,i,o,a,c,s,l=1/0,f=-1/0,h=1/0,g=-1/0;if(e.forEach(wi),r=e[0],r.x=-r.r,r.y=0,t(r),s>1&&(u=e[1],u.x=u.r,u.y=0,t(u),s>2))for(i=e[2],Ei(r,u,i),t(i),xi(r,i),r._pack_prev=i,xi(i,u),u=r._pack_next,o=3;s>o;o++){Ei(r,u,i=e[o]);var p=0,v=1,d=1;for(a=u._pack_next;a!==u;a=a._pack_next,v++)if(_i(a,i)){p=1;break}if(1==p)for(c=r._pack_prev;c!==a._pack_prev&&!_i(c,i);c=c._pack_prev,d++);p?(d>v||v==d&&u.r<r.r?Mi(r,u=a):Mi(r=c,u),o--):(xi(r,i),u=i,t(i))}var m=(l+f)/2,y=(h+g)/2,x=0;for(o=0;s>o;o++)i=e[o],i.x-=m,i.y-=y,x=Math.max(x,i.r+Math.sqrt(i.x*i.x+i.y*i.y));n.r=x,e.forEach(Si)}}function wi(n){n._pack_next=n._pack_prev=n}function Si(n){delete n._pack_next,delete n._pack_prev}function ki(n,t,e,r){var u=n.children;if(n.x=t+=r*n.x,n.y=e+=r*n.y,n.r*=r,u)for(var i=-1,o=u.length;++i<o;)ki(u[i],t,e,r)}function Ei(n,t,e){var r=n.r+e.r,u=t.x-n.x,i=t.y-n.y;if(r&&(u||i)){var o=t.r+e.r,a=u*u+i*i;o*=o,r*=r;var c=.5+(r-o)/(2*a),s=Math.sqrt(Math.max(0,2*o*(r+a)-(r-=a)*r-o*o))/(2*a);e.x=n.x+c*u+s*i,e.y=n.y+c*i-s*u}else e.x=n.x+r,e.y=n.y}function Ai(n){return 1+Xo.max(n,function(n){return n.y})}function Ci(n){return n.reduce(function(n,t){return n+t.x},0)/n.length}function Ni(n){var t=n.children;return t&&t.length?Ni(t[0]):n}function Li(n){var t,e=n.children;return e&&(t=e.length)?Li(e[t-1]):n}function Ti(n){return{x:n.x,y:n.y,dx:n.dx,dy:n.dy}}function qi(n,t){var e=n.x+t[3],r=n.y+t[0],u=n.dx-t[1]-t[3],i=n.dy-t[0]-t[2];return 0>u&&(e+=u/2,u=0),0>i&&(r+=i/2,i=0),{x:e,y:r,dx:u,dy:i}}function zi(n){var t=n[0],e=n[n.length-1];return e>t?[t,e]:[e,t]}function Ri(n){return n.rangeExtent?n.rangeExtent():zi(n.range())}function Di(n,t,e,r){var u=e(n[0],n[1]),i=r(t[0],t[1]);return function(n){return i(u(n))}}function Pi(n,t){var e,r=0,u=n.length-1,i=n[r],o=n[u];return i>o&&(e=r,r=u,u=e,e=i,i=o,o=e),n[r]=t.floor(i),n[u]=t.ceil(o),n}function Ui(n){return n?{floor:function(t){return Math.floor(t/n)*n},ceil:function(t){return Math.ceil(t/n)*n}}:ls}function ji(n,t,e,r){var u=[],i=[],o=0,a=Math.min(n.length,t.length)-1;for(n[a]<n[0]&&(n=n.slice().reverse(),t=t.slice().reverse());++o<=a;)u.push(e(n[o-1],n[o])),i.push(r(t[o-1],t[o]));return function(t){var e=Xo.bisect(n,t,1,a)-1;return i[e](u[e](t))}}function Hi(n,t,e,r){function u(){var u=Math.min(n.length,t.length)>2?ji:Di,c=r?Pu:Du;return o=u(n,t,c,e),a=u(t,n,c,fu),i}function i(n){return o(n)}var o,a;return i.invert=function(n){return a(n)},i.domain=function(t){return arguments.length?(n=t.map(Number),u()):n},i.range=function(n){return arguments.length?(t=n,u()):t},i.rangeRound=function(n){return i.range(n).interpolate(Nu)},i.clamp=function(n){return arguments.length?(r=n,u()):r},i.interpolate=function(n){return arguments.length?(e=n,u()):e},i.ticks=function(t){return Ii(n,t)},i.tickFormat=function(t,e){return Zi(n,t,e)},i.nice=function(t){return Oi(n,t),u()},i.copy=function(){return Hi(n,t,e,r)},u()}function Fi(n,t){return Xo.rebind(n,t,"range","rangeRound","interpolate","clamp")}function Oi(n,t){return Pi(n,Ui(Yi(n,t)[2]))}function Yi(n,t){null==t&&(t=10);var e=zi(n),r=e[1]-e[0],u=Math.pow(10,Math.floor(Math.log(r/t)/Math.LN10)),i=t/r*u;return.15>=i?u*=10:.35>=i?u*=5:.75>=i&&(u*=2),e[0]=Math.ceil(e[0]/u)*u,e[1]=Math.floor(e[1]/u)*u+.5*u,e[2]=u,e}function Ii(n,t){return Xo.range.apply(Xo,Yi(n,t))}function Zi(n,t,e){var r=Yi(n,t);return Xo.format(e?e.replace(Qa,function(n,t,e,u,i,o,a,c,s,l){return[t,e,u,i,o,a,c,s||"."+Xi(l,r),l].join("")}):",."+Vi(r[2])+"f")}function Vi(n){return-Math.floor(Math.log(n)/Math.LN10+.01)}function Xi(n,t){var e=Vi(t[2]);return n in fs?Math.abs(e-Vi(Math.max(Math.abs(t[0]),Math.abs(t[1]))))+ +("e"!==n):e-2*("%"===n)}function $i(n,t,e,r){function u(n){return(e?Math.log(0>n?0:n):-Math.log(n>0?0:-n))/Math.log(t)}function i(n){return e?Math.pow(t,n):-Math.pow(t,-n)}function o(t){return n(u(t))}return o.invert=function(t){return i(n.invert(t))},o.domain=function(t){return arguments.length?(e=t[0]>=0,n.domain((r=t.map(Number)).map(u)),o):r},o.base=function(e){return arguments.length?(t=+e,n.domain(r.map(u)),o):t},o.nice=function(){var t=Pi(r.map(u),e?Math:gs);return n.domain(t),r=t.map(i),o},o.ticks=function(){var n=zi(r),o=[],a=n[0],c=n[1],s=Math.floor(u(a)),l=Math.ceil(u(c)),f=t%1?2:t;if(isFinite(l-s)){if(e){for(;l>s;s++)for(var h=1;f>h;h++)o.push(i(s)*h);o.push(i(s))}else for(o.push(i(s));s++<l;)for(var h=f-1;h>0;h--)o.push(i(s)*h);for(s=0;o[s]<a;s++);for(l=o.length;o[l-1]>c;l--);o=o.slice(s,l)}return o},o.tickFormat=function(n,t){if(!arguments.length)return hs;arguments.length<2?t=hs:"function"!=typeof t&&(t=Xo.format(t));var r,a=Math.max(.1,n/o.ticks().length),c=e?(r=1e-12,Math.ceil):(r=-1e-12,Math.floor);return function(n){return n/i(c(u(n)+r))<=a?t(n):""}},o.copy=function(){return $i(n.copy(),t,e,r)},Fi(o,n)}function Bi(n,t,e){function r(t){return n(u(t))}var u=Wi(t),i=Wi(1/t);return r.invert=function(t){return i(n.invert(t))},r.domain=function(t){return arguments.length?(n.domain((e=t.map(Number)).map(u)),r):e},r.ticks=function(n){return Ii(e,n)},r.tickFormat=function(n,t){return Zi(e,n,t)},r.nice=function(n){return r.domain(Oi(e,n))},r.exponent=function(o){return arguments.length?(u=Wi(t=o),i=Wi(1/t),n.domain(e.map(u)),r):t},r.copy=function(){return Bi(n.copy(),t,e)},Fi(r,n)}function Wi(n){return function(t){return 0>t?-Math.pow(-t,n):Math.pow(t,n)}}function Ji(n,t){function e(e){return o[((i.get(e)||"range"===t.t&&i.set(e,n.push(e)))-1)%o.length]}function r(t,e){return Xo.range(n.length).map(function(n){return t+e*n})}var i,o,a;return e.domain=function(r){if(!arguments.length)return n;n=[],i=new u;for(var o,a=-1,c=r.length;++a<c;)i.has(o=r[a])||i.set(o,n.push(o));return e[t.t].apply(e,t.a)},e.range=function(n){return arguments.length?(o=n,a=0,t={t:"range",a:arguments},e):o},e.rangePoints=function(u,i){arguments.length<2&&(i=0);var c=u[0],s=u[1],l=(s-c)/(Math.max(1,n.length-1)+i);return o=r(n.length<2?(c+s)/2:c+l*i/2,l),a=0,t={t:"rangePoints",a:arguments},e},e.rangeBands=function(u,i,c){arguments.length<2&&(i=0),arguments.length<3&&(c=i);var s=u[1]<u[0],l=u[s-0],f=u[1-s],h=(f-l)/(n.length-i+2*c);return o=r(l+h*c,h),s&&o.reverse(),a=h*(1-i),t={t:"rangeBands",a:arguments},e},e.rangeRoundBands=function(u,i,c){arguments.length<2&&(i=0),arguments.length<3&&(c=i);var s=u[1]<u[0],l=u[s-0],f=u[1-s],h=Math.floor((f-l)/(n.length-i+2*c)),g=f-l-(n.length-i)*h;return o=r(l+Math.round(g/2),h),s&&o.reverse(),a=Math.round(h*(1-i)),t={t:"rangeRoundBands",a:arguments},e},e.rangeBand=function(){return a},e.rangeExtent=function(){return zi(t.a[0])},e.copy=function(){return Ji(n,t)},e.domain(n)}function Gi(n,t){function e(){var e=0,i=t.length;for(u=[];++e<i;)u[e-1]=Xo.quantile(n,e/i);return r}function r(n){return isNaN(n=+n)?void 0:t[Xo.bisect(u,n)]}var u;return r.domain=function(t){return arguments.length?(n=t.filter(function(n){return!isNaN(n)}).sort(Xo.ascending),e()):n},r.range=function(n){return arguments.length?(t=n,e()):t},r.quantiles=function(){return u},r.invertExtent=function(e){return e=t.indexOf(e),0>e?[0/0,0/0]:[e>0?u[e-1]:n[0],e<u.length?u[e]:n[n.length-1]]},r.copy=function(){return Gi(n,t)},e()}function Ki(n,t,e){function r(t){return e[Math.max(0,Math.min(o,Math.floor(i*(t-n))))]}function u(){return i=e.length/(t-n),o=e.length-1,r}var i,o;return r.domain=function(e){return arguments.length?(n=+e[0],t=+e[e.length-1],u()):[n,t]},r.range=function(n){return arguments.length?(e=n,u()):e},r.invertExtent=function(t){return t=e.indexOf(t),t=0>t?0/0:t/i+n,[t,t+1/i]},r.copy=function(){return Ki(n,t,e)},u()}function Qi(n,t){function e(e){return e>=e?t[Xo.bisect(n,e)]:void 0}return e.domain=function(t){return arguments.length?(n=t,e):n},e.range=function(n){return arguments.length?(t=n,e):t},e.invertExtent=function(e){return e=t.indexOf(e),[n[e-1],n[e]]},e.copy=function(){return Qi(n,t)},e}function no(n){function t(n){return+n}return t.invert=t,t.domain=t.range=function(e){return arguments.length?(n=e.map(t),t):n},t.ticks=function(t){return Ii(n,t)},t.tickFormat=function(t,e){return Zi(n,t,e)},t.copy=function(){return no(n)},t}function to(n){return n.innerRadius}function eo(n){return n.outerRadius}function ro(n){return n.startAngle}function uo(n){return n.endAngle}function io(n){function t(t){function o(){s.push("M",i(n(l),a))}for(var c,s=[],l=[],f=-1,h=t.length,g=_t(e),p=_t(r);++f<h;)u.call(this,c=t[f],f)?l.push([+g.call(this,c,f),+p.call(this,c,f)]):l.length&&(o(),l=[]);return l.length&&o(),s.length?s.join(""):null}var e=br,r=wr,u=be,i=oo,o=i.key,a=.7;return t.x=function(n){return arguments.length?(e=n,t):e},t.y=function(n){return arguments.length?(r=n,t):r},t.defined=function(n){return arguments.length?(u=n,t):u},t.interpolate=function(n){return arguments.length?(o="function"==typeof n?i=n:(i=Ms.get(n)||oo).key,t):o},t.tension=function(n){return arguments.length?(a=n,t):a},t}function oo(n){return n.join("L")}function ao(n){return oo(n)+"Z"}function co(n){for(var t=0,e=n.length,r=n[0],u=[r[0],",",r[1]];++t<e;)u.push("H",(r[0]+(r=n[t])[0])/2,"V",r[1]);return e>1&&u.push("H",r[0]),u.join("")}function so(n){for(var t=0,e=n.length,r=n[0],u=[r[0],",",r[1]];++t<e;)u.push("V",(r=n[t])[1],"H",r[0]);return u.join("")}function lo(n){for(var t=0,e=n.length,r=n[0],u=[r[0],",",r[1]];++t<e;)u.push("H",(r=n[t])[0],"V",r[1]);return u.join("")}function fo(n,t){return n.length<4?oo(n):n[1]+po(n.slice(1,n.length-1),vo(n,t))}function ho(n,t){return n.length<3?oo(n):n[0]+po((n.push(n[0]),n),vo([n[n.length-2]].concat(n,[n[1]]),t))}function go(n,t){return n.length<3?oo(n):n[0]+po(n,vo(n,t))}function po(n,t){if(t.length<1||n.length!=t.length&&n.length!=t.length+2)return oo(n);var e=n.length!=t.length,r="",u=n[0],i=n[1],o=t[0],a=o,c=1;if(e&&(r+="Q"+(i[0]-2*o[0]/3)+","+(i[1]-2*o[1]/3)+","+i[0]+","+i[1],u=n[1],c=2),t.length>1){a=t[1],i=n[c],c++,r+="C"+(u[0]+o[0])+","+(u[1]+o[1])+","+(i[0]-a[0])+","+(i[1]-a[1])+","+i[0]+","+i[1];for(var s=2;s<t.length;s++,c++)i=n[c],a=t[s],r+="S"+(i[0]-a[0])+","+(i[1]-a[1])+","+i[0]+","+i[1]}if(e){var l=n[c];r+="Q"+(i[0]+2*a[0]/3)+","+(i[1]+2*a[1]/3)+","+l[0]+","+l[1]}return r}function vo(n,t){for(var e,r=[],u=(1-t)/2,i=n[0],o=n[1],a=1,c=n.length;++a<c;)e=i,i=o,o=n[a],r.push([u*(o[0]-e[0]),u*(o[1]-e[1])]);return r}function mo(n){if(n.length<3)return oo(n);var t=1,e=n.length,r=n[0],u=r[0],i=r[1],o=[u,u,u,(r=n[1])[0]],a=[i,i,i,r[1]],c=[u,",",i,"L",_o(ws,o),",",_o(ws,a)];for(n.push(n[e-1]);++t<=e;)r=n[t],o.shift(),o.push(r[0]),a.shift(),a.push(r[1]),bo(c,o,a);return n.pop(),c.push("L",r),c.join("")}function yo(n){if(n.length<4)return oo(n);for(var t,e=[],r=-1,u=n.length,i=[0],o=[0];++r<3;)t=n[r],i.push(t[0]),o.push(t[1]);for(e.push(_o(ws,i)+","+_o(ws,o)),--r;++r<u;)t=n[r],i.shift(),i.push(t[0]),o.shift(),o.push(t[1]),bo(e,i,o);return e.join("")}function xo(n){for(var t,e,r=-1,u=n.length,i=u+4,o=[],a=[];++r<4;)e=n[r%u],o.push(e[0]),a.push(e[1]);for(t=[_o(ws,o),",",_o(ws,a)],--r;++r<i;)e=n[r%u],o.shift(),o.push(e[0]),a.shift(),a.push(e[1]),bo(t,o,a);return t.join("")}function Mo(n,t){var e=n.length-1;if(e)for(var r,u,i=n[0][0],o=n[0][1],a=n[e][0]-i,c=n[e][1]-o,s=-1;++s<=e;)r=n[s],u=s/e,r[0]=t*r[0]+(1-t)*(i+u*a),r[1]=t*r[1]+(1-t)*(o+u*c);return mo(n)}function _o(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]+n[3]*t[3]}function bo(n,t,e){n.push("C",_o(_s,t),",",_o(_s,e),",",_o(bs,t),",",_o(bs,e),",",_o(ws,t),",",_o(ws,e))}function wo(n,t){return(t[1]-n[1])/(t[0]-n[0])}function So(n){for(var t=0,e=n.length-1,r=[],u=n[0],i=n[1],o=r[0]=wo(u,i);++t<e;)r[t]=(o+(o=wo(u=i,i=n[t+1])))/2;return r[t]=o,r}function ko(n){for(var t,e,r,u,i=[],o=So(n),a=-1,c=n.length-1;++a<c;)t=wo(n[a],n[a+1]),oa(t)<Aa?o[a]=o[a+1]=0:(e=o[a]/t,r=o[a+1]/t,u=e*e+r*r,u>9&&(u=3*t/Math.sqrt(u),o[a]=u*e,o[a+1]=u*r));for(a=-1;++a<=c;)u=(n[Math.min(c,a+1)][0]-n[Math.max(0,a-1)][0])/(6*(1+o[a]*o[a])),i.push([u||0,o[a]*u||0]);return i}function Eo(n){return n.length<3?oo(n):n[0]+po(n,ko(n))}function Ao(n){for(var t,e,r,u=-1,i=n.length;++u<i;)t=n[u],e=t[0],r=t[1]+ys,t[0]=e*Math.cos(r),t[1]=e*Math.sin(r);return n}function Co(n){function t(t){function c(){v.push("M",a(n(m),f),l,s(n(d.reverse()),f),"Z")}for(var h,g,p,v=[],d=[],m=[],y=-1,x=t.length,M=_t(e),_=_t(u),b=e===r?function(){return g}:_t(r),w=u===i?function(){return p}:_t(i);++y<x;)o.call(this,h=t[y],y)?(d.push([g=+M.call(this,h,y),p=+_.call(this,h,y)]),m.push([+b.call(this,h,y),+w.call(this,h,y)])):d.length&&(c(),d=[],m=[]);return d.length&&c(),v.length?v.join(""):null}var e=br,r=br,u=0,i=wr,o=be,a=oo,c=a.key,s=a,l="L",f=.7;return t.x=function(n){return arguments.length?(e=r=n,t):r},t.x0=function(n){return arguments.length?(e=n,t):e},t.x1=function(n){return arguments.length?(r=n,t):r},t.y=function(n){return arguments.length?(u=i=n,t):i},t.y0=function(n){return arguments.length?(u=n,t):u},t.y1=function(n){return arguments.length?(i=n,t):i},t.defined=function(n){return arguments.length?(o=n,t):o},t.interpolate=function(n){return arguments.length?(c="function"==typeof n?a=n:(a=Ms.get(n)||oo).key,s=a.reverse||a,l=a.closed?"M":"L",t):c},t.tension=function(n){return arguments.length?(f=n,t):f},t}function No(n){return n.radius}function Lo(n){return[n.x,n.y]}function To(n){return function(){var t=n.apply(this,arguments),e=t[0],r=t[1]+ys;return[e*Math.cos(r),e*Math.sin(r)]}}function qo(){return 64}function zo(){return"circle"}function Ro(n){var t=Math.sqrt(n/Sa);return"M0,"+t+"A"+t+","+t+" 0 1,1 0,"+-t+"A"+t+","+t+" 0 1,1 0,"+t+"Z"}function Do(n,t){return fa(n,Ns),n.id=t,n}function Po(n,t,e,r){var u=n.id;return R(n,"function"==typeof e?function(n,i,o){n.__transition__[u].tween.set(t,r(e.call(n,n.__data__,i,o)))}:(e=r(e),function(n){n.__transition__[u].tween.set(t,e)}))}function Uo(n){return null==n&&(n=""),function(){this.textContent=n}}function jo(n,t,e,r){var i=n.__transition__||(n.__transition__={active:0,count:0}),o=i[e];if(!o){var a=r.time;o=i[e]={tween:new u,time:a,ease:r.ease,delay:r.delay,duration:r.duration},++i.count,Xo.timer(function(r){function u(r){return i.active>e?s():(i.active=e,o.event&&o.event.start.call(n,l,t),o.tween.forEach(function(e,r){(r=r.call(n,l,t))&&v.push(r)}),Xo.timer(function(){return p.c=c(r||1)?be:c,1},0,a),void 0)}function c(r){if(i.active!==e)return s();for(var u=r/g,a=f(u),c=v.length;c>0;)v[--c].call(n,a);return u>=1?(o.event&&o.event.end.call(n,l,t),s()):void 0}function s(){return--i.count?delete i[e]:delete n.__transition__,1}var l=n.__data__,f=o.ease,h=o.delay,g=o.duration,p=Ja,v=[];return p.t=h+a,r>=h?u(r-h):(p.c=u,void 0)},0,a)}}function Ho(n,t){n.attr("transform",function(n){return"translate("+t(n)+",0)"})}function Fo(n,t){n.attr("transform",function(n){return"translate(0,"+t(n)+")"})}function Oo(n){return n.toISOString()}function Yo(n,t,e){function r(t){return n(t)}function u(n,e){var r=n[1]-n[0],u=r/e,i=Xo.bisect(js,u);return i==js.length?[t.year,Yi(n.map(function(n){return n/31536e6}),e)[2]]:i?t[u/js[i-1]<js[i]/u?i-1:i]:[Os,Yi(n,e)[2]]}return r.invert=function(t){return Io(n.invert(t))},r.domain=function(t){return arguments.length?(n.domain(t),r):n.domain().map(Io)},r.nice=function(n,t){function e(e){return!isNaN(e)&&!n.range(e,Io(+e+1),t).length}var i=r.domain(),o=zi(i),a=null==n?u(o,10):"number"==typeof n&&u(o,n);return a&&(n=a[0],t=a[1]),r.domain(Pi(i,t>1?{floor:function(t){for(;e(t=n.floor(t));)t=Io(t-1);return t},ceil:function(t){for(;e(t=n.ceil(t));)t=Io(+t+1);return t}}:n))},r.ticks=function(n,t){var e=zi(r.domain()),i=null==n?u(e,10):"number"==typeof n?u(e,n):!n.range&&[{range:n},t];return i&&(n=i[0],t=i[1]),n.range(e[0],Io(+e[1]+1),1>t?1:t)},r.tickFormat=function(){return e},r.copy=function(){return Yo(n.copy(),t,e)},Fi(r,n)}function Io(n){return new Date(n)}function Zo(n){return JSON.parse(n.responseText)}function Vo(n){var t=Wo.createRange();return t.selectNode(Wo.body),t.createContextualFragment(n.responseText)}var Xo={version:"3.4.3"};Date.now||(Date.now=function(){return+new Date});var $o=[].slice,Bo=function(n){return $o.call(n)},Wo=document,Jo=Wo.documentElement,Go=window;try{Bo(Jo.childNodes)[0].nodeType}catch(Ko){Bo=function(n){for(var t=n.length,e=new Array(t);t--;)e[t]=n[t];return e}}try{Wo.createElement("div").style.setProperty("opacity",0,"")}catch(Qo){var na=Go.Element.prototype,ta=na.setAttribute,ea=na.setAttributeNS,ra=Go.CSSStyleDeclaration.prototype,ua=ra.setProperty;na.setAttribute=function(n,t){ta.call(this,n,t+"")},na.setAttributeNS=function(n,t,e){ea.call(this,n,t,e+"")},ra.setProperty=function(n,t,e){ua.call(this,n,t+"",e)}}Xo.ascending=function(n,t){return t>n?-1:n>t?1:n>=t?0:0/0},Xo.descending=function(n,t){return n>t?-1:t>n?1:t>=n?0:0/0},Xo.min=function(n,t){var e,r,u=-1,i=n.length;if(1===arguments.length){for(;++u<i&&!(null!=(e=n[u])&&e>=e);)e=void 0;for(;++u<i;)null!=(r=n[u])&&e>r&&(e=r)}else{for(;++u<i&&!(null!=(e=t.call(n,n[u],u))&&e>=e);)e=void 0;for(;++u<i;)null!=(r=t.call(n,n[u],u))&&e>r&&(e=r)}return e},Xo.max=function(n,t){var e,r,u=-1,i=n.length;if(1===arguments.length){for(;++u<i&&!(null!=(e=n[u])&&e>=e);)e=void 0;for(;++u<i;)null!=(r=n[u])&&r>e&&(e=r)}else{for(;++u<i&&!(null!=(e=t.call(n,n[u],u))&&e>=e);)e=void 0;for(;++u<i;)null!=(r=t.call(n,n[u],u))&&r>e&&(e=r)}return e},Xo.extent=function(n,t){var e,r,u,i=-1,o=n.length;if(1===arguments.length){for(;++i<o&&!(null!=(e=u=n[i])&&e>=e);)e=u=void 0;for(;++i<o;)null!=(r=n[i])&&(e>r&&(e=r),r>u&&(u=r))}else{for(;++i<o&&!(null!=(e=u=t.call(n,n[i],i))&&e>=e);)e=void 0;for(;++i<o;)null!=(r=t.call(n,n[i],i))&&(e>r&&(e=r),r>u&&(u=r))}return[e,u]},Xo.sum=function(n,t){var e,r=0,u=n.length,i=-1;if(1===arguments.length)for(;++i<u;)isNaN(e=+n[i])||(r+=e);else for(;++i<u;)isNaN(e=+t.call(n,n[i],i))||(r+=e);return r},Xo.mean=function(t,e){var r,u=t.length,i=0,o=-1,a=0;if(1===arguments.length)for(;++o<u;)n(r=t[o])&&(i+=(r-i)/++a);else for(;++o<u;)n(r=e.call(t,t[o],o))&&(i+=(r-i)/++a);return a?i:void 0},Xo.quantile=function(n,t){var e=(n.length-1)*t+1,r=Math.floor(e),u=+n[r-1],i=e-r;return i?u+i*(n[r]-u):u},Xo.median=function(t,e){return arguments.length>1&&(t=t.map(e)),t=t.filter(n),t.length?Xo.quantile(t.sort(Xo.ascending),.5):void 0},Xo.bisector=function(n){return{left:function(t,e,r,u){for(arguments.length<3&&(r=0),arguments.length<4&&(u=t.length);u>r;){var i=r+u>>>1;n.call(t,t[i],i)<e?r=i+1:u=i}return r},right:function(t,e,r,u){for(arguments.length<3&&(r=0),arguments.length<4&&(u=t.length);u>r;){var i=r+u>>>1;e<n.call(t,t[i],i)?u=i:r=i+1}return r}}};var ia=Xo.bisector(function(n){return n});Xo.bisectLeft=ia.left,Xo.bisect=Xo.bisectRight=ia.right,Xo.shuffle=function(n){for(var t,e,r=n.length;r;)e=0|Math.random()*r--,t=n[r],n[r]=n[e],n[e]=t;return n},Xo.permute=function(n,t){for(var e=t.length,r=new Array(e);e--;)r[e]=n[t[e]];return r},Xo.pairs=function(n){for(var t,e=0,r=n.length-1,u=n[0],i=new Array(0>r?0:r);r>e;)i[e]=[t=u,u=n[++e]];return i},Xo.zip=function(){if(!(u=arguments.length))return[];for(var n=-1,e=Xo.min(arguments,t),r=new Array(e);++n<e;)for(var u,i=-1,o=r[n]=new Array(u);++i<u;)o[i]=arguments[i][n];return r},Xo.transpose=function(n){return Xo.zip.apply(Xo,n)},Xo.keys=function(n){var t=[];for(var e in n)t.push(e);return t},Xo.values=function(n){var t=[];for(var e in n)t.push(n[e]);return t},Xo.entries=function(n){var t=[];for(var e in n)t.push({key:e,value:n[e]});return t},Xo.merge=function(n){for(var t,e,r,u=n.length,i=-1,o=0;++i<u;)o+=n[i].length;for(e=new Array(o);--u>=0;)for(r=n[u],t=r.length;--t>=0;)e[--o]=r[t];return e};var oa=Math.abs;Xo.range=function(n,t,r){if(arguments.length<3&&(r=1,arguments.length<2&&(t=n,n=0)),1/0===(t-n)/r)throw new Error("infinite range");var u,i=[],o=e(oa(r)),a=-1;if(n*=o,t*=o,r*=o,0>r)for(;(u=n+r*++a)>t;)i.push(u/o);else for(;(u=n+r*++a)<t;)i.push(u/o);return i},Xo.map=function(n){var t=new u;if(n instanceof u)n.forEach(function(n,e){t.set(n,e)});else for(var e in n)t.set(e,n[e]);return t},r(u,{has:i,get:function(n){return this[aa+n]},set:function(n,t){return this[aa+n]=t},remove:o,keys:a,values:function(){var n=[];return this.forEach(function(t,e){n.push(e)}),n},entries:function(){var n=[];return this.forEach(function(t,e){n.push({key:t,value:e})}),n},size:c,empty:s,forEach:function(n){for(var t in this)t.charCodeAt(0)===ca&&n.call(this,t.substring(1),this[t])}});var aa="\x00",ca=aa.charCodeAt(0);Xo.nest=function(){function n(t,a,c){if(c>=o.length)return r?r.call(i,a):e?a.sort(e):a;for(var s,l,f,h,g=-1,p=a.length,v=o[c++],d=new u;++g<p;)(h=d.get(s=v(l=a[g])))?h.push(l):d.set(s,[l]);return t?(l=t(),f=function(e,r){l.set(e,n(t,r,c))}):(l={},f=function(e,r){l[e]=n(t,r,c)}),d.forEach(f),l}function t(n,e){if(e>=o.length)return n;var r=[],u=a[e++];return n.forEach(function(n,u){r.push({key:n,values:t(u,e)})}),u?r.sort(function(n,t){return u(n.key,t.key)}):r}var e,r,i={},o=[],a=[];return i.map=function(t,e){return n(e,t,0)},i.entries=function(e){return t(n(Xo.map,e,0),0)},i.key=function(n){return o.push(n),i},i.sortKeys=function(n){return a[o.length-1]=n,i},i.sortValues=function(n){return e=n,i},i.rollup=function(n){return r=n,i},i},Xo.set=function(n){var t=new l;if(n)for(var e=0,r=n.length;r>e;++e)t.add(n[e]);return t},r(l,{has:i,add:function(n){return this[aa+n]=!0,n},remove:function(n){return n=aa+n,n in this&&delete this[n]},values:a,size:c,empty:s,forEach:function(n){for(var t in this)t.charCodeAt(0)===ca&&n.call(this,t.substring(1))}}),Xo.behavior={},Xo.rebind=function(n,t){for(var e,r=1,u=arguments.length;++r<u;)n[e=arguments[r]]=f(n,t,t[e]);return n};var sa=["webkit","ms","moz","Moz","o","O"];Xo.dispatch=function(){for(var n=new p,t=-1,e=arguments.length;++t<e;)n[arguments[t]]=v(n);return n},p.prototype.on=function(n,t){var e=n.indexOf("."),r="";if(e>=0&&(r=n.substring(e+1),n=n.substring(0,e)),n)return arguments.length<2?this[n].on(r):this[n].on(r,t);if(2===arguments.length){if(null==t)for(n in this)this.hasOwnProperty(n)&&this[n].on(r,null);return this}},Xo.event=null,Xo.requote=function(n){return n.replace(la,"\\$&")};var la=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g,fa={}.__proto__?function(n,t){n.__proto__=t}:function(n,t){for(var e in t)n[e]=t[e]},ha=function(n,t){return t.querySelector(n)},ga=function(n,t){return t.querySelectorAll(n)},pa=Jo[h(Jo,"matchesSelector")],va=function(n,t){return pa.call(n,t)};"function"==typeof Sizzle&&(ha=function(n,t){return Sizzle(n,t)[0]||null},ga=Sizzle,va=Sizzle.matchesSelector),Xo.selection=function(){return xa};var da=Xo.selection.prototype=[];da.select=function(n){var t,e,r,u,i=[];n=M(n);for(var o=-1,a=this.length;++o<a;){i.push(t=[]),t.parentNode=(r=this[o]).parentNode;for(var c=-1,s=r.length;++c<s;)(u=r[c])?(t.push(e=n.call(u,u.__data__,c,o)),e&&"__data__"in u&&(e.__data__=u.__data__)):t.push(null)}return x(i)},da.selectAll=function(n){var t,e,r=[];n=_(n);for(var u=-1,i=this.length;++u<i;)for(var o=this[u],a=-1,c=o.length;++a<c;)(e=o[a])&&(r.push(t=Bo(n.call(e,e.__data__,a,u))),t.parentNode=e);return x(r)};var ma={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};Xo.ns={prefix:ma,qualify:function(n){var t=n.indexOf(":"),e=n;return t>=0&&(e=n.substring(0,t),n=n.substring(t+1)),ma.hasOwnProperty(e)?{space:ma[e],local:n}:n}},da.attr=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node();return n=Xo.ns.qualify(n),n.local?e.getAttributeNS(n.space,n.local):e.getAttribute(n)}for(t in n)this.each(b(t,n[t]));return this}return this.each(b(n,t))},da.classed=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node(),r=(n=k(n)).length,u=-1;if(t=e.classList){for(;++u<r;)if(!t.contains(n[u]))return!1}else for(t=e.getAttribute("class");++u<r;)if(!S(n[u]).test(t))return!1;return!0}for(t in n)this.each(E(t,n[t]));return this}return this.each(E(n,t))},da.style=function(n,t,e){var r=arguments.length;if(3>r){if("string"!=typeof n){2>r&&(t="");for(e in n)this.each(C(e,n[e],t));return this}if(2>r)return Go.getComputedStyle(this.node(),null).getPropertyValue(n);e=""}return this.each(C(n,t,e))},da.property=function(n,t){if(arguments.length<2){if("string"==typeof n)return this.node()[n];for(t in n)this.each(N(t,n[t]));return this}return this.each(N(n,t))},da.text=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.textContent=null==t?"":t}:null==n?function(){this.textContent=""}:function(){this.textContent=n}):this.node().textContent},da.html=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.innerHTML=null==t?"":t}:null==n?function(){this.innerHTML=""}:function(){this.innerHTML=n}):this.node().innerHTML},da.append=function(n){return n=L(n),this.select(function(){return this.appendChild(n.apply(this,arguments))})},da.insert=function(n,t){return n=L(n),t=M(t),this.select(function(){return this.insertBefore(n.apply(this,arguments),t.apply(this,arguments)||null)})},da.remove=function(){return this.each(function(){var n=this.parentNode;n&&n.removeChild(this)})},da.data=function(n,t){function e(n,e){var r,i,o,a=n.length,f=e.length,h=Math.min(a,f),g=new Array(f),p=new Array(f),v=new Array(a);if(t){var d,m=new u,y=new u,x=[];for(r=-1;++r<a;)d=t.call(i=n[r],i.__data__,r),m.has(d)?v[r]=i:m.set(d,i),x.push(d);for(r=-1;++r<f;)d=t.call(e,o=e[r],r),(i=m.get(d))?(g[r]=i,i.__data__=o):y.has(d)||(p[r]=T(o)),y.set(d,o),m.remove(d);for(r=-1;++r<a;)m.has(x[r])&&(v[r]=n[r])}else{for(r=-1;++r<h;)i=n[r],o=e[r],i?(i.__data__=o,g[r]=i):p[r]=T(o);for(;f>r;++r)p[r]=T(e[r]);for(;a>r;++r)v[r]=n[r]}p.update=g,p.parentNode=g.parentNode=v.parentNode=n.parentNode,c.push(p),s.push(g),l.push(v)}var r,i,o=-1,a=this.length;if(!arguments.length){for(n=new Array(a=(r=this[0]).length);++o<a;)(i=r[o])&&(n[o]=i.__data__);return n}var c=D([]),s=x([]),l=x([]);if("function"==typeof n)for(;++o<a;)e(r=this[o],n.call(r,r.parentNode.__data__,o));else for(;++o<a;)e(r=this[o],n);return s.enter=function(){return c},s.exit=function(){return l},s},da.datum=function(n){return arguments.length?this.property("__data__",n):this.property("__data__")},da.filter=function(n){var t,e,r,u=[];"function"!=typeof n&&(n=q(n));for(var i=0,o=this.length;o>i;i++){u.push(t=[]),t.parentNode=(e=this[i]).parentNode;for(var a=0,c=e.length;c>a;a++)(r=e[a])&&n.call(r,r.__data__,a,i)&&t.push(r)}return x(u)},da.order=function(){for(var n=-1,t=this.length;++n<t;)for(var e,r=this[n],u=r.length-1,i=r[u];--u>=0;)(e=r[u])&&(i&&i!==e.nextSibling&&i.parentNode.insertBefore(e,i),i=e);return this},da.sort=function(n){n=z.apply(this,arguments);for(var t=-1,e=this.length;++t<e;)this[t].sort(n);return this.order()},da.each=function(n){return R(this,function(t,e,r){n.call(t,t.__data__,e,r)})},da.call=function(n){var t=Bo(arguments);return n.apply(t[0]=this,t),this},da.empty=function(){return!this.node()},da.node=function(){for(var n=0,t=this.length;t>n;n++)for(var e=this[n],r=0,u=e.length;u>r;r++){var i=e[r];if(i)return i}return null},da.size=function(){var n=0;return this.each(function(){++n}),n};var ya=[];Xo.selection.enter=D,Xo.selection.enter.prototype=ya,ya.append=da.append,ya.empty=da.empty,ya.node=da.node,ya.call=da.call,ya.size=da.size,ya.select=function(n){for(var t,e,r,u,i,o=[],a=-1,c=this.length;++a<c;){r=(u=this[a]).update,o.push(t=[]),t.parentNode=u.parentNode;for(var s=-1,l=u.length;++s<l;)(i=u[s])?(t.push(r[s]=e=n.call(u.parentNode,i.__data__,s,a)),e.__data__=i.__data__):t.push(null)}return x(o)},ya.insert=function(n,t){return arguments.length<2&&(t=P(this)),da.insert.call(this,n,t)},da.transition=function(){for(var n,t,e=ks||++Ls,r=[],u=Es||{time:Date.now(),ease:yu,delay:0,duration:250},i=-1,o=this.length;++i<o;){r.push(n=[]);for(var a=this[i],c=-1,s=a.length;++c<s;)(t=a[c])&&jo(t,c,e,u),n.push(t)}return Do(r,e)},da.interrupt=function(){return this.each(U)},Xo.select=function(n){var t=["string"==typeof n?ha(n,Wo):n];return t.parentNode=Jo,x([t])},Xo.selectAll=function(n){var t=Bo("string"==typeof n?ga(n,Wo):n);return t.parentNode=Jo,x([t])};var xa=Xo.select(Jo);da.on=function(n,t,e){var r=arguments.length;if(3>r){if("string"!=typeof n){2>r&&(t=!1);for(e in n)this.each(j(e,n[e],t));return this}if(2>r)return(r=this.node()["__on"+n])&&r._;e=!1}return this.each(j(n,t,e))};var Ma=Xo.map({mouseenter:"mouseover",mouseleave:"mouseout"});Ma.forEach(function(n){"on"+n in Wo&&Ma.remove(n)});var _a="onselectstart"in Wo?null:h(Jo.style,"userSelect"),ba=0;Xo.mouse=function(n){return Y(n,m())};var wa=/WebKit/.test(Go.navigator.userAgent)?-1:0;Xo.touches=function(n,t){return arguments.length<2&&(t=m().touches),t?Bo(t).map(function(t){var e=Y(n,t);return e.identifier=t.identifier,e}):[]},Xo.behavior.drag=function(){function n(){this.on("mousedown.drag",o).on("touchstart.drag",a)}function t(){return Xo.event.changedTouches[0].identifier}function e(n,t){return Xo.touches(n).filter(function(n){return n.identifier===t})[0]}function r(n,t,e,r){return function(){function o(){var n=t(l,g),e=n[0]-v[0],r=n[1]-v[1];d|=e|r,v=n,f({type:"drag",x:n[0]+c[0],y:n[1]+c[1],dx:e,dy:r})}function a(){m.on(e+"."+p,null).on(r+"."+p,null),y(d&&Xo.event.target===h),f({type:"dragend"})}var c,s=this,l=s.parentNode,f=u.of(s,arguments),h=Xo.event.target,g=n(),p=null==g?"drag":"drag-"+g,v=t(l,g),d=0,m=Xo.select(Go).on(e+"."+p,o).on(r+"."+p,a),y=O();i?(c=i.apply(s,arguments),c=[c.x-v[0],c.y-v[1]]):c=[0,0],f({type:"dragstart"})}}var u=y(n,"drag","dragstart","dragend"),i=null,o=r(g,Xo.mouse,"mousemove","mouseup"),a=r(t,e,"touchmove","touchend");return n.origin=function(t){return arguments.length?(i=t,n):i},Xo.rebind(n,u,"on")};var Sa=Math.PI,ka=2*Sa,Ea=Sa/2,Aa=1e-6,Ca=Aa*Aa,Na=Sa/180,La=180/Sa,Ta=Math.SQRT2,qa=2,za=4;Xo.interpolateZoom=function(n,t){function e(n){var t=n*y;if(m){var e=B(v),o=i/(qa*h)*(e*W(Ta*t+v)-$(v));return[r+o*s,u+o*l,i*e/B(Ta*t+v)]}return[r+n*s,u+n*l,i*Math.exp(Ta*t)]}var r=n[0],u=n[1],i=n[2],o=t[0],a=t[1],c=t[2],s=o-r,l=a-u,f=s*s+l*l,h=Math.sqrt(f),g=(c*c-i*i+za*f)/(2*i*qa*h),p=(c*c-i*i-za*f)/(2*c*qa*h),v=Math.log(Math.sqrt(g*g+1)-g),d=Math.log(Math.sqrt(p*p+1)-p),m=d-v,y=(m||Math.log(c/i))/Ta;return e.duration=1e3*y,e},Xo.behavior.zoom=function(){function n(n){n.on(A,s).on(Pa+".zoom",f).on(C,h).on("dblclick.zoom",g).on(L,l)}function t(n){return[(n[0]-S.x)/S.k,(n[1]-S.y)/S.k]}function e(n){return[n[0]*S.k+S.x,n[1]*S.k+S.y]}function r(n){S.k=Math.max(E[0],Math.min(E[1],n))}function u(n,t){t=e(t),S.x+=n[0]-t[0],S.y+=n[1]-t[1]}function i(){_&&_.domain(M.range().map(function(n){return(n-S.x)/S.k}).map(M.invert)),w&&w.domain(b.range().map(function(n){return(n-S.y)/S.k}).map(b.invert))}function o(n){n({type:"zoomstart"})}function a(n){i(),n({type:"zoom",scale:S.k,translate:[S.x,S.y]})}function c(n){n({type:"zoomend"})}function s(){function n(){l=1,u(Xo.mouse(r),g),a(i)}function e(){f.on(C,Go===r?h:null).on(N,null),p(l&&Xo.event.target===s),c(i)}var r=this,i=T.of(r,arguments),s=Xo.event.target,l=0,f=Xo.select(Go).on(C,n).on(N,e),g=t(Xo.mouse(r)),p=O();U.call(r),o(i)}function l(){function n(){var n=Xo.touches(g);return h=S.k,n.forEach(function(n){n.identifier in v&&(v[n.identifier]=t(n))}),n}function e(){for(var t=Xo.event.changedTouches,e=0,i=t.length;i>e;++e)v[t[e].identifier]=null;var o=n(),c=Date.now();if(1===o.length){if(500>c-x){var s=o[0],l=v[s.identifier];r(2*S.k),u(s,l),d(),a(p)}x=c}else if(o.length>1){var s=o[0],f=o[1],h=s[0]-f[0],g=s[1]-f[1];m=h*h+g*g}}function i(){for(var n,t,e,i,o=Xo.touches(g),c=0,s=o.length;s>c;++c,i=null)if(e=o[c],i=v[e.identifier]){if(t)break;n=e,t=i}if(i){var l=(l=e[0]-n[0])*l+(l=e[1]-n[1])*l,f=m&&Math.sqrt(l/m);n=[(n[0]+e[0])/2,(n[1]+e[1])/2],t=[(t[0]+i[0])/2,(t[1]+i[1])/2],r(f*h)}x=null,u(n,t),a(p)}function f(){if(Xo.event.touches.length){for(var t=Xo.event.changedTouches,e=0,r=t.length;r>e;++e)delete v[t[e].identifier];for(var u in v)return void n()}b.on(M,null).on(_,null),w.on(A,s).on(L,l),k(),c(p)}var h,g=this,p=T.of(g,arguments),v={},m=0,y=Xo.event.changedTouches[0].identifier,M="touchmove.zoom-"+y,_="touchend.zoom-"+y,b=Xo.select(Go).on(M,i).on(_,f),w=Xo.select(g).on(A,null).on(L,e),k=O();U.call(g),e(),o(p)}function f(){var n=T.of(this,arguments);m?clearTimeout(m):(U.call(this),o(n)),m=setTimeout(function(){m=null,c(n)},50),d();var e=v||Xo.mouse(this);p||(p=t(e)),r(Math.pow(2,.002*Ra())*S.k),u(e,p),a(n)}function h(){p=null}function g(){var n=T.of(this,arguments),e=Xo.mouse(this),i=t(e),s=Math.log(S.k)/Math.LN2;o(n),r(Math.pow(2,Xo.event.shiftKey?Math.ceil(s)-1:Math.floor(s)+1)),u(e,i),a(n),c(n)}var p,v,m,x,M,_,b,w,S={x:0,y:0,k:1},k=[960,500],E=Da,A="mousedown.zoom",C="mousemove.zoom",N="mouseup.zoom",L="touchstart.zoom",T=y(n,"zoomstart","zoom","zoomend");return n.event=function(n){n.each(function(){var n=T.of(this,arguments),t=S;ks?Xo.select(this).transition().each("start.zoom",function(){S=this.__chart__||{x:0,y:0,k:1},o(n)}).tween("zoom:zoom",function(){var e=k[0],r=k[1],u=e/2,i=r/2,o=Xo.interpolateZoom([(u-S.x)/S.k,(i-S.y)/S.k,e/S.k],[(u-t.x)/t.k,(i-t.y)/t.k,e/t.k]);return function(t){var r=o(t),c=e/r[2];this.__chart__=S={x:u-r[0]*c,y:i-r[1]*c,k:c},a(n)}}).each("end.zoom",function(){c(n)}):(this.__chart__=S,o(n),a(n),c(n))})},n.translate=function(t){return arguments.length?(S={x:+t[0],y:+t[1],k:S.k},i(),n):[S.x,S.y]},n.scale=function(t){return arguments.length?(S={x:S.x,y:S.y,k:+t},i(),n):S.k},n.scaleExtent=function(t){return arguments.length?(E=null==t?Da:[+t[0],+t[1]],n):E},n.center=function(t){return arguments.length?(v=t&&[+t[0],+t[1]],n):v},n.size=function(t){return arguments.length?(k=t&&[+t[0],+t[1]],n):k},n.x=function(t){return arguments.length?(_=t,M=t.copy(),S={x:0,y:0,k:1},n):_},n.y=function(t){return arguments.length?(w=t,b=t.copy(),S={x:0,y:0,k:1},n):w},Xo.rebind(n,T,"on")};var Ra,Da=[0,1/0],Pa="onwheel"in Wo?(Ra=function(){return-Xo.event.deltaY*(Xo.event.deltaMode?120:1)},"wheel"):"onmousewheel"in Wo?(Ra=function(){return Xo.event.wheelDelta},"mousewheel"):(Ra=function(){return-Xo.event.detail},"MozMousePixelScroll");G.prototype.toString=function(){return this.rgb()+""},Xo.hsl=function(n,t,e){return 1===arguments.length?n instanceof Q?K(n.h,n.s,n.l):dt(""+n,mt,K):K(+n,+t,+e)};var Ua=Q.prototype=new G;Ua.brighter=function(n){return n=Math.pow(.7,arguments.length?n:1),K(this.h,this.s,this.l/n)},Ua.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),K(this.h,this.s,n*this.l)},Ua.rgb=function(){return nt(this.h,this.s,this.l)},Xo.hcl=function(n,t,e){return 1===arguments.length?n instanceof et?tt(n.h,n.c,n.l):n instanceof it?at(n.l,n.a,n.b):at((n=yt((n=Xo.rgb(n)).r,n.g,n.b)).l,n.a,n.b):tt(+n,+t,+e)};var ja=et.prototype=new G;ja.brighter=function(n){return tt(this.h,this.c,Math.min(100,this.l+Ha*(arguments.length?n:1)))},ja.darker=function(n){return tt(this.h,this.c,Math.max(0,this.l-Ha*(arguments.length?n:1)))},ja.rgb=function(){return rt(this.h,this.c,this.l).rgb()},Xo.lab=function(n,t,e){return 1===arguments.length?n instanceof it?ut(n.l,n.a,n.b):n instanceof et?rt(n.l,n.c,n.h):yt((n=Xo.rgb(n)).r,n.g,n.b):ut(+n,+t,+e)};var Ha=18,Fa=.95047,Oa=1,Ya=1.08883,Ia=it.prototype=new G;Ia.brighter=function(n){return ut(Math.min(100,this.l+Ha*(arguments.length?n:1)),this.a,this.b)},Ia.darker=function(n){return ut(Math.max(0,this.l-Ha*(arguments.length?n:1)),this.a,this.b)},Ia.rgb=function(){return ot(this.l,this.a,this.b)},Xo.rgb=function(n,t,e){return 1===arguments.length?n instanceof pt?gt(n.r,n.g,n.b):dt(""+n,gt,nt):gt(~~n,~~t,~~e)};var Za=pt.prototype=new G;Za.brighter=function(n){n=Math.pow(.7,arguments.length?n:1);var t=this.r,e=this.g,r=this.b,u=30;return t||e||r?(t&&u>t&&(t=u),e&&u>e&&(e=u),r&&u>r&&(r=u),gt(Math.min(255,~~(t/n)),Math.min(255,~~(e/n)),Math.min(255,~~(r/n)))):gt(u,u,u)},Za.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),gt(~~(n*this.r),~~(n*this.g),~~(n*this.b))},Za.hsl=function(){return mt(this.r,this.g,this.b)},Za.toString=function(){return"#"+vt(this.r)+vt(this.g)+vt(this.b)};var Va=Xo.map({aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074});Va.forEach(function(n,t){Va.set(n,ft(t))}),Xo.functor=_t,Xo.xhr=wt(bt),Xo.dsv=function(n,t){function e(n,e,i){arguments.length<3&&(i=e,e=null);var o=St(n,t,null==e?r:u(e),i);return o.row=function(n){return arguments.length?o.response(null==(e=n)?r:u(n)):e},o}function r(n){return e.parse(n.responseText)}function u(n){return function(t){return e.parse(t.responseText,n)}}function i(t){return t.map(o).join(n)}function o(n){return a.test(n)?'"'+n.replace(/\"/g,'""')+'"':n}var a=new RegExp('["'+n+"\n]"),c=n.charCodeAt(0);return e.parse=function(n,t){var r;return e.parseRows(n,function(n,e){if(r)return r(n,e-1);var u=new Function("d","return {"+n.map(function(n,t){return JSON.stringify(n)+": d["+t+"]"}).join(",")+"}");r=t?function(n,e){return t(u(n),e)}:u})},e.parseRows=function(n,t){function e(){if(l>=s)return o;if(u)return u=!1,i;var t=l;if(34===n.charCodeAt(t)){for(var e=t;e++<s;)if(34===n.charCodeAt(e)){if(34!==n.charCodeAt(e+1))break;++e}l=e+2;var r=n.charCodeAt(e+1);return 13===r?(u=!0,10===n.charCodeAt(e+2)&&++l):10===r&&(u=!0),n.substring(t+1,e).replace(/""/g,'"')}for(;s>l;){var r=n.charCodeAt(l++),a=1;if(10===r)u=!0;else if(13===r)u=!0,10===n.charCodeAt(l)&&(++l,++a);else if(r!==c)continue;return n.substring(t,l-a)}return n.substring(t)}for(var r,u,i={},o={},a=[],s=n.length,l=0,f=0;(r=e())!==o;){for(var h=[];r!==i&&r!==o;)h.push(r),r=e();(!t||(h=t(h,f++)))&&a.push(h)}return a},e.format=function(t){if(Array.isArray(t[0]))return e.formatRows(t);var r=new l,u=[];return t.forEach(function(n){for(var t in n)r.has(t)||u.push(r.add(t))}),[u.map(o).join(n)].concat(t.map(function(t){return u.map(function(n){return o(t[n])}).join(n)})).join("\n")},e.formatRows=function(n){return n.map(i).join("\n")},e},Xo.csv=Xo.dsv(",","text/csv"),Xo.tsv=Xo.dsv(" ","text/tab-separated-values");var Xa,$a,Ba,Wa,Ja,Ga=Go[h(Go,"requestAnimationFrame")]||function(n){setTimeout(n,17)};Xo.timer=function(n,t,e){var r=arguments.length;2>r&&(t=0),3>r&&(e=Date.now());var u=e+t,i={c:n,t:u,f:!1,n:null};$a?$a.n=i:Xa=i,$a=i,Ba||(Wa=clearTimeout(Wa),Ba=1,Ga(Et))},Xo.timer.flush=function(){At(),Ct()},Xo.round=function(n,t){return t?Math.round(n*(t=Math.pow(10,t)))/t:Math.round(n)};var Ka=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"].map(Lt);Xo.formatPrefix=function(n,t){var e=0;return n&&(0>n&&(n*=-1),t&&(n=Xo.round(n,Nt(n,t))),e=1+Math.floor(1e-12+Math.log(n)/Math.LN10),e=Math.max(-24,Math.min(24,3*Math.floor((0>=e?e+1:e-1)/3)))),Ka[8+e/3]};var Qa=/(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i,nc=Xo.map({b:function(n){return n.toString(2)},c:function(n){return String.fromCharCode(n)},o:function(n){return n.toString(8)},x:function(n){return n.toString(16)},X:function(n){return n.toString(16).toUpperCase()},g:function(n,t){return n.toPrecision(t)},e:function(n,t){return n.toExponential(t)},f:function(n,t){return n.toFixed(t)},r:function(n,t){return(n=Xo.round(n,Nt(n,t))).toFixed(Math.max(0,Math.min(20,Nt(n*(1+1e-15),t))))}}),tc=Xo.time={},ec=Date;zt.prototype={getDate:function(){return this._.getUTCDate()},getDay:function(){return this._.getUTCDay()},getFullYear:function(){return this._.getUTCFullYear()},getHours:function(){return this._.getUTCHours()},getMilliseconds:function(){return this._.getUTCMilliseconds()},getMinutes:function(){return this._.getUTCMinutes()},getMonth:function(){return this._.getUTCMonth()},getSeconds:function(){return this._.getUTCSeconds()},getTime:function(){return this._.getTime()},getTimezoneOffset:function(){return 0},valueOf:function(){return this._.valueOf()},setDate:function(){rc.setUTCDate.apply(this._,arguments)},setDay:function(){rc.setUTCDay.apply(this._,arguments)},setFullYear:function(){rc.setUTCFullYear.apply(this._,arguments)},setHours:function(){rc.setUTCHours.apply(this._,arguments)},setMilliseconds:function(){rc.setUTCMilliseconds.apply(this._,arguments)},setMinutes:function(){rc.setUTCMinutes.apply(this._,arguments)},setMonth:function(){rc.setUTCMonth.apply(this._,arguments)},setSeconds:function(){rc.setUTCSeconds.apply(this._,arguments)},setTime:function(){rc.setTime.apply(this._,arguments)}};var rc=Date.prototype;tc.year=Rt(function(n){return n=tc.day(n),n.setMonth(0,1),n},function(n,t){n.setFullYear(n.getFullYear()+t)},function(n){return n.getFullYear()}),tc.years=tc.year.range,tc.years.utc=tc.year.utc.range,tc.day=Rt(function(n){var t=new ec(2e3,0);return t.setFullYear(n.getFullYear(),n.getMonth(),n.getDate()),t},function(n,t){n.setDate(n.getDate()+t)},function(n){return n.getDate()-1}),tc.days=tc.day.range,tc.days.utc=tc.day.utc.range,tc.dayOfYear=function(n){var t=tc.year(n);return Math.floor((n-t-6e4*(n.getTimezoneOffset()-t.getTimezoneOffset()))/864e5)},["sunday","monday","tuesday","wednesday","thursday","friday","saturday"].forEach(function(n,t){t=7-t;var e=tc[n]=Rt(function(n){return(n=tc.day(n)).setDate(n.getDate()-(n.getDay()+t)%7),n},function(n,t){n.setDate(n.getDate()+7*Math.floor(t))},function(n){var e=tc.year(n).getDay();return Math.floor((tc.dayOfYear(n)+(e+t)%7)/7)-(e!==t)});tc[n+"s"]=e.range,tc[n+"s"].utc=e.utc.range,tc[n+"OfYear"]=function(n){var e=tc.year(n).getDay();return Math.floor((tc.dayOfYear(n)+(e+t)%7)/7)}}),tc.week=tc.sunday,tc.weeks=tc.sunday.range,tc.weeks.utc=tc.sunday.utc.range,tc.weekOfYear=tc.sundayOfYear;var uc={"-":"",_:" ",0:"0"},ic=/^\s*\d+/,oc=/^%/;Xo.locale=function(n){return{numberFormat:Tt(n),timeFormat:Pt(n)}};var ac=Xo.locale({decimal:".",thousands:",",grouping:[3],currency:["$",""],dateTime:"%a %b %e %X %Y",date:"%m/%d/%Y",time:"%H:%M:%S",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});Xo.format=ac.numberFormat,Xo.geo={},re.prototype={s:0,t:0,add:function(n){ue(n,this.t,cc),ue(cc.s,this.s,this),this.s?this.t+=cc.t:this.s=cc.t},reset:function(){this.s=this.t=0},valueOf:function(){return this.s}};var cc=new re;Xo.geo.stream=function(n,t){n&&sc.hasOwnProperty(n.type)?sc[n.type](n,t):ie(n,t)};var sc={Feature:function(n,t){ie(n.geometry,t)},FeatureCollection:function(n,t){for(var e=n.features,r=-1,u=e.length;++r<u;)ie(e[r].geometry,t)}},lc={Sphere:function(n,t){t.sphere()},Point:function(n,t){n=n.coordinates,t.point(n[0],n[1],n[2])},MultiPoint:function(n,t){for(var e=n.coordinates,r=-1,u=e.length;++r<u;)n=e[r],t.point(n[0],n[1],n[2])},LineString:function(n,t){oe(n.coordinates,t,0)},MultiLineString:function(n,t){for(var e=n.coordinates,r=-1,u=e.length;++r<u;)oe(e[r],t,0)},Polygon:function(n,t){ae(n.coordinates,t)},MultiPolygon:function(n,t){for(var e=n.coordinates,r=-1,u=e.length;++r<u;)ae(e[r],t)},GeometryCollection:function(n,t){for(var e=n.geometries,r=-1,u=e.length;++r<u;)ie(e[r],t)}};Xo.geo.area=function(n){return fc=0,Xo.geo.stream(n,gc),fc};var fc,hc=new re,gc={sphere:function(){fc+=4*Sa},point:g,lineStart:g,lineEnd:g,polygonStart:function(){hc.reset(),gc.lineStart=ce},polygonEnd:function(){var n=2*hc;fc+=0>n?4*Sa+n:n,gc.lineStart=gc.lineEnd=gc.point=g}};Xo.geo.bounds=function(){function n(n,t){x.push(M=[l=n,h=n]),f>t&&(f=t),t>g&&(g=t)}function t(t,e){var r=se([t*Na,e*Na]);if(m){var u=fe(m,r),i=[u[1],-u[0],0],o=fe(i,u);pe(o),o=ve(o);var c=t-p,s=c>0?1:-1,v=o[0]*La*s,d=oa(c)>180;if(d^(v>s*p&&s*t>v)){var y=o[1]*La;y>g&&(g=y)}else if(v=(v+360)%360-180,d^(v>s*p&&s*t>v)){var y=-o[1]*La;f>y&&(f=y)}else f>e&&(f=e),e>g&&(g=e);d?p>t?a(l,t)>a(l,h)&&(h=t):a(t,h)>a(l,h)&&(l=t):h>=l?(l>t&&(l=t),t>h&&(h=t)):t>p?a(l,t)>a(l,h)&&(h=t):a(t,h)>a(l,h)&&(l=t)}else n(t,e);m=r,p=t}function e(){_.point=t}function r(){M[0]=l,M[1]=h,_.point=n,m=null}function u(n,e){if(m){var r=n-p;y+=oa(r)>180?r+(r>0?360:-360):r}else v=n,d=e;gc.point(n,e),t(n,e)}function i(){gc.lineStart()}function o(){u(v,d),gc.lineEnd(),oa(y)>Aa&&(l=-(h=180)),M[0]=l,M[1]=h,m=null}function a(n,t){return(t-=n)<0?t+360:t}function c(n,t){return n[0]-t[0]}function s(n,t){return t[0]<=t[1]?t[0]<=n&&n<=t[1]:n<t[0]||t[1]<n}var l,f,h,g,p,v,d,m,y,x,M,_={point:n,lineStart:e,lineEnd:r,polygonStart:function(){_.point=u,_.lineStart=i,_.lineEnd=o,y=0,gc.polygonStart()},polygonEnd:function(){gc.polygonEnd(),_.point=n,_.lineStart=e,_.lineEnd=r,0>hc?(l=-(h=180),f=-(g=90)):y>Aa?g=90:-Aa>y&&(f=-90),M[0]=l,M[1]=h}};return function(n){g=h=-(l=f=1/0),x=[],Xo.geo.stream(n,_);var t=x.length;if(t){x.sort(c);for(var e,r=1,u=x[0],i=[u];t>r;++r)e=x[r],s(e[0],u)||s(e[1],u)?(a(u[0],e[1])>a(u[0],u[1])&&(u[1]=e[1]),a(e[0],u[1])>a(u[0],u[1])&&(u[0]=e[0])):i.push(u=e);for(var o,e,p=-1/0,t=i.length-1,r=0,u=i[t];t>=r;u=e,++r)e=i[r],(o=a(u[1],e[0]))>p&&(p=o,l=e[0],h=u[1])}return x=M=null,1/0===l||1/0===f?[[0/0,0/0],[0/0,0/0]]:[[l,f],[h,g]]}}(),Xo.geo.centroid=function(n){pc=vc=dc=mc=yc=xc=Mc=_c=bc=wc=Sc=0,Xo.geo.stream(n,kc);var t=bc,e=wc,r=Sc,u=t*t+e*e+r*r;return Ca>u&&(t=xc,e=Mc,r=_c,Aa>vc&&(t=dc,e=mc,r=yc),u=t*t+e*e+r*r,Ca>u)?[0/0,0/0]:[Math.atan2(e,t)*La,X(r/Math.sqrt(u))*La]};var pc,vc,dc,mc,yc,xc,Mc,_c,bc,wc,Sc,kc={sphere:g,point:me,lineStart:xe,lineEnd:Me,polygonStart:function(){kc.lineStart=_e},polygonEnd:function(){kc.lineStart=xe}},Ec=Ee(be,Te,ze,[-Sa,-Sa/2]),Ac=1e9;Xo.geo.clipExtent=function(){var n,t,e,r,u,i,o={stream:function(n){return u&&(u.valid=!1),u=i(n),u.valid=!0,u},extent:function(a){return arguments.length?(i=Pe(n=+a[0][0],t=+a[0][1],e=+a[1][0],r=+a[1][1]),u&&(u.valid=!1,u=null),o):[[n,t],[e,r]]}};return o.extent([[0,0],[960,500]])},(Xo.geo.conicEqualArea=function(){return je(He)}).raw=He,Xo.geo.albers=function(){return Xo.geo.conicEqualArea().rotate([96,0]).center([-.6,38.7]).parallels([29.5,45.5]).scale(1070)},Xo.geo.albersUsa=function(){function n(n){var i=n[0],o=n[1];return t=null,e(i,o),t||(r(i,o),t)||u(i,o),t}var t,e,r,u,i=Xo.geo.albers(),o=Xo.geo.conicEqualArea().rotate([154,0]).center([-2,58.5]).parallels([55,65]),a=Xo.geo.conicEqualArea().rotate([157,0]).center([-3,19.9]).parallels([8,18]),c={point:function(n,e){t=[n,e]}};return n.invert=function(n){var t=i.scale(),e=i.translate(),r=(n[0]-e[0])/t,u=(n[1]-e[1])/t;return(u>=.12&&.234>u&&r>=-.425&&-.214>r?o:u>=.166&&.234>u&&r>=-.214&&-.115>r?a:i).invert(n)},n.stream=function(n){var t=i.stream(n),e=o.stream(n),r=a.stream(n);return{point:function(n,u){t.point(n,u),e.point(n,u),r.point(n,u)},sphere:function(){t.sphere(),e.sphere(),r.sphere()},lineStart:function(){t.lineStart(),e.lineStart(),r.lineStart()},lineEnd:function(){t.lineEnd(),e.lineEnd(),r.lineEnd()},polygonStart:function(){t.polygonStart(),e.polygonStart(),r.polygonStart()},polygonEnd:function(){t.polygonEnd(),e.polygonEnd(),r.polygonEnd()}}},n.precision=function(t){return arguments.length?(i.precision(t),o.precision(t),a.precision(t),n):i.precision()},n.scale=function(t){return arguments.length?(i.scale(t),o.scale(.35*t),a.scale(t),n.translate(i.translate())):i.scale()},n.translate=function(t){if(!arguments.length)return i.translate();var s=i.scale(),l=+t[0],f=+t[1];return e=i.translate(t).clipExtent([[l-.455*s,f-.238*s],[l+.455*s,f+.238*s]]).stream(c).point,r=o.translate([l-.307*s,f+.201*s]).clipExtent([[l-.425*s+Aa,f+.12*s+Aa],[l-.214*s-Aa,f+.234*s-Aa]]).stream(c).point,u=a.translate([l-.205*s,f+.212*s]).clipExtent([[l-.214*s+Aa,f+.166*s+Aa],[l-.115*s-Aa,f+.234*s-Aa]]).stream(c).point,n},n.scale(1070)};var Cc,Nc,Lc,Tc,qc,zc,Rc={point:g,lineStart:g,lineEnd:g,polygonStart:function(){Nc=0,Rc.lineStart=Fe},polygonEnd:function(){Rc.lineStart=Rc.lineEnd=Rc.point=g,Cc+=oa(Nc/2)}},Dc={point:Oe,lineStart:g,lineEnd:g,polygonStart:g,polygonEnd:g},Pc={point:Ze,lineStart:Ve,lineEnd:Xe,polygonStart:function(){Pc.lineStart=$e},polygonEnd:function(){Pc.point=Ze,Pc.lineStart=Ve,Pc.lineEnd=Xe}};Xo.geo.path=function(){function n(n){return n&&("function"==typeof a&&i.pointRadius(+a.apply(this,arguments)),o&&o.valid||(o=u(i)),Xo.geo.stream(n,o)),i.result()}function t(){return o=null,n}var e,r,u,i,o,a=4.5;return n.area=function(n){return Cc=0,Xo.geo.stream(n,u(Rc)),Cc},n.centroid=function(n){return dc=mc=yc=xc=Mc=_c=bc=wc=Sc=0,Xo.geo.stream(n,u(Pc)),Sc?[bc/Sc,wc/Sc]:_c?[xc/_c,Mc/_c]:yc?[dc/yc,mc/yc]:[0/0,0/0]},n.bounds=function(n){return qc=zc=-(Lc=Tc=1/0),Xo.geo.stream(n,u(Dc)),[[Lc,Tc],[qc,zc]]},n.projection=function(n){return arguments.length?(u=(e=n)?n.stream||Je(n):bt,t()):e},n.context=function(n){return arguments.length?(i=null==(r=n)?new Ye:new Be(n),"function"!=typeof a&&i.pointRadius(a),t()):r},n.pointRadius=function(t){return arguments.length?(a="function"==typeof t?t:(i.pointRadius(+t),+t),n):a},n.projection(Xo.geo.albersUsa()).context(null)},Xo.geo.transform=function(n){return{stream:function(t){var e=new Ge(t);for(var r in n)e[r]=n[r];return e}}},Ge.prototype={point:function(n,t){this.stream.point(n,t)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}},Xo.geo.projection=Qe,Xo.geo.projectionMutator=nr,(Xo.geo.equirectangular=function(){return Qe(er)}).raw=er.invert=er,Xo.geo.rotation=function(n){function t(t){return t=n(t[0]*Na,t[1]*Na),t[0]*=La,t[1]*=La,t}return n=ur(n[0]%360*Na,n[1]*Na,n.length>2?n[2]*Na:0),t.invert=function(t){return t=n.invert(t[0]*Na,t[1]*Na),t[0]*=La,t[1]*=La,t},t},rr.invert=er,Xo.geo.circle=function(){function n(){var n="function"==typeof r?r.apply(this,arguments):r,t=ur(-n[0]*Na,-n[1]*Na,0).invert,u=[];return e(null,null,1,{point:function(n,e){u.push(n=t(n,e)),n[0]*=La,n[1]*=La}}),{type:"Polygon",coordinates:[u]}}var t,e,r=[0,0],u=6;return n.origin=function(t){return arguments.length?(r=t,n):r},n.angle=function(r){return arguments.length?(e=cr((t=+r)*Na,u*Na),n):t},n.precision=function(r){return arguments.length?(e=cr(t*Na,(u=+r)*Na),n):u},n.angle(90)},Xo.geo.distance=function(n,t){var e,r=(t[0]-n[0])*Na,u=n[1]*Na,i=t[1]*Na,o=Math.sin(r),a=Math.cos(r),c=Math.sin(u),s=Math.cos(u),l=Math.sin(i),f=Math.cos(i);return Math.atan2(Math.sqrt((e=f*o)*e+(e=s*l-c*f*a)*e),c*l+s*f*a)},Xo.geo.graticule=function(){function n(){return{type:"MultiLineString",coordinates:t()}}function t(){return Xo.range(Math.ceil(i/d)*d,u,d).map(h).concat(Xo.range(Math.ceil(s/m)*m,c,m).map(g)).concat(Xo.range(Math.ceil(r/p)*p,e,p).filter(function(n){return oa(n%d)>Aa}).map(l)).concat(Xo.range(Math.ceil(a/v)*v,o,v).filter(function(n){return oa(n%m)>Aa}).map(f))}var e,r,u,i,o,a,c,s,l,f,h,g,p=10,v=p,d=90,m=360,y=2.5;return n.lines=function(){return t().map(function(n){return{type:"LineString",coordinates:n}})},n.outline=function(){return{type:"Polygon",coordinates:[h(i).concat(g(c).slice(1),h(u).reverse().slice(1),g(s).reverse().slice(1))]}},n.extent=function(t){return arguments.length?n.majorExtent(t).minorExtent(t):n.minorExtent()},n.majorExtent=function(t){return arguments.length?(i=+t[0][0],u=+t[1][0],s=+t[0][1],c=+t[1][1],i>u&&(t=i,i=u,u=t),s>c&&(t=s,s=c,c=t),n.precision(y)):[[i,s],[u,c]]},n.minorExtent=function(t){return arguments.length?(r=+t[0][0],e=+t[1][0],a=+t[0][1],o=+t[1][1],r>e&&(t=r,r=e,e=t),a>o&&(t=a,a=o,o=t),n.precision(y)):[[r,a],[e,o]]},n.step=function(t){return arguments.length?n.majorStep(t).minorStep(t):n.minorStep()},n.majorStep=function(t){return arguments.length?(d=+t[0],m=+t[1],n):[d,m]},n.minorStep=function(t){return arguments.length?(p=+t[0],v=+t[1],n):[p,v]},n.precision=function(t){return arguments.length?(y=+t,l=lr(a,o,90),f=fr(r,e,y),h=lr(s,c,90),g=fr(i,u,y),n):y},n.majorExtent([[-180,-90+Aa],[180,90-Aa]]).minorExtent([[-180,-80-Aa],[180,80+Aa]])},Xo.geo.greatArc=function(){function n(){return{type:"LineString",coordinates:[t||r.apply(this,arguments),e||u.apply(this,arguments)]}}var t,e,r=hr,u=gr;return n.distance=function(){return Xo.geo.distance(t||r.apply(this,arguments),e||u.apply(this,arguments))},n.source=function(e){return arguments.length?(r=e,t="function"==typeof e?null:e,n):r},n.target=function(t){return arguments.length?(u=t,e="function"==typeof t?null:t,n):u},n.precision=function(){return arguments.length?n:0},n},Xo.geo.interpolate=function(n,t){return pr(n[0]*Na,n[1]*Na,t[0]*Na,t[1]*Na)},Xo.geo.length=function(n){return Uc=0,Xo.geo.stream(n,jc),Uc};var Uc,jc={sphere:g,point:g,lineStart:vr,lineEnd:g,polygonStart:g,polygonEnd:g},Hc=dr(function(n){return Math.sqrt(2/(1+n))},function(n){return 2*Math.asin(n/2)});(Xo.geo.azimuthalEqualArea=function(){return Qe(Hc)}).raw=Hc;var Fc=dr(function(n){var t=Math.acos(n);return t&&t/Math.sin(t)},bt);(Xo.geo.azimuthalEquidistant=function(){return Qe(Fc)}).raw=Fc,(Xo.geo.conicConformal=function(){return je(mr)}).raw=mr,(Xo.geo.conicEquidistant=function(){return je(yr)}).raw=yr;var Oc=dr(function(n){return 1/n},Math.atan);(Xo.geo.gnomonic=function(){return Qe(Oc)}).raw=Oc,xr.invert=function(n,t){return[n,2*Math.atan(Math.exp(t))-Ea]},(Xo.geo.mercator=function(){return Mr(xr)}).raw=xr;var Yc=dr(function(){return 1},Math.asin);(Xo.geo.orthographic=function(){return Qe(Yc)}).raw=Yc;var Ic=dr(function(n){return 1/(1+n)},function(n){return 2*Math.atan(n)});(Xo.geo.stereographic=function(){return Qe(Ic)}).raw=Ic,_r.invert=function(n,t){return[-t,2*Math.atan(Math.exp(n))-Ea]},(Xo.geo.transverseMercator=function(){var n=Mr(_r),t=n.center,e=n.rotate;return n.center=function(n){return n?t([-n[1],n[0]]):(n=t(),[-n[1],n[0]])},n.rotate=function(n){return n?e([n[0],n[1],n.length>2?n[2]+90:90]):(n=e(),[n[0],n[1],n[2]-90])},n.rotate([0,0])}).raw=_r,Xo.geom={},Xo.geom.hull=function(n){function t(n){if(n.length<3)return[];var t,u=_t(e),i=_t(r),o=n.length,a=[],c=[];for(t=0;o>t;t++)a.push([+u.call(this,n[t],t),+i.call(this,n[t],t),t]);for(a.sort(kr),t=0;o>t;t++)c.push([a[t][0],-a[t][1]]);var s=Sr(a),l=Sr(c),f=l[0]===s[0],h=l[l.length-1]===s[s.length-1],g=[];for(t=s.length-1;t>=0;--t)g.push(n[a[s[t]][2]]);for(t=+f;t<l.length-h;++t)g.push(n[a[l[t]][2]]);return g}var e=br,r=wr;return arguments.length?t(n):(t.x=function(n){return arguments.length?(e=n,t):e},t.y=function(n){return arguments.length?(r=n,t):r},t)},Xo.geom.polygon=function(n){return fa(n,Zc),n};var Zc=Xo.geom.polygon.prototype=[];Zc.area=function(){for(var n,t=-1,e=this.length,r=this[e-1],u=0;++t<e;)n=r,r=this[t],u+=n[1]*r[0]-n[0]*r[1];return.5*u},Zc.centroid=function(n){var t,e,r=-1,u=this.length,i=0,o=0,a=this[u-1];for(arguments.length||(n=-1/(6*this.area()));++r<u;)t=a,a=this[r],e=t[0]*a[1]-a[0]*t[1],i+=(t[0]+a[0])*e,o+=(t[1]+a[1])*e;return[i*n,o*n]},Zc.clip=function(n){for(var t,e,r,u,i,o,a=Cr(n),c=-1,s=this.length-Cr(this),l=this[s-1];++c<s;){for(t=n.slice(),n.length=0,u=this[c],i=t[(r=t.length-a)-1],e=-1;++e<r;)o=t[e],Er(o,l,u)?(Er(i,l,u)||n.push(Ar(i,o,l,u)),n.push(o)):Er(i,l,u)&&n.push(Ar(i,o,l,u)),i=o;a&&n.push(n[0]),l=u}return n};var Vc,Xc,$c,Bc,Wc,Jc=[],Gc=[];Pr.prototype.prepare=function(){for(var n,t=this.edges,e=t.length;e--;)n=t[e].edge,n.b&&n.a||t.splice(e,1);return t.sort(jr),t.length},Br.prototype={start:function(){return this.edge.l===this.site?this.edge.a:this.edge.b},end:function(){return this.edge.l===this.site?this.edge.b:this.edge.a}},Wr.prototype={insert:function(n,t){var e,r,u;if(n){if(t.P=n,t.N=n.N,n.N&&(n.N.P=t),n.N=t,n.R){for(n=n.R;n.L;)n=n.L;n.L=t}else n.R=t;e=n}else this._?(n=Qr(this._),t.P=null,t.N=n,n.P=n.L=t,e=n):(t.P=t.N=null,this._=t,e=null);for(t.L=t.R=null,t.U=e,t.C=!0,n=t;e&&e.C;)r=e.U,e===r.L?(u=r.R,u&&u.C?(e.C=u.C=!1,r.C=!0,n=r):(n===e.R&&(Gr(this,e),n=e,e=n.U),e.C=!1,r.C=!0,Kr(this,r))):(u=r.L,u&&u.C?(e.C=u.C=!1,r.C=!0,n=r):(n===e.L&&(Kr(this,e),n=e,e=n.U),e.C=!1,r.C=!0,Gr(this,r))),e=n.U;this._.C=!1},remove:function(n){n.N&&(n.N.P=n.P),n.P&&(n.P.N=n.N),n.N=n.P=null;var t,e,r,u=n.U,i=n.L,o=n.R;if(e=i?o?Qr(o):i:o,u?u.L===n?u.L=e:u.R=e:this._=e,i&&o?(r=e.C,e.C=n.C,e.L=i,i.U=e,e!==o?(u=e.U,e.U=n.U,n=e.R,u.L=n,e.R=o,o.U=e):(e.U=u,u=e,n=e.R)):(r=n.C,n=e),n&&(n.U=u),!r){if(n&&n.C)return n.C=!1,void 0;do{if(n===this._)break;if(n===u.L){if(t=u.R,t.C&&(t.C=!1,u.C=!0,Gr(this,u),t=u.R),t.L&&t.L.C||t.R&&t.R.C){t.R&&t.R.C||(t.L.C=!1,t.C=!0,Kr(this,t),t=u.R),t.C=u.C,u.C=t.R.C=!1,Gr(this,u),n=this._;break}}else if(t=u.L,t.C&&(t.C=!1,u.C=!0,Kr(this,u),t=u.L),t.L&&t.L.C||t.R&&t.R.C){t.L&&t.L.C||(t.R.C=!1,t.C=!0,Gr(this,t),t=u.L),t.C=u.C,u.C=t.L.C=!1,Kr(this,u),n=this._;break}t.C=!0,n=u,u=u.U}while(!n.C);n&&(n.C=!1)}}},Xo.geom.voronoi=function(n){function t(n){var t=new Array(n.length),r=a[0][0],u=a[0][1],i=a[1][0],o=a[1][1];return nu(e(n),a).cells.forEach(function(e,a){var c=e.edges,s=e.site,l=t[a]=c.length?c.map(function(n){var t=n.start();return[t.x,t.y]}):s.x>=r&&s.x<=i&&s.y>=u&&s.y<=o?[[r,o],[i,o],[i,u],[r,u]]:[];l.point=n[a]}),t}function e(n){return n.map(function(n,t){return{x:Math.round(i(n,t)/Aa)*Aa,y:Math.round(o(n,t)/Aa)*Aa,i:t}})}var r=br,u=wr,i=r,o=u,a=Kc;return n?t(n):(t.links=function(n){return nu(e(n)).edges.filter(function(n){return n.l&&n.r}).map(function(t){return{source:n[t.l.i],target:n[t.r.i]}})},t.triangles=function(n){var t=[];return nu(e(n)).cells.forEach(function(e,r){for(var u,i,o=e.site,a=e.edges.sort(jr),c=-1,s=a.length,l=a[s-1].edge,f=l.l===o?l.r:l.l;++c<s;)u=l,i=f,l=a[c].edge,f=l.l===o?l.r:l.l,r<i.i&&r<f.i&&eu(o,i,f)<0&&t.push([n[r],n[i.i],n[f.i]])}),t},t.x=function(n){return arguments.length?(i=_t(r=n),t):r},t.y=function(n){return arguments.length?(o=_t(u=n),t):u},t.clipExtent=function(n){return arguments.length?(a=null==n?Kc:n,t):a===Kc?null:a},t.size=function(n){return arguments.length?t.clipExtent(n&&[[0,0],n]):a===Kc?null:a&&a[1]},t)};var Kc=[[-1e6,-1e6],[1e6,1e6]];Xo.geom.delaunay=function(n){return Xo.geom.voronoi().triangles(n)},Xo.geom.quadtree=function(n,t,e,r,u){function i(n){function i(n,t,e,r,u,i,o,a){if(!isNaN(e)&&!isNaN(r))if(n.leaf){var c=n.x,l=n.y;if(null!=c)if(oa(c-e)+oa(l-r)<.01)s(n,t,e,r,u,i,o,a);else{var f=n.point;n.x=n.y=n.point=null,s(n,f,c,l,u,i,o,a),s(n,t,e,r,u,i,o,a)}else n.x=e,n.y=r,n.point=t}else s(n,t,e,r,u,i,o,a)}function s(n,t,e,r,u,o,a,c){var s=.5*(u+a),l=.5*(o+c),f=e>=s,h=r>=l,g=(h<<1)+f;n.leaf=!1,n=n.nodes[g]||(n.nodes[g]=iu()),f?u=s:a=s,h?o=l:c=l,i(n,t,e,r,u,o,a,c)}var l,f,h,g,p,v,d,m,y,x=_t(a),M=_t(c);if(null!=t)v=t,d=e,m=r,y=u;else if(m=y=-(v=d=1/0),f=[],h=[],p=n.length,o)for(g=0;p>g;++g)l=n[g],l.x<v&&(v=l.x),l.y<d&&(d=l.y),l.x>m&&(m=l.x),l.y>y&&(y=l.y),f.push(l.x),h.push(l.y);else for(g=0;p>g;++g){var _=+x(l=n[g],g),b=+M(l,g);v>_&&(v=_),d>b&&(d=b),_>m&&(m=_),b>y&&(y=b),f.push(_),h.push(b)}var w=m-v,S=y-d;w>S?y=d+w:m=v+S;var k=iu();if(k.add=function(n){i(k,n,+x(n,++g),+M(n,g),v,d,m,y)},k.visit=function(n){ou(n,k,v,d,m,y)},g=-1,null==t){for(;++g<p;)i(k,n[g],f[g],h[g],v,d,m,y);--g}else n.forEach(k.add);return f=h=n=l=null,k}var o,a=br,c=wr;return(o=arguments.length)?(a=ru,c=uu,3===o&&(u=e,r=t,e=t=0),i(n)):(i.x=function(n){return arguments.length?(a=n,i):a},i.y=function(n){return arguments.length?(c=n,i):c},i.extent=function(n){return arguments.length?(null==n?t=e=r=u=null:(t=+n[0][0],e=+n[0][1],r=+n[1][0],u=+n[1][1]),i):null==t?null:[[t,e],[r,u]]},i.size=function(n){return arguments.length?(null==n?t=e=r=u=null:(t=e=0,r=+n[0],u=+n[1]),i):null==t?null:[r-t,u-e]},i)},Xo.interpolateRgb=au,Xo.interpolateObject=cu,Xo.interpolateNumber=su,Xo.interpolateString=lu;var Qc=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g;Xo.interpolate=fu,Xo.interpolators=[function(n,t){var e=typeof t;return("string"===e?Va.has(t)||/^(#|rgb\(|hsl\()/.test(t)?au:lu:t instanceof G?au:"object"===e?Array.isArray(t)?hu:cu:su)(n,t)}],Xo.interpolateArray=hu;var ns=function(){return bt},ts=Xo.map({linear:ns,poly:xu,quad:function(){return du},cubic:function(){return mu},sin:function(){return Mu},exp:function(){return _u},circle:function(){return bu},elastic:wu,back:Su,bounce:function(){return ku}}),es=Xo.map({"in":bt,out:pu,"in-out":vu,"out-in":function(n){return vu(pu(n))}});Xo.ease=function(n){var t=n.indexOf("-"),e=t>=0?n.substring(0,t):n,r=t>=0?n.substring(t+1):"in";return e=ts.get(e)||ns,r=es.get(r)||bt,gu(r(e.apply(null,$o.call(arguments,1))))},Xo.interpolateHcl=Eu,Xo.interpolateHsl=Au,Xo.interpolateLab=Cu,Xo.interpolateRound=Nu,Xo.transform=function(n){var t=Wo.createElementNS(Xo.ns.prefix.svg,"g");return(Xo.transform=function(n){if(null!=n){t.setAttribute("transform",n);var e=t.transform.baseVal.consolidate()}return new Lu(e?e.matrix:rs)})(n)},Lu.prototype.toString=function(){return"translate("+this.translate+")rotate("+this.rotate+")skewX("+this.skew+")scale("+this.scale+")"};var rs={a:1,b:0,c:0,d:1,e:0,f:0};Xo.interpolateTransform=Ru,Xo.layout={},Xo.layout.bundle=function(){return function(n){for(var t=[],e=-1,r=n.length;++e<r;)t.push(Uu(n[e]));return t}},Xo.layout.chord=function(){function n(){var n,s,f,h,g,p={},v=[],d=Xo.range(i),m=[];for(e=[],r=[],n=0,h=-1;++h<i;){for(s=0,g=-1;++g<i;)s+=u[h][g];v.push(s),m.push(Xo.range(i)),n+=s}for(o&&d.sort(function(n,t){return o(v[n],v[t])}),a&&m.forEach(function(n,t){n.sort(function(n,e){return a(u[t][n],u[t][e])})}),n=(ka-l*i)/n,s=0,h=-1;++h<i;){for(f=s,g=-1;++g<i;){var y=d[h],x=m[y][g],M=u[y][x],_=s,b=s+=M*n;p[y+"-"+x]={index:y,subindex:x,startAngle:_,endAngle:b,value:M}}r[y]={index:y,startAngle:f,endAngle:s,value:(s-f)/n},s+=l}for(h=-1;++h<i;)for(g=h-1;++g<i;){var w=p[h+"-"+g],S=p[g+"-"+h];(w.value||S.value)&&e.push(w.value<S.value?{source:S,target:w}:{source:w,target:S})}c&&t()}function t(){e.sort(function(n,t){return c((n.source.value+n.target.value)/2,(t.source.value+t.target.value)/2)})}var e,r,u,i,o,a,c,s={},l=0;return s.matrix=function(n){return arguments.length?(i=(u=n)&&u.length,e=r=null,s):u},s.padding=function(n){return arguments.length?(l=n,e=r=null,s):l},s.sortGroups=function(n){return arguments.length?(o=n,e=r=null,s):o},s.sortSubgroups=function(n){return arguments.length?(a=n,e=null,s):a},s.sortChords=function(n){return arguments.length?(c=n,e&&t(),s):c},s.chords=function(){return e||n(),e},s.groups=function(){return r||n(),r},s},Xo.layout.force=function(){function n(n){return function(t,e,r,u){if(t.point!==n){var i=t.cx-n.x,o=t.cy-n.y,a=u-e,c=i*i+o*o;if(c>a*a/d){if(p>c){var s=t.charge/c;n.px-=i*s,n.py-=o*s}return!0}if(t.point&&c&&p>c){var s=t.pointCharge/c;n.px-=i*s,n.py-=o*s}}return!t.charge}}function t(n){n.px=Xo.event.x,n.py=Xo.event.y,a.resume()}var e,r,u,i,o,a={},c=Xo.dispatch("start","tick","end"),s=[1,1],l=.9,f=us,h=is,g=-30,p=os,v=.1,d=.64,m=[],y=[];return a.tick=function(){if((r*=.99)<.005)return c.end({type:"end",alpha:r=0}),!0;var t,e,a,f,h,p,d,x,M,_=m.length,b=y.length;for(e=0;b>e;++e)a=y[e],f=a.source,h=a.target,x=h.x-f.x,M=h.y-f.y,(p=x*x+M*M)&&(p=r*i[e]*((p=Math.sqrt(p))-u[e])/p,x*=p,M*=p,h.x-=x*(d=f.weight/(h.weight+f.weight)),h.y-=M*d,f.x+=x*(d=1-d),f.y+=M*d);if((d=r*v)&&(x=s[0]/2,M=s[1]/2,e=-1,d))for(;++e<_;)a=m[e],a.x+=(x-a.x)*d,a.y+=(M-a.y)*d;if(g)for(Zu(t=Xo.geom.quadtree(m),r,o),e=-1;++e<_;)(a=m[e]).fixed||t.visit(n(a));for(e=-1;++e<_;)a=m[e],a.fixed?(a.x=a.px,a.y=a.py):(a.x-=(a.px-(a.px=a.x))*l,a.y-=(a.py-(a.py=a.y))*l);c.tick({type:"tick",alpha:r})},a.nodes=function(n){return arguments.length?(m=n,a):m},a.links=function(n){return arguments.length?(y=n,a):y},a.size=function(n){return arguments.length?(s=n,a):s},a.linkDistance=function(n){return arguments.length?(f="function"==typeof n?n:+n,a):f},a.distance=a.linkDistance,a.linkStrength=function(n){return arguments.length?(h="function"==typeof n?n:+n,a):h},a.friction=function(n){return arguments.length?(l=+n,a):l},a.charge=function(n){return arguments.length?(g="function"==typeof n?n:+n,a):g},a.chargeDistance=function(n){return arguments.length?(p=n*n,a):Math.sqrt(p)},a.gravity=function(n){return arguments.length?(v=+n,a):v},a.theta=function(n){return arguments.length?(d=n*n,a):Math.sqrt(d)},a.alpha=function(n){return arguments.length?(n=+n,r?r=n>0?n:0:n>0&&(c.start({type:"start",alpha:r=n}),Xo.timer(a.tick)),a):r},a.start=function(){function n(n,r){if(!e){for(e=new Array(c),a=0;c>a;++a)e[a]=[];for(a=0;s>a;++a){var u=y[a];e[u.source.index].push(u.target),e[u.target.index].push(u.source)}}for(var i,o=e[t],a=-1,s=o.length;++a<s;)if(!isNaN(i=o[a][n]))return i;return Math.random()*r}var t,e,r,c=m.length,l=y.length,p=s[0],v=s[1];for(t=0;c>t;++t)(r=m[t]).index=t,r.weight=0;for(t=0;l>t;++t)r=y[t],"number"==typeof r.source&&(r.source=m[r.source]),"number"==typeof r.target&&(r.target=m[r.target]),++r.source.weight,++r.target.weight;for(t=0;c>t;++t)r=m[t],isNaN(r.x)&&(r.x=n("x",p)),isNaN(r.y)&&(r.y=n("y",v)),isNaN(r.px)&&(r.px=r.x),isNaN(r.py)&&(r.py=r.y);if(u=[],"function"==typeof f)for(t=0;l>t;++t)u[t]=+f.call(this,y[t],t);else for(t=0;l>t;++t)u[t]=f;if(i=[],"function"==typeof h)for(t=0;l>t;++t)i[t]=+h.call(this,y[t],t);else for(t=0;l>t;++t)i[t]=h;if(o=[],"function"==typeof g)for(t=0;c>t;++t)o[t]=+g.call(this,m[t],t);else for(t=0;c>t;++t)o[t]=g;return a.resume()},a.resume=function(){return a.alpha(.1)},a.stop=function(){return a.alpha(0)},a.drag=function(){return e||(e=Xo.behavior.drag().origin(bt).on("dragstart.force",Fu).on("drag.force",t).on("dragend.force",Ou)),arguments.length?(this.on("mouseover.force",Yu).on("mouseout.force",Iu).call(e),void 0):e},Xo.rebind(a,c,"on")};var us=20,is=1,os=1/0;Xo.layout.hierarchy=function(){function n(t,o,a){var c=u.call(e,t,o);if(t.depth=o,a.push(t),c&&(s=c.length)){for(var s,l,f=-1,h=t.children=new Array(s),g=0,p=o+1;++f<s;)l=h[f]=n(c[f],p,a),l.parent=t,g+=l.value;r&&h.sort(r),i&&(t.value=g)}else delete t.children,i&&(t.value=+i.call(e,t,o)||0);return t}function t(n,r){var u=n.children,o=0;if(u&&(a=u.length))for(var a,c=-1,s=r+1;++c<a;)o+=t(u[c],s);else i&&(o=+i.call(e,n,r)||0);return i&&(n.value=o),o}function e(t){var e=[];return n(t,0,e),e}var r=Bu,u=Xu,i=$u;return e.sort=function(n){return arguments.length?(r=n,e):r},e.children=function(n){return arguments.length?(u=n,e):u},e.value=function(n){return arguments.length?(i=n,e):i},e.revalue=function(n){return t(n,0),n},e},Xo.layout.partition=function(){function n(t,e,r,u){var i=t.children;if(t.x=e,t.y=t.depth*u,t.dx=r,t.dy=u,i&&(o=i.length)){var o,a,c,s=-1;for(r=t.value?r/t.value:0;++s<o;)n(a=i[s],e,c=a.value*r,u),e+=c}}function t(n){var e=n.children,r=0;if(e&&(u=e.length))for(var u,i=-1;++i<u;)r=Math.max(r,t(e[i]));return 1+r}function e(e,i){var o=r.call(this,e,i);return n(o[0],0,u[0],u[1]/t(o[0])),o}var r=Xo.layout.hierarchy(),u=[1,1];return e.size=function(n){return arguments.length?(u=n,e):u},Vu(e,r)},Xo.layout.pie=function(){function n(i){var o=i.map(function(e,r){return+t.call(n,e,r)}),a=+("function"==typeof r?r.apply(this,arguments):r),c=(("function"==typeof u?u.apply(this,arguments):u)-a)/Xo.sum(o),s=Xo.range(i.length);null!=e&&s.sort(e===as?function(n,t){return o[t]-o[n]}:function(n,t){return e(i[n],i[t])});var l=[];return s.forEach(function(n){var t;l[n]={data:i[n],value:t=o[n],startAngle:a,endAngle:a+=t*c}}),l}var t=Number,e=as,r=0,u=ka;return n.value=function(e){return arguments.length?(t=e,n):t},n.sort=function(t){return arguments.length?(e=t,n):e},n.startAngle=function(t){return arguments.length?(r=t,n):r},n.endAngle=function(t){return arguments.length?(u=t,n):u},n};var as={};Xo.layout.stack=function(){function n(a,c){var s=a.map(function(e,r){return t.call(n,e,r)}),l=s.map(function(t){return t.map(function(t,e){return[i.call(n,t,e),o.call(n,t,e)]})}),f=e.call(n,l,c);s=Xo.permute(s,f),l=Xo.permute(l,f);var h,g,p,v=r.call(n,l,c),d=s.length,m=s[0].length;for(g=0;m>g;++g)for(u.call(n,s[0][g],p=v[g],l[0][g][1]),h=1;d>h;++h)u.call(n,s[h][g],p+=l[h-1][g][1],l[h][g][1]);return a}var t=bt,e=Qu,r=ni,u=Ku,i=Ju,o=Gu;return n.values=function(e){return arguments.length?(t=e,n):t},n.order=function(t){return arguments.length?(e="function"==typeof t?t:cs.get(t)||Qu,n):e},n.offset=function(t){return arguments.length?(r="function"==typeof t?t:ss.get(t)||ni,n):r},n.x=function(t){return arguments.length?(i=t,n):i},n.y=function(t){return arguments.length?(o=t,n):o},n.out=function(t){return arguments.length?(u=t,n):u},n};var cs=Xo.map({"inside-out":function(n){var t,e,r=n.length,u=n.map(ti),i=n.map(ei),o=Xo.range(r).sort(function(n,t){return u[n]-u[t]}),a=0,c=0,s=[],l=[];for(t=0;r>t;++t)e=o[t],c>a?(a+=i[e],s.push(e)):(c+=i[e],l.push(e));return l.reverse().concat(s)},reverse:function(n){return Xo.range(n.length).reverse()},"default":Qu}),ss=Xo.map({silhouette:function(n){var t,e,r,u=n.length,i=n[0].length,o=[],a=0,c=[];for(e=0;i>e;++e){for(t=0,r=0;u>t;t++)r+=n[t][e][1];r>a&&(a=r),o.push(r)}for(e=0;i>e;++e)c[e]=(a-o[e])/2;return c},wiggle:function(n){var t,e,r,u,i,o,a,c,s,l=n.length,f=n[0],h=f.length,g=[];for(g[0]=c=s=0,e=1;h>e;++e){for(t=0,u=0;l>t;++t)u+=n[t][e][1];for(t=0,i=0,a=f[e][0]-f[e-1][0];l>t;++t){for(r=0,o=(n[t][e][1]-n[t][e-1][1])/(2*a);t>r;++r)o+=(n[r][e][1]-n[r][e-1][1])/a;i+=o*n[t][e][1]}g[e]=c-=u?i/u*a:0,s>c&&(s=c)}for(e=0;h>e;++e)g[e]-=s;return g},expand:function(n){var t,e,r,u=n.length,i=n[0].length,o=1/u,a=[];for(e=0;i>e;++e){for(t=0,r=0;u>t;t++)r+=n[t][e][1];if(r)for(t=0;u>t;t++)n[t][e][1]/=r;else for(t=0;u>t;t++)n[t][e][1]=o}for(e=0;i>e;++e)a[e]=0;return a},zero:ni});Xo.layout.histogram=function(){function n(n,i){for(var o,a,c=[],s=n.map(e,this),l=r.call(this,s,i),f=u.call(this,l,s,i),i=-1,h=s.length,g=f.length-1,p=t?1:1/h;++i<g;)o=c[i]=[],o.dx=f[i+1]-(o.x=f[i]),o.y=0;if(g>0)for(i=-1;++i<h;)a=s[i],a>=l[0]&&a<=l[1]&&(o=c[Xo.bisect(f,a,1,g)-1],o.y+=p,o.push(n[i]));return c}var t=!0,e=Number,r=oi,u=ui;return n.value=function(t){return arguments.length?(e=t,n):e},n.range=function(t){return arguments.length?(r=_t(t),n):r},n.bins=function(t){return arguments.length?(u="number"==typeof t?function(n){return ii(n,t)}:_t(t),n):u},n.frequency=function(e){return arguments.length?(t=!!e,n):t},n},Xo.layout.tree=function(){function n(n,i){function o(n,t){var r=n.children,u=n._tree;if(r&&(i=r.length)){for(var i,a,s,l=r[0],f=l,h=-1;++h<i;)s=r[h],o(s,a),f=c(s,a,f),a=s;vi(n);var g=.5*(l._tree.prelim+s._tree.prelim);t?(u.prelim=t._tree.prelim+e(n,t),u.mod=u.prelim-g):u.prelim=g}else t&&(u.prelim=t._tree.prelim+e(n,t))}function a(n,t){n.x=n._tree.prelim+t;var e=n.children;if(e&&(r=e.length)){var r,u=-1;for(t+=n._tree.mod;++u<r;)a(e[u],t)}}function c(n,t,r){if(t){for(var u,i=n,o=n,a=t,c=n.parent.children[0],s=i._tree.mod,l=o._tree.mod,f=a._tree.mod,h=c._tree.mod;a=si(a),i=ci(i),a&&i;)c=ci(c),o=si(o),o._tree.ancestor=n,u=a._tree.prelim+f-i._tree.prelim-s+e(a,i),u>0&&(di(mi(a,n,r),n,u),s+=u,l+=u),f+=a._tree.mod,s+=i._tree.mod,h+=c._tree.mod,l+=o._tree.mod;a&&!si(o)&&(o._tree.thread=a,o._tree.mod+=f-l),i&&!ci(c)&&(c._tree.thread=i,c._tree.mod+=s-h,r=n)}return r}var s=t.call(this,n,i),l=s[0];pi(l,function(n,t){n._tree={ancestor:n,prelim:0,mod:0,change:0,shift:0,number:t?t._tree.number+1:0}}),o(l),a(l,-l._tree.prelim);var f=li(l,hi),h=li(l,fi),g=li(l,gi),p=f.x-e(f,h)/2,v=h.x+e(h,f)/2,d=g.depth||1;return pi(l,u?function(n){n.x*=r[0],n.y=n.depth*r[1],delete n._tree}:function(n){n.x=(n.x-p)/(v-p)*r[0],n.y=n.depth/d*r[1],delete n._tree}),s}var t=Xo.layout.hierarchy().sort(null).value(null),e=ai,r=[1,1],u=!1;return n.separation=function(t){return arguments.length?(e=t,n):e},n.size=function(t){return arguments.length?(u=null==(r=t),n):u?null:r},n.nodeSize=function(t){return arguments.length?(u=null!=(r=t),n):u?r:null},Vu(n,t)},Xo.layout.pack=function(){function n(n,i){var o=e.call(this,n,i),a=o[0],c=u[0],s=u[1],l=null==t?Math.sqrt:"function"==typeof t?t:function(){return t};if(a.x=a.y=0,pi(a,function(n){n.r=+l(n.value)}),pi(a,bi),r){var f=r*(t?1:Math.max(2*a.r/c,2*a.r/s))/2;pi(a,function(n){n.r+=f}),pi(a,bi),pi(a,function(n){n.r-=f})}return ki(a,c/2,s/2,t?1:1/Math.max(2*a.r/c,2*a.r/s)),o}var t,e=Xo.layout.hierarchy().sort(yi),r=0,u=[1,1];return n.size=function(t){return arguments.length?(u=t,n):u},n.radius=function(e){return arguments.length?(t=null==e||"function"==typeof e?e:+e,n):t},n.padding=function(t){return arguments.length?(r=+t,n):r},Vu(n,e)},Xo.layout.cluster=function(){function n(n,i){var o,a=t.call(this,n,i),c=a[0],s=0;pi(c,function(n){var t=n.children;t&&t.length?(n.x=Ci(t),n.y=Ai(t)):(n.x=o?s+=e(n,o):0,n.y=0,o=n)});var l=Ni(c),f=Li(c),h=l.x-e(l,f)/2,g=f.x+e(f,l)/2;return pi(c,u?function(n){n.x=(n.x-c.x)*r[0],n.y=(c.y-n.y)*r[1]}:function(n){n.x=(n.x-h)/(g-h)*r[0],n.y=(1-(c.y?n.y/c.y:1))*r[1]}),a}var t=Xo.layout.hierarchy().sort(null).value(null),e=ai,r=[1,1],u=!1;return n.separation=function(t){return arguments.length?(e=t,n):e},n.size=function(t){return arguments.length?(u=null==(r=t),n):u?null:r},n.nodeSize=function(t){return arguments.length?(u=null!=(r=t),n):u?r:null},Vu(n,t)},Xo.layout.treemap=function(){function n(n,t){for(var e,r,u=-1,i=n.length;++u<i;)r=(e=n[u]).value*(0>t?0:t),e.area=isNaN(r)||0>=r?0:r}function t(e){var i=e.children;if(i&&i.length){var o,a,c,s=f(e),l=[],h=i.slice(),p=1/0,v="slice"===g?s.dx:"dice"===g?s.dy:"slice-dice"===g?1&e.depth?s.dy:s.dx:Math.min(s.dx,s.dy);for(n(h,s.dx*s.dy/e.value),l.area=0;(c=h.length)>0;)l.push(o=h[c-1]),l.area+=o.area,"squarify"!==g||(a=r(l,v))<=p?(h.pop(),p=a):(l.area-=l.pop().area,u(l,v,s,!1),v=Math.min(s.dx,s.dy),l.length=l.area=0,p=1/0);l.length&&(u(l,v,s,!0),l.length=l.area=0),i.forEach(t)}}function e(t){var r=t.children;if(r&&r.length){var i,o=f(t),a=r.slice(),c=[];for(n(a,o.dx*o.dy/t.value),c.area=0;i=a.pop();)c.push(i),c.area+=i.area,null!=i.z&&(u(c,i.z?o.dx:o.dy,o,!a.length),c.length=c.area=0);r.forEach(e)}}function r(n,t){for(var e,r=n.area,u=0,i=1/0,o=-1,a=n.length;++o<a;)(e=n[o].area)&&(i>e&&(i=e),e>u&&(u=e));return r*=r,t*=t,r?Math.max(t*u*p/r,r/(t*i*p)):1/0}function u(n,t,e,r){var u,i=-1,o=n.length,a=e.x,s=e.y,l=t?c(n.area/t):0;if(t==e.dx){for((r||l>e.dy)&&(l=e.dy);++i<o;)u=n[i],u.x=a,u.y=s,u.dy=l,a+=u.dx=Math.min(e.x+e.dx-a,l?c(u.area/l):0);u.z=!0,u.dx+=e.x+e.dx-a,e.y+=l,e.dy-=l}else{for((r||l>e.dx)&&(l=e.dx);++i<o;)u=n[i],u.x=a,u.y=s,u.dx=l,s+=u.dy=Math.min(e.y+e.dy-s,l?c(u.area/l):0);u.z=!1,u.dy+=e.y+e.dy-s,e.x+=l,e.dx-=l}}function i(r){var u=o||a(r),i=u[0];return i.x=0,i.y=0,i.dx=s[0],i.dy=s[1],o&&a.revalue(i),n([i],i.dx*i.dy/i.value),(o?e:t)(i),h&&(o=u),u}var o,a=Xo.layout.hierarchy(),c=Math.round,s=[1,1],l=null,f=Ti,h=!1,g="squarify",p=.5*(1+Math.sqrt(5));return i.size=function(n){return arguments.length?(s=n,i):s},i.padding=function(n){function t(t){var e=n.call(i,t,t.depth);return null==e?Ti(t):qi(t,"number"==typeof e?[e,e,e,e]:e)}function e(t){return qi(t,n)}if(!arguments.length)return l;var r;return f=null==(l=n)?Ti:"function"==(r=typeof n)?t:"number"===r?(n=[n,n,n,n],e):e,i},i.round=function(n){return arguments.length?(c=n?Math.round:Number,i):c!=Number},i.sticky=function(n){return arguments.length?(h=n,o=null,i):h},i.ratio=function(n){return arguments.length?(p=n,i):p},i.mode=function(n){return arguments.length?(g=n+"",i):g},Vu(i,a)},Xo.random={normal:function(n,t){var e=arguments.length;return 2>e&&(t=1),1>e&&(n=0),function(){var e,r,u;do e=2*Math.random()-1,r=2*Math.random()-1,u=e*e+r*r;while(!u||u>1);return n+t*e*Math.sqrt(-2*Math.log(u)/u)}},logNormal:function(){var n=Xo.random.normal.apply(Xo,arguments);return function(){return Math.exp(n())}},bates:function(n){var t=Xo.random.irwinHall(n);return function(){return t()/n}},irwinHall:function(n){return function(){for(var t=0,e=0;n>e;e++)t+=Math.random();return t}}},Xo.scale={};var ls={floor:bt,ceil:bt};Xo.scale.linear=function(){return Hi([0,1],[0,1],fu,!1)};var fs={s:1,g:1,p:1,r:1,e:1};Xo.scale.log=function(){return $i(Xo.scale.linear().domain([0,1]),10,!0,[1,10])};var hs=Xo.format(".0e"),gs={floor:function(n){return-Math.ceil(-n)},ceil:function(n){return-Math.floor(-n)}};Xo.scale.pow=function(){return Bi(Xo.scale.linear(),1,[0,1])},Xo.scale.sqrt=function(){return Xo.scale.pow().exponent(.5)},Xo.scale.ordinal=function(){return Ji([],{t:"range",a:[[]]})},Xo.scale.category10=function(){return Xo.scale.ordinal().range(ps)},Xo.scale.category20=function(){return Xo.scale.ordinal().range(vs)},Xo.scale.category20b=function(){return Xo.scale.ordinal().range(ds)},Xo.scale.category20c=function(){return Xo.scale.ordinal().range(ms)};var ps=[2062260,16744206,2924588,14034728,9725885,9197131,14907330,8355711,12369186,1556175].map(ht),vs=[2062260,11454440,16744206,16759672,2924588,10018698,14034728,16750742,9725885,12955861,9197131,12885140,14907330,16234194,8355711,13092807,12369186,14408589,1556175,10410725].map(ht),ds=[3750777,5395619,7040719,10264286,6519097,9216594,11915115,13556636,9202993,12426809,15186514,15190932,8666169,11356490,14049643,15177372,8077683,10834324,13528509,14589654].map(ht),ms=[3244733,7057110,10406625,13032431,15095053,16616764,16625259,16634018,3253076,7652470,10607003,13101504,7695281,10394312,12369372,14342891,6513507,9868950,12434877,14277081].map(ht);Xo.scale.quantile=function(){return Gi([],[])},Xo.scale.quantize=function(){return Ki(0,1,[0,1])},Xo.scale.threshold=function(){return Qi([.5],[0,1])},Xo.scale.identity=function(){return no([0,1])},Xo.svg={},Xo.svg.arc=function(){function n(){var n=t.apply(this,arguments),i=e.apply(this,arguments),o=r.apply(this,arguments)+ys,a=u.apply(this,arguments)+ys,c=(o>a&&(c=o,o=a,a=c),a-o),s=Sa>c?"0":"1",l=Math.cos(o),f=Math.sin(o),h=Math.cos(a),g=Math.sin(a);return c>=xs?n?"M0,"+i+"A"+i+","+i+" 0 1,1 0,"+-i+"A"+i+","+i+" 0 1,1 0,"+i+"M0,"+n+"A"+n+","+n+" 0 1,0 0,"+-n+"A"+n+","+n+" 0 1,0 0,"+n+"Z":"M0,"+i+"A"+i+","+i+" 0 1,1 0,"+-i+"A"+i+","+i+" 0 1,1 0,"+i+"Z":n?"M"+i*l+","+i*f+"A"+i+","+i+" 0 "+s+",1 "+i*h+","+i*g+"L"+n*h+","+n*g+"A"+n+","+n+" 0 "+s+",0 "+n*l+","+n*f+"Z":"M"+i*l+","+i*f+"A"+i+","+i+" 0 "+s+",1 "+i*h+","+i*g+"L0,0"+"Z"}var t=to,e=eo,r=ro,u=uo;return n.innerRadius=function(e){return arguments.length?(t=_t(e),n):t},n.outerRadius=function(t){return arguments.length?(e=_t(t),n):e},n.startAngle=function(t){return arguments.length?(r=_t(t),n):r},n.endAngle=function(t){return arguments.length?(u=_t(t),n):u},n.centroid=function(){var n=(t.apply(this,arguments)+e.apply(this,arguments))/2,i=(r.apply(this,arguments)+u.apply(this,arguments))/2+ys;return[Math.cos(i)*n,Math.sin(i)*n]},n};var ys=-Ea,xs=ka-Aa;Xo.svg.line=function(){return io(bt)};var Ms=Xo.map({linear:oo,"linear-closed":ao,step:co,"step-before":so,"step-after":lo,basis:mo,"basis-open":yo,"basis-closed":xo,bundle:Mo,cardinal:go,"cardinal-open":fo,"cardinal-closed":ho,monotone:Eo});Ms.forEach(function(n,t){t.key=n,t.closed=/-closed$/.test(n)});var _s=[0,2/3,1/3,0],bs=[0,1/3,2/3,0],ws=[0,1/6,2/3,1/6];Xo.svg.line.radial=function(){var n=io(Ao);return n.radius=n.x,delete n.x,n.angle=n.y,delete n.y,n},so.reverse=lo,lo.reverse=so,Xo.svg.area=function(){return Co(bt)},Xo.svg.area.radial=function(){var n=Co(Ao);return n.radius=n.x,delete n.x,n.innerRadius=n.x0,delete n.x0,n.outerRadius=n.x1,delete n.x1,n.angle=n.y,delete n.y,n.startAngle=n.y0,delete n.y0,n.endAngle=n.y1,delete n.y1,n},Xo.svg.chord=function(){function n(n,a){var c=t(this,i,n,a),s=t(this,o,n,a);return"M"+c.p0+r(c.r,c.p1,c.a1-c.a0)+(e(c,s)?u(c.r,c.p1,c.r,c.p0):u(c.r,c.p1,s.r,s.p0)+r(s.r,s.p1,s.a1-s.a0)+u(s.r,s.p1,c.r,c.p0))+"Z"}function t(n,t,e,r){var u=t.call(n,e,r),i=a.call(n,u,r),o=c.call(n,u,r)+ys,l=s.call(n,u,r)+ys;return{r:i,a0:o,a1:l,p0:[i*Math.cos(o),i*Math.sin(o)],p1:[i*Math.cos(l),i*Math.sin(l)]}}function e(n,t){return n.a0==t.a0&&n.a1==t.a1}function r(n,t,e){return"A"+n+","+n+" 0 "+ +(e>Sa)+",1 "+t}function u(n,t,e,r){return"Q 0,0 "+r}var i=hr,o=gr,a=No,c=ro,s=uo;return n.radius=function(t){return arguments.length?(a=_t(t),n):a},n.source=function(t){return arguments.length?(i=_t(t),n):i},n.target=function(t){return arguments.length?(o=_t(t),n):o},n.startAngle=function(t){return arguments.length?(c=_t(t),n):c},n.endAngle=function(t){return arguments.length?(s=_t(t),n):s},n},Xo.svg.diagonal=function(){function n(n,u){var i=t.call(this,n,u),o=e.call(this,n,u),a=(i.y+o.y)/2,c=[i,{x:i.x,y:a},{x:o.x,y:a},o];return c=c.map(r),"M"+c[0]+"C"+c[1]+" "+c[2]+" "+c[3]}var t=hr,e=gr,r=Lo;return n.source=function(e){return arguments.length?(t=_t(e),n):t},n.target=function(t){return arguments.length?(e=_t(t),n):e},n.projection=function(t){return arguments.length?(r=t,n):r},n},Xo.svg.diagonal.radial=function(){var n=Xo.svg.diagonal(),t=Lo,e=n.projection;return n.projection=function(n){return arguments.length?e(To(t=n)):t},n},Xo.svg.symbol=function(){function n(n,r){return(Ss.get(t.call(this,n,r))||Ro)(e.call(this,n,r))}var t=zo,e=qo;return n.type=function(e){return arguments.length?(t=_t(e),n):t},n.size=function(t){return arguments.length?(e=_t(t),n):e},n};var Ss=Xo.map({circle:Ro,cross:function(n){var t=Math.sqrt(n/5)/2;return"M"+-3*t+","+-t+"H"+-t+"V"+-3*t+"H"+t+"V"+-t+"H"+3*t+"V"+t+"H"+t+"V"+3*t+"H"+-t+"V"+t+"H"+-3*t+"Z"},diamond:function(n){var t=Math.sqrt(n/(2*Cs)),e=t*Cs;return"M0,"+-t+"L"+e+",0"+" 0,"+t+" "+-e+",0"+"Z"},square:function(n){var t=Math.sqrt(n)/2;return"M"+-t+","+-t+"L"+t+","+-t+" "+t+","+t+" "+-t+","+t+"Z"},"triangle-down":function(n){var t=Math.sqrt(n/As),e=t*As/2;return"M0,"+e+"L"+t+","+-e+" "+-t+","+-e+"Z"},"triangle-up":function(n){var t=Math.sqrt(n/As),e=t*As/2;return"M0,"+-e+"L"+t+","+e+" "+-t+","+e+"Z"}});Xo.svg.symbolTypes=Ss.keys();var ks,Es,As=Math.sqrt(3),Cs=Math.tan(30*Na),Ns=[],Ls=0;Ns.call=da.call,Ns.empty=da.empty,Ns.node=da.node,Ns.size=da.size,Xo.transition=function(n){return arguments.length?ks?n.transition():n:xa.transition()},Xo.transition.prototype=Ns,Ns.select=function(n){var t,e,r,u=this.id,i=[];n=M(n);for(var o=-1,a=this.length;++o<a;){i.push(t=[]);for(var c=this[o],s=-1,l=c.length;++s<l;)(r=c[s])&&(e=n.call(r,r.__data__,s,o))?("__data__"in r&&(e.__data__=r.__data__),jo(e,s,u,r.__transition__[u]),t.push(e)):t.push(null)}return Do(i,u)},Ns.selectAll=function(n){var t,e,r,u,i,o=this.id,a=[];n=_(n);for(var c=-1,s=this.length;++c<s;)for(var l=this[c],f=-1,h=l.length;++f<h;)if(r=l[f]){i=r.__transition__[o],e=n.call(r,r.__data__,f,c),a.push(t=[]);for(var g=-1,p=e.length;++g<p;)(u=e[g])&&jo(u,g,o,i),t.push(u)}return Do(a,o)},Ns.filter=function(n){var t,e,r,u=[];"function"!=typeof n&&(n=q(n));for(var i=0,o=this.length;o>i;i++){u.push(t=[]);for(var e=this[i],a=0,c=e.length;c>a;a++)(r=e[a])&&n.call(r,r.__data__,a,i)&&t.push(r)}return Do(u,this.id)},Ns.tween=function(n,t){var e=this.id;return arguments.length<2?this.node().__transition__[e].tween.get(n):R(this,null==t?function(t){t.__transition__[e].tween.remove(n)}:function(r){r.__transition__[e].tween.set(n,t)})},Ns.attr=function(n,t){function e(){this.removeAttribute(a)}function r(){this.removeAttributeNS(a.space,a.local)}function u(n){return null==n?e:(n+="",function(){var t,e=this.getAttribute(a);return e!==n&&(t=o(e,n),function(n){this.setAttribute(a,t(n))})})}function i(n){return null==n?r:(n+="",function(){var t,e=this.getAttributeNS(a.space,a.local);return e!==n&&(t=o(e,n),function(n){this.setAttributeNS(a.space,a.local,t(n))})})}if(arguments.length<2){for(t in n)this.attr(t,n[t]);return this}var o="transform"==n?Ru:fu,a=Xo.ns.qualify(n);return Po(this,"attr."+n,t,a.local?i:u)},Ns.attrTween=function(n,t){function e(n,e){var r=t.call(this,n,e,this.getAttribute(u));return r&&function(n){this.setAttribute(u,r(n))}}function r(n,e){var r=t.call(this,n,e,this.getAttributeNS(u.space,u.local));return r&&function(n){this.setAttributeNS(u.space,u.local,r(n))}}var u=Xo.ns.qualify(n);return this.tween("attr."+n,u.local?r:e)},Ns.style=function(n,t,e){function r(){this.style.removeProperty(n)}function u(t){return null==t?r:(t+="",function(){var r,u=Go.getComputedStyle(this,null).getPropertyValue(n);return u!==t&&(r=fu(u,t),function(t){this.style.setProperty(n,r(t),e)})})}var i=arguments.length;if(3>i){if("string"!=typeof n){2>i&&(t="");for(e in n)this.style(e,n[e],t);return this}e=""}return Po(this,"style."+n,t,u)},Ns.styleTween=function(n,t,e){function r(r,u){var i=t.call(this,r,u,Go.getComputedStyle(this,null).getPropertyValue(n));return i&&function(t){this.style.setProperty(n,i(t),e)}}return arguments.length<3&&(e=""),this.tween("style."+n,r)},Ns.text=function(n){return Po(this,"text",n,Uo)},Ns.remove=function(){return this.each("end.transition",function(){var n;this.__transition__.count<2&&(n=this.parentNode)&&n.removeChild(this)})},Ns.ease=function(n){var t=this.id;return arguments.length<1?this.node().__transition__[t].ease:("function"!=typeof n&&(n=Xo.ease.apply(Xo,arguments)),R(this,function(e){e.__transition__[t].ease=n}))},Ns.delay=function(n){var t=this.id;return R(this,"function"==typeof n?function(e,r,u){e.__transition__[t].delay=+n.call(e,e.__data__,r,u)}:(n=+n,function(e){e.__transition__[t].delay=n}))},Ns.duration=function(n){var t=this.id;return R(this,"function"==typeof n?function(e,r,u){e.__transition__[t].duration=Math.max(1,n.call(e,e.__data__,r,u))}:(n=Math.max(1,n),function(e){e.__transition__[t].duration=n}))},Ns.each=function(n,t){var e=this.id;if(arguments.length<2){var r=Es,u=ks;ks=e,R(this,function(t,r,u){Es=t.__transition__[e],n.call(t,t.__data__,r,u)}),Es=r,ks=u}else R(this,function(r){var u=r.__transition__[e];(u.event||(u.event=Xo.dispatch("start","end"))).on(n,t)});return this},Ns.transition=function(){for(var n,t,e,r,u=this.id,i=++Ls,o=[],a=0,c=this.length;c>a;a++){o.push(n=[]);for(var t=this[a],s=0,l=t.length;l>s;s++)(e=t[s])&&(r=Object.create(e.__transition__[u]),r.delay+=r.duration,jo(e,s,i,r)),n.push(e)}return Do(o,i)},Xo.svg.axis=function(){function n(n){n.each(function(){var n,s=Xo.select(this),l=this.__chart__||e,f=this.__chart__=e.copy(),h=null==c?f.ticks?f.ticks.apply(f,a):f.domain():c,g=null==t?f.tickFormat?f.tickFormat.apply(f,a):bt:t,p=s.selectAll(".tick").data(h,f),v=p.enter().insert("g",".domain").attr("class","tick").style("opacity",Aa),d=Xo.transition(p.exit()).style("opacity",Aa).remove(),m=Xo.transition(p).style("opacity",1),y=Ri(f),x=s.selectAll(".domain").data([0]),M=(x.enter().append("path").attr("class","domain"),Xo.transition(x));v.append("line"),v.append("text");var _=v.select("line"),b=m.select("line"),w=p.select("text").text(g),S=v.select("text"),k=m.select("text");switch(r){case"bottom":n=Ho,_.attr("y2",u),S.attr("y",Math.max(u,0)+o),b.attr("x2",0).attr("y2",u),k.attr("x",0).attr("y",Math.max(u,0)+o),w.attr("dy",".71em").style("text-anchor","middle"),M.attr("d","M"+y[0]+","+i+"V0H"+y[1]+"V"+i);break;case"top":n=Ho,_.attr("y2",-u),S.attr("y",-(Math.max(u,0)+o)),b.attr("x2",0).attr("y2",-u),k.attr("x",0).attr("y",-(Math.max(u,0)+o)),w.attr("dy","0em").style("text-anchor","middle"),M.attr("d","M"+y[0]+","+-i+"V0H"+y[1]+"V"+-i);break;case"left":n=Fo,_.attr("x2",-u),S.attr("x",-(Math.max(u,0)+o)),b.attr("x2",-u).attr("y2",0),k.attr("x",-(Math.max(u,0)+o)).attr("y",0),w.attr("dy",".32em").style("text-anchor","end"),M.attr("d","M"+-i+","+y[0]+"H0V"+y[1]+"H"+-i);break;case"right":n=Fo,_.attr("x2",u),S.attr("x",Math.max(u,0)+o),b.attr("x2",u).attr("y2",0),k.attr("x",Math.max(u,0)+o).attr("y",0),w.attr("dy",".32em").style("text-anchor","start"),M.attr("d","M"+i+","+y[0]+"H0V"+y[1]+"H"+i)}if(f.rangeBand){var E=f,A=E.rangeBand()/2;l=f=function(n){return E(n)+A}}else l.rangeBand?l=f:d.call(n,f);v.call(n,l),m.call(n,f)})}var t,e=Xo.scale.linear(),r=Ts,u=6,i=6,o=3,a=[10],c=null;return n.scale=function(t){return arguments.length?(e=t,n):e},n.orient=function(t){return arguments.length?(r=t in qs?t+"":Ts,n):r},n.ticks=function(){return arguments.length?(a=arguments,n):a},n.tickValues=function(t){return arguments.length?(c=t,n):c},n.tickFormat=function(e){return arguments.length?(t=e,n):t},n.tickSize=function(t){var e=arguments.length;return e?(u=+t,i=+arguments[e-1],n):u},n.innerTickSize=function(t){return arguments.length?(u=+t,n):u},n.outerTickSize=function(t){return arguments.length?(i=+t,n):i},n.tickPadding=function(t){return arguments.length?(o=+t,n):o},n.tickSubdivide=function(){return arguments.length&&n},n};var Ts="bottom",qs={top:1,right:1,bottom:1,left:1};Xo.svg.brush=function(){function n(i){i.each(function(){var i=Xo.select(this).style("pointer-events","all").style("-webkit-tap-highlight-color","rgba(0,0,0,0)").on("mousedown.brush",u).on("touchstart.brush",u),o=i.selectAll(".background").data([0]);o.enter().append("rect").attr("class","background").style("visibility","hidden").style("cursor","crosshair"),i.selectAll(".extent").data([0]).enter().append("rect").attr("class","extent").style("cursor","move");var a=i.selectAll(".resize").data(p,bt);a.exit().remove(),a.enter().append("g").attr("class",function(n){return"resize "+n}).style("cursor",function(n){return zs[n]}).append("rect").attr("x",function(n){return/[ew]$/.test(n)?-3:null}).attr("y",function(n){return/^[ns]/.test(n)?-3:null}).attr("width",6).attr("height",6).style("visibility","hidden"),a.style("display",n.empty()?"none":null);var l,f=Xo.transition(i),h=Xo.transition(o);c&&(l=Ri(c),h.attr("x",l[0]).attr("width",l[1]-l[0]),e(f)),s&&(l=Ri(s),h.attr("y",l[0]).attr("height",l[1]-l[0]),r(f)),t(f)})}function t(n){n.selectAll(".resize").attr("transform",function(n){return"translate("+l[+/e$/.test(n)]+","+f[+/^s/.test(n)]+")"})}function e(n){n.select(".extent").attr("x",l[0]),n.selectAll(".extent,.n>rect,.s>rect").attr("width",l[1]-l[0])}function r(n){n.select(".extent").attr("y",f[0]),n.selectAll(".extent,.e>rect,.w>rect").attr("height",f[1]-f[0])}function u(){function u(){32==Xo.event.keyCode&&(C||(x=null,L[0]-=l[1],L[1]-=f[1],C=2),d())}function p(){32==Xo.event.keyCode&&2==C&&(L[0]+=l[1],L[1]+=f[1],C=0,d())}function v(){var n=Xo.mouse(_),u=!1;M&&(n[0]+=M[0],n[1]+=M[1]),C||(Xo.event.altKey?(x||(x=[(l[0]+l[1])/2,(f[0]+f[1])/2]),L[0]=l[+(n[0]<x[0])],L[1]=f[+(n[1]<x[1])]):x=null),E&&m(n,c,0)&&(e(S),u=!0),A&&m(n,s,1)&&(r(S),u=!0),u&&(t(S),w({type:"brush",mode:C?"move":"resize"}))}function m(n,t,e){var r,u,a=Ri(t),c=a[0],s=a[1],p=L[e],v=e?f:l,d=v[1]-v[0];return C&&(c-=p,s-=d+p),r=(e?g:h)?Math.max(c,Math.min(s,n[e])):n[e],C?u=(r+=p)+d:(x&&(p=Math.max(c,Math.min(s,2*x[e]-r))),r>p?(u=r,r=p):u=p),v[0]!=r||v[1]!=u?(e?o=null:i=null,v[0]=r,v[1]=u,!0):void 0}function y(){v(),S.style("pointer-events","all").selectAll(".resize").style("display",n.empty()?"none":null),Xo.select("body").style("cursor",null),T.on("mousemove.brush",null).on("mouseup.brush",null).on("touchmove.brush",null).on("touchend.brush",null).on("keydown.brush",null).on("keyup.brush",null),N(),w({type:"brushend"})}var x,M,_=this,b=Xo.select(Xo.event.target),w=a.of(_,arguments),S=Xo.select(_),k=b.datum(),E=!/^(n|s)$/.test(k)&&c,A=!/^(e|w)$/.test(k)&&s,C=b.classed("extent"),N=O(),L=Xo.mouse(_),T=Xo.select(Go).on("keydown.brush",u).on("keyup.brush",p);if(Xo.event.changedTouches?T.on("touchmove.brush",v).on("touchend.brush",y):T.on("mousemove.brush",v).on("mouseup.brush",y),S.interrupt().selectAll("*").interrupt(),C)L[0]=l[0]-L[0],L[1]=f[0]-L[1];else if(k){var q=+/w$/.test(k),z=+/^n/.test(k);M=[l[1-q]-L[0],f[1-z]-L[1]],L[0]=l[q],L[1]=f[z]}else Xo.event.altKey&&(x=L.slice());S.style("pointer-events","none").selectAll(".resize").style("display",null),Xo.select("body").style("cursor",b.style("cursor")),w({type:"brushstart"}),v()}var i,o,a=y(n,"brushstart","brush","brushend"),c=null,s=null,l=[0,0],f=[0,0],h=!0,g=!0,p=Rs[0];return n.event=function(n){n.each(function(){var n=a.of(this,arguments),t={x:l,y:f,i:i,j:o},e=this.__chart__||t;this.__chart__=t,ks?Xo.select(this).transition().each("start.brush",function(){i=e.i,o=e.j,l=e.x,f=e.y,n({type:"brushstart"})}).tween("brush:brush",function(){var e=hu(l,t.x),r=hu(f,t.y);return i=o=null,function(u){l=t.x=e(u),f=t.y=r(u),n({type:"brush",mode:"resize"})}}).each("end.brush",function(){i=t.i,o=t.j,n({type:"brush",mode:"resize"}),n({type:"brushend"})}):(n({type:"brushstart"}),n({type:"brush",mode:"resize"}),n({type:"brushend"}))})},n.x=function(t){return arguments.length?(c=t,p=Rs[!c<<1|!s],n):c},n.y=function(t){return arguments.length?(s=t,p=Rs[!c<<1|!s],n):s},n.clamp=function(t){return arguments.length?(c&&s?(h=!!t[0],g=!!t[1]):c?h=!!t:s&&(g=!!t),n):c&&s?[h,g]:c?h:s?g:null},n.extent=function(t){var e,r,u,a,h;return arguments.length?(c&&(e=t[0],r=t[1],s&&(e=e[0],r=r[0]),i=[e,r],c.invert&&(e=c(e),r=c(r)),e>r&&(h=e,e=r,r=h),(e!=l[0]||r!=l[1])&&(l=[e,r])),s&&(u=t[0],a=t[1],c&&(u=u[1],a=a[1]),o=[u,a],s.invert&&(u=s(u),a=s(a)),u>a&&(h=u,u=a,a=h),(u!=f[0]||a!=f[1])&&(f=[u,a])),n):(c&&(i?(e=i[0],r=i[1]):(e=l[0],r=l[1],c.invert&&(e=c.invert(e),r=c.invert(r)),e>r&&(h=e,e=r,r=h))),s&&(o?(u=o[0],a=o[1]):(u=f[0],a=f[1],s.invert&&(u=s.invert(u),a=s.invert(a)),u>a&&(h=u,u=a,a=h))),c&&s?[[e,u],[r,a]]:c?[e,r]:s&&[u,a])},n.clear=function(){return n.empty()||(l=[0,0],f=[0,0],i=o=null),n},n.empty=function(){return!!c&&l[0]==l[1]||!!s&&f[0]==f[1]},Xo.rebind(n,a,"on")};var zs={n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},Rs=[["n","e","s","w","nw","ne","se","sw"],["e","w"],["n","s"],[]],Ds=tc.format=ac.timeFormat,Ps=Ds.utc,Us=Ps("%Y-%m-%dT%H:%M:%S.%LZ");Ds.iso=Date.prototype.toISOString&&+new Date("2000-01-01T00:00:00.000Z")?Oo:Us,Oo.parse=function(n){var t=new Date(n);return isNaN(t)?null:t},Oo.toString=Us.toString,tc.second=Rt(function(n){return new ec(1e3*Math.floor(n/1e3))},function(n,t){n.setTime(n.getTime()+1e3*Math.floor(t))},function(n){return n.getSeconds()}),tc.seconds=tc.second.range,tc.seconds.utc=tc.second.utc.range,tc.minute=Rt(function(n){return new ec(6e4*Math.floor(n/6e4))},function(n,t){n.setTime(n.getTime()+6e4*Math.floor(t))},function(n){return n.getMinutes()}),tc.minutes=tc.minute.range,tc.minutes.utc=tc.minute.utc.range,tc.hour=Rt(function(n){var t=n.getTimezoneOffset()/60;return new ec(36e5*(Math.floor(n/36e5-t)+t))},function(n,t){n.setTime(n.getTime()+36e5*Math.floor(t))},function(n){return n.getHours()}),tc.hours=tc.hour.range,tc.hours.utc=tc.hour.utc.range,tc.month=Rt(function(n){return n=tc.day(n),n.setDate(1),n},function(n,t){n.setMonth(n.getMonth()+t)},function(n){return n.getMonth()}),tc.months=tc.month.range,tc.months.utc=tc.month.utc.range;var js=[1e3,5e3,15e3,3e4,6e4,3e5,9e5,18e5,36e5,108e5,216e5,432e5,864e5,1728e5,6048e5,2592e6,7776e6,31536e6],Hs=[[tc.second,1],[tc.second,5],[tc.second,15],[tc.second,30],[tc.minute,1],[tc.minute,5],[tc.minute,15],[tc.minute,30],[tc.hour,1],[tc.hour,3],[tc.hour,6],[tc.hour,12],[tc.day,1],[tc.day,2],[tc.week,1],[tc.month,1],[tc.month,3],[tc.year,1]],Fs=Ds.multi([[".%L",function(n){return n.getMilliseconds()}],[":%S",function(n){return n.getSeconds()}],["%I:%M",function(n){return n.getMinutes()}],["%I %p",function(n){return n.getHours()}],["%a %d",function(n){return n.getDay()&&1!=n.getDate()}],["%b %d",function(n){return 1!=n.getDate()}],["%B",function(n){return n.getMonth()}],["%Y",be]]),Os={range:function(n,t,e){return Xo.range(Math.ceil(n/e)*e,+t,e).map(Io)},floor:bt,ceil:bt};Hs.year=tc.year,tc.scale=function(){return Yo(Xo.scale.linear(),Hs,Fs)};var Ys=Hs.map(function(n){return[n[0].utc,n[1]]}),Is=Ps.multi([[".%L",function(n){return n.getUTCMilliseconds()}],[":%S",function(n){return n.getUTCSeconds()}],["%I:%M",function(n){return n.getUTCMinutes()}],["%I %p",function(n){return n.getUTCHours()}],["%a %d",function(n){return n.getUTCDay()&&1!=n.getUTCDate()}],["%b %d",function(n){return 1!=n.getUTCDate()}],["%B",function(n){return n.getUTCMonth()}],["%Y",be]]);Ys.year=tc.year.utc,tc.scale.utc=function(){return Yo(Xo.scale.linear(),Ys,Is)},Xo.text=wt(function(n){return n.responseText}),Xo.json=function(n,t){return St(n,"application/json",Zo,t)},Xo.html=function(n,t){return St(n,"text/html",Vo,t)},Xo.xml=wt(function(n){return n.responseXML}),"function"==typeof define&&define.amd?define(Xo):"object"==typeof module&&module.exports?module.exports=Xo:this.d3=Xo}();'use strict';(function(window){window.define=undefined;}).call(this,this);'use strict';tr.exportTo('tr.ui.b',function(){const DataSeriesEnableChangeEventType='data-series-enabled-change';const THIS_DOC=document.currentScript.ownerDocument;const svgNS='http://www.w3.org/2000/svg';const ColorScheme=tr.b.ColorScheme;function getColorOfKey(key,selected){let id=ColorScheme.getColorIdForGeneralPurposeString(key);if(selected){id+=ColorScheme.properties.brightenedOffsets[0];}
return ColorScheme.colorsAsStrings[id];}
function getSVGTextSize(parentNode,text,opt_callback,opt_this){const textNode=document.createElementNS('http://www.w3.org/2000/svg','text');textNode.setAttributeNS(null,'x',0);textNode.setAttributeNS(null,'y',0);textNode.setAttributeNS(null,'fill','black');textNode.appendChild(document.createTextNode(text));parentNode.appendChild(textNode);if(opt_callback){opt_callback.call(opt_this||parentNode,textNode);}
const width=textNode.getComputedTextLength();const height=textNode.getBBox().height;parentNode.removeChild(textNode);return{width,height};}
function DataSeries(key){this.key_=key;this.target_=undefined;this.title_='';this.optional_=false;this.enabled_=true;this.color_=getColorOfKey(key,false);this.highlightedColor_=getColorOfKey(key,true);}
DataSeries.prototype={get key(){return this.key_;},get title(){return this.title_;},set title(t){this.title_=t;},get color(){return this.color_;},set color(c){this.color_=c;},get highlightedColor(){return this.highlightedColor_;},set highlightedColor(c){this.highlightedColor_=c;},get optional(){return this.optional_;},set optional(optional){this.optional_=optional;},get enabled(){return this.enabled_;},set enabled(enabled){if(!this.optional&&!enabled){this.optional=true;}
this.enabled_=enabled;},get target(){return this.target_;},set target(t){this.target_=t;}};const ChartBase=tr.ui.b.define('svg',undefined,svgNS);ChartBase.prototype={__proto__:HTMLUnknownElement.prototype,getDataSeries(key){if(!this.seriesByKey_.has(key)){this.seriesByKey_.set(key,new DataSeries(key));}
return this.seriesByKey_.get(key);},decorate(){Polymer.dom(this).classList.add('chart-base');this.chartTitle_=undefined;this.seriesByKey_=new Map();this.graphWidth_=undefined;this.graphHeight_=undefined;this.margin={top:0,right:0,bottom:0,left:0,};this.hideLegend_=false;const template=Polymer.dom(THIS_DOC).querySelector('#chart-base-template');const svgEl=Polymer.dom(template.content).querySelector('svg');for(let i=0;i<Polymer.dom(svgEl).children.length;i++){Polymer.dom(this).appendChild(Polymer.dom(svgEl.children[i]).cloneNode(true));}
this.addEventListener(DataSeriesEnableChangeEventType,this.onDataSeriesEnableChange_.bind(this));},get hideLegend(){return this.hideLegend_;},set hideLegend(h){this.hideLegend_=h;this.updateContents_();},isSeriesEnabled(key){return this.getDataSeries(key).enabled;},onDataSeriesEnableChange_(event){this.getDataSeries(event.key).enabled=event.enabled;this.updateContents_();},get chartTitle(){return this.chartTitle_;},set chartTitle(chartTitle){this.chartTitle_=chartTitle;this.updateContents_();},get chartAreaElement(){return Polymer.dom(this).querySelector('#chart-area');},get graphWidth(){if(this.graphWidth_===undefined)return this.defaultGraphWidth;return this.graphWidth_;},set graphWidth(width){this.graphWidth_=width;this.updateContents_();},get defaultGraphWidth(){return 0;},get graphHeight(){if(this.graphHeight_===undefined)return this.defaultGraphHeight;return this.graphHeight_;},set graphHeight(height){this.graphHeight_=height;this.updateContents_();},get defaultGraphHeight(){return 0;},get totalWidth(){return this.margin.left+this.graphWidth+this.margin.right;},get totalHeight(){return this.margin.top+this.graphHeight+this.margin.bottom;},updateMargins_(){const legendSize=this.computeLegendSize_();this.margin.right=Math.max(this.margin.right,legendSize.width);this.margin.bottom=Math.max(this.margin.bottom,legendSize.height-this.graphHeight);if(this.chartTitle_){const titleSize=getSVGTextSize(this,this.chartTitle_,textNode=>{textNode.style.fontSize='16pt';});this.margin.top=Math.max(this.margin.top,titleSize.height+15);const horizontalOverhangPx=(titleSize.width-this.graphWidth)/2;this.margin.left=Math.max(this.margin.left,horizontalOverhangPx);this.margin.right=Math.max(this.margin.right,horizontalOverhangPx);}},computeLegendSize_(){let width=0;let height=0;if(this.hideLegend)return{width,height};for(const series of this.seriesByKey_.values()){const textSize=getSVGTextSize(this,series.key);width=Math.max(width,textSize.width+20);height+=textSize.height;}
return{width,height};},updateDimensions_(){const thisSel=d3.select(this);thisSel.attr('width',this.totalWidth);thisSel.attr('height',this.totalHeight);d3.select(this.chartAreaElement).attr('transform','translate('+this.margin.left+', '+this.margin.top+')');},updateContents_(){this.updateMargins_();this.updateDimensions_();this.updateTitle_();this.updateLegend_();},updateTitle_(){const titleSel=d3.select(this.chartAreaElement).select('#title');if(!this.chartTitle_){titleSel.style('display','none');return;}
titleSel.attr('transform','translate('+this.graphWidth*0.5+',-15)').style('display',undefined).style('text-anchor','middle').style('font-size','16pt').attr('class','title').attr('width',this.graphWidth).text(this.chartTitle_);},updateLegend_(){const chartAreaSel=d3.select(this.chartAreaElement);chartAreaSel.selectAll('.legend').remove();if(this.hideLegend)return;const series=[...this.seriesByKey_.values()].reverse();const legendEntriesSel=chartAreaSel.selectAll('.legend').data(series);legendEntriesSel.enter().append('foreignObject').attr('class','legend').attr('x',this.graphWidth+2).attr('width',this.margin.right).attr('height',18).attr('transform',(series,i)=>'translate(0,'+i*18+')').append('xhtml:body').style('margin',0).append('tr-ui-b-chart-legend-key').property('color',series=>((this.currentHighlightedLegendKey===series.key)?series.highlightedColor:series.color)).property('width',this.margin.right).property('target',series=>series.target).property('title',series=>series.title).property('optional',series=>series.optional).property('enabled',series=>series.enabled).text(series=>series.key);legendEntriesSel.exit().remove();},get highlightedLegendKey(){return this.highlightedLegendKey_;},set highlightedLegendKey(highlightedLegendKey){this.highlightedLegendKey_=highlightedLegendKey;this.updateHighlight_();},get currentHighlightedLegendKey(){if(this.tempHighlightedLegendKey_){return this.tempHighlightedLegendKey_;}
return this.highlightedLegendKey_;},pushTempHighlightedLegendKey(key){if(this.tempHighlightedLegendKey_){throw new Error('push cannot nest');}
this.tempHighlightedLegendKey_=key;this.updateHighlight_();},popTempHighlightedLegendKey(key){if(this.tempHighlightedLegendKey_!==key){throw new Error('pop cannot happen');}
this.tempHighlightedLegendKey_=undefined;this.updateHighlight_();},updateHighlight_(){const chartAreaSel=d3.select(this.chartAreaElement);const legendEntriesSel=chartAreaSel.selectAll('.legend');const getDataSeries=chart.getDataSeries.bind(chart);const currentHighlightedLegendKey=chart.currentHighlightedLegendKey;legendEntriesSel.each(function(key){const dataSeries=getDataSeries(key);if(key===currentHighlightedLegendKey){this.style.fill=dataSeries.highlightedColor;this.style.fontWeight='bold';}else{this.style.fill=dataSeries.color;this.style.fontWeight='';}});}};return{ChartBase,DataSeriesEnableChangeEventType,getColorOfKey,getSVGTextSize,};});'use strict';tr.exportTo('tr.ui.b',function(){const D3_Y_AXIS_WIDTH_PX=9;const D3_X_AXIS_HEIGHT_PX=23;function sanitizePower(x,defaultValue){if(!isNaN(x)&&isFinite(x)&&(x!==0))return x;return defaultValue;}
const ChartBase2D=tr.ui.b.define('chart-base-2d',tr.ui.b.ChartBase);ChartBase2D.prototype={__proto__:tr.ui.b.ChartBase.prototype,decorate(){super.decorate();Polymer.dom(this).classList.add('chart-base-2d');this.xScale_=d3.scale.linear();this.yScale_=d3.scale.linear();this.isYLogScale_=false;this.yLogScaleMin_=undefined;this.autoDataRange_=new tr.b.math.Range();this.overrideDataRange_=undefined;this.hideXAxis_=false;this.hideYAxis_=false;this.data_=[];this.xAxisLabel_='';this.yAxisLabel_='';this.textHeightPx_=0;d3.select(this.chartAreaElement).append('g').attr('id','brushes');d3.select(this.chartAreaElement).append('g').attr('id','series');this.addEventListener('mousedown',this.onMouseDown_.bind(this));},get xAxisLabel(){return this.xAxisLabel_;},set xAxisLabel(label){this.xAxisLabel_=label;},get yAxisLabel(){return this.yAxisLabel_;},set yAxisLabel(label){this.yAxisLabel_=label;},get hideXAxis(){return this.hideXAxis_;},set hideXAxis(h){this.hideXAxis_=h;this.updateContents_();},get hideYAxis(){return this.hideYAxis_;},set hideYAxis(h){this.hideYAxis_=h;this.updateContents_();},get data(){return this.data_;},set data(data){if(data===undefined){throw new Error('data must be an Array');}
this.data_=data;this.updateSeriesKeys_();this.updateDataRange_();this.updateContents_();},set isYLogScale(logScale){if(logScale){this.yScale_=d3.scale.log(10);}else{this.yScale_=d3.scale.linear();}
this.isYLogScale_=logScale;},getYScaleMin_(){return this.isYLogScale_?this.yLogScaleMin_:0;},getYScaleDomain_(minValue,maxValue){if(this.overrideDataRange_!==undefined){return[this.dataRange.min,this.dataRange.max];}
if(this.isYLogScale_){return[this.getYScaleMin_(),maxValue];}
return[Math.min(minValue,this.getYScaleMin_()),maxValue];},getSampleWidth_(data,index,leftSide){let leftIndex;let rightIndex;if(leftSide){leftIndex=Math.max(index-1,0);rightIndex=index;}else{leftIndex=index;rightIndex=Math.min(index+1,data.length-1);}
const leftWidth=this.getXForDatum_(data[index],index)-
this.getXForDatum_(data[leftIndex],leftIndex);const rightWidth=this.getXForDatum_(data[rightIndex],rightIndex)-
this.getXForDatum_(data[index],index);return tr.b.math.Statistics.mean([leftWidth,rightWidth]);},updateSeriesKeys_(){this.data_.forEach(function(datum){Object.keys(datum).forEach(function(key){if(this.isDatumFieldSeries_(key)){this.getDataSeries(key);}},this);},this);},isDatumFieldSeries_(fieldName){return fieldName!=='x';},getXForDatum_(datum,index){return datum.x;},updateMargins_(){this.margin.left=this.hideYAxis?0:this.yAxisWidth;this.margin.bottom=this.hideXAxis?0:this.xAxisHeight;if(this.hideXAxis&&!this.hideYAxis){this.margin.bottom=10;}
if(this.hideYAxis&&!this.hideXAxis){this.margin.left=10;}
this.margin.top=this.hideYAxis?0:10;if(this.yAxisLabel){this.margin.top+=this.textHeightPx_;}
if(this.xAxisLabel){this.margin.right=Math.max(this.margin.right,16+tr.ui.b.getSVGTextSize(this,this.xAxisLabel).width);}
super.updateMargins_();},get xAxisHeight(){return D3_X_AXIS_HEIGHT_PX;},computeScaleTickWidth_(scale){if(this.data.length===0)return 0;let tickValues=scale.ticks();let format=scale.tickFormat();if(this.isYLogScale_){const enclosingPowers=this.dataRange.enclosingPowers();tickValues=[sanitizePower(enclosingPowers.min,1),sanitizePower(enclosingPowers.max,10),];format=v=>v.toString();}
return D3_Y_AXIS_WIDTH_PX+Math.max(tr.ui.b.getSVGTextSize(this,format(tickValues[0])).width,tr.ui.b.getSVGTextSize(this,format(tickValues[tickValues.length-1])).width);},get yAxisWidth(){return this.computeScaleTickWidth_(this.yScale_);},updateScales_(){if(this.data_.length===0)return;this.xScale_.range([0,this.graphWidth]);this.xScale_.domain(d3.extent(this.data_,this.getXForDatum_.bind(this)));this.yScale_.range([this.graphHeight,0]);this.yScale_.domain([this.dataRange.min,this.dataRange.max]);},updateBrushContents_(brushSel){brushSel.selectAll('*').remove();},updateXAxis_(xAxis){xAxis.selectAll('*').remove();xAxis[0][0].style.opacity=0;if(this.hideXAxis)return;this.drawXAxis_(xAxis);const label=xAxis.append('text').attr('class','label');this.drawXAxisTicks_(xAxis);this.drawXAxisLabel_(label);xAxis[0][0].style.opacity=1;},drawXAxis_(xAxis){xAxis.attr('transform','translate(0,'+this.graphHeight+')').call(d3.svg.axis().scale(this.xScale_).orient('bottom'));},drawXAxisLabel_(label){label.attr('x',this.graphWidth+16).attr('y',8).text(this.xAxisLabel);},drawXAxisTicks_(xAxis){let previousRight=undefined;xAxis.selectAll('.tick')[0].forEach(function(tick){const currentLeft=tick.transform.baseVal[0].matrix.e;if((previousRight===undefined)||(currentLeft>(previousRight+3))){const currentWidth=tick.getBBox().width;previousRight=currentLeft+currentWidth;}else{tick.style.opacity=0;}});},set overrideDataRange(range){this.overrideDataRange_=range;},get dataRange(){if(this.overrideDataRange_!==undefined){return this.overrideDataRange_;}
return this.autoDataRange_;},updateDataRange_(){if(this.overrideDataRange_!==undefined)return;const dataBySeriesKey=this.getDataBySeriesKey_();this.autoDataRange_.reset();for(const[series,values]of Object.entries(dataBySeriesKey)){for(let i=0;i<values.length;i++){this.autoDataRange_.addValue(values[i][series]);}}
this.yLogScaleMin_=undefined;if(this.autoDataRange_.min!==undefined){let minValue=this.autoDataRange_.min;if(minValue===0){minValue=1;}
const onePowerLess=tr.b.math.lesserPower(minValue/10);this.yLogScaleMin_=onePowerLess;}},updateYAxis_(yAxis){yAxis.selectAll('*').remove();yAxis[0][0].style.opacity=0;if(this.hideYAxis)return;this.drawYAxis_(yAxis);this.drawYAxisTicks_(yAxis);const label=yAxis.append('text').attr('class','label');this.drawYAxisLabel_(label);},drawYAxis_(yAxis){let axisModifier=d3.svg.axis().scale(this.yScale_).orient('left');if(this.isYLogScale_){if(this.yLogScaleMin_===undefined)return;const tickValues=[];const enclosingPowers=this.dataRange.enclosingPowers();const maxPower=sanitizePower(enclosingPowers.max,10);for(let power=sanitizePower(enclosingPowers.min,1);power<=maxPower;power*=10){tickValues.push(power);}
axisModifier=axisModifier.tickValues(tickValues).tickFormat(v=>v.toString());}
yAxis.call(axisModifier);},drawYAxisLabel_(label){const labelWidthPx=Math.ceil(tr.ui.b.getSVGTextSize(this.chartAreaElement,this.yAxisLabel).width);label.attr('x',-labelWidthPx).attr('y',-8).text(this.yAxisLabel);},drawYAxisTicks_(yAxis){let previousTop=undefined;yAxis.selectAll('.tick')[0].forEach(function(tick){const bbox=tick.getBBox();const currentTop=tick.transform.baseVal[0].matrix.f;const currentBottom=currentTop+bbox.height;if((previousTop===undefined)||(previousTop>(currentBottom+3))){previousTop=currentTop;}else{tick.style.opacity=0;}});yAxis[0][0].style.opacity=1;},updateContents_(){if(this.textHeightPx_===0){this.textHeightPx_=tr.ui.b.getSVGTextSize(this,'Ay').height;}
this.updateScales_();super.updateContents_();const chartAreaSel=d3.select(this.chartAreaElement);this.updateXAxis_(chartAreaSel.select('.x.axis'));this.updateYAxis_(chartAreaSel.select('.y.axis'));this.updateBrushContents_(chartAreaSel.select('#brushes'));this.updateDataContents_(chartAreaSel.select('#series'));},updateDataContents_(seriesSel){throw new Error('Not implemented');},getDataBySeriesKey_(){const dataBySeriesKey={};for(const[key,series]of this.seriesByKey_){dataBySeriesKey[key]=[];}
this.data_.forEach(function(multiSeriesDatum,index){const x=this.getXForDatum_(multiSeriesDatum,index);d3.keys(multiSeriesDatum).forEach(function(seriesKey){if(seriesKey==='x')return;if(multiSeriesDatum[seriesKey]===undefined)return;if(!this.isDatumFieldSeries_(seriesKey))return;const singleSeriesDatum={x};singleSeriesDatum[seriesKey]=multiSeriesDatum[seriesKey];dataBySeriesKey[seriesKey].push(singleSeriesDatum);},this);},this);return dataBySeriesKey;},getChartPointAtClientPoint_(clientPoint){const rect=this.getBoundingClientRect();return{x:clientPoint.x-rect.left-this.margin.left,y:clientPoint.y-rect.top-this.margin.top};},getDataPointAtChartPoint_(chartPoint){return{x:tr.b.math.clamp(this.xScale_.invert(chartPoint.x),this.xScale_.domain()[0],this.xScale_.domain()[1]),y:tr.b.math.clamp(this.yScale_.invert(chartPoint.y),this.yScale_.domain()[0],this.yScale_.domain()[1])};},getDataPointAtClientPoint_(clientX,clientY){const chartPoint=this.getChartPointAtClientPoint_({x:clientX,y:clientY});return this.getDataPointAtChartPoint_(chartPoint);},prepareDataEvent_(mouseEvent,dataEvent){const dataPoint=this.getDataPointAtClientPoint_(mouseEvent.clientX,mouseEvent.clientY);dataEvent.x=dataPoint.x;dataEvent.y=dataPoint.y;},onMouseDown_(mouseEvent){tr.ui.b.trackMouseMovesUntilMouseUp(this.onMouseMove_.bind(this,mouseEvent.button),this.onMouseUp_.bind(this,mouseEvent.button));mouseEvent.preventDefault();mouseEvent.stopPropagation();const dataEvent=new tr.b.Event('item-mousedown');dataEvent.button=mouseEvent.button;Polymer.dom(this).classList.add('updating-brushing-state');this.prepareDataEvent_(mouseEvent,dataEvent);this.dispatchEvent(dataEvent);},onMouseMove_(button,mouseEvent){if(mouseEvent.buttons!==undefined){mouseEvent.preventDefault();mouseEvent.stopPropagation();}
const dataEvent=new tr.b.Event('item-mousemove');dataEvent.button=button;this.prepareDataEvent_(mouseEvent,dataEvent);this.dispatchEvent(dataEvent);},onMouseUp_(button,mouseEvent){mouseEvent.preventDefault();mouseEvent.stopPropagation();const dataEvent=new tr.b.Event('item-mouseup');dataEvent.button=button;this.prepareDataEvent_(mouseEvent,dataEvent);this.dispatchEvent(dataEvent);Polymer.dom(this).classList.remove('updating-brushing-state');}};return{ChartBase2D,};});'use strict';tr.exportTo('tr.ui.b',function(){const ChartBase2D=tr.ui.b.ChartBase2D;const ChartBase2DBrushX=tr.ui.b.define('chart-base-2d-brush-1d',ChartBase2D);ChartBase2DBrushX.prototype={__proto__:ChartBase2D.prototype,decorate(){super.decorate();this.brushedRange_=new tr.b.math.Range();},set brushedRange(range){this.brushedRange_.reset();this.brushedRange_.addRange(range);this.updateContents_();},get brushedRange(){return tr.b.math.Range.fromDict(this.brushedRange_.toJSON());},computeBrushRangeFromIndices(indexA,indexB){indexA=tr.b.math.clamp(indexA,0,this.data_.length-1);indexB=tr.b.math.clamp(indexB,0,this.data_.length-1);const leftIndex=Math.min(indexA,indexB);const rightIndex=Math.max(indexA,indexB);const brushRange=new tr.b.math.Range();brushRange.addValue(this.getXForDatum_(this.data_[leftIndex],leftIndex)-
this.getSampleWidth_(this.data_,leftIndex,true));brushRange.addValue(this.getXForDatum_(this.data_[rightIndex],rightIndex)+
this.getSampleWidth_(this.data_,rightIndex,false));return brushRange;},getDataIndex_(dataX){if(this.data.length===0)return undefined;const bisect=d3.bisector(this.getXForDatum_.bind(this)).right;return bisect(this.data_,dataX)-1;},prepareDataEvent_(mouseEvent,dataEvent){ChartBase2D.prototype.prepareDataEvent_.call(this,mouseEvent,dataEvent);dataEvent.index=this.getDataIndex_(dataEvent.x);if(dataEvent.index!==undefined){dataEvent.data=this.data_[dataEvent.index];}},updateBrushContents_(brushSel){brushSel.selectAll('*').remove();const brushes=this.brushedRange_.isEmpty?[]:[this.brushedRange_];const brushRectsSel=brushSel.selectAll('rect').data(brushes);brushRectsSel.enter().append('rect');brushRectsSel.exit().remove();this.drawBrush_(brushRectsSel);},drawBrush_(brushRectsSel){brushRectsSel.attr('x',d=>this.xScale_(d.min)).attr('y',0).attr('width',d=>this.xScale_(d.max)-this.xScale_(d.min)).attr('height',this.graphHeight);}};return{ChartBase2DBrushX,};});'use strict';tr.exportTo('tr.ui.b',function(){const LineChart=tr.ui.b.define('line-chart',tr.ui.b.ChartBase2DBrushX);LineChart.prototype={__proto__:tr.ui.b.ChartBase2DBrushX.prototype,get defaultGraphWidth(){return 20*this.data_.length;},get defaultGraphHeight(){return 100;},updateDataContents_(dataSel){dataSel.selectAll('*').remove();const dataBySeriesKey=this.getDataBySeriesKey_();const seriesKeys=[...this.seriesByKey_.keys()];const pathsSel=dataSel.selectAll('path').data(seriesKeys);pathsSel.enter().append('path').style('fill','none').style('stroke-width','1.5px').style('stroke',key=>this.getDataSeries(key).color).attr('d',key=>{const line=d3.svg.line().x(d=>this.xScale_(d.x)).y(d=>this.yScale_(this.dataRange.clamp(d[key])));return line(dataBySeriesKey[key]);});pathsSel.exit().remove();}};return{LineChart,};});'use strict';Polymer({is:'tr-ui-e-s-input-latency-side-panel',behaviors:[tr.ui.behaviors.SidePanel],ready(){this.rangeOfInterest_=new tr.b.math.Range();this.frametimeType_=tr.model.helpers.IMPL_FRAMETIME_TYPE;this.latencyChart_=undefined;this.frametimeChart_=undefined;this.selectedProcessId_=undefined;this.mouseDownIndex_=undefined;this.curMouseIndex_=undefined;},get model(){return this.model_;},set model(model){this.model_=model;if(this.model_){this.modelHelper_=this.model_.getOrCreateHelper(tr.model.helpers.ChromeModelHelper);}else{this.modelHelper_=undefined;}
this.updateToolbar_();this.updateContents_();},get frametimeType(){return this.frametimeType_;},set frametimeType(type){if(this.frametimeType_===type)return;this.frametimeType_=type;this.updateContents_();},get selectedProcessId(){return this.selectedProcessId_;},set selectedProcessId(process){if(this.selectedProcessId_===process)return;this.selectedProcessId_=process;this.updateContents_();},set selection(selection){if(this.latencyChart_===undefined)return;this.latencyChart_.brushedRange=selection.bounds;},setBrushedIndices(mouseDownIndex,curIndex){this.mouseDownIndex_=mouseDownIndex;this.curMouseIndex_=curIndex;this.updateBrushedRange_();},updateBrushedRange_(){if(this.latencyChart_===undefined)return;let r=new tr.b.math.Range();if(this.mouseDownIndex_===undefined){this.latencyChart_.brushedRange=r;return;}
r=this.latencyChart_.computeBrushRangeFromIndices(this.mouseDownIndex_,this.curMouseIndex_);this.latencyChart_.brushedRange=r;let latencySlices=[];for(const thread of this.model_.getAllThreads()){for(const event of thread.getDescendantEvents()){if(event.title.indexOf('InputLatency:')===0){latencySlices.push(event);}}}
latencySlices=tr.model.helpers.getSlicesIntersectingRange(r,latencySlices);const event=new tr.model.RequestSelectionChangeEvent();event.selection=new tr.model.EventSet(latencySlices);this.latencyChart_.dispatchEvent(event);},registerMouseEventForLatencyChart_(){this.latencyChart_.addEventListener('item-mousedown',function(e){this.mouseDownIndex_=e.index;this.curMouseIndex_=e.index;this.updateBrushedRange_();}.bind(this));this.latencyChart_.addEventListener('item-mousemove',function(e){if(e.button===undefined)return;this.curMouseIndex_=e.index;this.updateBrushedRange_();}.bind(this));this.latencyChart_.addEventListener('item-mouseup',function(e){this.curMouseIndex=e.index;this.updateBrushedRange_();}.bind(this));},updateToolbar_(){const browserProcess=this.modelHelper_.browserProcess;const labels=[];if(browserProcess!==undefined){const labelStr='Browser: '+browserProcess.pid;labels.push({label:labelStr,value:browserProcess.pid});}
for(const rendererHelper of
Object.values(this.modelHelper_.rendererHelpers)){const rendererProcess=rendererHelper.process;const labelStr='Renderer: '+rendererProcess.userFriendlyName;labels.push({label:labelStr,value:rendererProcess.userFriendlyName});}
if(labels.length===0)return;this.selectedProcessId_=labels[0].value;const toolbarEl=this.$.toolbar;Polymer.dom(toolbarEl).appendChild(tr.ui.b.createSelector(this,'frametimeType','inputLatencySidePanel.frametimeType',this.frametimeType_,[{label:'Main Thread Frame Times',value:tr.model.helpers.MAIN_FRAMETIME_TYPE},{label:'Impl Thread Frame Times',value:tr.model.helpers.IMPL_FRAMETIME_TYPE}]));Polymer.dom(toolbarEl).appendChild(tr.ui.b.createSelector(this,'selectedProcessId','inputLatencySidePanel.selectedProcessId',this.selectedProcessId_,labels));},get currentRangeOfInterest(){if(this.rangeOfInterest_.isEmpty){return this.model_.bounds;}
return this.rangeOfInterest_;},createLatencyLineChart(data,title,parentNode){const chart=new tr.ui.b.LineChart();Polymer.dom(parentNode).appendChild(chart);let width=600;if(document.body.clientWidth!==undefined){width=document.body.clientWidth*0.5;}
chart.graphWidth=width;chart.chartTitle=title;chart.data=data;return chart;},updateContents_(){const resultArea=this.$.result_area;this.latencyChart_=undefined;this.frametimeChart_=undefined;Polymer.dom(resultArea).textContent='';if(this.modelHelper_===undefined)return;const rangeOfInterest=this.currentRangeOfInterest;let chromeProcess;if(this.modelHelper_.rendererHelpers[this.selectedProcessId_]){chromeProcess=this.modelHelper_.rendererHelpers[this.selectedProcessId_];}else{chromeProcess=this.modelHelper_.browserHelper;}
const frameEvents=chromeProcess.getFrameEventsInRange(this.frametimeType,rangeOfInterest);const frametimeData=tr.model.helpers.getFrametimeDataFromEvents(frameEvents);const averageFrametime=tr.b.math.Statistics.mean(frametimeData,d=>d.frametime);const latencyEvents=this.modelHelper_.browserHelper.getLatencyEventsInRange(rangeOfInterest);const latencyData=[];latencyEvents.forEach(function(event){if(event.inputLatency===undefined)return;latencyData.push({x:event.start,latency:event.inputLatency/1000});});const averageLatency=tr.b.math.Statistics.mean(latencyData,function(d){return d.latency;});const latencySummaryText=document.createElement('div');Polymer.dom(latencySummaryText).appendChild(tr.ui.b.createSpan({textContent:'Average Latency '+averageLatency+' ms',bold:true}));Polymer.dom(resultArea).appendChild(latencySummaryText);const frametimeSummaryText=document.createElement('div');Polymer.dom(frametimeSummaryText).appendChild(tr.ui.b.createSpan({textContent:'Average Frame Time '+averageFrametime+' ms',bold:true}));Polymer.dom(resultArea).appendChild(frametimeSummaryText);if(latencyData.length!==0){this.latencyChart_=this.createLatencyLineChart(latencyData,'Latency Over Time',resultArea);this.registerMouseEventForLatencyChart_();}
if(frametimeData.length!==0){this.frametimeChart_=this.createLatencyLineChart(frametimeData,'Frame Times',resultArea);}},get rangeOfInterest(){return this.rangeOfInterest_;},set rangeOfInterest(rangeOfInterest){this.rangeOfInterest_=rangeOfInterest;this.updateContents_();},supportsModel(m){if(m===undefined){return{supported:false,reason:'Unknown tracing model'};}
if(!tr.model.helpers.ChromeModelHelper.supportsModel(m)){return{supported:false,reason:'No Chrome browser or renderer process found'};}
const modelHelper=m.getOrCreateHelper(tr.model.helpers.ChromeModelHelper);if(modelHelper.browserHelper&&modelHelper.browserHelper.hasLatencyEvents){return{supported:true};}
return{supported:false,reason:'No InputLatency events trace. Consider enabling '+'benchmark" and "input" category when recording the trace'};},get textLabel(){return'Input Latency';}});tr.ui.side_panel.SidePanelRegistry.register(function(){return document.createElement('tr-ui-e-s-input-latency-side-panel');});'use strict';tr.exportTo('tr.e.system_stats',function(){const ObjectSnapshot=tr.model.ObjectSnapshot;function SystemStatsSnapshot(objectInstance,ts,args){ObjectSnapshot.apply(this,arguments);this.objectInstance=objectInstance;this.ts=ts;this.args=args;this.stats=args;}
SystemStatsSnapshot.prototype={__proto__:ObjectSnapshot.prototype,initialize(){if(this.args.length===0){throw new Error('No system stats snapshot data.');}
this.stats_=this.args;},getStats(){return this.stats_;},setStats(stats){this.stats_=stats;}};ObjectSnapshot.subTypes.register(SystemStatsSnapshot,{typeName:'base::TraceEventSystemStatsMonitor::SystemStats'});return{SystemStatsSnapshot,};});'use strict';tr.exportTo('tr.ui.b',function(){const constants={HEADING_WIDTH:250};return{constants,};});'use strict';Polymer({is:'tr-ui-b-heading',DOWN_ARROW:String.fromCharCode(0x25BE),RIGHT_ARROW:String.fromCharCode(0x25B8),ready(viewport){this.style.width=(tr.ui.b.constants.HEADING_WIDTH-6)+'px';this.heading_='';this.expanded_=true;this.arrowVisible_=false;this.selectionGenerator_=undefined;this.updateContents_();},get heading(){return this.heading_;},set heading(text){if(this.heading_===text)return;this.heading_=text;this.updateContents_();},set arrowVisible(val){if(this.arrowVisible_===val)return;this.arrowVisible_=!!val;this.updateContents_();},set tooltip(text){this.$.heading.title=text;},set selectionGenerator(generator){if(this.selectionGenerator_===generator)return;this.selectionGenerator_=generator;this.updateContents_();},get expanded(){return this.expanded_;},set expanded(expanded){if(this.expanded_===expanded)return;this.expanded_=!!expanded;this.updateContents_();},onHeadingDivClicked_(){this.dispatchEvent(new tr.b.Event('heading-clicked',true));},updateContents_(){if(this.arrowVisible_){this.$.arrow.style.display='';}else{this.$.arrow.style.display='none';this.$.heading.style.display=this.expanded_?'':'none';}
if(this.arrowVisible_){Polymer.dom(this.$.arrow).textContent=this.expanded_?this.DOWN_ARROW:this.RIGHT_ARROW;}
this.$.link.style.display='none';this.$.heading_content.style.display='none';if(this.selectionGenerator_){this.$.link.style.display='inline-block';this.$.link.selection=this.selectionGenerator_;Polymer.dom(this.$.link).textContent=this.heading_;}else{this.$.heading_content.style.display='inline-block';Polymer.dom(this.$.heading_content).textContent=this.heading_;}}});'use strict';tr.exportTo('tr.ui.tracks',function(){const Track=tr.ui.b.define('track',tr.ui.b.ContainerThatDecoratesItsChildren);Track.prototype={__proto__:tr.ui.b.ContainerThatDecoratesItsChildren.prototype,decorate(viewport){tr.ui.b.ContainerThatDecoratesItsChildren.prototype.decorate.call(this);if(viewport===undefined){throw new Error('viewport is required when creating a Track.');}
this.viewport_=viewport;Polymer.dom(this).classList.add('track');},get viewport(){return this.viewport_;},get drawingContainer(){if(this instanceof tr.ui.tracks.DrawingContainer)return this;let cur=this.parentElement;while(cur){if(cur instanceof tr.ui.tracks.DrawingContainer)return cur;cur=cur.parentElement;}
return undefined;},get eventContainer(){},invalidateDrawingContainer(){const dc=this.drawingContainer;if(dc)dc.invalidate();},context(){if(!Polymer.dom(this).parentNode)return undefined;if(!Polymer.dom(this).parentNode.context){throw new Error('Parent container does not support context() method.');}
return Polymer.dom(this).parentNode.context();},decorateChild_(childTrack){},undecorateChild_(childTrack){if(childTrack.detach){childTrack.detach();}},updateContents_(){},drawTrack(type){const ctx=this.context();const pixelRatio=window.devicePixelRatio||1;const bounds=this.getBoundingClientRect();const canvasBounds=ctx.canvas.getBoundingClientRect();ctx.save();ctx.translate(0,pixelRatio*(bounds.top-canvasBounds.top));const dt=this.viewport.currentDisplayTransform;const viewLWorld=dt.xViewToWorld(0);const viewRWorld=dt.xViewToWorld(bounds.width*pixelRatio);this.draw(type,viewLWorld,viewRWorld);ctx.restore();},draw(type,viewLWorld,viewRWorld){},addEventsToTrackMap(eventToTrackMap){},addContainersToTrackMap(containerToTrackMap){},addIntersectingEventsInRangeToSelection(loVX,hiVX,loVY,hiVY,selection){const pixelRatio=window.devicePixelRatio||1;const dt=this.viewport.currentDisplayTransform;const viewPixWidthWorld=dt.xViewVectorToWorld(1);const loWX=dt.xViewToWorld(loVX*pixelRatio);const hiWX=dt.xViewToWorld(hiVX*pixelRatio);const clientRect=this.getBoundingClientRect();const a=Math.max(loVY,clientRect.top);const b=Math.min(hiVY,clientRect.bottom);if(a>b)return;this.addIntersectingEventsInRangeToSelectionInWorldSpace(loWX,hiWX,viewPixWidthWorld,selection);},addIntersectingEventsInRangeToSelectionInWorldSpace(loWX,hiWX,viewPixWidthWorld,selection){},addClosestEventToSelection(worldX,worldMaxDist,loY,hiY,selection){},addClosestInstantEventToSelection(instantEvents,worldX,worldMaxDist,selection){const instantEvent=tr.b.math.findClosestElementInSortedArray(instantEvents,function(x){return x.start;},worldX,worldMaxDist);if(!instantEvent)return;selection.push(instantEvent);}};return{Track,};});'use strict';tr.exportTo('tr.ui.tracks',function(){const SelectionState=tr.model.SelectionState;const EventPresenter=tr.ui.b.EventPresenter;const ObjectInstanceTrack=tr.ui.b.define('object-instance-track',tr.ui.tracks.Track);ObjectInstanceTrack.prototype={__proto__:tr.ui.tracks.Track.prototype,decorate(viewport){tr.ui.tracks.Track.prototype.decorate.call(this,viewport);Polymer.dom(this).classList.add('object-instance-track');this.objectInstances_=[];this.objectSnapshots_=[];this.heading_=document.createElement('tr-ui-b-heading');Polymer.dom(this).appendChild(this.heading_);},set heading(heading){this.heading_.heading=heading;},get heading(){return this.heading_.heading;},set tooltip(tooltip){this.heading_.tooltip=tooltip;},get objectInstances(){return this.objectInstances_;},set objectInstances(objectInstances){if(!objectInstances||objectInstances.length===0){this.heading='';this.objectInstances_=[];this.objectSnapshots_=[];return;}
this.heading=objectInstances[0].typeName;this.objectInstances_=objectInstances;this.objectSnapshots_=[];this.objectInstances_.forEach(function(instance){this.objectSnapshots_.push.apply(this.objectSnapshots_,instance.snapshots);},this);this.objectSnapshots_.sort(function(a,b){return a.ts-b.ts;});},get height(){return window.getComputedStyle(this).height;},set height(height){this.style.height=height;},get snapshotRadiusView(){return 7*(window.devicePixelRatio||1);},draw(type,viewLWorld,viewRWorld){switch(type){case tr.ui.tracks.DrawType.GENERAL_EVENT:this.drawLetterDots_(viewLWorld,viewRWorld);break;}},drawLetterDots_(viewLWorld,viewRWorld){const ctx=this.context();const pixelRatio=window.devicePixelRatio||1;const bounds=this.getBoundingClientRect();const height=bounds.height*pixelRatio;const halfHeight=height*0.5;const twoPi=Math.PI*2;const dt=this.viewport.currentDisplayTransform;const snapshotRadiusView=this.snapshotRadiusView;const snapshotRadiusWorld=dt.xViewVectorToWorld(height);ctx.save();dt.applyTransformToCanvas(ctx);const objectInstances=this.objectInstances_;let loI=tr.b.math.findLowIndexInSortedArray(objectInstances,function(instance){return instance.deletionTs;},viewLWorld);ctx.strokeStyle='rgb(0,0,0)';for(let i=loI;i<objectInstances.length;++i){const instance=objectInstances[i];const x=instance.creationTs;if(x>viewRWorld)break;const right=instance.deletionTs===Number.MAX_VALUE?viewRWorld:instance.deletionTs;ctx.fillStyle=EventPresenter.getObjectInstanceColor(instance);ctx.fillRect(x,pixelRatio,right-x,height-2*pixelRatio);}
ctx.restore();const objectSnapshots=this.objectSnapshots_;loI=tr.b.math.findLowIndexInSortedArray(objectSnapshots,function(snapshot){return snapshot.ts+snapshotRadiusWorld;},viewLWorld);for(let i=loI;i<objectSnapshots.length;++i){const snapshot=objectSnapshots[i];const x=snapshot.ts;if(x-snapshotRadiusWorld>viewRWorld)break;const xView=dt.xWorldToView(x);ctx.fillStyle=EventPresenter.getObjectSnapshotColor(snapshot);ctx.beginPath();ctx.arc(xView,halfHeight,snapshotRadiusView,0,twoPi);ctx.fill();if(snapshot.selected){ctx.lineWidth=5;ctx.strokeStyle='rgb(100,100,0)';ctx.stroke();ctx.beginPath();ctx.arc(xView,halfHeight,snapshotRadiusView-1,0,twoPi);ctx.lineWidth=2;ctx.strokeStyle='rgb(255,255,0)';ctx.stroke();}else{ctx.lineWidth=1;ctx.strokeStyle='rgb(0,0,0)';ctx.stroke();}}
ctx.lineWidth=1;let selectionState=SelectionState.NONE;if(objectInstances.length&&objectInstances[0].selectionState===SelectionState.DIMMED){selectionState=SelectionState.DIMMED;}
if(selectionState===SelectionState.DIMMED){const width=bounds.width*pixelRatio;ctx.fillStyle='rgba(255,255,255,0.5)';ctx.fillRect(0,0,width,height);ctx.restore();}},addEventsToTrackMap(eventToTrackMap){if(this.objectInstance_!==undefined){this.objectInstance_.forEach(function(obj){eventToTrackMap.addEvent(obj,this);},this);}
if(this.objectSnapshots_!==undefined){this.objectSnapshots_.forEach(function(obj){eventToTrackMap.addEvent(obj,this);},this);}},addIntersectingEventsInRangeToSelectionInWorldSpace(loWX,hiWX,viewPixWidthWorld,selection){let foundSnapshot=false;function onSnapshot(snapshot){selection.push(snapshot);foundSnapshot=true;}
const snapshotRadiusView=this.snapshotRadiusView;const snapshotRadiusWorld=viewPixWidthWorld*snapshotRadiusView;tr.b.math.iterateOverIntersectingIntervals(this.objectSnapshots_,function(x){return x.ts-snapshotRadiusWorld;},function(x){return 2*snapshotRadiusWorld;},loWX,hiWX,onSnapshot);if(foundSnapshot)return;tr.b.math.iterateOverIntersectingIntervals(this.objectInstances_,function(x){return x.creationTs;},function(x){return x.deletionTs-x.creationTs;},loWX,hiWX,(value)=>{selection.push(value);});},addEventNearToProvidedEventToSelection(event,offset,selection){let events;if(event instanceof tr.model.ObjectSnapshot){events=this.objectSnapshots_;}else if(event instanceof tr.model.ObjectInstance){events=this.objectInstances_;}else{throw new Error('Unrecognized event');}
const index=events.indexOf(event);const newIndex=index+offset;if(newIndex>=0&&newIndex<events.length){selection.push(events[newIndex]);return true;}
return false;},addAllEventsMatchingFilterToSelection(filter,selection){},addClosestEventToSelection(worldX,worldMaxDist,loY,hiY,selection){const snapshot=tr.b.math.findClosestElementInSortedArray(this.objectSnapshots_,function(x){return x.ts;},worldX,worldMaxDist);if(!snapshot)return;selection.push(snapshot);}};const options=new tr.b.ExtensionRegistryOptions(tr.b.TYPE_BASED_REGISTRY_MODE);tr.b.decorateExtensionRegistry(ObjectInstanceTrack,options);return{ObjectInstanceTrack,};});'use strict';tr.exportTo('tr.ui.tracks',function(){const StackedBarsTrack=tr.ui.b.define('stacked-bars-track',tr.ui.tracks.Track);StackedBarsTrack.prototype={__proto__:tr.ui.tracks.Track.prototype,decorate(viewport){tr.ui.tracks.Track.prototype.decorate.call(this,viewport);Polymer.dom(this).classList.add('stacked-bars-track');this.objectInstance_=null;this.heading_=document.createElement('tr-ui-b-heading');Polymer.dom(this).appendChild(this.heading_);},set heading(heading){this.heading_.heading=heading;},get heading(){return this.heading_.heading;},set tooltip(tooltip){this.heading_.tooltip=tooltip;},addEventsToTrackMap(eventToTrackMap){const objectSnapshots=this.objectInstance_.snapshots;objectSnapshots.forEach(function(obj){eventToTrackMap.addEvent(obj,this);},this);},addIntersectingEventsInRangeToSelectionInWorldSpace(loWX,hiWX,viewPixWidthWorld,selection){function onSnapshot(snapshot){selection.push(snapshot);}
const snapshots=this.objectInstance_.snapshots;const maxBounds=this.objectInstance_.parent.model.bounds.max;tr.b.math.iterateOverIntersectingIntervals(snapshots,function(x){return x.ts;},function(x,i){if(i===snapshots.length-1){if(snapshots.length===1){return maxBounds;}
return snapshots[i].ts-snapshots[i-1].ts;}
return snapshots[i+1].ts-snapshots[i].ts;},loWX,hiWX,onSnapshot);},addEventNearToProvidedEventToSelection(event,offset,selection){if(!(event instanceof tr.model.ObjectSnapshot)){throw new Error('Unrecognized event');}
const objectSnapshots=this.objectInstance_.snapshots;const index=objectSnapshots.indexOf(event);const newIndex=index+offset;if(newIndex>=0&&newIndex<objectSnapshots.length){selection.push(objectSnapshots[newIndex]);return true;}
return false;},addAllEventsMatchingFilterToSelection(filter,selection){},addClosestEventToSelection(worldX,worldMaxDist,loY,hiY,selection){const snapshot=tr.b.math.findClosestElementInSortedArray(this.objectInstance_.snapshots,function(x){return x.ts;},worldX,worldMaxDist);if(!snapshot)return;selection.push(snapshot);}};return{StackedBarsTrack,};});'use strict';tr.exportTo('tr.ui.e.system_stats',function(){const EventPresenter=tr.ui.b.EventPresenter;let statCount;const excludedStats={'meminfo':{'pswpin':0,'pswpout':0,'pgmajfault':0},'diskinfo':{'io':0,'io_time':0,'read_time':0,'reads':0,'reads_merged':0,'sectors_read':0,'sectors_written':0,'weighted_io_time':0,'write_time':0,'writes':0,'writes_merged':0},'swapinfo':{}};const SystemStatsInstanceTrack=tr.ui.b.define('tr-ui-e-system-stats-instance-track',tr.ui.tracks.StackedBarsTrack);SystemStatsInstanceTrack.prototype={__proto__:tr.ui.tracks.StackedBarsTrack.prototype,decorate(viewport){tr.ui.tracks.StackedBarsTrack.prototype.decorate.call(this,viewport);Polymer.dom(this).classList.add('tr-ui-e-system-stats-instance-track');this.objectInstance_=null;},set objectInstances(objectInstances){if(!objectInstances){this.objectInstance_=[];return;}
if(objectInstances.length!==1){throw new Error('Bad object instance count.');}
this.objectInstance_=objectInstances[0];if(this.objectInstance_!==null){this.computeRates_(this.objectInstance_.snapshots);this.maxStats_=this.computeMaxStats_(this.objectInstance_.snapshots);}},computeRates_(snapshots){for(let i=0;i<snapshots.length;i++){const snapshot=snapshots[i];const stats=snapshot.getStats();let prevSnapshot;if(i===0){prevSnapshot=snapshots[0];}else{prevSnapshot=snapshots[i-1];}
const prevStats=prevSnapshot.getStats();let timeIntervalSeconds=(snapshot.ts-prevSnapshot.ts)/1000;if(timeIntervalSeconds===0){timeIntervalSeconds=1;}
this.computeRatesRecursive_(prevStats,stats,timeIntervalSeconds);}},computeRatesRecursive_(prevStats,stats,timeIntervalSeconds){for(const statName in stats){if(stats[statName]instanceof Object){this.computeRatesRecursive_(prevStats[statName],stats[statName],timeIntervalSeconds);}else{if(statName==='sectors_read'){stats.bytes_read_per_sec=(stats.sectors_read-
prevStats.sectors_read)*512/timeIntervalSeconds;}
if(statName==='sectors_written'){stats.bytes_written_per_sec=(stats.sectors_written-
prevStats.sectors_written)*512/timeIntervalSeconds;}
if(statName==='pgmajfault'){stats.pgmajfault_per_sec=(stats.pgmajfault-
prevStats.pgmajfault)/timeIntervalSeconds;}
if(statName==='pswpin'){stats.bytes_swpin_per_sec=(stats.pswpin-
prevStats.pswpin)*1000/timeIntervalSeconds;}
if(statName==='pswpout'){stats.bytes_swpout_per_sec=(stats.pswpout-
prevStats.pswpout)*1000/timeIntervalSeconds;}}}},computeMaxStats_(snapshots){const maxStats={};statCount=0;for(let i=0;i<snapshots.length;i++){const snapshot=snapshots[i];const stats=snapshot.getStats();this.computeMaxStatsRecursive_(stats,maxStats,excludedStats);}
return maxStats;},computeMaxStatsRecursive_(stats,maxStats,excludedStats){for(const statName in stats){if(stats[statName]instanceof Object){if(!(statName in maxStats)){maxStats[statName]={};}
let excludedNested;if(excludedStats&&statName in excludedStats){excludedNested=excludedStats[statName];}else{excludedNested=null;}
this.computeMaxStatsRecursive_(stats[statName],maxStats[statName],excludedNested);}else{if(excludedStats&&statName in excludedStats){continue;}
if(!(statName in maxStats)){maxStats[statName]=0;statCount++;}
if(stats[statName]>maxStats[statName]){maxStats[statName]=stats[statName];}}}},get height(){return window.getComputedStyle(this).height;},set height(height){this.style.height=height;},draw(type,viewLWorld,viewRWorld){switch(type){case tr.ui.tracks.DrawType.GENERAL_EVENT:this.drawStatBars_(viewLWorld,viewRWorld);break;}},drawStatBars_(viewLWorld,viewRWorld){const ctx=this.context();const pixelRatio=window.devicePixelRatio||1;const bounds=this.getBoundingClientRect();const width=bounds.width*pixelRatio;const height=(bounds.height*pixelRatio)/statCount;const vp=this.viewport.currentDisplayTransform;const maxStats=this.maxStats_;const objectSnapshots=this.objectInstance_.snapshots;let lowIndex=tr.b.math.findLowIndexInSortedArray(objectSnapshots,function(snapshot){return snapshot.ts;},viewLWorld);if(lowIndex>0)lowIndex-=1;for(let i=lowIndex;i<objectSnapshots.length;++i){const snapshot=objectSnapshots[i];const trace=snapshot.getStats();const currentY=height;const left=snapshot.ts;if(left>viewRWorld)break;let leftView=vp.xWorldToView(left);if(leftView<0)leftView=0;let right;if(i!==objectSnapshots.length-1){right=objectSnapshots[i+1].ts;}else{if(objectSnapshots.length>1){right=objectSnapshots[i].ts+(objectSnapshots[i].ts-
objectSnapshots[i-1].ts);}else{right=this.objectInstance_.parent.model.bounds.max;}}
let rightView=vp.xWorldToView(right);if(rightView>width){rightView=width;}
leftView=Math.floor(leftView);rightView=Math.floor(rightView);this.drawStatBarsRecursive_(snapshot,leftView,rightView,height,trace,maxStats,currentY);if(i===lowIndex){this.drawStatNames_(leftView,height,currentY,'',maxStats);}}
ctx.lineWidth=1;},drawStatBarsRecursive_(snapshot,leftView,rightView,height,stats,maxStats,currentY){const ctx=this.context();for(const statName in maxStats){if(stats[statName]instanceof Object){currentY=this.drawStatBarsRecursive_(snapshot,leftView,rightView,height,stats[statName],maxStats[statName],currentY);}else{const maxStat=maxStats[statName];ctx.fillStyle=EventPresenter.getBarSnapshotColor(snapshot,Math.round(currentY/height));let barHeight;if(maxStat>0){barHeight=height*Math.max(stats[statName],0)/maxStat;}else{barHeight=0;}
ctx.fillRect(leftView,currentY-barHeight,Math.max(rightView-leftView,1),barHeight);currentY+=height;}}
return currentY;},drawStatNames_(leftView,height,currentY,prefix,maxStats){const ctx=this.context();ctx.textAlign='end';ctx.font='12px Arial';ctx.fillStyle='#000000';for(const statName in maxStats){if(maxStats[statName]instanceof Object){currentY=this.drawStatNames_(leftView,height,currentY,statName,maxStats[statName]);}else{let fullname=statName;if(prefix!==''){fullname=prefix+' :: '+statName;}
ctx.fillText(fullname,leftView-10,currentY-height/4);currentY+=height;}}
return currentY;}};tr.ui.tracks.ObjectInstanceTrack.register(SystemStatsInstanceTrack,{typeName:'base::TraceEventSystemStatsMonitor::SystemStats'});return{SystemStatsInstanceTrack,};});'use strict';tr.exportTo('tr.ui.e.system_stats',function(){const SystemStatsSnapshotView=tr.ui.b.define('tr-ui-e-system-stats-snapshot-view',tr.ui.analysis.ObjectSnapshotView);SystemStatsSnapshotView.prototype={__proto__:tr.ui.analysis.ObjectSnapshotView.prototype,decorate(){Polymer.dom(this).classList.add('tr-ui-e-system-stats-snapshot-view');},updateContents(){const snapshot=this.objectSnapshot_;if(!snapshot||!snapshot.getStats()){Polymer.dom(this).textContent='No system stats snapshot found.';return;}
Polymer.dom(this).textContent='';const stats=snapshot.getStats();Polymer.dom(this).appendChild(this.buildList_(stats));},isFloat(n){return typeof n==='number'&&n%1!==0;},buildList_(stats){const statList=document.createElement('ul');for(const statName in stats){const statText=document.createElement('li');Polymer.dom(statText).textContent=''+statName+': ';Polymer.dom(statList).appendChild(statText);if(stats[statName]instanceof Object){Polymer.dom(statList).appendChild(this.buildList_(stats[statName]));}else{if(this.isFloat(stats[statName])){Polymer.dom(statText).textContent+=stats[statName].toFixed(2);}else{Polymer.dom(statText).textContent+=stats[statName];}}}
return statList;}};tr.ui.analysis.ObjectSnapshotView.register(SystemStatsSnapshotView,{typeName:'base::TraceEventSystemStatsMonitor::SystemStats'});return{SystemStatsSnapshotView,};});'use strict';tr.exportTo('tr.ui.e.v8',function(){const IGNORED_ENTRIES={match:full=>full.startsWith('*CODE_AGE_')};const INSTANCE_TYPE_GROUPS={FIXED_ARRAY_TYPE:{match:full=>full.startsWith('*FIXED_ARRAY_'),realEntry:'FIXED_ARRAY_TYPE',keyToName:key=>key.slice('*FIXED_ARRAY_'.length).slice(0,-('_SUB_TYPE'.length)),nameToKey:name=>'*FIXED_ARRAY_'+name+'_SUB_TYPE'},CODE_TYPE:{match:full=>full.startsWith('*CODE_'),realEntry:'CODE_TYPE',keyToName:key=>key.slice('*CODE_'.length),nameToKey:name=>'*CODE_'+name},JS_OBJECTS:{match:full=>full.startsWith('JS_'),keyToName:key=>key,nameToKey:name=>name},Strings:{match:full=>full.endsWith('STRING_TYPE'),keyToName:key=>key,nameToKey:name=>name}};const DIFF_COLOR={GREEN:'#64DD17',RED:'#D50000'};function computePercentage(valueA,valueB){if(valueA===0)return 0;return valueA/valueB*100;}
class DiffEntry{constructor(originalEntry,diffEntry){this.originalEntry_=originalEntry;this.diffEntry_=diffEntry;}
get title(){return this.diffEntry_.title;}
get overall(){return this.diffEntry_.overall;}
get overAllocated(){return this.diffEntry_.overAllocated;}
get count(){return this.diffEntry_.count;}
get overallPercent(){return this.diffEntry_.overallPercent;}
get overAllocatedPercent(){return this.diffEntry_.overAllocatedPercent;}
get origin(){return this.originalEntry_;}
get diff(){return this.diffEntry_;}
get subRows(){return this.diffEntry_.subRows;}}
class Entry{constructor(title,count,overall,overAllocated,histogram,overAllocatedHistogram){this.title_=title;this.overall_=overall;this.count_=count;this.overAllocated_=overAllocated;this.histogram_=histogram;this.overAllocatedHistogram_=overAllocatedHistogram;this.bucketSize_=this.histogram_.length;this.overallPercent_=100;this.overAllocatedPercent_=100;}
get title(){return this.title_;}
get overall(){return this.overall_;}
get count(){return this.count_;}
get overAllocated(){return this.overAllocated_;}
get histogram(){return this.histogram_;}
get overAllocatedHistogram(){return this.overAllocatedHistogram_;}
get bucketSize(){return this.bucketSize_;}
get overallPercent(){return this.overallPercent_;}
set overallPercent(value){this.overallPercent_=value;}
get overAllocatedPercent(){return this.overAllocatedPercent_;}
set overAllocatedPercent(value){this.overAllocatedPercent_=value;}
setFromObject(obj){this.count_=obj.count;this.overall_=obj.overall/1024;this.overAllocated_=obj.over_allocated/1024;this.histogram_=obj.histogram;this.overAllocatedHistogram_=obj.over_allocated_histogram;}
diff(other){const entry=new Entry(this.title_,other.count_-this.count,other.overall_-this.overall,other.overAllocated_-this.overAllocated,[],[]);entry.overallPercent=computePercentage(entry.overall,this.overall);entry.overAllocatedPercent=computePercentage(entry.overAllocated,this.overAllocated);return new DiffEntry(this,entry);}}
class GroupedEntry extends Entry{constructor(title,count,overall,overAllocated,histogram,overAllocatedHistogram){super(title,count,overall,overAllocated,histogram,overAllocatedHistogram);this.histogram_.fill(0);this.overAllocatedHistogram_.fill(0);this.entries_=new Map();}
get title(){return this.title_;}
set title(value){this.title_=value;}
get subRows(){return Array.from(this.entries_.values());}
getEntryFromTitle(title){return this.entries_.get(title);}
add(entry){this.count_+=entry.count;this.overall_+=entry.overall;this.overAllocated_+=entry.overAllocated;if(this.bucketSize_===entry.bucketSize){for(let i=0;i<this.bucketSize_;++i){this.histogram_[i]+=entry.histogram[i];this.overAllocatedHistogram_[i]+=entry.overAllocatedHistogram[i];}}
this.entries_.set(entry.title,entry);}
accumulateUnknown(title){let unknownCount=this.count_;let unknownOverall=this.overall_;let unknownOverAllocated=this.overAllocated_;const unknownHistogram=tr.b.deepCopy(this.histogram_);const unknownOverAllocatedHistogram=tr.b.deepCopy(this.overAllocatedHistogram_);for(const entry of this.entries_.values()){unknownCount-=entry.count;unknownOverall-=entry.overall;unknownOverAllocated-=entry.overAllocated;for(let i=0;i<this.bucketSize_;++i){unknownHistogram[i]-=entry.histogram[i];unknownOverAllocatedHistogram[i]-=entry.overAllocatedHistogram[i];}}
unknownOverAllocated=unknownOverAllocated<0?0:unknownOverAllocated;this.entries_.set(title,new Entry(title,unknownCount,unknownOverall,unknownOverAllocated,unknownHistogram,unknownOverAllocatedHistogram));}
calculatePercentage(){for(const entry of this.entries_.values()){entry.overallPercent=computePercentage(entry.overall,this.overall_);entry.overAllocatedPercent=computePercentage(entry.overAllocated,this.overAllocated_);if(entry instanceof GroupedEntry)entry.calculatePercentage();}}
diff(other){let newTitle='';if(this.title_.startsWith('Isolate')){newTitle='Total';}else{newTitle=this.title_;}
const result=new GroupedEntry(newTitle,0,0,0,[],[]);for(const entry of this.entries_){const otherEntry=other.getEntryFromTitle(entry[0]);if(otherEntry===undefined)continue;result.add(entry[1].diff(otherEntry));}
result.overallPercent=computePercentage(result.overall,this.overall);result.overAllocatedPercent=computePercentage(result.overAllocated,this.overAllocated);return new DiffEntry(this,result);}}
function createSelector(targetEl,defaultValue,items,callback){const selectorEl=document.createElement('select');selectorEl.addEventListener('change',callback.bind(targetEl));const defaultOptionEl=document.createElement('option');for(let i=0;i<items.length;i++){const item=items[i];const optionEl=document.createElement('option');Polymer.dom(optionEl).textContent=item.label;optionEl.targetPropertyValue=item.value;optionEl.item=item;Polymer.dom(selectorEl).appendChild(optionEl);}
selectorEl.__defineGetter__('selectedValue',function(v){if(selectorEl.children[selectorEl.selectedIndex]===undefined){return undefined;}
return selectorEl.children[selectorEl.selectedIndex].targetPropertyValue;});selectorEl.__defineGetter__('selectedItem',function(v){if(selectorEl.children[selectorEl.selectedIndex]===undefined){return undefined;}
return selectorEl.children[selectorEl.selectedIndex].item;});selectorEl.__defineSetter__('selectedValue',function(v){for(let i=0;i<selectorEl.children.length;i++){const value=selectorEl.children[i].targetPropertyValue;if(value===v){const changed=selectorEl.selectedIndex!==i;if(changed){selectorEl.selectedIndex=i;callback();}
return;}}
throw new Error('Not a valid value');});selectorEl.selectedIndex=-1;return selectorEl;}
function plusMinus(value,toFixed=3){return(value>0?'+':'')+value.toFixed(toFixed);}
function addArrow(value){if(value===0)return value;if(value===Number.NEGATIVE_INFINITY)return'\u2193\u221E';if(value===Number.POSITIVE_INFINITY)return'\u2191\u221E';return(value>0?'\u2191':'\u2193')+Math.abs(value.toFixed(3));}
Polymer({is:'tr-ui-e-v8-gc-objects-stats-table',ready(){this.$.diffOption.style.display='none';this.isolateEntries_=[];this.selector1_=undefined;this.selector2_=undefined;},constructDiffTable_(table){this.$.diffTable.selectionMode=tr.ui.b.TableFormat.SelectionMode.ROW;this.$.diffTable.tableColumns=[{title:'Component',value(row){const typeEl=document.createElement('span');typeEl.innerText=row.title;return typeEl;},showExpandButtons:true},{title:'Overall Memory(KB)',value(row){const spanEl=tr.ui.b.createSpan();spanEl.innerText=row.origin.overall.toFixed(3);return spanEl;},cmp(a,b){return a.origin.overall-b.origin.overall;}},{title:'diff(KB)',value(row){const spanEl=tr.ui.b.createSpan();spanEl.innerText=plusMinus(row.overall);if(row.overall>0){spanEl.style.color=DIFF_COLOR.RED;}else if(row.overall<0){spanEl.style.color=DIFF_COLOR.GREEN;}
return spanEl;},cmp(a,b){return a.overall-b.overall;}},{title:'diff(%)',value(row){const spanEl=tr.ui.b.createSpan();spanEl.innerText=addArrow(row.overallPercent);if(row.overall>0){spanEl.style.color=DIFF_COLOR.RED;}else if(row.overall<0){spanEl.style.color=DIFF_COLOR.GREEN;}
return spanEl;},cmp(a,b){return a.overall-b.overall;}},{title:'Over Allocated Memory(KB)',value(row){const spanEl=tr.ui.b.createSpan();spanEl.innerText=row.origin.overAllocated.toFixed(3);return spanEl;},cmp(a,b){return a.origin.overAllocated-b.origin.overAllocated;}},{title:'diff(KB)',value(row){const spanEl=tr.ui.b.createSpan();spanEl.innerText=plusMinus(row.overAllocated);if(row.overAllocated>0){spanEl.style.color=DIFF_COLOR.RED;}else if(row.overAllocated<0){spanEl.style.color=DIFF_COLOR.GREEN;}
return spanEl;},cmp(a,b){return a.overAllocated-b.overAllocated;}},{title:'diff(%)',value(row){const spanEl=tr.ui.b.createSpan();spanEl.innerText=addArrow(row.overAllocatedPercent);if(row.overAllocated>0){spanEl.style.color=DIFF_COLOR.RED;}else if(row.overAllocated<0){spanEl.style.color=DIFF_COLOR.GREEN;}
return spanEl;},cmp(a,b){return a.overAllocated-b.overAllocated;}},{title:'Count',value(row){const spanEl=tr.ui.b.createSpan();spanEl.innerText=row.origin.count;return spanEl;},cmp(a,b){return a.origin.count-b.origin.count;}},{title:'diff',value(row){const spanEl=tr.ui.b.createSpan();spanEl.innerText=plusMinus(row.count,0);if(row.count>0){spanEl.style.color=DIFF_COLOR.RED;}else if(row.count<0){spanEl.style.color=DIFF_COLOR.GREEN;}
return spanEl;},cmp(a,b){return a.count-b.count;}},];},buildOptions_(){const items=[];for(const isolateEntry of this.isolateEntries_){items.push({label:isolateEntry.title,value:isolateEntry});}
this.$.diffOption.style.display='inline-block';this.selector1_=createSelector(this,'',items,this.diffOptionChanged_);Polymer.dom(this.$.diffOption).appendChild(this.selector1_);const spanEl=tr.ui.b.createSpan();spanEl.innerText=' VS ';Polymer.dom(this.$.diffOption).appendChild(spanEl);this.selector2_=createSelector(this,'',items,this.diffOptionChanged_);Polymer.dom(this.$.diffOption).appendChild(this.selector2_);},diffOptionChanged_(){const isolateEntry1=this.selector1_.selectedValue;const isolateEntry2=this.selector2_.selectedValue;if(isolateEntry1===undefined||isolateEntry2===undefined){return;}
if(isolateEntry1===isolateEntry2){this.$.diffTable.tableRows=[];this.$.diffTable.rebuild();return;}
this.$.diffTable.tableRows=[isolateEntry1.diff(isolateEntry2)];this.$.diffTable.rebuild();},constructTable_(){this.$.table.selectionMode=tr.ui.b.TableFormat.SelectionMode.ROW;this.$.table.tableColumns=[{title:'Component',value(row){const typeEl=document.createElement('span');typeEl.innerText=row.title;return typeEl;},showExpandButtons:true},{title:'Overall Memory (KB)',value(row){const typeEl=document.createElement('span');typeEl.innerText=row.overall.toFixed(3);return typeEl;},cmp(a,b){return a.overall-b.overall;}},{title:'Over Allocated Memory (KB)',value(row){const typeEl=document.createElement('span');typeEl.innerText=row.overAllocated.toFixed(3);return typeEl;},cmp(a,b){return a.overAllocated-b.overAllocated;}},{title:'Overall Count',value(row){const typeEl=document.createElement('span');typeEl.innerText=row.count;return typeEl;},cmp(a,b){return a.count-b.count;}},{title:'Overall Memory Percent',value(row){const typeEl=document.createElement('span');typeEl.innerText=row.overallPercent.toFixed(3)+'%';return typeEl;},cmp(a,b){return a.overall-b.overall;}},{title:'Overall Allocated Memory Percent',value(row){const typeEl=document.createElement('span');typeEl.innerText=row.overAllocatedPercent.toFixed(3)+'%';return typeEl;},cmp(a,b){return a.overAllocated-b.overAllocated;}}];this.$.table.sortColumnIndex=1;this.$.table.sortDescending=true;},buildSubEntry_(objects,groupEntry,keyToName){const typeGroup=INSTANCE_TYPE_GROUPS[groupEntry.title];for(const instanceType of typeGroup){const e=objects[instanceType];if(e===undefined)continue;delete objects[instanceType];let title=instanceType;if(keyToName!==undefined)title=keyToName(title);groupEntry.add(new Entry(title,e.count,e.overall/1024,e.over_allocated/1024,e.histogram,e.over_allocated_histogram));}},buildUnGroupedEntries_(objects,objectEntry,bucketSize){for(const title of Object.getOwnPropertyNames(objects)){const obj=objects[title];const groupedEntry=new GroupedEntry(title,0,0,0,new Array(bucketSize),new Array(bucketSize));groupedEntry.setFromObject(obj);objectEntry.add(groupedEntry);}},createGroupEntries_(groupEntries,objects,bucketSize){for(const groupName of Object.getOwnPropertyNames(INSTANCE_TYPE_GROUPS)){const groupEntry=new GroupedEntry(groupName,0,0,0,new Array(bucketSize),new Array(bucketSize));if(INSTANCE_TYPE_GROUPS[groupName].realEntry!==undefined){groupEntry.savedRealEntry=objects[INSTANCE_TYPE_GROUPS[groupName].realEntry];delete objects[INSTANCE_TYPE_GROUPS[groupName].realEntry];}
groupEntries[groupName]=groupEntry;}},buildGroupEntries_(groupEntries,objectEntry){for(const groupName of Object.getOwnPropertyNames(groupEntries)){const groupEntry=groupEntries[groupName];if(groupEntry.savedRealEntry!==undefined){groupEntry.setFromObject(groupEntry.savedRealEntry);groupEntry.accumulateUnknown('UNKNOWN');delete groupEntry.savedRealEntry;}
objectEntry.add(groupEntry);}},buildSubEntriesForGroups_(groupEntries,objects){for(const instanceType of Object.getOwnPropertyNames(objects)){if(IGNORED_ENTRIES.match(instanceType)){delete objects[instanceType];continue;}
const e=objects[instanceType];for(const name of Object.getOwnPropertyNames(INSTANCE_TYPE_GROUPS)){const group=INSTANCE_TYPE_GROUPS[name];if(group.match(instanceType)){groupEntries[name].add(new Entry(group.keyToName(instanceType),e.count,e.overall/1024,e.over_allocated/1024,e.histogram,e.over_allocated_histogram));delete objects[instanceType];}}}},build_(objects,objectEntry,bucketSize){delete objects.END;const groupEntries={};this.createGroupEntries_(groupEntries,objects,bucketSize);this.buildSubEntriesForGroups_(groupEntries,objects);this.buildGroupEntries_(groupEntries,objectEntry);this.buildUnGroupedEntries_(objects,objectEntry,bucketSize);},set selection(slices){slices.sortEvents(function(a,b){return b.start-a.start;});const previous=undefined;for(const slice of slices){if(!slice instanceof tr.e.v8.V8GCStatsThreadSlice)continue;const liveObjects=slice.liveObjects;const deadObjects=slice.deadObjects;const isolate=liveObjects.isolate;const isolateEntry=new GroupedEntry('Isolate_'+isolate+' at '+slice.start.toFixed(3)+' ms',0,0,0,[],[]);const liveEntry=new GroupedEntry('live objects',0,0,0,[],[]);const deadEntry=new GroupedEntry('dead objects',0,0,0,[],[]);const liveBucketSize=liveObjects.bucket_sizes.length;const deadBucketSize=deadObjects.bucket_sizes.length;this.build_(tr.b.deepCopy(liveObjects.type_data),liveEntry,liveBucketSize);isolateEntry.add(liveEntry);this.build_(tr.b.deepCopy(deadObjects.type_data),deadEntry,deadBucketSize);isolateEntry.add(deadEntry);isolateEntry.calculatePercentage();this.isolateEntries_.push(isolateEntry);}
this.updateTable_();if(slices.length>1){this.buildOptions_();this.constructDiffTable_();}},updateTable_(){this.constructTable_();this.$.table.tableRows=this.isolateEntries_;this.$.table.rebuild();},});return{};});'use strict';Polymer({is:'tr-ui-e-multi-v8-gc-stats-thread-slice-sub-view',behaviors:[tr.ui.analysis.AnalysisSubView],get selection(){return this.$.content.selection;},set selection(selection){this.$.gcObjectsStats.selection=selection;}});tr.ui.analysis.AnalysisSubView.register('tr-ui-e-multi-v8-gc-stats-thread-slice-sub-view',tr.e.v8.V8GCStatsThreadSlice,{multi:true,title:'V8 GC Stats slices'});'use strict';tr.exportTo('tr.e.v8',function(){const IC_STATS_PROPERTIES=['type','category','scriptName','filePosition','state','isNative','map','propertiesMode','numberOfOwnProperties','instanceType'];class ICStatsEntry{constructor(obj){this.type_=obj.type;if(this.type_.includes('Store')){this.category_='Store';}else if(this.type_.includes('Load')){this.category_='Load';}
this.state_=obj.state;if(obj.functionName){this.functionName_=obj.optimized?'*':'~';this.functionName_+=obj.functionName.length===0?'(anonymous function)':obj.functionName;}
this.offset_=obj.offset;this.scriptName_=obj.scriptName?obj.scriptName:'unknown';this.isNative_=obj.scriptName&&obj.scriptName.includes('native');this.lineNum_=obj.lineNum?obj.lineNum:'unknown';this.filePosition_=this.scriptName_+':'+this.lineNum_;if(this.functionName_){this.filePosition_+=' '+this.functionName_+'+'+this.offset_;}
this.constructor_=obj.constructor?false:true;this.map_=obj.map;if(this.map_){this.propertiesMode_=obj.dict===0?'slow':'fast';}else{this.propertiesMode_='unknown';}
this.numberOfOwnProperties_=obj.own;this.instanceType_=obj.instanceType;this.key_=obj.key;}
get type(){return this.type_;}
get category(){return this.category_;}
get state(){return this.state_;}
get functionName(){return this.functionName_;}
get offset(){return this.offset_;}
get scriptName(){return this.scriptName_;}
get isNative(){return this.isNative_;}
get lineNumber(){return this.lineNum_;}
get isConstructor(){return this.constructor_;}
get map(){return this.map_;}
get propertiesMode(){return this.propertiesMode_;}
get numberOfOwnProperties(){return this.numberOfOwnProperties_;}
get instanceType(){return this.instanceType_;}
get filePosition(){return this.filePosition_;}}
class ICStatsEntryGroup{constructor(property,key){this.property_=property;this.key_=key;this.percentage_=0;this.entries_=[];this.subGroup_=undefined;}
static groupBy(groups,entries,property){for(const entry of entries){const key=entry[property];let group=groups.get(key);if(!group){group=new ICStatsEntryGroup(property,key);groups.set(key,group);}
group.add(entry);}
for(const group of groups.values()){group.percentage=group.length/entries.length;}}
add(entry){this.entries_.push(entry);}
createSubGroup(){if(this.subGroup_)return this.subGroup_;this.subGroup_=new Map();for(const property of IC_STATS_PROPERTIES){if(property===this.property_)continue;const groups=new Map();this.subGroup_.set(property,groups);ICStatsEntryGroup.groupBy(groups,this.entries_,property);}
return this.subGroup_;}
get entries(){return this.entries_;}
get key(){return this.key_;}
get length(){return this.entries_.length;}
get percentage(){return this.percentage_;}
set percentage(value){this.percentage_=value;}}
class ICStatsCollection{constructor(){this.entries_=[];this.groupedEntries_=new Map();}
add(entry){this.entries_.push(entry);}
groupBy(property){if(this.groupedEntries_.has(property)){return Array.from(this.groupedEntries_.get(property).values());}
const groups=new Map();this.groupedEntries_.set(property,groups);ICStatsEntryGroup.groupBy(groups,this.entries_,property);return Array.from(groups.values());}
get entries(){return this.entries_;}
get length(){return this.entries_.length;}}
return{IC_STATS_PROPERTIES,ICStatsEntry,ICStatsEntryGroup,ICStatsCollection,};});'use strict';tr.exportTo('tr.ui.e.v8',function(){const PROPERTIES=tr.e.v8.IC_STATS_PROPERTIES.map(x=>{return{label:x,value:x};});const ICStatsEntry=tr.e.v8.ICStatsEntry;const ICStatsEntryGroup=tr.e.v8.ICStatsEntryGroup;const ICStatsCollection=tr.e.v8.ICStatsCollection;Polymer({is:'tr-ui-e-v8-ic-stats-table',ready(){this.icStatsCollection_=new ICStatsCollection();this.groupKey_=PROPERTIES[0].value;this.selector_=tr.ui.b.createSelector(this,'groupKey','v8ICStatsGroupKey',this.groupKey_,PROPERTIES);Polymer.dom(this.$.groupOption).appendChild(this.selector_);},get groupKey(){return this.groupKey_;},set groupKey(key){this.groupKey_=key;if(this.icStatsCollection_.length===0)return;this.updateTable_(this.groupKey_);},constructTable_(table,groupKey){table.tableColumns=[{title:'',value:row=>{let expanded=false;const buttonEl=tr.ui.b.createButton('details',function(){const previousSibling=Polymer.dom(this).parentNode.parentNode;const parentNode=previousSibling.parentNode;if(expanded){const trEls=parentNode.getElementsByClassName('subTable');Array.from(trEls).map(x=>x.parentNode.removeChild(x));expanded=false;return;}
expanded=true;const subGroups=row.createSubGroup();const tr=document.createElement('tr');tr.classList.add('subTable');tr.appendChild(document.createElement('td'));const td=document.createElement('td');td.colSpan=3;for(const subGroup of subGroups){const property=subGroup[0];const all=Array.from(subGroup[1].values());const group=all.slice(0,20);const divEl=document.createElement('div');const spanEl=document.createElement('span');const subTableEl=document.createElement('tr-ui-b-table');spanEl.innerText=`Top 20 out of ${all.length}`;spanEl.style.fontWeight='bold';spanEl.style.fontSize='14px';divEl.appendChild(spanEl);this.constructTable_(subTableEl,property);subTableEl.tableRows=group;subTableEl.rebuild();divEl.appendChild(subTableEl);td.appendChild(divEl);}
tr.appendChild(td);parentNode.insertBefore(tr,previousSibling.nextSibling);});return buttonEl;}},{title:'Percentage',value(row){const spanEl=document.createElement('span');spanEl.innerText=(row.percentage*100).toFixed(3)+'%';return spanEl;},cmp:(a,b)=>a.percentage-b.percentage},{title:'Count',value(row){const spanEl=document.createElement('span');spanEl.innerText=row.length;return spanEl;},cmp:(a,b)=>a.length-b.length},{title:groupKey,value(row){const spanEl=document.createElement('span');spanEl.innerText=row.key?row.key:'';return spanEl;}}];table.sortColumnIndex=1;table.sortDescending=true;},updateTable_(groupKey){this.constructTable_(this.$.table,groupKey);this.$.table.tableRows=this.icStatsCollection_.groupBy(groupKey);this.$.table.rebuild();},set selection(slices){for(const slice of slices){for(const icStatsObj of slice.icStats){const entry=new ICStatsEntry(icStatsObj);this.icStatsCollection_.add(entry);}}
this.$.total.innerText='Total items: '+this.icStatsCollection_.length;this.updateTable_(this.selector_.selectedValue);}});return{};});'use strict';Polymer({is:'tr-ui-e-multi-v8-ic-stats-thread-slice-sub-view',behaviors:[tr.ui.analysis.AnalysisSubView],get selection(){return this.$.content.selection;},set selection(selection){this.$.table.selection=selection;}});tr.ui.analysis.AnalysisSubView.register('tr-ui-e-multi-v8-ic-stats-thread-slice-sub-view',tr.e.v8.V8ICStatsThreadSlice,{multi:true,title:'V8 IC stats slices'});'use strict';tr.exportTo('tr.e.v8',function(){class RuntimeStatsEntry{constructor(name,count,time){this.name_=name;this.count_=count;this.time_=time;}
get name(){return this.name_;}
get count(){return this.count_;}
get time(){return this.time_;}
addSample(count,time){this.count_+=count;this.time_+=time;}}
class RuntimeStatsGroup extends RuntimeStatsEntry{constructor(name,matchRegex){super(name,0,0);this.regex_=matchRegex;this.entries_=new Map();}
match(name){return this.regex_&&name.match(this.regex_);}
add(entry){const value=this.entries_.get(entry.name);if(value!==undefined){value.addSample(entry.count,entry.time);}else{this.entries_.set(entry.name,entry);}
this.count_+=entry.count;this.time_+=entry.time;}
get values(){return Array.from(this.entries_.values());}}
class RuntimeStatsGroupCollection{constructor(){this.groups_=[new RuntimeStatsGroup('Total'),new RuntimeStatsGroup('IC',/.*IC_.*/),new RuntimeStatsGroup('Optimize',/StackGuard|.*Optimize.*|.*Deoptimize.*|Recompile.*/),new RuntimeStatsGroup('Compile-Background',/(.*CompileBackground.*)/),new RuntimeStatsGroup('Compile',/(^Compile.*)|(.*_Compile.*)/),new RuntimeStatsGroup('Parse-Background',/.*ParseBackground.*/),new RuntimeStatsGroup('Parse',/.*Parse.*/),new RuntimeStatsGroup('Blink C++',/.*Callback.*/),new RuntimeStatsGroup('API',/.*API.*/),new RuntimeStatsGroup('GC',/GC|AllocateInTargetSpace/),new RuntimeStatsGroup('JavaScript',/JS_Execution/),new RuntimeStatsGroup('V8 C++',/.*/)];}
addSlices(slices){for(const slice of slices){if(!(slice instanceof tr.e.v8.V8ThreadSlice))return;let runtimeCallStats;try{runtimeCallStats=JSON.parse(slice.runtimeCallStats);}catch(e){runtimeCallStats=slice.runtimeCallStats;}
if(runtimeCallStats===undefined)continue;for(const[name,stat]of Object.entries(runtimeCallStats)){for(let i=1;i<this.groups_.length;++i){if(this.groups_[i].match(name)){if(stat.length!==2)break;const entry=new RuntimeStatsEntry(name,stat[0],stat[1]);this.groups_[0].addSample(stat[0],stat[1]);this.groups_[i].add(entry);break;}}}}}
get totalTime(){return this.groups_[0].time;}
get totalCount(){return this.groups_[0].count;}
get runtimeGroups(){return this.groups_;}}
return{RuntimeStatsEntry,RuntimeStatsGroup,RuntimeStatsGroupCollection,};});'use strict';tr.exportTo('tr.ui.e.v8',function(){function handleCodeSearch_(event){if(event.target.parentNode===undefined)return;let name=event.target.parentNode.entryName;let url='https://cs.chromium.org/search/?sq=package:chromium&type=cs&q=';if(name.startsWith('API_'))name=name.substring(4);url+=encodeURIComponent(name)+'+file:src/v8/src';window.open(url,'_blank');}
Polymer({is:'tr-ui-e-v8-runtime-call-stats-table',ready(){this.table_=this.$.table;this.totalTime_=0;},constructTable_(totalTime){this.table_.selectionMode=tr.ui.b.TableFormat.SelectionMode.ROW;this.table_.tableColumns=[{title:'Name',value(row){const typeEl=document.createElement('span');typeEl.innerText=row.name;if(!(row instanceof tr.e.v8.RuntimeStatsGroup)){typeEl.title='click ? for code search';typeEl.entryName=row.name;const codeSearchEl=document.createElement('span');codeSearchEl.innerText='?';codeSearchEl.style.float='right';codeSearchEl.style.borderRadius='5px';codeSearchEl.style.backgroundColor='#EEE';codeSearchEl.addEventListener('click',handleCodeSearch_.bind(this));typeEl.appendChild(codeSearchEl);}
return typeEl;},width:'200px',showExpandButtons:true},{title:'Time',value(row){const typeEl=document.createElement('span');typeEl.innerText=(row.time/1000.0).toFixed(3)+' ms';return typeEl;},width:'100px',cmp(a,b){return a.time-b.time;}},{title:'Count',value(row){const typeEl=document.createElement('span');typeEl.innerText=row.count;return typeEl;},width:'100px',cmp(a,b){return a.count-b.count;}},{title:'Percent',value(row){const typeEl=document.createElement('span');typeEl.innerText=(row.time/totalTime*100).toFixed(3)+'%';return typeEl;},width:'100px',cmp(a,b){return a.time-b.time;}}];this.table_.sortColumnIndex=1;this.table_.sortDescending=true;this.table_.subRowsPropertyName='values';},set slices(slices){const runtimeGroupCollection=new tr.e.v8.RuntimeStatsGroupCollection();runtimeGroupCollection.addSlices(slices);if(runtimeGroupCollection.totalTime>0){this.constructTable_(runtimeGroupCollection.totalTime);this.table_.tableRows=runtimeGroupCollection.runtimeGroups;this.table_.rebuild();}}});return{};});'use strict';Polymer({is:'tr-ui-e-multi-v8-thread-slice-sub-view',behaviors:[tr.ui.analysis.AnalysisSubView],get selection(){return this.$.content.selection;},set selection(selection){this.$.runtimeCallStats.slices=selection;this.$.content.selection=selection;}});tr.ui.analysis.AnalysisSubView.register('tr-ui-e-multi-v8-thread-slice-sub-view',tr.e.v8.V8ThreadSlice,{multi:true,title:'V8 slices'});'use strict';Polymer({is:'tr-ui-e-single-v8-gc-stats-thread-slice-sub-view',behaviors:[tr.ui.analysis.AnalysisSubView],get selection(){return this.$.content.selection;},set selection(selection){this.$.content.selection=selection;this.$.gcObjectsStats.selection=selection;}});tr.ui.analysis.AnalysisSubView.register('tr-ui-e-single-v8-gc-stats-thread-slice-sub-view',tr.e.v8.V8GCStatsThreadSlice,{multi:false,title:'V8 GC stats slice'});'use strict';Polymer({is:'tr-ui-e-single-v8-ic-stats-thread-slice-sub-view',behaviors:[tr.ui.analysis.AnalysisSubView],get selection(){return this.$.content.selection;},set selection(selection){this.$.table.selection=selection;}});tr.ui.analysis.AnalysisSubView.register('tr-ui-e-single-v8-ic-stats-thread-slice-sub-view',tr.e.v8.V8ICStatsThreadSlice,{multi:false,title:'V8 IC stats slice'});'use strict';Polymer({is:'tr-ui-e-single-v8-thread-slice-sub-view',behaviors:[tr.ui.analysis.AnalysisSubView],get selection(){return this.$.content.selection;},set selection(selection){this.$.runtimeCallStats.slices=selection;this.$.content.selection=selection;}});tr.ui.analysis.AnalysisSubView.register('tr-ui-e-single-v8-thread-slice-sub-view',tr.e.v8.V8ThreadSlice,{multi:false,title:'V8 slice'});'use strict';tr.exportTo('tr.c',function(){function ScriptingObject(){}
ScriptingObject.prototype={onModelChanged(model){}};return{ScriptingObject,};});'use strict';tr.exportTo('tr.c',function(){function ScriptingController(brushingStateController){this.brushingStateController_=brushingStateController;this.scriptObjectNames_=[];this.scriptObjectValues_=[];this.brushingStateController.addEventListener('model-changed',this.onModelChanged_.bind(this));const typeInfos=ScriptingObjectRegistry.getAllRegisteredTypeInfos();typeInfos.forEach(function(typeInfo){this.addScriptObject(typeInfo.metadata.name,typeInfo.constructor);global[typeInfo.metadata.name]=typeInfo.constructor;},this);}
function ScriptingObjectRegistry(){}
const options=new tr.b.ExtensionRegistryOptions(tr.b.BASIC_REGISTRY_MODE);tr.b.decorateExtensionRegistry(ScriptingObjectRegistry,options);ScriptingController.prototype={get brushingStateController(){return this.brushingStateController_;},onModelChanged_(){this.scriptObjectValues_.forEach(function(v){if(v.onModelChanged){v.onModelChanged(this.brushingStateController.model);}},this);},addScriptObject(name,value){this.scriptObjectNames_.push(name);this.scriptObjectValues_.push(value);},executeCommand(command){const f=new Function(this.scriptObjectNames_,'return eval('+command+')');return f.apply(null,this.scriptObjectValues_);}};return{ScriptingController,ScriptingObjectRegistry,};});'use strict';tr.exportTo('tr.metrics',function(){function MetricRegistry(){}
const options=new tr.b.ExtensionRegistryOptions(tr.b.BASIC_REGISTRY_MODE);options.defaultMetadata={};tr.b.decorateExtensionRegistry(MetricRegistry,options);function camelCaseToHackerString(camelCase){let hackerString='';for(const c of camelCase){const lowered=c.toLocaleLowerCase();if(lowered===c){hackerString+=c;}else{hackerString+='_'+lowered;}}
return hackerString;}
function getCallStack(){try{throw new Error();}catch(error){return error.stack;}}
function getPathsFromStack(stack){return stack.split('\n').map(line=>{line=line.replace(/^ */,'').split(':');if(line.length<4)return'';return line[line.length-3].split('/');}).filter(tr.b.identity);}
MetricRegistry.checkFilename=function(metricName,opt_metricPathForTest){if(metricName==='runtimeStatsTotalMetric'||metricName==='v8AndMemoryMetrics'){return;}
const expectedFilename=camelCaseToHackerString(metricName)+'.html';const stack=getCallStack();let metricPath=opt_metricPathForTest;if(metricPath===undefined){const paths=getPathsFromStack(stack);const METRIC_STACK_INDEX=5;if(paths.length<=METRIC_STACK_INDEX||paths[METRIC_STACK_INDEX].join('/')===paths[0].join('/')){return;}
metricPath=paths[METRIC_STACK_INDEX].slice(paths[METRIC_STACK_INDEX].length-2);}
if(!metricPath[1].endsWith('_test.html')&&metricPath[1]!==expectedFilename&&metricPath.join('_')!==expectedFilename){throw new Error('Expected '+metricName+' to be in a file named '+
expectedFilename+'; actual: '+metricPath.join('/')+'; stack: '+stack.replace(/\n/g,'\n '));}};MetricRegistry.addEventListener('will-register',function(e){const metric=e.typeInfo.constructor;if(!(metric instanceof Function)){throw new Error('Metrics must be functions.');}
if(!metric.name.endsWith('Metric')&&!metric.name.endsWith('Metrics')){throw new Error('Metric names must end with "Metric" or "Metrics".');}
if(metric.length<2){throw new Error('Metrics take a HistogramSet and a Model and '+'optionally an options dictionary.');}
MetricRegistry.checkFilename(metric.name);});return{MetricRegistry,};});'use strict';tr.exportTo('tr.metrics.sh',function(){const MAX_INPUT_EVENT_TO_STARTUP_DELAY_IN_MS=2000;const MIN_DRAW_DELAY_IN_MS=80;const MAX_DRAW_DELAY_IN_MS=2000;function findProcess(processName,model){for(const pid in model.processes){const process=model.processes[pid];if(process.name===processName){return process;}}
return undefined;}
function findThreads(process,threadPrefix){if(process===undefined)return undefined;const threads=[];for(const tid in process.threads){const thread=process.threads[tid];if(thread.name.startsWith(threadPrefix)){threads.push(thread);}}
return threads;}
function findUIThread(process){if(process===undefined)return undefined;const threads=findThreads(process,'UI Thread');if(threads!==undefined&&threads.length===1){return threads[0];}
return process.threads[process.pid];}
function findLaunchSlices(model){const launches=[];const binders=findThreads(findProcess('system_server',model),'Binder');for(const binderId in binders){const binder=binders[binderId];for(const sliceId in binder.asyncSliceGroup.slices){const slice=binder.asyncSliceGroup.slices[sliceId];if(slice.title.startsWith('launching:')){launches.push(slice);}}}
return launches;}
function findDrawSlice(appName,startNotBefore,model){let drawSlice=undefined;const thread=findUIThread(findProcess(appName,model));if(thread===undefined)return undefined;for(const sliceId in thread.sliceGroup.slices){const slice=thread.sliceGroup.slices[sliceId];if(slice.start<startNotBefore+MIN_DRAW_DELAY_IN_MS||slice.start>startNotBefore+MAX_DRAW_DELAY_IN_MS)continue;if(slice.title!=='draw')continue;if(drawSlice===undefined||slice.start<drawSlice.start){drawSlice=slice;}}
return drawSlice;}
function findInputEventSlice(endNotAfter,model){const endNotBefore=endNotAfter-MAX_INPUT_EVENT_TO_STARTUP_DELAY_IN_MS;let inputSlice=undefined;const systemUi=findUIThread(findProcess('com.android.systemui',model));if(systemUi===undefined)return undefined;for(const sliceId in systemUi.asyncSliceGroup.slices){const slice=systemUi.asyncSliceGroup.slices[sliceId];if(slice.end>endNotAfter||slice.end<endNotBefore)continue;if(slice.title!=='deliverInputEvent')continue;if(inputSlice===undefined||slice.end>inputSlice.end){inputSlice=slice;}}
return inputSlice;}
function computeStartupTimeInMs(appName,launchSlice,model){let startupStart=launchSlice.start;let startupEnd=launchSlice.end;const drawSlice=findDrawSlice(appName,launchSlice.end,model);if(drawSlice!==undefined){startupEnd=drawSlice.end;}
const inputSlice=findInputEventSlice(launchSlice.start,model);if(inputSlice!==undefined){startupStart=inputSlice.start;}
return startupEnd-startupStart;}
function measureStartup(histograms,model){const launches=findLaunchSlices(model);for(const sliceId in launches){const launchSlice=launches[sliceId];const appName=launchSlice.title.split(': ')[1];const startupMs=computeStartupTimeInMs(appName,launchSlice,model);histograms.createHistogram(`android:systrace:startup:${appName}`,tr.b.Unit.byName.timeDurationInMs_smallerIsBetter,startupMs);}}
function measureThreadStates(histograms,model,rangeOfInterest){for(const pid in model.processes){const process=model.processes[pid];if(process.name===undefined)continue;let hasSlices=false;let timeRunning=0;let timeRunnable=0;let timeSleeping=0;let timeUninterruptible=0;let timeBlockIO=0;let timeUnknown=0;for(const tid in process.threads){const thread=process.threads[tid];if(thread.timeSlices===undefined)continue;for(const sliceId in thread.timeSlices){const slice=thread.timeSlices[sliceId];const sliceRange=tr.b.math.Range.fromExplicitRange(slice.start,slice.end);const intersection=rangeOfInterest.findIntersection(sliceRange);const duration=intersection.duration;if(duration===0)continue;hasSlices=true;if(slice.title==='Running'){timeRunning+=duration;}else if(slice.title==='Runnable'){timeRunnable+=duration;}else if(slice.title==='Sleeping'){timeSleeping+=duration;}else if(slice.title.startsWith('Uninterruptible')){timeUninterruptible+=duration;if(slice.title.includes('Block I/O'))timeBlockIO+=duration;}else{timeUnknown+=duration;}}}
if(hasSlices){const wall=rangeOfInterest.max-rangeOfInterest.min;histograms.createHistogram(`android:systrace:threadtime:${process.name}:running`,tr.b.Unit.byName.normalizedPercentage,timeRunning/wall);histograms.createHistogram(`android:systrace:threadtime:${process.name}:runnable`,tr.b.Unit.byName.normalizedPercentage,timeRunnable/wall);histograms.createHistogram(`android:systrace:threadtime:${process.name}:sleeping`,tr.b.Unit.byName.normalizedPercentage,timeSleeping/wall);histograms.createHistogram(`android:systrace:threadtime:${process.name}:blockio`,tr.b.Unit.byName.normalizedPercentage,timeBlockIO/wall);histograms.createHistogram(`android:systrace:threadtime:${process.name}:uninterruptible`,tr.b.Unit.byName.normalizedPercentage,timeUninterruptible/wall);if(timeUnknown>0){histograms.createHistogram(`android:systrace:threadtime:${process.name}:unknown`,tr.b.Unit.byName.normalizedPercentage,timeUnknown/wall);}}}}
function androidSystraceMetric(histograms,model,options){let rangeOfInterest=model.bounds;if(options!==undefined&&options.rangeOfInterest!==undefined){rangeOfInterest=options.rangeOfInterest;}
measureStartup(histograms,model);measureThreadStates(histograms,model,rangeOfInterest);}
tr.metrics.MetricRegistry.register(androidSystraceMetric,{supportsRangeOfInterest:true});return{androidSystraceMetric,};});'use strict';tr.exportTo('tr.b.math',function(){const PERCENTILE_PRECISION=1e-7;function PiecewiseLinearFunction(){this.pieces=[];}
PiecewiseLinearFunction.prototype={push(x1,y1,x2,y2){if(x1>=x2){throw new Error('Invalid segment');}
if(this.pieces.length>0&&this.pieces[this.pieces.length-1].x2>x1){throw new Error('Potentially overlapping segments');}
if(x1<x2){this.pieces.push(new Piece(x1,y1,x2,y2));}},partBelow(y){return this.pieces.reduce((acc,p)=>(acc+p.partBelow(y)),0);},get min(){return this.pieces.reduce((acc,p)=>Math.min(acc,p.min),Infinity);},get max(){return this.pieces.reduce((acc,p)=>Math.max(acc,p.max),-Infinity);},get average(){let weightedSum=0;let totalWeight=0;this.pieces.forEach(function(piece){weightedSum+=piece.width*piece.average;totalWeight+=piece.width;});if(totalWeight===0)return 0;return weightedSum/totalWeight;},percentile(percent){if(!(percent>=0&&percent<=1)){throw new Error('percent must be [0,1]');}
let lower=this.min;let upper=this.max;const total=this.partBelow(upper);if(total===0)return 0;while(upper-lower>PERCENTILE_PRECISION){const middle=(lower+upper)/2;const below=this.partBelow(middle);if(below/total<percent){lower=middle;}else{upper=middle;}}
return(lower+upper)/2;}};function Piece(x1,y1,x2,y2){this.x1=x1;this.y1=y1;this.x2=x2;this.y2=y2;}
Piece.prototype={partBelow(y){const width=this.width;if(width===0)return 0;const minY=this.min;const maxY=this.max;if(y>=maxY)return width;if(y<minY)return 0;return(y-minY)/(maxY-minY)*width;},get min(){return Math.min(this.y1,this.y2);},get max(){return Math.max(this.y1,this.y2);},get average(){return(this.y1+this.y2)/2;},get width(){return this.x2-this.x1;}};return{PiecewiseLinearFunction,};});'use strict';tr.exportTo('tr.metrics.v8.utils',function(){const IDLE_TASK_EVENT='SingleThreadIdleTaskRunner::RunTask';const V8_EXECUTE='V8.Execute';const GC_EVENT_PREFIX='V8.GC';const FULL_GC_EVENT='V8.GCCompactor';const LOW_MEMORY_EVENT='V8.GCLowMemoryNotification';const MAJOR_GC_EVENT='MajorGC';const MINOR_GC_EVENT='MinorGC';const TOP_GC_EVENTS={'V8.GCCompactor':'v8-gc-full-mark-compactor','V8.GCFinalizeMC':'v8-gc-latency-mark-compactor','V8.GCFinalizeMCReduceMemory':'v8-gc-memory-mark-compactor','V8.GCIncrementalMarking':'v8-gc-incremental-step','V8.GCIncrementalMarkingFinalize':'v8-gc-incremental-finalize','V8.GCIncrementalMarkingStart':'v8-gc-incremental-start','V8.GCPhantomHandleProcessingCallback':'v8-gc-phantom-handle-callback','V8.GCScavenger':'v8-gc-scavenger'};const LOW_MEMORY_MARK_COMPACTOR='v8-gc-low-memory-mark-compactor';function findParent(event,predicate){let parent=event.parentSlice;while(parent){if(predicate(parent)){return parent;}
parent=parent.parentSlice;}
return null;}
function isIdleTask(event){return event.title===IDLE_TASK_EVENT;}
function isLowMemoryEvent(event){return event.title===LOW_MEMORY_EVENT;}
function isV8Event(event){return event.title.startsWith('V8.');}
function isV8ExecuteEvent(event){return event.title===V8_EXECUTE;}
function isTopV8ExecuteEvent(event){return isV8ExecuteEvent(event)&&findParent(isV8ExecuteEvent)===null;}
function isGarbageCollectionEvent(event){return event.title&&event.title.startsWith(GC_EVENT_PREFIX)&&event.title!==LOW_MEMORY_EVENT;}
function isTopGarbageCollectionEvent(event){return event.title in TOP_GC_EVENTS;}
function isForcedGarbageCollectionEvent(event){return findParent(event,isLowMemoryEvent)!==null;}
function isSubGarbageCollectionEvent(event){return isGarbageCollectionEvent(event)&&event.parentSlice&&(isTopGarbageCollectionEvent(event.parentSlice)||event.parentSlice.title===MAJOR_GC_EVENT||event.parentSlice.title===MINOR_GC_EVENT);}
function isCompileOptimizeEvent(event){return(event.title==='V8.OptimizeCode'||event.title==='V8.RecompileSynchronous'||event.title==='V8.RecompileConcurrent');}
function isCompileUnoptimizeEvent(event){return(event.title==='V8.CompileIgnition'||event.title==='V8.CompileUnoptimizedInnerFunctions'||event.title==='V8.Compile'||event.title==='V8.CompileEval'||event.title==='V8.CompileCode'||event.title==='V8.CompileScript');}
function isCompileParseEvent(event){return(event.title==='V8.PreParse'||event.title==='V8.ParseFunction'||event.title==='V8.ParseProgram');}
function isCompileEvent(event){return tr.b.getCategoryParts(event.category).includes('disabled-by-default-v8.compile');}
function isFullMarkCompactorEvent(event){return event.title==='V8.GCCompactor';}
function isIncrementalMarkingEvent(event){return event.title.startsWith('V8.GCIncrementalMarking');}
function isLatencyMarkCompactorEvent(event){return event.title==='V8.GCFinalizeMC';}
function isMemoryMarkCompactorEvent(event){return event.title==='V8.GCFinalizeMCReduceMemory';}
function isScavengerEvent(event){return event.title==='V8.GCScavenger';}
function topGarbageCollectionEventName(event){if(event.title===FULL_GC_EVENT){if(findParent(event,isLowMemoryEvent)){return LOW_MEMORY_MARK_COMPACTOR;}}
return TOP_GC_EVENTS[event.title];}
function subGarbageCollectionEventName(event){const topEvent=findParent(event,isTopGarbageCollectionEvent);const prefix=topEvent?topGarbageCollectionEventName(topEvent):'unknown';const name=event.title.replace('V8.GC_MC_','').replace('V8.GC_SCAVENGER_','').replace('V8.GC_','').replace(/_/g,'-').toLowerCase();return prefix+'-'+name;}
function groupAndProcessEvents(model,filterCallback,nameCallback,processCallback){const nameToEvents={};for(const event of model.getDescendantEvents()){if(!filterCallback(event))continue;const name=nameCallback(event);nameToEvents[name]=nameToEvents[name]||[];nameToEvents[name].push(event);}
for(const[name,events]of Object.entries(nameToEvents)){processCallback(name,events);}}
function unionOfIntervals(intervals){if(intervals.length===0)return[];return tr.b.math.mergeRanges(intervals.map(x=>{return{min:x.start,max:x.end};}),1e-6,function(ranges){return{start:ranges.reduce((acc,x)=>Math.min(acc,x.min),ranges[0].min),end:ranges.reduce((acc,x)=>Math.max(acc,x.max),ranges[0].max)};});}
function hasV8Stats(globalMemoryDump){let v8stats=undefined;globalMemoryDump.iterateContainerDumps(function(dump){v8stats=v8stats||dump.getMemoryAllocatorDumpByFullName('v8');});return!!v8stats;}
function rangeForMemoryDumps(model){const startOfFirstDumpWithV8=model.globalMemoryDumps.filter(hasV8Stats).reduce((start,dump)=>Math.min(start,dump.start),Infinity);if(startOfFirstDumpWithV8===Infinity)return new tr.b.math.Range();return tr.b.math.Range.fromExplicitRange(startOfFirstDumpWithV8,Infinity);}
return{findParent,groupAndProcessEvents,isCompileEvent,isCompileOptimizeEvent,isCompileUnoptimizeEvent,isCompileParseEvent,isForcedGarbageCollectionEvent,isFullMarkCompactorEvent,isGarbageCollectionEvent,isIdleTask,isIncrementalMarkingEvent,isLatencyMarkCompactorEvent,isLowMemoryEvent,isMemoryMarkCompactorEvent,isScavengerEvent,isSubGarbageCollectionEvent,isTopGarbageCollectionEvent,isTopV8ExecuteEvent,isV8Event,isV8ExecuteEvent,rangeForMemoryDumps,subGarbageCollectionEventName,topGarbageCollectionEventName,unionOfIntervals,};});'use strict';tr.exportTo('tr.metrics.blink',function(){const BLINK_GC_EVENTS={'BlinkGCMarking':'blink-gc-marking','ThreadState::completeSweep':'blink-gc-complete-sweep','ThreadState::performIdleLazySweep':'blink-gc-idle-lazy-sweep'};function isBlinkGarbageCollectionEvent(event){return event.title in BLINK_GC_EVENTS;}
function blinkGarbageCollectionEventName(event){return BLINK_GC_EVENTS[event.title];}
function blinkGcMetric(histograms,model){addDurationOfTopEvents(histograms,model);addTotalDurationOfTopEvents(histograms,model);addIdleTimesOfTopEvents(histograms,model);addTotalIdleTimesOfTopEvents(histograms,model);}
tr.metrics.MetricRegistry.register(blinkGcMetric);const timeDurationInMs_smallerIsBetter=tr.b.Unit.byName.timeDurationInMs_smallerIsBetter;const percentage_biggerIsBetter=tr.b.Unit.byName.normalizedPercentage_biggerIsBetter;const CUSTOM_BOUNDARIES=tr.v.HistogramBinBoundaries.createLinear(0,20,200).addExponentialBins(200,100);function createNumericForTopEventTime(name){const n=new tr.v.Histogram(name,timeDurationInMs_smallerIsBetter,CUSTOM_BOUNDARIES);n.customizeSummaryOptions({avg:true,count:true,max:true,min:false,std:true,sum:true,percentile:[0.90]});return n;}
function createNumericForIdleTime(name){const n=new tr.v.Histogram(name,timeDurationInMs_smallerIsBetter,CUSTOM_BOUNDARIES);n.customizeSummaryOptions({avg:true,count:false,max:true,min:false,std:false,sum:true,percentile:[]});return n;}
function createPercentage(name,numerator,denominator){const histogram=new tr.v.Histogram(name,percentage_biggerIsBetter);if(denominator===0){histogram.addSample(0);}else{histogram.addSample(numerator/denominator);}
return histogram;}
function addDurationOfTopEvents(histograms,model){tr.metrics.v8.utils.groupAndProcessEvents(model,isBlinkGarbageCollectionEvent,blinkGarbageCollectionEventName,function(name,events){const cpuDuration=createNumericForTopEventTime(name);events.forEach(function(event){cpuDuration.addSample(event.cpuDuration);});histograms.addHistogram(cpuDuration);});}
function addTotalDurationOfTopEvents(histograms,model){tr.metrics.v8.utils.groupAndProcessEvents(model,isBlinkGarbageCollectionEvent,event=>'blink-gc-total',function(name,events){const cpuDuration=createNumericForTopEventTime(name);events.forEach(function(event){cpuDuration.addSample(event.cpuDuration);});histograms.addHistogram(cpuDuration);});}
function addIdleTimesOfTopEvents(histograms,model){tr.metrics.v8.utils.groupAndProcessEvents(model,isBlinkGarbageCollectionEvent,blinkGarbageCollectionEventName,function(name,events){addIdleTimes(histograms,model,name,events);});}
function addTotalIdleTimesOfTopEvents(histograms,model){tr.metrics.v8.utils.groupAndProcessEvents(model,isBlinkGarbageCollectionEvent,event=>'blink-gc-total',function(name,events){addIdleTimes(histograms,model,name,events);});}
function addIdleTimes(histograms,model,name,events){const cpuDuration=createNumericForIdleTime(name+'_cpu');const insideIdle=createNumericForIdleTime(name+'_inside_idle');const outsideIdle=createNumericForIdleTime(name+'_outside_idle');const idleDeadlineOverrun=createNumericForIdleTime(name+'_idle_deadline_overrun');events.forEach(function(event){const idleTask=tr.metrics.v8.utils.findParent(event,tr.metrics.v8.utils.isIdleTask);let inside=0;let overrun=0;if(idleTask){const allottedTime=idleTask.args.allotted_time_ms;if(event.duration>allottedTime){overrun=event.duration-allottedTime;inside=event.cpuDuration*allottedTime/event.duration;}else{inside=event.cpuDuration;}}
cpuDuration.addSample(event.cpuDuration);insideIdle.addSample(inside);outsideIdle.addSample(event.cpuDuration-inside);idleDeadlineOverrun.addSample(overrun);});histograms.addHistogram(idleDeadlineOverrun);histograms.addHistogram(outsideIdle);const percentage=createPercentage(name+'_percentage_idle',insideIdle.sum,cpuDuration.sum);histograms.addHistogram(percentage);}
return{blinkGcMetric,};});'use strict';tr.exportTo('tr.metrics.sh',function(){function getCpuSnapshotsFromModel(model){const snapshots=[];for(const pid in model.processes){const snapshotInstances=model.processes[pid].objects.getAllInstancesNamed('CPUSnapshots');if(!snapshotInstances)continue;for(const object of snapshotInstances[0].snapshots){snapshots.push(object.args.processes);}}
return snapshots;}
function getProcessSumsFromSnapshot(snapshot){const processSums=new Map();for(const processData of snapshot){const processName=processData.name;if(!(processSums.has(processName))){processSums.set(processName,{sum:0.0,paths:new Set()});}
processSums.get(processName).sum+=parseFloat(processData.pCpu);if(processData.path){processSums.get(processName).paths.add(processData.path);}}
return processSums;}
function buildNumericsFromSnapshots(snapshots){const processNumerics=new Map();for(const snapshot of snapshots){const processSums=getProcessSumsFromSnapshot(snapshot);for(const[processName,processData]of processSums.entries()){if(!(processNumerics.has(processName))){processNumerics.set(processName,{numeric:new tr.v.Histogram('cpu:percent:'+processName,tr.b.Unit.byName.normalizedPercentage_smallerIsBetter),paths:new Set()});}
processNumerics.get(processName).numeric.addSample(processData.sum/100.0);for(const path of processData.paths){processNumerics.get(processName).paths.add(path);}}}
return processNumerics;}
function cpuProcessMetric(histograms,model){const snapshots=getCpuSnapshotsFromModel(model);const processNumerics=buildNumericsFromSnapshots(snapshots);for(const[processName,processData]of processNumerics){const numeric=processData.numeric;const missingSnapshotCount=snapshots.length-numeric.numValues;for(let i=0;i<missingSnapshotCount;i++){numeric.addSample(0);}
numeric.diagnostics.set('paths',new
tr.v.d.Generic([...processData.paths]));histograms.addHistogram(numeric);}}
tr.metrics.MetricRegistry.register(cpuProcessMetric);return{cpuProcessMetric,};});'use strict';tr.exportTo('tr.metrics',function(){function sampleMetric(histograms,model){const hist=new tr.v.Histogram('foo',tr.b.Unit.byName.sizeInBytes_smallerIsBetter);hist.addSample(9);hist.addSample(91,{bar:new tr.v.d.Generic({hello:42})});for(const expectation of model.userModel.expectations){if(expectation instanceof tr.model.um.ResponseExpectation){}else if(expectation instanceof tr.model.um.AnimationExpectation){}else if(expectation instanceof tr.model.um.IdleExpectation){}else if(expectation instanceof tr.model.um.LoadExpectation){}}
const chromeHelper=model.getOrCreateHelper(tr.model.helpers.ChromeModelHelper);for(const[pid,process]of Object.entries(model.processes)){}
histograms.addHistogram(hist);}
tr.metrics.MetricRegistry.register(sampleMetric);return{sampleMetric,};});'use strict';tr.exportTo('tr.metrics',function(){const HANDLE_INPUT_EVENT_TITLE='WebViewImpl::handleInputEvent';function findPrecedingEvents_(eventsA,eventsB){const events=new Map();let eventsBIndex=0;for(const eventA of eventsA){for(;eventsBIndex<eventsB.length;eventsBIndex++){if(eventsB[eventsBIndex].start>eventA.start)break;}
if(eventsBIndex>0){events.set(eventA,eventsB[eventsBIndex-1]);}}
return events;}
function findFollowingEvents_(eventsA,eventsB){const events=new Map();let eventsBIndex=0;for(const eventA of eventsA){for(;eventsBIndex<eventsB.length;eventsBIndex++){if(eventsB[eventsBIndex].start>=eventA.start)break;}
if(eventsBIndex>=0&&eventsBIndex<eventsB.length){events.set(eventA,eventsB[eventsBIndex]);}}
return events;}
function getSpaNavigationStartCandidates_(rendererHelper,browserHelper){const isNavStartEvent=e=>{if(e.title===HANDLE_INPUT_EVENT_TITLE&&e.args.type==='MouseUp'){return true;}
return e.title==='NavigationControllerImpl::GoToIndex';};return[...rendererHelper.mainThread.sliceGroup.getDescendantEvents(),...browserHelper.mainThread.sliceGroup.getDescendantEvents()].filter(isNavStartEvent);}
function getSpaNavigationEvents_(rendererHelper){const isNavEvent=e=>e.category==='blink'&&e.title==='FrameLoader::updateForSameDocumentNavigation';return[...rendererHelper.mainThread.sliceGroup.getDescendantEvents()].filter(isNavEvent);}
function getInputLatencyEvents_(browserHelper){const isInputLatencyEvent=e=>e.title==='InputLatency::MouseUp';return browserHelper.getAllAsyncSlicesMatching(isInputLatencyEvent);}
function getInputLatencyEventByBindIdMap_(browserHelper){const inputLatencyEventByBindIdMap=new Map();for(const event of getInputLatencyEvents_(browserHelper)){inputLatencyEventByBindIdMap.set(event.args.data.trace_id,event);}
return inputLatencyEventByBindIdMap;}
function getSpaNavigationEventToNavigationStartMap_(rendererHelper,browserHelper){const mainThread=rendererHelper.mainThread;const spaNavEvents=getSpaNavigationEvents_(rendererHelper);const navStartCandidates=getSpaNavigationStartCandidates_(rendererHelper,browserHelper).sort(tr.importer.compareEvents);const spaNavEventToNavStartCandidateMap=findPrecedingEvents_(spaNavEvents,navStartCandidates);const inputLatencyEventByBindIdMap=getInputLatencyEventByBindIdMap_(browserHelper);const spaNavEventToNavStartEventMap=new Map();for(const[spaNavEvent,navStartCandidate]of
spaNavEventToNavStartCandidateMap){if(navStartCandidate.title===HANDLE_INPUT_EVENT_TITLE){const inputLatencySlice=inputLatencyEventByBindIdMap.get(Number(navStartCandidate.parentSlice.bindId));if(inputLatencySlice){spaNavEventToNavStartEventMap.set(spaNavEvent,inputLatencySlice);}}else{spaNavEventToNavStartEventMap.set(spaNavEvent,navStartCandidate);}}
return spaNavEventToNavStartEventMap;}
function getFirstPaintEvents_(rendererHelper){const isFirstPaintEvent=e=>e.category==='blink'&&e.title==='PaintLayerCompositor::updateIfNeededRecursive';return[...rendererHelper.mainThread.sliceGroup.getDescendantEvents()].filter(isFirstPaintEvent);}
function getSpaNavigationEventToFirstPaintEventMap_(rendererHelper){const spaNavEvents=getSpaNavigationEvents_(rendererHelper).sort(tr.importer.compareEvents);const firstPaintEvents=getFirstPaintEvents_(rendererHelper).sort(tr.importer.compareEvents);return findFollowingEvents_(spaNavEvents,firstPaintEvents);}
function findSpaNavigationsOnRenderer(rendererHelper,browserHelper){const spaNavEventToNavStartMap=getSpaNavigationEventToNavigationStartMap_(rendererHelper,browserHelper);const spaNavEventToFirstPaintEventMap=getSpaNavigationEventToFirstPaintEventMap_(rendererHelper);const spaNavigations=[];for(const[spaNavEvent,navStartEvent]of
spaNavEventToNavStartMap){if(spaNavEventToFirstPaintEventMap.has(spaNavEvent)){const firstPaintEvent=spaNavEventToFirstPaintEventMap.get(spaNavEvent);const isNavStartAsyncSlice=navStartEvent instanceof tr.model.AsyncSlice;spaNavigations.push({navStartCandidates:{inputLatencyAsyncSlice:isNavStartAsyncSlice?navStartEvent:undefined,goToIndexSlice:isNavStartAsyncSlice?undefined:navStartEvent},firstPaintEvent,url:spaNavEvent.args.url});}}
return spaNavigations;}
return{findSpaNavigationsOnRenderer,};});'use strict';tr.exportTo('tr.metrics.sh',function(){function perceptualBlend(ir,index,score){return Math.exp(1-score);}
function filterExpectationsByRange(irs,opt_range){const filteredExpectations=[];irs.forEach(function(ir){if(!(ir instanceof tr.model.um.UserExpectation))return;if(!opt_range||opt_range.intersectsExplicitRangeInclusive(ir.start,ir.end)){filteredExpectations.push(ir);}});return filteredExpectations;}
return{perceptualBlend,filterExpectationsByRange,};});'use strict';tr.exportTo('tr.metrics.sh',function(){function generateTimeBreakdownTree(mainThread,rangeOfInterest,getEventStart,getEventDuration,getEventSelfTime){if(mainThread===null)return;const breakdownTree={};for(const title of
tr.e.chrome.ChromeUserFriendlyCategoryDriver.ALL_TITLES){breakdownTree[title]={total:0,events:{}};}
for(const event of mainThread.getDescendantEvents()){const eventStart=getEventStart(event);const eventDuration=getEventDuration(event);const eventSelfTime=getEventSelfTime(event);const eventEnd=eventStart+eventDuration;if(!rangeOfInterest.intersectsExplicitRangeExclusive(eventStart,eventEnd)){continue;}
if(eventSelfTime===undefined)continue;const title=tr.e.chrome.ChromeUserFriendlyCategoryDriver.fromEvent(event);let timeIntersectionRatio=0;if(eventDuration>0){timeIntersectionRatio=rangeOfInterest.findExplicitIntersectionDuration(eventStart,eventEnd)/eventDuration;}
const v8Runtime=event.args['runtime-call-stat'];if(v8Runtime!==undefined){const v8RuntimeObject=JSON.parse(v8Runtime);for(const runtimeCall in v8RuntimeObject){if(v8RuntimeObject[runtimeCall].length===2){if(breakdownTree.v8_runtime.events[runtimeCall]===undefined){breakdownTree.v8_runtime.events[runtimeCall]=0;}
const runtimeTime=tr.b.Unit.timestampFromUs(v8RuntimeObject[runtimeCall][1]*timeIntersectionRatio);breakdownTree.v8_runtime.total+=runtimeTime;breakdownTree.v8_runtime.events[runtimeCall]+=runtimeTime;}}}
const approximatedSelfTimeContribution=eventSelfTime*timeIntersectionRatio;breakdownTree[title].total+=approximatedSelfTimeContribution;if(breakdownTree[title].events[event.title]===undefined){breakdownTree[title].events[event.title]=0;}
breakdownTree[title].events[event.title]+=approximatedSelfTimeContribution;}
return breakdownTree;}
function addIdleAndBlockByNetworkBreakdown_(breakdownTree,mainThreadEvents,networkEvents,rangeOfInterest){let idleRanges=[rangeOfInterest];const mainThreadEventRanges=tr.b.math.convertEventsToRanges(mainThreadEvents);const networkEventRanges=tr.b.math.convertEventsToRanges(networkEvents);const eventRanges=mainThreadEventRanges.concat(networkEventRanges);eventRanges.sort((a,b)=>a.min-b.min);for(const eventRange of eventRanges){if(!eventRange||eventRange.isEmpty||eventRange.duration<0){throw new Error('Range is invalid');}
const newLastIdleRanges=tr.b.math.Range.findDifference(idleRanges[idleRanges.length-1],eventRange);idleRanges.pop();idleRanges=idleRanges.concat(newLastIdleRanges);if(idleRanges.length===0)break;}
const totalFreeDuration=tr.b.math.Statistics.sum(idleRanges,range=>range.duration);breakdownTree.idle={total:totalFreeDuration,events:{}};let totalBlockedDuration=rangeOfInterest.duration;for(const component of Object.values(breakdownTree)){totalBlockedDuration-=component.total;}
breakdownTree.blocked_on_network={total:totalBlockedDuration,events:{}};}
function generateWallClockTimeBreakdownTree(mainThread,networkEvents,rangeOfInterest){function getEventStart(e){return e.start;}
function getEventDuration(e){return e.duration;}
function getEventSelfTime(e){return e.selfTime;}
const breakdownTree=generateTimeBreakdownTree(mainThread,rangeOfInterest,getEventStart,getEventDuration,getEventSelfTime);const mainThreadEventsInRange=tr.model.helpers.getSlicesIntersectingRange(rangeOfInterest,mainThread.sliceGroup.topLevelSlices);addIdleAndBlockByNetworkBreakdown_(breakdownTree,mainThreadEventsInRange,networkEvents,rangeOfInterest);return breakdownTree;}
function generateCpuTimeBreakdownTree(mainThread,rangeOfInterestCpuTime){function getEventStart(e){return e.cpuStart;}
function getEventDuration(e){return e.cpuDuration;}
function getEventSelfTime(e){return e.cpuSelfTime;}
return generateTimeBreakdownTree(mainThread,rangeOfInterestCpuTime,getEventStart,getEventDuration,getEventSelfTime);}
return{generateTimeBreakdownTree,generateWallClockTimeBreakdownTree,generateCpuTimeBreakdownTree,};});'use strict';tr.exportTo('tr.metrics.sh',function(){const RESPONSIVENESS_THRESHOLD_MS=50;const INTERACTIVE_WINDOW_SIZE_MS=5*1000;const timeDurationInMs_smallerIsBetter=tr.b.Unit.byName.timeDurationInMs_smallerIsBetter;const RelatedEventSet=tr.v.d.RelatedEventSet;function getNetworkEventsInRange(process,range){const networkEvents=[];for(const thread of Object.values(process.threads)){const threadHelper=new tr.model.helpers.ChromeThreadHelper(thread);const events=threadHelper.getNetworkEvents();for(const event of events){if(range.intersectsExplicitRangeInclusive(event.start,event.end)){networkEvents.push(event);}}}
return networkEvents;}
function hasCategoryAndName(event,category,title){return event.title===title&&event.category&&tr.b.getCategoryParts(event.category).includes(category);}
function createBreakdownDiagnostic(breakdownTree){const breakdownDiagnostic=new tr.v.d.Breakdown();breakdownDiagnostic.colorScheme=tr.v.d.COLOR_SCHEME_CHROME_USER_FRIENDLY_CATEGORY_DRIVER;for(const label in breakdownTree){breakdownDiagnostic.set(label,breakdownTree[label].total);}
return breakdownDiagnostic;}
function NavigationStartFinder(rendererHelper){this.navigationStartsForFrameId_={};for(const ev of rendererHelper.mainThread.sliceGroup.childEvents()){if(!hasCategoryAndName(ev,'blink.user_timing','navigationStart')){continue;}
const frameIdRef=ev.args.frame;let list=this.navigationStartsForFrameId_[frameIdRef];if(list===undefined){this.navigationStartsForFrameId_[frameIdRef]=list=[];}
list.unshift(ev);}}
NavigationStartFinder.prototype={findNavigationStartEventForFrameBeforeTimestamp(frameIdRef,ts){const list=this.navigationStartsForFrameId_[frameIdRef];if(list===undefined)return undefined;let eventBeforeTimestamp;for(const ev of list){if(ev.start>ts)continue;if(eventBeforeTimestamp===undefined){eventBeforeTimestamp=ev;}}
if(eventBeforeTimestamp===undefined)return undefined;return eventBeforeTimestamp;}};const FIRST_PAINT_BOUNDARIES=tr.v.HistogramBinBoundaries.createLinear(0,1e3,20).addLinearBins(3e3,20).addExponentialBins(20e3,20);function createHistogram(name){const histogram=new tr.v.Histogram(name,timeDurationInMs_smallerIsBetter,FIRST_PAINT_BOUNDARIES);histogram.customizeSummaryOptions({avg:true,count:false,max:true,min:true,std:true,sum:false,});return histogram;}
function findFrameLoaderSnapshotAt(rendererHelper,frameIdRef,ts){const objects=rendererHelper.process.objects;const frameLoaderInstances=objects.instancesByTypeName_.FrameLoader;if(frameLoaderInstances===undefined)return undefined;let snapshot;for(const instance of frameLoaderInstances){if(!instance.isAliveAt(ts))continue;const maybeSnapshot=instance.getSnapshotAt(ts);if(frameIdRef!==maybeSnapshot.args.frame.id_ref)continue;snapshot=maybeSnapshot;}
return snapshot;}
function findAllEvents(rendererHelper,category,title){const targetEvents=[];for(const ev of rendererHelper.process.getDescendantEvents()){if(!hasCategoryAndName(ev,category,title))continue;targetEvents.push(ev);}
return targetEvents;}
function findFirstMeaningfulPaintCandidates(rendererHelper){const candidatesForFrameId={};for(const ev of rendererHelper.process.getDescendantEvents()){if(!hasCategoryAndName(ev,'loading','firstMeaningfulPaintCandidate')){continue;}
if(rendererHelper.isTelemetryInternalEvent(ev))continue;const frameIdRef=ev.args.frame;if(frameIdRef===undefined)continue;let list=candidatesForFrameId[frameIdRef];if(list===undefined){candidatesForFrameId[frameIdRef]=list=[];}
list.push(ev);}
return candidatesForFrameId;}
const URL_BLACKLIST=['about:blank','data:text/html,pluginplaceholderdata','data:text/html,chromewebdata'];function shouldIgnoreURL(url){return URL_BLACKLIST.includes(url);}
function collectTimeToEvent(category,eventName,rendererHelper,navigationStartFinder){const targetEvents=findAllEvents(rendererHelper,category,eventName);const samples=[];for(const ev of targetEvents){if(rendererHelper.isTelemetryInternalEvent(ev))continue;const frameIdRef=ev.args.frame;const snapshot=findFrameLoaderSnapshotAt(rendererHelper,frameIdRef,ev.start);if(snapshot===undefined||!snapshot.args.isLoadingMainFrame)continue;const url=snapshot.args.documentLoaderURL;if(shouldIgnoreURL(url))continue;const navigationStartEvent=navigationStartFinder.findNavigationStartEventForFrameBeforeTimestamp(frameIdRef,ev.start);if(navigationStartEvent===undefined)continue;const timeToEvent=ev.start-navigationStartEvent.start;samples.push({value:timeToEvent,diagnostics:{url:new tr.v.d.Generic(url)}});}
return samples;}
function addFirstMeaningfulPaintSample(samples,rendererHelper,frameIdRef,navigationStart,fmpMarkerEvent){const snapshot=findFrameLoaderSnapshotAt(rendererHelper,frameIdRef,fmpMarkerEvent.start);if(!snapshot||!snapshot.args.isLoadingMainFrame)return;const url=snapshot.args.documentLoaderURL;if(shouldIgnoreURL(url))return;const navStartToFMPRange=tr.b.math.Range.fromExplicitRange(navigationStart.start,fmpMarkerEvent.start);const networkEvents=getNetworkEventsInRange(rendererHelper.process,navStartToFMPRange);const timeToFirstMeaningfulPaint=navStartToFMPRange.duration;const breakdownTree=tr.metrics.sh.generateWallClockTimeBreakdownTree(rendererHelper.mainThread,networkEvents,navStartToFMPRange);const breakdownDiagnostic=createBreakdownDiagnostic(breakdownTree);samples.push({value:timeToFirstMeaningfulPaint,diagnostics:{'Breakdown of [navStart, FMP]':breakdownDiagnostic,'Start':new RelatedEventSet(navigationStart),'End':new RelatedEventSet(fmpMarkerEvent),'Navigation infos':new tr.v.d.Generic({url,pid:rendererHelper.pid,start:navigationStart.start,fmp:fmpMarkerEvent.start}),}});return{firstMeaningfulPaint:fmpMarkerEvent.start,url};}
function addFirstMeaningfulPaintCpuTimeSample(samples,rendererHelper,frameIdRef,navigationStart,fmpMarkerEvent){const navStartToFMPCpuRange=tr.b.math.Range.fromExplicitRange(navigationStart.cpuStart,fmpMarkerEvent.cpuStart);const snapshot=findFrameLoaderSnapshotAt(rendererHelper,frameIdRef,fmpMarkerEvent.start);if(!snapshot||!snapshot.args.isLoadingMainFrame)return;const url=snapshot.args.documentLoaderURL;if(shouldIgnoreURL(url))return;const mainThreadCpuTime=getMainThreadCpuTime(rendererHelper,navStartToFMPCpuRange);const breakdownTree=tr.metrics.sh.generateCpuTimeBreakdownTree(rendererHelper.mainThread,navStartToFMPCpuRange);const breakdownDiagnostic=createBreakdownDiagnostic(breakdownTree);samples.push({value:mainThreadCpuTime,diagnostics:{'Breakdown of [navStart, FMP]':breakdownDiagnostic,'Start':new RelatedEventSet(navigationStart),'End':new RelatedEventSet(fmpMarkerEvent),'Navigation infos':new tr.v.d.Generic({url,pid:rendererHelper.pid,start:navigationStart.start,fmp:fmpMarkerEvent.start}),}});}
function getMainThreadCpuTime(rendererHelper,rangeOfInterest){let mainThreadCpuTime=0;for(const slice of rendererHelper.mainThread.sliceGroup.topLevelSlices){if(!slice.cpuDuration)continue;const sliceRange=tr.b.math.Range.fromExplicitRange(slice.cpuStart,slice.cpuStart+slice.cpuDuration);const intersection=rangeOfInterest.findIntersection(sliceRange);mainThreadCpuTime+=intersection.duration;}
return mainThreadCpuTime;}
function addFirstInteractiveSample(samples,rendererHelper,navigationStart,firstMeaningfulPaint,url){if(shouldIgnoreURL(url))return;const navigationStartTime=navigationStart.start;let firstInteractive=Infinity;let firstInteractiveCandidate=firstMeaningfulPaint;let lastLongTaskEvent=undefined;for(const ev of[...rendererHelper.mainThread.sliceGroup.childEvents()]){if(ev.start<firstInteractiveCandidate)continue;const interactiveDurationSoFar=ev.start-firstInteractiveCandidate;if(interactiveDurationSoFar>=INTERACTIVE_WINDOW_SIZE_MS){firstInteractive=firstInteractiveCandidate;break;}
if(ev.title==='TaskQueueManager::ProcessTaskFromWorkQueue'&&ev.duration>RESPONSIVENESS_THRESHOLD_MS){firstInteractiveCandidate=ev.end-50;lastLongTaskEvent=ev;}}
const navStartToFirstInteractiveRange=tr.b.math.Range.fromExplicitRange(navigationStartTime,firstInteractive);const networkEvents=getNetworkEventsInRange(rendererHelper.process,navStartToFirstInteractiveRange);const breakdownTree=tr.metrics.sh.generateWallClockTimeBreakdownTree(rendererHelper.mainThread,networkEvents,navStartToFirstInteractiveRange);const breakdownDiagnostic=createBreakdownDiagnostic(breakdownTree);const timeToFirstInteractive=navStartToFirstInteractiveRange.duration;samples.push({value:timeToFirstInteractive,diagnostics:{'Start':new RelatedEventSet(navigationStart),'Last long task':new RelatedEventSet(lastLongTaskEvent),'Navigation infos':new tr.v.d.Generic({url,pid:rendererHelper.pid,start:navigationStartTime,interactive:firstInteractive}),'Breakdown of [navStart, Interactive]':breakdownDiagnostic,}});}
function collectFirstMeaningfulPaintAndTimeToInteractiveForRenderer(rendererHelper,navigationStartFinder){const firstMeaningfulPaintSamples=[];const firstMeaningfulPaintCpuTimeSamples=[];const firstInteractiveSamples=[];function addSamples(frameIdRef,navigationStart,fmpMarkerEvent){const data=addFirstMeaningfulPaintSample(firstMeaningfulPaintSamples,rendererHelper,frameIdRef,navigationStart,fmpMarkerEvent);addFirstMeaningfulPaintCpuTimeSample(firstMeaningfulPaintCpuTimeSamples,rendererHelper,frameIdRef,navigationStart,fmpMarkerEvent);if(data!==undefined){addFirstInteractiveSample(firstInteractiveSamples,rendererHelper,navigationStart,data.firstMeaningfulPaint,data.url);}}
const candidatesForFrameId=findFirstMeaningfulPaintCandidates(rendererHelper);for(const frameIdRef in candidatesForFrameId){let navigationStart=undefined;let lastCandidate=undefined;for(const ev of candidatesForFrameId[frameIdRef]){const navigationStartForThisCandidate=navigationStartFinder.findNavigationStartEventForFrameBeforeTimestamp(frameIdRef,ev.start);if(navigationStartForThisCandidate===undefined)continue;if(navigationStart!==navigationStartForThisCandidate){if(navigationStart!==undefined&&lastCandidate!==undefined){addSamples(frameIdRef,navigationStart,lastCandidate);}
navigationStart=navigationStartForThisCandidate;}
lastCandidate=ev;}
if(lastCandidate!==undefined){addSamples(frameIdRef,navigationStart,lastCandidate);}}
return{firstMeaningfulPaintSamples,firstMeaningfulPaintCpuTimeSamples,firstInteractiveSamples};}
function collectLoadingMetricsForRenderer(rendererHelper){const navigationStartFinder=new NavigationStartFinder(rendererHelper);const firstContentfulPaintSamples=collectTimeToEvent('loading','firstContentfulPaint',rendererHelper,navigationStartFinder);const onLoadSamples=collectTimeToEvent('blink.user_timing','loadEventStart',rendererHelper,navigationStartFinder);const{firstMeaningfulPaintSamples,firstMeaningfulPaintCpuTimeSamples,firstInteractiveSamples}=collectFirstMeaningfulPaintAndTimeToInteractiveForRenderer(rendererHelper,navigationStartFinder);return{firstContentfulPaintSamples,onLoadSamples,firstMeaningfulPaintSamples,firstMeaningfulPaintCpuTimeSamples,firstInteractiveSamples};}
function addSamplesToHistogram(samples,histogram){for(const sample of samples){histogram.addSample(sample.value,sample.diagnostics);}}
function loadingMetric(histograms,model){const firstContentfulPaintHistogram=createHistogram('timeToFirstContentfulPaint');firstContentfulPaintHistogram.description='time to first contentful paint';const onLoadHistogram=createHistogram('timeToOnload');onLoadHistogram.description='time to onload. '+'This is temporary metric used for PCv1/v2 sanity checking';const firstMeaningfulPaintHistogram=createHistogram('timeToFirstMeaningfulPaint');firstMeaningfulPaintHistogram.description='time to first meaningful paint';const firstMeaningfulPaintCpuTimeHistogram=createHistogram('cpuTimeToFirstMeaningfulPaint');firstMeaningfulPaintCpuTimeHistogram.description='CPU time to first meaningful paint';const firstInteractiveHistogram=createHistogram('timeToFirstInteractive');firstInteractiveHistogram.description='time to first interactive';const chromeHelper=model.getOrCreateHelper(tr.model.helpers.ChromeModelHelper);for(const pid in chromeHelper.rendererHelpers){const rendererHelper=chromeHelper.rendererHelpers[pid];if(rendererHelper.isChromeTracingUI)continue;const{firstContentfulPaintSamples,onLoadSamples,firstMeaningfulPaintSamples,firstMeaningfulPaintCpuTimeSamples,firstInteractiveSamples}=collectLoadingMetricsForRenderer(rendererHelper);addSamplesToHistogram(firstContentfulPaintSamples,firstContentfulPaintHistogram);addSamplesToHistogram(onLoadSamples,onLoadHistogram);addSamplesToHistogram(firstMeaningfulPaintSamples,firstMeaningfulPaintHistogram);addSamplesToHistogram(firstMeaningfulPaintCpuTimeSamples,firstMeaningfulPaintCpuTimeHistogram);addSamplesToHistogram(firstInteractiveSamples,firstInteractiveHistogram);}
histograms.addHistogram(firstContentfulPaintHistogram);histograms.addHistogram(onLoadHistogram);histograms.addHistogram(firstMeaningfulPaintHistogram);histograms.addHistogram(firstMeaningfulPaintCpuTimeHistogram);histograms.addHistogram(firstInteractiveHistogram);}
tr.metrics.MetricRegistry.register(loadingMetric);return{loadingMetric,getNetworkEventsInRange,collectLoadingMetricsForRenderer,RESPONSIVENESS_THRESHOLD_MS,INTERACTIVE_WINDOW_SIZE_MS,};});'use strict';tr.exportTo('tr.metrics',function(){const SPA_NAVIGATION_START_TO_FIRST_PAINT_DURATION_BIN_BOUNDARY=tr.v.HistogramBinBoundaries.createExponential(1,1000,50);function spaNavigationMetric(histograms,model){const histogram=new tr.v.Histogram('spaNavigationStartToFpDuration',tr.b.Unit.byName.timeDurationInMs_smallerIsBetter,SPA_NAVIGATION_START_TO_FIRST_PAINT_DURATION_BIN_BOUNDARY);histogram.description='Latency between the input event causing'+' a SPA navigation and the first paint event after it';histogram.customizeSummaryOptions({count:false,sum:false,});const modelHelper=model.getOrCreateHelper(tr.model.helpers.ChromeModelHelper);if(!modelHelper){return;}
const rendererHelpers=modelHelper.rendererHelpers;if(!rendererHelpers){return;}
const browserHelper=modelHelper.browserHelper;for(const rendererHelper of Object.values(rendererHelpers)){const spaNavigations=tr.metrics.findSpaNavigationsOnRenderer(rendererHelper,browserHelper);for(const spaNav of spaNavigations){let beginTs=0;if(spaNav.navStartCandidates.inputLatencyAsyncSlice){const beginData=spaNav.navStartCandidates.inputLatencyAsyncSlice.args.data;beginTs=model.convertTimestampToModelTime('traceEventClock',beginData.INPUT_EVENT_LATENCY_BEGIN_RWH_COMPONENT.time);}else{beginTs=spaNav.navStartCandidates.goToIndexSlice.start;}
const rangeOfInterest=tr.b.math.Range.fromExplicitRange(beginTs,spaNav.firstPaintEvent.start);const networkEvents=tr.metrics.sh.getNetworkEventsInRange(rendererHelper.process,rangeOfInterest);const breakdownDict=tr.metrics.sh.generateWallClockTimeBreakdownTree(rendererHelper.mainThread,networkEvents,rangeOfInterest);const breakdownDiagnostic=new tr.v.d.Breakdown();breakdownDiagnostic.colorScheme=tr.v.d.COLOR_SCHEME_CHROME_USER_FRIENDLY_CATEGORY_DRIVER;for(const label in breakdownDict){breakdownDiagnostic.set(label,parseInt(breakdownDict[label].total*1e3)/1e3);}
histogram.addSample(rangeOfInterest.duration,{'Breakdown of [navStart, firstPaint]':breakdownDiagnostic,'Start':new tr.v.d.RelatedEventSet(spaNav.navigationStart),'End':new tr.v.d.RelatedEventSet(spaNav.firstPaintEvent),'Navigation infos':new tr.v.d.Generic({url:spaNav.url,pid:rendererHelper.pid,navStart:beginTs,firstPaint:spaNav.firstPaintEvent.start})});}}
histograms.addHistogram(histogram);}
tr.metrics.MetricRegistry.register(spaNavigationMetric);return{spaNavigationMetric,};});'use strict';tr.exportTo('tr.metrics.sh',function(){const LATENCY_BOUNDS=tr.v.HistogramBinBoundaries.createLinear(0,20,100);function clockSyncLatencyMetric(values,model){const domains=Array.from(model.clockSyncManager.domainsSeen).sort();for(let i=0;i<domains.length;i++){for(let j=i+1;j<domains.length;j++){const latency=model.clockSyncManager.getTimeTransformerError(domains[i],domains[j]);const hist=new tr.v.Histogram('clock_sync_latency_'+
domains[i].toLowerCase()+'_to_'+domains[j].toLowerCase(),tr.b.Unit.byName.timeDurationInMs_smallerIsBetter,LATENCY_BOUNDS);hist.customizeSummaryOptions({avg:true,count:false,max:false,min:false,std:false,sum:false,});hist.description='Clock sync latency for domain '+domains[i]+' to domain '+domains[j];hist.addSample(latency);values.addHistogram(hist);}}}
tr.metrics.MetricRegistry.register(clockSyncLatencyMetric);return{clockSyncLatencyMetric,};});'use strict';tr.exportTo('tr.metrics.sh',function(){const CPU_TIME_PERCENTAGE_BOUNDARIES=tr.v.HistogramBinBoundaries.createExponential(0.01,50,200);function cpuTimeMetric(histograms,model,opt_options){let rangeOfInterest=model.bounds;if(opt_options&&opt_options.rangeOfInterest){rangeOfInterest=opt_options.rangeOfInterest;}else{const chromeHelper=model.getOrCreateHelper(tr.model.helpers.ChromeModelHelper);if(chromeHelper){const chromeBounds=chromeHelper.chromeBounds;if(chromeBounds){rangeOfInterest=chromeBounds;}}}
let allProcessCpuTime=0;for(const pid in model.processes){const process=model.processes[pid];if(tr.model.helpers.ChromeRendererHelper.isTracingProcess(process)){continue;}
let processCpuTime=0;for(const tid in process.threads){const thread=process.threads[tid];let threadCpuTime=0;thread.sliceGroup.topLevelSlices.forEach(function(slice){if(slice.duration===0)return;if(!slice.cpuDuration)return;const sliceRange=tr.b.math.Range.fromExplicitRange(slice.start,slice.end);const intersection=rangeOfInterest.findIntersection(sliceRange);const fractionOfSliceInsideRangeOfInterest=intersection.duration/slice.duration;threadCpuTime+=slice.cpuDuration*fractionOfSliceInsideRangeOfInterest;});processCpuTime+=threadCpuTime;}
allProcessCpuTime+=processCpuTime;}
let normalizedAllProcessCpuTime=0;if(rangeOfInterest.duration>0){normalizedAllProcessCpuTime=allProcessCpuTime/rangeOfInterest.duration;}
const unit=tr.b.Unit.byName.normalizedPercentage_smallerIsBetter;const cpuTimeHist=new tr.v.Histogram('cpu_time_percentage',unit,CPU_TIME_PERCENTAGE_BOUNDARIES);cpuTimeHist.description='Percent CPU utilization, normalized against a single core. Can be '+'greater than 100% if machine has multiple cores.';cpuTimeHist.customizeSummaryOptions({avg:true,count:false,max:false,min:false,std:false,sum:false});cpuTimeHist.addSample(normalizedAllProcessCpuTime);histograms.addHistogram(cpuTimeHist);}
tr.metrics.MetricRegistry.register(cpuTimeMetric,{supportsRangeOfInterest:true});return{cpuTimeMetric,};});'use strict';tr.exportTo('tr.v',function(){class HistogramGrouping{constructor(key,callback,opt_label){this.key=key;this.callback=callback;this.label=opt_label||key;HistogramGrouping.KEYS_TO_GROUPINGS.set(key,this);}}
HistogramGrouping.KEYS_TO_GROUPINGS=new Map();class HistogramSet{constructor(opt_histograms){this.histogramsByGuid_=new Map();this.sharedDiagnosticsByGuid_=new Map();if(opt_histograms!==undefined){for(const hist of opt_histograms){this.addHistogram(hist);}}}
createHistogram(name,unit,samples,opt_options){const hist=tr.v.Histogram.create(name,unit,samples,opt_options);this.addHistogram(hist);return hist;}
addHistogram(hist,opt_diagnostics){if(this.histogramsByGuid_.has(hist.guid)){throw new Error('Cannot add same Histogram twice');}
if(opt_diagnostics!==undefined){if(!(opt_diagnostics instanceof Map)){opt_diagnostics=Object.entries(opt_diagnostics);}
for(const[name,diagnostic]of opt_diagnostics){hist.diagnostics.set(name,diagnostic);}}
this.histogramsByGuid_.set(hist.guid,hist);}
addSharedDiagnostic(name,diagnostic){this.sharedDiagnosticsByGuid_.set(diagnostic.guid,diagnostic);for(const hist of this){hist.diagnostics.set(name,diagnostic);}}
get length(){return this.histogramsByGuid_.size;}*[Symbol.iterator](){for(const hist of this.histogramsByGuid_.values()){yield hist;}}
getHistogramsNamed(name){return[...this].filter(h=>h.name===name);}
getHistogramNamed(name){const histograms=this.getHistogramsNamed(name);if(histograms.length===0)return undefined;if(histograms.length>1){throw new Error(`Unexpectedly found multiple histograms named "${name}"`);}
return histograms[0];}
lookupHistogram(guid){return this.histogramsByGuid_.get(guid);}
lookupDiagnostic(guid){return this.sharedDiagnosticsByGuid_.get(guid);}
resolveRelatedHistograms(){const handleDiagnosticMap=dm=>{for(const[name,diagnostic]of dm){if((diagnostic instanceof tr.v.d.RelatedHistogramSet)||(diagnostic instanceof tr.v.d.RelatedHistogramMap)){diagnostic.resolve(this);}}};for(const hist of this){hist.diagnostics.resolveSharedDiagnostics(this);handleDiagnosticMap(hist.diagnostics);for(const dm of hist.nanDiagnosticMaps){handleDiagnosticMap(dm);}
for(const bin of hist.allBins){for(const dm of bin.diagnosticMaps){handleDiagnosticMap(dm);}}}}
importDicts(dicts){for(const dict of dicts){if(dict.type&&tr.v.d.Diagnostic.findTypeInfoWithName(dict.type)){this.sharedDiagnosticsByGuid_.set(dict.guid,tr.v.d.Diagnostic.fromDict(dict));}else{this.addHistogram(tr.v.Histogram.fromDict(dict));}}}
asDicts(){const dicts=[];for(const diagnostic of this.sharedDiagnosticsByGuid_.values()){dicts.push(diagnostic.asDict());}
for(const hist of this){dicts.push(hist.asDict());}
return dicts;}
get sourceHistograms(){const sourceHistograms=new Map(this.histogramsByGuid_);function deleteSourceHistograms(diagnosticMap){for(const[name,diagnostic]of diagnosticMap){if(diagnostic instanceof tr.v.d.RelatedHistogramSet){for(const relatedHist of diagnostic){sourceHistograms.delete(relatedHist.guid);}}else if(diagnostic instanceof tr.v.d.RelatedHistogramMap){for(const[name,relatedHist]of diagnostic){sourceHistograms.delete(relatedHist.guid);}}}}
for(const hist of this){deleteSourceHistograms(hist.diagnostics);for(const dm of hist.nanDiagnosticMaps){deleteSourceHistograms(dm);}
for(const b of hist.allBins){for(const dm of b.diagnosticMaps){deleteSourceHistograms(dm);}}}
return new HistogramSet([...sourceHistograms.values()]);}
groupHistogramsRecursively(groupings,opt_skipGroupingCallback){function recurse(histograms,level){if(level===groupings.length){return histograms;}
const grouping=groupings[level];const groupedHistograms=tr.b.groupIntoMap(histograms,grouping.callback);if(opt_skipGroupingCallback&&opt_skipGroupingCallback(grouping,groupedHistograms)){return recurse(histograms,level+1);}
for(const[key,group]of groupedHistograms){groupedHistograms.set(key,recurse(group,level+1));}
return groupedHistograms;}
return recurse([...this],0);}
deduplicateDiagnostics(){const diagnosticsToCounts=new Map();for(const hist of this){const candidates=[];const telemetryInfo=tr.v.d.TelemetryInfo.getFromHistogram(hist);if(telemetryInfo instanceof tr.v.d.MergedTelemetryInfo){candidates.push(telemetryInfo);}
const buildbotInfo=tr.v.d.BuildbotInfo.getFromHistogram(hist);if(buildbotInfo instanceof tr.v.d.MergedBuildbotInfo){candidates.push(buildbotInfo);}
const deviceInfo=tr.v.d.DeviceInfo.getFromHistogram(hist);if(deviceInfo instanceof tr.v.d.MergedDeviceInfo){candidates.push(deviceInfo);}
for(const diagnostic of candidates){if(diagnostic===undefined)continue;let found=false;for(const[testDiagnostic,count]of diagnosticsToCounts){if(diagnostic.equals(testDiagnostic)){testDiagnostic.addToHistogram(hist);diagnosticsToCounts.set(testDiagnostic,count+1);found=true;break;}}
if(!found){diagnosticsToCounts.set(diagnostic,1);}}}
for(const[diagnostic,count]of diagnosticsToCounts){if(count>1){this.sharedDiagnosticsByGuid_.set(diagnostic.guid,diagnostic);}}}
mergeRelationships(){for(const hist of this){hist.diagnostics.mergeRelationships(hist);}}}
HistogramSet.GROUPINGS={HISTOGRAM_NAME:new HistogramGrouping('name',h=>h.name),BENCHMARK_NAME:new HistogramGrouping('benchmark',h=>tr.v.d.TelemetryInfo.getField(h,'benchmarkName','')),BENCHMARK_START:new HistogramGrouping('time',h=>tr.v.d.TelemetryInfo.getField(h,'benchmarkStartString','')),STORYSET_REPEAT:new HistogramGrouping('storyset_repeat',h=>tr.v.d.TelemetryInfo.getField(h,'storysetRepeatCounterLabel',0),'storyset repeat'),STORY_NAME:new HistogramGrouping('story',h=>tr.v.d.TelemetryInfo.getField(h,'storyDisplayName','')),LEGACY_TIR_LABEL:new HistogramGrouping('tir',h=>tr.v.d.TelemetryInfo.getField(h,'legacyTIRLabel','')),MASTER_NAME:new HistogramGrouping('master',h=>tr.v.d.BuildbotInfo.getField(h,'buildbotMasterName','')),SLAVE_NAME:new HistogramGrouping('bot',h=>tr.v.d.BuildbotInfo.getField(h,'buildbotName','')),BUILD_NUMBER:new HistogramGrouping('build',h=>tr.v.d.BuildbotInfo.getField(h,'buildNumber','')),DISPLAY_LABEL:new HistogramGrouping('label',h=>tr.v.d.TelemetryInfo.getField(h,'displayLabel','Value'))};return{HistogramGrouping,HistogramSet,};});'use strict';tr.exportTo('tr.e.chrome',function(){function hasTitleAndCategory(event,title,category){return event.title===title&&event.category&&tr.b.getCategoryParts(event.category).includes(category);}
function getNavStartTimestamps(rendererHelper){const navStartTimestamps=[];for(const e of rendererHelper.mainThread.sliceGroup.childEvents()){if(hasTitleAndCategory(e,'navigationStart','blink.user_timing')){navStartTimestamps.push(e.start);}}
return navStartTimestamps;}
function getInteractiveTimestamps(model){const interactiveTimestampsMap=new Map();const chromeHelper=model.getOrCreateHelper(tr.model.helpers.ChromeModelHelper);for(const rendererHelper of Object.values(chromeHelper.rendererHelpers)){const timestamps=[];interactiveTimestampsMap.set(rendererHelper.pid,timestamps);const samples=tr.metrics.sh.collectLoadingMetricsForRenderer(rendererHelper).firstInteractiveSamples;for(const sample of samples){timestamps.push(sample.diagnostics['Navigation infos'].value.interactive);}}
return interactiveTimestampsMap;}
function getPostInteractiveTaskWindows(interactiveTimestamps,navStartTimestamps,traceEndTimestamp){let navStartTsIndex=0;let lastTaskWindowEndTs=undefined;const taskWindows=[];for(const currTTI of interactiveTimestamps){while(navStartTsIndex<navStartTimestamps.length&&navStartTimestamps[navStartTsIndex]<currTTI){navStartTsIndex++;}
const taskWindowEndTs=navStartTsIndex<navStartTimestamps.length?navStartTimestamps[navStartTsIndex]:traceEndTimestamp;if(taskWindowEndTs===lastTaskWindowEndTs){throw Error('Encountered two consecutive interactive timestamps '+'with no navigationStart between them. '+'PostInteractiveTaskWindow is not well defined in this case.');}
taskWindows.push(tr.b.math.Range.fromExplicitRange(currTTI,taskWindowEndTs));lastTaskWindowEndTs=taskWindowEndTs;}
return taskWindows;}
function contributionToEQT(window,task){const startInWindow=Math.max(window.min,task.start);const endInWindow=Math.min(window.max,task.end);const durationInWindow=endInWindow-startInWindow;if(durationInWindow<=0)return 0;const probabilityOfTask=durationInWindow/(window.max-window.min);const minQueueingTime=task.end-endInWindow;const maxQueueingTime=task.end-startInWindow;const expectedQueueingTimeDueToTask=(maxQueueingTime+minQueueingTime)/2;return probabilityOfTask*expectedQueueingTimeDueToTask;}
function weightedExpectedQueueingTime(window,weightedTasks){let result=0;for(const task of weightedTasks){result+=contributionToEQT(window,task)*task.weight;}
return result;}
function expectedQueueingTime(window,tasks){return weightedExpectedQueueingTime(window,tasks.map(function(task){return{start:task.start,end:task.end,weight:1};}));}
class SlidingWindow{constructor(startTime,windowSize,sortedTasks){this.windowSize_=windowSize;this.sortedTasks_=sortedTasks;this.range_=tr.b.math.Range.fromExplicitRange(startTime,startTime+windowSize);this.firstTaskIndex_=sortedTasks.findIndex(task=>startTime<task.end);if(this.firstTaskIndex_===-1){this.firstTaskIndex_=sortedTasks.length;}
this.lastTaskIndex_=-1;while(this.lastTaskIndex_+1<sortedTasks.length&&sortedTasks[this.lastTaskIndex_+1].start<startTime+windowSize){this.lastTaskIndex_++;}
this.innerEQT_=0;for(let i=this.firstTaskIndex_+1;i<this.lastTaskIndex_;i++){this.innerEQT_+=contributionToEQT(this.range_,sortedTasks[i]);}}
get getEQT(){let firstTaskEQT=0;if(this.firstTaskIndex_<this.sortedTasks_.length){firstTaskEQT=contributionToEQT(this.range_,this.sortedTasks_[this.firstTaskIndex_]);}
let lastTaskEQT=0;if(this.firstTaskIndex_<this.lastTaskIndex_){lastTaskEQT=contributionToEQT(this.range_,this.sortedTasks_[this.lastTaskIndex_]);}
return firstTaskEQT+this.innerEQT_+lastTaskEQT;}
slide(t){this.range_=tr.b.math.Range.fromExplicitRange(t,t+this.windowSize_);if(this.firstTaskIndex_<this.sortedTasks_.length&&this.sortedTasks_[this.firstTaskIndex_].end<=t){this.firstTaskIndex_++;if(this.firstTaskIndex_<this.lastTaskIndex_){this.innerEQT_-=contributionToEQT(this.range_,this.sortedTasks_[this.firstTaskIndex_]);}}
if(this.lastTaskIndex_+1<this.sortedTasks_.length&&this.sortedTasks_[this.lastTaskIndex_+1].start<t+this.windowSize_){if(this.firstTaskIndex_<this.lastTaskIndex_){this.innerEQT_+=contributionToEQT(this.range_,this.sortedTasks_[this.lastTaskIndex_]);}
this.lastTaskIndex_++;}}}
function maxExpectedQueueingTimeInSlidingWindow(startTime,endTime,windowSize,tasks){if(windowSize<=0){throw Error('The window size must be positive number');}
if(startTime+windowSize>endTime){throw Error('The sliding window must fit in the specified time range');}
const sortedTasks=tasks.slice().sort((a,b)=>a.start-b.start);for(let i=1;i<sortedTasks.length;i++){const PRECISION_MS=0.1;if(sortedTasks[i-1].end>sortedTasks[i].start+PRECISION_MS){throw Error('Tasks must not overlap');}
if(sortedTasks[i-1].end>sortedTasks[i].start){const midpoint=(sortedTasks[i-1].end+sortedTasks[i].start)/2;sortedTasks[i-1].end=midpoint;sortedTasks[i].start=midpoint;}}
let endpoints=[];endpoints.push(startTime);endpoints.push(endTime-windowSize);for(const task of tasks){endpoints.push(task.start-windowSize);endpoints.push(task.start);endpoints.push(task.end-windowSize);endpoints.push(task.end);}
endpoints=endpoints.filter(x=>(startTime<=x&&x+windowSize<=endTime));endpoints.sort((a,b)=>a-b);const slidingWindow=new SlidingWindow(endpoints[0],windowSize,sortedTasks);let maxEQT=0;for(const t of endpoints){slidingWindow.slide(t);maxEQT=Math.max(maxEQT,slidingWindow.getEQT);}
return maxEQT;}
return{getPostInteractiveTaskWindows,getNavStartTimestamps,getInteractiveTimestamps,expectedQueueingTime,maxExpectedQueueingTimeInSlidingWindow,weightedExpectedQueueingTime};});'use strict';tr.exportTo('tr.metrics.sh',function(){const WINDOW_SIZE_MS=500;const EQT_BOUNDARIES=tr.v.HistogramBinBoundaries.createExponential(0.01,WINDOW_SIZE_MS,50);const V8_EVENT_NAMES_TO_FILTERS=new Map([['v8',fromPredicate_(tr.metrics.v8.utils.isV8Event)],['v8:compile',fromPredicate_(tr.metrics.v8.utils.isCompileEvent)],['v8:compile:optimize',fromPredicate_(tr.metrics.v8.utils.isCompileOptimizeEvent)],['v8:compile:parse',fromPredicate_(tr.metrics.v8.utils.isCompileParseEvent)],['v8:compile:compile-unoptimize',filterCompileUnoptimizeAndSubtractParseEvents_],['v8:execute',fromPredicate_(tr.metrics.v8.utils.isV8ExecuteEvent)],['v8:gc',fromPredicate_(tr.metrics.v8.utils.isGarbageCollectionEvent)],['v8:gc:full-mark-compactor',fromPredicate_(tr.metrics.v8.utils.isFullMarkCompactorEvent)],['v8:gc:incremental-marking',fromPredicate_(tr.metrics.v8.utils.isIncrementalMarkingEvent)],['v8:gc:latency-mark-compactor',fromPredicate_(tr.metrics.v8.utils.isLatencyMarkCompactorEvent)],['v8:gc:memory-mark-compactor',fromPredicate_(tr.metrics.v8.utils.isMemoryMarkCompactorEvent)],['v8:gc:scavenger',fromPredicate_(tr.metrics.v8.utils.isScavengerEvent)]]);function fromPredicate_(eventPredicate){return function(slice){const duration=durationOfTopmostSubSlices(slice,eventPredicate);return{start:slice.start,end:slice.start+duration};};}
function filterCompileUnoptimizeAndSubtractParseEvents_(slice){const duration=durationOfTopmostSubSlices(slice,tr.metrics.v8.utils.isCompileUnoptimizeEvent,tr.metrics.v8.utils.isCompileParseEvent);return{start:slice.start,end:slice.start+duration};}
function containsForcedGC_(slice){return slice.findTopmostSlicesRelativeToThisSlice(tr.metrics.v8.utils.isForcedGarbageCollectionEvent).length>0;}
function createHistogramForEQT_(name,description){const histogram=new tr.v.Histogram(name,tr.b.Unit.byName.timeDurationInMs_smallerIsBetter,EQT_BOUNDARIES);histogram.customizeSummaryOptions({avg:false,count:false,max:true,min:false,std:false,sum:false,});histogram.description=description;return histogram;}
function expectedQueueingTimeMetric(histograms,model){const chromeHelper=model.getOrCreateHelper(tr.model.helpers.ChromeModelHelper);const totalHistogram=createHistogramForEQT_(`total:${WINDOW_SIZE_MS}ms_window:renderer_eqt`,`The maximum EQT in a ${WINDOW_SIZE_MS}ms sliding window`+' for a given renderer');const interactiveHistogram=createHistogramForEQT_(`interactive:${WINDOW_SIZE_MS}ms_window:renderer_eqt`,`The maximum EQT in a ${WINDOW_SIZE_MS}ms sliding window`+' for a given renderer while the page is interactive');const rendererHelpers=Object.values(chromeHelper.rendererHelpers);const rendererToInteractiveTimestamps=tr.e.chrome.getInteractiveTimestamps(model);for(const rendererHelper of rendererHelpers){if(rendererHelper.isChromeTracingUI)continue;const tasks=rendererHelper.mainThread.sliceGroup.topLevelSlices.filter(slice=>slice.duration>0&&!containsForcedGC_(slice)).map(slice=>{return{start:slice.start,end:slice.end};});totalHistogram.addSample(tr.e.chrome.maxExpectedQueueingTimeInSlidingWindow(rendererHelper.mainThread.bounds.min,rendererHelper.mainThread.bounds.max,WINDOW_SIZE_MS,tasks));const interactiveTimestamps=rendererToInteractiveTimestamps.get(rendererHelper.pid);if(interactiveTimestamps.length===0)continue;if(interactiveTimestamps.length>1){continue;}
const interactiveWindow=tr.b.math.Range.fromExplicitRange(interactiveTimestamps[0],Infinity).findIntersection(rendererHelper.mainThread.bounds);interactiveHistogram.addSample(tr.e.chrome.maxExpectedQueueingTimeInSlidingWindow(interactiveWindow.min,interactiveWindow.max,WINDOW_SIZE_MS,tasks));}
addV8ContributionToExpectedQueueingTime(totalHistogram,interactiveHistogram,rendererToInteractiveTimestamps,histograms,model);histograms.addHistogram(totalHistogram);histograms.addHistogram(interactiveHistogram);}
function addV8ContributionToExpectedQueueingTime(totalEqtHistogram,interactiveEqtHistogram,rendererToInteractiveTimestamps,histograms,model){if(!model.categories.includes('v8'))return;const breakdownForTotal=new tr.v.d.RelatedHistogramMap();const breakdownForInteractive=new tr.v.d.RelatedHistogramMap();for(const[eventName,filterFunction]of V8_EVENT_NAMES_TO_FILTERS){const contribution=contributionToExpectedQueueingTime(filterFunction,eventName,rendererToInteractiveTimestamps,histograms,model);breakdownForTotal.set(eventName,contribution.total);breakdownForInteractive.set(eventName,contribution.interactive);}
totalEqtHistogram.diagnostics.set('v8',breakdownForTotal);interactiveEqtHistogram.diagnostics.set('v8',breakdownForInteractive);}
function durationOfTopmostSubSlices(slice,predicate,subEventPredicate){let duration=0;for(const sub of slice.findTopmostSlicesRelativeToThisSlice(predicate)){duration+=sub.duration;if(subEventPredicate!==null&&subEventPredicate!==undefined){duration-=durationOfTopmostSubSlices(sub,subEventPredicate);}}
return duration;}
function contributionToExpectedQueueingTime(filterFunction,eventName,rendererToInteractiveTimestamps,histograms,model){const chromeHelper=model.getOrCreateHelper(tr.model.helpers.ChromeModelHelper);const totalHistogram=createHistogramForEQT_(`total:${WINDOW_SIZE_MS}ms_window:renderer_eqt:${eventName}`,`Contribution to the expected queueing time by ${eventName}`+' for a given renderer. It is computed as the maximum EQT in'+` a ${WINDOW_SIZE_MS}ms sliding window after shrinking top-level`+` tasks to contain only ${eventName} subevents`);const interactiveHistogram=createHistogramForEQT_(`interactive:${WINDOW_SIZE_MS}ms_window:renderer_eqt:${eventName}`,`Contribution to the expected queueing time by ${eventName}`+' for a given renderer while the page is interactive. It is computed'+` as the maximum EQT in a ${WINDOW_SIZE_MS}ms sliding window after`+` shrinking top-level tasks to contain only ${eventName} subevents`);const rendererHelpers=Object.values(chromeHelper.rendererHelpers);for(const rendererHelper of rendererHelpers){if(rendererHelper.isChromeTracingUI)continue;const tasks=rendererHelper.mainThread.sliceGroup.topLevelSlices.filter(slice=>slice.duration>0&&!containsForcedGC_(slice)).map(filterFunction);totalHistogram.addSample(tr.e.chrome.maxExpectedQueueingTimeInSlidingWindow(rendererHelper.mainThread.bounds.min,rendererHelper.mainThread.bounds.max,WINDOW_SIZE_MS,tasks));const interactiveTimestamps=rendererToInteractiveTimestamps.get(rendererHelper.pid);if(interactiveTimestamps.length===0)continue;if(interactiveTimestamps.length>1){continue;}
const interactiveWindow=tr.b.math.Range.fromExplicitRange(interactiveTimestamps[0],Infinity).findIntersection(rendererHelper.mainThread.bounds);interactiveHistogram.addSample(tr.e.chrome.maxExpectedQueueingTimeInSlidingWindow(interactiveWindow.min,interactiveWindow.max,WINDOW_SIZE_MS,tasks));}
histograms.addHistogram(totalHistogram);histograms.addHistogram(interactiveHistogram);return{total:totalHistogram,interactive:interactiveHistogram};}
tr.metrics.MetricRegistry.register(expectedQueueingTimeMetric);return{expectedQueueingTimeMetric,contributionToExpectedQueueingTime,};});'use strict';tr.exportTo('tr.metrics.sh',function(){const LONG_TASK_MS=50;const LONGEST_TASK_MS=1000;function iterateLongTopLevelTasksOnThreadInRange(thread,opt_range,cb,opt_this){thread.sliceGroup.topLevelSlices.forEach(function(slice){if(opt_range&&!opt_range.intersectsExplicitRangeInclusive(slice.start,slice.end)){return;}
if(slice.duration<LONG_TASK_MS)return;cb.call(opt_this,slice);});}
function iterateRendererMainThreads(model,cb,opt_this){const modelHelper=model.getOrCreateHelper(tr.model.helpers.ChromeModelHelper);if(modelHelper!==undefined){Object.values(modelHelper.rendererHelpers).forEach(function(rendererHelper){if(!rendererHelper.mainThread)return;cb.call(opt_this,rendererHelper.mainThread);});}}
function longTasksMetric(histograms,model,opt_options){const rangeOfInterest=opt_options?opt_options.rangeOfInterest:undefined;const longTaskHist=new tr.v.Histogram('long tasks',tr.b.Unit.byName.timeDurationInMs_smallerIsBetter,tr.v.HistogramBinBoundaries.createLinear(LONG_TASK_MS,LONGEST_TASK_MS,40));longTaskHist.description='durations of long tasks';const slices=new tr.model.EventSet();iterateRendererMainThreads(model,function(thread){iterateLongTopLevelTasksOnThreadInRange(thread,rangeOfInterest,function(task){longTaskHist.addSample(task.duration,{relatedEvents:new tr.v.d.RelatedEventSet([task])});slices.push(task);slices.addEventSet(task.descendentSlices);});});histograms.addHistogram(longTaskHist);const sampleForEvent=undefined;const breakdown=tr.v.d.RelatedHistogramBreakdown.buildFromEvents(histograms,'long tasks ',slices,e=>(model.getUserFriendlyCategoryFromEvent(e)||'unknown'),tr.b.Unit.byName.timeDurationInMs_smallerIsBetter,sampleForEvent,tr.v.HistogramBinBoundaries.createExponential(1,LONGEST_TASK_MS,40));breakdown.colorScheme=tr.v.d.COLOR_SCHEME_CHROME_USER_FRIENDLY_CATEGORY_DRIVER;longTaskHist.diagnostics.set('category',breakdown);}
tr.metrics.MetricRegistry.register(longTasksMetric,{supportsRangeOfInterest:true});return{longTasksMetric,iterateLongTopLevelTasksOnThreadInRange,iterateRendererMainThreads,LONG_TASK_MS,LONGEST_TASK_MS,};});'use strict';tr.exportTo('tr.b',function(){function MultiDimensionalViewNode(title,valueCount){this.title=title;const dimensions=title.length;this.children=new Array(dimensions);for(let i=0;i<dimensions;i++){this.children[i]=new Map();}
this.values=new Array(valueCount);for(let v=0;v<valueCount;v++){this.values[v]={self:0,total:0,totalState:NOT_PROVIDED};}}
MultiDimensionalViewNode.TotalState={NOT_PROVIDED:0,LOWER_BOUND:1,EXACT:2};const NOT_PROVIDED=MultiDimensionalViewNode.TotalState.NOT_PROVIDED;const LOWER_BOUND=MultiDimensionalViewNode.TotalState.LOWER_BOUND;const EXACT=MultiDimensionalViewNode.TotalState.EXACT;MultiDimensionalViewNode.prototype={get subRows(){return tr.b.mapValues(this.children[0]);}};function MultiDimensionalViewBuilder(dimensions,valueCount){if(typeof(dimensions)!=='number'||dimensions<0){throw new Error('Dimensions must be a non-negative number');}
this.dimensions_=dimensions;if(typeof(valueCount)!=='number'||valueCount<0){throw new Error('Number of values must be a non-negative number');}
this.valueCount_=valueCount;this.buildRoot_=this.createRootNode_();this.topDownTreeViewRoot_=undefined;this.topDownHeavyViewRoot_=undefined;this.bottomUpHeavyViewNode_=undefined;this.complete_=false;this.maxDimensionDepths_=new Array(dimensions);for(let d=0;d<dimensions;d++){this.maxDimensionDepths_[d]=0;}}
MultiDimensionalViewBuilder.ValueKind={SELF:0,TOTAL:1};MultiDimensionalViewBuilder.ViewType={TOP_DOWN_TREE_VIEW:0,TOP_DOWN_HEAVY_VIEW:1,BOTTOM_UP_HEAVY_VIEW:2};MultiDimensionalViewBuilder.prototype={addPath(path,values,valueKind){if(this.buildRoot_===undefined){throw new Error('Paths cannot be added after either view has been built');}
if(path.length!==this.dimensions_){throw new Error('Path must be '+this.dimensions_+'-dimensional');}
if(values.length!==this.valueCount_){throw new Error('Must provide '+this.valueCount_+' values');}
let isTotal;switch(valueKind){case MultiDimensionalViewBuilder.ValueKind.SELF:isTotal=false;break;case MultiDimensionalViewBuilder.ValueKind.TOTAL:isTotal=true;break;default:throw new Error('Invalid value kind: '+valueKind);}
let node=this.buildRoot_;for(let d=0;d<path.length;d++){const singleDimensionPath=path[d];const singleDimensionPathLength=singleDimensionPath.length;this.maxDimensionDepths_[d]=Math.max(this.maxDimensionDepths_[d],singleDimensionPathLength);for(let i=0;i<singleDimensionPathLength;i++){node=this.getOrCreateChildNode_(node,d,singleDimensionPath[i]);}}
for(let v=0;v<this.valueCount_;v++){const addedValue=values[v];if(addedValue===undefined)continue;const nodeValue=node.values[v];if(isTotal){nodeValue.total+=addedValue;nodeValue.totalState=EXACT;}else{nodeValue.self+=addedValue;nodeValue.totalState=Math.max(nodeValue.totalState,LOWER_BOUND);}}},get complete(){return this.complete_;},set complete(isComplete){if(this.buildRoot_===undefined){throw new Error('Can\'t set complete after any view has been built.');}
this.complete_=isComplete;},buildView(viewType){switch(viewType){case MultiDimensionalViewBuilder.ViewType.TOP_DOWN_TREE_VIEW:return this.buildTopDownTreeView();case MultiDimensionalViewBuilder.ViewType.TOP_DOWN_HEAVY_VIEW:return this.buildTopDownHeavyView();case MultiDimensionalViewBuilder.ViewType.BOTTOM_UP_HEAVY_VIEW:return this.buildBottomUpHeavyView();default:throw new Error('Unknown multi-dimensional view type: '+viewType);}},buildTopDownTreeView(){if(this.topDownTreeViewRoot_===undefined){const treeViewRoot=this.buildRoot_;this.buildRoot_=undefined;this.setUpMissingChildRelationships_(treeViewRoot,0);this.finalizeTotalValues_(treeViewRoot,0,new WeakMap());this.topDownTreeViewRoot_=treeViewRoot;}
return this.topDownTreeViewRoot_;},buildTopDownHeavyView(){if(this.topDownHeavyViewRoot_===undefined){this.topDownHeavyViewRoot_=this.buildGenericHeavyView_(this.addDimensionToTopDownHeavyViewNode_.bind(this));}
return this.topDownHeavyViewRoot_;},buildBottomUpHeavyView(){if(this.bottomUpHeavyViewNode_===undefined){this.bottomUpHeavyViewNode_=this.buildGenericHeavyView_(this.addDimensionToBottomUpHeavyViewNode_.bind(this));}
return this.bottomUpHeavyViewNode_;},createRootNode_(){return new MultiDimensionalViewNode(new Array(this.dimensions_),this.valueCount_);},getOrCreateChildNode_(parentNode,dimension,childDimensionTitle){if(dimension<0||dimension>=this.dimensions_){throw new Error('Invalid dimension');}
const dimensionChildren=parentNode.children[dimension];let childNode=dimensionChildren.get(childDimensionTitle);if(childNode!==undefined){return childNode;}
const childTitle=parentNode.title.slice();childTitle[dimension]=childDimensionTitle;childNode=new MultiDimensionalViewNode(childTitle,this.valueCount_);dimensionChildren.set(childDimensionTitle,childNode);return childNode;},setUpMissingChildRelationships_(node,firstDimensionToSetUp){for(let d=firstDimensionToSetUp;d<this.dimensions_;d++){const currentDimensionChildTitles=new Set(node.children[d].keys());for(let i=0;i<d;i++){for(const previousDimensionChildNode of node.children[i].values()){for(const previousDimensionGrandChildTitle of
previousDimensionChildNode.children[d].keys()){currentDimensionChildTitles.add(previousDimensionGrandChildTitle);}}}
for(const currentDimensionChildTitle of currentDimensionChildTitles){const currentDimensionChildNode=this.getOrCreateChildNode_(node,d,currentDimensionChildTitle);for(let i=0;i<d;i++){for(const previousDimensionChildNode of
node.children[i].values()){const previousDimensionGrandChildNode=previousDimensionChildNode.children[d].get(currentDimensionChildTitle);if(previousDimensionGrandChildNode!==undefined){currentDimensionChildNode.children[i].set(previousDimensionChildNode.title[i],previousDimensionGrandChildNode);}}}
this.setUpMissingChildRelationships_(currentDimensionChildNode,d);}}},finalizeTotalValues_(node,firstDimensionToFinalize,dimensionalSelfSumsMap){const dimensionalSelfSums=new Array(this.dimensions_);const minResidual=new Array(this.valueCount_);for(let v=0;v<this.valueCount_;v++)minResidual[v]=0;const nodeValues=node.values;const nodeSelfSums=new Array(this.valueCount_);for(let v=0;v<this.valueCount_;v++){nodeSelfSums[v]=nodeValues[v].self;}
for(let d=0;d<this.dimensions_;d++){const childResidualSums=new Array(this.valueCount_);for(let v=0;v<this.valueCount_;v++){childResidualSums[v]=0;}
for(const childNode of node.children[d].values()){if(d>=firstDimensionToFinalize){this.finalizeTotalValues_(childNode,d,dimensionalSelfSumsMap);}
const childNodeSelfSums=dimensionalSelfSumsMap.get(childNode);const childNodeValues=childNode.values;for(let v=0;v<this.valueCount_;v++){nodeSelfSums[v]+=childNodeSelfSums[d][v];const residual=childNodeValues[v].total-
childNodeSelfSums[this.dimensions_-1][v];childResidualSums[v]+=residual;if(this.complete){nodeValues[v].totalState=EXACT;}else if(childNodeValues[v].totalState>NOT_PROVIDED){nodeValues[v].totalState=Math.max(nodeValues[v].totalState,LOWER_BOUND);}}}
dimensionalSelfSums[d]=nodeSelfSums.slice();for(let v=0;v<this.valueCount_;v++){minResidual[v]=Math.max(minResidual[v],childResidualSums[v]);}}
for(let v=0;v<this.valueCount_;v++){nodeValues[v].total=Math.max(nodeValues[v].total,nodeSelfSums[v]+minResidual[v]);}
if(dimensionalSelfSumsMap.has(node)){throw new Error('Internal error: Node finalized more than once');}
dimensionalSelfSumsMap.set(node,dimensionalSelfSums);},buildGenericHeavyView_(treeViewNodeHandler){const treeViewRoot=this.buildTopDownTreeView();const heavyViewRoot=this.createRootNode_();heavyViewRoot.values=treeViewRoot.values;const recursionDepthTrackers=new Array(this.dimensions_);for(let d=0;d<this.dimensions_;d++){recursionDepthTrackers[d]=new RecursionDepthTracker(this.maxDimensionDepths_[d],d);}
this.addDimensionsToGenericHeavyViewNode_(treeViewRoot,heavyViewRoot,0,recursionDepthTrackers,false,treeViewNodeHandler);this.setUpMissingChildRelationships_(heavyViewRoot,0);return heavyViewRoot;},addDimensionsToGenericHeavyViewNode_(treeViewParentNode,heavyViewParentNode,startDimension,recursionDepthTrackers,previousDimensionsRecursive,treeViewNodeHandler){for(let d=startDimension;d<this.dimensions_;d++){this.addDimensionDescendantsToGenericHeavyViewNode_(treeViewParentNode,heavyViewParentNode,d,recursionDepthTrackers,previousDimensionsRecursive,treeViewNodeHandler);}},addDimensionDescendantsToGenericHeavyViewNode_(treeViewParentNode,heavyViewParentNode,currentDimension,recursionDepthTrackers,previousDimensionsRecursive,treeViewNodeHandler){const treeViewChildren=treeViewParentNode.children[currentDimension];const recursionDepthTracker=recursionDepthTrackers[currentDimension];for(const treeViewChildNode of treeViewChildren.values()){recursionDepthTracker.push(treeViewChildNode);treeViewNodeHandler(treeViewChildNode,heavyViewParentNode,currentDimension,recursionDepthTrackers,previousDimensionsRecursive);this.addDimensionDescendantsToGenericHeavyViewNode_(treeViewChildNode,heavyViewParentNode,currentDimension,recursionDepthTrackers,previousDimensionsRecursive,treeViewNodeHandler);recursionDepthTracker.pop();}},addDimensionToTopDownHeavyViewNode_(treeViewChildNode,heavyViewParentNode,currentDimension,recursionDepthTrackers,previousDimensionsRecursive){this.addDimensionToTopDownHeavyViewNodeRecursively_(treeViewChildNode,heavyViewParentNode,currentDimension,recursionDepthTrackers,previousDimensionsRecursive,1);},addDimensionToTopDownHeavyViewNodeRecursively_(treeViewChildNode,heavyViewParentNode,currentDimension,recursionDepthTrackers,previousDimensionsRecursive,subTreeDepth){const recursionDepthTracker=recursionDepthTrackers[currentDimension];const currentDimensionRecursive=subTreeDepth<=recursionDepthTracker.recursionDepth;const currentOrPreviousDimensionsRecursive=currentDimensionRecursive||previousDimensionsRecursive;const dimensionTitle=treeViewChildNode.title[currentDimension];const heavyViewChildNode=this.getOrCreateChildNode_(heavyViewParentNode,currentDimension,dimensionTitle);this.addNodeValues_(treeViewChildNode,heavyViewChildNode,!currentOrPreviousDimensionsRecursive);this.addDimensionsToGenericHeavyViewNode_(treeViewChildNode,heavyViewChildNode,currentDimension+1,recursionDepthTrackers,currentOrPreviousDimensionsRecursive,this.addDimensionToTopDownHeavyViewNode_.bind(this));for(const treeViewGrandChildNode of
treeViewChildNode.children[currentDimension].values()){recursionDepthTracker.push(treeViewGrandChildNode);this.addDimensionToTopDownHeavyViewNodeRecursively_(treeViewGrandChildNode,heavyViewChildNode,currentDimension,recursionDepthTrackers,previousDimensionsRecursive,subTreeDepth+1);recursionDepthTracker.pop();}},addDimensionToBottomUpHeavyViewNode_(treeViewChildNode,heavyViewParentNode,currentDimension,recursionDepthTrackers,previousDimensionsRecursive){const recursionDepthTracker=recursionDepthTrackers[currentDimension];const bottomIndex=recursionDepthTracker.bottomIndex;const topIndex=recursionDepthTracker.topIndex;const firstNonRecursiveIndex=bottomIndex+recursionDepthTracker.recursionDepth;const viewNodePath=recursionDepthTracker.viewNodePath;const trackerAncestorNode=recursionDepthTracker.trackerAncestorNode;let heavyViewDescendantNode=heavyViewParentNode;for(let i=bottomIndex;i<topIndex;i++){const treeViewAncestorNode=viewNodePath[i];const dimensionTitle=treeViewAncestorNode.title[currentDimension];heavyViewDescendantNode=this.getOrCreateChildNode_(heavyViewDescendantNode,currentDimension,dimensionTitle);const currentDimensionRecursive=i<firstNonRecursiveIndex;const currentOrPreviousDimensionsRecursive=currentDimensionRecursive||previousDimensionsRecursive;this.addNodeValues_(treeViewChildNode,heavyViewDescendantNode,!currentOrPreviousDimensionsRecursive);this.addDimensionsToGenericHeavyViewNode_(treeViewChildNode,heavyViewDescendantNode,currentDimension+1,recursionDepthTrackers,currentOrPreviousDimensionsRecursive,this.addDimensionToBottomUpHeavyViewNode_.bind(this));}},addNodeValues_(sourceNode,targetNode,addTotal){const targetNodeValues=targetNode.values;const sourceNodeValues=sourceNode.values;for(let v=0;v<this.valueCount_;v++){const targetNodeValue=targetNodeValues[v];const sourceNodeValue=sourceNodeValues[v];targetNodeValue.self+=sourceNodeValue.self;if(addTotal){targetNodeValue.total+=sourceNodeValue.total;if(this.complete){targetNodeValue.totalState=EXACT;}else if(sourceNodeValue.totalState>NOT_PROVIDED){targetNodeValue.totalState=Math.max(targetNodeValue.totalState,LOWER_BOUND);}}}}};function RecursionDepthTracker(maxDepth,dimension){this.titlePath=new Array(maxDepth);this.viewNodePath=new Array(maxDepth);this.bottomIndex=this.topIndex=maxDepth;this.dimension_=dimension;this.currentTrackerNode_=this.createNode_(0,undefined);}
RecursionDepthTracker.prototype={push(viewNode){if(this.bottomIndex===0){throw new Error('Cannot push to a full tracker');}
const title=viewNode.title[this.dimension_];this.bottomIndex--;this.titlePath[this.bottomIndex]=title;this.viewNodePath[this.bottomIndex]=viewNode;let childTrackerNode=this.currentTrackerNode_.children.get(title);if(childTrackerNode!==undefined){this.currentTrackerNode_=childTrackerNode;return;}
const maxLengths=zFunction(this.titlePath,this.bottomIndex);let recursionDepth=0;for(let i=0;i<maxLengths.length;i++){recursionDepth=Math.max(recursionDepth,maxLengths[i]);}
childTrackerNode=this.createNode_(recursionDepth,this.currentTrackerNode_);this.currentTrackerNode_.children.set(title,childTrackerNode);this.currentTrackerNode_=childTrackerNode;},pop(){if(this.bottomIndex===this.topIndex){throw new Error('Cannot pop from an empty tracker');}
this.titlePath[this.bottomIndex]=undefined;this.viewNodePath[this.bottomIndex]=undefined;this.bottomIndex++;this.currentTrackerNode_=this.currentTrackerNode_.parent;},get recursionDepth(){return this.currentTrackerNode_.recursionDepth;},createNode_(recursionDepth,parent){return{recursionDepth,parent,children:new Map()};}};function zFunction(list,startIndex){const n=list.length-startIndex;if(n===0)return[];const z=new Array(n);z[0]=0;for(let i=1,left=0,right=0;i<n;++i){let maxLength;if(i<=right){maxLength=Math.min(right-i+1,z[i-left]);}else{maxLength=0;}
while(i+maxLength<n&&list[startIndex+maxLength]===list[startIndex+i+maxLength]){++maxLength;}
if(i+maxLength-1>right){left=i;right=i+maxLength-1;}
z[i]=maxLength;}
return z;}
return{MultiDimensionalViewBuilder,MultiDimensionalViewNode,RecursionDepthTracker,zFunction,};});'use strict';tr.exportTo('tr.b',function(){class FixedColorScheme{constructor(namesToColors){this.namesToColors_=namesToColors;}
static fromNames(names){const namesToColors=new Map();const generator=new tr.b.SinebowColorGenerator();for(const name of names){namesToColors.set(name,generator.colorForKey(name));}
return new FixedColorScheme(namesToColors);}
getColor(name){const color=this.namesToColors_.get(name);if(color===undefined)throw new Error('Unknown color: '+name);return color;}}
const MemoryColumnColorScheme=new FixedColorScheme(new Map([['used_memory_column',new tr.b.Color(0,0,255)],['older_used_memory_column',new tr.b.Color(153,204,255)],['tracing_memory_column',new tr.b.Color(153,153,153)]]));function FixedColorSchemeRegistry(){}
FixedColorSchemeRegistry.lookUp=function(name){const info=this.findTypeInfoMatching(info=>info.metadata.name===name);if(!info)return undefined;return info.constructor();};const options=new tr.b.ExtensionRegistryOptions(tr.b.BASIC_REGISTRY_MODE);tr.b.decorateExtensionRegistry(FixedColorSchemeRegistry,options);return{MemoryColumnColorScheme,FixedColorScheme,FixedColorSchemeRegistry,};});'use strict';tr.exportTo('tr.e.chrome.chrome_processes',function(){const CHROME_PROCESS_NAMES={BROWSER:'browser_process',RENDERER:'renderer_processes',ALL:'all_processes',GPU:'gpu_process',PPAPI:'ppapi_process',UNKNOWN:'unknown_processes',};const PROCESS_COLOR_SCHEME_NAME='ChromeProcessNames';const PROCESS_COLOR_SCHEME=tr.b.FixedColorScheme.fromNames(Object.values(CHROME_PROCESS_NAMES));tr.b.FixedColorSchemeRegistry.register(()=>PROCESS_COLOR_SCHEME,{name:PROCESS_COLOR_SCHEME_NAME,});function canonicalizeName(name){return name.toLowerCase().replace(' ','_');}
function canonicalizeProcessName(rawProcessName){if(!rawProcessName)return CHROME_PROCESS_NAMES.UNKNOWN;const baseCanonicalName=canonicalizeName(rawProcessName);switch(baseCanonicalName){case'renderer':return CHROME_PROCESS_NAMES.RENDERER;case'browser':return CHROME_PROCESS_NAMES.BROWSER;}
if(Object.values(CHROME_PROCESS_NAMES).includes(baseCanonicalName)){return baseCanonicalName;}
throw new Error(`Unknown process name "${baseCanonicalName}".`+' Please add it to |CHROME_PROCESS_NAMES|.');}
return{CHROME_PROCESS_NAMES,PROCESS_COLOR_SCHEME,PROCESS_COLOR_SCHEME_NAME,canonicalizeName,canonicalizeProcessName,};});'use strict';tr.exportTo('tr.metrics.sh',function(){const BACKGROUND=tr.model.ContainerMemoryDump.LevelOfDetail.BACKGROUND;const LIGHT=tr.model.ContainerMemoryDump.LevelOfDetail.LIGHT;const DETAILED=tr.model.ContainerMemoryDump.LevelOfDetail.DETAILED;const sizeInBytes_smallerIsBetter=tr.b.Unit.byName.sizeInBytes_smallerIsBetter;const count_smallerIsBetter=tr.b.Unit.byName.count_smallerIsBetter;const DISPLAYED_SIZE_NUMERIC_NAME=tr.model.MemoryAllocatorDump.DISPLAYED_SIZE_NUMERIC_NAME;const LEVEL_OF_DETAIL_NAMES=new Map();LEVEL_OF_DETAIL_NAMES.set(BACKGROUND,'background');LEVEL_OF_DETAIL_NAMES.set(LIGHT,'light');LEVEL_OF_DETAIL_NAMES.set(DETAILED,'detailed');const HEAP_PROFILER_DETAIL_NAME='heap_profiler';const BOUNDARIES_FOR_UNIT_MAP=new WeakMap();BOUNDARIES_FOR_UNIT_MAP.set(count_smallerIsBetter,tr.v.HistogramBinBoundaries.createLinear(0,20,20));BOUNDARIES_FOR_UNIT_MAP.set(sizeInBytes_smallerIsBetter,new tr.v.HistogramBinBoundaries(0).addBinBoundary(1024).addExponentialBins(16*1024*1024*1024,4*24));const CHROME_PROCESS_NAMES=tr.e.chrome.chrome_processes.CHROME_PROCESS_NAMES;function memoryMetric(values,model,opt_options){const rangeOfInterest=opt_options?opt_options.rangeOfInterest:undefined;const browserNameToGlobalDumps=splitGlobalDumpsByBrowserName(model,rangeOfInterest);addGeneralMemoryDumpValues(browserNameToGlobalDumps,values);addDetailedMemoryDumpValues(browserNameToGlobalDumps,values);addMemoryDumpCountValues(browserNameToGlobalDumps,values);}
function splitGlobalDumpsByBrowserName(model,opt_rangeOfInterest){const chromeModelHelper=model.getOrCreateHelper(tr.model.helpers.ChromeModelHelper);const browserNameToGlobalDumps=new Map();const globalDumpToBrowserHelper=new WeakMap();if(chromeModelHelper){chromeModelHelper.browserHelpers.forEach(function(helper){const globalDumps=skipDumpsThatDoNotIntersectRange(helper.process.memoryDumps.map(d=>d.globalMemoryDump),opt_rangeOfInterest);globalDumps.forEach(function(globalDump){const existingHelper=globalDumpToBrowserHelper.get(globalDump);if(existingHelper!==undefined){throw new Error('Memory dump ID clash across multiple browsers '+'with PIDs: '+existingHelper.pid+' and '+helper.pid);}
globalDumpToBrowserHelper.set(globalDump,helper);});makeKeyUniqueAndSet(browserNameToGlobalDumps,tr.e.chrome.chrome_processes.canonicalizeName(helper.browserName),globalDumps);});}
const unclassifiedGlobalDumps=skipDumpsThatDoNotIntersectRange(model.globalMemoryDumps.filter(g=>!globalDumpToBrowserHelper.has(g)),opt_rangeOfInterest);if(unclassifiedGlobalDumps.length>0){makeKeyUniqueAndSet(browserNameToGlobalDumps,'unknown_browser',unclassifiedGlobalDumps);}
return browserNameToGlobalDumps;}
function skipDumpsThatDoNotIntersectRange(dumps,opt_range){if(!opt_range)return dumps;return dumps.filter(d=>opt_range.intersectsExplicitRangeInclusive(d.start,d.end));}
const USER_FRIENDLY_BROWSER_NAMES={'chrome':'Chrome','webview':'WebView','unknown_browser':'an unknown browser'};function convertBrowserNameToUserFriendlyName(browserName){for(const baseName in USER_FRIENDLY_BROWSER_NAMES){if(!browserName.startsWith(baseName))continue;const userFriendlyBaseName=USER_FRIENDLY_BROWSER_NAMES[baseName];const suffix=browserName.substring(baseName.length);if(suffix.length===0){return userFriendlyBaseName;}else if(/^\d+$/.test(suffix)){return userFriendlyBaseName+'('+suffix+')';}}
return'\''+browserName+'\' browser';}
function convertProcessNameToUserFriendlyName(processName,opt_requirePlural){switch(processName){case CHROME_PROCESS_NAMES.BROWSER:return opt_requirePlural?'browser processes':'the browser process';case CHROME_PROCESS_NAMES.RENDERER:return'renderer processes';case CHROME_PROCESS_NAMES.GPU:return opt_requirePlural?'GPU processes':'the GPU process';case CHROME_PROCESS_NAMES.PPAPI:return opt_requirePlural?'PPAPI processes':'the PPAPI process';case CHROME_PROCESS_NAMES.ALL:return'all processes';case CHROME_PROCESS_NAMES.UNKNOWN:return'unknown processes';default:return'\''+processName+'\' processes';}}
function makeKeyUniqueAndSet(map,key,value){let uniqueKey=key;let nextIndex=2;while(map.has(uniqueKey)){uniqueKey=key+nextIndex;nextIndex++;}
map.set(uniqueKey,value);}
function addGeneralMemoryDumpValues(browserNameToGlobalDumps,values){addMemoryDumpValues(browserNameToGlobalDumps,gmd=>true,function(processDump,addProcessScalar){addProcessScalar({source:'process_count',property:PROCESS_COUNT,value:1});if(processDump.totals!==undefined){addProcessScalar({source:'reported_by_os',property:RESIDENT_SIZE,component:['system_memory'],value:processDump.totals.residentBytes});addProcessScalar({source:'reported_by_os',property:PEAK_RESIDENT_SIZE,component:['system_memory'],value:processDump.totals.peakResidentBytes});}
if(processDump.memoryAllocatorDumps===undefined)return;processDump.memoryAllocatorDumps.forEach(function(rootAllocatorDump){CHROME_VALUE_PROPERTIES.forEach(function(property){addProcessScalar({source:'reported_by_chrome',component:[rootAllocatorDump.name],property,value:rootAllocatorDump.numerics[property.name]});});if(rootAllocatorDump.numerics.allocated_objects_size===undefined){const allocatedObjectsDump=rootAllocatorDump.getDescendantDumpByFullName('allocated_objects');if(allocatedObjectsDump!==undefined){addProcessScalar({source:'reported_by_chrome',component:[rootAllocatorDump.name],property:ALLOCATED_OBJECTS_SIZE,value:allocatedObjectsDump.numerics.size});}}});addV8MemoryDumpValues(processDump,addProcessScalar);},function(componentTree){const tracingNode=componentTree.children[1].get('tracing');if(tracingNode===undefined)return;for(let i=0;i<componentTree.values.length;i++){componentTree.values[i].total-=tracingNode.values[i].total;}},values);}
function addV8MemoryDumpValues(processDump,addProcessScalar){const v8Dump=processDump.getMemoryAllocatorDumpByFullName('v8');if(v8Dump===undefined)return;v8Dump.children.forEach(function(isolateDump){const mallocDump=isolateDump.getDescendantDumpByFullName('malloc');if(mallocDump!==undefined){addV8ComponentValues(mallocDump,['v8','allocated_by_malloc'],addProcessScalar);}
const heapDump=isolateDump.getDescendantDumpByFullName('heap_spaces');if(heapDump!==undefined){addV8ComponentValues(heapDump,['v8','heap'],addProcessScalar);heapDump.children.forEach(function(spaceDump){if(spaceDump.name==='other_spaces')return;addV8ComponentValues(spaceDump,['v8','heap',spaceDump.name],addProcessScalar);});}});addProcessScalar({source:'reported_by_chrome',component:['v8'],property:CODE_AND_METADATA_SIZE,value:v8Dump.numerics.code_and_metadata_size});addProcessScalar({source:'reported_by_chrome',component:['v8'],property:CODE_AND_METADATA_SIZE,value:v8Dump.numerics.bytecode_and_metadata_size});}
function addV8ComponentValues(componentDump,componentPath,addProcessScalar){CHROME_VALUE_PROPERTIES.forEach(function(property){addProcessScalar({source:'reported_by_chrome',component:componentPath,property,value:componentDump.numerics[property.name]});});}
const PROCESS_COUNT={unit:count_smallerIsBetter,buildDescriptionPrefix(componentPath,processName){if(componentPath.length>0){throw new Error('Unexpected process count non-empty component path: '+
componentPath.join(':'));}
return'total number of '+convertProcessNameToUserFriendlyName(processName,true);}};const EFFECTIVE_SIZE={name:'effective_size',unit:sizeInBytes_smallerIsBetter,buildDescriptionPrefix(componentPath,processName){return buildChromeValueDescriptionPrefix(componentPath,processName,{userFriendlyPropertyName:'effective size',componentPreposition:'of'});}};const ALLOCATED_OBJECTS_SIZE={name:'allocated_objects_size',unit:sizeInBytes_smallerIsBetter,buildDescriptionPrefix(componentPath,processName){return buildChromeValueDescriptionPrefix(componentPath,processName,{userFriendlyPropertyName:'size of all objects allocated',totalUserFriendlyPropertyName:'size of all allocated objects',componentPreposition:'by'});}};const SHIM_ALLOCATED_OBJECTS_SIZE={name:'shim_allocated_objects_size',unit:sizeInBytes_smallerIsBetter,buildDescriptionPrefix(componentPath,processName){return buildChromeValueDescriptionPrefix(componentPath,processName,{userFriendlyPropertyName:'size of all objects allocated through shim',totalUserFriendlyPropertyName:'size of all allocated objects through shim',componentPreposition:'by'});}};const LOCKED_SIZE={name:'locked_size',unit:sizeInBytes_smallerIsBetter,buildDescriptionPrefix(componentPath,processName){return buildChromeValueDescriptionPrefix(componentPath,processName,{userFriendlyPropertyName:'locked (pinned) size',componentPreposition:'of'});}};const PEAK_SIZE={name:'peak_size',unit:sizeInBytes_smallerIsBetter,buildDescriptionPrefix(componentPath,processName){return buildChromeValueDescriptionPrefix(componentPath,processName,{userFriendlyPropertyName:'peak size',componentPreposition:'of'});}};const CODE_AND_METADATA_SIZE={name:'code_and_metadata_size',unit:sizeInBytes_smallerIsBetter,buildDescriptionPrefix(componentPath,processName){return buildChromeValueDescriptionPrefix(componentPath,processName,{userFriendlyPropertyNamePrefix:'size of',userFriendlyPropertyName:'code and metadata'});}};const CHROME_VALUE_PROPERTIES=[EFFECTIVE_SIZE,ALLOCATED_OBJECTS_SIZE,SHIM_ALLOCATED_OBJECTS_SIZE,LOCKED_SIZE,PEAK_SIZE];function buildChromeValueDescriptionPrefix(componentPath,processName,formatSpec){const nameParts=[];if(componentPath.length===0){nameParts.push('total');if(formatSpec.totalUserFriendlyPropertyName){nameParts.push(formatSpec.totalUserFriendlyPropertyName);}else{if(formatSpec.userFriendlyPropertyNamePrefix){nameParts.push(formatSpec.userFriendlyPropertyNamePrefix);}
nameParts.push(formatSpec.userFriendlyPropertyName);}
nameParts.push('reported by Chrome for');}else{if(formatSpec.componentPreposition===undefined){if(formatSpec.userFriendlyPropertyNamePrefix){nameParts.push(formatSpec.userFriendlyPropertyNamePrefix);}
nameParts.push(componentPath.join(':'));nameParts.push(formatSpec.userFriendlyPropertyName);}else{if(formatSpec.userFriendlyPropertyNamePrefix){nameParts.push(formatSpec.userFriendlyPropertyNamePrefix);}
nameParts.push(formatSpec.userFriendlyPropertyName);nameParts.push(formatSpec.componentPreposition);if(componentPath[componentPath.length-1]==='allocated_by_malloc'){nameParts.push('objects allocated by malloc for');nameParts.push(componentPath.slice(0,componentPath.length-1).join(':'));}else{nameParts.push(componentPath.join(':'));}}
nameParts.push('in');}
nameParts.push(convertProcessNameToUserFriendlyName(processName));return nameParts.join(' ');}
const RESIDENT_SIZE={name:'resident_size',unit:sizeInBytes_smallerIsBetter,buildDescriptionPrefix(componentPath,processName){return buildOsValueDescriptionPrefix(componentPath,processName,'resident set size (RSS)');}};const PEAK_RESIDENT_SIZE={name:'peak_resident_size',unit:sizeInBytes_smallerIsBetter,buildDescriptionPrefix(componentPath,processName){return buildOsValueDescriptionPrefix(componentPath,processName,'peak resident set size');}};const PROPORTIONAL_RESIDENT_SIZE={name:'proportional_resident_size',unit:sizeInBytes_smallerIsBetter,buildDescriptionPrefix(componentPath,processName){return buildOsValueDescriptionPrefix(componentPath,processName,'proportional resident size (PSS)');}};const PRIVATE_DIRTY_SIZE={name:'private_dirty_size',unit:sizeInBytes_smallerIsBetter,buildDescriptionPrefix(componentPath,processName){return buildOsValueDescriptionPrefix(componentPath,processName,'private dirty size');}};function buildOsValueDescriptionPrefix(componentPath,processName,userFriendlyPropertyName){if(componentPath.length>2){throw new Error('OS value component path for \''+
userFriendlyPropertyName+'\' too long: '+componentPath.join(':'));}
const nameParts=[];if(componentPath.length<2){nameParts.push('total');}
nameParts.push(userFriendlyPropertyName);if(componentPath.length>0){switch(componentPath[0]){case'system_memory':if(componentPath.length>1){const userFriendlyComponentName=SYSTEM_VALUE_COMPONENTS[componentPath[1]].userFriendlyName;if(userFriendlyComponentName===undefined){throw new Error('System value sub-component for \''+
userFriendlyPropertyName+'\' unknown: '+
componentPath.join(':'));}
nameParts.push('of',userFriendlyComponentName,'in');}else{nameParts.push('of system memory (RAM) used by');}
break;case'gpu_memory':if(componentPath.length>1){nameParts.push('of the',componentPath[1]);nameParts.push('Android memtrack component in');}else{nameParts.push('of GPU memory (Android memtrack) used by');}
break;default:throw new Error('OS value component for \''+
userFriendlyPropertyName+'\' unknown: '+
componentPath.join(':'));}}else{nameParts.push('reported by the OS for');}
nameParts.push(convertProcessNameToUserFriendlyName(processName));return nameParts.join(' ');}
function addDetailedMemoryDumpValues(browserNameToGlobalDumps,values){addMemoryDumpValues(browserNameToGlobalDumps,g=>g.levelOfDetail===DETAILED,function(processDump,addProcessScalar){for(const[componentName,componentSpec]of
Object.entries(SYSTEM_VALUE_COMPONENTS)){const node=getDescendantVmRegionClassificationNode(processDump.vmRegions,componentSpec.classificationPath);const componentPath=['system_memory'];if(componentName)componentPath.push(componentName);addProcessScalar({source:'reported_by_os',component:componentPath,property:PROPORTIONAL_RESIDENT_SIZE,value:node===undefined?0:(node.byteStats.proportionalResident||0)});addProcessScalar({source:'reported_by_os',component:componentPath,property:PRIVATE_DIRTY_SIZE,value:node===undefined?0:(node.byteStats.privateDirtyResident||0)});}
const memtrackDump=processDump.getMemoryAllocatorDumpByFullName('gpu/android_memtrack');if(memtrackDump!==undefined){memtrackDump.children.forEach(function(memtrackChildDump){addProcessScalar({source:'reported_by_os',component:['gpu_memory',memtrackChildDump.name],property:PROPORTIONAL_RESIDENT_SIZE,value:memtrackChildDump.numerics.memtrack_pss});});}},function(componentTree){},values);}
const SYSTEM_VALUE_COMPONENTS={'':{classificationPath:[],},'java_heap':{classificationPath:['Android','Java runtime','Spaces'],userFriendlyName:'the Java heap'},'ashmem':{classificationPath:['Android','Ashmem'],userFriendlyName:'ashmem'},'native_heap':{classificationPath:['Native heap'],userFriendlyName:'the native heap'},'stack':{classificationPath:['Stack'],userFriendlyName:'the thread stacks'}};function getDescendantVmRegionClassificationNode(node,path){for(let i=0;i<path.length;i++){if(node===undefined)break;node=tr.b.findFirstInArray(node.children,c=>c.title===path[i]);}
return node;}
function addMemoryDumpCountValues(browserNameToGlobalDumps,values){browserNameToGlobalDumps.forEach(function(globalDumps,browserName){let totalDumpCount=0;const levelOfDetailNameToDumpCount={};LEVEL_OF_DETAIL_NAMES.forEach(function(levelOfDetailName){levelOfDetailNameToDumpCount[levelOfDetailName]=0;});levelOfDetailNameToDumpCount[HEAP_PROFILER_DETAIL_NAME]=0;globalDumps.forEach(function(globalDump){totalDumpCount++;const levelOfDetailName=LEVEL_OF_DETAIL_NAMES.get(globalDump.levelOfDetail);if(levelOfDetailName===undefined){return;}
levelOfDetailNameToDumpCount[levelOfDetailName]++;if(globalDump.levelOfDetail===DETAILED){if(detectHeapProfilerInMemoryDump(globalDump)){levelOfDetailNameToDumpCount[HEAP_PROFILER_DETAIL_NAME]++;}}});reportMemoryDumpCountAsValue(browserName,undefined,totalDumpCount,values);for(const[levelOfDetailName,levelOfDetailDumpCount]of
Object.entries(levelOfDetailNameToDumpCount)){reportMemoryDumpCountAsValue(browserName,levelOfDetailName,levelOfDetailDumpCount,values);}});}
function detectHeapProfilerInMemoryDump(globalDump){for(const processDump of Object.values(globalDump.processMemoryDumps)){if(processDump.heapDumps&&processDump.heapDumps.malloc){const mallocDump=processDump.heapDumps.malloc;if(mallocDump.entries&&mallocDump.entries.length>0){return true;}}}
return false;}
function reportMemoryDumpCountAsValue(browserName,levelOfDetailName,levelOfDetailDumpCount,values){const nameParts=['memory',browserName,'all_processes','dump_count'];if(levelOfDetailName!==undefined){nameParts.push(levelOfDetailName);}
const name=nameParts.join(':');const histogram=new tr.v.Histogram(name,count_smallerIsBetter,BOUNDARIES_FOR_UNIT_MAP.get(count_smallerIsBetter));histogram.addSample(levelOfDetailDumpCount);const userFriendlyLevelOfDetail=(levelOfDetailName||'all').replace('_',' ');histogram.description=['total number of',userFriendlyLevelOfDetail,'memory dumps added by',convertBrowserNameToUserFriendlyName(browserName),'to the trace'].join(' ');values.addHistogram(histogram);}
function addMemoryDumpValues(browserNameToGlobalDumps,customGlobalDumpFilter,customProcessDumpValueExtractor,customComponentTreeModifier,values){browserNameToGlobalDumps.forEach(function(globalDumps,browserName){const filteredGlobalDumps=globalDumps.filter(customGlobalDumpFilter);const sourceToPropertyToBuilder=extractDataFromGlobalDumps(filteredGlobalDumps,customProcessDumpValueExtractor);reportDataAsValues(sourceToPropertyToBuilder,browserName,customComponentTreeModifier,values);});}
function extractDataFromGlobalDumps(globalDumps,customProcessDumpValueExtractor){const sourceToPropertyToBuilder=new Map();const dumpCount=globalDumps.length;globalDumps.forEach(function(globalDump,dumpIndex){for(const processDump of Object.values(globalDump.processMemoryDumps)){extractDataFromProcessDump(processDump,sourceToPropertyToBuilder,dumpIndex,dumpCount,customProcessDumpValueExtractor);}});return sourceToPropertyToBuilder;}
function extractDataFromProcessDump(processDump,sourceToPropertyToBuilder,dumpIndex,dumpCount,customProcessDumpValueExtractor){const rawProcessName=processDump.process.name;const processNamePath=[tr.e.chrome.chrome_processes.canonicalizeProcessName(rawProcessName)];customProcessDumpValueExtractor(processDump,function addProcessScalar(spec){if(spec.value===undefined)return;const component=spec.component||[];function createDetailsForErrorMessage(){return['source=',spec.source,', property=',spec.property.name||'(undefined)',', component=',component.length===0?'(empty)':component.join(':'),' in ',processDump.process.userFriendlyName].join('');}
let value;if(spec.value instanceof tr.b.Scalar){value=spec.value.value;if(spec.value.unit!==spec.property.unit){throw new Error('Scalar unit for '+
createDetailsForErrorMessage()+' ('+
spec.value.unit.unitName+') doesn\'t match the unit of the property ('+
spec.property.unit.unitName+')');}}else{value=spec.value;}
let propertyToBuilder=sourceToPropertyToBuilder.get(spec.source);if(propertyToBuilder===undefined){propertyToBuilder=new Map();sourceToPropertyToBuilder.set(spec.source,propertyToBuilder);}
let builder=propertyToBuilder.get(spec.property);if(builder===undefined){builder=new tr.b.MultiDimensionalViewBuilder(2,dumpCount),propertyToBuilder.set(spec.property,builder);}
const values=new Array(dumpCount);values[dumpIndex]=value;builder.addPath([processNamePath,component],values,tr.b.MultiDimensionalViewBuilder.ValueKind.TOTAL);});}
function reportDataAsValues(sourceToPropertyToBuilder,browserName,customComponentTreeModifier,values){sourceToPropertyToBuilder.forEach(function(propertyToBuilder,sourceName){propertyToBuilder.forEach(function(builders,property){const tree=builders.buildTopDownTreeView();reportComponentDataAsValues(browserName,sourceName,property,[],[],tree,values,customComponentTreeModifier);});});}
function reportComponentDataAsValues(browserName,sourceName,property,processPath,componentPath,tree,values,customComponentTreeModifier,opt_cachedHistograms){const cachedHistograms=opt_cachedHistograms||new Map();function recurse(processPath,componentPath,node){return reportComponentDataAsValues(browserName,sourceName,property,processPath,componentPath,node,values,customComponentTreeModifier,cachedHistograms);}
function buildHistogram(processPath,componentPath,node){return buildNamedMemoryNumericFromNode(browserName,sourceName,property,processPath.length===0?'all_processes':processPath[0],componentPath,node);}
customComponentTreeModifier(tree);const histogram=buildHistogram(processPath,componentPath,tree);if(cachedHistograms.has(histogram.name)){return cachedHistograms.get(histogram.name);}
cachedHistograms.set(histogram.name,histogram);const processBreakdown=new tr.v.d.RelatedHistogramBreakdown();processBreakdown.colorScheme=tr.e.chrome.chrome_processes.PROCESS_COLOR_SCHEME_NAME;for(const[childProcessName,childProcessNode]of tree.children[0]){processPath.push(childProcessName);const childProcessHistogram=recurse(processPath,componentPath,childProcessNode);processBreakdown.set(childProcessName,childProcessHistogram);processPath.pop();}
const componentBreakdown=new tr.v.d.RelatedHistogramBreakdown();for(const[childComponentName,childComponentNode]of tree.children[1]){componentPath.push(childComponentName);const childComponentHistogram=recurse(processPath,componentPath,childComponentNode);componentBreakdown.set(childComponentName,childComponentHistogram);componentPath.pop();}
values.addHistogram(histogram);if(tree.children[0].size>0){histogram.diagnostics.set('processes',processBreakdown);}
if(tree.children[1].size>0){histogram.diagnostics.set('components',componentBreakdown);}
return histogram;}
function getNumericName(browserName,sourceName,propertyName,processName,componentPath){const nameParts=['memory',browserName,processName,sourceName].concat(componentPath);if(propertyName!==undefined)nameParts.push(propertyName);return nameParts.join(':');}
function getNumericDescription(property,browserName,processName,componentPath){return[property.buildDescriptionPrefix(componentPath,processName),'in',convertBrowserNameToUserFriendlyName(browserName)].join(' ');}
function buildNamedMemoryNumericFromNode(browserName,sourceName,property,processName,componentPath,node){const name=getNumericName(browserName,sourceName,property.name,processName,componentPath);const description=getNumericDescription(property,browserName,processName,componentPath);const numeric=buildMemoryNumericFromNode(name,node,property.unit);numeric.description=description;return numeric;}
function buildMemoryNumericFromNode(name,node,unit){const histogram=new tr.v.Histogram(name,unit,BOUNDARIES_FOR_UNIT_MAP.get(unit));node.values.forEach(v=>histogram.addSample(v.total));return histogram;}
tr.metrics.MetricRegistry.register(memoryMetric,{supportsRangeOfInterest:true});return{memoryMetric,};});'use strict';tr.exportTo('tr.metrics.sh',function(){const CHROME_POWER_GRACE_PERIOD_MS=1;function createEmptyHistogram_(interval,histograms){if(interval.perSecond){return{perSecond:true,energy:histograms.createHistogram(`${interval.name}:power`,tr.b.Unit.byName.powerInWatts_smallerIsBetter,[],{description:`Energy consumption rate for ${interval.description}`,summaryOptions:{avg:true,count:false,max:true,min:true,std:false,sum:false,},}),};}
return{perSecond:false,energy:histograms.createHistogram(`${interval.name}:energy`,tr.b.Unit.byName.energyInJoules_smallerIsBetter,[],{description:`Energy consumed in ${interval.description}`,summaryOptions:{avg:false,count:false,max:true,min:true,std:false,sum:true,},}),};}
function createHistograms_(data,interval,histograms){if(data.histograms[interval.name]===undefined){data.histograms[interval.name]=createEmptyHistogram_(interval,histograms);}
if(data.histograms[interval.name].perSecond){for(const sample of data.model.device.powerSeries.getSamplesWithinRange(interval.bounds.min,interval.bounds.max)){data.histograms[interval.name].energy.addSample(sample.powerInW);}}else{const energyInJ=data.model.device.powerSeries.getEnergyConsumedInJ(interval.bounds.min,interval.bounds.max);data.histograms[interval.name].energy.addSample(energyInJ);}}
function getNavigationTTIIntervals_(model){const chromeHelper=model.getOrCreateHelper(tr.model.helpers.ChromeModelHelper);const intervals=[];for(const rendererHelper of Object.values(chromeHelper.rendererHelpers)){const samples=tr.metrics.sh.collectLoadingMetricsForRenderer(rendererHelper).firstInteractiveSamples;for(const sample of samples){const info=sample.diagnostics['Navigation infos'].value;intervals.push(tr.b.math.Range.fromExplicitRange(info.start,info.interactive));}}
return intervals.sort((x,y)=>x.min-y.min);}
function*computeTimeIntervals_(model){const chromeHelper=model.getOrCreateHelper(tr.model.helpers.ChromeModelHelper);const powerSeries=model.device.powerSeries;if(powerSeries===undefined||powerSeries.samples.length===0){return;}
yield{bounds:model.bounds,name:'story',description:'user story',perSecond:true};const chromeBounds=computeChromeBounds_(model);if(chromeBounds.isEmpty)return;const powerSeriesBoundsWithGracePeriod=tr.b.math.Range.fromExplicitRange(powerSeries.bounds.min-CHROME_POWER_GRACE_PERIOD_MS,powerSeries.bounds.max+CHROME_POWER_GRACE_PERIOD_MS);if(!powerSeriesBoundsWithGracePeriod.containsRangeExclusive(chromeBounds)){return;}
for(const interval of getRailStageIntervals_(model)){yield{bounds:interval.bounds.findIntersection(chromeBounds),name:interval.name,description:interval.description,perSecond:interval.perSecond};}
for(const interval of getLoadingIntervals_(model,chromeBounds)){yield{bounds:interval.bounds.findIntersection(chromeBounds),name:interval.name,description:interval.description,perSecond:interval.perSecond};}}
function*getRailStageIntervals_(model){for(const exp of model.userModel.expectations){const histogramName=exp.title.toLowerCase().replace(' ','_');const energyHist=undefined;if(histogramName.includes('response')){yield{bounds:tr.b.math.Range.fromExplicitRange(exp.start,exp.end),name:histogramName,description:'RAIL stage '+histogramName,perSecond:false};}else if(histogramName.includes('animation')||histogramName.includes('idle')){yield{bounds:tr.b.math.Range.fromExplicitRange(exp.start,exp.end),name:histogramName,description:'RAIL stage '+histogramName,perSecond:true};}}}
function*getLoadingIntervals_(model,chromeBounds){const ttiIntervals=getNavigationTTIIntervals_(model);let lastLoadTime=undefined;for(const ttiInterval of ttiIntervals){yield{bounds:ttiInterval,name:'load',description:'page loads',perSecond:false};lastLoadTime=lastLoadTime===undefined?ttiInterval.max:Math.max(lastLoadTime,ttiInterval.max);}
if(lastLoadTime!==undefined){yield{bounds:tr.b.math.Range.fromExplicitRange(lastLoadTime,chromeBounds.max),name:'after_load',description:'period after load',perSecond:true};}}
function computeChromeBounds_(model){const chromeBounds=new tr.b.math.Range();const chromeHelper=model.getOrCreateHelper(tr.model.helpers.ChromeModelHelper);if(chromeHelper===undefined)return chromeBounds;for(const helper of chromeHelper.browserHelpers){if(helper.mainThread){chromeBounds.addRange(helper.mainThread.bounds);}}
for(const pid in chromeHelper.rendererHelpers){if(chromeHelper.rendererHelpers[pid].mainThread){chromeBounds.addRange(chromeHelper.rendererHelpers[pid].mainThread.bounds);}}
return chromeBounds;}
function powerMetric(histograms,model){const data={model,histograms:{}};for(const interval of computeTimeIntervals_(model)){createHistograms_(data,interval,histograms);}}
tr.metrics.MetricRegistry.register(powerMetric);return{powerMetric};});'use strict';tr.exportTo('tr.metrics.sh',function(){function computeAnimationThroughput(animationExpectation){if(animationExpectation.frameEvents===undefined||animationExpectation.frameEvents.length===0){throw new Error('Animation missing frameEvents '+
animationExpectation.stableId);}
const durationInS=tr.b.convertUnit(animationExpectation.duration,tr.b.UnitPrefixScale.METRIC.MILLI,tr.b.UnitPrefixScale.METRIC.NONE);return animationExpectation.frameEvents.length/durationInS;}
function computeAnimationframeTimeDiscrepancy(animationExpectation){if(animationExpectation.frameEvents===undefined||animationExpectation.frameEvents.length===0){throw new Error('Animation missing frameEvents '+
animationExpectation.stableId);}
let frameTimestamps=animationExpectation.frameEvents;frameTimestamps=frameTimestamps.toArray().map(function(event){return event.start;});const absolute=true;return tr.b.math.Statistics.timestampsDiscrepancy(frameTimestamps,absolute);}
function responsivenessMetric(histograms,model,opt_options){const responseNumeric=new tr.v.Histogram('response latency',tr.b.Unit.byName.timeDurationInMs_smallerIsBetter,tr.v.HistogramBinBoundaries.createLinear(100,1e3,50));const throughputNumeric=new tr.v.Histogram('animation throughput',tr.b.Unit.byName.unitlessNumber_biggerIsBetter,tr.v.HistogramBinBoundaries.createLinear(10,60,10));const frameTimeDiscrepancyNumeric=new tr.v.Histogram('animation frameTimeDiscrepancy',tr.b.Unit.byName.timeDurationInMs_smallerIsBetter,tr.v.HistogramBinBoundaries.createLinear(0,1e3,50).addExponentialBins(1e4,10));const latencyNumeric=new tr.v.Histogram('animation latency',tr.b.Unit.byName.timeDurationInMs_smallerIsBetter,tr.v.HistogramBinBoundaries.createLinear(0,300,60));model.userModel.expectations.forEach(function(ue){if(opt_options&&opt_options.rangeOfInterest&&!opt_options.rangeOfInterest.intersectsExplicitRangeInclusive(ue.start,ue.end)){return;}
const sampleDiagnosticMap=tr.v.d.DiagnosticMap.fromObject({relatedEvents:new tr.v.d.RelatedEventSet([ue])});if(ue instanceof tr.model.um.IdleExpectation){return;}else if(ue instanceof tr.model.um.StartupExpectation){return;}else if(ue instanceof tr.model.um.LoadExpectation){}else if(ue instanceof tr.model.um.ResponseExpectation){responseNumeric.addSample(ue.duration,sampleDiagnosticMap);}else if(ue instanceof tr.model.um.AnimationExpectation){if(ue.frameEvents===undefined||ue.frameEvents.length===0){return;}
const throughput=computeAnimationThroughput(ue);if(throughput===undefined){throw new Error('Missing throughput for '+
ue.stableId);}
throughputNumeric.addSample(throughput,sampleDiagnosticMap);const frameTimeDiscrepancy=computeAnimationframeTimeDiscrepancy(ue);if(frameTimeDiscrepancy===undefined){throw new Error('Missing frameTimeDiscrepancy for '+
ue.stableId);}
frameTimeDiscrepancyNumeric.addSample(frameTimeDiscrepancy,sampleDiagnosticMap);ue.associatedEvents.forEach(function(event){if(!(event instanceof tr.e.cc.InputLatencyAsyncSlice)){return;}
latencyNumeric.addSample(event.duration,sampleDiagnosticMap);});}else{throw new Error('Unrecognized stage for '+ue.stableId);}});[responseNumeric,throughputNumeric,frameTimeDiscrepancyNumeric,latencyNumeric].forEach(function(numeric){numeric.customizeSummaryOptions({avg:true,max:true,min:true,std:true});});histograms.addHistogram(responseNumeric);histograms.addHistogram(throughputNumeric);histograms.addHistogram(frameTimeDiscrepancyNumeric);histograms.addHistogram(latencyNumeric);}
tr.metrics.MetricRegistry.register(responsivenessMetric,{supportsRangeOfInterest:true});return{responsivenessMetric,};});'use strict';tr.exportTo('tr.metrics.sh',function(){function webviewStartupMetric(histograms,model){const startupWallHist=new tr.v.Histogram('webview_startup_wall_time',tr.b.Unit.byName.timeDurationInMs_smallerIsBetter);startupWallHist.description='WebView startup wall time';const startupCPUHist=new tr.v.Histogram('webview_startup_cpu_time',tr.b.Unit.byName.timeDurationInMs_smallerIsBetter);startupCPUHist.description='WebView startup CPU time';const loadWallHist=new tr.v.Histogram('webview_url_load_wall_time',tr.b.Unit.byName.timeDurationInMs_smallerIsBetter);loadWallHist.description='WebView blank URL load wall time';const loadCPUHist=new tr.v.Histogram('webview_url_load_cpu_time',tr.b.Unit.byName.timeDurationInMs_smallerIsBetter);loadCPUHist.description='WebView blank URL load CPU time';for(const slice of model.getDescendantEvents()){if(!(slice instanceof tr.model.ThreadSlice))continue;if(slice.title==='WebViewStartupInterval'){startupWallHist.addSample(slice.duration);startupCPUHist.addSample(slice.cpuDuration);}
if(slice.title==='WebViewBlankUrlLoadInterval'){loadWallHist.addSample(slice.duration);loadCPUHist.addSample(slice.cpuDuration);}}
histograms.addHistogram(startupWallHist);histograms.addHistogram(startupCPUHist);histograms.addHistogram(loadWallHist);histograms.addHistogram(loadCPUHist);}
tr.metrics.MetricRegistry.register(webviewStartupMetric);return{webviewStartupMetric,};});'use strict';tr.exportTo('tr.metrics',function(){const MEMORY_INFRA_TRACING_CATEGORY='disabled-by-default-memory-infra';const TIME_BOUNDARIES=tr.v.HistogramBinBoundaries.createExponential(1e-3,1e5,30);const BYTE_BOUNDARIES=tr.v.HistogramBinBoundaries.createExponential(1,1e9,30);const COUNT_BOUNDARIES=tr.v.HistogramBinBoundaries.createExponential(1,1e5,30);const SUMMARY_OPTIONS=tr.v.Histogram.AVERAGE_ONLY_SUMMARY_OPTIONS;function addMemoryInfraHistograms(histograms,model,categoryNamesToTotalEventSizes){const memoryDumpCount=model.globalMemoryDumps.length;if(memoryDumpCount===0)return;let totalOverhead=0;let nonMemoryInfraThreadOverhead=0;const overheadByProvider={};for(const process of Object.values(model.processes)){for(const thread of Object.values(process.threads)){for(const slice of Object.values(thread.sliceGroup.slices)){if(slice.category!==MEMORY_INFRA_TRACING_CATEGORY)continue;totalOverhead+=slice.duration;if(thread.name!=='MemoryInfra'){nonMemoryInfraThreadOverhead+=slice.duration;}
if(slice.args&&slice.args['dump_provider.name']){const providerName=slice.args['dump_provider.name'];let durationAndCount=overheadByProvider[providerName];if(durationAndCount===undefined){overheadByProvider[providerName]=durationAndCount={duration:0,count:0};}
durationAndCount.duration+=slice.duration;durationAndCount.count++;}}}}
histograms.createHistogram('memory_dump_cpu_overhead',tr.b.Unit.byName.timeDurationInMs_smallerIsBetter,totalOverhead/memoryDumpCount,{binBoundaries:TIME_BOUNDARIES,description:'Average CPU overhead on all threads per memory-infra dump',summaryOptions:SUMMARY_OPTIONS,});histograms.createHistogram('nonmemory_thread_memory_dump_cpu_overhead',tr.b.Unit.byName.timeDurationInMs_smallerIsBetter,nonMemoryInfraThreadOverhead/memoryDumpCount,{binBoundaries:TIME_BOUNDARIES,description:'Average CPU overhead on non-memory-infra threads '+'per memory-infra dump',summaryOptions:SUMMARY_OPTIONS,});for(const[providerName,overhead]of Object.entries(overheadByProvider)){histograms.createHistogram(`${providerName}_memory_dump_cpu_overhead`,tr.b.Unit.byName.timeDurationInMs_smallerIsBetter,overhead.duration/overhead.count,{binBoundaries:TIME_BOUNDARIES,description:`Average CPU overhead of ${providerName} per OnMemoryDump call`,summaryOptions:SUMMARY_OPTIONS,});}
const memoryInfraEventsSize=categoryNamesToTotalEventSizes.get(MEMORY_INFRA_TRACING_CATEGORY);const memoryInfraTraceBytesValue=new tr.v.Histogram('total_memory_dump_size',tr.b.Unit.byName.sizeInBytes_smallerIsBetter,BYTE_BOUNDARIES);memoryInfraTraceBytesValue.description='Total trace size of memory-infra dumps in bytes';memoryInfraTraceBytesValue.customizeSummaryOptions(SUMMARY_OPTIONS);memoryInfraTraceBytesValue.addSample(memoryInfraEventsSize);histograms.addHistogram(memoryInfraTraceBytesValue);const traceBytesPerDumpValue=new tr.v.Histogram('memory_dump_size',tr.b.Unit.byName.sizeInBytes_smallerIsBetter,BYTE_BOUNDARIES);traceBytesPerDumpValue.description='Average trace size of memory-infra dumps in bytes';traceBytesPerDumpValue.customizeSummaryOptions(SUMMARY_OPTIONS);traceBytesPerDumpValue.addSample(memoryInfraEventsSize/memoryDumpCount);histograms.addHistogram(traceBytesPerDumpValue);}
function tracingMetric(histograms,model){histograms.createHistogram('trace_import_duration',tr.b.Unit.byName.timeDurationInMs_smallerIsBetter,model.stats.traceImportDurationMs,{binBoundaries:TIME_BOUNDARIES,description:'Duration that trace viewer required to import the trace',summaryOptions:SUMMARY_OPTIONS,});if(!model.stats.hasEventSizesinBytes)return;const eventStats=model.stats.allTraceEventStatsInTimeIntervals;eventStats.sort((a,b)=>a.timeInterval-b.timeInterval);const totalTraceBytes=eventStats.reduce((a,b)=>a+b.totalEventSizeinBytes,0);let maxEventCountPerSec=0;let maxEventBytesPerSec=0;const INTERVALS_PER_SEC=Math.floor(1000/model.stats.TIME_INTERVAL_SIZE_IN_MS);let runningEventNumPerSec=0;let runningEventBytesPerSec=0;let start=0;let end=0;while(end<eventStats.length){runningEventNumPerSec+=eventStats[end].numEvents;runningEventBytesPerSec+=eventStats[end].totalEventSizeinBytes;end++;while((eventStats[end-1].timeInterval-
eventStats[start].timeInterval)>=INTERVALS_PER_SEC){runningEventNumPerSec-=eventStats[start].numEvents;runningEventBytesPerSec-=eventStats[start].totalEventSizeinBytes;start++;}
maxEventCountPerSec=Math.max(maxEventCountPerSec,runningEventNumPerSec);maxEventBytesPerSec=Math.max(maxEventBytesPerSec,runningEventBytesPerSec);}
const stats=model.stats.allTraceEventStats;const categoryNamesToTotalEventSizes=(stats.reduce((map,stat)=>(map.set(stat.category,((map.get(stat.category)||0)+
stat.totalEventSizeinBytes))),new Map()));const maxCatNameAndBytes=Array.from(categoryNamesToTotalEventSizes.entries()).reduce((a,b)=>((b[1]>=a[1])?b:a));const maxEventBytesPerCategory=maxCatNameAndBytes[1];const categoryWithMaxEventBytes=maxCatNameAndBytes[0];const maxEventCountPerSecValue=new tr.v.Histogram('peak_event_rate',tr.b.Unit.byName.count_smallerIsBetter,COUNT_BOUNDARIES);maxEventCountPerSecValue.description='Max number of events per second';maxEventCountPerSecValue.customizeSummaryOptions(SUMMARY_OPTIONS);maxEventCountPerSecValue.addSample(maxEventCountPerSec);const maxEventBytesPerSecValue=new tr.v.Histogram('peak_event_size_rate',tr.b.Unit.byName.sizeInBytes_smallerIsBetter,BYTE_BOUNDARIES);maxEventBytesPerSecValue.description='Max event size in bytes per second';maxEventBytesPerSecValue.customizeSummaryOptions(SUMMARY_OPTIONS);maxEventBytesPerSecValue.addSample(maxEventBytesPerSec);const totalTraceBytesValue=new tr.v.Histogram('trace_size',tr.b.Unit.byName.sizeInBytes_smallerIsBetter,BYTE_BOUNDARIES);totalTraceBytesValue.customizeSummaryOptions(SUMMARY_OPTIONS);totalTraceBytesValue.addSample(totalTraceBytes);const biggestCategory={name:categoryWithMaxEventBytes,size_in_bytes:maxEventBytesPerCategory};totalTraceBytesValue.diagnostics.set('category_with_max_event_size',new tr.v.d.Generic(biggestCategory));histograms.addHistogram(totalTraceBytesValue);maxEventCountPerSecValue.diagnostics.set('category_with_max_event_size',new tr.v.d.Generic(biggestCategory));histograms.addHistogram(maxEventCountPerSecValue);maxEventBytesPerSecValue.diagnostics.set('category_with_max_event_size',new tr.v.d.Generic(biggestCategory));histograms.addHistogram(maxEventBytesPerSecValue);addMemoryInfraHistograms(histograms,model,categoryNamesToTotalEventSizes);}
tr.metrics.MetricRegistry.register(tracingMetric);return{tracingMetric,MEMORY_INFRA_TRACING_CATEGORY,};});'use strict';tr.exportTo('tr.metrics.v8',function(){const CUSTOM_BOUNDARIES=tr.v.HistogramBinBoundaries.createLinear(4,200,100);function computeExecuteMetrics(histograms,model){const cpuTotalExecution=new tr.v.Histogram('v8_execution_cpu_total',tr.b.Unit.byName.timeDurationInMs_smallerIsBetter,CUSTOM_BOUNDARIES);cpuTotalExecution.description='cpu total time spent in script execution';const wallTotalExecution=new tr.v.Histogram('v8_execution_wall_total',tr.b.Unit.byName.timeDurationInMs_smallerIsBetter,CUSTOM_BOUNDARIES);wallTotalExecution.description='wall total time spent in script execution';const cpuSelfExecution=new tr.v.Histogram('v8_execution_cpu_self',tr.b.Unit.byName.timeDurationInMs_smallerIsBetter,CUSTOM_BOUNDARIES);cpuSelfExecution.description='cpu self time spent in script execution';const wallSelfExecution=new tr.v.Histogram('v8_execution_wall_self',tr.b.Unit.byName.timeDurationInMs_smallerIsBetter,CUSTOM_BOUNDARIES);wallSelfExecution.description='wall self time spent in script execution';for(const e of model.findTopmostSlicesNamed('V8.Execute')){cpuTotalExecution.addSample(e.cpuDuration);wallTotalExecution.addSample(e.duration);cpuSelfExecution.addSample(e.cpuSelfTime);wallSelfExecution.addSample(e.selfTime);}
histograms.addHistogram(cpuTotalExecution);histograms.addHistogram(wallTotalExecution);histograms.addHistogram(cpuSelfExecution);histograms.addHistogram(wallSelfExecution);}
function computeParseLazyMetrics(histograms,model){const cpuSelfParseLazy=new tr.v.Histogram('v8_parse_lazy_cpu_self',tr.b.Unit.byName.timeDurationInMs_smallerIsBetter,CUSTOM_BOUNDARIES);cpuSelfParseLazy.description='cpu self time spent performing lazy parsing';const wallSelfParseLazy=new tr.v.Histogram('v8_parse_lazy_wall_self',tr.b.Unit.byName.timeDurationInMs_smallerIsBetter,CUSTOM_BOUNDARIES);wallSelfParseLazy.description='wall self time spent performing lazy parsing';for(const e of model.findTopmostSlicesNamed('V8.ParseLazyMicroSeconds')){cpuSelfParseLazy.addSample(e.cpuSelfTime);wallSelfParseLazy.addSample(e.selfTime);}
for(const e of model.findTopmostSlicesNamed('V8.ParseLazy')){cpuSelfParseLazy.addSample(e.cpuSelfTime);wallSelfParseLazy.addSample(e.selfTime);}
histograms.addHistogram(cpuSelfParseLazy);histograms.addHistogram(wallSelfParseLazy);}
function computeCompileFullCodeMetrics(histograms,model){const cpuSelfCompileFullCode=new tr.v.Histogram('v8_compile_full_code_cpu_self',tr.b.Unit.byName.timeDurationInMs_smallerIsBetter,CUSTOM_BOUNDARIES);cpuSelfCompileFullCode.description='cpu self time spent performing compiling full code';const wallSelfCompileFullCode=new tr.v.Histogram('v8_compile_full_code_wall_self',tr.b.Unit.byName.timeDurationInMs_smallerIsBetter,CUSTOM_BOUNDARIES);wallSelfCompileFullCode.description='wall self time spent performing compiling full code';for(const e of model.findTopmostSlicesNamed('V8.CompileFullCode')){cpuSelfCompileFullCode.addSample(e.cpuSelfTime);wallSelfCompileFullCode.addSample(e.selfTime);}
histograms.addHistogram(cpuSelfCompileFullCode);histograms.addHistogram(wallSelfCompileFullCode);}
function computeCompileIgnitionMetrics(histograms,model){const cpuSelfCompileIgnition=new tr.v.Histogram('v8_compile_ignition_cpu_self',tr.b.Unit.byName.timeDurationInMs_smallerIsBetter,CUSTOM_BOUNDARIES);cpuSelfCompileIgnition.description='cpu self time spent in compile ignition';const wallSelfCompileIgnition=new tr.v.Histogram('v8_compile_ignition_wall_self',tr.b.Unit.byName.timeDurationInMs_smallerIsBetter,CUSTOM_BOUNDARIES);wallSelfCompileIgnition.description='wall self time spent in compile ignition';for(const e of model.findTopmostSlicesNamed('V8.CompileIgnition')){cpuSelfCompileIgnition.addSample(e.cpuSelfTime);wallSelfCompileIgnition.addSample(e.selfTime);}
histograms.addHistogram(cpuSelfCompileIgnition);histograms.addHistogram(wallSelfCompileIgnition);}
function computeRecompileMetrics(histograms,model){const cpuTotalRecompileSynchronous=new tr.v.Histogram('v8_recompile_synchronous_cpu_total',tr.b.Unit.byName.timeDurationInMs_smallerIsBetter,CUSTOM_BOUNDARIES);cpuTotalRecompileSynchronous.description='cpu total time spent in synchronous recompilation';const wallTotalRecompileSynchronous=new tr.v.Histogram('v8_recompile_synchronous_wall_total',tr.b.Unit.byName.timeDurationInMs_smallerIsBetter,CUSTOM_BOUNDARIES);wallTotalRecompileSynchronous.description='wall total time spent in synchronous recompilation';const cpuTotalRecompileConcurrent=new tr.v.Histogram('v8_recompile_concurrent_cpu_total',tr.b.Unit.byName.timeDurationInMs_smallerIsBetter,CUSTOM_BOUNDARIES);cpuTotalRecompileConcurrent.description='cpu total time spent in concurrent recompilation';const wallTotalRecompileConcurrent=new tr.v.Histogram('v8_recompile_concurrent_wall_total',tr.b.Unit.byName.timeDurationInMs_smallerIsBetter,CUSTOM_BOUNDARIES);wallTotalRecompileConcurrent.description='wall total time spent in concurrent recompilation';const cpuTotalRecompileOverall=new tr.v.Histogram('v8_recompile_overall_cpu_total',tr.b.Unit.byName.timeDurationInMs_smallerIsBetter,CUSTOM_BOUNDARIES);cpuTotalRecompileOverall.description='cpu total time spent in synchronous or concurrent recompilation';const wallTotalRecompileOverall=new tr.v.Histogram('v8_recompile_overall_wall_total',tr.b.Unit.byName.timeDurationInMs_smallerIsBetter,CUSTOM_BOUNDARIES);wallTotalRecompileOverall.description='wall total time spent in synchronous or concurrent recompilation';for(const e of model.findTopmostSlicesNamed('V8.RecompileSynchronous')){cpuTotalRecompileSynchronous.addSample(e.cpuDuration);wallTotalRecompileSynchronous.addSample(e.duration);cpuTotalRecompileOverall.addSample(e.cpuDuration);wallTotalRecompileOverall.addSample(e.duration);}
histograms.addHistogram(cpuTotalRecompileSynchronous);histograms.addHistogram(wallTotalRecompileSynchronous);for(const e of model.findTopmostSlicesNamed('V8.RecompileConcurrent')){cpuTotalRecompileConcurrent.addSample(e.cpuDuration);wallTotalRecompileConcurrent.addSample(e.duration);cpuTotalRecompileOverall.addSample(e.cpuDuration);wallTotalRecompileOverall.addSample(e.duration);}
histograms.addHistogram(cpuTotalRecompileConcurrent);histograms.addHistogram(wallTotalRecompileConcurrent);histograms.addHistogram(cpuTotalRecompileOverall);histograms.addHistogram(wallTotalRecompileOverall);}
function computeOptimizeCodeMetrics(histograms,model){const cpuTotalOptimizeCode=new tr.v.Histogram('v8_optimize_code_cpu_total',tr.b.Unit.byName.timeDurationInMs_smallerIsBetter,CUSTOM_BOUNDARIES);cpuTotalOptimizeCode.description='cpu total time spent in code optimization';const wallTotalOptimizeCode=new tr.v.Histogram('v8_optimize_code_wall_total',tr.b.Unit.byName.timeDurationInMs_smallerIsBetter,CUSTOM_BOUNDARIES);wallTotalOptimizeCode.description='wall total time spent in code optimization';for(const e of model.findTopmostSlicesNamed('V8.OptimizeCode')){cpuTotalOptimizeCode.addSample(e.cpuDuration);wallTotalOptimizeCode.addSample(e.duration);}
histograms.addHistogram(cpuTotalOptimizeCode);histograms.addHistogram(wallTotalOptimizeCode);}
function computeDeoptimizeCodeMetrics(histograms,model){const cpuTotalDeoptimizeCode=new tr.v.Histogram('v8_deoptimize_code_cpu_total',tr.b.Unit.byName.timeDurationInMs_smallerIsBetter,CUSTOM_BOUNDARIES);cpuTotalDeoptimizeCode.description='cpu total time spent in code deoptimization';const wallTotalDeoptimizeCode=new tr.v.Histogram('v8_deoptimize_code_wall_total',tr.b.Unit.byName.timeDurationInMs_smallerIsBetter,CUSTOM_BOUNDARIES);wallTotalDeoptimizeCode.description='wall total time spent in code deoptimization';for(const e of model.findTopmostSlicesNamed('V8.DeoptimizeCode')){cpuTotalDeoptimizeCode.addSample(e.cpuDuration);wallTotalDeoptimizeCode.addSample(e.duration);}
histograms.addHistogram(cpuTotalDeoptimizeCode);histograms.addHistogram(wallTotalDeoptimizeCode);}
function executionMetric(histograms,model){computeExecuteMetrics(histograms,model);computeParseLazyMetrics(histograms,model);computeCompileIgnitionMetrics(histograms,model);computeCompileFullCodeMetrics(histograms,model);computeRecompileMetrics(histograms,model);computeOptimizeCodeMetrics(histograms,model);computeDeoptimizeCodeMetrics(histograms,model);}
tr.metrics.MetricRegistry.register(executionMetric);return{executionMetric,};});'use strict';tr.exportTo('tr.metrics.v8',function(){const TARGET_FPS=60;const MS_PER_SECOND=1000;const WINDOW_SIZE_MS=MS_PER_SECOND/TARGET_FPS;function gcMetric(histograms,model){addDurationOfTopEvents(histograms,model);addTotalDurationOfTopEvents(histograms,model);addDurationOfSubEvents(histograms,model);addPercentageInV8ExecuteOfTopEvents(histograms,model);addTotalPercentageInV8Execute(histograms,model);}
tr.metrics.MetricRegistry.register(gcMetric);const timeDurationInMs_smallerIsBetter=tr.b.Unit.byName.timeDurationInMs_smallerIsBetter;const percentage_biggerIsBetter=tr.b.Unit.byName.normalizedPercentage_biggerIsBetter;const percentage_smallerIsBetter=tr.b.Unit.byName.normalizedPercentage_smallerIsBetter;const CUSTOM_BOUNDARIES=tr.v.HistogramBinBoundaries.createLinear(0,20,200).addExponentialBins(200,100);function createNumericForTopEventTime(name){const n=new tr.v.Histogram(name,timeDurationInMs_smallerIsBetter,CUSTOM_BOUNDARIES);n.customizeSummaryOptions({avg:true,count:true,max:true,min:false,std:true,sum:true,percentile:[0.90]});return n;}
function createNumericForSubEventTime(name){const n=new tr.v.Histogram(name,timeDurationInMs_smallerIsBetter,CUSTOM_BOUNDARIES);n.customizeSummaryOptions({avg:true,count:false,max:true,min:false,std:false,sum:false,percentile:[0.90]});return n;}
function createNumericForIdleTime(name){const n=new tr.v.Histogram(name,timeDurationInMs_smallerIsBetter,CUSTOM_BOUNDARIES);n.customizeSummaryOptions({avg:true,count:false,max:true,min:false,std:false,sum:true,percentile:[]});return n;}
function createPercentage(name,numerator,denominator,unit){const hist=new tr.v.Histogram(name,unit);if(denominator===0){hist.addSample(0);}else{hist.addSample(numerator/denominator);}
hist.customizeSummaryOptions({avg:true,count:false,max:false,min:false,std:false,sum:false,percentile:[]});return hist;}
function isNotForcedTopGarbageCollectionEvent(event){return tr.metrics.v8.utils.isTopGarbageCollectionEvent(event)&&!tr.metrics.v8.utils.isForcedGarbageCollectionEvent(event);}
function isNotForcedSubGarbageCollectionEvent(event){return tr.metrics.v8.utils.isSubGarbageCollectionEvent(event)&&!tr.metrics.v8.utils.isForcedGarbageCollectionEvent(event);}
function addDurationOfTopEvents(histograms,model){tr.metrics.v8.utils.groupAndProcessEvents(model,isNotForcedTopGarbageCollectionEvent,tr.metrics.v8.utils.topGarbageCollectionEventName,function(name,events){const cpuDuration=createNumericForTopEventTime(name);events.forEach(function(event){cpuDuration.addSample(event.cpuDuration);});histograms.addHistogram(cpuDuration);});}
function addTotalDurationOfTopEvents(histograms,model){tr.metrics.v8.utils.groupAndProcessEvents(model,isNotForcedTopGarbageCollectionEvent,event=>'v8-gc-total',function(name,events){const cpuDuration=createNumericForTopEventTime(name);events.forEach(function(event){cpuDuration.addSample(event.cpuDuration);});histograms.addHistogram(cpuDuration);});}
function addDurationOfSubEvents(histograms,model){tr.metrics.v8.utils.groupAndProcessEvents(model,isNotForcedSubGarbageCollectionEvent,tr.metrics.v8.utils.subGarbageCollectionEventName,function(name,events){const cpuDuration=createNumericForSubEventTime(name);events.forEach(function(event){cpuDuration.addSample(event.cpuDuration);});histograms.addHistogram(cpuDuration);});}
function addPercentageInV8ExecuteOfTopEvents(histograms,model){tr.metrics.v8.utils.groupAndProcessEvents(model,isNotForcedTopGarbageCollectionEvent,tr.metrics.v8.utils.topGarbageCollectionEventName,function(name,events){addPercentageInV8Execute(histograms,model,name,events);});}
function addTotalPercentageInV8Execute(histograms,model){tr.metrics.v8.utils.groupAndProcessEvents(model,isNotForcedTopGarbageCollectionEvent,event=>'v8-gc-total',function(name,events){addPercentageInV8Execute(histograms,model,name,events);});}
function addPercentageInV8Execute(histograms,model,name,events){let cpuDurationInV8Execute=0;let cpuDurationTotal=0;events.forEach(function(event){const v8Execute=tr.metrics.v8.utils.findParent(event,tr.metrics.v8.utils.isV8ExecuteEvent);if(v8Execute){cpuDurationInV8Execute+=event.cpuDuration;}
cpuDurationTotal+=event.cpuDuration;});const percentage=createPercentage(name+'_percentage_in_v8_execute',cpuDurationInV8Execute,cpuDurationTotal,percentage_smallerIsBetter);histograms.addHistogram(percentage);}
return{gcMetric,WINDOW_SIZE_MS,};});'use strict';tr.exportTo('tr.metrics.v8',function(){const COUNT_CUSTOM_BOUNDARIES=tr.v.HistogramBinBoundaries.createExponential(1,1000000,50);const DURATION_CUSTOM_BOUNDARIES=tr.v.HistogramBinBoundaries.createExponential(0.1,10000,50);const SUMMARY_OPTIONS={std:false,count:false,sum:false,min:false,max:false,};function computeDomContentLoadedTime_(model){const chromeHelper=model.getOrCreateHelper(tr.model.helpers.ChromeModelHelper);let domContentLoadedTime=0;for(const rendererHelper of Object.values(chromeHelper.rendererHelpers)){for(const ev of rendererHelper.mainThread.sliceGroup.childEvents()){if(ev.title==='domContentLoadedEventEnd'&&ev.start>domContentLoadedTime){domContentLoadedTime=ev.start;}}}
return domContentLoadedTime;}
function computeInteractiveTime_(model){const chromeHelper=model.getOrCreateHelper(tr.model.helpers.ChromeModelHelper);let interactiveTime=0;for(const rendererHelper of Object.values(chromeHelper.rendererHelpers)){const samples=tr.metrics.sh.collectLoadingMetricsForRenderer(rendererHelper).firstInteractiveSamples;if(samples.length===0)continue;if(interactiveTime!==0)throw new Error('Too many navigations');interactiveTime=tr.b.getOnlyElement(samples).diagnostics['Navigation infos'].value.interactive;}
return interactiveTime;}
function convertMicroToMilli_(time){return tr.b.convertUnit(time,tr.b.UnitPrefixScale.METRIC.MICRO,tr.b.UnitPrefixScale.METRIC.MILLI);}
function computeRuntimeStats(histograms,slices){const runtimeGroupCollection=new tr.e.v8.RuntimeStatsGroupCollection();runtimeGroupCollection.addSlices(slices);for(const runtimeGroup of runtimeGroupCollection.runtimeGroups){const durationSamples=new tr.v.d.RelatedHistogramBreakdown();const countSamples=new tr.v.d.RelatedHistogramBreakdown();for(const entry of runtimeGroup.values){const durationSampleHistogram=histograms.createHistogram(`${entry.name}:duration`,tr.b.Unit.byName.timeDurationInMs_smallerIsBetter,convertMicroToMilli_(entry.time),{binBoundaries:DURATION_CUSTOM_BOUNDARIES,summaryOptions:SUMMARY_OPTIONS,});durationSamples.set(durationSampleHistogram.name,durationSampleHistogram);const countSampleHistogram=histograms.createHistogram(`${entry.name}:count`,tr.b.Unit.byName.count_smallerIsBetter,entry.count,{binBoundaries:COUNT_CUSTOM_BOUNDARIES,summaryOptions:SUMMARY_OPTIONS,});countSamples.set(countSampleHistogram.name,countSampleHistogram);}
histograms.createHistogram(`${runtimeGroup.name}:duration`,tr.b.Unit.byName.timeDurationInMs_smallerIsBetter,{value:convertMicroToMilli_(runtimeGroup.time),diagnostics:{samples:durationSamples},},{binBoundaries:DURATION_CUSTOM_BOUNDARIES,summaryOptions:SUMMARY_OPTIONS,});histograms.createHistogram(`${runtimeGroup.name}:count`,tr.b.Unit.byName.count_smallerIsBetter,{value:runtimeGroup.count,diagnostics:{samples:countSamples},},{binBoundaries:COUNT_CUSTOM_BOUNDARIES,summaryOptions:SUMMARY_OPTIONS,});}}
function runtimeStatsMetric(histograms,model){const interactiveTime=computeInteractiveTime_(model);const domContentLoadedTime=computeDomContentLoadedTime_(model);const endTime=Math.max(interactiveTime,domContentLoadedTime);const slices=[...model.getDescendantEvents()].filter(event=>event instanceof tr.e.v8.V8ThreadSlice&&event.start<=endTime);computeRuntimeStats(histograms,slices);}
function addDurationHistogram(railStageName,runtimeGroupName,sampleValue,histograms,durationRelatedHistsByGroupName){const durationHistogram=histograms.createHistogram(`${railStageName}_${runtimeGroupName}:duration`,tr.b.Unit.byName.timeDurationInMs_smallerIsBetter,convertMicroToMilli_(sampleValue),{binBoundaries:DURATION_CUSTOM_BOUNDARIES,summaryOptions:SUMMARY_OPTIONS,});if(durationRelatedHistsByGroupName.get(runtimeGroupName)===undefined){const durationHistogramMap=new tr.v.d.RelatedHistogramMap();durationHistogramMap.set(railStageName,durationHistogram);durationRelatedHistsByGroupName.set(runtimeGroupName,durationHistogramMap);}else{durationRelatedHistsByGroupName.get(runtimeGroupName).set(railStageName,durationHistogram);}}
function addCountHistogram(railStageName,runtimeGroupName,sampleValue,histograms,countRelatedHistsByGroupName){const countHistogram=histograms.createHistogram(`${railStageName}_${runtimeGroupName}:count`,tr.b.Unit.byName.count_smallerIsBetter,sampleValue,{binBoundaries:COUNT_CUSTOM_BOUNDARIES,summaryOptions:SUMMARY_OPTIONS,});if(countRelatedHistsByGroupName.get(runtimeGroupName)===undefined){const countHistogramMap=new tr.v.d.RelatedHistogramMap();countHistogramMap.set(railStageName,countHistogram);countRelatedHistsByGroupName.set(runtimeGroupName,countHistogramMap);}else{countRelatedHistsByGroupName.get(runtimeGroupName).set(railStageName,countHistogram);}}
function addTotalDurationHistogram(histogramName,time,histograms,durationRelatedHistsByGroupName){const durationHistogram=histograms.createHistogram(`${histogramName}:duration`,tr.b.Unit.byName.timeDurationInMs_smallerIsBetter,convertMicroToMilli_(time),{binBoundaries:DURATION_CUSTOM_BOUNDARIES,summaryOptions:SUMMARY_OPTIONS,});const durationRelatedHistogram=durationRelatedHistsByGroupName.get(histogramName);if(durationRelatedHistogram!==undefined){durationHistogram.diagnostics.set('RAIL stages',durationRelatedHistogram);}}
function addTotalCountHistogram(histogramName,count,histograms,countRelatedHistsByGroupName){const countHistogram=histograms.createHistogram(`${histogramName}:count`,tr.b.Unit.byName.count_smallerIsBetter,count,{binBoundaries:COUNT_CUSTOM_BOUNDARIES,summaryOptions:SUMMARY_OPTIONS,});const countRelatedHistogram=countRelatedHistsByGroupName.get(histogramName);if(countRelatedHistogram!==undefined){countHistogram.diagnostics.set('RAIL stages',countRelatedHistogram);}}
function computeRuntimeStatsBucketOnUE(histograms,slices,v8SlicesBucketOnUEMap){const durationRelatedHistsByGroupName=new Map();const countRelatedHistsByGroupName=new Map();for(const[name,slicesUE]of v8SlicesBucketOnUEMap){const runtimeGroupCollection=new tr.e.v8.RuntimeStatsGroupCollection();runtimeGroupCollection.addSlices(slicesUE);let overallV8Time=runtimeGroupCollection.totalTime;let overallV8Count=runtimeGroupCollection.totalCount;for(const runtimeGroup of runtimeGroupCollection.runtimeGroups){addDurationHistogram(name,runtimeGroup.name,runtimeGroup.time,histograms,durationRelatedHistsByGroupName);if(runtimeGroup.name==='Blink C++'){overallV8Time-=runtimeGroup.time;}
addCountHistogram(name,runtimeGroup.name,runtimeGroup.count,histograms,countRelatedHistsByGroupName);if(runtimeGroup.name==='Blink C++'){overallV8Count-=runtimeGroup.count;}}
addDurationHistogram(name,'V8-Only',overallV8Time,histograms,durationRelatedHistsByGroupName);addCountHistogram(name,'V8-Only',overallV8Count,histograms,countRelatedHistsByGroupName);}
const runtimeGroupCollection=new tr.e.v8.RuntimeStatsGroupCollection();runtimeGroupCollection.addSlices(slices);let overallV8Time=runtimeGroupCollection.totalTime;let overallV8Count=runtimeGroupCollection.totalCount;for(const runtimeGroup of runtimeGroupCollection.runtimeGroups){addTotalDurationHistogram(runtimeGroup.name,runtimeGroup.time,histograms,durationRelatedHistsByGroupName);if(runtimeGroup.name==='Blink C++'){overallV8Time-=runtimeGroup.time;}
addTotalCountHistogram(runtimeGroup.name,runtimeGroup.count,histograms,countRelatedHistsByGroupName);if(runtimeGroup.name==='Blink C++'){overallV8Count-=runtimeGroup.count;}}
addTotalDurationHistogram('V8-Only',overallV8Time,histograms,durationRelatedHistsByGroupName);addTotalCountHistogram('V8-Only',overallV8Count,histograms,countRelatedHistsByGroupName);}
function runtimeStatsTotalMetric(histograms,model){const v8ThreadSlices=[...model.getDescendantEvents()].filter(event=>event instanceof tr.e.v8.V8ThreadSlice).sort((e1,e2)=>e1.start-e2.start);const v8SlicesBucketOnUEMap=new Map();for(const expectation of model.userModel.expectations){const slices=expectation.range.filterArray(v8ThreadSlices,event=>event.start);if(slices.length===0)continue;const lastSlice=slices[slices.length-1];if(!expectation.range.intersectsRangeExclusive(lastSlice.range)){slices.pop();}
if(v8SlicesBucketOnUEMap.get(expectation.stageTitle)===undefined){v8SlicesBucketOnUEMap.set(expectation.stageTitle,slices);}else{const totalSlices=v8SlicesBucketOnUEMap.get(expectation.stageTitle).concat(slices);v8SlicesBucketOnUEMap.set(expectation.stageTitle,totalSlices);}}
computeRuntimeStatsBucketOnUE(histograms,v8ThreadSlices,v8SlicesBucketOnUEMap);}
tr.metrics.MetricRegistry.register(runtimeStatsTotalMetric);tr.metrics.MetricRegistry.register(runtimeStatsMetric);return{runtimeStatsMetric,runtimeStatsTotalMetric,};});'use strict';tr.exportTo('tr.metrics.v8',function(){function v8AndMemoryMetrics(histograms,model){tr.metrics.v8.executionMetric(histograms,model);tr.metrics.v8.gcMetric(histograms,model);tr.metrics.sh.memoryMetric(histograms,model,{rangeOfInterest:tr.metrics.v8.utils.rangeForMemoryDumps(model)});}
tr.metrics.MetricRegistry.register(v8AndMemoryMetrics);return{v8AndMemoryMetrics,};});'use strict';tr.exportTo('tr.metrics.webrtc',function(){const DISPLAY_HERTZ=60.0;const VSYNC_DURATION_US=1e6/DISPLAY_HERTZ;const SEVERITY=3;const FROZEN_FRAME_VSYNC_COUNT_THRESHOLD=6;const WEB_MEDIA_PLAYER_UPDATE_TITLE='WebMediaPlayerMS::UpdateCurrentFrame';const IDEAL_RENDER_INSTANT_NAME='Ideal Render Instant';const ACTUAL_RENDER_BEGIN_NAME='Actual Render Begin';const ACTUAL_RENDER_END_NAME='Actual Render End';const STREAM_ID_NAME='Serial';const REQUIRED_EVENT_ARGS_NAMES=[IDEAL_RENDER_INSTANT_NAME,ACTUAL_RENDER_BEGIN_NAME,ACTUAL_RENDER_END_NAME,STREAM_ID_NAME];const SUMMARY_OPTIONS=tr.v.Histogram.AVERAGE_ONLY_SUMMARY_OPTIONS;const count_smallerIsBetter=tr.b.Unit.byName.count_smallerIsBetter;const percentage_biggerIsBetter=tr.b.Unit.byName.normalizedPercentage_biggerIsBetter;const percentage_smallerIsBetter=tr.b.Unit.byName.normalizedPercentage_smallerIsBetter;const timeDurationInMs_smallerIsBetter=tr.b.Unit.byName.timeDurationInMs_smallerIsBetter;const unitlessNumber_biggerIsBetter=tr.b.Unit.byName.unitlessNumber_biggerIsBetter;function isValidEvent(event){if(event.title!==WEB_MEDIA_PLAYER_UPDATE_TITLE||!event.args){return false;}
for(const parameter of REQUIRED_EVENT_ARGS_NAMES){if(!(parameter in event.args)){return false;}}
return true;}
function webrtcRenderingMetric(histograms,model){tr.metrics.v8.utils.groupAndProcessEvents(model,isValidEvent,event=>event.args[STREAM_ID_NAME],(streamName,events)=>getTimeStats(histograms,streamName,events));}
tr.metrics.MetricRegistry.register(webrtcRenderingMetric);function getTimeStats(histograms,streamName,events){const frameHist=getFrameDistribution(histograms,events);addFpsFromFrameDistribution(histograms,frameHist);addFreezingScore(histograms,frameHist);const driftTimeStats=getDriftStats(events);histograms.createHistogram('WebRTCRendering_drift_time',timeDurationInMs_smallerIsBetter,driftTimeStats.driftTime,{summaryOptions:{count:false,min:false,percentile:[0.75,0.9],},});histograms.createHistogram('WebRTCRendering_rendering_length_error',percentage_smallerIsBetter,driftTimeStats.renderingLengthError,{summaryOptions:SUMMARY_OPTIONS,});const smoothnessStats=getSmoothnessStats(driftTimeStats.driftTime);histograms.createHistogram('WebRTCRendering_percent_badly_out_of_sync',percentage_smallerIsBetter,smoothnessStats.percentBadlyOutOfSync,{summaryOptions:SUMMARY_OPTIONS,});histograms.createHistogram('WebRTCRendering_percent_out_of_sync',percentage_smallerIsBetter,smoothnessStats.percentOutOfSync,{summaryOptions:SUMMARY_OPTIONS,});histograms.createHistogram('WebRTCRendering_smoothness_score',percentage_biggerIsBetter,smoothnessStats.smoothnessScore,{summaryOptions:SUMMARY_OPTIONS,});histograms.createHistogram('WebRTCRendering_frames_out_of_sync',count_smallerIsBetter,smoothnessStats.framesOutOfSync,{summaryOptions:SUMMARY_OPTIONS,});histograms.createHistogram('WebRTCRendering_frames_badly_out_of_sync',count_smallerIsBetter,smoothnessStats.framesSeverelyOutOfSync,{summaryOptions:SUMMARY_OPTIONS,});}
const FRAME_DISTRIBUTION_BIN_BOUNDARIES=tr.v.HistogramBinBoundaries.createLinear(1,50,49);function getFrameDistribution(histograms,events){const cadence=tr.b.runLengthEncoding(events.map(e=>e.args[IDEAL_RENDER_INSTANT_NAME]));return histograms.createHistogram('WebRTCRendering_frame_distribution',count_smallerIsBetter,cadence.map(ticks=>ticks.count),{binBoundaries:FRAME_DISTRIBUTION_BIN_BOUNDARIES,summaryOptions:{percentile:[0.75,0.9],},});}
function addFpsFromFrameDistribution(histograms,frameHist){let numberFrames=0;let numberVsyncs=0;for(let ticks=1;ticks<frameHist.allBins.length;++ticks){const count=frameHist.allBins[ticks].count;numberFrames+=count;numberVsyncs+=ticks*count;}
const meanRatio=numberVsyncs/numberFrames;histograms.createHistogram('WebRTCRendering_fps',unitlessNumber_biggerIsBetter,DISPLAY_HERTZ/meanRatio,{summaryOptions:SUMMARY_OPTIONS,});}
function frozenPenaltyWeight(numberFrozenFrames){const penalty={5:1,6:5,7:15,8:25};return penalty[numberFrozenFrames]||(8*(numberFrozenFrames-4));}
function addFreezingScore(histograms,frameHist){let numberVsyncs=0;let freezingScore=0;let frozenFramesCount=0;for(let ticks=1;ticks<frameHist.allBins.length;++ticks){const count=frameHist.allBins[ticks].count;numberVsyncs+=ticks*count;if(ticks>=FROZEN_FRAME_VSYNC_COUNT_THRESHOLD){frozenFramesCount+=count*(ticks-1);freezingScore+=count*frozenPenaltyWeight(ticks-1);}}
freezingScore=1-freezingScore/numberVsyncs;if(freezingScore<0){freezingScore=0;}
histograms.createHistogram('WebRTCRendering_frozen_frames_count',count_smallerIsBetter,frozenFramesCount,{summaryOptions:SUMMARY_OPTIONS,});histograms.createHistogram('WebRTCRendering_freezing_score',percentage_biggerIsBetter,freezingScore,{summaryOptions:SUMMARY_OPTIONS,});}
function getDriftStats(events){const driftTime=[];const discrepancy=[];let oldIdealRender=0;let expectedIdealRender=0;for(const event of events){const currentIdealRender=event.args[IDEAL_RENDER_INSTANT_NAME];expectedIdealRender+=VSYNC_DURATION_US;if(currentIdealRender===oldIdealRender){continue;}
const actualRenderBegin=event.args[ACTUAL_RENDER_BEGIN_NAME];driftTime.push(actualRenderBegin-currentIdealRender);discrepancy.push(Math.abs(currentIdealRender-expectedIdealRender));expectedIdealRender=currentIdealRender;oldIdealRender=currentIdealRender;}
const discrepancySum=tr.b.math.Statistics.sum(discrepancy)-
discrepancy[0];const lastIdealRender=events[events.length-1].args[IDEAL_RENDER_INSTANT_NAME];const firstIdealRender=events[0].args[IDEAL_RENDER_INSTANT_NAME];const idealRenderSpan=lastIdealRender-firstIdealRender;const renderingLengthError=discrepancySum/idealRenderSpan;return{driftTime,renderingLengthError};}
function getSmoothnessStats(driftTimes){const meanDriftTime=tr.b.math.Statistics.mean(driftTimes);const normDriftTimes=driftTimes.map(driftTime=>Math.abs(driftTime-meanDriftTime));const framesSeverelyOutOfSync=normDriftTimes.filter(driftTime=>driftTime>2*VSYNC_DURATION_US).length;const framesOutOfSync=normDriftTimes.filter(driftTime=>driftTime>VSYNC_DURATION_US).length;const percentBadlyOutOfSync=framesSeverelyOutOfSync/driftTimes.length;const percentOutOfSync=framesOutOfSync/driftTimes.length;const framesOutOfSyncOnlyOnce=framesOutOfSync-framesSeverelyOutOfSync;let smoothnessScore=1-(framesOutOfSyncOnlyOnce+
SEVERITY*framesSeverelyOutOfSync)/driftTimes.length;if(smoothnessScore<0){smoothnessScore=0;}
return{framesOutOfSync,framesSeverelyOutOfSync,percentBadlyOutOfSync,percentOutOfSync,smoothnessScore};}
return{webrtcRenderingMetric,};});'use strict';Polymer({is:'tr-ui-a-alert-sub-view',behaviors:[tr.ui.analysis.AnalysisSubView],ready(){this.currentSelection_=undefined;this.$.table.tableColumns=[{title:'Label',value(row){return row.name;},width:'150px'},{title:'Value',width:'100%',value(row){return row.value;}}];this.$.table.showHeader=false;},get selection(){return this.currentSelection_;},set selection(selection){this.currentSelection_=selection;this.updateContents_();},getRowsForSingleAlert_(alert){const rows=[];for(const argName in alert.args){const argView=document.createElement('tr-ui-a-generic-object-view');argView.object=alert.args[argName];rows.push({name:argName,value:argView});}
if(alert.associatedEvents.length){alert.associatedEvents.forEach(function(event,i){const linkEl=document.createElement('tr-ui-a-analysis-link');linkEl.setSelectionAndContent(new tr.model.EventSet(event),event.title);let valueString='';if(event instanceof tr.model.TimedEvent){valueString='took '+event.duration.toFixed(2)+'ms';}
rows.push({name:linkEl,value:valueString});});}
const descriptionEl=tr.ui.b.createDiv({textContent:alert.info.description,maxWidth:'300px'});rows.push({name:'Description',value:descriptionEl});if(alert.info.docLinks){alert.info.docLinks.forEach(function(linkObject){const linkEl=document.createElement('a');linkEl.target='_blank';linkEl.href=linkObject.href;Polymer.dom(linkEl).textContent=Polymer.dom(linkObject).textContent;rows.push({name:linkObject.label,value:linkEl});});}
return rows;},getRowsForAlerts_(alerts){if(alerts.length===1){const rows=[{name:'Alert',value:tr.b.getOnlyElement(alerts).title}];const detailRows=this.getRowsForSingleAlert_(tr.b.getOnlyElement(alerts));rows.push.apply(rows,detailRows);return rows;}
return alerts.map(function(alert){return{name:'Alert',value:alert.title,isExpanded:alerts.size<10,subRows:this.getRowsForSingleAlert_(alert)};},this);},updateContents_(){if(this.currentSelection_===undefined){this.$.table.rows=[];this.$.table.rebuild();return;}
const alerts=this.currentSelection_;this.$.table.tableRows=this.getRowsForAlerts_(alerts);this.$.table.rebuild();},get relatedEventsToHighlight(){if(!this.currentSelection_)return undefined;const result=new tr.model.EventSet();for(const event of this.currentSelection_){result.addEventSet(event.associatedEvents);}
return result;}});tr.ui.analysis.AnalysisSubView.register('tr-ui-a-alert-sub-view',tr.model.Alert,{multi:false,title:'Alert',});tr.ui.analysis.AnalysisSubView.register('tr-ui-a-alert-sub-view',tr.model.Alert,{multi:true,title:'Alerts',});'use strict';tr.exportTo('tr.ui.analysis',function(){const NO_BREAK_SPACE=String.fromCharCode(160);const RIGHTWARDS_ARROW=String.fromCharCode(8594);const COLLATOR=new Intl.Collator(undefined,{numeric:true});function TitleColumn(title){this.title=title;}
TitleColumn.prototype={supportsCellSelection:false,value(row){const formattedTitle=this.formatTitle(row);const contexts=row.contexts;if(contexts===undefined||contexts.length===0){return formattedTitle;}
const firstContext=contexts[0];const lastContext=contexts[contexts.length-1];let changeDefinedContextCount=0;for(let i=1;i<contexts.length;i++){if((contexts[i]===undefined)!==(contexts[i-1]===undefined)){changeDefinedContextCount++;}}
let color=undefined;let prefix=undefined;if(!firstContext&&lastContext){color='red';prefix='+++';}else if(firstContext&&!lastContext){color='green';prefix='---';}
if(changeDefinedContextCount>1){color='purple';}
if(color===undefined&&prefix===undefined){return formattedTitle;}
const titleEl=document.createElement('span');if(prefix!==undefined){const prefixEl=tr.ui.b.createSpan({textContent:prefix});prefixEl.style.fontFamily='monospace';Polymer.dom(titleEl).appendChild(prefixEl);Polymer.dom(titleEl).appendChild(tr.ui.b.asHTMLOrTextNode(NO_BREAK_SPACE));}
if(color!==undefined){titleEl.style.color=color;}
Polymer.dom(titleEl).appendChild(tr.ui.b.asHTMLOrTextNode(formattedTitle));return titleEl;},formatTitle(row){return row.title;},cmp(rowA,rowB){return COLLATOR.compare(rowA.title,rowB.title);}};function MemoryColumn(name,cellPath,aggregationMode){this.name=name;this.cellPath=cellPath;this.shouldSetContextGroup=false;this.aggregationMode=aggregationMode;}
MemoryColumn.fromRows=function(rows,config){const cellNames=new Set();function gatherCellNames(rows){rows.forEach(function(row){if(row===undefined)return;const fieldCells=row[config.cellKey];if(fieldCells!==undefined){for(const[fieldName,fieldCell]of Object.entries(fieldCells)){if(fieldCell===undefined||fieldCell.fields===undefined){continue;}
cellNames.add(fieldName);}}
const subRows=row.subRows;if(subRows!==undefined){gatherCellNames(subRows);}});}
gatherCellNames(rows);const positions=[];cellNames.forEach(function(cellName){const cellPath=[config.cellKey,cellName];const matchingRule=MemoryColumn.findMatchingRule(cellName,config.rules);const constructor=matchingRule.columnConstructor;const column=new constructor(cellName,cellPath,config.aggregationMode);column.shouldSetContextGroup=!!config.shouldSetContextGroup;positions.push({importance:matchingRule.importance,column});});positions.sort(function(a,b){if(a.importance===b.importance){return COLLATOR.compare(a.column.name,b.column.name);}
return b.importance-a.importance;});return positions.map(function(position){return position.column;});};MemoryColumn.spaceEqually=function(columns){const columnWidth=(100/columns.length).toFixed(3)+'%';columns.forEach(function(column){column.width=columnWidth;});};MemoryColumn.findMatchingRule=function(name,rules){for(let i=0;i<rules.length;i++){const rule=rules[i];if(MemoryColumn.nameMatchesCondition(name,rule.condition)){return rule;}}
return undefined;};MemoryColumn.nameMatchesCondition=function(name,condition){if(condition===undefined)return true;if(typeof(condition)==='string')return name===condition;return condition.test(name);};MemoryColumn.AggregationMode={DIFF:0,MAX:1};MemoryColumn.SOME_TIMESTAMPS_INFO_QUANTIFIER='at some selected timestamps';MemoryColumn.prototype={get title(){return this.name;},cell(row){let cell=row;const cellPath=this.cellPath;for(let i=0;i<cellPath.length;i++){if(cell===undefined)return undefined;cell=cell[cellPath[i]];}
return cell;},aggregateCells(row,subRows){},fields(row){const cell=this.cell(row);if(cell===undefined)return undefined;return cell.fields;},value(row){const fields=this.fields(row);if(this.hasAllRelevantFieldsUndefined(fields))return'';const contexts=row.contexts;const color=this.color(fields,contexts);const infos=[];this.addInfos(fields,contexts,infos);const formattedFields=this.formatFields(fields);if((color===undefined||formattedFields==='')&&infos.length===0){return formattedFields;}
const fieldEl=document.createElement('span');fieldEl.style.display='flex';fieldEl.style.alignItems='center';fieldEl.style.justifyContent='flex-end';Polymer.dom(fieldEl).appendChild(tr.ui.b.asHTMLOrTextNode(formattedFields));infos.forEach(function(info){const infoEl=document.createElement('span');infoEl.style.paddingLeft='4px';infoEl.style.cursor='help';infoEl.style.fontWeight='bold';Polymer.dom(infoEl).textContent=info.icon;if(info.color!==undefined){infoEl.style.color=info.color;}
infoEl.title=info.message;Polymer.dom(fieldEl).appendChild(infoEl);},this);if(color!==undefined){fieldEl.style.color=color;}
return fieldEl;},hasAllRelevantFieldsUndefined(fields){if(fields===undefined)return true;switch(this.aggregationMode){case MemoryColumn.AggregationMode.DIFF:return fields[0]===undefined&&fields[fields.length-1]===undefined;case MemoryColumn.AggregationMode.MAX:default:return fields.every(function(field){return field===undefined;});}},color(fields,contexts){return undefined;},formatFields(fields){if(fields.length===1){return this.formatSingleField(fields[0]);}
return this.formatMultipleFields(fields);},formatSingleField(field){throw new Error('Not implemented');},formatMultipleFields(fields){switch(this.aggregationMode){case MemoryColumn.AggregationMode.DIFF:return this.formatMultipleFieldsDiff(fields[0],fields[fields.length-1]);case MemoryColumn.AggregationMode.MAX:return this.formatMultipleFieldsMax(fields);default:return tr.ui.b.createSpan({textContent:'(unsupported aggregation mode)',italic:true});}},formatMultipleFieldsDiff(firstField,lastField){throw new Error('Not implemented');},formatMultipleFieldsMax(fields){return this.formatSingleField(this.getMaxField(fields));},cmp(rowA,rowB){const fieldsA=this.fields(rowA);const fieldsB=this.fields(rowB);if(fieldsA!==undefined&&fieldsB!==undefined&&fieldsA.length!==fieldsB.length){throw new Error('Different number of fields');}
const undefinedA=this.hasAllRelevantFieldsUndefined(fieldsA);const undefinedB=this.hasAllRelevantFieldsUndefined(fieldsB);if(undefinedA&&undefinedB)return 0;if(undefinedA)return-1;if(undefinedB)return 1;return this.compareFields(fieldsA,fieldsB);},compareFields(fieldsA,fieldsB){if(fieldsA.length===1){return this.compareSingleFields(fieldsA[0],fieldsB[0]);}
return this.compareMultipleFields(fieldsA,fieldsB);},compareSingleFields(fieldA,fieldB){throw new Error('Not implemented');},compareMultipleFields(fieldsA,fieldsB){switch(this.aggregationMode){case MemoryColumn.AggregationMode.DIFF:return this.compareMultipleFieldsDiff(fieldsA[0],fieldsA[fieldsA.length-1],fieldsB[0],fieldsB[fieldsB.length-1]);case MemoryColumn.AggregationMode.MAX:return this.compareMultipleFieldsMax(fieldsA,fieldsB);default:return 0;}},compareMultipleFieldsDiff(firstFieldA,lastFieldA,firstFieldB,lastFieldB){throw new Error('Not implemented');},compareMultipleFieldsMax(fieldsA,fieldsB){return this.compareSingleFields(this.getMaxField(fieldsA),this.getMaxField(fieldsB));},getMaxField(fields){return fields.reduce(function(accumulator,field){if(field===undefined){return accumulator;}
if(accumulator===undefined||this.compareSingleFields(field,accumulator)>0){return field;}
return accumulator;}.bind(this),undefined);},addInfos(fields,contexts,infos){},getImportance(importanceRules){if(importanceRules.length===0)return 0;const matchingRule=MemoryColumn.findMatchingRule(this.name,importanceRules);if(matchingRule!==undefined){return matchingRule.importance;}
let minImportance=importanceRules[0].importance;for(let i=1;i<importanceRules.length;i++){minImportance=Math.min(minImportance,importanceRules[i].importance);}
return minImportance-1;}};function StringMemoryColumn(name,cellPath,aggregationMode){MemoryColumn.call(this,name,cellPath,aggregationMode);}
StringMemoryColumn.prototype={__proto__:MemoryColumn.prototype,formatSingleField(string){return string;},formatMultipleFieldsDiff(firstString,lastString){if(firstString===undefined){const spanEl=tr.ui.b.createSpan({color:'red'});Polymer.dom(spanEl).appendChild(tr.ui.b.asHTMLOrTextNode('+'));Polymer.dom(spanEl).appendChild(tr.ui.b.asHTMLOrTextNode(this.formatSingleField(lastString)));return spanEl;}else if(lastString===undefined){const spanEl=tr.ui.b.createSpan({color:'green'});Polymer.dom(spanEl).appendChild(tr.ui.b.asHTMLOrTextNode('-'));Polymer.dom(spanEl).appendChild(tr.ui.b.asHTMLOrTextNode(this.formatSingleField(firstString)));return spanEl;}else if(firstString===lastString){return this.formatSingleField(firstString);}
const spanEl=tr.ui.b.createSpan({color:'DarkOrange'});Polymer.dom(spanEl).appendChild(tr.ui.b.asHTMLOrTextNode(this.formatSingleField(firstString)));Polymer.dom(spanEl).appendChild(tr.ui.b.asHTMLOrTextNode(' '+RIGHTWARDS_ARROW+' '));Polymer.dom(spanEl).appendChild(tr.ui.b.asHTMLOrTextNode(this.formatSingleField(lastString)));return spanEl;},compareSingleFields(stringA,stringB){return COLLATOR.compare(stringA,stringB);},compareMultipleFieldsDiff(firstStringA,lastStringA,firstStringB,lastStringB){if(firstStringA===undefined&&firstStringB!==undefined){return 1;}
if(firstStringA!==undefined&&firstStringB===undefined){return-1;}
if(firstStringA===undefined&&firstStringB===undefined){return this.compareSingleFields(lastStringA,lastStringB);}
if(lastStringA===undefined&&lastStringB!==undefined){return-1;}
if(lastStringA!==undefined&&lastStringB===undefined){return 1;}
if(lastStringA===undefined&&lastStringB===undefined){return this.compareSingleFields(firstStringB,firstStringA);}
const areStringsAEqual=firstStringA===lastStringA;const areStringsBEqual=firstStringB===lastStringB;if(areStringsAEqual&&areStringsBEqual)return 0;if(areStringsAEqual)return-1;if(areStringsBEqual)return 1;return 0;}};function NumericMemoryColumn(name,cellPath,aggregationMode){MemoryColumn.call(this,name,cellPath,aggregationMode);}
NumericMemoryColumn.DIFF_EPSILON=0.0001;NumericMemoryColumn.prototype={__proto__:MemoryColumn.prototype,align:tr.ui.b.TableFormat.ColumnAlignment.RIGHT,aggregateCells(row,subRows){const subRowCells=subRows.map(this.cell,this);let hasDefinedSubRowNumeric=false;let timestampCount=undefined;subRowCells.forEach(function(subRowCell){if(subRowCell===undefined)return;const subRowNumerics=subRowCell.fields;if(subRowNumerics===undefined)return;if(timestampCount===undefined){timestampCount=subRowNumerics.length;}else if(timestampCount!==subRowNumerics.length){throw new Error('Sub-rows have different numbers of timestamps');}
if(hasDefinedSubRowNumeric){return;}
hasDefinedSubRowNumeric=subRowNumerics.some(function(numeric){return numeric!==undefined;});});if(!hasDefinedSubRowNumeric){return;}
const cellPath=this.cellPath;let rowCell=row;for(let i=0;i<cellPath.length;i++){const nextStepName=cellPath[i];let nextStep=rowCell[nextStepName];if(nextStep===undefined){if(i<cellPath.length-1){nextStep={};}else{nextStep=new MemoryCell(undefined);}
rowCell[nextStepName]=nextStep;}
rowCell=nextStep;}
if(rowCell.fields===undefined){rowCell.fields=new Array(timestampCount);}else if(rowCell.fields.length!==timestampCount){throw new Error('Row has a different number of timestamps than sub-rows');}
for(let i=0;i<timestampCount;i++){if(rowCell.fields[i]!==undefined)continue;rowCell.fields[i]=tr.model.MemoryAllocatorDump.aggregateNumerics(subRowCells.map(function(subRowCell){if(subRowCell===undefined||subRowCell.fields===undefined){return undefined;}
return subRowCell.fields[i];}));}},formatSingleField(numeric){return tr.v.ui.createScalarSpan(numeric,{context:this.getFormattingContext(numeric.unit),contextGroup:this.shouldSetContextGroup?this.name:undefined,inline:true,});},getFormattingContext(unit){return undefined;},formatMultipleFieldsDiff(firstNumeric,lastNumeric){return this.formatSingleField(this.getDiffField_(firstNumeric,lastNumeric));},compareSingleFields(numericA,numericB){return numericA.value-numericB.value;},compareMultipleFieldsDiff(firstNumericA,lastNumericA,firstNumericB,lastNumericB){return this.getDiffFieldValue_(firstNumericA,lastNumericA)-
this.getDiffFieldValue_(firstNumericB,lastNumericB);},getDiffField_(firstNumeric,lastNumeric){const definedNumeric=firstNumeric||lastNumeric;return new tr.b.Scalar(definedNumeric.unit.correspondingDeltaUnit,this.getDiffFieldValue_(firstNumeric,lastNumeric));},getDiffFieldValue_(firstNumeric,lastNumeric){const firstValue=firstNumeric===undefined?0:firstNumeric.value;const lastValue=lastNumeric===undefined?0:lastNumeric.value;const diff=lastValue-firstValue;return Math.abs(diff)<NumericMemoryColumn.DIFF_EPSILON?0:diff;}};function MemoryCell(fields){this.fields=fields;}
MemoryCell.extractFields=function(cell){if(cell===undefined)return undefined;return cell.fields;};const RECURSIVE_EXPANSION_MAX_VISIBLE_ROW_COUNT=10;function expandTableRowsRecursively(table){let currentLevelRows=table.tableRows;let totalVisibleRowCount=currentLevelRows.length;while(currentLevelRows.length>0){let nextLevelRowCount=0;currentLevelRows.forEach(function(currentLevelRow){const subRows=currentLevelRow.subRows;if(subRows===undefined||subRows.length===0)return;nextLevelRowCount+=subRows.length;});if(totalVisibleRowCount+nextLevelRowCount>RECURSIVE_EXPANSION_MAX_VISIBLE_ROW_COUNT){break;}
const nextLevelRows=new Array(nextLevelRowCount);let nextLevelRowIndex=0;currentLevelRows.forEach(function(currentLevelRow){const subRows=currentLevelRow.subRows;if(subRows===undefined||subRows.length===0)return;table.setExpandedForTableRow(currentLevelRow,true);subRows.forEach(function(subRow){nextLevelRows[nextLevelRowIndex++]=subRow;});});totalVisibleRowCount+=nextLevelRowCount;currentLevelRows=nextLevelRows;}}
function aggregateTableRowCellsRecursively(row,columns,opt_predicate){const subRows=row.subRows;if(subRows===undefined||subRows.length===0)return;subRows.forEach(function(subRow){aggregateTableRowCellsRecursively(subRow,columns,opt_predicate);});if(opt_predicate===undefined||opt_predicate(row.contexts)){aggregateTableRowCells(row,subRows,columns);}}
function aggregateTableRowCells(row,subRows,columns){columns.forEach(function(column){if(!(column instanceof MemoryColumn))return;column.aggregateCells(row,subRows);});}
function createCells(timeToValues,valueFieldsGetter,opt_this){opt_this=opt_this||this;const fieldNameToFields=tr.b.invertArrayOfDicts(timeToValues,valueFieldsGetter,opt_this);return tr.b.mapItems(fieldNameToFields,function(fieldName,fields){return new tr.ui.analysis.MemoryCell(fields);});}
function createWarningInfo(message){return{message,icon:String.fromCharCode(9888),color:'red'};}
function DetailsNumericMemoryColumn(name,cellPath,aggregationMode){NumericMemoryColumn.call(this,name,cellPath,aggregationMode);}
DetailsNumericMemoryColumn.prototype={__proto__:NumericMemoryColumn.prototype,getFormattingContext(unit){if(unit.baseUnit===tr.b.Unit.byName.sizeInBytes){return{unitPrefix:tr.b.UnitPrefixScale.BINARY.KIBI};}
return undefined;}};return{TitleColumn,MemoryColumn,StringMemoryColumn,NumericMemoryColumn,MemoryCell,expandTableRowsRecursively,aggregateTableRowCellsRecursively,aggregateTableRowCells,createCells,createWarningInfo,DetailsNumericMemoryColumn,};});'use strict';tr.exportTo('tr.ui.analysis',function(){const LATIN_SMALL_LETTER_F_WITH_HOOK=String.fromCharCode(0x0192);const CIRCLED_LATIN_CAPITAL_LETTER_T=String.fromCharCode(0x24C9);const HeapDetailsRowDimension={ROOT:{},STACK_FRAME:{label:'Stack frame',symbol:LATIN_SMALL_LETTER_F_WITH_HOOK,color:'heap_dump_stack_frame'},OBJECT_TYPE:{label:'Object type',symbol:CIRCLED_LATIN_CAPITAL_LETTER_T,color:'heap_dump_object_type'}};function HeapDetailsTitleColumn(title){tr.ui.analysis.TitleColumn.call(this,title);}
HeapDetailsTitleColumn.prototype={__proto__:tr.ui.analysis.TitleColumn.prototype,formatTitle(row){if(row.dimension===HeapDetailsRowDimension.ROOT){return row.title;}
const symbolEl=document.createElement('span');Polymer.dom(symbolEl).textContent=row.dimension.symbol;symbolEl.title=row.dimension.label;symbolEl.style.color=tr.b.ColorScheme.getColorForReservedNameAsString(row.dimension.color);symbolEl.style.paddingRight='4px';symbolEl.style.cursor='help';symbolEl.style.fontWeight='bold';const titleEl=document.createElement('span');Polymer.dom(titleEl).appendChild(symbolEl);Polymer.dom(titleEl).appendChild(document.createTextNode(row.title));return titleEl;}};function AllocationCountColumn(name,cellPath,aggregationMode){tr.ui.analysis.DetailsNumericMemoryColumn.call(this,name,cellPath,aggregationMode);}
AllocationCountColumn.prototype={__proto__:tr.ui.analysis.DetailsNumericMemoryColumn.prototype,getFormattingContext(unit){return{minimumFractionDigits:0};}};const HEAP_DETAILS_COLUMN_RULES=[{condition:'Size',importance:2,columnConstructor:tr.ui.analysis.DetailsNumericMemoryColumn},{condition:'Count',importance:1,columnConstructor:AllocationCountColumn},{importance:0,columnConstructor:tr.ui.analysis.DetailsNumericMemoryColumn}];return{HeapDetailsRowDimension,HeapDetailsTitleColumn,AllocationCountColumn,HEAP_DETAILS_COLUMN_RULES,};});'use strict';tr.exportTo('tr.ui.analysis',function(){const RebuildableBehavior={rebuild(){if(!this.paneDirty_){return;}
this.paneDirty_=false;this.onRebuild_();},scheduleRebuild_(){if(this.paneDirty_)return;this.paneDirty_=true;tr.b.requestAnimationFrame(this.rebuild.bind(this));},onRebuild_(){}};return{RebuildableBehavior,};});'use strict';Polymer({is:'tr-ui-b-tab-view',properties:{label_:{type:String,value:()=>''},selectedSubView_:Object,subViews_:{type:Array,value:()=>[]},tabsHidden:{type:Boolean,value:false,observer:'tabsHiddenChanged_'}},ready(){this.$.tabs.addEventListener('keydown',this.onKeyDown_.bind(this),true);this.updateFocusability_();},set label(newLabel){this.set('label_',newLabel);},get tabs(){return this.get('subViews_');},get selectedSubView(){return this.selectedSubView_;},set selectedSubView(subView){if(subView===this.selectedSubView_)return;if(this.selectedSubView_){Polymer.dom(this.$.subView).removeChild(this.selectedSubView_);const oldInput=this.root.getElementById(this.computeRadioId_(this.selectedSubView_));if(oldInput){oldInput.checked=false;}}
this.set('selectedSubView_',subView);if(subView){Polymer.dom(this.$.subView).appendChild(subView);const newInput=this.root.getElementById(this.computeRadioId_(subView));if(newInput){newInput.checked=true;}}
this.fire('selected-tab-change');},clearSubViews(){this.splice('subViews_',0,this.subViews_.length);this.selectedSubView=undefined;this.updateFocusability_();},addSubView(subView){this.push('subViews_',subView);if(!this.selectedSubView_)this.selectedSubView=subView;this.updateFocusability_();},resetSubViews(subViews){this.splice('subViews_',0,this.subViews_.length);if(subViews.length){for(const subView of subViews){this.push('subViews_',subView);}
this.selectedSubView=subViews[0];}else{this.selectedSubView=undefined;}
this.updateFocusability_();},onTabChanged_(event){this.selectedSubView=event.model.item;},isChecked_(subView){return this.selectedSubView_===subView;},tabsHiddenChanged_(){this.updateFocusability_();},onKeyDown_(e){if(this.tabsHidden)return;let keyHandled=false;switch(e.keyCode){case 37:keyHandled=this.selectPreviousTabIfPossible();break;case 39:keyHandled=this.selectNextTabIfPossible();break;}
if(!keyHandled)return;e.stopPropagation();e.preventDefault();},selectNextTabIfPossible(){return this.selectTabByOffsetIfPossible_(1);},selectPreviousTabIfPossible(){return this.selectTabByOffsetIfPossible_(-1);},selectTabByOffsetIfPossible_(offset){if(!this.selectedSubView_)return false;const currentIndex=this.subViews_.indexOf(this.selectedSubView_);const newSubView=this.tabs[currentIndex+offset];if(!newSubView)return false;this.selectedSubView=newSubView;return true;},shouldBeFocusable_(){return!this.tabsHidden&&this.subViews_.length>0;},updateFocusability_(){if(this.shouldBeFocusable_()){Polymer.dom(this.$.tabs).setAttribute('tabindex',0);}else{Polymer.dom(this.$.tabs).removeAttribute('tabindex');}},computeRadioId_(subView){return subView.tagName+'-'+subView.tabLabel.replace(/ /g,'-');}});'use strict';tr.exportTo('tr.ui.analysis',function(){const RESONABLE_NUMBER_OF_ROWS=200;const TabUiState={NO_LONG_TAIL:0,HIDING_LONG_TAIL:1,SHOWING_LONG_TAIL:2,};function EmptyFillerColumn(){}
EmptyFillerColumn.prototype={title:'',value(){return'';},};Polymer({is:'tr-ui-a-memory-dump-heap-details-breakdown-view',behaviors:[tr.ui.analysis.RebuildableBehavior],created(){this.displayedNode_=undefined;this.dimensionToTab_=new Map();},ready(){this.scheduleRebuild_();this.root.addEventListener('keydown',this.onKeyDown_.bind(this),true);},get displayedNode(){return this.displayedNode_;},set displayedNode(node){this.displayedNode_=node;this.scheduleRebuild_();},get aggregationMode(){return this.aggregationMode_;},set aggregationMode(aggregationMode){this.aggregationMode_=aggregationMode;for(const tab of this.$.tabs.tabs){tab.aggregationMode=aggregationMode;}},onRebuild_(){const previouslySelectedTab=this.$.tabs.selectedSubView;let previouslySelectedTabFocused=false;let previouslySelectedDimension=undefined;if(previouslySelectedTab){previouslySelectedTabFocused=previouslySelectedTab.isFocused;previouslySelectedDimension=previouslySelectedTab.dimension;}
for(const tab of this.$.tabs.tabs){tab.nodes=undefined;}
this.$.tabs.clearSubViews();if(this.displayedNode_===undefined){this.$.tabs.label='No heap node provided.';return;}
for(const[dimension,children]of this.displayedNode_.childNodes){if(!this.dimensionToTab_.has(dimension)){this.dimensionToTab_.set(dimension,document.createElement('tr-ui-a-memory-dump-heap-details-breakdown-view-tab'));}
const tab=this.dimensionToTab_.get(dimension);tab.aggregationMode=this.aggregationMode_;tab.dimension=dimension;tab.nodes=children;this.$.tabs.addSubView(tab);tab.rebuild();if(dimension===previouslySelectedDimension){this.$.tabs.selectedSubView=tab;if(previouslySelectedTabFocused){tab.focus();}}}
if(this.$.tabs.tabs.length>0){this.$.tabs.label='Break selected node further by:';}else{this.$.tabs.label='Selected node cannot be broken down any further.';}},onKeyDown_(keyEvent){if(!this.displayedNode_)return;let keyHandled=false;switch(keyEvent.keyCode){case 8:{if(!this.displayedNode_.parentNode)break;const viewEvent=new tr.b.Event('enter-node');viewEvent.node=this.displayedNode_.parentNode;this.dispatchEvent(viewEvent);keyHandled=true;break;}
case 37:case 39:{const wasFocused=this.$.tabs.selectedSubView.isFocused;keyHandled=keyEvent.keyCode===37?this.$.tabs.selectPreviousTabIfPossible():this.$.tabs.selectNextTabIfPossible();if(wasFocused&&keyHandled){this.$.tabs.selectedSubView.focus();}}}
if(!keyHandled)return;keyEvent.stopPropagation();keyEvent.preventDefault();}});Polymer({is:'tr-ui-a-memory-dump-heap-details-breakdown-view-tab',behaviors:[tr.ui.analysis.RebuildableBehavior],created(){this.dimension_=undefined;this.nodes_=undefined;this.aggregationMode_=undefined;this.displayLongTail_=false;},ready(){this.$.table.addEventListener('step-into',function(tableEvent){const viewEvent=new tr.b.Event('enter-node');viewEvent.node=tableEvent.tableRow;this.dispatchEvent(viewEvent);}.bind(this));},get displayLongTail(){return this.displayLongTail_;},set displayLongTail(newValue){if(this.displayLongTail===newValue)return;this.displayLongTail_=newValue;this.scheduleRebuild_();},get dimension(){return this.dimension_;},set dimension(dimension){this.dimension_=dimension;this.scheduleRebuild_();},get nodes(){return this.nodes_;},set nodes(nodes){this.nodes_=nodes;this.scheduleRebuild_();},get nodes(){return this.nodes_||[];},get dimensionLabel_(){if(this.dimension_===undefined)return'(undefined)';return this.dimension_.label;},get tabLabel(){let nodeCount=0;if(this.nodes_){nodeCount=this.nodes_.length;}
return this.dimensionLabel_+' ('+nodeCount+')';},get tabIcon(){if(this.dimension_===undefined||this.dimension_===tr.ui.analysis.HeapDetailsRowDimension.ROOT){return undefined;}
return{text:this.dimension_.symbol,style:'color: '+tr.b.ColorScheme.getColorForReservedNameAsString(this.dimension_.color)+';'};},get aggregationMode(){return this.aggregationMode_;},set aggregationMode(aggregationMode){this.aggregationMode_=aggregationMode;this.scheduleRebuild_();},focus(){this.$.table.focus();},blur(){this.$.table.blur();},get isFocused(){return this.$.table.isFocused;},onRebuild_(){this.$.table.selectionMode=tr.ui.b.TableFormat.SelectionMode.ROW;this.$.table.emptyValue='Cannot break down by '+
this.dimensionLabel_.toLowerCase()+' any further.';const[state,rows]=this.getRows_();const total=this.nodes.length;const displayed=rows.length;const hidden=total-displayed;this.updateInfoBar_(state,[total,displayed,hidden]);this.$.table.tableRows=rows;this.$.table.tableColumns=this.createColumns_(rows);if(this.$.table.sortColumnIndex===undefined){this.$.table.sortColumnIndex=0;this.$.table.sortDescending=false;}
this.$.table.rebuild();},createColumns_(rows){const titleColumn=new tr.ui.analysis.HeapDetailsTitleColumn(this.dimensionLabel_);titleColumn.width='400px';const numericColumns=tr.ui.analysis.MemoryColumn.fromRows(rows,{cellKey:'cells',aggregationMode:this.aggregationMode_,rules:tr.ui.analysis.HEAP_DETAILS_COLUMN_RULES,shouldSetContextGroup:true});if(numericColumns.length===0){numericColumns.push(new EmptyFillerColumn());}
tr.ui.analysis.MemoryColumn.spaceEqually(numericColumns);const columns=[titleColumn].concat(numericColumns);return columns;},getRows_(){let rows=this.nodes;if(rows.length<=RESONABLE_NUMBER_OF_ROWS){return[TabUiState.NO_LONG_TAIL,rows];}else if(this.displayLongTail){return[TabUiState.SHOWING_LONG_TAIL,rows];}
const absSize=row=>Math.max(row.cells.Size.fields[0].value);rows.sort((a,b)=>absSize(b)-absSize(a));rows=rows.slice(0,RESONABLE_NUMBER_OF_ROWS);return[TabUiState.HIDING_LONG_TAIL,rows];},updateInfoBar_(state,rowStats){if(state===TabUiState.SHOWING_LONG_TAIL){this.longTailVisibleInfoBar_(rowStats);}else if(state===TabUiState.HIDING_LONG_TAIL){this.longTailHiddenInfoBar_(rowStats);}else{this.hideInfoBar_();}},longTailVisibleInfoBar_(rowStats){const[total,visible,hidden]=rowStats;const couldHide=total-RESONABLE_NUMBER_OF_ROWS;this.$.info.message='Showing '+total+' rows. This may be slow.';this.$.info.removeAllButtons();const buttonText='Hide '+couldHide+' rows.';this.$.info.addButton(buttonText,()=>this.displayLongTail=false);this.$.info.visible=true;},longTailHiddenInfoBar_(rowStats){const[total,visible,hidden]=rowStats;this.$.info.message='Hiding the smallest '+hidden+' rows.';this.$.info.removeAllButtons();this.$.info.addButton('Show all.',()=>this.displayLongTail=true);this.$.info.visible=true;},hideInfoBar_(){this.$.info.visible=false;},});return{};});'use strict';tr.exportTo('tr.ui.analysis',function(){const DOWNWARDS_ARROW_WITH_TIP_RIGHTWARDS=String.fromCharCode(0x21B3);function HeapDetailsPathColumn(title){tr.ui.analysis.HeapDetailsTitleColumn.call(this,title);}
HeapDetailsPathColumn.prototype={__proto__:tr.ui.analysis.HeapDetailsTitleColumn.prototype,formatTitle(row){const title=tr.ui.analysis.HeapDetailsTitleColumn.prototype.formatTitle.call(this,row);if(row.dimension===tr.ui.analysis.HeapDetailsRowDimension.ROOT){return title;}
const arrowEl=document.createElement('span');Polymer.dom(arrowEl).textContent=DOWNWARDS_ARROW_WITH_TIP_RIGHTWARDS;arrowEl.style.paddingRight='2px';arrowEl.style.fontWeight='bold';arrowEl.style.color=tr.b.ColorScheme.getColorForReservedNameAsString('heap_dump_child_node_arrow');const rowEl=document.createElement('span');Polymer.dom(rowEl).appendChild(arrowEl);Polymer.dom(rowEl).appendChild(tr.ui.b.asHTMLOrTextNode(title));return rowEl;}};Polymer({is:'tr-ui-a-memory-dump-heap-details-path-view',behaviors:[tr.ui.analysis.RebuildableBehavior],created(){this.selectedNode_=undefined;this.aggregationMode_=undefined;},ready(){this.$.table.addEventListener('selection-changed',function(event){this.selectedNode_=this.$.table.selectedTableRow;this.didSelectedNodeChange_();}.bind(this));},didSelectedNodeChange_(){this.dispatchEvent(new tr.b.Event('selected-node-changed'));},get selectedNode(){return this.selectedNode_;},set selectedNode(node){this.selectedNode_=node;this.didSelectedNodeChange_();this.scheduleRebuild_();},get aggregationMode(){return this.aggregationMode_;},set aggregationMode(aggregationMode){this.aggregationMode_=aggregationMode;this.scheduleRebuild_();},onRebuild_(){if(this.selectedNode_===undefined){this.$.table.clear();return;}
if(this.$.table.tableRows.includes(this.selectedNode_)){this.$.table.selectedTableRow=this.selectedNode_;return;}
this.$.table.selectionMode=tr.ui.b.TableFormat.SelectionMode.ROW;this.$.table.userCanModifySortOrder=false;const rows=this.createRows_(this.selectedNode_);this.$.table.tableRows=rows;this.$.table.tableColumns=this.createColumns_(rows);this.$.table.selectedTableRow=rows[rows.length-1];},createRows_(node){const rows=[];while(node){rows.push(node);node=node.parentNode;}
rows.reverse();return rows;},createColumns_(rows){const titleColumn=new HeapDetailsPathColumn('Current path');titleColumn.width='200px';const numericColumns=tr.ui.analysis.MemoryColumn.fromRows(rows,{cellKey:'cells',aggregationMode:this.aggregationMode_,rules:tr.ui.analysis.HEAP_DETAILS_COLUMN_RULES,shouldSetContextGroup:true});tr.ui.analysis.MemoryColumn.spaceEqually(numericColumns);return[titleColumn].concat(numericColumns);}});return{};});'use strict';tr.exportTo('tr.ui.analysis',function(){const StackedPaneImpl={set childPaneBuilder(childPaneBuilder){this.childPaneBuilder_=childPaneBuilder;this.dispatchEvent(new tr.b.Event('request-child-pane-change'));},get childPaneBuilder(){return this.childPaneBuilder_;},appended(){this.rebuild();}};const StackedPane=[tr.ui.analysis.RebuildableBehavior,StackedPaneImpl];return{StackedPane,};});Polymer({is:'tr-ui-a-stacked-pane',behaviors:[tr.ui.analysis.StackedPane]});'use strict';tr.exportTo('tr.ui.analysis',function(){const Scalar=tr.b.Scalar;const sizeInBytes_smallerIsBetter=tr.b.Unit.byName.sizeInBytes_smallerIsBetter;const count_smallerIsBetter=tr.b.Unit.byName.count_smallerIsBetter;const MultiDimensionalViewBuilder=tr.b.MultiDimensionalViewBuilder;const TotalState=tr.b.MultiDimensionalViewNode.TotalState;function HeapDumpTreeNode(stackFrameNodes,dimension,title,heavyView,parentNode){this.dimension=dimension;this.title=title;this.parentNode=parentNode;this.heavyView_=heavyView;this.stackFrameNodes_=stackFrameNodes;this.lazyCells_=undefined;this.lazyChildNodes_=undefined;}
HeapDumpTreeNode.prototype={get minDisplayedTotalState_(){if(this.heavyView_){return TotalState.LOWER_BOUND;}
return TotalState.EXACT;},get childNodes(){if(!this.lazyChildNodes_){this.lazyChildNodes_=new Map();this.addDimensionChildNodes_(tr.ui.analysis.HeapDetailsRowDimension.STACK_FRAME,0);this.addDimensionChildNodes_(tr.ui.analysis.HeapDetailsRowDimension.OBJECT_TYPE,1);this.releaseStackFrameNodesIfPossible_();}
return this.lazyChildNodes_;},get cells(){if(!this.lazyCells_){this.addCells_();this.releaseStackFrameNodesIfPossible_();}
return this.lazyCells_;},releaseStackFrameNodesIfPossible_(){if(this.lazyCells_&&this.lazyChildNodes_){this.stackFrameNodes_=undefined;}},addDimensionChildNodes_(dimension,dimensionIndex){const dimensionChildTitleToStackFrameNodes=tr.b.invertArrayOfDicts(this.stackFrameNodes_,node=>this.convertStackFrameNodeDimensionToChildDict_(node,dimensionIndex));const dimensionChildNodes=[];for(const[childTitle,childStackFrameNodes]of
Object.entries(dimensionChildTitleToStackFrameNodes)){dimensionChildNodes.push(new HeapDumpTreeNode(childStackFrameNodes,dimension,childTitle,this.heavyView_,this));}
this.lazyChildNodes_.set(dimension,dimensionChildNodes);},convertStackFrameNodeDimensionToChildDict_(stackFrameNode,dimensionIndex){const childDict={};let displayedChildrenTotalSize=0;let displayedChildrenTotalCount=0;let hasDisplayedChildren=false;let allDisplayedChildrenHaveDisplayedCounts=true;for(const child of stackFrameNode.children[dimensionIndex].values()){if(child.values[0].totalState<this.minDisplayedTotalState_){continue;}
if(child.values[1].totalState<this.minDisplayedTotalState_){allDisplayedChildrenHaveDisplayedCounts=false;}
childDict[child.title[dimensionIndex]]=child;displayedChildrenTotalSize+=child.values[0].total;displayedChildrenTotalCount+=child.values[1].total;hasDisplayedChildren=true;}
const nodeTotalSize=stackFrameNode.values[0].total;const nodeTotalCount=stackFrameNode.values[1].total;const hasUnclassifiedSizeOrCount=displayedChildrenTotalSize<nodeTotalSize||displayedChildrenTotalCount<nodeTotalCount;if(!this.heavyView_&&hasUnclassifiedSizeOrCount&&hasDisplayedChildren){const otherTitle=stackFrameNode.title.slice();otherTitle[dimensionIndex]='<other>';const otherNode=new tr.b.MultiDimensionalViewNode(otherTitle,2);childDict[otherTitle[dimensionIndex]]=otherNode;otherNode.values[0].total=nodeTotalSize-displayedChildrenTotalSize;otherNode.values[0].totalState=this.minDisplayedTotalState_;otherNode.values[1].total=nodeTotalCount-displayedChildrenTotalCount;otherNode.values[1].totalState=allDisplayedChildrenHaveDisplayedCounts?this.minDisplayedTotalState_:TotalState.NOT_PROVIDED;}
return childDict;},addCells_(){this.lazyCells_=tr.ui.analysis.createCells(this.stackFrameNodes_,function(stackFrameNode){const size=stackFrameNode.values[0].total;const numerics={'Size':new Scalar(sizeInBytes_smallerIsBetter,size)};const countValue=stackFrameNode.values[1];if(countValue.totalState>=this.minDisplayedTotalState_){const count=countValue.total;numerics.Count=new Scalar(count_smallerIsBetter,count);}
return numerics;},this);}};Polymer({is:'tr-ui-a-memory-dump-heap-details-pane',behaviors:[tr.ui.analysis.StackedPane],created(){this.heapDumps_=undefined;this.viewMode_=undefined;this.aggregationMode_=undefined;this.cachedBuilders_=new Map();},ready(){this.$.info_bar.message='Note: Values displayed in the heavy view '+'are lower bounds (except for the root).';Polymer.dom(this.$.view_mode_container).appendChild(tr.ui.b.createSelector(this,'viewMode','memoryDumpHeapDetailsPane.viewMode',MultiDimensionalViewBuilder.ViewType.TOP_DOWN_TREE_VIEW,[{label:'Top-down (Tree)',value:MultiDimensionalViewBuilder.ViewType.TOP_DOWN_TREE_VIEW},{label:'Top-down (Heavy)',value:MultiDimensionalViewBuilder.ViewType.TOP_DOWN_HEAVY_VIEW},{label:'Bottom-up (Heavy)',value:MultiDimensionalViewBuilder.ViewType.BOTTOM_UP_HEAVY_VIEW}]));this.$.drag_handle.target=this.$.path_view;this.$.drag_handle.horizontal=false;this.$.path_view.addEventListener('selected-node-changed',(function(e){this.$.breakdown_view.displayedNode=this.$.path_view.selectedNode;}).bind(this));this.$.breakdown_view.addEventListener('enter-node',(function(e){this.$.path_view.selectedNode=e.node;}).bind(this));},set heapDumps(heapDumps){this.heapDumps_=heapDumps;this.scheduleRebuild_();},get heapDumps(){return this.heapDumps_;},set aggregationMode(aggregationMode){this.aggregationMode_=aggregationMode;this.$.path_view.aggregationMode=aggregationMode;this.$.breakdown_view.aggregationMode=aggregationMode;},get aggregationMode(){return this.aggregationMode_;},set viewMode(viewMode){this.viewMode_=viewMode;this.scheduleRebuild_();},get viewMode(){return this.viewMode_;},get heavyView(){switch(this.viewMode){case MultiDimensionalViewBuilder.ViewType.TOP_DOWN_HEAVY_VIEW:case MultiDimensionalViewBuilder.ViewType.BOTTOM_UP_HEAVY_VIEW:return true;default:return false;}},onRebuild_(){if(this.heapDumps_===undefined||this.heapDumps_.length===0){this.$.info_text.style.display='block';this.$.split_view.style.display='none';this.$.view_mode_container.style.display='none';this.$.info_bar.hidden=true;this.$.path_view.selectedNode=undefined;return;}
this.$.info_text.style.display='none';this.$.split_view.style.display='flex';this.$.view_mode_container.style.display='block';this.$.info_bar.hidden=!this.heavyView;this.$.path_view.selectedNode=this.createHeapTree_();this.$.path_view.rebuild();this.$.breakdown_view.rebuild();},createHeapTree_(){const definedHeapDump=tr.b.findFirstInArray(this.heapDumps_);if(definedHeapDump===undefined)return undefined;const rootRowTitle=definedHeapDump.allocatorName;const stackFrameTrees=this.createStackFrameTrees_(this.heapDumps_);return new HeapDumpTreeNode(stackFrameTrees,tr.ui.analysis.HeapDetailsRowDimension.ROOT,rootRowTitle,this.heavyView);},createStackFrameTrees_(heapDumps){const builders=heapDumps.map(heapDump=>this.createBuilder_(heapDump));const views=builders.map(builder=>{if(builder===undefined)return undefined;return builder.buildView(this.viewMode);});return views;},createBuilder_(heapDump){if(heapDump===undefined)return undefined;if(this.cachedBuilders_.has(heapDump)){return this.cachedBuilders_.get(heapDump);}
const dimensions=2;const valueCount=2;const builder=new MultiDimensionalViewBuilder(dimensions,valueCount);for(const entry of heapDump.entries){const leafStackFrame=entry.leafStackFrame;const stackTracePath=leafStackFrame===undefined?[]:leafStackFrame.getUserFriendlyStackTrace().reverse();const objectTypeName=entry.objectTypeName;const objectTypeNamePath=objectTypeName===undefined?[]:[objectTypeName];const valueKind=entry.valuesAreTotals?MultiDimensionalViewBuilder.ValueKind.TOTAL:MultiDimensionalViewBuilder.ValueKind.SELF;builder.addPath([stackTracePath,objectTypeNamePath],[entry.size,entry.count],valueKind);}
builder.complete=heapDump.isComplete;this.cachedBuilders_.set(heapDump,builder);return builder;},});return{};});'use strict';tr.exportTo('tr.ui.analysis',function(){const URL_TO_SIZE_VS_EFFECTIVE_SIZE='https://chromium.googlesource.com/chromium/src/+/master/docs/memory-infra/README.md#effective_size-vs_size';const SUBALLOCATION_CONTEXT=true;const MemoryAllocatorDumpInfoType=tr.model.MemoryAllocatorDumpInfoType;const PROVIDED_SIZE_LESS_THAN_AGGREGATED_CHILDREN=MemoryAllocatorDumpInfoType.PROVIDED_SIZE_LESS_THAN_AGGREGATED_CHILDREN;const PROVIDED_SIZE_LESS_THAN_LARGEST_OWNER=MemoryAllocatorDumpInfoType.PROVIDED_SIZE_LESS_THAN_LARGEST_OWNER;const LEFTWARDS_OPEN_HEADED_ARROW=String.fromCharCode(0x21FD);const RIGHTWARDS_OPEN_HEADED_ARROW=String.fromCharCode(0x21FE);const EN_DASH=String.fromCharCode(0x2013);const CIRCLED_LATIN_SMALL_LETTER_I=String.fromCharCode(0x24D8);function AllocatorDumpNameColumn(){tr.ui.analysis.TitleColumn.call(this,'Component');}
AllocatorDumpNameColumn.prototype={__proto__:tr.ui.analysis.TitleColumn.prototype,formatTitle(row){if(!row.suballocation){return row.title;}
return tr.ui.b.createSpan({textContent:row.title,italic:true,tooltip:row.fullNames===undefined?undefined:row.fullNames.join(', ')});}};function getAndUpdateEntry(map,name,createdCallback){let entry=map.get(name);if(entry===undefined){entry={count:0};createdCallback(entry);map.set(name,entry);}
entry.count++;return entry;}
function SizeInfoMessageBuilder(){this.parts_=[];this.indent_=0;}
SizeInfoMessageBuilder.prototype={append(){this.parts_.push.apply(this.parts_,Array.prototype.slice.apply(arguments));},appendMap(map,hasPluralSuffix,emptyText,itemCallback,opt_this){opt_this=opt_this||this;if(map.size===0){if(emptyText){this.append(emptyText);}}else if(map.size===1){this.parts_.push(' ');const key=map.keys().next().value;itemCallback.call(opt_this,key,map.get(key));}else{if(hasPluralSuffix){this.parts_.push('s');}
this.parts_.push(':');this.indent_++;for(const key of map.keys()){this.parts_.push('\n',' '.repeat(3*(this.indent_-1)),' - ');itemCallback.call(opt_this,key,map.get(key));}
this.indent_--;}},appendImportanceRange(range){this.append(' (importance: ');if(range.min===range.max){this.append(range.min);}else{this.append(range.min,EN_DASH,range.max);}
this.append(')');},appendSizeIfDefined(size){if(size!==undefined){this.append(' (',tr.b.Unit.byName.sizeInBytes.format(size),')');}},appendSomeTimestampsQuantifier(){this.append(' ',tr.ui.analysis.MemoryColumn.SOME_TIMESTAMPS_INFO_QUANTIFIER);},build(){return this.parts_.join('');}};function EffectiveSizeColumn(name,cellPath,aggregationMode){tr.ui.analysis.DetailsNumericMemoryColumn.call(this,name,cellPath,aggregationMode);}
EffectiveSizeColumn.prototype={__proto__:tr.ui.analysis.DetailsNumericMemoryColumn.prototype,get title(){return tr.ui.b.createLink({textContent:this.name,tooltip:'Memory used by this component',href:URL_TO_SIZE_VS_EFFECTIVE_SIZE});},addInfos(numerics,memoryAllocatorDumps,infos){if(memoryAllocatorDumps===undefined)return;const ownerNameToEntry=new Map();const ownedNameToEntry=new Map();for(let i=0;i<numerics.length;i++){if(numerics[i]===undefined)continue;const dump=memoryAllocatorDumps[i];if(dump===SUBALLOCATION_CONTEXT){return;}
dump.ownedBy.forEach(function(ownerLink){const ownerDump=ownerLink.source;this.getAndUpdateOwnershipEntry_(ownerNameToEntry,ownerDump,ownerLink);},this);const ownedLink=dump.owns;if(ownedLink!==undefined){const ownedDump=ownedLink.target;const ownedEntry=this.getAndUpdateOwnershipEntry_(ownedNameToEntry,ownedDump,ownedLink,true);const sharerNameToEntry=ownedEntry.sharerNameToEntry;ownedDump.ownedBy.forEach(function(sharerLink){const sharerDump=sharerLink.source;if(sharerDump===dump)return;this.getAndUpdateOwnershipEntry_(sharerNameToEntry,sharerDump,sharerLink);},this);}}
if(ownerNameToEntry.size>0){const messageBuilder=new SizeInfoMessageBuilder();messageBuilder.append('shared by');messageBuilder.appendMap(ownerNameToEntry,false,undefined,function(ownerName,ownerEntry){messageBuilder.append(ownerName);if(ownerEntry.count<numerics.length){messageBuilder.appendSomeTimestampsQuantifier();}
messageBuilder.appendImportanceRange(ownerEntry.importanceRange);},this);infos.push({message:messageBuilder.build(),icon:LEFTWARDS_OPEN_HEADED_ARROW,color:'green'});}
if(ownedNameToEntry.size>0){const messageBuilder=new SizeInfoMessageBuilder();messageBuilder.append('shares');messageBuilder.appendMap(ownedNameToEntry,false,undefined,function(ownedName,ownedEntry){messageBuilder.append(ownedName);const ownedCount=ownedEntry.count;if(ownedCount<numerics.length){messageBuilder.appendSomeTimestampsQuantifier();}
messageBuilder.appendImportanceRange(ownedEntry.importanceRange);messageBuilder.append(' with');messageBuilder.appendMap(ownedEntry.sharerNameToEntry,false,' no other dumps',function(sharerName,sharerEntry){messageBuilder.append(sharerName);if(sharerEntry.count<ownedCount){messageBuilder.appendSomeTimestampsQuantifier();}
messageBuilder.appendImportanceRange(sharerEntry.importanceRange);},this);},this);infos.push({message:messageBuilder.build(),icon:RIGHTWARDS_OPEN_HEADED_ARROW,color:'green'});}},getAndUpdateOwnershipEntry_(map,dump,link,opt_withSharerNameToEntry){const entry=getAndUpdateEntry(map,dump.quantifiedName,function(newEntry){newEntry.importanceRange=new tr.b.math.Range();if(opt_withSharerNameToEntry){newEntry.sharerNameToEntry=new Map();}});entry.importanceRange.addValue(link.importance||0);return entry;}};function SizeColumn(name,cellPath,aggregationMode){tr.ui.analysis.DetailsNumericMemoryColumn.call(this,name,cellPath,aggregationMode);}
SizeColumn.prototype={__proto__:tr.ui.analysis.DetailsNumericMemoryColumn.prototype,get title(){return tr.ui.b.createLink({textContent:this.name,tooltip:'Memory requested by this component',href:URL_TO_SIZE_VS_EFFECTIVE_SIZE});},addInfos(numerics,memoryAllocatorDumps,infos){if(memoryAllocatorDumps===undefined)return;this.addOverlapInfo_(numerics,memoryAllocatorDumps,infos);this.addProvidedSizeWarningInfos_(numerics,memoryAllocatorDumps,infos);},addOverlapInfo_(numerics,memoryAllocatorDumps,infos){const siblingNameToEntry=new Map();for(let i=0;i<numerics.length;i++){if(numerics[i]===undefined)continue;const dump=memoryAllocatorDumps[i];if(dump===SUBALLOCATION_CONTEXT){return;}
const ownedBySiblingSizes=dump.ownedBySiblingSizes;for(const siblingDump of ownedBySiblingSizes.keys()){const siblingName=siblingDump.name;getAndUpdateEntry(siblingNameToEntry,siblingName,function(newEntry){if(numerics.length===1){newEntry.size=ownedBySiblingSizes.get(siblingDump);}});}}
if(siblingNameToEntry.size>0){const messageBuilder=new SizeInfoMessageBuilder();messageBuilder.append('overlaps with its sibling');messageBuilder.appendMap(siblingNameToEntry,true,undefined,function(siblingName,siblingEntry){messageBuilder.append('\'',siblingName,'\'');messageBuilder.appendSizeIfDefined(siblingEntry.size);if(siblingEntry.count<numerics.length){messageBuilder.appendSomeTimestampsQuantifier();}},this);infos.push({message:messageBuilder.build(),icon:CIRCLED_LATIN_SMALL_LETTER_I,color:'blue'});}},addProvidedSizeWarningInfos_(numerics,memoryAllocatorDumps,infos){const infoTypeToEntry=new Map();for(let i=0;i<numerics.length;i++){if(numerics[i]===undefined)continue;const dump=memoryAllocatorDumps[i];if(dump===SUBALLOCATION_CONTEXT){return;}
dump.infos.forEach(function(dumpInfo){getAndUpdateEntry(infoTypeToEntry,dumpInfo.type,function(newEntry){if(numerics.length===1){newEntry.providedSize=dumpInfo.providedSize;newEntry.dependencySize=dumpInfo.dependencySize;}});});}
for(const infoType of infoTypeToEntry.keys()){const entry=infoTypeToEntry.get(infoType);const messageBuilder=new SizeInfoMessageBuilder();messageBuilder.append('provided size');messageBuilder.appendSizeIfDefined(entry.providedSize);let dependencyName;switch(infoType){case PROVIDED_SIZE_LESS_THAN_AGGREGATED_CHILDREN:dependencyName='the aggregated size of the children';break;case PROVIDED_SIZE_LESS_THAN_LARGEST_OWNER:dependencyName='the size of the largest owner';break;default:dependencyName='an unknown dependency';break;}
messageBuilder.append(' was less than ',dependencyName);messageBuilder.appendSizeIfDefined(entry.dependencySize);if(entry.count<numerics.length){messageBuilder.appendSomeTimestampsQuantifier();}
infos.push(tr.ui.analysis.createWarningInfo(messageBuilder.build()));}}};const NUMERIC_COLUMN_RULES=[{condition:tr.model.MemoryAllocatorDump.EFFECTIVE_SIZE_NUMERIC_NAME,importance:10,columnConstructor:EffectiveSizeColumn},{condition:tr.model.MemoryAllocatorDump.SIZE_NUMERIC_NAME,importance:9,columnConstructor:SizeColumn},{condition:'page_size',importance:0,columnConstructor:tr.ui.analysis.DetailsNumericMemoryColumn},{condition:/size/,importance:5,columnConstructor:tr.ui.analysis.DetailsNumericMemoryColumn},{importance:0,columnConstructor:tr.ui.analysis.DetailsNumericMemoryColumn}];const DIAGNOSTIC_COLUMN_RULES=[{importance:0,columnConstructor:tr.ui.analysis.StringMemoryColumn}];Polymer({is:'tr-ui-a-memory-dump-allocator-details-pane',behaviors:[tr.ui.analysis.StackedPane],created(){this.memoryAllocatorDumps_=undefined;this.heapDumps_=undefined;this.aggregationMode_=undefined;},ready(){this.$.table.selectionMode=tr.ui.b.TableFormat.SelectionMode.ROW;},set memoryAllocatorDumps(memoryAllocatorDumps){this.memoryAllocatorDumps_=memoryAllocatorDumps;this.scheduleRebuild_();},get memoryAllocatorDumps(){return this.memoryAllocatorDumps_;},set heapDumps(heapDumps){this.heapDumps_=heapDumps;this.scheduleRebuild_();},set aggregationMode(aggregationMode){this.aggregationMode_=aggregationMode;this.scheduleRebuild_();},get aggregationMode(){return this.aggregationMode_;},onRebuild_(){if(this.memoryAllocatorDumps_===undefined||this.memoryAllocatorDumps_.length===0){this.$.info_text.style.display='block';this.$.table.style.display='none';this.$.table.clear();this.$.table.rebuild();this.childPaneBuilder=undefined;return;}
this.$.info_text.style.display='none';this.$.table.style.display='block';const rows=this.createRows_();const columns=this.createColumns_(rows);rows.forEach(function(rootRow){tr.ui.analysis.aggregateTableRowCellsRecursively(rootRow,columns,function(contexts){return contexts!==undefined&&contexts.some(function(context){return context===SUBALLOCATION_CONTEXT;});});});this.$.table.tableRows=rows;this.$.table.tableColumns=columns;this.$.table.rebuild();tr.ui.analysis.expandTableRowsRecursively(this.$.table);if(this.heapDumps_===undefined){this.childPaneBuilder=undefined;}else{this.childPaneBuilder=function(){const pane=document.createElement('tr-ui-a-memory-dump-heap-details-pane');pane.heapDumps=this.heapDumps_;pane.aggregationMode=this.aggregationMode_;return pane;}.bind(this);}},createRows_(){return[this.createAllocatorRowRecursively_(this.memoryAllocatorDumps_)];},createAllocatorRowRecursively_(dumps){const definedDump=tr.b.findFirstInArray(dumps);const title=definedDump.name;const fullName=definedDump.fullName;const numericCells=tr.ui.analysis.createCells(dumps,function(dump){return dump.numerics;});const diagnosticCells=tr.ui.analysis.createCells(dumps,function(dump){return dump.diagnostics;});let suballocatedBy=undefined;if(title.startsWith('__')){for(let i=0;i<dumps.length;i++){const dump=dumps[i];if(dump===undefined||dump.ownedBy.length===0){continue;}
const ownerDump=dump.ownedBy[0].source;if(dump.ownedBy.length>1||dump.children.length>0||ownerDump.containerMemoryDump!==dump.containerMemoryDump){suballocatedBy=undefined;break;}
if(suballocatedBy===undefined){suballocatedBy=ownerDump.fullName;}else if(suballocatedBy!==ownerDump.fullName){suballocatedBy=undefined;break;}}}
const row={title,fullNames:[fullName],contexts:dumps,numericCells,diagnosticCells,suballocatedBy};const childDumpNameToDumps=tr.b.invertArrayOfDicts(dumps,function(dump){return tr.b.arrayToDict(dump.children,function(child){return child.name;});});const subRows=[];let suballocationClassificationRootNode=undefined;for(const childDumps of Object.values(childDumpNameToDumps)){const childRow=this.createAllocatorRowRecursively_(childDumps);if(childRow.suballocatedBy===undefined){subRows.push(childRow);}else{suballocationClassificationRootNode=this.classifySuballocationRow_(childRow,suballocationClassificationRootNode);}}
if(suballocationClassificationRootNode!==undefined){const suballocationRow=this.createSuballocationRowRecursively_('suballocations',suballocationClassificationRootNode);subRows.push(suballocationRow);}
if(subRows.length>0){row.subRows=subRows;}
return row;},classifySuballocationRow_(suballocationRow,rootNode){if(rootNode===undefined){rootNode={children:{},row:undefined};}
const suballocationLevels=suballocationRow.suballocatedBy.split('/');let currentNode=rootNode;for(let i=0;i<suballocationLevels.length;i++){const suballocationLevel=suballocationLevels[i];let nextNode=currentNode.children[suballocationLevel];if(nextNode===undefined){currentNode.children[suballocationLevel]=nextNode={children:{},row:undefined};}
currentNode=nextNode;}
const existingRow=currentNode.row;if(existingRow!==undefined){for(let i=0;i<suballocationRow.contexts.length;i++){const newContext=suballocationRow.contexts[i];if(newContext===undefined)continue;if(existingRow.contexts[i]!==undefined){throw new Error('Multiple suballocations with the same owner name');}
existingRow.contexts[i]=newContext;['numericCells','diagnosticCells'].forEach(function(cellKey){const suballocationCells=suballocationRow[cellKey];if(suballocationCells===undefined)return;for(const[cellName,cell]of Object.entries(suballocationCells)){if(cell===undefined)continue;const fields=cell.fields;if(fields===undefined)continue;const field=fields[i];if(field===undefined)continue;let existingCells=existingRow[cellKey];if(existingCells===undefined){existingCells={};existingRow[cellKey]=existingCells;}
let existingCell=existingCells[cellName];if(existingCell===undefined){existingCell=new tr.ui.analysis.MemoryCell(new Array(fields.length));existingCells[cellName]=existingCell;}
existingCell.fields[i]=field;}});}
existingRow.fullNames.push.apply(existingRow.fullNames,suballocationRow.fullNames);}else{currentNode.row=suballocationRow;}
return rootNode;},createSuballocationRowRecursively_(name,node){const childCount=Object.keys(node.children).length;if(childCount===0){if(node.row===undefined){throw new Error('Suballocation node must have a row or children');}
const row=node.row;row.title=name;row.suballocation=true;return row;}
const subRows=Object.values(tr.b.mapItems(node.children,this.createSuballocationRowRecursively_,this));if(node.row!==undefined){const row=node.row;row.title='<unspecified>';row.suballocation=true;subRows.unshift(row);}
const contexts=new Array(subRows[0].contexts.length);for(let i=0;i<subRows.length;i++){subRows[i].contexts.forEach(function(subContext,index){if(subContext!==undefined){contexts[index]=SUBALLOCATION_CONTEXT;}});}
return{title:name,suballocation:true,contexts,subRows};},createColumns_(rows){const titleColumn=new AllocatorDumpNameColumn();titleColumn.width='200px';const numericColumns=tr.ui.analysis.MemoryColumn.fromRows(rows,{cellKey:'numericCells',aggregationMode:this.aggregationMode_,rules:NUMERIC_COLUMN_RULES});const diagnosticColumns=tr.ui.analysis.MemoryColumn.fromRows(rows,{cellKey:'diagnosticCells',aggregationMode:this.aggregationMode_,rules:DIAGNOSTIC_COLUMN_RULES});const fieldColumns=numericColumns.concat(diagnosticColumns);tr.ui.analysis.MemoryColumn.spaceEqually(fieldColumns);const columns=[titleColumn].concat(fieldColumns);return columns;}});return{SUBALLOCATION_CONTEXT,AllocatorDumpNameColumn,EffectiveSizeColumn,SizeColumn,};});'use strict';tr.exportTo('tr.ui.analysis',function(){const Scalar=tr.b.Scalar;const sizeInBytes_smallerIsBetter=tr.b.Unit.byName.sizeInBytes_smallerIsBetter;const CONSTANT_COLUMN_RULES=[{condition:'Start address',importance:0,columnConstructor:tr.ui.analysis.StringMemoryColumn}];const VARIABLE_COLUMN_RULES=[{condition:'Virtual size',importance:7,columnConstructor:tr.ui.analysis.DetailsNumericMemoryColumn},{condition:'Protection flags',importance:6,columnConstructor:tr.ui.analysis.StringMemoryColumn},{condition:'PSS',importance:5,columnConstructor:tr.ui.analysis.DetailsNumericMemoryColumn},{condition:'Private dirty',importance:4,columnConstructor:tr.ui.analysis.DetailsNumericMemoryColumn},{condition:'Private clean',importance:3,columnConstructor:tr.ui.analysis.DetailsNumericMemoryColumn},{condition:'Shared dirty',importance:2,columnConstructor:tr.ui.analysis.DetailsNumericMemoryColumn},{condition:'Shared clean',importance:1,columnConstructor:tr.ui.analysis.DetailsNumericMemoryColumn},{condition:'Swapped',importance:0,columnConstructor:tr.ui.analysis.DetailsNumericMemoryColumn}];const BYTE_STAT_COLUMN_MAP={'proportionalResident':'PSS','privateDirtyResident':'Private dirty','privateCleanResident':'Private clean','sharedDirtyResident':'Shared dirty','sharedCleanResident':'Shared clean','swapped':'Swapped'};function hexString(address,is64BitAddress){if(address===undefined)return undefined;const hexPadding=is64BitAddress?'0000000000000000':'00000000';return(hexPadding+address.toString(16)).substr(-hexPadding.length);}
function pruneEmptyRuleRows(row){if(row.subRows===undefined||row.subRows.length===0)return;if(row.subRows[0].rule===undefined){return;}
row.subRows.forEach(pruneEmptyRuleRows);row.subRows=row.subRows.filter(function(subRow){return subRow.subRows.length>0;});}
Polymer({is:'tr-ui-a-memory-dump-vm-regions-details-pane',behaviors:[tr.ui.analysis.StackedPane],created(){this.vmRegions_=undefined;this.aggregationMode_=undefined;},ready(){this.$.table.selectionMode=tr.ui.b.TableFormat.SelectionMode.ROW;},set vmRegions(vmRegions){this.vmRegions_=vmRegions;this.scheduleRebuild_();},get vmRegions(){return this.vmRegions_;},set aggregationMode(aggregationMode){this.aggregationMode_=aggregationMode;this.scheduleRebuild_();},get aggregationMode(){return this.aggregationMode_;},onRebuild_(){if(this.vmRegions_===undefined||this.vmRegions_.length===0){this.$.info_text.style.display='block';this.$.table.style.display='none';this.$.table.clear();this.$.table.rebuild();return;}
this.$.info_text.style.display='none';this.$.table.style.display='block';const rows=this.createRows_(this.vmRegions_);const columns=this.createColumns_(rows);this.$.table.tableRows=rows;this.$.table.tableColumns=columns;this.$.table.rebuild();tr.ui.analysis.expandTableRowsRecursively(this.$.table);},createRows_(timeToVmRegionTree){const is64BitAddress=timeToVmRegionTree.some(function(vmRegionTree){if(vmRegionTree===undefined)return false;return vmRegionTree.someRegion(function(region){if(region.startAddress===undefined)return false;return region.startAddress>=4294967296;});});return[this.createClassificationNodeRow(timeToVmRegionTree,is64BitAddress)];},createClassificationNodeRow(timeToNode,is64BitAddress){const definedNode=tr.b.findFirstInArray(timeToNode);const childNodeIdToTimeToNode=Object.values(tr.b.invertArrayOfDicts(timeToNode,function(node){const children=node.children;if(children===undefined)return undefined;const childMap={};children.forEach(function(childNode){if(!childNode.hasRegions)return;childMap[childNode.title]=childNode;});return childMap;}));const childNodeSubRows=childNodeIdToTimeToNode.map(function(timeToChildNode){return this.createClassificationNodeRow(timeToChildNode,is64BitAddress);},this);const regionIdToTimeToRegion=Object.values(tr.b.invertArrayOfDicts(timeToNode,function(node){const regions=node.regions;if(regions===undefined)return undefined;return tr.b.arrayToDict(regions,function(region){return region.uniqueIdWithinProcess;});}));const regionSubRows=regionIdToTimeToRegion.map(function(timeToRegion){return this.createRegionRow_(timeToRegion,is64BitAddress);},this);const subRows=childNodeSubRows.concat(regionSubRows);return{title:definedNode.title,contexts:timeToNode,variableCells:this.createVariableCells_(timeToNode),subRows};},createRegionRow_(timeToRegion,is64BitAddress){const definedRegion=tr.b.findFirstInArray(timeToRegion);return{title:definedRegion.mappedFile,contexts:timeToRegion,constantCells:this.createConstantCells_(definedRegion,is64BitAddress),variableCells:this.createVariableCells_(timeToRegion)};},createConstantCells_(definedRegion,is64BitAddress){return tr.ui.analysis.createCells([definedRegion],function(region){const startAddress=region.startAddress;if(startAddress===undefined)return undefined;return{'Start address':hexString(startAddress,is64BitAddress)};});},createVariableCells_(timeToRegion){return tr.ui.analysis.createCells(timeToRegion,function(region){const fields={};const sizeInBytes=region.sizeInBytes;if(sizeInBytes!==undefined){fields['Virtual size']=new Scalar(sizeInBytes_smallerIsBetter,sizeInBytes);}
const protectionFlags=region.protectionFlagsToString;if(protectionFlags!==undefined){fields['Protection flags']=protectionFlags;}
for(const[byteStatName,columnName]of
Object.entries(BYTE_STAT_COLUMN_MAP)){const byteStat=region.byteStats[byteStatName];if(byteStat===undefined)continue;fields[columnName]=new Scalar(sizeInBytes_smallerIsBetter,byteStat);}
return fields;});},createColumns_(rows){const titleColumn=new tr.ui.analysis.TitleColumn('Mapped file');titleColumn.width='200px';const constantColumns=tr.ui.analysis.MemoryColumn.fromRows(rows,{cellKey:'constantCells',aggregationMode:undefined,rules:CONSTANT_COLUMN_RULES});const variableColumns=tr.ui.analysis.MemoryColumn.fromRows(rows,{cellKey:'variableCells',aggregationMode:this.aggregationMode_,rules:VARIABLE_COLUMN_RULES});const fieldColumns=constantColumns.concat(variableColumns);tr.ui.analysis.MemoryColumn.spaceEqually(fieldColumns);const columns=[titleColumn].concat(fieldColumns);return columns;}});return{};});'use strict';Polymer({is:'tr-ui-b-color-legend',ready(){const blackSquareCharCode=9632;this.$.square.innerText=String.fromCharCode(blackSquareCharCode);this.label_=undefined;this.compoundEventSelectionState_=tr.model.CompoundEventSelectionState.NOT_SELECTED;},set compoundEventSelectionState(compoundEventSelectionState){this.compoundEventSelectionState_=compoundEventSelectionState;},get label(){return this.label_;},set label(label){if(label===undefined){this.setLabelAndColorId(undefined,undefined);return;}
const colorId=tr.b.ColorScheme.getColorIdForGeneralPurposeString(label);this.setLabelAndColorId(label,colorId);},setLabelAndColorId(label,colorId){this.label_=label;Polymer.dom(this.$.label).textContent='';Polymer.dom(this.$.label).appendChild(tr.ui.b.asHTMLOrTextNode(label));if(colorId===undefined){this.$.square.style.color='initial';}else{this.$.square.style.color=tr.b.ColorScheme.colorsAsStrings[colorId];}}});'use strict';Polymer({is:'tr-ui-b-view-specific-brushing-state',get viewId(){return this.getAttribute('view-id');},set viewId(viewId){Polymer.dom(this).setAttribute('view-id',viewId);},get(){const viewId=this.viewId;if(!viewId){throw new Error('Element must have a view-id attribute!');}
const brushingStateController=tr.c.BrushingStateController.getControllerForElement(this);if(!brushingStateController)return undefined;return brushingStateController.getViewSpecificBrushingState(viewId);},set(state){const viewId=this.viewId;if(!viewId){throw new Error('Element must have a view-id attribute!');}
const brushingStateController=tr.c.BrushingStateController.getControllerForElement(this);if(!brushingStateController)return;brushingStateController.changeViewSpecificBrushingState(viewId,state);}});'use strict';tr.exportTo('tr.ui.analysis',function(){const MemoryColumnColorScheme=tr.b.MemoryColumnColorScheme;const Scalar=tr.b.Scalar;const sizeInBytes_smallerIsBetter=tr.b.Unit.byName.sizeInBytes_smallerIsBetter;const PLATFORM_SPECIFIC_TOTAL_NAME_SUFFIX='_bytes';const DISPLAYED_SIZE_NUMERIC_NAME=tr.model.MemoryAllocatorDump.DISPLAYED_SIZE_NUMERIC_NAME;const SOME_TIMESTAMPS_INFO_QUANTIFIER=tr.ui.analysis.MemoryColumn.SOME_TIMESTAMPS_INFO_QUANTIFIER;const RIGHTWARDS_ARROW_WITH_HOOK=String.fromCharCode(0x21AA);const RIGHTWARDS_ARROW_FROM_BAR=String.fromCharCode(0x21A6);const GREATER_THAN_OR_EQUAL_TO=String.fromCharCode(0x2265);const UNMARRIED_PARTNERSHIP_SYMBOL=String.fromCharCode(0x26AF);const TRIGRAM_FOR_HEAVEN=String.fromCharCode(0x2630);function lazyMap(list,fn,opt_this){opt_this=opt_this||this;let result=undefined;list.forEach(function(item,index){const value=fn.call(opt_this,item,index);if(value===undefined)return;if(result===undefined){result=new Array(list.length);}
result[index]=value;});return result;}
function ProcessNameColumn(){tr.ui.analysis.TitleColumn.call(this,'Process');}
ProcessNameColumn.prototype={__proto__:tr.ui.analysis.TitleColumn.prototype,formatTitle(row){if(row.contexts===undefined){return row.title;}
const titleEl=document.createElement('tr-ui-b-color-legend');titleEl.label=row.title;return titleEl;}};function UsedMemoryColumn(name,cellPath,aggregationMode){tr.ui.analysis.NumericMemoryColumn.call(this,name,cellPath,aggregationMode);}
UsedMemoryColumn.COLOR=MemoryColumnColorScheme.getColor('used_memory_column').toString();UsedMemoryColumn.OLDER_COLOR=MemoryColumnColorScheme.getColor('older_used_memory_column').toString();UsedMemoryColumn.prototype={__proto__:tr.ui.analysis.NumericMemoryColumn.prototype,get title(){return tr.ui.b.createSpan({textContent:this.name,color:UsedMemoryColumn.COLOR});},getFormattingContext(unit){return{unitPrefix:tr.b.UnitPrefixScale.BINARY.MEBI};},color(numerics,processMemoryDumps){return UsedMemoryColumn.COLOR;},getChildPaneBuilder(processMemoryDumps){if(processMemoryDumps===undefined)return undefined;const vmRegions=lazyMap(processMemoryDumps,function(pmd){if(pmd===undefined)return undefined;return pmd.mostRecentVmRegions;});if(vmRegions===undefined)return undefined;return function(){const pane=document.createElement('tr-ui-a-memory-dump-vm-regions-details-pane');pane.vmRegions=vmRegions;pane.aggregationMode=this.aggregationMode;return pane;}.bind(this);}};function PeakMemoryColumn(name,cellPath,aggregationMode){UsedMemoryColumn.call(this,name,cellPath,aggregationMode);}
PeakMemoryColumn.prototype={__proto__:UsedMemoryColumn.prototype,addInfos(numerics,processMemoryDumps,infos){if(processMemoryDumps===undefined)return;let resettableValueCount=0;let nonResettableValueCount=0;for(let i=0;i<numerics.length;i++){if(numerics[i]===undefined)continue;if(processMemoryDumps[i].arePeakResidentBytesResettable){resettableValueCount++;}else{nonResettableValueCount++;}}
if(resettableValueCount>0&&nonResettableValueCount>0){infos.push(tr.ui.analysis.createWarningInfo('Both resettable and '+'non-resettable peak RSS values were provided by the process'));}else if(resettableValueCount>0){infos.push({icon:RIGHTWARDS_ARROW_WITH_HOOK,message:'Peak RSS since previous memory dump.'});}else{infos.push({icon:RIGHTWARDS_ARROW_FROM_BAR,message:'Peak RSS since process startup. Finer grained '+'peaks require a Linux kernel version '+
GREATER_THAN_OR_EQUAL_TO+' 4.0.'});}}};function ByteStatColumn(name,cellPath,aggregationMode){UsedMemoryColumn.call(this,name,cellPath,aggregationMode);}
ByteStatColumn.prototype={__proto__:UsedMemoryColumn.prototype,color(numerics,processMemoryDumps){if(processMemoryDumps===undefined){return UsedMemoryColumn.COLOR;}
const allOlderValues=processMemoryDumps.every(function(processMemoryDump){if(processMemoryDump===undefined)return true;return!processMemoryDump.hasOwnVmRegions;});if(allOlderValues){return UsedMemoryColumn.OLDER_COLOR;}
return UsedMemoryColumn.COLOR;},addInfos(numerics,processMemoryDumps,infos){if(processMemoryDumps===undefined)return;let olderValueCount=0;for(let i=0;i<numerics.length;i++){const processMemoryDump=processMemoryDumps[i];if(processMemoryDump!==undefined&&!processMemoryDump.hasOwnVmRegions){olderValueCount++;}}
if(olderValueCount===0){return;}
const infoQuantifier=olderValueCount<numerics.length?' '+SOME_TIMESTAMPS_INFO_QUANTIFIER:'';infos.push({message:'Older value'+infoQuantifier+' (only heavy (purple) memory dumps contain memory maps).',icon:UNMARRIED_PARTNERSHIP_SYMBOL});}};UsedMemoryColumn.RULES=[{condition:'Total resident',importance:10,columnConstructor:UsedMemoryColumn},{condition:'Peak total resident',importance:9,columnConstructor:PeakMemoryColumn},{condition:'PSS',importance:8,columnConstructor:ByteStatColumn},{condition:'Private dirty',importance:7,columnConstructor:ByteStatColumn},{condition:'Swapped',importance:6,columnConstructor:ByteStatColumn},{importance:0,columnConstructor:UsedMemoryColumn}];UsedMemoryColumn.TOTALS_MAP={'residentBytes':'Total resident','peakResidentBytes':'Peak total resident'};UsedMemoryColumn.BYTE_STAT_MAP={'proportionalResident':'PSS','privateDirtyResident':'Private dirty','swapped':'Swapped'};function AllocatorColumn(name,cellPath,aggregationMode){tr.ui.analysis.NumericMemoryColumn.call(this,name,cellPath,aggregationMode);}
AllocatorColumn.prototype={__proto__:tr.ui.analysis.NumericMemoryColumn.prototype,get title(){const titleEl=document.createElement('tr-ui-b-color-legend');titleEl.label=this.name;return titleEl;},getFormattingContext(unit){return{unitPrefix:tr.b.UnitPrefixScale.BINARY.MEBI};},addInfos(numerics,processMemoryDumps,infos){if(processMemoryDumps===undefined)return;let heapDumpCount=0;let missingSizeCount=0;for(let i=0;i<processMemoryDumps.length;i++){const processMemoryDump=processMemoryDumps[i];if(processMemoryDump===undefined)continue;const heapDumps=processMemoryDump.heapDumps;if(heapDumps!==undefined&&heapDumps[this.name]!==undefined){heapDumpCount++;}
const allocatorDump=processMemoryDump.getMemoryAllocatorDumpByFullName(this.name);if(allocatorDump!==undefined&&allocatorDump.numerics[DISPLAYED_SIZE_NUMERIC_NAME]===undefined){missingSizeCount++;}}
if(heapDumpCount>0){const infoQuantifier=heapDumpCount<numerics.length?' '+SOME_TIMESTAMPS_INFO_QUANTIFIER:'';infos.push({message:'Heap dump provided'+infoQuantifier+'.',icon:TRIGRAM_FOR_HEAVEN});}
if(missingSizeCount>0){const infoQuantifier=missingSizeCount<numerics.length?' '+SOME_TIMESTAMPS_INFO_QUANTIFIER:'';infos.push(tr.ui.analysis.createWarningInfo('Size was not provided'+infoQuantifier+'.'));}},getChildPaneBuilder(processMemoryDumps){if(processMemoryDumps===undefined)return undefined;const memoryAllocatorDumps=lazyMap(processMemoryDumps,function(pmd){if(pmd===undefined)return undefined;return pmd.getMemoryAllocatorDumpByFullName(this.name);},this);if(memoryAllocatorDumps===undefined)return undefined;const heapDumps=lazyMap(processMemoryDumps,function(pmd){if(pmd===undefined||pmd.heapDumps===undefined)return undefined;return pmd.heapDumps[this.name];},this);return function(){const pane=document.createElement('tr-ui-a-memory-dump-allocator-details-pane');pane.memoryAllocatorDumps=memoryAllocatorDumps;pane.heapDumps=heapDumps;pane.aggregationMode=this.aggregationMode;return pane;}.bind(this);}};function TracingColumn(name,cellPath,aggregationMode){AllocatorColumn.call(this,name,cellPath,aggregationMode);}
TracingColumn.COLOR=MemoryColumnColorScheme.getColor('tracing_memory_column').toString();TracingColumn.prototype={__proto__:AllocatorColumn.prototype,get title(){return tr.ui.b.createSpan({textContent:this.name,color:TracingColumn.COLOR});},color(numerics,processMemoryDumps){return TracingColumn.COLOR;}};AllocatorColumn.RULES=[{condition:'tracing',importance:0,columnConstructor:TracingColumn},{importance:1,columnConstructor:AllocatorColumn}];Polymer({is:'tr-ui-a-memory-dump-overview-pane',behaviors:[tr.ui.analysis.StackedPane],created(){this.processMemoryDumps_=undefined;this.aggregationMode_=undefined;},ready(){this.$.table.selectionMode=tr.ui.b.TableFormat.SelectionMode.CELL;this.$.table.addEventListener('selection-changed',function(tableEvent){tableEvent.stopPropagation();this.changeChildPane_();}.bind(this));},set processMemoryDumps(processMemoryDumps){this.processMemoryDumps_=processMemoryDumps;this.scheduleRebuild_();},get processMemoryDumps(){return this.processMemoryDumps_;},set aggregationMode(aggregationMode){this.aggregationMode_=aggregationMode;this.scheduleRebuild_();},get aggregationMode(){return this.aggregationMode_;},get selectedMemoryCell(){if(this.processMemoryDumps_===undefined||this.processMemoryDumps_.length===0){return undefined;}
const selectedTableRow=this.$.table.selectedTableRow;if(!selectedTableRow)return undefined;const selectedColumnIndex=this.$.table.selectedColumnIndex;if(selectedColumnIndex===undefined)return undefined;const selectedColumn=this.$.table.tableColumns[selectedColumnIndex];const selectedMemoryCell=selectedColumn.cell(selectedTableRow);return selectedMemoryCell;},changeChildPane_(){this.storeSelection_();this.childPaneBuilder=this.determineChildPaneBuilderFromSelection_();},determineChildPaneBuilderFromSelection_(){if(this.processMemoryDumps_===undefined||this.processMemoryDumps_.length===0){return undefined;}
const selectedTableRow=this.$.table.selectedTableRow;if(!selectedTableRow)return undefined;const selectedColumnIndex=this.$.table.selectedColumnIndex;if(selectedColumnIndex===undefined)return undefined;const selectedColumn=this.$.table.tableColumns[selectedColumnIndex];return selectedColumn.getChildPaneBuilder(selectedTableRow.contexts);},onRebuild_(){if(this.processMemoryDumps_===undefined||this.processMemoryDumps_.length===0){this.$.info_text.style.display='block';this.$.table.style.display='none';this.$.table.clear();this.$.table.rebuild();return;}
this.$.info_text.style.display='none';this.$.table.style.display='block';const rows=this.createRows_();const columns=this.createColumns_(rows);const footerRows=this.createFooterRows_(rows,columns);this.$.table.tableRows=rows;this.$.table.footerRows=footerRows;this.$.table.tableColumns=columns;this.$.table.rebuild();this.restoreSelection_();},createRows_(){const timeToPidToProcessMemoryDump=this.processMemoryDumps_;const pidToTimeToProcessMemoryDump=tr.b.invertArrayOfDicts(timeToPidToProcessMemoryDump);return Object.values(tr.b.mapItems(pidToTimeToProcessMemoryDump,function(pid,timeToDump){const process=tr.b.findFirstInArray(timeToDump).process;const usedMemoryCells=tr.ui.analysis.createCells(timeToDump,function(dump){const sizes={};const totals=dump.totals;if(totals!==undefined){for(const[totalName,cellName]of
Object.entries(UsedMemoryColumn.TOTALS_MAP)){const total=totals[totalName];if(total===undefined)continue;sizes[cellName]=new Scalar(sizeInBytes_smallerIsBetter,total);}
const platformSpecific=totals.platformSpecific;if(platformSpecific!==undefined){for(const[name,size]of
Object.entries(platformSpecific)){let newName=name;if(name.endsWith(PLATFORM_SPECIFIC_TOTAL_NAME_SUFFIX)){newName=name.substring(0,name.length-
PLATFORM_SPECIFIC_TOTAL_NAME_SUFFIX.length);}
newName=newName.replace('_',' ').trim();newName=newName.charAt(0).toUpperCase()+
newName.slice(1);sizes[newName]=new Scalar(sizeInBytes_smallerIsBetter,size);}}}
const vmRegions=dump.mostRecentVmRegions;if(vmRegions!==undefined){for(const[byteStatName,cellName]of
Object.entries(UsedMemoryColumn.BYTE_STAT_MAP)){const byteStat=vmRegions.byteStats[byteStatName];if(byteStat===undefined)continue;sizes[cellName]=new Scalar(sizeInBytes_smallerIsBetter,byteStat);}}
return sizes;});const allocatorCells=tr.ui.analysis.createCells(timeToDump,function(dump){const memoryAllocatorDumps=dump.memoryAllocatorDumps;if(memoryAllocatorDumps===undefined)return undefined;const sizes={};memoryAllocatorDumps.forEach(function(allocatorDump){let rootDisplayedSizeNumeric=allocatorDump.numerics[DISPLAYED_SIZE_NUMERIC_NAME];if(rootDisplayedSizeNumeric===undefined){rootDisplayedSizeNumeric=new Scalar(sizeInBytes_smallerIsBetter,0);}
sizes[allocatorDump.fullName]=rootDisplayedSizeNumeric;});return sizes;});return{title:process.userFriendlyName,contexts:timeToDump,usedMemoryCells,allocatorCells};}));},createFooterRows_(rows,columns){if(rows.length<=1)return[];const totalRow={title:'Total'};tr.ui.analysis.aggregateTableRowCells(totalRow,rows,columns);return[totalRow];},createColumns_(rows){const titleColumn=new ProcessNameColumn();titleColumn.width='200px';const usedMemorySizeColumns=tr.ui.analysis.MemoryColumn.fromRows(rows,{cellKey:'usedMemoryCells',aggregationMode:this.aggregationMode_,rules:UsedMemoryColumn.RULES});const allocatorSizeColumns=tr.ui.analysis.MemoryColumn.fromRows(rows,{cellKey:'allocatorCells',aggregationMode:this.aggregationMode_,rules:AllocatorColumn.RULES});const sizeColumns=usedMemorySizeColumns.concat(allocatorSizeColumns);tr.ui.analysis.MemoryColumn.spaceEqually(sizeColumns);const columns=[titleColumn].concat(sizeColumns);return columns;},storeSelection_(){let selectedRowTitle;const selectedRow=this.$.table.selectedTableRow;if(selectedRow!==undefined){selectedRowTitle=selectedRow.title;}
let selectedColumnName;const selectedColumnIndex=this.$.table.selectedColumnIndex;if(selectedColumnIndex!==undefined){const selectedColumn=this.$.table.tableColumns[selectedColumnIndex];selectedColumnName=selectedColumn.name;}
this.$.state.set({rowTitle:selectedRowTitle,columnName:selectedColumnName});},restoreSelection_(){const settings=this.$.state.get();if(settings===undefined||settings.rowTitle===undefined||settings.columnName===undefined){return;}
const selectedColumnName=settings.columnName;const selectedColumnIndex=tr.b.findFirstIndexInArray(this.$.table.tableColumns,function(column){return column.name===selectedColumnName;});if(selectedColumnIndex<0)return;const selectedRowTitle=settings.rowTitle;const selectedRow=tr.b.findFirstInArray(this.$.table.tableRows,function(row){return row.title===selectedRowTitle;});if(selectedRow===undefined)return;this.$.table.selectedTableRow=selectedRow;this.$.table.selectedColumnIndex=selectedColumnIndex;}});return{ProcessNameColumn,UsedMemoryColumn,PeakMemoryColumn,ByteStatColumn,AllocatorColumn,TracingColumn,};});'use strict';tr.exportTo('tr.ui.analysis',function(){Polymer({is:'tr-ui-a-memory-dump-header-pane',behaviors:[tr.ui.analysis.StackedPane],created(){this.containerMemoryDumps_=undefined;},ready(){Polymer.dom(this.$.aggregation_mode_container).appendChild(tr.ui.b.createSelector(this,'aggregationMode','memoryDumpHeaderPane.aggregationMode',tr.ui.analysis.MemoryColumn.AggregationMode.DIFF,[{label:'Diff',value:tr.ui.analysis.MemoryColumn.AggregationMode.DIFF},{label:'Max',value:tr.ui.analysis.MemoryColumn.AggregationMode.MAX}]));},set containerMemoryDumps(containerMemoryDumps){this.containerMemoryDumps_=containerMemoryDumps;this.scheduleRebuild_();},get containerMemoryDumps(){return this.containerMemoryDumps_;},set aggregationMode(aggregationMode){this.aggregationMode_=aggregationMode;this.scheduleRebuild_();},get aggregationMode(){return this.aggregationMode_;},onRebuild_(){this.updateLabel_();this.updateAggregationModeSelector_();this.changeChildPane_();},updateLabel_(){Polymer.dom(this.$.label).textContent='';if(this.containerMemoryDumps_===undefined||this.containerMemoryDumps_.length<=0){Polymer.dom(this.$.label).textContent='No memory dumps selected';return;}
const containerDumpCount=this.containerMemoryDumps_.length;const isMultiSelection=containerDumpCount>1;Polymer.dom(this.$.label).appendChild(document.createTextNode('Selected '+containerDumpCount+' memory dump'+
(isMultiSelection?'s':'')+' in '+this.containerMemoryDumps_[0].containerName+' at '));Polymer.dom(this.$.label).appendChild(document.createTextNode(tr.b.Unit.byName.timeStampInMs.format(this.containerMemoryDumps_[0].start)));if(isMultiSelection){const ELLIPSIS=String.fromCharCode(8230);Polymer.dom(this.$.label).appendChild(document.createTextNode(ELLIPSIS));Polymer.dom(this.$.label).appendChild(document.createTextNode(tr.b.Unit.byName.timeStampInMs.format(this.containerMemoryDumps_[containerDumpCount-1].start)));}},updateAggregationModeSelector_(){let displayStyle;if(this.containerMemoryDumps_===undefined||this.containerMemoryDumps_.length<=1){displayStyle='none';}else{displayStyle='initial';}
this.$.aggregation_mode_container.style.display=displayStyle;},changeChildPane_(){this.childPaneBuilder=function(){if(this.containerMemoryDumps_===undefined||this.containerMemoryDumps_.length<=0){return undefined;}
const overviewPane=document.createElement('tr-ui-a-memory-dump-overview-pane');overviewPane.processMemoryDumps=this.containerMemoryDumps_.map(function(containerDump){return containerDump.processMemoryDumps;});overviewPane.aggregationMode=this.aggregationMode;return overviewPane;}.bind(this);}});return{};});'use strict';Polymer({is:'tr-ui-a-stacked-pane-view',setPaneBuilder(paneBuilder,opt_parentPane){const paneContainer=this.$.pane_container;if(opt_parentPane){if(!(opt_parentPane instanceof HTMLElement)){throw new Error('Parent pane must be an HTML element');}
if(opt_parentPane.parentElement!==paneContainer){throw new Error('Parent pane must be a child of the pane container');}}
while(Polymer.dom(paneContainer).lastElementChild!==null&&Polymer.dom(paneContainer).lastElementChild!==opt_parentPane){const removedPane=Polymer.dom(this.$.pane_container).lastElementChild;const listener=this.listeners_.get(removedPane);if(listener===undefined){throw new Error('No listener associated with pane');}
this.listeners_.delete(removedPane);removedPane.removeEventListener('request-child-pane-change',listener);Polymer.dom(paneContainer).removeChild(removedPane);}
if(opt_parentPane&&opt_parentPane.parentElement!==paneContainer){throw new Error('Parent pane was removed from the pane container');}
if(!paneBuilder)return;const pane=paneBuilder();if(!pane)return;if(!(pane instanceof HTMLElement)){throw new Error('Pane must be an HTML element');}
const listener=function(event){this.setPaneBuilder(pane.childPaneBuilder,pane);}.bind(this);if(!this.listeners_){this.listeners_=new WeakMap();}
this.listeners_.set(pane,listener);pane.addEventListener('request-child-pane-change',listener);Polymer.dom(paneContainer).appendChild(pane);pane.appended();},rebuild(){let currentPane=Polymer.dom(this.$.pane_container).firstElementChild;while(currentPane){currentPane.rebuild();currentPane=currentPane.nextElementSibling;}},get panesForTesting(){const panes=[];let currentChild=Polymer.dom(this.$.pane_container).firstElementChild;while(currentChild){panes.push(currentChild);currentChild=currentChild.nextElementSibling;}
return panes;}});'use strict';tr.exportTo('tr.ui.analysis',function(){Polymer({is:'tr-ui-a-container-memory-dump-sub-view',behaviors:[tr.ui.analysis.AnalysisSubView],set selection(selection){if(selection===undefined){this.currentSelection_=undefined;this.dumpsByContainerName_=undefined;this.updateContents_();return;}
selection.forEach(function(event){if(!(event instanceof tr.model.ContainerMemoryDump)){throw new Error('Memory dump sub-view only supports container memory dumps');}});this.currentSelection_=selection;this.dumpsByContainerName_=tr.b.groupIntoMap(this.currentSelection_.toArray(),dump=>dump.containerName);for(const dumps of this.dumpsByContainerName_.values()){dumps.sort((a,b)=>a.start-b.start);}
this.updateContents_();},get selection(){return this.currentSelection_;},get requiresTallView(){return true;},updateContents_(){Polymer.dom(this.$.content).textContent='';if(this.dumpsByContainerName_===undefined)return;const containerNames=Array.from(this.dumpsByContainerName_.keys());if(containerNames.length===0)return;if(containerNames.length>1){this.buildViewForMultipleContainerNames_();}else{this.buildViewForSingleContainerName_();}},buildViewForSingleContainerName_(){const containerMemoryDumps=tr.b.getFirstElement(this.dumpsByContainerName_.values());const dumpView=this.ownerDocument.createElement('tr-ui-a-stacked-pane-view');Polymer.dom(this.$.content).appendChild(dumpView);dumpView.setPaneBuilder(function(){const headerPane=document.createElement('tr-ui-a-memory-dump-header-pane');headerPane.containerMemoryDumps=containerMemoryDumps;return headerPane;});},buildViewForMultipleContainerNames_(){const ownerDocument=this.ownerDocument;const rows=[];for(const[containerName,dumps]of this.dumpsByContainerName_){rows.push({containerName,subRows:dumps,isExpanded:true,});}
rows.sort(function(a,b){return a.containerName.localeCompare(b.containerName);});const columns=[{title:'Dump',value(row){if(row.subRows===undefined){return this.singleDumpValue_(row);}
return this.groupedDumpValue_(row);},singleDumpValue_(row){const linkEl=ownerDocument.createElement('tr-ui-a-analysis-link');linkEl.setSelectionAndContent(new tr.model.EventSet([row]));Polymer.dom(linkEl).appendChild(tr.v.ui.createScalarSpan(row.start,{unit:tr.b.Unit.byName.timeStampInMs,ownerDocument}));return linkEl;},groupedDumpValue_(row){const linkEl=ownerDocument.createElement('tr-ui-a-analysis-link');linkEl.setSelectionAndContent(new tr.model.EventSet(row.subRows));Polymer.dom(linkEl).appendChild(tr.ui.b.createSpan({ownerDocument,textContent:row.subRows.length+' memory dump'+
(row.subRows.length===1?'':'s')+' in '}));Polymer.dom(linkEl).appendChild(tr.ui.b.createSpan({ownerDocument,textContent:row.containerName,bold:true}));return linkEl;}}];const table=this.ownerDocument.createElement('tr-ui-b-table');table.tableColumns=columns;table.tableRows=rows;table.showHeader=false;table.rebuild();Polymer.dom(this.$.content).appendChild(table);}});tr.ui.analysis.AnalysisSubView.register('tr-ui-a-container-memory-dump-sub-view',tr.model.GlobalMemoryDump,{multi:false,title:'Global Memory Dump',});tr.ui.analysis.AnalysisSubView.register('tr-ui-a-container-memory-dump-sub-view',tr.model.GlobalMemoryDump,{multi:true,title:'Global Memory Dumps',});tr.ui.analysis.AnalysisSubView.register('tr-ui-a-container-memory-dump-sub-view',tr.model.ProcessMemoryDump,{multi:false,title:'Process Memory Dump',});tr.ui.analysis.AnalysisSubView.register('tr-ui-a-container-memory-dump-sub-view',tr.model.ProcessMemoryDump,{multi:true,title:'Process Memory Dumps',});return{};});'use strict';(function(){const COUNTER_SAMPLE_TABLE_COLUMNS=[{title:'Counter',width:'150px',value(row){return row.counter;}},{title:'Series',width:'150px',value(row){return row.series;}},{title:'Time',width:'150px',value(row){return row.start;}},{title:'Value',width:'100%',value(row){return row.value;}}];Polymer({is:'tr-ui-a-counter-sample-sub-view',behaviors:[tr.ui.analysis.AnalysisSubView],ready(){this.currentSelection_=undefined;this.$.table.tableColumns=COUNTER_SAMPLE_TABLE_COLUMNS;},get selection(){return this.currentSelection_;},set selection(selection){this.currentSelection_=selection;this.updateContents_();},updateContents_(){this.$.table.tableRows=this.selection?this.getRows_(this.selection.toArray()):[];this.$.table.rebuild();},getRows_(samples){const samplesByCounter=tr.b.groupIntoMap(samples,sample=>sample.series.counter.guid);const rows=[];for(const counterSamples of samplesByCounter.values()){const samplesBySeries=tr.b.groupIntoMap(counterSamples,sample=>sample.series.guid);for(const seriesSamples of samplesBySeries.values()){const seriesRows=this.getRowsForSamples_(seriesSamples);seriesRows[0].counter=seriesSamples[0].series.counter.name;seriesRows[0].series=seriesSamples[0].series.name;if(seriesRows.length>1){seriesRows[0].subRows=seriesRows.slice(1);seriesRows[0].isExpanded=true;}
rows.push(seriesRows[0]);}}
return rows;},getRowsForSamples_(samples){return samples.map(function(sample){return{start:sample.timestamp,value:sample.value};});}});tr.ui.analysis.AnalysisSubView.register('tr-ui-a-counter-sample-sub-view',tr.model.CounterSample,{multi:false,title:'Counter Sample',});tr.ui.analysis.AnalysisSubView.register('tr-ui-a-counter-sample-sub-view',tr.model.CounterSample,{multi:true,title:'Counter Samples',});})();'use strict';tr.exportTo('tr.ui.analysis',function(){function MultiEventSummary(title,events){this.title=title;this.duration_=undefined;this.selfTime_=undefined;this.events_=events;this.cpuTimesComputed_=false;this.cpuSelfTime_=undefined;this.cpuDuration_=undefined;this.maxDuration_=undefined;this.maxCpuDuration_=undefined;this.maxSelfTime_=undefined;this.maxCpuSelfTime_=undefined;this.untotallableArgs_=[];this.totalledArgs_=undefined;}
MultiEventSummary.prototype={set title(title){if(title==='Totals'){this.totalsRow=true;}
this.title_=title;},get title(){return this.title_;},get duration(){if(this.duration_===undefined){this.duration_=tr.b.math.Statistics.sum(this.events_,function(event){return event.duration;});}
return this.duration_;},get cpuSelfTime(){this.computeCpuTimesIfNeeded_();return this.cpuSelfTime_;},get cpuDuration(){this.computeCpuTimesIfNeeded_();return this.cpuDuration_;},computeCpuTimesIfNeeded_(){if(this.cpuTimesComputed_)return;this.cpuTimesComputed_=true;let cpuSelfTime=0;let cpuDuration=0;let hasCpuData=false;for(const event of this.events_){if(event.cpuDuration!==undefined){cpuDuration+=event.cpuDuration;hasCpuData=true;}
if(event.cpuSelfTime!==undefined){cpuSelfTime+=event.cpuSelfTime;hasCpuData=true;}}
if(hasCpuData){this.cpuDuration_=cpuDuration;this.cpuSelfTime_=cpuSelfTime;}},get selfTime(){if(this.selfTime_===undefined){this.selfTime_=0;for(const event of this.events_){if(event.selfTime!==undefined){this.selfTime_+=event.selfTime;}}}
return this.selfTime_;},get events(){return this.events_;},get numEvents(){return this.events_.length;},get numAlerts(){if(this.numAlerts_===undefined){this.numAlerts_=tr.b.math.Statistics.sum(this.events_,event=>event.associatedAlerts.length);}
return this.numAlerts_;},get untotallableArgs(){this.updateArgsIfNeeded_();return this.untotallableArgs_;},get totalledArgs(){this.updateArgsIfNeeded_();return this.totalledArgs_;},get maxDuration(){if(this.maxDuration_===undefined){this.maxDuration_=tr.b.math.Statistics.max(this.events_,function(event){return event.duration;});}
return this.maxDuration_;},get maxCpuDuration(){if(this.maxCpuDuration_===undefined){this.maxCpuDuration_=tr.b.math.Statistics.max(this.events_,function(event){return event.cpuDuration;});}
return this.maxCpuDuration_;},get maxSelfTime(){if(this.maxSelfTime_===undefined){this.maxSelfTime_=tr.b.math.Statistics.max(this.events_,function(event){return event.selfTime;});}
return this.maxSelfTime_;},get maxCpuSelfTime(){if(this.maxCpuSelfTime_===undefined){this.maxCpuSelfTime_=tr.b.math.Statistics.max(this.events_,function(event){return event.cpuSelfTime;});}
return this.maxCpuSelfTime_;},updateArgsIfNeeded_(){if(this.totalledArgs_!==undefined)return;const untotallableArgs={};const totalledArgs={};for(const event of this.events_){for(const argName in event.args){const argVal=event.args[argName];const type=typeof argVal;if(type!=='number'){untotallableArgs[argName]=true;delete totalledArgs[argName];continue;}
if(untotallableArgs[argName]){continue;}
if(totalledArgs[argName]===undefined){totalledArgs[argName]=0;}
totalledArgs[argName]+=argVal;}}
this.untotallableArgs_=Object.keys(untotallableArgs);this.totalledArgs_=totalledArgs;}};return{MultiEventSummary,};});'use strict';Polymer({is:'tr-ui-a-multi-event-summary-table',ready(){this.showTotals_=false;this.eventsHaveDuration_=true;this.eventsHaveSubRows_=true;this.eventsByTitle_=undefined;},updateTableColumns_(rows,maxValues){let hasCpuData=false;let hasAlerts=false;rows.forEach(function(row){if(row.cpuDuration!==undefined){hasCpuData=true;}
if(row.cpuSelfTime!==undefined){hasCpuData=true;}
if(row.numAlerts){hasAlerts=true;}});const ownerDocument=this.ownerDocument;const columns=[];columns.push({title:'Name',value(row){if(row.title==='Totals')return'Totals';const linkEl=document.createElement('tr-ui-a-analysis-link');linkEl.setSelectionAndContent(function(){return new tr.model.EventSet(row.events);},row.title);return linkEl;},width:'350px',cmp(rowA,rowB){return rowA.title.localeCompare(rowB.title);}});if(this.eventsHaveDuration_){columns.push({title:'Wall Duration',value(row){return tr.v.ui.createScalarSpan(row.duration,{unit:tr.b.Unit.byName.timeDurationInMs,customContextRange:row.totalsRow?undefined:tr.b.math.Range.fromExplicitRange(0,maxValues.duration),ownerDocument,});},width:'<upated further down>',cmp(rowA,rowB){return rowA.duration-rowB.duration;}});}
if(this.eventsHaveDuration_&&hasCpuData){columns.push({title:'CPU Duration',value(row){return tr.v.ui.createScalarSpan(row.cpuDuration,{unit:tr.b.Unit.byName.timeDurationInMs,customContextRange:row.totalsRow?undefined:tr.b.math.Range.fromExplicitRange(0,maxValues.cpuDuration),ownerDocument,});},width:'<upated further down>',cmp(rowA,rowB){return rowA.cpuDuration-rowB.cpuDuration;}});}
if(this.eventsHaveSubRows_&&this.eventsHaveDuration_){columns.push({title:'Self time',value(row){return tr.v.ui.createScalarSpan(row.selfTime,{unit:tr.b.Unit.byName.timeDurationInMs,customContextRange:row.totalsRow?undefined:tr.b.math.Range.fromExplicitRange(0,maxValues.selfTime),ownerDocument,});},width:'<upated further down>',cmp(rowA,rowB){return rowA.selfTime-rowB.selfTime;}});}
if(this.eventsHaveSubRows_&&this.eventsHaveDuration_&&hasCpuData){columns.push({title:'CPU Self Time',value(row){return tr.v.ui.createScalarSpan(row.cpuSelfTime,{unit:tr.b.Unit.byName.timeDurationInMs,customContextRange:row.totalsRow?undefined:tr.b.math.Range.fromExplicitRange(0,maxValues.cpuSelfTime),ownerDocument,});},width:'<upated further down>',cmp(rowA,rowB){return rowA.cpuSelfTime-rowB.cpuSelfTime;}});}
if(this.eventsHaveDuration_){columns.push({title:'Average '+(hasCpuData?'CPU':'Wall')+' Duration',value(row){const totalDuration=hasCpuData?row.cpuDuration:row.duration;return tr.v.ui.createScalarSpan(totalDuration/row.numEvents,{unit:tr.b.Unit.byName.timeDurationInMs,customContextRange:row.totalsRow?undefined:tr.b.math.Range.fromExplicitRange(0,maxValues.duration),ownerDocument,});},width:'<upated further down>',cmp(rowA,rowB){if(hasCpuData){return rowA.cpuDuration/rowA.numEvents-
rowB.cpuDuration/rowB.numEvents;}
return rowA.duration/rowA.numEvents-
rowB.duration/rowB.numEvents;}});}
columns.push({title:'Occurrences',value(row){return row.numEvents;},width:'<upated further down>',cmp(rowA,rowB){return rowA.numEvents-rowB.numEvents;}});let alertsColumnIndex;if(hasAlerts){columns.push({title:'Num Alerts',value(row){return row.numAlerts;},width:'<upated further down>',cmp(rowA,rowB){return rowA.numAlerts-rowB.numAlerts;}});alertsColumnIndex=columns.length-1;}
let colWidthPercentage;if(columns.length===1){colWidthPercentage='100%';}else{colWidthPercentage=(100/(columns.length-1)).toFixed(3)+'%';}
for(let i=1;i<columns.length;i++){columns[i].width=colWidthPercentage;}
this.$.table.tableColumns=columns;if(hasAlerts){this.$.table.sortColumnIndex=alertsColumnIndex;this.$.table.sortDescending=true;}},configure(config){if(config.eventsByTitle===undefined){throw new Error('Required: eventsByTitle');}
if(config.showTotals!==undefined){this.showTotals_=config.showTotals;}else{this.showTotals_=true;}
if(config.eventsHaveDuration!==undefined){this.eventsHaveDuration_=config.eventsHaveDuration;}else{this.eventsHaveDuration_=true;}
if(config.eventsHaveSubRows!==undefined){this.eventsHaveSubRows_=config.eventsHaveSubRows;}else{this.eventsHaveSubRows_=true;}
this.eventsByTitle_=config.eventsByTitle;this.updateContents_();},get showTotals(){return this.showTotals_;},set showTotals(showTotals){this.showTotals_=showTotals;this.updateContents_();},get eventsHaveDuration(){return this.eventsHaveDuration_;},set eventsHaveDuration(eventsHaveDuration){this.eventsHaveDuration_=eventsHaveDuration;this.updateContents_();},get eventsHaveSubRows(){return this.eventsHaveSubRows_;},set eventsHaveSubRows(eventsHaveSubRows){this.eventsHaveSubRows_=eventsHaveSubRows;this.updateContents_();},get eventsByTitle(){return this.eventsByTitle_;},set eventsByTitle(eventsByTitle){this.eventsByTitle_=eventsByTitle;this.updateContents_();},get selectionBounds(){return this.selectionBounds_;},set selectionBounds(selectionBounds){this.selectionBounds_=selectionBounds;this.updateContents_();},updateContents_(){let eventsByTitle;if(this.eventsByTitle_!==undefined){eventsByTitle=this.eventsByTitle_;}else{eventsByTitle=[];}
const allEvents=new tr.model.EventSet();const rows=[];for(const[title,eventsOfSingleTitle]of Object.entries(eventsByTitle)){for(const event of eventsOfSingleTitle)allEvents.push(event);const row=new tr.ui.analysis.MultiEventSummary(title,eventsOfSingleTitle);rows.push(row);}
this.updateTableColumns_(rows);this.$.table.tableRows=rows;const maxValues={duration:undefined,selfTime:undefined,cpuSelfTime:undefined,cpuDuration:undefined};if(this.eventsHaveDuration){for(const column in maxValues){maxValues[column]=tr.b.math.Statistics.max(rows,function(event){return event[column];});}}
const footerRows=[];if(this.showTotals_){const multiEventSummary=new tr.ui.analysis.MultiEventSummary('Totals',allEvents);footerRows.push(multiEventSummary);}
this.updateTableColumns_(rows,maxValues);this.$.table.tableRows=rows;this.$.table.footerRows=footerRows;this.$.table.rebuild();}});'use strict';Polymer({is:'tr-ui-a-selection-summary-table',created(){this.selection_=new tr.b.math.Range();},ready(){this.$.table.showHeader=false;this.$.table.tableColumns=[{title:'Name',value(row){return row.title;},width:'350px'},{title:'Value',width:'100%',value(row){return row.value;}}];},get selection(){return this.selection_;},set selection(selection){this.selection_=selection;this.updateContents_();},updateContents_(){const selection=this.selection_;const rows=[];let hasRange;if(this.selection_&&(!selection.bounds.isEmpty)){hasRange=true;}else{hasRange=false;}
rows.push({title:'Selection start',value:hasRange?tr.v.ui.createScalarSpan(selection.bounds.min,{unit:tr.b.Unit.byName.timeStampInMs,ownerDocument:this.ownerDocument}):'<empty>'});rows.push({title:'Selection extent',value:hasRange?tr.v.ui.createScalarSpan(selection.bounds.range,{unit:tr.b.Unit.byName.timeDurationInMs,ownerDocument:this.ownerDocument}):'<empty>'});this.$.table.tableRows=rows;this.$.table.rebuild();}});'use strict';Polymer({is:'tr-ui-b-radio-picker',created(){this.needsInit_=true;this.settingsKey_=undefined;this.isReady_=false;this.radioButtons_=undefined;this.selectedKey_=undefined;},ready(){this.isReady_=true;this.maybeInit_();this.maybeRenderRadioButtons_();},get vertical(){return this.getAttribute('vertical');},set vertical(vertical){if(vertical){this.setAttribute('vertical',true);}else{this.removeAttribute('vertical');}},get settingsKey(){return this.settingsKey_;},set settingsKey(settingsKey){if(!this.needsInit_){throw new Error('Already initialized.');}
this.settingsKey_=settingsKey;this.maybeInit_();},maybeInit_(){if(!this.needsInit_)return;if(this.settingsKey_===undefined)return;this.needsInit_=false;this.select(tr.b.Settings.get(this.settingsKey_));},set items(items){this.radioButtons_={};items.forEach(function(e){if(e.key in this.radioButtons_){throw new Error(e.key+' already exists');}
const radioButton=document.createElement('div');const input=document.createElement('input');const label=document.createElement('label');input.type='radio';input.id=e.label;input.addEventListener('click',function(){this.select(e.key);}.bind(this));Polymer.dom(label).innerHTML=e.label;label.htmlFor=e.label;label.style.display='inline';Polymer.dom(radioButton).appendChild(input);Polymer.dom(radioButton).appendChild(label);this.radioButtons_[e.key]=input;}.bind(this));this.maybeInit_();this.maybeRenderRadioButtons_();},maybeRenderRadioButtons_(){if(!this.isReady_)return;if(this.radioButtons_===undefined)return;for(const key in this.radioButtons_){Polymer.dom(this.$.container).appendChild(this.radioButtons_[key].parentElement);}
if(this.selectedKey_!==undefined){this.select(this.selectedKey_);}},select(key){if(key===undefined||key===this.selectedKey_){return;}
if(this.radioButtons_===undefined){this.selectedKey_=key;return;}
if(!(key in this.radioButtons_)){throw new Error(key+' does not exists');}
if(this.selectedKey_!==undefined){this.radioButtons_[this.selectedKey_].checked=false;}
this.selectedKey_=key;tr.b.Settings.set(this.settingsKey_,this.selectedKey_);if(this.selectedKey_!==undefined){this.radioButtons_[this.selectedKey_].checked=true;}
this.dispatchEvent(new tr.b.Event('change',false));},get selectedKey(){return this.selectedKey_;},});'use strict';tr.exportTo('tr.ui.b',function(){const ColumnChart=tr.ui.b.define('column-chart',tr.ui.b.ChartBase2DBrushX);ColumnChart.prototype={__proto__:tr.ui.b.ChartBase2DBrushX.prototype,decorate(){super.decorate();this.xCushion_=1;this.isStacked_=false;this.enableHoverBox=true;},set isStacked(stacked){this.isStacked_=true;this.updateContents_();},get isStacked(){return this.isStacked_;},get defaultGraphHeight(){return 100;},get defaultGraphWidth(){return 10*this.data_.length;},updateScales_(){if(this.data_.length===0)return;let xDifferences=0;let currentX=undefined;let previousX=undefined;this.data_.forEach(function(datum,index){previousX=currentX;currentX=this.getXForDatum_(datum,index);if(previousX!==undefined){xDifferences+=currentX-previousX;}},this);this.xScale_.range([0,this.graphWidth]);const domain=d3.extent(this.data_,this.getXForDatum_.bind(this));if(this.data_.length>1){this.xCushion_=xDifferences/(this.data_.length-1);}
this.xScale_.domain([domain[0],domain[1]+this.xCushion_]);this.yScale_.range([this.graphHeight,0]);this.yScale_.domain(this.getYScaleDomain_(this.dataRange.min,this.dataRange.max));},updateDataRange_(){if(!this.isStacked){super.updateDataRange_();return;}
this.autoDataRange_.reset();this.autoDataRange_.addValue(0);for(const datum of this.data_){let sum=0;for(const[key,series]of this.seriesByKey_){if(datum[key]===undefined){continue;}
sum+=datum[key];}
this.autoDataRange_.addValue(sum);}},getStackedRectsForDatum_(datum,index){const stacks=[];let bottom=this.yScale_.range()[0];let sum=0;for(const[key,series]of this.seriesByKey_){if(datum[key]===undefined||!this.isSeriesEnabled(key)){continue;}
sum+=this.dataRange.clamp(datum[key]);const heightPx=bottom-this.yScale_(sum);bottom-=heightPx;stacks.push({key,value:datum[key],color:this.getDataSeries(key).color,heightPx,topPx:bottom,underflow:sum<this.dataRange.min,overflow:sum>this.dataRange.max,});}
return stacks;},getRectsForDatum_(datum,index){if(this.isStacked){return this.getStackedRectsForDatum_(datum,index);}
const stacks=[];for(const[key,series]of this.seriesByKey_){if(datum[key]===undefined||!this.isSeriesEnabled(key)){continue;}
const clampedValue=this.dataRange.clamp(datum[key]);const topPx=this.yScale_(Math.max(clampedValue,this.getYScaleMin_()));stacks.push({key,value:datum[key],topPx,heightPx:this.yScale_.range()[0]-topPx,color:this.getDataSeries(key).color,underflow:datum[key]<this.dataRange.min,overflow:datum[key]>this.dataRange.max,});}
stacks.sort(function(a,b){return b.topPx-a.topPx;});return stacks;},drawHoverValueBox_(rect){const rectHoverEvent=new tr.b.Event('rect-mouseenter');rectHoverEvent.rect=rect;this.dispatchEvent(rectHoverEvent);if(!this.enableHoverBox)return;const seriesKeys=[...this.seriesByKey_.keys()];const chartAreaSel=d3.select(this.chartAreaElement);chartAreaSel.selectAll('.hover').remove();let keyWidthPx=0;let keyHeightPx=0;if(seriesKeys.length>1){keyWidthPx=tr.ui.b.getSVGTextSize(this.chartAreaElement,rect.key).width+5;keyHeightPx=16;}
const valueWidthPx=tr.ui.b.getSVGTextSize(this.chartAreaElement,rect.value).width+5;const valueHeightPx=16;const hoverLeftPx=rect.leftPx+(rect.widthPx/2);chartAreaSel.append('rect').attr('class','hover').attr('fill','white').attr('x',hoverLeftPx).attr('y',rect.topPx).attr('width',Math.max(keyWidthPx,valueWidthPx)).attr('height',keyHeightPx+valueHeightPx);if(seriesKeys.length>1){chartAreaSel.append('text').attr('class','hover').attr('fill',rect.color).attr('x',hoverLeftPx+2).attr('y',rect.topPx+keyHeightPx-3).text(rect.key);}
chartAreaSel.append('text').attr('class','hover').attr('fill',rect.color).attr('x',hoverLeftPx+2).attr('y',rect.topPx+keyHeightPx+valueHeightPx-3).text(rect.value);},clearHoverValueBox_(rect){const rectHoverEvent=new tr.b.Event('rect-mouseleave');rectHoverEvent.rect=rect;this.dispatchEvent(rectHoverEvent);d3.select(this.chartAreaElement).selectAll('.hover').remove();},drawRect_(rect,sel){sel=sel.data([rect]);sel.enter().append('rect').attr('fill',rect.color).attr('x',rect.leftPx).attr('y',rect.topPx).attr('width',rect.widthPx).attr('height',rect.heightPx).on('mouseenter',this.drawHoverValueBox_.bind(this,rect)).on('mouseleave',this.clearHoverValueBox_.bind(this,rect));sel.exit().remove();},drawUnderflow_(rect,sel){sel=sel.data([rect]);sel.enter().append('text').text('*').attr('fill',rect.color).attr('x',rect.leftPx+(rect.widthPx/2)).attr('y',this.graphHeight).on('mouseenter',this.drawHoverValueBox_.bind(this,rect)).on('mouseleave',this.clearHoverValueBox_.bind(this,rect));sel.exit().remove();},drawOverflow_(rect,sel){sel=sel.data([rect]);sel.enter().append('text').text('*').attr('fill',rect.color).attr('x',rect.leftPx+(rect.widthPx/2)).attr('y',0);sel.exit().remove();},updateDataContents_(dataSel){dataSel.selectAll('*').remove();const chartAreaSel=d3.select(this.chartAreaElement);const seriesKeys=[...this.seriesByKey_.keys()];const rectsSel=dataSel.selectAll('path');this.data_.forEach(function(datum,index){const currentX=this.getXForDatum_(datum,index);let width=undefined;if(index<(this.data_.length-1)){const nextX=this.getXForDatum_(this.data_[index+1],index+1);width=nextX-currentX;}else{width=this.xCushion_;}
for(const rect of this.getRectsForDatum_(datum,index)){rect.datum=datum;rect.index=index;rect.leftPx=this.xScale_(currentX);rect.rightPx=this.xScale_(currentX+width);rect.widthPx=rect.rightPx-rect.leftPx;this.drawRect_(rect,rectsSel);if(rect.underflow){this.drawUnderflow_(rect,rectsSel);}
if(rect.overflow){this.drawOverflow_(rect,rectsSel);}}},this);}};return{ColumnChart,};});'use strict';tr.exportTo('tr.ui.b',function(){const MIN_GUIDELINE_HEIGHT_PX=3;const CHECKBOX_WIDTH_PX=18;const NameColumnChart=tr.ui.b.define('name-column-chart',tr.ui.b.ColumnChart);NameColumnChart.prototype={__proto__:tr.ui.b.ColumnChart.prototype,get xAxisHeight(){return 5+(this.textHeightPx_*this.data_.length);},updateMargins_(){super.updateMargins_();let xAxisTickOverhangPx=0;for(let i=0;i<this.data_.length;++i){const datum=this.data_[i];xAxisTickOverhangPx=Math.max(xAxisTickOverhangPx,this.xScale_(i)+tr.ui.b.getSVGTextSize(this,datum.x).width-
this.graphWidth);}
this.margin.right=Math.max(this.margin.right,xAxisTickOverhangPx);},getXForDatum_(datum,index){return index;},get xAxisTickOffset(){return 0.5;},updateXAxis_(xAxis){xAxis.selectAll('*').remove();if(this.hideXAxis)return;const nameTexts=xAxis.selectAll('text').data(this.data_);nameTexts.enter().append('text').attr('transform',(d,index)=>'translate(0, '+
this.textHeightPx_*(this.data_.length-index)+')').attr('x',(d,index)=>this.xScale_(index)).attr('y',d=>this.graphHeight).text(d=>d.x);nameTexts.exit().remove();const guideLines=xAxis.selectAll('line.guide').data(this.data_);guideLines.enter().append('line').attr('x1',(d,index)=>this.xScale_(index+this.xAxisTickOffset)).attr('x2',(d,index)=>this.xScale_(index+this.xAxisTickOffset)).attr('y1',()=>this.graphHeight).attr('y2',(d,index)=>this.graphHeight+Math.max(MIN_GUIDELINE_HEIGHT_PX,(this.textHeightPx_*(this.data_.length-index-1))));}};return{NameColumnChart,};});'use strict';tr.exportTo('tr.ui.b',function(){const LineChart=tr.ui.b.LineChart;const NameLineChart=tr.ui.b.define('name-line-chart',LineChart);NameLineChart.prototype={__proto__:LineChart.prototype,getXForDatum_(datum,index){return index;},get xAxisHeight(){return 5+(this.textHeightPx_*this.data_.length);},get xAxisTickOffset(){return 0;},updateMargins_(){tr.ui.b.NameColumnChart.prototype.updateMargins_.call(this);},updateXAxis_(xAxis){xAxis.selectAll('*').remove();if(this.hideXAxis)return;tr.ui.b.NameColumnChart.prototype.updateXAxis_.call(this,xAxis);const baseline=xAxis.selectAll('path').data([this]);baseline.enter().append('line').attr('stroke','black').attr('x1',this.xScale_(0)).attr('x2',this.xScale_(this.data_.length-1)).attr('y1',this.graphHeight).attr('y2',this.graphHeight);baseline.exit().remove();}};return{NameLineChart,};});'use strict';tr.exportTo('tr.ui.b',function(){const BoxChart=tr.ui.b.define('box-chart',tr.ui.b.NameLineChart);BoxChart.prototype={__proto__:tr.ui.b.NameLineChart.prototype,get hideLegend(){return true;},updateDataRange_(){if(this.overrideDataRange_!==undefined){return;}
this.autoDataRange_.reset();for(const datum of this.data_){this.autoDataRange_.addValue(datum.percentile_0);this.autoDataRange_.addValue(datum.percentile_100);}},updateScales_(){super.updateScales_();this.xScale_.domain([0,this.data_.length]);},get xAxisTickOffset(){return 0.5;},updateDataRange_(){if(this.overrideDataRange_!==undefined)return;this.autoDataRange_.reset();for(const datum of this.data_){this.autoDataRange_.addValue(datum.percentile_0);this.autoDataRange_.addValue(datum.percentile_100);}},updateXAxis_(xAxis){xAxis.selectAll('*').remove();if(this.hideXAxis)return;tr.ui.b.NameColumnChart.prototype.updateXAxis_.call(this,xAxis);const baseline=xAxis.selectAll('path').data([this]);baseline.enter().append('line').attr('stroke','black').attr('x1',this.xScale_(0)).attr('x2',this.xScale_(this.data_.length)).attr('y1',this.graphHeight).attr('y2',this.graphHeight);baseline.exit().remove();},updateDataContents_(dataSel){dataSel.selectAll('*').remove();const boxesSel=dataSel.selectAll('path');for(let index=0;index<this.data_.length;++index){const datum=this.data_[index];const color=datum.color||'black';let sel=boxesSel.data([datum]);sel.enter().append('rect').attr('fill',color).attr('x',this.xScale_(index+0.2)).attr('width',this.xScale_(index+0.8)-this.xScale_(index+0.2)).attr('y',this.yScale_(datum.percentile_75)).attr('height',this.yScale_(datum.percentile_25)-
this.yScale_(datum.percentile_75));sel.exit().remove();sel=boxesSel.data([datum]);sel.enter().append('line').attr('stroke',color).attr('x1',this.xScale_(index)).attr('x2',this.xScale_(index+1)).attr('y1',this.yScale_(datum.percentile_50)).attr('y2',this.yScale_(datum.percentile_50));sel.exit().remove();sel=boxesSel.data([datum]);sel.enter().append('line').attr('stroke',color).attr('x1',this.xScale_(index+0.4)).attr('x2',this.xScale_(index+0.6)).attr('y1',this.yScale_(datum.percentile_0)).attr('y2',this.yScale_(datum.percentile_0));sel.exit().remove();sel=boxesSel.data([datum]);sel.enter().append('line').attr('stroke',color).attr('x1',this.xScale_(index+0.4)).attr('x2',this.xScale_(index+0.6)).attr('y1',this.yScale_(datum.percentile_100)).attr('y2',this.yScale_(datum.percentile_100));sel.exit().remove();sel=boxesSel.data([datum]);sel.enter().append('line').attr('stroke',color).attr('x1',this.xScale_(index+0.5)).attr('x2',this.xScale_(index+0.5)).attr('y1',this.yScale_(datum.percentile_100)).attr('y2',this.yScale_(datum.percentile_0));sel.exit().remove();}}};return{BoxChart,};});'use strict';tr.exportTo('tr.ui.b',function(){const BarChart=tr.ui.b.define('bar-chart',tr.ui.b.ColumnChart);BarChart.prototype={__proto__:tr.ui.b.ColumnChart.prototype,decorate(){super.decorate();this.verticalScale_=undefined;this.horizontalScale_=undefined;},updateScales_(){super.updateScales_();this.yScale_.range([this.graphWidth,0]);this.xScale_.range([0,this.graphHeight]);this.verticalScale_=this.isYLogScale_?d3.scale.log(10):d3.scale.linear();this.verticalScale_.domain(this.xScale_.domain());this.verticalScale_.range([this.graphHeight,0]);this.horizontalScale_=d3.scale.linear();this.horizontalScale_.domain(this.yScale_.domain());this.horizontalScale_.range([0,this.graphWidth]);},get defaultGraphHeight(){return Math.max(20,10*this.data_.length);},get defaultGraphWidth(){return 100;},get barHeight(){return this.graphHeight/this.data.length;},drawBrush_(brushRectsSel){brushRectsSel.attr('x',0).attr('width',this.graphWidth).attr('y',d=>this.verticalScale_(d.max)).attr('height',d=>this.verticalScale_(d.min)-this.verticalScale_(d.max));},getDataPointAtChartPoint_(chartPoint){const flippedPoint={x:this.graphHeight-chartPoint.y,y:this.graphWidth-chartPoint.x};return super.getDataPointAtChartPoint_(flippedPoint);},drawXAxis_(xAxis){xAxis.attr('transform','translate(0,'+this.graphHeight+')').call(d3.svg.axis().scale(this.horizontalScale_).orient('bottom'));},get yAxisWidth(){return this.computeScaleTickWidth_(this.verticalScale_);},drawYAxis_(yAxis){const axisModifier=d3.svg.axis().scale(this.verticalScale_).orient('left');yAxis.call(axisModifier);},drawHoverValueBox_(rect){const rectHoverEvent=new tr.b.Event('rect-mouseenter');rectHoverEvent.rect=rect;this.dispatchEvent(rectHoverEvent);if(!this.enableHoverBox)return;const seriesKeys=[...this.seriesByKey_.keys()];const chartAreaSel=d3.select(this.chartAreaElement);chartAreaSel.selectAll('.hover').remove();let keyWidthPx=0;let keyHeightPx=0;let xWidthPx=0;let xHeightPx=0;if(seriesKeys.length>1){keyWidthPx=tr.ui.b.getSVGTextSize(this.chartAreaElement,rect.key).width;keyHeightPx=this.textHeightPx_;}
if(this.data.length>1){xWidthPx=tr.ui.b.getSVGTextSize(this.chartAreaElement,''+rect.datum.x).width;xHeightPx=this.textHeightPx_;}
const valueWidthPx=tr.ui.b.getSVGTextSize(this.chartAreaElement,rect.value).width;const valueHeightPx=this.textHeightPx_;const hoverWidthPx=Math.min(Math.max(keyWidthPx,xWidthPx,valueWidthPx)+5,Math.max(50,rect.widthPx));const hoverTopPx=rect.topPx+(rect.heightPx/2);const hoverLeftPx=rect.leftPx+rect.widthPx-hoverWidthPx;chartAreaSel.append('rect').attr('class','hover').attr('fill','white').attr('x',hoverLeftPx).attr('y',hoverTopPx).attr('width',hoverWidthPx).attr('height',keyHeightPx+xHeightPx+valueHeightPx);if(seriesKeys.length>1){chartAreaSel.append('text').attr('class','hover').attr('fill',rect.color).attr('x',hoverLeftPx+2).attr('y',hoverTopPx+keyHeightPx-3).text(rect.key);}
if(this.data.length>1){chartAreaSel.append('text').attr('class','hover').attr('fill',rect.color).attr('x',hoverLeftPx+2).attr('y',hoverTopPx+keyHeightPx+valueHeightPx-3).text(''+rect.datum.x);}
chartAreaSel.append('text').attr('class','hover').attr('fill',rect.color).attr('x',hoverLeftPx+2).attr('y',hoverTopPx+xHeightPx+keyHeightPx+valueHeightPx-3).text(rect.value);},flipRect_(rect){return{datum:rect.datum,index:rect.index,key:rect.key,value:rect.value,color:rect.color,topPx:this.graphHeight-rect.leftPx-rect.widthPx,leftPx:this.graphWidth-rect.topPx-rect.heightPx,widthPx:rect.heightPx,heightPx:rect.widthPx,underflow:rect.underflow,overflow:rect.overflow,};},drawRect_(rect,sel){super.drawRect_(this.flipRect_(rect),sel);},drawUnderflow_(rect,rectsSel){let sel=rectsSel.data([rect]);sel.enter().append('text').text('*').attr('fill',rect.color).attr('x',0).attr('y',this.graphHeight-rect.leftPx+
3+(rect.widthPx/2));sel.exit().remove();sel=rectsSel.data([rect]);sel.enter().append('rect').attr('fill','rgba(0, 0, 0, 0)').attr('x',0).attr('y',this.graphHeight-rect.leftPx-rect.widthPx).attr('width',10).attr('height',rect.widthPx).on('mouseenter',()=>this.drawHoverValueBox_(this.flipRect_(rect))).on('mouseleave',()=>this.clearHoverValueBox_(rect));sel.exit().remove();},drawOverflow_(rect,sel){sel=sel.data([rect]);sel.enter().append('text').text('*').attr('fill',rect.color).attr('x',this.graphWidth).attr('y',this.graphHeight-rect.leftPx+
3+(rect.widthPx/2));sel.exit().remove();}};return{BarChart,};});'use strict';tr.exportTo('tr.ui.b',function(){const NameBarChart=tr.ui.b.define('name-bar-chart',tr.ui.b.BarChart);const Y_AXIS_PADDING=2;NameBarChart.prototype={__proto__:tr.ui.b.BarChart.prototype,getDataPointAtChartPoint_(chartPoint){return{x:tr.ui.b.BarChart.prototype.getDataPointAtChartPoint_.call(this,chartPoint).x,y:parseInt(Math.floor((this.graphHeight-chartPoint.y)/this.barHeight))};},getXForDatum_(datum,index){return index;},get yAxisWidth(){if(this.data.length===0)return 0;return Y_AXIS_PADDING+tr.b.math.Statistics.max(this.data_,d=>tr.ui.b.getSVGTextSize(this,d.x).width);},get defaultGraphHeight(){return(3+this.textHeightPx_)*this.data.length;},updateYAxis_(yAxis){if(tr.ui.b.getSVGTextSize(this,'test').width===0){tr.b.requestAnimationFrame(()=>this.updateYAxis_(yAxis));return;}
yAxis.selectAll('*').remove();const nameTexts=yAxis.selectAll('text').data(this.data_);nameTexts.enter().append('text').attr('x',d=>-(tr.ui.b.getSVGTextSize(this,d.x).width+Y_AXIS_PADDING)).attr('y',(d,index)=>this.verticalScale_(index)).text(d=>d.x);nameTexts.exit().remove();let previousTop=undefined;for(const text of nameTexts[0]){const bbox=text.getBBox();if((previousTop===undefined)||(previousTop>(bbox.y+bbox.height))){previousTop=bbox.y;}else{text.style.opacity=0;}}}};return{NameBarChart,};});'use strict';const DEFAULT_COLOR_SCHEME=new tr.b.SinebowColorGenerator();class BreakdownTableSummaryRow{constructor(displayElement,histogramNames){this.displayElement_=displayElement;this.histogramNames_=histogramNames;this.keySpan_=undefined;}
get numberValue(){return undefined;}
get keySpan(){if(this.keySpan_===undefined){if(this.histogramNames_.length){this.keySpan_=document.createElement('tr-ui-a-analysis-link');this.keySpan_.setSelectionAndContent(this.histogramNames_,'Select All');}else{this.keySpan_='Sum';}}
return this.keySpan_;}
get displayElement(){return this.displayElement_;}
get stringPercent(){return'100%';}}
class BreakdownTableRow{constructor(name,value,color){this.name_=name;this.value=value;if(!this.isHistogram&&typeof value!=='number'){throw new Error('unsupported value '+value);}
this.tableSum_=undefined;this.keySpan_=undefined;this.color_=color;const hsl=this.color.toHSL();hsl.l*=0.85;this.highlightedColor_=tr.b.Color.fromHSL(hsl);}
get isHistogram(){return this.value instanceof tr.v.Histogram;}
get name(){return this.name_;}
get color(){return this.color_;}
get highlightedColor(){return this.highlightedColor_;}
get keySpan(){if(this.keySpan_===undefined){if(this.isHistogram){this.keySpan_=document.createElement('tr-ui-a-analysis-link');this.keySpan_.setSelectionAndContent([this.value.name],this.name);this.keySpan_.color=this.color;this.keySpan_.title=this.value.name;}else{this.keySpan_=document.createElement('span');this.keySpan_.innerText=this.name;this.keySpan_.style.color=this.color;}}
return this.keySpan_;}
get numberValue(){if(this.isHistogram)return this.value.sum;if(!isNaN(this.value)&&(this.value!==Infinity)&&(this.value!==-Infinity)&&(this.value>0))return this.value;return undefined;}
get stringValue(){if(this.numberValue===undefined)return this.value.toString();return this.numberValue.toString();}
set tableSum(s){this.tableSum_=s;}
get stringPercent(){if(this.tableSum_===undefined)return'';const num=this.numberValue;if(num===undefined)return'';return Math.floor(num*100.0/this.tableSum_)+'%';}
get displayElement(){if(this.numberValue===undefined)return this.value.toString();if(this.isHistogram){return tr.v.ui.createScalarSpan(this.numberValue,{unit:this.value.unit,});}
return this.numberValue;}
compare(other){if(this.numberValue===undefined){if(other.numberValue===undefined){return this.name.localeCompare(other.name);}
return 1;}
if(other.numberValue===undefined){return-1;}
if(this.numberValue===other.numberValue){return this.name.localeCompare(other.name);}
return other.numberValue-this.numberValue;}}
Polymer({is:'tr-v-ui-breakdown-span',created(){this.diagnostic_=undefined;this.chart_=new tr.ui.b.ColumnChart();this.chart_.graphHeight=130;this.chart_.isStacked=true;this.chart_.hideXAxis=true;this.chart_.hideLegend=true;this.chart_.enableHoverBox=false;this.chart_.addEventListener('rect-mouseenter',event=>this.onRectMouseEnter_(event));this.chart_.addEventListener('rect-mouseleave',event=>this.onRectMouseLeave_(event));},onRectMouseEnter_(event){for(const row of this.$.table.tableRows){if(row.name===event.rect.key){row.keySpan.parentNode.nextSibling.style.background=event.rect.color;row.keySpan.scrollIntoViewIfNeeded();}else{row.keySpan.parentNode.nextSibling.style.background='';}}},onRectMouseLeave_(event){for(const row of this.$.table.tableRows){row.keySpan.parentNode.nextSibling.style.background='';}},ready(){Polymer.dom(this.$.container).appendChild(this.chart_);this.$.table.zebra=true;this.$.table.showHeader=false;this.$.table.tableColumns=[{value:row=>row.keySpan,},{value:row=>row.displayElement,align:tr.ui.b.TableFormat.ColumnAlignment.RIGHT,},{value:row=>row.stringPercent,align:tr.ui.b.TableFormat.ColumnAlignment.RIGHT,},];},attached(){if(this.diagnostic_)this.updateContents_();},get diagnostic(){return this.diagnostic_;},set diagnostic(d){this.diagnostic_=d;if(this.isAttached)this.updateContents_();},updateContents_(){this.$.container.style.display='none';this.$.table.style.display='none';this.$.empty.style.display='block';if(!this.diagnostic_){this.chart_.data=[];return;}
let colorScheme=undefined;if(this.diagnostic.colorScheme===tr.v.d.COLOR_SCHEME_CHROME_USER_FRIENDLY_CATEGORY_DRIVER){colorScheme=(name)=>{let cat=name.split(' ');cat=cat[cat.length-1];return tr.e.chrome.ChromeUserFriendlyCategoryDriver.getColor(cat);};}else if(this.diagnostic.colorScheme!==undefined){colorScheme=(name)=>tr.b.FixedColorSchemeRegistry.lookUp(this.diagnostic.colorScheme).getColor(name);}else{colorScheme=(name)=>DEFAULT_COLOR_SCHEME.colorForKey(name);}
const tableRows=[];let tableSum=0;const histogramNames=[];let unit=undefined;for(const[name,value]of this.diagnostic){const row=new BreakdownTableRow(name,value,colorScheme(name));tableRows.push(row);if(row.numberValue!==undefined)tableSum+=row.numberValue;if(row.isHistogram){histogramNames.push(value.name);if(unit===undefined)unit=value.unit;}}
tableRows.sort((x,y)=>x.compare(y));if(tableSum>0){let summaryDisplayElement=tableSum;if(unit!==undefined){summaryDisplayElement=unit.format(tableSum);}
tableRows.unshift(new BreakdownTableSummaryRow(summaryDisplayElement,histogramNames));}
const chartData={x:0};for(const row of tableRows){if(row.numberValue===undefined)continue;row.tableSum=tableSum;chartData[row.name]=row.numberValue;const dataSeries=this.chart_.getDataSeries(row.name);dataSeries.color=row.color;dataSeries.highlightedColor=row.highlightedColor;}
if(tableRows.length>0){this.$.table.style.display='block';this.$.empty.style.display='none';this.$.table.tableRows=tableRows;this.$.table.rebuild();}
if(Object.keys(chartData).length>1){this.$.container.style.display='block';this.$.empty.style.display='none';this.chart_.data=[chartData];}}});'use strict';Polymer({is:'tr-v-ui-buildbot-info-span',ready(){this.diagnostic_=undefined;this.$.table.showHeader=false;this.$.table.tableColumns=[{value:row=>row[0]},{value:row=>row[1]}];},get diagnostic(){return this.diagnostic_;},set diagnostic(d){this.diagnostic_=d;this.updateContents_();},updateContents_(){if(this.diagnostic===undefined){this.$.table.tableRows=[];return;}
const rows=[];if(this.diagnostic.displayMasterName){rows.push(['master',this.diagnostic.displayMasterName]);}
if(this.diagnostic.buildbotMasterName){rows.push(['master',this.diagnostic.buildbotMasterName]);}
if(this.diagnostic.displayBotName){rows.push(['bot',this.diagnostic.displayBotName]);}
if(this.diagnostic.buildbotName){rows.push(['bot',this.diagnostic.buildbotName]);}
if(this.diagnostic.buildNumber){rows.push(['build number',this.diagnostic.buildNumber]);}
if(this.diagnostic.logUri){const anchor=document.createElement('a');anchor.href=this.diagnostic.logUri;anchor.innerText=this.diagnostic.logUri;rows.push(['log',anchor]);}
this.$.table.tableRows=rows;}});'use strict';Polymer({is:'tr-v-ui-collected-related-event-set-span',ready(){this.diagnostic_=undefined;},get diagnostic(){return this.diagnostic_;},set diagnostic(d){this.diagnostic_=d;this.updateContents_();},updateContents_(){Polymer.dom(this).textContent='';for(const[canonicalUrl,events]of this.diagnostic){const link=document.createElement('a');if(events.length===1){const event=tr.b.getOnlyElement(events);link.textContent=event.title+' '+
tr.b.Unit.byName.timeDurationInMs.format(event.duration);}else{link.textContent=events.length+' events';}
link.href=canonicalUrl;Polymer.dom(this).appendChild(link);Polymer.dom(this).appendChild(document.createElement('br'));}}});'use strict';Polymer({is:'tr-v-ui-device-info-span',ready(){this.diagnostic_=undefined;this.$.table.showHeader=false;this.$.table.tableColumns=[{value(row){return row[0];},},{value(row){return row[1];}}];},get diagnostic(){return this.diagnostic_;},set diagnostic(d){this.diagnostic_=d;this.updateContents_();},updateContents_(){if(this.diagnostic===undefined){this.$.table.tableRows=[];return;}
const rows=[];if(this.diagnostic.chromeVersion){rows.push(['chrome version',this.diagnostic.chromeVersion]);}
if(this.diagnostic.osName){rows.push(['OS name',this.diagnostic.osName]);}
if(this.diagnostic.osVersion){rows.push(['OS version',this.diagnostic.osVersion]);}
if(this.diagnostic.gpuInfo){rows.push(['GPU',JSON.stringify(this.diagnostic.gpuInfo)]);}
if(this.diagnostic.arch){rows.push(['arch',this.diagnostic.arch]);}
if(this.diagnostic.ram){rows.push(['ram',tr.b.Unit.byName.sizeInBytes.format(this.diagnostic.ram)]);}
this.$.table.tableRows=rows;}});'use strict';Polymer({is:'tr-v-ui-generic-diagnostic-span',ready(){this.diagnostic_=undefined;},get diagnostic(){return this.diagnostic_;},set diagnostic(d){this.diagnostic_=d;this.updateContents_();},updateContents_(){if(this.diagnostic===undefined){this.$.generic.object=undefined;return;}
this.$.generic.object=this.diagnostic.value;}});'use strict';Polymer({is:'tr-v-ui-merged-buildbot-info-span',ready(){this.diagnostic_=undefined;this.$.table.showHeader=false;this.$.table.tableColumns=[{value:row=>row[0]},{value:row=>row[1]},];},get diagnostic(){return this.diagnostic_;},set diagnostic(d){this.diagnostic_=d;this.updateContents_();},updateContents_(){if(this.diagnostic===undefined){this.$.table.tableRows=[];return;}
const rows=[];if(this.diagnostic.displayMasterNames.size){rows.push(['masters',Array.from(this.diagnostic.displayMasterNames).join(', ')]);}
if(this.diagnostic.displayBotNames.size){rows.push(['bots',Array.from(this.diagnostic.displayBotNames).join(', ')]);}
if(this.diagnostic.buildNumbers.size){rows.push(['builds',Array.from(this.diagnostic.buildNumbers).join(', ')]);}
for(const logUri of this.diagnostic.logUris){const anchor=document.createElement('a');anchor.href=logUri;anchor.innerText=logUri;rows.push(['log',anchor]);}
this.$.table.tableRows=rows;}});'use strict';Polymer({is:'tr-v-ui-merged-device-info-span',ready(){this.diagnostic_=undefined;this.$.table.showHeader=false;this.$.table.tableColumns=[{value:row=>row[0]},{value:row=>row[1]},];},get diagnostic(){return this.diagnostic_;},set diagnostic(d){this.diagnostic_=d;this.updateContents_();},updateContents_(){if(this.diagnostic===undefined){this.$.table.tableRows=[];return;}
const rows=[];if(this.diagnostic.chromeVersions.size){rows.push(['chrome versions',Array.from(this.diagnostic.chromeVersions).join(', ')]);}
if(this.diagnostic.osNames.size){rows.push(['os names',Array.from(this.diagnostic.osNames).join(', ')]);}
if(this.diagnostic.osVersions.size){rows.push(['os versions',Array.from(this.diagnostic.osVersions).join(', ')]);}
this.$.table.tableRows=rows;}});'use strict';Polymer({is:'tr-v-ui-merged-revision-info-span',ready(){this.diagnostic_=undefined;this.$.table.showHeader=false;this.$.table.tableColumns=[{value:row=>row[0]},{value:row=>row[1]},];},get diagnostic(){return this.diagnostic_;},set diagnostic(d){this.diagnostic_=d;this.updateContents_();},buildRow_(rows,label,revisions,host){if(revisions.length===0)return;const valueSpan=document.createElement('span');for(const revs of revisions){const anchor=document.createElement('a');anchor.innerText=revs[0];if(revs.length===1){anchor.href=host+'+/'+revs[0];}else{anchor.innerText+='..'+revs[1];anchor.href=host+'+log/'+revs[0]+'..'+revs[1];}
anchor.addEventListener('click',event=>{event.stopPropagation();});valueSpan.appendChild(anchor);valueSpan.appendChild(document.createTextNode(' '));}
rows.push([label,valueSpan]);},updateContents_(){if(this.diagnostic===undefined){this.$.table.tableRows=[];return;}
const rows=[];if(this.diagnostic.chromiumCommitPosition){const positions=Array.from(this.diagnostic.chromiumCommitPositions);positions.sort((x,y)=>x-y);rows.push(['chromiumCommitPositions',positions.join(', ')]);}
if(this.diagnostic.v8CommitPosition){const positions=Array.from(this.diagnostic.v8CommitPositions);rows.push(['v8CommitPositions',positions.join(', ')]);}
this.buildRow_(rows,'chromium',this.diagnostic.chromium,tr.v.ui.CHROMIUM_REVISION_HOST);this.buildRow_(rows,'v8',this.diagnostic.v8,tr.v.ui.V8_REVISION_HOST);this.buildRow_(rows,'catapult',this.diagnostic.catapult,tr.v.ui.CATAPULT_REVISION_HOST);this.buildRow_(rows,'angle',this.diagnostic.angle,tr.v.ui.ANGLE_REVISION_HOST);this.buildRow_(rows,'skia',this.diagnostic.skia,tr.v.ui.SKIA_REVISION_HOST);this.buildRow_(rows,'webrtc',this.diagnostic.webrtc,tr.v.ui.WEBRTC_REVISION_HOST);this.$.table.tableRows=rows;}});'use strict';Polymer({is:'tr-v-ui-merged-telemetry-info-span',ready(){this.diagnostic_=undefined;this.$.table.showHeader=false;this.$.table.tableColumns=[{value:row=>row[0]},{value:row=>row[1]},];},onShow_(){this.$.show.style.display='none';this.$.hide.style.display='block';this.$.table.style.display='table';},onHide_(){this.$.show.style.display='block';this.$.hide.style.display='none';this.$.table.style.display='none';},get diagnostic(){return this.diagnostic_;},set diagnostic(d){this.diagnostic_=d;this.updateContents_();},updateContents_(){if(this.diagnostic===undefined){this.$.table.tableRows=[];return;}
const rows=[];if(this.diagnostic.benchmarkNames.size){rows.push(['benchmark names',Array.from(this.diagnostic.benchmarkNames).join(', ')]);}
if(this.diagnostic.benchmarkStarts.length){rows.push(['benchmark starts',this.diagnostic.benchmarkStartStrings.join(', ')]);}
if(this.diagnostic.storyDisplayNames.size){rows.push(['stories',Array.from(this.diagnostic.storyDisplayNames).join(', ')]);}
if(this.diagnostic.storysetRepeatCounters.size){rows.push(['storyset repeats',Array.from(this.diagnostic.storysetRepeatCounters).join(', ')]);}
if(this.diagnostic.labels.size){rows.push(['label',Array.from(this.diagnostic.labels).join(', ')]);}
if(this.diagnostic.storyGroupingKeys.size){const gov=document.createElement('tr-ui-a-generic-object-view');const obj={};for(const[key,value]of this.diagnostic.storyGroupingKeys){obj[key]=Array.from(value);}
gov.object=obj;rows.push(['grouping keys',gov]);}
this.$.table.tableRows=rows;}});'use strict';Polymer({is:'tr-v-ui-related-event-set-span',ready(){this.diagnostic_=undefined;},get diagnostic(){return this.diagnostic_;},set diagnostic(d){this.diagnostic_=d;this.updateContents_();},updateContents_(){Polymer.dom(this).textContent='';const events=new tr.model.EventSet([...this.diagnostic]);const link=document.createElement('tr-ui-a-analysis-link');let label=events.length+' events';if(events.length===1){const event=tr.b.getOnlyElement(events);label=event.title+' ';label+=tr.b.Unit.byName.timeDurationInMs.format(event.duration);}
link.setSelectionAndContent(events,label);Polymer.dom(this).appendChild(link);}});'use strict';Polymer({is:'tr-v-ui-related-histogram-map-span',ready(){this.diagnostic_=undefined;this.$.table.showHeader=false;this.$.table.tableColumns=[{value:row=>row[0]},{value:row=>row[1]},];},get diagnostic(){return this.diagnostic_;},set diagnostic(d){this.diagnostic_=d;this.updateContents_();},updateContents_(){Polymer.dom(this).textContent='';const rows=[];const histogramNames=new Set();for(const[name,hist]of this.diagnostic){histogramNames.add(hist.name);}
if(histogramNames.size>1){const link=document.createElement('tr-ui-a-analysis-link');link.setSelectionAndContent(Array.from(histogramNames),'Select All');rows.push([link,'']);}
for(const[name,hist]of this.diagnostic){const link=document.createElement('tr-ui-a-analysis-link');link.setSelectionAndContent([hist.name],name);const scalarSpan=tr.v.ui.createScalarSpan(hist);rows.push([link,scalarSpan]);}
this.$.table.tableRows=rows;this.$.table.rebuild();}});'use strict';Polymer({is:'tr-v-ui-related-histogram-set-span',ready(){this.diagnostic_=undefined;},get diagnostic(){return this.diagnostic_;},set diagnostic(d){this.diagnostic_=d;this.updateContents_();},addLink_(selection,content){const link=document.createElement('tr-ui-a-analysis-link');link.setSelectionAndContent(selection,content);Polymer.dom(this).appendChild(link);Polymer.dom(this).appendChild(document.createElement('br'));},updateContents_(){Polymer.dom(this).textContent='';const histogramNames=new Set();for(const hist of this.diagnostic){histogramNames.add(hist.name);}
if(histogramNames.size>1){this.addLink_(Array.from(histogramNames),'Select All');}
for(const hist of this.diagnostic){this.addLink_([hist.name],hist.name);}}});'use strict';tr.exportTo('tr.v.ui',function(){const CHROMIUM_REVISION_HOST='https://chromium.googlesource.com/chromium/src/';const V8_REVISION_HOST='https://chromium.googlesource.com/v8/v8.git/';const CATAPULT_REVISION_HOST='https://chromium.googlesource.com/external/github.com/catapult-project/catapult.git/';const ANGLE_REVISION_HOST='https://chromium.googlesource.com/angle/angle/';const SKIA_REVISION_HOST='https://chromium.googlesource.com/skia/';const WEBRTC_REVISION_HOST='https://chromium.googlesource.com/external/webrtc/';Polymer({is:'tr-v-ui-revision-info-span',ready(){this.diagnostic_=undefined;this.$.table.showHeader=false;this.$.table.tableColumns=[{value:row=>row[0]},{value:row=>row[1]},];},get diagnostic(){return this.diagnostic_;},set diagnostic(d){this.diagnostic_=d;this.updateContents_();},buildRow_(rows,label,revisions,host){if(revisions.length===0)return;const anchor=document.createElement('a');anchor.innerText=revisions[0];if(revisions.length===1){anchor.href=host+'+/'+revisions[0];}else{anchor.innerText+='..'+revisions[1];anchor.href=host+'+log/'+revisions[0]+'..'+revisions[1];}
anchor.addEventListener('click',event=>{event.stopPropagation();});rows.push([label,anchor]);},updateContents_(){if(this.diagnostic===undefined){this.$.table.tableRows=[];return;}
const rows=[];if(this.diagnostic.chromiumCommitPosition){rows.push(['chromiumCommitPosition',this.diagnostic.chromiumCommitPosition]);}
if(this.diagnostic.v8CommitPosition){rows.push(['v8CommitPosition',this.diagnostic.v8CommitPosition]);}
this.buildRow_(rows,'chromium',this.diagnostic.chromium,CHROMIUM_REVISION_HOST);this.buildRow_(rows,'v8',this.diagnostic.v8,V8_REVISION_HOST);this.buildRow_(rows,'catapult',this.diagnostic.catapult,CATAPULT_REVISION_HOST);this.buildRow_(rows,'angle',this.diagnostic.angle,ANGLE_REVISION_HOST);this.buildRow_(rows,'skia',this.diagnostic.skia,SKIA_REVISION_HOST);this.buildRow_(rows,'webrtc',this.diagnostic.webrtc,WEBRTC_REVISION_HOST);this.$.table.tableRows=rows;}});return{CHROMIUM_REVISION_HOST,V8_REVISION_HOST,CATAPULT_REVISION_HOST,ANGLE_REVISION_HOST,SKIA_REVISION_HOST,WEBRTC_REVISION_HOST,};});'use strict';Polymer({is:'tr-v-ui-scalar-diagnostic-span',ready(){this.diagnostic_=undefined;},get diagnostic(){return this.diagnostic_;},set diagnostic(d){this.diagnostic_=d;this.updateContents_();},updateContents_(){this.$.scalar.setValueAndUnit(this.diagnostic.value.value,this.diagnostic.value.unit);}});'use strict';Polymer({is:'tr-v-ui-telemetry-info-span',ready(){this.diagnostic_=undefined;this.$.table.showHeader=false;this.$.table.tableColumns=[{value:row=>row[0]},{value:row=>row[1]},];},get diagnostic(){return this.diagnostic_;},set diagnostic(d){this.diagnostic_=d;this.updateContents_();},updateContents_(){if(this.diagnostic===undefined){this.$.table.tableRows=[];return;}
const rows=[];if(this.diagnostic.benchmarkName){rows.push(['benchmark name',this.diagnostic.benchmarkName]);}
if(this.diagnostic.benchmarkStart){rows.push(['benchmark start',this.diagnostic.benchmarkStartString]);}
if(this.diagnostic.storyDisplayName){rows.push(['story',this.diagnostic.storyDisplayName]);}
if(this.diagnostic.storysetRepeatCounter!==undefined){rows.push(['storyset repeat',this.diagnostic.storysetRepeatCounter]);}
if(this.diagnostic.label){rows.push(['label',this.diagnostic.label]);}
if(this.diagnostic.storyGroupingKeys.size){const gov=document.createElement('tr-ui-a-generic-object-view');const obj={};for(const[key,value]of this.diagnostic.storyGroupingKeys){obj[key]=value;}
gov.object=obj;rows.push(['grouping keys',gov]);}
this.$.table.tableRows=rows;}});'use strict';Polymer({is:'tr-v-ui-unmergeable-diagnostic-set-span',ready(){this.diagnostic_=undefined;},get diagnostic(){return this.diagnostic_;},set diagnostic(d){this.diagnostic_=d;this.updateContents_();},updateContents_(){Polymer.dom(this).textContent='';for(const diagnostic of this.diagnostic){Polymer.dom(this).appendChild(tr.v.ui.createDiagnosticSpan(diagnostic));Polymer.dom(this).appendChild(document.createElement('br'));}}});'use strict';tr.exportTo('tr.v.ui',function(){function findElementNameForDiagnostic(diagnostic){let typeInfo=undefined;let curProto=diagnostic.constructor.prototype;while(curProto){typeInfo=tr.v.d.Diagnostic.findTypeInfo(curProto.constructor);if(typeInfo&&typeInfo.metadata.elementName)break;typeInfo=undefined;curProto=curProto.__proto__;}
if(typeInfo===undefined){throw new Error(diagnostic.constructor.name+' or a base class must have a registered elementName');}
const tagName=typeInfo.metadata.elementName;if(tr.ui.b.isUnknownElementName(tagName)){throw new Error('Element not registered: '+tagName);}
return tagName;}
function createDiagnosticSpan(diagnostic){const tagName=findElementNameForDiagnostic(diagnostic);const span=document.createElement(tagName);span.diagnostic=diagnostic;return span;}
return{createDiagnosticSpan,};});'use strict';Polymer({is:'tr-v-ui-diagnostic-map-table',created(){this.diagnosticMaps_=undefined;},set diagnosticMaps(maps){this.diagnosticMaps_=maps;this.updateContents_();},updateContents_(){if(this.diagnosticMaps_===undefined||this.diagnosticMaps_.length===0){this.$.table.tableRows=[];this.$.table.tableColumns=[];return;}
const columnTitles=new Set();for(const map of this.diagnosticMaps_){for(const[name,diagnostic]of map){if(diagnostic instanceof tr.v.d.UnmergeableDiagnosticSet)continue;if(diagnostic instanceof tr.v.d.CollectedRelatedEventSet)continue;if(diagnostic instanceof tr.v.d.GroupingPath)continue;columnTitles.add(name);}}
const columns=[];function makeColumn(title){return{title,value(map){const diagnostic=map.get(title);if(!diagnostic)return'';return tr.v.ui.createDiagnosticSpan(diagnostic);}};}
for(const title of columnTitles){columns.push(makeColumn(title));}
this.$.table.tableColumns=columns;this.$.table.tableRows=this.diagnosticMaps_;this.$.table.rebuild();}});'use strict';tr.exportTo('tr.b',function(){class Serializable{constructor(){Object.defineProperty(this,'properties_',{configurable:false,enumerable:false,value:new Map(),});}
define(name,initialValue){if(this[name]!==undefined){throw new Error(`"${name}" is already defined.`);}
if(name[name.length-1]==='_'){throw new Error(`"${name}" cannot end with an underscore.`);}
this.properties_.set(name,initialValue);Object.defineProperty(this,name,{configurable:false,enumerable:true,get:()=>this.properties_.get(name),set:value=>this.setProperty_(name,value),});}
setProperty_(name,value){this.properties_.set(name,value);}
clone(){return Serializable.fromDict(this.asDict());}
asDict(){function visit(obj){if(obj instanceof Serializable)return obj.asDict();if(obj instanceof Set)return Array.from(obj);if(obj instanceof Array)return obj.map(visit);if(!(obj instanceof Map))return obj;const result={};for(const[name,value]of obj){result[name]=visit(value);}
return result;}
const dict={type:this.constructor.name};for(const[name,value]of this.properties_){dict[name.replace(/_$/,'')]=visit(value);}
return dict;}
static fromDict(dict){function visit(d){if(d instanceof Array)return d.map(visit);if(!(d instanceof Object))return d;if(typeof d.type==='string')return Serializable.fromDict(d);const result=new Map();for(const[name,value]of Object.entries(d)){result.set(name,visit(value));}
return result;}
const typeInfo=Serializable.findTypeInfoWithName(dict.type);const result=new typeInfo.constructor();for(const[name,value]of Object.entries(dict)){result[name]=visit(value);}
return result;}}
const options=new tr.b.ExtensionRegistryOptions(tr.b.BASIC_REGISTRY_MODE);options.defaultMetadata={};options.mandatoryBaseClass=Serializable;tr.b.decorateExtensionRegistry(Serializable,options);return{Serializable,};});'use strict';tr.exportTo('tr.b',function(){class ViewState extends tr.b.Serializable{constructor(){super();tr.b.EventTarget.decorate(this);}
setProperty_(name,value){this.update(new Map([[name,value]]));}
async updateFromViewState(other){await this.update(other.properties_);}
async update(delta){if(!(delta instanceof Map))delta=new Map(Object.entries(delta));const actualDelta={};for(const[name,current]of delta){const previous=this[name];if(previous===current)continue;actualDelta[name]={previous,current};tr.b.Serializable.prototype.setProperty_.call(this,name,current);}
if(Object.keys(actualDelta).length===0)return;await tr.b.dispatchSimpleEventAsync(this,this.updateEventName_,{delta:actualDelta});}
get updateEventName_(){return this.constructor.name+'.update';}
addUpdateListener(listener){this.addEventListener(this.updateEventName_,listener);}
removeUpdateListener(listener){this.removeEventListener(this.updateEventName_,listener);}}
return{ViewState,};});'use strict';tr.exportTo('tr.v.ui',function(){class HistogramSetViewState extends tr.b.ViewState{constructor(){super();this.define('searchQuery','');this.define('referenceDisplayLabel','');this.define('displayStatisticName','');this.define('showAll',false);this.define('groupings',[]);this.define('sortColumnIndex',0);this.define('sortDescending',false);this.define('constrainNameColumn',true);this.define('tableRowStates',new Map());}}
tr.b.ViewState.register(HistogramSetViewState);class HistogramSetTableRowState extends tr.b.ViewState{constructor(){super();this.define('isExpanded',false);this.define('isOverviewed',false);this.define('cells',new Map());this.define('subRows',new Map());}
asCompactDict(){const result={};if(this.isExpanded)result.e='1';if(this.isOverviewed)result.o='1';const cells={};for(const[name,cell]of this.cells){const cellDict=cell.asCompactDict();if(cellDict===undefined)continue;cells[name]=cellDict;}
if(Object.keys(cells).length>0)result.c=cells;const subRows={};for(const[name,row]of this.subRows){const rowDict=row.asCompactDict();if(rowDict===undefined)continue;subRows[name]=rowDict;}
if(Object.keys(subRows).length>0)result.r=subRows;if(Object.keys(result).length===0)return undefined;return result;}
async updateFromCompactDict(dict){await this.update({isExpanded:dict.e==='1',isOverviewed:dict.o==='1',});for(const[name,cellDict]of Object.entries(dict.c||{})){const cell=this.cells.get(name);if(cell===undefined)continue;await cell.updateFromCompactDict(cellDict);}
for(const[name,subRowDict]of Object.entries(dict.r||{})){const subRow=this.subRows.get(name);if(subRow===undefined)continue;await subRow.updateFromCompactDict(subRowDict);}}*walk(){yield this;for(const row of this.subRows.values())yield*row.walk();}
static*walkAll(rootRows){for(const rootRow of rootRows)yield*rootRow.walk();}}
tr.b.ViewState.register(HistogramSetTableRowState);class HistogramSetTableCellState extends tr.b.ViewState{constructor(){super();this.define('isOpen',false);this.define('brushedBinRange',new tr.b.math.Range());this.define('mergeSampleDiagnostics',true);}
asCompactDict(){const result={};if(this.isOpen)result.o='1';if(!this.mergeSampleDiagnostics)result.m='0';if(!this.brushedBinRange.isEmpty){result.b=this.brushedBinRange.min+'_'+this.brushedBinRange.max;}
if(Object.keys(result).length===0)return undefined;return result;}
async updateFromCompactDict(dict){let binRange=this.brushedBinRange;if(dict.b){let[bMin,bMax]=dict.b.split('_');bMin=parseInt(bMin);bMax=parseInt(bMax);if(bMin!==binRange.min||bMax!==binRange.max){binRange=tr.b.math.Range.fromExplicitRange(bMin,bMax);}}
await this.update({isOpen:dict.o==='1',brushedBinRange:binRange,mergeSampleDiagnostics:dict.m!=='0',});}}
tr.b.ViewState.register(HistogramSetTableCellState);return{HistogramSetTableCellState,HistogramSetTableRowState,HistogramSetViewState,};});'use strict';Polymer({is:'tr-v-ui-scalar-map-table',created(){this.scalarMap_=new Map();this.significance_=new Map();},ready(){this.$.table.showHeader=false;this.$.table.tableColumns=[{value(row){return row.name;}},{value(row){const span=tr.v.ui.createScalarSpan(row.value);if(row.significance!==undefined){span.significance=row.significance;}else if(row.anyRowsHaveSignificance){span.style.marginRight='18px';}
span.style.whiteSpace='nowrap';return span;}}];},get scalarMap(){return this.scalarMap_;},set scalarMap(map){this.scalarMap_=map;this.updateContents_();},setSignificanceForKey(key,significance){this.significance_.set(key,significance);this.updateContents_();},updateContents_(){const rows=[];for(const[key,scalar]of this.scalarMap){rows.push({name:key,value:scalar,significance:this.significance_.get(key),anyRowsHaveSignificance:(this.significance_.size>0)});}
this.$.table.tableRows=rows;this.$.table.rebuild();}});'use strict';tr.exportTo('tr.v.ui',function(){const DEFAULT_BAR_HEIGHT_PX=5;const TRUNCATE_BIN_MARGIN=0.15;const IGNORE_DELTA_STATISTICS_NAMES=[`${tr.v.DELTA}min`,`%${tr.v.DELTA}min`,`${tr.v.DELTA}max`,`%${tr.v.DELTA}max`,`${tr.v.DELTA}sum`,`%${tr.v.DELTA}sum`,`${tr.v.DELTA}count`,`%${tr.v.DELTA}count`,];Polymer({is:'tr-v-ui-histogram-span',created(){this.viewStateListener_=this.onViewStateUpdate_.bind(this);this.viewState=new tr.v.ui.HistogramSetTableCellState();this.histogram_=undefined;this.referenceHistogram_=undefined;this.graphWidth_=undefined;this.graphHeight_=undefined;this.mouseDownBin_=undefined;this.prevBrushedBinRange_=new tr.b.math.Range();this.canMergeSampleDiagnostics_=true;},get viewState(){return this.viewState_;},set viewState(vs){if(this.viewState){this.viewState.removeUpdateListener(this.viewStateListener_);}
this.viewState_=vs;this.viewState.addUpdateListener(this.viewStateListener_);if(this.isAttached)this.updateContents_();},onViewStateUpdate_(event){if(event.delta.brushedBinRange){this.brushedBinRange=this.viewState.brushedBinRange;}
if(event.delta.mergeSampleDiagnostics){this.mergeSampleDiagnostics=this.canMergeSampleDiagnostics&&this.viewState.mergeSampleDiagnostics;}},ready(){this.$.drag_handle.target=this.$.container;this.$.drag_handle.addEventListener('drag-handle-resize',this.onResize_.bind(this));},attached(){if(this.histogram_!==undefined)this.updateContents_();},get canMergeSampleDiagnostics(){return this.canMergeSampleDiagnostics_;},set canMergeSampleDiagnostics(merge){this.canMergeSampleDiagnostics_=merge;this.$.merge_sample_diagnostics_container.style.display=(merge?'':'none');},onResize_(event){event.stopPropagation();let heightPx=parseInt(this.$.container.style.height);if(heightPx<this.defaultGraphHeight){heightPx=this.defaultGraphHeight;this.$.container.style.height=this.defaultGraphHeight+'px';}
this.chart_.graphHeight=heightPx-(this.chart_.margin.top+
this.chart_.margin.bottom);},get graphWidth(){return this.graphWidth_||this.defaultGraphWidth;},set graphWidth(width){this.graphWidth_=width;},get graphHeight(){return this.graphHeight_||this.defaultGraphHeight;},set graphHeight(height){this.graphHeight_=height;},get barHeight(){return this.chart_.barHeight;},set barHeight(px){this.graphHeight=this.computeChartHeight_(px);},computeChartHeight_(barHeightPx){return(this.chart_.margin.top+
this.chart_.margin.bottom+
(barHeightPx*this.histogram.allBins.length));},get defaultGraphHeight(){if(this.histogram&&this.histogram.allBins.length===1){return 150;}
return this.computeChartHeight_(DEFAULT_BAR_HEIGHT_PX);},get defaultGraphWidth(){if(this.histogram.allBins.length===1){return 100;}
return 300;},get brushedBins(){const bins=[];if(this.histogram&&!this.brushedBinRange.isEmpty){for(let i=this.brushedBinRange.min;i<this.brushedBinRange.max;++i){bins.push(this.histogram.allBins[i]);}}
return bins;},get brushedBinRange(){return this.viewState.brushedBinRange;},set brushedBinRange(r){if(this.chart_===undefined)return;const current=this.brushedBinRange;if(r.min===current.min&&r.max===current.max)return;this.chart_.brushedRange=r;this.viewState.brushedBinRange=r;this.updateDiagnostics_();},get mergeSampleDiagnostics(){return this.canMergeSampleDiagnostics&&this.$.merge_sample_diagnostics.checked;},set mergeSampleDiagnostics(m){this.$.merge_sample_diagnostics.checked=m;},updateBrushedRange_(binIndex){const brushedBinRange=new tr.b.math.Range();brushedBinRange.addValue(tr.b.math.clamp(this.mouseDownBinIndex_,0,this.histogram.allBins.length-1));brushedBinRange.addValue(tr.b.math.clamp(binIndex,0,this.histogram.allBins.length-1));brushedBinRange.max+=1;this.brushedBinRange=brushedBinRange;},onMouseDown_(chartEvent){chartEvent.stopPropagation();if(!this.histogram){return;}
this.prevBrushedBinRange_=this.brushedBinRange;this.mouseDownBinIndex_=chartEvent.y;this.updateBrushedRange_(chartEvent.y);},onMouseMove_(chartEvent){chartEvent.stopPropagation();if(!this.histogram){return;}
this.updateBrushedRange_(chartEvent.y);},onMouseUp_(chartEvent){chartEvent.stopPropagation();if(!this.histogram){return;}
this.updateBrushedRange_(chartEvent.y);if(this.prevBrushedBinRange_.range===1&&this.brushedBinRange.range===1&&this.prevBrushedBinRange_.min===this.brushedBinRange.min){tr.b.Timing.instant('histogram-span','clearBrushedBins');this.brushedBinRange=new tr.b.math.Range();}else{tr.b.Timing.instant('histogram-span','brushBins');}
this.mouseDownBinIndex_=undefined;},updateDiagnostics_(){let maps=[];for(const bin of this.brushedBins){for(const map of bin.diagnosticMaps){maps.push(map);}}
if(maps.length===0){this.$.sample_diagnostics_container.style.display='none';return;}
if(this.mergeSampleDiagnostics!==this.viewState.mergeSampleDiagnostics){tr.b.Timing.instant('histogram-span',(this.mergeSampleDiagnostics?'merge':'split')+'SampleDiagnostics');this.viewState.mergeSampleDiagnostics=this.mergeSampleDiagnostics;}
if(this.mergeSampleDiagnostics){const merged=new tr.v.d.DiagnosticMap();for(const map of maps){merged.addDiagnostics(map);}
maps=[merged];}
this.$.sample_diagnostics_container.style.display='block';this.$.sample_diagnostics.diagnosticMaps=maps;},get histogram(){return this.histogram_;},set histogram(histogram){if(histogram===this.histogram_)return;this.histogram_=histogram;if(this.isAttached)this.updateContents_();},get referenceHistogram(){return this.referenceHistogram_;},set referenceHistogram(histogram){if(histogram===this.referenceHistogram_){return;}
this.referenceHistogram_=histogram;if(this.histogram)this.updateContents_();},getDeltaScalars_(statNames,scalarMap){if(!this.histogram.canCompare(this.referenceHistogram))return;const mwu=tr.b.math.Statistics.mwu(this.histogram.sampleValues,this.referenceHistogram.sampleValues);for(const deltaStatName of tr.v.Histogram.getDeltaStatisticsNames(statNames)){if(IGNORE_DELTA_STATISTICS_NAMES.includes(deltaStatName))continue;const scalar=this.histogram.getStatisticScalar(deltaStatName,this.referenceHistogram,mwu);if(scalar===undefined)continue;scalarMap.set(deltaStatName,scalar);}
if(this.histogram.unit.improvementDirection!==tr.b.ImprovementDirection.DONT_CARE){this.$.stats.setSignificanceForKey(`${tr.v.DELTA}avg`,mwu.significance);}},set isYLogScale(logScale){this.chart_.isYLogScale=logScale;},updateContents_(){this.$.chart.style.display='none';this.$.drag_handle.style.display='none';this.$.sample_diagnostics_container.style.display='none';this.$.container.style.justifyContent='';this.brushedBinRange=new tr.b.math.Range();while(Polymer.dom(this.$.chart).lastChild){Polymer.dom(this.$.chart).removeChild(Polymer.dom(this.$.chart).lastChild);}
if(!this.histogram)return;this.$.container.style.display='';const scalarMap=new Map();this.getDeltaScalars_(this.histogram.statisticsNames,scalarMap);for(const[name,scalar]of this.histogram.statisticsScalars){scalarMap.set(name,scalar);}
this.$.stats.scalarMap=scalarMap;if(this.histogram.diagnostics.size>0){const diagnosticMap=new tr.v.d.DiagnosticMap();for(const[key,diagnostic]of this.histogram.diagnostics){if(key!==tr.v.d.MERGED_FROM_DIAGNOSTIC_KEY&&key!==tr.v.d.MERGED_TO_DIAGNOSTIC_KEY){diagnosticMap.set(key,diagnostic);}}
this.$.histogram_diagnostics.diagnosticMaps=[diagnosticMap];this.$.histogram_diagnostics.style.display='block';}else{this.$.histogram_diagnostics.style.display='none';}
if(this.histogram.numValues<=1){this.brushedBinRange=tr.b.math.Range.fromExplicitRange(0,this.histogram.allBins.length);this.updateDiagnostics_();this.$.container.style.justifyContent='flex-end';return;}
this.$.chart.style.display='block';this.$.drag_handle.style.display='block';if(this.histogram.allBins.length===1){if(this.histogram.min!==this.histogram.max){this.chart_=new tr.ui.b.BoxChart();Polymer.dom(this.$.chart).appendChild(this.chart_);this.chart_.graphWidth=this.graphWidth;this.chart_.graphHeight=this.graphHeight;this.chart_.hideXAxis=true;this.chart_.data=[{x:'',color:'blue',percentile_0:this.histogram.running.min,percentile_25:this.histogram.getApproximatePercentile(0.25),percentile_50:this.histogram.getApproximatePercentile(0.5),percentile_75:this.histogram.getApproximatePercentile(0.75),percentile_100:this.histogram.running.max,}];}
this.brushedBinRange=tr.b.math.Range.fromExplicitRange(0,this.histogram.allBins.length);this.updateDiagnostics_();return;}
this.chart_=new tr.ui.b.NameBarChart();Polymer.dom(this.$.chart).appendChild(this.chart_);this.chart_.graphWidth=this.graphWidth;this.chart_.graphHeight=this.graphHeight;this.chart_.addEventListener('item-mousedown',this.onMouseDown_.bind(this));this.chart_.addEventListener('item-mousemove',this.onMouseMove_.bind(this));this.chart_.addEventListener('item-mouseup',this.onMouseUp_.bind(this));this.chart_.hideLegend=true;this.chart_.getDataSeries('y').color='blue';this.chart_.xAxisLabel='#';this.chart_.brushedRange=this.brushedBinRange;this.updateDiagnostics_();const chartData=[];const binCounts=[];for(const bin of this.histogram.allBins){let x=bin.range.min;if(x===-Number.MAX_VALUE){x='<'+new tr.b.Scalar(this.histogram.unit,bin.range.max).toString();}else{x=new tr.b.Scalar(this.histogram.unit,x).toString();}
chartData.push({x,y:bin.count});binCounts.push(bin.count);}
binCounts.sort((x,y)=>y-x);const dataRange=tr.b.math.Range.fromExplicitRange(0,binCounts[0]);if(binCounts[1]>0&&binCounts[0]>(binCounts[1]*2)){dataRange.max=binCounts[1]*(1+TRUNCATE_BIN_MARGIN);}
if(binCounts[2]>0&&binCounts[1]>(binCounts[2]*2)){dataRange.max=binCounts[2]*(1+TRUNCATE_BIN_MARGIN);}
this.chart_.overrideDataRange=dataRange;this.chart_.data=chartData;}});});'use strict';tr.exportTo('tr.ui.analysis',function(){const EVENT_FIELD=[{key:'start',label:'Start'},{key:'cpuDuration',label:'CPU Duration'},{key:'duration',label:'Duration'},{key:'cpuSelfTime',label:'CPU Self Time'},{key:'selfTime',label:'Self Time'}];function buildDiagnostics_(slice){const diagnostics={};for(const item of EVENT_FIELD){const fieldName=item.key;if(slice[fieldName]===undefined)continue;diagnostics[fieldName]=new tr.v.d.Scalar(new tr.b.Scalar(tr.b.Unit.byName.timeDurationInMs,slice[fieldName]));}
diagnostics.args=new tr.v.d.Generic(slice.args);diagnostics.event=new tr.v.d.RelatedEventSet(slice);return diagnostics;}
Polymer({is:'tr-ui-a-multi-event-sub-view',behaviors:[tr.ui.analysis.AnalysisSubView],created(){this.currentSelection_=undefined;this.eventsHaveDuration_=true;this.eventsHaveSubRows_=true;},ready(){this.$.radioPicker.style.display='none';this.$.radioPicker.items=EVENT_FIELD;this.$.radioPicker.select('cpuSelfTime');this.$.radioPicker.addEventListener('change',()=>{if(this.isAttached)this.updateContents_();});this.$.histogramSpan.graphWidth=400;this.$.histogramSpan.canMergeSampleDiagnostics=false;this.$.histogramContainer.style.display='none';},attached(){if(this.currentSelection_!==undefined)this.updateContents_();},set selection(selection){if(selection.length<=1){throw new Error('Only supports multiple items');}
this.setSelectionWithoutErrorChecks(selection);},get selection(){return this.currentSelection_;},setSelectionWithoutErrorChecks(selection){this.currentSelection_=selection;if(this.isAttached)this.updateContents_();},get eventsHaveDuration(){return this.eventsHaveDuration_;},set eventsHaveDuration(eventsHaveDuration){this.eventsHaveDuration_=eventsHaveDuration;if(this.isAttached)this.updateContents_();},get eventsHaveSubRows(){return this.eventsHaveSubRows_;},set eventsHaveSubRows(eventsHaveSubRows){this.eventsHaveSubRows_=eventsHaveSubRows;if(this.isAttached)this.updateContents_();},buildHistogram_(selectedKey){let leftBoundary=Number.MAX_VALUE;let rightBoundary=tr.b.math.Statistics.percentile(this.currentSelection_,0.95,function(value){leftBoundary=Math.min(leftBoundary,value[selectedKey]);return value[selectedKey];});if(leftBoundary===rightBoundary)rightBoundary+=1;const histogram=new tr.v.Histogram('',tr.b.Unit.byName.timeDurationInMs,tr.v.HistogramBinBoundaries.createLinear(leftBoundary,rightBoundary,Math.ceil(Math.sqrt(this.currentSelection_.length))));histogram.customizeSummaryOptions({sum:false});for(const slice of this.currentSelection_){histogram.addSample(slice[selectedKey],buildDiagnostics_(slice));}
return histogram;},updateContents_(){const selection=this.currentSelection_;if(!selection)return;const eventsByTitle=selection.getEventsOrganizedByTitle();const numTitles=Object.keys(eventsByTitle).length;this.$.eventSummaryTable.configure({showTotals:numTitles>1,eventsByTitle,eventsHaveDuration:this.eventsHaveDuration_,eventsHaveSubRows:this.eventsHaveSubRows_});this.$.selectionSummaryTable.selection=this.currentSelection_;if(numTitles===1){this.$.radioPicker.style.display='block';this.$.histogramContainer.style.display='flex';this.$.histogramSpan.histogram=this.buildHistogram_(this.$.radioPicker.selectedKey);if(this.$.histogramSpan.histogram.numValues===0){this.$.histogramContainer.style.display='none';}}else{this.$.radioPicker.style.display='none';this.$.histogramContainer.style.display='none';}}});return{};});'use strict';tr.exportTo('tr.ui.analysis',function(){const FLOW_IN=0x1;const FLOW_OUT=0x2;const FLOW_IN_OUT=FLOW_IN|FLOW_OUT;function FlowClassifier(){this.numEvents_=0;this.eventsByGUID_={};}
FlowClassifier.prototype={getFS_(event){let fs=this.eventsByGUID_[event.guid];if(fs===undefined){this.numEvents_++;fs={state:0,event};this.eventsByGUID_[event.guid]=fs;}
return fs;},addInFlow(event){const fs=this.getFS_(event);fs.state|=FLOW_IN;return event;},addOutFlow(event){const fs=this.getFS_(event);fs.state|=FLOW_OUT;return event;},hasEvents(){return this.numEvents_>0;},get inFlowEvents(){const selection=new tr.model.EventSet();for(const guid in this.eventsByGUID_){const fs=this.eventsByGUID_[guid];if(fs.state===FLOW_IN){selection.push(fs.event);}}
return selection;},get outFlowEvents(){const selection=new tr.model.EventSet();for(const guid in this.eventsByGUID_){const fs=this.eventsByGUID_[guid];if(fs.state===FLOW_OUT){selection.push(fs.event);}}
return selection;},get internalFlowEvents(){const selection=new tr.model.EventSet();for(const guid in this.eventsByGUID_){const fs=this.eventsByGUID_[guid];if(fs.state===FLOW_IN_OUT){selection.push(fs.event);}}
return selection;}};return{FlowClassifier,};});'use strict';function*getEventInFlowEvents(event){if(!event.inFlowEvents)return;yield*event.inFlowEvents;}
function*getEventOutFlowEvents(event){if(!event.outFlowEvents)return;yield*event.outFlowEvents;}
function*getEventAncestors(event){if(!event.enumerateAllAncestors)return;yield*event.enumerateAllAncestors();}
function*getEventDescendents(event){if(!event.enumerateAllDescendents)return;yield*event.enumerateAllDescendents();}
Polymer({is:'tr-ui-a-related-events',ready(){this.eventGroups_=[];this.cancelFunctions_=[];this.$.table.tableColumns=[{title:'Event(s)',value(row){const typeEl=document.createElement('span');typeEl.innerText=row.type;if(row.tooltip){typeEl.title=row.tooltip;}
return typeEl;},width:'150px'},{title:'Link',width:'100%',value(row){const linkEl=document.createElement('tr-ui-a-analysis-link');if(row.name){linkEl.setSelectionAndContent(row.selection,row.name);}else{linkEl.selection=row.selection;}
return linkEl;}}];},hasRelatedEvents(){return(this.eventGroups_&&this.eventGroups_.length>0);},setRelatedEvents(eventSet){this.cancelAllTasks_();this.eventGroups_=[];this.addRuntimeCallStats_(eventSet);this.addOverlappingV8ICStats_(eventSet);this.addV8GCObjectStats_(eventSet);this.addV8Slices_(eventSet);this.addConnectedFlows_(eventSet);this.addConnectedEvents_(eventSet);this.addOverlappingSamples_(eventSet);this.updateContents_();},addConnectedFlows_(eventSet){const classifier=new tr.ui.analysis.FlowClassifier();eventSet.forEach(function(slice){if(slice.inFlowEvents){slice.inFlowEvents.forEach(function(flow){classifier.addInFlow(flow);});}
if(slice.outFlowEvents){slice.outFlowEvents.forEach(function(flow){classifier.addOutFlow(flow);});}});if(!classifier.hasEvents())return;const addToEventGroups=function(type,flowEvent){this.eventGroups_.push({type,selection:new tr.model.EventSet(flowEvent),name:flowEvent.title});};classifier.inFlowEvents.forEach(addToEventGroups.bind(this,'Incoming flow'));classifier.outFlowEvents.forEach(addToEventGroups.bind(this,'Outgoing flow'));classifier.internalFlowEvents.forEach(addToEventGroups.bind(this,'Internal flow'));},cancelAllTasks_(){this.cancelFunctions_.forEach(function(cancelFunction){cancelFunction();});this.cancelFunctions_=[];},addConnectedEvents_(eventSet){this.cancelFunctions_.push(this.createEventsLinkIfNeeded_('Preceding events','Add all events that have led to the selected one(s), connected by '+'flow arrows or by call stack.',eventSet,function*(event){yield*getEventInFlowEvents(event);yield*getEventAncestors(event);if(event.startSlice){yield event.startSlice;}}.bind(this)));this.cancelFunctions_.push(this.createEventsLinkIfNeeded_('Following events','Add all events that have been caused by the selected one(s), '+'connected by flow arrows or by call stack.',eventSet,function*(event){yield*getEventOutFlowEvents(event);yield*getEventDescendents(event);if(event.endSlice){yield event.endSlice;}}.bind(this)));this.cancelFunctions_.push(this.createEventsLinkIfNeeded_('All connected events','Add all events connected to the selected one(s) by flow arrows or '+'by call stack.',eventSet,function*(event){yield*getEventInFlowEvents(event);yield*getEventOutFlowEvents(event);yield*getEventAncestors(event);yield*getEventDescendents(event);if(event.startSlice){yield event.startSlice;}
if(event.endSlice){yield event.endSlice;}}.bind(this)));},createEventsLinkIfNeeded_(title,tooltip,events,connectedFn){events=new tr.model.EventSet(events);const eventsToProcess=new Set(events);let wasChanged=false;let task;let isCanceled=false;function addEventsUntilTimeout(){if(isCanceled)return;const timeout=window.performance.now()+8;while(eventsToProcess.size>0&&window.performance.now()<=timeout){const nextEvent=tr.b.getFirstElement(eventsToProcess);eventsToProcess.delete(nextEvent);for(const eventToAdd of connectedFn(nextEvent)){if(!events.contains(eventToAdd)){events.push(eventToAdd);eventsToProcess.add(eventToAdd);wasChanged=true;}}}
if(eventsToProcess.size>0){const newTask=new tr.b.Task(addEventsUntilTimeout.bind(this),this);task.after(newTask);task=newTask;return;}
if(!wasChanged)return;this.eventGroups_.push({type:title,tooltip,selection:events});this.updateContents_();}
function cancelTask(){isCanceled=true;}
task=new tr.b.Task(addEventsUntilTimeout.bind(this),this);tr.b.Task.RunWhenIdle(task);return cancelTask;},addOverlappingSamples_(eventSet){const samples=new tr.model.EventSet();for(const slice of eventSet){if(!slice.parentContainer||!slice.parentContainer.samples){continue;}
const candidates=slice.parentContainer.samples;const range=tr.b.math.Range.fromExplicitRange(slice.start,slice.start+slice.duration);const filteredSamples=range.filterArray(candidates,function(value){return value.start;});for(const sample of filteredSamples){samples.push(sample);}}
if(samples.length>0){this.eventGroups_.push({type:'Overlapping samples',tooltip:'All samples overlapping the selected slice(s).',selection:samples});}},addV8Slices_(eventSet){const v8Slices=new tr.model.EventSet();for(const slice of eventSet){if(slice.category==='v8'){v8Slices.push(slice);}}
if(v8Slices.length>0){this.eventGroups_.push({type:'V8 Slices',tooltip:'All V8 slices in the selected slice(s).',selection:v8Slices});}},addRuntimeCallStats_(eventSet){const slices=new tr.model.EventSet();for(const slice of eventSet){if(slice.category==='v8'&&slice.runtimeCallStats){slices.push(slice);}}
if(slices.length>0){this.eventGroups_.push({type:'Runtime call stats table',tooltip:'All V8 slices containing runtime call stats table in the selected slice(s).',selection:slices});}},addV8GCObjectStats_(eventSet){const slices=new tr.model.EventSet();for(const slice of eventSet){if(slice.title==='V8.GC_Objects_Stats'){slices.push(slice);}}
if(slices.length>0){this.eventGroups_.push({type:'V8 GC stats table',tooltip:'All V8 GC statistics slices in the selected set.',selection:slices});}},addOverlappingV8ICStats_(eventSet){const slices=new tr.model.EventSet();for(const slice of eventSet){if(!slice.parentContainer||!slice.parentContainer.sliceGroup){continue;}
const sliceGroup=slice.parentContainer.sliceGroup.slices;const range=tr.b.math.Range.fromExplicitRange(slice.start,slice.start+slice.duration);const filteredSlices=range.filterArray(sliceGroup,value=>value.start);const icSlices=filteredSlices.filter(x=>x.title==='V8.ICStats');for(const icSlice of icSlices){slices.push(icSlice);}}
if(slices.length>0){this.eventGroups_.push({type:'Overlapping V8 IC stats',tooltip:'All V8 IC statistics overlapping the selected set.',selection:slices});}},updateContents_(){const table=this.$.table;if(this.eventGroups_===undefined){table.tableRows=[];}else{table.tableRows=this.eventGroups_.slice();}
table.rebuild();}});'use strict';Polymer({is:'tr-ui-a-multi-async-slice-sub-view',behaviors:[tr.ui.analysis.AnalysisSubView],get selection(){return this.$.content.selection;},set selection(selection){this.$.content.selection=selection;this.$.relatedEvents.setRelatedEvents(selection);if(this.$.relatedEvents.hasRelatedEvents()){this.$.relatedEvents.style.display='';}else{this.$.relatedEvents.style.display='none';}},get relatedEventsToHighlight(){if(!this.$.content.selection)return undefined;const selection=new tr.model.EventSet();this.$.content.selection.forEach(function(asyncEvent){if(!asyncEvent.associatedEvents)return;asyncEvent.associatedEvents.forEach(function(event){selection.push(event);});});if(selection.length)return selection;return undefined;}});tr.ui.analysis.AnalysisSubView.register('tr-ui-a-multi-async-slice-sub-view',tr.model.AsyncSlice,{multi:true,title:'Async Slices',});'use strict';Polymer({is:'tr-ui-a-multi-cpu-slice-sub-view',behaviors:[tr.ui.analysis.AnalysisSubView],ready(){this.$.content.eventsHaveSubRows=false;},get selection(){return this.$.content.selection;},set selection(selection){this.$.content.setSelectionWithoutErrorChecks(selection);}});tr.ui.analysis.AnalysisSubView.register('tr-ui-a-multi-cpu-slice-sub-view',tr.model.CpuSlice,{multi:true,title:'CPU Slices',});'use strict';Polymer({is:'tr-ui-a-multi-flow-event-sub-view',behaviors:[tr.ui.analysis.AnalysisSubView],ready(){this.$.content.eventsHaveDuration=false;this.$.content.eventsHaveSubRows=false;},set selection(selection){this.$.content.selection=selection;},get selection(){return this.$.content.selection;}});tr.ui.analysis.AnalysisSubView.register('tr-ui-a-multi-flow-event-sub-view',tr.model.FlowEvent,{multi:true,title:'Flow Events',});'use strict';Polymer({is:'tr-ui-a-multi-frame-sub-view',behaviors:[tr.ui.analysis.AnalysisSubView],created(){this.currentSelection_=undefined;},set selection(selection){Polymer.dom(this).textContent='';const realView=document.createElement('tr-ui-a-multi-event-sub-view');realView.eventsHaveDuration=false;realView.eventsHaveSubRows=false;Polymer.dom(this).appendChild(realView);realView.setSelectionWithoutErrorChecks(selection);this.currentSelection_=selection;},get selection(){return this.currentSelection_;},get relatedEventsToHighlight(){if(!this.currentSelection_)return undefined;const selection=new tr.model.EventSet();this.currentSelection_.forEach(function(frameEvent){frameEvent.associatedEvents.forEach(function(event){selection.push(event);});});return selection;}});tr.ui.analysis.AnalysisSubView.register('tr-ui-a-multi-frame-sub-view',tr.model.Frame,{multi:true,title:'Frames',});'use strict';Polymer({is:'tr-ui-a-multi-instant-event-sub-view',behaviors:[tr.ui.analysis.AnalysisSubView],created(){this.currentSelection_=undefined;},set selection(selection){Polymer.dom(this.$.content).textContent='';const realView=document.createElement('tr-ui-a-multi-event-sub-view');realView.eventsHaveDuration=false;realView.eventsHaveSubRows=false;Polymer.dom(this.$.content).appendChild(realView);realView.setSelectionWithoutErrorChecks(selection);this.currentSelection_=selection;},get selection(){return this.currentSelection_;}});'use strict';Polymer({is:'tr-ui-a-multi-object-sub-view',behaviors:[tr.ui.analysis.AnalysisSubView],created(){this.currentSelection_=undefined;},ready(){this.$.content.showHeader=false;},get selection(){return this.currentSelection_;},set selection(selection){this.currentSelection_=selection;const objectEvents=tr.b.asArray(selection).sort(tr.b.math.Range.compareByMinTimes);const timeSpanConfig={unit:tr.b.Unit.byName.timeStampInMs,ownerDocument:this.ownerDocument};const table=this.$.content;table.tableColumns=[{title:'First',value(event){if(event instanceof tr.model.ObjectSnapshot){return tr.v.ui.createScalarSpan(event.ts,timeSpanConfig);}
const spanEl=document.createElement('span');Polymer.dom(spanEl).appendChild(tr.v.ui.createScalarSpan(event.creationTs,timeSpanConfig));Polymer.dom(spanEl).appendChild(tr.ui.b.createSpan({textContent:'-',marginLeft:'4px',marginRight:'4px'}));if(event.deletionTs!==Number.MAX_VALUE){Polymer.dom(spanEl).appendChild(tr.v.ui.createScalarSpan(event.deletionTs,timeSpanConfig));}
return spanEl;},width:'200px'},{title:'Second',value(event){const linkEl=document.createElement('tr-ui-a-analysis-link');linkEl.setSelectionAndContent(function(){return new tr.model.EventSet(event);},event.userFriendlyName);return linkEl;},width:'100%'}];table.tableRows=objectEvents;table.rebuild();}});tr.ui.analysis.AnalysisSubView.register('tr-ui-a-multi-object-sub-view',tr.model.ObjectInstance,{multi:true,title:'Object Instances',});tr.ui.analysis.AnalysisSubView.register('tr-ui-a-multi-object-sub-view',tr.model.ObjectSnapshot,{multi:true,title:'Object Snapshots',});'use strict';const EventSet=tr.model.EventSet;const CHART_TITLE='Power (W) by ms since vertical sync';Polymer({is:'tr-ui-a-frame-power-usage-chart',ready(){this.chart_=undefined;this.samples_=new EventSet();this.vSyncTimestamps_=[];},attached(){if(this.samples_)this.updateContents_();},get chart(){return this.chart_;},get samples(){return this.samples_;},get vSyncTimestamps(){return this.vSyncTimestamps_;},setData(samples,vSyncTimestamps){this.samples_=(samples===undefined)?new EventSet():samples;this.vSyncTimestamps_=(vSyncTimestamps===undefined)?[]:vSyncTimestamps;if(this.isAttached)this.updateContents_();},updateContents_(){this.clearChart_();const data=this.getDataForLineChart_();if(data.length===0)return;this.chart_=new tr.ui.b.LineChart();Polymer.dom(this.$.content).appendChild(this.chart_);this.chart_.chartTitle=CHART_TITLE;this.chart_.data=data;},clearChart_(){const content=this.$.content;while(Polymer.dom(content).firstChild){Polymer.dom(content).removeChild(Polymer.dom(content).firstChild);}
this.chart_=undefined;},getDataForLineChart_(){const sortedSamples=this.sortSamplesByTimestampAscending_(this.samples);const vSyncTimestamps=this.vSyncTimestamps.slice();let lastVSyncTimestamp=undefined;const points=[];let frameNumber=0;sortedSamples.forEach(function(sample){while(vSyncTimestamps.length>0&&vSyncTimestamps[0]<=sample.start){lastVSyncTimestamp=vSyncTimestamps.shift();frameNumber++;}
if(lastVSyncTimestamp===undefined)return;const point={x:sample.start-lastVSyncTimestamp};point['f'+frameNumber]=sample.powerInW;points.push(point);});return points;},sortSamplesByTimestampAscending_(samples){return samples.toArray().sort(function(smpl1,smpl2){return smpl1.start-smpl2.start;});}});'use strict';Polymer({is:'tr-ui-a-power-sample-summary-table',ready(){this.$.table.tableColumns=[{title:'Min power',width:'100px',value(row){return tr.b.Unit.byName.powerInWatts.format(row.min);}},{title:'Max power',width:'100px',value(row){return tr.b.Unit.byName.powerInWatts.format(row.max);}},{title:'Time-weighted average',width:'100px',value(row){return tr.b.Unit.byName.powerInWatts.format(row.timeWeightedAverageInW);}},{title:'Energy consumed',width:'100px',value(row){return tr.b.Unit.byName.energyInJoules.format(row.energyConsumedInJ);}},{title:'Sample count',width:'100%',value(row){return row.sampleCount;}}];this.samples=new tr.model.EventSet();},get samples(){return this.samples_;},set samples(samples){if(samples===this.samples)return;this.samples_=(samples===undefined)?new tr.model.EventSet():samples;this.updateContents_();},updateContents_(){if(this.samples.length===0){this.$.table.tableRows=[];}else{this.$.table.tableRows=[{min:this.getMin(),max:this.getMax(),timeWeightedAverageInW:this.getTimeWeightedAverageInW(),energyConsumedInJ:this.getEnergyConsumedInJ(),sampleCount:this.samples.length}];}
this.$.table.rebuild();},getMin(){return Math.min.apply(null,this.samples.map(function(sample){return sample.powerInW;}));},getMax(){return Math.max.apply(null,this.samples.map(function(sample){return sample.powerInW;}));},getTimeWeightedAverageInW(){const energyConsumedInJ=this.getEnergyConsumedInJ();if(energyConsumedInJ==='N/A')return'N/A';const durationInS=tr.b.convertUnit(this.samples.bounds.duration,tr.b.UnitPrefixScale.METRIC.MILLI,tr.b.UnitPrefixScale.METRIC.NONE);return energyConsumedInJ/durationInS;},getEnergyConsumedInJ(){if(this.samples.length<2)return'N/A';const bounds=this.samples.bounds;const series=tr.b.getFirstElement(this.samples).series;return series.getEnergyConsumedInJ(bounds.min,bounds.max);}});'use strict';Polymer({is:'tr-ui-a-multi-power-sample-sub-view',behaviors:[tr.ui.analysis.AnalysisSubView],ready(){this.currentSelection_=undefined;},get selection(){return this.currentSelection_;},set selection(selection){this.currentSelection_=selection;this.updateContents_();},updateContents_(){const samples=this.selection;const vSyncTimestamps=(!samples?[]:tr.b.getFirstElement(samples).series.device.vSyncTimestamps);this.$.summaryTable.samples=samples;this.$.chart.setData(this.selection,vSyncTimestamps);}});tr.ui.analysis.AnalysisSubView.register('tr-ui-a-multi-power-sample-sub-view',tr.model.PowerSample,{multi:true,title:'Power Samples',});'use strict';(function(){const MultiDimensionalViewBuilder=tr.b.MultiDimensionalViewBuilder;Polymer({is:'tr-ui-a-multi-sample-sub-view',behaviors:[tr.ui.analysis.AnalysisSubView],created(){this.viewOption_=undefined;this.selection_=undefined;},ready(){const viewSelector=tr.ui.b.createSelector(this,'viewOption','tracing.ui.analysis.multi_sample_sub_view',MultiDimensionalViewBuilder.ViewType.TOP_DOWN_TREE_VIEW,[{label:'Top-down (Tree)',value:MultiDimensionalViewBuilder.ViewType.TOP_DOWN_TREE_VIEW},{label:'Top-down (Heavy)',value:MultiDimensionalViewBuilder.ViewType.TOP_DOWN_HEAVY_VIEW},{label:'Bottom-up (Heavy)',value:MultiDimensionalViewBuilder.ViewType.BOTTOM_UP_HEAVY_VIEW}]);Polymer.dom(this.$.control).appendChild(viewSelector);this.$.table.selectionMode=tr.ui.b.TableFormat.SelectionMode.ROW;},get selection(){return this.selection_;},set selection(selection){this.selection_=selection;this.updateContents_();},get viewOption(){return this.viewOption_;},set viewOption(viewOption){this.viewOption_=viewOption;this.updateContents_();},createSamplingSummary_(selection,viewOption){const builder=new MultiDimensionalViewBuilder(1,1);const samples=selection.filter(event=>event instanceof tr.model.Sample);samples.forEach(function(sample){builder.addPath([sample.userFriendlyStack.reverse()],[1],MultiDimensionalViewBuilder.ValueKind.SELF);});return builder.buildView(viewOption);},processSampleRows_(rows){for(const row of rows){let title=row.title[0];let results=/(.*) (Deoptimized reason: .*)/.exec(title);if(results!==null){row.deoptReason=results[2];title=results[1];}
results=/(.*) url: (.*)/.exec(title);if(results!==null){row.functionName=results[1];row.url=results[2];if(row.functionName===''){row.functionName='(anonymous function)';}
if(row.url===''){row.url='unknown';}}else{row.functionName=title;row.url='unknown';}
this.processSampleRows_(row.subRows);}},updateContents_(){if(this.selection===undefined){this.$.table.tableColumns=[];this.$.table.tableRows=[];this.$.table.rebuild();return;}
const samplingData=this.createSamplingSummary_(this.selection,this.viewOption);const total=samplingData.values[0].total;const columns=[this.createPercentColumn_('Total',total),this.createSamplesColumn_('Total'),this.createPercentColumn_('Self',total),this.createSamplesColumn_('Self'),{title:'Function Name',value(row){if(row.deoptReason!==undefined){const spanEl=tr.ui.b.createSpan({italic:true,color:'#F44336',tooltip:row.deoptReason});spanEl.innerText=row.functionName;return spanEl;}
return row.functionName;},width:'150px',cmp:(a,b)=>a.functionName.localeCompare(b.functionName),showExpandButtons:true},{title:'Location',value(row){return row.url;},width:'250px',cmp:(a,b)=>a.url.localeCompare(b.url),}];this.processSampleRows_(samplingData.subRows);this.$.table.tableColumns=columns;this.$.table.sortColumnIndex=1;this.$.table.sortDescending=true;this.$.table.tableRows=samplingData.subRows;this.$.table.rebuild();},createPercentColumn_(title,samplingDataTotal){const field=title.toLowerCase();return{title:title+' percent',value(row){return tr.v.ui.createScalarSpan(row.values[0][field]/samplingDataTotal,{customContextRange:tr.b.math.Range.PERCENT_RANGE,unit:tr.b.Unit.byName.normalizedPercentage,context:{minimumFractionDigits:2,maximumFractionDigits:2},});},width:'60px',cmp:(a,b)=>a.values[0][field]-b.values[0][field]};},createSamplesColumn_(title){const field=title.toLowerCase();return{title:title+' samples',value(row){return tr.v.ui.createScalarSpan(row.values[0][field],{unit:tr.b.Unit.byName.unitlessNumber,context:{maximumFractionDigits:0},});},width:'60px',cmp:(a,b)=>a.values[0][field]-b.values[0][field]};}});tr.ui.analysis.AnalysisSubView.register('tr-ui-a-multi-sample-sub-view',tr.model.Sample,{multi:true,title:'Samples',});})();'use strict';Polymer({is:'tr-ui-a-multi-thread-slice-sub-view',behaviors:[tr.ui.analysis.AnalysisSubView],created(){this.selection_=undefined;},get selection(){return this.selection_;},set selection(selection){this.selection_=selection;if(tr.isExported('tr.ui.e.chrome.cc.RasterTaskSelection')){if(tr.ui.e.chrome.cc.RasterTaskSelection.supports(selection)){const ltvSelection=new tr.ui.e.chrome.cc.RasterTaskSelection(selection);const ltv=new tr.ui.e.chrome.cc.LayerTreeHostImplSnapshotView();ltv.objectSnapshot=ltvSelection.containingSnapshot;ltv.selection=ltvSelection;ltv.extraHighlightsByLayerId=ltvSelection.extraHighlightsByLayerId;Polymer.dom(this.$.content).textContent='';Polymer.dom(this.$.content).appendChild(ltv);this.requiresTallView_=true;return;}}
Polymer.dom(this.$.content).textContent='';const mesv=document.createElement('tr-ui-a-multi-event-sub-view');mesv.selection=selection;Polymer.dom(this.$.content).appendChild(mesv);const relatedEvents=document.createElement('tr-ui-a-related-events');relatedEvents.setRelatedEvents(selection);if(relatedEvents.hasRelatedEvents()){Polymer.dom(this.$.content).appendChild(relatedEvents);}},get requiresTallView(){if(this.$.content.children.length===0)return false;const childTagName=this.$.content.children[0].tagName;if(childTagName==='TR-UI-A-MULTI-EVENT-SUB-VIEW'){return false;}
return true;}});tr.ui.analysis.AnalysisSubView.register('tr-ui-a-multi-thread-slice-sub-view',tr.model.ThreadSlice,{multi:true,title:'Slices',});'use strict';Polymer({is:'tr-ui-a-multi-thread-time-slice-sub-view',behaviors:[tr.ui.analysis.AnalysisSubView],ready(){this.$.content.eventsHaveSubRows=false;},get selection(){return this.$.content.selection;},set selection(selection){this.$.content.setSelectionWithoutErrorChecks(selection);}});tr.ui.analysis.AnalysisSubView.register('tr-ui-a-multi-thread-time-slice-sub-view',tr.model.ThreadTimeSlice,{multi:true,title:'Thread Timeslices',});'use strict';Polymer({is:'tr-ui-a-user-expectation-related-samples-table',ready(){this.samples_=[];this.$.table.tableColumns=[{title:'Event(s)',value(row){const typeEl=document.createElement('span');typeEl.innerText=row.type;if(row.tooltip){typeEl.title=row.tooltip;}
return typeEl;},width:'150px'},{title:'Link',width:'100%',value(row){const linkEl=document.createElement('tr-ui-a-analysis-link');if(row.name){linkEl.setSelectionAndContent(row.selection,row.name);}else{linkEl.selection=row.selection;}
return linkEl;}}];},hasRelatedSamples(){return(this.samples_&&this.samples_.length>0);},set selection(eventSet){this.samples_=[];const samples=new tr.model.EventSet;eventSet.forEach(function(ue){samples.addEventSet(ue.associatedSamples);}.bind(this));if(samples.length>0){this.samples_.push({type:'Overlapping samples',tooltip:'All samples overlapping the selected user expectation(s).',selection:samples});}
this.updateContents_();},updateContents_(){const table=this.$.table;if(this.samples_&&this.samples_.length>0){table.tableRows=this.samples_.slice();}else{table.tableRows=[];}
table.rebuild();}});'use strict';Polymer({is:'tr-ui-a-multi-interaction-record-sub-view',behaviors:[tr.ui.analysis.AnalysisSubView],created(){this.currentSelection_=undefined;},set selection(selection){this.currentSelection_=selection;this.$.realView.setSelectionWithoutErrorChecks(selection);this.currentSelection_=selection;this.$.relatedSamples.selection=selection;if(this.$.relatedSamples.hasRelatedSamples()){this.$.events.style.display='';}else{this.$.events.style.display='none';}},get selection(){return this.currentSelection_;},get relatedEventsToHighlight(){if(!this.currentSelection_)return undefined;const selection=new tr.model.EventSet();this.currentSelection_.forEach(function(ir){ir.associatedEvents.forEach(function(event){selection.push(event);});});return selection;}});tr.ui.analysis.AnalysisSubView.register('tr-ui-a-single-user-expectation-sub-view',tr.model.um.UserExpectation,{multi:true,title:'User Expectations',});'use strict';Polymer({is:'tr-ui-a-single-async-slice-sub-view',behaviors:[tr.ui.analysis.AnalysisSubView],get selection(){return this.$.content.selection;},set selection(selection){if(selection.length!==1){throw new Error('Only supports single slices');}
this.$.content.setSelectionWithoutErrorChecks(selection);this.$.relatedEvents.setRelatedEvents(selection);if(this.$.relatedEvents.hasRelatedEvents()){this.$.relatedEvents.style.display='';}else{this.$.relatedEvents.style.display='none';}},getEventRows_(event){const rows=this.__proto__.__proto__.getEventRows_(event);rows.splice(0,0,{name:'ID',value:event.id});return rows;},get relatedEventsToHighlight(){if(!this.currentSelection_)return undefined;return tr.b.getOnlyElement(this.currentSelection_).associatedEvents;}});tr.ui.analysis.AnalysisSubView.register('tr-ui-a-single-async-slice-sub-view',tr.model.AsyncSlice,{multi:false,title:'Async Slice',});'use strict';Polymer({is:'tr-ui-a-single-cpu-slice-sub-view',behaviors:[tr.ui.analysis.AnalysisSubView],created(){this.currentSelection_=undefined;},get selection(){return this.currentSelection_;},set selection(selection){const cpuSlice=tr.b.getOnlyElement(selection);if(!(cpuSlice instanceof tr.model.CpuSlice)){throw new Error('Only supports thread time slices');}
this.currentSelection_=selection;const thread=cpuSlice.threadThatWasRunning;const root=Polymer.dom(this.root);if(thread){Polymer.dom(root.querySelector('#process-name')).textContent=thread.parent.userFriendlyName;Polymer.dom(root.querySelector('#thread-name')).textContent=thread.userFriendlyName;}else{root.querySelector('#process-name').parentElement.style.display='none';Polymer.dom(root.querySelector('#thread-name')).textContent=cpuSlice.title;}
root.querySelector('#start').setValueAndUnit(cpuSlice.start,tr.b.Unit.byName.timeStampInMs);root.querySelector('#duration').setValueAndUnit(cpuSlice.duration,tr.b.Unit.byName.timeDurationInMs);const runningThreadEl=root.querySelector('#running-thread');const timeSlice=cpuSlice.getAssociatedTimeslice();if(!timeSlice){runningThreadEl.parentElement.style.display='none';}else{const threadLink=document.createElement('tr-ui-a-analysis-link');threadLink.selection=new tr.model.EventSet(timeSlice);Polymer.dom(threadLink).textContent='Click to select';runningThreadEl.parentElement.style.display='';Polymer.dom(runningThreadEl).textContent='';Polymer.dom(runningThreadEl).appendChild(threadLink);}
root.querySelector('#args').object=cpuSlice.args;}});tr.ui.analysis.AnalysisSubView.register('tr-ui-a-single-cpu-slice-sub-view',tr.model.CpuSlice,{multi:false,title:'CPU Slice',});'use strict';function createAnalysisLinkTo(event){const linkEl=document.createElement('tr-ui-a-analysis-link');linkEl.setSelectionAndContent(new tr.model.EventSet(event),event.userFriendlyName);return linkEl;}
Polymer({is:'tr-ui-a-single-flow-event-sub-view',behaviors:[tr.ui.analysis.AnalysisSubView],listeners:{'singleEventSubView.customize-rows':'onCustomizeRows_'},set selection(selection){this.currentSelection_=selection;this.$.singleEventSubView.setSelectionWithoutErrorChecks(selection);},get selection(){return this.currentSelection_;},onCustomizeRows_(e){const event=tr.b.getOnlyElement(this.currentSelection_);const rows=e.rows;rows.unshift({name:'ID',value:event.id});rows.push({name:'From',value:createAnalysisLinkTo(event.startSlice)});rows.push({name:'To',value:createAnalysisLinkTo(event.endSlice)});}});tr.ui.analysis.AnalysisSubView.register('tr-ui-a-single-flow-event-sub-view',tr.model.FlowEvent,{multi:false,title:'Flow Event',});'use strict';Polymer({is:'tr-ui-a-single-frame-sub-view',behaviors:[tr.ui.analysis.AnalysisSubView],ready(){this.currentSelection_=undefined;},get selection(){return this.currentSelection_;},set selection(selection){this.currentSelection_=selection;this.$.asv.selection=tr.b.getOnlyElement(selection).associatedAlerts;},get relatedEventsToHighlight(){if(!this.currentSelection_)return undefined;return tr.b.getOnlyElement(this.currentSelection_).associatedEvents;}});tr.ui.analysis.AnalysisSubView.register('tr-ui-a-single-frame-sub-view',tr.model.Frame,{multi:false,title:'Frame',});'use strict';Polymer({is:'tr-ui-a-single-instant-event-sub-view',behaviors:[tr.ui.analysis.AnalysisSubView],created(){this.currentSelection_=undefined;},set selection(selection){Polymer.dom(this.$.content).textContent='';const realView=document.createElement('tr-ui-a-single-event-sub-view');realView.setSelectionWithoutErrorChecks(selection);Polymer.dom(this.$.content).appendChild(realView);this.currentSelection_=selection;},get selection(){return this.currentSelection_;}});tr.ui.analysis.AnalysisSubView.register('tr-ui-a-single-instant-event-sub-view',tr.model.InstantEvent,{multi:false,title:'Instant Event',});tr.ui.analysis.AnalysisSubView.register('tr-ui-a-multi-instant-event-sub-view',tr.model.InstantEvent,{multi:true,title:'Instant Events',});'use strict';tr.exportTo('tr.ui.analysis',function(){const ObjectInstanceView=tr.ui.b.define('object-instance-view');ObjectInstanceView.prototype={__proto__:HTMLDivElement.prototype,decorate(){this.objectInstance_=undefined;},get requiresTallView(){return true;},set modelEvent(obj){this.objectInstance=obj;},get modelEvent(){return this.objectInstance;},get objectInstance(){return this.objectInstance_;},set objectInstance(i){this.objectInstance_=i;this.updateContents();},updateContents(){throw new Error('Not implemented');}};const options=new tr.b.ExtensionRegistryOptions(tr.b.TYPE_BASED_REGISTRY_MODE);options.mandatoryBaseClass=ObjectInstanceView;options.defaultMetadata={showInTrackView:true};tr.b.decorateExtensionRegistry(ObjectInstanceView,options);return{ObjectInstanceView,};});'use strict';Polymer({is:'tr-ui-a-single-object-instance-sub-view',behaviors:[tr.ui.analysis.AnalysisSubView],created(){this.currentSelection_=undefined;},get requiresTallView(){if(this.$.content.children.length===0){return false;}
if(this.$.content.children[0]instanceof
tr.ui.analysis.ObjectInstanceView){return this.$.content.children[0].requiresTallView;}},get selection(){return this.currentSelection_;},set selection(selection){const instance=tr.b.getOnlyElement(selection);if(!(instance instanceof tr.model.ObjectInstance)){throw new Error('Only supports object instances');}
Polymer.dom(this.$.content).textContent='';this.currentSelection_=selection;const typeInfo=tr.ui.analysis.ObjectInstanceView.getTypeInfo(instance.category,instance.typeName);if(typeInfo){const customView=new typeInfo.constructor();Polymer.dom(this.$.content).appendChild(customView);customView.modelEvent=instance;}else{this.appendGenericAnalysis_(instance);}},appendGenericAnalysis_(instance){let html='';html+='<div class="title">'+
instance.typeName+' '+
instance.id+'</div>\n';html+='<table>';html+='<tr>';html+='<tr><td>creationTs:</td><td>'+
instance.creationTs+'</td></tr>\n';if(instance.deletionTs!==Number.MAX_VALUE){html+='<tr><td>deletionTs:</td><td>'+
instance.deletionTs+'</td></tr>\n';}else{html+='<tr><td>deletionTs:</td><td>not deleted</td></tr>\n';}
html+='<tr><td>snapshots:</td><td id="snapshots"></td></tr>\n';html+='</table>';Polymer.dom(this.$.content).innerHTML=html;const snapshotsEl=Polymer.dom(this.$.content).querySelector('#snapshots');instance.snapshots.forEach(function(snapshot){const snapshotLink=document.createElement('tr-ui-a-analysis-link');snapshotLink.selection=new tr.model.EventSet(snapshot);Polymer.dom(snapshotsEl).appendChild(snapshotLink);});}});tr.ui.analysis.AnalysisSubView.register('tr-ui-a-single-object-instance-sub-view',tr.model.ObjectInstance,{multi:false,title:'Object Instance',});'use strict';Polymer({is:'tr-ui-a-single-object-snapshot-sub-view',behaviors:[tr.ui.analysis.AnalysisSubView],created(){this.currentSelection_=undefined;},get requiresTallView(){if(this.children.length===0){return false;}
if(this.children[0]instanceof tr.ui.analysis.ObjectSnapshotView){return this.children[0].requiresTallView;}},get selection(){return this.currentSelection_;},set selection(selection){const snapshot=tr.b.getOnlyElement(selection);if(!(snapshot instanceof tr.model.ObjectSnapshot)){throw new Error('Only supports object instances');}
Polymer.dom(this).textContent='';this.currentSelection_=selection;const typeInfo=tr.ui.analysis.ObjectSnapshotView.getTypeInfo(snapshot.objectInstance.category,snapshot.objectInstance.typeName);if(typeInfo){const customView=new typeInfo.constructor();Polymer.dom(this).appendChild(customView);customView.modelEvent=snapshot;}else{this.appendGenericAnalysis_(snapshot);}},appendGenericAnalysis_(snapshot){const instance=snapshot.objectInstance;Polymer.dom(this).textContent='';const titleEl=document.createElement('div');Polymer.dom(titleEl).classList.add('title');Polymer.dom(titleEl).appendChild(document.createTextNode('Snapshot of '));Polymer.dom(this).appendChild(titleEl);const instanceLinkEl=document.createElement('tr-ui-a-analysis-link');instanceLinkEl.selection=new tr.model.EventSet(instance);Polymer.dom(titleEl).appendChild(instanceLinkEl);Polymer.dom(titleEl).appendChild(document.createTextNode(' @ '));Polymer.dom(titleEl).appendChild(tr.v.ui.createScalarSpan(snapshot.ts,{unit:tr.b.Unit.byName.timeStampInMs,ownerDocument:this.ownerDocument,inline:true,}));const tableEl=document.createElement('table');Polymer.dom(this).appendChild(tableEl);const rowEl=document.createElement('tr');Polymer.dom(tableEl).appendChild(rowEl);const labelEl=document.createElement('td');Polymer.dom(labelEl).textContent='args:';Polymer.dom(rowEl).appendChild(labelEl);const argsEl=document.createElement('td');argsEl.id='args';Polymer.dom(rowEl).appendChild(argsEl);const objectViewEl=document.createElement('tr-ui-a-generic-object-view');objectViewEl.object=snapshot.args;Polymer.dom(argsEl).appendChild(objectViewEl);}});tr.ui.analysis.AnalysisSubView.register('tr-ui-a-single-object-snapshot-sub-view',tr.model.ObjectSnapshot,{multi:false,title:'Object Snapshot',});'use strict';Polymer({is:'tr-ui-a-power-sample-table',ready(){this.$.table.tableColumns=[{title:'Time',width:'100px',value(row){return tr.v.ui.createScalarSpan(row.start,{unit:tr.b.Unit.byName.timeStampInMs});}},{title:'Power',width:'100%',value(row){return tr.v.ui.createScalarSpan(row.powerInW,{unit:tr.b.Unit.byName.powerInWatts});}}];this.sample=undefined;},get sample(){return this.sample_;},set sample(sample){this.sample_=sample;this.updateContents_();},updateContents_(){if(this.sample===undefined){this.$.table.tableRows=[];}else{this.$.table.tableRows=[this.sample];}
this.$.table.rebuild();}});'use strict';Polymer({is:'tr-ui-a-single-power-sample-sub-view',behaviors:[tr.ui.analysis.AnalysisSubView],ready(){this.currentSelection_=undefined;},get selection(){return this.currentSelection_;},set selection(selection){this.currentSelection_=selection;this.updateContents_();},updateContents_(){if(this.selection.length!==1){throw new Error('Cannot pass multiple samples to sample table.');}
this.$.samplesTable.sample=tr.b.getOnlyElement(this.selection);}});tr.ui.analysis.AnalysisSubView.register('tr-ui-a-single-power-sample-sub-view',tr.model.PowerSample,{multi:false,title:'Power Sample',});'use strict';Polymer({is:'tr-ui-a-single-sample-sub-view',behaviors:[tr.ui.analysis.AnalysisSubView],created(){this.currentSelection_=undefined;},ready(){this.$.content.tableColumns=[{title:'',value:row=>row.title,width:'100px'},{title:'',value:row=>row.value,width:'100%'}];this.$.content.showHeader=false;},get selection(){return this.currentSelection_;},set selection(selection){this.currentSelection_=selection;if(this.currentSelection_===undefined){this.$.content.tableRows=[];return;}
const sample=tr.b.getOnlyElement(this.currentSelection_);const table=this.$.content;const rows=[];rows.push({title:'Title',value:sample.title});rows.push({title:'Sample time',value:tr.v.ui.createScalarSpan(sample.start,{unit:tr.b.Unit.byName.timeStampInMs,ownerDocument:this.ownerDocument})});const callStackTableEl=document.createElement('tr-ui-b-table');callStackTableEl.tableRows=sample.getNodesAsArray().reverse();callStackTableEl.tableColumns=[{title:'function name',value:row=>row.functionName||'(anonymous function)'},{title:'location',value:row=>row.url}];callStackTableEl.rebuild();rows.push({title:'Call stack',value:callStackTableEl});table.tableRows=rows;table.rebuild();}});tr.ui.analysis.AnalysisSubView.register('tr-ui-a-single-sample-sub-view',tr.model.Sample,{multi:false,title:'Sample',});'use strict';Polymer({is:'tr-ui-a-single-thread-slice-sub-view',behaviors:[tr.ui.analysis.AnalysisSubView],get selection(){return this.$.content.selection;},set selection(selection){this.$.content.selection=selection;this.$.relatedEvents.setRelatedEvents(selection);if(this.$.relatedEvents.hasRelatedEvents()){this.$.relatedEvents.style.display='';}else{this.$.relatedEvents.style.display='none';}}});tr.ui.analysis.AnalysisSubView.register('tr-ui-a-single-thread-slice-sub-view',tr.model.ThreadSlice,{multi:false,title:'Slice',});'use strict';Polymer({is:'tr-ui-a-single-thread-time-slice-sub-view',behaviors:[tr.ui.analysis.AnalysisSubView],created(){this.currentSelection_=undefined;},get selection(){return this.currentSelection_;},set selection(selection){const timeSlice=tr.b.getOnlyElement(selection);if(!(timeSlice instanceof tr.model.ThreadTimeSlice)){throw new Error('Only supports thread time slices');}
this.currentSelection_=selection;const thread=timeSlice.thread;const root=Polymer.dom(this.root);Polymer.dom(root.querySelector('#state')).textContent=timeSlice.title;const stateColor=tr.b.ColorScheme.colorsAsStrings[timeSlice.colorId];root.querySelector('#state').style.backgroundColor=stateColor;Polymer.dom(root.querySelector('#process-name')).textContent=thread.parent.userFriendlyName;Polymer.dom(root.querySelector('#thread-name')).textContent=thread.userFriendlyName;root.querySelector('#start').setValueAndUnit(timeSlice.start,tr.b.Unit.byName.timeStampInMs);root.querySelector('#duration').setValueAndUnit(timeSlice.duration,tr.b.Unit.byName.timeDurationInMs);const onCpuEl=root.querySelector('#on-cpu');Polymer.dom(onCpuEl).textContent='';const runningInsteadEl=root.querySelector('#running-instead');if(timeSlice.cpuOnWhichThreadWasRunning){Polymer.dom(runningInsteadEl.parentElement).removeChild(runningInsteadEl);const cpuLink=document.createElement('tr-ui-a-analysis-link');cpuLink.selection=new tr.model.EventSet(timeSlice.getAssociatedCpuSlice());Polymer.dom(cpuLink).textContent=timeSlice.cpuOnWhichThreadWasRunning.userFriendlyName;Polymer.dom(onCpuEl).appendChild(cpuLink);}else{Polymer.dom(onCpuEl.parentElement).removeChild(onCpuEl);const cpuSliceThatTookCpu=timeSlice.getCpuSliceThatTookCpu();if(cpuSliceThatTookCpu){const cpuLink=document.createElement('tr-ui-a-analysis-link');cpuLink.selection=new tr.model.EventSet(cpuSliceThatTookCpu);if(cpuSliceThatTookCpu.thread){Polymer.dom(cpuLink).textContent=cpuSliceThatTookCpu.thread.userFriendlyName;}else{Polymer.dom(cpuLink).textContent=cpuSliceThatTookCpu.title;}
Polymer.dom(runningInsteadEl).appendChild(cpuLink);}else{Polymer.dom(runningInsteadEl.parentElement).removeChild(runningInsteadEl);}}
const argsEl=root.querySelector('#args');if(Object.keys(timeSlice.args).length>0){const argsView=document.createElement('tr-ui-a-generic-object-view');argsView.object=timeSlice.args;argsEl.parentElement.style.display='';Polymer.dom(argsEl).textContent='';Polymer.dom(argsEl).appendChild(argsView);}else{argsEl.parentElement.style.display='none';}}});tr.ui.analysis.AnalysisSubView.register('tr-ui-a-single-thread-time-slice-sub-view',tr.model.ThreadTimeSlice,{multi:false,title:'Thread Timeslice',});'use strict';Polymer({is:'tr-ui-a-single-user-expectation-sub-view',behaviors:[tr.ui.analysis.AnalysisSubView],created(){this.currentSelection_=undefined;},get selection(){return this.currentSelection_;},set selection(selection){this.$.realView.addEventListener('customize-rows',this.onCustomizeRows_.bind(this));this.currentSelection_=selection;this.$.realView.setSelectionWithoutErrorChecks(selection);this.$.relatedSamples.selection=selection;if(this.$.relatedSamples.hasRelatedSamples()){this.$.events.style.display='';}else{this.$.events.style.display='none';}},get relatedEventsToHighlight(){if(!this.currentSelection_)return undefined;return tr.b.getOnlyElement(this.currentSelection_).associatedEvents;},onCustomizeRows_(event){const ue=tr.b.getOnlyElement(this.selection);if(ue.rawCpuMs){event.rows.push({name:'Total CPU',value:tr.v.ui.createScalarSpan(ue.totalCpuMs,{unit:tr.b.Unit.byName.timeDurationInMs})});}}});tr.ui.analysis.AnalysisSubView.register('tr-ui-a-single-user-expectation-sub-view',tr.model.um.UserExpectation,{multi:false,title:'User Expectation',});'use strict';(function(){const EventRegistry=tr.model.EventRegistry;function getTabStripLabel(numEvents){if(numEvents===0){return'Nothing selected. Tap stuff.';}else if(numEvents===1){return'1 item selected.';}
return numEvents+' items selected.';}
function createSubView(subViewTypeInfo,selection){let tagName;if(selection.length===1){tagName=subViewTypeInfo.singleTagName;}else{tagName=subViewTypeInfo.multiTagName;}
if(tagName===undefined){throw new Error('No view registered for '+
subViewTypeInfo.eventConstructor.name);}
const subView=document.createElement(tagName);let title;if(selection.length===1){title=subViewTypeInfo.singleTitle;}else{title=subViewTypeInfo.multiTitle;}
title+=' ('+selection.length+')';subView.tabLabel=title;subView.selection=selection;return subView;}
Polymer({is:'tr-ui-a-analysis-view',ready(){this.brushingStateController_=undefined;this.lastSelection_=undefined;this.tabView_=document.createElement('tr-ui-b-tab-view');this.tabView_.addEventListener('selected-tab-change',this.onSelectedSubViewChanged_.bind(this));Polymer.dom(this).appendChild(this.tabView_);},set tallMode(value){Polymer.dom(this).classList.toggle('tall-mode',value);},get tallMode(){return Polymer.dom(this).classList.contains('tall-mode');},get tabView(){return this.tabView_;},get brushingStateController(){return this.brushingStateController_;},set brushingStateController(brushingStateController){if(this.brushingStateController_){this.brushingStateController_.removeEventListener('change',this.onSelectionChanged_.bind(this));}
this.brushingStateController_=brushingStateController;if(this.brushingStateController){this.brushingStateController_.addEventListener('change',this.onSelectionChanged_.bind(this));}
this.onSelectionChanged_();},get selection(){return this.brushingStateController_.selection;},onSelectionChanged_(e){if(this.lastSelection_&&this.selection.equals(this.lastSelection_)){return;}
this.lastSelection_=this.selection;this.tallMode=false;this.tabView_.label=getTabStripLabel(this.selection.length);const eventsByBaseTypeName=this.selection.getEventsOrganizedByBaseType(true);const ASV=tr.ui.analysis.AnalysisSubView;const eventsByTagName=ASV.getEventsOrganizedByTypeInfo(this.selection);const newSubViews=[];eventsByTagName.forEach(function(events,typeInfo){newSubViews.push(createSubView(typeInfo,events));});this.tabView_.resetSubViews(newSubViews);},onSelectedSubViewChanged_(){const selectedSubView=this.tabView_.selectedSubView;if(!selectedSubView){this.tallMode=false;this.maybeChangeRelatedEvents_(undefined);return;}
this.tallMode=selectedSubView.requiresTallView;this.maybeChangeRelatedEvents_(selectedSubView.relatedEventsToHighlight);},maybeChangeRelatedEvents_(events){if(this.brushingStateController){this.brushingStateController.changeAnalysisViewRelatedEvents(events);}}});})();'use strict';Polymer({is:'tr-ui-b-dropdown',ready(){this.$.outer.tabIndex=0;},get iconElement(){return this.$.icon;},onOuterKeyDown_(e){if(e.keyCode===' '.charCodeAt(0)){this.toggle_();e.preventDefault();e.stopPropagation();}},onOuterClick_(e){const or=this.$.outer.getBoundingClientRect();let inside=true;inside&=e.clientX>=or.left;inside&=e.clientX<or.right;inside&=e.clientY>=or.top;inside&=e.clientY<or.bottom;if(!inside)return;e.preventDefault();this.toggle_();},toggle_(){if(!this.isOpen){this.show();}else{this.close();}},show(){if(this.isOpen)return;Polymer.dom(this.$.outer).classList.add('open');const ddr=this.$.outer.getBoundingClientRect();const rW=Math.max(ddr.width,150);this.$.dialog.style.minWidth=rW+'px';this.$.dialog.showModal();const ddw=this.$.outer.getBoundingClientRect().width;const w=this.$.dialog.getBoundingClientRect().width;this.$.dialog.style.top=ddr.bottom-1+'px';this.$.dialog.style.left=ddr.left+'px';},onDialogClick_(e){if(!this.isOpen)return;if(e.srcElement!==this.$.dialog)return;e.preventDefault();this.close();},onDialogCancel_(e){e.preventDefault();this.close();},close(){if(!this.isOpen)return;this.$.dialog.close();Polymer.dom(this.$.outer).classList.remove('open');this.$.outer.focus();},get isOpen(){return this.$.dialog.hasAttribute('open');}});'use strict';tr.exportTo('tr.ui.b',function(){const FaviconsByHue={blue:'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALgAAAC4CAYAAABQMybHAAAlrklEQVR4Ae2dCXwdVb3H5265yc3SpEk3ukEXCqVUBLT4Wm19oFKtaN0fKijy9CMguPBarIJsIiA8qsjTh7SllAoFeVBaEARkLV1ooXtL0yRdkqZp9u3uy/v/5uY/OZm75y659+acdnLOnP385zv/+58zZ2YMinTplIAhzsoDceaT2RKUQLwHIMFqh0V2ll0kn4XA6byv9/Vw834kX19e7keRQCzhRyk6bJJYRvD1YTXuhRdeqDj77LPPtNls400mU7HRaCzFFggEVJ/iSqhsicFgKIXUKL6bvB6fz9fj9/u7Kb4bPjaK67Xb7Q0HDhw49IUvfKEd2XUb7WpxHIYvXRgJ8AELkzRso1gmKrwkBfjG7373u5Zly5ZNKS8vn2G1Ws80m83YphPI0wnQUemQFp0IzQR9tdfrxXbI5XId6ujo+PCuu+6qXbNmjYfa9NMmngDoBmt+hIe944M53AUhwqwCvXTp0qJrr732opKSkk8XFhZ+imC+gIAryAZB0QnlJuB3OJ3Ot3p6el5/6KGHttxzzz0O6pse+GEP+3AGnKE2EhgG0tAFt99++4WkoT9tsVgW0DaH4guzAeg4+uD0eDxbaXuDNPzrt9xyy3bS8G4qB8BF6OOoKr+yDDfAB0B91VVXFf72t7+9lLT05QUFBZfQoYWtnA+ux+12v0ra/W+/+tWvXlq5cqWTBjUsYR8OgDPU8KGtjR9++OHHx4wZ8+2ioqKv0X4lbfnsWh0Ox9+bmprWzpgxYxsNFBpd1Op5bcbkM+AMtgr11q1bTz/zzDP/gy4Qv02zGtPzmehIY6MZmmq6UF176NChJ+bMmXOkD3QR9khFczY+HwEXwTbV1NTMI229FCYIXSTm43gTho8uUgMwYUir3zN16tR3qAIfbXkJej4dcIxF1dbkm44ePfqZqqqqpTT7MZf2pYsgAZqN2dTS0nLP5MmTX6EsDDrDHqFU7kTnA+Aa2BMmTDBv2bLliyNHjlxCZsgFuXMYhr6nZL7saGtru/eiiy7aUF9f76UeAfKcBz2XAUffVbgJbAuB/Y3KysoldONl5tDjkrs9oBtL+1tbWwH6UwS6/mZSzg0sVwHXTJG9e/deOGXKlOWksS/MOelncYdJo2+vra396axZs7ZTN0XTJYt7Hdq1XANc1dg0DNOqVatGLl68+DZa/3E1XTwCeOn6JLCly6ncU9+mNLnBZRLOYPAHHI5H2l5/8TdHbl3SRjUx6DkztZgrgKOfDLf5xIkT36moqLiLzJG0rAFJAomsKDp1W51S74IZnSIX8DcrXV3LlK/Oe5xqZPsckGc96LkAOPpowrZ79+5ZNK31BzkzQtKI4qxvV0dJTSLJ592kHKu7QfnPxXupFmhzbFkNeTb/tGsae/bs2Va6wr/lrLPO2izhTgLQZIuaaMp1yvTNyvNbb1HomFB1ZtrAUNYqymztGMNt2rhx44T58+evohs1n0r2+AyX8mnT4KIAvZ63lA82f1/55TX1FJ21tnk2As4zJObq6urP0BTgCmlri2TFDmcEcHQDtnlz4w+Uyz+Hm0Rsm2PuPGtcNpkomtZesGBBYXNz8210d+05CXfWsBLaEQNd5I+e8JyyYettCh0zyoBrpawyWbJFg2twv/jiixPnzZu3mhZFzQ2VqIyJRwIZ0+BiZzyeTcqebVcqS350nKKzxmTJBsDRB3WWZN++fXPpps060tpVouxkODEJDAng6GIg0KI0Hv+mcsXnN9FeVsyyDLWJwnCbadXfomnTpm2UcCcGc1blNhiqlNMmblT+9soi6hdmWKC4hlSJDiXgaBsCsNDKvysnTpz4JIWLaJMupyVgKFLGjHtSefrNK2kYFtpwjIeMs6FqWIOb7kr+Yty4cX+m2+0446XLBwkESHuPrPqz8uymX9BwhhTyoQBchZseQiigdcj30grAO+SDCPlAtW4MeLikdMQdyvqt9yp0rCl1SDR5pgFX4V64cGERvdhmRWlp6XU6scjdfJNAcfF1ysqNK5Q5C2F+ZhzyTF4AqHCPGjXKSjdwHqUHfr+ab8cyW8YzZLMo0QTgcj2jfO/S7ynNzS7KxtOI0UqkJC1TGlyFm3pccPDgwfsk3Ck5drlVidX6VWXFxvvAAG0Z0+SZAJzhtjQ2Ni6ld5D8KLeOjOxtyiRgK/6R8uy7S6m+jF14phtwmEBow3L8+PGr6FnJm1MmLFlRbkqgtOxm5am3rgITtIGNtJrJ6QQcHcdPkYUuKL9MsybLKSydlICijKxcrjz+0pdJFKzJ0wZ5ugBnuM27du2aT7ffV9JUIGCXTkqAJEAsjJ2wQlm1fj7tpPWOZzoAB9yo1/zSSy/NoLdJraMwFsdLJyUgSqBQGX/GOuX+FTMoEpCDmZRr8nQBbqIHgovnzp27mtaWlImjkmEpAU0CYGPmR1crF19cTHH4hU854KmuECcMOmo9derUAyNGjLiawtJlWAJZOQ8eTQb27keUyz7xM8qS8jnyVGpwNk0s+/fv/4qEO9oRlWkDJGArvVpZ89JXKC7lMyupApzhNm/YsGH6GWec8eCAAcgdKYFYEhhz2oPK3X+ZTtlSao+nEnDzxWRL0eNmj0q7O9bRlOkhEoA9ft6cR5WPq/Y4IE+J+ZyKSjS7m56jvK+srEzeqQw5epmNyDkbXBRPT8//Kl++6EaKSok9nqwG10yTHTt2fJpWB0q4xYMlw4lLoJhu5z/y3KepYEpMlWQBV7U3mSXFNN99H71YPfEByRJSAqIEwND4yfcpFyzgqcOkGE2mMGtvy2OPPXY9vZjnTLGfMiwlMGgJWCxnKktv/QmVT3pWZbCAM9zmxx9//IzRo0fj0STppARSJ4HykTcqN//3GVRhUqZKMoCrC6no6Zy7yTSxpW5ksiYpAZKA0WhTPj73dxRKakHWYABn7W3Zs2cPvjH5eXlApATSIoGi4i8oK56/tA9ysAr2EnKDARxlzJdddlkJ3dC5N6HWZGYpgUQlMH7SvbRWpYSKsamSUA2JAs7a2/ynP/3pOvrc9eSEWpOZpQQSlYDZPFn54a/xcDoDnpAWTxRw5DfRJ7DL6HUPP060rzK/lMCgJFA+8sfKZd/CqlRc9yXEbCKZWXtbli1b9gN6EX3loDorC0kJJCoBk6lS+ebVP6BiCU8bJgI48ppxU2fs2LHXJNpHmV9KICkJVFZdo3zsY7j5w6ZKXNXFCzhrb/PDDz/8HbK9x8ZVu8wkJZAqCZjNY5Wf3vkdqo4Bj8sWjxdw5DPRt3KKTjvtNNxhkk5KIPMSqBz1E2Xq7ITekBUP4Ky9LevWrfsGae9JmR+ZbFFKgCRgLpik3HL3NygUty0eD+Cq9h4/fnwBbTdIQUsJDKkERo+9QSkr47ubMfmNlQHaG5v56aef/ndaUDVtSAcnG5cSMFumKXc/fDGYpI35jCiXeADH3KOZ7lp+Sy6HjShHmZApCWA57dgJ3wKTtIFNQB7RxQIc6abLL7+cniEesTBiLTJBSiCTEiguWah8/isjqEkAHpXhaIk4M5BuXrp06ZfoOUtcvUonJTD0EjCaipSvff9L1JGYU4bRAEeaCjh9P+fr0jwZ+uMqe9AnAZgpo0Z/nfYY8IgcR0qA9sZmeuCBBybZbLZ/66taelIC2SEBKzF5zTJMWbMdDl5DXDTAVe29aNGib5D2jpQvpEIZISWQEQkYicm5C0QtnjDg6uwJPY72tYx0WDYiJZCoBMorGXDW4iE1hNPMOBMQb1qzZs0MmvueHlJKRmS1BCZYYZoOA2exTFd+dT/eTsuzKSFaPJwkNMDPO++8+fLiMvdA+Z8JJcqPN+9RGnocoZ0PBELjFF2cbjdYIEykvq4wWehd4APb05dBari4gaWCe/p8AT+uFOdT4j7aoJTB7oAGowFurqqqmicBV5QPmgLKX3b7lVbHANmRLLPVVSjnGT6hzFRa44dHHEqIHhQThXC8+YQiqQ66K9rnvakoD1O9DPiAJvSAo8vYjMXFxWZ6U9VFA3IP052fv+5VGntzBW4+SCYl4KtQ/L3tpCBJ0+WpC/hKLgKrvb29DDj41Q4WIvUOcaZHH310lslkGqlPHI77uQd38CgZTBbSVBVKXk+CGYwjS758/ywwS1sIz/oI1uCmmTNnflKaJ7l/OmuQG3migQ9xnvg0W2gaN/2TfYDzoLQDFw5wVYOT/T1XAq7JKacDKuS2csVg1B/unB6W2nkwaiiumEs7rMEBueZEG5zpN9Gt+QKyv+douWQg5yXAkPvtHYO78MxiCZisJXNsVRML7C3HndRN5li1w/WnNPaNDz744Ll0ZpRm8Zhk1wYhAYacjPJBlM7eIgHFUFryxZvPpR6q/Io9DavBJ0yYcJY0T0Qx5U84CDnNrtjb82dQZHqZysefRQPaRltEDc4JRlr7PS1/Ri9HopeAwWRWjLYKQiF/NLnBWgpmocGZY3XYoomCBOybaPXgNKnBVfnk7R8V8qLyvIAcrBoLiqaCXdoYcvXYMeB8KmPfSIBPUVPln7yWQD/kjEEOD7fABsBVfvtGoTIdYoOPHDnSXFhYODmHhyq7noAEgpCPUPyOTiql3QBMoIbsyGo0F04uInYdbW3RTZRbb711AnXZmh3dlr3IhAQYcpooz0RzaWmDTk1r0YLrwS4GwRaJuoMGmXrjOeecI5fHQiLDzKmQF9ILXFXIGYfc8q2jZ4JdBlyFnE9ZHolx1KhR8gJzmMHNw9Ugz8U7nrijWToyZCZFtMEBu7GoqGgiD1j6w08CKuTWUsXv6s65O56GApVdlWM+cnoNbqB3D+JzEdINYwkw5DlnkxvNYJetEdVEETU4Ioy0RLZEzoEPY7r7hh6EvIQ0eQ/FZP/sCpilPgNwKG0VbgyFdzTqCXC8ZFw6KQEAoxgLS3NoPbkR7GosIyxqcBxSgwQcYpCOJWDAOnIrKUbS5AH9M5GcKUt8OiEZcK1HbIMjQiVfAq7JRgb6JADIDQR5tpuuAaMGuGaisAbXIiTgkutwEujX5L2UnJ02uSEIOHdfZVpqcBaH9GNKIKjJQ6yAmOUylYHsa+6cprBZg3MfpA3OkpB+WAkENXmxEnDbs2+e3KABrvU9RINTih56LbMMSAlAAqomL7BRQFOU2SGYgMouOqV1jGHWIrxer50+8iofV8uOQ5a1vVA1OUEecOPtWdlhkxsUH/2saE5lmufBtVifz4erCOmkBGJKIKjJ8V0ETT/GLJPODAG/X8+uOg+O0087BaHB09kJWXd+SSCoyYuUgIceaB/qeXL/AA2uci3a4JB8QGrw/AIwE6NRNbmlcMht8oBftT40ZY2xsw2OsJogAYcopEtUAqomt5Am9w6dJg8ENPNagzysBs/2W7KJCl/mz4wE8OYsg3loNLnKbNAG1+DGqFmDI1LdpA2eGRjytRX19XAEecDr6kMqcyM1BNTrR41ltCxqcAYc6yOlkxIYtASCmhyP9WZ2doVmUXhtL1hWHWtw3lccDkcb1H22L6zROiwDWSmBoCa39mnyDHSRmPV7nG36lliDs1r3t7e31+kzyX0pgcFIQNPkGbrj6be3gV287Z95Vk0U7MCpkdXV1bXyIjMoEPk3eQmokJsKglOIAD1tm6J4Wo7UMsd9PQ+wBse+CvgzzzwjAe+TjvRSIwGGnB4qS02F4WohE8W58zk94CGzKP6XX3652+VyNdN6lFHh6pFxUgKDkQAgDygWxeDzDKZ47DJeV3PvvtfpVQChJgoKs80C+8Xf09NzRJopEIt0qZQAIFfou0GpXoUIVv0uxxHqq8ov+cxzyDShmsFut9elcmCyLikBloAKuZEm71Jsi/vdKrMi4GqTbIMz8cjgw0yK1OB8SKSfagkMgDwVlZMGDzg6oJR9tIFh5lmzwdEMR/pPnjxZiwjppATSJQHVJg/QRaffm3wT9Gvg624GswPgRsXhNLh//fr1u2nRFYCXTkogbRJQbybCXEl2diXgCzh2bthNFQHwAZAz4BgEgEaijz4C29zZ2VkjzRSIRbp0SiAIOT7MgCnExDeyThS/s7uma+vaZqpANFHUbusBZ8i9ra2tWyXgqozknzRLQIMcF56JOiLc19O6lYrB1hmgvVGVCDj2VQ1Ovq+mpmaLBBwikS4TElAhx7vJE55dIWhb6rZQH6G9WYNrXRYBh/ZmDe5buXLlVj85LacMSAmkWQIa5Im0Q4x2bXkUGpzhZo7VWsIBrp4JGzZsaCc7/KDU4olIW+ZNVgL9kMe2x4P2d+dB+86X8NFP1uARAUffWIPDnvHSdOE2CTjEIl0mJRCEPA57nAj3dzXj468qr+SzDa51V9TgiGTAcTZ4yQ7fLAHXZCUDGZSABnlUm5wgba3dDFZpE00Uraf6Bx5YveNM8C5fvnzbJZdc4iwuLqYH7Yavq+ytURq70rRIKIvEGlmZAYswDjZCRBchLUJ0ULeGqYzaQL8AfEj/PA5nz8u/Zw3O2ntAC+EAR0bVnnn33Xe7Gxsb35gyZcqlxhR9mGj/oU7liWfrlPZOd5jRZGfUbK9bmUnPGIYIeEB3B8i1PyUKBHTo+vPFEYrcfpR6orYfR6NZmiUQ8Cs9XU1vbDiyEysI2f5myLVe6wFHAqSlanDyPTt37nz+9NNPTxngv/3DHqW5lV4tkGPO67ErPi+9pgw/mYAGfjyO8zJo+vL6dH2dmc6vb1/fP31/9Pn1+7HK69P15fXt9eUP+LxKR/OB5yk7flrFOfABNehtcCSKgHuvu+66t2n5bGtk7TGgvpg7uQg3BmW22BSTGa8pIwehx+s4L3wxzOXFOM4j+sjHecSwmEcMi3nEsJhHDIt5ENY75IXjMhxWI+P4E6u8Pp3bYV/fHsWDRb/f1Vq3b9XblBzxAhNFowEOte+hlYWO+vr6f6QKcDSaq06F3FQYdeUEow9fDGfLmMU+ieFI/RPziOFU5Y9UT/T4gOJ2tP/D7e7Bmz+hwcNeYKKOcIAjHiaKZqa8+uqr6+l9KYgf9g6QG/sgxwHXbxAQgyCG9fmGal/skxiO1B8xjxhOVf5I9USLV8j+7mjd/Rz1RzRPwGuIiwQ4zBScFaDas3Tp0r0dHR2HpRYPyo8hD+7Jv5mUABj0eeyHjx58Yh+1y4CDVTAb4qIBzpCjEjfNiW+Qd+775dcPeTRdI9NCf+OSlQl98M3RvAFM0sbmCVhNCHAcSah8TYuvXr16PT2MjAql65OAapPjXXzRnP4iCnk5Llw5ToMvhsPlzYU4cQxiOFLfxTxiuC+/3+/xNB9/cz3tito7rHmCIpE0ONJwRrAd7l61alXjkSNHXpBaHKLpd5hZMfELJ3FA9Buy8oESw/p8vC/mEcOcnmu+OAYxHGkcYh4xTPlx38DtaHnhZP3rjZQEDR5xehBF4eIFXDVT1q5d+whp8YhnS7DK4fdXhdyEd/FJl04J+ANef3PDpkeoDTZPkgIcfR2gxe+7776aY8eO/VNq8dDD2A95sjamLE8/eSTggRsuLj2Otn821D5fQ4lxaW8cpWgaHOnQ1pqZQmHXU0899VePxxPWoEeB4ewYchwadhzmw4V4jhPDnJ6oL9YhhuOtRywjhuMtr88n1iGGOZ8YJ4Y5PZKv+H2BthOb/0pl8F5mEfCoFkUswNEHVICLTdVMufPOOw+QFn9TanGIJtTBHjeSucIHCjkQZsfhSOmcL14/2fqSLa/vZ6z6YqXr68M+1p24nK1vHq3++wHaZfMETEaFG2XjARzaWgOcwq4XX3zxYdLiKC9dGAkw5Pqf2czso0OMkRhGXG5u9N5vpb3p/YdpAKy9AR+YjGlJxAs4a3GcPa4lS5bsOnHixGapxUkaEVwQcnqrasYdw80wowMcl/HOJN0gtLfb1bH5yMHHd1FlDDhr75QAjk6yFsdVKyB3bty48UE5owLRRHYa5JgSY8dhniZDPMeJYU5P1BfrEMOR6hHzIBzLcV8j1aePR31cRgxzPjFODPel+xWvv6N5x4OUhCWoYA8MxqW9KV9cJgryAXBocQbcdeONN+6kd4k/J9eoQDyRnQq5se+Fk3yg2UcxDvcdULUmjotcbeQULhtvffr8XC6Sj5a5TORe9KdwXq5PXz5KOn0WUHH2nnyudt/qnVSMtXfMqcH+xuMHHGVYi6sXm2jwpptuWk4PJrfLNSqiSEPDGuShSTImggTUNSdee/uxA2uXUxaGO27bm6uNxwbnvKzF8fOABp2vvfZa89atW/8oLzhZRJF9zVyJnEWmCBKgb14qPZ01f2xv3o03VsE8AXNx295cVSKAo4yoxVXIFy9e/Aw91rZLXnCySCP7Jpo+NNLnPMQvHXAYfjz/UDuXEcNcVowTw5yeal9sQwxHakfMI4bF/HhiyuPq2LV/293PUB6GO2HtjfoHA7g4o4LGnWvWrLnL6XT6pKkCkUZ3gNxAL4HnA4rcCMfrOG+k8rHS420n3nyJthcrPxgK+D2+5oa37qI+qHyRj4vLhLU3xpAo4CjDgOOMUrX4HXfcse/AgQPr6I20SJcuhgQYcvVijS++pN938RpQHD0n1h378Cms99Zrb7CXkBsM4GiAIVenDGnfccMNNzzU0tLSKE2V+OSvmiuYXZFOkwDmvD2e7saa/X99iCLxOBoAF7W3ljfewGABZ1ucpw2d7733XusTTzxxE33+xCNNlfjED3vcqELON2WGr0+WCS03cXtaTmy6qbutppUkyHAnNO+tl/xgAUc9DLmmxWnacAeB/hDdANK3I/cjSCAIebi3d0QokKfRZHcrvZ01D9XtW72DhqjX3mBtUC5ZwGGqaFqcws5LL7109dGjR9+WN4DiPx7DHXLc0HE5Wt7es/m21WCob4PiTOimTjiJJwM46gPg2PiCE2ee/Wc/+9lvyB5vkvY4SSNO12+uxFkgT7LB7vZ6uptq9678DQ3JThsYggkAppgvCg7OJQs4WkUnMH2CMw6dc9ANoJNPPvnkL8ke90p7nCQSpzPS9CFscryHbzhsEEvA7/a2NLzzy46WXSdpV+WH/KQuLFEvu1QAzrY4mypqJ+lVE9u3bdv2Z9jjEnIWd2wfkBsM+W+T9813093K6j/X7l+9nSQjwp3UhaUo5VQAjvoY8gGmysKFC1fSgqxX3G6ckNLFKwEVcu3rY/k5swK729Hb9Mqed29fSXLRmyawCAZ9YSnKOVWAo06GHDTjQgGdti9atOjXdNH5noScpJGAU00VI74+ln+OXv2gOJ0t7x3cduevaXQqJ+TztGDK4IbkUg24aI+rkNNXIrquuOKKG+kBiYNyURZEHr/LR8j99OFXt6v94KH377/R4WjtImkAcBFuMJQS7Q1Jp0NFoHNiBw0Eube2tnbT/PnzFzz3UtMIA76mJV1cEjAYcIhInLgTkuMOZonH3XW8dvdff9zZur+JhtNLGwMO8zal2hviSgfgqBduAOhki7u6u7u3NHWO+yxNidkk5EEhxfM3CHmfSHN0zQq98Fjxunta6w+v+9GphneO0Wj0cKdUc7Nc0wW4qG608AcffNBrMlvfLx0x5XMGo7lAQs6HIbbfLytNnLELZUkOrO2mF2b2nDz64rX1hzccpG7p4YbmBuApd+kCHB3lI8G+2vnOlr0dBYVV+4tKxl1MswWW/gOX8rHlXYUsq+C8ChaeZv8/vOqYvo5hb2l48+d1+9fiNrwId8rmuyMd7HQCLrYJyDXQ20/tOGUxF+6wlU1aYDQWFPGBEwvIcHgJ9MtKE2f4jFkQq9rcnu72xrp//OTIgccx181wY8477XBDBJkGXAO9o2VPm+JzbioZMXWewVRQ2n/g0C3poklgoKyyc57cTxeUXnfHCVrXfU1D7fr9NJ4e2gA4w530OpNoMuK0TAGO9ljlaJB3tVd3u1yNb5ZVzPy40Wyt7L+Y4u5JP5IE+iFnsUbKmfl4zHN7nG3VdXtWXNvU8GYd9QBgZxxujDyTgKM9OAZc9e1dDY6ejoOvl1fNnm0yFY1TaApR/QhoMK/8G0UCGuQGEmUWKHK83jhA89z0gvoPDu1cfn1b864T1H29WZIRzc1iyzTgA+CmTqj7Lkeru6156xsVoy+cQk+fn44DJyHnQxTd1yBXRRk9bzpTsSrQ7/MoLvvJN/a/d9uSno5jLdQew40bOVghmFG4Md5MA4424UJA97rtvub6f71VPupcq9lSNttgNBLj8oZQUFzR/w6UU+ZVOeD2eV2B3u7ax/a9e/PvXI7OTuqxCDcuKDMON6Q2VICjbYacJ/jpHYte/8mjr35gtVUdLCwaPYfmyunDlFKbQ1ixXBByiDRzTl0RGPBiPXd7S8Pbyw68d+/TdAz5YlK8QzkkcEMSQwk42mfI4Wugt53c3uB0nHyttHz6THo4dywOnjRZIK7ojiHPxOw4lg4EYJI4mnfW7V95ff3h9bupd9DarLlhkohTgZk9+/pElS2AA27eVOjt3fW9p4699kr5qFkmc0HZR6TJ0nfEYngDzZUYmQeZrN6ZhEnSeXj1nk2/vr2nsw5vn4LGZrj1i6cG2VLyxYYacIyAz2zW4hro9HPnO3nstZ2FhZX7Cm1j5tCDAEWkyqU2j3HctV+7FJvjWE+CWRKvt6utpeGtX+7f/vv/6zNJGG7McfPFZNpuv8cY/oDkbAAcHRIhF0FXw21N2084HfWv2UonjaHPhEwJaikJ+oAjqdvRINfFD2ZXfSILF5I+Fz2kUP/akT0rlhyv2bCX6mKNDcD1N3CgqIbc4RzPJof+YOoEJx7eioNPl+FDlHSxqdgQnj77h5+oGPeJXxQUlE3Cg7qZ+EmmdnPWYYYjGRec/nMrbnfnsbaT2+6v2f3wZqoPJghDzVOAvNwVDbLCSqbplJTNNsAxKP5hBeR4OBGfSQDkDHpRYWFFyYzzf/Gd4oqpV5JGt+IZxlRqLGorr1zwmdjEmOMZEp/X4erpqFld/f4Djzud7ZghgabGBrDZ1sYsCa/lTqwhKphOly0min6MLCT42KAV2Kbzeb1Ob9Pxf+32utteLSqZOJ4++jRJmi16Efbv95/8rDsi++pzFX3mCM1kvXPkw7X/Vbd31eskc3H6D9pbhBvHJ7mfiv7upjSUjRpcHCD6xyYLa3PW6DBbVM0+4/yffKq88iPXmq0jJuOdf/J2vyjC/nBQk/fviyHRzva6u462N+96qHrng29RHtbUrLUx9cc3bljpsEISq8yKcLYDzkIC5Aw6bHNAzva5CrnZbC6c/pHrLykbefYVZmv5NAk6iy66PwBsV8fhrrYDj1Xv+uOr9GYyBpt9ntcWbe2s1NriiHMFcPSZtTlAhzZn0AE4ww7fOuP86z45ovLcKyzWkecEL0RN0kYnwYguaGP78MJLetl8277O1j2Pffj+n96mPAAZG8BmHxobYPMdSYCdtVqb+qa5XAKcO40+49qBQYc2Z42uAk77qj919tUfqxh1wZXWosrz6cEKslxQbPhOLwZNFKz4I7D9broL2fp+e/OO1TW7H3mPBMNgi75ojgBqvpCkYG64XAQckkW/sYlmCzQ6Ty2KoBeccc53Z5eP/uiXrIWjFpjNRTaD+no0FM1/2DWo6cIRb3D1eh12l7P5jY5TH6yv27cGt9cBsQg1wtDWvIl2dk5obeq75nIVcB4AQ86gs+nCoLNmV7V8YcnY4ikzvr3ANuKMz1mLqi4k0E3q+7nVu6OoIn+cOv9NUyJ4+ACfBKG3t263d9a9XPvh2jecPSdxg4a1M4BmyBlqnvaD1s4ZcyTc0ct1wHlMetBhi7CNziYM+6qmrzrtwtHjJi/6rK1k/OfoiblpAJ1hz0XNzpoai6AANTafu/uwvafh5cajG//ZcmL7KZIJA8xwiz7SoK1ZY+c02DQO1eUL4OJ4grZH0E6HRmetDsAZetE3T5q6eHr5mPPmWQurzjcXls8i0K20VFcx4iWYeA9JFpoyA4CmJatYI0JQu7zOjr0uZ8v7HU073zlW82w1dR7aGPAC5nA+0llj8z2HnDNFaAxhXb4BzoMMUtlvo0Ojs1bXA69qdEqHby4sLLeOm7p4Vln5tAsshRXnFxSMOJseirbgAhXPjAZvmrDYgn7/jRRuPjV+EGLUxbzRBSKWqdJ7RnChGKBPftAt9AMeZ/v7XR2HdzTWPLvX6eyAycFQA2jeGHBOY23NGhuNcEMUzA/HRyo/RhM6ChF0aHbRVhe1O0POceybiovH28ZNW/SR4pJJ55oLiieZzLZJJottPFY2BoHHWnWAT1Wr0owkUn18JJYoHv9xUQiQNd/roJfnNPi89mNed++x3p5jexoPb9zV29uAu4qAlDUx+ww2fI6Dz0CL9nWkzlD23HZ6qef2aKL3HmNl84VBZ83OQEfyOR98lDWOnjB3dFnFOZOttjGTLIWlk81m20RaMlBpUEw2Ay2QoRPARg1SffQXF7F9vtpFaOEgxbSrhuhDAV57gBZ+BBSf3e9ztXq99uMeZ/dRl73pWFf7vqOn6jfBhmYoRe0rwhsuLOZlu5p9tTv5/Gc4Ac7HEWMWN4ZW9AE6Q83Q8z6fHKKvQq+r10DmjrmoZEKx1Ta6yGItK7aYy7AiUvF4u+weV1evy37K4eip7yWzAmBCi4obwwyfta7oI8xAM8TYF/NwWbHevNXWNPYQNxwBF4Uggo4wg8q+CL0IuAg350Ec18H1oi0xjH3RMXiI4zBrVwZcDyxDy1DzPudnn+tjX2x32IQhfOmCEmBZMJDwGXQxLMYBbqSxz5AjDg4+b7wPH9DBMXz6fUCKOEAs+gwv+0gTw9jHBsd+cG+Y/uUDMUyHH3XYLBsGNJIvQq3PgwbEesQGGUDRR1i/Mez6eHEf9WJfOp0EWPi6aLkbQQIsLwYZ2aLFiekRqhwAJkPK8KJMtLhIdcr4PgnwwZECSU4Cejnq91G7Po7BFVvWx+n3xbwyHIcE/h9VLWRYHWXC/QAAAABJRU5ErkJggg==',green:'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALgAAAC4CAYAAABQMybHAAAltklEQVR4Ae2dCXQcxZnHR3NoNDp8SD7kU7bxFXCchBhMYoLNmhCcOBBykGw2gYTkPV6AhGXD2sTZJQcJG3jsgw3hscuCsTEsOAQW1sbY+MAHxpYtHzI+5EOy5UMStnWPZkZzab9/j75WTWt6NKO5Z6r82lVdXV1d9e/ffPq6uro7zyBDIhXIi7DyngjLyWJRKhDpCYiy2pwoztrpxSwCb+d1bayFm9f1Yu3+cj2MAgOJH2bXnNnEGiHWppW8d999d/inPvWp6YWFheNMJlOR0WgswdLT06PElFdM+xbn5eWVQDXK76TI7vP57H6/v5PyOxFjobwuh8Nx4dixYye+9rWvtaK4ZqFVNY/TiGUIoQCfsBCbcjaLNVHgJRUQG3/4wx9ali1bNmXYsGEzrFbrdLPZjGUagTyNAB2ZCLXoh3CJoD/p9XqxnOju7j7R1tZ2/LHHHqtbtWqVh47pp0X8AaAZbPmRzvnAJzPXhRBhVoBeunSp7b777ruuuLj4xoKCghsI5s8TcPnpIBT9oNwE/D6Xy7Xdbrd/8Oyzz+5+/PHHndQ2LfA5D3suA85QGwmMPLLQ+b///e/nkIW+0WKxLKBlLuUXpAPQEbTB5fF4KmnZShb+g0ceeaSKLLyb9gPgIvQRVJVdRXIN8CCo77777oI//vGPt5CV/n5+fv5NdGrhK2dDsLvd7k1k3f/n17/+9frly5e7qFM5CXsuAM5QI4a1Nh4/fvza0aNH/4PNZvs2rZfRks2h2el0/u2TTz55dcaMGXuoo7DoolXPajcmmwFnsBWoKysrJ02fPv3v6QLxH2hUY1o2E63XNxqhOUkXqq+eOHHitblz557pBV2EXW/XjM3PRsBFsE21tbXXk7VeCheELhKzsb9Rw0cXqT1wYciqP37FFVd8SBX4aMlK0LPphKMvirWm2FRfX//lESNGLKXRj3m0LoOOAjQas/Py5cuPV1RUbKQiDDrDrrNX5mRnA+Aq2OPHjzfv3r3766WlpUvIDfl85pyG1LeU3Jd9LS0tT1x33XVrzp8/76UWAfKMBz2TAUfbFbgJbAuBfUdZWdkSuvFyZepxydwW0I2lo83NzQD9rwS69mZSxnUsUwFXXZHDhw/PmTJlytNksedknPpp3GCy6FV1dXX/OGvWrCpqpui6pHGr+zct0wBXLDZ1w/TSSy+V3n777b+j+R8/pYtHAC9DrwIO9xHD5c5XDF5fS0ya0MWo3+nwvrBx47nfLLlvKypj0DNmaDFTAEc7GW5zQ0PDD4YPH/4YuSMJmQMSExVpsPPxhjsMHt/FuLWkp8dwqb3dt2zhnD2vUKXsnwPytAc9EwBHG01YDh06NIuGtf5DjoyQGmHC4XMLwmwd/Caft2fnmXr3A3d8Zf9hqgXWHEtaQ57Of9pViz179mwrXeE/MnPmzF0S7sEDGuueJnPevCuusO76sPq6R2bPHm2l+sy0gKG0NZTp2jCG27R27drx8+fPf4lu1NwQ6wnKlf0TZcFF/bwe//Z9uxw/vvfuj89Tftr65ukIOI+QmE+ePPllGgJ8UfraIloDp5MBOFoB37zxQvdPvr5gP24SsW+OsfO0CenkoqhWe8GCBQWXLl36Hd1de1vCnTas9GtIXp5h5LgJ1re3H7z2dwsWjMTUYlwrpZXLki4WXIV73bp1E66//vqVNClK3mLvh1RkGcmy4GJr3B7/zkOVXXfd86PD5yg/bVyWdAAcbVBGSY4cOTKPbtqsJqs9QhRPpqNTIBWAo4U0l+1yw1nXd29duH8nrabFKEuqXRSG20yz/hZPnTp1rYQ7OpjTqTRNUhwxtsK69t3tcxZTuzDCAsOVUiOaSsBxbAhgoZl/d02YMOF1SttokSGDFSCabeVj819/v3LOXdQNCy04xynjLFUHVuGmu5K/HDNmzHN0ux2/eBmyQoEe84gRluc2V13zS+pOSiFPBeAK3PQQQj7NQ36CZgA+Kh9EyAqqgzpBQ4h5w4aZH6URlidwrmljSix5sgFX4F60aJGNXmzzYklJyf1BqsiVrFOgqNh0/5ubJr24aFEp3M+kQ57MCwAF7pEjR1rpBs4KeuD3W1l3NtOkQ6kaRQnXfZfL/+Y3bqz7Ed3f6KZyPIwYbpe4bEuWBVfgphbn19TUPCnhjsu5y6hKCgqM33pr4+QnwQAtSbPkyQCc4bY0NjYupXeQ3JNRZ0Y2Nm4KFBab7tlSdc1SqjBpF56JBhwuEI5hOXfu3N30rOS/xk0tWVFGKjB0mPlfN1bOuRtM0AI2EuomJxJwNBx/iix0QfkNupJ+mtIySAUMpSPyn16z5fPfICnYkicM8kQBznCbq6ur59Pt9+U0FAjYZZAK4J6+aczE/BffWn/1fJIjoXc8EwE44Ea95vXr18+gt0mtpjQmx8sgFVAVIEgKJkzJX/2fq66aQZmAHMzE3ZInCnATPRBcNG/evJU0t2SI2iuZkAoIChiNeUM+O6d45cLbxxVRNv7Cxx3weFeIHwwaar148eJTQ4cO/SmlZUiyAuk4Dh5Ogs5O3wsLPrfnQSoT9zHyeFpw/FhQn+Xo0aPflHCHO6Vym6hASYnpp29v+dw3wQ4tYChuhjdegDPc5jVr1kybPHnyM2IHZFoqMJAC48Zbn/nzi1dNo3Jx9cfjCbh54cKFRfS42Qrpdw90OuV2rQLwx6/9QvGKhQsVfxyQx8WKx6MS/EgUv5vmGTw5ZMgQeadSe/aSvJ5pPrgoj73D91/zr97zEOXFxR+P1YKrrsm+fftupNmBEm7xbMl01AoUlRjvWb1u9o20Y1xclVgBV6w3uSVFNN79JL3LLuoOyR2kAqICYKhisu3JBQvG8tBhTIzGsjNbb8vLL7/8C3oxz3SxoTItFRisAhaLcfqyP435Oe0f86jKYAFnuM2vvPLK5FGjRuHRJBmkAnFToLTM8tCfnpk5mSqMyVWJBXBcWFro6Zw/0Z+Vwrj1TFYkFSAFwNQX5w/5N0rGNCFrMICz9bZ8/PHH+MbkV+UZkQokQoGiQtPX/rb+M7f0Qg5WwV5UYTCAYx/zrbfeWkw3dJ6I6miysFQgSgXGV9ieWHjrqGLajV2VqGqIFnC23ua//OUv99PnriuiOposLBWIUgGLJa9iya8q8HA6Ax6VFY8WcJQ30Sewh9DrHn4WZVtlcanAoBQYXmr62fe+NwGzUnHdFxWz0RRm621ZtmzZT+hF9GWDaq3cSSoQpQImU17ZnfeO+gntFvWwYTSAo6wZN3XKy8vvjbKNsrhUICYFykZa7r1mwUjc/GFXJaL6IgWcrbf5+eef/wH53uUR1S4LSQXipIDZklf+m99N/AFVx4BH5ItHCjjKmehbObaxY8fiDpMMUoGkK0BW/OezZxdH9YasSABn621ZvXr1HWS9Jya9Z/KAUgFSID8/b+KjT02/g5IR++KRAK5Y73HjxuXT8oBUWiqQSgVGlVseoCnZfHdzQH4HKgDrjcX8xhtv/B1NqJqays7JY0sFLPl5U59bVbEQTNLCfOoKEwngGHs0013L78npsLo6yg1JUgAMjhlb8D0wSQvYBOS6YSDAsd30/e9/n54hHrpItxa5QSqQRAWKh5gWffWbY4bSIQF4WIbDbcQvA9vNS5cuvY2es8TVqwxSgZQrYDQabHffU34bNWTAIcNwgGObAjh9P+c70j1J+XmVDehVACyOLs//Dq0y4Loc621g59301FNPTSwsLPyiVFcqkE4K2ArzvvjPv52GIWv2w0P64uEAV6z34sWL76BfjF65dOqzbEsOKQAm5/9diWjFowZcGT2hx9G+nUO6ya5mkAL0WBsDzla8X+tDWWa+uDStWrVqBo19T+u3l8xIawUsplFp3b54NY7mik/703/MxNtpeTSlnxWHk64NKuCf/exn58uLS6086b8+3Pqg4WDNHw0O5yf9Gkuf9+sX6N3twXmaVWwMkUWv+Q7eLVShHk1mv310Kg9Vrt/h/PStQoN/PlVxhBYYa7AbVCwc4PQxzxHXS8ANhkZ7jaGq8W8Gh6ed9MuM4C2ebrD7Jhp6CIJsDr481/UGw4nnqY8MeFB3tYDjF6BY8KKiIjO9qeq6oNI5urL+1L8bOt2XM673PrPf4OjwZDXk/p6e68BqV1cXAx5kxUP54MgzrVixYpbJZCrNuLOagAZnItyQwWQ2GgppXlKeEec8OwON75V+/YErZlHv2A8P6qieBTddeeWVX5LuSZBWGbnCkDs7PQa/PyO7EL7RZI5HTCj+EhXaTwt7IKpfprXgintCBU3kf8+TgIfXNlO2AnJbicVAt7izLoBR2xDLPOoYW/CgP1eiBWf6TXRrPp/877lZp0YOd4ghhyUPNUKRydJYbaa5IyYU5l8+53BRP5hjxYprf9NYNz7zzDOfpl9GSSZ3Wra9vwIMORm9rArUn5Kbfzzt09QphV+xcyEt+Pjx42dK90SUKXvSDDksedYEwnrYyIKZ1J89tOhacN5gpLnfU7Om87Ij/RRgyLPJiFlsZjALC84cK/1GBgdswLqJZg9OzabOcwdl3KcAIC8oNuMtrn2ZGZpCHyxW0xXU/H4Xmgw49xLrRgJ8Sob2VTY7CgVUyLNgnLwXcIXfXgkUpvv54KWlpeaCgoKKKHSSRTNYAQXyIrPB1eXVzOLIrE5ZrcaK0lKbuaXFCbDZYCsuCfcEmcbf/va34ym2cqaMs18BhjyTZ/3TmKB17ncngV1Y8X6AM/XGq65SPsaZ/WdV9jBIAUBuLSSfnPFgIjIoHj2pCFO7xR6oFpy7YRw5cqS8wAw69bmz0gc5cMiwQE0uKrH0G0kRfXDFQbfZbBMyrGuyuXFUQIGc3p/Q7fSRT65O6YjjERJXVX6hCewqHPNRsILAFjyP3j2Iz0XIkMMKBCA3ZdwQosloBLsqyziFogXHBiNNkS3OhrFRdE6GwSsAyPPJkrvJkmeCHVeYNeUBcPbBlc7ziko9AY6XjMsgFVDmkysXnqAjAwIN54NdlWWkRQuOLuRJwCGDDKyA0ZRnsNrM5JOn/zi5yZzHgHPz1VEUZCjkS8BVbWSiVwGGXCEkjVUxGlXA1b85bMHVDAl4Gp/BFDaNIXe7vGk7uEL+iOheK0zzKAqkkxY8hQBlwqEBeX4BJmilZ2uNRuX6UeGYW8gWnNelD85KyDikAgy5uzv9xslNRvUiU217PwtOW7TQq4VlQioABRTIrTQzNc1MeU9eD9gNacHVPzper9dBH3mVj6tJlsMqwJB7yJKnyzg5vTXAITRaYZrHwdV8n8/Xpa7IhFQgjAKAnOZhp83gSo/foGVXGQfHD1D9EcKCh+mT3CQVCFKAIfe6yZKrFAUVSdqK39cjsqtwLfrgaEiPtOBJOx9ZcyBAbs7H3JUUd8mnWPCgn5l4QalskICn+CRl6OEVyMld8brp9VkpMuU9fj+7KCrkIS14v9fpZqjostnJVYDuJJIlJ6RSYMrBrK9HAVyFG71nC45MZZE+eHKhyLajMeQ+jz/phtzvy4MPrrIMbUULzoDbs0102Z/kKgDITRZj0g253+8Huwy40mm24KoCTqezBeZezglXJZGJQSgAyA0EOSx5MgLcfp+7p0V7LLbgTL2/tbX1tLaQXJcKDEYBtuSD2Xcw+zg6u8EuflHMs+KiYAVByTx58mSdvMgMCCL/j12BpEFO9Laed9Yxx70t72ELjnUF8DfffFMC3quOjOKjAEOeyMEVfOyqevtFLeD9RlH8GzZs6Ozu7r5E81FGxqd7shapAI1mwCen5zz93sT45H5Pz6UTey52ktb9XBTor1jv3o1+u91+RropkEWGeCoAyI0EebyHV8Bqt8t7htoKuEMCjn4AcqWAw+E4jQwZpALxVkCBnG7tK5DDZ4nT4nb5wawIuNJ09sFFC+7DSIq04PE+tbI+VoAhj5dPjiHCbrsXgNNTGMEWXBwHVyFvamqq48bIWCqQCAUAeQ8ZcJoBGHP1+KF0NHvALCw4c6zUG8qC+995551DNOkq9iPH3HRZQTYrgJuJmKQVa6CvOffUfNhwiOoRXRSFXwYcx0AGCvjoI7CX2tvba6WbAllkSKQCsUKuXGB2eWsr37twidopuihKs7WAM+Te5ubmSgl4Ik+trJsVYMgHMz0E/ndXm6eS6qI3E+m7KHwsxYLTiq+2tna3BJxlkXGiFQDceDe5EiMd6UIPzLU0OneD2d4FDKtBz4L7li9fXkmzs4IKq3vJhFQgAQow5NFUTYT696w5DwsuuieK/416QgGu/BLWrFnTSn54jbTi0cgty8aqgAo5rj0HWHB7vtvhqTnyUVMrlWYLDrhDAo62YQOsNvwZLw0X7pGAkxIyJFWBgHsy8CHhf9tb3Pj4q8IrxWBXhRs1iBYc6ww4fg1e8sN3ScAhiwzJVoAhJ1dc/2YnNaq5oWsXRQBcdFHU5oo3epAJwBly79NPP73npptuchUVFRWoe+RgwnXRZmh3YBQqu4OuMQuyiX0a6GQHCuhs1D1GX7VBKVhp7APgtfvSS4dcm1bUsQVn6x105FCAo6Diz3z00UedjY2NW6dMmXKL0ag19kHtiHil9nyj4b2dVYaOLvEVFhHvnpKCXs9XDUa3m44dpF1QW7TiB23UWdHdR+cw8DlDBlCgE/S30A5h9tOpLubsaG/r6JWnJ+gNrtbmrRdO7sYMQva/GXK1nVrAsQGaoCDMvufgwYP/N2nSpLgB/sJb6w0tHWhTZgV3t4teidBNjYbkkEhPem2/uCyjpt1fu127f7LLa4+vbZ+2Pdry2vWB9tdu1+6vPV6gvN/vMzTUHv8/Ku2hBaz2gxs1hTLLqIEB995///07aPpss661QS1RhEyEG93LtxbQKxH4+7gQPdLAZRGLad5fzOMyYoxyXEZMi2XEtFhGTItlxLRYBmltQFkE3ofTSmYE/w20v3Y7H4dj7fECrorP42mu2rZhB23VvcDEnuEAh9n30MxC5/nz59+LF+A4aKaGAOT5wbxpO6M9X9jOedqyqVjntujxo21Tostrjxfheldnx3tuu91JxWHBQ15goqpQgCMfFpytuGfTpk3v0PtSkJ/zAZBbLL2QMyRiDIUYCjEtlkllWmyTmNZrk1hGTMervF49YfL99JbNpvrat6k5onsCXvsFPcDhpuBXofjhS5cuPdzW1nZKWvGAfhaGvJ+cMiPRCoBBj8t16tCOTUfoWAw4WAWz/UKoi0wUQmGGHJW4aUx8TVlZ2YP0DR9sz/kAyBG8HsgjQ7IUAOD2jvY1dDwMa0F8hjsk4HoWHO2FyVet+MqVK9+hh5Hl2YQyvQGQm/PJXQkXcKcCge9YcFrJDPFftOVDVJFWWdH2Z4Dy9PpjT92R/e9QH8EiPAwwGtI9oXxdHxzb8ItgP9z90ksvNZ45c+ZdOf8K0vQFC42sKJAzwNoYRfmkiWltOV4Xy4hp3p5psdgHMa3XD7GMmKbyALKrs/3dMx8faKQkLDgAB6MhrTflRww4fi3uV1999QWy4rq/FlSYi0GB3GLJxa4ntc9+r9d/5tjHL9BB2T2JCXA0PsiKP/nkk7Vnz559X1rx/ueVIQ9z8a+OJMsygYGmaHTAXVdnZ+f7x/bsqO0FfEC4cZbC+eDYDmutuimU7v7rX//63x6PR/dPAnbK1QDITcoQYq/fDSHwp5hjMR3I7b9d70+3Xj7XPdj6Yt1f266B6htou7a+3nW6c9lTf/Lwf9PuuJ0suidhPYqBAEdzUAEcecVN+cMf/nCMrPg2acUhTf9goYtOk5ncFT5RKII0B07rbedykcax1hfr/tp2DlTfQNu19dE6Rk4c9o5th3d+cIxW2T0Je3HJ1UQCOKy1Cjilu9etW/c8WXGuQ8YaBVTINflydXAK+H007+TUyedpb7begA9MDuhJRAo4W3H8erqXLFlS3dDQsEtacVJDJ0jIdYSJMhvW29nVuevAtvXVtCsDztY7LoCjSWzF4dgDctfatWufkSMqkEY/AHIzja5gLjMHTgcm9AfyOQ9lOM3bo43FOsS0Xj1iGaQHCtG2D/XxPmKa2yPmiWne3uP3+Zvqjj9D21y0gD0wGJH1pnIDXmSiDAIAD7rYfOihhw7Su8TflnNUFH10/zPTRafJbFZOMp9ojrETp/mEinm6lYbZEG192vLcDr042vZp69fuH247psR2tDS/XbVl/UHaj613RKMnLFEkLgqXZSuuXGzigA8//PDT9GByK/6MyKCvAEOuX0Ju0SoAprzd3a3VO9Y/TdsY7oh9b64vWsDZF8cBXZs3b75UWVn5Z3nByXLqxwHI5c0gfYWCt8B6Nzde+HPj6dN4VhDuCZiL2Pfm2qIBHPuIVlyB/Pbbb3+THmurlhecLKl+DH9cHULkYuyfI45kwX68j5jmfcU8Mc3b4x2LxxDTescRy4hpoTwezXN1dVVvfeuVN6kIwx219Ub1gwGcrbhysYkGrFq16jGXy+WTrgokDR8UyE00iZNPKIojHWngsnr7D7Q90uNEWi7a4w1QHgz5vF5f3ZEDj1ETADdfXEZtvdGFaAHHPgw4flGKFX/00UePHDt2bDW9kRbbZRhAAYYcWMslWAMDPcxgb768mm7qYL631nqDvajCYADHARhytuLOBx544NnLly83SlclMv0BuZFGV2ToU6CH4HY7nI37Nr/3LOXicTSt9e4rHGFqsICzL66Oi+/du7f5tddee5g+f+KRrkpk6pvplr4CObsbORwDKBpy9pyuqX74YkN9M60y3FGNe2uVHyzgqIchV604DRvuI9CfpRtA2uPIdR0FFMjlU1L0pQcvjZo0PHvggw37SCqt9QZrgwqxAg5XRbXilHbdcsstK+vr63fIG0CRnw+GPFf9cbpbaejqaNuxZfXylWCod+G7lmAsJYDjDOLgWPiCE788x4MPPvgb8sc/kf44qRFhCECeez45/O5up/OTqo3v/oakwuvOwBBcADDFfFFycCEWC85HRCMwfIJfHBrnpBtATa+//vqvyB/3Sn+cFIkw4Ja+URxCzHKfHGaZ/tJ76SmdX9FrIJpoVeGHYrDEw4KUHHyIB+BoJxrDrorSSHrVRNWePXuegz8uIY/8BCmQG7P/zQVgAn735aYLz+3fsq6KFBLhjunCUlQ7HoCjPoY8yFVZtGjRcpqQtdGtvLhSPKxMh1MgYMkBefZ65TRJ0NDZ1rpxy2vLl1NHta4JDCaYijnEC3A0hCHnURU02rF48eJ/oYvOvRLy6M6ViVwVoymepye64yeytI8sd1dH+94tb6z4FzDSu/CwYNzgRh/iqSAAF/1xNNhBX4nouPPOOx+iByRq5KQsSB55YMizyRXHiEm3vbNm99o3HnJ2dHSQGgBchBsMxcV6Q+lEOHtonNjAPILcW1dXt3P+/PkLPth/eGgePqclQ0QK4L3synvBs2BKMmYIuhz2c/s2rf1ZY33tJyRAFy0MONzbuFpvCJwIwFEvQhDo5It3d3Z27naYCm6mGXWFPNE9UFT+H04B/vhAgPHM9Mv9fvpglNPZfGjnpntOHzl0lvqrhTuulpv1TBTgogVX0wcOHOiix7j2Dx899is0HJYvIefTMHCc1/uFjUwckcL9EHphpv34gY/uq9nzUU0IuGG5AXjcQ6IAR0MZbI6VxjfV17UVlQw5OqR0xEKah2GRkEd+TlXIIW2GGHK86tjtcjnqjx74pwNb38dteNFyx228W0/FRAIuHhOQq6BfqD1+0WIp2Dds1KgFNCRmkz65KFX4tAp5Bvjk8LndDkfriQN7fn5g6waMdTPcGPNOONxQMtmAq6DTnasWn8e1s7R8wvVkyEv4xKFRMoRXQDUIiiGnz16n4b8eGud2d9kbqnd+cC+9bu0o9chOCwBnuHEzJyF+N9WrhmQBjgOyBVchv9xwobOro3XbqPGTrjVZLGV8MaW2TiZ0FQhATlKyqrolk78B49z0HsGT+zatua/uyMHT1AKAnXS40fNkAo7jITDgStx++aKz+cLZD8onTZ1NryEeA59c+uUBoQb6X4UcBdPAJ8dwJt5CRTMDD+xY88YvGs+caqCWad2SpFhu1i7ZgAfBTY1Q1umdz+7zp45uHXfFjCn0AstJeUYJOZ+ggWLVXUmxKcesQHqWkm6/t2zd+saKJW0Xmy5T2xlu3MjBDMGkwg3tkg04jonQD3S60vbVVh/cPmbyFGu+rXA2+eRkyGGWZBhIAdYpYMST75H30Bg3fcqlp62p4eWNry7/N3rVWju1WYQbF5RJhxu6pQpwHJsh5wsN+nit13+quupA4ZChNSVDh881mkw0wiKtOcQaKEAnCJrMoMwIpJESj6Orlaa8Ltv2v6++QeeQLybFO5QpgRtapBJwHJ8hR6yCfuFUzQX6U7d5RPn4K8kvL5cuC6QaOKiQJ8EfJ2/bgItJR3vbwb1b1v3iaOX2Q9RCWG223HBJxKHAZP/+FMHSBXDAzYsCPV18dp06eGBjecVkk7Ww6DPSZVHO14D/sbsyYMEYCuDOpNfj7mlpOL9yw6oXf996sQFvn4LFZri1k6diOFpsu6YacLSef9lsxVXQ6c+d79ShqoN05/NI0TByWYxwWWjAQPrmYc96nz7xNeWBhxRofNvpbDl7rPpX2/73f97qdUkYboxx88Vkwm6/h+28ZmM6AI4miZCLoCvp86eON9ibWzYPHVk+mlyWKXBZMC7WdyI1vZKrvdqwrLEJArAxSoJvgna0XNpctXntkqOVHx6mWtliA3DtDRwYqpQHkJJOAe3BXFr88PCmSist+OKqjZZCpK+55bYvVEy78pcFRcUT8eRL3zAZbZWhnwIAM5bAw3/dXfaz9SeO/vve99fsovrggjDUPATI011xwPj8smJpeO++6QY4mhUwzwHI8Zg5vrQKyBl0W0FJSfENt/39D0pHj73LYrVayXWR1pwE0guBGYjRMaeOkNBDtc1NDSs/XLP6FVdnJ0ZIYKmxAGz2tTFKwnO5ozsQ7ZjIkC4uiraPLBJiLLAK7NP5vG63t/bQvkMOR8emoWWjx9Fr0CZKt0UrYd96nyvHtkM/xhwudkfsra0fHtz6/j/v2/zuB6S5OPwH6y3CjfMT25+KvubGNZWOFlzsINrHLgtbc7bocFsUyz7vq9+6oXzK9PsKCgsraE6L4rb0nVSxutxOByx5aA3Yz/aRn+1yOOobT598dte6N7dTabbUbLUx9Mc3btjosEEKXXkKc9MdcJYGkDPo8M0BOfvnCuRms7lg7uJv31Q+ruJOa1HxVLzcEv65BJ0lDB0z2LiAJD/7VNOF+pcr1/5tE72uhMHmmMe1RV87La222NNMARxtZmsO0GHNGXQAzrAjtn5x0Te/VD556p0FxSVX4Y1RmIorQSdlhKCAjfFsL1lse+eRptOnXv7ovbd2UBGAjAVgcwyLDbD5jiTATlurTW1TQyYBzo1Gm3HtwKDDmrNFVwCndSW+5uavXzNu8oy7CocMuRpfVgi8hiF3hxcDLgpm/GFilMfg6OjYf+H08ZU0MrKXNGOwxVh0RwA1X0hSMjNCJgIOZdFuLKLbAovOQ4si6PlXz7959tipM28rKhm2wGzNL8TrGHLlopShxoQo3Fr3drsdXZ1tWxtO1byzf9v7uL0OiEWokYa15kX0szPCalPb1ZCpgHMHGHIGnV0XBp0tu2Lli4eNKPrc/C8vKC0v/0phybA5NI5uogldivuSbePpGAkB3JifjU+CODrbqlqamjYc2LZxq73tMm7QsHUG0Aw5Q83DfrDaGeOOMBRinOmAc1+0oPONInZfxFix9BOmXjVq+py5Nw8rG/kVmp47lV+XFvDVM8+NUS11H9R0S91xqq350oYTVZXvnzt15CKJxQAz3GKMbbDWbLEzGmwRDE5nQ8ygIwbksOhs1QE54NbG5qu+cMO0cZOmXW8bMvTqgsLiWQS7FW95hc+ersAHA+1XXmRJlrqbXqxz2NnRvv/CmZMfHtm1/ST1F9YY8ALmUDG2s8WGC5IVYFM/lJAtFpz7wzH6xbADdF4AuBZ4xaJTvrKtoLjYOuvaL80qGzPx8wVDSq622Yo/ZTSbLLhbqjwzqsxPp9JKCMiXqBGaAMQ4UMD1xU0Y8jsMmM2HJ9ZpLprH6bQfc3V07m9uPLvv8J4dh112O1wOhhpA88KA8za21myxldqpfFaFbAWcT5IIOvx00VcXrTtDznkcm4aWlRXOuGbeZ4aXjfm0xVYwMT/fOtFsLRhnwsMYyvCjUQG/76KVD62NtVIHoNWWUiAmoHFRCJAVX5pi+oKdk+zzBbe7+6zH6Trb2tz48fG9O6vbm5txVxGQsiXmmMFGzHmIGWjRvw7dGCqc6UGreqb3J1z70VcAzjFbddGVYbC1sVhW+aFUzPzMqNETJ1YUDyubaLUVVeRbrRNMFnOZyWguzAvAj9fToZ6AmwPLjxUKCk1EMltoir30OJOjhyD2+b0On8fb7O7uPtft7Kq3tzWf/eTs2fr6mmr40AylaH1FeEOlxbLsfnCstCeb/2PNs7mP2r6hz+ICeNmycwwwGWqGnde5jBgjjUWsN4/cHfPQ0lFF9PidzVpUWFRgK8KMSIPL2eXo7qLRuvZWZ3vLxS5yKwAmuwgcM8yI2eqKMdIMNEOMdbEM78t1ckzFciPkIuDimQ0CkjYwqByL8IuAY7u4jcujPqS5XkoGpbEuBhE4TrN1ZcC1wDK0DDWvc3mOuT6OxePmTDrXARdPNGvBcCLWgsvrDDEgRzmOOT9UXTgW5wM6BIZPuw5IkQeIxZjh5RjbxDTWsSBwHFjL0f9Z8BztfthuszaIwy0i1NpyOIBYj3hABlCMkdYuDLs2X1xHvViXQaMAi6/Jlqs6CrBeDDKKhcsTt+tUGQQmQ8rwYp9weXp1yvxeBfjkSEFiU0Cro3YdtWvzGFzxyNo87bpYVqYjUOD/AZrbm7Ts1rpFAAAAAElFTkSuQmCC',red:'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALgAAAC4CAYAAABQMybHAAAk/0lEQVR4Ae2dCZxUxZ3Hq8/pnhkGmOEQuQS5VCTxWHEDBlyNkciakMMkxujGuOvHO24IKCae0UQlKwmyroocoqtozGpA4oFiVAQU5IaRcchwDsPczNF39/5/b+bfVL/p7ume6bur+DyqXt31r2//5//q1XvPIJRLpgQMMVYeiDGfyhanBGKdgDirzYvsLLtIPguB0/lc7+vh5vNIvr68Oo8ige6EH6Vo3iSxjODrw1rcm2++2f+MM84YV1hYONRkMhUZjcY+OAKBgOZTXDGVLTYYDH0gNYpvIa/V5/O1+v3+FopvgY+D4tra29uP7N27d98VV1zRiOy6g06DcRyGr1wYCfCEhUnK2yiWiQYvSQG+8ac//all3rx5o/v16ze+oKBgnNlsxjGWQB5LgA5MhrToh1BL0Fd4vV4c+1wu176mpqYvHnnkkf0rVqzwUJt+OuQfALrBmh/hvHc8mfkuCBlmDei5c+fab7nllguLi4svttlsXyeYzyPgrJkgKPpBuQn4LU6n88PW1tZ1ixYt2vjoo486qG964PMe9nwGnKE2EhgG0tDWBx988HzS0BdbLJbpdEymeFsmAB1DH5wej2cTHR+Qhl937733biYN76ZyAFyGPoaqcitLvgEeAvX1119ve/jhhy8nLX211Wq9lKYWtnIuuFa3272WtPv/3nPPPW8tWbLESYPKS9jzAXCGGj60tfGLL764YPDgwT+x2+3fp/MyOnLZ1Tscjj/X1NS8OH78+E9poNDoslbPaTMmlwFnsDWoN23adNq4ceN+TBeIP6FVjbG5THSksdEKTQVdqL64b9++lyZPnlzVCboMe6SiWRufi4DLYJsqKyunkraeCxOELhJzcbxxw0cXqQGYMKTVHz399NM/pgp8dOQk6Lk04RiLpq3JNx04cOAbAwYMmEurH1PoXLkIEqDVmPV1dXWPjhw58l3KwqAz7BFKZU90LgAeBHvYsGHmjRs3/mtpaekcMkPOy55pSH9PyXzZ0tDQ8NiFF1646vDhw17qESDPetCzGXD0XYObwLYQ2FeVlZXNoRsvZ6Yfl+ztAd1Y2lNfXw/QXyHQ9TeTsm5g2Qp40BTZtWvX+aNHj15AGvv8rJN+BneYNPrm/fv3/2LixImbqZuy6ZLBve7atWwDXNPYNAzT0qVLS2fNmvUA7f+4gS4eAbxynRIwHN8ozDseFQZHTW9l4m/3BBa/8nnDfT97vKqBKmPQs2ZpMVsARz8ZbvPRo0ev6d+//yNkjiRlD0hvqUh3ecsrpwtD2+GEdcMfELUNbWLewNniBaqU7XNAnvGgZwPg6KMJx44dOybSstYf1coISSOKsy4tiJLa8ySPX6wvrxN3TLpX7KJaoM1xZDTkmfynPaixJ02aVEBX+PdOmDBhg4K754D2tqTFKKacPVhsOPEnce+kSQK/IjMdYChjFWWmdozhNq1evXrYtGnTltKNmq/3doLypXyyNLgsP49XfPhOpfjZzCcEbKGMtc0zEXBeITFXVFR8g5YAn1O2toxW9+FUAI5ewDY/UC9+PvrXAjeJ2DbH2nnGuEwyUYJae/r06bba2toH6O7a6wrujGGlS0eMBjFw1ADxetMT4oHpZ2lbi3GtlFEmS6Zo8CDca9asGT516tTltClK3WLvglRsEanS4HJvXF6x/v0vxHXfWigOUXzGmCyZADj6oK2S7N69ewrdtFlJWnuALDwVjk8C6QAcPSSTpa6iTvxwwm/EejrNiFWWdJsoDLeZdv3NHDNmzGoFd3wwZ1JuMlkGjBsoVlf9TsykfmGFBYorrUo0nYCjbQjAQjv/rhs+fPjLFLbToVwWS4Boto/sL14++ri4joZhoQNznDbO0tVwEG66K/nLIUOGPEW32/GLVy43JGAeUiKeqvsv8UsaTlohTwfgGtz0EIKV9iE/RjsAH1IPIuQG1SGjCAhDWaF4qHmBeGzwYIG3EaRFk6cacA3uGTNm2OnFNs/16dPn1hChqJOck0CJTdxaeY94bsZkzfxMOeSpvADQ4B44cGAB3cBZRg/8fi/nZjNDBpSuVZRow3d4xGsjHxT/VlsrXJSPlxGjFUlIWqo0uAY39dhaXl4+X8GdkLnLqkrsFvE90uTzwQAdKdPkqQCc4bZUV1fPpXeQ3JhVM6M6mzAJ9LGJG+v/IOZShSm78Ew24DCB0Ibl0KFD19Ozkr9JmLRURVkpgdIi8Zvqx8X1YIIOsJFUMzmZgKPj+FNkoQvK79CqyQIKK6ckIE4pEQsqHxbfIVGwJk8a5MkCnOE2b9++fRrdfl9CS4GAXTklATwiYRpVJp7bfb+YRuJI6h3PZAAOuFGv+a233hpPb5NaSeHkPGJCFSuXnRIgSGwTBomVb/2nGE8jAORgJuGaPFmAm+iB4KIpU6Ysp70lJdk5BarXyZaA0ShKLh4tls+6QBRRW/gLn3DAE10hfjDoaMHx48ef6Nu37w0UVi7FEsjEdfBoImh2iMX97hR3Up6Er5EnUoPjx4L6LHv27PmugjvalKo0WQJ97eKGLx8U3wU7dIChhCneRAHOcJtXrVo1dtSoUQvlAaiwkkB3EqAngxauuk2MpXwJtccTCbj5kksuKaLHzZYpu7u76VTpegnAHr9svFh2yQTNHgfkCdHiiagEPxLN7qbnKOeXlJSoO5X62UvxebbZ4LJ4yB5/muzx2RSXEHu8txo8aJps2bLlYtodqOCWZ0uF45YA7T68cfu94mIqmBBTpbeAa9qbzJIiWu+eTy9Wj3tAqoCSgCwBIETr4/OnjwsuHfaK0d4UZu1tef7552+nF/OMkzuqwkoCPZWA1SzGvXS9uI3K93pVpaeAM9zmF154YdSgQYPwaJJySgIJk8DgvmL2C/8hRlGFvTJVegM4Liwt9HTO78k0KUzYyFRFSgIkATJVCq88S/yOgr3akNUTwFl7W3bu3IlvTH5LzYiSQDIk0KdAXEEbsi7vhBysgr24XE8ARxnzlVdeWUw3dB6LqzWVWUkgTgmMHSgeu3Ky9oFeNlXiqiFewFl7m5988slb6XPXI+NqTWVWEohTAhaTGPnMLIGH0xnwuLR4vIAjv4k+gV1Cr3u4Kc6+quxKAj2SwIA+4qbrpwjsSsV1X1zMxpOZtbdl3rx5P6cX0Zf1qLeqkJJAnBIwmUTZ/TPFz6lY3MuG8QCOvGbc1DnllFNujrOPKruSQK8kQG/Kuple0Yx942yqxFRfrICz9jY/88wz15DtfUpMtatMSgIJkoDZJE5Z9mNxDVXHgMdki8cKOPKZ6Fs59lNPPRV3mJRTEki5BIb0FbdNOj2+N2TFAjhrb8vKlSuvIu09IuUjUw0qCZAErBYx4i/XiasoGLMtHgvgmvYeOnSolY47lKSVBNIpgWH9xR0lJcG7m93y210GaG8c5ldfffVfaEPVmHQOTrWtJEAbsca8f7O4BEzSwXxGFEwsgGPt0Ux3LX+ktsNGlKNKSJEEsJ121CDxIzBJB9gE5BFdd4Aj3XT11VfTM8R9Z0SsRSUoCaRQAn0LxIyrvyb6UpMAPCrD0RLxy0C6ee7cud+m5yzV50VIGMqlXwL0/Kb9nsvEt6kn3S4ZRgMcaRrg9P2cHyjzJP0Tq3rQIQGYKSP6iR/QGQMekeNICdDeOExPPPHEiMLCwq91VK3+VxLIDAkUWcXXnrhaYMma7XDw2sVFA1zT3jNnzryKtHekfF0qVBFKAqmQABFpnDUxRIvHDbi2ekKPo30/FR1WbSgJxCuBwcVBwFmLd6kinGbGLwHxphUrVoynte+xXUqpiIyWQKBoWEb3L1GdozXxsS/9u/Z2Wl5N6aLFYaTrXRDwr371q9PUxaVePJl/3nzef4uaN28S7hNHunQ2EOgSRa/r1rkuEXild1enr6unecJVHktd9OlwaOJp1LPddEApg92QotEANw8YMGCqApwktmen8K9cIURTI8kv810BdXGI72JR73LR9+ND5jvzOx9nD80u11QhVj1DxRjwkBr0gOMXoGnwoqIiM72p6sKQ3Hl64nv0fhGoPZ5Vo8ff7P5+v2jw+Eil5S7kfQKBC8FqW1sbAx6ixRGpd4gzLVu2bKLJZCrVJ+bjebbBzXNkoTsipfRQo0HTWRybWz7BWvqHkYMn0qjYDg8ZoB5w1uCmM8888yJlnoTIKitPGHIj3R3hyc0lHwCPLbRdRB4A56EF5yoc4Igzkf09RQEelFNWBwB5f3okJhfnE2MqNZumgFk6wC4gDzoZcKbfRLfmrWR/Tw7mUoGsl0Ao5DzVueEXmUyThxcW8heUeVDanMmAIwLnxoULF55Nv4w+Wg71X85IgCE3AoEccjScPr8ZderZNCSNX3lo8ioKk28aNmzYhFz8cyYPPF/DHZAbRKPXmzNrK6B6qM0ygbxP6WCOtaUjWYNzgpH2fo/JVwDyYdxmUuH9zWZN3eXKePuYjGAWPDPH2tD0GhwZTLR7cIzS4Jp8cvY/QN6PIG/KAU0OVouMxtPBLh0MuTZ3rMFBPRzOjQT4aO1M/ZfTEmDIc8Emt5s0wDV+OydNY5oBR5ym2ktLS802m21kTs+sGlxQAoC8r4nMFZp9DQAGIct8m9EwstRuh0XCw9DGqAfceP/992MrGrYzKJcnEjgJOdjIUhcQBbcPHQx2wXRwIGyDM/XGs846S22PzdI57k23AXkJmbAnfNm5dwUAn1mkbe3+ohNwRAVYgwcBHzhwoLrA7A0pWVxWg5xe5Wo8qQCzZjQAuNRs7rKSwhocAwHsRrvdPhwnyuWnBAB5H9LkLZomzy4ZFJmNYFfjmHuu1+AGevdgMScqPz8loEGuafLsGr/ZYAC7bI3A1x6751EgwkhbZIvVGjiLJH99QF5Mmrw1SzQ5mKVFcAAOpa3BjdnjkyD1BDheMq6ckoDQNDntQsQSYjY4ghzsBllGWLbBMQaDAhxiUI4lYCLNWEzmiqbJM/zBIKvByIBz9zUNzica+QpwFofyWQIMObGe0c4kAgx4sKeswYMRCvCMnsO0dY4hb/P5M/YZT7NJ0+AsI41pXkVBJCKUicLiUX4XCQDyIhNWyYP6sEuedEZE0+DcLwU4S0L5YSXAkLdrmjxslrRFGmOxwal3bLakraOq4cyWACAv1DR5ZvWTVlHArmaJcM/YRAn+zfF6ve2cqHwlgUgSYMi7rDNTASYs1b7PH5DZ1Zjm/gXH4fP52oInKqAkEEUCgJz2YWeMRU6Xv3p2NZWO1c3gCqfS4FFmVCV1kQBD7qS3aKX7LXE+v1/W4BrXbKJwxwNKg7MolB+rBAC5jd69Ql5anS8goMGDyhqdkS8otQQFeFrnKGsb1zQ5Qa5p8jSNwm8ImihByMNq8EC6/9akSUCq2d5JAK+H0zR576rpUWkwSyuXETW4Zq9QzQFlg/dIvqpQpwQYche9vDvVb7X1BgRs8CDL6JKswbUEAry1s6/KUxLokQQAeQFtQUz1HU96FzrYZcC1vss2uBbhcDgaoO7VnvAeza0q1CmBDsiFcPlTIxJQ7aTXoetbYw3O1PsbGxv/oc+kzpUEeiKBk5q8J6XjL9Pk9YBd/KSYZ81EwQmcFllRUbFfXWR2CET933sJAHKrZq4k9w4nelrldOwnLwg3wqzBka4lvPbaawpwSEO5hEkgCHkS18kB72v1zXrAg+vgTL3/7bffbnG5XLVms3lgwkaoKsp7CQByC0nBo+nRxIvD7ffXrjve1EI1dzFR0FoQcGRobW2tUmYKxKJcIiWgQU6gJ1qRg9U2X6CK+gq4wwKOcQByLUN7e/s/EKGckkCiJQDI6fUOCd9x2O7zgVkZcK3rbIPLGtyHlRSlwRM9tao+loAMOcf1xge8TT4vAPfREaLB5XXwIOTHjh3b35sGVVklge4kAMhhqngTsC0E9dR6fGA2BG70IZwG97/xxhs7aNMVgFdOSSBpEsDNxA5zpXdWuY/MjVW1zTuoowA8BHIGHIMA0Ej00Udga5ubmyuVmQKxKJdMCQByE/ENfd6Tf6C2xR+ofPFITS31UzZRtG7rAWfIvfX19ZsU4MmcWlU3SyAIeQ8UOYCt93g3keelI0R7o34ZcJxrGpx8X2Vl5UYFOESiXCokAMgBI3lxHTDkqxyujVQU2ps1eLDLMuD4MbAG9y1ZsmSTn1wwpwooCSRZAgx5PM3Qg3L+JTX10OAMN3OsVRMOcO2XsGrVqkayw8uVFo9H3CpvbyXAkMNa6e7AQ6DNXl/5W8fqGyk7a/CIgKNvrMFhz3hpufBTBTjEolwqJQDIAXd3DrDWuj34+KvGK/lsgweLyhockQw4fg1essM3KMCDslKBFEqAIY+mxdGdynbPBvIAuGyiIElz8o0eRLB6xy/Bu2DBgk8vvfRSZ1FRkU3Lnaf/VRaVCM/xmpwffSRlBijCuUjxyBsxLUJCpMfbkB39AvD6/jn8fufjh46wBmftHdJCOMCRUbNnPvnkk5bq6uoPRo8efbmRnphOhGvbWiGO/c9fhaeuORHVpaQOt+8rwlmCb7uHyC6k7UgpUctEKBStTEijnSf6iZfzRGhCyxJvO3K96Q7T42mi2nnig21N5dhByPY3Qx7snh5wJEAmmgYn37Nt27a/nnbaaQkDfP+dTwp3dT3aySrn9HtEu9+r2YYQUCw2IgbIeRk0lOO4cOmIk12q88ttI8x9jdR/fX79eXfl9en68pHG7w34xW5nzV8pv4cOeQ08pIpwahltMuDeW2+99SPaPlsfTUuE1NjNSTbCjSEVGS2i0NihD2KFG+U4L3w5jDQ4OY7zyL6cRw7LeeSwnEcOy3nksJwHYb1DXjguw2EtMob/uiuvT+d22Ne3h3iw6Az46he37PyITiNeYKJsNMCh9j20s9Bx+PDhvyUKcDSarQ6Q2wnyaNf4nMa3nTFWjsuEcXNfYu1fsvP3RCbQwLU+598a3W4HBaHBw15gou5wgCMeGpy1uGft2rVv0OskEJ/3DpDbjCYNWoZE9iEghkIOy3nSGZb7JIcj9UnOI4cTlT9SPdHiAeZ2Z93r5MnmCaK7uEiA40eCXwWo9sydO3dXU1PTl0qLd8iPIe84U/+nUgJgsC3g+XJJ8+7d1C4DDlbBbBcX7iITmZCZIUclbloTX1VWVnYnfcMH6XnvADmcKwDZKpcqCUBN13jbVpHnpoPNE+a1SzciaXBkRF1BLb58+fI36GFkVKhcpwQ0Td7lS4xKPMmUgFv4PG+3HXmD2pC1d1jzBP2IBjh+FSgIM8W9dOnS6qqqqjfV/iuShuSwsmJTkEsSSV4Qa9+1Pseb77ZWVVMr0OBgE4yC1bAuVsA1M+XFF19cTFo84q8lbAt5EKkgT80kuwMB/7q2I4upNTZPegU4eh2ixefPn1958ODBd5QW7zqhDHm0q3+V1nMJkPIW9f72d149UVHZCXi3cGOWomlwpENbB80UCrteeeWVZz0eT8Q/CSiUr64DciwhnnQcjnbjArk5PV6fy3KL+va6q6+35fX1d1dfd+n6+vjcL/yBjx3Vz1J5Fx2yeRLVougOcPQHFeBiUzNTfvvb3+4lLf53pcUhmq4ON4IKDB2QY3Lg2JfDPHFyHMLxOq67p/X1try+v93V1126vj6cd9jezr+vaCrfS6dsnoDJqHCjbCyAQ1sHAaewa82aNc+QFkd55cJIQA85w5cKH91hiORwKtpOVhs+4nij89gzNB7W3oAPTHZrScQKOGtx/Hpcc+bM2X706NENSouTNCI4QG4lTZ5qx3AzbGif41Ldl0S0B+1d73dtWNy4ezvVx4Cz9k4I4Ogna3EY9oDcuXr16oVqRQWiiexOavKTiOEyC44vtzisRXbGcxznicfnsrHWp8/P5SL5+v531zd9/fry3aV7aOVkk+P4QsrnpAPsgcGYtDfli8lEQT4ADi3OgLtmz569jd4l/rraowLxRHY2TZPjY6kd/5CTJ1kOR0qPXHP4FK471vr0+blcJF/uc/gehMbq69eXj5buoy2xR31trz/duGMblWPtHdPqCfciFhOF87IW1y420eBdd921gB5MblR7VFhE4X2GPHyqig0ngY49J97GxU27FlA6wx2z7c11xgs42+Jo0Pnee+/Vbtq06U/qgpPFGdkH5FhdUS42CeD5qb2exj997qzFG6tgnoC5mG1vbiUewFFG1uIa5LNmzXqNHmvbri44WaSR/QLaZstLiJyLrXP4sRwox2XkMJeV4+Qwpyfal9uQw5HakfPIYTk/tHej37X9vuMbX6M8DHfc2hv19wRw1uLaxSY6sGLFikecTifegYg6lYsiAUCO1RWeUGRFOFbHeSOV7y491nZizRdve93lB0Nu+qD8O22HH6E+AG6+uIxbe2MM8QKOMgw4flGaFn/ooYd27927dyW9kRbpynUjgSDkeP+HOkJkEKBfwCF/68oXmvdgv7dee4O9uFxPAEcDDDlrcccdd9yxqK6urlqZKrHJH5BbeqRfYqs/G3NhzftEwF39ZNPORdR/PI6m195xD6ungLMtzsuGzs8++6z+pZdeuos+f0JLl8pUiWUmGHL82c73A69hcwm/5/3WQ3eVOxrw2gWGO651b73cewo46mHIg1qclg23EOiL6AaQvh11HkECgNysNDltdPKLfe6GRU837d5CotJr7x5rzN4CDlMlqMUp7Lz88suXHzhw4CN1AygC0WGi8x1y3NCp8To++lXN+uVgqPPgu5ZgLC2AY6rQOA6+4MQvr/3OO++8j+zxGmWPkzRidJq5YuiNvomxoQzLBru72e+pWdS46z7qWjsdYAgmAJhivijYM5cIiaITWD7BLw6dc9ANoGMvv/zy3WSP0zeGevzjo6ryy2H50EKQR7pNnmvx0MvugN/7vuPw3Vucx47RbGv8kA+WeFmwVxAkAnAQjM6wqaJ1kl41sfnTTz99Cva4gjz2OQLk+DBTrjswAbt7r6fhqacbdm6m8cpw9+rCUpZdIgBHfQx5iKkyY8aMJbQh6123Gz9I5WKVwElNnrurK16C+4i39d05NeuXkFz0pgkUZkL+9CcKcMwdQw6acaGATrfPnDnz13TR+ZmCnKQRh4OpYs5Rm9yjXVS2f3ZX3YZfk0g0TsjnZcGEwQ1xJxpw2R7XIKevRJy49tprZ9MDEuVqUxZEHrtjyHNpjRwrJvU+R/nDjZtn13scJ0gaAFyGGwwlRHtD0snY3obOyR00EOTe/fv3r582bdr0pmXv9MVXbpWLTQImklWHQGWRxlY203IB7kaf69CC5p037XDU4osCbXQw4DBvE6q9Mf5kAI564UJAJ1vc1dLSsnFUZctltKOuUEHeIaRY/gfkcBBotq6k+KnzJwKe+mUnym9c13roIA1FD3dCNTfkBZcswGV1Ewxv3bq1rcBk+Xycpd836c+vVUHeMQmx/M+yCgozlkIZkoe2mYrWgKf19ROVt/y55cty6pYebmhuAJ5wlyzA0VGeC/a1zm9z1jaVme17hluKL6HVAgtPXMJHloMVsqxCBJrh4+yA292+tv3Ifz7btAu34WW4E7beHUkMyQRcbhNzEpyXTY5jx+kJly2jrSXTSZPbeeLkAiocXgIsq6Aww2fLiFjY3Cf8nsbX2/bf9mzjLqx1M9xY80463BBCqgEPgr7VWdvQbvCuH28tnUo2eR+eOHRKuegSCMqKTHOY55l44F0mDQHn0eXNX9z8yomKPTSiVjoAOMONmzlJsbup3qBLFeBokJVOEPJyV2PLUW/738+2DbjAZjCV8cVUsHcqEFECgDwoyIi50pOAde46n6NiYePuW9a2HfgH9QJgpxxujD6VgKM9OJ4XzT/gOeHY7W5Yd65t0CS70TRE24nRuWrQkV39H0kCDHmmrK1gZnH7/ZjXsfWRhs23b3HUHKW+682SlGhullmqAQ+Bmzqhndd6He5PHDUfTC48ZXShwXyagpynp3ufzRUIMp0OuwLpWUq6/d72wd21G+fsdzfVUX8YbtzIwQ7BlMINeaQacLQJ1wX0Fr/b9zfnwQ/PKxhUUGKyTjIJo4Enr6OI+j+SBGQ5YcU81Qfgdga8gQpP0/O/qP/4d41eB77yK8ONC8qUww15pQtwtM2Q84VGwEsbyN9srdo60FRYPsRin2wxmOzYS4AHc5WLLoGT5kr0fIlMxY5AvL+k2e9ufK/98Lz7aje9SnPIF5PyHcq0wI2xphNwtM+Qww+CvsFRfaTa2/beuILSM+0G0ynKZIGounephJxNkhpf+7aFjTtvp5WSHdRDaG3W3DBJ5KVAzHHKXaYADrj50KCv8rS0rXFUvXtOwSBTX5P1K8pkiY0NNleSSRNu3sAkKfc0L7+j9sMH97ua8fYpaGyGW795KrbOJyFXugHHkHgu4DPkmjanP3e+Na1V2waa7buHmAsn0/ZRu7YXQ5ksUVE4adIlducKcU0mCW7euBvWOo7c/UDtxr90miQMN9a4+WIyabffow5el5gJgKNLMuQy6Fp4g+PY0cNksoyylgymz4SM7nioS9nmurkMOT0JeUh0j05ga/toiuj78OKQr/W9RY3b57x64stdVBlrbACuv4EDJZV2l2lXb+gPrivxw8OXVgvosNFhp6MQ4TvKzvnni+yn/rLUaB2BJ1/4TzKlKRdGArCVe+PY1m70uw9+7Kz+wx/rt26g+mCCMNS8BMjbXbW/vr1pM5FlMw1wjA19wgHI8SVmKx2AnEG39zfbiu8vu+CasdZ+19HHWAvM2ESqzBYSUXgHDRwv5rxC0ub3uCrI1n6w/tMXGr1OrJBAU+MA2GxrY5WE93LH2xQVTZ7LFBNFP0IWEnwc0Aps0/mcfq/3rbYDO+r9zrUjLMVDaePWCGW26EV48px//Kw5ovl4wxSbI/Ty+Y+fa97zq0WNO9aRzOXlP2hvGW7MT0aYJCdH3RHCWDPZoX9ssrA2Z40Os0XT7HMGnP/1C2yDbulrtI7E64nx7lae1EweXKr7Bq0cybGd7SI7m9a1D3zmqln0WN3nH1J+1tSstbH0xzduWOlErjhSgymKz3TAWQyAnEGHbQ7I2T7XIDebzba7+p1z6STbgGv7GwvGKNBZdNF9GWx6J/eXO5x1z/++aetaejMZg80+r2vLtnZGam15xNkCOPrM2hygQ5sz6ACcYYdf8Kuy8y86zz7g2jKj7SwFOkkkjJPBJlNv9xZH3fOP12/+iLICZBwAm31obIDNdyQBdsZqbepb0GUT4Nxp9BnXDgw6tDlrdA1wOtf828rO+afJtkHXDTLZz7XiNQxUBIXz1XwB1KASa9n0Rilx3Of4fJPz+PKF9Vs/o2gGW/ZlcwRQ84UkBbPDZSPgkKzGKfmy2QKNzkuLMujWG0rPmnRhwZBvDzbbp9sN5kLAni8XpQy1n9AG1I6At51edPnBRlf1G4sbduP2OiCWoUYY2poP2c7OCq1NfQ+6bAWcB4D+A3IGnU0XBp01u6blh5qLi27od8b0Mdb+3xxosp9PoJvwch3Anmvr6Vi/BtRegprA9tX6HJu/dDe+vbhp7wf0RincoGHtDKAZcoaal/2gtbPGHKG+dnHZDjgPSA86TBi20dmEYV/T9FMKTx00q3j0ZSOsfb5ZYrCO0UyYLNbssqbuhBpfS/jyoLvl7f9r3f/O+vajx0kmDDDDLftIg7ZmjZ3VYNM4NJcrgMvjgTbHuAA5NDprdQDO0Mu++Yf9xo2dXDB4Kmn1c/uZCibShWkBPi+CR+gy1ZSRgcbmJzxJQ0t8riafaxdp6883uWo+Xtm0r4LGDG0MeAFzOB/prLFhguQE2DQOzeUa4PK4WKsDdD4Ath54TaNTvJbWz2wr+FHfsRMnWErPG2iyndvfVHAGwW7BBSqA7/jX0QwLL1kXrYAYjg1f+LhMBNC4UCSoPfSmqL21Pufn5Z6GLS83V+xq8jphcjDUAJoPBpzTWFuzxu6ongrkkuM5yqUxyWPB+Bh0va0ua3eGnOPYNw21FRX+oHDcV06zlpxdQvtfCg2mEYVGy1CrMNpZw7Mvwy93AmG9oBlafT6GGPYzQGbfLfyOdr/nSHvAd5B28x2scp/Y+Wr7vu1HnG24qwhIWROzz2DD5zj4DLRsX0fqDmXPbqeXe3aPJnrvGXT2WavLpgyDrfflvNoP5eLiYYMmWctGDjEVj+hrtowsMliG01cayugppEK6k2qnbWCFlNGMxhh81vRsXkAbgywizUuvWWinW+QOT8DX7vL76tsCnkPNXs+Bal/rwR3u+gPrWg/DhmYoZe0rwxsuLOdl84P96BLLgdR8Apynq4O5DqWKMOAFtLIPwBlqhp3P9Xk14DvrCKmbzB3zSGtx0RBjob2fuaCoj8GKHZGiJeBub/K62qr97Y4D7tY2MisAZofyPukzzPBZ68o+wgw0Q4xzOQ+X1ddN2fLD5SPg8syGAEkJMqx6kGXA9WlcDvUhzPWiLTmMc9kxeIjjMGtXBlwPLEPLUPM552ef62NfbjdvwhC+ch0SYFkwkPD14PI5QwzokY99jg9XF1rheEAHx/DpzwEp4gCx7DO87CNNDuMcBxz7HWd5+j8LPE+HH3XYLBv40Q4Zan0+NCDXIzfIAMo+wvqDYdfHy+eoF+fK6STAwtdFq9MIEmB5McjIFi1OTo9QZQiYDCnDizLR4iLVqeI7JcCTowTSOwno5ag/R+36OAZXblkfpz+X86pwDBL4fwN/IZwMBwH5AAAAAElFTkSuQmCC',yellow:'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALcAAAC4CAYAAAChOH1KAAAlaElEQVR4Ae2dCZhUxbXHTy+zL8ywDDsSVhEVJQoCkoSIIr4kvohLxO2ZfC8an0mQrCQm+uJ7qHkv5hE/xSQaNokBogkxigaUuLDIpsiOMA4MOwyz7zPd7/yLOZfqnu7p7umeXut83+2qW7du3apTv3v63Lr31rWRkUhowOZViPc6Nutpbq/8WPVO8173sYtJ6kgDusI7yme2nYdTdIZQj0NH1vrgwYNtc+bMyb344otzCgsL87KysnLT0tKym5ub6+rr62vKy8urd+7cWfv444/XlJSUAGSB2VfoKw3HM9KBBqQzOsiSspsEXgmhCMTtDGT2TTfdNDwvL28kQzvC6XSOcDgcQ2w2Wzfenme323M5nuN2uwPql/O5OF+dy+Wq4X2rOV7Z2tpa3NLSsp9Pgv3V1dX7XnnllU/4RKnj7S5edNARl4WjRnQNBFS+njnJ4wKxHtp37NgxpG/fvlPY6l7CAI/kZTgv/YMBN1L64hPAzcAf5eUTXvax9d9x/PjxtZdcckkxH0OAF8gljNThE7acVIdbQLZzDyJuX7du3YChQ4dOycnJ+QJb5M+zFR4Qr73L1v4IW/h3amtr/3nw4MG1kyZNOsJ1FdglBOwpKakItwfQTz31VN4dd9wxnd2LL7J1/hzDPCxRSWDYD7BVf5fdmbeXLl26avbs2dXcFsCdkqCnCtwCNEL7gAEDnBs2bPh8QUHBnenp6TdyWi4vySY1TU1NKysqKl6cMGHCO0eOHGnhBuqQJ71FT3a4FczcqQgdu3btGtWvX787MzMzv8YWun+y0eyvPWzRjzY0NPzp2LFjL44ePXoP52vlRbfo/nZN6PRkhdvyoX/7299245GNe9iHvoMvBC9P6N6KQOX5gvRD9tGX8gjMovvuu6+SixRrjjCpJJngRluwAGz78uXLu0+dOvXbDPW3eL2QFyOeGihnyOevWbPm6VtvvfUsbwLcAnpSuCzJALcH1KtXr+4zduzYWbm5uf/OnZWMvrQnouGv1bD8ftu2bf937bXXnmgDPCkgT3S4lZXmDrGvX79+0EUXXTSbRz3u5fXM8Ps85Upo4FGWBbt3735q4sSJh7n1YskRJqQkKtyoN8B2vPzyyz2uueaaX2RnZ9/NN1bSE7IX4qjSfMOoqa6ubvFbb7318xkzZpRx1XDxKZY8jmoauCqJBjfqi8WB4bzNmzf/W/fu3R/j9R6Bm5o6OWyuErK1fMiKwuhfJ8VNZWUVtT/77MTHFrYNI8oIS8L444kEt7ggju3bt182bNiweXwHcXwnuy5pdwPYzrofMdiR8SaaW9wffFLc+N3RE/7xEStNrHhkCu/iXkgEuFFHBfb8+fMLb7vttkf4YvGb7II4u1g3CVm8vXEpORtfiGzdbbaWmpqW3724ou4/v/WDj8u5cMAd965KvMMt1tp56NCh24qKip7gmy99IttzyVWao3ERYekKcbnpxKmy5h/3HbVpGZcvdzzj1ooDnngUnHQOLI8++mhBZWXlC3369FlowI5tV9lt1KdPz7SFdaUTXnj00REF0kccxqWRjMdKWWBv2rTpUn7YfwnfWRwZ225NnKN3peXWtdDion0799TedfkXPvqY0+GLywWnni2m8Xiz3KgPLLbz6NGj3xgzZsw7BuyY8uH34E47jRxzUc47J/eN/wb6ixf0W1zxFC+VEWvtnDt3biE/ybagZ8+ez7CysngxEqcasNkoq6i785m6w1ctmDt3GB5xEMjjwiOIh0qgDjjJMG49hp9ae5Gt9fA47c+4r1a03BJvRbS43J/s3FN3R5ubIhebMR0Tj7XlFoudtm/fvmsuvfTSNQZsb2wSY91ptw0fMzrnrYObr7iGa5zGC9yUmBrPWMItYGOY7xZ+W/wvrIw8XowkqAa4Q/M+MzjjL0d2jL+FmxBzFyVWcOO4OLPT+AH6b/ELuAs5bp4LYSUkujDg6f37Ohee3ncVHjUWCx4TzmJxUAE7/eTJk4/06NHjKb7bGIt6JDpH8Vt/N9l7dnc8dfaTcY9wJWG0YjKSEm2oFNh80ZhRVlb2NL/D+KP47SFTs3A1UFiQ9qOakglPjx7dKyMWgEcTbgX2+PHjs3j6hCX8fMjXw1We2T/+NZCTY//65jeGLRk/vjuGdaNqwaN1NavA5salnz179jl+9evO+O+WxKxhrIYCA2mrtq71xdwLNt7P+Zp4kacLA+0W1vZoWG4BO4197McM2GH1V8LunJPtuLP84FWPcQOidpHZ1XCjfCxppaWl32Ef+6GE7R1T8bA1UJDveOjUnvHfAQ+8CBthl+uvgK6EGy6PAru4uPj23r17z/VXCZOeOhro1cs5t3T7uNu5xQJ4l7nGXQU3KqzGsfmF0+v79+8/P5oTR6YOKgnYUjfZ+vdLm7/vg7HXtwEOTroE8K6AWyy2kx9ZHTdkyJAlbY1IwJ4wVe4KDTAgacMHZy3Z9vbl47h83MkEhxEHvCvgRpnOefPmFfF49lLMU83rRowGPDRgs1POpRdlLZ33xJAi3iCAe+QJdyXSZ4sCmyuVwY+truA5RKaFW0Gzf2gaiNehQH+tqKt3vZkzaAOeRWnkRZ4m9Jc9pPRIWm6cKMrPPnz48HcN2CH1Q8pmzs6yTzux+8rvsgJkiDBiBjdScAvY8LOv4hd58UyBEaOBoDRQ1DPtEfa/r+LMEX2SMFJwoxzHE0880Yv97AXsZ6OSRowGgtIAeLl0VNaCJx4d0ot3wL9/RLiMxF8AKgKY4WcvY3dkOseNxEgDieZz62qqq29dlTNo422cFhH/O9wzBCeHgptfOHjAgK13lYmHqoHsLMf0ozvHPcD7yehJWMY3HLgtsBcvXnwB34F8ONTGmPxGA94a6FuU9vDiZy6+gNPDBjxcuNXoyA033PA4+01mLmzvnjLrIWuA36jP/dcb8h7nHcMePeks3JbV3rp167X8sVF8NMmI0UBENJCXa7/xo3fGXsuFhWW9Ows39nNed911uRdeeOEvI9IiU4jRgKaBi0Zk/vK663rDGxDAta3BRTsDt2W1n3/++Vk8jfDQ4A5lchkNBK+BNKdt6OJfD5rFewjcIV9chgq3BTZ/UGkY36wxz2cH318mZ4ga4Js7Dy1fMHpYZwHvDNzqIpI/1fEkX0Sab8+E2GEme/AasNltmdO/kP8k79Gpi8tQ4Las9rvvvjuBXxe7LvhqmpxGA53TQE6O7bp1r4+RW/PgNWj3JFS4ldXmW+zfY6vdudqavYwGQtAAOONb89/nXUK23sHCbVnt119//TKelmFqCPUzWY0GwtJAbq596j9eueQyLiSki8tQ4IbVdl555ZWzOTRmO6zuMjuHpgGbbfxlOeAOcIPDoPgLBm7LavM3H0fl5+d/KbSKmdxGA+FrID/P/qWXXxw1iksK2noHC7ey2pMnT8bQXzD7hN8aU4LRgIcGbPYpV3UDf0Fb70CgitV2LFq0aAhb7RkexzMrRgNR1ADPezJj0fyLhvAhYWzBbofuSbBwO6dOnfogX7miUCNGAzHRAA+cOP5lSt6DfPCgXJNg4HawO5LDs0XdFJMWmYMaDWgaKChw3DR5ck/MqBDwwrIjuMUlwTQN0/lzHvjuoBGjgZhqwG6ngmfnDsTbXgGtd0dwY5u6kBwwYMCt5qZNTPvUHLxNA+BwYP/0W3lVLiz9MuxvA6w2FsecOXN68fPaX2wr2wRGAzHXQF6O44tzZlsvEwur7erVEdzY5rz77rtv5s9S49anEaOBuNCA3W5L+/rt3W/mynTomnQEt3JJ+JvrmA3IiNFAXGmgX1FawC+m+YJbzLxjyZIlI/mNdtzTN2I0EFcayMqyXfbS7y4cyZWSURNw6yH+4MYOjokTJ95iLiQ99BX3K271Tx331Qy7guBy0vg8WG/FKoft4IbP4i3IpPztwsLCz3tvNOvxrYEW23iqKPs9VxKfnUlc4fncPSrvtUpYb2lygU+/frc33JZLcs899xSwS3KpxxFSdMVWv4dsle+Qzd0c9xqAGevm/AJVVBSTy+ViCDwhQQN8JLVLc1P7/bz39VXOuTye+/rK5zvNcz+U1ZG4XO5Lb5teWbBs1QHMUCXsWoV4w42yYLUd99133yQ2/dBVSoutbhc5997MmkscS4hOK2hxU1mlb7h9daj3f7r3uq99Yp3GJ67jnqktk5atopVcF3Dr0UnecKNNCu5+/fpNNv42m4PyN8jWdDTW/Rjy8TF22yPLTWeriFyWLQu5mLjeAbD26eaezMHfeQG3SLJaiwRdsK7g5icAJ+kbUjVuc+OziYkpPD0Cdc/nDk0EM9xJFedn2ybyrvizEnatknS4oQIsjlmzZvXMzs6+0MplIgmrAQHcwT0tHZxMYXaGe9QDX03vCW55kaap/vIFt33mzJlXt2VUmcxPYmsAgBfmsWkD4Nz9SbbYvnq1G7yC5Q7hRgYH35W82vjbiQ20d+11wL23JfI6OO1TSIBbXBMArsTbciu4eU4Sc1dSNJREoQKcZ9+DBY+U4F8AIv8GEleJUfrJyiTw2g5uGS0R2hXcPL79mSjVyxwmyhpwwkXJdVNFTeRGUQRwNEXiEkajedkZBF4FblUN/nHr5zDi9p/85Cd92NSzh2YkWTUAwAtgwcWkJXhD+UTKm3VLWh9uhmJYmiNwo5lY7Pw8yXDZaMLk1YAArkZRuOdhaRN5mXSxDdyCZ2FZrUgPKrj55s1QczEpKknuEIB347cRYcGFiEQMUf++3V1DubcEbtVx7Sw3v3UzLLm71LRO14AADqudyJKbaQO3ArdqjQ434naeB3CIsdyJ3M2h110Aj+QoSui16Pwe4DUnm4ZwCYphDhXcGC2Rcxahg0dKkMlIimkAgOdnu6mqzvdTg/Gujqx0G7jFiInFM0iHIME+atSo9MzMzAEqxfyknAbOAc4gMBWJdnGZke4eMOozmengmBcFuA63bdq0aYV4jDDletU02NIAAM/LOge3lZgYEceUMa2FXFWAbcEtKzaen4RHP42kugYE8M6Mg8uFqVh+6FLSfOlVtnU2v+yHcFCRG/xaPOt3KG29evUyN2989UAKpgHwXH4evKZee0A6SD0IsMgucQl9FaFvk7iEgfLr27vnucGvwK38E9lu42FAY7lFGyYkZcGz2YkFLgkg+TkOsdyqtjJaomjnZ7gN3AnQidGsosOhWXDrHZdo1iC4YwHgzEzfbglKsBm4g1NkquUSwGsb4neYEG5MTjp5WG6P0RIeBswxN3BSDd3g2gvAc/irox35wsGV1DW5UK/0DDemNlZeCI5ijQkikT91jY1GjAZ8asAX4AI7Qj3us4BOJOpl6nFfRaU77AI3Ntv00RK+gDBw+1KaSTuvgXOAu6mOZwqRuUcEOuSSuITn9+x8TC9L4hLqpTqdynIjCdbbc+6t1tbWFiQaMRroSAMAnF/MpXoA3lHGKG9rddk8+BWfG9WwNTU11fqaoSjKdTSHSwANAPCsjDYTGQf1xb9IYzPVclWU1UaVdLipoaEBG40YDQSlAR1wuYrzDlGQRZuPUmWb937+1r3L0/fnuQM9+NXhdhu4fWjfJHWoAQtwocwrtyQHC6vX7u1WvctDBkmrb7YBbstTErhVQl1dHb82asRoIDQNAHA8j+frIi+0ksLLzRe5wq/iGaMlQrq7oqLCw6yHdyizdypp4JwFd1MDzz4noyjRbD9OrMpaD8vtlqFAAO4uLy8X8qNZL3OsJNEAf6uGLfg5wKPdJMBdXuMCv4plHF/cElWX06dPV5vREqUK89NJDZwDPPouCv4tTpVTtV5tgVvRvnv37hoDt64eE++MBgB4Bs+hDGvqvaA8pIlIXPIhXdIkjx7KNskvIa4q9xyyA24Py40ViHvlypXVPNbNMzobMRoITwMW4F7FeMOJzZKmxwVa71DPg7hIczNVvba+SdwSJFszTgntbh4xKTHWW1RmwnA0AMDTYcG5kK5ccAXLIyUlfBiLY9Rb3BLEscFVW1tbghUjRgOR0IAFuOaKRKJc7zJqG2wlnObiRTwRBbfQjg0uHg781Fhu1oSRiGkAgKfxuJy3ixGpdVS0qtb9KQeKYQ4V02K5BXA3j5gUI7MRo4FIakAAj2SZelmnKuggr1scYxvg1hNaecTkoLHcUI2RSGtAAI+UxZZyUM89h1wwyviamcWzWG5sVyZ94cKFn/L3CxE3YjQQcQ0AcCfPjAMwIyVMq2vhasenXJ5iWMoVuIV2165duxp4xOSYZDCh0UCkNaADLtY3nLC+yXZs14EmfsPTuqAEz9ZoiQU3p7XW1NQY1wTaMdJlGsC7urDg4Qpc6JoGN/xtuCSw3MKyB9xi0l0nTpzYbPzucNVu9g+kAQE8lDFwlOnh0TDKJ8tsmznZ4pfjHpYb+yABGVq3bNmywbjdUImRrtYAAHeE4IML2HJC4OvIW/e3buB66pZbVbudz41MP/3pT3fziwvmNnxX96wpX2kAgHd2ZtnGFqr68QuO3eCWF59uCQ5iWe7q6uqms2fPbjWuCdRiJBoaEMBDORb4LKugLYwrvmGuw62KEcuNFQtujrccO3bsAwO30pH5iZIGBPBgR05QrWNltk0c4K33gHADcGRq2bBhw3rjd7MmjERVAwAccAcj8LfX7Wxdz3kFbvCLRYleDOIYnOEX9tWca93OnDmznmd+7aFypuiP48jjhMVIdDUQjNdQVecuK7iheSLXrJIXPO7KM6ko46wAl9fMOE0Rj0Q1YsJhC8O9mT+Vfb09Ub8EhFaFKc2taVReYRmDMEszu4eigY4Ad7HZPnyKMAQoVtvjYhLH0eHGusCNHVr27du3euDAgRGF21axm2zH1pLN3Yzjxb3YG89Qel02PzIM3bUXf9jjtSdf4i8def3s4veFW39l+StHHaODjaGW5zd/R8fw08pQy2ppddOuva2rGVPFKrdN4EYzlehuCRKwDuB5Pk/KGzlyZM/169e/z5/vi8gXFwC28x9fZrDh1ieOVNW7cBcscSqcAjWtbXRXf/l/K6/ed6rpDDcXr5fh9jtAtzrKl+XGRtDXzJa77siRI6tHjBhxUyRcE9vhV8lWe4SLTizJR3XZLtRiwMlIzDWAx/qOn6HV+04Rf1iQ4AKAV3Brgc1x6/Y74iIw71hwFjTxqMlKniBTtoUV2lyJS0c+f+GLJzc3EgcaYI+EthyilVwVAAVOhVmP2unj3LJBLLfyZe6///5NVVVVRzty7mXHZA8BeC6PJcF3M0tsdADbzF94OPq9P5OMb4NTsdweCPqDWwCHyW8uKSl5zcB9Tm95fDWSg8FSIzHRAC48SyvoNT64YpNDARvMeogvuJEBZh474axo5ikf/trM784bOacBATzYO2kmH1t5/quLxNLCCK/aSX8Fl7yI1Qav7cQf3DgLLL/7ySefLC4rK9turPd5/QHwbOODn1dIFGKw2uW1tP3/3qZiPpzub7ez2qhOMHDj7GjasWPHSy1qSBG7GYEGlAVnwI3/HR0dtLK53XWCXmLVC9hgE0Y4JLg5v9oBO8L8N82cOfM1nvah1FhvqOa85BoLfl4ZXRiD1a6sp9L7lil/G3CDS79goyr+LDe24Wyw/G5+9axh+/btf4jUsCAOkCwigEfCpzRl+PbN8ZDUzhP0h5oadbNG97d9Wm2wFQhuAVxZ729+85t/raysPGmsd/vTEoBn8dRhRiKvAWW1G+jk7OXqQlKstt9REqlBR3AjD8w+CgHcjUePHq3duXPnImO9WRs+xFhw31Y33H8jWO29J2jR0Qr1QSc8+QcewSX49CuB4IblRgHqopLDxm9/+9sr+E2dMmO9fesUY+DGgvvWTWdSYbVrmqjsxytpBfjjRS4mO/S3caxAcCOPWG8FOD9vUrVnz54XjfWGanyLAG5GUcIfRcFzJPtP0ov7jhPe6RWwA1pt9EwwcIv1Vn4379M4Z86cl9h6VxrrDRX6FgW4GQf3rZwgU2G1qxup8ud/V8N/YrXBYUCrjUMEAzfyifVWvvfGjRvLN2/e/LS5awnV+Bfc5MnCOHiE7s6lWjktTN22Unp6awmVs5aD9rWlR4KF29t6N8yYMWMFT96z07xnKar0HQLwTDOK4ls5HaTCHTlVTTvvWqR8bTyrLaMkQVltFB0s3MjrYb358yL1y5Ytm8vzm7iMewL1+BcB3PjgwfnguMPC85G4Xt5Gc3nShnrWbMhWG70RCtztrPfDDz/88f79+/9sLi79gy1bBHBZN6F/DeA2+4Ez9OdfvE4fc65OWW2UHgrcyC/WG38ROJsavv/97/+Gb8ufNdYb6ulY4H/DRUk13zmU9kKDlY109sd/pd9wFGDLhWRQIyTYXyRUuGG9cRAMC+Kg9e+9914ZX2D+mt0UXjUSSAMAPMP75b5AO6XQ9iama0sJ/XrjQSrjZotLAt7AHfgLWkKFGwUL4GrkhNfr+eJyJd+93Gbck+D0LoCHYtFSIS/uRJ6oom23v6BeIROwwVnIYKMnOgs33BPrriXHG+bNm/cIv45WY0ZPoNbAIoAHznk+By5IIXJhKnGV2JYuaXpe2R4o1PfR4/720/PocX/5O0rH6EhlA9U88096hPPp7gg4A28hWW0cqzNwYz/xvS3r/dxzzx1cvXr1L3j0hOfZCLkeKDPlBP43XBSAEcwCBQlEelz21dP0uGwPFOr76HF/++l59Li//P7S20ZHaO0++sXv31cfbvK22uAtZOks3DgQDijWG2da/V133fXm3r17l5ubO1BPcALA01PcB29mp4OnaVj+jcX0JmsNYMsIiVjt4JTplSscuGGeAbhYb1So7pZbbvnV8ePH9xr/20vTHaxaFpxNWyr41nob4WefrKG9dy6kX4EfXsQlAVfgq9NuQAS+SsKHPy829rt5gquWDydMmPCVjIyMdMzaKWI/8S5hMdJeA+r7MNyN6GwR0Zy/v/NIp+O4ckw9LsfR0/S4bA81xAx1VQ1U+8s19K1/7qVjXGYtL7Dc8oCUpg0cMTQJx3LjSDi4t3tSN3/+fPjfjxn/O7TOyGAXJQ2f0ODdsEAkPLfWtb9yLH/HD7Q9lNrhsqyBnY639tJjv39X+dlitQXssKw26hIu3ChDABf3BGdeHfvfq/jR2BVm/BsqCl4E8OD3SMycGM/ec4JW3LuYVnELADa4wb2TsN0RLkNJJOBGQTjLMBbpAfj06dOfLC4uft8ADhUFLwAcF5m6b5pMcVxAlpyl9298jp5krXiDDY7AU9gSKbhREVhwffSkjt+3rLn55pt/WFpa+rEZQQmtrwA3XJRkE4B9pJw+/trz9MPKOjVhvLc7Ao4iIpGGW/xv/L2o0ZMDBw5U8HyDD/HjscUteEDXSNAaEMCTxWrjgaiT1VT84Ev00IFTVMGKELDBiwz7RQzurrYNqqKHDh1q4tvzGyZfmHVNbsUHufz5byNBasDRZn7kvpiuOokj9LXgEJJHj/vKK/kk7Ex+7KOLlIUQdyBP19CJOa/Q/W/soSOchJERwB1RP5vLs6Qr4PZ55vHFZb2r1b1lXNHRa/muXKYB3OqDgBFfgOvg+CtAz6PHuyo/jqEvOA7WYbF5GrSKX71NDyzaQAc4SYb88O+O67SI+dlcliVdATcKB+CyyMFsH+w6WsnTAO+8pD9dx4CnGcBFNYFDAVwfBw+8V+xzAGyeKar+D+vpu798k7ZzjWCtxR3Rh/0iXtmugluvqECO0MbPD5zpmUs7RvamKQx4Rgp/S0rXUVBxAVwpkk1ivPviAPtsPVUv2Uizfvaq+jgToBarDbBhsdGcLpFowo0GqIas3kOnud0fjBlAk/nWc450Wpe0MMkKFV3BB9ddgHiLtzC27GOfmvcWPTj3DfqIuwFQY4ErolvshIab22KdnWiIasyGYqrkZwreu/ICmsivYBVIpyGzkY41IP92cpHZce7ob23icY/jVXToZ3+jB55fR59wDfCNSN1iR3xkxFcro2G55bhyhlqAf3yEanccp7WfG05j+XszRQAcf7VGAmsgHgHHyQawedqzXQ8up/949WNrVEQHO2J3IANpKZpwS10EbhV+eoYaV++lt68dRaPyM2mAAVzUFDgUwJEz1v436oBb6p+W0cZbX6CHNn1KpzkJUMPP1h+GYo/U+ifnaNdJtOHWwZZGus/UUMufPqS114+mfvkZNNxpLHjQPS6Ax9JFwRh2Hdtjnqzy9WnP0k9Ky9QNmpiCDQVGG27pNB1yxF31jeT63Xu07ooLqLx3N7oy3UFO6TjZyYS+NaAPqUbbgquhvkZq5FGwX13/ND3L/YgPnsLH9jXch76OmsQKbjRQQd0WWrAv30r7bXbaOLIPXZHppG7GTQmOBQ/AeZeuHj1B7/HEOXSikg4/vZZmzV5Ba/mwsNbiX8uoiNygQR9HVWIJtzQUjYaLYrkp6w5QOfvhb04aSn3YDx9m3BRRVcehAN7VFCk3hAfz9p6kN29fQD9Y+REd4poJ2GKx9TuPXV0ln4qJNdxotPeiQD9dTc3sprw39gI60zufxsFNkb9cny0xiUoDMtrUFTTBr1e30huo8e399D/TfkPPcj9V8oF1/1qeFRGLHbOeiTXcaLj0g1hvPXSv2EqfuG20bngRXc43fAod/H8rHRgzrcX5gS39tOlKjEI4IcDGmzPHKql43ts0i7/g+y6rQe44yoiIgC19GFNNwTWLF0FdcLJh4cf1Cd/p5Q9SqyW7ex7lLL2X7vjsILq3WyZ/vIBzWZ3ImYy01wDch3AFUOMZbJ5TpH7rYVrAs64uPVvtYan1N2hgrbGIwQr38GHtHw+WW28AlCKLnP0IW+ubyLX0A9pxqIzWXNib+vLk7oPlYtNArqvwfDwcvYgLUsu2eP9pemfOSvrBwyvpHe4HuCAyGgKwvZ/siwuwoYV4styojwieYsaCGT14dj1lxfl7YZYlz3j2drr6Xy6m2T3zqD+PqpAZNmTt+BGAiiVYgcWHC8L3H46+toOeenAZvc/7wuUAzAI01vVnRCLwP8ElRlDiFW40EXUTwAVyAG4tA3tR3oI76J4xA+mOvHTKgKtiIIfq2kswcANquCDVTdTIj0YsvXcpLSo9rcatYZ31RaDmU8Aa5Wp/0BinxDPcUA3qhwXuEwCHLw5LbgGO+MyraNCDk+nuEb1pOrsr6TyyYiBnxXiLP8ABNW6dswvStP8UrXrmPVr8x410mPfXgUYcUGOID1CLbx3CfwLvFUWJd7hFFagnrLhALq4KLjoF9IyvXkb9Zk+lmSOK6Cv8XfZMfl7cQC4a9BECatyIqW6gBob6b0+toT/+5SM1OQ5cDgEbcd0FAdRwQeIWaq6bkkSBG5VFXQVyWHFxVQC4QK7iU4ZTr4e/RLeN7kdfzcugXAU57xnOBRYfIykE1htv8yioG6lm1zH6y3/9nZat/UQ96CQgA2yJ+3JB4h5sdFYiwS1wCeDe/jjAFosOa57+2c9Q4X9/mW4Z3Zdm8J3OQszJJ3c7Uwl0AI0Fkw80sFPBU5iV7zpOL//0VVqx9VP1pTAALEAjrltq8asTwlpz3S1JRLil8gI5XBUs8MdlfFwgV8AX5lHW4zfSxCsG0vUDu9NEfnY8Xax5Ml+Awu0QK13bRE2lZ2n9llJ6g4f11pdXW4+h6hYacfjUcus8YVwQrnM7SWS40RjUXyAXn1wgB+ACucTTxw2mbj+cRlNH9aZp/QroYobcpmZ3QkFcUiJbdLHQ8Bnw0gC7Hu5jFbRzDz8Dwi/nrtlUom6VwzLLIhYa6zrUsNJiqRPCBeH6tpNEh1sa5AtyfXQFcAN6gVydAHdNoAF3j6PpQ3rQlIIcGoxRFoCubg5x5niHXYcZz3wAaIx6VNRSSXEZrV28iVYt2UBHuCkCrkCNdT0O10OsdMJDzW1Rkixw6+0R0MVd0V0WuQgV0MXKO798CRV9bRxdMbQHje3TjS7n0Za+cF0wdq7DjgPFwroDZIgCmkPAjDHpttGO4/zo6YcHy2jbnzbRlld30CnOAmB1qAVoPR1Ay4IjyMLRxJdkg1vvEbQNroq4KwI7ABeovUNsQz7nzHHU78YxdMWQnjSWn0q8LDuNemIObVyQAnbrwpQzQ3Tg9fi5rYF/BV7klLgijX9wIQiYEeKtcn7r5czJKvqo+AxtW7mdtvxxkxq+E+urwytwSyh5BGgu0XI/AlcywXIkM9zSFWLJBXSEFsQcB+BYF+glriBvS7dPGU6FUy+iwcOKaFBRPg3qlkUD89NpIFv4fmzdnQAez1OLK6POLK91bBPLq0IGFxd8AjHSsN5mlVt4/PlYVROV8qQ2paeq6DDPr3d4zW4q4WE7fAsdYAJWAVbiANk7DpiRJjAjVIflMGkFfZAqgrbqC+AF6Ahl8QU20mS7vo86WXIzyfm1K6jfZQNpQEEm5fP0w1lZaZTNw47Z7L9ns4XPZl8+i61+NsOdwQA3svWtY9+4ni1xHfvJdTw8V1fPS2Mz1Vc0UNVHpXTkT1voWE2DB5AAFFCK1RVgBWR9Xc8j+wjMEnJRyS2pBLfekzrkiCtQOdThFaB9wS0nhYRShne5so5jIy4CwCACmncolhWQCpwIJS7wAmyJ+8rrXS5nTx3RFZ46rfZsqQCohwK7Hgr4HaXpZUgcR9PjWBfo9LikIRSQBWZ93V8a0vUyJI5jpKRA6UY8NSAgeoeAGmmBQu/9UDrSvAXwQQRCPRRQA4X6PhI/V6r59al0oxZPDQisSPUVlzQ9lLx6iLi3AEiIHgqk3qHk886rCjA/7TWADjESugZ0vUncO5RSJV3W9VBAlTRZ9w6xXdIkrwkDaKAjxQfY1WwOoIFQdGvADaDMzmz+f6SMYEX4z7hMAAAAAElFTkSuQmCC'};return{FaviconsByHue,};});'use strict';Polymer({is:'tr-ui-b-info-bar-group',ready(){this.messages_=[];},clearMessages(){this.messages_=[];this.updateContents_();},addMessage(text,opt_buttons){opt_buttons=opt_buttons||[];for(let i=0;i<opt_buttons.length;i++){if(opt_buttons[i].buttonText===undefined){throw new Error('buttonText must be provided');}
if(opt_buttons[i].onClick===undefined){throw new Error('onClick must be provided');}}
this.messages_.push({text,buttons:opt_buttons||[]});this.updateContents_();},updateContents_(){Polymer.dom(this.$.messages).textContent='';this.messages_.forEach(function(message){const bar=document.createElement('tr-ui-b-info-bar');bar.message=message.text;bar.visible=true;message.buttons.forEach(function(button){bar.addButton(button.buttonText,button.onClick);},this);Polymer.dom(this.$.messages).appendChild(bar);},this);}});'use strict';Polymer({is:'tr-ui-b-toolbar-button'});'use strict';tr.exportTo('tr.ui',function(){const Task=tr.b.Task;function FindController(brushingStateController){this.brushingStateController_=brushingStateController;this.filterHits_=[];this.currentHitIndex_=-1;this.activePromise_=Promise.resolve();this.activeTask_=undefined;}
FindController.prototype={__proto__:Object.prototype,get model(){return this.brushingStateController_.model;},get brushingStateController(){return this.brushingStateController_;},enqueueOperation_(operation){let task;if(operation instanceof tr.b.Task){task=operation;}else{task=new tr.b.Task(operation,this);}
if(this.activeTask_){this.activeTask_=this.activeTask_.enqueue(task);}else{this.activeTask_=task;this.activePromise_=Task.RunWhenIdle(this.activeTask_);this.activePromise_.then(function(){this.activePromise_=undefined;this.activeTask_=undefined;}.bind(this));}},startFiltering(filterText){const sc=this.brushingStateController_;if(!sc)return;this.enqueueOperation_(function(){this.filterHits_=[];this.currentHitIndex_=-1;}.bind(this));let stateFromString;try{stateFromString=sc.uiStateFromString(filterText);}catch(e){this.enqueueOperation_(function(){const overlay=new tr.ui.b.Overlay();Polymer.dom(overlay).textContent=e.message;overlay.title='UI State Navigation Error';overlay.visible=true;});return this.activePromise_;}
if(stateFromString!==undefined){this.enqueueOperation_(sc.navToPosition.bind(this,stateFromString,true));}else{if(filterText.length===0){this.enqueueOperation_(sc.findTextCleared.bind(sc));}else{const filter=new tr.c.FullTextFilter(filterText);const filterHitSet=new tr.model.EventSet();this.enqueueOperation_(sc.addAllEventsMatchingFilterToSelectionAsTask(filter,filterHitSet));this.enqueueOperation_(function(){this.filterHits_=filterHitSet.toArray();sc.findTextChangedTo(filterHitSet);}.bind(this));}}
return this.activePromise_;},get filterHits(){return this.filterHits_;},get currentHitIndex(){return this.currentHitIndex_;},find_(dir){const firstHit=this.currentHitIndex_===-1;if(firstHit&&dir<0){this.currentHitIndex_=0;}
const N=this.filterHits.length;this.currentHitIndex_=(this.currentHitIndex_+dir+N)%N;if(!this.brushingStateController_)return;this.brushingStateController_.findFocusChangedTo(new tr.model.EventSet(this.filterHits[this.currentHitIndex]));},findNext(){this.find_(1);},findPrevious(){this.find_(-1);}};return{FindController,};});'use strict';tr.exportTo('tr.ui.b',function(){function TimingTool(viewport,targetElement){this.viewport_=viewport;this.onMouseMove_=this.onMouseMove_.bind(this);this.onDblClick_=this.onDblClick_.bind(this);this.targetElement_=targetElement;this.isMovingLeftEdge_=false;}
TimingTool.prototype={onEnterTiming(e){this.targetElement_.addEventListener('mousemove',this.onMouseMove_);this.targetElement_.addEventListener('dblclick',this.onDblClick_);},onBeginTiming(e){if(!this.isTouchPointInsideTrackBounds_(e.clientX,e.clientY)){return;}
const pt=this.getSnappedToEventPosition_(e);this.mouseDownAt_(pt.x,pt.y);this.updateSnapIndicators_(pt);},updateSnapIndicators_(pt){if(!pt.snapped)return;const ir=this.viewport_.interestRange;if(ir.min===pt.x){ir.leftSnapIndicator=new tr.ui.SnapIndicator(pt.y,pt.height);}
if(ir.max===pt.x){ir.rightSnapIndicator=new tr.ui.SnapIndicator(pt.y,pt.height);}},onUpdateTiming(e){const pt=this.getSnappedToEventPosition_(e);this.mouseMoveAt_(pt.x,pt.y,true);this.updateSnapIndicators_(pt);},onEndTiming(e){this.mouseUp_();},onExitTiming(e){this.targetElement_.removeEventListener('mousemove',this.onMouseMove_);this.targetElement_.removeEventListener('dblclick',this.onDblClick_);},onMouseMove_(e){if(e.button)return;const worldX=this.getWorldXFromEvent_(e);this.mouseMoveAt_(worldX,e.clientY,false);},onDblClick_(e){},isTouchPointInsideTrackBounds_(clientX,clientY){if(!this.viewport_||!this.viewport_.modelTrackContainer||!this.viewport_.modelTrackContainer.canvas){return false;}
const canvas=this.viewport_.modelTrackContainer.canvas;const canvasRect=canvas.getBoundingClientRect();if(clientX>=canvasRect.left&&clientX<=canvasRect.right&&clientY>=canvasRect.top&&clientY<=canvasRect.bottom){return true;}
return false;},mouseDownAt_(worldX,y){const ir=this.viewport_.interestRange;const dt=this.viewport_.currentDisplayTransform;const pixelRatio=window.devicePixelRatio||1;const nearnessThresholdWorld=dt.xViewVectorToWorld(6*pixelRatio);if(ir.isEmpty){ir.setMinAndMax(worldX,worldX);ir.rightSelected=true;this.isMovingLeftEdge_=false;return;}
if(Math.abs(worldX-ir.min)<nearnessThresholdWorld){ir.leftSelected=true;ir.min=worldX;this.isMovingLeftEdge_=true;return;}
if(Math.abs(worldX-ir.max)<nearnessThresholdWorld){ir.rightSelected=true;ir.max=worldX;this.isMovingLeftEdge_=false;return;}
ir.setMinAndMax(worldX,worldX);ir.rightSelected=true;this.isMovingLeftEdge_=false;},mouseMoveAt_(worldX,y,mouseDown){if(mouseDown){this.updateMovingEdge_(worldX);return;}
const ir=this.viewport_.interestRange;const dt=this.viewport_.currentDisplayTransform;const pixelRatio=window.devicePixelRatio||1;const nearnessThresholdWorld=dt.xViewVectorToWorld(6*pixelRatio);if(Math.abs(worldX-ir.min)<nearnessThresholdWorld){ir.leftSelected=true;ir.rightSelected=false;return;}
if(Math.abs(worldX-ir.max)<nearnessThresholdWorld){ir.leftSelected=false;ir.rightSelected=true;return;}
ir.leftSelected=false;ir.rightSelected=false;return;},updateMovingEdge_(newWorldX){const ir=this.viewport_.interestRange;let a=ir.min;let b=ir.max;if(this.isMovingLeftEdge_){a=newWorldX;}else{b=newWorldX;}
if(a<=b){ir.setMinAndMax(a,b);}else{ir.setMinAndMax(b,a);}
if(ir.min===newWorldX){this.isMovingLeftEdge_=true;ir.leftSelected=true;ir.rightSelected=false;}else{this.isMovingLeftEdge_=false;ir.leftSelected=false;ir.rightSelected=true;}},mouseUp_(){const dt=this.viewport_.currentDisplayTransform;const ir=this.viewport_.interestRange;ir.leftSelected=false;ir.rightSelected=false;const pixelRatio=window.devicePixelRatio||1;const minWidthValue=dt.xViewVectorToWorld(2*pixelRatio);if(ir.range<minWidthValue){ir.reset();}},getWorldXFromEvent_(e){const pixelRatio=window.devicePixelRatio||1;const canvas=this.viewport_.modelTrackContainer.canvas;const worldOffset=canvas.getBoundingClientRect().left;const viewX=(e.clientX-worldOffset)*pixelRatio;return this.viewport_.currentDisplayTransform.xViewToWorld(viewX);},getSnappedToEventPosition_(e){const pixelRatio=window.devicePixelRatio||1;const EVENT_SNAP_RANGE=16*pixelRatio;const modelTrackContainer=this.viewport_.modelTrackContainer;const modelTrackContainerRect=modelTrackContainer.getBoundingClientRect();const viewport=this.viewport_;const dt=viewport.currentDisplayTransform;const worldMaxDist=dt.xViewVectorToWorld(EVENT_SNAP_RANGE);const worldX=this.getWorldXFromEvent_(e);const mouseY=e.clientY;const selection=new tr.model.EventSet();modelTrackContainer.addClosestEventToSelection(worldX,worldMaxDist,mouseY,mouseY,selection);if(!selection.length){modelTrackContainer.addClosestEventToSelection(worldX,worldMaxDist,modelTrackContainerRect.top,modelTrackContainerRect.bottom,selection);}
let minDistX=worldMaxDist;let minDistY=Infinity;const pixWidth=dt.xViewVectorToWorld(1);const result={x:worldX,y:mouseY-modelTrackContainerRect.top,height:0,snapped:false};const eventBounds=new tr.b.math.Range();for(const event of selection){const track=viewport.trackForEvent(event);const trackRect=track.getBoundingClientRect();eventBounds.reset();event.addBoundsToRange(eventBounds);let eventX;if(Math.abs(eventBounds.min-worldX)<Math.abs(eventBounds.max-worldX)){eventX=eventBounds.min;}else{eventX=eventBounds.max;}
const distX=eventX-worldX;const eventY=trackRect.top;const eventHeight=trackRect.height;const distY=Math.abs(eventY+eventHeight/2-mouseY);if((distX<=minDistX||Math.abs(distX-minDistX)<pixWidth)&&distY<minDistY){minDistX=distX;minDistY=distY;result.x=eventX;result.y=eventY+
modelTrackContainer.scrollTop-modelTrackContainerRect.top;result.height=eventHeight;result.snapped=true;}}
return result;}};return{TimingTool,};});'use strict';tr.exportTo('tr.ui',function(){const kDefaultPanAnimationDurationMs=100.0;const lerp=tr.b.math.lerp;function TimelineDisplayTransformPanAnimation(deltaX,deltaY,opt_durationMs){this.deltaX=deltaX;this.deltaY=deltaY;if(opt_durationMs===undefined){this.durationMs=kDefaultPanAnimationDurationMs;}else{this.durationMs=opt_durationMs;}
this.startPanX=undefined;this.startPanY=undefined;this.startTimeMs=undefined;}
TimelineDisplayTransformPanAnimation.prototype={__proto__:tr.ui.b.Animation.prototype,get affectsPanY(){return this.deltaY!==0;},canTakeOverFor(existingAnimation){return existingAnimation instanceof TimelineDisplayTransformPanAnimation;},takeOverFor(existing,timestamp,target){const remainingDeltaXOnExisting=existing.goalPanX-target.panX;const remainingDeltaYOnExisting=existing.goalPanY-target.panY;let remainingTimeOnExisting=timestamp-(existing.startTimeMs+existing.durationMs);remainingTimeOnExisting=Math.max(remainingTimeOnExisting,0);this.deltaX+=remainingDeltaXOnExisting;this.deltaY+=remainingDeltaYOnExisting;this.durationMs+=remainingTimeOnExisting;},start(timestamp,target){this.startTimeMs=timestamp;this.startPanX=target.panX;this.startPanY=target.panY;},tick(timestamp,target){let percentDone=(timestamp-this.startTimeMs)/this.durationMs;percentDone=tr.b.math.clamp(percentDone,0,1);target.panX=lerp(percentDone,this.startPanX,this.goalPanX);if(this.affectsPanY){target.panY=lerp(percentDone,this.startPanY,this.goalPanY);}
return timestamp>=this.startTimeMs+this.durationMs;},get goalPanX(){return this.startPanX+this.deltaX;},get goalPanY(){return this.startPanY+this.deltaY;}};function TimelineDisplayTransformZoomToAnimation(goalFocalPointXWorld,goalFocalPointXView,goalFocalPointY,zoomInRatioX,opt_durationMs){this.goalFocalPointXWorld=goalFocalPointXWorld;this.goalFocalPointXView=goalFocalPointXView;this.goalFocalPointY=goalFocalPointY;this.zoomInRatioX=zoomInRatioX;if(opt_durationMs===undefined){this.durationMs=kDefaultPanAnimationDurationMs;}else{this.durationMs=opt_durationMs;}
this.startTimeMs=undefined;this.startScaleX=undefined;this.goalScaleX=undefined;this.startPanY=undefined;}
TimelineDisplayTransformZoomToAnimation.prototype={__proto__:tr.ui.b.Animation.prototype,get affectsPanY(){return this.startPanY!==this.goalFocalPointY;},canTakeOverFor(existingAnimation){return false;},takeOverFor(existingAnimation,timestamp,target){this.goalScaleX=target.scaleX*this.zoomInRatioX;},start(timestamp,target){this.startTimeMs=timestamp;this.startScaleX=target.scaleX;this.goalScaleX=this.zoomInRatioX*target.scaleX;this.startPanY=target.panY;},tick(timestamp,target){let percentDone=(timestamp-this.startTimeMs)/this.durationMs;percentDone=tr.b.math.clamp(percentDone,0,1);target.scaleX=lerp(percentDone,this.startScaleX,this.goalScaleX);if(this.affectsPanY){target.panY=lerp(percentDone,this.startPanY,this.goalFocalPointY);}
target.xPanWorldPosToViewPos(this.goalFocalPointXWorld,this.goalFocalPointXView);return timestamp>=this.startTimeMs+this.durationMs;}};return{TimelineDisplayTransformPanAnimation,TimelineDisplayTransformZoomToAnimation,};});'use strict';tr.exportTo('tr.ui.tracks',function(){const DrawType={GENERAL_EVENT:1,INSTANT_EVENT:2,BACKGROUND:3,GRID:4,FLOW_ARROWS:5,MARKERS:6,HIGHLIGHTS:7,ANNOTATIONS:8};const MAX_OVERSIZE_MULTIPLE=3.0;const REDRAW_SLOP=(MAX_OVERSIZE_MULTIPLE-1)/2;const DrawingContainer=tr.ui.b.define('drawing-container',tr.ui.tracks.Track);DrawingContainer.prototype={__proto__:tr.ui.tracks.Track.prototype,decorate(viewport){tr.ui.tracks.Track.prototype.decorate.call(this,viewport);Polymer.dom(this).classList.add('drawing-container');this.canvas_=document.createElement('canvas');this.canvas_.className='drawing-container-canvas';this.canvas_.style.left=tr.ui.b.constants.HEADING_WIDTH+'px';Polymer.dom(this).appendChild(this.canvas_);this.ctx_=this.canvas_.getContext('2d');this.offsetY_=0;this.viewportChange_=this.viewportChange_.bind(this);this.viewport.addEventListener('change',this.viewportChange_);window.addEventListener('resize',this.windowResized_.bind(this));this.addEventListener('scroll',this.scrollChanged_.bind(this));},get canvas(){return this.canvas_;},context(){return this.ctx_;},viewportChange_(){this.invalidate();},windowResized_(){this.invalidate();},scrollChanged_(){if(this.updateOffsetY_()){this.invalidate();}},invalidate(){if(this.rafPending_)return;this.rafPending_=true;tr.b.requestPreAnimationFrame(this.preDraw_,this);},preDraw_(){this.rafPending_=false;this.updateCanvasSizeIfNeeded_();tr.b.requestAnimationFrameInThisFrameIfPossible(this.draw_,this);},draw_(){this.ctx_.clearRect(0,0,this.canvas_.width,this.canvas_.height);const typesToDraw=[DrawType.BACKGROUND,DrawType.HIGHLIGHTS,DrawType.GRID,DrawType.INSTANT_EVENT,DrawType.GENERAL_EVENT,DrawType.MARKERS,DrawType.ANNOTATIONS,DrawType.FLOW_ARROWS];for(const idx in typesToDraw){for(let i=0;i<this.children.length;++i){if(!(this.children[i]instanceof tr.ui.tracks.Track)){continue;}
this.children[i].drawTrack(typesToDraw[idx]);}}
const pixelRatio=window.devicePixelRatio||1;const bounds=this.canvas_.getBoundingClientRect();const dt=this.viewport.currentDisplayTransform;const viewLWorld=dt.xViewToWorld(0);const viewRWorld=dt.xViewToWorld(bounds.width*pixelRatio);this.viewport.drawGridLines(this.ctx_,viewLWorld,viewRWorld);},updateOffsetY_(){const maxYDelta=window.innerHeight*REDRAW_SLOP;let newOffset=this.scrollTop-maxYDelta;if(Math.abs(newOffset-this.offsetY_)<=maxYDelta)return false;const maxOffset=this.scrollHeight-
this.canvas_.getBoundingClientRect().height;newOffset=Math.max(0,Math.min(newOffset,maxOffset));if(newOffset!==this.offsetY_){this.offsetY_=newOffset;return true;}
return false;},updateCanvasSizeIfNeeded_(){const visibleChildTracks=tr.b.asArray(this.children).filter(this.visibleFilter_);if(visibleChildTracks.length===0){return;}
const thisBounds=this.getBoundingClientRect();const firstChildTrackBounds=visibleChildTracks[0].getBoundingClientRect();const lastChildTrackBounds=visibleChildTracks[visibleChildTracks.length-1].getBoundingClientRect();const innerWidth=firstChildTrackBounds.width-
tr.ui.b.constants.HEADING_WIDTH;const innerHeight=Math.min(lastChildTrackBounds.bottom-firstChildTrackBounds.top,Math.floor(window.innerHeight*MAX_OVERSIZE_MULTIPLE));const pixelRatio=window.devicePixelRatio||1;if(this.canvas_.width!==innerWidth*pixelRatio){this.canvas_.width=innerWidth*pixelRatio;this.canvas_.style.width=innerWidth+'px';}
if(this.canvas_.height!==innerHeight*pixelRatio){this.canvas_.height=innerHeight*pixelRatio;this.canvas_.style.height=innerHeight+'px';}
if(this.canvas_.top!==this.offsetY_){this.canvas_.top=this.offsetY_;this.canvas_.style.top=this.offsetY_+'px';}},visibleFilter_(element){if(!(element instanceof tr.ui.tracks.Track))return false;return window.getComputedStyle(element).display!=='none';},addClosestEventToSelection(worldX,worldMaxDist,loY,hiY,selection){for(let i=0;i<this.children.length;++i){if(!(this.children[i]instanceof tr.ui.tracks.Track)){continue;}
const trackClientRect=this.children[i].getBoundingClientRect();const a=Math.max(loY,trackClientRect.top);const b=Math.min(hiY,trackClientRect.bottom);if(a<=b){this.children[i].addClosestEventToSelection(worldX,worldMaxDist,loY,hiY,selection);}}
tr.ui.tracks.Track.prototype.addClosestEventToSelection.apply(this,arguments);},addEventsToTrackMap(eventToTrackMap){for(let i=0;i<this.children.length;++i){if(!(this.children[i]instanceof tr.ui.tracks.Track)){continue;}
this.children[i].addEventsToTrackMap(eventToTrackMap);}}};return{DrawingContainer,DrawType,};});'use strict';tr.exportTo('tr.model',function(){const SelectableItem=tr.model.SelectableItem;const SelectionState=tr.model.SelectionState;function ProxySelectableItem(modelItem){SelectableItem.call(this,modelItem);}
ProxySelectableItem.prototype={__proto__:SelectableItem.prototype,get selectionState(){const modelItem=this.modelItem_;if(modelItem===undefined){return SelectionState.NONE;}
return modelItem.selectionState;}};return{ProxySelectableItem,};});'use strict';tr.exportTo('tr.ui.tracks',function(){const EventPresenter=tr.ui.b.EventPresenter;const SelectionState=tr.model.SelectionState;const LetterDotTrack=tr.ui.b.define('letter-dot-track',tr.ui.tracks.Track);LetterDotTrack.prototype={__proto__:tr.ui.tracks.Track.prototype,decorate(viewport){tr.ui.tracks.Track.prototype.decorate.call(this,viewport);Polymer.dom(this).classList.add('letter-dot-track');this.items_=undefined;this.heading_=document.createElement('tr-ui-b-heading');Polymer.dom(this).appendChild(this.heading_);},set heading(heading){this.heading_.heading=heading;},get heading(){return this.heading_.heading;},set tooltip(tooltip){this.heading_.tooltip=tooltip;},get items(){return this.items_;},set items(items){this.items_=items;this.invalidateDrawingContainer();},get height(){return window.getComputedStyle(this).height;},set height(height){this.style.height=height;},get dumpRadiusView(){return 7*(window.devicePixelRatio||1);},draw(type,viewLWorld,viewRWorld){if(this.items_===undefined)return;switch(type){case tr.ui.tracks.DrawType.GENERAL_EVENT:this.drawLetterDots_(viewLWorld,viewRWorld);break;}},drawLetterDots_(viewLWorld,viewRWorld){const ctx=this.context();const pixelRatio=window.devicePixelRatio||1;const bounds=this.getBoundingClientRect();const height=bounds.height*pixelRatio;const halfHeight=height*0.5;const twoPi=Math.PI*2;const dt=this.viewport.currentDisplayTransform;const dumpRadiusView=this.dumpRadiusView;const itemRadiusWorld=dt.xViewVectorToWorld(height);const items=this.items_;const loI=tr.b.math.findLowIndexInSortedArray(items,function(item){return item.start;},viewLWorld);const oldFont=ctx.font;ctx.font='400 '+Math.floor(9*pixelRatio)+'px Arial';ctx.strokeStyle='rgb(0,0,0)';ctx.textBaseline='middle';ctx.textAlign='center';const drawItems=function(selected){for(let i=loI;i<items.length;++i){const item=items[i];const x=item.start;if(x-itemRadiusWorld>viewRWorld)break;if(item.selected!==selected)continue;const xView=dt.xWorldToView(x);ctx.fillStyle=EventPresenter.getSelectableItemColorAsString(item);ctx.beginPath();ctx.arc(xView,halfHeight,dumpRadiusView+0.5,0,twoPi);ctx.fill();if(item.selected){ctx.lineWidth=3;ctx.strokeStyle='rgb(100,100,0)';ctx.stroke();ctx.beginPath();ctx.arc(xView,halfHeight,dumpRadiusView,0,twoPi);ctx.lineWidth=1.5;ctx.strokeStyle='rgb(255,255,0)';ctx.stroke();}else{ctx.lineWidth=1;ctx.strokeStyle='rgb(0,0,0)';ctx.stroke();}
ctx.fillStyle='rgb(255, 255, 255)';ctx.fillText(item.dotLetter,xView,halfHeight);}};drawItems(false);drawItems(true);ctx.lineWidth=1;ctx.font=oldFont;},addEventsToTrackMap(eventToTrackMap){if(this.items_===undefined)return;this.items_.forEach(function(item){item.addToTrackMap(eventToTrackMap,this);},this);},addIntersectingEventsInRangeToSelectionInWorldSpace(loWX,hiWX,viewPixWidthWorld,selection){if(this.items_===undefined)return;const itemRadiusWorld=viewPixWidthWorld*this.dumpRadiusView;tr.b.math.iterateOverIntersectingIntervals(this.items_,function(x){return x.start-itemRadiusWorld;},function(x){return 2*itemRadiusWorld;},loWX,hiWX,function(item){item.addToSelection(selection);}.bind(this));},addEventNearToProvidedEventToSelection(event,offset,selection){if(this.items_===undefined)return;const items=this.items_;const index=tr.b.findFirstIndexInArray(items,function(item){return item.modelItem===event;});if(index===-1)return false;const newIndex=index+offset;if(newIndex>=0&&newIndex<items.length){items[newIndex].addToSelection(selection);return true;}
return false;},addAllEventsMatchingFilterToSelection(filter,selection){},addClosestEventToSelection(worldX,worldMaxDist,loY,hiY,selection){if(this.items_===undefined)return;const item=tr.b.math.findClosestElementInSortedArray(this.items_,function(x){return x.start;},worldX,worldMaxDist);if(!item)return;item.addToSelection(selection);}};function LetterDot(modelItem,dotLetter,colorId,start){tr.model.ProxySelectableItem.call(this,modelItem);this.dotLetter=dotLetter;this.colorId=colorId;this.start=start;}
LetterDot.prototype={__proto__:tr.model.ProxySelectableItem.prototype};return{LetterDotTrack,LetterDot,};});'use strict';tr.exportTo('tr.ui.tracks',function(){const AlertTrack=tr.ui.b.define('alert-track',tr.ui.tracks.LetterDotTrack);AlertTrack.prototype={__proto__:tr.ui.tracks.LetterDotTrack.prototype,decorate(viewport){tr.ui.tracks.LetterDotTrack.prototype.decorate.call(this,viewport);this.heading='Alerts';this.alerts_=undefined;},get alerts(){return this.alerts_;},set alerts(alerts){this.alerts_=alerts;if(alerts===undefined){this.items=undefined;return;}
this.items=this.alerts_.map(function(alert){return new tr.ui.tracks.LetterDot(alert,String.fromCharCode(9888),alert.colorId,alert.start);});}};return{AlertTrack,};});'use strict';tr.exportTo('tr.ui.tracks',function(){const Task=tr.b.Task;const ContainerTrack=tr.ui.b.define('container-track',tr.ui.tracks.Track);ContainerTrack.prototype={__proto__:tr.ui.tracks.Track.prototype,decorate(viewport){tr.ui.tracks.Track.prototype.decorate.call(this,viewport);},detach(){Polymer.dom(this).textContent='';},get tracks_(){const tracks=[];for(let i=0;i<this.children.length;i++){if(this.children[i]instanceof tr.ui.tracks.Track){tracks.push(this.children[i]);}}
return tracks;},drawTrack(type){this.tracks_.forEach(function(track){track.drawTrack(type);});},addIntersectingEventsInRangeToSelection(loVX,hiVX,loY,hiY,selection){for(let i=0;i<this.tracks_.length;i++){const trackClientRect=this.tracks_[i].getBoundingClientRect();const a=Math.max(loY,trackClientRect.top);const b=Math.min(hiY,trackClientRect.bottom);if(a<=b){this.tracks_[i].addIntersectingEventsInRangeToSelection(loVX,hiVX,loY,hiY,selection);}}
tr.ui.tracks.Track.prototype.addIntersectingEventsInRangeToSelection.apply(this,arguments);},addEventsToTrackMap(eventToTrackMap){for(const track of this.tracks_){track.addEventsToTrackMap(eventToTrackMap);}},addAllEventsMatchingFilterToSelection(filter,selection){for(let i=0;i<this.tracks_.length;i++){this.tracks_[i].addAllEventsMatchingFilterToSelection(filter,selection);}},addAllEventsMatchingFilterToSelectionAsTask(filter,selection){const task=new Task();for(let i=0;i<this.tracks_.length;i++){task.subTask(function(i){return function(){this.tracks_[i].addAllEventsMatchingFilterToSelection(filter,selection);};}(i),this);}
return task;},addClosestEventToSelection(worldX,worldMaxDist,loY,hiY,selection){for(let i=0;i<this.tracks_.length;i++){const trackClientRect=this.tracks_[i].getBoundingClientRect();const a=Math.max(loY,trackClientRect.top);const b=Math.min(hiY,trackClientRect.bottom);if(a<=b){this.tracks_[i].addClosestEventToSelection(worldX,worldMaxDist,loY,hiY,selection);}}
tr.ui.tracks.Track.prototype.addClosestEventToSelection.apply(this,arguments);},addContainersToTrackMap(containerToTrackMap){this.tracks_.forEach(function(track){track.addContainersToTrackMap(containerToTrackMap);});},clearTracks_(){this.tracks_.forEach(function(track){Polymer.dom(this).removeChild(track);},this);}};return{ContainerTrack,};});'use strict';tr.exportTo('tr.ui.tracks',function(){function ChartPoint(modelItem,x,y,opt_yBase){tr.model.ProxySelectableItem.call(this,modelItem);this.x=x;this.y=y;this.dotLetter=undefined;this.yBase=opt_yBase;}
ChartPoint.prototype={__proto__:tr.model.ProxySelectableItem.prototype,};return{ChartPoint,};});'use strict';tr.exportTo('tr.ui.tracks',function(){const ColorScheme=tr.b.ColorScheme;const EventPresenter=tr.ui.b.EventPresenter;const SelectionState=tr.model.SelectionState;const ChartSeriesType={LINE:0,AREA:1};const DEFAULT_RENDERING_CONFIG={chartType:ChartSeriesType.LINE,selectedPointSize:4,unselectedPointSize:3,solidSelectedDots:false,colorId:0,lineWidth:1,skipDistance:1,unselectedPointDensityTransparent:0.10,unselectedPointDensityOpaque:0.05,backgroundOpacity:0.5,stepGraph:true};const LAST_POINT_WIDTH=16;const DOT_LETTER_RADIUS_PX=7;const DOT_LETTER_RADIUS_PADDING_PX=0.5;const DOT_LETTER_SELECTED_OUTLINE_WIDTH_PX=3;const DOT_LETTER_SELECTED_OUTLINE_DETAIL_WIDTH_PX=1.5;const DOT_LETTER_UNSELECTED_OUTLINE_WIDTH_PX=1;const DOT_LETTER_FONT_WEIGHT=400;const DOT_LETTER_FONT_SIZE_PX=9;const DOT_LETTER_FONT='Arial';const ChartSeriesComponent={BACKGROUND:0,LINE:1,DOTS:2};function ChartSeries(points,seriesYAxis,opt_renderingConfig){this.points=points;this.seriesYAxis=seriesYAxis;this.useRenderingConfig_(opt_renderingConfig);}
ChartSeries.prototype={useRenderingConfig_(opt_renderingConfig){const config=opt_renderingConfig||{};for(const[key,defaultValue]of
Object.entries(DEFAULT_RENDERING_CONFIG)){let value=config[key];if(value===undefined){value=defaultValue;}
this[key+'_']=value;}
this.topPadding=this.bottomPadding=Math.max(this.selectedPointSize_,this.unselectedPointSize_)/2;},get range(){const range=new tr.b.math.Range();this.points.forEach(function(point){range.addValue(point.y);},this);return range;},draw(ctx,transform,highDetails){if(this.points===undefined||this.points.length===0){return;}
if(this.chartType_===ChartSeriesType.AREA){this.drawComponent_(ctx,transform,ChartSeriesComponent.BACKGROUND,highDetails);}
if(this.chartType_===ChartSeriesType.LINE||highDetails){this.drawComponent_(ctx,transform,ChartSeriesComponent.LINE,highDetails);}
this.drawComponent_(ctx,transform,ChartSeriesComponent.DOTS,highDetails);},drawComponent_(ctx,transform,component,highDetails){let extraPixels=0;if(component===ChartSeriesComponent.DOTS){extraPixels=Math.max(this.selectedPointSize_,this.unselectedPointSize_);}
const pixelRatio=transform.pixelRatio;const leftViewX=transform.leftViewX-extraPixels*pixelRatio;const rightViewX=transform.rightViewX+extraPixels*pixelRatio;const leftTimestamp=transform.leftTimestamp-extraPixels;const rightTimestamp=transform.rightTimestamp+extraPixels;const firstVisibleIndex=tr.b.math.findLowIndexInSortedArray(this.points,function(point){return point.x;},leftTimestamp);let lastVisibleIndex=tr.b.math.findLowIndexInSortedArray(this.points,function(point){return point.x;},rightTimestamp);if(lastVisibleIndex>=this.points.length||this.points[lastVisibleIndex].x>rightTimestamp){lastVisibleIndex--;}
const viewSkipDistance=this.skipDistance_*pixelRatio;let selectedCircleRadius;let letterDotRadius;let squareSize;let squareHalfSize;let squareOpacity;let unselectedSeriesColor;let currentStateSeriesColor;ctx.save();ctx.font=DOT_LETTER_FONT_WEIGHT+' '+
Math.floor(DOT_LETTER_FONT_SIZE_PX*pixelRatio)+'px '+
DOT_LETTER_FONT;ctx.textBaseline='middle';ctx.textAlign='center';switch(component){case ChartSeriesComponent.DOTS:{selectedCircleRadius=(this.selectedPointSize_/2)*pixelRatio;letterDotRadius=Math.max(selectedCircleRadius,DOT_LETTER_RADIUS_PX*pixelRatio);squareSize=this.unselectedPointSize_*pixelRatio;squareHalfSize=squareSize/2;unselectedSeriesColor=EventPresenter.getCounterSeriesColor(this.colorId_,SelectionState.NONE);if(!highDetails){squareOpacity=0;break;}
const visibleIndexRange=lastVisibleIndex-firstVisibleIndex;if(visibleIndexRange<=0){squareOpacity=1;break;}
const visibleViewXRange=transform.worldXToViewX(this.points[lastVisibleIndex].x)-
transform.worldXToViewX(this.points[firstVisibleIndex].x);if(visibleViewXRange===0){squareOpacity=1;break;}
const density=visibleIndexRange/visibleViewXRange;const clampedDensity=tr.b.math.clamp(density,this.unselectedPointDensityOpaque_,this.unselectedPointDensityTransparent_);const densityRange=this.unselectedPointDensityTransparent_-
this.unselectedPointDensityOpaque_;squareOpacity=(this.unselectedPointDensityTransparent_-clampedDensity)/densityRange;break;}
case ChartSeriesComponent.LINE:ctx.strokeStyle=EventPresenter.getCounterSeriesColor(this.colorId_,SelectionState.NONE);ctx.lineWidth=this.lineWidth_*pixelRatio;break;case ChartSeriesComponent.BACKGROUND:break;default:throw new Error('Invalid component: '+component);}
let previousViewX=undefined;let previousViewY=undefined;let previousViewYBase=undefined;let lastSelectionState=undefined;let baseSteps=undefined;const startIndex=Math.max(firstVisibleIndex-1,0);let currentViewX;for(let i=startIndex;i<this.points.length;i++){const currentPoint=this.points[i];currentViewX=transform.worldXToViewX(currentPoint.x);if(currentViewX>rightViewX){if(previousViewX!==undefined){previousViewX=currentViewX=rightViewX;if(component===ChartSeriesComponent.BACKGROUND||component===ChartSeriesComponent.LINE){ctx.lineTo(currentViewX,previousViewY);}}
break;}
if(i+1<this.points.length){const nextPoint=this.points[i+1];const nextViewX=transform.worldXToViewX(nextPoint.x);if(previousViewX!==undefined&&nextViewX-previousViewX<=viewSkipDistance&&nextViewX<rightViewX){continue;}
if(currentViewX<leftViewX){currentViewX=leftViewX;}}
if(previousViewX!==undefined&¤tViewX-previousViewX<viewSkipDistance){currentViewX=previousViewX+viewSkipDistance;}
const currentViewY=Math.round(transform.worldYToViewY(currentPoint.y));let currentViewYBase;if(currentPoint.yBase===undefined){currentViewYBase=transform.outerBottomViewY;}else{currentViewYBase=Math.round(transform.worldYToViewY(currentPoint.yBase));}
const currentSelectionState=currentPoint.selectionState;if(currentSelectionState!==lastSelectionState){const opacity=currentSelectionState===SelectionState.SELECTED?1:squareOpacity;currentStateSeriesColor=EventPresenter.getCounterSeriesColor(this.colorId_,currentSelectionState,opacity);}
switch(component){case ChartSeriesComponent.DOTS:if(currentPoint.dotLetter){ctx.fillStyle=unselectedSeriesColor;ctx.strokeStyle=ColorScheme.getColorForReservedNameAsString('black');ctx.beginPath();ctx.arc(currentViewX,currentViewY,letterDotRadius+DOT_LETTER_RADIUS_PADDING_PX,0,2*Math.PI);ctx.fill();if(currentSelectionState===SelectionState.SELECTED){ctx.lineWidth=DOT_LETTER_SELECTED_OUTLINE_WIDTH_PX;ctx.strokeStyle=ColorScheme.getColorForReservedNameAsString('olive');ctx.stroke();ctx.beginPath();ctx.arc(currentViewX,currentViewY,letterDotRadius,0,2*Math.PI);ctx.lineWidth=DOT_LETTER_SELECTED_OUTLINE_DETAIL_WIDTH_PX;ctx.strokeStyle=ColorScheme.getColorForReservedNameAsString('yellow');ctx.stroke();}else{ctx.lineWidth=DOT_LETTER_UNSELECTED_OUTLINE_WIDTH_PX;ctx.strokeStyle=ColorScheme.getColorForReservedNameAsString('black');ctx.stroke();}
ctx.fillStyle=ColorScheme.getColorForReservedNameAsString('white');ctx.fillText(currentPoint.dotLetter,currentViewX,currentViewY);}else{ctx.strokeStyle=unselectedSeriesColor;ctx.lineWidth=pixelRatio;if(currentSelectionState===SelectionState.SELECTED){if(this.solidSelectedDots_){ctx.fillStyle=ctx.strokeStyle;}else{ctx.fillStyle=currentStateSeriesColor;}
ctx.beginPath();ctx.arc(currentViewX,currentViewY,selectedCircleRadius,0,2*Math.PI);ctx.fill();ctx.stroke();}else if(squareOpacity>0){ctx.fillStyle=currentStateSeriesColor;ctx.fillRect(currentViewX-squareHalfSize,currentViewY-squareHalfSize,squareSize,squareSize);}}
break;case ChartSeriesComponent.LINE:if(previousViewX===undefined){ctx.beginPath();ctx.moveTo(currentViewX,currentViewY);}else if(this.stepGraph_){ctx.lineTo(currentViewX,previousViewY);}
ctx.lineTo(currentViewX,currentViewY);break;case ChartSeriesComponent.BACKGROUND:if(previousViewX!==undefined&&this.stepGraph_){ctx.lineTo(currentViewX,previousViewY);}else{ctx.lineTo(currentViewX,currentViewY);}
if(currentSelectionState!==lastSelectionState){if(previousViewX!==undefined){let previousBaseStepViewX=currentViewX;for(let j=baseSteps.length-1;j>=0;j--){const baseStep=baseSteps[j];const baseStepViewX=baseStep.viewX;const baseStepViewY=baseStep.viewY;ctx.lineTo(previousBaseStepViewX,baseStepViewY);ctx.lineTo(baseStepViewX,baseStepViewY);previousBaseStepViewX=baseStepViewX;}
ctx.closePath();ctx.fill();}
ctx.beginPath();ctx.fillStyle=EventPresenter.getCounterSeriesColor(this.colorId_,currentSelectionState,this.backgroundOpacity_);ctx.moveTo(currentViewX,currentViewYBase);baseSteps=[];}
if(currentViewYBase!==previousViewYBase||currentSelectionState!==lastSelectionState){baseSteps.push({viewX:currentViewX,viewY:currentViewYBase});}
ctx.lineTo(currentViewX,currentViewY);break;default:throw new Error('Not reachable');}
previousViewX=currentViewX;previousViewY=currentViewY;previousViewYBase=currentViewYBase;lastSelectionState=currentSelectionState;}
if(previousViewX!==undefined){switch(component){case ChartSeriesComponent.DOTS:break;case ChartSeriesComponent.LINE:ctx.stroke();break;case ChartSeriesComponent.BACKGROUND:{let previousBaseStepViewX=currentViewX;for(let j=baseSteps.length-1;j>=0;j--){const baseStep=baseSteps[j];const baseStepViewX=baseStep.viewX;const baseStepViewY=baseStep.viewY;ctx.lineTo(previousBaseStepViewX,baseStepViewY);ctx.lineTo(baseStepViewX,baseStepViewY);previousBaseStepViewX=baseStepViewX;}
ctx.closePath();ctx.fill();break;}
default:throw new Error('Not reachable');}}
ctx.restore();},addIntersectingEventsInRangeToSelectionInWorldSpace(loWX,hiWX,viewPixWidthWorld,selection){const points=this.points;function getPointWidth(point,i){if(i===points.length-1){return LAST_POINT_WIDTH*viewPixWidthWorld;}
const nextPoint=points[i+1];return nextPoint.x-point.x;}
function selectPoint(point){point.addToSelection(selection);}
tr.b.math.iterateOverIntersectingIntervals(this.points,function(point){return point.x;},getPointWidth,loWX,hiWX,selectPoint);},addEventNearToProvidedEventToSelection(event,offset,selection){if(this.points===undefined)return false;const index=tr.b.findFirstIndexInArray(this.points,function(point){return point.modelItem===event;},this);if(index===-1)return false;const newIndex=index+offset;if(newIndex<0||newIndex>=this.points.length)return false;this.points[newIndex].addToSelection(selection);return true;},addClosestEventToSelection(worldX,worldMaxDist,loY,hiY,selection){if(this.points===undefined)return;const item=tr.b.math.findClosestElementInSortedArray(this.points,function(point){return point.x;},worldX,worldMaxDist);if(!item)return;item.addToSelection(selection);}};return{ChartSeries,ChartSeriesType,};});'use strict';tr.exportTo('tr.ui.tracks',function(){const ColorScheme=tr.b.ColorScheme;const IDEAL_MAJOR_MARK_HEIGHT_PX=30;const AXIS_LABLE_MARGIN_PX=10;const AXIS_LABLE_FONT_SIZE_PX=9;const AXIS_LABLE_FONT='Arial';function ChartSeriesYAxis(opt_min,opt_max){this.guid_=tr.b.GUID.allocateSimple();this.bounds=new tr.b.math.Range();if(opt_min!==undefined)this.bounds.addValue(opt_min);if(opt_max!==undefined)this.bounds.addValue(opt_max);}
ChartSeriesYAxis.prototype={get guid(){return this.guid_;},valueToUnitRange(value){if(this.bounds.isEmpty){throw new Error('Chart series y-axis bounds are empty');}
const bounds=this.bounds;if(bounds.range===0)return 0;return(value-bounds.min)/bounds.range;},unitRangeToValue(unitRange){if(this.bounds.isEmpty){throw new Error('Chart series y-axis bounds are empty');}
return unitRange*this.bounds.range+this.bounds.min;},autoSetFromSeries(series,opt_config){const range=new tr.b.math.Range();series.forEach(function(s){range.addRange(s.range);},this);this.autoSetFromRange(range,opt_config);},autoSetFromRange(range,opt_config){if(range.isEmpty)return;const bounds=this.bounds;if(bounds.isEmpty){bounds.addRange(range);return;}
if(!opt_config)return;const useRangeMin=(opt_config.expandMin&&range.min<bounds.min||opt_config.shrinkMin&&range.min>bounds.min);const useRangeMax=(opt_config.expandMax&&range.max>bounds.max||opt_config.shrinkMax&&range.max<bounds.max);if(!useRangeMin&&!useRangeMax)return;if(useRangeMin&&useRangeMax){bounds.min=range.min;bounds.max=range.max;return;}
if(useRangeMin){bounds.min=Math.min(range.min,bounds.max);}else{bounds.max=Math.max(range.max,bounds.min);}},majorMarkHeightWorld_(transform,pixelRatio){const idealMajorMarkHeightPx=IDEAL_MAJOR_MARK_HEIGHT_PX*pixelRatio;const idealMajorMarkHeightWorld=transform.vectorToWorldDistance(idealMajorMarkHeightPx);return tr.b.math.preferredNumberLargerThanMin(idealMajorMarkHeightWorld);},draw(ctx,transform,showYAxisLabels,showYGridLines){if(!showYAxisLabels&&!showYGridLines)return;const pixelRatio=transform.pixelRatio;const viewTop=transform.outerTopViewY;const worldTop=transform.viewYToWorldY(viewTop);const viewBottom=transform.outerBottomViewY;const viewHeight=viewBottom-viewTop;const viewLeft=transform.leftViewX;const viewRight=transform.rightViewX;const labelLeft=transform.leftYLabel;ctx.save();ctx.lineWidth=pixelRatio;ctx.fillStyle=ColorScheme.getColorForReservedNameAsString('black');ctx.textAlign='left';ctx.textBaseline='center';ctx.font=(AXIS_LABLE_FONT_SIZE_PX*pixelRatio)+'px '+AXIS_LABLE_FONT;ctx.beginPath();ctx.strokeStyle=ColorScheme.getColorForReservedNameAsString('black');tr.ui.b.drawLine(ctx,viewLeft,viewTop,viewLeft,viewBottom,viewLeft);ctx.stroke();ctx.closePath();ctx.beginPath();ctx.strokeStyle=ColorScheme.getColorForReservedNameAsString('grey');const majorMarkHeight=this.majorMarkHeightWorld_(transform,pixelRatio);const maxMajorMark=Math.max(transform.viewYToWorldY(viewTop),Math.abs(transform.viewYToWorldY(viewBottom)));for(let curWorldY=0;curWorldY<=maxMajorMark;curWorldY+=majorMarkHeight){const roundedUnitValue=Math.floor(curWorldY*1000000)/1000000;const curViewYPositive=transform.worldYToViewY(curWorldY);if(curViewYPositive>=viewTop){if(showYAxisLabels){ctx.fillText(roundedUnitValue,viewLeft+AXIS_LABLE_MARGIN_PX,curViewYPositive-AXIS_LABLE_MARGIN_PX);}
if(showYGridLines){tr.ui.b.drawLine(ctx,viewLeft,curViewYPositive,viewRight,curViewYPositive);}}
const curViewYNegative=transform.worldYToViewY(-1*curWorldY);if(curViewYNegative<=viewBottom){if(showYAxisLabels){ctx.fillText(roundedUnitValue,viewLeft+AXIS_LABLE_MARGIN_PX,curViewYNegative-AXIS_LABLE_MARGIN_PX);}
if(showYGridLines){tr.ui.b.drawLine(ctx,viewLeft,curViewYNegative,viewRight,curViewYNegative);}}}
ctx.stroke();ctx.restore();}};return{ChartSeriesYAxis,};});'use strict';tr.exportTo('tr.ui.tracks',function(){function ChartTransform(displayTransform,axis,trackWidth,trackHeight,topPadding,bottomPadding,pixelRatio){this.pixelRatio=pixelRatio;this.leftViewX=0;this.rightViewX=trackWidth;this.leftTimestamp=displayTransform.xViewToWorld(this.leftViewX);this.rightTimestamp=displayTransform.xViewToWorld(this.rightViewX);this.displayTransform_=displayTransform;this.outerTopViewY=0;this.innerTopViewY=topPadding;this.innerBottomViewY=trackHeight-bottomPadding;this.outerBottomViewY=trackHeight;this.axis_=axis;this.innerHeight_=this.innerBottomViewY-this.innerTopViewY;}
ChartTransform.prototype={worldXToViewX(worldX){return this.displayTransform_.xWorldToView(worldX);},viewXToWorldX(viewX){return this.displayTransform_.xViewToWorld(viewX);},vectorToWorldDistance(viewY){return this.axis_.bounds.range*Math.abs(viewY/this.innerHeight_);},viewYToWorldY(viewY){return this.axis_.unitRangeToValue(1-(viewY-this.innerTopViewY)/this.innerHeight_);},worldYToViewY(worldY){const innerHeightCoefficient=1-this.axis_.valueToUnitRange(worldY);return innerHeightCoefficient*this.innerHeight_+this.innerTopViewY;}};return{ChartTransform,};});'use strict';tr.exportTo('tr.ui.tracks',function(){const ChartTrack=tr.ui.b.define('chart-track',tr.ui.tracks.Track);ChartTrack.prototype={__proto__:tr.ui.tracks.Track.prototype,decorate(viewport){tr.ui.tracks.Track.prototype.decorate.call(this,viewport);Polymer.dom(this).classList.add('chart-track');this.series_=undefined;this.axes_=undefined;this.axisGuidToAxisData_=undefined;this.topPadding_=undefined;this.bottomPadding_=undefined;this.showYAxisLabels_=undefined;this.showGridLines_=undefined;this.heading_=document.createElement('tr-ui-b-heading');Polymer.dom(this).appendChild(this.heading_);},set heading(heading){this.heading_.heading=heading;},get heading(){return this.heading_.heading;},set tooltip(tooltip){this.heading_.tooltip=tooltip;},get series(){return this.series_;},set series(series){this.series_=series;this.calculateAxisDataAndPadding_();this.invalidateDrawingContainer();},get height(){return window.getComputedStyle(this).height;},set height(height){this.style.height=height;this.invalidateDrawingContainer();},get showYAxisLabels(){return this.showYAxisLabels_;},set showYAxisLabels(showYAxisLabels){this.showYAxisLabels_=showYAxisLabels;this.invalidateDrawingContainer();},get showGridLines(){return this.showGridLines_;},set showGridLines(showGridLines){this.showGridLines_=showGridLines;this.invalidateDrawingContainer();},get hasVisibleContent(){return!!this.series&&this.series.length>0;},calculateAxisDataAndPadding_(){if(!this.series_){this.axes_=undefined;this.axisGuidToAxisData_=undefined;this.topPadding_=undefined;this.bottomPadding_=undefined;return;}
const axisGuidToAxisData={};let topPadding=0;let bottomPadding=0;this.series_.forEach(function(series){const seriesYAxis=series.seriesYAxis;const axisGuid=seriesYAxis.guid;if(!(axisGuid in axisGuidToAxisData)){axisGuidToAxisData[axisGuid]={axis:seriesYAxis,series:[]};if(!this.axes_)this.axes_=[];this.axes_.push(seriesYAxis);}
axisGuidToAxisData[axisGuid].series.push(series);topPadding=Math.max(topPadding,series.topPadding);bottomPadding=Math.max(bottomPadding,series.bottomPadding);},this);this.axisGuidToAxisData_=axisGuidToAxisData;this.topPadding_=topPadding;this.bottomPadding_=bottomPadding;},draw(type,viewLWorld,viewRWorld){switch(type){case tr.ui.tracks.DrawType.GENERAL_EVENT:this.drawChart_(viewLWorld,viewRWorld);break;}},drawChart_(viewLWorld,viewRWorld){if(!this.series_)return;const ctx=this.context();const displayTransform=this.viewport.currentDisplayTransform;const pixelRatio=window.devicePixelRatio||1;const bounds=this.getBoundingClientRect();const highDetails=this.viewport.highDetails;const width=bounds.width*pixelRatio;const height=bounds.height*pixelRatio;const topPadding=this.topPadding_*pixelRatio;const bottomPadding=this.bottomPadding_*pixelRatio;ctx.save();ctx.beginPath();ctx.rect(0,0,width,height);ctx.clip();if(this.axes_){if((this.showGridLines_||this.showYAxisLabels_)&&this.axes_.length>1){throw new Error('Only one axis allowed when showing grid lines.');}
for(const yAxis of this.axes_){const chartTransform=new tr.ui.tracks.ChartTransform(displayTransform,yAxis,width,height,topPadding,bottomPadding,pixelRatio);yAxis.draw(ctx,chartTransform,this.showYAxisLabels_,this.showGridLines_);}}
for(const series of this.series){const chartTransform=new tr.ui.tracks.ChartTransform(displayTransform,series.seriesYAxis,width,height,topPadding,bottomPadding,pixelRatio);series.draw(ctx,chartTransform,highDetails);}
ctx.restore();},addEventsToTrackMap(eventToTrackMap){this.series_.forEach(function(series){series.points.forEach(function(point){point.addToTrackMap(eventToTrackMap,this);},this);},this);},addIntersectingEventsInRangeToSelectionInWorldSpace(loWX,hiWX,viewPixWidthWorld,selection){this.series_.forEach(function(series){series.addIntersectingEventsInRangeToSelectionInWorldSpace(loWX,hiWX,viewPixWidthWorld,selection);},this);},addEventNearToProvidedEventToSelection(event,offset,selection){let foundItem=false;this.series_.forEach(function(series){foundItem=foundItem||series.addEventNearToProvidedEventToSelection(event,offset,selection);},this);return foundItem;},addAllEventsMatchingFilterToSelection(filter,selection){},addClosestEventToSelection(worldX,worldMaxDist,loY,hiY,selection){this.series_.forEach(function(series){series.addClosestEventToSelection(worldX,worldMaxDist,loY,hiY,selection);},this);},autoSetAllAxes(opt_config){for(const axisData of Object.values(this.axisGuidToAxisData_)){const seriesYAxis=axisData.axis;const series=axisData.series;seriesYAxis.autoSetFromSeries(series,opt_config);}},autoSetAxis(seriesYAxis,opt_config){const series=this.axisGuidToAxisData_[seriesYAxis.guid].series;seriesYAxis.autoSetFromSeries(series,opt_config);}};return{ChartTrack,};});'use strict';tr.exportTo('tr.ui.tracks',function(){const ColorScheme=tr.b.ColorScheme;const ChartTrack=tr.ui.tracks.ChartTrack;const CpuUsageTrack=tr.ui.b.define('cpu-usage-track',ChartTrack);CpuUsageTrack.prototype={__proto__:ChartTrack.prototype,decorate(viewport){ChartTrack.prototype.decorate.call(this,viewport);this.classList.add('cpu-usage-track');this.heading='CPU usage';this.cpuUsageSeries_=undefined;},initialize(model){if(model!==undefined){this.cpuUsageSeries_=model.device.cpuUsageSeries;}else{this.cpuUsageSeries_=undefined;}
this.series=this.buildChartSeries_();this.autoSetAllAxes({expandMax:true});},get hasVisibleContent(){return!!this.cpuUsageSeries_&&this.cpuUsageSeries_.samples.length>0;},addContainersToTrackMap(containerToTrackMap){containerToTrackMap.addContainer(this.series_,this);},buildChartSeries_(yAxis,color){if(!this.hasVisibleContent)return[];yAxis=new tr.ui.tracks.ChartSeriesYAxis(0,undefined);const usageSamples=this.cpuUsageSeries_.samples;const pts=new Array(usageSamples.length+1);for(let i=0;i<usageSamples.length;i++){pts[i]=new tr.ui.tracks.ChartPoint(undefined,usageSamples[i].start,usageSamples[i].usage);}
pts[usageSamples.length]=new tr.ui.tracks.ChartPoint(undefined,usageSamples[usageSamples.length-1].start,0);const renderingConfig={chartType:tr.ui.tracks.ChartSeriesType.AREA,colorId:color};return[new tr.ui.tracks.ChartSeries(pts,yAxis,renderingConfig)];},};return{CpuUsageTrack,};});'use strict';tr.exportTo('tr.ui.tracks',function(){const ColorScheme=tr.b.ColorScheme;const ChartTrack=tr.ui.tracks.ChartTrack;const PowerSeriesTrack=tr.ui.b.define('power-series-track',ChartTrack);PowerSeriesTrack.prototype={__proto__:ChartTrack.prototype,decorate(viewport){ChartTrack.prototype.decorate.call(this,viewport);Polymer.dom(this).classList.add('power-series-track');this.heading='Power';this.powerSeries_=undefined;},set powerSeries(powerSeries){this.powerSeries_=powerSeries;this.series=this.buildChartSeries_();this.autoSetAllAxes({expandMax:true});},get hasVisibleContent(){return(this.powerSeries_&&this.powerSeries_.samples.length>0);},addContainersToTrackMap(containerToTrackMap){containerToTrackMap.addContainer(this.powerSeries_,this);},buildChartSeries_(){if(!this.hasVisibleContent)return[];const seriesYAxis=new tr.ui.tracks.ChartSeriesYAxis(0,undefined);const pts=this.powerSeries_.samples.map(function(smpl){return new tr.ui.tracks.ChartPoint(smpl,smpl.start,smpl.powerInW);});const renderingConfig={chartType:tr.ui.tracks.ChartSeriesType.AREA,colorId:ColorScheme.getColorIdForGeneralPurposeString(this.heading)};return[new tr.ui.tracks.ChartSeries(pts,seriesYAxis,renderingConfig)];}};return{PowerSeriesTrack,};});'use strict';tr.exportTo('tr.ui.tracks',function(){const SpacingTrack=tr.ui.b.define('spacing-track',tr.ui.tracks.Track);SpacingTrack.prototype={__proto__:tr.ui.tracks.Track.prototype,decorate(viewport){tr.ui.tracks.Track.prototype.decorate.call(this,viewport);Polymer.dom(this).classList.add('spacing-track');this.heading_=document.createElement('tr-ui-b-heading');Polymer.dom(this).appendChild(this.heading_);},addAllEventsMatchingFilterToSelection(filter,selection){}};return{SpacingTrack,};});'use strict';tr.exportTo('tr.ui.tracks',function(){const ContainerTrack=tr.ui.tracks.ContainerTrack;const DeviceTrack=tr.ui.b.define('device-track',ContainerTrack);DeviceTrack.prototype={__proto__:ContainerTrack.prototype,decorate(viewport){ContainerTrack.prototype.decorate.call(this,viewport);Polymer.dom(this).classList.add('device-track');this.device_=undefined;this.powerSeriesTrack_=undefined;},get device(){return this.device_;},set device(device){this.device_=device;this.updateContents_();},get powerSeriesTrack(){return this.powerSeriesTrack_;},get hasVisibleContent(){return(this.powerSeriesTrack_&&this.powerSeriesTrack_.hasVisibleContent);},addContainersToTrackMap(containerToTrackMap){tr.ui.tracks.ContainerTrack.prototype.addContainersToTrackMap.call(this,containerToTrackMap);containerToTrackMap.addContainer(this.device,this);},addEventsToTrackMap(eventToTrackMap){this.tracks_.forEach(function(track){track.addEventsToTrackMap(eventToTrackMap);});},appendPowerSeriesTrack_(){this.powerSeriesTrack_=new tr.ui.tracks.PowerSeriesTrack(this.viewport);this.powerSeriesTrack_.powerSeries=this.device.powerSeries;if(this.powerSeriesTrack_.hasVisibleContent){Polymer.dom(this).appendChild(this.powerSeriesTrack_);Polymer.dom(this).appendChild(new tr.ui.tracks.SpacingTrack(this.viewport));}},updateContents_(){this.clearTracks_();this.appendPowerSeriesTrack_();}};return{DeviceTrack,};});'use strict';tr.exportTo('tr.ui.tracks',function(){const ColorScheme=tr.b.ColorScheme;const DISPLAYED_SIZE_NUMERIC_NAME=tr.model.MemoryAllocatorDump.DISPLAYED_SIZE_NUMERIC_NAME;const BACKGROUND=tr.model.ContainerMemoryDump.LevelOfDetail.BACKGROUND;const LIGHT=tr.model.ContainerMemoryDump.LevelOfDetail.LIGHT;const DETAILED=tr.model.ContainerMemoryDump.LevelOfDetail.DETAILED;function extractGlobalMemoryDumpUsedSizes(globalMemoryDump,addSize){for(const[pid,pmd]of
Object.entries(globalMemoryDump.processMemoryDumps)){const mostRecentVmRegions=pmd.mostRecentVmRegions;if(mostRecentVmRegions===undefined)continue;addSize(pid,mostRecentVmRegions.byteStats.proportionalResident||0,pmd.process.userFriendlyName);}}
function extractProcessMemoryDumpAllocatorSizes(processMemoryDump,addSize){const allocatorDumps=processMemoryDump.memoryAllocatorDumps;if(allocatorDumps===undefined)return;allocatorDumps.forEach(function(allocatorDump){if(allocatorDump.fullName==='tracing')return;const allocatorSize=allocatorDump.numerics[DISPLAYED_SIZE_NUMERIC_NAME];if(allocatorSize===undefined)return;const allocatorSizeValue=allocatorSize.value;if(allocatorSizeValue===undefined)return;addSize(allocatorDump.fullName,allocatorSizeValue);});}
function extractGlobalMemoryDumpAllocatorSizes(globalMemoryDump,addSize){for(const pmd of Object.values(globalMemoryDump.processMemoryDumps)){extractProcessMemoryDumpAllocatorSizes(pmd,addSize);}}
function buildMemoryChartSeries(memoryDumps,dumpSizeExtractor){const dumpCount=memoryDumps.length;const idToTimestampToPoint={};const idToName={};memoryDumps.forEach(function(dump,index){dumpSizeExtractor(dump,function addSize(id,size,opt_name){let timestampToPoint=idToTimestampToPoint[id];if(timestampToPoint===undefined){idToTimestampToPoint[id]=timestampToPoint=new Array(dumpCount);for(let i=0;i<dumpCount;i++){const modelItem=memoryDumps[i];timestampToPoint[i]=new tr.ui.tracks.ChartPoint(modelItem,modelItem.start,0);}}
timestampToPoint[index].y+=size;if(opt_name!==undefined)idToName[id]=opt_name;});});const ids=Object.keys(idToTimestampToPoint);if(ids.length===0)return undefined;ids.sort();for(let i=0;i<dumpCount;i++){let baseSize=0;for(let j=ids.length-1;j>=0;j--){const point=idToTimestampToPoint[ids[j]][i];point.yBase=baseSize;point.y+=baseSize;baseSize=point.y;}}
const seriesYAxis=new tr.ui.tracks.ChartSeriesYAxis(0);const series=ids.map(function(id){const colorId=ColorScheme.getColorIdForGeneralPurposeString(idToName[id]||id);const renderingConfig={chartType:tr.ui.tracks.ChartSeriesType.AREA,colorId,backgroundOpacity:0.8};return new tr.ui.tracks.ChartSeries(idToTimestampToPoint[id],seriesYAxis,renderingConfig);});series.reverse();return series;}
function buildMemoryLetterDots(memoryDumps){const backgroundMemoryColorId=ColorScheme.getColorIdForReservedName('background_memory_dump');const lightMemoryColorId=ColorScheme.getColorIdForReservedName('light_memory_dump');const detailedMemoryColorId=ColorScheme.getColorIdForReservedName('detailed_memory_dump');return memoryDumps.map(function(memoryDump){let memoryColorId;switch(memoryDump.levelOfDetail){case BACKGROUND:memoryColorId=backgroundMemoryColorId;break;case DETAILED:memoryColorId=detailedMemoryColorId;break;case LIGHT:default:memoryColorId=lightMemoryColorId;}
return new tr.ui.tracks.LetterDot(memoryDump,'M',memoryColorId,memoryDump.start);});}
function buildGlobalUsedMemoryChartSeries(globalMemoryDumps){return buildMemoryChartSeries(globalMemoryDumps,extractGlobalMemoryDumpUsedSizes);}
function buildProcessAllocatedMemoryChartSeries(processMemoryDumps){return buildMemoryChartSeries(processMemoryDumps,extractProcessMemoryDumpAllocatorSizes);}
function buildGlobalAllocatedMemoryChartSeries(globalMemoryDumps){return buildMemoryChartSeries(globalMemoryDumps,extractGlobalMemoryDumpAllocatorSizes);}
return{buildMemoryLetterDots,buildGlobalUsedMemoryChartSeries,buildProcessAllocatedMemoryChartSeries,buildGlobalAllocatedMemoryChartSeries,};});'use strict';tr.exportTo('tr.ui.tracks',function(){const USED_MEMORY_TRACK_HEIGHT=50;const ALLOCATED_MEMORY_TRACK_HEIGHT=50;const GlobalMemoryDumpTrack=tr.ui.b.define('global-memory-dump-track',tr.ui.tracks.ContainerTrack);GlobalMemoryDumpTrack.prototype={__proto__:tr.ui.tracks.ContainerTrack.prototype,decorate(viewport){tr.ui.tracks.ContainerTrack.prototype.decorate.call(this,viewport);this.memoryDumps_=undefined;},get memoryDumps(){return this.memoryDumps_;},set memoryDumps(memoryDumps){this.memoryDumps_=memoryDumps;this.updateContents_();},updateContents_(){this.clearTracks_();if(!this.memoryDumps_||!this.memoryDumps_.length)return;this.appendDumpDotsTrack_();this.appendUsedMemoryTrack_();this.appendAllocatedMemoryTrack_();},appendDumpDotsTrack_(){const items=tr.ui.tracks.buildMemoryLetterDots(this.memoryDumps_);if(!items)return;const track=new tr.ui.tracks.LetterDotTrack(this.viewport);track.heading='Memory Dumps';track.items=items;Polymer.dom(this).appendChild(track);},appendUsedMemoryTrack_(){const series=tr.ui.tracks.buildGlobalUsedMemoryChartSeries(this.memoryDumps_);if(!series)return;const track=new tr.ui.tracks.ChartTrack(this.viewport);track.heading='Memory per process';track.height=USED_MEMORY_TRACK_HEIGHT+'px';track.series=series;track.autoSetAllAxes({expandMax:true});Polymer.dom(this).appendChild(track);},appendAllocatedMemoryTrack_(){const series=tr.ui.tracks.buildGlobalAllocatedMemoryChartSeries(this.memoryDumps_);if(!series)return;const track=new tr.ui.tracks.ChartTrack(this.viewport);track.heading='Memory per component';track.height=ALLOCATED_MEMORY_TRACK_HEIGHT+'px';track.series=series;track.autoSetAllAxes({expandMax:true});Polymer.dom(this).appendChild(track);}};return{GlobalMemoryDumpTrack,};});'use strict';tr.exportTo('tr.ui.b',function(){function FastRectRenderer(ctx,minRectSize,maxMergeDist,pallette){this.ctx_=ctx;this.minRectSize_=minRectSize;this.maxMergeDist_=maxMergeDist;this.pallette_=pallette;}
FastRectRenderer.prototype={y_:0,h_:0,merging_:false,mergeStartX_:0,mergeCurRight_:0,mergedColorId_:0,mergedAlpha_:0,setYandH(y,h){if(this.y_===y&&this.h_===h){return;}
this.flush();this.y_=y;this.h_=h;},fillRect(x,w,colorId,alpha){const r=x+w;if(w<this.minRectSize_){if(r-this.mergeStartX_>this.maxMergeDist_){this.flush();}
if(!this.merging_){this.merging_=true;this.mergeStartX_=x;this.mergeCurRight_=r;this.mergedColorId_=colorId;this.mergedAlpha_=alpha;}else{this.mergeCurRight_=r;if(this.mergedAlpha_<alpha||(this.mergedAlpha_===alpha&&this.mergedColorId_<colorId)){this.mergedAlpha_=alpha;this.mergedColorId_=colorId;}}}else{if(this.merging_){this.flush();}
this.ctx_.fillStyle=this.pallette_[colorId];this.ctx_.globalAlpha=alpha;this.ctx_.fillRect(x,this.y_,w,this.h_);}},flush(){if(this.merging_){this.ctx_.fillStyle=this.pallette_[this.mergedColorId_];this.ctx_.globalAlpha=this.mergedAlpha_;this.ctx_.fillRect(this.mergeStartX_,this.y_,this.mergeCurRight_-this.mergeStartX_,this.h_);this.merging_=false;}}};return{FastRectRenderer,};});'use strict';tr.exportTo('tr.ui.tracks',function(){const RectTrack=tr.ui.b.define('rect-track',tr.ui.tracks.Track);RectTrack.prototype={__proto__:tr.ui.tracks.Track.prototype,decorate(viewport){tr.ui.tracks.Track.prototype.decorate.call(this,viewport);Polymer.dom(this).classList.add('rect-track');this.asyncStyle_=false;this.rects_=null;this.heading_=document.createElement('tr-ui-b-heading');Polymer.dom(this).appendChild(this.heading_);},set heading(heading){this.heading_.heading=heading;},get heading(){return this.heading_.heading;},set tooltip(tooltip){this.heading_.tooltip=tooltip;},set selectionGenerator(generator){this.heading_.selectionGenerator=generator;},set expanded(expanded){this.heading_.expanded=!!expanded;},set arrowVisible(arrowVisible){this.heading_.arrowVisible=!!arrowVisible;},get expanded(){return this.heading_.expanded;},get asyncStyle(){return this.asyncStyle_;},set asyncStyle(v){this.asyncStyle_=!!v;},get rects(){return this.rects_;},set rects(rects){this.rects_=rects||[];this.invalidateDrawingContainer();},get height(){return window.getComputedStyle(this).height;},set height(height){this.style.height=height;this.invalidateDrawingContainer();},get hasVisibleContent(){return this.rects_.length>0;},draw(type,viewLWorld,viewRWorld){switch(type){case tr.ui.tracks.DrawType.GENERAL_EVENT:this.drawRects_(viewLWorld,viewRWorld);break;}},drawRects_(viewLWorld,viewRWorld){const ctx=this.context();ctx.save();const bounds=this.getBoundingClientRect();tr.ui.b.drawSlices(ctx,this.viewport.currentDisplayTransform,viewLWorld,viewRWorld,bounds.height,this.rects_,this.asyncStyle_);ctx.restore();if(bounds.height<=6)return;let fontSize;let yOffset;if(bounds.height<15){fontSize=6;yOffset=1.0;}else{fontSize=10;yOffset=2.5;}
tr.ui.b.drawLabels(ctx,this.viewport.currentDisplayTransform,viewLWorld,viewRWorld,this.rects_,this.asyncStyle_,fontSize,yOffset);},addEventsToTrackMap(eventToTrackMap){if(this.rects_===undefined||this.rects_===null){return;}
this.rects_.forEach(function(rect){rect.addToTrackMap(eventToTrackMap,this);},this);},addIntersectingEventsInRangeToSelectionInWorldSpace(loWX,hiWX,viewPixWidthWorld,selection){function onRect(rect){rect.addToSelection(selection);}
onRect=onRect.bind(this);const instantEventWidth=2*viewPixWidthWorld;tr.b.math.iterateOverIntersectingIntervals(this.rects_,function(x){return x.start;},function(x){return x.duration===0?x.duration+instantEventWidth:x.duration;},loWX,hiWX,onRect);},addEventNearToProvidedEventToSelection(event,offset,selection){const index=tr.b.findFirstIndexInArray(this.rects_,function(rect){return rect.modelItem===event;});if(index===-1)return false;const newIndex=index+offset;if(newIndex<0||newIndex>=this.rects_.length)return false;this.rects_[newIndex].addToSelection(selection);return true;},addAllEventsMatchingFilterToSelection(filter,selection){for(let i=0;i<this.rects_.length;++i){const modelItem=this.rects_[i].modelItem;if(!modelItem)continue;if(filter.matchSlice(modelItem)){selection.push(modelItem);}}},addClosestEventToSelection(worldX,worldMaxDist,loY,hiY,selection){const rect=tr.b.math.findClosestIntervalInSortedIntervals(this.rects_,function(x){return x.start;},function(x){return x.end;},worldX,worldMaxDist);if(!rect)return;rect.addToSelection(selection);}};function Rect(modelItem,title,colorId,start,duration){tr.model.ProxySelectableItem.call(this,modelItem);this.title=title;this.colorId=colorId;this.start=start;this.duration=duration;this.end=start+duration;}
Rect.prototype={__proto__:tr.model.ProxySelectableItem.prototype};return{RectTrack,Rect,};});'use strict';tr.exportTo('tr.ui.tracks',function(){const SliceTrack=tr.ui.b.define('slice-track',tr.ui.tracks.RectTrack);SliceTrack.prototype={__proto__:tr.ui.tracks.RectTrack.prototype,decorate(viewport){tr.ui.tracks.RectTrack.prototype.decorate.call(this,viewport);},get slices(){return this.rects;},set slices(slices){this.rects=slices;}};return{SliceTrack,};});'use strict';tr.exportTo('tr.ui.tracks',function(){const CpuTrack=tr.ui.b.define('cpu-track',tr.ui.tracks.ContainerTrack);CpuTrack.prototype={__proto__:tr.ui.tracks.ContainerTrack.prototype,decorate(viewport){tr.ui.tracks.ContainerTrack.prototype.decorate.call(this,viewport);Polymer.dom(this).classList.add('cpu-track');this.detailedMode_=true;},get cpu(){return this.cpu_;},set cpu(cpu){this.cpu_=cpu;this.updateContents_();},get detailedMode(){return this.detailedMode_;},set detailedMode(detailedMode){this.detailedMode_=detailedMode;this.updateContents_();},get tooltip(){return this.tooltip_;},set tooltip(value){this.tooltip_=value;this.updateContents_();},get hasVisibleContent(){if(this.cpu_===undefined)return false;const cpu=this.cpu_;if(cpu.slices.length)return true;if(cpu.samples&&cpu.samples.length)return true;if(Object.keys(cpu.counters).length>0)return true;return false;},updateContents_(){this.detach();if(!this.cpu_)return;const slices=this.cpu_.slices;if(slices.length){const track=new tr.ui.tracks.SliceTrack(this.viewport);track.slices=slices;track.heading=this.cpu_.userFriendlyName+':';Polymer.dom(this).appendChild(track);}
if(this.detailedMode_){this.appendSamplesTracks_();for(const counterName in this.cpu_.counters){const counter=this.cpu_.counters[counterName];const track=new tr.ui.tracks.CounterTrack(this.viewport);track.heading=this.cpu_.userFriendlyName+' '+
counter.name+':';track.counter=counter;Polymer.dom(this).appendChild(track);}}},appendSamplesTracks_(){const samples=this.cpu_.samples;if(samples===undefined||samples.length===0){return;}
const samplesByTitle={};samples.forEach(function(sample){if(samplesByTitle[sample.title]===undefined){samplesByTitle[sample.title]=[];}
samplesByTitle[sample.title].push(sample);});const sampleTitles=Object.keys(samplesByTitle);sampleTitles.sort();sampleTitles.forEach(function(sampleTitle){const samples=samplesByTitle[sampleTitle];const samplesTrack=new tr.ui.tracks.SliceTrack(this.viewport);samplesTrack.group=this.cpu_;samplesTrack.slices=samples;samplesTrack.heading=this.cpu_.userFriendlyName+': '+
sampleTitle;samplesTrack.tooltip=this.cpu_.userFriendlyDetails;samplesTrack.selectionGenerator=function(){const selection=new tr.model.EventSet();for(let i=0;i<samplesTrack.slices.length;i++){selection.push(samplesTrack.slices[i]);}
return selection;};Polymer.dom(this).appendChild(samplesTrack);},this);}};return{CpuTrack,};});'use strict';tr.exportTo('tr.model',function(){const Settings=tr.b.Settings;function ModelSettings(model){this.model=model;this.objectsByKey_=[];this.nonuniqueKeys_=[];this.buildObjectsByKeyMap_();this.removeNonuniqueKeysFromSettings_();this.ephemeralSettingsByGUID_={};}
ModelSettings.prototype={buildObjectsByKeyMap_(){const objects=[];this.model.iterateAllPersistableObjects(function(o){objects.push(o);});const objectsByKey={};const NONUNIQUE_KEY='nonuniqueKey';for(let i=0;i<objects.length;i++){const object=objects[i];const objectKey=object.getSettingsKey();if(!objectKey)continue;if(objectsByKey[objectKey]===undefined){objectsByKey[objectKey]=object;continue;}
objectsByKey[objectKey]=NONUNIQUE_KEY;}
const nonuniqueKeys={};Object.keys(objectsByKey).forEach(function(objectKey){if(objectsByKey[objectKey]!==NONUNIQUE_KEY){return;}
delete objectsByKey[objectKey];nonuniqueKeys[objectKey]=true;});this.nonuniqueKeys=nonuniqueKeys;this.objectsByKey_=objectsByKey;},removeNonuniqueKeysFromSettings_(){const settings=Settings.get('trace_model_settings',{});let settingsChanged=false;Object.keys(settings).forEach(function(objectKey){if(!this.nonuniqueKeys[objectKey]){return;}
settingsChanged=true;delete settings[objectKey];},this);if(settingsChanged){Settings.set('trace_model_settings',settings);}},hasUniqueSettingKey(object){const objectKey=object.getSettingsKey();if(!objectKey)return false;return this.objectsByKey_[objectKey]!==undefined;},getSettingFor(object,objectLevelKey,defaultValue){const objectKey=object.getSettingsKey();if(!objectKey||!this.objectsByKey_[objectKey]){const settings=this.getEphemeralSettingsFor_(object);const ephemeralValue=settings[objectLevelKey];if(ephemeralValue!==undefined){return ephemeralValue;}
return defaultValue;}
const settings=Settings.get('trace_model_settings',{});if(!settings[objectKey]){settings[objectKey]={};}
const value=settings[objectKey][objectLevelKey];if(value!==undefined){return value;}
return defaultValue;},setSettingFor(object,objectLevelKey,value){const objectKey=object.getSettingsKey();if(!objectKey||!this.objectsByKey_[objectKey]){this.getEphemeralSettingsFor_(object)[objectLevelKey]=value;return;}
const settings=Settings.get('trace_model_settings',{});if(!settings[objectKey]){settings[objectKey]={};}
if(settings[objectKey][objectLevelKey]===value){return;}
settings[objectKey][objectLevelKey]=value;Settings.set('trace_model_settings',settings);},getEphemeralSettingsFor_(object){if(object.guid===undefined){throw new Error('Only objects with GUIDs can be persisted');}
if(this.ephemeralSettingsByGUID_[object.guid]===undefined){this.ephemeralSettingsByGUID_[object.guid]={};}
return this.ephemeralSettingsByGUID_[object.guid];}};return{ModelSettings,};});'use strict';tr.exportTo('tr.ui.tracks',function(){const CounterTrack=tr.ui.b.define('counter-track',tr.ui.tracks.ChartTrack);CounterTrack.prototype={__proto__:tr.ui.tracks.ChartTrack.prototype,decorate(viewport){tr.ui.tracks.ChartTrack.prototype.decorate.call(this,viewport);Polymer.dom(this).classList.add('counter-track');},get counter(){return this.chart;},set counter(counter){this.heading=counter.name+': ';this.series=CounterTrack.buildChartSeriesFromCounter(counter);this.autoSetAllAxes({expandMax:true});},getModelEventFromItem(chartValue){return chartValue;}};CounterTrack.buildChartSeriesFromCounter=function(counter){const numSeries=counter.series.length;const totals=counter.totals;const seriesYAxis=new tr.ui.tracks.ChartSeriesYAxis(0,undefined);const chartSeries=counter.series.map(function(series,seriesIndex){const chartPoints=series.samples.map(function(sample,sampleIndex){const total=totals[sampleIndex*numSeries+seriesIndex];return new tr.ui.tracks.ChartPoint(sample,sample.timestamp,total);});const renderingConfig={chartType:tr.ui.tracks.ChartSeriesType.AREA,colorId:series.color};return new tr.ui.tracks.ChartSeries(chartPoints,seriesYAxis,renderingConfig);});chartSeries.reverse();return chartSeries;};return{CounterTrack,};});'use strict';tr.exportTo('tr.ui.tracks',function(){const startCompare=function(x,y){return x.start-y.start;};const FrameTrack=tr.ui.b.define('frame-track',tr.ui.tracks.LetterDotTrack);FrameTrack.prototype={__proto__:tr.ui.tracks.LetterDotTrack.prototype,decorate(viewport){tr.ui.tracks.LetterDotTrack.prototype.decorate.call(this,viewport);this.heading='Frames';this.frames_=undefined;this.items=undefined;},get frames(){return this.frames_;},set frames(frames){this.frames_=frames;if(frames===undefined)return;this.frames_=this.frames_.slice();this.frames_.sort(startCompare);this.items=this.frames_.map(function(frame){return new FrameDot(frame);});}};function FrameDot(frame){tr.ui.tracks.LetterDot.call(this,frame,'F',frame.colorId,frame.start);}
FrameDot.prototype={__proto__:tr.ui.tracks.LetterDot.prototype};return{FrameTrack,};});'use strict';tr.exportTo('tr.ui.tracks',function(){const MultiRowTrack=tr.ui.b.define('multi-row-track',tr.ui.tracks.ContainerTrack);MultiRowTrack.prototype={__proto__:tr.ui.tracks.ContainerTrack.prototype,decorate(viewport){tr.ui.tracks.ContainerTrack.prototype.decorate.call(this,viewport);this.tooltip_='';this.heading_='';this.groupingSource_=undefined;this.itemsToGroup_=undefined;this.defaultToCollapsedWhenSubRowCountMoreThan=1;this.itemsGroupedOnLastUpdateContents_=undefined;this.currentSubRows_=[];this.expanded_=true;},get itemsToGroup(){return this.itemsToGroup_;},setItemsToGroup(itemsToGroup,opt_groupingSource){this.itemsToGroup_=itemsToGroup;this.groupingSource_=opt_groupingSource;this.updateContents_();this.updateExpandedStateFromGroupingSource_();},get heading(){return this.heading_;},set heading(h){this.heading_=h;this.updateContents_();},get tooltip(){return this.tooltip_;},set tooltip(t){this.tooltip_=t;this.updateContents_();},get subRows(){return this.currentSubRows_;},get hasVisibleContent(){return this.children.length>0;},get expanded(){return this.expanded_;},set expanded(expanded){if(this.expanded_===expanded)return;this.expanded_=expanded;this.expandedStateChanged_();},onHeadingClicked_(e){if(this.subRows.length<=1)return;this.expanded=!this.expanded;if(this.groupingSource_){const modelSettings=new tr.model.ModelSettings(this.groupingSource_.model);modelSettings.setSettingFor(this.groupingSource_,'expanded',this.expanded);}
e.stopPropagation();},updateExpandedStateFromGroupingSource_(){if(this.groupingSource_){const numSubRows=this.subRows.length;const modelSettings=new tr.model.ModelSettings(this.groupingSource_.model);if(numSubRows>1){let defaultExpanded;if(numSubRows>this.defaultToCollapsedWhenSubRowCountMoreThan){defaultExpanded=false;}else{defaultExpanded=true;}
this.expanded=modelSettings.getSettingFor(this.groupingSource_,'expanded',defaultExpanded);}else{this.expanded=undefined;}}},expandedStateChanged_(){const minH=Math.max(2,Math.ceil(18/this.children.length));const h=(this.expanded_?18:minH)+'px';for(let i=0;i<this.children.length;i++){this.children[i].height=h;if(i===0){this.children[i].arrowVisible=true;}
this.children[i].expanded=this.expanded;}
if(this.children.length===1){this.children[0].expanded=true;this.children[0].arrowVisible=false;}},updateContents_(){tr.ui.tracks.ContainerTrack.prototype.updateContents_.call(this);if(!this.itemsToGroup_){this.updateHeadingAndTooltip_();this.currentSubRows_=[];return;}
if(this.areArrayContentsSame_(this.itemsGroupedOnLastUpdateContents_,this.itemsToGroup_)){this.updateHeadingAndTooltip_();return;}
this.itemsGroupedOnLastUpdateContents_=this.itemsToGroup_;this.detach();if(!this.itemsToGroup_.length){this.currentSubRows_=[];return;}
const subRows=this.buildSubRows_(this.itemsToGroup_);this.currentSubRows_=subRows;for(let srI=0;srI<subRows.length;srI++){const subRow=subRows[srI];if(!subRow.length)continue;const track=this.addSubTrack_(subRow);track.addEventListener('heading-clicked',this.onHeadingClicked_.bind(this));}
this.updateHeadingAndTooltip_();this.expandedStateChanged_();},updateHeadingAndTooltip_(){if(!Polymer.dom(this).firstChild)return;Polymer.dom(this).firstChild.heading=this.heading_;Polymer.dom(this).firstChild.tooltip=this.tooltip_;},buildSubRows_(itemsToGroup){throw new Error('Not implemented');},addSubTrack_(subRowItems){throw new Error('Not implemented');},areArrayContentsSame_(a,b){if(!a||!b)return false;if(!a.length||!b.length)return false;if(a.length!==b.length)return false;for(let i=0;i<a.length;++i){if(a[i]!==b[i])return false;}
return true;}};return{MultiRowTrack,};});'use strict';tr.exportTo('tr.ui.tracks',function(){const ObjectInstanceGroupTrack=tr.ui.b.define('object-instance-group-track',tr.ui.tracks.MultiRowTrack);ObjectInstanceGroupTrack.prototype={__proto__:tr.ui.tracks.MultiRowTrack.prototype,decorate(viewport){tr.ui.tracks.MultiRowTrack.prototype.decorate.call(this,viewport);Polymer.dom(this).classList.add('object-instance-group-track');this.objectInstances_=undefined;},get objectInstances(){return this.itemsToGroup;},set objectInstances(objectInstances){this.setItemsToGroup(objectInstances);},addSubTrack_(objectInstances){const hasMultipleRows=this.subRows.length>1;const track=new tr.ui.tracks.ObjectInstanceTrack(this.viewport);track.objectInstances=objectInstances;Polymer.dom(this).appendChild(track);return track;},buildSubRows_(objectInstances){objectInstances.sort(function(x,y){return x.creationTs-y.creationTs;});const subRows=[];for(let i=0;i<objectInstances.length;i++){const objectInstance=objectInstances[i];let found=false;for(let j=0;j<subRows.length;j++){const subRow=subRows[j];const lastItemInSubRow=subRow[subRow.length-1];if(objectInstance.creationTs>=lastItemInSubRow.deletionTs){found=true;subRow.push(objectInstance);break;}}
if(!found){subRows.push([objectInstance]);}}
return subRows;},updateHeadingAndTooltip_(){}};return{ObjectInstanceGroupTrack,};});'use strict';tr.exportTo('tr.ui.tracks',function(){const AsyncSliceGroupTrack=tr.ui.b.define('async-slice-group-track',tr.ui.tracks.MultiRowTrack);AsyncSliceGroupTrack.prototype={__proto__:tr.ui.tracks.MultiRowTrack.prototype,decorate(viewport){tr.ui.tracks.MultiRowTrack.prototype.decorate.call(this,viewport);Polymer.dom(this).classList.add('async-slice-group-track');this.group_=undefined;},addSubTrack_(slices){const track=new tr.ui.tracks.SliceTrack(this.viewport);track.slices=slices;Polymer.dom(this).appendChild(track);track.asyncStyle=true;return track;},get group(){return this.group_;},set group(group){this.group_=group;this.setItemsToGroup(this.group_.slices,this.group_);},get eventContainer(){return this.group;},addContainersToTrackMap(containerToTrackMap){tr.ui.tracks.MultiRowTrack.prototype.addContainersToTrackMap.apply(this,arguments);containerToTrackMap.addContainer(this.group,this);},buildSubRows_(slices,opt_skipSort){if(!opt_skipSort){slices.sort(function(x,y){return x.start-y.start;});}
const findLevel=function(sliceToPut,rows,n){if(n>=rows.length){return true;}
const subRow=rows[n];const lastSliceInSubRow=subRow[subRow.length-1];if(sliceToPut.start>=lastSliceInSubRow.end){if(sliceToPut.subSlices===undefined||sliceToPut.subSlices.length===0){return true;}
for(const subSlice of sliceToPut.subSlices){if(!findLevel(subSlice,rows,n+1)){return false;}}
return true;}
return false;};const subRows=[];for(const slice of slices){let found=false;let index=subRows.length;for(let j=0;j<subRows.length;j++){if(findLevel(slice,subRows,j)){found=true;index=j;break;}}
if(!found){subRows.push([]);}
subRows[index].push(slice);const fitSubSlicesRecursively=function(subSlices,level,rows){if(subSlices===undefined||subSlices.length===0){return;}
if(level===rows.length){rows.push([]);}
for(const subSlice of subSlices){rows[level].push(subSlice);fitSubSlicesRecursively(subSlice.subSlices,level+1,rows);}};fitSubSlicesRecursively(slice.subSlices,index+1,subRows);}
return subRows;}};return{AsyncSliceGroupTrack,};});'use strict';tr.exportTo('tr.ui.tracks',function(){const SampleTrack=tr.ui.b.define('sample-track',tr.ui.tracks.RectTrack);SampleTrack.prototype={__proto__:tr.ui.tracks.RectTrack.prototype,decorate(viewport){tr.ui.tracks.RectTrack.prototype.decorate.call(this,viewport);},get samples(){return this.rects;},set samples(samples){this.rects=samples;}};return{SampleTrack,};});'use strict';tr.exportTo('tr.ui.tracks',function(){const SliceGroupTrack=tr.ui.b.define('slice-group-track',tr.ui.tracks.MultiRowTrack);SliceGroupTrack.prototype={__proto__:tr.ui.tracks.MultiRowTrack.prototype,decorate(viewport){tr.ui.tracks.MultiRowTrack.prototype.decorate.call(this,viewport);Polymer.dom(this).classList.add('slice-group-track');this.group_=undefined;this.defaultToCollapsedWhenSubRowCountMoreThan=100;},addSubTrack_(slices){const track=new tr.ui.tracks.SliceTrack(this.viewport);track.slices=slices;Polymer.dom(this).appendChild(track);return track;},get group(){return this.group_;},set group(group){this.group_=group;this.setItemsToGroup(this.group_.slices,this.group_);},get eventContainer(){return this.group;},addContainersToTrackMap(containerToTrackMap){tr.ui.tracks.MultiRowTrack.prototype.addContainersToTrackMap.apply(this,arguments);containerToTrackMap.addContainer(this.group,this);},buildSubRows_(slices){const precisionUnit=this.group.model.intrinsicTimeUnit;if(!slices.length)return[];const ops=[];for(let i=0;i<slices.length;i++){if(slices[i].subSlices){slices[i].subSlices.splice(0,slices[i].subSlices.length);}
ops.push(i);}
ops.sort(function(ix,iy){const x=slices[ix];const y=slices[iy];if(x.start!==y.start)return x.start-y.start;return ix-iy;});const subRows=[[]];this.badSlices_=[];for(let i=0;i<ops.length;i++){const op=ops[i];const slice=slices[op];let inserted=false;for(let j=subRows.length-1;j>=0;j--){if(subRows[j].length===0)continue;const insertedSlice=subRows[j][subRows[j].length-1];if(slice.start<insertedSlice.start){this.badSlices_.push(slice);inserted=true;}
if(insertedSlice.bounds(slice,precisionUnit)){while(subRows.length<=j+1){subRows.push([]);}
subRows[j+1].push(slice);if(insertedSlice.subSlices){insertedSlice.subSlices.push(slice);}
inserted=true;break;}}
if(inserted)continue;subRows[0].push(slice);}
return subRows;}};return{SliceGroupTrack,};});'use strict';tr.exportTo('tr.ui.tracks',function(){const ThreadTrack=tr.ui.b.define('thread-track',tr.ui.tracks.ContainerTrack);ThreadTrack.prototype={__proto__:tr.ui.tracks.ContainerTrack.prototype,decorate(viewport){tr.ui.tracks.ContainerTrack.prototype.decorate.call(this,viewport);Polymer.dom(this).classList.add('thread-track');this.heading_=document.createElement('tr-ui-b-heading');},get thread(){return this.thread_;},set thread(thread){this.thread_=thread;this.updateContents_();},get hasVisibleContent(){return this.tracks_.length>0;},get hasSlices(){return this.thread_.asyncSliceGroup.length>0||this.thread_.sliceGroup.length>0;},get hasTimeSlices(){return this.thread_.timeSlices;},get eventContainer(){return this.thread;},addContainersToTrackMap(containerToTrackMap){tr.ui.tracks.ContainerTrack.prototype.addContainersToTrackMap.apply(this,arguments);containerToTrackMap.addContainer(this.thread,this);},updateContents_(){this.detach();if(!this.thread_)return;this.heading_.heading=this.thread_.userFriendlyName;this.heading_.tooltip=this.thread_.userFriendlyDetails;if(this.thread_.asyncSliceGroup.length){this.appendAsyncSliceTracks_();}
this.appendThreadSamplesTracks_();let needsHeading=false;if(this.thread_.timeSlices){const timeSlicesTrack=new tr.ui.tracks.SliceTrack(this.viewport);timeSlicesTrack.heading='';timeSlicesTrack.height=tr.ui.b.THIN_SLICE_HEIGHT+'px';timeSlicesTrack.slices=this.thread_.timeSlices;if(timeSlicesTrack.hasVisibleContent){needsHeading=true;Polymer.dom(this).appendChild(timeSlicesTrack);}}
if(this.thread_.sliceGroup.length){const track=new tr.ui.tracks.SliceGroupTrack(this.viewport);track.heading=this.thread_.userFriendlyName;track.tooltip=this.thread_.userFriendlyDetails;track.group=this.thread_.sliceGroup;if(track.hasVisibleContent){needsHeading=false;Polymer.dom(this).appendChild(track);}}
if(needsHeading){Polymer.dom(this).appendChild(this.heading_);}},appendAsyncSliceTracks_(){const subGroups=this.thread_.asyncSliceGroup.viewSubGroups;subGroups.forEach(function(subGroup){const asyncTrack=new tr.ui.tracks.AsyncSliceGroupTrack(this.viewport);const title=subGroup.slices[0].viewSubGroupTitle;asyncTrack.group=subGroup;asyncTrack.heading=title;if(asyncTrack.hasVisibleContent){Polymer.dom(this).appendChild(asyncTrack);}},this);},appendThreadSamplesTracks_(){const threadSamples=this.thread_.samples;if(threadSamples===undefined||threadSamples.length===0){return;}
const samplesByTitle={};threadSamples.forEach(function(sample){if(samplesByTitle[sample.title]===undefined){samplesByTitle[sample.title]=[];}
samplesByTitle[sample.title].push(sample);});const sampleTitles=Object.keys(samplesByTitle);sampleTitles.sort();sampleTitles.forEach(function(sampleTitle){const samples=samplesByTitle[sampleTitle];const samplesTrack=new tr.ui.tracks.SampleTrack(this.viewport);samplesTrack.group=this.thread_;samplesTrack.samples=samples;samplesTrack.heading=this.thread_.userFriendlyName+': '+
sampleTitle;samplesTrack.tooltip=this.thread_.userFriendlyDetails;samplesTrack.selectionGenerator=function(){const selection=new tr.model.EventSet();for(let i=0;i<samplesTrack.samples.length;i++){selection.push(samplesTrack.samples[i]);}
return selection;};Polymer.dom(this).appendChild(samplesTrack);},this);},collapsedDidChange(collapsed){if(collapsed){let h=parseInt(this.tracks[0].height);for(let i=0;i<this.tracks.length;++i){if(h>2){this.tracks[i].height=Math.floor(h)+'px';}else{this.tracks[i].style.display='none';}
h=h*0.5;}}else{for(let i=0;i<this.tracks.length;++i){this.tracks[i].height=this.tracks[0].height;this.tracks[i].style.display='';}}}};return{ThreadTrack,};});'use strict';tr.exportTo('tr.ui.tracks',function(){const OtherThreadsTrack=tr.ui.b.define('other-threads-track',tr.ui.tracks.OtherThreadsTrack);const SpacingTrack=tr.ui.tracks.SpacingTrack;OtherThreadsTrack.prototype={__proto__:tr.ui.tracks.ContainerTrack.prototype,decorate(viewport){tr.ui.tracks.ContainerTrack.prototype.decorate.call(this,viewport);this.header_=document.createElement('tr-ui-b-heading');this.header_.addEventListener('click',this.onHeaderClick_.bind(this));this.header_.heading='Other Threads';this.header_.tooltip='Threads with only scheduling information';this.header_.arrowVisible=true;this.threads_=[];this.expanded=false;this.collapsible_=true;},set threads(threads){this.threads_=threads;this.updateContents_();},set collapsible(collapsible){this.collapsible_=collapsible;this.updateContents_();},onHeaderClick_(e){e.stopPropagation();e.preventDefault();this.expanded=!this.expanded;},get expanded(){return this.header_.expanded;},set expanded(expanded){expanded=!!expanded;if(this.expanded===expanded)return;this.header_.expanded=expanded;this.viewport_.dispatchChangeEvent();this.updateContents_();},updateContents_(){this.detach();if(this.collapsible_){Polymer.dom(this).appendChild(this.header_);}
if(this.expanded||!this.collapsible_){for(const thread of this.threads_){const track=new tr.ui.tracks.ThreadTrack(this.viewport);track.thread=thread;if(!track.hasVisibleContent)return;Polymer.dom(this).appendChild(track);Polymer.dom(this).appendChild(new SpacingTrack(this.viewport));}}}};return{OtherThreadsTrack,};});'use strict';tr.exportTo('tr.ui.tracks',function(){const ColorScheme=tr.b.ColorScheme;const ProcessSummaryTrack=tr.ui.b.define('process-summary-track',tr.ui.tracks.RectTrack);ProcessSummaryTrack.buildRectsFromProcess=function(process){if(!process)return[];const ops=[];const pushOp=function(isStart,time,slice){ops.push({isStart,time,slice});};for(const tid in process.threads){const sliceGroup=process.threads[tid].sliceGroup;sliceGroup.topLevelSlices.forEach(function(slice){pushOp(true,slice.start,undefined);pushOp(false,slice.end,undefined);});sliceGroup.slices.forEach(function(slice){if(slice.important){pushOp(true,slice.start,slice);pushOp(false,slice.end,slice);}});}
ops.sort(function(a,b){return a.time-b.time;});const rects=[];const genericColorId=ColorScheme.getColorIdForReservedName('generic_work');const pushRect=function(start,end,slice){rects.push(new tr.ui.tracks.Rect(slice,slice?slice.title:'',slice?slice.colorId:genericColorId,start,end-start));};let depth=0;let currentSlice=undefined;let lastStart=undefined;ops.forEach(function(op){depth+=op.isStart?1:-1;if(currentSlice){if(!op.isStart&&op.slice===currentSlice){pushRect(lastStart,op.time,currentSlice);lastStart=depth>=1?op.time:undefined;currentSlice=undefined;}}else{if(op.isStart){if(depth===1){lastStart=op.time;currentSlice=op.slice;}else if(op.slice){if(op.time!==lastStart){pushRect(lastStart,op.time,undefined);lastStart=op.time;}
currentSlice=op.slice;}}else{if(depth===0){pushRect(lastStart,op.time,undefined);lastStart=undefined;}}}});return rects;};ProcessSummaryTrack.prototype={__proto__:tr.ui.tracks.RectTrack.prototype,decorate(viewport){tr.ui.tracks.RectTrack.prototype.decorate.call(this,viewport);},get process(){return this.process_;},set process(process){this.process_=process;this.rects=ProcessSummaryTrack.buildRectsFromProcess(process);}};return{ProcessSummaryTrack,};});'use strict';tr.exportTo('tr.ui.tracks',function(){const ObjectSnapshotView=tr.ui.analysis.ObjectSnapshotView;const ObjectInstanceView=tr.ui.analysis.ObjectInstanceView;const SpacingTrack=tr.ui.tracks.SpacingTrack;const ProcessTrackBase=tr.ui.b.define('process-track-base',tr.ui.tracks.ContainerTrack);ProcessTrackBase.prototype={__proto__:tr.ui.tracks.ContainerTrack.prototype,decorate(viewport){tr.ui.tracks.ContainerTrack.prototype.decorate.call(this,viewport);this.processBase_=undefined;Polymer.dom(this).classList.add('process-track-base');Polymer.dom(this).classList.add('expanded');this.processNameEl_=tr.ui.b.createSpan();Polymer.dom(this.processNameEl_).classList.add('process-track-name');this.headerEl_=tr.ui.b.createDiv({className:'process-track-header'});Polymer.dom(this.headerEl_).appendChild(this.processNameEl_);this.headerEl_.addEventListener('click',this.onHeaderClick_.bind(this));Polymer.dom(this).appendChild(this.headerEl_);},get processBase(){return this.processBase_;},set processBase(processBase){this.processBase_=processBase;if(this.processBase_){const modelSettings=new tr.model.ModelSettings(this.processBase_.model);const defaultValue=this.processBase_.important;this.expanded=modelSettings.getSettingFor(this.processBase_,'expanded',defaultValue);}
this.updateContents_();},get expanded(){return Polymer.dom(this).classList.contains('expanded');},set expanded(expanded){expanded=!!expanded;if(this.expanded===expanded)return;Polymer.dom(this).classList.toggle('expanded');this.viewport_.dispatchChangeEvent();if(!this.processBase_)return;const modelSettings=new tr.model.ModelSettings(this.processBase_.model);modelSettings.setSettingFor(this.processBase_,'expanded',expanded);this.updateContents_();this.viewport.rebuildEventToTrackMap();this.viewport.rebuildContainerToTrackMap();},get hasVisibleContent(){if(this.expanded){return this.children.length>1;}
return true;},onHeaderClick_(e){e.stopPropagation();e.preventDefault();this.expanded=!this.expanded;},updateContents_(){this.clearTracks_();if(!this.processBase_)return;Polymer.dom(this.processNameEl_).textContent=this.processBase_.userFriendlyName;this.headerEl_.title=this.processBase_.userFriendlyDetails;this.willAppendTracks_();if(this.expanded){this.appendMemoryDumpTrack_();this.appendObjectInstanceTracks_();this.appendCounterTracks_();this.appendFrameTrack_();this.appendThreadTracks_();}else{this.appendSummaryTrack_();}
this.didAppendTracks_();},willAppendTracks_(){},didAppendTracks_(){},appendMemoryDumpTrack_(){},appendSummaryTrack_(){const track=new tr.ui.tracks.ProcessSummaryTrack(this.viewport);track.process=this.process;if(!track.hasVisibleContent)return;Polymer.dom(this).appendChild(track);},appendFrameTrack_(){const frames=this.process?this.process.frames:undefined;if(!frames||!frames.length)return;const track=new tr.ui.tracks.FrameTrack(this.viewport);track.frames=frames;Polymer.dom(this).appendChild(track);},appendObjectInstanceTracks_(){const instancesByTypeName=this.processBase_.objects.getAllInstancesByTypeName();const instanceTypeNames=Object.keys(instancesByTypeName);instanceTypeNames.sort();let didAppendAtLeastOneTrack=false;instanceTypeNames.forEach(function(typeName){const allInstances=instancesByTypeName[typeName];let instanceViewInfo=ObjectInstanceView.getTypeInfo(undefined,typeName);let snapshotViewInfo=ObjectSnapshotView.getTypeInfo(undefined,typeName);if(instanceViewInfo&&!instanceViewInfo.metadata.showInTrackView){instanceViewInfo=undefined;}
if(snapshotViewInfo&&!snapshotViewInfo.metadata.showInTrackView){snapshotViewInfo=undefined;}
const hasViewInfo=instanceViewInfo||snapshotViewInfo;const visibleInstances=[];for(let i=0;i<allInstances.length;i++){const instance=allInstances[i];if(instance.snapshots.length===0)continue;if(instance.hasImplicitSnapshots&&!hasViewInfo)continue;visibleInstances.push(instance);}
if(visibleInstances.length===0)return;let trackConstructor=tr.ui.tracks.ObjectInstanceTrack.getConstructor(undefined,typeName);if(!trackConstructor){snapshotViewInfo=ObjectSnapshotView.getTypeInfo(undefined,typeName);if(snapshotViewInfo&&snapshotViewInfo.metadata.showInstances){trackConstructor=tr.ui.tracks.ObjectInstanceGroupTrack;}else{trackConstructor=tr.ui.tracks.ObjectInstanceTrack;}}
const track=new trackConstructor(this.viewport);track.objectInstances=visibleInstances;Polymer.dom(this).appendChild(track);didAppendAtLeastOneTrack=true;},this);if(didAppendAtLeastOneTrack){Polymer.dom(this).appendChild(new SpacingTrack(this.viewport));}},appendCounterTracks_(){const counters=Object.values(this.processBase.counters);counters.sort(tr.model.Counter.compare);counters.forEach(function(counter){const track=new tr.ui.tracks.CounterTrack(this.viewport);track.counter=counter;Polymer.dom(this).appendChild(track);Polymer.dom(this).appendChild(new SpacingTrack(this.viewport));}.bind(this));},appendThreadTracks_(){const threads=Object.values(this.processBase.threads);threads.sort(tr.model.Thread.compare);const otherThreads=[];let hasVisibleThreads=false;threads.forEach(function(thread){const track=new tr.ui.tracks.ThreadTrack(this.viewport);track.thread=thread;if(!track.hasVisibleContent)return;if(track.hasSlices){hasVisibleThreads=true;Polymer.dom(this).appendChild(track);Polymer.dom(this).appendChild(new SpacingTrack(this.viewport));}else if(track.hasTimeSlices){otherThreads.push(thread);}}.bind(this));if(otherThreads.length>0){const track=new tr.ui.tracks.OtherThreadsTrack(this.viewport);track.threads=otherThreads;track.collapsible=otherThreads.length>1&&hasVisibleThreads;Polymer.dom(this).appendChild(track);}}};return{ProcessTrackBase,};});'use strict';tr.exportTo('tr.ui.tracks',function(){const Cpu=tr.model.Cpu;const CpuTrack=tr.ui.tracks.cpu_track;const ProcessTrackBase=tr.ui.tracks.ProcessTrackBase;const SpacingTrack=tr.ui.tracks.SpacingTrack;const KernelTrack=tr.ui.b.define('kernel-track',ProcessTrackBase);KernelTrack.prototype={__proto__:ProcessTrackBase.prototype,decorate(viewport){ProcessTrackBase.prototype.decorate.call(this,viewport);},set kernel(kernel){this.processBase=kernel;},get kernel(){return this.processBase;},get eventContainer(){return this.kernel;},get hasVisibleContent(){return this.children.length>1;},addContainersToTrackMap(containerToTrackMap){tr.ui.tracks.ProcessTrackBase.prototype.addContainersToTrackMap.call(this,containerToTrackMap);containerToTrackMap.addContainer(this.kernel,this);},willAppendTracks_(){const cpus=Object.values(this.kernel.cpus);cpus.sort(tr.model.Cpu.compare);let didAppendAtLeastOneTrack=false;for(let i=0;i<cpus.length;++i){const cpu=cpus[i];const track=new tr.ui.tracks.CpuTrack(this.viewport);track.detailedMode=this.expanded;track.cpu=cpu;if(!track.hasVisibleContent)continue;Polymer.dom(this).appendChild(track);didAppendAtLeastOneTrack=true;}
if(didAppendAtLeastOneTrack){Polymer.dom(this).appendChild(new SpacingTrack(this.viewport));}}};return{KernelTrack,};});'use strict';tr.exportTo('tr.ui.tracks',function(){const InteractionTrack=tr.ui.b.define('interaction-track',tr.ui.tracks.MultiRowTrack);InteractionTrack.prototype={__proto__:tr.ui.tracks.MultiRowTrack.prototype,decorate(viewport){tr.ui.tracks.MultiRowTrack.prototype.decorate.call(this,viewport);this.heading='Interactions';this.subRows_=[];},set model(model){this.setItemsToGroup(model.userModel.expectations,{guid:tr.b.GUID.allocateSimple(),model,getSettingsKey(){return undefined;}});},buildSubRows_(slices){if(this.subRows_.length){return this.subRows_;}
this.subRows_.push.apply(this.subRows_,tr.ui.tracks.AsyncSliceGroupTrack.prototype.buildSubRows_.call({},slices,true));return this.subRows_;},addSubTrack_(slices){const track=new tr.ui.tracks.SliceTrack(this.viewport);track.slices=slices;Polymer.dom(this).appendChild(track);return track;}};return{InteractionTrack,};});'use strict';tr.exportTo('tr.ui.tracks',function(){const ALLOCATED_MEMORY_TRACK_HEIGHT=50;const ProcessMemoryDumpTrack=tr.ui.b.define('process-memory-dump-track',tr.ui.tracks.ContainerTrack);ProcessMemoryDumpTrack.prototype={__proto__:tr.ui.tracks.ContainerTrack.prototype,decorate(viewport){tr.ui.tracks.ContainerTrack.prototype.decorate.call(this,viewport);this.memoryDumps_=undefined;},get memoryDumps(){return this.memoryDumps_;},set memoryDumps(memoryDumps){this.memoryDumps_=memoryDumps;this.updateContents_();},updateContents_(){this.clearTracks_();if(!this.memoryDumps_||!this.memoryDumps_.length)return;this.appendAllocatedMemoryTrack_();},appendAllocatedMemoryTrack_(){const series=tr.ui.tracks.buildProcessAllocatedMemoryChartSeries(this.memoryDumps_);if(!series)return;const track=new tr.ui.tracks.ChartTrack(this.viewport);track.heading='Memory per component';track.height=ALLOCATED_MEMORY_TRACK_HEIGHT+'px';track.series=series;track.autoSetAllAxes({expandMax:true});Polymer.dom(this).appendChild(track);}};return{ProcessMemoryDumpTrack,};});'use strict';tr.exportTo('tr.ui.tracks',function(){const ProcessTrackBase=tr.ui.tracks.ProcessTrackBase;const ProcessTrack=tr.ui.b.define('process-track',ProcessTrackBase);ProcessTrack.prototype={__proto__:ProcessTrackBase.prototype,decorate(viewport){tr.ui.tracks.ProcessTrackBase.prototype.decorate.call(this,viewport);},drawTrack(type){switch(type){case tr.ui.tracks.DrawType.INSTANT_EVENT:{if(!this.processBase.instantEvents||this.processBase.instantEvents.length===0){break;}
const ctx=this.context();const pixelRatio=window.devicePixelRatio||1;const bounds=this.getBoundingClientRect();const canvasBounds=ctx.canvas.getBoundingClientRect();ctx.save();ctx.translate(0,pixelRatio*(bounds.top-canvasBounds.top));const dt=this.viewport.currentDisplayTransform;const viewLWorld=dt.xViewToWorld(0);const viewRWorld=dt.xViewToWorld(bounds.width*pixelRatio);tr.ui.b.drawInstantSlicesAsLines(ctx,this.viewport.currentDisplayTransform,viewLWorld,viewRWorld,bounds.height,this.processBase.instantEvents,2);ctx.restore();break;}
case tr.ui.tracks.DrawType.BACKGROUND:this.drawBackground_();return;}
tr.ui.tracks.ContainerTrack.prototype.drawTrack.call(this,type);},drawBackground_(){const ctx=this.context();const canvasBounds=ctx.canvas.getBoundingClientRect();const pixelRatio=window.devicePixelRatio||1;let draw=false;ctx.fillStyle='#eee';for(let i=0;i<this.children.length;++i){if(!(this.children[i]instanceof tr.ui.tracks.Track)||(this.children[i]instanceof tr.ui.tracks.SpacingTrack)){continue;}
draw=!draw;if(!draw)continue;const bounds=this.children[i].getBoundingClientRect();ctx.fillRect(0,pixelRatio*(bounds.top-canvasBounds.top),ctx.canvas.width,pixelRatio*bounds.height);}},set process(process){this.processBase=process;},get process(){return this.processBase;},get eventContainer(){return this.process;},addContainersToTrackMap(containerToTrackMap){tr.ui.tracks.ProcessTrackBase.prototype.addContainersToTrackMap.apply(this,arguments);containerToTrackMap.addContainer(this.process,this);},appendMemoryDumpTrack_(){const processMemoryDumps=this.process.memoryDumps;if(processMemoryDumps.length){const pmdt=new tr.ui.tracks.ProcessMemoryDumpTrack(this.viewport_);pmdt.memoryDumps=processMemoryDumps;Polymer.dom(this).appendChild(pmdt);}},addIntersectingEventsInRangeToSelectionInWorldSpace(loWX,hiWX,viewPixWidthWorld,selection){function onPickHit(instantEvent){selection.push(instantEvent);}
const instantEventWidth=2*viewPixWidthWorld;tr.b.math.iterateOverIntersectingIntervals(this.processBase.instantEvents,function(x){return x.start;},function(x){return x.duration+instantEventWidth;},loWX,hiWX,onPickHit.bind(this));tr.ui.tracks.ContainerTrack.prototype.addIntersectingEventsInRangeToSelectionInWorldSpace.apply(this,arguments);},addClosestEventToSelection(worldX,worldMaxDist,loY,hiY,selection){this.addClosestInstantEventToSelection(this.processBase.instantEvents,worldX,worldMaxDist,selection);tr.ui.tracks.ContainerTrack.prototype.addClosestEventToSelection.apply(this,arguments);}};return{ProcessTrack,};});'use strict';tr.exportTo('tr.ui.tracks',function(){const SelectionState=tr.model.SelectionState;const ColorScheme=tr.b.ColorScheme;const EventPresenter=tr.ui.b.EventPresenter;const ModelTrack=tr.ui.b.define('model-track',tr.ui.tracks.ContainerTrack);ModelTrack.VSYNC_HIGHLIGHT_ALPHA=0.1;ModelTrack.VSYNC_DENSITY_TRANSPARENT=0.20;ModelTrack.VSYNC_DENSITY_OPAQUE=0.10;ModelTrack.VSYNC_DENSITY_RANGE=ModelTrack.VSYNC_DENSITY_TRANSPARENT-ModelTrack.VSYNC_DENSITY_OPAQUE;ModelTrack.generateStripes_=function(times,minTime,maxTime){if(times.length===0)return[];const lowIndex=tr.b.math.findLowIndexInSortedArray(times,tr.b.identity,minTime);let highIndex=lowIndex-1;while(times[highIndex+1]<=maxTime){highIndex++;}
const stripes=[];for(let i=lowIndex-(lowIndex%2);i<=highIndex;i+=2){const left=i<lowIndex?minTime:times[i];const right=i+1>highIndex?maxTime:times[i+1];stripes.push(tr.b.math.Range.fromExplicitRange(left,right));}
return stripes;};ModelTrack.prototype={__proto__:tr.ui.tracks.ContainerTrack.prototype,decorate(viewport){tr.ui.tracks.ContainerTrack.prototype.decorate.call(this,viewport);Polymer.dom(this).classList.add('model-track');this.upperMode_=false;this.annotationViews_=[];this.vSyncTimes_=[];},get upperMode(){return this.upperMode_;},set upperMode(upperMode){this.upperMode_=upperMode;this.updateContents_();},detach(){tr.ui.tracks.ContainerTrack.prototype.detach.call(this);},get model(){return this.model_;},set model(model){this.model_=model;this.updateContents_();this.model_.addEventListener('annotationChange',this.updateAnnotations_.bind(this));},get hasVisibleContent(){return this.children.length>0;},updateContents_(){Polymer.dom(this).textContent='';if(!this.model_)return;if(this.upperMode_){this.updateContentsForUpperMode_();}else{this.updateContentsForLowerMode_();}},updateContentsForUpperMode_(){},updateContentsForLowerMode_(){if(this.model_.userModel.expectations.length>1){const mrt=new tr.ui.tracks.InteractionTrack(this.viewport_);mrt.model=this.model_;Polymer.dom(this).appendChild(mrt);}
if(this.model_.alerts.length){const at=new tr.ui.tracks.AlertTrack(this.viewport_);at.alerts=this.model_.alerts;Polymer.dom(this).appendChild(at);}
if(this.model_.globalMemoryDumps.length){const gmdt=new tr.ui.tracks.GlobalMemoryDumpTrack(this.viewport_);gmdt.memoryDumps=this.model_.globalMemoryDumps;Polymer.dom(this).appendChild(gmdt);}
this.appendDeviceTrack_();this.appendCpuUsageTrack_();this.appendKernelTrack_();const processes=this.model_.getAllProcesses();processes.sort(tr.model.Process.compare);for(let i=0;i<processes.length;++i){const process=processes[i];const track=new tr.ui.tracks.ProcessTrack(this.viewport);track.process=process;if(!track.hasVisibleContent)continue;Polymer.dom(this).appendChild(track);}
this.viewport_.rebuildEventToTrackMap();this.viewport_.rebuildContainerToTrackMap();this.vSyncTimes_=this.model_.device.vSyncTimestamps;this.updateAnnotations_();},getContentBounds(){return this.model.bounds;},addAnnotation(annotation){this.model.addAnnotation(annotation);},removeAnnotation(annotation){this.model.removeAnnotation(annotation);},updateAnnotations_(){this.annotationViews_=[];const annotations=this.model_.getAllAnnotations();for(let i=0;i<annotations.length;i++){this.annotationViews_.push(annotations[i].getOrCreateView(this.viewport_));}
this.invalidateDrawingContainer();},addEventsToTrackMap(eventToTrackMap){if(!this.model_)return;const tracks=this.children;for(let i=0;i<tracks.length;++i){tracks[i].addEventsToTrackMap(eventToTrackMap);}
if(this.instantEvents===undefined)return;const vp=this.viewport_;this.instantEvents.forEach(function(ev){eventToTrackMap.addEvent(ev,this);}.bind(this));},appendDeviceTrack_(){const device=this.model.device;const track=new tr.ui.tracks.DeviceTrack(this.viewport);track.device=this.model.device;if(!track.hasVisibleContent)return;Polymer.dom(this).appendChild(track);},appendKernelTrack_(){const kernel=this.model.kernel;const track=new tr.ui.tracks.KernelTrack(this.viewport);track.kernel=this.model.kernel;if(!track.hasVisibleContent)return;Polymer.dom(this).appendChild(track);},appendCpuUsageTrack_(){const track=new tr.ui.tracks.CpuUsageTrack(this.viewport);track.initialize(this.model);if(!track.hasVisibleContent)return;this.appendChild(track);},appendCpuUsageTrack_(){const track=new tr.ui.tracks.CpuUsageTrack(this.viewport);track.initialize(this.model);if(!track.hasVisibleContent)return;this.appendChild(track);},drawTrack(type){const ctx=this.context();if(!this.model_)return;const pixelRatio=window.devicePixelRatio||1;const bounds=this.getBoundingClientRect();const canvasBounds=ctx.canvas.getBoundingClientRect();ctx.save();ctx.translate(0,pixelRatio*(bounds.top-canvasBounds.top));const dt=this.viewport.currentDisplayTransform;const viewLWorld=dt.xViewToWorld(0);const viewRWorld=dt.xViewToWorld(bounds.width*pixelRatio);switch(type){case tr.ui.tracks.DrawType.GRID:this.viewport.drawMajorMarkLines(ctx);ctx.restore();return;case tr.ui.tracks.DrawType.FLOW_ARROWS:if(this.model_.flowIntervalTree.size===0){ctx.restore();return;}
this.drawFlowArrows_(viewLWorld,viewRWorld);ctx.restore();return;case tr.ui.tracks.DrawType.INSTANT_EVENT:if(!this.model_.instantEvents||this.model_.instantEvents.length===0){break;}
tr.ui.b.drawInstantSlicesAsLines(ctx,this.viewport.currentDisplayTransform,viewLWorld,viewRWorld,bounds.height,this.model_.instantEvents,4);break;case tr.ui.tracks.DrawType.MARKERS:if(!this.viewport.interestRange.isEmpty){this.viewport.interestRange.draw(ctx,viewLWorld,viewRWorld);this.viewport.interestRange.drawIndicators(ctx,viewLWorld,viewRWorld);}
ctx.restore();return;case tr.ui.tracks.DrawType.HIGHLIGHTS:this.drawVSyncHighlight(ctx,dt,viewLWorld,viewRWorld,bounds.height);ctx.restore();return;case tr.ui.tracks.DrawType.ANNOTATIONS:for(let i=0;i<this.annotationViews_.length;i++){this.annotationViews_[i].draw(ctx);}
ctx.restore();return;}
ctx.restore();tr.ui.tracks.ContainerTrack.prototype.drawTrack.call(this,type);},drawFlowArrows_(viewLWorld,viewRWorld){const ctx=this.context();const dt=this.viewport.currentDisplayTransform;dt.applyTransformToCanvas(ctx);const pixWidth=dt.xViewVectorToWorld(1);ctx.strokeStyle='rgba(0, 0, 0, 0.4)';ctx.fillStyle='rgba(0, 0, 0, 0.4)';ctx.lineWidth=pixWidth>1.0?1:pixWidth;const events=this.model_.flowIntervalTree.findIntersection(viewLWorld,viewRWorld);const onlyHighlighted=!this.viewport.showFlowEvents;const canvasBounds=ctx.canvas.getBoundingClientRect();for(let i=0;i<events.length;++i){if(onlyHighlighted&&events[i].selectionState!==SelectionState.SELECTED&&events[i].selectionState!==SelectionState.HIGHLIGHTED){continue;}
this.drawFlowArrow_(ctx,events[i],canvasBounds,pixWidth);}},drawFlowArrow_(ctx,flowEvent,canvasBounds,pixWidth){const pixelRatio=window.devicePixelRatio||1;const startTrack=this.viewport.trackForEvent(flowEvent.startSlice);const endTrack=this.viewport.trackForEvent(flowEvent.endSlice);if(startTrack===undefined||endTrack===undefined)return;const startBounds=startTrack.getBoundingClientRect();const endBounds=endTrack.getBoundingClientRect();if(flowEvent.selectionState===SelectionState.SELECTED){ctx.shadowBlur=1;ctx.shadowColor='red';ctx.shadowOffsety=2;ctx.strokeStyle='red';}else if(flowEvent.selectionState===SelectionState.HIGHLIGHTED){ctx.shadowBlur=1;ctx.shadowColor='red';ctx.shadowOffsety=2;ctx.strokeStyle='red';}else if(flowEvent.selectionState===SelectionState.DIMMED){ctx.shadowBlur=0;ctx.shadowOffsetX=0;ctx.strokeStyle='rgba(0, 0, 0, 0.2)';}else{let hasBoost=false;const startSlice=flowEvent.startSlice;hasBoost|=startSlice.selectionState===SelectionState.SELECTED;hasBoost|=startSlice.selectionState===SelectionState.HIGHLIGHTED;const endSlice=flowEvent.endSlice;hasBoost|=endSlice.selectionState===SelectionState.SELECTED;hasBoost|=endSlice.selectionState===SelectionState.HIGHLIGHTED;if(hasBoost){ctx.shadowBlur=1;ctx.shadowColor='rgba(255, 0, 0, 0.4)';ctx.shadowOffsety=2;ctx.strokeStyle='rgba(255, 0, 0, 0.4)';}else{ctx.shadowBlur=0;ctx.shadowOffsetX=0;ctx.strokeStyle='rgba(0, 0, 0, 0.4)';}}
const startSize=startBounds.left+startBounds.top+
startBounds.bottom+startBounds.right;const endSize=endBounds.left+endBounds.top+
endBounds.bottom+endBounds.right;if(startSize===0&&endSize===0)return;const startY=this.calculateTrackY_(startTrack,canvasBounds);const endY=this.calculateTrackY_(endTrack,canvasBounds);const pixelStartY=pixelRatio*startY;const pixelEndY=pixelRatio*endY;const half=(flowEvent.end-flowEvent.start)/2;ctx.beginPath();ctx.moveTo(flowEvent.start,pixelStartY);ctx.bezierCurveTo(flowEvent.start+half,pixelStartY,flowEvent.start+half,pixelEndY,flowEvent.end,pixelEndY);ctx.stroke();const arrowWidth=5*pixWidth*pixelRatio;const distance=flowEvent.end-flowEvent.start;if(distance<=(2*arrowWidth))return;const tipX=flowEvent.end;const tipY=pixelEndY;const arrowHeight=(endBounds.height/4)*pixelRatio;tr.ui.b.drawTriangle(ctx,tipX,tipY,tipX-arrowWidth,tipY-arrowHeight,tipX-arrowWidth,tipY+arrowHeight);ctx.fill();},drawVSyncHighlight(ctx,dt,viewLWorld,viewRWorld,viewHeight){if(!this.viewport_.highlightVSync){return;}
const stripes=ModelTrack.generateStripes_(this.vSyncTimes_,viewLWorld,viewRWorld);if(stripes.length===0){return;}
const vSyncHighlightColor=new tr.b.Color(ColorScheme.getColorForReservedNameAsString('vsync_highlight_color'));const stripeRange=stripes[stripes.length-1].max-stripes[0].min;const stripeDensity=stripeRange?stripes.length/(dt.scaleX*stripeRange):0;const clampedStripeDensity=tr.b.math.clamp(stripeDensity,ModelTrack.VSYNC_DENSITY_OPAQUE,ModelTrack.VSYNC_DENSITY_TRANSPARENT);const opacity=(ModelTrack.VSYNC_DENSITY_TRANSPARENT-clampedStripeDensity)/ModelTrack.VSYNC_DENSITY_RANGE;if(opacity===0){return;}
const pixelRatio=window.devicePixelRatio||1;const height=viewHeight*pixelRatio;ctx.fillStyle=vSyncHighlightColor.toStringWithAlphaOverride(ModelTrack.VSYNC_HIGHLIGHT_ALPHA*opacity);for(let i=0;i<stripes.length;i++){const xLeftView=dt.xWorldToView(stripes[i].min);const xRightView=dt.xWorldToView(stripes[i].max);ctx.fillRect(xLeftView,0,xRightView-xLeftView,height);}},calculateTrackY_(track,canvasBounds){const bounds=track.getBoundingClientRect();const size=bounds.left+bounds.top+bounds.bottom+bounds.right;if(size===0){return this.calculateTrackY_(Polymer.dom(track).parentNode,canvasBounds);}
return bounds.top-canvasBounds.top+(bounds.height/2);},addIntersectingEventsInRangeToSelectionInWorldSpace(loWX,hiWX,viewPixWidthWorld,selection){function onPickHit(instantEvent){selection.push(instantEvent);}
const instantEventWidth=3*viewPixWidthWorld;tr.b.math.iterateOverIntersectingIntervals(this.model_.instantEvents,function(x){return x.start;},function(x){return x.duration+instantEventWidth;},loWX,hiWX,onPickHit.bind(this));tr.ui.tracks.ContainerTrack.prototype.addIntersectingEventsInRangeToSelectionInWorldSpace.apply(this,arguments);},addClosestEventToSelection(worldX,worldMaxDist,loY,hiY,selection){this.addClosestInstantEventToSelection(this.model_.instantEvents,worldX,worldMaxDist,selection);tr.ui.tracks.ContainerTrack.prototype.addClosestEventToSelection.apply(this,arguments);}};return{ModelTrack,};});'use strict';tr.exportTo('tr.ui.tracks',function(){const XAxisTrack=tr.ui.b.define('x-axis-track',tr.ui.tracks.Track);XAxisTrack.prototype={__proto__:tr.ui.tracks.Track.prototype,decorate(viewport){tr.ui.tracks.Track.prototype.decorate.call(this,viewport);Polymer.dom(this).classList.add('x-axis-track');this.strings_secs_=[];this.strings_msecs_=[];this.strings_usecs_=[];this.strings_nsecs_=[];this.viewportChange_=this.viewportChange_.bind(this);viewport.addEventListener('change',this.viewportChange_);const heading=document.createElement('tr-ui-b-heading');heading.arrowVisible=false;Polymer.dom(this).appendChild(heading);},detach(){tr.ui.tracks.Track.prototype.detach.call(this);this.viewport.removeEventListener('change',this.viewportChange_);},viewportChange_(){if(this.viewport.interestRange.isEmpty){Polymer.dom(this).classList.remove('tall-mode');}else{Polymer.dom(this).classList.add('tall-mode');}},draw(type,viewLWorld,viewRWorld){switch(type){case tr.ui.tracks.DrawType.GRID:this.drawGrid_(viewLWorld,viewRWorld);break;case tr.ui.tracks.DrawType.MARKERS:if(!this.viewport.interestRange.isEmpty){this.viewport.interestRange.draw(this.context(),viewLWorld,viewRWorld);}
break;}},drawGrid_(viewLWorld,viewRWorld){const ctx=this.context();const pixelRatio=window.devicePixelRatio||1;const canvasBounds=ctx.canvas.getBoundingClientRect();const trackBounds=this.getBoundingClientRect();const width=canvasBounds.width*pixelRatio;const height=trackBounds.height*pixelRatio;const hasInterestRange=!this.viewport.interestRange.isEmpty;const xAxisHeightPx=hasInterestRange?(height*2)/5:height;const vp=this.viewport;const dt=vp.currentDisplayTransform;vp.updateMajorMarkData(viewLWorld,viewRWorld);const majorMarkDistanceWorld=vp.majorMarkWorldPositions.length>1?vp.majorMarkWorldPositions[1]-vp.majorMarkWorldPositions[0]:0;const numTicksPerMajor=5;const minorMarkDistanceWorld=majorMarkDistanceWorld/numTicksPerMajor;const minorMarkDistancePx=dt.xWorldVectorToView(minorMarkDistanceWorld);const minorTickHeight=Math.floor(xAxisHeightPx*0.25);ctx.save();ctx.lineWidth=Math.round(pixelRatio);const crispLineCorrection=(ctx.lineWidth%2)/2;ctx.translate(crispLineCorrection,-crispLineCorrection);ctx.fillStyle='rgb(0, 0, 0)';ctx.strokeStyle='rgb(0, 0, 0)';ctx.textAlign='left';ctx.textBaseline='top';ctx.font=(9*pixelRatio)+'px sans-serif';const tickLabels=[];ctx.beginPath();for(let i=0;i<vp.majorMarkWorldPositions.length;i++){const curXWorld=vp.majorMarkWorldPositions[i];const curXView=dt.xWorldToView(curXWorld);const displayText=vp.majorMarkUnit.format(curXWorld,{deltaValue:majorMarkDistanceWorld});ctx.fillText(displayText,curXView+(2*pixelRatio),0);tr.ui.b.drawLine(ctx,curXView,0,curXView,xAxisHeightPx);if(minorMarkDistancePx){for(let j=1;j<numTicksPerMajor;++j){const xView=Math.floor(curXView+minorMarkDistancePx*j);tr.ui.b.drawLine(ctx,xView,xAxisHeightPx-minorTickHeight,xView,xAxisHeightPx);}}}
ctx.strokeStyle='rgb(0, 0, 0)';tr.ui.b.drawLine(ctx,0,height,width,height);ctx.stroke();if(!hasInterestRange)return;tr.ui.b.drawLine(ctx,0,xAxisHeightPx,width,xAxisHeightPx);ctx.stroke();let displayDistance;const displayTextColor='rgb(0,0,0)';const arrowSpacing=10*pixelRatio;const arrowColor='rgb(128,121,121)';const arrowPosY=xAxisHeightPx*1.75;const arrowWidthView=3*pixelRatio;const arrowLengthView=10*pixelRatio;const spaceForArrowsView=2*(arrowWidthView+arrowSpacing);ctx.textBaseline='middle';ctx.font=(14*pixelRatio)+'px sans-serif';const textPosY=arrowPosY;const interestRange=vp.interestRange;if(interestRange.range===0){const markerWorld=interestRange.min;const markerView=dt.xWorldToView(markerWorld);const textToDraw=vp.majorMarkUnit.format(markerWorld);let textLeftView=markerView+4*pixelRatio;const textWidthView=ctx.measureText(textToDraw).width;if(textLeftView+textWidthView>width){textLeftView=markerView-4*pixelRatio-textWidthView;}
ctx.fillStyle=displayTextColor;ctx.fillText(textToDraw,textLeftView,textPosY);return;}
const leftMarker=interestRange.min;const rightMarker=interestRange.max;const leftMarkerView=dt.xWorldToView(leftMarker);const rightMarkerView=dt.xWorldToView(rightMarker);const distanceBetweenMarkers=interestRange.range;const distanceBetweenMarkersView=dt.xWorldVectorToView(distanceBetweenMarkers);const positionInMiddleOfMarkersView=leftMarkerView+(distanceBetweenMarkersView/2);const textToDraw=vp.majorMarkUnit.format(distanceBetweenMarkers);const textWidthView=ctx.measureText(textToDraw).width;const spaceForArrowsAndTextView=textWidthView+spaceForArrowsView+arrowSpacing;let textLeftView=positionInMiddleOfMarkersView-textWidthView/2;const textRightView=textLeftView+textWidthView;if(spaceForArrowsAndTextView>distanceBetweenMarkersView){textLeftView=rightMarkerView+2*arrowSpacing;if(textLeftView+textWidthView>width){textLeftView=leftMarkerView-2*arrowSpacing-textWidthView;}
ctx.fillStyle=displayTextColor;ctx.fillText(textToDraw,textLeftView,textPosY);ctx.strokeStyle=arrowColor;ctx.beginPath();tr.ui.b.drawLine(ctx,leftMarkerView,arrowPosY,rightMarkerView,arrowPosY);ctx.stroke();ctx.fillStyle=arrowColor;tr.ui.b.drawArrow(ctx,leftMarkerView-1.5*arrowSpacing,arrowPosY,leftMarkerView,arrowPosY,arrowLengthView,arrowWidthView);tr.ui.b.drawArrow(ctx,rightMarkerView+1.5*arrowSpacing,arrowPosY,rightMarkerView,arrowPosY,arrowLengthView,arrowWidthView);}else if(spaceForArrowsView<=distanceBetweenMarkersView){let leftArrowStart;let rightArrowStart;if(spaceForArrowsAndTextView<=distanceBetweenMarkersView){ctx.fillStyle=displayTextColor;ctx.fillText(textToDraw,textLeftView,textPosY);leftArrowStart=textLeftView-arrowSpacing;rightArrowStart=textRightView+arrowSpacing;}else{leftArrowStart=positionInMiddleOfMarkersView;rightArrowStart=positionInMiddleOfMarkersView;}
ctx.strokeStyle=arrowColor;ctx.fillStyle=arrowColor;tr.ui.b.drawArrow(ctx,leftArrowStart,arrowPosY,leftMarkerView,arrowPosY,arrowLengthView,arrowWidthView);tr.ui.b.drawArrow(ctx,rightArrowStart,arrowPosY,rightMarkerView,arrowPosY,arrowLengthView,arrowWidthView);}
ctx.restore();},addIntersectingEventsInRangeToSelection(loVX,hiVX,loY,hiY,selection){},addAllEventsMatchingFilterToSelection(filter,selection){}};return{XAxisTrack,};});'use strict';Polymer({is:'tr-ui-timeline-track-view',ready(){this.displayTransform_=new tr.ui.TimelineDisplayTransform();this.model_=undefined;this.timelineView_=undefined;this.pollIfViewportAttachedInterval_=undefined;this.viewport_=new tr.ui.TimelineViewport(this);this.viewportDisplayTransformAtMouseDown_=undefined;this.brushingStateController_=undefined;this.rulerTrackContainer_=new tr.ui.tracks.DrawingContainer(this.viewport_);Polymer.dom(this).appendChild(this.rulerTrackContainer_);this.rulerTrackContainer_.invalidate();this.rulerTrack_=new tr.ui.tracks.XAxisTrack(this.viewport_);Polymer.dom(this.rulerTrackContainer_).appendChild(this.rulerTrack_);this.upperModelTrack_=new tr.ui.tracks.ModelTrack(this.viewport_);this.upperModelTrack_.upperMode=true;Polymer.dom(this.rulerTrackContainer_).appendChild(this.upperModelTrack_);this.modelTrackContainer_=new tr.ui.tracks.DrawingContainer(this.viewport_);Polymer.dom(this).appendChild(this.modelTrackContainer_);this.modelTrackContainer_.style.display='block';this.modelTrackContainer_.invalidate();this.viewport_.modelTrackContainer=this.modelTrackContainer_;this.modelTrack_=new tr.ui.tracks.ModelTrack(this.viewport_);Polymer.dom(this.modelTrackContainer_).appendChild(this.modelTrack_);this.timingTool_=new tr.ui.b.TimingTool(this.viewport_,this);this.initMouseModeSelector();this.hideDragBox_();this.initHintText_();this.onSelectionChanged_=this.onSelectionChanged_.bind(this);this.onDblClick_=this.onDblClick_.bind(this);this.addEventListener('dblclick',this.onDblClick_);this.onMouseWheel_=this.onMouseWheel_.bind(this);this.addEventListener('mousewheel',this.onMouseWheel_);this.onMouseDown_=this.onMouseDown_.bind(this);this.addEventListener('mousedown',this.onMouseDown_);this.onMouseMove_=this.onMouseMove_.bind(this);this.addEventListener('mousemove',this.onMouseMove_);this.onTouchStart_=this.onTouchStart_.bind(this);this.addEventListener('touchstart',this.onTouchStart_);this.onTouchMove_=this.onTouchMove_.bind(this);this.addEventListener('touchmove',this.onTouchMove_);this.onTouchEnd_=this.onTouchEnd_.bind(this);this.addEventListener('touchend',this.onTouchEnd_);this.addHotKeys_();this.mouseViewPosAtMouseDown_={x:0,y:0};this.lastMouseViewPos_={x:0,y:0};this.lastTouchViewPositions_=[];this.alert_=undefined;this.isPanningAndScanning_=false;this.isZooming_=false;},initMouseModeSelector(){this.mouseModeSelector_=document.createElement('tr-ui-b-mouse-mode-selector');this.mouseModeSelector_.targetElement=this;Polymer.dom(this).appendChild(this.mouseModeSelector_);this.mouseModeSelector_.addEventListener('beginpan',this.onBeginPanScan_.bind(this));this.mouseModeSelector_.addEventListener('updatepan',this.onUpdatePanScan_.bind(this));this.mouseModeSelector_.addEventListener('endpan',this.onEndPanScan_.bind(this));this.mouseModeSelector_.addEventListener('beginselection',this.onBeginSelection_.bind(this));this.mouseModeSelector_.addEventListener('updateselection',this.onUpdateSelection_.bind(this));this.mouseModeSelector_.addEventListener('endselection',this.onEndSelection_.bind(this));this.mouseModeSelector_.addEventListener('beginzoom',this.onBeginZoom_.bind(this));this.mouseModeSelector_.addEventListener('updatezoom',this.onUpdateZoom_.bind(this));this.mouseModeSelector_.addEventListener('endzoom',this.onEndZoom_.bind(this));this.mouseModeSelector_.addEventListener('entertiming',this.timingTool_.onEnterTiming.bind(this.timingTool_));this.mouseModeSelector_.addEventListener('begintiming',this.timingTool_.onBeginTiming.bind(this.timingTool_));this.mouseModeSelector_.addEventListener('updatetiming',this.timingTool_.onUpdateTiming.bind(this.timingTool_));this.mouseModeSelector_.addEventListener('endtiming',this.timingTool_.onEndTiming.bind(this.timingTool_));this.mouseModeSelector_.addEventListener('exittiming',this.timingTool_.onExitTiming.bind(this.timingTool_));const m=tr.ui.b.MOUSE_SELECTOR_MODE;this.mouseModeSelector_.supportedModeMask=m.SELECTION|m.PANSCAN|m.ZOOM|m.TIMING;this.mouseModeSelector_.settingsKey='timelineTrackView.mouseModeSelector';this.mouseModeSelector_.setKeyCodeForMode(m.PANSCAN,'2'.charCodeAt(0));this.mouseModeSelector_.setKeyCodeForMode(m.SELECTION,'1'.charCodeAt(0));this.mouseModeSelector_.setKeyCodeForMode(m.ZOOM,'3'.charCodeAt(0));this.mouseModeSelector_.setKeyCodeForMode(m.TIMING,'4'.charCodeAt(0));this.mouseModeSelector_.setModifierForAlternateMode(m.SELECTION,tr.ui.b.MODIFIER.SHIFT);this.mouseModeSelector_.setModifierForAlternateMode(m.PANSCAN,tr.ui.b.MODIFIER.SPACE);},get brushingStateController(){return this.brushingStateController_;},set brushingStateController(brushingStateController){if(this.brushingStateController_){this.brushingStateController_.removeEventListener('change',this.onSelectionChanged_);}
this.brushingStateController_=brushingStateController;if(this.brushingStateController_){this.brushingStateController_.addEventListener('change',this.onSelectionChanged_);}},set timelineView(view){this.timelineView_=view;},onSelectionChanged_(){this.showHintText_('Press \'m\' to mark current selection');this.viewport_.dispatchChangeEvent();},set selection(selection){throw new Error('DO NOT CALL THIS');},set highlight(highlight){throw new Error('DO NOT CALL THIS');},detach(){this.modelTrack_.detach();this.upperModelTrack_.detach();if(this.pollIfViewportAttachedInterval_){window.clearInterval(this.pollIfViewportAttachedInterval_);this.pollIfViewportAttachedInterval_=undefined;}
this.viewport_.detach();},get viewport(){return this.viewport_;},get model(){return this.model_;},set model(model){if(!model){throw new Error('Model cannot be undefined');}
const modelInstanceChanged=this.model_!==model;this.model_=model;this.modelTrack_.model=model;this.upperModelTrack_.model=model;if(modelInstanceChanged){this.pollIfViewportAttachedInterval_=window.setInterval(this.pollIfViewportAttached_.bind(this),250);}},get hasVisibleContent(){return this.modelTrack_.hasVisibleContent||this.upperModelTrack_.hasVisibleContent;},pollIfViewportAttached_(){if(!this.viewport_.isAttachedToDocumentOrInTestMode||this.viewport_.clientWidth===0){return;}
window.addEventListener('resize',this.viewport_.dispatchChangeEvent);window.clearInterval(this.pollIfViewportAttachedInterval_);this.pollIfViewportAttachedInterval_=undefined;this.setInitialViewport_();},setInitialViewport_(){this.modelTrackContainer_.updateCanvasSizeIfNeeded_();const w=this.modelTrackContainer_.canvas.width;let min;let range;if(this.model_.bounds.isEmpty){min=0;range=1000;}else if(this.model_.bounds.range===0){min=this.model_.bounds.min;range=1000;}else{min=this.model_.bounds.min;range=this.model_.bounds.range;}
const boost=range*0.15;this.displayTransform_.set(this.viewport_.currentDisplayTransform);this.displayTransform_.xSetWorldBounds(min-boost,min+range+boost,w);this.viewport_.setDisplayTransformImmediately(this.displayTransform_);},addAllEventsMatchingFilterToSelectionAsTask(filter,selection){const modelTrack=this.modelTrack_;const firstT=modelTrack.addAllEventsMatchingFilterToSelectionAsTask(filter,selection);const lastT=firstT.after(function(){this.upperModelTrack_.addAllEventsMatchingFilterToSelection(filter,selection);},this);return firstT;},onMouseMove_(e){if(this.isZooming_)return;this.storeLastMousePos_(e);},onTouchStart_(e){this.storeLastTouchPositions_(e);this.focusElements_();},onTouchMove_(e){e.preventDefault();this.onUpdateTransformForTouch_(e);},onTouchEnd_(e){this.storeLastTouchPositions_(e);this.focusElements_();},addHotKeys_(){this.addKeyDownHotKeys_();this.addKeyPressHotKeys_();},addKeyPressHotKey(dict){dict.eventType='keypress';dict.useCapture=false;dict.thisArg=this;const binding=new tr.ui.b.HotKey(dict);this.$.hotkey_controller.addHotKey(binding);},addKeyPressHotKeys_(){this.addKeyPressHotKey({keyCodes:['w'.charCodeAt(0),','.charCodeAt(0)],callback(e){this.zoomBy_(1.5,true);e.stopPropagation();}});this.addKeyPressHotKey({keyCodes:['s'.charCodeAt(0),'o'.charCodeAt(0)],callback(e){this.zoomBy_(1/1.5,true);e.stopPropagation();}});this.addKeyPressHotKey({keyCode:'g'.charCodeAt(0),callback(e){this.onGridToggle_(true);e.stopPropagation();}});this.addKeyPressHotKey({keyCode:'G'.charCodeAt(0),callback(e){this.onGridToggle_(false);e.stopPropagation();}});this.addKeyPressHotKey({keyCodes:['W'.charCodeAt(0),'<'.charCodeAt(0)],callback(e){this.zoomBy_(10,true);e.stopPropagation();}});this.addKeyPressHotKey({keyCodes:['S'.charCodeAt(0),'O'.charCodeAt(0)],callback(e){this.zoomBy_(1/10,true);e.stopPropagation();}});this.addKeyPressHotKey({keyCode:'a'.charCodeAt(0),callback(e){this.queueSmoothPan_(this.viewWidth_*0.3,0);e.stopPropagation();}});this.addKeyPressHotKey({keyCodes:['d'.charCodeAt(0),'e'.charCodeAt(0)],callback(e){this.queueSmoothPan_(this.viewWidth_*-0.3,0);e.stopPropagation();}});this.addKeyPressHotKey({keyCode:'A'.charCodeAt(0),callback(e){this.queueSmoothPan_(viewWidth*0.5,0);e.stopPropagation();}});this.addKeyPressHotKey({keyCode:'D'.charCodeAt(0),callback(e){this.queueSmoothPan_(viewWidth*-0.5,0);e.stopPropagation();}});this.addKeyPressHotKey({keyCode:'0'.charCodeAt(0),callback(e){this.setInitialViewport_();e.stopPropagation();}});this.addKeyPressHotKey({keyCode:'f'.charCodeAt(0),callback(e){this.zoomToSelection();e.stopPropagation();}});this.addKeyPressHotKey({keyCode:'m'.charCodeAt(0),callback(e){this.setCurrentSelectionAsInterestRange_();e.stopPropagation();}});this.addKeyPressHotKey({keyCode:'p'.charCodeAt(0),callback(e){this.selectPowerSamplesInCurrentTimeRange_();e.stopPropagation();}});this.addKeyPressHotKey({keyCode:'h'.charCodeAt(0),callback(e){this.toggleHighDetails_();e.stopPropagation();}});},get viewWidth_(){return this.modelTrackContainer_.canvas.clientWidth;},addKeyDownHotKeys_(){const addBinding=function(dict){dict.eventType='keydown';dict.useCapture=false;dict.thisArg=this;const binding=new tr.ui.b.HotKey(dict);this.$.hotkey_controller.addHotKey(binding);}.bind(this);addBinding({keyCode:37,callback(e){const curSel=this.brushingStateController_.selection;const sel=this.viewport.getShiftedSelection(curSel,-1);if(sel){this.brushingStateController.changeSelectionFromTimeline(sel);this.panToSelection();}else{this.queueSmoothPan_(this.viewWidth_*0.3,0);}
e.preventDefault();e.stopPropagation();}});addBinding({keyCode:39,callback(e){const curSel=this.brushingStateController_.selection;const sel=this.viewport.getShiftedSelection(curSel,1);if(sel){this.brushingStateController.changeSelectionFromTimeline(sel);this.panToSelection();}else{this.queueSmoothPan_(-this.viewWidth_*0.3,0);}
e.preventDefault();e.stopPropagation();}});},onDblClick_(e){if(this.mouseModeSelector_.mode!==tr.ui.b.MOUSE_SELECTOR_MODE.SELECTION){return;}
const curSelection=this.brushingStateController_.selection;if(!curSelection.length||!tr.b.getOnlyElement(curSelection).title){return;}
const selection=new tr.model.EventSet();const filter=new tr.c.ExactTitleFilter(tr.b.getOnlyElement(curSelection).title);this.modelTrack_.addAllEventsMatchingFilterToSelection(filter,selection);this.brushingStateController.changeSelectionFromTimeline(selection);},onMouseWheel_(e){if(!e.altKey)return;const delta=e.wheelDelta/120;const zoomScale=Math.pow(1.5,delta);this.zoomBy_(zoomScale);e.preventDefault();},onMouseDown_(e){if(this.mouseModeSelector_.mode!==tr.ui.b.MOUSE_SELECTOR_MODE.SELECTION){return;}
if(e.target!==this.rulerTrack_)return;this.dragBeginEvent_=undefined;if(this.xNavStringMarker_){this.model.removeAnnotation(this.xNavStringMarker_);this.xNavStringMarker_=undefined;}
const dt=this.viewport_.currentDisplayTransform;tr.ui.b.trackMouseMovesUntilMouseUp(function(e){if(e.target===this.rulerTrack_)return;const relativePosition=this.extractRelativeMousePosition_(e);const loc=tr.model.Location.fromViewCoordinates(this.viewport_,relativePosition.x,relativePosition.y);if(!loc)return;if(this.guideLineAnnotation_===undefined){this.guideLineAnnotation_=new tr.model.XMarkerAnnotation(loc.xWorld);this.model.addAnnotation(this.guideLineAnnotation_);}else{this.guideLineAnnotation_.timestamp=loc.xWorld;this.modelTrackContainer_.invalidate();}
const state=new tr.ui.b.UIState(loc,this.viewport_.currentDisplayTransform.scaleX);this.timelineView_.setFindCtlText(state.toUserFriendlyString(this.viewport_));}.bind(this),undefined,function onKeyUpDuringDrag(){if(this.dragBeginEvent_){this.setDragBoxPosition_(this.dragBoxXStart_,this.dragBoxYStart_,this.dragBoxXEnd_,this.dragBoxYEnd_);}}.bind(this));},queueSmoothPan_(viewDeltaX,deltaY){const deltaX=this.viewport_.currentDisplayTransform.xViewVectorToWorld(viewDeltaX);const animation=new tr.ui.TimelineDisplayTransformPanAnimation(deltaX,deltaY);this.viewport_.queueDisplayTransformAnimation(animation);},zoomBy_(scale,smooth){if(scale<=0){return;}
smooth=!!smooth;const vp=this.viewport_;const pixelRatio=window.devicePixelRatio||1;const goalFocalPointXView=this.lastMouseViewPos_.x*pixelRatio;const goalFocalPointXWorld=vp.currentDisplayTransform.xViewToWorld(goalFocalPointXView);if(smooth){const animation=new tr.ui.TimelineDisplayTransformZoomToAnimation(goalFocalPointXWorld,goalFocalPointXView,vp.currentDisplayTransform.panY,scale);vp.queueDisplayTransformAnimation(animation);}else{this.displayTransform_.set(vp.currentDisplayTransform);this.displayTransform_.scaleX*=scale;this.displayTransform_.xPanWorldPosToViewPos(goalFocalPointXWorld,goalFocalPointXView,this.viewWidth_);vp.setDisplayTransformImmediately(this.displayTransform_);}},zoomToSelection(){if(!this.brushingStateController.selectionOfInterest.length)return;const bounds=this.brushingStateController.selectionOfInterest.bounds;if(!bounds.range)return;const worldCenter=bounds.center;const viewCenter=this.modelTrackContainer_.canvas.width/2;const adjustedWorldRange=bounds.range*1.25;const newScale=this.modelTrackContainer_.canvas.width/adjustedWorldRange;const zoomInRatio=newScale/this.viewport_.currentDisplayTransform.scaleX;const animation=new tr.ui.TimelineDisplayTransformZoomToAnimation(worldCenter,viewCenter,this.viewport_.currentDisplayTransform.panY,zoomInRatio);this.viewport_.queueDisplayTransformAnimation(animation);},panToSelection(){if(!this.brushingStateController.selectionOfInterest.length)return;const bounds=this.brushingStateController.selectionOfInterest.bounds;const worldCenter=bounds.center;const viewWidth=this.viewWidth_;const dt=this.viewport_.currentDisplayTransform;if(false&&!bounds.range){if(dt.xWorldToView(bounds.center)<0||dt.xWorldToView(bounds.center)>viewWidth){this.displayTransform_.set(dt);this.displayTransform_.xPanWorldPosToViewPos(worldCenter,'center',viewWidth);const deltaX=this.displayTransform_.panX-dt.panX;const animation=new tr.ui.TimelineDisplayTransformPanAnimation(deltaX,0);this.viewport_.queueDisplayTransformAnimation(animation);}
return;}
this.displayTransform_.set(dt);this.displayTransform_.xPanWorldBoundsIntoView(bounds.min,bounds.max,viewWidth);const deltaX=this.displayTransform_.panX-dt.panX;const animation=new tr.ui.TimelineDisplayTransformPanAnimation(deltaX,0);this.viewport_.queueDisplayTransformAnimation(animation);},navToPosition(uiState,showNavLine){const location=uiState.location;const scaleX=uiState.scaleX;const track=location.getContainingTrack(this.viewport_);const worldCenter=location.xWorld;const viewCenter=this.modelTrackContainer_.canvas.width/5;const zoomInRatio=scaleX/this.viewport_.currentDisplayTransform.scaleX;track.scrollIntoViewIfNeeded();const animation=new tr.ui.TimelineDisplayTransformZoomToAnimation(worldCenter,viewCenter,this.viewport_.currentDisplayTransform.panY,zoomInRatio);this.viewport_.queueDisplayTransformAnimation(animation);if(!showNavLine)return;if(this.xNavStringMarker_){this.model.removeAnnotation(this.xNavStringMarker_);}
this.xNavStringMarker_=new tr.model.XMarkerAnnotation(worldCenter);this.model.addAnnotation(this.xNavStringMarker_);},selectPowerSamplesInCurrentTimeRange_(){const selectionBounds=this.brushingStateController_.selection.bounds;if(this.model.device.powerSeries&&!selectionBounds.empty){const events=this.model.device.powerSeries.getSamplesWithinRange(selectionBounds.min,selectionBounds.max);const selection=new tr.model.EventSet(events);this.brushingStateController_.changeSelectionFromTimeline(selection);}},setCurrentSelectionAsInterestRange_(){const selectionBounds=this.brushingStateController_.selection.bounds;if(selectionBounds.empty){this.viewport_.interestRange.reset();return;}
if(this.viewport_.interestRange.min===selectionBounds.min&&this.viewport_.interestRange.max===selectionBounds.max){this.viewport_.interestRange.reset();}else{this.viewport_.interestRange.set(selectionBounds);}},toggleHighDetails_(){this.viewport_.highDetails=!this.viewport_.highDetails;},hideDragBox_(){this.$.drag_box.style.left='-1000px';this.$.drag_box.style.top='-1000px';this.$.drag_box.style.width=0;this.$.drag_box.style.height=0;},setDragBoxPosition_(xStart,yStart,xEnd,yEnd){const loY=Math.min(yStart,yEnd);const hiY=Math.max(yStart,yEnd);const loX=Math.min(xStart,xEnd);const hiX=Math.max(xStart,xEnd);const modelTrackRect=this.modelTrack_.getBoundingClientRect();const dragRect={left:loX,top:loY,width:hiX-loX,height:hiY-loY};dragRect.right=dragRect.left+dragRect.width;dragRect.bottom=dragRect.top+dragRect.height;const modelTrackContainerRect=this.modelTrackContainer_.getBoundingClientRect();const clipRect={left:modelTrackContainerRect.left,top:modelTrackContainerRect.top,right:modelTrackContainerRect.right,bottom:modelTrackContainerRect.bottom};const headingWidth=window.getComputedStyle(Polymer.dom(this).querySelector('tr-ui-b-heading')).width;const trackTitleWidth=parseInt(headingWidth);clipRect.left=clipRect.left+trackTitleWidth;const intersectRect_=function(r1,r2){if(r2.left>r1.right||r2.right<r1.left||r2.top>r1.bottom||r2.bottom<r1.top){return false;}
const results={};results.left=Math.max(r1.left,r2.left);results.top=Math.max(r1.top,r2.top);results.right=Math.min(r1.right,r2.right);results.bottom=Math.min(r1.bottom,r2.bottom);results.width=results.right-results.left;results.height=results.bottom-results.top;return results;};const finalDragBox=intersectRect_(clipRect,dragRect);this.$.drag_box.style.left=finalDragBox.left+'px';this.$.drag_box.style.width=finalDragBox.width+'px';this.$.drag_box.style.top=finalDragBox.top+'px';this.$.drag_box.style.height=finalDragBox.height+'px';this.$.drag_box.style.whiteSpace='nowrap';const pixelRatio=window.devicePixelRatio||1;const canv=this.modelTrackContainer_.canvas;const dt=this.viewport_.currentDisplayTransform;const loWX=dt.xViewToWorld((loX-canv.offsetLeft)*pixelRatio);const hiWX=dt.xViewToWorld((hiX-canv.offsetLeft)*pixelRatio);Polymer.dom(this.$.drag_box).textContent=tr.b.Unit.byName.timeDurationInMs.format(hiWX-loWX);const e=new tr.b.Event('selectionChanging');e.loWX=loWX;e.hiWX=hiWX;this.dispatchEvent(e);},onGridToggle_(left){const selection=this.brushingStateController_.selection;const tb=left?selection.bounds.min:selection.bounds.max;if(this.viewport_.gridEnabled&&this.viewport_.gridSide===left&&this.viewport_.gridInitialTimebase===tb){this.viewport_.gridside=undefined;this.viewport_.gridEnabled=false;this.viewport_.gridInitialTimebase=undefined;return;}
const numIntervalsSinceStart=Math.ceil((tb-this.model_.bounds.min)/this.viewport_.gridStep_);this.viewport_.gridEnabled=true;this.viewport_.gridSide=left;this.viewport_.gridInitialTimebase=tb;this.viewport_.gridTimebase=tb-
(numIntervalsSinceStart+1)*this.viewport_.gridStep_;},storeLastMousePos_(e){this.lastMouseViewPos_=this.extractRelativeMousePosition_(e);},storeLastTouchPositions_(e){this.lastTouchViewPositions_=this.extractRelativeTouchPositions_(e);},extractRelativeMousePosition_(e){const canv=this.modelTrackContainer_.canvas;return{x:e.clientX-canv.offsetLeft,y:e.clientY-canv.offsetTop};},extractRelativeTouchPositions_(e){const canv=this.modelTrackContainer_.canvas;const touches=[];for(let i=0;i<e.touches.length;++i){touches.push({x:e.touches[i].clientX-canv.offsetLeft,y:e.touches[i].clientY-canv.offsetTop});}
return touches;},storeInitialMouseDownPos_(e){const position=this.extractRelativeMousePosition_(e);this.mouseViewPosAtMouseDown_.x=position.x;this.mouseViewPosAtMouseDown_.y=position.y;},focusElements_(){this.$.hotkey_controller.childRequestsGeneralFocus(this);},storeInitialInteractionPositionsAndFocus_(e){this.storeInitialMouseDownPos_(e);this.storeLastMousePos_(e);this.focusElements_();},onBeginPanScan_(e){const vp=this.viewport_;this.viewportDisplayTransformAtMouseDown_=vp.currentDisplayTransform.clone();this.isPanningAndScanning_=true;this.storeInitialInteractionPositionsAndFocus_(e);e.preventDefault();},onUpdatePanScan_(e){if(!this.isPanningAndScanning_)return;const viewWidth=this.viewWidth_;const pixelRatio=window.devicePixelRatio||1;const xDeltaView=pixelRatio*(this.lastMouseViewPos_.x-
this.mouseViewPosAtMouseDown_.x);const yDelta=this.lastMouseViewPos_.y-
this.mouseViewPosAtMouseDown_.y;this.displayTransform_.set(this.viewportDisplayTransformAtMouseDown_);this.displayTransform_.incrementPanXInViewUnits(xDeltaView);this.displayTransform_.panY-=yDelta;this.viewport_.setDisplayTransformImmediately(this.displayTransform_);e.preventDefault();e.stopPropagation();this.storeLastMousePos_(e);},onEndPanScan_(e){this.isPanningAndScanning_=false;this.storeLastMousePos_(e);if(!e.isClick){e.preventDefault();}},onBeginSelection_(e){const canv=this.modelTrackContainer_.canvas;const rect=this.modelTrack_.getBoundingClientRect();const canvRect=canv.getBoundingClientRect();const inside=rect&&e.clientX>=rect.left&&e.clientX<rect.right&&e.clientY>=rect.top&&e.clientY<rect.bottom&&e.clientX>=canvRect.left&&e.clientX<canvRect.right;if(!inside)return;this.dragBeginEvent_=e;this.storeInitialInteractionPositionsAndFocus_(e);e.preventDefault();},onUpdateSelection_(e){if(!this.dragBeginEvent_)return;this.dragBoxXStart_=this.dragBeginEvent_.clientX;this.dragBoxXEnd_=e.clientX;this.dragBoxYStart_=this.dragBeginEvent_.clientY;this.dragBoxYEnd_=e.clientY;this.setDragBoxPosition_(this.dragBoxXStart_,this.dragBoxYStart_,this.dragBoxXEnd_,this.dragBoxYEnd_);},onEndSelection_(e){e.preventDefault();if(!this.dragBeginEvent_)return;this.hideDragBox_();const eDown=this.dragBeginEvent_;this.dragBeginEvent_=undefined;const loY=Math.min(eDown.clientY,e.clientY);const hiY=Math.max(eDown.clientY,e.clientY);const loX=Math.min(eDown.clientX,e.clientX);const hiX=Math.max(eDown.clientX,e.clientX);const canv=this.modelTrackContainer_.canvas;const worldOffset=canv.getBoundingClientRect().left;const loVX=loX-worldOffset;const hiVX=hiX-worldOffset;const selection=new tr.model.EventSet();if(eDown.appendSelection){const previousSelection=this.brushingStateController_.selection;if(previousSelection!==undefined){selection.addEventSet(previousSelection);}}
this.modelTrack_.addIntersectingEventsInRangeToSelection(loVX,hiVX,loY,hiY,selection);this.brushingStateController_.changeSelectionFromTimeline(selection);},onBeginZoom_(e){this.isZooming_=true;this.storeInitialInteractionPositionsAndFocus_(e);e.preventDefault();},onUpdateZoom_(e){if(!this.isZooming_)return;const newPosition=this.extractRelativeMousePosition_(e);const zoomScaleValue=1+(this.lastMouseViewPos_.y-
newPosition.y)*0.01;this.zoomBy_(zoomScaleValue,false);this.storeLastMousePos_(e);},onEndZoom_(e){this.isZooming_=false;if(!e.isClick){e.preventDefault();}},computeTouchCenter_(positions){let xSum=0;let ySum=0;for(let i=0;i<positions.length;++i){xSum+=positions[i].x;ySum+=positions[i].y;}
return{x:xSum/positions.length,y:ySum/positions.length};},computeTouchSpan_(positions){let xMin=Number.MAX_VALUE;let yMin=Number.MAX_VALUE;let xMax=Number.MIN_VALUE;let yMax=Number.MIN_VALUE;for(let i=0;i<positions.length;++i){xMin=Math.min(xMin,positions[i].x);yMin=Math.min(yMin,positions[i].y);xMax=Math.max(xMax,positions[i].x);yMax=Math.max(yMax,positions[i].y);}
return Math.sqrt((xMin-xMax)*(xMin-xMax)+
(yMin-yMax)*(yMin-yMax));},onUpdateTransformForTouch_(e){const newPositions=this.extractRelativeTouchPositions_(e);const currentPositions=this.lastTouchViewPositions_;const newCenter=this.computeTouchCenter_(newPositions);const currentCenter=this.computeTouchCenter_(currentPositions);const newSpan=this.computeTouchSpan_(newPositions);const currentSpan=this.computeTouchSpan_(currentPositions);const vp=this.viewport_;const viewWidth=this.viewWidth_;const pixelRatio=window.devicePixelRatio||1;const xDelta=pixelRatio*(newCenter.x-currentCenter.x);const yDelta=newCenter.y-currentCenter.y;const zoomScaleValue=currentSpan>10?newSpan/currentSpan:1;const viewFocus=pixelRatio*newCenter.x;const worldFocus=vp.currentDisplayTransform.xViewToWorld(viewFocus);this.displayTransform_.set(vp.currentDisplayTransform);this.displayTransform_.scaleX*=zoomScaleValue;this.displayTransform_.xPanWorldPosToViewPos(worldFocus,viewFocus,viewWidth);this.displayTransform_.incrementPanXInViewUnits(xDelta);this.displayTransform_.panY-=yDelta;vp.setDisplayTransformImmediately(this.displayTransform_);this.storeLastTouchPositions_(e);},initHintText_(){this.$.hint_text.style.display='none';this.pendingHintTextClearTimeout_=undefined;},showHintText_(text){if(this.pendingHintTextClearTimeout_){window.clearTimeout(this.pendingHintTextClearTimeout_);this.pendingHintTextClearTimeout_=undefined;}
this.pendingHintTextClearTimeout_=setTimeout(this.hideHintText_.bind(this),1000);Polymer.dom(this.$.hint_text).textContent=text;this.$.hint_text.style.display='';},hideHintText_(){this.pendingHintTextClearTimeout_=undefined;this.$.hint_text.style.display='none';}});'use strict';Polymer({is:'tr-ui-find-control',filterKeyDown(e){if(e.keyCode===27){const hkc=tr.b.getHotkeyControllerForElement(this);if(hkc){hkc.childRequestsBlur(this);}else{this.blur();}
e.preventDefault();e.stopPropagation();return;}else if(e.keyCode===13){if(e.shiftKey){this.findPrevious();}else{this.findNext();}}},filterBlur(e){this.updateHitCountEl();},filterFocus(e){this.$.filter.select();},filterMouseUp(e){e.preventDefault();},get controller(){return this.controller_;},set controller(c){this.controller_=c;this.updateHitCountEl();},focus(){this.$.filter.focus();},get hasFocus(){return this===document.activeElement;},filterTextChanged(){Polymer.dom(this.$.hitCount).textContent='';this.$.spinner.style.visibility='visible';this.$.spinner.style.animation='spin 1s linear infinite';this.controller.startFiltering(this.$.filter.value).then(function(){this.$.spinner.style.visibility='hidden';this.$.spinner.style.animation='';this.updateHitCountEl();}.bind(this));},findNext(){if(this.controller){this.controller.findNext();}
this.updateHitCountEl();},findPrevious(){if(this.controller){this.controller.findPrevious();}
this.updateHitCountEl();},updateHitCountEl(){if(!this.controller||this.$.filter.value.length===0){Polymer.dom(this.$.hitCount).textContent='';return;}
const n=this.controller.filterHits.length;const i=n===0?-1:this.controller.currentHitIndex;Polymer.dom(this.$.hitCount).textContent=(i+1)+' of '+n;},setText(string){this.$.filter.value=string;}});'use strict';tr.exportTo('tr.e.tquery',function(){function Context(){this.event=undefined;this.ancestors=[];}
Context.prototype={push(event){const ctx=new Context();ctx.ancestors=this.ancestors.slice();ctx.ancestors.push(event);return ctx;},pop(event){const ctx=new Context();ctx.event=this.ancestors[this.ancestors.length-1];ctx.ancestors=this.ancestors.slice(0,this.ancestors.length-1);return ctx;}};return{Context,};});'use strict';tr.exportTo('tr.e.tquery',function(){function Filter(){tr.c.ScriptingObject.call(this);}
Filter.normalizeFilterExpression=function(filterExpression){if(filterExpression instanceof String||typeof(filterExpression)==='string'||filterExpression instanceof RegExp){const filter=new tr.e.tquery.FilterHasTitle(filterExpression);return filter;}
return filterExpression;};Filter.prototype={__proto__:tr.c.ScriptingObject.prototype,evaluate(context){throw new Error('Not implemented');},matchValue_(value,expected){if(expected instanceof RegExp){return expected.test(value);}else if(expected instanceof Function){return expected(value);}
return value===expected;}};return{Filter,};});'use strict';tr.exportTo('tr.e.tquery',function(){function FilterAllOf(opt_subExpressions){tr.e.tquery.Filter.call(this);this.subExpressions=opt_subExpressions||[];}
FilterAllOf.prototype={__proto__:tr.e.tquery.Filter.prototype,set subExpressions(exprs){this.subExpressions_=[];for(let i=0;i<exprs.length;i++){this.subExpressions_.push(tr.e.tquery.Filter.normalizeFilterExpression(exprs[i]));}},get subExpressions(){return this.subExpressions_;},evaluate(context){if(!this.subExpressions.length)return true;for(let i=0;i<this.subExpressions.length;i++){if(!this.subExpressions[i].evaluate(context)){return false;}}
return true;}};tr.c.ScriptingObjectRegistry.register(function(){const exprs=[];for(let i=0;i<arguments.length;i++){exprs.push(arguments[i]);}
return new FilterAllOf(exprs);},{name:'allOf'});return{FilterAllOf,};});'use strict';tr.exportTo('tr.e.tquery',function(){function FilterNot(subExpression){tr.e.tquery.Filter.call(this);this.subExpression=subExpression;}
FilterNot.prototype={__proto__:tr.e.tquery.Filter.prototype,set subExpression(expr){this.subExpression_=tr.e.tquery.Filter.normalizeFilterExpression(expr);},get subExpression(){return this.subExpression_;},evaluate(context){return!this.subExpression.evaluate(context);}};tr.c.ScriptingObjectRegistry.register(function(){const exprs=Array.prototype.slice.call(arguments);if(exprs.length!==1){throw new Error('not() must have exactly one subexpression');}
return new FilterNot(exprs[0]);},{name:'not'});return{FilterNot,};});'use strict';tr.exportTo('tr.e.tquery',function(){function FilterAnyOf(opt_subExpressions){tr.e.tquery.Filter.call(this);this.subExpressions=opt_subExpressions||[];}
FilterAnyOf.prototype={__proto__:tr.e.tquery.Filter.prototype,set subExpressions(exprs){this.subExpressions_=[];for(let i=0;i<exprs.length;i++){this.subExpressions_.push(tr.e.tquery.Filter.normalizeFilterExpression(exprs[i]));}},get subExpressions(){return this.subExpressions_;},evaluate(context){if(!this.subExpressions.length)return true;for(let i=0;i<this.subExpressions.length;i++){if(this.subExpressions[i].evaluate(context))return true;}
return false;}};tr.c.ScriptingObjectRegistry.register(function(){const exprs=Array.prototype.slice.call(arguments);return new FilterAnyOf(exprs);},{name:'anyOf'});tr.c.ScriptingObjectRegistry.register(function(){const exprs=Array.prototype.slice.call(arguments);return new tr.e.tquery.FilterNot(new FilterAnyOf(exprs));},{name:'noneOf'});return{FilterAnyOf,};});'use strict';tr.exportTo('tr.e.tquery',function(){function FilterHasAncestor(opt_subExpression){this.subExpression=opt_subExpression;}
FilterHasAncestor.prototype={__proto__:tr.e.tquery.Filter.prototype,set subExpression(expr){this.subExpression_=tr.e.tquery.Filter.normalizeFilterExpression(expr);},get subExpression(){return this.subExpression_;},evaluate(context){if(!this.subExpression){return context.ancestors.length>0;}
while(context.ancestors.length){context=context.pop();if(this.subExpression.evaluate(context))return true;}
return false;}};tr.c.ScriptingObjectRegistry.register(function(subExpression){return new FilterHasAncestor(subExpression);},{name:'hasAncestor'});return{FilterHasAncestor,};});'use strict';tr.exportTo('tr.e.tquery',function(){function FilterHasDuration(minValueOrExpected,opt_maxValue){if(minValueOrExpected!==undefined&&opt_maxValue!==undefined){this.minValue=minValueOrExpected;this.maxValue=opt_maxValue;}else{this.expected=minValueOrExpected;}}
FilterHasDuration.prototype={__proto__:tr.e.tquery.Filter.prototype,evaluate(context){if(context.event.duration===undefined)return false;if(this.minValue!==undefined&&this.maxValue!==undefined){return context.event.duration>=this.minValue&&context.event.duration<=this.maxValue;}
return this.matchValue_(context.event.duration,this.expected);}};tr.c.ScriptingObjectRegistry.register(function(minValueOrExpected,opt_maxValue){return new FilterHasDuration(minValueOrExpected,opt_maxValue);},{name:'hasDuration'});return{FilterHasDuration,};});'use strict';tr.exportTo('tr.e.tquery',function(){function FilterHasTitle(expected){tr.e.tquery.Filter.call(this);this.expected=expected;}
FilterHasTitle.prototype={__proto__:tr.e.tquery.Filter.prototype,evaluate(context){return this.matchValue_(context.event.title,this.expected);}};tr.c.ScriptingObjectRegistry.register(function(expected){const filter=new tr.e.tquery.FilterHasTitle(expected);return filter;},{name:'hasTitle'});return{FilterHasTitle,};});'use strict';tr.exportTo('tr.e.tquery',function(){function FilterIsTopLevel(opt_subExpression){this.subExpression=opt_subExpression;}
FilterIsTopLevel.prototype={__proto__:tr.e.tquery.Filter.prototype,set subExpression(expr){this.subExpression_=tr.e.tquery.Filter.normalizeFilterExpression(expr);},get subExpression(){return this.subExpression_;},evaluate(context){if(context.ancestors.length>0)return false;if(!this.subExpression)return true;return this.subExpression.evaluate(context);}};tr.c.ScriptingObjectRegistry.register(function(subExpression){return new FilterIsTopLevel(subExpression);},{name:'isTopLevel'});return{FilterIsTopLevel,};});'use strict';tr.exportTo('tr.e.tquery',function(){function addEventTreeToSelection(selection,event){selection.push(event);if(!event.subSlices)return;event.subSlices.forEach(addEventTreeToSelection.bind(undefined,selection));}
function TQuery(model){tr.c.ScriptingObject.call(this);this.model_=model;this.parent_=undefined;this.filterExpression_=undefined;this.selection_=undefined;}
TQuery.prototype={__proto__:tr.c.ScriptingObject.prototype,onModelChanged(model){this.model_=model;this.selection_=undefined;},get brushingStateController(){return this.brushingStateController_;},filter(filterExpression){const result=new TQuery(this.model_);result.parent_=this;result.filterExpression_=tr.e.tquery.Filter.normalizeFilterExpression(filterExpression);return result;},createFilterTaskGraph_(){const nodes=[this];while(nodes[nodes.length-1].parent_){nodes.push(nodes[nodes.length-1].parent_);}
const rootTask=new tr.b.Task();let lastTask=rootTask;let node;for(let i=nodes.length-1;i>=0;i--){node=nodes[i];if(node.selection_!==undefined)continue;node.selection_=new tr.model.EventSet();if(node.parent_===undefined){lastTask=lastTask.after(this.selectEverythingAsTask_(node.selection_));}else{const prevNode=nodes[i+1];lastTask=this.createFilterTaskForNode_(lastTask,node,prevNode);}}
return{rootTask,lastTask,lastNode:node};},createFilterTaskForNode_(lastTask,node,prevNode){return lastTask.after(function(){node.evaluateFilterExpression_(prevNode.selection_,node.selection_);},this);},evaluateFilterExpression_(inputSelection,outputSelection){const seenEvents={};inputSelection.forEach(function(event){const context=new tr.e.tquery.Context();context.event=event;this.evaluateFilterExpressionForEvent_(context,inputSelection,outputSelection,seenEvents);}.bind(this));},evaluateFilterExpressionForEvent_(context,inputSelection,outputSelection,seenEvents){const event=context.event;if(inputSelection.contains(event)&&!seenEvents[event.guid]){seenEvents[event.guid]=true;if(!this.filterExpression_||this.filterExpression_.evaluate(context)){outputSelection.push(event);}}
if(!event.subSlices)return;context=context.push(event);for(let i=0;i<event.subSlices.length;i++){context.event=event.subSlices[i];this.evaluateFilterExpressionForEvent_(context,inputSelection,outputSelection,seenEvents);}},selectEverythingAsTask_(selection){const filterTask=new tr.b.Task();for(const container of this.model_.getDescendantEventContainers()){filterTask.subTask(()=>{for(const event of container.childEvents()){addEventTreeToSelection(selection,event);}},this);}
return filterTask;},ready(){return new Promise(function(resolve,reject){const graph=this.createFilterTaskGraph_();graph.lastTask=graph.lastTask.after(function(){resolve(this.selection_);},this);tr.b.Task.RunWhenIdle(graph.rootTask);}.bind(this));},get selection(){if(this.selection_===undefined){const graph=this.createFilterTaskGraph_();tr.b.Task.RunSynchronously(graph.rootTask);}
return this.selection_;}};tr.c.ScriptingObjectRegistry.register(new TQuery(),{name:'$t'});return{TQuery,};});'use strict';Polymer({is:'tr-ui-scripting-control',isEnterKey_(event){return event.keyCode!==229&&(event.key==='Enter'||event.keyIdentifier==='Enter');},setFocus_(focused){const promptEl=this.$.prompt;if(focused){promptEl.focus();Polymer.dom(this.$.root).classList.add('focused');if(promptEl.value.length>0){const sel=window.getSelection();sel.collapse(Polymer.dom(promptEl).firstChild,promptEl.value.length);}}else{promptEl.blur();Polymer.dom(this.$.root).classList.remove('focused');const parent=promptEl.parentElement;const nextEl=Polymer.dom(promptEl).nextSibling;promptEl.remove();Polymer.dom(parent).insertBefore(promptEl,nextEl);}},onConsoleFocus(e){e.stopPropagation();this.setFocus_(true);},onConsoleBlur(e){e.stopPropagation();this.setFocus_(false);},promptKeyDown(e){e.stopPropagation();if(!this.isEnterKey_(e))return;e.preventDefault();const promptEl=this.$.prompt;const command=promptEl.value;if(command.length===0)return;promptEl.value='';this.addLine_(String.fromCharCode(187)+' '+command);let result;try{result=this.controller_.executeCommand(command);}catch(e){result=e.stack||e.stackTrace;}
if(result instanceof tr.e.tquery.TQuery){result.ready().then(function(selection){this.addLine_(selection.length+' matches');this.controller_.brushingStateController.showScriptControlSelection(selection);}.bind(this));}else{this.addLine_(result);}
promptEl.scrollIntoView();},addLine_(line){const historyEl=this.$.history;if(historyEl.innerText.length!==0){historyEl.innerText+='\n';}
historyEl.innerText+=line;},promptKeyPress(e){e.stopPropagation();},toggleVisibility(){const root=this.$.root;if(!this.visible){Polymer.dom(root).classList.remove('hidden');this.setFocus_(true);}else{Polymer.dom(root).classList.add('hidden');this.setFocus_(false);}},get hasFocus(){return this===document.activeElement;},get visible(){const root=this.$.root;return!Polymer.dom(root).classList.contains('hidden');},get controller(){return this.controller_;},set controller(c){this.controller_=c;}});'use strict';Polymer({is:'tr-ui-side-panel-container',ready(){this.activePanelContainer_=this.$.active_panel_container;this.tabStrip_=this.$.tab_strip;this.dragHandle_=this.$.side_panel_drag_handle;this.dragHandle_.horizontal=false;this.dragHandle_.target=this.activePanelContainer_;this.rangeOfInterest_=new tr.b.math.Range();this.brushingStateController_=undefined;this.onSelectionChanged_=this.onSelectionChanged_.bind(this);this.onModelChanged_=this.onModelChanged_.bind(this);},get brushingStateController(){return this.brushingStateController_;},set brushingStateController(brushingStateController){if(this.brushingStateController){this.brushingStateController_.removeEventListener('change',this.onSelectionChanged_);this.brushingStateController_.removeEventListener('model-changed',this.onModelChanged_);}
this.brushingStateController_=brushingStateController;if(this.brushingStateController){this.brushingStateController_.addEventListener('change',this.onSelectionChanged_);this.brushingStateController_.addEventListener('model-changed',this.onModelChanged_);}},onSelectionChanged_(){if(this.activePanel){this.activePanel.selection=this.selection;}},get model(){return this.brushingStateController_.model;},onModelChanged_(){this.activePanelType_=undefined;this.updateContents_();},get expanded(){this.hasAttribute('expanded');},get activePanel(){return this.activePanelContainer_.children[0];},get activePanelType(){return this.activePanelType_;},set activePanelType(panelType){if(this.model===undefined){throw new Error('Cannot activate panel without a model');}
let panel=undefined;if(panelType){panel=document.createElement(panelType);}
if(panel!==undefined&&!panel.supportsModel(this.model)){throw new Error('Cannot activate panel: does not support this model');}
if(this.activePanelType){Polymer.dom(this.getLabelElementForPanelType_(this.activePanelType)).removeAttribute('selected');}
if(this.activePanelType){this.getLabelElementForPanelType_(this.activePanelType).removeAttribute('selected');}
if(this.activePanel){this.activePanelContainer_.removeChild(this.activePanel);}
if(panelType===undefined){Polymer.dom(this).removeAttribute('expanded');this.activePanelType_=undefined;return;}
Polymer.dom(this.getLabelElementForPanelType_(panelType)).setAttribute('selected',true);Polymer.dom(this).setAttribute('expanded',true);Polymer.dom(this.activePanelContainer_).appendChild(panel);panel.rangeOfInterest=this.rangeOfInterest_;panel.selection=this.selection_;panel.model=this.model;this.activePanelType_=panelType;},getPanelTypeForConstructor_(constructor){for(let i=0;i<this.tabStrip_.children.length;i++){if(this.tabStrip_.children[i].panelType.constructor===constructor){return this.tabStrip_.children[i].panelType;}}},getLabelElementForPanelType_(panelType){for(let i=0;i<this.tabStrip_.children.length;i++){if(this.tabStrip_.children[i].panelType===panelType){return this.tabStrip_.children[i];}}
return undefined;},updateContents_(){const previouslyActivePanelType=this.activePanelType;Polymer.dom(this.tabStrip_).textContent='';const supportedPanelTypes=[];for(const panelTypeInfo of
tr.ui.side_panel.SidePanelRegistry.getAllRegisteredTypeInfos()){const labelEl=document.createElement('tab-strip-label');const panel=panelTypeInfo.constructor();const panelType=panel.tagName;Polymer.dom(labelEl).textContent=panel.textLabel;labelEl.panelType=panelType;const supported=panel.supportsModel(this.model);if(this.model&&supported.supported){supportedPanelTypes.push(panelType);Polymer.dom(labelEl).setAttribute('enabled',true);labelEl.addEventListener('click',function(panelType){this.activePanelType=this.activePanelType===panelType?undefined:panelType;}.bind(this,panelType));}else{if(this.activePanel){this.activePanelContainer_.removeChild(this.activePanel);}
this.removeAttribute('expanded');}
Polymer.dom(this.tabStrip_).appendChild(labelEl);}
if(previouslyActivePanelType&&supportedPanelTypes.includes(previouslyActivePanelType)){this.activePanelType=previouslyActivePanelType;Polymer.dom(this).setAttribute('expanded',true);}else{if(this.activePanel){Polymer.dom(this.activePanelContainer_).removeChild(this.activePanel);}
Polymer.dom(this).removeAttribute('expanded');}},get rangeOfInterest(){return this.rangeOfInterest_;},set rangeOfInterest(range){if(range===undefined){throw new Error('Must not be undefined');}
this.rangeOfInterest_=range;if(this.activePanel){this.activePanel.rangeOfInterest=range;}}});'use strict';Polymer({is:'tr-ui-timeline-view-help-overlay',ready(){const mod=tr.isMac?'cmd ':'ctrl';const spans=Polymer.dom(this.root).querySelectorAll('span.mod');for(let i=0;i<spans.length;i++){Polymer.dom(spans[i]).textContent=mod;}}});'use strict';Polymer({is:'tr-ui-timeline-view-metadata-overlay',created(){this.metadata_=undefined;},ready(){this.$.table.tableColumns=[{title:'name',value:d=>d.name,},{title:'value',value:d=>{const gov=document.createElement('tr-ui-a-generic-object-view');gov.object=d.value;return gov;},}];},get metadata(){return this.metadata_;},set metadata(metadata){this.metadata_=metadata;this.$.table.tableRows=this.metadata_;this.$.table.rebuild();}});'use strict';Polymer({is:'tr-v-ui-preferred-display-unit',ready(){this.preferredTimeDisplayMode_=undefined;},attached(){tr.b.Unit.didPreferredTimeDisplayUnitChange();},detached(){tr.b.Unit.didPreferredTimeDisplayUnitChange();},get preferredTimeDisplayMode(){return this.preferredTimeDisplayMode_;},set preferredTimeDisplayMode(v){if(this.preferredTimeDisplayMode_===v)return;this.preferredTimeDisplayMode_=v;tr.b.Unit.didPreferredTimeDisplayUnitChange();}});'use strict';Polymer({is:'tr-ui-timeline-view',attached(){this.async(function(){this.trackViewContainer_=Polymer.dom(this).querySelector('#track_view_container');if(!this.trackViewContainer_){throw new Error('missing trackviewContainer');}});},ready(){this.tabIndex=0;this.titleEl_=this.$.title;this.leftControlsEl_=this.$.left_controls;this.rightControlsEl_=this.$.right_controls;this.collapsingControlsEl_=this.$.collapsing_controls;this.sidePanelContainer_=this.$.side_panel_container;this.brushingStateController_=new tr.c.BrushingStateController(this);this.findCtl_=this.$.view_find_control;this.findCtl_.controller=new tr.ui.FindController(this.brushingStateController_);this.scriptingCtl_=document.createElement('tr-ui-scripting-control');this.scriptingCtl_.controller=new tr.c.ScriptingController(this.brushingStateController_);this.sidePanelContainer_.brushingStateController=this.brushingStateController_;if(window.tr.metrics&&window.tr.metrics.sh&&window.tr.metrics.sh.SystemHealthMetric){this.railScoreSpan_=document.createElement('tr-metrics-ui-sh-system-health-span');Polymer.dom(this.rightControls).appendChild(this.railScoreSpan_);}else{this.railScoreSpan_=undefined;}
this.optionsDropdown_=this.$.view_options_dropdown;Polymer.dom(this.optionsDropdown_.iconElement).textContent='View Options';this.showFlowEvents_=false;Polymer.dom(this.optionsDropdown_).appendChild(tr.ui.b.createCheckBox(this,'showFlowEvents','tr.ui.TimelineView.showFlowEvents',false,'Flow events'));this.highlightVSync_=false;this.highlightVSyncCheckbox_=tr.ui.b.createCheckBox(this,'highlightVSync','tr.ui.TimelineView.highlightVSync',false,'Highlight VSync');Polymer.dom(this.optionsDropdown_).appendChild(this.highlightVSyncCheckbox_);this.initMetadataButton_();this.initConsoleButton_();this.initHelpButton_();Polymer.dom(this.collapsingControls).appendChild(this.scriptingCtl_);this.dragEl_=this.$.drag_handle;this.analysisEl_=this.$.analysis;this.analysisEl_.brushingStateController=this.brushingStateController_;this.addEventListener('requestSelectionChange',function(e){const sc=this.brushingStateController_;sc.changeSelectionFromRequestSelectionChangeEvent(e.selection);}.bind(this));this.onViewportChanged_=this.onViewportChanged_.bind(this);this.bindKeyListeners_();this.dragEl_.target=this.analysisEl_;},get globalMode(){return this.hotkeyController.globalMode;},set globalMode(globalMode){globalMode=!!globalMode;this.brushingStateController_.historyEnabled=globalMode;this.hotkeyController.globalMode=globalMode;},get hotkeyController(){return this.$.hkc;},updateDocumentFavicon(){let hue;if(!this.model){hue='blue';}else{hue=this.model.faviconHue;}
let faviconData=tr.ui.b.FaviconsByHue[hue];if(faviconData===undefined){faviconData=tr.ui.b.FaviconsByHue.blue;}
let link=Polymer.dom(document.head).querySelector('link[rel="shortcut icon"]');if(!link){link=document.createElement('link');link.rel='shortcut icon';Polymer.dom(document.head).appendChild(link);}
link.href=faviconData;},get showFlowEvents(){return this.showFlowEvents_;},set showFlowEvents(showFlowEvents){this.showFlowEvents_=showFlowEvents;if(!this.trackView_)return;this.trackView_.viewport.showFlowEvents=showFlowEvents;},get highlightVSync(){return this.highlightVSync_;},set highlightVSync(highlightVSync){this.highlightVSync_=highlightVSync;if(!this.trackView_)return;this.trackView_.viewport.highlightVSync=highlightVSync;},initHelpButton_(){const helpButtonEl=this.$.view_help_button;const dlg=new tr.ui.b.Overlay();dlg.title='Chrome Tracing Help';dlg.visible=false;dlg.appendChild(document.createElement('tr-ui-timeline-view-help-overlay'));function onClick(e){dlg.visible=!dlg.visible;e.stopPropagation();}
helpButtonEl.addEventListener('click',onClick.bind(this));},initConsoleButton_(){const toggleEl=this.$.view_console_button;function onClick(e){this.scriptingCtl_.toggleVisibility();e.stopPropagation();return false;}
toggleEl.addEventListener('click',onClick.bind(this));},initMetadataButton_(){const showEl=this.$.view_metadata_button;function onClick(e){const dlg=new tr.ui.b.Overlay();dlg.title='Metadata for trace';const metadataOverlay=document.createElement('tr-ui-timeline-view-metadata-overlay');metadataOverlay.metadata=this.model.metadata;Polymer.dom(dlg).appendChild(metadataOverlay);dlg.visible=true;e.stopPropagation();return false;}
showEl.addEventListener('click',onClick.bind(this));this.updateMetadataButtonVisibility_();},updateMetadataButtonVisibility_(){const showEl=this.$.view_metadata_button;showEl.style.display=(this.model&&this.model.metadata.length)?'':'none';},get leftControls(){return this.leftControlsEl_;},get rightControls(){return this.rightControlsEl_;},get collapsingControls(){return this.collapsingControlsEl_;},get viewTitle(){return Polymer.dom(this.titleEl_).textContent.substring(Polymer.dom(this.titleEl_).textContent.length-2);},set viewTitle(text){if(text===undefined){Polymer.dom(this.titleEl_).textContent='';this.titleEl_.hidden=true;return;}
this.titleEl_.hidden=false;Polymer.dom(this.titleEl_).textContent=text;},get model(){if(this.trackView_){return this.trackView_.model;}
return undefined;},set model(model){const modelInstanceChanged=model!==this.model;const modelValid=model&&!model.bounds.isEmpty;const importWarningsEl=Polymer.dom(this.root).querySelector('#import-warnings');Polymer.dom(importWarningsEl).textContent='';if(modelInstanceChanged){if(this.railScoreSpan_){this.railScoreSpan_.model=undefined;}
Polymer.dom(this.trackViewContainer_).textContent='';if(this.trackView_){this.trackView_.viewport.removeEventListener('change',this.onViewportChanged_);this.trackView_.brushingStateController=undefined;this.trackView_.detach();this.trackView_=undefined;}
this.brushingStateController_.modelWillChange();}
if(modelValid&&!this.trackView_){this.trackView_=document.createElement('tr-ui-timeline-track-view');this.trackView_.timelineView=this;this.trackView.brushingStateController=this.brushingStateController_;Polymer.dom(this.trackViewContainer_).appendChild(this.trackView_);this.trackView_.viewport.addEventListener('change',this.onViewportChanged_);}
if(modelValid){this.trackView_.model=model;this.trackView_.viewport.showFlowEvents=this.showFlowEvents;this.trackView_.viewport.highlightVSync=this.highlightVSync;if(this.railScoreSpan_){this.railScoreSpan_.model=model;}
this.$.display_unit.preferredTimeDisplayMode=model.intrinsicTimeUnit;}
if(model){model.importWarningsThatShouldBeShownToUser.forEach(function(importWarning){importWarningsEl.addMessage('Import Warning: '+importWarning.type+': '+
importWarning.message);},this);}
if(modelInstanceChanged){this.updateMetadataButtonVisibility_();this.brushingStateController_.modelDidChange();this.onViewportChanged_();}},get brushingStateController(){return this.brushingStateController_;},get trackView(){return this.trackView_;},get settings(){if(!this.settings_){this.settings_=new tr.b.Settings();}
return this.settings_;},set focusElement(value){throw new Error('This is deprecated. Please set globalMode to true.');},bindKeyListeners_(){const hkc=this.hotkeyController;hkc.addHotKey(new tr.ui.b.HotKey({eventType:'keypress',keyCode:'`'.charCodeAt(0),useCapture:true,thisArg:this,callback(e){this.scriptingCtl_.toggleVisibility();if(!this.scriptingCtl_.hasFocus){this.focus();}
e.stopPropagation();}}));hkc.addHotKey(new tr.ui.b.HotKey({eventType:'keypress',keyCode:'/'.charCodeAt(0),useCapture:true,thisArg:this,callback(e){if(this.scriptingCtl_.hasFocus)return;if(this.findCtl_.hasFocus){this.focus();}else{this.findCtl_.focus();}
e.preventDefault();e.stopPropagation();}}));hkc.addHotKey(new tr.ui.b.HotKey({eventType:'keypress',keyCode:'?'.charCodeAt(0),useCapture:false,thisArg:this,callback(e){this.$.view_help_button.click();e.stopPropagation();}}));hkc.addHotKey(new tr.ui.b.HotKey({eventType:'keypress',keyCode:'v'.charCodeAt(0),useCapture:false,thisArg:this,callback(e){this.toggleHighlightVSync_();e.stopPropagation();}}));},onViewportChanged_(e){const spc=this.sidePanelContainer_;if(!this.trackView_){spc.rangeOfInterest.reset();return;}
const vr=this.trackView_.viewport.interestRange.asRangeObject();if(!spc.rangeOfInterest.equals(vr)){spc.rangeOfInterest=vr;}
if(this.railScoreSpan_&&this.model){this.railScoreSpan_.model=this.model;}},toggleHighlightVSync_(){this.highlightVSyncCheckbox_.checked=!this.highlightVSyncCheckbox_.checked;},setFindCtlText(string){this.findCtl_.setText(string);}});'use strict';tr.exportTo('tr.ui.b',function(){function Row(title,data,groupingKeyFuncs,rowStatsConstructor){this.title=title;this.data_=data;if(groupingKeyFuncs===undefined){groupingKeyFuncs=[];}
this.groupingKeyFuncs_=groupingKeyFuncs;this.rowStatsConstructor_=rowStatsConstructor;this.subRowsBuilt_=false;this.subRows_=undefined;this.rowStats_=undefined;}
Row.prototype={getCurrentGroupingKeyFunc_(){if(this.groupingKeyFuncs_.length===0)return undefined;return this.groupingKeyFuncs_[0];},get data(){return this.data_;},get rowStats(){if(this.rowStats_===undefined){this.rowStats_=new this.rowStatsConstructor_(this);}
return this.rowStats_;},rebuildSubRowsIfNeeded_(){if(this.subRowsBuilt_)return;this.subRowsBuilt_=true;const groupingKeyFunc=this.getCurrentGroupingKeyFunc_();if(groupingKeyFunc===undefined){this.subRows_=undefined;return;}
const dataByKey={};let hasValues=false;this.data_.forEach(function(datum){const key=groupingKeyFunc(datum);hasValues=hasValues||(key!==undefined);if(dataByKey[key]===undefined){dataByKey[key]=[];}
dataByKey[key].push(datum);});if(!hasValues){this.subRows_=undefined;return;}
this.subRows_=[];for(const key in dataByKey){const row=new Row(key,dataByKey[key],this.groupingKeyFuncs_.slice(1),this.rowStatsConstructor_);this.subRows_.push(row);}},get isExpanded(){return(this.subRows&&(this.subRows.length>0)&&(this.subRows.length<5));},get subRows(){this.rebuildSubRowsIfNeeded_();return this.subRows_;}};Polymer({is:'tr-ui-b-grouping-table',created(){this.dataToGroup_=undefined;this.groupBy_=undefined;this.rowStatsConstructor_=undefined;},get tableColumns(){return this.$.table.tableColumns;},set tableColumns(tableColumns){this.$.table.tableColumns=tableColumns;},get tableRows(){return this.$.table.tableRows;},get sortColumnIndex(){return this.$.table.sortColumnIndex;},set sortColumnIndex(sortColumnIndex){this.$.table.sortColumnIndex=sortColumnIndex;},get sortDescending(){return this.$.table.sortDescending;},set sortDescending(sortDescending){this.$.table.sortDescending=sortDescending;},get selectionMode(){return this.$.table.selectionMode;},set selectionMode(selectionMode){this.$.table.selectionMode=selectionMode;},get rowHighlightStyle(){return this.$.table.rowHighlightStyle;},set rowHighlightStyle(rowHighlightStyle){this.$.table.rowHighlightStyle=rowHighlightStyle;},get cellHighlightStyle(){return this.$.table.cellHighlightStyle;},set cellHighlightStyle(cellHighlightStyle){this.$.table.cellHighlightStyle=cellHighlightStyle;},get selectedColumnIndex(){return this.$.table.selectedColumnIndex;},set selectedColumnIndex(selectedColumnIndex){this.$.table.selectedColumnIndex=selectedColumnIndex;},get selectedTableRow(){return this.$.table.selectedTableRow;},set selectedTableRow(selectedTableRow){this.$.table.selectedTableRow=selectedTableRow;},get groupBy(){return this.groupBy_;},set groupBy(groupBy){this.groupBy_=groupBy;this.updateContents_();},get dataToGroup(){return this.dataToGroup_;},set dataToGroup(dataToGroup){this.dataToGroup_=dataToGroup;this.updateContents_();},get rowStatsConstructor(){return this.rowStatsConstructor_;},set rowStatsConstructor(rowStatsConstructor){this.rowStatsConstructor_=rowStatsConstructor;this.updateContents_();},rebuild(){this.$.table.rebuild();},updateContents_(){const groupBy=this.groupBy_||[];const dataToGroup=this.dataToGroup_||[];const rowStatsConstructor=this.rowStatsConstructor_||function(){};const superRow=new Row('',dataToGroup,groupBy,rowStatsConstructor);this.$.table.tableRows=superRow.subRows||[];}});return{};});'use strict';tr.exportTo('tr.ui.b',function(){const THIS_DOC=document.currentScript.ownerDocument;Polymer({is:'tr-ui-b-grouping-table-groupby-picker-group',created(){this.picker_=undefined;this.group_=undefined;},get picker(){return this.picker_;},set picker(picker){this.picker_=picker;},get group(){return this.group_;},set group(g){this.group_=g;this.$.label.textContent=g.label;},get enabled(){return this.$.enabled.checked;},set enabled(enabled){this.$.enabled.checked=enabled;if(!this.enabled){this.$.left.style.display='none';this.$.right.style.display='none';}},set isFirst(isFirst){this.$.left.style.display=(!this.enabled||isFirst)?'none':'inline';},set isLast(isLast){this.$.right.style.display=(!this.enabled||isLast)?'none':'inline';},moveLeft_(){this.picker.moveLeft_(this);},moveRight_(){this.picker.moveRight_(this);},onEnableChanged_(){if(!this.enabled){this.$.left.style.display='none';this.$.right.style.display='none';}
this.picker.onEnableChanged_(this);}});Polymer({is:'tr-ui-b-grouping-table-groupby-picker',created(){this.settingsKey_=undefined;},get settingsKey(){return this.settingsKey_;},set settingsKey(settingsKey){this.settingsKey_=settingsKey;if(this.$.container.children.length){this.restoreSetting_();}},restoreSetting_(){if(this.settingsKey_===undefined)return;this.currentGroupKeys=tr.b.Settings.get(this.settingsKey_,this.currentGroupKeys);},get possibleGroups(){return[...this.$.container.children].map(groupEl=>groupEl.group);},set possibleGroups(possibleGroups){Polymer.dom(this.$.container).textContent='';for(let i=0;i<possibleGroups.length;++i){const groupEl=document.createElement('tr-ui-b-grouping-table-groupby-picker-group');groupEl.picker=this;groupEl.group=possibleGroups[i];Polymer.dom(this.$.container).appendChild(groupEl);}
this.restoreSetting_();this.updateFirstLast_();},updateFirstLast_(){const groupEls=this.$.container.children;const enabledGroupEls=[...groupEls].filter(el=>el.enabled);for(let i=0;i<enabledGroupEls.length;++i){enabledGroupEls[i].isFirst=i===0;enabledGroupEls[i].isLast=i===enabledGroupEls.length-1;}},get currentGroupKeys(){return this.currentGroups.map(group=>group.key);},get currentGroups(){const groups=[];for(const groupEl of this.$.container.children){if(groupEl.enabled){groups.push(groupEl.group);}}
return groups;},set currentGroupKeys(newKeys){if(!tr.b.compareArrays(this.currentGroupKeys,newKeys,(x,y)=>x.localeCompare(y))){return;}
const possibleGroups=new Map();for(const group of this.possibleGroups){possibleGroups.set(group.key,group);}
const groupEls=this.$.container.children;let i=0;for(i=0;i<newKeys.length;++i){const group=possibleGroups.get(newKeys[i]);if(group===undefined){newKeys.splice(i,1);--i;continue;}
groupEls[i].group=group;groupEls[i].enabled=true;possibleGroups.delete(newKeys[i]);}
for(const group of possibleGroups.values()){groupEls[i].group=group;groupEls[i].enabled=false;++i;}
this.updateFirstLast_();this.onCurrentGroupsChanged_();},moveLeft_(groupEl){const reference=groupEl.previousSibling;Polymer.dom(this.$.container).removeChild(groupEl);Polymer.dom(this.$.container).insertBefore(groupEl,reference);this.updateFirstLast_();if(groupEl.enabled){this.onCurrentGroupsChanged_();}},moveRight_(groupEl){const reference=groupEl.nextSibling.nextSibling;Polymer.dom(this.$.container).removeChild(groupEl);if(reference){Polymer.dom(this.$.container).insertBefore(groupEl,reference);}else{Polymer.dom(this.$.container).appendChild(groupEl);}
this.updateFirstLast_();if(groupEl.enabled){this.onCurrentGroupsChanged_();}},onCurrentGroupsChanged_(){this.dispatchEvent(new tr.b.Event('current-groups-changed'));tr.b.Settings.set(this.settingsKey_,this.currentGroupKeys);},onEnableChanged_(groupEl){this.updateFirstLast_();this.onCurrentGroupsChanged_();}});return{};});'use strict';(function(){Polymer({is:'tr-ui-sp-file-size-stats-side-panel',behaviors:[tr.ui.behaviors.SidePanel],ready(){this.model_=undefined;this.selection_=new tr.model.EventSet();this.$.picker.settingsKey='tr-ui-sp-file-size-stats-side-panel-picker';this.$.picker.possibleGroups=[{key:'phase',label:'Event Type',dataFn(eventStat){return eventStat.phase;}},{key:'category',label:'Category',dataFn(eventStat){return eventStat.category;}},{key:'title',label:'Title',dataFn(eventStat){return eventStat.title;}}];if(this.$.picker.currentGroupKeys.length===0){this.$.picker.currentGroupKeys=['phase','title'];}
this.$.picker.addEventListener('current-groups-changed',this.updateContents_.bind(this));},get textLabel(){return'File Size Stats';},supportsModel(m){if(!m){return{supported:false,reason:'No stats were collected for this file.'};}
if(m.stats.allTraceEventStats.length===0){return{supported:false,reason:'No stats were collected for this file.'};}
return{supported:true};},get model(){return this.model_;},set model(model){this.model_=model;this.updateContents_();},get rangeOfInterest(){return this.rangeOfInterest_;},set rangeOfInterest(rangeOfInterest){this.rangeOfInterest_=rangeOfInterest;},get selection(){return this.selection_;},set selection(selection){this.selection_=selection;},createColumns_(stats){const columns=[{title:'Title',value(row){const titleEl=document.createElement('span');Polymer.dom(titleEl).textContent=row.title;titleEl.style.textOverflow='ellipsis';return titleEl;},cmp(a,b){return a.title.localeCompare(b.title);},width:'400px'},{title:'Num Events',align:tr.ui.b.TableFormat.ColumnAlignment.RIGHT,value(row){return row.rowStats.numEvents;},cmp(a,b){return a.rowStats.numEvents-b.rowStats.numEvents;},width:'80px'}];if(stats&&stats.hasEventSizesinBytes){columns.push({title:'Bytes',value(row){const value=new tr.b.Scalar(tr.b.Unit.byName.sizeInBytes,row.rowStats.totalEventSizeinBytes);const spanEl=tr.v.ui.createScalarSpan(value);return spanEl;},cmp(a,b){return a.rowStats.totalEventSizeinBytes-
b.rowStats.totalEventSizeinBytes;},width:'80px'});}
return columns;},updateContents_(){const table=this.$.table;const columns=this.createColumns_(this.model.stats);table.rowStatsConstructor=function ModelStatsRowStats(row){const sum=tr.b.math.Statistics.sum(row.data,function(x){return x.numEvents;});const totalEventSizeinBytes=tr.b.math.Statistics.sum(row.data,x=>x.totalEventSizeinBytes);return{numEvents:sum,totalEventSizeinBytes};};table.tableColumns=columns;table.sortColumnIndex=1;table.sortDescending=true;table.selectionMode=tr.ui.b.TableFormat.SelectionMode.ROW;table.groupBy=this.$.picker.currentGroups.map(function(group){return group.dataFn;});if(!this.model){table.dataToGroup=[];}else{table.dataToGroup=this.model.stats.allTraceEventStats;}
this.$.table.rebuild();}});tr.ui.side_panel.SidePanelRegistry.register(function(){return document.createElement('tr-ui-sp-file-size-stats-side-panel');});})();'use strict';tr.exportTo('tr.mre',function(){const FunctionRegistry={allFunctions_:[],allFunctionsByName_:{},get allFunctions(){return this.allFunctions_;},get allFunctionsByName(){return this.allFunctionsByName_;}};FunctionRegistry.getFunction=function(name){return this.allFunctionsByName_[name];};FunctionRegistry.register=function(func){if(func.name===''){throw new Error('Registered functions must not be anonymous');}
if(this.allFunctionsByName[func.name]!==undefined){throw new Error('Function named '+func.name+'is already registered.');}
this.allFunctionsByName[func.name]=func;this.allFunctions.push(func);};function ModuleToLoad(href,filename){if((href!==undefined)?(filename!==undefined):(filename===undefined)){throw new Error('ModuleToLoad must specify exactly one of href or '+'filename');}
this.href=href;this.filename=filename;}
ModuleToLoad.prototype={asDict(){if(this.href!==undefined){return{'href':this.href};}
return{'filename':this.filename};},toString(){if(this.href!==undefined){return'ModuleToLoad(href="'+this.href+'")';}
return'ModuleToLoad(filename="'+this.filename+'")';}};ModuleToLoad.fromDict=function(moduleDict){return new ModuleToLoad(moduleDict.href,moduleDict.filename);};function FunctionHandle(modulesToLoad,functionName,opt_options){if(!(modulesToLoad instanceof Array)){throw new Error('modulesToLoad in FunctionHandle must be an array');}
if(typeof(functionName)!=='string'){throw new Error('functionName in FunctionHandle must be a string');}
this.modulesToLoad=modulesToLoad;this.functionName=functionName;this.options_=opt_options;}
FunctionHandle.prototype={get options(){return this.options_;},asDict(){return{'modules_to_load':this.modulesToLoad.map(function(m){return m.asDict();}),'function_name':this.functionName,'options':this.options_};},asUserFriendlyString(){const parts=this.modulesToLoad.map(mtl=>mtl.filename);parts.push(this.functionName);parts.push(JSON.stringify(this.options_));return parts.join(',');},hasHrefs(){for(const module in this.modulesToLoad){if(this.modulesToLoad[module].href!==undefined){return true;}}
return false;},load(){if(this.hasHrefs()){const err=new Error('FunctionHandle named '+this.functionName+' specifies hrefs, which cannot be loaded.');err.name='FunctionLoadingError';throw err;}
for(const module in this.modulesToLoad){const filename=this.modulesToLoad[module].filename;try{HTMLImportsLoader.loadHTMLFile(filename);}catch(err){err.name='FunctionLoadingError';throw err;}}
const func=FunctionRegistry.getFunction(this.functionName);if(func===undefined){const err=new Error('No registered function named '+this.functionName);err.name='FunctionNotDefinedError';throw err;}
return func;},toString(){const modulesToLoadStr=this.modulesToLoad.map(function(module){return module.toString();});return'FunctionHandle(modulesToLoad=['+modulesToLoadStr+'], '+'functionName="'+this.functionName+'", options="'+
JSON.stringify(this.options_)+'")';}};FunctionHandle.loadFromFilename_=function(filename){try{const numFunctionsBefore=FunctionRegistry.allFunctions.length;HTMLImportsLoader.loadHTMLFile(filename);}catch(err){err.name='FunctionLoadingError';throw err;}
const numFunctionsNow=FunctionRegistry.allFunctions.length;if(numFunctionsNow!==(numFunctionsBefore+1)){const err=new Error(filename+' didn\'t call FunctionRegistry.register');err.name='FunctionNotDefinedError';throw err;}
return FunctionRegistry.allFunctions[numFunctionsNow-1];};FunctionHandle.fromDict=function(handleDict){const options=handleDict.options;let modulesToLoad;if(handleDict.modules_to_load!==undefined){modulesToLoad=handleDict.modules_to_load.map(function(module){return ModuleToLoad.fromDict(module);});}
return new FunctionHandle(modulesToLoad,handleDict.function_name,options);};return{FunctionHandle,ModuleToLoad,FunctionRegistry,};});'use strict';tr.exportTo('tr.metrics',function(){function runMetrics(model,options){if(options===undefined){throw new Error('Options are required.');}
const metricNames=options.metrics;if(!metricNames){throw new Error('Metric names should be specified.');}
const histograms=new tr.v.HistogramSet();for(const metricName of metricNames){const metric=tr.metrics.MetricRegistry.findTypeInfoWithName(metricName);if(metric===undefined){throw new Error('"'+metricName+'" is not a registered metric.');}
metric.constructor(histograms,model,options);}
return histograms;}
function addTelemetryInfo(histograms,model){const telemetry=new tr.v.d.TelemetryInfo();for(const metadata of model.metadata){if(!metadata.value)continue;if(metadata.value.telemetry){telemetry.addInfo(metadata.value.telemetry);}}
histograms.addSharedDiagnostic(tr.v.d.TelemetryInfo.NAME,telemetry);}
function metricMapFunction(result,model,options){const histograms=runMetrics(model,options);addTelemetryInfo(histograms,model);result.addPair('histograms',histograms.asDicts());const scalarDicts=[];for(const value of histograms){for(const[statName,scalar]of value.statisticsScalars){scalarDicts.push({name:value.name+'_'+statName,numeric:scalar.asDict(),description:value.description,});}}
result.addPair('scalars',scalarDicts);}
tr.mre.FunctionRegistry.register(metricMapFunction);return{metricMapFunction,runMetrics,};});'use strict';tr.exportTo('tr.mre',function(){function Failure(job,functionHandleString,traceCanonicalUrl,failureTypeName,description,stack){this.job=job;this.functionHandleString=functionHandleString;this.traceCanonicalUrl=traceCanonicalUrl;this.failureTypeName=failureTypeName;this.description=description;this.stack=stack;}
Failure.prototype={asDict(){return{function_handle_string:this.functionHandleString,trace_canonical_url:this.traceCanonicalUrl,type:this.failureTypeName,description:this.description,stack:this.stack};}};Failure.fromDict=function(failureDict){return new Failure(undefined,failureDict.function_handle_string,failureDict.trace_canonical_url,failureDict.type,failureDict.description,failureDict.stack);};return{Failure,};});'use strict';tr.exportTo('tr.mre',function(){class MreResult{constructor(failures,pairs){if(failures===undefined){failures=[];}
if(pairs===undefined){pairs={};}
this.failures=failures;this.pairs=pairs;}
addFailure(failure){this.failures.push(failure);}
addPair(key,value){if(key in this.pairs){throw new Error('Key '+key+' already exists in result.');}
this.pairs[key]=value;}
asDict(){const d={pairs:this.pairs};if(this.failures){d.failures=this.failures.map(function(f){return f.asDict();});}
return d;}
hadFailures(){return this.failures.length>0;}
static fromDict(resultDict){const failures=(resultDict.failures!==undefined)?resultDict.failures.map(tr.mre.Failure.fromDict):undefined;const pairs=resultDict.pairs;return new MreResult(failures,pairs);}}
return{MreResult,};});'use strict';tr.exportTo('tr.ui',function(){class NullBrushingStateController extends tr.c.BrushingStateController{constructor(){super(undefined);this.parentController=undefined;}
dispatchChangeEvent_(){if(this.parentController)this.parentController.dispatchChangeEvent_();}
get model(){if(!this.parentController)return undefined;return this.parentController.model;}
get trackView(){if(!this.parentController)return undefined;return this.parentController.trackView;}
get viewport(){if(!this.parentController)return undefined;return this.parentController.viewport;}
get historyEnabled(){if(!this.parentController)return undefined;return this.parentController.historyEnabled;}
set historyEnabled(historyEnabled){if(this.parentController){this.parentController.historyEnabled=historyEnabled;}}
modelWillChange(){if(this.parentController)this.parentController.modelWillChange();}
modelDidChange(){if(this.parentController)this.parentController.modelDidChange();}
onUserInitiatedSelectionChange_(){if(this.parentController){this.parentController.onUserInitiatedSelectionChange_();}}
onPopState_(e){if(this.parentController)this.parentController.onPopState_(e);}
get selection(){if(!this.parentController)return undefined;return this.parentController.selection;}
get findMatches(){if(!this.parentController)return undefined;return this.parentController.findMatches;}
get selectionOfInterest(){if(!this.parentController)return undefined;return this.parentController.selectionOfInterest;}
get currentBrushingState(){if(!this.parentController)return undefined;return this.parentController.currentBrushingState;}
set currentBrushingState(newBrushingState){if(this.parentController){this.parentController.currentBrushingState=newBrushingState;}}
addAllEventsMatchingFilterToSelectionAsTask(filter,selection){if(this.parentController){this.parentController.addAllEventsMatchingFilterToSelectionAsTask(filter,selection);}}
findTextChangedTo(allPossibleMatches){if(this.parentController){this.parentController.findTextChangedTo(allPossibleMatches);}}
findFocusChangedTo(currentFocus){if(this.parentController){this.parentController.findFocusChangedTo(currentFocus);}}
findTextCleared(){if(this.parentController){this.parentController.findTextCleared();}}
uiStateFromString(string){if(this.parentController){this.parentController.uiStateFromString(string);}}
navToPosition(uiState,showNavLine){if(this.parentController){this.parentController.navToPosition(uiState,showNavLine);}}
changeSelectionFromTimeline(selection){if(this.parentController){this.parentController.changeSelectionFromTimeline(selection);}}
showScriptControlSelection(selection){if(this.parentController){this.parentController.showScriptControlSelection(selection);}}
changeSelectionFromRequestSelectionChangeEvent(selection){if(this.parentController){this.parentController.changeSelectionFromRequestSelectionChangeEvent(selection);}}
changeAnalysisViewRelatedEvents(eventSet){if(this.parentController&&(eventSet instanceof tr.model.EventSet)){this.parentController.changeAnalysisViewRelatedEvents(eventSet);}}
changeAnalysisLinkHoveredEvents(eventSet){if(this.parentController&&(eventSet instanceof tr.model.EventSet)){this.parentController.changeAnalysisLinkHoveredEvents(eventSet);}}
getViewSpecificBrushingState(viewId){if(this.parentController){this.parentController.getViewSpecificBrushingState(viewId);}}
changeViewSpecificBrushingState(viewId,newState){if(this.parentController){this.parentController.changeViewSpecificBrushingState(viewId,newState);}}}
return{NullBrushingStateController,};});'use strict';tr.exportTo('tr.v',function(){const CSV_ITERATION_INFO_NAMES=['benchmarkName','benchmarkStartString','label','osVersion','productVersion','storyDisplayName','storysetRepeatCounter',];class CSVBuilder{constructor(histograms){this.histograms_=histograms;this.table_=[];this.statisticsNames_=new Set();this.iterationInfoNames_=new Set();this.storyGroupingKeys_=new Set();}
build(){this.prepare_();this.buildHeader_();for(const hist of this.histograms_){const row=[hist.name,hist.unit.unitString];this.table_.push(row);const stats=hist.statisticsScalars;for(const name of this.statisticsNames_){row.push(stats.has(name)?stats.get(name).value:'');}
const iteration=tr.v.d.TelemetryInfo.getFromHistogram(hist);for(const name of this.iterationInfoNames_){if(iteration===undefined||iteration[name]===undefined){row.push('');}else{row.push(iteration[name]);}}
for(const key of this.storyGroupingKeys_){if(iteration===undefined||iteration.storyGroupingKeys.get(key)===undefined){row.push('');}else{row.push(iteration.storyGroupingKeys.get(key));}}}}
prepare_(){for(const hist of this.histograms_){for(const name of hist.statisticsNames){this.statisticsNames_.add(name);}
const iteration=tr.v.d.TelemetryInfo.getFromHistogram(hist);if(iteration===undefined)continue;for(const name of CSV_ITERATION_INFO_NAMES){if(iteration[name]){this.iterationInfoNames_.add(name);}}
for(const[key,value]of iteration.storyGroupingKeys){this.storyGroupingKeys_.add(key);}}}
buildHeader_(){const header=['name','unit'];for(const name of this.statisticsNames_){header.push(name);}
for(const name of this.iterationInfoNames_){header.push(name);}
for(const key of this.storyGroupingKeys_){header.push(key);}
this.table_.push(header);}
toString(){let str='';for(const row of this.table_){for(let i=0;i<row.length;++i){if(i>0){str+=',';}
let cell=''+row[i];if(cell.indexOf(',')>=0||cell.indexOf('"')>=0){cell='"'+cell.replace(/"/g,'""')+'"';}
str+=cell;}
str+='\n';}
return str;}}
return{CSVBuilder,};});'use strict';tr.exportTo('tr.v',function(){const getDisplayLabel=tr.v.HistogramSet.GROUPINGS.DISPLAY_LABEL.callback;const DEFAULT_POSSIBLE_GROUPS=[];DEFAULT_POSSIBLE_GROUPS.push(new tr.v.HistogramGrouping(tr.v.HistogramSet.GROUPINGS.HISTOGRAM_NAME.key,h=>h.shortName||h.name));for(const group of Object.values(tr.v.HistogramSet.GROUPINGS)){if(group!==tr.v.HistogramSet.GROUPINGS.DISPLAY_LABEL&&group!==tr.v.HistogramSet.GROUPINGS.HISTOGRAM_NAME){DEFAULT_POSSIBLE_GROUPS.push(group);}}
class HistogramParameterCollector{constructor(){this.statisticNames_=new Set(['avg']);this.labelsToStartTimes_=new Map();this.keysToGroupings_=new Map(DEFAULT_POSSIBLE_GROUPS.map(g=>[g.key,g]));this.keysToValues_=new Map(DEFAULT_POSSIBLE_GROUPS.map(g=>[g.key,new Set()]));this.keysToValues_.delete(tr.v.HistogramSet.GROUPINGS.HISTOGRAM_NAME.key);}
process(histograms){for(const hist of histograms){for(const statName of hist.statisticsNames){this.statisticNames_.add(statName);}
const telemetry=tr.v.d.TelemetryInfo.getFromHistogram(hist);let startTime=0;if(telemetry&&telemetry.benchmarkStart){startTime=telemetry.benchmarkStart.getTime();}
const displayLabel=getDisplayLabel(hist);if(this.labelsToStartTimes_.has(displayLabel)){startTime=Math.min(startTime,this.labelsToStartTimes_.get(displayLabel));}
this.labelsToStartTimes_.set(displayLabel,startTime);if(!telemetry)continue;for(const[groupingKey,values]of this.keysToValues_){const grouping=this.keysToGroupings_.get(groupingKey);const value=grouping.callback(hist);if(!value)continue;values.add(value);if(values.size>1){this.keysToValues_.delete(groupingKey);}}
for(const[key,value]of telemetry.storyGroupingKeys){const groupingKey='storyGroupingKey_'+key;if(this.keysToGroupings_.has(groupingKey))continue;this.keysToGroupings_.set(groupingKey,new tr.v.HistogramGrouping(groupingKey,tr.v.d.TelemetryInfo.makeStoryGroupingKeyLabelGetter(key)));this.keysToValues_.set(groupingKey,new Set([value]));}}}
get statisticNames(){return Array.from(this.statisticNames_);}
get labels(){const displayLabels=Array.from(this.labelsToStartTimes_.keys());displayLabels.sort((x,y)=>this.labelsToStartTimes_.get(x)-this.labelsToStartTimes_.get(y));return displayLabels;}
get possibleGroupings(){for(const[key,values]of this.keysToValues_){if(values.size>=2)continue;this.keysToGroupings_.delete(key);}
return Array.from(this.keysToGroupings_.values());}}
return{HistogramParameterCollector,};});'use strict';tr.exportTo('tr.v.ui',function(){Polymer({is:'tr-v-ui-histogram-set-controls',properties:{searchQuery:{type:String,value:'',observer:'onUserChange_',},showAll:{type:Boolean,value:false,observer:'onUserChange_',},referenceDisplayLabel:{type:String,value:'',observer:'onUserChange_',},displayStatisticName:{type:String,value:'',observer:'onUserChange_',},},created(){this.viewState_=undefined;this.rowListener_=this.onRowViewStateUpdate_.bind(this);this.baseStatisticNames_=[];this.isInOnViewStateUpdate_=false;},ready(){this.$.picker.addEventListener('current-groups-changed',this.onGroupsChanged_.bind(this));},get viewState(){return this.viewState_;},set viewState(vs){if(this.viewState_){throw new Error('viewState must be set exactly once.');}
this.viewState_=vs;this.viewState.addUpdateListener(this.onViewStateUpdate_.bind(this));},async onUserChange_(){if(!this.viewState)return;if(this.isInOnViewStateUpdate_)return;const marks=[];if(this.searchQuery!==this.viewState.searchQuery){marks.push(tr.b.Timing.mark('histogram-set-controls','search'));}
if(this.showAll!==this.viewState.showAll){marks.push(tr.b.Timing.mark('histogram-set-controls','showAll'));}
if(this.referenceDisplayLabel!==this.viewState.referenceDisplayLabel){marks.push(tr.b.Timing.mark('histogram-set-controls','referenceColumn'));}
if(this.displayStatisticName!==this.viewState.displayStatisticName){marks.push(tr.b.Timing.mark('histogram-set-controls','statistic'));}
let displayStatisticName=this.displayStatisticName;if(this.viewState.referenceDisplayLabel===''&&this.referenceDisplayLabel!==''&&this.baseStatisticNames.length){displayStatisticName=`${tr.v.DELTA}${this.displayStatisticName}`;}
if(this.referenceDisplayLabel===''&&this.viewState.referenceDisplayLabel!==''&&this.baseStatisticNames.length){const deltaIndex=displayStatisticName.indexOf(tr.v.DELTA);if(deltaIndex>=0){displayStatisticName=displayStatisticName.slice(deltaIndex+1);}else if(!this.baseStatisticNames.includes(displayStatisticName)){displayStatisticName='avg';}}
await this.viewState.update({searchQuery:this.searchQuery,showAll:this.showAll,referenceDisplayLabel:this.referenceDisplayLabel,displayStatisticName,});if(this.referenceDisplayLabel&&this.statisticNames.length===this.baseStatisticNames.length){this.statisticNames=this.baseStatisticNames.concat(tr.v.Histogram.getDeltaStatisticsNames(this.baseStatisticNames));}else if(!this.referenceDisplayLabel&&this.statisticNames.length>this.baseStatisticNames.length){this.statisticNames=this.baseStatisticNames;}
for(const mark of marks)mark.end();},onViewStateUpdate_(event){this.isInOnViewStateUpdate_=true;if(event.delta.searchQuery){this.searchQuery=this.viewState.searchQuery;}
if(event.delta.showAll)this.showAll=this.viewState.showAll;if(event.delta.displayStatisticName){this.displayStatisticName=this.viewState.displayStatisticName;}
if(event.delta.referenceDisplayLabel){this.referenceDisplayLabel=this.viewState.referenceDisplayLabel;}
if(event.delta.groupings){this.$.picker.currentGroupKeys=this.viewState.groupings.map(g=>g.key);}
if(event.delta.tableRowStates){for(const row of tr.v.ui.HistogramSetTableRowState.walkAll(this.viewState.tableRowStates.values())){row.addUpdateListener(this.rowListener_);}
const anyShowing=this.anyOverviewCharts_;this.$.hide_overview.style.display=anyShowing?'inline':'none';this.$.show_overview.style.display=anyShowing?'none':'inline';}
this.isInOnViewStateUpdate_=false;this.onUserChange_();},onRowViewStateUpdate_(event){if(event.delta.isOverviewed){const anyShowing=event.delta.isOverviewed.current||this.anyOverviewCharts_;this.$.hide_overview.style.display=anyShowing?'inline':'none';this.$.show_overview.style.display=anyShowing?'none':'inline';}
if(event.delta.subRows){for(const subRow of event.delta.subRows.previous){subRow.removeUpdateListener(this.rowListener_);}
for(const subRow of event.delta.subRows.current){subRow.addUpdateListener(this.rowListener_);}}},onGroupsChanged_(){if(this.$.picker.currentGroups.length===0&&this.$.picker.possibleGroups.length>0){this.$.picker.currentGroupKeys=[this.$.picker.possibleGroups[0].key];}
this.viewState.groupings=this.$.picker.currentGroups;},set showAllEnabled(enable){if(!enable)this.$.show_all.checked=true;this.$.show_all.disabled=!enable;},set possibleGroupings(groupings){this.$.picker.possibleGroups=groupings;this.$.picker.style.display=(groupings.length<2)?'none':'block';this.onGroupsChanged_();},set displayLabels(labels){this.$.reference_display_label.style.display=(labels.length<2)?'none':'inline';while(this.$.reference_display_label.children.length>1){this.$.reference_display_label.removeChild(this.$.reference_display_label.lastChild);}
for(const displayLabel of labels){const option=document.createElement('option');option.textContent=displayLabel;this.$.reference_display_label.appendChild(option);}
if(labels.includes(this.viewState.referenceDisplayLabel)){this.referenceDisplayLabel=this.viewState.referenceDisplayLabel;}else{this.viewState.referenceDisplayLabel='';}},get baseStatisticNames(){return this.baseStatisticNames_;},set baseStatisticNames(names){this.baseStatisticNames_=names;this.statisticNames=names;},get statisticNames(){return Array.from(this.$.statistic.options).map(o=>o.value);},set statisticNames(names){this.$.statistic.style.display=(names.length<2)?'none':'inline';while(this.$.statistic.children.length){this.$.statistic.removeChild(this.$.statistic.lastChild);}
for(const name of names){const option=document.createElement('option');option.textContent=name;this.$.statistic.appendChild(option);}
if(names.includes(this.viewState.displayStatisticName)){this.displayStatisticName=this.viewState.displayStatisticName;this.$.statistic.value=this.displayStatisticName;}else{this.viewState.displayStatisticName=names[0]||'';}},get anyOverviewCharts_(){for(const row of tr.v.ui.HistogramSetTableRowState.walkAll(this.viewState.tableRowStates.values())){if(row.isOverviewed)return true;}
return false;},async toggleOverviewLineCharts_(){const showOverviews=!this.anyOverviewCharts_;const mark=tr.b.Timing.mark('histogram-set-controls',(showOverviews?'show':'hide')+'OverviewCharts');for(const row of tr.v.ui.HistogramSetTableRowState.walkAll(this.viewState.tableRowStates.values())){await row.update({isOverviewed:showOverviews});}
this.$.hide_overview.style.display=showOverviews?'inline':'none';this.$.show_overview.style.display=showOverviews?'none':'inline';await tr.b.animationFrame();mark.end();},set helpHref(href){this.$.help.href=href;this.$.help.style.display='inline';},set feedbackHref(href){this.$.feedback.href=href;this.$.feedback.style.display='inline';},downloadCSV_(event){this.dispatchEvent(new tr.b.Event('download-csv'));}});return{};});'use strict';tr.exportTo('tr.v',function(){class HistogramSetHierarchy{constructor(name){this.name=name;this.description='';this.depth=0;this.subRows=[];this.columns=new Map();this.overviewDataRange_=undefined;this.mergeRelationshipsForColumn_=new Map();}*walk(){yield this;for(const row of this.subRows)yield*row.walk();}
static*walkAll(rootRows){for(const rootRow of rootRows)yield*rootRow.walk();}
static build(histogramArrayMap){const rootRows=[];HistogramSetHierarchy.buildInternal_(histogramArrayMap,[],rootRows);const histograms=new tr.v.HistogramSet();for(const row of HistogramSetHierarchy.walkAll(rootRows)){for(const hist of row.columns.values()){if(!(hist instanceof tr.v.Histogram))continue;histograms.addHistogram(hist);}}
histograms.deduplicateDiagnostics();for(const row of HistogramSetHierarchy.walkAll(rootRows)){for(const[name,hist]of row.columns){if(!(hist instanceof tr.v.Histogram))continue;if(!row.mergeRelationshipsForColumn_.get(name))continue;hist.diagnostics.mergeRelationships(hist);}}
for(const row of HistogramSetHierarchy.walkAll(rootRows)){if(row.subRows.length)continue;for(const hist of row.columns.values()){if(!(hist instanceof tr.v.Histogram))continue;const mergedFrom=hist.diagnostics.get(tr.v.MERGED_FROM_DIAGNOSTIC_KEY);if(mergedFrom!==undefined){for(const other of mergedFrom){other.diagnostics.delete(tr.v.MERGED_TO_DIAGNOSTIC_KEY);}}}}
for(const row of HistogramSetHierarchy.walkAll(rootRows)){row.maybeRebin_();}
return rootRows;}
maybeRebin_(){const dataRange=new tr.b.math.Range();for(const hist of this.columns.values()){if(!(hist instanceof tr.v.Histogram))continue;if(hist.allBins.length>1)return;if(hist.numValues===0)continue;dataRange.addValue(hist.min);dataRange.addValue(hist.max);}
dataRange.addValue(tr.b.math.lesserWholeNumber(dataRange.min));dataRange.addValue(tr.b.math.greaterWholeNumber(dataRange.max));if(dataRange.min===dataRange.max)return;const boundaries=tr.v.HistogramBinBoundaries.createLinear(dataRange.min,dataRange.max,tr.v.DEFAULT_REBINNED_COUNT);for(const[name,hist]of this.columns){if(!(hist instanceof tr.v.Histogram))continue;this.columns.set(name,hist.rebin(boundaries));}}
static mergeHistogramDownHierarchy_(histogram,hierarchy,columnName){let groupingPath=undefined;for(const row of hierarchy){if(groupingPath!==undefined){groupingPath.push(row.name);}else if(row.name===histogram.name){groupingPath=[];}
if(!row.description){row.description=histogram.description;}
const existing=row.columns.get(columnName);if(existing===undefined){const clone=histogram.clone();if(groupingPath!==undefined){new tr.v.d.GroupingPath(groupingPath).addToHistogram(clone);}
row.columns.set(columnName,clone);row.mergeRelationshipsForColumn_.set(columnName,true);continue;}
if(existing instanceof tr.v.HistogramSet){existing.addHistogram(histogram);continue;}
if(!existing.canAddHistogram(histogram)){const unmergeableHistograms=new tr.v.HistogramSet([histogram]);const mergedFrom=existing.diagnostics.get(tr.v.d.MERGED_FROM_DIAGNOSTIC_KEY);if(mergedFrom!==undefined){for(const origHist of mergedFrom){unmergeableHistograms.addHistogram(origHist);}}
row.columns.set(columnName,unmergeableHistograms);continue;}
if(existing.name!==histogram.name){row.mergeRelationshipsForColumn_.set(name,false);}
existing.addHistogram(histogram);}}
static buildInternal_(histogramArrayMap,hierarchy,rootRows){for(const[name,histograms]of histogramArrayMap){if(histograms instanceof Array){for(const histogram of histograms){HistogramSetHierarchy.mergeHistogramDownHierarchy_(histogram,hierarchy,name);}}else if(histograms instanceof Map){const row=new HistogramSetHierarchy(name);row.depth=hierarchy.length;hierarchy.push(row);HistogramSetHierarchy.buildInternal_(histograms,hierarchy,rootRows);hierarchy.pop();if(hierarchy.length===0){rootRows.push(row);}else{const parentRow=hierarchy[hierarchy.length-1];parentRow.subRows.push(row);}}}}
static filter(rows,histograms){const results=[];for(const row of rows){let filteredSubRows=[];if(row.subRows.length>0){filteredSubRows=HistogramSetHierarchy.filter(row.subRows,histograms);if(filteredSubRows.length===0)continue;}else{let found=false;for(const testHist of row.columns.values()){if(testHist instanceof tr.v.HistogramSet){for(const origHist of testHist){if(histograms.lookupHistogram(origHist.guid)!==undefined){found=true;break;}}
if(found)break;continue;}
if(!(testHist instanceof tr.v.Histogram)){throw new Error('Cells can only contain Histogram or HistogramSet');}
if(histograms.lookupHistogram(testHist.guid)!==undefined){found=true;break;}
const mergedFrom=testHist.diagnostics.get(tr.v.d.MERGED_FROM_DIAGNOSTIC_KEY);if(mergedFrom!==undefined){for(const origHist of mergedFrom){if(histograms.lookupHistogram(origHist.guid)!==undefined){found=true;break;}}}
if(found)break;}
if(!found)continue;}
const clone=new HistogramSetHierarchy(row.name);clone.description=row.description;clone.depth=row.depth;clone.subRows=filteredSubRows;clone.columns=row.columns;clone.overviewDataRange_=row.overviewDataRange_;results.push(clone);}
return results;}
get overviewDataRange(){if(this.overviewDataRange_===undefined){this.overviewDataRange_=new tr.b.math.Range();for(const[displayLabel,hist]of this.columns){if(hist instanceof tr.v.Histogram&&hist.average!==undefined){this.overviewDataRange_.addValue(hist.average);}
for(const subRow of this.subRows){const subHist=subRow.columns.get(displayLabel);if(!(subHist instanceof tr.v.Histogram))continue;if(subHist.average===undefined)continue;this.overviewDataRange_.addValue(subHist.average);}}}
return this.overviewDataRange_;}}
return{HistogramSetHierarchy,};});'use strict';tr.exportTo('tr.v.ui',function(){Polymer({is:'tr-v-ui-histogram-set-table-cell',created(){this.viewState_=undefined;this.rootListener_=this.onRootStateUpdate_.bind(this);this.row_=undefined;this.displayLabel_='';this.histogram_=undefined;this.histogramSpan_=undefined;this.overviewChart_=undefined;},ready(){this.addEventListener('click',this.onClick_.bind(this));},attached(){if(this.row){this.row.rootViewState.addUpdateListener(this.rootListener_);}},detached(){this.row.rootViewState.removeUpdateListener(this.rootListener_);},build(row,displayLabel,viewState){this.row_=row;this.displayLabel_=displayLabel;this.viewState_=viewState;this.histogram_=this.row.columns.get(displayLabel);if(this.viewState){this.viewState.addUpdateListener(this.onViewStateUpdate_.bind(this));}
this.row.viewState.addUpdateListener(this.onRowStateUpdate_.bind(this));if(this.isAttached){this.row.rootViewState.addUpdateListener(this.rootListener_);}
this.updateContents_();},get viewState(){return this.viewState_;},get row(){return this.row_;},get histogram(){return this.histogram_;},get referenceHistogram(){const referenceDisplayLabel=this.row.rootViewState.referenceDisplayLabel;if(!referenceDisplayLabel)return undefined;if(referenceDisplayLabel===this.displayLabel_)return undefined;return this.row.columns.get(referenceDisplayLabel);},get isHistogramOpen(){return(this.histogramSpan_!==undefined)&&(this.$.histogram.style.display==='block');},get brushedBinRange(){if(!this.isHistogramOpen)return new tr.b.math.Range();return this.histogramSpan_.brushedBinRange;},set brushedBinRange(r){if(this.histogramSpan_===undefined)return;this.histogramSpan_.brushedBinRange=r;},get mergeSampleDiagnostics(){if(!this.isHistogramOpen)return false;return this.histogramSpan_.mergeSampleDiagnostics;},set mergeSampleDiagnostics(m){if(this.histogramSpan_===undefined)return;this.histogramSpan_.mergeSampleDiagnostics=m;},set isHistogramOpen(open){if(!(this.histogram instanceof tr.v.Histogram)||(this.histogram.numValues===0)){return;}
this.$.scalar.style.display=open?'none':'flex';this.$.open_histogram.style.display=open?'none':'block';this.$.close_histogram.style.display=open?'block':'none';this.$.histogram.style.display=open?'block':'none';if(open&&this.histogramSpan_===undefined){this.histogramSpan_=document.createElement('tr-v-ui-histogram-span');this.$.histogram.appendChild(this.histogramSpan_);this.histogramSpan_.viewState=this.viewState;this.histogramSpan_.referenceHistogram=this.referenceHistogram;this.histogramSpan_.histogram=this.histogram;}
this.viewState.isOpen=open;},onViewStateUpdate_(event){if(event.delta.isOpen){this.isHistogramOpen=this.viewState.isOpen;}},onRowStateUpdate_(event){if(event.delta.isOverviewed===undefined)return;if(this.row.viewState.isOverviewed){this.showOverview();}else{this.hideOverview();}},onRootStateUpdate_(event){if(event.delta.displayStatisticName||event.delta.referenceDisplayLabel){this.updateContents_();}},onClick_(event){event.stopPropagation();},openHistogram_(){this.isHistogramOpen=true;tr.b.Timing.instant('histogram-set-table-cell','open');},closeHistogram_(){this.isHistogramOpen=false;tr.b.Timing.instant('histogram-set-table-cell','close');},updateContents_(){const isOpen=this.isHistogramOpen;this.$.empty.style.display='none';this.$.unmergeable.style.display='none';this.$.scalar.style.display='none';this.$.histogram.style.display='none';this.$.close_histogram.style.display='none';this.$.open_histogram.style.visibility='hidden';if(!this.histogram){this.$.missing.style.display='block';return;}
this.$.missing.style.display='none';if(this.histogram instanceof tr.v.HistogramSet){this.$.unmergeable.style.display='block';return;}
if(!(this.histogram instanceof tr.v.Histogram)){throw new Error('Invalid Histogram: '+this.histogram);}
if(this.histogram.numValues===0){this.$.empty.style.display='block';return;}
this.$.open_histogram.style.display='block';this.$.open_histogram.style.visibility='visible';this.$.scalar.style.display='flex';const referenceHistogram=this.referenceHistogram;if(this.histogramSpan_){this.histogramSpan_.referenceHistogram=referenceHistogram;}
if((referenceHistogram instanceof tr.v.Histogram)&&(this.histogram.unit===referenceHistogram.unit)&&(referenceHistogram.numValues>0)){this.$.scalar.significance=this.histogram.getDifferenceSignificance(referenceHistogram);}
const statName=this.histogram.getAvailableStatisticName(this.row.rootViewState.displayStatisticName,referenceHistogram);const statisticScalar=this.histogram.getStatisticScalar(statName,referenceHistogram);this.$.scalar.setValueAndUnit(statisticScalar.value,statisticScalar.unit);this.isHistogramOpen=isOpen;},showOverview(){this.$.overview_container.style.display='block';if(this.overviewChart_!==undefined)return;const data=[];let unitString;for(const subRow of this.row.subRows){const subHist=subRow.columns.get(this.displayLabel_);if(!(subHist instanceof tr.v.Histogram))continue;data.push({x:subRow.name,y:subHist.average});unitString=subHist.unit.unitString;}
if(data.length<2)return;this.overviewChart_=new tr.ui.b.NameLineChart();this.$.overview_container.appendChild(this.overviewChart_);this.overviewChart_.hideLegend=true;this.overviewChart_.yAxisLabel=unitString;this.overviewChart_.overrideDataRange=this.row.overviewDataRange;this.overviewChart_.data=data;},hideOverview(){this.$.overview_container.style.display='none';}});return{};});'use strict';tr.exportTo('tr.v.ui',function(){const NAME_COLUMN_WIDTH_PX=300;Polymer({is:'tr-v-ui-histogram-set-table-name-cell',created(){this.row_=undefined;this.overviewChart_=undefined;this.cellListener_=this.onCellStateUpdate_.bind(this);this.rootListener_=this.onRootStateUpdate_.bind(this);},attached(){if(this.row){this.row.rootViewState.addUpdateListener(this.rootListener_);}},detached(){this.row.rootViewState.removeUpdateListener(this.rootListener_);},get row(){return this.row_;},build(row){if(this.row_!==undefined){throw new Error('row must be set exactly once.');}
this.row_=row;this.row.viewState.addUpdateListener(this.onRowStateUpdate_.bind(this));this.constrainWidth=this.row.rootViewState.constrainNameColumn;if(this.isAttached){this.row.rootViewState.addUpdateListener(this.rootListener_);}
for(const cellState of this.row.viewState.cells.values()){cellState.addUpdateListener(this.cellListener_);}
Polymer.dom(this.$.name).textContent=this.row.name;this.title=this.row.name;if(this.row.description){this.title+='\n'+this.row.description;}
if(this.row.overviewDataRange.isEmpty||this.row.overviewDataRange.min===this.row.overviewDataRange.max){this.$.show_overview.style.display='none';}
let histogramCount=0;for(const cell of this.row.columns.values()){if(cell instanceof tr.v.Histogram&&cell.numValues>0){++histogramCount;}}
if(histogramCount<=1){this.$.open_histograms.style.display='none';}},set constrainWidth(constrain){this.$.name.style.maxWidth=constrain?(this.nameWidthPx+'px'):'none';},get nameWidthPx(){return NAME_COLUMN_WIDTH_PX-(16*this.row.depth);},get isOverflowing(){return this.$.name.style.maxWidth!=='none'&&this.$.name.getBoundingClientRect().width===this.nameWidthPx;},get isOverviewed(){return this.$.overview_container.style.display==='block';},set isOverviewed(isOverviewed){if(isOverviewed===this.isOverviewed)return;if(isOverviewed){this.showOverview_();}else{this.hideOverview_();}},hideOverview_(opt_event){this.$.overview_container.style.display='none';this.$.hide_overview.style.display='none';this.$.show_overview.style.display='block';if(opt_event!==undefined){opt_event.stopPropagation();tr.b.Timing.instant('histogram-set-table-name-cell','hideOverview');this.row.viewState.isOverviewed=this.isOverviewed;}},showOverview_(opt_event){this.$.overview_container.style.display='block';if(this.overviewChart_===undefined){const data=[];let unitString=undefined;for(const[displayLabel,hist]of this.row.columns){data.push({x:displayLabel,y:hist.average});unitString=hist.unit.unitString;}
if(data.length<2){return;}
this.overviewChart_=new tr.ui.b.NameLineChart();this.$.overview_container.appendChild(this.overviewChart_);this.overviewChart_.hideLegend=true;this.overviewChart_.yAxisLabel=unitString;this.overviewChart_.overrideDataRange=this.row.overviewDataRange;this.overviewChart_.data=data;}
this.$.hide_overview.style.display='block';this.$.show_overview.style.display='none';if(opt_event!==undefined){opt_event.stopPropagation();tr.b.Timing.instant('histogram-set-table-name-cell','showOverview');this.row.viewState.isOverviewed=this.isOverviewed;}},openHistograms_(event){event.stopPropagation();tr.b.Timing.instant('histogram-set-table-name-cell','openHistograms');for(const cell of this.row.cells.values()){cell.isHistogramOpen=true;}
this.$.close_histograms.style.display='block';this.$.open_histograms.style.display='none';},closeHistograms_(event){event.stopPropagation();tr.b.Timing.instant('histogram-set-table-name-cell','closeHistograms');for(const cell of this.row.cells.values()){cell.isHistogramOpen=false;}
this.$.open_histograms.style.display='block';this.$.close_histograms.style.display='none';},onRootStateUpdate_(event){if(event.delta.constrainNameColumn){this.constrainWidth=this.row.rootViewState.constrainNameColumn;}},onRowStateUpdate_(event){if(event.delta.isOverviewed){this.isOverviewed=this.row.viewState.isOverviewed;}},onCellStateUpdate_(event){if(!event.delta.isOpen)return;let cellCount=0;let openCellCount=0;for(const cell of this.row.cells.values()){if(!(cell.histogram instanceof tr.v.Histogram)||(cell.histogram.numValues===0)){continue;}
++cellCount;if(cell.isHistogramOpen)++openCellCount;}
if(cellCount<=1)return;const mostlyOpen=openCellCount>(cellCount/2);this.$.open_histograms.style.display=mostlyOpen?'none':'block';this.$.close_histograms.style.display=mostlyOpen?'block':'none';}});return{NAME_COLUMN_WIDTH_PX,};});'use strict';tr.exportTo('tr.v.ui',function(){class HistogramSetTableRow{constructor(hierarchy,baseTable,rootViewState){this.hierarchy_=hierarchy;this.baseTable_=baseTable;this.rootViewState_=rootViewState;this.viewState_=new tr.v.ui.HistogramSetTableRowState();this.viewState_.addUpdateListener(this.onViewStateUpdate_.bind(this));this.nameCell_=undefined;this.cells_=new Map();this.subRows_=[];for(const subHierarchy of hierarchy.subRows){const subRow=new HistogramSetTableRow(subHierarchy,baseTable,rootViewState);this.subRows_.push(subRow);this.viewState.subRows.set(subRow.name,subRow.viewState);}
for(const columnName of this.columns.keys()){this.viewState.cells.set(columnName,new tr.v.ui.HistogramSetTableCellState());}}
get name(){return this.hierarchy_.name;}
get depth(){return this.hierarchy_.depth;}
get description(){return this.hierarchy_.description;}
get columns(){return this.hierarchy_.columns;}
get overviewDataRange(){return this.hierarchy_.overviewDataRange;}
get rootViewState(){return this.rootViewState_;}
get cells(){return this.cells_;}
get subRows(){return this.subRows_;}
get viewState(){return this.viewState_;}*walk(){yield this;for(const row of this.subRows)yield*row.walk();}
static*walkAll(rootRows){for(const rootRow of rootRows)yield*rootRow.walk();}
get nameCell(){if(this.nameCell_===undefined){this.nameCell_=document.createElement('tr-v-ui-histogram-set-table-name-cell');this.nameCell_.build(this);}
return this.nameCell_;}
getCell(columnName){if(this.cells.has(columnName))return this.cells.get(columnName);const cell=document.createElement('tr-v-ui-histogram-set-table-cell');cell.build(this,columnName,this.viewState.cells.get(columnName));this.cells.set(columnName,cell);return cell;}
compareNames(other){return this.name.localeCompare(other.name);}
compareCells(other,displayLabel,referenceDisplayLabel){const cellA=this.columns.get(displayLabel);const cellB=other.columns.get(displayLabel);if(!(cellA instanceof tr.v.Histogram)||!(cellB instanceof tr.v.Histogram)){return undefined;}
let referenceCellA;let referenceCellB;if(referenceDisplayLabel&&referenceDisplayLabel!==displayLabel){referenceCellA=this.columns.get(referenceDisplayLabel);referenceCellB=other.columns.get(referenceDisplayLabel);}
const statisticA=cellA.getAvailableStatisticName(this.rootViewState.displayStatisticName,referenceCellA);const statisticB=cellB.getAvailableStatisticName(this.rootViewState.displayStatisticName,referenceCellB);const valueA=cellA.getStatisticScalar(statisticA,referenceCellA).value;const valueB=cellB.getStatisticScalar(statisticB,referenceCellB).value;return valueA-valueB;}
onViewStateUpdate_(event){if(event.delta.isExpanded){this.baseTable_.setExpandedForTableRow(this,this.viewState.isExpanded);}
if(event.delta.subRows){throw new Error('HistogramSetTableRow.subRows must not be reassigned.');}
if(event.delta.cells){for(const[displayLabel,cell]of this.cells){if(cell.viewState!==this.viewState.cells.get(displayLabel)){throw new Error('Only HistogramSetTableRow may update cells');}}}}
async restoreState(vs){await this.viewState.update({isExpanded:vs.isExpanded,isOverviewed:vs.isOverviewed,});for(const[displayLabel,cell]of this.cells){const previousState=vs.cells.get(displayLabel);if(!previousState)continue;await cell.viewState.updateFromViewState(previousState);}
for(const row of this.subRows){const previousState=vs.subRows.get(row.name);if(!previousState)continue;await row.restoreState(previousState);}}}
return{HistogramSetTableRow,};});'use strict';tr.exportTo('tr.v.ui',function(){const MIDLINE_HORIZONTAL_ELLIPSIS=String.fromCharCode(0x22ef);function escapeRegExp(str){return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,'\\$&');}
Polymer({is:'tr-v-ui-histogram-set-table',created(){this.viewState_=undefined;this.progress_=()=>Promise.resolve();this.nameColumnTitle_=undefined;this.displayLabels_=[];this.histograms_=undefined;this.sourceHistograms_=undefined;this.groupedHistograms_=undefined;this.hierarchies_=undefined;this.tableRows_=undefined;},ready(){this.$.table.zebra=true;this.addEventListener('sort-column-changed',this.onSortColumnChanged_.bind(this));this.addEventListener('requestSelectionChange',this.onRequestSelectionChange_.bind(this));this.addEventListener('row-expanded-changed',this.onRowExpandedChanged_.bind(this));},get viewState(){return this.viewState_;},set viewState(vs){if(this.viewState_){throw new Error('viewState must be set exactly once.');}
this.viewState_=vs;this.viewState.addUpdateListener(this.onViewStateUpdate_.bind(this));},get histograms(){return this.histograms_;},async build(histograms,sourceHistograms,displayLabels,opt_progress){this.histograms_=histograms;this.sourceHistograms_=sourceHistograms;this.groupedHistograms_=undefined;this.displayLabels_=displayLabels;if(opt_progress!==undefined)this.progress_=opt_progress;if(histograms.length===0){throw new Error('histogram-set-table requires non-empty HistogramSet.');}
await this.progress_('Building columns...');this.$.table.tableColumns=[{title:this.buildNameColumnTitle_(),value:row=>row.nameCell,cmp:(a,b)=>a.compareNames(b),}].concat(displayLabels.map(l=>this.buildColumn_(l)));tr.b.Timing.instant('histogram-set-table','columnCount',this.$.table.tableColumns.length);await this.updateContents_();this.fire('display-ready');this.progress_=()=>Promise.resolve();this.checkNameColumnOverflow_(tr.v.ui.HistogramSetTableRow.walkAll(this.$.table.tableRows));},buildNameColumnTitle_(){this.nameColumnTitle_=document.createElement('span');this.nameColumnTitle_.style.display='inline-flex';const nameEl=document.createElement('span');nameEl.textContent='Name';this.nameColumnTitle_.appendChild(nameEl);const toggleWidthEl=document.createElement('span');toggleWidthEl.style.fontWeight='bold';toggleWidthEl.style.background='#bbb';toggleWidthEl.style.color='#333';toggleWidthEl.style.padding='0px 3px';toggleWidthEl.style.marginRight='8px';toggleWidthEl.style.display='none';toggleWidthEl.textContent=MIDLINE_HORIZONTAL_ELLIPSIS;toggleWidthEl.addEventListener('click',this.toggleNameColumnWidth_.bind(this));this.nameColumnTitle_.appendChild(toggleWidthEl);return this.nameColumnTitle_;},toggleNameColumnWidth_(opt_event){this.viewState.update({constrainNameColumn:!this.viewState.constrainNameColumn,});if(opt_event!==undefined){opt_event.stopPropagation();opt_event.preventDefault();tr.b.Timing.instant('histogram-set-table','nameColumn'+
(this.viewState.constrainNameColumn?'Constrained':'Unconstrained'));}},buildColumn_(displayLabel){const title=document.createElement('span');title.textContent=displayLabel;title.style.whiteSpace='pre';return{title,value:row=>row.getCell(displayLabel),cmp:(rowA,rowB)=>rowA.compareCells(rowB,displayLabel),};},async updateContents_(){if(this.groupedHistograms_===undefined){await this.progress_('Grouping Histograms...');this.groupHistograms_();}
if(this.hierarchies_===undefined){await this.progress_('Merging Histograms...');this.hierarchies_=tr.v.HistogramSetHierarchy.build(this.groupedHistograms_);this.tableRows_=undefined;}
const tableRowsDirty=this.tableRows_===undefined;const previousRowStates=this.viewState.tableRowStates;if(tableRowsDirty){await this.progress_('Filtering rows...');let filteredHistograms=this.viewState.showAll?this.histograms:this.sourceHistograms_;if(this.viewState.searchQuery){let query=undefined;try{query=new RegExp(this.viewState.searchQuery);}catch(e){}
if(query!==undefined){filteredHistograms=new tr.v.HistogramSet([...filteredHistograms].filter(hist=>hist.name.match(query)));}}
const filteredHierarchies=tr.v.HistogramSetHierarchy.filter(this.hierarchies_,filteredHistograms);this.tableRows_=filteredHierarchies.map(hierarchy=>new tr.v.ui.HistogramSetTableRow(hierarchy,this.$.table,this.viewState));tr.b.Timing.instant('histogram-set-table','rootRowCount',this.tableRows_.length);const namesToRowStates=new Map();for(const row of this.tableRows_){namesToRowStates.set(row.name,row.viewState);}
await this.viewState.update({tableRowStates:namesToRowStates});}
await this.progress_('Configuring table...');this.nameColumnTitle_.children[1].style.filter=this.viewState.constrainNameColumn?'invert(100%)':'';const referenceDisplayLabelIndex=this.displayLabels_.indexOf(this.viewState.referenceDisplayLabel);this.$.table.selectedTableColumnIndex=(referenceDisplayLabelIndex<0)?undefined:(1+referenceDisplayLabelIndex);this.$.table.sortColumnIndex=this.viewState.sortColumnIndex;this.$.table.sortDescending=this.viewState.sortDescending;if(tableRowsDirty){await this.progress_('Building DOM...');this.$.table.tableRows=this.tableRows_;for(const row of this.tableRows_){const previousState=previousRowStates.get(row.name);if(!previousState)continue;await row.restoreState(previousState);}}
this.$.table.rebuild();},async onRowExpandedChanged_(event){event.row.viewState.isExpanded=this.$.table.getExpandedForTableRow(event.row);tr.b.Timing.instant('histogram-set-table','row'+(event.row.viewState.isExpanded?'Expanded':'Collapsed'));if(this.nameColumnTitle_.children[1].style.display==='block')return;await tr.b.animationFrame();this.checkNameColumnOverflow_(event.row.subRows);},checkNameColumnOverflow_(rows){for(const row of rows){if(!row.nameCell.isOverflowing)continue;const[nameSpan,dots]=this.nameColumnTitle_.children;dots.style.display='block';const labelWidthPx=tr.v.ui.NAME_COLUMN_WIDTH_PX-
dots.getBoundingClientRect().width;nameSpan.style.width=labelWidthPx+'px';return;}},groupHistograms_(){const groupings=this.viewState.groupings.slice();groupings.push(tr.v.HistogramSet.GROUPINGS.DISPLAY_LABEL);function canSkipGrouping(grouping,groupedHistograms){if(groupedHistograms.size>1)return false;if(grouping.key===groupings[0].key)return false;if(grouping.key===tr.v.HistogramSet.GROUPINGS.DISPLAY_LABEL.key){return false;}
return true;}
this.groupedHistograms_=this.histograms.groupHistogramsRecursively(groupings,canSkipGrouping);this.hierarchies_=undefined;},async onViewStateUpdate_(event){if(this.histograms_===undefined)return;if(event.delta.groupings!==undefined){this.groupedHistograms_=undefined;}
if(event.delta.searchQuery!==undefined||event.delta.showAll!==undefined){this.tableRows_=undefined;}
if(event.delta.displayStatistic!==undefined&&this.$.table.sortColumnIndex>0){this.$.table.sortColumnIndex=undefined;}
if(event.delta.referenceDisplayLabel!==undefined||event.delta.displayStatisticName!==undefined){this.$.table.tableRows=this.$.table.tableRows;}
if(event.delta.tableRowStates){if(this.tableRows_.length!==this.viewState.tableRowStates.size){throw new Error('Only histogram-set-table may update tableRowStates');}
for(const row of this.tableRows_){if(this.viewState.tableRowStates.get(row.name)!==row.viewState){throw new Error('Only histogram-set-table may update tableRowStates');}}}
await this.updateContents_();},onSortColumnChanged_(event){tr.b.Timing.instant('histogram-set-table','sortColumn');this.viewState.update({sortColumnIndex:event.sortColumnIndex,sortDescending:event.sortDescending,});},onRequestSelectionChange_(event){if(event.selection instanceof tr.model.EventSet)return;event.stopPropagation();tr.b.Timing.instant('histogram-set-table','selectHistogramNames');let histogramNames=event.selection;histogramNames.sort();histogramNames=histogramNames.map(escapeRegExp).join('|');this.viewState.update({showAll:true,searchQuery:`^(${histogramNames})$`,});},get leafHistograms(){const histograms=new tr.v.HistogramSet();for(const row of
tr.v.ui.HistogramSetTableRow.walkAll(this.$.table.tableRows)){if(row.subRows.length)continue;for(const hist of this.columns.values()){if(!(hist instanceof tr.v.Histogram))continue;histograms.addHistogram(hist);}}
return histograms;}});return{MIDLINE_HORIZONTAL_ELLIPSIS,};});'use strict';tr.exportTo('tr.v.ui',function(){Polymer({is:'tr-v-ui-histogram-set-view',created(){this.brushingStateController_=new tr.ui.NullBrushingStateController();this.viewState_=new tr.v.ui.HistogramSetViewState();},ready(){this.$.table.viewState=this.viewState;this.$.controls.viewState=this.viewState;this.$.controls.addEventListener('download-csv',this.downloadCSV_.bind(this));},attached(){this.brushingStateController.parentController=tr.c.BrushingStateController.getControllerForElement(this.parentNode);},get brushingStateController(){return this.brushingStateController_;},get viewState(){return this.viewState_;},set helpHref(href){this.$.controls.helpHref=href;},set feedbackHref(href){this.$.controls.feedbackHref=href;},get histograms(){return this.$.table.histograms;},async build(histograms,opt_progress){const progress=opt_progress||(()=>Promise.resolve());if(histograms===undefined||histograms.length===0){this.$.container.style.display='none';this.$.zero.style.display='block';this.style.display='block';return;}
this.$.zero.style.display='none';this.$.container.style.display='block';this.$.container.style.maxHeight=(window.innerHeight-16)+'px';const buildMark=tr.b.Timing.mark('histogram-set-view','build');await progress('Finding important Histograms...');const sourceHistogramsMark=tr.b.Timing.mark('histogram-set-view','sourceHistograms');const sourceHistograms=histograms.sourceHistograms;sourceHistogramsMark.end();this.$.controls.showAllEnabled=(sourceHistograms.length!==histograms.length);await progress('Collecting parameters...');const collectParametersMark=tr.b.Timing.mark('histogram-set-view','collectParameters');const parameterCollector=new tr.v.HistogramParameterCollector();parameterCollector.process(histograms);this.$.controls.baseStatisticNames=parameterCollector.statisticNames;this.$.controls.possibleGroupings=parameterCollector.possibleGroupings;const displayLabels=parameterCollector.labels;this.$.controls.displayLabels=displayLabels;collectParametersMark.end();await this.$.table.build(histograms,sourceHistograms,displayLabels,progress);buildMark.end();},downloadCSV_(){const downloadCSVMark=tr.b.Timing.mark('histogram-set-view','downloadCSV');const anchor=document.createElement('a');const path=window.location.pathname.split('/');const basename=path[path.length-1].split('.')[0]||'histograms';anchor.download=basename+'.csv';const csv=new tr.v.CSVBuilder(this.$.table.leafHistograms);csv.build();const blob=new window.Blob([csv.toString()],{type:'text/csv'});anchor.href=window.URL.createObjectURL(blob);anchor.click();downloadCSVMark.end();}});return{};});'use strict';tr.exportTo('tr.ui',function(){Polymer({is:'tr-ui-sp-metrics-side-panel',behaviors:[tr.ui.behaviors.SidePanel],ready(){this.model_=undefined;this.rangeOfInterest_=undefined;this.metricLatenciesMs_=[];this.metrics_=[];tr.metrics.MetricRegistry.getAllRegisteredTypeInfos().forEach(function(m){if(m.constructor.name==='sampleMetric')return;this.metrics_.push({label:m.constructor.name,value:m.constructor.name});},this);this.settingsKey_='metrics-side-panel-metric-name';this.currentMetricName_='responsivenessMetric';const metricSelector=tr.ui.b.createSelector(this,'currentMetricName_',this.settingsKey_,this.currentMetricName_,this.metrics_);Polymer.dom(this.$.top_left_controls).appendChild(metricSelector);metricSelector.addEventListener('change',this.onMetricChange_.bind(this));this.currentMetricTypeInfo_=tr.metrics.MetricRegistry.findTypeInfoWithName(this.currentMetricName_);this.recomputeButton_=tr.ui.b.createButton('Recompute',this.onRecompute_,this);Polymer.dom(this.$.top_left_controls).appendChild(this.recomputeButton_);this.$.results.addEventListener('display-ready',()=>{this.$.results.style.display='';});},async build(model){this.model_=model;await this.updateContents_();},get metricLatencyMs(){return tr.b.math.Statistics.mean(this.metricLatenciesMs_);},onMetricChange_(){this.currentMetricTypeInfo_=tr.metrics.MetricRegistry.findTypeInfoWithName(this.currentMetricName_);this.metricLatenciesMs_=[];this.updateContents_();},onRecompute_(){this.updateContents_();},get textLabel(){return'Metrics';},supportsModel(m){if(!m){return{supported:false,reason:'No model available'};}
return{supported:true};},get model(){return this.model_;},set model(model){this.build(model);},get selection(){},set selection(_){},get rangeOfInterest(){return this.rangeOfInterest_;},set rangeOfInterest(range){this.rangeOfInterest_=range;if(this.currentMetricTypeInfo_&&this.currentMetricTypeInfo_.metadata.supportsRangeOfInterest){if((this.metricLatencyMs===undefined)||(this.metricLatencyMs<100)){this.updateContents_();}else{this.recomputeButton_.style.background='red';}}},async updateContents_(){Polymer.dom(this.$.error).textContent='';this.$.results.style.display='none';if(!this.model_){Polymer.dom(this.$.error).textContent='Missing model';return;}
const options={metrics:[this.currentMetricName_]};if(this.currentMetricTypeInfo_&&this.currentMetricTypeInfo_.metadata.supportsRangeOfInterest&&this.rangeOfInterest&&!this.rangeOfInterest.isEmpty){options.rangeOfInterest=this.rangeOfInterest;}
const startDate=new Date();let histograms;try{histograms=tr.metrics.runMetrics(this.model_,options);}catch(err){Polymer.dom(this.$.error).textContent=err.message;return;}
this.metricLatenciesMs_.push(new Date()-startDate);while(this.metricLatenciesMs_.length>20){this.metricLatenciesMs_.shift();}
this.recomputeButton_.style.background='';await this.$.results.build(histograms);}});tr.ui.side_panel.SidePanelRegistry.register(function(){return document.createElement('tr-ui-sp-metrics-side-panel');});return{};});'use strict';Polymer({is:'tr-ui-e-s-alerts-side-panel',behaviors:[tr.ui.behaviors.SidePanel],ready(){this.rangeOfInterest_=new tr.b.math.Range();this.selection_=undefined;},get model(){return this.model_;},set model(model){this.model_=model;this.updateContents_();},set selection(selection){},set rangeOfInterest(rangeOfInterest){},selectAlertsOfType(alertTypeString){const alertsOfType=this.model_.alerts.filter(function(alert){return alert.title===alertTypeString;});const event=new tr.model.RequestSelectionChangeEvent();event.selection=new tr.model.EventSet(alertsOfType);this.dispatchEvent(event);},alertsByType_(alerts){const alertsByType={};alerts.forEach(function(alert){if(!alertsByType[alert.title]){alertsByType[alert.title]=[];}
alertsByType[alert.title].push(alert);});return alertsByType;},alertsTableRows_(alertsByType){return Object.keys(alertsByType).map(function(key){return{alertType:key,count:alertsByType[key].length};});},alertsTableColumns_(){return[{title:'Alert type',value(row){return row.alertType;},width:'180px'},{title:'Count',width:'100%',value(row){return row.count;}}];},createAlertsTable_(alerts){const alertsByType=this.alertsByType_(alerts);const table=document.createElement('tr-ui-b-table');table.tableColumns=this.alertsTableColumns_();table.tableRows=this.alertsTableRows_(alertsByType);table.selectionMode=tr.ui.b.TableFormat.SelectionMode.ROW;table.addEventListener('selection-changed',function(e){const row=table.selectedTableRow;if(row){this.selectAlertsOfType(row.alertType);}}.bind(this));return table;},updateContents_(){Polymer.dom(this.$.result_area).textContent='';if(this.model_===undefined)return;const panel=this.createAlertsTable_(this.model_.alerts);Polymer.dom(this.$.result_area).appendChild(panel);},supportsModel(m){if(m===undefined){return{supported:false,reason:'Unknown tracing model'};}else if(m.alerts.length===0){return{supported:false,reason:'No alerts in tracing model'};}
return{supported:true};},get textLabel(){return'Alerts';}});tr.ui.side_panel.SidePanelRegistry.register(function(){return document.createElement('tr-ui-e-s-alerts-side-panel');});
</script>
<!--CATAPULT_REV=NO_AUTO_UPDATE-->
</head>
<body>
<tr-ui-timeline-view>
<track-view-container id='track_view_container'></track-view-container>
</tr-ui-timeline-view>
<script>
'use strict';
var timelineViewEl;
function onLoad() {
timelineViewEl = document.querySelector('tr-ui-timeline-view');
timelineViewEl.globalMode = true;
var traceDataEls = document.body.querySelectorAll('.trace-data');
var traces = [];
for (var i = 0; i < traceDataEls.length; i++) {
var traceText = traceDataEls[i].textContent;
// Remove the leading newline.
traceText = traceText.substring(1);
traces.push(traceText);
}
var m = new tr.Model();
var i = new tr.importer.Import(m);
var p = i.importTracesWithProgressDialog(traces);
p.then(
function() {
timelineViewEl.model = m;
timelineViewEl.updateDocumentFavicon();
timelineViewEl.globalMode = true;
timelineViewEl.viewTitle = 'Android System Trace';
},
function(err) {
var overlay = new tr.ui.b.Overlay();
overlay.textContent = tr.b.normalizeException(err).message;
overlay.title = 'Import error';
overlay.visible = true;
});
}
window.addEventListener('load', onLoad);
</script>
<!-- BEGIN TRACE -->
<script class="trace-data" type="application/text">
PROCESS DUMP
USER PID PPID VSZ RSS WCHAN PC S NAME COMM
root 1 0 18956 2244 SyS_epoll_wait 5327b0 S init init
root 2 0 0 0 kthreadd 0 S [kthreadd] 2
root 3 2 0 0 smpboot_thread_fn 0 S [ksoftirqd/0] 3
root 5 2 0 0 worker_thread 0 S [kworker/0:0H] 5
root 6 2 0 0 diag_socket_read 0 S [kworker/u16:0] 6
root 7 2 0 0 rcu_gp_kthread 0 S [rcu_preempt] 7
root 8 2 0 0 rcu_gp_kthread 0 S [rcu_sched] 8
root 9 2 0 0 rcu_gp_kthread 0 S [rcu_bh] 9
root 10 2 0 0 rcu_nocb_kthread 0 S [rcuop/0] 1
root 11 2 0 0 rcu_nocb_kthread 0 S [rcuos/0] 1
root 12 2 0 0 rcu_nocb_kthread 0 S [rcuob/0] 1
root 13 2 0 0 smpboot_thread_fn 0 S [migration/0] 1
root 14 2 0 0 smpboot_thread_fn 0 S [watchdog/0] 1
root 15 2 0 0 smpboot_thread_fn 0 S [watchdog/1] 1
root 16 2 0 0 smpboot_thread_fn 0 S [migration/1] 1
root 17 2 0 0 smpboot_thread_fn 0 S [ksoftirqd/1] 1
root 19 2 0 0 worker_thread 0 S [kworker/1:0H] 1
root 20 2 0 0 rcu_nocb_kthread 0 S [rcuop/1] 2
root 21 2 0 0 rcu_nocb_kthread 0 S [rcuos/1] 2
root 22 2 0 0 rcu_nocb_kthread 0 S [rcuob/1] 2
root 23 2 0 0 smpboot_thread_fn 0 S [watchdog/2] 2
root 24 2 0 0 smpboot_thread_fn 0 S [migration/2] 2
root 25 2 0 0 smpboot_thread_fn 0 S [ksoftirqd/2] 2
root 27 2 0 0 worker_thread 0 S [kworker/2:0H] 2
root 28 2 0 0 rcu_nocb_kthread 0 S [rcuop/2] 2
root 29 2 0 0 rcu_nocb_kthread 0 S [rcuos/2] 2
root 30 2 0 0 rcu_nocb_kthread 0 S [rcuob/2] 3
root 31 2 0 0 smpboot_thread_fn 0 S [watchdog/3] 3
root 32 2 0 0 smpboot_thread_fn 0 S [migration/3] 3
root 33 2 0 0 smpboot_thread_fn 0 S [ksoftirqd/3] 3
root 35 2 0 0 worker_thread 0 S [kworker/3:0H] 3
root 36 2 0 0 rcu_nocb_kthread 0 S [rcuop/3] 3
root 37 2 0 0 rcu_nocb_kthread 0 S [rcuos/3] 3
root 38 2 0 0 rcu_nocb_kthread 0 S [rcuob/3] 3
root 39 2 0 0 smpboot_thread_fn 0 S [watchdog/4] 3
root 40 2 0 0 smpboot_thread_fn 0 S [migration/4] 4
root 41 2 0 0 smpboot_thread_fn 0 S [ksoftirqd/4] 4
root 43 2 0 0 worker_thread 0 S [kworker/4:0H] 4
root 44 2 0 0 rcu_nocb_kthread 0 S [rcuop/4] 4
root 45 2 0 0 rcu_nocb_kthread 0 S [rcuos/4] 4
root 46 2 0 0 rcu_nocb_kthread 0 S [rcuob/4] 4
root 47 2 0 0 smpboot_thread_fn 0 S [watchdog/5] 4
root 48 2 0 0 smpboot_thread_fn 0 S [migration/5] 4
root 49 2 0 0 smpboot_thread_fn 0 S [ksoftirqd/5] 4
root 51 2 0 0 worker_thread 0 S [kworker/5:0H] 5
root 52 2 0 0 rcu_nocb_kthread 0 S [rcuop/5] 5
root 53 2 0 0 rcu_nocb_kthread 0 S [rcuos/5] 5
root 54 2 0 0 rcu_nocb_kthread 0 S [rcuob/5] 5
root 55 2 0 0 smpboot_thread_fn 0 S [watchdog/6] 5
root 56 2 0 0 smpboot_thread_fn 0 S [migration/6] 5
root 57 2 0 0 smpboot_thread_fn 0 S [ksoftirqd/6] 5
root 59 2 0 0 worker_thread 0 S [kworker/6:0H] 5
root 60 2 0 0 rcu_nocb_kthread 0 S [rcuop/6] 6
root 61 2 0 0 rcu_nocb_kthread 0 S [rcuos/6] 6
root 62 2 0 0 rcu_nocb_kthread 0 S [rcuob/6] 6
root 63 2 0 0 smpboot_thread_fn 0 S [watchdog/7] 6
root 64 2 0 0 smpboot_thread_fn 0 S [migration/7] 6
root 65 2 0 0 smpboot_thread_fn 0 S [ksoftirqd/7] 6
root 67 2 0 0 worker_thread 0 S [kworker/7:0H] 6
root 68 2 0 0 rcu_nocb_kthread 0 S [rcuop/7] 6
root 69 2 0 0 rcu_nocb_kthread 0 S [rcuos/7] 6
root 70 2 0 0 rcu_nocb_kthread 0 S [rcuob/7] 7
root 71 2 0 0 rescuer_thread 0 S [netns] 7
root 72 2 0 0 rescuer_thread 0 S [perf] 7
root 73 2 0 0 rescuer_thread 0 S [smd_channel_clo] 7
root 74 2 0 0 kthread_worker_fn 0 S [dsps_smd_trans_] 7
root 75 2 0 0 kthread_worker_fn 0 S [lpass_smd_trans] 7
root 76 2 0 0 kthread_worker_fn 0 S [mpss_smd_trans_] 7
root 77 2 0 0 kthread_worker_fn 0 S [wcnss_smd_trans] 7
root 78 2 0 0 kthread_worker_fn 0 S [rpm_smd_trans_g] 7
root 79 2 0 0 rescuer_thread 0 S [ipa_usb_wq] 7
root 81 2 0 0 kthread_worker_fn 0 S [smem_native_mps] 8
root 82 2 0 0 kthread_worker_fn 0 S [mpss_smem_glink] 8
root 83 2 0 0 kthread_worker_fn 0 S [smem_native_lpa] 8
root 84 2 0 0 kthread_worker_fn 0 S [lpass_smem_glin] 8
root 85 2 0 0 kthread_worker_fn 0 S [smem_native_dsp] 8
root 86 2 0 0 kthread_worker_fn 0 S [dsps_smem_glink] 8
root 87 2 0 0 kthread_worker_fn 0 S [smem_native_rpm] 8
root 88 2 0 0 kthread_worker_fn 0 S [rpm_smem_glink_] 8
root 89 2 0 0 kthread_worker_fn 0 S [smem_native_sps] 8
root 90 2 0 0 kthread_worker_fn 0 S [spss_mailbox_gl] 9
root 91 2 0 0 watchdog_kthread 0 S [msm_watchdog] 9
root 92 2 0 0 rescuer_thread 0 S [deferwq] 9
root 94 2 0 0 irq_thread 0 S [irq/126-cpr3] 9
root 95 2 0 0 msm_mpm_work_fn 0 D [mpm] 9
root 96 2 0 0 diag_socket_read 0 S [kworker/u16:2] 9
root 97 2 0 0 watchdog 0 S [khungtaskd] 9
root 98 2 0 0 rescuer_thread 0 S [writeback] 9
root 99 2 0 0 kcompactd 0 S [kcompactd0] 9
root 100 2 0 0 rescuer_thread 0 S [crypto] 1
root 101 2 0 0 rescuer_thread 0 S [bioset] 1
root 102 2 0 0 rescuer_thread 0 S [kblockd] 1
root 103 2 0 0 rescuer_thread 0 S [md] 1
root 104 2 0 0 rescuer_thread 0 S [edac-poller] 1
root 105 2 0 0 ion_heap_deferred_free 0 S [system] 1
root 106 2 0 0 ion_heap_deferred_free 0 S [easel_mem] 1
root 107 2 0 0 rescuer_thread 0 S [devfreq_wq] 1
root 108 2 0 0 rescuer_thread 0 S [governor_msm_ad] 1
root 110 2 0 0 rescuer_thread 0 S [cfg80211] 1
root 111 2 0 0 irq_thread 0 S [irq/134-arm-smm] 1
root 112 2 0 0 rescuer_thread 0 S [ipa_power_mgmt] 1
root 113 2 0 0 rescuer_thread 0 S [transport_power] 1
root 114 2 0 0 rescuer_thread 0 S [ipa_rm_wq] 1
root 115 2 0 0 rescuer_thread 0 S [ipa_interrupt_w] 1
root 116 2 0 0 irq_thread 0 S [irq/135-arm-smm] 1
root 117 2 0 0 irq_thread 0 S [irq/136-arm-smm] 1
root 118 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 1
root 119 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 1
root 120 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 1
root 121 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 1
root 147 2 0 0 rescuer_thread 0 S [power_off_alarm] 1
root 148 2 0 0 kswapd 0 S [kswapd0] 1
root 149 2 0 0 rescuer_thread 0 S [vmstat] 1
root 150 2 0 0 fsnotify_mark_destroy 0 S [fsnotify_mark] 1
root 182 2 0 0 rescuer_thread 0 S [ad_calc_wq] 1
root 183 2 0 0 dsi_event_thread 0 D [mdss_dsi_event] 1
root 184 2 0 0 rescuer_thread 0 S [mdss_dsi_dba] 1
root 185 2 0 0 rescuer_thread 0 S [cwb_wq] 1
root 186 2 0 0 kthread_worker_fn 0 S [vsync_retire_wo] 1
root 187 2 0 0 rescuer_thread 0 S [cwb_wq] 1
root 189 2 0 0 rescuer_thread 0 S [glink_ssr_wq] 1
root 190 2 0 0 rescuer_thread 0 S [glink_lbsrv] 1
root 191 2 0 0 kthread_worker_fn 0 S [spi_wdsp] 1
root 192 2 0 0 kthread_worker_fn 0 S [wdsp_spi_glink_] 1
root 193 2 0 0 rescuer_thread 0 S [glink_xprt_wq] 1
root 194 2 0 0 rescuer_thread 0 S [IPCRTR_mpss_sme] 1
root 195 2 0 0 rescuer_thread 0 S [IPCRTR_lpass_sm] 1
root 196 2 0 0 rescuer_thread 0 S [IPCRTR_dsps_sme] 1
root 197 2 0 0 rescuer_thread 0 S [apr_driver] 1
root 198 2 0 0 rescuer_thread 0 S [glink_pkt_wq] 1
root 199 2 0 0 rescuer_thread 0 S [mem_share_svc] 1
root 200 2 0 0 rescuer_thread 0 S [qmi_hndl0000000] 2
root 201 2 0 0 rescuer_thread 0 S [msm_ipc_router] 2
root 202 2 0 0 irq_thread 0 S [irq/137-arm-smm] 2
root 203 2 0 0 rescuer_thread 0 S [qmi_svc_event_w] 2
root 204 2 0 0 rescuer_thread 0 S [servloc_wq] 2
root 205 2 0 0 kthread_worker_fn 0 S [tty_worker_thre] 2
root 206 2 0 0 kthread_worker_fn 0 S [tty_worker_thre] 2
root 207 2 0 0 kthread_worker_fn 0 S [tty_worker_thre] 2
root 208 2 0 0 kthread_worker_fn 0 S [tty_worker_thre] 2
root 209 2 0 0 rescuer_thread 0 S [k_hsuart] 2
root 210 2 0 0 kthread_worker_fn 0 S [msm_serial_hs_0] 2
root 211 2 0 0 kthread_worker_fn 0 S [msm_serial_hs_0] 2
root 212 2 0 0 add_hwgenerator_randomness 0 S [hwrng] 2
root 215 2 0 0 rescuer_thread 0 S [diag_real_time_] 2
root 216 2 0 0 rescuer_thread 0 S [diag_wq] 2
root 217 2 0 0 rescuer_thread 0 S [DIAG_USB_diag] 2
root 218 2 0 0 rescuer_thread 0 S [diag_cntl_wq] 2
root 219 2 0 0 rescuer_thread 0 S [diag_dci_wq] 2
root 220 2 0 0 rescuer_thread 0 S [DIAG_SMD_MODEM_] 2
root 221 2 0 0 rescuer_thread 0 S [DIAG_SMD_MODEM_] 2
root 222 2 0 0 rescuer_thread 0 S [DIAG_SMD_MODEM_] 2
root 223 2 0 0 rescuer_thread 0 S [DIAG_SMD_MODEM_] 2
root 224 2 0 0 rescuer_thread 0 S [DIAG_SMD_MODEM_] 2
root 225 2 0 0 rescuer_thread 0 S [DIAG_SMD_LPASS_] 2
root 226 2 0 0 rescuer_thread 0 S [DIAG_SMD_LPASS_] 2
root 227 2 0 0 rescuer_thread 0 S [DIAG_SMD_LPASS_] 2
root 228 2 0 0 rescuer_thread 0 S [DIAG_SMD_LPASS_] 2
root 229 2 0 0 rescuer_thread 0 S [DIAG_SMD_LPASS_] 2
root 230 2 0 0 rescuer_thread 0 S [DIAG_SMD_WCNSS_] 2
root 231 2 0 0 rescuer_thread 0 S [DIAG_SMD_WCNSS_] 2
root 232 2 0 0 rescuer_thread 0 S [DIAG_SMD_WCNSS_] 2
root 233 2 0 0 rescuer_thread 0 S [DIAG_SMD_WCNSS_] 2
root 234 2 0 0 rescuer_thread 0 S [DIAG_SMD_WCNSS_] 2
root 235 2 0 0 rescuer_thread 0 S [DIAG_SMD_SENSOR] 2
root 236 2 0 0 rescuer_thread 0 S [DIAG_SMD_SENSOR] 2
root 237 2 0 0 rescuer_thread 0 S [DIAG_SMD_SENSOR] 2
root 238 2 0 0 rescuer_thread 0 S [DIAG_SMD_SENSOR] 2
root 239 2 0 0 rescuer_thread 0 S [DIAG_SMD_SENSOR] 2
root 240 2 0 0 rescuer_thread 0 S [DIAG_SMD_DIAG_C] 2
root 241 2 0 0 rescuer_thread 0 S [DIAG_SMD_DIAG_D] 2
root 242 2 0 0 rescuer_thread 0 S [DIAG_SMD_DIAG_C] 2
root 243 2 0 0 rescuer_thread 0 S [DIAG_SMD_DIAG_D] 2
root 244 2 0 0 rescuer_thread 0 S [DIAG_SMD_DIAG_D] 2
root 245 2 0 0 rescuer_thread 0 S [DIAG_SMD_CDSP_C] 2
root 246 2 0 0 rescuer_thread 0 S [DIAG_SMD_CDSP_D] 2
root 247 2 0 0 rescuer_thread 0 S [DIAG_SMD_CDSP_C] 2
root 248 2 0 0 rescuer_thread 0 S [DIAG_SMD_CDSP_D] 2
root 249 2 0 0 rescuer_thread 0 S [DIAG_SMD_CDSP_D] 2
root 250 2 0 0 rescuer_thread 0 S [DIAG_SOCKMODEM_] 2
root 251 2 0 0 rescuer_thread 0 S [DIAG_SOCKMODEM_] 2
root 252 2 0 0 rescuer_thread 0 S [DIAG_SOCKMODEM_] 2
root 253 2 0 0 rescuer_thread 0 S [DIAG_SOCKMODEM_] 2
root 254 2 0 0 rescuer_thread 0 S [DIAG_SOCKMODEM_] 2
root 255 2 0 0 rescuer_thread 0 S [DIAG_SOCKLPASS_] 2
root 256 2 0 0 rescuer_thread 0 S [DIAG_SOCKLPASS_] 2
root 257 2 0 0 rescuer_thread 0 S [DIAG_SOCKLPASS_] 2
root 258 2 0 0 rescuer_thread 0 S [DIAG_SOCKLPASS_] 2
root 259 2 0 0 rescuer_thread 0 S [DIAG_SOCKLPASS_] 2
root 260 2 0 0 rescuer_thread 0 S [DIAG_SOCKWCNSS_] 2
root 261 2 0 0 rescuer_thread 0 S [DIAG_SOCKWCNSS_] 2
root 262 2 0 0 rescuer_thread 0 S [DIAG_SOCKWCNSS_] 2
root 263 2 0 0 rescuer_thread 0 S [DIAG_SOCKWCNSS_] 2
root 265 2 0 0 rescuer_thread 0 S [DIAG_SOCKWCNSS_] 2
root 266 2 0 0 rescuer_thread 0 S [DIAG_SOCKSENSOR] 2
root 267 2 0 0 rescuer_thread 0 S [DIAG_SOCKSENSOR] 2
root 268 2 0 0 rescuer_thread 0 S [DIAG_SOCKSENSOR] 2
root 269 2 0 0 rescuer_thread 0 S [DIAG_SOCKSENSOR] 2
root 270 2 0 0 rescuer_thread 0 S [DIAG_SOCKSENSOR] 2
root 271 2 0 0 rescuer_thread 0 S [DIAG_SOCKDIAG_C] 2
root 272 2 0 0 rescuer_thread 0 S [DIAG_SOCKDIAG_D] 2
root 273 2 0 0 rescuer_thread 0 S [DIAG_SOCKDIAG_C] 2
root 274 2 0 0 rescuer_thread 0 S [DIAG_SOCKDIAG_D] 2
root 275 2 0 0 rescuer_thread 0 S [DIAG_SOCKDIAG_D] 2
root 276 2 0 0 rescuer_thread 0 S [DIAG_SOCKCDSP_C] 2
root 277 2 0 0 rescuer_thread 0 S [DIAG_SOCKCDSP_D] 2
root 278 2 0 0 rescuer_thread 0 S [DIAG_SOCKCDSP_C] 2
root 279 2 0 0 rescuer_thread 0 S [DIAG_SOCKCDSP_D] 2
root 280 2 0 0 rescuer_thread 0 S [DIAG_SOCKCDSP_D] 2
root 281 2 0 0 rescuer_thread 0 S [DIAG_CNTL_SOCKE] 2
root 282 2 0 0 rescuer_thread 0 S [DIAG_GLINK_DIAG] 2
root 283 2 0 0 rescuer_thread 0 S [DIAG_GLINK_DIAG] 2
root 284 2 0 0 rescuer_thread 0 S [DIAG_GLINK_DIAG] 2
root 285 2 0 0 rescuer_thread 0 S [DIAG_GLINK_DIAG] 2
root 286 2 0 0 rescuer_thread 0 S [DIAG_GLINK_DIAG] 2
root 287 2 0 0 rescuer_thread 0 S [kgsl-workqueue] 2
root 288 2 0 0 rescuer_thread 0 S [kgsl-mementry] 2
root 289 2 0 0 kthread_worker_fn 0 S [kgsl_worker_thr] 2
root 290 2 0 0 rescuer_thread 0 S [kgsl-events] 2
root 291 2 0 0 rescuer_thread 0 S [kgsl_devfreq_wq] 2
root 292 2 0 0 rescuer_thread 0 S [bioset] 2
root 293 2 0 0 rescuer_thread 0 S [bioset] 2
root 294 2 0 0 rescuer_thread 0 S [bioset] 2
root 295 2 0 0 rescuer_thread 0 S [bioset] 2
root 296 2 0 0 rescuer_thread 0 S [bioset] 2
root 297 2 0 0 rescuer_thread 0 S [bioset] 2
root 298 2 0 0 rescuer_thread 0 S [bioset] 2
root 299 2 0 0 rescuer_thread 0 S [bioset] 2
root 300 2 0 0 rescuer_thread 0 S [bioset] 3
root 301 2 0 0 rescuer_thread 0 S [bioset] 3
root 302 2 0 0 rescuer_thread 0 S [bioset] 3
root 303 2 0 0 rescuer_thread 0 S [bioset] 3
root 304 2 0 0 rescuer_thread 0 S [bioset] 3
root 305 2 0 0 rescuer_thread 0 S [bioset] 3
root 307 2 0 0 rescuer_thread 0 S [bioset] 3
root 308 2 0 0 rescuer_thread 0 S [bioset] 3
root 309 2 0 0 rescuer_thread 0 S [bioset] 3
root 310 2 0 0 rescuer_thread 0 S [bioset] 3
root 311 2 0 0 rescuer_thread 0 S [bioset] 3
root 312 2 0 0 rescuer_thread 0 S [bioset] 3
root 313 2 0 0 rescuer_thread 0 S [bioset] 3
root 314 2 0 0 rescuer_thread 0 S [bioset] 3
root 315 2 0 0 rescuer_thread 0 S [bioset] 3
root 316 2 0 0 rescuer_thread 0 S [bioset] 3
root 317 2 0 0 rescuer_thread 0 S [bioset] 3
root 318 2 0 0 irq_thread 0 S [irq/286-soc:fp_] 3
root 319 2 0 0 rescuer_thread 0 S [memory_wq] 3
root 320 2 0 0 rescuer_thread 0 S [qcrypto_seq_res] 3
root 321 2 0 0 scsi_error_handler 0 S [scsi_eh_0] 3
root 322 2 0 0 rescuer_thread 0 S [scsi_tmf_0] 3
root 323 2 0 0 rescuer_thread 0 S [ufs_pm_qos_0] 3
root 324 2 0 0 rescuer_thread 0 S [ufs_clk_ungatin] 3
root 325 2 0 0 rescuer_thread 0 S [ufs_clkscaling_] 3
root 326 2 0 0 kthread_worker_fn 0 S [spi1] 3
root 327 2 0 0 kthread_worker_fn 0 S [spi2] 3
root 328 2 0 0 kthread_worker_fn 0 S [spi10] 3
root 329 2 0 0 rescuer_thread 0 S [bond0] 3
root 330 2 0 0 rescuer_thread 0 S [sharedmem_qmi_w] 3
root 331 2 0 0 rescuer_thread 0 S [qmi_hndl0000000] 3
root 335 2 0 0 rescuer_thread 0 S [uether] 3
root 336 2 0 0 rescuer_thread 0 S [k_ipa_usb] 3
root 341 2 0 0 irq_thread 0 S [irq/262-vl53l0_] 3
root 342 2 0 0 rescuer_thread 0 S [bioset] 3
root 343 2 0 0 rescuer_thread 0 S [bioset] 3
root 344 2 0 0 rescuer_thread 0 S [bioset] 3
root 345 2 0 0 rescuer_thread 0 S [bioset] 3
root 347 2 0 0 rescuer_thread 0 S [bioset] 3
root 348 2 0 0 rescuer_thread 0 S [bioset] 3
root 349 2 0 0 rescuer_thread 0 S [bioset] 3
root 350 2 0 0 rescuer_thread 0 S [bioset] 3
root 351 2 0 0 rescuer_thread 0 S [bioset] 3
root 355 2 0 0 rescuer_thread 0 S [msm_cci_wq] 3
root 356 2 0 0 rescuer_thread 0 S [msm_cci_wq] 3
root 357 2 0 0 rescuer_thread 0 S [msm_cpp_workque] 3
root 358 2 0 0 rescuer_thread 0 S [msm_vidc_worker] 3
root 359 2 0 0 rescuer_thread 0 S [pm_workerq_venu] 3
root 360 2 0 0 irq_thread 0 S [irq/158-arm-smm] 3
root 361 2 0 0 irq_thread 0 S [irq/159-arm-smm] 3
root 362 2 0 0 irq_thread 0 S [irq/160-arm-smm] 3
root 363 2 0 0 irq_thread 0 S [irq/161-arm-smm] 3
root 364 2 0 0 kthread_worker_fn 0 S [rot_commitq_0_0] 3
root 365 2 0 0 kthread_worker_fn 0 S [rot_commitq_0_1] 3
root 366 2 0 0 kthread_worker_fn 0 S [rot_doneq_0_0] 3
root 367 2 0 0 kthread_worker_fn 0 S [rot_doneq_0_1] 3
root 368 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 3
root 370 2 0 0 irq_thread 0 S [irq/500-chg-err] 3
root 371 2 0 0 irq_thread 0 S [irq/501-chg-sta] 3
root 372 2 0 0 irq_thread 0 S [irq/502-step-ch] 3
root 373 2 0 0 irq_thread 0 S [irq/503-step-ch] 3
root 374 2 0 0 irq_thread 0 S [irq/504-step-ch] 3
root 375 2 0 0 irq_thread 0 S [irq/505-otg-fai] 3
root 376 2 0 0 irq_thread 0 S [irq/506-otg-ove] 3
root 377 2 0 0 irq_thread 0 S [irq/507-otg-oc-] 3
root 378 2 0 0 irq_thread 0 S [irq/508-testmod] 3
root 379 2 0 0 irq_thread 0 S [irq/509-bat-tem] 3
root 380 2 0 0 irq_thread 0 S [irq/510-bat-ocp] 3
root 381 2 0 0 irq_thread 0 S [irq/511-bat-ov] 3
root 382 2 0 0 irq_thread 0 S [irq/512-bat-low] 3
root 383 2 0 0 irq_thread 0 S [irq/513-bat-the] 3
root 384 2 0 0 irq_thread 0 S [irq/514-bat-ter] 3
root 385 2 0 0 irq_thread 0 S [irq/515-usbin-c] 3
root 386 2 0 0 irq_thread 0 S [irq/516-usbin-l] 3
root 387 2 0 0 irq_thread 0 S [irq/517-usbin-u] 3
root 388 2 0 0 irq_thread 0 S [irq/518-usbin-o] 3
root 389 2 0 0 irq_thread 0 S [irq/519-usbin-p] 3
root 390 2 0 0 irq_thread 0 S [irq/520-usbin-s] 3
root 391 2 0 0 irq_thread 0 S [irq/521-usbin-i] 3
root 392 2 0 0 irq_thread 0 S [irq/522-type-c-] 3
root 393 2 0 0 irq_thread 0 S [irq/523-dcin-co] 3
root 394 2 0 0 irq_thread 0 S [irq/524-dcin-lt] 3
root 395 2 0 0 irq_thread 0 S [irq/525-dcin-uv] 3
root 396 2 0 0 irq_thread 0 S [irq/526-dcin-ov] 3
root 397 2 0 0 irq_thread 0 S [irq/527-dcin-pl] 3
root 398 2 0 0 irq_thread 0 S [irq/528-div2-en] 3
root 399 2 0 0 irq_thread 0 S [irq/529-dcin-ic] 3
root 400 2 0 0 irq_thread 0 S [irq/532-aicl-fa] 4
root 401 2 0 0 irq_thread 0 S [irq/533-aicl-do] 4
root 402 2 0 0 irq_thread 0 S [irq/534-high-du] 4
root 403 2 0 0 irq_thread 0 S [irq/535-input-c] 4
root 404 2 0 0 irq_thread 0 S [irq/536-tempera] 4
root 405 2 0 0 irq_thread 0 S [irq/537-switche] 4
root 406 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 4
root 407 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 4
root 409 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 4
root 410 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 4
root 411 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 4
root 412 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 4
root 413 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 4
root 414 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 4
root 415 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 4
root 416 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 4
root 417 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 4
root 418 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 4
root 419 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 4
root 420 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 4
root 421 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 4
root 422 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 4
root 423 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 4
root 424 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 4
root 425 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 4
root 426 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 4
root 427 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 4
root 428 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 4
root 429 2 0 0 irq_thread 0 S [irq/59-tsens_in] 4
root 430 2 0 0 irq_thread 0 S [irq/62-tsens_cr] 4
root 431 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 4
root 432 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 4
root 433 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 4
root 434 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 4
root 435 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 4
root 436 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 4
root 437 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 4
root 438 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 4
root 439 2 0 0 irq_thread 0 S [irq/63-tsens_in] 4
root 440 2 0 0 irq_thread 0 S [irq/64-tsens_cr] 4
root 441 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 4
root 442 2 0 0 irq_thread 0 S [irq/366-limits_] 4
root 443 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 4
root 444 2 0 0 irq_thread 0 S [irq/367-limits_] 4
root 445 2 0 0 rescuer_thread 0 S [dm_bufio_cache] 4
root 446 2 0 0 cpufreq_interactive_speedchange_task 0 S [cfinteractive] 4
root 447 2 0 0 irq_thread 0 S [irq/291-bcm1560] 4
root 448 2 0 0 irq_thread 0 S [irq/226-bcm1560] 4
root 449 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 4
root 451 2 0 0 irq_thread 0 S [irq/197-spdm_bw] 4
root 452 2 0 0 rescuer_thread 0 S [binder] 4
root 453 2 0 0 irq_thread 0 S [irq/144-arm-smm] 4
root 454 2 0 0 rescuer_thread 0 S [uaudio_svc] 4
root 455 2 0 0 rescuer_thread 0 S [qmi_hndl0000000] 4
root 456 2 0 0 rescuer_thread 0 S [ipv6_addrconf] 4
root 458 2 0 0 irq_thread 0 S [irq/574-adsp] 4
root 459 2 0 0 rescuer_thread 0 S [sysmon_wq] 4
root 460 2 0 0 irq_thread 0 S [irq/606-slpi] 4
root 461 2 0 0 irq_thread 0 S [irq/542-modem] 4
root 465 2 0 0 rescuer_thread 0 S [usb_bam_wq] 4
root 466 2 0 0 irq_thread 0 S [irq/19-sig-tx] 4
root 467 2 0 0 irq_thread 0 S [irq/20-sig-rx] 4
root 468 2 0 0 irq_thread 0 S [irq/22-msg-rx] 4
root 469 2 0 0 rescuer_thread 0 S [usbpd0] 4
root 470 2 0 0 rescuer_thread 0 S [usbpd0] 4
root 471 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 4
root 472 2 0 0 irq_thread 0 S [irq/734-soc-upd] 4
root 473 2 0 0 irq_thread 0 S [irq/735-soc-rea] 4
root 474 2 0 0 irq_thread 0 S [irq/736-bsoc-de] 4
root 475 2 0 0 irq_thread 0 S [irq/737-msoc-de] 4
root 476 2 0 0 irq_thread 0 S [irq/738-msoc-lo] 4
root 477 2 0 0 irq_thread 0 S [irq/739-msoc-em] 4
root 478 2 0 0 irq_thread 0 S [irq/740-msoc-hi] 4
root 479 2 0 0 irq_thread 0 S [irq/741-msoc-fu] 4
root 480 2 0 0 irq_thread 0 S [irq/742-vbatt-p] 4
root 481 2 0 0 irq_thread 0 S [irq/743-vbatt-l] 4
root 482 2 0 0 irq_thread 0 S [irq/744-esr-del] 4
root 483 2 0 0 irq_thread 0 S [irq/745-batt-mi] 4
root 484 2 0 0 irq_thread 0 S [irq/746-batt-te] 4
root 485 2 0 0 irq_thread 0 S [irq/747-ima-rdy] 4
root 486 2 0 0 irq_thread 0 S [irq/748-mem-xcp] 4
root 487 2 0 0 irq_thread 0 S [irq/749-dma-gra] 4
root 489 2 0 0 irq_thread 0 S [irq/54-hs_phy_i] 4
root 490 2 0 0 irq_thread 0 S [irq/55-ss_phy_i] 4
root 491 2 0 0 irq_thread 0 S [irq/56-msm_dwc3] 4
root 494 2 0 0 irq_thread 0 S [irq/36-ARM64 pr] 4
root 495 2 0 0 irq_thread 0 S [irq/37-ARM64 se] 4
root 496 2 0 0 irq_thread 0 S [irq/39-ARM64 pr] 4
root 497 2 0 0 irq_thread 0 S [irq/40-ARM64 se] 4
root 498 2 0 0 rescuer_thread 0 S [rq_stats] 4
root 499 2 0 0 irq_thread 0 S [irq/145-arm-smm] 4
root 500 2 0 0 irq_thread 0 S [irq/146-arm-smm] 5
root 501 2 0 0 irq_thread 0 S [irq/147-arm-smm] 5
root 502 2 0 0 irq_thread 0 S [irq/148-arm-smm] 5
root 503 2 0 0 irq_thread 0 S [irq/149-arm-smm] 5
root 504 2 0 0 irq_thread 0 S [irq/150-arm-smm] 5
root 505 2 0 0 irq_thread 0 S [irq/151-arm-smm] 5
root 506 2 0 0 irq_thread 0 S [irq/152-arm-smm] 5
root 507 2 0 0 kthread_worker_fn 0 S [set_state_work] 5
root 508 2 0 0 irq_thread 0 S [irq/227-mnh-rea] 5
root 510 2 0 0 irq_thread 0 S [irq/751-mnh_pci] 5
root 511 2 0 0 irq_thread 0 S [irq/752-mnh_pci] 5
root 512 2 0 0 irq_thread 0 S [irq/753-mnh_pci] 5
root 513 2 0 0 irq_thread 0 S [irq/754-mnh_pci] 5
root 514 2 0 0 irq_thread 0 S [irq/755-mnh_pci] 5
root 515 2 0 0 irq_thread 0 S [irq/758-mnh_pci] 5
root 516 2 0 0 irq_thread 0 S [irq/759-mnh_pci] 5
root 517 2 0 0 irq_thread 0 S [irq/128-arm-smm] 5
root 518 2 0 0 rescuer_thread 0 S [sb-1] 5
root 519 2 0 0 ngd_slim_rx_msgq_thread 0 S [ngd_rx_thread1] 5
root 520 2 0 0 ngd_notify_slaves 0 S [ngd_notify_sl1] 5
root 521 2 0 0 rescuer_thread 0 S [sb-3] 5
root 522 2 0 0 ngd_slim_rx_msgq_thread 0 S [ngd_rx_thread3] 5
root 523 2 0 0 ngd_notify_slaves 0 S [ngd_notify_sl3] 5
root 525 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 5
root 526 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 5
root 527 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 5
root 528 2 0 0 irq_thread 0 S [irq/66-lmh-inte] 5
root 529 2 0 0 irq_thread 0 S [irq/28-qpnp_fla] 5
root 530 2 0 0 irq_thread 0 S [irq/27-qpnp_fla] 5
root 531 2 0 0 irq_thread 0 S [irq/26-qpnp_fla] 5
root 532 2 0 0 worker_thread 0 S [kworker/6:1H] 5
root 533 2 0 0 worker_thread 0 S [kworker/5:1H] 5
root 534 2 0 0 worker_thread 0 S [kworker/7:1H] 5
root 535 2 0 0 rescuer_thread 0 S [ext4-rsv-conver] 5
root 536 2 0 0 worker_thread 0 S [kworker/4:1H] 5
root 537 2 0 0 kjournald2 0 S [jbd2/sdd3-8] 5
root 538 2 0 0 rescuer_thread 0 S [ext4-rsv-conver] 5
root 539 2 0 0 rescuer_thread 0 S [ext4-rsv-conver] 5
root 542 1 6760 772 do_sys_poll 54e580 S init init
root 543 1 6504 1068 do_sys_poll 54e580 S ueventd init
root 545 2 0 0 worker_thread 0 S [kworker/0:1H] 5
root 550 2 0 0 irq_thread 0 S [irq/760-synapti] 5
root 551 2 0 0 rescuer_thread 0 S [dsx_rebuild_wor] 5
root 552 2 0 0 rescuer_thread 0 S [dsx_exp_workque] 5
root 556 2 0 0 rescuer_thread 0 S [batt_timer] 5
system 566 1 12844 1752 do_wait 7bede320a8 S qseecomd qseecomd
root 567 2 0 0 kthread_worker_fn 0 S [sugov:0] 5
root 568 2 0 0 kthread_worker_fn 0 S [sugov:4] 5
system 570 1 2128484 4816 binder_ioctl_write_read 7428db1040 S hwservicemanager hwservicemanager
logd 571 1 32436 11280 SyS_rt_sigsuspend 7f4ccf3118 S logd logd
system 572 1 11568 1988 binder_ioctl_write_read 7092531040 S servicemanager servicemanager
system 573 1 12280 2032 binder_ioctl_write_read 769d032040 S vndservicemanager vndservicemanager
system 574 566 18848 628 SyS_rt_sigsuspend 7bede31118 S qseecomd qseecomd
root 584 2 0 0 kauditd_thread 0 S [kauditd] 5
root 586 1 14496 2612 binder_ioctl_write_read 7f49272040 S android.hardware.boot@1.0-service android.hardware.boot@1.0-service
system 587 1 15624 2752 binder_ioctl_write_read 7929071040 S android.hardware.gatekeeper@1.0-service-qti android.hardware.gatekeeper@1.0-service-qti
system 588 1 15884 2740 binder_ioctl_write_read 7496432040 S android.hardware.keymaster@3.0-service-qti android.hardware.keymaster@3.0-service-qti
system 589 1 2128880 2824 binder_ioctl_write_read 7aa5cf0040 S android.hardware.keymaster@4.0-service android.hardware.keymaster@4.0-service
system 591 1 2190076 20836 SyS_epoll_wait 7d3a2f0f50 S surfaceflinger surfaceflinger
system 593 1 47296 5936 binder_ioctl_write_read 79c60f0040 S android.hardware.graphics.composer@2.1-service android.hardware.graphics.composer@2.1-service
system 594 1 18484 2704 binder_ioctl_write_read 79f41b0040 S android.hardware.configstore@1.0-service android.hardware.configstore@1.0-service
system 595 1 22124 3160 binder_ioctl_write_read 7c5b5f3040 S android.hardware.graphics.allocator@2.0-service android.hardware.graphics.allocator@2.0-service
root 612 2 0 0 kjournald2 0 S [jbd2/sda45-8] 6
root 613 2 0 0 rescuer_thread 0 S [ext4-rsv-conver] 6
system 616 1 23496 1848 futex_wait_queue_me 6ff4460bb0 S time_daemon time_daemon
root 617 1 31600 4188 binder_ioctl_write_read 7c864f1040 S vold vold
root 619 2 0 0 __mdss_fb_display_thread 0 D [mdss_fb0] 6
root 635 2 0 0 irq_thread 0 S [irq/177-arm-smm] 6
root 636 2 0 0 irq_thread 0 S [irq/178-arm-smm] 6
root 642 2 0 0 rescuer_thread 0 S [dsps_IPCRTR] 6
root 643 2 0 0 rescuer_thread 0 S [fwu_workqueue] 6
root 647 2 0 0 rescuer_thread 0 S [lpass_IPCRTR] 6
root 648 2 0 0 rescuer_thread 0 S [qmi_hndl0000000] 6
root 663 2 0 0 worker_thread 0 S [kworker/2:1H] 6
root 671 2 0 0 diag_socket_read 0 S [kworker/u16:7] 6
root 672 2 0 0 rescuer_thread 0 S [qmi_hndl0000000] 6
root 673 2 0 0 kthread_worker_fn 0 S [msm_slim_qmi_cl] 6
root 674 2 0 0 kthread_worker_fn 0 S [msm_slim_qmi_cl] 6
root 675 2 0 0 rescuer_thread 0 S [qmi_hndl0000000] 6
root 676 2 0 0 rescuer_thread 0 S [qmi_hndl0000000] 6
root 678 2 0 0 irq_thread 0 S [irq/153-arm-smm] 6
root 685 1 2152164 4480 binder_ioctl_write_read 75b8931040 S netd netd
root 693 685 9800 1860 pipe_read 7dcd573a78 S iptables-restore iptables
root 694 685 9816 1976 pipe_read 7823af2a78 S ip6tables-restore ip6tables
root 702 1 4232768 64660 do_sys_poll 726d72f070 S zygote64 app_process64
root 703 1 1554860 51192 do_sys_poll f08df828 S zygote app_process32
root 704 2 0 0 rescuer_thread 0 S [cds_recovery_wo] 7
root 705 2 0 0 wlan_logging_thread 0 S [wlan_logging_th] 7
root 722 2 0 0 rescuer_thread 0 S [at_usb0] 7
root 723 2 0 0 rescuer_thread 0 S [at_usb1] 7
root 724 2 0 0 rescuer_thread 0 S [qdss] 7
root 729 1 14500 3000 SyS_epoll_wait 7e95172f50 S healthd healthd
root 730 1 97112 2512 SyS_rt_sigsuspend 7711df2118 S thermal-engine thermal-engine
system 731 1 14152 2980 binder_ioctl_write_read 6fc03b2040 S android.hidl.allocator@1.0-service android.hidl.allocator@1.0-service
system 732 1 27592 4032 binder_ioctl_write_read 7229ab0040 S vr_hwc vr_hwc
audioserver 733 1 33344 8496 binder_ioctl_write_read eb95c790 S android.hardware.audio@2.0-service android.hardware.audio@2.0-service
bluetooth 734 1 17192 2472 binder_ioctl_write_read 7c2982f040 S android.hardware.bluetooth@1.0-service android.hardware.bluetooth@1.0-service
root 735 2 0 0 irq_thread 0 S [irq/254-wcd9xxx] 7
cameraserver 736 1 175308 46572 binder_ioctl_write_read e8d17790 S android.hardware.camera.provider@2.4-service android.hardware.camera.provider@2.4-service
media 737 1 12964 2520 binder_ioctl_write_read f0d9d790 S android.hardware.cas@1.0-service android.hardware.cas@1.0-service
system 738 1 2126332 2824 binder_ioctl_write_read 7f79d33040 S android.hardware.contexthub@1.0-service android.hardware.contexthub@1.0-service
media 739 1 15068 2736 binder_ioctl_write_read ec95a790 S android.hardware.drm@1.0-service android.hardware.drm@1.0-service
media 740 1 16324 2440 binder_ioctl_write_read f2217790 S android.hardware.drm@1.0-service.widevine android.hardware.drm@1.0-service.widevine
media 741 1 25876 2876 binder_ioctl_write_read 7479870040 S android.hardware.drm@1.1-service.clearkey android.hardware.drm@1.1-service.clearkey
system 742 1 13928 2604 binder_ioctl_write_read 75110b1040 S android.hardware.dumpstate@1.0-service.wahoo android.hardware.dumpstate@1.0-service.wahoo
gps 743 1 41836 4768 binder_ioctl_write_read 75ac5f2040 S android.hardware.gnss@1.0-service-qti android.hardware.gnss@1.0-service-qti
system 744 1 14136 2804 SyS_epoll_wait 7323b71f50 S android.hardware.health@2.0-service.wahoo android.hardware.health@2.0-service.wahoo
system 745 1 14168 2608 binder_ioctl_write_read 75ac42f040 S android.hardware.light@2.0-service android.hardware.light@2.0-service
system 748 1 14168 2684 binder_ioctl_write_read 7947eb3040 S android.hardware.memtrack@1.0-service android.hardware.memtrack@1.0-service
system 756 1 19416 2728 binder_ioctl_write_read 718b570040 S android.hardware.neuralnetworks@1.0-service-hvx android.hardware.neuralnetworks@1.0-service-hvx
nfc 759 1 2125748 2668 binder_ioctl_write_read 7b6d2f3040 S android.hardware.nfc@1.0-service android.hardware.nfc@1.0-service
system 760 1 13908 2556 binder_ioctl_write_read 73fe2ef040 S android.hardware.oemlock@1.0-service android.hardware.oemlock@1.0-service
root 761 1 11256 1572 __skb_recv_datagram 71ff530ed8 S oemlock-bridge oemlock-bridge
system 773 1 18736 2916 binder_ioctl_write_read 7568871040 S android.hardware.power@1.2-service.wahoo-libperfmgr android.hardware.power@1.2-service.wahoo-libperfmgr
system 778 1 70168 3536 binder_ioctl_write_read 72b4db3040 S android.hardware.sensors@1.0-service android.hardware.sensors@1.0-service
root 787 1 19788 2784 binder_ioctl_write_read 77a0371040 S android.hardware.usb@1.1-service.wahoo android.hardware.usb@1.1-service.wahoo
system 793 1 14448 2576 binder_ioctl_write_read 72cb372040 S android.hardware.vibrator@1.2-service.wahoo android.hardware.vibrator@1.2-service.wahoo
system 802 1 13780 2532 binder_ioctl_write_read 7827330040 S android.hardware.vr@1.0-service.wahoo android.hardware.vr@1.0-service.wahoo
wifi 807 1 2126104 2508 binder_ioctl_write_read 713cc31040 S android.hardware.wifi.offload@1.0-service android.hardware.wifi.offload@1.0-service
wifi 812 1 17460 2632 binder_ioctl_write_read 7278a70040 S android.hardware.wifi@1.0-service android.hardware.wifi@1.0-service
ese 813 1 14848 2600 binder_ioctl_write_read 790a0b1040 S esed esed
root 816 1 11132 1964 do_sys_poll 78de52f070 S msm_irqbalance msm_irqbalance
system 819 1 28116 1948 do_sigtimedwait 72b45ef130 S pm-service pm-service
system 825 1 28184 1996 futex_wait_queue_me 7a3c15fbb0 S sensors.qcom sensors.qcom
nobody 827 1 50580 1952 do_select 7526bb3088 S rmt_storage rmt_storage
system 828 1 13780 1964 do_sys_poll 7f205f3070 S tftp_server tftp_server
system 829 1 17340 1808 hrtimer_nanosleep 70455b1958 S pd-mapper pd-mapper
audioserver 830 1 105732 12620 binder_ioctl_write_read f3d5e790 S audioserver audioserver
system 831 1 20132 3336 SyS_epoll_wait 7f62bf2f50 S bufferhubd bufferhubd
root 835 1 9948 1760 SyS_epoll_wait 79a1531f50 S lmkd lmkd
system 836 1 14796 2256 SyS_epoll_wait 74f1f31f50 S performanced performanced
system 837 1 22464 3316 binder_ioctl_write_read 7e55a32040 S thermalserviced thermalserviced
system 838 1 18656 2732 binder_ioctl_write_read 753d3b1040 S virtual_touchpad virtual_touchpad
root 854 2 0 0 do_freq_mitigation 0 S [msm_thermal:fre] 8
root 859 2 0 0 do_thermal_monitor 0 S [msm_thermal:the] 8
root 865 2 0 0 rescuer_thread 0 S [qmi_hndl0000000] 8
root 873 2 0 0 rescuer_thread 0 S [modem] 8
system 874 1 19824 1876 hrtimer_nanosleep 70e9230958 S pm-proxy pm-proxy
root 879 1 11132 1508 do_sys_poll 72e4732070 S subsystem_ramdump subsystem_ramdump
nobody 882 1 10724 1328 do_sys_poll 7c2e9f0070 S traced traced
nobody 883 1 10724 1392 do_sys_poll 7c38fb3070 S traced_probes traced_probes
media 884 1 15272 1488 do_sys_poll 71fb172070 S adsprpcd adsprpcd
system 885 1 16940 1780 do_select 7a5adf0088 S imsqmidaemon imsqmidaemon
radio 890 1 2136736 3352 SyS_epoll_wait 749d2eef50 S cnd cnd
root 892 2 0 0 worker_thread 0 S [kworker/3:1H] 8
radio 893 1 2224936 4944 __skb_recv_datagram 799ea71ed8 S netmgrd netmgrd
radio 897 1 14636 1528 futex_wait_queue_me 71ac21ebb0 S port-bridge port-bridge
radio 898 1 23196 2732 futex_wait_queue_me 6fc2adfbb0 S ipacm ipacm
radio 899 1 2131244 2176 do_select 77cb1f1088 S qti qti
cameraserver 900 1 41196 8408 binder_ioctl_write_read f4ad9790 S cameraserver cameraserver
drm 901 1 20448 4212 binder_ioctl_write_read f69e2790 S drmserver drmserver
incidentd 902 1 22208 3584 SyS_epoll_wait 74750b1f50 S incidentd incidentd
root 903 1 30680 5016 binder_ioctl_write_read 71da631040 S installd installd
keystore 904 1 2135744 4904 binder_ioctl_write_read 7810832040 S keystore keystore
media 905 1 12236 2696 binder_ioctl_write_read ec697790 S mediadrmserver mediadrmserver
mediaex 906 1 2188528 12028 binder_ioctl_write_read 7301372040 S media.extractor mediaextractor
media 907 1 2147172 7800 binder_ioctl_write_read 7b8eb2f040 S media.metrics mediametrics
media 908 1 81888 7948 binder_ioctl_write_read f16e1790 S mediaserver mediaserver
statsd 909 1 26740 4592 SyS_epoll_wait 79c772ff50 S statsd statsd
root 911 1 26400 6084 binder_ioctl_write_read 72667ef040 S storaged storaged
wifi 912 1 20180 3996 SyS_epoll_wait 7b337eff50 S wificond wificond
mediacodec 914 1 122448 21140 binder_ioctl_write_read ee31e790 S media.codec android.hardware.media.omx@1.0-service
radio 917 1 111948 10660 binder_ioctl_write_read 72b02b0040 S rild rild
system 920 1 2165108 11268 SyS_epoll_wait 764ad32f50 S folio_daemon folio_daemon
root 921 2 0 0 rescuer_thread 0 S [ipawq15] 9
root 922 2 0 0 rescuer_thread 0 S [iparepwq15] 9
system 923 1 28496 2728 do_sys_poll 78c99f1070 S cnss-daemon cnss-daemon
gps 924 1 14812 2316 SyS_rt_sigsuspend 7bf85f1118 S loc_launcher loc_launcher
system 925 1 18596 2924 do_sys_poll 700daef070 S chre chre
system 926 1 2134120 4416 binder_ioctl_write_read 78699b0040 S gatekeeperd gatekeeperd
root 927 1 20516 3176 binder_ioctl_write_read 705e8f2040 S perfprofd perfprofd
tombstoned 929 1 9636 1400 SyS_epoll_wait 7e365eff50 S tombstoned tombstoned
root 932 1 27424 4856 SyS_epoll_wait 7a3b232f50 S update_engine update_engine
system 935 1 19292 2624 binder_ioctl_write_read 75105b2040 S android.hardware.biometrics.fingerprint@2.1-service.fpc android.hardware.biometrics.fingerprint@2.1-service.fpc
root 938 2 0 0 rescuer_thread 0 S [ipawq48] 9
root 942 2 0 0 rescuer_thread 0 S [iparepwq48] 9
system 950 1 2138472 3920 do_select 7bd7070088 S imsdatadaemon imsdatadaemon
root 969 2 0 0 rescuer_thread 0 S [ipawq13] 9
root 985 2 0 0 rescuer_thread 0 S [iparepwq13] 9
root 1002 2 0 0 rescuer_thread 0 S [ipa_A7_svc] 1
root 1012 2 0 0 rescuer_thread 0 S [qmi_hndl0000000] 1
root 1016 2 0 0 rescuer_thread 0 S [clnt_req] 1
root 1017 2 0 0 rescuer_thread 0 S [clnt_req] 1
root 1021 2 0 0 rescuer_thread 0 S [clnt_resp] 1
root 1116 2 0 0 rescuer_thread 0 S [wdsp_glink_wq] 1
system 1151 702 4764184 273912 SyS_epoll_wait 726d72ef50 S system_server app_process64
root 1199 2 0 0 rescuer_thread 0 S [mpss_IPCRTR] 1
root 1201 2 0 0 rescuer_thread 0 S [qmi_hndl0000000] 1
root 1202 2 0 0 rescuer_thread 0 S [qmi_hndl0000000] 1
root 1219 2 0 0 irq_thread 0 S [irq/157-arm-smm] 1
root 1220 2 0 0 irq_thread 0 S [irq/162-arm-smm] 1
root 1246 2 0 0 rescuer_thread 0 S [qmi_hndl0000000] 1
root 1304 2 0 0 worker_thread 0 S [kworker/1:1H] 1
root 1305 2 0 0 rescuer_thread 0 S [qmi_hndl0000000] 1
root 1382 2 0 0 rescuer_thread 0 S [ipawq14] 1
root 1383 2 0 0 rescuer_thread 0 S [iparepwq14] 1
root 1384 2 0 0 rescuer_thread 0 S [ipawq49] 1
root 1385 2 0 0 rescuer_thread 0 S [iparepwq49] 1
radio 1452 702 3654372 39876 SyS_epoll_wait 726d72ef50 S com.google.modemservice app_process64
u0_a68 1469 702 3783096 117712 SyS_epoll_wait 726d72ef50 S com.android.systemui app_process64
u0_a98 1529 702 3777328 123412 SyS_epoll_wait 726d72ef50 S com.breel.wallpapers app_process64
gps 1536 924 2130620 2712 futex_wait_queue_me 7ed79a2bb0 S lowi-server lowi-server
gps 1538 924 29112 4408 __skb_recv_datagram 736d8b2ed8 S xtra-daemon xtra-daemon
radio 1554 702 3655740 41580 SyS_epoll_wait 726d72ef50 S com.qualcomm.qcrilmsgtunnel app_process64
system 1651 702 3663924 44380 SyS_epoll_wait 726d72ef50 S .dataservices app_process64
radio 1666 702 3655692 40728 SyS_epoll_wait 726d72ef50 S com.qualcomm.qti.telephonyservice app_process64
radio 1678 702 3731184 65024 SyS_epoll_wait 726d72ef50 S com.android.phone app_process64
u0_a24 1798 702 3661228 44472 SyS_epoll_wait 726d72ef50 S com.google.android.ext.services app_process64
root 2107 2 0 0 irq_thread 0 S [irq/35-1008000.] 2
nfc 2195 702 3678748 51548 SyS_epoll_wait 726d72ef50 S com.android.nfc app_process64
u0_a10 2213 702 3670936 50680 SyS_epoll_wait 726d72ef50 S com.google.intelligence.sense app_process64
radio 2224 702 3658520 45112 SyS_epoll_wait 726d72ef50 S com.android.ims.rcsservice app_process64
system 2243 702 3655528 38104 SyS_epoll_wait 726d72ef50 S com.google.SSRestartDetector app_process64
u0_a19 2279 702 3771824 105368 SyS_epoll_wait 726d72ef50 S com.google.android.apps.nexuslauncher app_process64
u0_a125 2305 702 3666628 45328 SyS_epoll_wait 726d72ef50 S com.google.vr.vrcore app_process64
u0_a56 2332 702 3674796 54092 SyS_epoll_wait 726d72ef50 S com.google.android.apps.pixelmigrate app_process64
u0_a58 2354 702 3670496 51884 SyS_epoll_wait 726d72ef50 S com.google.android.setupwizard app_process64
u0_a21 2371 703 983924 40268 SyS_epoll_wait f08df650 S com.google.android.apps.miphone.aiai app_process32
u0_a40 2462 702 3948032 112056 SyS_epoll_wait 726d72ef50 S com.google.android.gms app_process64
u0_a40 2484 702 3776084 92024 0 726d72f040 S com.google.android.gms.persistent app_process64
system 3993 702 3657372 38852 SyS_epoll_wait 726d72ef50 S com.qualcomm.telephony app_process64
root 4295 1 22620 1332 do_sys_poll 4ae5b0 S adbd adbd
root 15030 2 0 0 worker_thread 0 S [kworker/4:1] 1
u0_a55 16104 702 3655556 44592 SyS_epoll_wait 726d72ef50 S com.android.defcontainer app_process64
root 16505 2 0 0 0 0 R [kworker/u17:0] 1
root 18709 2 0 0 worker_thread 0 S [kworker/3:3] 1
root 19512 2 0 0 worker_thread 0 S [kworker/5:1] 1
u0_a30 21587 702 3658124 43108 SyS_epoll_wait 726d72ef50 S com.google.android.apps.turbo app_process64
u0_a75 21768 702 3657340 41228 binder_ioctl_write_read 726d72f040 R com.google.android.partnersetup app_process64
u0_a40 21787 702 3671796 45760 SyS_epoll_wait 726d72ef50 S com.google.process.gservices app_process64
root 23038 2 0 0 worker_thread 0 S [kworker/3:2] 2
root 23393 2 0 0 worker_thread 0 S [kworker/5:3] 2
root 24384 2 0 0 worker_thread 0 S [kworker/4:2] 2
root 24428 2 0 0 worker_thread 0 S [kworker/1:0] 2
root 24572 2 0 0 worker_thread 0 S [kworker/6:0] 2
u0_a47 24879 702 4318732 48896 SyS_epoll_wait 726d72ef50 S com.verizon.mips.services app_process64
root 24931 2 0 0 worker_thread 0 S [kworker/2:1] 2
root 25152 2 0 0 worker_thread 0 S [kworker/7:2] 2
root 25203 2 0 0 worker_thread 0 S [kworker/0:4] 2
root 25230 2 0 0 worker_thread 0 S [kworker/2:0] 2
root 25246 2 0 0 worker_thread 0 S [kworker/7:0] 2
root 25362 2 0 0 worker_thread 0 S [kworker/u16:4] 2
root 25366 2 0 0 worker_thread 0 S [kworker/0:2] 2
root 25390 2 0 0 worker_thread 0 S [kworker/1:2] 2
root 25518 2 0 0 worker_thread 0 S [kworker/u16:6] 2
root 25647 2 0 0 worker_thread 0 S [kworker/6:1] 2
root 25664 2 0 0 worker_thread 0 S [kworker/u16:1] 2
root 25796 2 0 0 worker_thread 0 S [kworker/0:1] 2
root 25814 2 0 0 worker_thread 0 S [kworker/u16:3] 2
root 25819 2 0 0 worker_thread 0 S [kworker/3:0] 2
root 25823 2 0 0 worker_thread 0 S [kworker/2:2] 2
root 25933 2 0 0 worker_thread 0 S [kworker/6:2] 2
root 25946 2 0 0 worker_thread 0 S [kworker/1:1] 2
root 25950 2 0 0 worker_thread 0 S [kworker/0:3] 2
root 25966 2 0 0 worker_thread 0 S [kworker/u16:5] 2
root 26081 2 0 0 worker_thread 0 S [kworker/2:3] 2
root 26106 2 0 0 worker_thread 0 S [kworker/4:0] 2
system 26142 702 3652332 39944 SyS_epoll_wait 726d72ef50 S com.android.keychain app_process64
u0_a46 26181 702 3660384 46416 SyS_epoll_wait 726d72ef50 S com.android.documentsui app_process64
u0_a8 26208 702 3654392 43232 SyS_epoll_wait 726d72ef50 S android.process.media app_process64
u0_a40 26343 702 3662144 44012 SyS_epoll_wait 726d72ef50 S com.google.process.gapps app_process64
root 26407 2 0 0 worker_thread 0 S [kworker/5:0] 2
u0_a72 26440 702 3663496 41172 SyS_epoll_wait 726d72ef50 S com.android.connectivity.metrics app_process64
root 26499 2 0 0 worker_thread 0 S [kworker/7:1] 2
root 26509 2 0 0 worker_thread 0 S [kworker/7:3] 2
radio 26510 702 3653256 40364 SyS_epoll_wait 726d72ef50 S com.google.android.connectivitymonitor app_process64
u0_a131 26648 702 3653188 38916 SyS_epoll_wait 726d72ef50 S com.android.printspooler app_process64
root 26706 2 0 0 worker_thread 0 S [kworker/1:3] 2
root 26729 4295 9284 1720 SyS_rt_sigsuspend 742baf3118 S sh sh
root 26732 26729 9284 808 SyS_rt_sigsuspend 742baf3118 S sh sh
root 26733 26732 11752 2200 0 745d633a78 R ps toybox
root 26739 4295 9284 1712 SyS_rt_sigsuspend 70fcfaf118 S sh sh
root 27902 2 0 0 worker_thread 0 S [kworker/u17:2] 2
u0_a64 32499 702 3690380 57548 SyS_epoll_wait 726d72ef50 S com.google.android.ims app_process64
USER PID TID CMD
root 1 1 init
root 2 2 kthreadd
root 3 3 ksoftirqd/0
root 5 5 kworker/0:0H
root 6 6 kworker/u16:0
root 7 7 rcu_preempt
root 8 8 rcu_sched
root 9 9 rcu_bh
root 10 10 rcuop/0
root 11 11 rcuos/0
root 12 12 rcuob/0
root 13 13 migration/0
root 14 14 watchdog/0
root 15 15 watchdog/1
root 16 16 migration/1
root 17 17 ksoftirqd/1
root 19 19 kworker/1:0H
root 20 20 rcuop/1
root 21 21 rcuos/1
root 22 22 rcuob/1
root 23 23 watchdog/2
root 24 24 migration/2
root 25 25 ksoftirqd/2
root 27 27 kworker/2:0H
root 28 28 rcuop/2
root 29 29 rcuos/2
root 30 30 rcuob/2
root 31 31 watchdog/3
root 32 32 migration/3
root 33 33 ksoftirqd/3
root 35 35 kworker/3:0H
root 36 36 rcuop/3
root 37 37 rcuos/3
root 38 38 rcuob/3
root 39 39 watchdog/4
root 40 40 migration/4
root 41 41 ksoftirqd/4
root 43 43 kworker/4:0H
root 44 44 rcuop/4
root 45 45 rcuos/4
root 46 46 rcuob/4
root 47 47 watchdog/5
root 48 48 migration/5
root 49 49 ksoftirqd/5
root 51 51 kworker/5:0H
root 52 52 rcuop/5
root 53 53 rcuos/5
root 54 54 rcuob/5
root 55 55 watchdog/6
root 56 56 migration/6
root 57 57 ksoftirqd/6
root 59 59 kworker/6:0H
root 60 60 rcuop/6
root 61 61 rcuos/6
root 62 62 rcuob/6
root 63 63 watchdog/7
root 64 64 migration/7
root 65 65 ksoftirqd/7
root 67 67 kworker/7:0H
root 68 68 rcuop/7
root 69 69 rcuos/7
root 70 70 rcuob/7
root 71 71 netns
root 72 72 perf
root 73 73 smd_channel_clo
root 74 74 dsps_smd_trans_
root 75 75 lpass_smd_trans
root 76 76 mpss_smd_trans_
root 77 77 wcnss_smd_trans
root 78 78 rpm_smd_trans_g
root 79 79 ipa_usb_wq
root 81 81 smem_native_mps
root 82 82 mpss_smem_glink
root 83 83 smem_native_lpa
root 84 84 lpass_smem_glin
root 85 85 smem_native_dsp
root 86 86 dsps_smem_glink
root 87 87 smem_native_rpm
root 88 88 rpm_smem_glink_
root 89 89 smem_native_sps
root 90 90 spss_mailbox_gl
root 91 91 msm_watchdog
root 92 92 deferwq
root 94 94 irq/126-cpr3
root 95 95 mpm
root 96 96 kworker/u16:2
root 97 97 khungtaskd
root 98 98 writeback
root 99 99 kcompactd0
root 100 100 crypto
root 101 101 bioset
root 102 102 kblockd
root 103 103 md
root 104 104 edac-poller
root 105 105 system
root 106 106 easel_mem
root 107 107 devfreq_wq
root 108 108 governor_msm_ad
root 110 110 cfg80211
root 111 111 irq/134-arm-smm
root 112 112 ipa_power_mgmt
root 113 113 transport_power
root 114 114 ipa_rm_wq
root 115 115 ipa_interrupt_w
root 116 116 irq/135-arm-smm
root 117 117 irq/136-arm-smm
root 118 118 therm_core:noti
root 119 119 therm_core:noti
root 120 120 therm_core:noti
root 121 121 therm_core:noti
root 147 147 power_off_alarm
root 148 148 kswapd0
root 149 149 vmstat
root 150 150 fsnotify_mark
root 182 182 ad_calc_wq
root 183 183 mdss_dsi_event
root 184 184 mdss_dsi_dba
root 185 185 cwb_wq
root 186 186 vsync_retire_wo
root 187 187 cwb_wq
root 189 189 glink_ssr_wq
root 190 190 glink_lbsrv
root 191 191 spi_wdsp
root 192 192 wdsp_spi_glink_
root 193 193 glink_xprt_wq
root 194 194 IPCRTR_mpss_sme
root 195 195 IPCRTR_lpass_sm
root 196 196 IPCRTR_dsps_sme
root 197 197 apr_driver
root 198 198 glink_pkt_wq
root 199 199 mem_share_svc
root 200 200 qmi_hndl0000000
root 201 201 msm_ipc_router
root 202 202 irq/137-arm-smm
root 203 203 qmi_svc_event_w
root 204 204 servloc_wq
root 205 205 tty_worker_thre
root 206 206 tty_worker_thre
root 207 207 tty_worker_thre
root 208 208 tty_worker_thre
root 209 209 k_hsuart
root 210 210 msm_serial_hs_0
root 211 211 msm_serial_hs_0
root 212 212 hwrng
root 215 215 diag_real_time_
root 216 216 diag_wq
root 217 217 DIAG_USB_diag
root 218 218 diag_cntl_wq
root 219 219 diag_dci_wq
root 220 220 DIAG_SMD_MODEM_
root 221 221 DIAG_SMD_MODEM_
root 222 222 DIAG_SMD_MODEM_
root 223 223 DIAG_SMD_MODEM_
root 224 224 DIAG_SMD_MODEM_
root 225 225 DIAG_SMD_LPASS_
root 226 226 DIAG_SMD_LPASS_
root 227 227 DIAG_SMD_LPASS_
root 228 228 DIAG_SMD_LPASS_
root 229 229 DIAG_SMD_LPASS_
root 230 230 DIAG_SMD_WCNSS_
root 231 231 DIAG_SMD_WCNSS_
root 232 232 DIAG_SMD_WCNSS_
root 233 233 DIAG_SMD_WCNSS_
root 234 234 DIAG_SMD_WCNSS_
root 235 235 DIAG_SMD_SENSOR
root 236 236 DIAG_SMD_SENSOR
root 237 237 DIAG_SMD_SENSOR
root 238 238 DIAG_SMD_SENSOR
root 239 239 DIAG_SMD_SENSOR
root 240 240 DIAG_SMD_DIAG_C
root 241 241 DIAG_SMD_DIAG_D
root 242 242 DIAG_SMD_DIAG_C
root 243 243 DIAG_SMD_DIAG_D
root 244 244 DIAG_SMD_DIAG_D
root 245 245 DIAG_SMD_CDSP_C
root 246 246 DIAG_SMD_CDSP_D
root 247 247 DIAG_SMD_CDSP_C
root 248 248 DIAG_SMD_CDSP_D
root 249 249 DIAG_SMD_CDSP_D
root 250 250 DIAG_SOCKMODEM_
root 251 251 DIAG_SOCKMODEM_
root 252 252 DIAG_SOCKMODEM_
root 253 253 DIAG_SOCKMODEM_
root 254 254 DIAG_SOCKMODEM_
root 255 255 DIAG_SOCKLPASS_
root 256 256 DIAG_SOCKLPASS_
root 257 257 DIAG_SOCKLPASS_
root 258 258 DIAG_SOCKLPASS_
root 259 259 DIAG_SOCKLPASS_
root 260 260 DIAG_SOCKWCNSS_
root 261 261 DIAG_SOCKWCNSS_
root 262 262 DIAG_SOCKWCNSS_
root 263 263 DIAG_SOCKWCNSS_
root 265 265 DIAG_SOCKWCNSS_
root 266 266 DIAG_SOCKSENSOR
root 267 267 DIAG_SOCKSENSOR
root 268 268 DIAG_SOCKSENSOR
root 269 269 DIAG_SOCKSENSOR
root 270 270 DIAG_SOCKSENSOR
root 271 271 DIAG_SOCKDIAG_C
root 272 272 DIAG_SOCKDIAG_D
root 273 273 DIAG_SOCKDIAG_C
root 274 274 DIAG_SOCKDIAG_D
root 275 275 DIAG_SOCKDIAG_D
root 276 276 DIAG_SOCKCDSP_C
root 277 277 DIAG_SOCKCDSP_D
root 278 278 DIAG_SOCKCDSP_C
root 279 279 DIAG_SOCKCDSP_D
root 280 280 DIAG_SOCKCDSP_D
root 281 281 DIAG_CNTL_SOCKE
root 282 282 DIAG_GLINK_DIAG
root 283 283 DIAG_GLINK_DIAG
root 284 284 DIAG_GLINK_DIAG
root 285 285 DIAG_GLINK_DIAG
root 286 286 DIAG_GLINK_DIAG
root 287 287 kgsl-workqueue
root 288 288 kgsl-mementry
root 289 289 kgsl_worker_thr
root 290 290 kgsl-events
root 291 291 kgsl_devfreq_wq
root 292 292 bioset
root 293 293 bioset
root 294 294 bioset
root 295 295 bioset
root 296 296 bioset
root 297 297 bioset
root 298 298 bioset
root 299 299 bioset
root 300 300 bioset
root 301 301 bioset
root 302 302 bioset
root 303 303 bioset
root 304 304 bioset
root 305 305 bioset
root 307 307 bioset
root 308 308 bioset
root 309 309 bioset
root 310 310 bioset
root 311 311 bioset
root 312 312 bioset
root 313 313 bioset
root 314 314 bioset
root 315 315 bioset
root 316 316 bioset
root 317 317 bioset
root 318 318 irq/286-soc:fp_
root 319 319 memory_wq
root 320 320 qcrypto_seq_res
root 321 321 scsi_eh_0
root 322 322 scsi_tmf_0
root 323 323 ufs_pm_qos_0
root 324 324 ufs_clk_ungatin
root 325 325 ufs_clkscaling_
root 326 326 spi1
root 327 327 spi2
root 328 328 spi10
root 329 329 bond0
root 330 330 sharedmem_qmi_w
root 331 331 qmi_hndl0000000
root 335 335 uether
root 336 336 k_ipa_usb
root 341 341 irq/262-vl53l0_
root 342 342 bioset
root 343 343 bioset
root 344 344 bioset
root 345 345 bioset
root 347 347 bioset
root 348 348 bioset
root 349 349 bioset
root 350 350 bioset
root 351 351 bioset
root 355 355 msm_cci_wq
root 356 356 msm_cci_wq
root 357 357 msm_cpp_workque
root 358 358 msm_vidc_worker
root 359 359 pm_workerq_venu
root 360 360 irq/158-arm-smm
root 361 361 irq/159-arm-smm
root 362 362 irq/160-arm-smm
root 363 363 irq/161-arm-smm
root 364 364 rot_commitq_0_0
root 365 365 rot_commitq_0_1
root 366 366 rot_doneq_0_0
root 367 367 rot_doneq_0_1
root 368 368 therm_core:noti
root 370 370 irq/500-chg-err
root 371 371 irq/501-chg-sta
root 372 372 irq/502-step-ch
root 373 373 irq/503-step-ch
root 374 374 irq/504-step-ch
root 375 375 irq/505-otg-fai
root 376 376 irq/506-otg-ove
root 377 377 irq/507-otg-oc-
root 378 378 irq/508-testmod
root 379 379 irq/509-bat-tem
root 380 380 irq/510-bat-ocp
root 381 381 irq/511-bat-ov
root 382 382 irq/512-bat-low
root 383 383 irq/513-bat-the
root 384 384 irq/514-bat-ter
root 385 385 irq/515-usbin-c
root 386 386 irq/516-usbin-l
root 387 387 irq/517-usbin-u
root 388 388 irq/518-usbin-o
root 389 389 irq/519-usbin-p
root 390 390 irq/520-usbin-s
root 391 391 irq/521-usbin-i
root 392 392 irq/522-type-c-
root 393 393 irq/523-dcin-co
root 394 394 irq/524-dcin-lt
root 395 395 irq/525-dcin-uv
root 396 396 irq/526-dcin-ov
root 397 397 irq/527-dcin-pl
root 398 398 irq/528-div2-en
root 399 399 irq/529-dcin-ic
root 400 400 irq/532-aicl-fa
root 401 401 irq/533-aicl-do
root 402 402 irq/534-high-du
root 403 403 irq/535-input-c
root 404 404 irq/536-tempera
root 405 405 irq/537-switche
root 406 406 therm_core:noti
root 407 407 therm_core:noti
root 409 409 therm_core:noti
root 410 410 therm_core:noti
root 411 411 therm_core:noti
root 412 412 therm_core:noti
root 413 413 therm_core:noti
root 414 414 therm_core:noti
root 415 415 therm_core:noti
root 416 416 therm_core:noti
root 417 417 therm_core:noti
root 418 418 therm_core:noti
root 419 419 therm_core:noti
root 420 420 therm_core:noti
root 421 421 therm_core:noti
root 422 422 therm_core:noti
root 423 423 therm_core:noti
root 424 424 therm_core:noti
root 425 425 therm_core:noti
root 426 426 therm_core:noti
root 427 427 therm_core:noti
root 428 428 therm_core:noti
root 429 429 irq/59-tsens_in
root 430 430 irq/62-tsens_cr
root 431 431 therm_core:noti
root 432 432 therm_core:noti
root 433 433 therm_core:noti
root 434 434 therm_core:noti
root 435 435 therm_core:noti
root 436 436 therm_core:noti
root 437 437 therm_core:noti
root 438 438 therm_core:noti
root 439 439 irq/63-tsens_in
root 440 440 irq/64-tsens_cr
root 441 441 therm_core:noti
root 442 442 irq/366-limits_
root 443 443 therm_core:noti
root 444 444 irq/367-limits_
root 445 445 dm_bufio_cache
root 446 446 cfinteractive
root 447 447 irq/291-bcm1560
root 448 448 irq/226-bcm1560
root 449 449 therm_core:noti
root 451 451 irq/197-spdm_bw
root 452 452 binder
root 453 453 irq/144-arm-smm
root 454 454 uaudio_svc
root 455 455 qmi_hndl0000000
root 456 456 ipv6_addrconf
root 458 458 irq/574-adsp
root 459 459 sysmon_wq
root 460 460 irq/606-slpi
root 461 461 irq/542-modem
root 465 465 usb_bam_wq
root 466 466 irq/19-sig-tx
root 467 467 irq/20-sig-rx
root 468 468 irq/22-msg-rx
root 469 469 usbpd0
root 470 470 usbpd0
root 471 471 therm_core:noti
root 472 472 irq/734-soc-upd
root 473 473 irq/735-soc-rea
root 474 474 irq/736-bsoc-de
root 475 475 irq/737-msoc-de
root 476 476 irq/738-msoc-lo
root 477 477 irq/739-msoc-em
root 478 478 irq/740-msoc-hi
root 479 479 irq/741-msoc-fu
root 480 480 irq/742-vbatt-p
root 481 481 irq/743-vbatt-l
root 482 482 irq/744-esr-del
root 483 483 irq/745-batt-mi
root 484 484 irq/746-batt-te
root 485 485 irq/747-ima-rdy
root 486 486 irq/748-mem-xcp
root 487 487 irq/749-dma-gra
root 489 489 irq/54-hs_phy_i
root 490 490 irq/55-ss_phy_i
root 491 491 irq/56-msm_dwc3
root 494 494 irq/36-ARM64 pr
root 495 495 irq/37-ARM64 se
root 496 496 irq/39-ARM64 pr
root 497 497 irq/40-ARM64 se
root 498 498 rq_stats
root 499 499 irq/145-arm-smm
root 500 500 irq/146-arm-smm
root 501 501 irq/147-arm-smm
root 502 502 irq/148-arm-smm
root 503 503 irq/149-arm-smm
root 504 504 irq/150-arm-smm
root 505 505 irq/151-arm-smm
root 506 506 irq/152-arm-smm
root 507 507 set_state_work
root 508 508 irq/227-mnh-rea
root 510 510 irq/751-mnh_pci
root 511 511 irq/752-mnh_pci
root 512 512 irq/753-mnh_pci
root 513 513 irq/754-mnh_pci
root 514 514 irq/755-mnh_pci
root 515 515 irq/758-mnh_pci
root 516 516 irq/759-mnh_pci
root 517 517 irq/128-arm-smm
root 518 518 sb-1
root 519 519 ngd_rx_thread1
root 520 520 ngd_notify_sl1
root 521 521 sb-3
root 522 522 ngd_rx_thread3
root 523 523 ngd_notify_sl3
root 525 525 therm_core:noti
root 526 526 therm_core:noti
root 527 527 therm_core:noti
root 528 528 irq/66-lmh-inte
root 529 529 irq/28-qpnp_fla
root 530 530 irq/27-qpnp_fla
root 531 531 irq/26-qpnp_fla
root 532 532 kworker/6:1H
root 533 533 kworker/5:1H
root 534 534 kworker/7:1H
root 535 535 ext4-rsv-conver
root 536 536 kworker/4:1H
root 537 537 jbd2/sdd3-8
root 538 538 ext4-rsv-conver
root 539 539 ext4-rsv-conver
root 542 542 init
root 543 543 ueventd
root 545 545 kworker/0:1H
root 550 550 irq/760-synapti
root 551 551 dsx_rebuild_wor
root 552 552 dsx_exp_workque
root 556 556 batt_timer
system 566 566 qseecomd
root 567 567 sugov:0
root 568 568 sugov:4
system 570 570 hwservicemanage
logd 571 571 logd
logd 571 576 logd.daemon
logd 571 581 logd.reader
logd 571 582 logd.writer
logd 571 583 logd.control
logd 571 602 logd.klogd
logd 571 603 logd.auditd
logd 571 974 logd.reader.per
system 572 572 servicemanager
system 573 573 vndservicemanag
system 574 574 qseecomd
system 574 575 qseecomd
system 574 577 qseecomd
system 574 578 qseecomd
system 574 579 qseecomd
system 574 580 qseecomd
root 584 584 kauditd
root 586 586 boot@1.0-servic
system 587 587 gatekeeper@1.0-
system 588 588 keymaster@3.0-s
system 589 589 keymaster@4.0-s
system 589 604 HwBinder:589_1
system 591 591 surfaceflinger
system 591 620 HwBinder:591_1
system 591 623 Binder:591_1
system 591 624 Binder:591_2
system 591 625 DispSync
system 591 626 appEventThread
system 591 627 sfEventThread
system 591 664 VrEvent
system 591 666 VrHwcPost
system 591 667 VrDispatch
system 591 668 surfaceflinger
system 591 1218 Binder:591_3
system 591 1671 Binder:591_4
system 591 1775 Binder:591_5
system 593 593 composer@2.1-se
system 593 608 Binder:593_1
system 593 609 Binder:593_2
system 593 634 SDM_EventThread
system 593 649 android.hardwar
system 593 651 HWC_UeventThrea
system 593 656 HwBinder:593_1
system 593 657 HwBinder:593_2
system 593 665 HwBinder:593_3
system 594 594 configstore@1.0
system 594 622 HwBinder:594_1
system 594 7100 HwBinder:594_2
system 595 595 allocator@2.0-s
system 595 610 HwBinder:595_1
system 595 1778 HwBinder:595_2
system 595 1779 HwBinder:595_3
root 612 612 jbd2/sda45-8
root 613 613 ext4-rsv-conver
system 616 616 time_daemon
system 616 629 time_daemon
system 616 630 time_daemon
system 616 631 time_daemon
system 616 632 time_daemon
system 616 633 time_daemon
system 616 1267 time_daemon
root 617 617 Binder:617_2
root 617 637 Binder:617_1
root 617 638 Binder:617_2
root 617 639 Binder:617_3
root 617 640 Binder:617_4
root 617 641 HwBinder:617_1
root 617 1439 Binder:617_5
root 619 619 mdss_fb0
root 635 635 irq/177-arm-smm
root 636 636 irq/178-arm-smm
root 642 642 dsps_IPCRTR
root 643 643 fwu_workqueue
root 647 647 lpass_IPCRTR
root 648 648 qmi_hndl0000000
root 663 663 kworker/2:1H
root 671 671 kworker/u16:7
root 672 672 qmi_hndl0000000
root 673 673 msm_slim_qmi_cl
root 674 674 msm_slim_qmi_cl
root 675 675 qmi_hndl0000000
root 676 676 qmi_hndl0000000
root 678 678 irq/153-arm-smm
root 685 685 Binder:685_2
root 685 695 netd
root 685 706 netd
root 685 707 netd
root 685 708 netd
root 685 709 netd
root 685 710 netd
root 685 711 netd
root 685 712 netd
root 685 713 netd
root 685 715 Binder:685_1
root 685 716 Binder:685_2
root 685 717 HwBinder:685_1
root 693 693 iptables-restor
root 694 694 ip6tables-resto
root 702 702 main
root 702 26649 ReferenceQueueD
root 702 26650 FinalizerDaemon
root 702 26651 FinalizerWatchd
root 702 26652 HeapTaskDaemon
root 703 703 main
root 703 26533 ReferenceQueueD
root 703 26534 FinalizerDaemon
root 703 26535 FinalizerWatchd
root 703 26536 HeapTaskDaemon
root 704 704 cds_recovery_wo
root 705 705 wlan_logging_th
root 722 722 at_usb0
root 723 723 at_usb1
root 724 724 qdss
root 729 729 healthd
root 730 730 thermal-engine
root 730 747 HwBinder:730_1
root 730 750 thermal-engine
root 730 753 thermal-engine
root 730 757 thermal-engine
root 730 758 thermal-engine
root 730 762 thermal-engine
root 730 763 thermal-engine
root 730 764 thermal-engine
root 730 766 thermal-engine
root 730 768 thermal-engine
root 730 769 thermal-engine
root 730 770 thermal-engine
root 730 771 thermal-engine
root 730 772 thermal-engine
root 730 774 thermal-engine
root 730 775 thermal-engine
root 730 776 thermal-engine
root 730 777 thermal-engine
root 730 779 thermal-engine
root 730 780 thermal-engine
root 730 782 thermal-engine
root 730 783 thermal-engine
root 730 784 thermal-engine
root 730 785 thermal-engine
root 730 786 thermal-engine
root 730 788 thermal-engine
root 730 789 thermal-engine
root 730 790 thermal-engine
root 730 791 thermal-engine
root 730 792 thermal-engine
root 730 794 thermal-engine
root 730 795 thermal-engine
root 730 796 thermal-engine
root 730 797 thermal-engine
root 730 798 thermal-engine
root 730 799 thermal-engine
root 730 800 thermal-engine
root 730 801 thermal-engine
root 730 803 thermal-engine
root 730 804 thermal-engine
root 730 805 thermal-engine
root 730 806 thermal-engine
root 730 808 thermal-engine
root 730 809 thermal-engine
root 730 810 thermal-engine
root 730 811 thermal-engine
root 730 814 thermal-engine
root 730 815 thermal-engine
root 730 817 thermal-engine
root 730 818 thermal-engine
root 730 820 thermal-engine
root 730 821 thermal-engine
root 730 822 thermal-engine
root 730 823 thermal-engine
root 730 824 thermal-engine
root 730 832 thermal-engine
root 730 833 thermal-engine
root 730 834 thermal-engine
root 730 839 thermal-engine
root 730 840 thermal-engine
root 730 841 thermal-engine
root 730 842 thermal-engine
root 730 843 thermal-engine
root 730 1244 thermal-engine
root 730 1245 thermal-engine
system 731 731 allocator@1.0-s
system 732 732 vr_hwc
system 732 765 Binder:732_1
system 732 767 HwBinder:732_1
system 732 781 Binder:732_2
audioserver 733 733 audio@2.0-servi
audioserver 733 1111 audio@2.0-servi
audioserver 733 1118 audio@2.0-servi
audioserver 733 1119 HwBinder:733_1
audioserver 733 1164 HwBinder:733_1
audioserver 733 1165 HwBinder:733_2
audioserver 733 1347 HwBinder:733_3
audioserver 733 2714 HwBinder:733_4
audioserver 733 2763 writer
audioserver 733 11695 HwBinder:733_5
bluetooth 734 734 bluetooth@1.0-s
bluetooth 734 746 HwBinder:734_1
root 735 735 irq/254-wcd9xxx
cameraserver 736 736 provider@2.4-se
cameraserver 736 1989 HwBinder:736_1
cameraserver 736 1999 CAM_imgTh
cameraserver 736 2000 CAM_imgTh
cameraserver 736 2001 CAM_imgTh
cameraserver 736 2002 CAM_imgTh
cameraserver 736 2003 CAM_imgTh
cameraserver 736 2004 CAM_imgTh
cameraserver 736 2005 CAM_imgTh
cameraserver 736 2006 CAM_imgTh
cameraserver 736 2007 CAM_imgTh
cameraserver 736 2008 CAM_imgTh
cameraserver 736 2009 CAM_imgTh
cameraserver 736 2010 CAM_imgTh
cameraserver 736 2011 CAM_imgTh
cameraserver 736 2012 CAM_imgTh
cameraserver 736 2013 CAM_imgTh
cameraserver 736 2014 CAM_imgTh
cameraserver 736 2015 CAM_imgTh
cameraserver 736 2016 CAM_imgTh
cameraserver 736 2017 CAM_imgTh
cameraserver 736 2018 CAM_imgTh
cameraserver 736 2030 android.hardwar
cameraserver 736 2048 CAM_gyro_sens
cameraserver 736 2101 HwBinder:736_1
cameraserver 736 14831 HwBinder:736_2
cameraserver 736 14832 HwBinder:736_3
cameraserver 736 14856 CAM_startsensor
cameraserver 736 14857 CAM_startsensor
cameraserver 736 21484 HwBinder:736_4
media 737 737 cas@1.0-service
media 737 23185 HwBinder:737_1
media 737 23186 HwBinder:737_2
system 738 738 contexthub@1.0-
system 738 754 android.hardwar
media 739 739 drm@1.0-service
media 739 846 HwBinder:739_1
media 739 23188 HwBinder:739_2
media 739 23190 HwBinder:739_3
media 740 740 drm@1.0-service
media 740 23189 HwBinder:740_1
media 740 23191 HwBinder:740_2
media 741 741 drm@1.1-service
media 741 23187 HwBinder:741_1
media 741 23192 HwBinder:741_2
media 741 23193 HwBinder:741_3
media 741 23194 HwBinder:741_4
system 742 742 dumpstate@1.0-s
gps 743 743 gnss@1.0-servic
gps 743 1563 Loc_hal
gps 743 1614 Loc_hal
gps 743 1617 Loc_hal
gps 743 1620 Loc_hal
gps 743 1630 Loc_hal
gps 743 1634 Loc_hal
gps 743 1635 Loc_hal
gps 743 1637 Loc_hal
gps 743 1638 Loc_hal
system 744 744 health@2.0-serv
system 745 745 light@2.0-servi
system 748 748 memtrack@1.0-se
system 756 756 neuralnetworks@
system 756 23195 HwBinder:756_1
system 756 23196 HwBinder:756_2
nfc 759 759 nfc@1.0-service
system 760 760 oemlock@1.0-ser
root 761 761 oemlock-bridge
system 773 773 power@1.2-servi
system 773 844 NodeLooperThrea
system 773 845 android.hardwar
system 778 778 sensors@1.0-ser
system 778 857 android.hardwar
system 778 858 android.hardwar
system 778 863 android.hardwar
system 778 981 android.hardwar
system 778 983 android.hardwar
system 778 984 android.hardwar
system 778 989 android.hardwar
system 778 999 android.hardwar
system 778 1000 android.hardwar
system 778 1001 android.hardwar
system 778 1003 android.hardwar
system 778 1004 android.hardwar
system 778 1013 android.hardwar
system 778 1015 android.hardwar
system 778 1022 android.hardwar
system 778 1023 android.hardwar
system 778 1034 android.hardwar
system 778 1035 android.hardwar
system 778 1044 android.hardwar
system 778 1045 android.hardwar
system 778 1048 android.hardwar
system 778 1049 android.hardwar
system 778 1050 android.hardwar
system 778 1051 android.hardwar
system 778 1057 android.hardwar
system 778 1058 android.hardwar
system 778 1060 android.hardwar
system 778 1061 android.hardwar
system 778 1062 android.hardwar
system 778 1063 android.hardwar
system 778 1067 android.hardwar
system 778 1068 android.hardwar
system 778 1073 android.hardwar
system 778 1074 android.hardwar
system 778 1076 android.hardwar
system 778 1077 android.hardwar
system 778 1078 android.hardwar
system 778 1079 android.hardwar
system 778 1083 android.hardwar
system 778 1084 android.hardwar
system 778 1086 android.hardwar
system 778 1087 HwBinder:778_1
system 778 1308 sensors@1.0-ser
system 778 1309 sensors@1.0-ser
system 778 1310 sensors@1.0-ser
root 787 787 usb@1.1-service
root 787 957 HwBinder:787_1
root 787 966 usb@1.1-service
root 787 1355 usb@1.1-service
system 793 793 vibrator@1.2-se
system 802 802 vr@1.0-service.
wifi 807 807 offload@1.0-ser
wifi 807 855 android.hardwar
wifi 812 812 android.hardwar
ese 813 813 esed
root 816 816 msm_irqbalance
system 819 819 pm-service
system 819 851 POSIX timer 0
system 819 852 POSIX timer 1
system 819 853 POSIX timer 2
system 819 860 pm-service
system 819 861 Binder:819_1
system 819 866 Binder:819_2
system 819 949 Binder:819_3
system 819 960 Binder:819_4
system 825 825 sensors.qcom
system 825 856 sensors.qcom
system 825 864 sensors.qcom
system 825 868 sensors.qcom
system 825 875 sensors.qcom
system 825 876 sensors.qcom
system 825 877 sensors.qcom
system 825 878 sensors.qcom
system 825 880 sensors.qcom
system 825 881 sensors.qcom
system 825 979 sensors.qcom
system 825 980 sensors.qcom
nobody 827 827 rmt_storage
nobody 827 1205 rmt_storage
nobody 827 1206 rmt_storage
nobody 827 1207 rmt_storage
nobody 827 1208 rmt_storage
system 828 828 tftp_server
system 829 829 pd-mapper
system 829 862 pd-mapper
audioserver 830 830 audioserver
audioserver 830 977 HwBinder:830_1
audioserver 830 988 HwBinder:830_2
audioserver 830 1121 ApmTone
audioserver 830 1122 ApmAudio
audioserver 830 1123 ApmOutput
audioserver 830 1124 Binder:830_1
audioserver 830 1125 Binder:830_2
audioserver 830 1166 HwBinder:830_3
audioserver 830 1167 FastMixer
audioserver 830 1168 AudioOut_D
audioserver 830 1169 FastMixer
audioserver 830 1170 AudioOut_15
audioserver 830 1171 AudioOut_1D
audioserver 830 1172 FastMixer
audioserver 830 1173 AudioOut_25
audioserver 830 1174 AudioOut_2D
audioserver 830 1175 FastMixer
audioserver 830 1176 AudioOut_35
audioserver 830 1274 soundTrigger cb
audioserver 830 1488 Binder:830_3
audioserver 830 2212 Binder:830_4
audioserver 830 4011 Binder:830_5
audioserver 830 12424 Binder:830_6
audioserver 830 27475 Binder:830_7
audioserver 830 8696 Binder:830_8
audioserver 830 11301 Binder:830_9
audioserver 830 14272 Binder:830_A
audioserver 830 6771 Binder:830_B
audioserver 830 2083 Binder:830_C
system 831 831 bufferhubd
root 835 835 lmkd
system 836 836 performanced
system 837 837 thermalserviced
system 837 867 HwBinder:837_1
system 837 869 HwBinder:837_2
system 838 838 Binder:838_2
system 838 850 Binder:838_1
root 854 854 msm_thermal:fre
root 859 859 msm_thermal:the
root 865 865 qmi_hndl0000000
root 873 873 modem
system 874 874 pm-proxy
system 874 886 Binder:874_1
system 874 887 Binder:874_2
system 874 888 Binder:874_3
root 879 879 subsystem_ramdu
nobody 882 882 traced
nobody 883 883 traced_probes
media 884 884 adsprpcd
media 884 910 adsprpcd
media 884 913 adsprpcd
system 885 885 imsqmidaemon
system 885 894 imsqmidaemon
radio 890 890 cnd
radio 890 939 cnd
radio 890 946 HwBinder:890_1
radio 890 947 cnd
radio 890 1268 cnd
radio 890 1292 cnd
root 892 892 kworker/3:1H
radio 893 893 netmgrd
root 893 944 netmgrd
radio 893 965 netmgrd
radio 893 972 HwBinder:893_1
radio 893 1007 netmgrd
radio 893 1008 netmgrd
radio 893 1009 netmgrd
radio 893 1149 netmgrd
radio 893 1150 netmgrd
radio 893 1269 netmgrd
radio 893 1375 netmgrd
radio 893 1378 netmgrd
radio 893 1379 netmgrd
radio 893 1380 netmgrd
radio 893 1395 netmgrd
radio 893 1396 netmgrd
radio 893 1398 netmgrd
radio 893 1399 netmgrd
radio 893 1415 netmgrd
radio 893 1416 netmgrd
radio 893 1417 netmgrd
radio 893 1418 netmgrd
radio 893 1429 netmgrd
radio 893 1430 netmgrd
radio 893 1431 netmgrd
radio 893 1433 netmgrd
radio 893 1509 netmgrd
radio 893 1517 netmgrd
radio 893 1520 netmgrd
radio 893 1521 netmgrd
radio 893 1602 netmgrd
radio 893 1603 netmgrd
radio 893 1619 netmgrd
radio 893 1621 netmgrd
radio 893 1622 netmgrd
radio 893 1723 netmgrd
radio 893 1726 netmgrd
radio 893 1729 netmgrd
radio 893 1730 netmgrd
radio 893 1819 netmgrd
radio 893 1829 netmgrd
radio 893 1831 netmgrd
radio 893 1886 netmgrd
radio 893 1893 netmgrd
radio 893 1894 netmgrd
radio 893 1895 netmgrd
radio 893 1896 netmgrd
radio 893 1898 netmgrd
radio 893 1900 netmgrd
radio 893 1902 netmgrd
radio 893 1903 netmgrd
radio 893 1906 netmgrd
radio 893 1907 netmgrd
radio 893 1908 netmgrd
radio 893 1909 netmgrd
radio 893 1917 netmgrd
radio 893 1920 netmgrd
radio 893 1921 netmgrd
radio 893 1922 netmgrd
radio 893 1927 netmgrd
radio 893 1928 netmgrd
radio 893 1929 netmgrd
radio 893 1930 netmgrd
radio 893 1940 netmgrd
radio 893 1945 netmgrd
radio 893 1946 netmgrd
radio 893 1947 netmgrd
radio 893 1955 netmgrd
radio 893 1956 netmgrd
radio 893 1957 netmgrd
radio 893 1958 netmgrd
radio 893 1972 netmgrd
radio 893 1973 netmgrd
radio 893 1974 netmgrd
radio 893 1975 netmgrd
radio 893 1978 netmgrd
radio 893 1979 netmgrd
radio 893 1980 netmgrd
radio 893 1981 netmgrd
radio 897 897 port-bridge
radio 897 915 port-bridge
radio 897 916 port-bridge
radio 898 898 ipacm
radio 898 951 HwBinder:898_1
radio 898 952 ipacm
radio 898 953 netlink socket
radio 898 954 ipa driver ntfy
radio 899 899 qti
radio 899 928 qti
radio 899 3064 qti
radio 899 3065 qti
radio 899 3066 qti
cameraserver 900 900 cameraserver
cameraserver 900 1018 HwBinder:900_1
cameraserver 900 1043 HwBinder:900_2
cameraserver 900 2100 HwBinder:900_3
cameraserver 900 2102 Binder:900_1
cameraserver 900 2177 Binder:900_2
cameraserver 900 14917 Binder:900_3
cameraserver 900 14918 Binder:900_4
cameraserver 900 14976 Binder:900_5
cameraserver 900 20996 Binder:900_6
cameraserver 900 16659 Binder:900_7
cameraserver 900 22046 Binder:900_8
drm 901 901 drmserver
drm 901 1024 Binder:901_1
drm 901 8440 Binder:901_2
incidentd 902 902 Binder:902_2
incidentd 902 933 Binder:902_1
incidentd 902 936 Binder:902_3
root 903 903 Binder:903_2
root 903 931 Binder:903_1
root 903 1263 Binder:903_3
root 903 1287 Binder:903_4
root 903 1301 Binder:903_5
root 903 1354 Binder:903_6
root 903 5120 Binder:903_7
root 903 5197 Binder:903_8
root 903 5243 Binder:903_9
root 903 11678 Binder:903_A
root 903 12088 Binder:903_B
keystore 904 904 keystore
keystore 904 997 HwBinder:904_1
media 905 905 mediadrmserver
media 905 945 Binder:905_1
mediaex 906 906 mediaextractor
mediaex 906 1052 Binder:906_1
mediaex 906 1977 Binder:906_2
mediaex 906 3987 Binder:906_3
mediaex 906 1985 Binder:906_4
mediaex 906 14515 Binder:906_5
mediaex 906 26203 Binder:906_6
mediaex 906 12336 Binder:906_7
media 907 907 mediametrics
media 907 1053 Binder:907_1
media 907 14381 Binder:907_2
media 907 14382 Binder:907_3
media 908 908 mediaserver
media 908 1065 Binder:908_1
media 908 1518 HwBinder:908_1
media 908 1771 Binder:908_2
media 908 1772 Binder:908_3
media 908 2569 MediaClock
media 908 2570 NuPlayerDriver
media 908 2572 generic
media 908 2704 NuPlayerRendere
media 908 2705 NPDecoder
media 908 2706 NPDecoder-CL
media 908 18653 Binder:908_4
media 908 25126 Binder:908_5
media 908 28451 Binder:908_6
statsd 909 909 Binder:909_2
statsd 909 961 Binder:909_1
statsd 909 962 Binder:909_2
statsd 909 970 Binder:909_3
root 911 911 storaged
root 911 1036 storaged
root 911 1037 Binder:911_1
root 911 1038 HwBinder:911_1
wifi 912 912 wificond
mediacodec 914 914 omx@1.0-service
mediacodec 914 1064 Binder:914_1
mediacodec 914 1066 Binder:914_2
mediacodec 914 1090 HwBinder:914_1
mediacodec 914 1091 HwBinder:914_2
mediacodec 914 1875 HwBinder:914_2
mediacodec 914 1876 HwBinder:914_2
mediacodec 914 1970 HwBinder:914_3
mediacodec 914 2707 .vorbis.decoder
mediacodec 914 2708 OMXCallbackDisp
mediacodec 914 2764 HwBinder:914_4
mediacodec 914 27073 HwBinder:914_5
mediacodec 914 27076 HwBinder:914_6
mediacodec 914 27078 HwBinder:914_7
mediacodec 914 14333 HwBinder:914_8
mediacodec 914 14409 HwBinder:914_9
mediacodec 914 14511 HwBinder:914_A
mediacodec 914 6795 HwBinder:914_B
mediacodec 914 6858 HwBinder:914_C
mediacodec 914 14972 HwBinder:914_D
mediacodec 914 26212 HwBinder:914_E
mediacodec 914 32727 HwBinder:914_F
mediacodec 914 332 HwBinder:914_10
mediacodec 914 15944 HwBinder:914_11
mediacodec 914 15945 HwBinder:914_12
mediacodec 914 2823 HwBinder:914_13
radio 917 917 rild
radio 917 1046 rild
radio 917 1055 rild
radio 917 1210 Binder:917_1
radio 917 1213 rild
radio 917 1215 Binder:917_2
radio 917 1221 rild
radio 917 1222 rild
radio 917 1223 HwBinder:917_1
radio 917 1224 rild
radio 917 1225 rild
radio 917 1226 rild
radio 917 1228 rild
radio 917 1229 rild
radio 917 1230 rild
radio 917 1231 rild
radio 917 1321 rild
radio 917 1322 rild
radio 917 1323 rild
radio 917 1324 rild
radio 917 1325 rild
radio 917 1326 rild
radio 917 1329 rild
radio 917 1330 rild
radio 917 1332 rild
radio 917 1334 rild
radio 917 1336 rild
radio 917 1349 rild
radio 917 1351 rild
radio 917 1358 rild
radio 917 1360 rild
radio 917 1362 rild
radio 917 1363 rild
radio 917 1364 rild
radio 917 1366 rild
radio 917 1368 rild
radio 917 1369 rild
radio 917 1370 rild
radio 917 1371 rild
radio 917 1373 rild
radio 917 1374 rild
radio 917 1377 rild
system 920 920 folio_daemon
root 921 921 ipawq15
root 922 922 iparepwq15
system 923 923 cnss-daemon
system 923 963 cnss-daemon
system 923 964 cnss-daemon
system 923 1209 Binder:923_1
system 923 1212 cnss-daemon
system 923 1214 Binder:923_2
system 923 1307 cnss-daemon
system 923 3731 cnss-daemon
gps 924 924 loc_launcher
gps 924 955 loc_launcher
system 925 925 chre
system 925 968 chre
system 925 975 chre
system 925 976 chre
system 925 1189 chre
system 925 1190 chre
system 926 926 gatekeeperd
system 926 987 HwBinder:926_1
root 927 927 Binder:927_2
root 927 986 Binder:927_1
tombstoned 929 929 tombstoned
root 932 932 update_engine
root 932 1006 HwBinder:932_1
system 935 935 fingerprint@2.1
system 935 1136 android.hardwar
system 935 1137 android.hardwar
system 935 1139 HwBinder:935_1
root 938 938 ipawq48
root 942 942 iparepwq48
system 950 950 imsdatadaemon
system 950 1019 imsdatadaemon
system 950 1040 imsdatadaemon
system 950 1041 imsdatadaemon
system 950 1042 imsdatadaemon
system 950 1270 imsdatadaemon
system 950 1290 imsdatadaemon
root 969 969 ipawq13
root 985 985 iparepwq13
root 1002 1002 ipa_A7_svc
root 1012 1012 qmi_hndl0000000
root 1016 1016 clnt_req
root 1017 1017 clnt_req
root 1021 1021 clnt_resp
root 1116 1116 wdsp_glink_wq
system 1151 1151 system_server
system 1151 1156 Signal Catcher
system 1151 1157 ADB-JDWP Connec
system 1151 1158 ReferenceQueueD
system 1151 1159 FinalizerDaemon
system 1151 1160 FinalizerWatchd
system 1151 1161 HeapTaskDaemon
system 1151 1162 Binder:1151_1
system 1151 1163 Binder:1151_2
system 1151 1184 android.bg
system 1151 1185 ActivityManager
system 1151 1186 android.ui
system 1151 1187 ActivityManager
system 1151 1188 ActivityManager
system 1151 1193 batterystats-wo
system 1151 1194 HwBinder:1151_1
system 1151 1195 FileObserver
system 1151 1196 android.fg
system 1151 1197 android.io
system 1151 1198 android.display
system 1151 1200 CpuTracker
system 1151 1203 PowerManagerSer
system 1151 1204 BatteryStats_wa
system 1151 1216 PackageManager
system 1151 1217 PackageManager
system 1151 1266 PackageInstalle
system 1151 1277 android.anim
system 1151 1278 android.anim.lf
system 1151 1281 HealthServiceRe
system 1151 1282 SensorEventAckR
system 1151 1283 SensorService
system 1151 1284 AccountManagerS
system 1151 1285 SettingsProvide
system 1151 1286 AlarmManager
system 1151 1289 window_tracing
system 1151 1295 UEventObserver
system 1151 1296 HwBinder:1151_2
system 1151 1297 InputDispatcher
system 1151 1298 InputReader
system 1151 1299 NetworkWatchlis
system 1151 1302 StorageManagerS
system 1151 1311 NetdConnector
system 1151 1313 NetworkStats
system 1151 1314 NetworkPolicy
system 1151 1315 tworkPolicy.uid
system 1151 1316 WifiService
system 1151 1317 WifiStateMachin
system 1151 1319 WifiScanningSer
system 1151 1320 WifiP2pService
system 1151 1327 ConnectivitySer
system 1151 1331 roid.pacmanager
system 1151 1333 NsdService
system 1151 1335 mDnsConnector
system 1151 1337 notification-sq
system 1151 1339 ranker
system 1151 1340 onProviders.ECP
system 1151 1341 DeviceStorageMo
system 1151 1346 AudioService
system 1151 1348 Binder:1151_3
system 1151 1352 HwBinder:1151_3
system 1151 1356 ConnectivityThr
system 1151 1357 pool-3-thread-1
system 1151 1359 GraphicsStats-d
system 1151 1361 SliceManagerSer
system 1151 1365 CameraService_p
system 1151 1393 SyncHandler-0
system 1151 1397 wifiRttService
system 1151 1400 wifiAwareServic
system 1151 1402 EthernetService
system 1151 1403 TaskSnapshotPer
system 1151 1405 PhotonicModulat
system 1151 1409 LazyTaskWriterT
system 1151 1434 Binder:1151_4
system 1151 1435 UsbService host
system 1151 1436 Thread-3
system 1151 1440 SoundPool
system 1151 1441 SoundPoolThread
system 1151 1444 NetworkStatsObs
system 1151 1480 watchdog
system 1151 1516 EmergencyAfford
system 1151 1560 NetworkTimeUpda
system 1151 1604 Binder:1151_5
system 1151 1613 Binder:1151_6
system 1151 1618 Binder:1151_7
system 1151 1623 Binder:1151_8
system 1151 1624 Binder:1151_9
system 1151 1752 BluetoothRouteM
system 1151 1753 AudioPortEventH
system 1151 1756 uteStateMachine
system 1151 1757 CallAudioModeSt
system 1151 1840 queued-work-loo
system 1151 1990 HwBinder:1151_4
system 1151 2049 hidl_ssvc_poll
system 1151 2103 UsbDebuggingMan
system 1151 2173 backup
system 1151 2478 Binder:1151_A
system 1151 2566 Binder:1151_B
system 1151 2568 Binder:1151_C
system 1151 2620 Binder:1151_D
system 1151 2875 AsyncQueryWorke
system 1151 3041 Binder:1151_E
system 1151 3581 Binder:1151_F
system 1151 3619 Binder:1151_10
system 1151 3622 Binder:1151_11
system 1151 3754 Binder:1151_12
system 1151 4982 Binder:1151_13
system 1151 4983 Binder:1151_14
system 1151 6432 HwBinder:1151_5
system 1151 11249 RenderThread
system 1151 17881 Binder:1151_15
system 1151 25177 Binder:1151_16
system 1151 30445 Binder:1151_17
system 1151 6644 Binder:1151_18
system 1151 13171 Binder:1151_19
system 1151 27982 Binder:1151_1A
system 1151 1345 Binder:1151_1B
system 1151 13277 Binder:1151_1C
system 1151 14267 Binder:1151_1D
system 1151 26698 Binder:1151_1E
system 1151 26712 Binder:1151_1F
system 1151 28773 Binder:1151_20
system 1151 26478 pool-4-thread-2
root 1199 1199 mpss_IPCRTR
root 1201 1201 qmi_hndl0000000
root 1202 1202 qmi_hndl0000000
root 1219 1219 irq/157-arm-smm
root 1220 1220 irq/162-arm-smm
root 1246 1246 qmi_hndl0000000
root 1304 1304 kworker/1:1H
root 1305 1305 qmi_hndl0000000
root 1382 1382 ipawq14
root 1383 1383 iparepwq14
root 1384 1384 ipawq49
root 1385 1385 iparepwq49
radio 1452 1452 le.modemservice
radio 1452 1465 Jit thread pool
radio 1452 1467 Signal Catcher
radio 1452 1468 ADB-JDWP Connec
radio 1452 1470 ReferenceQueueD
radio 1452 1472 FinalizerDaemon
radio 1452 1474 FinalizerWatchd
radio 1452 1476 HeapTaskDaemon
radio 1452 1479 Binder:1452_1
radio 1452 1481 Binder:1452_2
radio 1452 1535 Profile Saver
radio 1452 1549 Binder:1452_3
radio 1452 1552 ModemService
radio 1452 1559 queued-work-loo
u0_a68 1469 1469 ndroid.systemui
u0_a68 1469 1482 Jit thread pool
u0_a68 1469 1483 Signal Catcher
u0_a68 1469 1484 ADB-JDWP Connec
u0_a68 1469 1486 ReferenceQueueD
u0_a68 1469 1487 FinalizerDaemon
u0_a68 1469 1489 FinalizerWatchd
u0_a68 1469 1490 HeapTaskDaemon
u0_a68 1469 1491 Binder:1469_1
u0_a68 1469 1492 Binder:1469_2
u0_a68 1469 1499 Binder:1469_3
u0_a68 1469 1734 smartspace-back
u0_a68 1469 1758 pool-1-thread-1
u0_a68 1469 1764 SoundPool
u0_a68 1469 1765 SoundPoolThread
u0_a68 1469 1774 Recents-HighRes
u0_a68 1469 1780 Recents-TaskRes
u0_a68 1469 1783 recents.fg
u0_a68 1469 1789 async_sensor
u0_a68 1469 1805 VolumeDialogCon
u0_a68 1469 1808 Binder:1469_4
u0_a68 1469 1820 SysUiBg
u0_a68 1469 1853 queued-work-loo
u0_a68 1469 1862 RenderThread
u0_a68 1469 1868 ConnectivityThr
u0_a68 1469 1869 WifiTracker{9ff
u0_a68 1469 1874 TimeTick
u0_a68 1469 1911 Keyboard
u0_a68 1469 1965 HwBinder:1469_1
u0_a68 1469 1971 pool-3-thread-1
u0_a68 1469 1995 Binder:1469_5
u0_a68 1469 2029 pool-4-thread-1
u0_a68 1469 2057 hwuiTask1
u0_a68 1469 2058 Thread-2
u0_a68 1469 5522 Binder:1469_6
u0_a68 1469 6051 FlashlightContr
u0_a68 1469 10844 Binder:1469_7
u0_a68 1469 10845 Binder:1469_8
u0_a68 1469 11688 Binder:1469_9
u0_a68 1469 31390 Binder:1469_A
u0_a68 1469 21670 Binder:1469_B
u0_a68 1469 12671 Binder:1469_C
u0_a98 1529 1529 reel.wallpapers
u0_a98 1529 1541 Jit thread pool
u0_a98 1529 1542 Signal Catcher
u0_a98 1529 1544 ADB-JDWP Connec
u0_a98 1529 1545 ReferenceQueueD
u0_a98 1529 1546 FinalizerDaemon
u0_a98 1529 1547 FinalizerWatchd
u0_a98 1529 1548 HeapTaskDaemon
u0_a98 1529 1550 Binder:1529_1
u0_a98 1529 1551 Binder:1529_2
u0_a98 1529 1553 Binder:1529_3
u0_a98 1529 1592 Profile Saver
u0_a98 1529 1852 HwBinder:1529_1
u0_a98 1529 1854 GLThread 36
u0_a98 1529 1857 SoundPool
u0_a98 1529 1858 SoundPoolThread
u0_a98 1529 1867 AsynchExecutor-
u0_a98 1529 9851 Binder:1529_4
gps 1536 1536 lowi-server
gps 1536 1579 lowi-server
gps 1536 1580 lowi-server
gps 1536 1581 lowi-server
gps 1536 1582 lowi-server
gps 1538 1538 xtra-daemon
gps 1538 1600 pcid-lo
gps 1538 1606 pcid-lo
gps 1538 1608 pcid-lo
gps 1538 1610 pcid-lo
gps 1538 1615 LocTime
gps 1538 1616 LocTime
radio 1554 1554 .qcrilmsgtunnel
radio 1554 1564 Jit thread pool
radio 1554 1565 Signal Catcher
radio 1554 1566 ADB-JDWP Connec
radio 1554 1567 ReferenceQueueD
radio 1554 1568 FinalizerDaemon
radio 1554 1569 FinalizerWatchd
radio 1554 1570 HeapTaskDaemon
radio 1554 1571 Binder:1554_1
radio 1554 1572 Binder:1554_2
radio 1554 1649 Binder:1554_3
radio 1554 1677 Profile Saver
radio 1554 1695 HwBinder:1554_1
radio 1554 1714 queued-work-loo
system 1651 1651 .dataservices
system 1651 1657 Jit thread pool
system 1651 1658 Signal Catcher
system 1651 1659 ADB-JDWP Connec
system 1651 1660 ReferenceQueueD
system 1651 1661 FinalizerDaemon
system 1651 1662 FinalizerWatchd
system 1651 1663 HeapTaskDaemon
system 1651 1664 Binder:1651_1
system 1651 1665 Binder:1651_2
system 1651 1673 Binder:1651_3
system 1651 1718 Profile Saver
system 1651 1721 cneservice_thre
system 1651 1724 CNEReceiver
system 1651 1728 ConnectivityThr
system 1651 1731 MainEventThread
system 1651 1733 HwBinder:1651_1
system 1651 4118 queued-work-loo
radio 1666 1666 elephonyservice
radio 1666 1674 Jit thread pool
radio 1666 1675 Signal Catcher
radio 1666 1676 ADB-JDWP Connec
radio 1666 1684 ReferenceQueueD
radio 1666 1685 FinalizerDaemon
radio 1666 1686 FinalizerWatchd
radio 1666 1687 HeapTaskDaemon
radio 1666 1688 Binder:1666_1
radio 1666 1698 Binder:1666_2
radio 1666 1722 Profile Saver
radio 1666 2502 Binder:1666_3
radio 1666 2504 HwBinder:1666_1
radio 1666 2511 queued-work-loo
radio 1678 1678 m.android.phone
radio 1678 1694 Jit thread pool
radio 1678 1696 Signal Catcher
radio 1678 1697 ADB-JDWP Connec
radio 1678 1699 ReferenceQueueD
radio 1678 1700 FinalizerDaemon
radio 1678 1702 FinalizerWatchd
radio 1678 1703 HeapTaskDaemon
radio 1678 1704 Binder:1678_1
radio 1678 1706 Binder:1678_2
radio 1678 1719 Binder:1678_3
radio 1678 1737 Profile Saver
radio 1678 1806 HwBinder:1678_1
radio 1678 1834 EuiccConnector
radio 1678 1837 android.bg
radio 1678 1846 queued-work-loo
radio 1678 1860 GsmCellBroadcas
radio 1678 1861 GsmInboundSmsHa
radio 1678 1863 CellBroadcastHa
radio 1678 1864 CdmaInboundSmsH
radio 1678 1865 CdmaServiceCate
radio 1678 1871 DcHandlerThread
radio 1678 1877 Binder:1678_4
radio 1678 1881 ImsServiceContr
radio 1678 1882 NetworkService
radio 1678 1883 DataService
radio 1678 1899 org.codeaurora.
radio 1678 1901 ImsConfigImplHa
radio 1678 1937 CellularNetwork
radio 1678 1938 CellularDataSer
radio 1678 1943 Binder:1678_5
radio 1678 2876 ervice.Executor
radio 1678 2877 ConnectivityThr
radio 1678 4600 AudioTrack
radio 1678 4650 Binder:1678_6
radio 1678 4900 Binder:1678_7
radio 1678 4927 Binder:1678_8
radio 1678 21050 Binder:1678_9
radio 1678 23491 Binder:1678_A
radio 1678 28470 Binder:1678_B
radio 1678 18161 Binder:1678_C
radio 1678 5303 Binder:1678_D
u0_a24 1798 1798 id.ext.services
u0_a24 1798 1807 Jit thread pool
u0_a24 1798 1809 Signal Catcher
u0_a24 1798 1810 ADB-JDWP Connec
u0_a24 1798 1814 ReferenceQueueD
u0_a24 1798 1815 FinalizerDaemon
u0_a24 1798 1816 FinalizerWatchd
u0_a24 1798 1817 HeapTaskDaemon
u0_a24 1798 1818 Binder:1798_1
u0_a24 1798 1827 Binder:1798_2
u0_a24 1798 1830 Binder:1798_3
u0_a24 1798 1833 Binder:1798_4
u0_a24 1798 1838 Profile Saver
u0_a24 1798 2218 queued-work-loo
root 2107 2107 irq/35-1008000.
nfc 2195 2195 com.android.nfc
nfc 2195 2200 Jit thread pool
nfc 2195 2202 Signal Catcher
nfc 2195 2203 ADB-JDWP Connec
nfc 2195 2204 ReferenceQueueD
nfc 2195 2205 FinalizerDaemon
nfc 2195 2206 FinalizerWatchd
nfc 2195 2207 HeapTaskDaemon
nfc 2195 2208 Binder:2195_1
nfc 2195 2209 Binder:2195_2
nfc 2195 2220 Profile Saver
nfc 2195 2422 HwBinder:2195_1
nfc 2195 4468 Binder:2195_3
nfc 2195 4821 queued-work-loo
nfc 2195 4837 Binder:2195_4
nfc 2195 5207 Binder:2195_5
nfc 2195 11202 Binder:2195_6
nfc 2195 13475 Binder:2195_7
nfc 2195 23492 Binder:2195_8
nfc 2195 8048 Binder:2195_9
nfc 2195 9264 Binder:2195_A
nfc 2195 21748 Binder:2195_B
nfc 2195 26117 AsyncTask #454
nfc 2195 26428 AsyncTask #455
u0_a10 2213 2213 elligence.sense
u0_a10 2213 2219 Jit thread pool
u0_a10 2213 2221 Signal Catcher
u0_a10 2213 2222 ADB-JDWP Connec
u0_a10 2213 2223 ReferenceQueueD
u0_a10 2213 2225 FinalizerDaemon
u0_a10 2213 2228 FinalizerWatchd
u0_a10 2213 2231 HeapTaskDaemon
u0_a10 2213 2233 Binder:2213_1
u0_a10 2213 2234 Binder:2213_2
u0_a10 2213 2249 Binder:2213_3
u0_a10 2213 2286 Profile Saver
u0_a10 2213 2364 GoogleApiHandle
u0_a10 2213 2400 superpacks-cont
u0_a10 2213 2432 Background #0
u0_a10 2213 2434 Background #1
u0_a10 2213 2458 GAC_Executor[0]
u0_a10 2213 3350 Binder:2213_4
u0_a10 2213 26442 Primes-1
u0_a10 2213 26752 Primes-2
radio 2224 2224 .ims.rcsservice
radio 2224 2235 Jit thread pool
radio 2224 2236 Signal Catcher
radio 2224 2237 ADB-JDWP Connec
radio 2224 2238 ReferenceQueueD
radio 2224 2239 FinalizerDaemon
radio 2224 2240 FinalizerWatchd
radio 2224 2241 HeapTaskDaemon
radio 2224 2244 Binder:2224_1
radio 2224 2255 Binder:2224_2
radio 2224 2260 Binder:2224_3
radio 2224 2292 Profile Saver
radio 2224 2349 Listener
radio 2224 2390 queued-work-loo
radio 2224 2830 EABServiceHandl
radio 2224 3513 Binder:2224_4
radio 2224 28094 Binder:2224_5
system 2243 2243 RestartDetector
system 2243 2251 Jit thread pool
system 2243 2253 Signal Catcher
system 2243 2254 ADB-JDWP Connec
system 2243 2256 ReferenceQueueD
system 2243 2257 FinalizerDaemon
system 2243 2258 FinalizerWatchd
system 2243 2259 HeapTaskDaemon
system 2243 2261 Binder:2243_1
system 2243 2264 Binder:2243_2
system 2243 2303 Profile Saver
system 2243 3040 Binder:2243_3
system 2243 3042 FileObserver
system 2243 3043 queued-work-loo
u0_a19 2279 2279 s.nexuslauncher
u0_a19 2279 2291 Jit thread pool
u0_a19 2279 2293 Signal Catcher
u0_a19 2279 2294 ADB-JDWP Connec
u0_a19 2279 2295 ReferenceQueueD
u0_a19 2279 2296 FinalizerDaemon
u0_a19 2279 2297 FinalizerWatchd
u0_a19 2279 2299 HeapTaskDaemon
u0_a19 2279 2302 Binder:2279_1
u0_a19 2279 2304 Binder:2279_2
u0_a19 2279 2325 Binder:2279_3
u0_a19 2279 2345 Profile Saver
u0_a19 2279 2352 launcher-loader
u0_a19 2279 2353 UiThreadHelper
u0_a19 2279 2379 GAC_Executor[0]
u0_a19 2279 2380 GoogleApiHandle
u0_a19 2279 2402 pool-1-thread-1
u0_a19 2279 2405 Recents-HighRes
u0_a19 2279 2406 Recents-TaskRes
u0_a19 2279 2408 pool-3-thread-1
u0_a19 2279 2431 qsb-experiments
u0_a19 2279 2456 magnifier pixel
u0_a19 2279 2477 smartspace-load
u0_a19 2279 2500 reflection-thre
u0_a19 2279 2505 GAC_Executor[1]
u0_a19 2279 2506 RenderThread
u0_a19 2279 2535 remote-ui
u0_a19 2279 2558 HwBinder:2279_1
u0_a19 2279 2578 file-logger
u0_a19 2279 2581 queued-work-loo
u0_a19 2279 10277 Binder:2279_4
u0_a19 2279 26790 Binder:2279_5
u0_a19 2279 4129 Binder:2279_6
u0_a125 2305 2305 oogle.vr.vrcore
u0_a125 2305 2311 Jit thread pool
u0_a125 2305 2312 Signal Catcher
u0_a125 2305 2315 ADB-JDWP Connec
u0_a125 2305 2318 ReferenceQueueD
u0_a125 2305 2320 FinalizerDaemon
u0_a125 2305 2321 FinalizerWatchd
u0_a125 2305 2322 HeapTaskDaemon
u0_a125 2305 2324 Binder:2305_1
u0_a125 2305 2326 Binder:2305_2
u0_a125 2305 2329 Binder:2305_3
u0_a125 2305 2377 Profile Saver
u0_a125 2305 2403 GAC_Executor[0]
u0_a125 2305 2411 GAC_Executor[1]
u0_a125 2305 2437 queued-work-loo
u0_a56 2332 2332 ps.pixelmigrate
u0_a56 2332 2338 Jit thread pool
u0_a56 2332 2339 Signal Catcher
u0_a56 2332 2340 ADB-JDWP Connec
u0_a56 2332 2341 ReferenceQueueD
u0_a56 2332 2342 FinalizerDaemon
u0_a56 2332 2343 FinalizerWatchd
u0_a56 2332 2344 HeapTaskDaemon
u0_a56 2332 2346 Binder:2332_1
u0_a56 2332 2358 Binder:2332_2
u0_a56 2332 2428 Profile Saver
u0_a56 2332 2472 pool-1-thread-1
u0_a56 2332 2544 queued-work-loo
u0_a56 2332 2695 Binder:2332_3
u0_a56 2332 3351 Binder:2332_4
u0_a58 2354 2354 oid.setupwizard
u0_a58 2354 2361 Jit thread pool
u0_a58 2354 2362 Signal Catcher
u0_a58 2354 2363 ADB-JDWP Connec
u0_a58 2354 2365 ReferenceQueueD
u0_a58 2354 2366 FinalizerDaemon
u0_a58 2354 2367 FinalizerWatchd
u0_a58 2354 2368 HeapTaskDaemon
u0_a58 2354 2369 Binder:2354_1
u0_a58 2354 2370 Binder:2354_2
u0_a58 2354 2401 Binder:2354_3
u0_a58 2354 2441 Profile Saver
u0_a58 2354 2516 GoogleApiHandle
u0_a58 2354 2522 queued-work-loo
u0_a58 2354 2543 ConnectivityThr
u0_a58 2354 2545 WifiTracker{1b5
u0_a58 2354 2760 Binder:2354_4
u0_a58 2354 3353 Binder:2354_5
u0_a21 2371 2371 ps.miphone.aiai
u0_a21 2371 2381 Jit thread pool
u0_a21 2371 2404 Signal Catcher
u0_a21 2371 2416 ADB-JDWP Connec
u0_a21 2371 2418 ReferenceQueueD
u0_a21 2371 2419 FinalizerDaemon
u0_a21 2371 2420 FinalizerWatchd
u0_a21 2371 2421 HeapTaskDaemon
u0_a21 2371 2429 Binder:2371_1
u0_a21 2371 2442 Binder:2371_2
u0_a21 2371 2444 Binder:2371_3
u0_a21 2371 2490 Profile Saver
u0_a40 2462 2462 gle.android.gms
u0_a40 2462 2482 Jit thread pool
u0_a40 2462 2483 Signal Catcher
u0_a40 2462 2493 ADB-JDWP Connec
u0_a40 2462 2494 ReferenceQueueD
u0_a40 2462 2495 FinalizerDaemon
u0_a40 2462 2496 FinalizerWatchd
u0_a40 2462 2497 HeapTaskDaemon
u0_a40 2462 2498 Binder:2462_1
u0_a40 2462 2499 Binder:2462_2
u0_a40 2462 2553 Profile Saver
u0_a40 2462 2633 FileObserver
u0_a40 2462 2655 GlobalDispatchi
u0_a40 2462 2660 GoogleApiHandle
u0_a40 2462 2673 Binder:2462_3
u0_a40 2462 2685 GlobalScheduler
u0_a40 2462 2806 Binder:2462_4
u0_a40 2462 2859 queued-work-loo
u0_a40 2462 2945 Binder:2462_5
u0_a40 2462 3690 Thread-12
u0_a40 2462 3691 Thread-13
u0_a40 2462 3693 Thread-14
u0_a40 2462 3694 Thread-15
u0_a40 2462 3695 Thread-16
u0_a40 2462 3736 Binder:2462_6
u0_a40 2462 3759 highpool[0]
u0_a40 2462 3767 highpool[1]
u0_a40 2462 3770 AdWorker(Defaul
u0_a40 2462 3771 AdWorker(Defaul
u0_a40 2462 3788 GAC_Executor[1]
u0_a40 2462 3789 Binder:2462_7
u0_a40 2462 3790 GAC_Executor[0]
u0_a40 2462 3807 ConnectivityThr
u0_a40 2462 3864 Binder:2462_8
u0_a40 2462 3871 highpool[2]
u0_a40 2462 3903 Binder:2462_9
u0_a40 2462 3968 Binder:2462_A
u0_a40 2462 4217 Binder:2462_B
u0_a40 2462 4358 Binder:2462_C
u0_a40 2462 4359 Binder:2462_D
u0_a40 2462 4652 Binder:2462_E
u0_a40 2462 4674 Binder:2462_F
u0_a40 2462 4907 highpool[3]
u0_a40 2462 4948 pool-60-thread-
u0_a40 2462 4949 pool-60-thread-
u0_a40 2462 4950 pool-60-thread-
u0_a40 2462 4951 pool-60-thread-
u0_a40 2462 4956 pool-61-thread-
u0_a40 2462 5163 Binder:2462_10
u0_a40 2462 15000 MediaTracker bu
u0_a40 2462 19659 lowpool[824]
u0_a40 2462 19930 lowpool[825]
u0_a40 2462 22554 lowpool[827]
u0_a40 2462 23272 lowpool[828]
u0_a40 2462 26147 peration loader
u0_a40 2462 26148 raService] idle
u0_a40 2462 26160 ERVICES_CHANGED
u0_a40 2462 26161 raService] idle
u0_a40 2462 26162 raService] idle
u0_a40 2462 26163 raService] idle
u0_a40 2462 26164 L_UPDATE_ACTION
u0_a40 2462 26165 raService] idle
u0_a40 2462 26166 raService] idle
u0_a40 2462 26172 AGE_MODULE_APKS
u0_a40 2462 26174 Measurement Wor
u0_a40 2462 26272 lowpool[829]
u0_a40 2462 26282 raService] idle
u0_a40 2462 26685 raService] idle
u0_a40 2462 26686 ERVICES_CHANGED
u0_a40 2462 26695 ERVICES_CHANGED
u0_a40 2462 26696 raService] idle
u0_a40 2462 26699 raService] idle
u0_a40 2462 26701 raService] idle
u0_a40 2484 2484 .gms.persistent
u0_a40 2484 2510 Jit thread pool
u0_a40 2484 2512 Signal Catcher
u0_a40 2484 2513 ADB-JDWP Connec
u0_a40 2484 2514 ReferenceQueueD
u0_a40 2484 2517 FinalizerDaemon
u0_a40 2484 2518 FinalizerWatchd
u0_a40 2484 2520 HeapTaskDaemon
u0_a40 2484 2521 Binder:2484_1
u0_a40 2484 2523 Binder:2484_2
u0_a40 2484 2548 Binder:2484_3
u0_a40 2484 2554 Profile Saver
u0_a40 2484 2624 Binder:2484_4
u0_a40 2484 2625 Binder:2484_5
u0_a40 2484 2627 FileObserver
u0_a40 2484 2652 GlobalDispatchi
u0_a40 2484 2663 GoogleApiHandle
u0_a40 2484 2668 GlobalScheduler
u0_a40 2484 2669 GAC_Executor[0]
u0_a40 2484 2671 FlpThread
u0_a40 2484 2677 queued-work-loo
u0_a40 2484 2681 GAC_Executor[1]
u0_a40 2484 2807 GeofencerStateM
u0_a40 2484 2808 RealContextHub
u0_a40 2484 2809 ConnectivityThr
u0_a40 2484 2810 highpool[0]
u0_a40 2484 2811 highpool[1]
u0_a40 2484 2812 highpool[2]
u0_a40 2484 2813 highpool[3]
u0_a40 2484 2814 GoogleLocationS
u0_a40 2484 2816 MSMuxTR-0
u0_a40 2484 3792 netscheduler-qu
u0_a40 2484 3801 Binder:2484_6
u0_a40 2484 3896 Binder:2484_7
u0_a40 2484 4204 Binder:2484_8
u0_a40 2484 4206 Binder:2484_9
u0_a40 2484 4244 Binder:2484_A
u0_a40 2484 4675 Binder:2484_B
u0_a40 2484 4676 Binder:2484_C
u0_a40 2484 4836 Binder:2484_D
u0_a40 2484 5240 Binder:2484_E
u0_a40 2484 5724 Binder:2484_F
u0_a40 2484 10811 Binder:2484_10
u0_a40 2484 21417 lowpool[412]
u0_a40 2484 17369 lowpool[755]
u0_a40 2484 23058 lowpool[761]
u0_a40 2484 25069 lowpool[763]
u0_a40 2484 25070 lowpool[764]
u0_a40 2484 26158 peration loader
u0_a40 2484 26168 raService] idle
u0_a40 2484 26169 raService] idle
u0_a40 2484 26170 raService] idle
u0_a40 2484 26171 raService] idle
u0_a40 2484 26630 lowpool[765]
u0_a40 2484 26631 lowpool[766]
system 3993 3993 lcomm.telephony
system 3993 3999 Jit thread pool
system 3993 4000 Signal Catcher
system 3993 4001 ADB-JDWP Connec
system 3993 4002 ReferenceQueueD
system 3993 4003 FinalizerDaemon
system 3993 4004 FinalizerWatchd
system 3993 4005 HeapTaskDaemon
system 3993 4006 Binder:3993_1
system 3993 4007 Binder:3993_2
system 3993 4010 Profile Saver
system 3993 4013 Binder:3993_3
system 3993 4014 Thread-2
system 3993 4015 CTSA Inject Thr
system 3993 4016 HwBinder:3993_1
system 3993 4023 queued-work-loo
root 4295 4295 adbd
root 4295 4296 usb ffs open
root 4295 4343 ->transport
root 4295 4344 <-transport
root 4295 26730 shell svc 26729
root 4295 26749 shell svc 26748
root 15030 15030 kworker/4:1
u0_a55 16104 16104 id.defcontainer
u0_a55 16104 16109 Jit thread pool
u0_a55 16104 16110 Signal Catcher
u0_a55 16104 16111 ADB-JDWP Connec
u0_a55 16104 16112 ReferenceQueueD
u0_a55 16104 16113 FinalizerDaemon
u0_a55 16104 16114 FinalizerWatchd
u0_a55 16104 16116 HeapTaskDaemon
u0_a55 16104 16117 Binder:16104_1
u0_a55 16104 16118 Binder:16104_2
u0_a55 16104 16133 Binder:16104_3
u0_a55 16104 16137 Profile Saver
u0_a55 16104 16149 queued-work-loo
u0_a55 16104 16614 Binder:16104_4
root 16505 16505 kworker/u17:0
root 18709 18709 kworker/3:3
root 19512 19512 kworker/5:1
u0_a30 21587 21587 roid.apps.turbo
u0_a30 21587 21592 Jit thread pool
u0_a30 21587 21593 Signal Catcher
u0_a30 21587 21594 ADB-JDWP Connec
u0_a30 21587 21595 ReferenceQueueD
u0_a30 21587 21596 FinalizerDaemon
u0_a30 21587 21597 FinalizerWatchd
u0_a30 21587 21598 HeapTaskDaemon
u0_a30 21587 21599 Binder:21587_1
u0_a30 21587 21600 Binder:21587_2
u0_a30 21587 21601 Binder:21587_3
u0_a30 21587 21602 Profile Saver
u0_a30 21587 22841 Primes-1
u0_a30 21587 23127 Primes-2
u0_a75 21768 21768 id.partnersetup
u0_a75 21768 21774 Jit thread pool
u0_a75 21768 21775 Signal Catcher
u0_a75 21768 21776 ADB-JDWP Connec
u0_a75 21768 21777 ReferenceQueueD
u0_a75 21768 21778 FinalizerDaemon
u0_a75 21768 21779 FinalizerWatchd
u0_a75 21768 21780 HeapTaskDaemon
u0_a75 21768 21781 Binder:21768_1
u0_a75 21768 21782 Binder:21768_2
u0_a75 21768 21783 Binder:21768_3
u0_a75 21768 21784 Profile Saver
u0_a75 21768 21804 queued-work-loo
u0_a75 21768 21807 Binder:21768_4
u0_a40 21787 21787 ocess.gservices
u0_a40 21787 21792 Jit thread pool
u0_a40 21787 21793 Signal Catcher
u0_a40 21787 21794 ADB-JDWP Connec
u0_a40 21787 21795 ReferenceQueueD
u0_a40 21787 21796 FinalizerDaemon
u0_a40 21787 21797 FinalizerWatchd
u0_a40 21787 21798 HeapTaskDaemon
u0_a40 21787 21799 Binder:21787_1
u0_a40 21787 21800 Binder:21787_2
u0_a40 21787 21801 Binder:21787_3
u0_a40 21787 21802 Profile Saver
u0_a40 21787 21806 Binder:21787_4
u0_a40 21787 22844 Binder:21787_5
u0_a40 21787 22845 Binder:21787_6
u0_a40 21787 22861 Binder:21787_7
u0_a40 21787 22973 Binder:21787_8
u0_a40 21787 23042 Binder:21787_9
u0_a40 21787 23044 Binder:21787_A
u0_a40 21787 23051 Binder:21787_B
u0_a40 21787 23109 Binder:21787_C
u0_a40 21787 23125 Binder:21787_D
u0_a40 21787 23126 Binder:21787_E
u0_a40 21787 23177 Binder:21787_F
u0_a40 21787 23184 Binder:21787_10
root 23038 23038 kworker/3:2
root 23393 23393 kworker/5:3
root 24384 24384 kworker/4:2
root 24428 24428 kworker/1:0
root 24572 24572 kworker/6:0
u0_a47 24879 24879 n.mips.services
u0_a47 24879 24891 Jit thread pool
u0_a47 24879 24892 Signal Catcher
u0_a47 24879 24893 ADB-JDWP Connec
u0_a47 24879 24894 ReferenceQueueD
u0_a47 24879 24895 FinalizerDaemon
u0_a47 24879 24896 FinalizerWatchd
u0_a47 24879 24897 HeapTaskDaemon
u0_a47 24879 24898 Binder:24879_1
u0_a47 24879 24899 Binder:24879_2
u0_a47 24879 24908 Profile Saver
u0_a47 24879 24912 queued-work-loo
u0_a47 24879 24914 Binder:24879_3
u0_a47 24879 26178 Binder:24879_4
root 24931 24931 kworker/2:1
root 25152 25152 kworker/7:2
root 25203 25203 kworker/0:4
root 25230 25230 kworker/2:0
root 25246 25246 kworker/7:0
root 25362 25362 kworker/u16:4
root 25366 25366 kworker/0:2
root 25390 25390 kworker/1:2
root 25518 25518 kworker/u16:6
root 25647 25647 kworker/6:1
root 25664 25664 kworker/u16:1
root 25796 25796 kworker/0:1
root 25814 25814 kworker/u16:3
root 25819 25819 kworker/3:0
root 25823 25823 kworker/2:2
root 25933 25933 kworker/6:2
root 25946 25946 kworker/1:1
root 25950 25950 kworker/0:3
root 25966 25966 kworker/u16:5
root 26081 26081 kworker/2:3
root 26106 26106 kworker/4:0
system 26142 26142 ndroid.keychain
system 26142 26149 Jit thread pool
system 26142 26150 Signal Catcher
system 26142 26151 ADB-JDWP Connec
system 26142 26152 ReferenceQueueD
system 26142 26153 FinalizerDaemon
system 26142 26154 FinalizerWatchd
system 26142 26155 HeapTaskDaemon
system 26142 26156 Binder:26142_1
system 26142 26157 Binder:26142_2
system 26142 26159 Binder:26142_3
system 26142 26176 queued-work-loo
u0_a46 26181 26181 oid.documentsui
u0_a46 26181 26186 Jit thread pool
u0_a46 26181 26187 Signal Catcher
u0_a46 26181 26188 ADB-JDWP Connec
u0_a46 26181 26189 ReferenceQueueD
u0_a46 26181 26190 FinalizerDaemon
u0_a46 26181 26191 FinalizerWatchd
u0_a46 26181 26192 HeapTaskDaemon
u0_a46 26181 26194 Binder:26181_1
u0_a46 26181 26195 Binder:26181_2
u0_a46 26181 26197 Profile Saver
u0_a46 26181 26201 AsyncTask #1
u0_a46 26181 26247 AsyncTask #2
u0_a46 26181 26263 AsyncTask #3
u0_a46 26181 26285 AsyncTask #4
u0_a46 26181 26606 Binder:26181_3
u0_a8 26208 26208 d.process.media
u0_a8 26208 26214 Jit thread pool
u0_a8 26208 26215 Signal Catcher
u0_a8 26208 26216 ADB-JDWP Connec
u0_a8 26208 26217 ReferenceQueueD
u0_a8 26208 26218 FinalizerDaemon
u0_a8 26208 26219 FinalizerWatchd
u0_a8 26208 26220 HeapTaskDaemon
u0_a8 26208 26221 Binder:26208_1
u0_a8 26208 26222 Binder:26208_2
u0_a8 26208 26237 Profile Saver
u0_a8 26208 26244 thumbs thread
u0_a8 26208 26250 sAsyncHandlerTh
u0_a40 26343 26343 e.process.gapps
u0_a40 26343 26348 Jit thread pool
u0_a40 26343 26349 Signal Catcher
u0_a40 26343 26350 ADB-JDWP Connec
u0_a40 26343 26351 ReferenceQueueD
u0_a40 26343 26352 FinalizerDaemon
u0_a40 26343 26353 FinalizerWatchd
u0_a40 26343 26354 HeapTaskDaemon
u0_a40 26343 26355 Binder:26343_1
u0_a40 26343 26356 Binder:26343_2
u0_a40 26343 26357 Binder:26343_3
u0_a40 26343 26358 Profile Saver
u0_a40 26343 26359 RefQueueWorker@
u0_a40 26343 26360 Binder:26343_4
u0_a40 26343 26714 Binder:26343_5
root 26407 26407 kworker/5:0
u0_a72 26440 26440 ctivity.metrics
u0_a72 26440 26447 Jit thread pool
u0_a72 26440 26448 Signal Catcher
u0_a72 26440 26449 ADB-JDWP Connec
u0_a72 26440 26450 ReferenceQueueD
u0_a72 26440 26451 FinalizerDaemon
u0_a72 26440 26452 FinalizerWatchd
u0_a72 26440 26453 HeapTaskDaemon
u0_a72 26440 26454 Binder:26440_1
u0_a72 26440 26455 Binder:26440_2
u0_a72 26440 26456 Binder:26440_3
u0_a72 26440 26458 Profile Saver
u0_a72 26440 26459 AsyncTask #1
u0_a72 26440 26479 GAC_Executor[0]
u0_a72 26440 26710 AsyncTask #2
u0_a72 26440 26711 GAC_Executor[1]
root 26499 26499 kworker/7:1
root 26509 26509 kworker/7:3
radio 26510 26510 ectivitymonitor
radio 26510 26515 Jit thread pool
radio 26510 26516 Signal Catcher
radio 26510 26517 ADB-JDWP Connec
radio 26510 26518 ReferenceQueueD
radio 26510 26520 FinalizerDaemon
radio 26510 26521 FinalizerWatchd
radio 26510 26523 HeapTaskDaemon
radio 26510 26524 Binder:26510_1
radio 26510 26525 Binder:26510_2
radio 26510 26528 Profile Saver
radio 26510 26654 Binder:26510_3
u0_a131 26648 26648 id.printspooler
u0_a131 26648 26653 Jit thread pool
u0_a131 26648 26655 Signal Catcher
u0_a131 26648 26656 ADB-JDWP Connec
u0_a131 26648 26657 ReferenceQueueD
u0_a131 26648 26658 FinalizerDaemon
u0_a131 26648 26659 FinalizerWatchd
u0_a131 26648 26660 HeapTaskDaemon
u0_a131 26648 26661 Binder:26648_1
u0_a131 26648 26662 Binder:26648_2
u0_a131 26648 26664 Binder:26648_3
u0_a131 26648 26667 Profile Saver
root 26706 26706 kworker/1:3
root 26729 26729 sh
root 26732 26732 sh
root 26742 26742 ps
root 27902 27902 kworker/u17:2
u0_a64 32499 32499 gle.android.ims
u0_a64 32499 32506 Jit thread pool
u0_a64 32499 32507 Signal Catcher
u0_a64 32499 32508 ADB-JDWP Connec
u0_a64 32499 32509 ReferenceQueueD
u0_a64 32499 32510 FinalizerDaemon
u0_a64 32499 32511 FinalizerWatchd
u0_a64 32499 32512 HeapTaskDaemon
u0_a64 32499 32513 Binder:32499_1
u0_a64 32499 32514 Binder:32499_2
u0_a64 32499 32516 Binder:32499_3
u0_a64 32499 32551 Profile Saver
u0_a64 32499 32574 GoogleApiHandle
u0_a64 32499 32599 ConnectivityThr
u0_a64 32499 32619 queued-work-loo
u0_a64 32499 32626 GAC_Executor[0]
u0_a64 32499 450 Binder:32499_4
u0_a64 32499 669 Binder:32499_5
u0_a64 32499 9960 Primes-1
u0_a64 32499 10177 Binder:32499_6
u0_a64 32499 10181 Binder:32499_7
u0_a64 32499 10258 Primes-2
u0_a64 32499 10858 Binder:32499_8
u0_a64 32499 20615 Binder:32499_9
u0_a64 32499 20823 Binder:32499_A
u0_a64 32499 20963 Binder:32499_B
u0_a64 32499 23043 Binder:32499_C
u0_a64 32499 23049 Binder:32499_D
u0_a64 32499 23748 Binder:32499_E
u0_a64 32499 26433 AsyncTask #1541
u0_a64 32499 26475 AsyncTask #1542
u0_a64 32499 26476 AsyncTask #1543
u0_a64 32499 26537 AsyncTask #1544
u0_a64 32499 26615 Binder:32499_F
USER PID PPID VSZ RSS WCHAN PC S NAME COMM
root 1 0 18956 2108 SyS_epoll_wait 5327b0 S init init
root 2 0 0 0 kthreadd 0 S [kthreadd] 2
root 3 2 0 0 smpboot_thread_fn 0 S [ksoftirqd/0] 3
root 5 2 0 0 worker_thread 0 S [kworker/0:0H] 5
root 6 2 0 0 diag_socket_read 0 S [kworker/u16:0] 6
root 7 2 0 0 0 0 S [rcu_preempt] 7
root 8 2 0 0 rcu_gp_kthread 0 S [rcu_sched] 8
root 9 2 0 0 rcu_gp_kthread 0 S [rcu_bh] 9
root 10 2 0 0 rcu_nocb_kthread 0 S [rcuop/0] 1
root 11 2 0 0 rcu_nocb_kthread 0 S [rcuos/0] 1
root 12 2 0 0 rcu_nocb_kthread 0 S [rcuob/0] 1
root 13 2 0 0 smpboot_thread_fn 0 S [migration/0] 1
root 14 2 0 0 smpboot_thread_fn 0 S [watchdog/0] 1
root 15 2 0 0 smpboot_thread_fn 0 S [watchdog/1] 1
root 16 2 0 0 smpboot_thread_fn 0 S [migration/1] 1
root 17 2 0 0 smpboot_thread_fn 0 S [ksoftirqd/1] 1
root 19 2 0 0 worker_thread 0 S [kworker/1:0H] 1
root 20 2 0 0 rcu_nocb_kthread 0 S [rcuop/1] 2
root 21 2 0 0 rcu_nocb_kthread 0 S [rcuos/1] 2
root 22 2 0 0 rcu_nocb_kthread 0 S [rcuob/1] 2
root 23 2 0 0 smpboot_thread_fn 0 S [watchdog/2] 2
root 24 2 0 0 smpboot_thread_fn 0 S [migration/2] 2
root 25 2 0 0 smpboot_thread_fn 0 S [ksoftirqd/2] 2
root 27 2 0 0 worker_thread 0 S [kworker/2:0H] 2
root 28 2 0 0 rcu_nocb_kthread 0 S [rcuop/2] 2
root 29 2 0 0 rcu_nocb_kthread 0 S [rcuos/2] 2
root 30 2 0 0 rcu_nocb_kthread 0 S [rcuob/2] 3
root 31 2 0 0 smpboot_thread_fn 0 S [watchdog/3] 3
root 32 2 0 0 smpboot_thread_fn 0 S [migration/3] 3
root 33 2 0 0 smpboot_thread_fn 0 S [ksoftirqd/3] 3
root 35 2 0 0 worker_thread 0 S [kworker/3:0H] 3
root 36 2 0 0 rcu_nocb_kthread 0 S [rcuop/3] 3
root 37 2 0 0 rcu_nocb_kthread 0 S [rcuos/3] 3
root 38 2 0 0 rcu_nocb_kthread 0 S [rcuob/3] 3
root 39 2 0 0 smpboot_thread_fn 0 S [watchdog/4] 3
root 40 2 0 0 smpboot_thread_fn 0 S [migration/4] 4
root 41 2 0 0 smpboot_thread_fn 0 S [ksoftirqd/4] 4
root 43 2 0 0 worker_thread 0 S [kworker/4:0H] 4
root 44 2 0 0 rcu_nocb_kthread 0 S [rcuop/4] 4
root 45 2 0 0 rcu_nocb_kthread 0 S [rcuos/4] 4
root 46 2 0 0 rcu_nocb_kthread 0 S [rcuob/4] 4
root 47 2 0 0 smpboot_thread_fn 0 S [watchdog/5] 4
root 48 2 0 0 smpboot_thread_fn 0 S [migration/5] 4
root 49 2 0 0 smpboot_thread_fn 0 S [ksoftirqd/5] 4
root 51 2 0 0 worker_thread 0 S [kworker/5:0H] 5
root 52 2 0 0 rcu_nocb_kthread 0 S [rcuop/5] 5
root 53 2 0 0 rcu_nocb_kthread 0 S [rcuos/5] 5
root 54 2 0 0 rcu_nocb_kthread 0 S [rcuob/5] 5
root 55 2 0 0 smpboot_thread_fn 0 S [watchdog/6] 5
root 56 2 0 0 smpboot_thread_fn 0 S [migration/6] 5
root 57 2 0 0 smpboot_thread_fn 0 S [ksoftirqd/6] 5
root 59 2 0 0 worker_thread 0 S [kworker/6:0H] 5
root 60 2 0 0 rcu_nocb_kthread 0 S [rcuop/6] 6
root 61 2 0 0 rcu_nocb_kthread 0 S [rcuos/6] 6
root 62 2 0 0 rcu_nocb_kthread 0 S [rcuob/6] 6
root 63 2 0 0 smpboot_thread_fn 0 S [watchdog/7] 6
root 64 2 0 0 smpboot_thread_fn 0 S [migration/7] 6
root 65 2 0 0 smpboot_thread_fn 0 S [ksoftirqd/7] 6
root 67 2 0 0 worker_thread 0 S [kworker/7:0H] 6
root 68 2 0 0 rcu_nocb_kthread 0 S [rcuop/7] 6
root 69 2 0 0 rcu_nocb_kthread 0 S [rcuos/7] 6
root 70 2 0 0 rcu_nocb_kthread 0 S [rcuob/7] 7
root 71 2 0 0 rescuer_thread 0 S [netns] 7
root 72 2 0 0 rescuer_thread 0 S [perf] 7
root 73 2 0 0 rescuer_thread 0 S [smd_channel_clo] 7
root 74 2 0 0 kthread_worker_fn 0 S [dsps_smd_trans_] 7
root 75 2 0 0 kthread_worker_fn 0 S [lpass_smd_trans] 7
root 76 2 0 0 kthread_worker_fn 0 S [mpss_smd_trans_] 7
root 77 2 0 0 kthread_worker_fn 0 S [wcnss_smd_trans] 7
root 78 2 0 0 kthread_worker_fn 0 S [rpm_smd_trans_g] 7
root 79 2 0 0 rescuer_thread 0 S [ipa_usb_wq] 7
root 81 2 0 0 kthread_worker_fn 0 S [smem_native_mps] 8
root 82 2 0 0 kthread_worker_fn 0 S [mpss_smem_glink] 8
root 83 2 0 0 kthread_worker_fn 0 S [smem_native_lpa] 8
root 84 2 0 0 kthread_worker_fn 0 S [lpass_smem_glin] 8
root 85 2 0 0 kthread_worker_fn 0 S [smem_native_dsp] 8
root 86 2 0 0 kthread_worker_fn 0 S [dsps_smem_glink] 8
root 87 2 0 0 kthread_worker_fn 0 S [smem_native_rpm] 8
root 88 2 0 0 kthread_worker_fn 0 S [rpm_smem_glink_] 8
root 89 2 0 0 kthread_worker_fn 0 S [smem_native_sps] 8
root 90 2 0 0 kthread_worker_fn 0 S [spss_mailbox_gl] 9
root 91 2 0 0 watchdog_kthread 0 S [msm_watchdog] 9
root 92 2 0 0 rescuer_thread 0 S [deferwq] 9
root 94 2 0 0 irq_thread 0 S [irq/126-cpr3] 9
root 95 2 0 0 msm_mpm_work_fn 0 D [mpm] 9
root 96 2 0 0 diag_socket_read 0 S [kworker/u16:2] 9
root 97 2 0 0 watchdog 0 S [khungtaskd] 9
root 98 2 0 0 rescuer_thread 0 S [writeback] 9
root 99 2 0 0 kcompactd 0 S [kcompactd0] 9
root 100 2 0 0 rescuer_thread 0 S [crypto] 1
root 101 2 0 0 rescuer_thread 0 S [bioset] 1
root 102 2 0 0 rescuer_thread 0 S [kblockd] 1
root 103 2 0 0 rescuer_thread 0 S [md] 1
root 104 2 0 0 rescuer_thread 0 S [edac-poller] 1
root 105 2 0 0 ion_heap_deferred_free 0 S [system] 1
root 106 2 0 0 ion_heap_deferred_free 0 S [easel_mem] 1
root 107 2 0 0 rescuer_thread 0 S [devfreq_wq] 1
root 108 2 0 0 rescuer_thread 0 S [governor_msm_ad] 1
root 110 2 0 0 rescuer_thread 0 S [cfg80211] 1
root 111 2 0 0 irq_thread 0 S [irq/134-arm-smm] 1
root 112 2 0 0 rescuer_thread 0 S [ipa_power_mgmt] 1
root 113 2 0 0 rescuer_thread 0 S [transport_power] 1
root 114 2 0 0 rescuer_thread 0 S [ipa_rm_wq] 1
root 115 2 0 0 rescuer_thread 0 S [ipa_interrupt_w] 1
root 116 2 0 0 irq_thread 0 S [irq/135-arm-smm] 1
root 117 2 0 0 irq_thread 0 S [irq/136-arm-smm] 1
root 118 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 1
root 119 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 1
root 120 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 1
root 121 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 1
root 147 2 0 0 rescuer_thread 0 S [power_off_alarm] 1
root 148 2 0 0 kswapd 0 S [kswapd0] 1
root 149 2 0 0 rescuer_thread 0 S [vmstat] 1
root 150 2 0 0 fsnotify_mark_destroy 0 S [fsnotify_mark] 1
root 182 2 0 0 rescuer_thread 0 S [ad_calc_wq] 1
root 183 2 0 0 dsi_event_thread 0 D [mdss_dsi_event] 1
root 184 2 0 0 rescuer_thread 0 S [mdss_dsi_dba] 1
root 185 2 0 0 rescuer_thread 0 S [cwb_wq] 1
root 186 2 0 0 kthread_worker_fn 0 S [vsync_retire_wo] 1
root 187 2 0 0 rescuer_thread 0 S [cwb_wq] 1
root 189 2 0 0 rescuer_thread 0 S [glink_ssr_wq] 1
root 190 2 0 0 rescuer_thread 0 S [glink_lbsrv] 1
root 191 2 0 0 kthread_worker_fn 0 S [spi_wdsp] 1
root 192 2 0 0 kthread_worker_fn 0 S [wdsp_spi_glink_] 1
root 193 2 0 0 rescuer_thread 0 S [glink_xprt_wq] 1
root 194 2 0 0 rescuer_thread 0 S [IPCRTR_mpss_sme] 1
root 195 2 0 0 rescuer_thread 0 S [IPCRTR_lpass_sm] 1
root 196 2 0 0 rescuer_thread 0 S [IPCRTR_dsps_sme] 1
root 197 2 0 0 rescuer_thread 0 S [apr_driver] 1
root 198 2 0 0 rescuer_thread 0 S [glink_pkt_wq] 1
root 199 2 0 0 rescuer_thread 0 S [mem_share_svc] 1
root 200 2 0 0 rescuer_thread 0 S [qmi_hndl0000000] 2
root 201 2 0 0 rescuer_thread 0 S [msm_ipc_router] 2
root 202 2 0 0 irq_thread 0 S [irq/137-arm-smm] 2
root 203 2 0 0 rescuer_thread 0 S [qmi_svc_event_w] 2
root 204 2 0 0 rescuer_thread 0 S [servloc_wq] 2
root 205 2 0 0 kthread_worker_fn 0 S [tty_worker_thre] 2
root 206 2 0 0 kthread_worker_fn 0 S [tty_worker_thre] 2
root 207 2 0 0 kthread_worker_fn 0 S [tty_worker_thre] 2
root 208 2 0 0 kthread_worker_fn 0 S [tty_worker_thre] 2
root 209 2 0 0 rescuer_thread 0 S [k_hsuart] 2
root 210 2 0 0 kthread_worker_fn 0 S [msm_serial_hs_0] 2
root 211 2 0 0 kthread_worker_fn 0 S [msm_serial_hs_0] 2
root 212 2 0 0 add_hwgenerator_randomness 0 S [hwrng] 2
root 215 2 0 0 rescuer_thread 0 S [diag_real_time_] 2
root 216 2 0 0 rescuer_thread 0 S [diag_wq] 2
root 217 2 0 0 rescuer_thread 0 S [DIAG_USB_diag] 2
root 218 2 0 0 rescuer_thread 0 S [diag_cntl_wq] 2
root 219 2 0 0 rescuer_thread 0 S [diag_dci_wq] 2
root 220 2 0 0 rescuer_thread 0 S [DIAG_SMD_MODEM_] 2
root 221 2 0 0 rescuer_thread 0 S [DIAG_SMD_MODEM_] 2
root 222 2 0 0 rescuer_thread 0 S [DIAG_SMD_MODEM_] 2
root 223 2 0 0 rescuer_thread 0 S [DIAG_SMD_MODEM_] 2
root 224 2 0 0 rescuer_thread 0 S [DIAG_SMD_MODEM_] 2
root 225 2 0 0 rescuer_thread 0 S [DIAG_SMD_LPASS_] 2
root 226 2 0 0 rescuer_thread 0 S [DIAG_SMD_LPASS_] 2
root 227 2 0 0 rescuer_thread 0 S [DIAG_SMD_LPASS_] 2
root 228 2 0 0 rescuer_thread 0 S [DIAG_SMD_LPASS_] 2
root 229 2 0 0 rescuer_thread 0 S [DIAG_SMD_LPASS_] 2
root 230 2 0 0 rescuer_thread 0 S [DIAG_SMD_WCNSS_] 2
root 231 2 0 0 rescuer_thread 0 S [DIAG_SMD_WCNSS_] 2
root 232 2 0 0 rescuer_thread 0 S [DIAG_SMD_WCNSS_] 2
root 233 2 0 0 rescuer_thread 0 S [DIAG_SMD_WCNSS_] 2
root 234 2 0 0 rescuer_thread 0 S [DIAG_SMD_WCNSS_] 2
root 235 2 0 0 rescuer_thread 0 S [DIAG_SMD_SENSOR] 2
root 236 2 0 0 rescuer_thread 0 S [DIAG_SMD_SENSOR] 2
root 237 2 0 0 rescuer_thread 0 S [DIAG_SMD_SENSOR] 2
root 238 2 0 0 rescuer_thread 0 S [DIAG_SMD_SENSOR] 2
root 239 2 0 0 rescuer_thread 0 S [DIAG_SMD_SENSOR] 2
root 240 2 0 0 rescuer_thread 0 S [DIAG_SMD_DIAG_C] 2
root 241 2 0 0 rescuer_thread 0 S [DIAG_SMD_DIAG_D] 2
root 242 2 0 0 rescuer_thread 0 S [DIAG_SMD_DIAG_C] 2
root 243 2 0 0 rescuer_thread 0 S [DIAG_SMD_DIAG_D] 2
root 244 2 0 0 rescuer_thread 0 S [DIAG_SMD_DIAG_D] 2
root 245 2 0 0 rescuer_thread 0 S [DIAG_SMD_CDSP_C] 2
root 246 2 0 0 rescuer_thread 0 S [DIAG_SMD_CDSP_D] 2
root 247 2 0 0 rescuer_thread 0 S [DIAG_SMD_CDSP_C] 2
root 248 2 0 0 rescuer_thread 0 S [DIAG_SMD_CDSP_D] 2
root 249 2 0 0 rescuer_thread 0 S [DIAG_SMD_CDSP_D] 2
root 250 2 0 0 rescuer_thread 0 S [DIAG_SOCKMODEM_] 2
root 251 2 0 0 rescuer_thread 0 S [DIAG_SOCKMODEM_] 2
root 252 2 0 0 rescuer_thread 0 S [DIAG_SOCKMODEM_] 2
root 253 2 0 0 rescuer_thread 0 S [DIAG_SOCKMODEM_] 2
root 254 2 0 0 rescuer_thread 0 S [DIAG_SOCKMODEM_] 2
root 255 2 0 0 rescuer_thread 0 S [DIAG_SOCKLPASS_] 2
root 256 2 0 0 rescuer_thread 0 S [DIAG_SOCKLPASS_] 2
root 257 2 0 0 rescuer_thread 0 S [DIAG_SOCKLPASS_] 2
root 258 2 0 0 rescuer_thread 0 S [DIAG_SOCKLPASS_] 2
root 259 2 0 0 rescuer_thread 0 S [DIAG_SOCKLPASS_] 2
root 260 2 0 0 rescuer_thread 0 S [DIAG_SOCKWCNSS_] 2
root 261 2 0 0 rescuer_thread 0 S [DIAG_SOCKWCNSS_] 2
root 262 2 0 0 rescuer_thread 0 S [DIAG_SOCKWCNSS_] 2
root 263 2 0 0 rescuer_thread 0 S [DIAG_SOCKWCNSS_] 2
root 265 2 0 0 rescuer_thread 0 S [DIAG_SOCKWCNSS_] 2
root 266 2 0 0 rescuer_thread 0 S [DIAG_SOCKSENSOR] 2
root 267 2 0 0 rescuer_thread 0 S [DIAG_SOCKSENSOR] 2
root 268 2 0 0 rescuer_thread 0 S [DIAG_SOCKSENSOR] 2
root 269 2 0 0 rescuer_thread 0 S [DIAG_SOCKSENSOR] 2
root 270 2 0 0 rescuer_thread 0 S [DIAG_SOCKSENSOR] 2
root 271 2 0 0 rescuer_thread 0 S [DIAG_SOCKDIAG_C] 2
root 272 2 0 0 rescuer_thread 0 S [DIAG_SOCKDIAG_D] 2
root 273 2 0 0 rescuer_thread 0 S [DIAG_SOCKDIAG_C] 2
root 274 2 0 0 rescuer_thread 0 S [DIAG_SOCKDIAG_D] 2
root 275 2 0 0 rescuer_thread 0 S [DIAG_SOCKDIAG_D] 2
root 276 2 0 0 rescuer_thread 0 S [DIAG_SOCKCDSP_C] 2
root 277 2 0 0 rescuer_thread 0 S [DIAG_SOCKCDSP_D] 2
root 278 2 0 0 rescuer_thread 0 S [DIAG_SOCKCDSP_C] 2
root 279 2 0 0 rescuer_thread 0 S [DIAG_SOCKCDSP_D] 2
root 280 2 0 0 rescuer_thread 0 S [DIAG_SOCKCDSP_D] 2
root 281 2 0 0 rescuer_thread 0 S [DIAG_CNTL_SOCKE] 2
root 282 2 0 0 rescuer_thread 0 S [DIAG_GLINK_DIAG] 2
root 283 2 0 0 rescuer_thread 0 S [DIAG_GLINK_DIAG] 2
root 284 2 0 0 rescuer_thread 0 S [DIAG_GLINK_DIAG] 2
root 285 2 0 0 rescuer_thread 0 S [DIAG_GLINK_DIAG] 2
root 286 2 0 0 rescuer_thread 0 S [DIAG_GLINK_DIAG] 2
root 287 2 0 0 rescuer_thread 0 S [kgsl-workqueue] 2
root 288 2 0 0 rescuer_thread 0 S [kgsl-mementry] 2
root 289 2 0 0 kthread_worker_fn 0 S [kgsl_worker_thr] 2
root 290 2 0 0 rescuer_thread 0 S [kgsl-events] 2
root 291 2 0 0 rescuer_thread 0 S [kgsl_devfreq_wq] 2
root 292 2 0 0 rescuer_thread 0 S [bioset] 2
root 293 2 0 0 rescuer_thread 0 S [bioset] 2
root 294 2 0 0 rescuer_thread 0 S [bioset] 2
root 295 2 0 0 rescuer_thread 0 S [bioset] 2
root 296 2 0 0 rescuer_thread 0 S [bioset] 2
root 297 2 0 0 rescuer_thread 0 S [bioset] 2
root 298 2 0 0 rescuer_thread 0 S [bioset] 2
root 299 2 0 0 rescuer_thread 0 S [bioset] 2
root 300 2 0 0 rescuer_thread 0 S [bioset] 3
root 301 2 0 0 rescuer_thread 0 S [bioset] 3
root 302 2 0 0 rescuer_thread 0 S [bioset] 3
root 303 2 0 0 rescuer_thread 0 S [bioset] 3
root 304 2 0 0 rescuer_thread 0 S [bioset] 3
root 305 2 0 0 rescuer_thread 0 S [bioset] 3
root 307 2 0 0 rescuer_thread 0 S [bioset] 3
root 308 2 0 0 rescuer_thread 0 S [bioset] 3
root 309 2 0 0 rescuer_thread 0 S [bioset] 3
root 310 2 0 0 rescuer_thread 0 S [bioset] 3
root 311 2 0 0 rescuer_thread 0 S [bioset] 3
root 312 2 0 0 rescuer_thread 0 S [bioset] 3
root 313 2 0 0 rescuer_thread 0 S [bioset] 3
root 314 2 0 0 rescuer_thread 0 S [bioset] 3
root 315 2 0 0 rescuer_thread 0 S [bioset] 3
root 316 2 0 0 rescuer_thread 0 S [bioset] 3
root 317 2 0 0 rescuer_thread 0 S [bioset] 3
root 318 2 0 0 irq_thread 0 S [irq/286-soc:fp_] 3
root 319 2 0 0 rescuer_thread 0 S [memory_wq] 3
root 320 2 0 0 rescuer_thread 0 S [qcrypto_seq_res] 3
root 321 2 0 0 scsi_error_handler 0 S [scsi_eh_0] 3
root 322 2 0 0 rescuer_thread 0 S [scsi_tmf_0] 3
root 323 2 0 0 rescuer_thread 0 S [ufs_pm_qos_0] 3
root 324 2 0 0 rescuer_thread 0 S [ufs_clk_ungatin] 3
root 325 2 0 0 rescuer_thread 0 S [ufs_clkscaling_] 3
root 326 2 0 0 kthread_worker_fn 0 S [spi1] 3
root 327 2 0 0 kthread_worker_fn 0 S [spi2] 3
root 328 2 0 0 kthread_worker_fn 0 S [spi10] 3
root 329 2 0 0 rescuer_thread 0 S [bond0] 3
root 330 2 0 0 rescuer_thread 0 S [sharedmem_qmi_w] 3
root 331 2 0 0 rescuer_thread 0 S [qmi_hndl0000000] 3
root 335 2 0 0 rescuer_thread 0 S [uether] 3
root 336 2 0 0 rescuer_thread 0 S [k_ipa_usb] 3
root 341 2 0 0 irq_thread 0 S [irq/262-vl53l0_] 3
root 342 2 0 0 rescuer_thread 0 S [bioset] 3
root 343 2 0 0 rescuer_thread 0 S [bioset] 3
root 344 2 0 0 rescuer_thread 0 S [bioset] 3
root 345 2 0 0 rescuer_thread 0 S [bioset] 3
root 347 2 0 0 rescuer_thread 0 S [bioset] 3
root 348 2 0 0 rescuer_thread 0 S [bioset] 3
root 349 2 0 0 rescuer_thread 0 S [bioset] 3
root 350 2 0 0 rescuer_thread 0 S [bioset] 3
root 351 2 0 0 rescuer_thread 0 S [bioset] 3
root 355 2 0 0 rescuer_thread 0 S [msm_cci_wq] 3
root 356 2 0 0 rescuer_thread 0 S [msm_cci_wq] 3
root 357 2 0 0 rescuer_thread 0 S [msm_cpp_workque] 3
root 358 2 0 0 rescuer_thread 0 S [msm_vidc_worker] 3
root 359 2 0 0 rescuer_thread 0 S [pm_workerq_venu] 3
root 360 2 0 0 irq_thread 0 S [irq/158-arm-smm] 3
root 361 2 0 0 irq_thread 0 S [irq/159-arm-smm] 3
root 362 2 0 0 irq_thread 0 S [irq/160-arm-smm] 3
root 363 2 0 0 irq_thread 0 S [irq/161-arm-smm] 3
root 364 2 0 0 kthread_worker_fn 0 S [rot_commitq_0_0] 3
root 365 2 0 0 kthread_worker_fn 0 S [rot_commitq_0_1] 3
root 366 2 0 0 kthread_worker_fn 0 S [rot_doneq_0_0] 3
root 367 2 0 0 kthread_worker_fn 0 S [rot_doneq_0_1] 3
root 368 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 3
root 370 2 0 0 irq_thread 0 S [irq/500-chg-err] 3
root 371 2 0 0 irq_thread 0 S [irq/501-chg-sta] 3
root 372 2 0 0 irq_thread 0 S [irq/502-step-ch] 3
root 373 2 0 0 irq_thread 0 S [irq/503-step-ch] 3
root 374 2 0 0 irq_thread 0 S [irq/504-step-ch] 3
root 375 2 0 0 irq_thread 0 S [irq/505-otg-fai] 3
root 376 2 0 0 irq_thread 0 S [irq/506-otg-ove] 3
root 377 2 0 0 irq_thread 0 S [irq/507-otg-oc-] 3
root 378 2 0 0 irq_thread 0 S [irq/508-testmod] 3
root 379 2 0 0 irq_thread 0 S [irq/509-bat-tem] 3
root 380 2 0 0 irq_thread 0 S [irq/510-bat-ocp] 3
root 381 2 0 0 irq_thread 0 S [irq/511-bat-ov] 3
root 382 2 0 0 irq_thread 0 S [irq/512-bat-low] 3
root 383 2 0 0 irq_thread 0 S [irq/513-bat-the] 3
root 384 2 0 0 irq_thread 0 S [irq/514-bat-ter] 3
root 385 2 0 0 irq_thread 0 S [irq/515-usbin-c] 3
root 386 2 0 0 irq_thread 0 S [irq/516-usbin-l] 3
root 387 2 0 0 irq_thread 0 S [irq/517-usbin-u] 3
root 388 2 0 0 irq_thread 0 S [irq/518-usbin-o] 3
root 389 2 0 0 irq_thread 0 S [irq/519-usbin-p] 3
root 390 2 0 0 irq_thread 0 S [irq/520-usbin-s] 3
root 391 2 0 0 irq_thread 0 S [irq/521-usbin-i] 3
root 392 2 0 0 irq_thread 0 S [irq/522-type-c-] 3
root 393 2 0 0 irq_thread 0 S [irq/523-dcin-co] 3
root 394 2 0 0 irq_thread 0 S [irq/524-dcin-lt] 3
root 395 2 0 0 irq_thread 0 S [irq/525-dcin-uv] 3
root 396 2 0 0 irq_thread 0 S [irq/526-dcin-ov] 3
root 397 2 0 0 irq_thread 0 S [irq/527-dcin-pl] 3
root 398 2 0 0 irq_thread 0 S [irq/528-div2-en] 3
root 399 2 0 0 irq_thread 0 S [irq/529-dcin-ic] 3
root 400 2 0 0 irq_thread 0 S [irq/532-aicl-fa] 4
root 401 2 0 0 irq_thread 0 S [irq/533-aicl-do] 4
root 402 2 0 0 irq_thread 0 S [irq/534-high-du] 4
root 403 2 0 0 irq_thread 0 S [irq/535-input-c] 4
root 404 2 0 0 irq_thread 0 S [irq/536-tempera] 4
root 405 2 0 0 irq_thread 0 S [irq/537-switche] 4
root 406 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 4
root 407 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 4
root 409 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 4
root 410 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 4
root 411 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 4
root 412 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 4
root 413 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 4
root 414 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 4
root 415 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 4
root 416 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 4
root 417 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 4
root 418 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 4
root 419 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 4
root 420 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 4
root 421 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 4
root 422 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 4
root 423 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 4
root 424 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 4
root 425 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 4
root 426 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 4
root 427 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 4
root 428 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 4
root 429 2 0 0 irq_thread 0 S [irq/59-tsens_in] 4
root 430 2 0 0 irq_thread 0 S [irq/62-tsens_cr] 4
root 431 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 4
root 432 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 4
root 433 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 4
root 434 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 4
root 435 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 4
root 436 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 4
root 437 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 4
root 438 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 4
root 439 2 0 0 irq_thread 0 S [irq/63-tsens_in] 4
root 440 2 0 0 irq_thread 0 S [irq/64-tsens_cr] 4
root 441 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 4
root 442 2 0 0 irq_thread 0 S [irq/366-limits_] 4
root 443 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 4
root 444 2 0 0 irq_thread 0 S [irq/367-limits_] 4
root 445 2 0 0 rescuer_thread 0 S [dm_bufio_cache] 4
root 446 2 0 0 cpufreq_interactive_speedchange_task 0 S [cfinteractive] 4
root 447 2 0 0 irq_thread 0 S [irq/291-bcm1560] 4
root 448 2 0 0 irq_thread 0 S [irq/226-bcm1560] 4
root 449 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 4
root 451 2 0 0 irq_thread 0 S [irq/197-spdm_bw] 4
root 452 2 0 0 rescuer_thread 0 S [binder] 4
root 453 2 0 0 irq_thread 0 S [irq/144-arm-smm] 4
root 454 2 0 0 rescuer_thread 0 S [uaudio_svc] 4
root 455 2 0 0 rescuer_thread 0 S [qmi_hndl0000000] 4
root 456 2 0 0 rescuer_thread 0 S [ipv6_addrconf] 4
root 458 2 0 0 irq_thread 0 S [irq/574-adsp] 4
root 459 2 0 0 rescuer_thread 0 S [sysmon_wq] 4
root 460 2 0 0 irq_thread 0 S [irq/606-slpi] 4
root 461 2 0 0 irq_thread 0 S [irq/542-modem] 4
root 465 2 0 0 rescuer_thread 0 S [usb_bam_wq] 4
root 466 2 0 0 irq_thread 0 S [irq/19-sig-tx] 4
root 467 2 0 0 irq_thread 0 S [irq/20-sig-rx] 4
root 468 2 0 0 irq_thread 0 S [irq/22-msg-rx] 4
root 469 2 0 0 rescuer_thread 0 S [usbpd0] 4
root 470 2 0 0 rescuer_thread 0 S [usbpd0] 4
root 471 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 4
root 472 2 0 0 irq_thread 0 S [irq/734-soc-upd] 4
root 473 2 0 0 irq_thread 0 S [irq/735-soc-rea] 4
root 474 2 0 0 irq_thread 0 S [irq/736-bsoc-de] 4
root 475 2 0 0 irq_thread 0 S [irq/737-msoc-de] 4
root 476 2 0 0 irq_thread 0 S [irq/738-msoc-lo] 4
root 477 2 0 0 irq_thread 0 S [irq/739-msoc-em] 4
root 478 2 0 0 irq_thread 0 S [irq/740-msoc-hi] 4
root 479 2 0 0 irq_thread 0 S [irq/741-msoc-fu] 4
root 480 2 0 0 irq_thread 0 S [irq/742-vbatt-p] 4
root 481 2 0 0 irq_thread 0 S [irq/743-vbatt-l] 4
root 482 2 0 0 irq_thread 0 S [irq/744-esr-del] 4
root 483 2 0 0 irq_thread 0 S [irq/745-batt-mi] 4
root 484 2 0 0 irq_thread 0 S [irq/746-batt-te] 4
root 485 2 0 0 irq_thread 0 S [irq/747-ima-rdy] 4
root 486 2 0 0 irq_thread 0 S [irq/748-mem-xcp] 4
root 487 2 0 0 irq_thread 0 S [irq/749-dma-gra] 4
root 489 2 0 0 irq_thread 0 S [irq/54-hs_phy_i] 4
root 490 2 0 0 irq_thread 0 S [irq/55-ss_phy_i] 4
root 491 2 0 0 irq_thread 0 S [irq/56-msm_dwc3] 4
root 494 2 0 0 irq_thread 0 S [irq/36-ARM64 pr] 4
root 495 2 0 0 irq_thread 0 S [irq/37-ARM64 se] 4
root 496 2 0 0 irq_thread 0 S [irq/39-ARM64 pr] 4
root 497 2 0 0 irq_thread 0 S [irq/40-ARM64 se] 4
root 498 2 0 0 rescuer_thread 0 S [rq_stats] 4
root 499 2 0 0 irq_thread 0 S [irq/145-arm-smm] 4
root 500 2 0 0 irq_thread 0 S [irq/146-arm-smm] 5
root 501 2 0 0 irq_thread 0 S [irq/147-arm-smm] 5
root 502 2 0 0 irq_thread 0 S [irq/148-arm-smm] 5
root 503 2 0 0 irq_thread 0 S [irq/149-arm-smm] 5
root 504 2 0 0 irq_thread 0 S [irq/150-arm-smm] 5
root 505 2 0 0 irq_thread 0 S [irq/151-arm-smm] 5
root 506 2 0 0 irq_thread 0 S [irq/152-arm-smm] 5
root 507 2 0 0 kthread_worker_fn 0 S [set_state_work] 5
root 508 2 0 0 irq_thread 0 S [irq/227-mnh-rea] 5
root 510 2 0 0 irq_thread 0 S [irq/751-mnh_pci] 5
root 511 2 0 0 irq_thread 0 S [irq/752-mnh_pci] 5
root 512 2 0 0 irq_thread 0 S [irq/753-mnh_pci] 5
root 513 2 0 0 irq_thread 0 S [irq/754-mnh_pci] 5
root 514 2 0 0 irq_thread 0 S [irq/755-mnh_pci] 5
root 515 2 0 0 irq_thread 0 S [irq/758-mnh_pci] 5
root 516 2 0 0 irq_thread 0 S [irq/759-mnh_pci] 5
root 517 2 0 0 irq_thread 0 S [irq/128-arm-smm] 5
root 518 2 0 0 rescuer_thread 0 S [sb-1] 5
root 519 2 0 0 ngd_slim_rx_msgq_thread 0 S [ngd_rx_thread1] 5
root 520 2 0 0 ngd_notify_slaves 0 S [ngd_notify_sl1] 5
root 521 2 0 0 rescuer_thread 0 S [sb-3] 5
root 522 2 0 0 ngd_slim_rx_msgq_thread 0 S [ngd_rx_thread3] 5
root 523 2 0 0 ngd_notify_slaves 0 S [ngd_notify_sl3] 5
root 525 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 5
root 526 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 5
root 527 2 0 0 sensor_sysfs_notify 0 S [therm_core:noti] 5
root 528 2 0 0 irq_thread 0 S [irq/66-lmh-inte] 5
root 529 2 0 0 irq_thread 0 S [irq/28-qpnp_fla] 5
root 530 2 0 0 irq_thread 0 S [irq/27-qpnp_fla] 5
root 531 2 0 0 irq_thread 0 S [irq/26-qpnp_fla] 5
root 532 2 0 0 worker_thread 0 S [kworker/6:1H] 5
root 533 2 0 0 worker_thread 0 S [kworker/5:1H] 5
root 534 2 0 0 worker_thread 0 S [kworker/7:1H] 5
root 535 2 0 0 rescuer_thread 0 S [ext4-rsv-conver] 5
root 536 2 0 0 worker_thread 0 S [kworker/4:1H] 5
root 537 2 0 0 kjournald2 0 S [jbd2/sdd3-8] 5
root 538 2 0 0 rescuer_thread 0 S [ext4-rsv-conver] 5
root 539 2 0 0 rescuer_thread 0 S [ext4-rsv-conver] 5
root 542 1 6760 680 do_sys_poll 54e580 S init init
root 543 1 6504 976 do_sys_poll 54e580 S ueventd init
root 545 2 0 0 worker_thread 0 S [kworker/0:1H] 5
root 550 2 0 0 irq_thread 0 S [irq/760-synapti] 5
root 551 2 0 0 rescuer_thread 0 S [dsx_rebuild_wor] 5
root 552 2 0 0 rescuer_thread 0 S [dsx_exp_workque] 5
root 556 2 0 0 rescuer_thread 0 S [batt_timer] 5
system 566 1 12844 1724 do_wait 7bede320a8 S qseecomd qseecomd
root 567 2 0 0 kthread_worker_fn 0 S [sugov:0] 5
root 568 2 0 0 kthread_worker_fn 0 S [sugov:4] 5
system 570 1 2128484 4792 binder_ioctl_write_read 7428db1040 S hwservicemanager hwservicemanager
logd 571 1 32436 11256 SyS_rt_sigsuspend 7f4ccf3118 S logd logd
system 572 1 11568 1988 binder_ioctl_write_read 7092531040 S servicemanager servicemanager
system 573 1 12280 1840 binder_ioctl_write_read 769d032040 S vndservicemanager vndservicemanager
system 574 566 18848 596 SyS_rt_sigsuspend 7bede31118 S qseecomd qseecomd
root 584 2 0 0 kauditd_thread 0 S [kauditd] 5
root 586 1 14496 2604 binder_ioctl_write_read 7f49272040 S android.hardware.boot@1.0-service android.hardware.boot@1.0-service
system 587 1 15624 2592 binder_ioctl_write_read 7929071040 S android.hardware.gatekeeper@1.0-service-qti android.hardware.gatekeeper@1.0-service-qti
system 588 1 15884 2624 binder_ioctl_write_read 7496432040 S android.hardware.keymaster@3.0-service-qti android.hardware.keymaster@3.0-service-qti
system 589 1 2128880 2628 binder_ioctl_write_read 7aa5cf0040 S android.hardware.keymaster@4.0-service android.hardware.keymaster@4.0-service
system 591 1 2190084 20996 SyS_epoll_wait 7d3a2f0f50 S surfaceflinger surfaceflinger
system 593 1 47308 5784 binder_ioctl_write_read 79c60f0040 S android.hardware.graphics.composer@2.1-service android.hardware.graphics.composer@2.1-service
system 594 1 18484 2708 binder_ioctl_write_read 79f41b0040 S android.hardware.configstore@1.0-service android.hardware.configstore@1.0-service
system 595 1 22124 3156 binder_ioctl_write_read 7c5b5f3040 S android.hardware.graphics.allocator@2.0-service android.hardware.graphics.allocator@2.0-service
root 612 2 0 0 kjournald2 0 S [jbd2/sda45-8] 6
root 613 2 0 0 rescuer_thread 0 S [ext4-rsv-conver] 6
system 616 1 23496 1812 futex_wait_queue_me 6ff4460bb0 S time_daemon time_daemon
root 617 1 31600 4156 binder_ioctl_write_read 7c864f1040 S vold vold
root 619 2 0 0 __mdss_fb_display_thread 0 D [mdss_fb0] 6
root 635 2 0 0 irq_thread 0 S [irq/177-arm-smm] 6
root 636 2 0 0 irq_thread 0 S [irq/178-arm-smm] 6
root 642 2 0 0 rescuer_thread 0 S [dsps_IPCRTR] 6
root 643 2 0 0 rescuer_thread 0 S [fwu_workqueue] 6
root 647 2 0 0 rescuer_thread 0 S [lpass_IPCRTR] 6
root 648 2 0 0 rescuer_thread 0 S [qmi_hndl0000000] 6
root 663 2 0 0 worker_thread 0 S [kworker/2:1H] 6
root 671 2 0 0 diag_socket_read 0 S [kworker/u16:7] 6
root 672 2 0 0 rescuer_thread 0 S [qmi_hndl0000000] 6
root 673 2 0 0 kthread_worker_fn 0 S [msm_slim_qmi_cl] 6
root 674 2 0 0 kthread_worker_fn 0 S [msm_slim_qmi_cl] 6
root 675 2 0 0 rescuer_thread 0 S [qmi_hndl0000000] 6
root 676 2 0 0 rescuer_thread 0 S [qmi_hndl0000000] 6
root 678 2 0 0 irq_thread 0 S [irq/153-arm-smm] 6
root 685 1 2152164 4656 binder_ioctl_write_read 75b8931040 S netd netd
root 693 685 9800 1704 pipe_read 7dcd573a78 S iptables-restore iptables
root 694 685 9816 1816 pipe_read 7823af2a78 S ip6tables-restore ip6tables
root 702 1 4232768 64428 do_sys_poll 726d72f070 S zygote64 app_process64
root 703 1 1554860 50068 do_sys_poll f08df828 S zygote app_process32
root 704 2 0 0 rescuer_thread 0 S [cds_recovery_wo] 7
root 705 2 0 0 wlan_logging_thread 0 S [wlan_logging_th] 7
root 722 2 0 0 rescuer_thread 0 S [at_usb0] 7
root 723 2 0 0 rescuer_thread 0 S [at_usb1] 7
root 724 2 0 0 rescuer_thread 0 S [qdss] 7
root 729 1 14500 2980 SyS_epoll_wait 7e95172f50 S healthd healthd
root 730 1 97112 2464 SyS_rt_sigsuspend 7711df2118 S thermal-engine thermal-engine
system 731 1 14152 2980 binder_ioctl_write_read 6fc03b2040 S android.hidl.allocator@1.0-service android.hidl.allocator@1.0-service
system 732 1 27592 4004 binder_ioctl_write_read 7229ab0040 S vr_hwc vr_hwc
audioserver 733 1 33344 8364 binder_ioctl_write_read eb95c790 S android.hardware.audio@2.0-service android.hardware.audio@2.0-service
bluetooth 734 1 17192 2460 binder_ioctl_write_read 7c2982f040 S android.hardware.bluetooth@1.0-service android.hardware.bluetooth@1.0-service
root 735 2 0 0 irq_thread 0 S [irq/254-wcd9xxx] 7
cameraserver 736 1 175308 43668 binder_ioctl_write_read e8d17790 S android.hardware.camera.provider@2.4-service android.hardware.camera.provider@2.4-service
media 737 1 12964 2448 binder_ioctl_write_read f0d9d790 S android.hardware.cas@1.0-service android.hardware.cas@1.0-service
system 738 1 2126332 2808 binder_ioctl_write_read 7f79d33040 S android.hardware.contexthub@1.0-service android.hardware.contexthub@1.0-service
media 739 1 15068 2652 binder_ioctl_write_read ec95a790 S android.hardware.drm@1.0-service android.hardware.drm@1.0-service
media 740 1 16324 2352 binder_ioctl_write_read f2217790 S android.hardware.drm@1.0-service.widevine android.hardware.drm@1.0-service.widevine
media 741 1 25876 2636 binder_ioctl_write_read 7479870040 S android.hardware.drm@1.1-service.clearkey android.hardware.drm@1.1-service.clearkey
system 742 1 13928 2596 binder_ioctl_write_read 75110b1040 S android.hardware.dumpstate@1.0-service.wahoo android.hardware.dumpstate@1.0-service.wahoo
gps 743 1 41836 4144 binder_ioctl_write_read 75ac5f2040 S android.hardware.gnss@1.0-service-qti android.hardware.gnss@1.0-service-qti
system 744 1 14136 2792 SyS_epoll_wait 7323b71f50 S android.hardware.health@2.0-service.wahoo android.hardware.health@2.0-service.wahoo
system 745 1 14168 2600 binder_ioctl_write_read 75ac42f040 S android.hardware.light@2.0-service android.hardware.light@2.0-service
system 748 1 14168 2680 binder_ioctl_write_read 7947eb3040 S android.hardware.memtrack@1.0-service android.hardware.memtrack@1.0-service
system 756 1 80480 4308 binder_ioctl_write_read 718b570040 S android.hardware.neuralnetworks@1.0-service-hvx android.hardware.neuralnetworks@1.0-service-hvx
nfc 759 1 2125748 2652 binder_ioctl_write_read 7b6d2f3040 S android.hardware.nfc@1.0-service android.hardware.nfc@1.0-service
system 760 1 13908 2544 binder_ioctl_write_read 73fe2ef040 S android.hardware.oemlock@1.0-service android.hardware.oemlock@1.0-service
root 761 1 11256 1564 __skb_recv_datagram 71ff530ed8 S oemlock-bridge oemlock-bridge
system 773 1 18736 2896 binder_ioctl_write_read 7568871040 S android.hardware.power@1.2-service.wahoo-libperfmgr android.hardware.power@1.2-service.wahoo-libperfmgr
system 778 1 70168 3420 binder_ioctl_write_read 72b4db3040 S android.hardware.sensors@1.0-service android.hardware.sensors@1.0-service
root 787 1 19788 2760 binder_ioctl_write_read 77a0371040 S android.hardware.usb@1.1-service.wahoo android.hardware.usb@1.1-service.wahoo
system 793 1 14448 2560 binder_ioctl_write_read 72cb372040 S android.hardware.vibrator@1.2-service.wahoo android.hardware.vibrator@1.2-service.wahoo
system 802 1 13780 2524 binder_ioctl_write_read 7827330040 S android.hardware.vr@1.0-service.wahoo android.hardware.vr@1.0-service.wahoo
wifi 807 1 2126104 2596 binder_ioctl_write_read 713cc31040 S android.hardware.wifi.offload@1.0-service android.hardware.wifi.offload@1.0-service
wifi 812 1 17460 2600 binder_ioctl_write_read 7278a70040 S android.hardware.wifi@1.0-service android.hardware.wifi@1.0-service
ese 813 1 14848 2592 binder_ioctl_write_read 790a0b1040 S esed esed
root 816 1 11132 1964 do_sys_poll 78de52f070 S msm_irqbalance msm_irqbalance
system 819 1 28116 1848 do_sigtimedwait 72b45ef130 S pm-service pm-service
system 825 1 28184 1940 futex_wait_queue_me 7a3c15fbb0 S sensors.qcom sensors.qcom
nobody 827 1 50580 1940 do_select 7526bb3088 S rmt_storage rmt_storage
system 828 1 13780 1952 do_sys_poll 7f205f3070 S tftp_server tftp_server
system 829 1 17340 1772 hrtimer_nanosleep 70455b1958 S pd-mapper pd-mapper
audioserver 830 1 105732 12004 binder_ioctl_write_read f3d5e790 S audioserver audioserver
system 831 1 20132 3332 SyS_epoll_wait 7f62bf2f50 S bufferhubd bufferhubd
root 835 1 9948 1760 SyS_epoll_wait 79a1531f50 S lmkd lmkd
system 836 1 14796 2252 SyS_epoll_wait 74f1f31f50 S performanced performanced
system 837 1 22464 3296 binder_ioctl_write_read 7e55a32040 S thermalserviced thermalserviced
system 838 1 18656 2732 binder_ioctl_write_read 753d3b1040 S virtual_touchpad virtual_touchpad
root 854 2 0 0 do_freq_mitigation 0 S [msm_thermal:fre] 8
root 859 2 0 0 do_thermal_monitor 0 S [msm_thermal:the] 8
root 865 2 0 0 rescuer_thread 0 S [qmi_hndl0000000] 8
root 873 2 0 0 rescuer_thread 0 S [modem] 8
system 874 1 19824 1808 hrtimer_nanosleep 70e9230958 S pm-proxy pm-proxy
root 879 1 11132 1504 do_sys_poll 72e4732070 S subsystem_ramdump subsystem_ramdump
nobody 882 1 10724 1312 do_sys_poll 7c2e9f0070 S traced traced
nobody 883 1 10724 1376 do_sys_poll 7c38fb3070 S traced_probes traced_probes
media 884 1 15272 1476 do_sys_poll 71fb172070 S adsprpcd adsprpcd
system 885 1 16940 1752 do_select 7a5adf0088 S imsqmidaemon imsqmidaemon
radio 890 1 2136736 2944 SyS_epoll_wait 749d2eef50 S cnd cnd
root 892 2 0 0 worker_thread 0 S [kworker/3:1H] 8
radio 893 1 2224936 4084 __skb_recv_datagram 799ea71ed8 S netmgrd netmgrd
radio 897 1 14636 1504 futex_wait_queue_me 71ac21ebb0 S port-bridge port-bridge
radio 898 1 23196 2572 futex_wait_queue_me 6fc2adfbb0 S ipacm ipacm
radio 899 1 2131244 1928 do_select 77cb1f1088 S qti qti
cameraserver 900 1 41196 7776 binder_ioctl_write_read f4ad9790 S cameraserver cameraserver
drm 901 1 20448 3668 binder_ioctl_write_read f69e2790 S drmserver drmserver
incidentd 902 1 22208 3244 SyS_epoll_wait 74750b1f50 S incidentd incidentd
root 903 1 30680 4936 binder_ioctl_write_read 71da631040 S installd installd
keystore 904 1 2135744 4528 binder_ioctl_write_read 7810832040 S keystore keystore
media 905 1 12236 2412 binder_ioctl_write_read ec697790 S mediadrmserver mediadrmserver
mediaex 906 1 2188528 11032 binder_ioctl_write_read 7301372040 S media.extractor mediaextractor
media 907 1 2147172 7372 binder_ioctl_write_read 7b8eb2f040 S media.metrics mediametrics
media 908 1 81888 7112 binder_ioctl_write_read f16e1790 S mediaserver mediaserver
statsd 909 1 26740 4384 SyS_epoll_wait 79c772ff50 S statsd statsd
root 911 1 26400 6004 binder_ioctl_write_read 72667ef040 S storaged storaged
wifi 912 1 20180 3640 SyS_epoll_wait 7b337eff50 S wificond wificond
mediacodec 914 1 122448 11668 binder_ioctl_write_read ee31e790 S media.codec android.hardware.media.omx@1.0-service
radio 917 1 111948 10012 binder_ioctl_write_read 72b02b0040 S rild rild
system 920 1 2165108 10608 SyS_epoll_wait 764ad32f50 S folio_daemon folio_daemon
root 921 2 0 0 rescuer_thread 0 S [ipawq15] 9
root 922 2 0 0 rescuer_thread 0 S [iparepwq15] 9
system 923 1 28496 2004 do_sys_poll 78c99f1070 S cnss-daemon cnss-daemon
gps 924 1 14812 2000 SyS_rt_sigsuspend 7bf85f1118 S loc_launcher loc_launcher
system 925 1 18596 2720 do_sys_poll 700daef070 S chre chre
system 926 1 2134120 4260 binder_ioctl_write_read 78699b0040 S gatekeeperd gatekeeperd
root 927 1 20516 3032 binder_ioctl_write_read 705e8f2040 S perfprofd perfprofd
tombstoned 929 1 9636 1144 SyS_epoll_wait 7e365eff50 S tombstoned tombstoned
root 932 1 27424 4604 SyS_epoll_wait 7a3b232f50 S update_engine update_engine
system 935 1 19292 2540 binder_ioctl_write_read 75105b2040 S android.hardware.biometrics.fingerprint@2.1-service.fpc android.hardware.biometrics.fingerprint@2.1-service.fpc
root 938 2 0 0 rescuer_thread 0 S [ipawq48] 9
root 942 2 0 0 rescuer_thread 0 S [iparepwq48] 9
system 950 1 2138472 3232 do_select 7bd7070088 S imsdatadaemon imsdatadaemon
root 969 2 0 0 rescuer_thread 0 S [ipawq13] 9
root 985 2 0 0 rescuer_thread 0 S [iparepwq13] 9
root 1002 2 0 0 rescuer_thread 0 S [ipa_A7_svc] 1
root 1012 2 0 0 rescuer_thread 0 S [qmi_hndl0000000] 1
root 1016 2 0 0 rescuer_thread 0 S [clnt_req] 1
root 1017 2 0 0 rescuer_thread 0 S [clnt_req] 1
root 1021 2 0 0 rescuer_thread 0 S [clnt_resp] 1
root 1116 2 0 0 rescuer_thread 0 S [wdsp_glink_wq] 1
system 1151 702 4777040 279108 SyS_epoll_wait 726d72ef50 S system_server app_process64
root 1199 2 0 0 rescuer_thread 0 S [mpss_IPCRTR] 1
root 1201 2 0 0 rescuer_thread 0 S [qmi_hndl0000000] 1
root 1202 2 0 0 rescuer_thread 0 S [qmi_hndl0000000] 1
root 1219 2 0 0 irq_thread 0 S [irq/157-arm-smm] 1
root 1220 2 0 0 irq_thread 0 S [irq/162-arm-smm] 1
root 1246 2 0 0 rescuer_thread 0 S [qmi_hndl0000000] 1
root 1304 2 0 0 worker_thread 0 S [kworker/1:1H] 1
root 1305 2 0 0 rescuer_thread 0 S [qmi_hndl0000000] 1
root 1382 2 0 0 rescuer_thread 0 S [ipawq14] 1
root 1383 2 0 0 rescuer_thread 0 S [iparepwq14] 1
root 1384 2 0 0 rescuer_thread 0 S [ipawq49] 1
root 1385 2 0 0 rescuer_thread 0 S [iparepwq49] 1
radio 1452 702 3654372 39588 SyS_epoll_wait 726d72ef50 S com.google.modemservice app_process64
u0_a68 1469 702 3784488 107960 SyS_epoll_wait 726d72ef50 S com.android.systemui app_process64
u0_a98 1529 702 3776304 122116 SyS_epoll_wait 726d72ef50 S com.breel.wallpapers app_process64
gps 1536 924 2130620 2588 futex_wait_queue_me 7ed79a2bb0 S lowi-server lowi-server
gps 1538 924 29112 3884 __skb_recv_datagram 736d8b2ed8 S xtra-daemon xtra-daemon
radio 1554 702 3655740 41320 SyS_epoll_wait 726d72ef50 S com.qualcomm.qcrilmsgtunnel app_process64
system 1651 702 3663924 44044 SyS_epoll_wait 726d72ef50 S .dataservices app_process64
radio 1666 702 3655692 40460 SyS_epoll_wait 726d72ef50 S com.qualcomm.qti.telephonyservice app_process64
radio 1678 702 3731184 64404 SyS_epoll_wait 726d72ef50 S com.android.phone app_process64
u0_a24 1798 702 3661228 44208 SyS_epoll_wait 726d72ef50 S com.google.android.ext.services app_process64
root 2107 2 0 0 irq_thread 0 S [irq/35-1008000.] 2
nfc 2195 702 3678748 51572 SyS_epoll_wait 726d72ef50 S com.android.nfc app_process64
u0_a10 2213 702 3670936 49256 SyS_epoll_wait 726d72ef50 S com.google.intelligence.sense app_process64
radio 2224 702 3658520 44856 SyS_epoll_wait 726d72ef50 S com.android.ims.rcsservice app_process64
system 2243 702 3655528 37844 SyS_epoll_wait 726d72ef50 S com.google.SSRestartDetector app_process64
u0_a19 2279 702 3777816 109604 SyS_epoll_wait 726d72ef50 S com.google.android.apps.nexuslauncher app_process64
u0_a125 2305 702 3666628 45068 SyS_epoll_wait 726d72ef50 S com.google.vr.vrcore app_process64
u0_a56 2332 702 3674796 53836 SyS_epoll_wait 726d72ef50 S com.google.android.apps.pixelmigrate app_process64
u0_a58 2354 702 3670496 50224 SyS_epoll_wait 726d72ef50 S com.google.android.setupwizard app_process64
u0_a21 2371 703 983924 39124 SyS_epoll_wait f08df650 S com.google.android.apps.miphone.aiai app_process32
u0_a40 2462 702 3930224 103512 SyS_epoll_wait 726d72ef50 S com.google.android.gms app_process64
u0_a40 2484 702 3770604 91132 SyS_epoll_wait 726d72ef50 S com.google.android.gms.persistent app_process64
system 3993 702 3657372 38572 SyS_epoll_wait 726d72ef50 S com.qualcomm.telephony app_process64
root 4295 1 21564 1484 do_sys_poll 4ae5b0 S adbd adbd
root 15030 2 0 0 worker_thread 0 S [kworker/4:1] 1
u0_a55 16104 702 3656652 44524 SyS_epoll_wait 726d72ef50 S com.android.defcontainer app_process64
root 16505 2 0 0 worker_thread 0 S [kworker/u17:0] 1
root 18709 2 0 0 worker_thread 0 S [kworker/3:3] 1
root 19512 2 0 0 worker_thread 0 S [kworker/5:1] 1
u0_a30 21587 702 3658124 42968 SyS_epoll_wait 726d72ef50 S com.google.android.apps.turbo app_process64
u0_a75 21768 702 3657340 40988 SyS_epoll_wait 726d72ef50 S com.google.android.partnersetup app_process64
u0_a40 21787 702 3671796 45060 SyS_epoll_wait 726d72ef50 S com.google.process.gservices app_process64
root 23038 2 0 0 worker_thread 0 S [kworker/3:2] 2
root 23393 2 0 0 worker_thread 0 S [kworker/5:3] 2
root 24384 2 0 0 worker_thread 0 S [kworker/4:2] 2
root 24428 2 0 0 worker_thread 0 S [kworker/1:0] 2
root 24572 2 0 0 worker_thread 0 S [kworker/6:0] 2
u0_a47 24879 702 4319796 48404 SyS_epoll_wait 726d72ef50 S com.verizon.mips.services app_process64
root 24931 2 0 0 worker_thread 0 S [kworker/2:1] 2
root 25152 2 0 0 worker_thread 0 S [kworker/7:2] 2
root 25203 2 0 0 worker_thread 0 S [kworker/0:4] 2
root 25230 2 0 0 worker_thread 0 S [kworker/2:0] 2
root 25246 2 0 0 worker_thread 0 S [kworker/7:0] 2
root 25362 2 0 0 worker_thread 0 S [kworker/u16:4] 2
root 25366 2 0 0 worker_thread 0 S [kworker/0:2] 2
root 25390 2 0 0 worker_thread 0 S [kworker/1:2] 2
root 25518 2 0 0 worker_thread 0 S [kworker/u16:6] 2
root 25647 2 0 0 0 0 S [kworker/6:1] 2
root 25664 2 0 0 worker_thread 0 S [kworker/u16:1] 2
root 25796 2 0 0 worker_thread 0 S [kworker/0:1] 2
root 25814 2 0 0 worker_thread 0 S [kworker/u16:3] 2
root 25819 2 0 0 worker_thread 0 S [kworker/3:0] 2
root 25823 2 0 0 worker_thread 0 S [kworker/2:2] 2
root 25933 2 0 0 worker_thread 0 S [kworker/6:2] 2
root 25946 2 0 0 worker_thread 0 S [kworker/1:1] 2
root 25950 2 0 0 worker_thread 0 S [kworker/0:3] 2
root 25966 2 0 0 worker_thread 0 S [kworker/u16:5] 2
root 26081 2 0 0 worker_thread 0 S [kworker/2:3] 2
root 26106 2 0 0 worker_thread 0 S [kworker/4:0] 2
system 26142 702 3652332 39880 SyS_epoll_wait 726d72ef50 S com.android.keychain app_process64
u0_a46 26181 702 3660768 47288 SyS_epoll_wait 726d72ef50 S com.android.documentsui app_process64
u0_a8 26208 702 3655456 43208 SyS_epoll_wait 726d72ef50 S android.process.media app_process64
u0_a40 26343 702 3661288 44008 SyS_epoll_wait 726d72ef50 S com.google.process.gapps app_process64
root 26407 2 0 0 worker_thread 0 S [kworker/5:0] 2
u0_a72 26440 702 3663624 40964 SyS_epoll_wait 726d72ef50 S com.android.connectivity.metrics app_process64
root 26499 2 0 0 worker_thread 0 S [kworker/7:1] 2
root 26509 2 0 0 worker_thread 0 S [kworker/7:3] 2
radio 26510 702 3653384 40400 SyS_epoll_wait 726d72ef50 S com.google.android.connectivitymonitor app_process64
u0_a131 26648 702 3656444 38956 SyS_epoll_wait 726d72ef50 S com.android.printspooler app_process64
root 26706 2 0 0 worker_thread 0 S [kworker/1:3] 2
root 26771 2 0 0 worker_thread 0 S [kworker/u16:8] 2
u0_a45 26778 702 3667148 45288 SyS_epoll_wait 726d72ef50 S com.google.android.apps.work.oobconfig app_process64
root 26895 2 0 0 worker_thread 0 S [kworker/6:3] 2
root 26915 2 0 0 worker_thread 0 S [kworker/5:2] 2
u0_a4380 27030 702 3652696 39012 SyS_epoll_wait 726d72ef50 S com.google.android.apps.common.testing.services app_process64
root 27090 4295 9284 1716 SyS_rt_sigsuspend 7d477b3118 S sh sh
root 27092 27090 9284 804 SyS_rt_sigsuspend 7d477b3118 S sh sh
root 27093 27092 11752 2200 0 7018ab0a78 R ps toybox
root 27902 2 0 0 0 0 R [kworker/u17:2] 2
u0_a64 32499 702 3690380 57136 SyS_epoll_wait 726d72ef50 S com.google.android.ims app_process64
USER PID TID CMD
root 1 1 init
root 2 2 kthreadd
root 3 3 ksoftirqd/0
root 5 5 kworker/0:0H
root 6 6 kworker/u16:0
root 7 7 rcu_preempt
root 8 8 rcu_sched
root 9 9 rcu_bh
root 10 10 rcuop/0
root 11 11 rcuos/0
root 12 12 rcuob/0
root 13 13 migration/0
root 14 14 watchdog/0
root 15 15 watchdog/1
root 16 16 migration/1
root 17 17 ksoftirqd/1
root 19 19 kworker/1:0H
root 20 20 rcuop/1
root 21 21 rcuos/1
root 22 22 rcuob/1
root 23 23 watchdog/2
root 24 24 migration/2
root 25 25 ksoftirqd/2
root 27 27 kworker/2:0H
root 28 28 rcuop/2
root 29 29 rcuos/2
root 30 30 rcuob/2
root 31 31 watchdog/3
root 32 32 migration/3
root 33 33 ksoftirqd/3
root 35 35 kworker/3:0H
root 36 36 rcuop/3
root 37 37 rcuos/3
root 38 38 rcuob/3
root 39 39 watchdog/4
root 40 40 migration/4
root 41 41 ksoftirqd/4
root 43 43 kworker/4:0H
root 44 44 rcuop/4
root 45 45 rcuos/4
root 46 46 rcuob/4
root 47 47 watchdog/5
root 48 48 migration/5
root 49 49 ksoftirqd/5
root 51 51 kworker/5:0H
root 52 52 rcuop/5
root 53 53 rcuos/5
root 54 54 rcuob/5
root 55 55 watchdog/6
root 56 56 migration/6
root 57 57 ksoftirqd/6
root 59 59 kworker/6:0H
root 60 60 rcuop/6
root 61 61 rcuos/6
root 62 62 rcuob/6
root 63 63 watchdog/7
root 64 64 migration/7
root 65 65 ksoftirqd/7
root 67 67 kworker/7:0H
root 68 68 rcuop/7
root 69 69 rcuos/7
root 70 70 rcuob/7
root 71 71 netns
root 72 72 perf
root 73 73 smd_channel_clo
root 74 74 dsps_smd_trans_
root 75 75 lpass_smd_trans
root 76 76 mpss_smd_trans_
root 77 77 wcnss_smd_trans
root 78 78 rpm_smd_trans_g
root 79 79 ipa_usb_wq
root 81 81 smem_native_mps
root 82 82 mpss_smem_glink
root 83 83 smem_native_lpa
root 84 84 lpass_smem_glin
root 85 85 smem_native_dsp
root 86 86 dsps_smem_glink
root 87 87 smem_native_rpm
root 88 88 rpm_smem_glink_
root 89 89 smem_native_sps
root 90 90 spss_mailbox_gl
root 91 91 msm_watchdog
root 92 92 deferwq
root 94 94 irq/126-cpr3
root 95 95 mpm
root 96 96 kworker/u16:2
root 97 97 khungtaskd
root 98 98 writeback
root 99 99 kcompactd0
root 100 100 crypto
root 101 101 bioset
root 102 102 kblockd
root 103 103 md
root 104 104 edac-poller
root 105 105 system
root 106 106 easel_mem
root 107 107 devfreq_wq
root 108 108 governor_msm_ad
root 110 110 cfg80211
root 111 111 irq/134-arm-smm
root 112 112 ipa_power_mgmt
root 113 113 transport_power
root 114 114 ipa_rm_wq
root 115 115 ipa_interrupt_w
root 116 116 irq/135-arm-smm
root 117 117 irq/136-arm-smm
root 118 118 therm_core:noti
root 119 119 therm_core:noti
root 120 120 therm_core:noti
root 121 121 therm_core:noti
root 147 147 power_off_alarm
root 148 148 kswapd0
root 149 149 vmstat
root 150 150 fsnotify_mark
root 182 182 ad_calc_wq
root 183 183 mdss_dsi_event
root 184 184 mdss_dsi_dba
root 185 185 cwb_wq
root 186 186 vsync_retire_wo
root 187 187 cwb_wq
root 189 189 glink_ssr_wq
root 190 190 glink_lbsrv
root 191 191 spi_wdsp
root 192 192 wdsp_spi_glink_
root 193 193 glink_xprt_wq
root 194 194 IPCRTR_mpss_sme
root 195 195 IPCRTR_lpass_sm
root 196 196 IPCRTR_dsps_sme
root 197 197 apr_driver
root 198 198 glink_pkt_wq
root 199 199 mem_share_svc
root 200 200 qmi_hndl0000000
root 201 201 msm_ipc_router
root 202 202 irq/137-arm-smm
root 203 203 qmi_svc_event_w
root 204 204 servloc_wq
root 205 205 tty_worker_thre
root 206 206 tty_worker_thre
root 207 207 tty_worker_thre
root 208 208 tty_worker_thre
root 209 209 k_hsuart
root 210 210 msm_serial_hs_0
root 211 211 msm_serial_hs_0
root 212 212 hwrng
root 215 215 diag_real_time_
root 216 216 diag_wq
root 217 217 DIAG_USB_diag
root 218 218 diag_cntl_wq
root 219 219 diag_dci_wq
root 220 220 DIAG_SMD_MODEM_
root 221 221 DIAG_SMD_MODEM_
root 222 222 DIAG_SMD_MODEM_
root 223 223 DIAG_SMD_MODEM_
root 224 224 DIAG_SMD_MODEM_
root 225 225 DIAG_SMD_LPASS_
root 226 226 DIAG_SMD_LPASS_
root 227 227 DIAG_SMD_LPASS_
root 228 228 DIAG_SMD_LPASS_
root 229 229 DIAG_SMD_LPASS_
root 230 230 DIAG_SMD_WCNSS_
root 231 231 DIAG_SMD_WCNSS_
root 232 232 DIAG_SMD_WCNSS_
root 233 233 DIAG_SMD_WCNSS_
root 234 234 DIAG_SMD_WCNSS_
root 235 235 DIAG_SMD_SENSOR
root 236 236 DIAG_SMD_SENSOR
root 237 237 DIAG_SMD_SENSOR
root 238 238 DIAG_SMD_SENSOR
root 239 239 DIAG_SMD_SENSOR
root 240 240 DIAG_SMD_DIAG_C
root 241 241 DIAG_SMD_DIAG_D
root 242 242 DIAG_SMD_DIAG_C
root 243 243 DIAG_SMD_DIAG_D
root 244 244 DIAG_SMD_DIAG_D
root 245 245 DIAG_SMD_CDSP_C
root 246 246 DIAG_SMD_CDSP_D
root 247 247 DIAG_SMD_CDSP_C
root 248 248 DIAG_SMD_CDSP_D
root 249 249 DIAG_SMD_CDSP_D
root 250 250 DIAG_SOCKMODEM_
root 251 251 DIAG_SOCKMODEM_
root 252 252 DIAG_SOCKMODEM_
root 253 253 DIAG_SOCKMODEM_
root 254 254 DIAG_SOCKMODEM_
root 255 255 DIAG_SOCKLPASS_
root 256 256 DIAG_SOCKLPASS_
root 257 257 DIAG_SOCKLPASS_
root 258 258 DIAG_SOCKLPASS_
root 259 259 DIAG_SOCKLPASS_
root 260 260 DIAG_SOCKWCNSS_
root 261 261 DIAG_SOCKWCNSS_
root 262 262 DIAG_SOCKWCNSS_
root 263 263 DIAG_SOCKWCNSS_
root 265 265 DIAG_SOCKWCNSS_
root 266 266 DIAG_SOCKSENSOR
root 267 267 DIAG_SOCKSENSOR
root 268 268 DIAG_SOCKSENSOR
root 269 269 DIAG_SOCKSENSOR
root 270 270 DIAG_SOCKSENSOR
root 271 271 DIAG_SOCKDIAG_C
root 272 272 DIAG_SOCKDIAG_D
root 273 273 DIAG_SOCKDIAG_C
root 274 274 DIAG_SOCKDIAG_D
root 275 275 DIAG_SOCKDIAG_D
root 276 276 DIAG_SOCKCDSP_C
root 277 277 DIAG_SOCKCDSP_D
root 278 278 DIAG_SOCKCDSP_C
root 279 279 DIAG_SOCKCDSP_D
root 280 280 DIAG_SOCKCDSP_D
root 281 281 DIAG_CNTL_SOCKE
root 282 282 DIAG_GLINK_DIAG
root 283 283 DIAG_GLINK_DIAG
root 284 284 DIAG_GLINK_DIAG
root 285 285 DIAG_GLINK_DIAG
root 286 286 DIAG_GLINK_DIAG
root 287 287 kgsl-workqueue
root 288 288 kgsl-mementry
root 289 289 kgsl_worker_thr
root 290 290 kgsl-events
root 291 291 kgsl_devfreq_wq
root 292 292 bioset
root 293 293 bioset
root 294 294 bioset
root 295 295 bioset
root 296 296 bioset
root 297 297 bioset
root 298 298 bioset
root 299 299 bioset
root 300 300 bioset
root 301 301 bioset
root 302 302 bioset
root 303 303 bioset
root 304 304 bioset
root 305 305 bioset
root 307 307 bioset
root 308 308 bioset
root 309 309 bioset
root 310 310 bioset
root 311 311 bioset
root 312 312 bioset
root 313 313 bioset
root 314 314 bioset
root 315 315 bioset
root 316 316 bioset
root 317 317 bioset
root 318 318 irq/286-soc:fp_
root 319 319 memory_wq
root 320 320 qcrypto_seq_res
root 321 321 scsi_eh_0
root 322 322 scsi_tmf_0
root 323 323 ufs_pm_qos_0
root 324 324 ufs_clk_ungatin
root 325 325 ufs_clkscaling_
root 326 326 spi1
root 327 327 spi2
root 328 328 spi10
root 329 329 bond0
root 330 330 sharedmem_qmi_w
root 331 331 qmi_hndl0000000
root 335 335 uether
root 336 336 k_ipa_usb
root 341 341 irq/262-vl53l0_
root 342 342 bioset
root 343 343 bioset
root 344 344 bioset
root 345 345 bioset
root 347 347 bioset
root 348 348 bioset
root 349 349 bioset
root 350 350 bioset
root 351 351 bioset
root 355 355 msm_cci_wq
root 356 356 msm_cci_wq
root 357 357 msm_cpp_workque
root 358 358 msm_vidc_worker
root 359 359 pm_workerq_venu
root 360 360 irq/158-arm-smm
root 361 361 irq/159-arm-smm
root 362 362 irq/160-arm-smm
root 363 363 irq/161-arm-smm
root 364 364 rot_commitq_0_0
root 365 365 rot_commitq_0_1
root 366 366 rot_doneq_0_0
root 367 367 rot_doneq_0_1
root 368 368 therm_core:noti
root 370 370 irq/500-chg-err
root 371 371 irq/501-chg-sta
root 372 372 irq/502-step-ch
root 373 373 irq/503-step-ch
root 374 374 irq/504-step-ch
root 375 375 irq/505-otg-fai
root 376 376 irq/506-otg-ove
root 377 377 irq/507-otg-oc-
root 378 378 irq/508-testmod
root 379 379 irq/509-bat-tem
root 380 380 irq/510-bat-ocp
root 381 381 irq/511-bat-ov
root 382 382 irq/512-bat-low
root 383 383 irq/513-bat-the
root 384 384 irq/514-bat-ter
root 385 385 irq/515-usbin-c
root 386 386 irq/516-usbin-l
root 387 387 irq/517-usbin-u
root 388 388 irq/518-usbin-o
root 389 389 irq/519-usbin-p
root 390 390 irq/520-usbin-s
root 391 391 irq/521-usbin-i
root 392 392 irq/522-type-c-
root 393 393 irq/523-dcin-co
root 394 394 irq/524-dcin-lt
root 395 395 irq/525-dcin-uv
root 396 396 irq/526-dcin-ov
root 397 397 irq/527-dcin-pl
root 398 398 irq/528-div2-en
root 399 399 irq/529-dcin-ic
root 400 400 irq/532-aicl-fa
root 401 401 irq/533-aicl-do
root 402 402 irq/534-high-du
root 403 403 irq/535-input-c
root 404 404 irq/536-tempera
root 405 405 irq/537-switche
root 406 406 therm_core:noti
root 407 407 therm_core:noti
root 409 409 therm_core:noti
root 410 410 therm_core:noti
root 411 411 therm_core:noti
root 412 412 therm_core:noti
root 413 413 therm_core:noti
root 414 414 therm_core:noti
root 415 415 therm_core:noti
root 416 416 therm_core:noti
root 417 417 therm_core:noti
root 418 418 therm_core:noti
root 419 419 therm_core:noti
root 420 420 therm_core:noti
root 421 421 therm_core:noti
root 422 422 therm_core:noti
root 423 423 therm_core:noti
root 424 424 therm_core:noti
root 425 425 therm_core:noti
root 426 426 therm_core:noti
root 427 427 therm_core:noti
root 428 428 therm_core:noti
root 429 429 irq/59-tsens_in
root 430 430 irq/62-tsens_cr
root 431 431 therm_core:noti
root 432 432 therm_core:noti
root 433 433 therm_core:noti
root 434 434 therm_core:noti
root 435 435 therm_core:noti
root 436 436 therm_core:noti
root 437 437 therm_core:noti
root 438 438 therm_core:noti
root 439 439 irq/63-tsens_in
root 440 440 irq/64-tsens_cr
root 441 441 therm_core:noti
root 442 442 irq/366-limits_
root 443 443 therm_core:noti
root 444 444 irq/367-limits_
root 445 445 dm_bufio_cache
root 446 446 cfinteractive
root 447 447 irq/291-bcm1560
root 448 448 irq/226-bcm1560
root 449 449 therm_core:noti
root 451 451 irq/197-spdm_bw
root 452 452 binder
root 453 453 irq/144-arm-smm
root 454 454 uaudio_svc
root 455 455 qmi_hndl0000000
root 456 456 ipv6_addrconf
root 458 458 irq/574-adsp
root 459 459 sysmon_wq
root 460 460 irq/606-slpi
root 461 461 irq/542-modem
root 465 465 usb_bam_wq
root 466 466 irq/19-sig-tx
root 467 467 irq/20-sig-rx
root 468 468 irq/22-msg-rx
root 469 469 usbpd0
root 470 470 usbpd0
root 471 471 therm_core:noti
root 472 472 irq/734-soc-upd
root 473 473 irq/735-soc-rea
root 474 474 irq/736-bsoc-de
root 475 475 irq/737-msoc-de
root 476 476 irq/738-msoc-lo
root 477 477 irq/739-msoc-em
root 478 478 irq/740-msoc-hi
root 479 479 irq/741-msoc-fu
root 480 480 irq/742-vbatt-p
root 481 481 irq/743-vbatt-l
root 482 482 irq/744-esr-del
root 483 483 irq/745-batt-mi
root 484 484 irq/746-batt-te
root 485 485 irq/747-ima-rdy
root 486 486 irq/748-mem-xcp
root 487 487 irq/749-dma-gra
root 489 489 irq/54-hs_phy_i
root 490 490 irq/55-ss_phy_i
root 491 491 irq/56-msm_dwc3
root 494 494 irq/36-ARM64 pr
root 495 495 irq/37-ARM64 se
root 496 496 irq/39-ARM64 pr
root 497 497 irq/40-ARM64 se
root 498 498 rq_stats
root 499 499 irq/145-arm-smm
root 500 500 irq/146-arm-smm
root 501 501 irq/147-arm-smm
root 502 502 irq/148-arm-smm
root 503 503 irq/149-arm-smm
root 504 504 irq/150-arm-smm
root 505 505 irq/151-arm-smm
root 506 506 irq/152-arm-smm
root 507 507 set_state_work
root 508 508 irq/227-mnh-rea
root 510 510 irq/751-mnh_pci
root 511 511 irq/752-mnh_pci
root 512 512 irq/753-mnh_pci
root 513 513 irq/754-mnh_pci
root 514 514 irq/755-mnh_pci
root 515 515 irq/758-mnh_pci
root 516 516 irq/759-mnh_pci
root 517 517 irq/128-arm-smm
root 518 518 sb-1
root 519 519 ngd_rx_thread1
root 520 520 ngd_notify_sl1
root 521 521 sb-3
root 522 522 ngd_rx_thread3
root 523 523 ngd_notify_sl3
root 525 525 therm_core:noti
root 526 526 therm_core:noti
root 527 527 therm_core:noti
root 528 528 irq/66-lmh-inte
root 529 529 irq/28-qpnp_fla
root 530 530 irq/27-qpnp_fla
root 531 531 irq/26-qpnp_fla
root 532 532 kworker/6:1H
root 533 533 kworker/5:1H
root 534 534 kworker/7:1H
root 535 535 ext4-rsv-conver
root 536 536 kworker/4:1H
root 537 537 jbd2/sdd3-8
root 538 538 ext4-rsv-conver
root 539 539 ext4-rsv-conver
root 542 542 init
root 543 543 ueventd
root 545 545 kworker/0:1H
root 550 550 irq/760-synapti
root 551 551 dsx_rebuild_wor
root 552 552 dsx_exp_workque
root 556 556 batt_timer
system 566 566 qseecomd
root 567 567 sugov:0
root 568 568 sugov:4
system 570 570 hwservicemanage
logd 571 571 logd
logd 571 576 logd.daemon
logd 571 581 logd.reader
logd 571 582 logd.writer
logd 571 583 logd.control
logd 571 602 logd.klogd
logd 571 603 logd.auditd
logd 571 974 logd.reader.per
system 572 572 servicemanager
system 573 573 vndservicemanag
system 574 574 qseecomd
system 574 575 qseecomd
system 574 577 qseecomd
system 574 578 qseecomd
system 574 579 qseecomd
system 574 580 qseecomd
root 584 584 kauditd
root 586 586 boot@1.0-servic
system 587 587 gatekeeper@1.0-
system 588 588 keymaster@3.0-s
system 589 589 keymaster@4.0-s
system 589 604 HwBinder:589_1
system 591 591 surfaceflinger
system 591 620 HwBinder:591_1
system 591 623 Binder:591_1
system 591 624 Binder:591_2
system 591 625 DispSync
system 591 626 appEventThread
system 591 627 sfEventThread
system 591 664 VrEvent
system 591 666 VrHwcPost
system 591 667 VrDispatch
system 591 668 surfaceflinger
system 591 1218 Binder:591_3
system 591 1671 Binder:591_4
system 591 1775 Binder:591_5
system 593 593 composer@2.1-se
system 593 608 Binder:593_1
system 593 609 Binder:593_2
system 593 634 SDM_EventThread
system 593 649 android.hardwar
system 593 651 HWC_UeventThrea
system 593 656 HwBinder:593_1
system 593 657 HwBinder:593_2
system 593 665 HwBinder:593_3
system 594 594 configstore@1.0
system 594 622 HwBinder:594_1
system 594 7100 HwBinder:594_2
system 595 595 allocator@2.0-s
system 595 610 HwBinder:595_1
system 595 1778 HwBinder:595_2
system 595 1779 HwBinder:595_3
root 612 612 jbd2/sda45-8
root 613 613 ext4-rsv-conver
system 616 616 time_daemon
system 616 629 time_daemon
system 616 630 time_daemon
system 616 631 time_daemon
system 616 632 time_daemon
system 616 633 time_daemon
system 616 1267 time_daemon
root 617 617 Binder:617_2
root 617 637 Binder:617_1
root 617 638 Binder:617_2
root 617 639 Binder:617_3
root 617 640 Binder:617_4
root 617 641 HwBinder:617_1
root 617 1439 Binder:617_5
root 619 619 mdss_fb0
root 635 635 irq/177-arm-smm
root 636 636 irq/178-arm-smm
root 642 642 dsps_IPCRTR
root 643 643 fwu_workqueue
root 647 647 lpass_IPCRTR
root 648 648 qmi_hndl0000000
root 663 663 kworker/2:1H
root 671 671 kworker/u16:7
root 672 672 qmi_hndl0000000
root 673 673 msm_slim_qmi_cl
root 674 674 msm_slim_qmi_cl
root 675 675 qmi_hndl0000000
root 676 676 qmi_hndl0000000
root 678 678 irq/153-arm-smm
root 685 685 Binder:685_2
root 685 695 netd
root 685 706 netd
root 685 707 netd
root 685 708 netd
root 685 709 netd
root 685 710 netd
root 685 711 netd
root 685 712 netd
root 685 713 netd
root 685 715 Binder:685_1
root 685 716 Binder:685_2
root 685 717 HwBinder:685_1
root 693 693 iptables-restor
root 694 694 ip6tables-resto
root 702 702 main
root 702 27031 ReferenceQueueD
root 702 27032 FinalizerDaemon
root 702 27033 FinalizerWatchd
root 702 27034 HeapTaskDaemon
root 703 703 main
root 703 26533 ReferenceQueueD
root 703 26534 FinalizerDaemon
root 703 26535 FinalizerWatchd
root 703 26536 HeapTaskDaemon
root 704 704 cds_recovery_wo
root 705 705 wlan_logging_th
root 722 722 at_usb0
root 723 723 at_usb1
root 724 724 qdss
root 729 729 healthd
root 730 730 thermal-engine
root 730 747 HwBinder:730_1
root 730 750 thermal-engine
root 730 753 thermal-engine
root 730 757 thermal-engine
root 730 758 thermal-engine
root 730 762 thermal-engine
root 730 763 thermal-engine
root 730 764 thermal-engine
root 730 766 thermal-engine
root 730 768 thermal-engine
root 730 769 thermal-engine
root 730 770 thermal-engine
root 730 771 thermal-engine
root 730 772 thermal-engine
root 730 774 thermal-engine
root 730 775 thermal-engine
root 730 776 thermal-engine
root 730 777 thermal-engine
root 730 779 thermal-engine
root 730 780 thermal-engine
root 730 782 thermal-engine
root 730 783 thermal-engine
root 730 784 thermal-engine
root 730 785 thermal-engine
root 730 786 thermal-engine
root 730 788 thermal-engine
root 730 789 thermal-engine
root 730 790 thermal-engine
root 730 791 thermal-engine
root 730 792 thermal-engine
root 730 794 thermal-engine
root 730 795 thermal-engine
root 730 796 thermal-engine
root 730 797 thermal-engine
root 730 798 thermal-engine
root 730 799 thermal-engine
root 730 800 thermal-engine
root 730 801 thermal-engine
root 730 803 thermal-engine
root 730 804 thermal-engine
root 730 805 thermal-engine
root 730 806 thermal-engine
root 730 808 thermal-engine
root 730 809 thermal-engine
root 730 810 thermal-engine
root 730 811 thermal-engine
root 730 814 thermal-engine
root 730 815 thermal-engine
root 730 817 thermal-engine
root 730 818 thermal-engine
root 730 820 thermal-engine
root 730 821 thermal-engine
root 730 822 thermal-engine
root 730 823 thermal-engine
root 730 824 thermal-engine
root 730 832 thermal-engine
root 730 833 thermal-engine
root 730 834 thermal-engine
root 730 839 thermal-engine
root 730 840 thermal-engine
root 730 841 thermal-engine
root 730 842 thermal-engine
root 730 843 thermal-engine
root 730 1244 thermal-engine
root 730 1245 thermal-engine
system 731 731 allocator@1.0-s
system 732 732 vr_hwc
system 732 765 Binder:732_1
system 732 767 HwBinder:732_1
system 732 781 Binder:732_2
audioserver 733 733 audio@2.0-servi
audioserver 733 1111 audio@2.0-servi
audioserver 733 1118 audio@2.0-servi
audioserver 733 1119 HwBinder:733_1
audioserver 733 1164 HwBinder:733_1
audioserver 733 1165 HwBinder:733_2
audioserver 733 1347 HwBinder:733_3
audioserver 733 2714 HwBinder:733_4
audioserver 733 2763 writer
audioserver 733 11695 HwBinder:733_5
bluetooth 734 734 bluetooth@1.0-s
bluetooth 734 746 HwBinder:734_1
root 735 735 irq/254-wcd9xxx
cameraserver 736 736 provider@2.4-se
cameraserver 736 1989 HwBinder:736_1
cameraserver 736 1999 CAM_imgTh
cameraserver 736 2000 CAM_imgTh
cameraserver 736 2001 CAM_imgTh
cameraserver 736 2002 CAM_imgTh
cameraserver 736 2003 CAM_imgTh
cameraserver 736 2004 CAM_imgTh
cameraserver 736 2005 CAM_imgTh
cameraserver 736 2006 CAM_imgTh
cameraserver 736 2007 CAM_imgTh
cameraserver 736 2008 CAM_imgTh
cameraserver 736 2009 CAM_imgTh
cameraserver 736 2010 CAM_imgTh
cameraserver 736 2011 CAM_imgTh
cameraserver 736 2012 CAM_imgTh
cameraserver 736 2013 CAM_imgTh
cameraserver 736 2014 CAM_imgTh
cameraserver 736 2015 CAM_imgTh
cameraserver 736 2016 CAM_imgTh
cameraserver 736 2017 CAM_imgTh
cameraserver 736 2018 CAM_imgTh
cameraserver 736 2030 android.hardwar
cameraserver 736 2048 CAM_gyro_sens
cameraserver 736 2101 HwBinder:736_1
cameraserver 736 14831 HwBinder:736_2
cameraserver 736 14832 HwBinder:736_3
cameraserver 736 14856 CAM_startsensor
cameraserver 736 14857 CAM_startsensor
cameraserver 736 21484 HwBinder:736_4
media 737 737 cas@1.0-service
media 737 23185 HwBinder:737_1
media 737 23186 HwBinder:737_2
system 738 738 contexthub@1.0-
system 738 754 android.hardwar
media 739 739 drm@1.0-service
media 739 846 HwBinder:739_1
media 739 23188 HwBinder:739_2
media 739 23190 HwBinder:739_3
media 740 740 drm@1.0-service
media 740 23189 HwBinder:740_1
media 740 23191 HwBinder:740_2
media 741 741 drm@1.1-service
media 741 23187 HwBinder:741_1
media 741 23192 HwBinder:741_2
media 741 23193 HwBinder:741_3
media 741 23194 HwBinder:741_4
system 742 742 dumpstate@1.0-s
gps 743 743 gnss@1.0-servic
gps 743 1563 Loc_hal
gps 743 1614 Loc_hal
gps 743 1617 Loc_hal
gps 743 1620 Loc_hal
gps 743 1630 Loc_hal
gps 743 1634 Loc_hal
gps 743 1635 Loc_hal
gps 743 1637 Loc_hal
gps 743 1638 Loc_hal
system 744 744 health@2.0-serv
system 745 745 light@2.0-servi
system 748 748 memtrack@1.0-se
system 756 756 neuralnetworks@
system 756 23195 HwBinder:756_1
system 756 23196 HwBinder:756_2
system 756 27056 HwBinder:756_2
system 756 27057 HwBinder:756_2
system 756 27059 HwBinder:756_3
nfc 759 759 nfc@1.0-service
system 760 760 oemlock@1.0-ser
root 761 761 oemlock-bridge
system 773 773 power@1.2-servi
system 773 844 NodeLooperThrea
system 773 845 android.hardwar
system 778 778 sensors@1.0-ser
system 778 857 android.hardwar
system 778 858 android.hardwar
system 778 863 android.hardwar
system 778 981 android.hardwar
system 778 983 android.hardwar
system 778 984 android.hardwar
system 778 989 android.hardwar
system 778 999 android.hardwar
system 778 1000 android.hardwar
system 778 1001 android.hardwar
system 778 1003 android.hardwar
system 778 1004 android.hardwar
system 778 1013 android.hardwar
system 778 1015 android.hardwar
system 778 1022 android.hardwar
system 778 1023 android.hardwar
system 778 1034 android.hardwar
system 778 1035 android.hardwar
system 778 1044 android.hardwar
system 778 1045 android.hardwar
system 778 1048 android.hardwar
system 778 1049 android.hardwar
system 778 1050 android.hardwar
system 778 1051 android.hardwar
system 778 1057 android.hardwar
system 778 1058 android.hardwar
system 778 1060 android.hardwar
system 778 1061 android.hardwar
system 778 1062 android.hardwar
system 778 1063 android.hardwar
system 778 1067 android.hardwar
system 778 1068 android.hardwar
system 778 1073 android.hardwar
system 778 1074 android.hardwar
system 778 1076 android.hardwar
system 778 1077 android.hardwar
system 778 1078 android.hardwar
system 778 1079 android.hardwar
system 778 1083 android.hardwar
system 778 1084 android.hardwar
system 778 1086 android.hardwar
system 778 1087 HwBinder:778_1
system 778 1308 sensors@1.0-ser
system 778 1309 sensors@1.0-ser
system 778 1310 sensors@1.0-ser
root 787 787 usb@1.1-service
root 787 957 HwBinder:787_1
root 787 966 usb@1.1-service
root 787 1355 usb@1.1-service
system 793 793 vibrator@1.2-se
system 802 802 vr@1.0-service.
wifi 807 807 offload@1.0-ser
wifi 807 855 android.hardwar
wifi 812 812 android.hardwar
ese 813 813 esed
root 816 816 msm_irqbalance
system 819 819 pm-service
system 819 851 POSIX timer 0
system 819 852 POSIX timer 1
system 819 853 POSIX timer 2
system 819 860 pm-service
system 819 861 Binder:819_1
system 819 866 Binder:819_2
system 819 949 Binder:819_3
system 819 960 Binder:819_4
system 825 825 sensors.qcom
system 825 856 sensors.qcom
system 825 864 sensors.qcom
system 825 868 sensors.qcom
system 825 875 sensors.qcom
system 825 876 sensors.qcom
system 825 877 sensors.qcom
system 825 878 sensors.qcom
system 825 880 sensors.qcom
system 825 881 sensors.qcom
system 825 979 sensors.qcom
system 825 980 sensors.qcom
nobody 827 827 rmt_storage
nobody 827 1205 rmt_storage
nobody 827 1206 rmt_storage
nobody 827 1207 rmt_storage
nobody 827 1208 rmt_storage
system 828 828 tftp_server
system 829 829 pd-mapper
system 829 862 pd-mapper
audioserver 830 830 audioserver
audioserver 830 977 HwBinder:830_1
audioserver 830 988 HwBinder:830_2
audioserver 830 1121 ApmTone
audioserver 830 1122 ApmAudio
audioserver 830 1123 ApmOutput
audioserver 830 1124 Binder:830_1
audioserver 830 1125 Binder:830_2
audioserver 830 1166 HwBinder:830_3
audioserver 830 1167 FastMixer
audioserver 830 1168 AudioOut_D
audioserver 830 1169 FastMixer
audioserver 830 1170 AudioOut_15
audioserver 830 1171 AudioOut_1D
audioserver 830 1172 FastMixer
audioserver 830 1173 AudioOut_25
audioserver 830 1174 AudioOut_2D
audioserver 830 1175 FastMixer
audioserver 830 1176 AudioOut_35
audioserver 830 1274 soundTrigger cb
audioserver 830 1488 Binder:830_3
audioserver 830 2212 Binder:830_4
audioserver 830 4011 Binder:830_5
audioserver 830 12424 Binder:830_6
audioserver 830 27475 Binder:830_7
audioserver 830 8696 Binder:830_8
audioserver 830 11301 Binder:830_9
audioserver 830 14272 Binder:830_A
audioserver 830 6771 Binder:830_B
audioserver 830 2083 Binder:830_C
system 831 831 bufferhubd
root 835 835 lmkd
system 836 836 performanced
system 837 837 thermalserviced
system 837 867 HwBinder:837_1
system 837 869 HwBinder:837_2
system 838 838 Binder:838_2
system 838 850 Binder:838_1
root 854 854 msm_thermal:fre
root 859 859 msm_thermal:the
root 865 865 qmi_hndl0000000
root 873 873 modem
system 874 874 pm-proxy
system 874 886 Binder:874_1
system 874 887 Binder:874_2
system 874 888 Binder:874_3
root 879 879 subsystem_ramdu
nobody 882 882 traced
nobody 883 883 traced_probes
media 884 884 adsprpcd
media 884 910 adsprpcd
media 884 913 adsprpcd
system 885 885 imsqmidaemon
system 885 894 imsqmidaemon
radio 890 890 cnd
radio 890 939 cnd
radio 890 946 HwBinder:890_1
radio 890 947 cnd
radio 890 1268 cnd
radio 890 1292 cnd
root 892 892 kworker/3:1H
radio 893 893 netmgrd
root 893 944 netmgrd
radio 893 965 netmgrd
radio 893 972 HwBinder:893_1
radio 893 1007 netmgrd
radio 893 1008 netmgrd
radio 893 1009 netmgrd
radio 893 1149 netmgrd
radio 893 1150 netmgrd
radio 893 1269 netmgrd
radio 893 1375 netmgrd
radio 893 1378 netmgrd
radio 893 1379 netmgrd
radio 893 1380 netmgrd
radio 893 1395 netmgrd
radio 893 1396 netmgrd
radio 893 1398 netmgrd
radio 893 1399 netmgrd
radio 893 1415 netmgrd
radio 893 1416 netmgrd
radio 893 1417 netmgrd
radio 893 1418 netmgrd
radio 893 1429 netmgrd
radio 893 1430 netmgrd
radio 893 1431 netmgrd
radio 893 1433 netmgrd
radio 893 1509 netmgrd
radio 893 1517 netmgrd
radio 893 1520 netmgrd
radio 893 1521 netmgrd
radio 893 1602 netmgrd
radio 893 1603 netmgrd
radio 893 1619 netmgrd
radio 893 1621 netmgrd
radio 893 1622 netmgrd
radio 893 1723 netmgrd
radio 893 1726 netmgrd
radio 893 1729 netmgrd
radio 893 1730 netmgrd
radio 893 1819 netmgrd
radio 893 1829 netmgrd
radio 893 1831 netmgrd
radio 893 1886 netmgrd
radio 893 1893 netmgrd
radio 893 1894 netmgrd
radio 893 1895 netmgrd
radio 893 1896 netmgrd
radio 893 1898 netmgrd
radio 893 1900 netmgrd
radio 893 1902 netmgrd
radio 893 1903 netmgrd
radio 893 1906 netmgrd
radio 893 1907 netmgrd
radio 893 1908 netmgrd
radio 893 1909 netmgrd
radio 893 1917 netmgrd
radio 893 1920 netmgrd
radio 893 1921 netmgrd
radio 893 1922 netmgrd
radio 893 1927 netmgrd
radio 893 1928 netmgrd
radio 893 1929 netmgrd
radio 893 1930 netmgrd
radio 893 1940 netmgrd
radio 893 1945 netmgrd
radio 893 1946 netmgrd
radio 893 1947 netmgrd
radio 893 1955 netmgrd
radio 893 1956 netmgrd
radio 893 1957 netmgrd
radio 893 1958 netmgrd
radio 893 1972 netmgrd
radio 893 1973 netmgrd
radio 893 1974 netmgrd
radio 893 1975 netmgrd
radio 893 1978 netmgrd
radio 893 1979 netmgrd
radio 893 1980 netmgrd
radio 893 1981 netmgrd
radio 897 897 port-bridge
radio 897 915 port-bridge
radio 897 916 port-bridge
radio 898 898 ipacm
radio 898 951 HwBinder:898_1
radio 898 952 ipacm
radio 898 953 netlink socket
radio 898 954 ipa driver ntfy
radio 899 899 qti
radio 899 928 qti
radio 899 3064 qti
radio 899 3065 qti
radio 899 3066 qti
cameraserver 900 900 cameraserver
cameraserver 900 1018 HwBinder:900_1
cameraserver 900 1043 HwBinder:900_2
cameraserver 900 2100 HwBinder:900_3
cameraserver 900 2102 Binder:900_1
cameraserver 900 2177 Binder:900_2
cameraserver 900 14917 Binder:900_3
cameraserver 900 14918 Binder:900_4
cameraserver 900 14976 Binder:900_5
cameraserver 900 20996 Binder:900_6
cameraserver 900 16659 Binder:900_7
cameraserver 900 22046 Binder:900_8
drm 901 901 drmserver
drm 901 1024 Binder:901_1
drm 901 8440 Binder:901_2
incidentd 902 902 Binder:902_2
incidentd 902 933 Binder:902_1
incidentd 902 936 Binder:902_3
root 903 903 Binder:903_2
root 903 931 Binder:903_1
root 903 1263 Binder:903_3
root 903 1287 Binder:903_4
root 903 1301 Binder:903_5
root 903 1354 Binder:903_6
root 903 5120 Binder:903_7
root 903 5197 Binder:903_8
root 903 5243 Binder:903_9
root 903 11678 Binder:903_A
root 903 12088 Binder:903_B
keystore 904 904 keystore
keystore 904 997 HwBinder:904_1
media 905 905 mediadrmserver
media 905 945 Binder:905_1
mediaex 906 906 mediaextractor
mediaex 906 1052 Binder:906_1
mediaex 906 1977 Binder:906_2
mediaex 906 3987 Binder:906_3
mediaex 906 1985 Binder:906_4
mediaex 906 14515 Binder:906_5
mediaex 906 26203 Binder:906_6
mediaex 906 12336 Binder:906_7
media 907 907 mediametrics
media 907 1053 Binder:907_1
media 907 14381 Binder:907_2
media 907 14382 Binder:907_3
media 908 908 mediaserver
media 908 1065 Binder:908_1
media 908 1518 HwBinder:908_1
media 908 1771 Binder:908_2
media 908 1772 Binder:908_3
media 908 2569 MediaClock
media 908 2570 NuPlayerDriver
media 908 2572 generic
media 908 2704 NuPlayerRendere
media 908 2705 NPDecoder
media 908 2706 NPDecoder-CL
media 908 18653 Binder:908_4
media 908 25126 Binder:908_5
media 908 28451 Binder:908_6
statsd 909 909 Binder:909_2
statsd 909 961 Binder:909_1
statsd 909 962 Binder:909_2
statsd 909 970 Binder:909_3
root 911 911 storaged
root 911 1036 storaged
root 911 1037 Binder:911_1
root 911 1038 HwBinder:911_1
wifi 912 912 wificond
mediacodec 914 914 omx@1.0-service
mediacodec 914 1064 Binder:914_1
mediacodec 914 1066 Binder:914_2
mediacodec 914 1090 HwBinder:914_1
mediacodec 914 1091 HwBinder:914_2
mediacodec 914 1875 HwBinder:914_2
mediacodec 914 1876 HwBinder:914_2
mediacodec 914 1970 HwBinder:914_3
mediacodec 914 2707 .vorbis.decoder
mediacodec 914 2708 OMXCallbackDisp
mediacodec 914 2764 HwBinder:914_4
mediacodec 914 27073 HwBinder:914_5
mediacodec 914 27076 HwBinder:914_6
mediacodec 914 27078 HwBinder:914_7
mediacodec 914 14333 HwBinder:914_8
mediacodec 914 14409 HwBinder:914_9
mediacodec 914 14511 HwBinder:914_A
mediacodec 914 6795 HwBinder:914_B
mediacodec 914 6858 HwBinder:914_C
mediacodec 914 14972 HwBinder:914_D
mediacodec 914 26212 HwBinder:914_E
mediacodec 914 32727 HwBinder:914_F
mediacodec 914 332 HwBinder:914_10
mediacodec 914 15944 HwBinder:914_11
mediacodec 914 15945 HwBinder:914_12
mediacodec 914 2823 HwBinder:914_13
radio 917 917 rild
radio 917 1046 rild
radio 917 1055 rild
radio 917 1210 Binder:917_1
radio 917 1213 rild
radio 917 1215 Binder:917_2
radio 917 1221 rild
radio 917 1222 rild
radio 917 1223 HwBinder:917_1
radio 917 1224 rild
radio 917 1225 rild
radio 917 1226 rild
radio 917 1228 rild
radio 917 1229 rild
radio 917 1230 rild
radio 917 1231 rild
radio 917 1321 rild
radio 917 1322 rild
radio 917 1323 rild
radio 917 1324 rild
radio 917 1325 rild
radio 917 1326 rild
radio 917 1329 rild
radio 917 1330 rild
radio 917 1332 rild
radio 917 1334 rild
radio 917 1336 rild
radio 917 1349 rild
radio 917 1351 rild
radio 917 1358 rild
radio 917 1360 rild
radio 917 1362 rild
radio 917 1363 rild
radio 917 1364 rild
radio 917 1366 rild
radio 917 1368 rild
radio 917 1369 rild
radio 917 1370 rild
radio 917 1371 rild
radio 917 1373 rild
radio 917 1374 rild
radio 917 1377 rild
system 920 920 folio_daemon
root 921 921 ipawq15
root 922 922 iparepwq15
system 923 923 cnss-daemon
system 923 963 cnss-daemon
system 923 964 cnss-daemon
system 923 1209 Binder:923_1
system 923 1212 cnss-daemon
system 923 1214 Binder:923_2
system 923 1307 cnss-daemon
system 923 3731 cnss-daemon
gps 924 924 loc_launcher
gps 924 955 loc_launcher
system 925 925 chre
system 925 968 chre
system 925 975 chre
system 925 976 chre
system 925 1189 chre
system 925 1190 chre
system 926 926 gatekeeperd
system 926 987 HwBinder:926_1
root 927 927 Binder:927_2
root 927 986 Binder:927_1
tombstoned 929 929 tombstoned
root 932 932 update_engine
root 932 1006 HwBinder:932_1
system 935 935 fingerprint@2.1
system 935 1136 android.hardwar
system 935 1137 android.hardwar
system 935 1139 HwBinder:935_1
root 938 938 ipawq48
root 942 942 iparepwq48
system 950 950 imsdatadaemon
system 950 1019 imsdatadaemon
system 950 1040 imsdatadaemon
system 950 1041 imsdatadaemon
system 950 1042 imsdatadaemon
system 950 1270 imsdatadaemon
system 950 1290 imsdatadaemon
root 969 969 ipawq13
root 985 985 iparepwq13
root 1002 1002 ipa_A7_svc
root 1012 1012 qmi_hndl0000000
root 1016 1016 clnt_req
root 1017 1017 clnt_req
root 1021 1021 clnt_resp
root 1116 1116 wdsp_glink_wq
system 1151 1151 system_server
system 1151 1156 Signal Catcher
system 1151 1157 ADB-JDWP Connec
system 1151 1158 ReferenceQueueD
system 1151 1159 FinalizerDaemon
system 1151 1160 FinalizerWatchd
system 1151 1161 HeapTaskDaemon
system 1151 1162 Binder:1151_1
system 1151 1163 Binder:1151_2
system 1151 1184 android.bg
system 1151 1185 ActivityManager
system 1151 1186 android.ui
system 1151 1187 ActivityManager
system 1151 1188 ActivityManager
system 1151 1193 batterystats-wo
system 1151 1194 HwBinder:1151_1
system 1151 1195 FileObserver
system 1151 1196 android.fg
system 1151 1197 android.io
system 1151 1198 android.display
system 1151 1200 CpuTracker
system 1151 1203 PowerManagerSer
system 1151 1204 BatteryStats_wa
system 1151 1216 PackageManager
system 1151 1217 PackageManager
system 1151 1266 PackageInstalle
system 1151 1277 android.anim
system 1151 1278 android.anim.lf
system 1151 1281 HealthServiceRe
system 1151 1282 SensorEventAckR
system 1151 1283 SensorService
system 1151 1284 AccountManagerS
system 1151 1285 SettingsProvide
system 1151 1286 AlarmManager
system 1151 1289 window_tracing
system 1151 1295 UEventObserver
system 1151 1296 HwBinder:1151_2
system 1151 1297 InputDispatcher
system 1151 1298 InputReader
system 1151 1299 NetworkWatchlis
system 1151 1302 StorageManagerS
system 1151 1311 NetdConnector
system 1151 1313 NetworkStats
system 1151 1314 NetworkPolicy
system 1151 1315 tworkPolicy.uid
system 1151 1316 WifiService
system 1151 1317 WifiStateMachin
system 1151 1319 WifiScanningSer
system 1151 1320 WifiP2pService
system 1151 1327 ConnectivitySer
system 1151 1331 roid.pacmanager
system 1151 1333 NsdService
system 1151 1335 mDnsConnector
system 1151 1337 notification-sq
system 1151 1339 ranker
system 1151 1340 onProviders.ECP
system 1151 1341 DeviceStorageMo
system 1151 1346 AudioService
system 1151 1348 Binder:1151_3
system 1151 1352 HwBinder:1151_3
system 1151 1356 ConnectivityThr
system 1151 1357 pool-3-thread-1
system 1151 1359 GraphicsStats-d
system 1151 1361 SliceManagerSer
system 1151 1365 CameraService_p
system 1151 1393 SyncHandler-0
system 1151 1397 wifiRttService
system 1151 1400 wifiAwareServic
system 1151 1402 EthernetService
system 1151 1403 TaskSnapshotPer
system 1151 1405 PhotonicModulat
system 1151 1409 LazyTaskWriterT
system 1151 1434 Binder:1151_4
system 1151 1435 UsbService host
system 1151 1436 Thread-3
system 1151 1440 SoundPool
system 1151 1441 SoundPoolThread
system 1151 1444 NetworkStatsObs
system 1151 1480 watchdog
system 1151 1516 EmergencyAfford
system 1151 1560 NetworkTimeUpda
system 1151 1604 Binder:1151_5
system 1151 1613 Binder:1151_6
system 1151 1618 Binder:1151_7
system 1151 1623 Binder:1151_8
system 1151 1624 Binder:1151_9
system 1151 1752 BluetoothRouteM
system 1151 1753 AudioPortEventH
system 1151 1756 uteStateMachine
system 1151 1757 CallAudioModeSt
system 1151 1840 queued-work-loo
system 1151 1990 HwBinder:1151_4
system 1151 2049 hidl_ssvc_poll
system 1151 2103 UsbDebuggingMan
system 1151 2173 backup
system 1151 2478 Binder:1151_A
system 1151 2566 Binder:1151_B
system 1151 2568 Binder:1151_C
system 1151 2620 Binder:1151_D
system 1151 2875 AsyncQueryWorke
system 1151 3041 Binder:1151_E
system 1151 3581 Binder:1151_F
system 1151 3619 Binder:1151_10
system 1151 3622 Binder:1151_11
system 1151 3754 Binder:1151_12
system 1151 4982 Binder:1151_13
system 1151 4983 Binder:1151_14
system 1151 6432 HwBinder:1151_5
system 1151 11249 RenderThread
system 1151 17881 Binder:1151_15
system 1151 25177 Binder:1151_16
system 1151 30445 Binder:1151_17
system 1151 6644 Binder:1151_18
system 1151 13171 Binder:1151_19
system 1151 27982 Binder:1151_1A
system 1151 1345 Binder:1151_1B
system 1151 13277 Binder:1151_1C
system 1151 14267 Binder:1151_1D
system 1151 26698 Binder:1151_1E
system 1151 26712 Binder:1151_1F
system 1151 28773 Binder:1151_20
system 1151 26478 pool-4-thread-2
system 1151 26776 AsyncTask #744
system 1151 27084 Instrumentation
root 1199 1199 mpss_IPCRTR
root 1201 1201 qmi_hndl0000000
root 1202 1202 qmi_hndl0000000
root 1219 1219 irq/157-arm-smm
root 1220 1220 irq/162-arm-smm
root 1246 1246 qmi_hndl0000000
root 1304 1304 kworker/1:1H
root 1305 1305 qmi_hndl0000000
root 1382 1382 ipawq14
root 1383 1383 iparepwq14
root 1384 1384 ipawq49
root 1385 1385 iparepwq49
radio 1452 1452 le.modemservice
radio 1452 1465 Jit thread pool
radio 1452 1467 Signal Catcher
radio 1452 1468 ADB-JDWP Connec
radio 1452 1470 ReferenceQueueD
radio 1452 1472 FinalizerDaemon
radio 1452 1474 FinalizerWatchd
radio 1452 1476 HeapTaskDaemon
radio 1452 1479 Binder:1452_1
radio 1452 1481 Binder:1452_2
radio 1452 1535 Profile Saver
radio 1452 1549 Binder:1452_3
radio 1452 1552 ModemService
radio 1452 1559 queued-work-loo
u0_a68 1469 1469 ndroid.systemui
u0_a68 1469 1482 Jit thread pool
u0_a68 1469 1483 Signal Catcher
u0_a68 1469 1484 ADB-JDWP Connec
u0_a68 1469 1486 ReferenceQueueD
u0_a68 1469 1487 FinalizerDaemon
u0_a68 1469 1489 FinalizerWatchd
u0_a68 1469 1490 HeapTaskDaemon
u0_a68 1469 1491 Binder:1469_1
u0_a68 1469 1492 Binder:1469_2
u0_a68 1469 1499 Binder:1469_3
u0_a68 1469 1734 smartspace-back
u0_a68 1469 1758 pool-1-thread-1
u0_a68 1469 1764 SoundPool
u0_a68 1469 1765 SoundPoolThread
u0_a68 1469 1774 Recents-HighRes
u0_a68 1469 1780 Recents-TaskRes
u0_a68 1469 1783 recents.fg
u0_a68 1469 1789 async_sensor
u0_a68 1469 1805 VolumeDialogCon
u0_a68 1469 1808 Binder:1469_4
u0_a68 1469 1820 SysUiBg
u0_a68 1469 1853 queued-work-loo
u0_a68 1469 1862 RenderThread
u0_a68 1469 1868 ConnectivityThr
u0_a68 1469 1869 WifiTracker{9ff
u0_a68 1469 1874 TimeTick
u0_a68 1469 1911 Keyboard
u0_a68 1469 1965 HwBinder:1469_1
u0_a68 1469 1971 pool-3-thread-1
u0_a68 1469 1995 Binder:1469_5
u0_a68 1469 2029 pool-4-thread-1
u0_a68 1469 2057 hwuiTask1
u0_a68 1469 2058 Thread-2
u0_a68 1469 5522 Binder:1469_6
u0_a68 1469 6051 FlashlightContr
u0_a68 1469 10844 Binder:1469_7
u0_a68 1469 10845 Binder:1469_8
u0_a68 1469 11688 Binder:1469_9
u0_a68 1469 31390 Binder:1469_A
u0_a68 1469 21670 Binder:1469_B
u0_a68 1469 12671 Binder:1469_C
u0_a98 1529 1529 reel.wallpapers
u0_a98 1529 1541 Jit thread pool
u0_a98 1529 1542 Signal Catcher
u0_a98 1529 1544 ADB-JDWP Connec
u0_a98 1529 1545 ReferenceQueueD
u0_a98 1529 1546 FinalizerDaemon
u0_a98 1529 1547 FinalizerWatchd
u0_a98 1529 1548 HeapTaskDaemon
u0_a98 1529 1550 Binder:1529_1
u0_a98 1529 1551 Binder:1529_2
u0_a98 1529 1553 Binder:1529_3
u0_a98 1529 1592 Profile Saver
u0_a98 1529 1852 HwBinder:1529_1
u0_a98 1529 1854 GLThread 36
u0_a98 1529 1857 SoundPool
u0_a98 1529 1858 SoundPoolThread
u0_a98 1529 1867 AsynchExecutor-
u0_a98 1529 9851 Binder:1529_4
gps 1536 1536 lowi-server
gps 1536 1579 lowi-server
gps 1536 1580 lowi-server
gps 1536 1581 lowi-server
gps 1536 1582 lowi-server
gps 1538 1538 xtra-daemon
gps 1538 1600 pcid-lo
gps 1538 1606 pcid-lo
gps 1538 1608 pcid-lo
gps 1538 1610 pcid-lo
gps 1538 1615 LocTime
gps 1538 1616 LocTime
radio 1554 1554 .qcrilmsgtunnel
radio 1554 1564 Jit thread pool
radio 1554 1565 Signal Catcher
radio 1554 1566 ADB-JDWP Connec
radio 1554 1567 ReferenceQueueD
radio 1554 1568 FinalizerDaemon
radio 1554 1569 FinalizerWatchd
radio 1554 1570 HeapTaskDaemon
radio 1554 1571 Binder:1554_1
radio 1554 1572 Binder:1554_2
radio 1554 1649 Binder:1554_3
radio 1554 1677 Profile Saver
radio 1554 1695 HwBinder:1554_1
radio 1554 1714 queued-work-loo
system 1651 1651 .dataservices
system 1651 1657 Jit thread pool
system 1651 1658 Signal Catcher
system 1651 1659 ADB-JDWP Connec
system 1651 1660 ReferenceQueueD
system 1651 1661 FinalizerDaemon
system 1651 1662 FinalizerWatchd
system 1651 1663 HeapTaskDaemon
system 1651 1664 Binder:1651_1
system 1651 1665 Binder:1651_2
system 1651 1673 Binder:1651_3
system 1651 1718 Profile Saver
system 1651 1721 cneservice_thre
system 1651 1724 CNEReceiver
system 1651 1728 ConnectivityThr
system 1651 1731 MainEventThread
system 1651 1733 HwBinder:1651_1
system 1651 4118 queued-work-loo
radio 1666 1666 elephonyservice
radio 1666 1674 Jit thread pool
radio 1666 1675 Signal Catcher
radio 1666 1676 ADB-JDWP Connec
radio 1666 1684 ReferenceQueueD
radio 1666 1685 FinalizerDaemon
radio 1666 1686 FinalizerWatchd
radio 1666 1687 HeapTaskDaemon
radio 1666 1688 Binder:1666_1
radio 1666 1698 Binder:1666_2
radio 1666 1722 Profile Saver
radio 1666 2502 Binder:1666_3
radio 1666 2504 HwBinder:1666_1
radio 1666 2511 queued-work-loo
radio 1678 1678 m.android.phone
radio 1678 1694 Jit thread pool
radio 1678 1696 Signal Catcher
radio 1678 1697 ADB-JDWP Connec
radio 1678 1699 ReferenceQueueD
radio 1678 1700 FinalizerDaemon
radio 1678 1702 FinalizerWatchd
radio 1678 1703 HeapTaskDaemon
radio 1678 1704 Binder:1678_1
radio 1678 1706 Binder:1678_2
radio 1678 1719 Binder:1678_3
radio 1678 1737 Profile Saver
radio 1678 1806 HwBinder:1678_1
radio 1678 1834 EuiccConnector
radio 1678 1837 android.bg
radio 1678 1846 queued-work-loo
radio 1678 1860 GsmCellBroadcas
radio 1678 1861 GsmInboundSmsHa
radio 1678 1863 CellBroadcastHa
radio 1678 1864 CdmaInboundSmsH
radio 1678 1865 CdmaServiceCate
radio 1678 1871 DcHandlerThread
radio 1678 1877 Binder:1678_4
radio 1678 1881 ImsServiceContr
radio 1678 1882 NetworkService
radio 1678 1883 DataService
radio 1678 1899 org.codeaurora.
radio 1678 1901 ImsConfigImplHa
radio 1678 1937 CellularNetwork
radio 1678 1938 CellularDataSer
radio 1678 1943 Binder:1678_5
radio 1678 2876 ervice.Executor
radio 1678 2877 ConnectivityThr
radio 1678 4600 AudioTrack
radio 1678 4650 Binder:1678_6
radio 1678 4900 Binder:1678_7
radio 1678 4927 Binder:1678_8
radio 1678 21050 Binder:1678_9
radio 1678 23491 Binder:1678_A
radio 1678 28470 Binder:1678_B
radio 1678 18161 Binder:1678_C
radio 1678 5303 Binder:1678_D
u0_a24 1798 1798 id.ext.services
u0_a24 1798 1807 Jit thread pool
u0_a24 1798 1809 Signal Catcher
u0_a24 1798 1810 ADB-JDWP Connec
u0_a24 1798 1814 ReferenceQueueD
u0_a24 1798 1815 FinalizerDaemon
u0_a24 1798 1816 FinalizerWatchd
u0_a24 1798 1817 HeapTaskDaemon
u0_a24 1798 1818 Binder:1798_1
u0_a24 1798 1827 Binder:1798_2
u0_a24 1798 1830 Binder:1798_3
u0_a24 1798 1833 Binder:1798_4
u0_a24 1798 1838 Profile Saver
u0_a24 1798 2218 queued-work-loo
root 2107 2107 irq/35-1008000.
nfc 2195 2195 com.android.nfc
nfc 2195 2200 Jit thread pool
nfc 2195 2202 Signal Catcher
nfc 2195 2203 ADB-JDWP Connec
nfc 2195 2204 ReferenceQueueD
nfc 2195 2205 FinalizerDaemon
nfc 2195 2206 FinalizerWatchd
nfc 2195 2207 HeapTaskDaemon
nfc 2195 2208 Binder:2195_1
nfc 2195 2209 Binder:2195_2
nfc 2195 2220 Profile Saver
nfc 2195 2422 HwBinder:2195_1
nfc 2195 4468 Binder:2195_3
nfc 2195 4821 queued-work-loo
nfc 2195 4837 Binder:2195_4
nfc 2195 5207 Binder:2195_5
nfc 2195 11202 Binder:2195_6
nfc 2195 13475 Binder:2195_7
nfc 2195 23492 Binder:2195_8
nfc 2195 8048 Binder:2195_9
nfc 2195 9264 Binder:2195_A
nfc 2195 21748 Binder:2195_B
nfc 2195 26117 AsyncTask #454
nfc 2195 26428 AsyncTask #455
u0_a10 2213 2213 elligence.sense
u0_a10 2213 2219 Jit thread pool
u0_a10 2213 2221 Signal Catcher
u0_a10 2213 2222 ADB-JDWP Connec
u0_a10 2213 2223 ReferenceQueueD
u0_a10 2213 2225 FinalizerDaemon
u0_a10 2213 2228 FinalizerWatchd
u0_a10 2213 2231 HeapTaskDaemon
u0_a10 2213 2233 Binder:2213_1
u0_a10 2213 2234 Binder:2213_2
u0_a10 2213 2249 Binder:2213_3
u0_a10 2213 2286 Profile Saver
u0_a10 2213 2364 GoogleApiHandle
u0_a10 2213 2400 superpacks-cont
u0_a10 2213 2432 Background #0
u0_a10 2213 2434 Background #1
u0_a10 2213 2458 GAC_Executor[0]
u0_a10 2213 3350 Binder:2213_4
u0_a10 2213 26442 Primes-1
u0_a10 2213 26752 Primes-2
radio 2224 2224 .ims.rcsservice
radio 2224 2235 Jit thread pool
radio 2224 2236 Signal Catcher
radio 2224 2237 ADB-JDWP Connec
radio 2224 2238 ReferenceQueueD
radio 2224 2239 FinalizerDaemon
radio 2224 2240 FinalizerWatchd
radio 2224 2241 HeapTaskDaemon
radio 2224 2244 Binder:2224_1
radio 2224 2255 Binder:2224_2
radio 2224 2260 Binder:2224_3
radio 2224 2292 Profile Saver
radio 2224 2349 Listener
radio 2224 2390 queued-work-loo
radio 2224 2830 EABServiceHandl
radio 2224 3513 Binder:2224_4
radio 2224 28094 Binder:2224_5
system 2243 2243 RestartDetector
system 2243 2251 Jit thread pool
system 2243 2253 Signal Catcher
system 2243 2254 ADB-JDWP Connec
system 2243 2256 ReferenceQueueD
system 2243 2257 FinalizerDaemon
system 2243 2258 FinalizerWatchd
system 2243 2259 HeapTaskDaemon
system 2243 2261 Binder:2243_1
system 2243 2264 Binder:2243_2
system 2243 2303 Profile Saver
system 2243 3040 Binder:2243_3
system 2243 3042 FileObserver
system 2243 3043 queued-work-loo
u0_a19 2279 2279 s.nexuslauncher
u0_a19 2279 2291 Jit thread pool
u0_a19 2279 2293 Signal Catcher
u0_a19 2279 2294 ADB-JDWP Connec
u0_a19 2279 2295 ReferenceQueueD
u0_a19 2279 2296 FinalizerDaemon
u0_a19 2279 2297 FinalizerWatchd
u0_a19 2279 2299 HeapTaskDaemon
u0_a19 2279 2302 Binder:2279_1
u0_a19 2279 2304 Binder:2279_2
u0_a19 2279 2325 Binder:2279_3
u0_a19 2279 2345 Profile Saver
u0_a19 2279 2352 launcher-loader
u0_a19 2279 2353 UiThreadHelper
u0_a19 2279 2379 GAC_Executor[0]
u0_a19 2279 2380 GoogleApiHandle
u0_a19 2279 2402 pool-1-thread-1
u0_a19 2279 2405 Recents-HighRes
u0_a19 2279 2406 Recents-TaskRes
u0_a19 2279 2408 pool-3-thread-1
u0_a19 2279 2431 qsb-experiments
u0_a19 2279 2456 magnifier pixel
u0_a19 2279 2477 smartspace-load
u0_a19 2279 2500 reflection-thre
u0_a19 2279 2505 GAC_Executor[1]
u0_a19 2279 2506 RenderThread
u0_a19 2279 2535 remote-ui
u0_a19 2279 2558 HwBinder:2279_1
u0_a19 2279 2578 file-logger
u0_a19 2279 2581 queued-work-loo
u0_a19 2279 10277 Binder:2279_4
u0_a19 2279 26790 Binder:2279_5
u0_a19 2279 4129 Binder:2279_6
u0_a125 2305 2305 oogle.vr.vrcore
u0_a125 2305 2311 Jit thread pool
u0_a125 2305 2312 Signal Catcher
u0_a125 2305 2315 ADB-JDWP Connec
u0_a125 2305 2318 ReferenceQueueD
u0_a125 2305 2320 FinalizerDaemon
u0_a125 2305 2321 FinalizerWatchd
u0_a125 2305 2322 HeapTaskDaemon
u0_a125 2305 2324 Binder:2305_1
u0_a125 2305 2326 Binder:2305_2
u0_a125 2305 2329 Binder:2305_3
u0_a125 2305 2377 Profile Saver
u0_a125 2305 2403 GAC_Executor[0]
u0_a125 2305 2411 GAC_Executor[1]
u0_a125 2305 2437 queued-work-loo
u0_a56 2332 2332 ps.pixelmigrate
u0_a56 2332 2338 Jit thread pool
u0_a56 2332 2339 Signal Catcher
u0_a56 2332 2340 ADB-JDWP Connec
u0_a56 2332 2341 ReferenceQueueD
u0_a56 2332 2342 FinalizerDaemon
u0_a56 2332 2343 FinalizerWatchd
u0_a56 2332 2344 HeapTaskDaemon
u0_a56 2332 2346 Binder:2332_1
u0_a56 2332 2358 Binder:2332_2
u0_a56 2332 2428 Profile Saver
u0_a56 2332 2472 pool-1-thread-1
u0_a56 2332 2544 queued-work-loo
u0_a56 2332 2695 Binder:2332_3
u0_a56 2332 3351 Binder:2332_4
u0_a58 2354 2354 oid.setupwizard
u0_a58 2354 2361 Jit thread pool
u0_a58 2354 2362 Signal Catcher
u0_a58 2354 2363 ADB-JDWP Connec
u0_a58 2354 2365 ReferenceQueueD
u0_a58 2354 2366 FinalizerDaemon
u0_a58 2354 2367 FinalizerWatchd
u0_a58 2354 2368 HeapTaskDaemon
u0_a58 2354 2369 Binder:2354_1
u0_a58 2354 2370 Binder:2354_2
u0_a58 2354 2401 Binder:2354_3
u0_a58 2354 2441 Profile Saver
u0_a58 2354 2516 GoogleApiHandle
u0_a58 2354 2522 queued-work-loo
u0_a58 2354 2543 ConnectivityThr
u0_a58 2354 2545 WifiTracker{1b5
u0_a58 2354 2760 Binder:2354_4
u0_a58 2354 3353 Binder:2354_5
u0_a21 2371 2371 ps.miphone.aiai
u0_a21 2371 2381 Jit thread pool
u0_a21 2371 2404 Signal Catcher
u0_a21 2371 2416 ADB-JDWP Connec
u0_a21 2371 2418 ReferenceQueueD
u0_a21 2371 2419 FinalizerDaemon
u0_a21 2371 2420 FinalizerWatchd
u0_a21 2371 2421 HeapTaskDaemon
u0_a21 2371 2429 Binder:2371_1
u0_a21 2371 2442 Binder:2371_2
u0_a21 2371 2444 Binder:2371_3
u0_a21 2371 2490 Profile Saver
u0_a40 2462 2462 gle.android.gms
u0_a40 2462 2482 Jit thread pool
u0_a40 2462 2483 Signal Catcher
u0_a40 2462 2493 ADB-JDWP Connec
u0_a40 2462 2494 ReferenceQueueD
u0_a40 2462 2495 FinalizerDaemon
u0_a40 2462 2496 FinalizerWatchd
u0_a40 2462 2497 HeapTaskDaemon
u0_a40 2462 2498 Binder:2462_1
u0_a40 2462 2499 Binder:2462_2
u0_a40 2462 2553 Profile Saver
u0_a40 2462 2633 FileObserver
u0_a40 2462 2655 GlobalDispatchi
u0_a40 2462 2660 GoogleApiHandle
u0_a40 2462 2673 Binder:2462_3
u0_a40 2462 2685 GlobalScheduler
u0_a40 2462 2806 Binder:2462_4
u0_a40 2462 2859 queued-work-loo
u0_a40 2462 2945 Binder:2462_5
u0_a40 2462 3690 Thread-12
u0_a40 2462 3691 Thread-13
u0_a40 2462 3693 Thread-14
u0_a40 2462 3694 Thread-15
u0_a40 2462 3695 Thread-16
u0_a40 2462 3736 Binder:2462_6
u0_a40 2462 3759 highpool[0]
u0_a40 2462 3767 highpool[1]
u0_a40 2462 3770 AdWorker(Defaul
u0_a40 2462 3771 AdWorker(Defaul
u0_a40 2462 3788 GAC_Executor[1]
u0_a40 2462 3789 Binder:2462_7
u0_a40 2462 3790 GAC_Executor[0]
u0_a40 2462 3807 ConnectivityThr
u0_a40 2462 3864 Binder:2462_8
u0_a40 2462 3871 highpool[2]
u0_a40 2462 3903 Binder:2462_9
u0_a40 2462 3968 Binder:2462_A
u0_a40 2462 4217 Binder:2462_B
u0_a40 2462 4358 Binder:2462_C
u0_a40 2462 4359 Binder:2462_D
u0_a40 2462 4652 Binder:2462_E
u0_a40 2462 4674 Binder:2462_F
u0_a40 2462 4907 highpool[3]
u0_a40 2462 4948 pool-60-thread-
u0_a40 2462 4949 pool-60-thread-
u0_a40 2462 4950 pool-60-thread-
u0_a40 2462 4951 pool-60-thread-
u0_a40 2462 4956 pool-61-thread-
u0_a40 2462 5163 Binder:2462_10
u0_a40 2462 15000 MediaTracker bu
u0_a40 2462 19930 lowpool[825]
u0_a40 2462 22554 lowpool[827]
u0_a40 2462 23272 lowpool[828]
u0_a40 2462 26147 peration loader
u0_a40 2462 26174 Measurement Wor
u0_a40 2462 26770 lowpool[830]
u0_a40 2462 26825 raService] idle
u0_a40 2462 26847 lowpool[831]
u0_a40 2462 26932 lowpool[832]
u0_a40 2484 2484 .gms.persistent
u0_a40 2484 2510 Jit thread pool
u0_a40 2484 2512 Signal Catcher
u0_a40 2484 2513 ADB-JDWP Connec
u0_a40 2484 2514 ReferenceQueueD
u0_a40 2484 2517 FinalizerDaemon
u0_a40 2484 2518 FinalizerWatchd
u0_a40 2484 2520 HeapTaskDaemon
u0_a40 2484 2521 Binder:2484_1
u0_a40 2484 2523 Binder:2484_2
u0_a40 2484 2548 Binder:2484_3
u0_a40 2484 2554 Profile Saver
u0_a40 2484 2624 Binder:2484_4
u0_a40 2484 2625 Binder:2484_5
u0_a40 2484 2627 FileObserver
u0_a40 2484 2652 GlobalDispatchi
u0_a40 2484 2663 GoogleApiHandle
u0_a40 2484 2668 GlobalScheduler
u0_a40 2484 2669 GAC_Executor[0]
u0_a40 2484 2671 FlpThread
u0_a40 2484 2677 queued-work-loo
u0_a40 2484 2681 GAC_Executor[1]
u0_a40 2484 2807 GeofencerStateM
u0_a40 2484 2808 RealContextHub
u0_a40 2484 2809 ConnectivityThr
u0_a40 2484 2810 highpool[0]
u0_a40 2484 2811 highpool[1]
u0_a40 2484 2812 highpool[2]
u0_a40 2484 2813 highpool[3]
u0_a40 2484 2814 GoogleLocationS
u0_a40 2484 2816 MSMuxTR-0
u0_a40 2484 3792 netscheduler-qu
u0_a40 2484 3801 Binder:2484_6
u0_a40 2484 3896 Binder:2484_7
u0_a40 2484 4204 Binder:2484_8
u0_a40 2484 4206 Binder:2484_9
u0_a40 2484 4244 Binder:2484_A
u0_a40 2484 4675 Binder:2484_B
u0_a40 2484 4676 Binder:2484_C
u0_a40 2484 4836 Binder:2484_D
u0_a40 2484 5240 Binder:2484_E
u0_a40 2484 5724 Binder:2484_F
u0_a40 2484 10811 Binder:2484_10
u0_a40 2484 21417 lowpool[412]
u0_a40 2484 17369 lowpool[755]
u0_a40 2484 23058 lowpool[761]
u0_a40 2484 25069 lowpool[763]
u0_a40 2484 26630 lowpool[765]
u0_a40 2484 26831 peration loader
u0_a40 2484 26894 raService] idle
system 3993 3993 lcomm.telephony
system 3993 3999 Jit thread pool
system 3993 4000 Signal Catcher
system 3993 4001 ADB-JDWP Connec
system 3993 4002 ReferenceQueueD
system 3993 4003 FinalizerDaemon
system 3993 4004 FinalizerWatchd
system 3993 4005 HeapTaskDaemon
system 3993 4006 Binder:3993_1
system 3993 4007 Binder:3993_2
system 3993 4010 Profile Saver
system 3993 4013 Binder:3993_3
system 3993 4014 Thread-2
system 3993 4015 CTSA Inject Thr
system 3993 4016 HwBinder:3993_1
system 3993 4023 queued-work-loo
root 4295 4295 adbd
root 4295 4296 usb ffs open
root 4295 4343 ->transport
root 4295 4344 <-transport
root 4295 27091 shell svc 27090
root 15030 15030 kworker/4:1
u0_a55 16104 16104 id.defcontainer
u0_a55 16104 16109 Jit thread pool
u0_a55 16104 16110 Signal Catcher
u0_a55 16104 16111 ADB-JDWP Connec
u0_a55 16104 16112 ReferenceQueueD
u0_a55 16104 16113 FinalizerDaemon
u0_a55 16104 16114 FinalizerWatchd
u0_a55 16104 16116 HeapTaskDaemon
u0_a55 16104 16117 Binder:16104_1
u0_a55 16104 16118 Binder:16104_2
u0_a55 16104 16133 Binder:16104_3
u0_a55 16104 16137 Profile Saver
u0_a55 16104 16149 queued-work-loo
u0_a55 16104 16614 Binder:16104_4
u0_a55 16104 26801 IntentService[D
root 16505 16505 kworker/u17:0
root 18709 18709 kworker/3:3
root 19512 19512 kworker/5:1
u0_a30 21587 21587 roid.apps.turbo
u0_a30 21587 21592 Jit thread pool
u0_a30 21587 21593 Signal Catcher
u0_a30 21587 21594 ADB-JDWP Connec
u0_a30 21587 21595 ReferenceQueueD
u0_a30 21587 21596 FinalizerDaemon
u0_a30 21587 21597 FinalizerWatchd
u0_a30 21587 21598 HeapTaskDaemon
u0_a30 21587 21599 Binder:21587_1
u0_a30 21587 21600 Binder:21587_2
u0_a30 21587 21601 Binder:21587_3
u0_a30 21587 21602 Profile Saver
u0_a30 21587 22841 Primes-1
u0_a30 21587 23127 Primes-2
u0_a75 21768 21768 id.partnersetup
u0_a75 21768 21774 Jit thread pool
u0_a75 21768 21775 Signal Catcher
u0_a75 21768 21776 ADB-JDWP Connec
u0_a75 21768 21777 ReferenceQueueD
u0_a75 21768 21778 FinalizerDaemon
u0_a75 21768 21779 FinalizerWatchd
u0_a75 21768 21780 HeapTaskDaemon
u0_a75 21768 21781 Binder:21768_1
u0_a75 21768 21782 Binder:21768_2
u0_a75 21768 21783 Binder:21768_3
u0_a75 21768 21784 Profile Saver
u0_a75 21768 21804 queued-work-loo
u0_a75 21768 21807 Binder:21768_4
u0_a40 21787 21787 ocess.gservices
u0_a40 21787 21792 Jit thread pool
u0_a40 21787 21793 Signal Catcher
u0_a40 21787 21794 ADB-JDWP Connec
u0_a40 21787 21795 ReferenceQueueD
u0_a40 21787 21796 FinalizerDaemon
u0_a40 21787 21797 FinalizerWatchd
u0_a40 21787 21798 HeapTaskDaemon
u0_a40 21787 21799 Binder:21787_1
u0_a40 21787 21800 Binder:21787_2
u0_a40 21787 21801 Binder:21787_3
u0_a40 21787 21802 Profile Saver
u0_a40 21787 21806 Binder:21787_4
u0_a40 21787 22844 Binder:21787_5
u0_a40 21787 22845 Binder:21787_6
u0_a40 21787 22861 Binder:21787_7
u0_a40 21787 22973 Binder:21787_8
u0_a40 21787 23042 Binder:21787_9
u0_a40 21787 23044 Binder:21787_A
u0_a40 21787 23051 Binder:21787_B
u0_a40 21787 23109 Binder:21787_C
u0_a40 21787 23125 Binder:21787_D
u0_a40 21787 23126 Binder:21787_E
u0_a40 21787 23177 Binder:21787_F
u0_a40 21787 23184 Binder:21787_10
root 23038 23038 kworker/3:2
root 23393 23393 kworker/5:3
root 24384 24384 kworker/4:2
root 24428 24428 kworker/1:0
root 24572 24572 kworker/6:0
u0_a47 24879 24879 n.mips.services
u0_a47 24879 24891 Jit thread pool
u0_a47 24879 24892 Signal Catcher
u0_a47 24879 24893 ADB-JDWP Connec
u0_a47 24879 24894 ReferenceQueueD
u0_a47 24879 24895 FinalizerDaemon
u0_a47 24879 24896 FinalizerWatchd
u0_a47 24879 24897 HeapTaskDaemon
u0_a47 24879 24898 Binder:24879_1
u0_a47 24879 24899 Binder:24879_2
u0_a47 24879 24908 Profile Saver
u0_a47 24879 24912 queued-work-loo
u0_a47 24879 24914 Binder:24879_3
u0_a47 24879 26178 Binder:24879_4
u0_a47 24879 26804 Binder:24879_5
root 24931 24931 kworker/2:1
root 25152 25152 kworker/7:2
root 25203 25203 kworker/0:4
root 25230 25230 kworker/2:0
root 25246 25246 kworker/7:0
root 25362 25362 kworker/u16:4
root 25366 25366 kworker/0:2
root 25390 25390 kworker/1:2
root 25518 25518 kworker/u16:6
root 25647 25647 kworker/6:1
root 25664 25664 kworker/u16:1
root 25796 25796 kworker/0:1
root 25814 25814 kworker/u16:3
root 25819 25819 kworker/3:0
root 25823 25823 kworker/2:2
root 25933 25933 kworker/6:2
root 25946 25946 kworker/1:1
root 25950 25950 kworker/0:3
root 25966 25966 kworker/u16:5
root 26081 26081 kworker/2:3
root 26106 26106 kworker/4:0
system 26142 26142 ndroid.keychain
system 26142 26149 Jit thread pool
system 26142 26150 Signal Catcher
system 26142 26151 ADB-JDWP Connec
system 26142 26152 ReferenceQueueD
system 26142 26153 FinalizerDaemon
system 26142 26154 FinalizerWatchd
system 26142 26155 HeapTaskDaemon
system 26142 26156 Binder:26142_1
system 26142 26157 Binder:26142_2
system 26142 26159 Binder:26142_3
system 26142 26176 queued-work-loo
u0_a46 26181 26181 oid.documentsui
u0_a46 26181 26186 Jit thread pool
u0_a46 26181 26187 Signal Catcher
u0_a46 26181 26188 ADB-JDWP Connec
u0_a46 26181 26189 ReferenceQueueD
u0_a46 26181 26190 FinalizerDaemon
u0_a46 26181 26191 FinalizerWatchd
u0_a46 26181 26192 HeapTaskDaemon
u0_a46 26181 26194 Binder:26181_1
u0_a46 26181 26195 Binder:26181_2
u0_a46 26181 26197 Profile Saver
u0_a46 26181 26201 AsyncTask #1
u0_a46 26181 26247 AsyncTask #2
u0_a46 26181 26263 AsyncTask #3
u0_a46 26181 26285 AsyncTask #4
u0_a46 26181 26606 Binder:26181_3
u0_a8 26208 26208 d.process.media
u0_a8 26208 26214 Jit thread pool
u0_a8 26208 26215 Signal Catcher
u0_a8 26208 26216 ADB-JDWP Connec
u0_a8 26208 26217 ReferenceQueueD
u0_a8 26208 26218 FinalizerDaemon
u0_a8 26208 26219 FinalizerWatchd
u0_a8 26208 26220 HeapTaskDaemon
u0_a8 26208 26221 Binder:26208_1
u0_a8 26208 26222 Binder:26208_2
u0_a8 26208 26237 Profile Saver
u0_a8 26208 26244 thumbs thread
u0_a8 26208 26250 sAsyncHandlerTh
u0_a8 26208 26806 Binder:26208_3
u0_a40 26343 26343 e.process.gapps
u0_a40 26343 26348 Jit thread pool
u0_a40 26343 26349 Signal Catcher
u0_a40 26343 26350 ADB-JDWP Connec
u0_a40 26343 26351 ReferenceQueueD
u0_a40 26343 26352 FinalizerDaemon
u0_a40 26343 26353 FinalizerWatchd
u0_a40 26343 26354 HeapTaskDaemon
u0_a40 26343 26355 Binder:26343_1
u0_a40 26343 26356 Binder:26343_2
u0_a40 26343 26357 Binder:26343_3
u0_a40 26343 26358 Profile Saver
u0_a40 26343 26359 RefQueueWorker@
u0_a40 26343 26360 Binder:26343_4
u0_a40 26343 26714 Binder:26343_5
u0_a40 26343 26805 Binder:26343_6
root 26407 26407 kworker/5:0
u0_a72 26440 26440 ctivity.metrics
u0_a72 26440 26447 Jit thread pool
u0_a72 26440 26448 Signal Catcher
u0_a72 26440 26449 ADB-JDWP Connec
u0_a72 26440 26450 ReferenceQueueD
u0_a72 26440 26451 FinalizerDaemon
u0_a72 26440 26452 FinalizerWatchd
u0_a72 26440 26453 HeapTaskDaemon
u0_a72 26440 26454 Binder:26440_1
u0_a72 26440 26455 Binder:26440_2
u0_a72 26440 26456 Binder:26440_3
u0_a72 26440 26458 Profile Saver
u0_a72 26440 26459 AsyncTask #1
u0_a72 26440 26479 GAC_Executor[0]
u0_a72 26440 26710 AsyncTask #2
u0_a72 26440 26711 GAC_Executor[1]
root 26499 26499 kworker/7:1
root 26509 26509 kworker/7:3
radio 26510 26510 ectivitymonitor
radio 26510 26515 Jit thread pool
radio 26510 26516 Signal Catcher
radio 26510 26517 ADB-JDWP Connec
radio 26510 26518 ReferenceQueueD
radio 26510 26520 FinalizerDaemon
radio 26510 26521 FinalizerWatchd
radio 26510 26523 HeapTaskDaemon
radio 26510 26524 Binder:26510_1
radio 26510 26525 Binder:26510_2
radio 26510 26528 Profile Saver
radio 26510 26654 Binder:26510_3
u0_a131 26648 26648 id.printspooler
u0_a131 26648 26653 Jit thread pool
u0_a131 26648 26655 Signal Catcher
u0_a131 26648 26656 ADB-JDWP Connec
u0_a131 26648 26657 ReferenceQueueD
u0_a131 26648 26658 FinalizerDaemon
u0_a131 26648 26659 FinalizerWatchd
u0_a131 26648 26660 HeapTaskDaemon
u0_a131 26648 26661 Binder:26648_1
u0_a131 26648 26662 Binder:26648_2
u0_a131 26648 26664 Binder:26648_3
u0_a131 26648 26667 Profile Saver
u0_a131 26648 26773 AsyncTask #1
u0_a131 26648 26774 Binder:26648_4
u0_a131 26648 26775 queued-work-loo
root 26706 26706 kworker/1:3
root 26771 26771 kworker/u16:8
u0_a45 26778 26778 .work.oobconfig
u0_a45 26778 26783 Jit thread pool
u0_a45 26778 26784 Signal Catcher
u0_a45 26778 26785 ADB-JDWP Connec
u0_a45 26778 26786 ReferenceQueueD
u0_a45 26778 26787 FinalizerDaemon
u0_a45 26778 26788 FinalizerWatchd
u0_a45 26778 26789 HeapTaskDaemon
u0_a45 26778 26791 Binder:26778_1
u0_a45 26778 26792 Binder:26778_2
u0_a45 26778 26793 Binder:26778_3
u0_a45 26778 26794 Profile Saver
u0_a45 26778 26796 measurement-1
u0_a45 26778 26797 queued-work-loo
u0_a45 26778 26800 AsyncTask #1
root 26895 26895 kworker/6:3
root 26915 26915 kworker/5:2
u0_a4380 27030 27030 esting.services
u0_a4380 27030 27035 Jit thread pool
u0_a4380 27030 27036 Signal Catcher
u0_a4380 27030 27037 ADB-JDWP Connec
u0_a4380 27030 27038 ReferenceQueueD
u0_a4380 27030 27039 FinalizerDaemon
u0_a4380 27030 27040 FinalizerWatchd
u0_a4380 27030 27041 HeapTaskDaemon
u0_a4380 27030 27042 Binder:27030_1
u0_a4380 27030 27043 Binder:27030_2
u0_a4380 27030 27044 Profile Saver
root 27090 27090 sh
root 27092 27092 sh
root 27094 27094 ps
root 27902 27902 kworker/u17:2
u0_a64 32499 32499 gle.android.ims
u0_a64 32499 32506 Jit thread pool
u0_a64 32499 32507 Signal Catcher
u0_a64 32499 32508 ADB-JDWP Connec
u0_a64 32499 32509 ReferenceQueueD
u0_a64 32499 32510 FinalizerDaemon
u0_a64 32499 32511 FinalizerWatchd
u0_a64 32499 32512 HeapTaskDaemon
u0_a64 32499 32513 Binder:32499_1
u0_a64 32499 32514 Binder:32499_2
u0_a64 32499 32516 Binder:32499_3
u0_a64 32499 32551 Profile Saver
u0_a64 32499 32574 GoogleApiHandle
u0_a64 32499 32599 ConnectivityThr
u0_a64 32499 32619 queued-work-loo
u0_a64 32499 32626 GAC_Executor[0]
u0_a64 32499 450 Binder:32499_4
u0_a64 32499 669 Binder:32499_5
u0_a64 32499 9960 Primes-1
u0_a64 32499 10177 Binder:32499_6
u0_a64 32499 10181 Binder:32499_7
u0_a64 32499 10258 Primes-2
u0_a64 32499 10858 Binder:32499_8
u0_a64 32499 20615 Binder:32499_9
u0_a64 32499 20823 Binder:32499_A
u0_a64 32499 20963 Binder:32499_B
u0_a64 32499 23043 Binder:32499_C
u0_a64 32499 23049 Binder:32499_D
u0_a64 32499 23748 Binder:32499_E
u0_a64 32499 26433 AsyncTask #1541
u0_a64 32499 26475 AsyncTask #1542
u0_a64 32499 26476 AsyncTask #1543
u0_a64 32499 26537 AsyncTask #1544
u0_a64 32499 26615 Binder:32499_F
</script>
<script class="trace-data" type="application/text">
# tracer: nop
#
# entries-in-buffer/entries-written: 12215/12215 #P:8
#
# _-----=> irqs-off
# / _----=> need-resched
# | / _---=> hardirq/softirq
# || / _--=> preempt-depth
# ||| / delay
# TASK-PID TGID CPU# |||| TIMESTAMP FUNCTION
# | | | | |||| | |
atrace-26769 (26769) [005] ...1 1034700.742666: tracing_mark_write: trace_event_clock_sync: parent_ts=1034700.750000
atrace-26769 (26769) [005] ...1 1034700.742671: tracing_mark_write: trace_event_clock_sync: realtime_ts=1535717317366
surfaceflinger-591 ( 591) [001] ...1 1034700.747177: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034700.747358: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034700.747419: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034700.747439: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034700.747557: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034700.747584: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034700.747614: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034700.747699: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [007] ...1 1034700.751232: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034700.751306: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034700.751380: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034700.751429: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [005] ...1 1034700.770547: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034700.770623: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034700.770690: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [005] ...1 1034700.770747: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034700.780777: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034700.780889: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034700.780950: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034700.780969: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034700.781077: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034700.781102: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034700.781130: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034700.781209: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [006] ...1 1034700.789886: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034700.789972: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034700.790041: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [006] ...1 1034700.790101: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [006] ...1 1034700.809091: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034700.809191: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034700.809264: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [006] ...1 1034700.809379: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [006] ...1 1034700.828355: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034700.828448: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034700.828532: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [006] ...1 1034700.828620: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034700.831115: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034700.831256: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034700.831317: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034700.831336: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034700.831441: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034700.831465: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034700.831493: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034700.831569: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [006] ...1 1034700.847992: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034700.848113: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034700.848226: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [006] ...1 1034700.848361: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034700.864832: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034700.865026: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034700.865105: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034700.865127: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034700.865254: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034700.865283: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034700.865318: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034700.865403: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [005] ...1 1034700.867121: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034700.867289: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034700.867380: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [005] ...1 1034700.867517: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [005] ...1 1034700.886523: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034700.886756: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034700.886855: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [005] ...1 1034700.886999: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [005] ...1 1034700.905600: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034700.905722: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034700.905825: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [005] ...1 1034700.905938: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034700.915180: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034700.915348: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034700.915433: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034700.915457: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034700.915636: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034700.915667: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034700.915703: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034700.915793: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [005] ...1 1034700.924825: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034700.924961: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034700.925071: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [005] ...1 1034700.925231: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [005] ...1 1034700.944016: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034700.944176: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034700.944301: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [005] ...1 1034700.944435: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [003] ...1 1034700.948787: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034700.948966: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034700.949049: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034700.949074: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034700.949214: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034700.949248: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034700.949285: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034700.949390: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034700.963554: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034700.963723: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034700.963836: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034700.964014: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [006] ...1 1034700.982663: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034700.982834: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034700.982939: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [006] ...1 1034700.983097: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034700.999028: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034700.999209: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034700.999285: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034700.999309: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034700.999439: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034700.999468: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034700.999501: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034700.999587: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [006] ...1 1034701.002199: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034701.002346: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034701.002502: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [006] ...1 1034701.002823: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034701.021074: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034701.021200: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034701.021290: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034701.021397: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034701.032575: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034701.032744: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034701.032821: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034701.032844: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034701.032970: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034701.033001: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034701.033038: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034701.033137: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [005] ...1 1034701.040324: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034701.040460: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034701.040556: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [005] ...1 1034701.040663: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [005] ...1 1034701.061155: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034701.061291: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034701.061384: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [005] ...1 1034701.061515: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [005] ...1 1034701.079090: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034701.079233: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034701.079339: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [005] ...1 1034701.079466: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [003] ...1 1034701.082933: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034701.083108: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034701.083188: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034701.083270: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034701.083412: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034701.083446: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034701.083484: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034701.083582: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [006] ...1 1034701.098061: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034701.098200: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034701.098287: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [006] ...1 1034701.098403: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [006] ...1 1034701.117296: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034701.117418: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034701.117513: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [006] ...1 1034701.117612: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [003] ...1 1034701.133318: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034701.133472: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034701.133552: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034701.133575: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034701.133703: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034701.133734: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034701.133768: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034701.133865: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [007] ...1 1034701.136531: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034701.136692: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034701.136783: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034701.136867: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [007] ...1 1034701.155886: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034701.156028: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034701.156147: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [004] ...1 1034701.156275: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034701.166951: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034701.167098: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034701.167173: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034701.167196: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034701.167318: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034701.167346: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034701.167379: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034701.167471: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [002] ...1 1034701.175102: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034701.175218: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034701.175316: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [002] ...1 1034701.175379: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [003] ...1 1034701.194295: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034701.194421: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034701.194516: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [003] ...1 1034701.194578: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [002] ...1 1034701.214050: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034701.214154: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034701.214247: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [002] ...1 1034701.214307: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034701.217129: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034701.217269: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034701.217340: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034701.217359: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034701.217464: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034701.217489: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034701.217518: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034701.217591: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [001] ...1 1034701.232711: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034701.232803: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034701.232883: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034701.232941: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034701.250615: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034701.250738: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034701.250803: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034701.250823: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034701.250928: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034701.250953: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034701.250990: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034701.251064: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034701.252140: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034701.252225: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034701.252297: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034701.252349: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [001] ...1 1034701.271515: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034701.271610: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034701.271697: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034701.271759: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [002] ...1 1034701.290612: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034701.290719: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034701.290822: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [002] ...1 1034701.290887: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034701.301072: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034701.301240: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034701.301318: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034701.301340: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034701.301461: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034701.301488: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034701.301521: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034701.301600: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [002] ...1 1034701.309826: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034701.309964: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034701.310055: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [002] ...1 1034701.310116: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [003] ...1 1034701.329014: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034701.329126: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034701.329220: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [003] ...1 1034701.329285: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034701.334621: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034701.334810: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034701.334886: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034701.334909: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034701.335033: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034701.335064: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034701.335098: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034701.335189: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [001] ...1 1034701.348248: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034701.348348: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034701.348439: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034701.348501: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [002] ...1 1034701.367632: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034701.367775: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034701.367880: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [002] ...1 1034701.367974: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [003] ...1 1034701.384979: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034701.385125: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034701.385202: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034701.385230: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034701.385358: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034701.385388: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034701.385474: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034701.385563: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [005] ...1 1034701.386835: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034701.387005: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034701.387156: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [005] ...1 1034701.387286: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [003] ...1 1034701.405993: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034701.406111: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034701.406221: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [003] ...1 1034701.406301: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034701.418503: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034701.418668: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034701.418746: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034701.418772: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034701.418901: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034701.418931: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034701.418965: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034701.419056: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [001] ...1 1034701.425459: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034701.425664: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034701.425786: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034701.425882: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [002] ...1 1034701.444540: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034701.444663: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034701.444759: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [002] ...1 1034701.444841: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034701.452056: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034701.452205: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034701.452282: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034701.452303: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034701.452433: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034701.452461: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034701.452504: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034701.452592: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [002] ...1 1034701.463825: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034701.463944: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034701.464041: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [002] ...1 1034701.464123: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [002] ...1 1034701.483062: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034701.483176: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034701.483328: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [002] ...1 1034701.483408: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [001] ...1 1034701.502223: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034701.502371: tracing_mark_write: E|1151
surfaceflinger-591 ( 591) [000] ...1 1034701.502374: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034701.502511: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
SensorService-1283 ( 1151) [006] ...1 1034701.502511: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
composer@2.1-s-593 ( 593) [001] ...1 1034701.502586: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034701.502608: tracing_mark_write: B|593|HWDevice::Commit::
HwBinder:778_1-1087 ( 778) [000] ...1 1034701.502621: tracing_mark_write: B|778|HIDL::ISensors::poll::server
composer@2.1-s-593 ( 593) [001] ...1 1034701.502733: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034701.502763: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034701.502794: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034701.502874: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034701.521717: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034701.521814: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034701.521903: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034701.521981: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034701.535898: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034701.536035: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034701.536113: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034701.536135: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034701.536252: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034701.536281: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034701.536314: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034701.536390: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [001] ...1 1034701.540815: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034701.540911: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034701.541013: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034701.541087: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [001] ...1 1034701.561092: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034701.561281: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034701.561452: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034701.561585: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [001] ...1 1034701.579523: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034701.579654: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034701.579764: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034701.579918: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034701.586800: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034701.587083: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034701.587239: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034701.587287: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034701.587537: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034701.587595: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034701.587665: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034701.587839: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034701.599066: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034701.599234: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034701.599372: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034701.599562: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [007] ...1 1034701.618240: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034701.618378: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034701.618521: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034701.618652: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034701.637024: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034701.637326: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
sensors@1.0-se-778 ( 778) [007] ...1 1034701.637327: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034701.637455: tracing_mark_write: E|1151
composer@2.1-s-593 ( 593) [000] ...1 1034701.637486: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034701.637530: tracing_mark_write: B|593|HWDevice::Commit::
SensorService-1283 ( 1151) [006] ...1 1034701.637586: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034701.637722: tracing_mark_write: B|778|HIDL::ISensors::poll::server
composer@2.1-s-593 ( 593) [000] ...1 1034701.637779: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034701.637834: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034701.637899: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034701.638065: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [007] ...1 1034701.656855: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034701.657055: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034701.657239: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034701.657401: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034701.670575: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034701.670830: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034701.670952: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034701.670988: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034701.671183: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034701.671229: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034701.671281: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034701.671423: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [007] ...1 1034701.675900: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034701.676074: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034701.676207: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034701.676331: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [007] ...1 1034701.695124: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034701.695233: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034701.695338: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034701.695451: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [007] ...1 1034701.714327: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034701.714431: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034701.714518: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034701.714630: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034701.720806: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034701.721044: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034701.721163: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034701.721197: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034701.721379: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034701.721424: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034701.721473: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034701.721594: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [007] ...1 1034701.733502: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034701.733600: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034701.733720: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034701.733830: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [007] ...1 1034701.752879: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034701.752983: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034701.753070: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034701.753181: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034701.754422: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034701.754710: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034701.754839: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034701.754875: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034701.755068: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034701.755113: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034701.755164: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034701.755293: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [007] ...1 1034701.772093: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034701.772196: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034701.772305: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034701.772416: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [007] ...1 1034701.791205: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034701.791308: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034701.791412: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034701.791526: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034701.804741: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034701.804979: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034701.805100: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034701.805134: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034701.805311: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034701.805356: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034701.805404: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034701.805541: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [007] ...1 1034701.810530: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034701.810628: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034701.810721: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034701.810807: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [007] ...1 1034701.830285: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034701.830383: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034701.830488: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034701.830565: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034701.838279: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034701.838523: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034701.838658: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034701.838696: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034701.838902: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034701.838951: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034701.839004: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034701.839151: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [007] ...1 1034701.849065: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034701.849208: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034701.849354: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034701.849501: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [007] ...1 1034701.868353: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034701.868481: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034701.868584: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034701.868679: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [007] ...1 1034701.887473: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034701.887604: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034701.887749: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034701.887858: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034701.888640: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034701.888882: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034701.889004: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034701.889039: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034701.889233: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034701.889280: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034701.889333: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034701.889457: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [007] ...1 1034701.906848: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034701.906979: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034701.907115: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034701.907242: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [007] ...1 1034701.925954: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034701.926101: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034701.926283: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034701.926443: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034701.939056: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034701.939311: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034701.939437: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034701.939471: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034701.939662: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034701.939707: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034701.939759: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034701.939955: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [007] ...1 1034701.945403: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034701.945542: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034701.945712: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034701.945849: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [007] ...1 1034701.965198: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034701.965328: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034701.965489: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034701.965619: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034701.972617: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034701.972862: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034701.972980: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034701.973016: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034701.973251: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034701.973301: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034701.973354: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034701.973503: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [007] ...1 1034701.983812: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034701.983944: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034701.984099: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034701.984230: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [007] ...1 1034702.003062: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034702.003188: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034702.003404: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034702.003537: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [007] ...1 1034702.022281: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034702.022418: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034702.022583: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034702.022714: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034702.022978: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034702.023288: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034702.023419: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034702.023457: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034702.023658: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034702.023708: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034702.023762: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034702.023923: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [007] ...1 1034702.041588: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034702.041723: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034702.041889: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034702.042019: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034702.056630: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034702.056874: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034702.056997: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034702.057032: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034702.057219: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034702.057262: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034702.057312: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034702.057447: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [007] ...1 1034702.061158: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034702.061289: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034702.061409: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034702.061537: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [007] ...1 1034702.080140: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034702.080262: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034702.080421: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034702.080548: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [007] ...1 1034702.099303: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034702.099433: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034702.099597: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034702.099725: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034702.106865: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034702.107110: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034702.107232: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034702.107266: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034702.107452: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034702.107497: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034702.107548: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034702.107676: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [007] ...1 1034702.118544: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034702.118667: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034702.118877: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034702.119005: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [007] ...1 1034702.137784: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034702.137930: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034702.138046: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034702.138177: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [007] ...1 1034702.157333: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034702.157478: tracing_mark_write: E|1151
surfaceflinger-591 ( 591) [000] ...1 1034702.157608: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
SensorService-1283 ( 1151) [006] ...1 1034702.157660: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034702.157795: tracing_mark_write: B|778|HIDL::ISensors::poll::server
composer@2.1-s-593 ( 593) [001] ...1 1034702.157952: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034702.158119: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034702.158171: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034702.158427: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034702.158491: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034702.158556: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034702.158714: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [007] ...1 1034702.176462: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034702.176658: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034702.176821: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034702.176957: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034702.190767: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034702.191050: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034702.191190: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034702.191231: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034702.191456: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034702.191510: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034702.191568: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034702.191727: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [007] ...1 1034702.195651: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034702.195808: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034702.195994: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034702.196133: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [007] ...1 1034702.214964: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034702.215099: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034702.215231: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034702.215362: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [007] ...1 1034702.234101: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034702.234249: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034702.234397: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034702.234537: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034702.241152: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034702.241476: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034702.241627: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034702.241671: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034702.241910: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034702.241968: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034702.242033: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034702.242200: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [007] ...1 1034702.253333: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034702.253460: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034702.253595: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034702.253730: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [007] ...1 1034702.272683: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034702.272819: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034702.273009: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034702.273153: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [003] ...1 1034702.274682: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034702.274974: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034702.275108: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034702.275147: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034702.275365: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034702.275415: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034702.275473: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034702.275631: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [007] ...1 1034702.291903: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034702.292021: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034702.292157: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034702.292294: tracing_mark_write: B|778|HIDL::ISensors::poll::server
health@2.0-ser-744 ( 744) [001] ...1 1034702.305794: tracing_mark_write: B|744|HIDL::IHealthInfoCallback::healthInfoChanged::client
health@2.0-ser-744 ( 744) [001] ...1 1034702.305942: tracing_mark_write: E|744
health@2.0-ser-744 ( 744) [001] ...1 1034702.305955: tracing_mark_write: B|744|HIDL::IHealthInfoCallback::healthInfoChanged::client
health@2.0-ser-744 ( 744) [001] ...1 1034702.306020: tracing_mark_write: E|744
HwBinder:911_1-1038 ( 911) [000] ...1 1034702.306689: tracing_mark_write: B|911|HIDL::IHealthInfoCallback::healthInfoChanged::server
HwBinder:911_1-1038 ( 911) [000] ...1 1034702.306699: tracing_mark_write: E|911
sensors@1.0-se-778 ( 778) [007] ...1 1034702.311343: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034702.311504: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034702.311659: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034702.311814: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034702.324599: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034702.324784: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034702.324867: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034702.324892: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034702.325026: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034702.325058: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034702.325097: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034702.325191: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [007] ...1 1034702.330435: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034702.330580: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034702.330735: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034702.330874: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034702.341288: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034702.341441: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034702.341517: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034702.341528: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034702.341532: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034702.341831: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034702.341910: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034702.341931: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034702.341955: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034702.342027: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034702.342101: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034702.342142: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034702.342151: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034702.342163: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034702.342263: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034702.342283: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034702.342305: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034702.342351: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [007] ...1 1034702.349642: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034702.349808: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034702.350083: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034702.350215: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034702.359027: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034702.359405: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034702.359653: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034702.359691: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034702.359704: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034702.360807: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034702.360949: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034702.360984: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034702.361023: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034702.361135: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034702.361280: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034702.361347: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034702.361364: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034702.361385: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034702.361547: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034702.361580: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034702.361615: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034702.361681: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [005] ...1 1034702.368750: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034702.368888: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034702.369014: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [005] ...1 1034702.369127: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [003] ...1 1034702.375212: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034702.375442: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034702.375550: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034702.375567: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034702.375573: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034702.376003: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034702.376117: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034702.376149: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034702.376182: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034702.376295: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [003] ...1 1034702.376419: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034702.376496: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034702.376512: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034702.376601: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034702.376771: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034702.376809: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034702.376848: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034702.376925: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [005] ...1 1034702.388062: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034702.388149: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034702.388236: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [005] ...1 1034702.388312: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [005] ...1 1034702.407260: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034702.407381: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034702.407492: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [005] ...1 1034702.407627: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034702.408667: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034702.408873: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034702.408984: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034702.409017: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034702.409183: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034702.409226: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034702.409272: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034702.409412: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [005] ...1 1034702.426772: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034702.426912: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034702.427049: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [005] ...1 1034702.427194: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [005] ...1 1034702.446043: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034702.446198: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034702.446350: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [005] ...1 1034702.446643: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [003] ...1 1034702.459472: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034702.459850: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034702.460057: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034702.460107: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034702.460358: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034702.460426: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034702.460500: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034702.460685: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [005] ...1 1034702.465190: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034702.465330: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034702.465468: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [005] ...1 1034702.465607: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [005] ...1 1034702.484379: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034702.484547: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034702.484730: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [005] ...1 1034702.484873: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034702.492650: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034702.492881: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034702.493004: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034702.493039: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034702.493275: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034702.493320: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034702.493372: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034702.493491: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [005] ...1 1034702.503604: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034702.503751: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034702.503879: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [005] ...1 1034702.504003: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [005] ...1 1034702.522830: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034702.522945: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034702.523065: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [005] ...1 1034702.523173: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [005] ...1 1034702.542190: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034702.542367: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034702.542563: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [005] ...1 1034702.542716: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [003] ...1 1034702.543272: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034702.543585: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034702.543744: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034702.543791: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034702.544034: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034702.544092: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034702.544155: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034702.544325: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [005] ...1 1034702.561472: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034702.561618: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034702.561784: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [005] ...1 1034702.561924: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034702.576412: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034702.576642: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034702.576735: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034702.576763: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034702.576910: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034702.576946: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034702.576988: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034702.577102: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [005] ...1 1034702.580718: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034702.580887: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034702.581130: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [005] ...1 1034702.581273: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [005] ...1 1034702.599805: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034702.599959: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034702.600084: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [005] ...1 1034702.600222: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [005] ...1 1034702.619285: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034702.619426: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034702.619588: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [005] ...1 1034702.619733: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034702.627017: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034702.627304: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034702.627434: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034702.627473: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034702.627672: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034702.627723: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034702.627778: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034702.627951: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [005] ...1 1034702.638353: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034702.638460: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034702.638591: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [005] ...1 1034702.638696: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [005] ...1 1034702.659227: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034702.659403: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034702.659612: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [005] ...1 1034702.659769: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [005] ...1 1034702.677022: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034702.677164: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034702.677324: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [005] ...1 1034702.677463: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034702.677766: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034702.678079: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034702.678241: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034702.678287: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034702.678518: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034702.678583: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034702.678647: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034702.678838: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [005] ...1 1034702.696127: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034702.696252: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034702.696367: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [005] ...1 1034702.696500: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034702.711384: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034702.711730: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034702.711903: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034702.711952: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034702.712216: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034702.712281: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034702.712354: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034702.712550: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [007] ...1 1034702.715506: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034702.715670: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034702.715816: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034702.715962: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [007] ...1 1034702.734620: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034702.734751: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034702.734916: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034702.735070: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [007] ...1 1034702.754086: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034702.754231: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034702.754405: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034702.754554: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034702.761369: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034702.761658: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034702.761806: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034702.761851: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034702.762077: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034702.762131: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034702.762190: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034702.762359: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [007] ...1 1034702.773301: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034702.773474: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034702.773636: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034702.773783: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [007] ...1 1034702.792568: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034702.792736: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034702.792919: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034702.793062: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034702.794798: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034702.795047: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034702.795179: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034702.795219: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034702.795424: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034702.795475: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034702.795531: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034702.795675: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [007] ...1 1034702.811788: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034702.811939: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034702.812073: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034702.812215: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [007] ...1 1034702.830872: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034702.831039: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034702.831192: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034702.831335: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034702.845120: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034702.845359: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034702.845476: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034702.845512: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034702.845694: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034702.845736: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034702.845785: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034702.845900: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034702.850337: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034702.850492: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034702.850656: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034702.850796: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034702.869511: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034702.869638: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034702.869804: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034702.870001: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034702.878789: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034702.879088: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034702.879233: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034702.879276: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034702.879494: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034702.879551: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034702.879615: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034702.879790: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034702.888764: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034702.888920: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034702.889114: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034702.889256: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034702.907889: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034702.908025: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034702.908185: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034702.908318: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [007] ...1 1034702.927499: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034702.927658: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034702.927806: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034702.927951: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034702.929010: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034702.929257: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034702.929393: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034702.929432: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034702.929646: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034702.929697: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034702.929752: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034702.929930: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [007] ...1 1034702.946409: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034702.946606: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034702.946794: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034702.946935: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [007] ...1 1034702.965694: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034702.965840: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034702.965987: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034702.966131: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034702.979768: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034702.980163: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034702.980328: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034702.980377: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034702.980637: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034702.980701: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034702.980768: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034702.980973: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [007] ...1 1034702.985010: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034702.985143: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034702.985274: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034702.985409: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [007] ...1 1034703.004384: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034703.004546: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034703.004725: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034703.004872: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [003] ...1 1034703.012985: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034703.013299: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034703.013442: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034703.013481: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034703.013702: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034703.013754: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034703.013812: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034703.013955: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [007] ...1 1034703.023513: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034703.023647: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034703.023772: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034703.023909: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [007] ...1 1034703.042546: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034703.042649: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034703.042747: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034703.042846: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [007] ...1 1034703.062046: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034703.062219: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034703.062408: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034703.062545: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034703.063123: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034703.063382: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034703.063493: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034703.063526: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034703.063700: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034703.063742: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034703.063789: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034703.063900: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [007] ...1 1034703.081185: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034703.081308: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034703.081460: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034703.081583: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034703.096731: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034703.096973: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034703.097082: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034703.097115: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034703.097291: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034703.097333: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034703.097381: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034703.097497: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [007] ...1 1034703.100754: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034703.100933: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034703.101150: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034703.101304: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [005] ...1 1034703.119798: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034703.119981: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034703.120111: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [005] ...1 1034703.120259: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [005] ...1 1034703.139138: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034703.139342: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034703.139527: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034703.139742: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034703.147234: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034703.147530: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034703.147681: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034703.147726: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034703.147967: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034703.148023: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034703.148088: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034703.148234: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [001] ...1 1034703.158388: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034703.158545: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034703.158724: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034703.158862: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034703.180801: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034703.181114: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034703.181258: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034703.181297: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034703.181516: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034703.181567: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034703.181626: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034703.181777: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [003] ...1 1034703.182177: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034703.182355: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034703.182561: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [003] ...1 1034703.182707: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [001] ...1 1034703.197013: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034703.197202: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034703.197385: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034703.197533: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [001] ...1 1034703.216395: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034703.216805: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034703.217003: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034703.217196: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034703.231354: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034703.231685: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034703.231876: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034703.231932: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034703.232233: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034703.232304: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034703.232383: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034703.232587: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [001] ...1 1034703.235966: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034703.236187: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034703.236418: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034703.236601: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [001] ...1 1034703.254670: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034703.254859: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034703.255033: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034703.255190: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [001] ...1 1034703.274020: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034703.274251: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034703.274465: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034703.274637: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034703.281635: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034703.281946: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034703.282122: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034703.282177: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034703.282455: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034703.282521: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034703.282598: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034703.282773: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [001] ...1 1034703.293331: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034703.293522: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034703.293693: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034703.293860: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [001] ...1 1034703.312477: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034703.312725: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034703.312942: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034703.313120: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034703.315273: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034703.315613: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034703.315820: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034703.315881: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034703.316195: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034703.316272: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034703.316358: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034703.316641: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [001] ...1 1034703.332408: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034703.332627: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034703.332767: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034703.332939: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034703.354105: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034703.354372: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034703.354599: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034703.354788: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034703.365891: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034703.366296: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034703.366512: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034703.366665: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034703.367004: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034703.367090: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034703.367186: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034703.367437: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [001] ...1 1034703.371125: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034703.371329: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034703.371456: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034703.371625: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [001] ...1 1034703.389748: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034703.389977: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034703.390121: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034703.390288: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034703.399464: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034703.399853: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034703.400123: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034703.400185: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034703.400539: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034703.400623: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034703.400719: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034703.400971: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034703.408687: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034703.408889: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034703.409046: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034703.409174: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034703.427803: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034703.427968: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034703.428084: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034703.428193: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034703.446861: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034703.446969: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034703.447070: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034703.447141: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034703.448791: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034703.448916: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034703.448992: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034703.449015: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034703.449135: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034703.449163: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034703.449195: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034703.449269: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034703.466001: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034703.466091: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034703.466160: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034703.466226: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034703.482408: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034703.482572: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034703.482683: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034703.482709: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034703.482844: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034703.482879: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034703.482918: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034703.483021: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034703.485682: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034703.485903: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034703.486095: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034703.486241: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034703.505013: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034703.505233: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034703.505399: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034703.505545: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034703.524132: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034703.524349: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034703.524583: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034703.524772: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034703.532964: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034703.533331: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034703.533467: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034703.533507: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034703.533727: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034703.533783: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034703.533843: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034703.534012: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [001] ...1 1034703.543337: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034703.543531: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034703.543671: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034703.543796: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [001] ...1 1034703.562660: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034703.562884: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034703.563098: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034703.563305: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034703.582085: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034703.582315: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034703.582521: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [002] ...1 1034703.582686: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034703.583589: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034703.583739: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034703.583823: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034703.583848: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034703.583982: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034703.584016: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034703.584052: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034703.584143: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [001] ...1 1034703.601012: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034703.601199: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034703.601388: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034703.601525: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034703.616877: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034703.617097: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034703.617194: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034703.617222: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034703.617384: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034703.617424: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034703.617469: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034703.617594: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [001] ...1 1034703.620232: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034703.620371: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034703.620509: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034703.620622: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [002] ...1 1034703.639660: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034703.639787: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034703.640012: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [002] ...1 1034703.640160: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [001] ...1 1034703.658904: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034703.659074: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034703.659245: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034703.659393: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034703.667275: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034703.667489: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034703.667608: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034703.667642: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034703.667852: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034703.667899: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034703.667951: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034703.668089: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [001] ...1 1034703.678245: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034703.678409: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034703.678581: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034703.678722: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [001] ...1 1034703.697309: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034703.697463: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034703.697628: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034703.697768: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034703.701138: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034703.701395: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034703.701553: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034703.701597: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034703.701852: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034703.701910: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034703.701974: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034703.702153: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [001] ...1 1034703.716730: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034703.716920: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034703.717057: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034703.717234: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [001] ...1 1034703.738662: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034703.738863: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034703.739020: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034703.739164: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034703.751177: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034703.751419: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034703.751543: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034703.751577: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034703.751753: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034703.751798: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034703.751849: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034703.751959: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034703.755037: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034703.755168: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034703.755335: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034703.755460: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [001] ...1 1034703.774617: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034703.774778: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034703.774887: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034703.775015: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [001] ...1 1034703.793815: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034703.794030: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034703.794203: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034703.794352: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034703.801778: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034703.802076: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034703.802240: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034703.802287: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034703.802535: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034703.802595: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034703.802662: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034703.802812: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [001] ...1 1034703.812881: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034703.813059: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034703.813188: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034703.813397: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [002] ...1 1034703.831945: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034703.832147: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034703.832343: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [002] ...1 1034703.832478: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034703.834902: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034703.835070: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034703.835158: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034703.835184: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034703.835386: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034703.835422: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034703.835462: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034703.835569: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [002] ...1 1034703.851268: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034703.851464: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034703.851631: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [002] ...1 1034703.851763: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034703.870507: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034703.870682: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034703.870840: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034703.870965: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034703.885214: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034703.885403: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034703.885488: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034703.885515: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034703.885659: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034703.885693: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034703.885731: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034703.885825: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [001] ...1 1034703.889700: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034703.889853: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034703.890045: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034703.890167: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034703.909581: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034703.909818: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034703.910035: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034703.910341: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034703.918969: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034703.919185: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034703.919305: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034703.919340: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034703.919531: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034703.919576: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034703.919627: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034703.919740: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [001] ...1 1034703.928316: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034703.928482: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034703.928610: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034703.928741: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [001] ...1 1034703.947653: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034703.947834: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034703.948050: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034703.948190: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034703.967058: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034703.967236: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034703.967377: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034703.967515: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034703.969311: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034703.969514: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034703.969641: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034703.969678: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034703.969915: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034703.969962: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034703.970012: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034703.970133: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034703.986126: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034703.986292: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034703.986426: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034703.986598: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034704.002947: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034704.003284: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034704.003422: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034704.003461: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034704.003675: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034704.003723: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034704.003780: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034704.003899: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034704.006663: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034704.006808: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034704.006946: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034704.007069: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [001] ...1 1034704.024658: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034704.024820: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034704.024951: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034704.025077: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034704.044219: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034704.044365: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034704.044480: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034704.044585: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034704.053130: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034704.053392: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034704.053498: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034704.053528: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034704.053693: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034704.053733: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034704.053779: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034704.053913: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034704.063432: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034704.063610: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034704.063768: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034704.063907: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [003] ...1 1034704.082380: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034704.082546: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034704.082706: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [003] ...1 1034704.082837: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034704.086948: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034704.087195: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034704.087317: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034704.087351: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034704.087542: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034704.087590: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034704.087643: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034704.087782: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034704.101656: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034704.101924: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034704.102061: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034704.102161: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [001] ...1 1034704.120836: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034704.121007: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034704.121147: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034704.121239: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034704.137227: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034704.137478: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034704.137595: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034704.137630: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034704.137813: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034704.137857: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034704.137908: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034704.138038: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034704.140587: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034704.140688: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034704.140814: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034704.140890: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034704.159571: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034704.159715: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034704.159832: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034704.159946: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034704.178642: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034704.178792: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034704.178927: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034704.179020: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [003] ...1 1034704.187751: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034704.188040: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034704.188189: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034704.188236: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034704.188481: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034704.188539: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034704.188606: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034704.188771: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034704.197914: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034704.198076: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034704.198221: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034704.198317: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034704.217173: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034704.217328: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034704.217470: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034704.217609: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034704.221048: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034704.221260: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034704.221389: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034704.221425: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034704.221625: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034704.221670: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034704.221723: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034704.221843: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034704.236859: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034704.237016: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034704.237148: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034704.237247: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [001] ...1 1034704.256016: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034704.256216: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034704.256437: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034704.256602: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034704.271508: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034704.271795: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034704.271928: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034704.271966: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034704.272168: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034704.272218: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034704.272273: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034704.272429: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034704.275113: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034704.275262: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034704.275395: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034704.275478: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034704.294199: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034704.294343: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034704.294493: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034704.294584: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034704.304983: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034704.305244: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034704.305364: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034704.305399: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034704.305591: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034704.305635: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034704.305686: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034704.305821: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034704.313359: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034704.313501: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034704.313626: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034704.313710: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [002] ...1 1034704.332643: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034704.332808: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034704.332959: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [002] ...1 1034704.333059: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [002] ...1 1034704.352003: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034704.352171: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034704.352318: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [002] ...1 1034704.352460: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034704.355204: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034704.355409: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034704.355529: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034704.355564: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034704.355754: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034704.355798: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034704.355850: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034704.355966: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034704.371167: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034704.371324: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034704.371432: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034704.371511: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034704.388567: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034704.388733: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034704.388822: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034704.388847: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034704.389000: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034704.389034: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034704.389072: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034704.389171: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034704.390384: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034704.390467: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034704.390574: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034704.390639: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034704.409663: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034704.409806: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034704.410009: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034704.410129: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [001] ...1 1034704.429136: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034704.429346: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034704.429526: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034704.429649: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034704.439206: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034704.439459: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034704.439581: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034704.439615: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034704.439814: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034704.439862: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034704.439981: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034704.440129: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034704.448174: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034704.448323: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034704.448451: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034704.448535: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [002] ...1 1034704.467600: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034704.467786: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034704.467939: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [002] ...1 1034704.468039: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034704.486926: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034704.487071: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034704.487203: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034704.487325: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034704.489383: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034704.489568: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034704.489680: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034704.489712: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034704.489917: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034704.489958: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034704.490004: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034704.490107: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034704.505919: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034704.506054: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034704.506154: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034704.506225: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034704.523074: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034704.523348: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034704.523468: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034704.523504: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034704.523694: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034704.523741: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034704.523794: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034704.523918: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034704.527162: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034704.527289: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034704.527418: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034704.527505: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034704.544689: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034704.544859: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034704.545009: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034704.545110: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [001] ...1 1034704.564115: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034704.564369: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034704.564527: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034704.564611: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034704.573166: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034704.573355: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034704.573444: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034704.573469: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034704.573604: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034704.573637: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034704.573678: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034704.573784: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034704.582790: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034704.582900: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034704.583005: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034704.583073: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034704.602106: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034704.602221: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034704.602331: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034704.602399: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034704.621595: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034704.621817: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034704.622005: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034704.622119: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034704.624049: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034704.624303: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034704.624452: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034704.624497: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034704.624736: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034704.624794: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034704.624859: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034704.625017: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034704.640887: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034704.641066: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034704.641206: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034704.641300: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034704.657346: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034704.657613: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034704.657727: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034704.657759: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034704.657932: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034704.657975: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034704.658024: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034704.658146: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034704.659964: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034704.660078: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034704.660213: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034704.660290: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034704.679034: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034704.679160: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034704.679274: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034704.679349: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [001] ...1 1034704.698471: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034704.698630: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034704.698788: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034704.698894: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034704.708178: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034704.708457: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034704.708604: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034704.708648: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034704.708885: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034704.708947: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034704.709017: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034704.709200: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [001] ...1 1034704.718189: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034704.718320: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034704.718447: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034704.718530: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [001] ...1 1034704.737380: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034704.737572: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034704.737734: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034704.737847: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [003] ...1 1034704.741186: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034704.741425: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034704.741539: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034704.741572: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034704.741752: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034704.741798: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034704.741850: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034704.741989: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [001] ...1 1034704.756347: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034704.756508: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034704.756725: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034704.756817: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [002] ...1 1034704.775449: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034704.775590: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034704.775708: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [002] ...1 1034704.775784: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034704.791698: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034704.791993: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034704.792134: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034704.792175: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034704.792393: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034704.792444: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034704.792503: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034704.792648: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [001] ...1 1034704.794819: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034704.794958: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034704.795105: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034704.795199: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [002] ...1 1034704.814037: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034704.814186: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034704.814320: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [002] ...1 1034704.814414: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [001] ...1 1034704.833464: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034704.833608: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034704.833762: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034704.833866: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034704.842149: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034704.842438: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034704.842601: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034704.842648: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034704.842889: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034704.842946: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034704.843015: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034704.843179: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034704.852614: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034704.852817: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034704.852994: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034704.853110: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034704.872006: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034704.872153: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034704.872295: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [005] ...1 1034704.872564: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034704.875463: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034704.875673: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034704.875799: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034704.875833: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034704.876038: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034704.876084: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034704.876139: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034704.876260: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034704.891079: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034704.891255: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034704.891388: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034704.891549: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034704.910635: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034704.910845: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034704.911039: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034704.911202: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034704.925789: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034704.926036: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034704.926158: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034704.926194: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034704.926393: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034704.926446: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034704.926503: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034704.926738: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034704.929613: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034704.929790: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034704.930033: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034704.930238: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034704.948857: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034704.949038: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034704.949192: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034704.949419: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034704.959341: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034704.959595: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034704.959709: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034704.959744: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034704.959992: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034704.960059: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034704.960111: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034704.960243: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034704.968036: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034704.968196: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034704.968320: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034704.968456: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034704.987228: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034704.987371: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034704.987515: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034704.987602: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [002] ...1 1034705.006633: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034705.006806: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034705.006973: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [002] ...1 1034705.007078: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034705.009746: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034705.010045: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034705.010180: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034705.010220: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034705.010433: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034705.010485: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034705.010550: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034705.010696: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [002] ...1 1034705.025740: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034705.025899: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034705.026027: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [002] ...1 1034705.026118: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034705.045114: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034705.045319: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034705.045498: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034705.045615: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034705.060283: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034705.060560: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034705.060709: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034705.060748: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034705.061002: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034705.061073: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034705.061160: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [002] ...1 1034705.061344: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034705.064533: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034705.064754: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034705.064979: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034705.065118: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034705.083921: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034705.084183: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034705.084473: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034705.084573: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034705.093739: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034705.094008: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034705.094140: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034705.094178: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034705.094390: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034705.094439: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034705.094494: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034705.094627: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [004] ...1 1034705.103012: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034705.103308: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034705.103503: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [004] ...1 1034705.103692: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [002] ...1 1034705.125644: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034705.125846: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034705.126071: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [002] ...1 1034705.126143: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [004] ...1 1034705.143350: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034705.143653: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034705.143754: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [004] ...1 1034705.143838: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034705.143850: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034705.143994: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034705.144080: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034705.144107: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034705.144240: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034705.144274: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034705.144313: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034705.144415: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [002] ...1 1034705.160346: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034705.160454: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034705.160542: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [002] ...1 1034705.160602: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034705.177163: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034705.177315: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034705.177399: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034705.177424: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034705.177547: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034705.177576: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034705.177612: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034705.177709: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [003] ...1 1034705.180113: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034705.180208: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034705.180291: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [003] ...1 1034705.180352: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [002] ...1 1034705.198731: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034705.198828: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034705.198910: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [002] ...1 1034705.198971: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [004] ...1 1034705.218183: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034705.218308: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034705.218412: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [004] ...1 1034705.218512: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034705.227561: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034705.227706: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034705.227784: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034705.227808: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034705.227932: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034705.227963: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034705.227998: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034705.228108: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [003] ...1 1034705.237327: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034705.237419: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034705.237504: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [003] ...1 1034705.237562: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [003] ...1 1034705.256690: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034705.256785: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034705.256885: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [003] ...1 1034705.256948: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034705.261126: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034705.261272: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034705.261349: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034705.261372: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034705.261499: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034705.261530: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034705.261567: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034705.261670: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [001] ...1 1034705.275791: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034705.275883: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034705.275971: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034705.276029: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [002] ...1 1034705.295408: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034705.295574: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034705.295706: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [002] ...1 1034705.295796: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034705.311557: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034705.311739: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034705.311836: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034705.311865: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034705.312019: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034705.312055: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034705.312096: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034705.312196: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034705.314442: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034705.314539: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034705.314646: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034705.314709: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034705.334032: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034705.334155: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034705.334257: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034705.334327: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034705.345301: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034705.345552: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034705.345689: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034705.345729: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034705.345958: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034705.346012: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034705.346069: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034705.346227: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [001] ...1 1034705.353197: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034705.353419: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034705.353580: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034705.353683: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [001] ...1 1034705.372433: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034705.372657: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034705.372846: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034705.372961: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [001] ...1 1034705.391625: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034705.391746: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034705.391859: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034705.391929: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034705.395385: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034705.395564: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034705.395654: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034705.395680: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034705.395836: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034705.395870: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034705.395908: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034705.396001: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034705.410872: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034705.410991: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034705.411143: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034705.411221: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034705.429176: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034705.429453: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034705.429611: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034705.429659: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034705.429951: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034705.430015: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034705.430083: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034705.430245: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [003] ...1 1034705.430822: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034705.430974: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034705.431141: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [003] ...1 1034705.431260: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [002] ...1 1034705.449303: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034705.449470: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034705.449620: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [002] ...1 1034705.449715: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034705.468903: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034705.469154: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034705.469395: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034705.469551: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034705.479586: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034705.479901: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034705.480036: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034705.480077: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034705.480281: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034705.480331: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034705.480389: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034705.480517: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034705.487897: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034705.488069: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034705.488208: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034705.488301: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034705.507228: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034705.507419: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034705.507592: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034705.507774: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034705.526517: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034705.526780: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034705.526941: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034705.527056: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034705.529936: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034705.530148: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034705.530287: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034705.530326: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034705.530553: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034705.530605: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034705.530662: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034705.530797: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034705.545543: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034705.545719: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034705.545890: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [003] ...1 1034705.546018: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034705.563844: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034705.564171: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034705.564324: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034705.564388: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034705.564644: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034705.564704: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034705.564772: tracing_mark_write: E|593
HwBinder:778_1-1087 ( 778) [000] ...1 1034705.564958: tracing_mark_write: E|778
surfaceflinger-591 ( 591) [001] ...1 1034705.565025: tracing_mark_write: E|591
SensorService-1283 ( 1151) [003] ...1 1034705.565096: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034705.565260: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034705.565361: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [001] ...1 1034705.584199: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034705.584346: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034705.584470: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034705.584555: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034705.603987: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034705.604182: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034705.604348: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034705.604463: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034705.614006: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034705.614261: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034705.614395: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034705.614436: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034705.614645: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034705.614697: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034705.614757: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034705.614919: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [001] ...1 1034705.622735: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034705.622868: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034705.623004: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034705.623102: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [001] ...1 1034705.641997: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034705.642177: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034705.642336: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034705.642448: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [003] ...1 1034705.647484: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034705.647708: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034705.647834: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034705.647870: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034705.648071: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034705.648120: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034705.648174: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034705.648313: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [001] ...1 1034705.661037: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034705.661219: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034705.661399: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034705.661513: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [001] ...1 1034705.680610: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034705.680915: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034705.681202: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034705.681394: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034705.697861: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034705.698225: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034705.698386: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034705.698431: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034705.698667: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034705.698728: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034705.698796: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034705.698960: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [001] ...1 1034705.699787: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034705.699966: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034705.700115: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034705.700217: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [001] ...1 1034705.718852: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034705.719041: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034705.719189: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034705.719306: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034705.731398: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034705.731671: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034705.731806: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034705.731844: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034705.732054: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034705.732104: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034705.732162: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034705.732330: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [001] ...1 1034705.738189: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034705.738367: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034705.738524: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034705.738630: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [001] ...1 1034705.757635: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034705.757777: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034705.757895: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034705.757995: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [001] ...1 1034705.776631: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034705.776807: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034705.776967: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034705.777079: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034705.781715: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034705.781991: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034705.782151: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034705.782198: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034705.782443: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034705.782503: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034705.782572: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034705.782733: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034705.796026: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034705.796184: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034705.796352: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034705.796464: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [002] ...1 1034705.815189: tracing_mark_write: E|778
surfaceflinger-591 ( 591) [001] ...1 1034705.815354: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
SensorService-1283 ( 1151) [003] ...1 1034705.815368: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034705.815517: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [002] ...1 1034705.815607: tracing_mark_write: B|778|HIDL::ISensors::poll::server
composer@2.1-s-593 ( 593) [000] ...1 1034705.815610: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034705.815776: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034705.815826: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034705.816085: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034705.816143: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034705.816207: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034705.816365: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [001] ...1 1034705.834448: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034705.834626: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034705.834783: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034705.834890: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034705.854100: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034705.854402: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034705.854670: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034705.854839: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034705.865691: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034705.866057: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034705.866214: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034705.866260: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034705.866498: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034705.866646: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034705.866733: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034705.866903: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034705.872893: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034705.873030: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034705.873167: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034705.873302: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034705.892432: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034705.892675: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034705.892858: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034705.892983: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [001] ...1 1034705.911530: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034705.911746: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034705.911957: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034705.912081: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [003] ...1 1034705.916032: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034705.916336: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034705.916509: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034705.916613: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034705.916877: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034705.916939: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034705.917009: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034705.917176: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [001] ...1 1034705.930699: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034705.930896: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034705.931065: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034705.931184: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034705.949335: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034705.949595: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034705.949709: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034705.949744: tracing_mark_write: B|593|HWDevice::Commit::
HwBinder:778_1-1087 ( 778) [001] ...1 1034705.949912: tracing_mark_write: E|778
composer@2.1-s-593 ( 593) [000] ...1 1034705.949987: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034705.950035: tracing_mark_write: E|593
SensorService-1283 ( 1151) [003] ...1 1034705.950037: tracing_mark_write: E|1151
composer@2.1-s-593 ( 593) [000] ...1 1034705.950083: tracing_mark_write: E|593
SensorService-1283 ( 1151) [003] ...1 1034705.950160: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
surfaceflinger-591 ( 591) [001] ...1 1034705.950210: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [004] ...1 1034705.950398: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034705.969106: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034705.969297: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034705.969452: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034705.969545: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034705.988458: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034705.988584: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034705.988691: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034705.988758: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034705.999700: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034705.999961: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034706.000094: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034706.000129: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034706.000312: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034706.000358: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034706.000426: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034706.000605: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034706.007387: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034706.007508: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034706.007627: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034706.007692: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [001] ...1 1034706.028283: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034706.028503: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034706.028670: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034706.028789: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034706.033344: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034706.033598: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034706.033714: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034706.033750: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034706.033937: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034706.033982: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034706.034033: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034706.034164: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [002] ...1 1034706.046966: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034706.047137: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034706.047290: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [002] ...1 1034706.047371: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034706.065368: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034706.065533: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034706.065670: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034706.065755: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034706.083721: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034706.083979: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034706.084104: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034706.084140: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034706.084328: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034706.084376: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034706.084432: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034706.084571: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [001] ...1 1034706.085135: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034706.085255: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034706.085378: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034706.085457: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [002] ...1 1034706.103979: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034706.104170: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034706.104323: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [002] ...1 1034706.104427: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034706.123170: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034706.123423: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034706.123564: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034706.123677: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034706.134021: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034706.134274: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034706.134405: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034706.134443: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034706.134636: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034706.134687: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034706.134744: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034706.134897: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034706.142345: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034706.142518: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034706.142657: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034706.142738: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [004] ...1 1034706.161992: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034706.162193: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034706.162350: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [004] ...1 1034706.162517: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034706.167578: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034706.167839: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034706.167972: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034706.168012: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034706.168220: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034706.168272: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034706.168330: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034706.168466: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034706.181019: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034706.181160: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034706.181280: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034706.181352: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034706.200240: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034706.200428: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034706.200706: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034706.200914: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034706.217942: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034706.218277: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034706.218409: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034706.218448: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034706.218646: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034706.218697: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034706.218758: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034706.218906: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [001] ...1 1034706.219453: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034706.219588: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034706.219734: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034706.219810: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034706.238532: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034706.238685: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034706.238795: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034706.238872: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034706.251463: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034706.251724: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034706.251855: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034706.251895: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034706.252092: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034706.252140: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034706.252195: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034706.252344: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034706.258545: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034706.258707: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034706.258858: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034706.258953: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034706.277610: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034706.277764: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034706.277897: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034706.278103: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [005] ...1 1034706.296708: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034706.296880: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034706.297025: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [005] ...1 1034706.297187: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034706.301648: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034706.301870: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034706.301990: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034706.302025: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034706.302201: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034706.302245: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034706.302295: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034706.302408: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [005] ...1 1034706.315646: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034706.315819: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034706.315953: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [005] ...1 1034706.316115: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [005] ...1 1034706.334995: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034706.335150: tracing_mark_write: E|1151
surfaceflinger-591 ( 591) [002] ...1 1034706.335258: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
SensorService-1283 ( 1151) [001] ...1 1034706.335267: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [005] ...1 1034706.335438: tracing_mark_write: B|778|HIDL::ISensors::poll::server
composer@2.1-s-593 ( 593) [000] ...1 1034706.335453: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034706.335559: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034706.335590: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034706.335768: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034706.335811: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034706.335859: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034706.335987: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [005] ...1 1034706.354082: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034706.354261: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034706.354387: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [005] ...1 1034706.354520: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [005] ...1 1034706.373745: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034706.374043: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034706.374386: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [005] ...1 1034706.374580: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034706.385555: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034706.385784: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034706.385906: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034706.385941: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034706.386133: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034706.386178: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034706.386228: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034706.386354: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [005] ...1 1034706.392729: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034706.392927: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034706.393096: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [005] ...1 1034706.393275: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [007] ...1 1034706.412284: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034706.412481: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034706.412626: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034706.412800: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [007] ...1 1034706.431070: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034706.431204: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034706.431310: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034706.431424: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034706.435955: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034706.436174: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034706.436285: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034706.436318: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034706.436503: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034706.436598: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034706.436650: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034706.436841: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [007] ...1 1034706.450493: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034706.450671: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034706.450808: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034706.450983: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034706.469617: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
sensors@1.0-se-778 ( 778) [007] ...1 1034706.469950: tracing_mark_write: E|778
composer@2.1-s-593 ( 593) [001] ...1 1034706.469959: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034706.470097: tracing_mark_write: B|593|HWCSession::PresentDisplay::
SensorService-1283 ( 1151) [000] ...1 1034706.470132: tracing_mark_write: E|1151
composer@2.1-s-593 ( 593) [001] ...1 1034706.470135: tracing_mark_write: B|593|HWDevice::Commit::
SensorService-1283 ( 1151) [000] ...1 1034706.470270: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
composer@2.1-s-593 ( 593) [001] ...1 1034706.470338: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034706.470385: tracing_mark_write: E|593
sensors@1.0-se-778 ( 778) [007] ...1 1034706.470417: tracing_mark_write: B|778|HIDL::ISensors::poll::server
composer@2.1-s-593 ( 593) [001] ...1 1034706.470439: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034706.470572: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [007] ...1 1034706.488891: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034706.489084: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034706.489238: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034706.489421: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [007] ...1 1034706.508288: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034706.508471: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034706.508620: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034706.508775: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034706.519821: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034706.520140: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034706.520259: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034706.520294: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034706.520481: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034706.520523: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034706.520574: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034706.520701: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [007] ...1 1034706.527394: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034706.527563: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034706.527705: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034706.527868: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [007] ...1 1034706.546839: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034706.547058: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034706.547242: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034706.547433: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [007] ...1 1034706.565867: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034706.566018: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034706.566149: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034706.566269: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034706.570155: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034706.570365: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034706.570479: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034706.570512: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034706.570683: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034706.570725: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034706.570771: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034706.570885: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [007] ...1 1034706.585128: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034706.585332: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034706.585518: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034706.585694: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034706.603865: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034706.604107: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034706.604232: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034706.604268: tracing_mark_write: B|593|HWDevice::Commit::
sensors@1.0-se-778 ( 778) [007] ...1 1034706.604435: tracing_mark_write: E|778
composer@2.1-s-593 ( 593) [001] ...1 1034706.604463: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034706.604505: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034706.604553: tracing_mark_write: E|593
SensorService-1283 ( 1151) [000] ...1 1034706.604585: tracing_mark_write: E|1151
surfaceflinger-591 ( 591) [003] ...1 1034706.604689: tracing_mark_write: E|591
SensorService-1283 ( 1151) [000] ...1 1034706.604713: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034706.604846: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [007] ...1 1034706.623654: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034706.623820: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034706.623943: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034706.624114: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [007] ...1 1034706.642974: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034706.643289: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034706.643455: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034706.643617: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034706.654133: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034706.654387: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034706.654510: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034706.654546: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034706.654778: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034706.654826: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034706.654879: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034706.655023: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [007] ...1 1034706.662308: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034706.662500: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034706.662656: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034706.662860: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [007] ...1 1034706.681550: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034706.681751: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034706.681935: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034706.682111: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [007] ...1 1034706.700651: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034706.700825: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034706.700981: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034706.701140: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034706.704393: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034706.704598: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034706.704721: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034706.704757: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034706.704944: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034706.704993: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034706.705047: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034706.705163: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [007] ...1 1034706.719723: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034706.719953: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034706.720134: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034706.720255: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034706.738188: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034706.738461: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034706.738597: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034706.738635: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034706.738844: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034706.738894: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034706.738952: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034706.739126: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [007] ...1 1034706.739325: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034706.739486: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034706.739632: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034706.739775: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [007] ...1 1034706.758537: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034706.758715: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034706.758856: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034706.759047: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [007] ...1 1034706.777834: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034706.778046: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034706.778223: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034706.778408: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034706.788353: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034706.788609: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034706.788731: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034706.788766: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034706.788955: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034706.789000: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034706.789050: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034706.789180: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [007] ...1 1034706.797059: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034706.797239: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034706.797380: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034706.797549: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [007] ...1 1034706.816675: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034706.816966: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034706.817263: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034706.817449: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034706.822063: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034706.822371: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034706.822512: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034706.822553: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034706.822778: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034706.822831: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034706.822891: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034706.823049: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [007] ...1 1034706.835420: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034706.835585: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034706.835723: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034706.835881: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [007] ...1 1034706.854660: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034706.854799: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034706.854933: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034706.855047: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034706.872228: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034706.872471: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034706.872585: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034706.872619: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034706.872796: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034706.872840: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034706.872890: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034706.873031: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [007] ...1 1034706.875747: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034706.875893: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034706.876037: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034706.876184: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [007] ...1 1034706.893332: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034706.893523: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034706.893677: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034706.893854: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034706.906003: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034706.906284: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034706.906417: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034706.906457: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034706.906751: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034706.906806: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034706.906873: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034706.907080: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [007] ...1 1034706.912679: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034706.912869: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034706.913058: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034706.913300: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [007] ...1 1034706.932096: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034706.932298: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034706.932489: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034706.932672: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [007] ...1 1034706.951247: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034706.951423: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034706.951577: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034706.951736: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034706.956212: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034706.956485: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034706.956682: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034706.956720: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034706.956924: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034706.956973: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034706.957031: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034706.957206: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [007] ...1 1034706.970503: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034706.970701: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034706.970879: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034706.971058: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [007] ...1 1034706.989548: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034706.989781: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034706.990024: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034706.990223: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034707.006850: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034707.007204: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034707.007341: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034707.007381: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034707.007601: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034707.007652: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034707.007714: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034707.007908: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [007] ...1 1034707.010765: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034707.010928: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034707.011079: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034707.011225: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [007] ...1 1034707.028189: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034707.028380: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034707.028528: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034707.028700: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034707.040285: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034707.040542: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034707.040659: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034707.040692: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034707.040867: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034707.040911: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034707.040959: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034707.041072: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [007] ...1 1034707.047269: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034707.047436: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034707.047561: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034707.047726: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [007] ...1 1034707.066636: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034707.066853: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034707.067037: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034707.067227: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [007] ...1 1034707.085885: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034707.086062: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034707.086213: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034707.086380: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034707.090388: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034707.090619: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034707.090747: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034707.090783: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034707.090993: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034707.091039: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034707.091092: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034707.091238: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [007] ...1 1034707.105013: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034707.105165: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034707.105299: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034707.105439: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034707.124020: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034707.124275: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
sensors@1.0-se-778 ( 778) [007] ...1 1034707.124306: tracing_mark_write: E|778
composer@2.1-s-593 ( 593) [000] ...1 1034707.124448: tracing_mark_write: B|593|HWCSession::PresentDisplay::
SensorService-1283 ( 1151) [003] ...1 1034707.124453: tracing_mark_write: E|1151
composer@2.1-s-593 ( 593) [000] ...1 1034707.124482: tracing_mark_write: B|593|HWDevice::Commit::
SensorService-1283 ( 1151) [003] ...1 1034707.124584: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
composer@2.1-s-593 ( 593) [000] ...1 1034707.124667: tracing_mark_write: E|593
sensors@1.0-se-778 ( 778) [007] ...1 1034707.124712: tracing_mark_write: B|778|HIDL::ISensors::poll::server
composer@2.1-s-593 ( 593) [000] ...1 1034707.124713: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034707.124766: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034707.124893: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [007] ...1 1034707.143745: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034707.143933: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034707.144101: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034707.144279: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [007] ...1 1034707.163286: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034707.163478: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034707.163666: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034707.163829: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034707.174316: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034707.174582: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034707.174705: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034707.174741: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034707.174937: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034707.174985: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034707.175036: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034707.175166: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [007] ...1 1034707.181956: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034707.182115: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034707.182247: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034707.182398: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [007] ...1 1034707.201483: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034707.201685: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034707.201883: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034707.202069: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [007] ...1 1034707.220546: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034707.220728: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034707.220891: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034707.221063: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034707.224709: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034707.224994: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034707.225115: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034707.225149: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034707.225337: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034707.225379: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034707.225427: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034707.225542: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [007] ...1 1034707.239983: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034707.240160: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034707.240293: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034707.240445: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034707.257964: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034707.258140: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034707.258227: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034707.258253: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034707.258388: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034707.258421: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034707.258458: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034707.258543: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034707.258929: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034707.259012: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034707.259111: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034707.259161: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [001] ...1 1034707.278217: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034707.278377: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034707.278517: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034707.278612: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034707.297476: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034707.297628: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034707.297764: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034707.297848: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034707.308390: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034707.308609: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034707.308715: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034707.308747: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034707.308918: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034707.308958: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034707.309003: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034707.309110: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034707.316842: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034707.317016: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034707.317166: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034707.317268: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034707.336431: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034707.336767: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034707.336982: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034707.337149: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034707.342154: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034707.342436: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034707.342562: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034707.342599: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034707.342801: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034707.342850: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034707.342907: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034707.343078: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034707.355169: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034707.355350: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034707.355511: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034707.355610: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034707.374418: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034707.374593: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034707.374725: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034707.374849: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034707.392203: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034707.392402: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034707.392506: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034707.392538: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034707.392701: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034707.392741: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034707.392788: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034707.392902: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034707.393588: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034707.393686: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034707.393798: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034707.393872: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034707.412918: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034707.413055: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034707.413188: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034707.413375: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034707.426135: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034707.426410: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034707.426644: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034707.426695: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034707.426981: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034707.427050: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034707.427131: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034707.427331: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034707.432410: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034707.432561: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034707.432721: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034707.432871: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [002] ...1 1034707.451497: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034707.451633: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034707.451766: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [002] ...1 1034707.451908: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034707.470694: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034707.470811: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034707.470923: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034707.471017: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034707.476273: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034707.476482: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034707.476661: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034707.476699: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034707.476899: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034707.476949: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034707.477006: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034707.477141: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034707.490146: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034707.490305: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034707.490460: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034707.490610: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034707.510133: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034707.510439: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034707.510597: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034707.510645: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034707.510921: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034707.510997: tracing_mark_write: E|593
HwBinder:778_1-1087 ( 778) [004] ...1 1034707.511046: tracing_mark_write: E|778
composer@2.1-s-593 ( 593) [001] ...1 1034707.511087: tracing_mark_write: E|593
SensorService-1283 ( 1151) [003] ...1 1034707.511251: tracing_mark_write: E|1151
surfaceflinger-591 ( 591) [000] ...1 1034707.511298: tracing_mark_write: E|591
SensorService-1283 ( 1151) [003] ...1 1034707.511435: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [004] ...1 1034707.511564: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [001] ...1 1034707.528522: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034707.528627: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034707.528719: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034707.528792: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034707.547941: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034707.548084: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034707.548207: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034707.548294: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034707.559994: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034707.560155: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034707.560242: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034707.560268: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034707.560416: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034707.560450: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034707.560490: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034707.560585: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034707.567241: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034707.567400: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034707.567527: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034707.567602: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [001] ...1 1034707.586637: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034707.586769: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034707.586882: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034707.586964: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034707.593933: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034707.594203: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034707.594341: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034707.594380: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034707.594601: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034707.594655: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034707.594718: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034707.594917: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034707.605776: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034707.605925: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034707.606069: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034707.606181: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [002] ...1 1034707.624913: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034707.625039: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034707.625147: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [002] ...1 1034707.625230: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034707.643949: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034707.644151: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034707.644243: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034707.644271: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034707.644471: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034707.644509: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034707.644552: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034707.644678: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [001] ...1 1034707.647030: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034707.647129: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034707.647240: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034707.647321: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034707.663487: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034707.663646: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034707.663786: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034707.663881: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034707.677773: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034707.678035: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034707.678163: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034707.678199: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034707.678392: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034707.678438: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034707.678495: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034707.678631: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034707.684610: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034707.684788: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034707.684931: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034707.685026: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034707.701955: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034707.702106: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034707.702229: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034707.702317: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034707.721296: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034707.721485: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034707.721645: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034707.721751: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034707.728018: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034707.728282: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034707.728412: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034707.728449: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034707.728652: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034707.728702: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034707.728758: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034707.728888: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [001] ...1 1034707.740516: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034707.740721: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034707.740887: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034707.741001: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034707.760249: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034707.760559: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034707.760828: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [002] ...1 1034707.760953: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034707.778472: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034707.778780: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034707.778914: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034707.778953: tracing_mark_write: B|593|HWDevice::Commit::
HwBinder:778_1-1087 ( 778) [002] ...1 1034707.779058: tracing_mark_write: E|778
composer@2.1-s-593 ( 593) [001] ...1 1034707.779159: tracing_mark_write: E|593
SensorService-1283 ( 1151) [003] ...1 1034707.779205: tracing_mark_write: E|1151
composer@2.1-s-593 ( 593) [001] ...1 1034707.779214: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034707.779268: tracing_mark_write: E|593
SensorService-1283 ( 1151) [003] ...1 1034707.779347: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
surfaceflinger-591 ( 591) [000] ...1 1034707.779394: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [007] ...1 1034707.779584: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034707.798096: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034707.798267: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034707.798407: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034707.798538: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034707.811828: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034707.812038: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034707.812153: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034707.812187: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034707.812351: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034707.812393: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034707.812439: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034707.812550: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034707.817477: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034707.817644: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034707.817786: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034707.817946: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034707.836651: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034707.836826: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034707.836957: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034707.837123: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034707.855833: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034707.856000: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034707.856140: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034707.856296: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [003] ...1 1034707.862450: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034707.862729: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034707.862864: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034707.862900: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034707.863097: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034707.863146: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034707.863255: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034707.863405: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034707.875406: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034707.875611: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034707.875793: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034707.875969: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034707.894444: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034707.894626: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034707.894785: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034707.894950: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034707.895865: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034707.896095: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034707.896237: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034707.896277: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034707.896498: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034707.896599: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034707.896659: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034707.896795: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034707.913839: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034707.914023: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034707.914162: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034707.914331: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034707.933328: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034707.933503: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034707.933667: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034707.933833: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034707.946306: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034707.946626: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034707.946756: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034707.946791: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034707.946988: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034707.947041: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034707.947104: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034707.947250: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034707.952335: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034707.952493: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034707.952646: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034707.952790: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034707.974634: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034707.974895: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034707.975145: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034707.975313: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [003] ...1 1034707.979722: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034707.980001: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034707.980128: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034707.980164: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034707.980363: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034707.980411: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034707.980463: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034707.980600: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034707.990728: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034707.990910: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034707.991097: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034707.991249: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034708.010157: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034708.010354: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034708.010536: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034708.010717: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034708.030384: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034708.030704: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034708.030857: tracing_mark_write: B|593|HWCSession::PresentDisplay::
sensors@1.0-se-778 ( 778) [004] ...1 1034708.030876: tracing_mark_write: E|778
composer@2.1-s-593 ( 593) [001] ...1 1034708.030904: tracing_mark_write: B|593|HWDevice::Commit::
SensorService-1283 ( 1151) [003] ...1 1034708.031035: tracing_mark_write: E|1151
composer@2.1-s-593 ( 593) [001] ...1 1034708.031153: tracing_mark_write: E|593
SensorService-1283 ( 1151) [003] ...1 1034708.031185: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
composer@2.1-s-593 ( 593) [001] ...1 1034708.031214: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034708.031285: tracing_mark_write: E|593
sensors@1.0-se-778 ( 778) [004] ...1 1034708.031325: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034708.031449: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034708.048481: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034708.048657: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034708.048792: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034708.048963: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034708.067832: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034708.068008: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034708.068186: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034708.068343: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034708.080914: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034708.081261: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034708.081452: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034708.081506: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034708.081820: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034708.081893: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034708.081970: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034708.082169: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034708.087717: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034708.087902: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034708.088091: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034708.088252: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034708.106725: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034708.107066: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034708.107440: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034708.107685: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034708.114686: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034708.115100: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034708.115318: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034708.115384: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034708.115725: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034708.115813: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034708.115905: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034708.116151: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034708.125811: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034708.126016: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034708.126234: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034708.126421: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034708.145266: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034708.145470: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034708.145697: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034708.145920: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034708.163995: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034708.164205: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034708.164438: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034708.164635: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034708.164799: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034708.165138: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034708.165342: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034708.165404: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034708.165722: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034708.165799: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034708.165884: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034708.166096: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034708.183528: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034708.183772: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034708.183994: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034708.184205: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034708.198696: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034708.199091: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034708.199307: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034708.199371: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034708.199725: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034708.199808: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034708.199983: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034708.200244: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [006] ...1 1034708.203474: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034708.203706: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034708.203937: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [006] ...1 1034708.204133: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [006] ...1 1034708.221864: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034708.222042: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034708.222183: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [006] ...1 1034708.222360: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [006] ...1 1034708.241220: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034708.241461: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034708.241690: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [006] ...1 1034708.241889: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034708.248684: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034708.248991: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034708.249172: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034708.249225: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034708.249522: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034708.249595: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034708.249678: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034708.249966: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [006] ...1 1034708.260521: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034708.260696: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034708.260848: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [006] ...1 1034708.261009: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [006] ...1 1034708.280323: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034708.280584: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034708.280784: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [006] ...1 1034708.280967: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034708.298598: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034708.298882: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034708.299021: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034708.299061: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034708.299293: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034708.299346: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034708.299406: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034708.299562: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [006] ...1 1034708.301860: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034708.302019: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034708.302162: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [006] ...1 1034708.302322: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [006] ...1 1034708.319380: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034708.319552: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034708.319684: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [006] ...1 1034708.319836: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034708.332462: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034708.332813: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034708.332985: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034708.333036: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034708.333367: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034708.333434: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034708.333507: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034708.333692: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [006] ...1 1034708.337469: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034708.337626: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034708.337778: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [006] ...1 1034708.337945: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [006] ...1 1034708.356826: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034708.357008: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034708.357214: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [006] ...1 1034708.357409: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [006] ...1 1034708.377183: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034708.377368: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034708.377560: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [006] ...1 1034708.377758: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034708.382598: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034708.382931: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034708.383087: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034708.383131: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034708.383444: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034708.383505: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034708.383571: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034708.383748: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [006] ...1 1034708.395196: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034708.395395: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034708.395564: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [006] ...1 1034708.395743: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [006] ...1 1034708.414292: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034708.414465: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034708.414597: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [006] ...1 1034708.414764: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034708.415944: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034708.416159: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034708.416275: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034708.416309: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034708.416509: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034708.416620: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034708.416679: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034708.416805: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [006] ...1 1034708.433538: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034708.433720: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034708.433860: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [006] ...1 1034708.434028: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [006] ...1 1034708.452891: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034708.453123: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034708.453387: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [006] ...1 1034708.453551: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034708.466492: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034708.466848: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034708.466990: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034708.467036: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034708.467274: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034708.467331: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034708.467396: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034708.467564: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [006] ...1 1034708.472123: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034708.472295: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034708.472460: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [006] ...1 1034708.472619: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [006] ...1 1034708.491886: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034708.492076: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034708.492225: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [006] ...1 1034708.492404: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034708.500034: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034708.500310: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034708.500443: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034708.500485: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034708.500700: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034708.500754: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034708.500818: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034708.500993: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [006] ...1 1034708.510584: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034708.510751: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034708.510895: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [006] ...1 1034708.511056: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [006] ...1 1034708.529943: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034708.530107: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034708.530243: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [006] ...1 1034708.530406: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [006] ...1 1034708.549105: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034708.549284: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034708.549435: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [006] ...1 1034708.549611: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034708.550309: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034708.550540: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034708.550674: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034708.550712: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034708.550912: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034708.550960: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034708.551014: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034708.551151: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [006] ...1 1034708.568326: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034708.568510: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034708.568647: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [006] ...1 1034708.568811: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [006] ...1 1034708.587541: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034708.587711: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034708.587848: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [006] ...1 1034708.588007: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034708.600791: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034708.601077: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034708.601219: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034708.601260: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034708.601470: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034708.601521: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034708.601580: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034708.601711: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [006] ...1 1034708.606792: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034708.606939: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034708.607119: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [006] ...1 1034708.607264: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [006] ...1 1034708.627655: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034708.627812: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034708.627948: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [006] ...1 1034708.628111: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034708.634247: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034708.634520: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034708.634654: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034708.634694: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034708.634907: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034708.634961: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034708.635018: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034708.635166: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [006] ...1 1034708.645463: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034708.645619: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034708.645751: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [006] ...1 1034708.645908: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [006] ...1 1034708.664616: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034708.664793: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034708.664942: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [006] ...1 1034708.665111: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [006] ...1 1034708.683947: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034708.684152: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034708.684315: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [006] ...1 1034708.684497: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [003] ...1 1034708.684702: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034708.684952: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034708.685099: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034708.685141: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034708.685379: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034708.685438: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034708.685502: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034708.685658: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [006] ...1 1034708.703251: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034708.703450: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034708.703595: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [006] ...1 1034708.703770: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [003] ...1 1034708.718054: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034708.718263: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034708.718375: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034708.718408: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034708.718590: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034708.718630: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034708.718678: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034708.718794: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [006] ...1 1034708.722297: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034708.722442: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034708.722549: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [006] ...1 1034708.722693: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [006] ...1 1034708.741599: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034708.741773: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034708.741908: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [006] ...1 1034708.742074: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [006] ...1 1034708.761131: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034708.761330: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034708.761497: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [006] ...1 1034708.761672: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034708.768604: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034708.768904: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034708.769048: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034708.769090: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034708.769347: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034708.769410: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034708.769473: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034708.769632: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [006] ...1 1034708.780130: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034708.780298: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034708.780463: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [006] ...1 1034708.780649: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [006] ...1 1034708.799339: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034708.799593: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034708.799824: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [006] ...1 1034708.800077: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034708.801725: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034708.801979: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034708.802084: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034708.802114: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034708.802277: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034708.802318: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034708.802364: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034708.802482: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [006] ...1 1034708.818615: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034708.818783: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034708.818908: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [006] ...1 1034708.819075: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [006] ...1 1034708.837762: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034708.837958: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034708.838102: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [002] ...1 1034708.838290: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034708.852516: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034708.852828: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034708.852979: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034708.853023: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034708.853314: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034708.853375: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034708.853444: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034708.853638: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034708.857264: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034708.857431: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034708.857612: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034708.857713: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034708.876577: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034708.876775: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034708.876962: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034708.877074: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [001] ...1 1034708.895788: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034708.895996: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034708.896152: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034708.896251: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034708.902865: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034708.903164: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034708.903410: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034708.903455: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034708.903697: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034708.903749: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034708.903805: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034708.903955: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [003] ...1 1034708.914807: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034708.914991: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034708.915135: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [003] ...1 1034708.915221: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034708.934202: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034708.934367: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034708.934508: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034708.934590: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034708.936111: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034708.936318: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034708.936445: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034708.936484: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034708.936767: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034708.936816: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034708.936870: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034708.936995: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034708.953498: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034708.953696: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034708.953850: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034708.953962: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034708.972977: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034708.973175: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034708.973434: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034708.973553: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034708.986695: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034708.986973: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034708.987113: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034708.987152: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034708.987370: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034708.987421: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034708.987481: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034708.987647: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [001] ...1 1034708.992187: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034708.992337: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034708.992494: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034708.992597: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034709.011336: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034709.011564: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034709.011779: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034709.011930: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034709.020274: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034709.020557: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034709.020718: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034709.020764: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034709.020989: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034709.021047: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034709.021114: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034709.021260: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [001] ...1 1034709.030443: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034709.030614: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034709.030799: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034709.030914: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034709.049770: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034709.049972: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034709.050134: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034709.050250: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [001] ...1 1034709.069019: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034709.069211: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034709.069392: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034709.069541: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034709.070655: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034709.070949: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034709.071113: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034709.071162: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034709.071422: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034709.071489: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034709.071562: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034709.071782: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [001] ...1 1034709.088081: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034709.088283: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034709.088459: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034709.088587: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034709.104202: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034709.104512: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034709.104655: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034709.104695: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034709.104908: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034709.104960: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034709.105018: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034709.105165: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [001] ...1 1034709.107458: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034709.107601: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034709.107751: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034709.107852: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034709.126853: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034709.127055: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034709.127322: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034709.127445: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [001] ...1 1034709.146069: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034709.146223: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034709.146368: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034709.146464: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034709.154297: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034709.154555: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034709.154679: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034709.154718: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034709.154911: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034709.154957: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034709.155010: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034709.155144: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034709.165428: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034709.165583: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034709.165754: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034709.165854: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [001] ...1 1034709.185978: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034709.186189: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034709.186459: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034709.186629: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [001] ...1 1034709.203721: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034709.203941: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034709.204075: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034709.204181: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034709.204770: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034709.204983: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034709.205122: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034709.205164: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034709.205378: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034709.205432: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034709.205493: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034709.205646: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034709.222890: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034709.223039: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034709.223167: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034709.223319: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034709.238300: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034709.238596: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034709.238739: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034709.238780: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034709.239008: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034709.239058: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034709.239113: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034709.239254: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [001] ...1 1034709.242241: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034709.242443: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034709.242653: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034709.242752: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034709.261462: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034709.261609: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034709.261742: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034709.261835: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034709.280659: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034709.280804: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034709.280941: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034709.281026: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034709.288819: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034709.289127: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034709.289284: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034709.289333: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034709.289576: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034709.289637: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034709.289707: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034709.289932: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034709.300003: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034709.300189: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034709.300378: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034709.300503: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [004] ...1 1034709.319516: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034709.320028: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034709.320439: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [004] ...1 1034709.320694: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [003] ...1 1034709.322530: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034709.322855: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034709.323033: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034709.323086: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034709.323478: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034709.323547: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034709.323626: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034709.323826: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [002] ...1 1034709.338723: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034709.338908: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034709.339047: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [002] ...1 1034709.339141: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [001] ...1 1034709.357624: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034709.357754: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034709.357862: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034709.357937: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034709.372390: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034709.372638: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034709.372757: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034709.372791: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034709.372974: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034709.373016: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034709.373065: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034709.373179: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [003] ...1 1034709.377141: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034709.377286: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034709.377424: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [003] ...1 1034709.377512: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [002] ...1 1034709.396469: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034709.396676: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034709.396840: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [002] ...1 1034709.396942: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [001] ...1 1034709.415571: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034709.415736: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034709.415903: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034709.416008: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034709.422995: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034709.423399: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034709.423563: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034709.423612: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034709.423867: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034709.423932: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034709.424004: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034709.424188: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [001] ...1 1034709.434724: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034709.434925: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034709.435116: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034709.435235: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [001] ...1 1034709.454205: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034709.454412: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034709.454598: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [006] ...1 1034709.454818: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034709.456526: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034709.456851: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034709.457016: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034709.457064: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034709.457311: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034709.457371: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034709.457436: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034709.457589: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034709.473330: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034709.473561: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034709.473698: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034709.473885: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [006] ...1 1034709.492421: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034709.492608: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034709.492736: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [006] ...1 1034709.492902: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034709.506704: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034709.506951: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034709.507072: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034709.507107: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034709.507290: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034709.507336: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034709.507387: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034709.507507: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [006] ...1 1034709.511696: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034709.511837: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034709.512022: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [006] ...1 1034709.512132: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [006] ...1 1034709.533463: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034709.533713: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034709.533970: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [006] ...1 1034709.534108: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034709.540450: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034709.540725: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034709.540888: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034709.540934: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034709.541191: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034709.541255: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034709.541325: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034709.541532: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [006] ...1 1034709.550500: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034709.550715: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034709.550921: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [006] ...1 1034709.551113: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [006] ...1 1034709.569586: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034709.569794: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034709.570066: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [006] ...1 1034709.570249: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [006] ...1 1034709.588728: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034709.588941: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034709.589128: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [006] ...1 1034709.589320: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034709.590777: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034709.591061: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034709.591226: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034709.591275: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034709.591538: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034709.591600: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034709.591670: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034709.591836: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [006] ...1 1034709.608029: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034709.608246: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034709.608418: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [006] ...1 1034709.608604: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [003] ...1 1034709.624128: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034709.624372: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034709.624492: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034709.624527: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034709.624719: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034709.624763: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034709.624813: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034709.624941: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [006] ...1 1034709.627206: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034709.627365: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034709.627508: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [006] ...1 1034709.627664: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [006] ...1 1034709.646468: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034709.646653: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034709.646797: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [006] ...1 1034709.647033: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [006] ...1 1034709.665624: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034709.665792: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034709.665907: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [006] ...1 1034709.666034: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034709.674353: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034709.674578: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034709.674691: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034709.674725: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034709.674903: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034709.674945: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034709.674994: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034709.675097: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [006] ...1 1034709.685078: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034709.685238: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034709.685380: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [006] ...1 1034709.685497: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [006] ...1 1034709.704269: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034709.704369: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034709.704464: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034709.704555: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034709.707762: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034709.707914: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034709.708000: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034709.708026: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034709.708157: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034709.708192: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034709.708231: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034709.708315: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [001] ...1 1034709.723268: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034709.723369: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034709.723463: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034709.723551: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [001] ...1 1034709.743008: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034709.743096: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034709.743247: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034709.743350: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034709.758194: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034709.758385: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034709.758478: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034709.758506: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034709.758649: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034709.758683: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034709.758724: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034709.758825: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [003] ...1 1034709.761696: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034709.761812: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034709.761905: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [003] ...1 1034709.761978: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [002] ...1 1034709.781019: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034709.781147: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034709.781238: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [002] ...1 1034709.781303: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034709.791607: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034709.791747: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034709.791815: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034709.791835: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034709.791955: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034709.791984: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034709.792014: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034709.792094: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [004] ...1 1034709.800496: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034709.800661: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034709.800836: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [004] ...1 1034709.800967: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034709.819587: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034709.819698: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034709.819796: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034709.819891: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034709.838952: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034709.839026: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034709.839121: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034709.839189: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034709.842119: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034709.842301: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034709.842418: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034709.842452: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034709.842627: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034709.842674: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034709.842723: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034709.842834: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034709.858532: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034709.858739: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034709.858947: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034709.859105: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034709.876044: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034709.876318: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034709.876480: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034709.876527: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034709.877015: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034709.877103: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034709.877180: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034709.877433: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [001] ...1 1034709.877780: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034709.877937: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034709.878129: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034709.878274: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034709.896732: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034709.896863: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034709.897196: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034709.897327: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034709.915949: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034709.916074: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034709.916231: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034709.916358: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034709.926312: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034709.926586: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034709.926744: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034709.926929: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034709.927175: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034709.927235: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034709.927304: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034709.927487: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034709.935277: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034709.935407: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034709.935544: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034709.935680: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034709.954274: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034709.954576: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034709.954689: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034709.954824: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034709.959971: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034709.960195: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034709.960326: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034709.960365: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034709.960750: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034709.960811: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034709.960876: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034709.961056: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034709.973584: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034709.973856: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034709.973982: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034709.974111: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034709.992759: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034709.992878: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034709.992991: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034709.993315: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034710.010393: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034710.010615: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034710.010745: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034710.010782: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034710.011029: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034710.011089: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034710.011300: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034710.011475: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [001] ...1 1034710.012040: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034710.012164: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034710.012286: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034710.012559: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034710.031722: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034710.031847: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034710.031962: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034710.032093: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034710.043854: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034710.044131: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034710.044303: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034710.044353: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034710.044638: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034710.044709: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034710.044786: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034710.044981: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034710.050622: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034710.050774: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034710.050929: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034710.051073: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [001] ...1 1034710.070000: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034710.070193: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034710.070355: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034710.070512: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034710.089513: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034710.089663: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034710.089805: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034710.089940: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034710.093978: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034710.094188: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034710.094323: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034710.094361: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034710.094538: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034710.094587: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034710.094637: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034710.094759: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034710.108348: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034710.108457: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034710.108558: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034710.108623: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [003] ...1 1034710.127437: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034710.127661: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034710.127755: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034710.127782: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034710.127926: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034710.127960: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034710.128001: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034710.128094: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034710.128335: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034710.128423: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034710.128520: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034710.128575: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034710.147110: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034710.147271: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034710.147421: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034710.147573: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034710.166323: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034710.166620: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034710.166850: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034710.166991: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034710.178147: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034710.178443: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034710.178605: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034710.178650: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034710.178902: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034710.178962: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034710.179028: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034710.179192: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034710.185666: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034710.185901: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034710.186070: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034710.186172: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034710.205179: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034710.205411: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034710.205627: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034710.205752: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034710.211338: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034710.211570: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034710.211685: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034710.211719: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034710.211893: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034710.211936: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034710.211984: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034710.212094: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034710.223983: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034710.224129: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034710.224240: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034710.224308: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034710.243098: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034710.243188: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034710.243307: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034710.243375: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034710.262338: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034710.262744: tracing_mark_write: E|778
composer@2.1-s-593 ( 593) [000] ...1 1034710.262784: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
SensorService-1283 ( 1151) [002] ...1 1034710.262963: tracing_mark_write: E|1151
composer@2.1-s-593 ( 593) [000] ...1 1034710.262982: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034710.263044: tracing_mark_write: B|593|HWDevice::Commit::
SensorService-1283 ( 1151) [002] ...1 1034710.263288: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
composer@2.1-s-593 ( 593) [000] ...1 1034710.263485: tracing_mark_write: E|593
HwBinder:778_1-1087 ( 778) [001] ...1 1034710.263499: tracing_mark_write: B|778|HIDL::ISensors::poll::server
composer@2.1-s-593 ( 593) [000] ...1 1034710.263575: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034710.263645: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034710.263822: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034710.281670: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034710.281808: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034710.281942: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034710.282048: tracing_mark_write: B|778|HIDL::ISensors::poll::server
storaged-1036 ( 911) [001] ...1 1034710.282917: tracing_mark_write: B|911|HIDL::IHealth::getDiskStats::client
health@2.0-ser-744 ( 744) [001] ...1 1034710.285496: tracing_mark_write: B|744|HIDL::IHealth::getDiskStats::server
health@2.0-ser-744 ( 744) [001] ...1 1034710.285974: tracing_mark_write: E|744
storaged-1036 ( 911) [001] ...1 1034710.286870: tracing_mark_write: E|911
surfaceflinger-591 ( 591) [003] ...1 1034710.296054: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034710.296483: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034710.296763: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034710.296828: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034710.297171: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034710.297255: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034710.297355: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034710.297606: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034710.301556: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034710.301885: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034710.302160: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034710.302338: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034710.320277: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034710.320405: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034710.320517: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034710.320617: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [001] ...1 1034710.339925: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034710.340155: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034710.340375: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034710.340530: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034710.346144: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034710.346608: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034710.346764: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034710.346804: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034710.347004: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034710.347054: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034710.347110: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034710.347242: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [001] ...1 1034710.358799: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034710.358940: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034710.359059: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034710.359132: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034710.378211: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034710.378484: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034710.378726: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034710.378864: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034710.395953: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034710.396142: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034710.396243: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034710.396274: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034710.396435: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034710.396474: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034710.396520: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034710.396671: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [001] ...1 1034710.397063: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034710.397172: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034710.397286: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034710.397359: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034710.416606: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034710.416790: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034710.416933: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034710.417036: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034710.430133: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034710.430526: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034710.430713: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034710.430782: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034710.431098: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034710.431180: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034710.431264: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034710.431487: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034710.436044: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034710.436307: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034710.436587: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034710.436745: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034710.456398: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034710.456618: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034710.456787: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034710.456907: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034710.474161: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034710.474299: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034710.474410: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034710.474479: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034710.479535: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034710.479652: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034710.479720: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034710.479741: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034710.479852: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034710.479900: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034710.479931: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034710.480009: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034710.493437: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034710.493546: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034710.493791: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034710.493947: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [001] ...1 1034710.512930: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034710.513108: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034710.513352: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034710.513501: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034710.513679: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034710.513959: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034710.514145: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034710.514200: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034710.514601: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034710.514681: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034710.514762: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034710.514961: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034710.532027: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034710.532181: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034710.532331: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034710.532476: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [002] ...1 1034710.551289: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034710.551470: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034710.551639: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [002] ...1 1034710.551785: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034710.564172: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034710.564462: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034710.564608: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034710.564651: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034710.564899: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034710.564958: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034710.565028: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034710.565208: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034710.570473: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034710.570599: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034710.570739: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034710.570850: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [001] ...1 1034710.589708: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034710.589864: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034710.590091: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034710.590249: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034710.596987: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034710.597120: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034710.597203: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034710.597230: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034710.597359: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034710.597394: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034710.597431: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034710.597518: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034710.608970: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034710.609044: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034710.609129: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034710.609184: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034710.628204: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034710.628334: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034710.628457: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034710.628591: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [003] ...1 1034710.647895: tracing_mark_write: E|778
surfaceflinger-591 ( 591) [002] ...1 1034710.647903: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
SensorService-1283 ( 1151) [007] ...1 1034710.648020: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034710.648088: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
composer@2.1-s-593 ( 593) [001] ...1 1034710.648189: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
HwBinder:778_1-1087 ( 778) [003] ...1 1034710.648198: tracing_mark_write: B|778|HIDL::ISensors::poll::server
composer@2.1-s-593 ( 593) [001] ...1 1034710.648355: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034710.648405: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034710.648699: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034710.648771: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034710.648850: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [002] ...1 1034710.649072: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034710.666910: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034710.667053: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034710.667127: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [006] ...1 1034710.667214: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034710.681398: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034710.681662: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034710.681827: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034710.681876: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034710.682157: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034710.682223: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034710.682296: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034710.682475: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [006] ...1 1034710.685843: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034710.685892: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034710.685933: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [006] ...1 1034710.685963: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [006] ...1 1034710.705167: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034710.705187: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034710.705202: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [006] ...1 1034710.705222: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [006] ...1 1034710.724338: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034710.724372: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034710.724402: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [006] ...1 1034710.724428: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034710.731606: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034710.731849: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034710.731989: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034710.732042: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034710.732322: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034710.732387: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034710.732457: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034710.732692: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [006] ...1 1034710.743672: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034710.743747: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034710.743824: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [006] ...1 1034710.743894: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [006] ...1 1034710.763004: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034710.763073: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034710.763139: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [006] ...1 1034710.763188: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034710.765388: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034710.765690: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034710.765844: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034710.765888: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034710.766157: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034710.766314: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034710.766395: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034710.766705: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [006] ...1 1034710.782550: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034710.782721: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034710.782880: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034710.783048: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [006] ...1 1034710.801888: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034710.802097: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034710.802279: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034710.802470: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034710.815622: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034710.816006: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034710.816188: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034710.816234: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034710.816497: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034710.816627: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034710.816701: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034710.816900: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034710.821086: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034710.821260: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034710.821420: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034710.821575: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034710.840423: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034710.840598: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034710.840811: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034710.840960: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034710.849229: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034710.849495: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034710.849649: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034710.849693: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034710.850088: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034710.850153: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034710.850225: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034710.850418: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034710.859481: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034710.859678: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034710.859949: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034710.860098: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034710.878786: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034710.878936: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034710.879091: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034710.879229: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034710.898055: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034710.898243: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034710.898438: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034710.898590: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034710.899474: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034710.899809: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034710.900164: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034710.900209: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034710.900473: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034710.900539: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034710.900613: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034710.900823: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034710.917285: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034710.917436: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034710.917585: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034710.917714: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034710.933069: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034710.933414: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034710.933556: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034710.933598: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034710.933855: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034710.933918: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034710.933989: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034710.934183: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034710.936604: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034710.936794: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034710.937001: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034710.937153: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034710.955618: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034710.955802: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034710.955965: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034710.956103: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034710.974909: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034710.975097: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034710.975271: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034710.975425: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034710.983536: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034710.983864: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034710.984031: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034710.984080: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034710.984354: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034710.984421: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034710.984499: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034710.984703: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034710.994415: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034710.994550: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034710.994674: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034710.994794: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034711.013573: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034711.013710: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034711.013835: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034711.013941: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034711.017004: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034711.017279: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034711.017437: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034711.017486: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034711.017783: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034711.017942: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034711.018032: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034711.018267: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034711.032947: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034711.033054: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034711.033179: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034711.033307: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034711.052062: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034711.052135: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034711.052213: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034711.052277: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034711.067454: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034711.067743: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034711.067912: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034711.067964: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034711.068249: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034711.068317: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034711.068391: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034711.068588: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034711.071465: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034711.071577: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034711.071668: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034711.071775: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034711.090731: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034711.090883: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034711.091005: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034711.091116: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034711.109807: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034711.109932: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034711.110068: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034711.110156: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034711.117709: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034711.118006: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034711.118174: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034711.118223: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034711.118508: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034711.118576: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034711.118653: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034711.118888: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034711.129238: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034711.129393: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034711.129530: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034711.129622: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034711.148381: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034711.148513: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034711.148621: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034711.148694: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034711.151504: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034711.151852: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034711.152020: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034711.152076: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034711.152385: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034711.152459: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034711.152545: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034711.152762: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034711.167725: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034711.167824: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034711.167900: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034711.167957: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034711.187161: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034711.187247: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034711.187328: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034711.187382: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034711.201682: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034711.201963: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034711.202130: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034711.202178: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034711.202473: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034711.202543: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034711.202619: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034711.202820: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034711.206108: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034711.206164: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034711.206214: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034711.206253: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034711.225282: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034711.225357: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034711.225421: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034711.225457: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034711.235387: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034711.235686: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034711.235864: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034711.235917: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034711.236242: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034711.236316: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034711.236399: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034711.236667: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034711.244619: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034711.244659: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034711.244693: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] .n.1 1034711.244722: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034711.263514: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034711.263550: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034711.263587: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034711.263612: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034711.282881: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034711.282987: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034711.283076: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034711.283122: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034711.285451: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034711.285713: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034711.285868: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034711.285915: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034711.286203: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034711.286272: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034711.286349: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034711.286611: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034711.302140: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034711.302402: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034711.302625: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034711.302802: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034711.318967: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034711.319228: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034711.319380: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034711.319425: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034711.319700: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034711.319767: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034711.319850: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034711.320125: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034711.321254: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034711.321329: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034711.321404: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034711.321442: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034711.340582: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034711.340651: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034711.340709: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034711.340760: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034711.360106: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034711.360193: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034711.360269: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034711.360312: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034711.369411: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034711.369733: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034711.370059: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034711.370106: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034711.370368: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034711.370434: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034711.370508: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034711.370700: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034711.379129: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034711.379217: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034711.379287: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034711.379329: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034711.398161: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034711.398226: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034711.398281: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034711.398315: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034711.402449: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034711.402577: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034711.402641: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034711.402661: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034711.402764: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034711.402791: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034711.402820: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034711.402904: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034711.417404: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034711.417475: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034711.417532: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034711.417566: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034711.436807: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034711.436898: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034711.436988: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034711.437028: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [003] ...1 1034711.452982: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034711.453118: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034711.453180: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034711.453220: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034711.453324: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034711.453348: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034711.453376: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034711.453447: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034711.455906: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034711.455969: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034711.456020: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034711.456054: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034711.475232: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034711.475310: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034711.475363: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034711.475397: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034711.486337: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034711.486473: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034711.486555: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034711.486590: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034711.486693: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034711.486718: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034711.486751: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034711.486838: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034711.494404: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034711.494477: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034711.494531: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034711.494565: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034711.513771: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034711.513885: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034711.513971: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034711.514019: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034711.533094: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034711.533196: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034711.533295: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034711.533341: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034711.536830: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034711.536995: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034711.537086: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034711.537114: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034711.537264: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034711.537300: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034711.537338: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034711.537425: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034711.552145: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034711.552212: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034711.552266: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034711.552300: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034711.570413: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034711.570548: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034711.570613: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034711.570634: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034711.570731: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034711.570756: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034711.570783: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034711.570859: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034711.573000: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034711.573063: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034711.573118: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034711.573154: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [006] ...1 1034711.590701: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034711.590769: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034711.590820: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [006] ...1 1034711.590854: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [006] ...1 1034711.609975: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034711.610067: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034711.610153: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [006] ...1 1034711.610196: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034711.620496: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034711.620610: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034711.620671: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034711.620689: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034711.620785: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034711.620811: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034711.620839: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [002] ...1 1034711.620906: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034711.629149: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034711.629210: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034711.629262: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034711.629294: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034711.648491: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034711.648554: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034711.648609: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034711.648642: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034711.654320: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034711.654451: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034711.654512: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034711.654530: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034711.654626: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034711.654650: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034711.654679: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034711.654753: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034711.667704: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034711.667771: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034711.667825: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034711.667859: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034711.687311: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034711.687382: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034711.687434: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034711.687469: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034711.704403: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034711.704532: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034711.704594: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034711.704613: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034711.704713: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034711.704738: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034711.704766: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034711.704836: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034711.706262: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034711.706323: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034711.706374: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034711.706407: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034711.725511: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034711.725625: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034711.725708: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034711.725754: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [003] ...1 1034711.738247: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034711.738377: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034711.738437: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034711.738455: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034711.738552: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034711.738577: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034711.738605: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034711.738675: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034711.744723: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034711.744791: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034711.744844: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034711.744879: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034711.764332: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034711.764408: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034711.764464: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034711.764499: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034711.783265: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034711.783332: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034711.783388: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034711.783422: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034711.788283: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034711.788385: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034711.788447: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034711.788466: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034711.788562: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034711.788586: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034711.788612: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034711.788673: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034711.802625: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034711.802665: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034711.802699: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034711.802737: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034711.822006: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034711.822091: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034711.822156: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034711.822196: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034711.822430: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034711.822679: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034711.822827: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034711.822874: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034711.823148: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034711.823274: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034711.823357: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034711.823571: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034711.841313: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034711.841413: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034711.841506: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034711.841561: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034711.860683: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034711.860783: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034711.860873: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034711.860927: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034711.872846: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034711.873131: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034711.873349: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034711.873398: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034711.873665: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034711.873730: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034711.873806: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034711.874010: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034711.879832: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034711.879966: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034711.880054: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034711.880107: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034711.899815: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034711.899963: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034711.900073: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034711.900124: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034711.906332: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034711.906721: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034711.906865: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034711.906908: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034711.907159: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034711.907222: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034711.907292: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [002] ...1 1034711.907501: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034711.918376: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034711.918445: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034711.918508: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034711.918544: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034711.937704: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034711.937770: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034711.937990: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034711.938144: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034711.956698: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034711.956936: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034711.957067: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034711.957107: tracing_mark_write: B|593|HWDevice::Commit::
sensors@1.0-se-778 ( 778) [004] ...1 1034711.957299: tracing_mark_write: E|778
composer@2.1-s-593 ( 593) [000] ...1 1034711.957342: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034711.957398: tracing_mark_write: E|593
SensorService-1283 ( 1151) [007] ...1 1034711.957415: tracing_mark_write: E|1151
composer@2.1-s-593 ( 593) [000] ...1 1034711.957465: tracing_mark_write: E|593
SensorService-1283 ( 1151) [007] ...1 1034711.957558: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
surfaceflinger-591 ( 591) [003] ...1 1034711.957656: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034711.957678: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034711.976408: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034711.976471: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034711.976516: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034711.976581: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034711.989911: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034711.990151: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034711.990250: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034711.990279: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034711.990424: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034711.990460: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034711.990500: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034711.990591: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034711.995190: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034711.995226: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034711.995309: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034711.995428: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [005] ...1 1034712.014706: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034712.014883: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034712.015054: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [005] ...1 1034712.015218: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034712.033619: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034712.033720: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034712.033808: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034712.033881: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034712.040192: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034712.040376: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034712.040451: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034712.040474: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034712.040611: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034712.040641: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034712.040676: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034712.040751: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034712.052803: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034712.052881: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034712.052948: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034712.052990: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034712.072030: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034712.072108: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034712.072167: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034712.072203: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034712.073671: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034712.073793: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034712.073858: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034712.073878: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034712.073987: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034712.074014: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034712.074047: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034712.074133: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034712.091207: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034712.091261: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034712.091313: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034712.091345: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034712.110542: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034712.110605: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034712.110662: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034712.110697: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034712.123987: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034712.124146: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034712.124207: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034712.124225: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034712.124325: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034712.124352: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034712.124380: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034712.124475: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [006] ...1 1034712.129732: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034712.129791: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034712.129842: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [006] ...1 1034712.129899: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [006] ...1 1034712.149032: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034712.149087: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034712.149141: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [006] ...1 1034712.149175: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034712.157527: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034712.157655: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034712.157719: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034712.157739: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034712.157840: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034712.157865: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034712.157896: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034712.157977: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034712.168267: tracing_mark_write: E|778
SensorService-1283 ( 1151) [007] ...1 1034712.168330: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [007] ...1 1034712.168382: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034712.168416: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [007] ...1 1034712.187485: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034712.187558: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034712.187630: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034712.187679: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [007] ...1 1034712.206818: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034712.206892: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034712.206964: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034712.207012: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034712.207791: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034712.207905: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034712.207969: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034712.207988: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034712.208091: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034712.208117: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034712.208144: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034712.208217: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034712.226100: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034712.226197: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034712.226274: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034712.226352: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034712.241446: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034712.241580: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034712.241646: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034712.241664: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034712.241770: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034712.241797: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034712.241827: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034712.241915: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034712.245379: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034712.245477: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034712.245557: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034712.245639: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034712.264660: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034712.264783: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034712.264865: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034712.264965: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034712.283892: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034712.283986: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034712.284062: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034712.284159: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034712.291745: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034712.291876: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034712.291941: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034712.291960: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034712.292064: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034712.292090: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034712.292119: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034712.292191: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034712.303120: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034712.303258: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034712.303351: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034712.303438: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034712.322584: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034712.322696: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034712.322790: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034712.322880: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034712.325380: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034712.325527: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034712.325604: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034712.325627: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034712.325747: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034712.325776: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034712.325807: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034712.325881: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034712.342105: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034712.342278: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034712.342360: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034712.342472: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034712.360910: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034712.361036: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034712.361148: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034712.361212: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034712.375850: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034712.376041: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034712.376129: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034712.376156: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034712.376300: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034712.376333: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034712.376371: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034712.376452: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034712.380405: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034712.380520: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034712.380616: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034712.380675: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034712.399665: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034712.399791: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034712.399921: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034712.399979: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034712.409411: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034712.409599: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034712.409680: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034712.409703: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034712.409834: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034712.409914: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034712.409948: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034712.410048: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034712.418893: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034712.419022: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034712.419126: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034712.419188: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034712.438048: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034712.438162: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034712.438254: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034712.438314: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034712.457329: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034712.457438: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034712.457537: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034712.457596: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034712.459604: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034712.459742: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034712.459820: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034712.459843: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034712.460033: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034712.460062: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034712.460095: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034712.460167: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034712.476426: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034712.476556: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034712.476630: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034712.476688: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034712.493321: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034712.493516: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034712.493605: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034712.493631: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034712.493768: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034712.493802: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034712.493840: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034712.493923: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034712.495753: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034712.495864: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034712.495968: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034712.496042: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034712.515027: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034712.515153: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034712.515263: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034712.515332: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034712.534371: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034712.534525: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034712.534702: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034712.534855: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034712.543715: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034712.543930: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034712.544043: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034712.544075: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034712.544249: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034712.544288: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034712.544334: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034712.544439: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034712.554234: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034712.554367: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034712.554483: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034712.554549: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034712.573196: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034712.573301: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034712.573445: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034712.573542: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034712.577253: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034712.577453: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034712.577582: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034712.577622: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034712.577814: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034712.577862: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034712.577914: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034712.578012: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034712.592382: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034712.592527: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034712.592707: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034712.592842: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034712.611350: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034712.611475: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034712.611617: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034712.611740: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034712.628015: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034712.628320: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034712.628507: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034712.628570: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034712.628891: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034712.628973: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034712.629058: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034712.629279: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034712.630774: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034712.630918: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034712.631103: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034712.631263: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [001] ...1 1034712.650124: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034712.650284: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034712.650413: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034712.650491: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034712.661299: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034712.661600: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034712.661739: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034712.661778: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034712.661996: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034712.662046: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034712.662102: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034712.662229: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034712.669203: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034712.669359: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034712.669531: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034712.669608: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [001] ...1 1034712.688301: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034712.688459: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034712.688616: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034712.688767: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034712.707382: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034712.707445: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034712.707515: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034712.707564: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034712.711214: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034712.711329: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034712.711404: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034712.711427: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034712.711543: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034712.711571: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034712.711602: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034712.711671: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034712.726827: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034712.726992: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034712.727211: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034712.727358: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [003] ...1 1034712.746321: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034712.746691: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034712.746920: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [003] ...1 1034712.747109: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034712.762011: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034712.762254: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034712.762388: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034712.762427: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034712.762620: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034712.762668: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034712.762722: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034712.762836: tracing_mark_write: E|591
surfaceflinger-668 ( 591) [001] ...1 1034712.763242: tracing_mark_write: B|591|HIDL::IComposerClient::setVsyncEnabled::client
composer@2.1-s-593 ( 593) [001] ...1 1034712.763331: tracing_mark_write: B|593|HIDL::IComposerClient::setVsyncEnabled::server
composer@2.1-s-593 ( 593) [001] ...1 1034712.763344: tracing_mark_write: C|593|SetVsyncState |1
composer@2.1-s-593 ( 593) [001] ...1 1034712.763352: tracing_mark_write: B|593|HWPrimary::SetVSyncState::
composer@2.1-s-593 ( 593) [001] ...1 1034712.764696: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034712.764705: tracing_mark_write: E|593
surfaceflinger-668 ( 591) [001] ...1 1034712.764734: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034712.765197: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034712.765293: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034712.765415: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034712.765467: tracing_mark_write: B|778|HIDL::ISensors::poll::server
SDM_EventThrea-634 ( 593) [000] ...1 1034712.772497: tracing_mark_write: B|593|HWCCallbacks::Vsync::
SDM_EventThrea-634 ( 593) [000] ...1 1034712.772505: tracing_mark_write: B|593|HIDL::IComposerCallback::onVsync::client
SDM_EventThrea-634 ( 593) [000] ...1 1034712.772605: tracing_mark_write: E|593
SDM_EventThrea-634 ( 593) [000] ...1 1034712.772613: tracing_mark_write: E|593
HwBinder:591_1-620 ( 591) [001] ...1 1034712.772641: tracing_mark_write: B|591|HIDL::IComposerCallback::onVsync::server
HwBinder:591_1-620 ( 591) [001] ...1 1034712.772672: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034712.784755: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034712.784908: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034712.785084: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034712.785225: tracing_mark_write: B|778|HIDL::ISensors::poll::server
SDM_EventThrea-634 ( 593) [000] ...1 1034712.789294: tracing_mark_write: B|593|HWCCallbacks::Vsync::
SDM_EventThrea-634 ( 593) [000] ...1 1034712.789309: tracing_mark_write: B|593|HIDL::IComposerCallback::onVsync::client
SDM_EventThrea-634 ( 593) [000] ...1 1034712.789379: tracing_mark_write: E|593
SDM_EventThrea-634 ( 593) [000] ...1 1034712.789393: tracing_mark_write: E|593
HwBinder:591_1-620 ( 591) [001] ...1 1034712.789418: tracing_mark_write: B|591|HIDL::IComposerCallback::onVsync::server
HwBinder:591_1-620 ( 591) [001] ...1 1034712.789440: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034712.795787: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034712.795955: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034712.796072: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034712.796106: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034712.796300: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034712.796351: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034712.796409: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034712.796580: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034712.804289: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034712.804507: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034712.804724: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034712.804881: tracing_mark_write: B|778|HIDL::ISensors::poll::server
SDM_EventThrea-634 ( 593) [000] ...1 1034712.806169: tracing_mark_write: B|593|HWCCallbacks::Vsync::
SDM_EventThrea-634 ( 593) [000] ...1 1034712.806188: tracing_mark_write: B|593|HIDL::IComposerCallback::onVsync::client
SDM_EventThrea-634 ( 593) [000] ...1 1034712.806297: tracing_mark_write: E|593
SDM_EventThrea-634 ( 593) [000] ...1 1034712.806319: tracing_mark_write: E|593
HwBinder:591_1-620 ( 591) [001] ...1 1034712.806354: tracing_mark_write: B|591|HIDL::IComposerCallback::onVsync::server
HwBinder:591_1-620 ( 591) [001] ...1 1034712.806387: tracing_mark_write: E|591
SDM_EventThrea-634 ( 593) [000] ...1 1034712.822955: tracing_mark_write: B|593|HWCCallbacks::Vsync::
SDM_EventThrea-634 ( 593) [000] ...1 1034712.822982: tracing_mark_write: B|593|HIDL::IComposerCallback::onVsync::client
SDM_EventThrea-634 ( 593) [000] ...1 1034712.823154: tracing_mark_write: E|593
SDM_EventThrea-634 ( 593) [000] ...1 1034712.823180: tracing_mark_write: E|593
HwBinder:591_1-620 ( 591) [001] ...1 1034712.823267: tracing_mark_write: B|591|HIDL::IComposerCallback::onVsync::server
HwBinder:591_1-620 ( 591) [001] ...1 1034712.823305: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034712.825489: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034712.825681: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034712.825902: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034712.826052: tracing_mark_write: B|778|HIDL::ISensors::poll::server
SDM_EventThrea-634 ( 593) [000] ...1 1034712.839756: tracing_mark_write: B|593|HWCCallbacks::Vsync::
SDM_EventThrea-634 ( 593) [000] ...1 1034712.839785: tracing_mark_write: B|593|HIDL::IComposerCallback::onVsync::client
SDM_EventThrea-634 ( 593) [000] ...1 1034712.839992: tracing_mark_write: E|593
SDM_EventThrea-634 ( 593) [000] ...1 1034712.840019: tracing_mark_write: E|593
HwBinder:591_1-620 ( 591) [001] ...1 1034712.840058: tracing_mark_write: B|591|HIDL::IComposerCallback::onVsync::server
HwBinder:591_1-620 ( 591) [001] ...1 1034712.840097: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [001] ...1 1034712.842775: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034712.842990: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034712.843309: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034712.843473: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034712.847091: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034712.847445: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034712.847644: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034712.847703: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034712.848024: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034712.848106: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034712.848199: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034712.848453: tracing_mark_write: E|591
SDM_EventThrea-634 ( 593) [000] ...1 1034712.856506: tracing_mark_write: B|593|HWCCallbacks::Vsync::
SDM_EventThrea-634 ( 593) [000] ...1 1034712.856526: tracing_mark_write: B|593|HIDL::IComposerCallback::onVsync::client
SDM_EventThrea-634 ( 593) [000] ...1 1034712.856707: tracing_mark_write: E|593
SDM_EventThrea-634 ( 593) [000] ...1 1034712.856730: tracing_mark_write: E|593
HwBinder:591_1-620 ( 591) [001] ...1 1034712.856773: tracing_mark_write: B|591|HIDL::IComposerCallback::onVsync::server
HwBinder:591_1-620 ( 591) [001] ...1 1034712.856912: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [002] ...1 1034712.861923: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034712.862141: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034712.862400: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [004] ...1 1034712.862657: tracing_mark_write: B|778|HIDL::ISensors::poll::server
SDM_EventThrea-634 ( 593) [000] ...1 1034712.873550: tracing_mark_write: B|593|HWCCallbacks::Vsync::
SDM_EventThrea-634 ( 593) [000] ...1 1034712.873580: tracing_mark_write: B|593|HIDL::IComposerCallback::onVsync::client
SDM_EventThrea-634 ( 593) [000] ...1 1034712.873770: tracing_mark_write: E|593
SDM_EventThrea-634 ( 593) [000] ...1 1034712.873809: tracing_mark_write: E|593
HwBinder:591_1-620 ( 591) [001] ...1 1034712.873944: tracing_mark_write: B|591|HIDL::IComposerCallback::onVsync::server
HwBinder:591_1-620 ( 591) [001] ...1 1034712.874087: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034712.880427: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034712.880710: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034712.880890: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034712.880943: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034712.881219: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034712.881285: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034712.881367: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034712.881544: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [001] ...1 1034712.882068: tracing_mark_write: E|778
surfaceflinger-668 ( 591) [001] ...1 1034712.882241: tracing_mark_write: B|591|HIDL::IComposerClient::setVsyncEnabled::client
SensorService-1283 ( 1151) [006] ...1 1034712.882315: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034712.882547: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034712.882724: tracing_mark_write: B|778|HIDL::ISensors::poll::server
composer@2.1-s-593 ( 593) [001] ...1 1034712.882810: tracing_mark_write: B|593|HIDL::IComposerClient::setVsyncEnabled::server
composer@2.1-s-593 ( 593) [001] ...1 1034712.882832: tracing_mark_write: C|593|SetVsyncState |0
composer@2.1-s-593 ( 593) [001] ...1 1034712.882851: tracing_mark_write: B|593|HWPrimary::SetVSyncState::
composer@2.1-s-593 ( 593) [001] ...1 1034712.882887: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034712.882908: tracing_mark_write: E|593
surfaceflinger-668 ( 591) [001] ...1 1034712.882991: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034712.900376: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034712.900537: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034712.900684: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034712.900824: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034712.919749: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034712.919991: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034712.920146: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034712.920290: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034712.930686: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034712.931044: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034712.931233: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034712.931289: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034712.931580: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034712.931654: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034712.931735: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034712.931939: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [001] ...1 1034712.938776: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034712.938936: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034712.939067: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034712.939205: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034712.958334: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034712.958586: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034712.958759: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034712.958936: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034712.964027: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034712.964329: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034712.964502: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034712.964554: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034712.964823: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034712.964890: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034712.964963: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034712.965139: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034712.977371: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034712.977537: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034712.977699: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034712.977834: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034712.996692: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034712.996872: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034712.997017: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034712.997170: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034713.014505: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034713.014904: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034713.015104: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034713.015161: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034713.015469: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034713.015546: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034713.015634: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034713.015855: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [003] ...1 1034713.016054: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034713.016229: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034713.016382: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [003] ...1 1034713.016605: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [002] ...1 1034713.035224: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034713.035404: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034713.035530: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [002] ...1 1034713.035679: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [001] ...1 1034713.054548: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034713.054730: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034713.054873: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034713.055030: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034713.064817: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034713.065150: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034713.065342: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034713.065395: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034713.065686: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034713.065757: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034713.065836: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034713.066064: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [001] ...1 1034713.073795: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034713.073950: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034713.074071: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034713.074212: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034713.093055: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034713.093364: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034713.093533: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034713.093675: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034713.098324: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034713.098645: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034713.098825: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034713.098879: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034713.099161: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034713.099231: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034713.099309: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034713.099496: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034713.112188: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034713.112353: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034713.112490: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034713.112626: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [001] ...1 1034713.131594: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034713.131791: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034713.131931: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034713.132087: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034713.148721: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034713.149080: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034713.149271: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034713.149327: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034713.149619: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034713.149690: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034713.149771: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034713.150078: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [001] ...1 1034713.153462: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034713.153613: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034713.153756: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034713.153904: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [001] ...1 1034713.169984: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034713.170149: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034713.170262: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034713.170399: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034713.182163: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034713.182513: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034713.182666: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034713.182709: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034713.182946: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034713.183002: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034713.183068: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034713.183271: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [001] ...1 1034713.189022: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034713.189159: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034713.189267: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034713.189376: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [001] ...1 1034713.208372: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034713.208515: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034713.208619: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034713.208720: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034713.227599: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034713.227774: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034713.227862: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034713.227978: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034713.232558: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034713.232898: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034713.233071: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034713.233122: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034713.233428: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034713.233492: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034713.233569: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034713.233752: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [002] ...1 1034713.246962: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034713.247162: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034713.247257: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [002] ...1 1034713.247352: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034713.266045: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034713.266404: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034713.266562: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034713.266598: tracing_mark_write: B|593|HWDevice::Commit::
HwBinder:778_1-1087 ( 778) [002] ...1 1034713.266756: tracing_mark_write: E|778
composer@2.1-s-593 ( 593) [000] ...1 1034713.266797: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034713.266843: tracing_mark_write: E|593
SensorService-1283 ( 1151) [006] ...1 1034713.266866: tracing_mark_write: E|1151
composer@2.1-s-593 ( 593) [000] ...1 1034713.266890: tracing_mark_write: E|593
SensorService-1283 ( 1151) [006] ...1 1034713.266955: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
surfaceflinger-591 ( 591) [001] ...1 1034713.267003: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [002] ...1 1034713.267030: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [001] ...1 1034713.285043: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034713.285142: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034713.285219: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034713.285285: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [001] ...1 1034713.304303: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034713.304395: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034713.304516: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034713.304588: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034713.315907: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034713.316081: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034713.316175: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034713.316203: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034713.316346: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034713.316383: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034713.316425: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034713.316515: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034713.323608: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034713.323716: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034713.323868: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034713.323965: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034713.342812: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034713.342936: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034713.343042: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034713.343191: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034713.349688: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034713.349952: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034713.350080: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034713.350120: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034713.350351: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034713.350407: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034713.350471: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034713.350618: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034713.362048: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034713.362170: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034713.362265: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034713.362390: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034713.381841: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034713.381982: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034713.382082: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034713.382206: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034713.400556: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034713.400883: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034713.401065: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034713.401118: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034713.401433: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034713.401515: tracing_mark_write: E|593
HwBinder:778_1-1087 ( 778) [000] ...1 1034713.401602: tracing_mark_write: E|778
composer@2.1-s-593 ( 593) [001] ...1 1034713.401603: tracing_mark_write: E|593
SensorService-1283 ( 1151) [006] ...1 1034713.401719: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034713.401782: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034713.401868: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [003] ...1 1034713.401995: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [006] ...1 1034713.420099: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034713.420292: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034713.420511: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [006] ...1 1034713.420689: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [006] ...1 1034713.439228: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034713.439447: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034713.439710: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [006] ...1 1034713.439896: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034713.450848: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034713.451185: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034713.451369: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034713.451426: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034713.451742: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034713.451817: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034713.451904: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034713.452123: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [006] ...1 1034713.458496: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034713.458696: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034713.458942: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [006] ...1 1034713.459091: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034713.478548: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034713.478821: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034713.479062: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034713.479262: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034713.484522: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034713.484905: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034713.485112: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034713.485169: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034713.485480: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034713.485558: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034713.485644: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034713.485863: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034713.497074: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034713.497265: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034713.497412: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034713.497534: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034713.516254: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034713.516438: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034713.516637: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034713.516803: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034713.534448: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034713.534649: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034713.534763: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034713.534796: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034713.534979: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034713.535026: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034713.535077: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034713.535230: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034713.535389: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034713.535501: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034713.535644: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034713.535735: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034713.554846: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034713.555002: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034713.555152: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034713.555269: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034713.574732: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034713.574973: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034713.575216: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034713.575378: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034713.585123: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034713.585463: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034713.585658: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034713.585716: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034713.586029: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034713.586106: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034713.586193: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034713.586408: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034713.593578: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034713.593852: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034713.594172: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034713.594354: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034713.613014: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034713.613301: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034713.613547: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034713.613668: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034713.618894: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034713.619268: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034713.619469: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034713.619528: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034713.619842: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034713.619988: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034713.620074: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034713.620301: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034713.632055: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034713.632284: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034713.632517: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034713.632695: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034713.651185: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034713.651355: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034713.651469: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034713.651627: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034713.668791: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034713.669089: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034713.669256: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034713.669305: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034713.669582: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034713.669649: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034713.669727: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034713.669992: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034713.671490: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034713.671671: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034713.671872: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034713.672012: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034713.689459: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034713.689591: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034713.689714: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034713.689838: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034713.708705: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034713.708886: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034713.709079: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034713.709220: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034713.719240: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034713.719580: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034713.719747: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034713.719800: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034713.720169: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034713.720240: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034713.720320: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034713.720535: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034713.727892: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034713.728050: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034713.728256: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034713.728380: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034713.747131: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034713.747305: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034713.747493: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034713.747622: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034713.752771: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034713.753040: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034713.753292: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034713.753341: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034713.753624: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034713.753690: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034713.753763: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034713.753971: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034713.766584: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034713.766736: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034713.766894: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034713.767017: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034713.785920: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034713.786085: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034713.786258: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034713.786386: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034713.803156: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034713.803552: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034713.803731: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034713.803784: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034713.804091: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034713.804168: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034713.804253: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034713.804472: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034713.805386: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034713.805560: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034713.805786: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034713.805912: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034713.824295: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034713.824435: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034713.824600: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034713.824722: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034713.836702: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034713.837005: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034713.837163: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034713.837209: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034713.837482: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034713.837549: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034713.837630: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034713.837841: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034713.843534: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034713.843683: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034713.843896: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034713.844013: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034713.862589: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034713.862747: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034713.862906: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034713.863005: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034713.882129: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034713.882266: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034713.882454: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034713.882554: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034713.886513: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034713.886733: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034713.886839: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034713.886865: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034713.887007: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034713.887041: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034713.887081: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034713.887194: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034713.901086: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034713.901186: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034713.901281: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034713.901344: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034713.919948: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034713.920085: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034713.920147: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034713.920166: tracing_mark_write: B|593|HWDevice::Commit::
sensors@1.0-se-778 ( 778) [004] ...1 1034713.920261: tracing_mark_write: E|778
composer@2.1-s-593 ( 593) [001] ...1 1034713.920271: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034713.920296: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034713.920322: tracing_mark_write: E|593
SensorService-1283 ( 1151) [000] ...1 1034713.920337: tracing_mark_write: E|1151
surfaceflinger-591 ( 591) [003] ...1 1034713.920394: tracing_mark_write: E|591
SensorService-1283 ( 1151) [000] ...1 1034713.920412: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034713.920474: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034713.939488: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034713.939562: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034713.939626: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034713.939687: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034713.959370: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034713.959572: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034713.959835: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034713.960023: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034713.971148: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [002] ...1 1034713.971452: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [002] ...1 1034713.971618: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [002] ...1 1034713.971667: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [002] ...1 1034713.971944: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034713.972011: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034713.972086: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034713.972289: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034713.978364: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034713.978528: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034713.978721: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034713.978838: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034713.997923: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034713.998177: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034713.998404: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034713.998586: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034714.004477: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [002] ...1 1034714.004781: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [002] ...1 1034714.004948: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [002] ...1 1034714.004996: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [002] ...1 1034714.005283: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034714.005351: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034714.005428: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034714.005731: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034714.016858: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034714.017011: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034714.017192: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034714.017320: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034714.036117: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034714.036239: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034714.036362: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034714.036448: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034714.054350: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [002] ...1 1034714.054521: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [002] ...1 1034714.054613: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [002] ...1 1034714.054641: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [002] ...1 1034714.054803: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034714.054844: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034714.054888: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034714.055018: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034714.055182: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034714.055277: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034714.055395: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034714.055472: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034714.074513: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034714.074645: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034714.074758: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034714.074846: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034714.087977: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034714.088178: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034714.088268: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034714.088295: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034714.088430: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034714.088462: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034714.088497: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034714.088595: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034714.093560: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034714.093647: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034714.093734: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034714.093789: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034714.112821: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034714.112904: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034714.112978: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034714.113096: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [007] ...1 1034714.132117: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034714.132271: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034714.132341: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034714.132397: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034714.138054: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034714.138178: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034714.138243: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034714.138263: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034714.138375: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034714.138405: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034714.138438: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034714.138529: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [006] ...1 1034714.151325: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034714.151413: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034714.151488: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [006] ...1 1034714.151539: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [006] ...1 1034714.170566: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034714.170643: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034714.170716: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [006] ...1 1034714.170768: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [003] ...1 1034714.171567: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034714.171670: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034714.171730: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034714.171748: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034714.171846: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034714.171870: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034714.171899: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034714.171966: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [006] ...1 1034714.189842: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034714.189973: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034714.190050: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [006] ...1 1034714.190115: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034714.209077: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034714.209159: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034714.209241: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034714.209294: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034714.221926: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034714.222056: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034714.222122: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034714.222141: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034714.222247: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034714.222272: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034714.222300: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034714.222368: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034714.228309: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034714.228385: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034714.228456: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034714.228510: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034714.248098: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034714.248268: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034714.248362: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034714.248501: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034714.255842: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034714.256066: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034714.256165: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034714.256193: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034714.256349: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034714.256389: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034714.256435: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034714.256597: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034714.267257: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034714.267422: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034714.267559: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034714.267725: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034714.286435: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034714.286639: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034714.286763: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034714.287006: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034714.305780: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034714.305997: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034714.306175: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034714.306366: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034714.306604: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034714.306856: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034714.306998: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034714.307042: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034714.307261: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034714.307320: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034714.307387: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034714.307548: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034714.324957: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034714.325220: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034714.325394: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034714.325592: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034714.339842: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034714.340129: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034714.340255: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034714.340292: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034714.340496: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034714.340545: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034714.340603: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034714.340739: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034714.344278: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034714.344448: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034714.344573: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034714.344722: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034714.363946: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034714.364119: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034714.364251: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034714.364417: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034714.382865: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034714.383071: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034714.383304: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034714.383474: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034714.390195: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034714.390453: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034714.390570: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034714.390606: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034714.390782: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034714.390824: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034714.390874: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034714.390996: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034714.401872: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034714.402043: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034714.402180: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034714.402338: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034714.421373: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034714.421620: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034714.421958: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034714.422137: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034714.440503: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034714.440695: tracing_mark_write: E|1151
surfaceflinger-591 ( 591) [001] ...1 1034714.440850: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
SensorService-1283 ( 1151) [000] ...1 1034714.440857: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034714.441034: tracing_mark_write: B|778|HIDL::ISensors::poll::server
composer@2.1-s-593 ( 593) [000] ...1 1034714.441101: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034714.441253: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034714.441306: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034714.441543: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034714.441598: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034714.441661: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034714.441808: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034714.459811: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034714.460007: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034714.460165: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034714.460338: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034714.474466: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034714.474819: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034714.474990: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034714.475040: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034714.475302: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034714.475366: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034714.475437: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034714.475602: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034714.479208: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034714.479409: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034714.479590: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034714.479766: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034714.498333: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034714.498522: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034714.498676: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034714.498838: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034714.517452: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034714.517633: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034714.517780: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034714.517940: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [003] ...1 1034714.524653: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034714.524904: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034714.525026: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034714.525062: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034714.525249: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034714.525293: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034714.525346: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034714.525471: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034714.536731: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034714.536915: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034714.537068: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034714.537228: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034714.556072: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034714.556250: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034714.556403: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034714.556611: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034714.558166: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034714.558424: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034714.558577: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034714.558622: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034714.558859: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034714.558915: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034714.558974: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034714.559114: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034714.575094: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034714.575245: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034714.575356: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034714.575487: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034714.594487: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034714.594706: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034714.594946: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034714.595050: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034714.608249: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034714.608468: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034714.608575: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034714.608607: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034714.608766: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034714.608806: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034714.608851: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034714.608957: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034714.613740: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034714.613883: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034714.613999: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034714.614130: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034714.632941: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034714.633118: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034714.633294: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034714.633531: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034714.642055: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034714.642358: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034714.642508: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034714.642554: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034714.642786: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034714.642841: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034714.642900: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034714.643046: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034714.652314: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034714.652484: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034714.652615: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034714.652774: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034714.671594: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034714.671829: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034714.672050: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034714.672250: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034714.690903: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034714.691112: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034714.691283: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034714.691466: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034714.692351: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034714.692634: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034714.692778: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034714.692822: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034714.693058: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034714.693115: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034714.693181: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034714.693434: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034714.710192: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034714.710386: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034714.710519: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034714.710701: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034714.729244: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034714.729408: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034714.729531: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034714.729674: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [003] ...1 1034714.742567: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034714.742814: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034714.742926: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034714.742958: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034714.743124: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034714.743164: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034714.743260: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034714.743372: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034714.748475: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034714.748622: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034714.748741: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034714.748881: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034714.769096: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034714.769286: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034714.769502: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034714.769630: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034714.776123: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034714.776344: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034714.776452: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034714.776485: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034714.776703: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034714.776743: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034714.776790: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034714.776904: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034714.787145: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034714.787315: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034714.787434: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034714.787595: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034714.806380: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034714.806643: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034714.806825: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034714.806993: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034714.825593: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034714.825798: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034714.825945: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034714.826078: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [003] ...1 1034714.826685: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034714.826936: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034714.827092: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034714.827137: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034714.827384: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034714.827437: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034714.827498: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034714.827637: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034714.844810: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034714.844985: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034714.845129: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034714.845288: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034714.860448: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034714.860741: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034714.860897: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034714.860944: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034714.861195: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034714.861258: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034714.861340: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034714.861505: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034714.864160: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034714.864328: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034714.864496: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034714.864641: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034714.883325: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034714.883503: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034714.883651: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034714.883806: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034714.902745: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034714.902903: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034714.903034: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034714.903183: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034714.910196: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034714.910415: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034714.910521: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034714.910553: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034714.910712: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034714.910751: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034714.910794: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034714.910893: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034714.921503: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034714.921599: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034714.921695: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034714.921761: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034714.940925: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034714.941101: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034714.941347: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034714.941457: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034714.944065: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034714.944311: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034714.944458: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034714.944499: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034714.944741: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034714.944801: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034714.944868: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034714.945042: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034714.960108: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034714.960259: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034714.960454: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034714.960559: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034714.979314: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034714.979428: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034714.979596: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034714.979695: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034714.994771: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034714.995160: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034714.995374: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034714.995441: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034714.995779: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034714.995864: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034714.995959: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034714.996196: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034714.998785: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034714.998964: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034714.999232: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034714.999361: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034715.017815: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034715.017994: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034715.018177: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034715.018396: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034715.037130: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034715.037255: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034715.037397: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034715.037489: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034715.044596: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034715.044803: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034715.044915: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034715.044945: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034715.045103: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034715.045141: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034715.045183: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034715.045304: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034715.056333: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034715.056431: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034715.056571: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034715.056672: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034715.075993: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034715.076153: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034715.076273: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034715.076424: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034715.077940: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034715.078105: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034715.078189: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034715.078215: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034715.078351: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034715.078384: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034715.078421: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034715.078517: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034715.094943: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034715.095086: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034715.095179: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034715.095325: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034715.114072: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034715.114179: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034715.114287: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034715.114362: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034715.128810: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034715.129075: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034715.129231: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034715.129277: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034715.129505: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034715.129566: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034715.129632: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034715.129775: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034715.133658: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034715.133825: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034715.134009: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034715.134131: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034715.152716: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034715.152869: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034715.153065: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034715.153183: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034715.162386: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034715.162665: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034715.162818: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034715.162863: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034715.163123: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034715.163187: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034715.163323: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034715.163530: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034715.173435: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034715.173584: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034715.173775: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034715.173890: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034715.191217: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034715.191335: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034715.191480: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034715.191581: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034715.210744: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034715.210897: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034715.211083: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034715.211191: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034715.212708: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034715.213017: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034715.213178: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034715.213278: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034715.213550: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034715.213619: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034715.213695: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [002] ...1 1034715.213919: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034715.229782: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034715.230090: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034715.230260: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034715.230365: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034715.246309: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034715.246701: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034715.246860: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034715.246909: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034715.247265: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034715.247332: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034715.247411: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034715.247622: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034715.248879: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034715.249052: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034715.249262: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034715.249383: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034715.268539: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034715.268695: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034715.268829: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034715.268959: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034715.288676: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034715.288818: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034715.288955: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034715.289071: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034715.296222: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034715.296452: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034715.296608: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034715.296640: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034715.296805: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034715.296849: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034715.296901: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034715.297060: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034715.306809: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034715.306930: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034715.307025: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034715.307111: tracing_mark_write: B|778|HIDL::ISensors::poll::server
android.bg-1184 ( 1151) [000] ...1 1034715.307414: tracing_mark_write: B|1151|HIDL::IMemtrack::getMemory::client
memtrack@1.0-s-748 ( 748) [000] ...1 1034715.307540: tracing_mark_write: B|748|HIDL::IMemtrack::getMemory::server
memtrack@1.0-s-748 ( 748) [000] ...1 1034715.307568: tracing_mark_write: E|748
android.bg-1184 ( 1151) [000] ...1 1034715.307645: tracing_mark_write: E|1151
android.bg-1184 ( 1151) [000] ...1 1034715.307656: tracing_mark_write: B|1151|HIDL::IMemtrack::getMemory::client
memtrack@1.0-s-748 ( 748) [000] ...1 1034715.307687: tracing_mark_write: B|748|HIDL::IMemtrack::getMemory::server
memtrack@1.0-s-748 ( 748) [000] ...1 1034715.307793: tracing_mark_write: E|748
android.bg-1184 ( 1151) [000] ...1 1034715.307840: tracing_mark_write: E|1151
android.bg-1184 ( 1151) [000] ...1 1034715.307849: tracing_mark_write: B|1151|HIDL::IMemtrack::getMemory::client
memtrack@1.0-s-748 ( 748) [000] ...1 1034715.307880: tracing_mark_write: B|748|HIDL::IMemtrack::getMemory::server
memtrack@1.0-s-748 ( 748) [000] ...1 1034715.307910: tracing_mark_write: E|748
android.bg-1184 ( 1151) [000] ...1 1034715.307946: tracing_mark_write: E|1151
android.bg-1184 ( 1151) [000] ...1 1034715.307953: tracing_mark_write: B|1151|HIDL::IMemtrack::getMemory::client
memtrack@1.0-s-748 ( 748) [000] ...1 1034715.307980: tracing_mark_write: B|748|HIDL::IMemtrack::getMemory::server
memtrack@1.0-s-748 ( 748) [000] ...1 1034715.307987: tracing_mark_write: E|748
android.bg-1184 ( 1151) [000] ...1 1034715.308018: tracing_mark_write: E|1151
android.bg-1184 ( 1151) [000] ...1 1034715.308024: tracing_mark_write: B|1151|HIDL::IMemtrack::getMemory::client
memtrack@1.0-s-748 ( 748) [000] ...1 1034715.308049: tracing_mark_write: B|748|HIDL::IMemtrack::getMemory::server
memtrack@1.0-s-748 ( 748) [000] ...1 1034715.308056: tracing_mark_write: E|748
android.bg-1184 ( 1151) [000] ...1 1034715.308088: tracing_mark_write: E|1151
sensors@1.0-se-778 ( 778) [005] ...1 1034715.325902: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034715.326030: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034715.326128: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [005] ...1 1034715.326212: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034715.329633: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034715.329805: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034715.329930: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034715.329952: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034715.330082: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034715.330110: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034715.330143: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034715.330229: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [007] ...1 1034715.345069: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034715.345149: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034715.345225: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034715.345276: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034715.364227: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034715.364313: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034715.364389: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034715.364445: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034715.379849: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034715.380036: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034715.380098: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034715.380118: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034715.380224: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034715.380248: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034715.380276: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034715.380352: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034715.383735: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034715.383815: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034715.383892: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034715.383943: tracing_mark_write: B|778|HIDL::ISensors::poll::server
android.bg-1184 ( 1151) [000] ...1 1034715.395623: tracing_mark_write: B|1151|HIDL::IMemtrack::getMemory::client
memtrack@1.0-s-748 ( 748) [004] ...1 1034715.395710: tracing_mark_write: B|748|HIDL::IMemtrack::getMemory::server
memtrack@1.0-s-748 ( 748) [004] ...1 1034715.395725: tracing_mark_write: E|748
android.bg-1184 ( 1151) [000] ...1 1034715.396110: tracing_mark_write: E|1151
android.bg-1184 ( 1151) [000] ...1 1034715.396123: tracing_mark_write: B|1151|HIDL::IMemtrack::getMemory::client
memtrack@1.0-s-748 ( 748) [004] ...1 1034715.396161: tracing_mark_write: B|748|HIDL::IMemtrack::getMemory::server
memtrack@1.0-s-748 ( 748) [004] ...1 1034715.396197: tracing_mark_write: E|748
android.bg-1184 ( 1151) [000] ...1 1034715.396229: tracing_mark_write: E|1151
android.bg-1184 ( 1151) [000] ...1 1034715.396236: tracing_mark_write: B|1151|HIDL::IMemtrack::getMemory::client
memtrack@1.0-s-748 ( 748) [004] ...1 1034715.396266: tracing_mark_write: B|748|HIDL::IMemtrack::getMemory::server
memtrack@1.0-s-748 ( 748) [004] ...1 1034715.396279: tracing_mark_write: E|748
android.bg-1184 ( 1151) [000] ...1 1034715.396307: tracing_mark_write: E|1151
android.bg-1184 ( 1151) [000] ...1 1034715.396313: tracing_mark_write: B|1151|HIDL::IMemtrack::getMemory::client
memtrack@1.0-s-748 ( 748) [004] ...1 1034715.396343: tracing_mark_write: B|748|HIDL::IMemtrack::getMemory::server
memtrack@1.0-s-748 ( 748) [004] ...1 1034715.396346: tracing_mark_write: E|748
android.bg-1184 ( 1151) [001] ...1 1034715.396382: tracing_mark_write: E|1151
android.bg-1184 ( 1151) [001] ...1 1034715.396390: tracing_mark_write: B|1151|HIDL::IMemtrack::getMemory::client
memtrack@1.0-s-748 ( 748) [004] ...1 1034715.396418: tracing_mark_write: B|748|HIDL::IMemtrack::getMemory::server
memtrack@1.0-s-748 ( 748) [004] ...1 1034715.396421: tracing_mark_write: E|748
android.bg-1184 ( 1151) [001] ...1 1034715.396452: tracing_mark_write: E|1151
sensors@1.0-se-778 ( 778) [004] ...1 1034715.402867: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034715.402937: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034715.403006: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034715.403058: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034715.413431: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034715.413541: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034715.413603: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034715.413623: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034715.413725: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034715.413750: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034715.413779: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034715.413861: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034715.421930: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034715.422006: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034715.422083: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034715.422132: tracing_mark_write: B|778|HIDL::ISensors::poll::server
android.bg-1184 ( 1151) [001] ...1 1034715.428194: tracing_mark_write: B|1151|HIDL::IMemtrack::getMemory::client
memtrack@1.0-s-748 ( 748) [004] ...1 1034715.428271: tracing_mark_write: B|748|HIDL::IMemtrack::getMemory::server
memtrack@1.0-s-748 ( 748) [004] ...1 1034715.428284: tracing_mark_write: E|748
android.bg-1184 ( 1151) [001] ...1 1034715.428333: tracing_mark_write: E|1151
android.bg-1184 ( 1151) [001] ...1 1034715.428342: tracing_mark_write: B|1151|HIDL::IMemtrack::getMemory::client
memtrack@1.0-s-748 ( 748) [004] ...1 1034715.428376: tracing_mark_write: B|748|HIDL::IMemtrack::getMemory::server
memtrack@1.0-s-748 ( 748) [004] ...1 1034715.428410: tracing_mark_write: E|748
android.bg-1184 ( 1151) [000] ...1 1034715.428449: tracing_mark_write: E|1151
android.bg-1184 ( 1151) [000] ...1 1034715.428456: tracing_mark_write: B|1151|HIDL::IMemtrack::getMemory::client
memtrack@1.0-s-748 ( 748) [004] ...1 1034715.428492: tracing_mark_write: B|748|HIDL::IMemtrack::getMemory::server
memtrack@1.0-s-748 ( 748) [004] ...1 1034715.428507: tracing_mark_write: E|748
android.bg-1184 ( 1151) [000] ...1 1034715.428537: tracing_mark_write: E|1151
android.bg-1184 ( 1151) [000] ...1 1034715.428542: tracing_mark_write: B|1151|HIDL::IMemtrack::getMemory::client
memtrack@1.0-s-748 ( 748) [004] ...1 1034715.428575: tracing_mark_write: B|748|HIDL::IMemtrack::getMemory::server
memtrack@1.0-s-748 ( 748) [004] ...1 1034715.428579: tracing_mark_write: E|748
android.bg-1184 ( 1151) [001] ...1 1034715.428611: tracing_mark_write: E|1151
android.bg-1184 ( 1151) [001] ...1 1034715.428617: tracing_mark_write: B|1151|HIDL::IMemtrack::getMemory::client
memtrack@1.0-s-748 ( 748) [004] ...1 1034715.428649: tracing_mark_write: B|748|HIDL::IMemtrack::getMemory::server
memtrack@1.0-s-748 ( 748) [004] ...1 1034715.428653: tracing_mark_write: E|748
android.bg-1184 ( 1151) [001] ...1 1034715.428682: tracing_mark_write: E|1151
sensors@1.0-se-778 ( 778) [006] ...1 1034715.441250: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034715.441331: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034715.441406: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [006] ...1 1034715.441459: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [006] ...1 1034715.460548: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034715.460623: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034715.460715: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [006] ...1 1034715.460767: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034715.463738: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034715.463864: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034715.463928: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034715.463947: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034715.464050: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034715.464074: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034715.464103: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034715.464178: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [006] ...1 1034715.479761: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034715.479847: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034715.479947: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [006] ...1 1034715.480006: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034715.497358: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034715.497513: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034715.497578: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034715.497597: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034715.497700: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034715.497726: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034715.497755: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034715.497831: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [007] ...1 1034715.498999: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034715.499068: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034715.499143: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [007] ...1 1034715.499195: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [005] ...1 1034715.518309: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034715.518391: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034715.518458: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [005] ...1 1034715.518513: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [005] ...1 1034715.537468: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034715.537578: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034715.537702: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [005] ...1 1034715.537797: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034715.548155: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034715.548405: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034715.548598: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034715.548642: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034715.548903: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034715.548966: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034715.549038: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034715.549228: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [005] ...1 1034715.556789: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034715.556913: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034715.557064: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [005] ...1 1034715.557162: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [005] ...1 1034715.576152: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034715.576279: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034715.576466: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [005] ...1 1034715.576614: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034715.581769: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034715.582017: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034715.582167: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034715.582212: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034715.582471: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034715.582534: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034715.582604: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034715.582792: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [005] ...1 1034715.595448: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034715.595583: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034715.595763: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [005] ...1 1034715.595875: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [005] ...1 1034715.614712: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034715.614871: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034715.615049: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [005] ...1 1034715.615170: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034715.631732: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034715.631892: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034715.631975: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034715.632000: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034715.632134: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034715.632167: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034715.632203: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034715.632289: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [005] ...1 1034715.634628: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034715.634772: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034715.634885: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [005] ...1 1034715.635028: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [005] ...1 1034715.653016: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034715.653107: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034715.653193: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [005] ...1 1034715.653284: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034715.665320: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034715.665523: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034715.665629: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034715.665659: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034715.665823: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034715.665862: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034715.665908: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034715.666011: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [005] ...1 1034715.672547: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034715.672711: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034715.672933: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [005] ...1 1034715.673058: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [005] ...1 1034715.691925: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034715.692084: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034715.692272: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [005] ...1 1034715.692403: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [005] ...1 1034715.711280: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034715.711413: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034715.711586: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [005] ...1 1034715.711695: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034715.716063: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034715.716324: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034715.716483: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034715.716588: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034715.716866: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034715.716933: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034715.717011: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034715.717212: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [005] ...1 1034715.730517: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034715.730660: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034715.730862: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [005] ...1 1034715.730978: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034715.749531: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034715.749797: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034715.750055: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034715.750158: tracing_mark_write: B|593|HWDevice::Commit::
sensors@1.0-se-778 ( 778) [005] ...1 1034715.750300: tracing_mark_write: E|778
composer@2.1-s-593 ( 593) [001] ...1 1034715.750430: tracing_mark_write: E|593
SensorService-1283 ( 1151) [000] ...1 1034715.750446: tracing_mark_write: E|1151
composer@2.1-s-593 ( 593) [001] ...1 1034715.750496: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034715.750570: tracing_mark_write: E|593
SensorService-1283 ( 1151) [000] ...1 1034715.750616: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [005] ...1 1034715.750725: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [003] ...1 1034715.750801: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [005] ...1 1034715.768842: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034715.769001: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034715.769184: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [005] ...1 1034715.769299: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [005] ...1 1034715.788772: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034715.788931: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034715.789126: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [005] ...1 1034715.789257: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [003] ...1 1034715.800086: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034715.800398: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034715.800543: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034715.800586: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034715.800822: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034715.800885: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034715.800953: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034715.801139: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [005] ...1 1034715.807797: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034715.807934: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034715.808103: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [005] ...1 1034715.808208: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [005] ...1 1034715.826563: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034715.826662: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034715.826762: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [005] ...1 1034715.826831: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [003] ...1 1034715.833099: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034715.833287: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034715.833367: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034715.833390: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034715.833512: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034715.833543: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034715.833579: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034715.833681: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034715.845668: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034715.845767: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034715.845845: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034715.845918: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [006] ...1 1034715.864934: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034715.865028: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034715.865111: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [006] ...1 1034715.865169: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034715.866494: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034715.866631: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034715.866692: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034715.866711: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034715.866812: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034715.866836: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034715.866863: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034715.866934: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [005] ...1 1034715.884081: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034715.884158: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034715.884226: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [005] ...1 1034715.884280: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [002] ...1 1034715.903428: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034715.903508: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034715.903578: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [002] ...1 1034715.903633: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034715.916870: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034715.916984: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034715.917050: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034715.917069: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034715.917169: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034715.917194: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034715.917223: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034715.917295: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [002] ...1 1034715.922644: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034715.922722: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034715.922797: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [002] ...1 1034715.922847: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [002] ...1 1034715.941847: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034715.941921: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034715.941993: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [002] ...1 1034715.942046: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034715.950423: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034715.950546: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034715.950610: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034715.950629: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034715.950732: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034715.950759: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034715.950807: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034715.950895: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [002] ...1 1034715.961127: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034715.961211: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034715.961292: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [002] ...1 1034715.961343: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [003] ...1 1034715.980484: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034715.980573: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034715.980647: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [003] ...1 1034715.980698: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [003] ...1 1034715.999731: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034715.999827: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034715.999965: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [003] ...1 1034716.000030: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034716.000804: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034716.000927: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034716.001002: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034716.001024: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034716.001150: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034716.001178: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034716.001210: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034716.001280: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [003] ...1 1034716.018884: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034716.018954: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034716.019018: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [003] ...1 1034716.019067: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034716.034314: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034716.034431: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034716.034507: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034716.034532: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034716.034656: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034716.034690: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034716.034727: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034716.034806: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [003] ...1 1034716.038367: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034716.038464: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034716.038589: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [003] ...1 1034716.038651: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [003] ...1 1034716.057766: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034716.057905: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034716.058075: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [003] ...1 1034716.058216: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [003] ...1 1034716.077068: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034716.077208: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034716.077383: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [003] ...1 1034716.077522: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034716.085371: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034716.085685: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034716.085878: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034716.085935: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034716.086275: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034716.086356: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034716.086445: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034716.086675: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [003] ...1 1034716.096612: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034716.096795: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034716.097039: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [003] ...1 1034716.097201: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [003] ...1 1034716.115867: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034716.116106: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034716.116385: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [003] ...1 1034716.116644: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034716.119096: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034716.119410: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034716.119612: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034716.119672: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034716.120146: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034716.120233: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034716.120325: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034716.120537: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [003] ...1 1034716.134983: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034716.135179: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034716.135405: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [003] ...1 1034716.135579: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [003] ...1 1034716.154160: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034716.154318: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034716.154488: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [003] ...1 1034716.154631: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034716.169235: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034716.169558: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034716.169726: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034716.169771: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034716.170171: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034716.170240: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034716.170317: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034716.170531: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [003] ...1 1034716.173104: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034716.173271: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034716.173403: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [003] ...1 1034716.173493: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [003] ...1 1034716.192325: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034716.192433: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034716.192529: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [003] ...1 1034716.192595: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034716.202258: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034716.202428: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034716.202513: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034716.202538: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034716.202671: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034716.202702: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034716.202740: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034716.202830: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [000] ...1 1034716.211722: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034716.211894: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034716.212042: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [000] ...1 1034716.212124: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [000] ...1 1034716.231157: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034716.231412: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034716.231607: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [000] ...1 1034716.231768: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [000] ...1 1034716.250428: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034716.250577: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034716.250744: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [000] ...1 1034716.250902: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034716.253354: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034716.253630: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034716.253789: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034716.253836: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034716.254111: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034716.254264: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034716.254369: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034716.254590: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [000] ...1 1034716.270012: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034716.270192: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034716.270376: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [000] ...1 1034716.270533: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034716.286680: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034716.286950: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034716.287105: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034716.287151: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034716.287421: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034716.287487: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034716.287561: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034716.287757: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [000] ...1 1034716.289977: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034716.290134: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034716.290322: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [000] ...1 1034716.290466: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [000] ...1 1034716.308162: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034716.308302: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034716.308457: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [000] ...1 1034716.308595: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [000] ...1 1034716.327516: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034716.327676: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034716.327850: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [000] ...1 1034716.327988: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034716.337107: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034716.337395: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034716.337559: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034716.337607: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034716.337878: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034716.337944: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034716.338022: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034716.338231: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [003] ...1 1034716.347463: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034716.347627: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034716.347792: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [003] ...1 1034716.347916: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [003] ...1 1034716.365860: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034716.365997: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034716.366101: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [003] ...1 1034716.366183: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034716.370185: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034716.370348: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034716.370431: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034716.370456: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034716.370605: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034716.370640: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034716.370679: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034716.370797: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [003] ...1 1034716.384881: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034716.384985: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034716.385086: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [003] ...1 1034716.385149: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [001] ...1 1034716.403957: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034716.404054: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034716.404133: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [001] ...1 1034716.404191: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034716.420377: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034716.420561: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034716.420625: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034716.420644: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034716.420751: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034716.420776: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034716.420805: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034716.420950: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [002] ...1 1034716.423485: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034716.423566: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034716.423636: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [002] ...1 1034716.423692: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [002] ...1 1034716.442490: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034716.442567: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034716.442637: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [002] ...1 1034716.442695: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034716.453896: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034716.454021: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034716.454083: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034716.454102: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034716.454204: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034716.454229: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034716.454259: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034716.454350: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [002] ...1 1034716.461657: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034716.461730: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034716.461797: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [002] ...1 1034716.461847: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [002] ...1 1034716.480986: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034716.481065: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034716.481137: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [002] ...1 1034716.481187: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [002] ...1 1034716.500293: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034716.500364: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034716.500438: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [002] ...1 1034716.500491: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034716.504203: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034716.504376: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034716.504445: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034716.504466: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034716.504579: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034716.504609: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034716.504642: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034716.504722: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [002] ...1 1034716.519492: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034716.519572: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034716.519650: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [002] ...1 1034716.519699: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034716.537934: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034716.538118: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034716.538205: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034716.538232: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034716.538362: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034716.538396: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034716.538436: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034716.538519: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [002] ...1 1034716.540466: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034716.540564: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034716.540658: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [002] ...1 1034716.540719: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [002] ...1 1034716.558312: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034716.558429: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034716.558521: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [002] ...1 1034716.558588: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [002] ...1 1034716.577737: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034716.577933: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034716.578108: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [002] ...1 1034716.578266: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034716.588978: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034716.589346: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034716.589566: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034716.589632: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034716.590052: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034716.590139: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034716.590229: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034716.590462: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [002] ...1 1034716.597252: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034716.597430: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034716.597639: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [002] ...1 1034716.597802: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [002] ...1 1034716.616352: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034716.616510: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034716.616804: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [002] ...1 1034716.616954: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034716.622358: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034716.622651: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034716.622841: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034716.622898: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034716.623309: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034716.623391: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034716.623476: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034716.623699: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [002] ...1 1034716.635478: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034716.635640: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034716.635830: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [002] ...1 1034716.635983: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [002] ...1 1034716.654707: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034716.654847: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034716.655003: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [002] ...1 1034716.655144: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [003] ...1 1034716.672753: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034716.673062: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034716.673326: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034716.673385: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034716.673714: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034716.673792: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034716.673880: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034716.674100: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [002] ...1 1034716.676979: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034716.677161: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034716.677377: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [002] ...1 1034716.677540: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [002] ...1 1034716.693145: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034716.693279: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034716.693408: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [002] ...1 1034716.693543: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034716.706281: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034716.706657: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034716.706852: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034716.706908: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034716.707228: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034716.707310: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034716.707395: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034716.707616: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [002] ...1 1034716.712552: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034716.712726: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034716.712925: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [002] ...1 1034716.713080: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [002] ...1 1034716.731694: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034716.731823: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034716.731976: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [002] ...1 1034716.732112: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [002] ...1 1034716.751196: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034716.751338: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034716.751476: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [002] ...1 1034716.751614: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034716.756767: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034716.757080: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034716.757278: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034716.757337: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034716.757687: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034716.757770: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034716.757856: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034716.758081: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [002] ...1 1034716.770485: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034716.770672: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034716.770894: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [002] ...1 1034716.771053: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [002] ...1 1034716.789549: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034716.789699: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034716.789861: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [002] ...1 1034716.790074: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034716.790269: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034716.790595: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034716.790804: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034716.790863: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034716.791195: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034716.791275: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034716.791361: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034716.791583: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [002] ...1 1034716.808804: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034716.808990: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034716.809189: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [002] ...1 1034716.809349: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [002] ...1 1034716.828312: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034716.828549: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034716.828836: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [002] ...1 1034716.829047: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034716.841011: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034716.841454: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034716.841707: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034716.841785: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034716.842190: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034716.842289: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034716.842400: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034716.842727: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [002] ...1 1034716.848036: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034716.848251: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034716.848501: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [002] ...1 1034716.848675: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [002] ...1 1034716.867430: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034716.867589: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034716.867761: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [002] ...1 1034716.867914: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [002] ...1 1034716.886120: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034716.886345: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034716.886617: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [002] ...1 1034716.886785: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034716.891207: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034716.891548: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034716.891767: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034716.891834: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034716.892183: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034716.892268: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034716.892362: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034716.892601: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [000] ...1 1034716.905177: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034716.905353: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034716.905576: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [000] ...1 1034716.905736: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034716.924745: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034716.925155: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034716.925364: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034716.925424: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034716.925758: tracing_mark_write: E|593
sensors@1.0-se-778 ( 778) [000] ...1 1034716.925786: tracing_mark_write: E|778
composer@2.1-s-593 ( 593) [001] ...1 1034716.925845: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034716.925936: tracing_mark_write: E|593
SensorService-1283 ( 1151) [003] ...1 1034716.925992: tracing_mark_write: E|1151
surfaceflinger-591 ( 591) [000] ...1 1034716.926157: tracing_mark_write: E|591
SensorService-1283 ( 1151) [003] ...1 1034716.926207: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034716.926405: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [002] ...1 1034716.943812: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034716.944037: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034716.944255: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [002] ...1 1034716.944423: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [001] ...1 1034716.963679: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034716.963948: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034716.964248: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034716.964456: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034716.975043: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034716.975414: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034716.975636: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034716.975700: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034716.976064: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034716.976149: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034716.976244: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034716.976479: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [001] ...1 1034716.982217: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034716.982396: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034716.982609: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034716.982773: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [001] ...1 1034717.001301: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034717.001441: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034717.001593: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034717.001749: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034717.008559: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034717.008966: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034717.009181: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034717.009246: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034717.009601: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034717.009688: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034717.009780: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034717.010028: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [001] ...1 1034717.020714: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034717.020942: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034717.021207: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034717.021385: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [001] ...1 1034717.039576: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034717.039718: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034717.039934: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034717.040084: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034717.058939: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034717.059346: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034717.059548: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034717.059608: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034717.060014: tracing_mark_write: E|593
HwBinder:778_1-1087 ( 778) [003] ...1 1034717.060096: tracing_mark_write: E|778
composer@2.1-s-593 ( 593) [001] ...1 1034717.060101: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034717.060194: tracing_mark_write: E|593
SensorService-1283 ( 1151) [000] ...1 1034717.060332: tracing_mark_write: E|1151
surfaceflinger-591 ( 591) [003] ...1 1034717.060453: tracing_mark_write: E|591
SensorService-1283 ( 1151) [000] ...1 1034717.060573: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [001] ...1 1034717.060793: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [000] ...1 1034717.078470: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034717.078675: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034717.078858: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [000] ...1 1034717.079022: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [000] ...1 1034717.097703: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034717.097957: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034717.098222: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [000] ...1 1034717.098407: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034717.109307: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034717.109672: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034717.109955: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034717.110018: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034717.110387: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034717.110474: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034717.110568: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034717.110849: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [000] ...1 1034717.116802: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034717.117039: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034717.117301: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [000] ...1 1034717.117479: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [003] ...1 1034717.135912: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034717.136079: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034717.136239: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [003] ...1 1034717.136394: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034717.142475: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034717.142765: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034717.142931: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034717.142980: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034717.143358: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034717.143428: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034717.143506: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034717.143711: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [003] ...1 1034717.155044: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034717.155205: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034717.155375: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [003] ...1 1034717.155522: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [003] ...1 1034717.174276: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034717.174436: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034717.174591: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [003] ...1 1034717.174738: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034717.192783: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034717.193070: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034717.193301: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034717.193374: tracing_mark_write: B|593|HWDevice::Commit::
sensors@1.0-se-778 ( 778) [003] ...1 1034717.193611: tracing_mark_write: E|778
composer@2.1-s-593 ( 593) [001] ...1 1034717.193666: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034717.193741: tracing_mark_write: E|593
SensorService-1283 ( 1151) [000] ...1 1034717.193772: tracing_mark_write: E|1151
composer@2.1-s-593 ( 593) [001] ...1 1034717.193823: tracing_mark_write: E|593
SensorService-1283 ( 1151) [000] ...1 1034717.193938: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
surfaceflinger-591 ( 591) [003] ...1 1034717.194068: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034717.194074: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034717.212759: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034717.212910: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034717.213067: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034717.213190: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034717.226629: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034717.226955: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034717.227117: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034717.227178: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034717.227488: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034717.227561: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034717.227659: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034717.227902: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034717.231896: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034717.232049: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034717.232225: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034717.232331: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034717.251151: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034717.251267: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034717.251453: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034717.251544: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034717.270375: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034717.270494: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034717.270616: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034717.270721: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034717.276744: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034717.277013: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034717.277196: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034717.277247: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034717.277533: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034717.277601: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034717.277679: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034717.277877: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034717.289582: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034717.289713: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034717.289929: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034717.290160: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034717.308958: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034717.309094: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034717.309244: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034717.309379: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034717.310255: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034717.310498: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034717.310639: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034717.310682: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034717.310923: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034717.310972: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034717.311026: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034717.311163: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034717.328102: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034717.328222: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034717.328339: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034717.328425: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034717.347724: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034717.347888: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034717.348091: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034717.348225: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034717.360893: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034717.361224: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034717.361410: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034717.361464: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034717.361770: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034717.361849: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034717.361935: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034717.362152: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034717.367055: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034717.367190: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034717.367303: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034717.367378: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [004] ...1 1034717.386246: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034717.386769: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034717.387028: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034717.387156: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034717.394242: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034717.394599: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034717.394764: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034717.394813: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034717.395090: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034717.395157: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034717.395234: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034717.395436: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [004] ...1 1034717.405368: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034717.405518: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034717.405726: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [004] ...1 1034717.405833: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [005] ...1 1034717.424590: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034717.424775: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034717.424983: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [005] ...1 1034717.425116: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [005] ...1 1034717.443769: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034717.443891: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034717.444031: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [005] ...1 1034717.444140: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034717.444727: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [002] ...1 1034717.445002: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [002] ...1 1034717.445173: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [002] ...1 1034717.445221: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [002] ...1 1034717.445518: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034717.445588: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034717.445669: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034717.445872: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [005] ...1 1034717.462929: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034717.463053: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034717.463193: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [005] ...1 1034717.463360: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034717.477960: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [002] ...1 1034717.478188: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [002] ...1 1034717.478319: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [002] ...1 1034717.478358: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [002] ...1 1034717.478610: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034717.478672: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034717.478736: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034717.478915: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [005] ...1 1034717.482191: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034717.482305: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034717.482446: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [005] ...1 1034717.482538: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [005] ...1 1034717.501386: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034717.501494: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034717.501612: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [005] ...1 1034717.501703: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [005] ...1 1034717.520695: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034717.520844: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034717.521014: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [005] ...1 1034717.521119: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034717.528609: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [002] ...1 1034717.528883: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [002] ...1 1034717.529044: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [002] ...1 1034717.529091: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [002] ...1 1034717.529379: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034717.529444: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034717.529518: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034717.529717: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [005] ...1 1034717.540175: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034717.540323: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034717.540522: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [005] ...1 1034717.540646: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [005] ...1 1034717.559160: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034717.559279: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034717.559389: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [005] ...1 1034717.559481: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034717.561772: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [002] ...1 1034717.561989: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [002] ...1 1034717.562118: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [002] ...1 1034717.562153: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [002] ...1 1034717.562386: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034717.562437: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034717.562496: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034717.562635: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [005] ...1 1034717.578487: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034717.578634: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034717.578791: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [005] ...1 1034717.578902: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [005] ...1 1034717.597728: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034717.597838: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034717.597969: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [005] ...1 1034717.598070: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034717.612263: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [002] ...1 1034717.612507: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [002] ...1 1034717.612661: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [002] ...1 1034717.612708: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [002] ...1 1034717.612987: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034717.613054: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034717.613127: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034717.613344: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [005] ...1 1034717.616897: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034717.617020: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034717.617170: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [005] ...1 1034717.617270: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [005] ...1 1034717.636242: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034717.636348: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034717.636463: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [005] ...1 1034717.636597: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034717.646132: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [002] ...1 1034717.646505: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [002] ...1 1034717.646738: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [002] ...1 1034717.646790: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [002] ...1 1034717.647084: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034717.647158: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034717.647238: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034717.647465: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [005] ...1 1034717.655626: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034717.655807: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034717.656082: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [005] ...1 1034717.656224: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [005] ...1 1034717.674688: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034717.674816: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034717.674937: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [005] ...1 1034717.675032: tracing_mark_write: B|778|HIDL::ISensors::poll::server
sensors@1.0-se-778 ( 778) [005] ...1 1034717.693979: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034717.694098: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034717.694225: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [005] ...1 1034717.694323: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034717.696260: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [002] ...1 1034717.696603: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [002] ...1 1034717.696787: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [002] ...1 1034717.696842: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [002] ...1 1034717.697144: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034717.697216: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034717.697299: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034717.697508: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [005] ...1 1034717.713415: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034717.713605: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034717.713795: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
sensors@1.0-se-778 ( 778) [005] ...1 1034717.713919: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034717.729747: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [002] ...1 1034717.730017: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [002] ...1 1034717.730114: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [002] ...1 1034717.730143: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [002] ...1 1034717.730317: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034717.730359: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034717.730406: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034717.730534: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [005] ...1 1034717.733013: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034717.733333: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034717.733461: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [003] ...1 1034717.733611: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [001] ...1 1034717.751858: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034717.752001: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034717.752131: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034717.752268: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [003] ...1 1034717.763141: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [002] ...1 1034717.763359: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [002] ...1 1034717.763459: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [002] ...1 1034717.763488: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [002] ...1 1034717.763665: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034717.763705: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034717.763747: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034717.763854: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034717.770944: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034717.771041: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034717.771139: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034717.771219: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [001] ...1 1034717.790173: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034717.790310: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034717.790444: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034717.790575: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [001] ...1 1034717.809452: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034717.809573: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034717.809689: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034717.809812: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034717.813678: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [002] ...1 1034717.813936: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [002] ...1 1034717.814093: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [002] ...1 1034717.814141: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [002] ...1 1034717.814422: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034717.814492: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034717.814568: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034717.814764: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [001] ...1 1034717.828890: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034717.829032: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034717.829176: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034717.829313: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034717.847757: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [002] ...1 1034717.848120: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
HwBinder:778_1-1087 ( 778) [003] ...1 1034717.848141: tracing_mark_write: E|778
composer@2.1-s-593 ( 593) [002] ...1 1034717.848283: tracing_mark_write: B|593|HWCSession::PresentDisplay::
SensorService-1283 ( 1151) [000] ...1 1034717.848318: tracing_mark_write: E|1151
composer@2.1-s-593 ( 593) [002] ...1 1034717.848330: tracing_mark_write: B|593|HWDevice::Commit::
SensorService-1283 ( 1151) [000] ...1 1034717.848483: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [003] ...1 1034717.848630: tracing_mark_write: B|778|HIDL::ISensors::poll::server
composer@2.1-s-593 ( 593) [000] ...1 1034717.848695: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034717.848775: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034717.848859: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034717.849089: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034717.867266: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034717.867428: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034717.867560: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034717.867672: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034717.886773: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034717.886971: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034717.887103: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034717.887245: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034717.897525: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034717.897769: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034717.897906: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034717.897949: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034717.898209: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034717.898274: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034717.898343: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034717.898533: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034717.905765: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034717.905913: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034717.906056: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034717.906194: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034717.925113: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034717.925252: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034717.925378: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034717.925512: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034717.928572: tracing_mark_write: B|591|HIDL::IComposerClient::getActiveConfig::client
composer@2.1-s-593 ( 593) [000] ...1 1034717.928764: tracing_mark_write: B|593|HIDL::IComposerClient::getActiveConfig::server
composer@2.1-s-593 ( 593) [000] ...1 1034717.928806: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034717.928934: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034717.930097: tracing_mark_write: B|591|HIDL::IComposerClient::getActiveConfig::client
composer@2.1-s-593 ( 593) [001] ...1 1034717.930242: tracing_mark_write: B|593|HIDL::IComposerClient::getActiveConfig::server
composer@2.1-s-593 ( 593) [001] ...1 1034717.930268: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034717.930391: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [003] ...1 1034717.932674: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034717.932884: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034717.933060: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034717.933101: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034717.933471: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034717.933534: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034717.933610: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034717.933798: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [003] ...1 1034717.934719: tracing_mark_write: B|591|HIDL::IComposerClient::getActiveConfig::client
composer@2.1-s-593 ( 593) [001] ...1 1034717.934869: tracing_mark_write: B|593|HIDL::IComposerClient::getActiveConfig::server
composer@2.1-s-593 ( 593) [001] ...1 1034717.934893: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034717.935000: tracing_mark_write: E|591
Binder:1151_9-1624 ( 1151) [007] ...1 1034717.939372: tracing_mark_write: B|1151|HIDL::IPower::powerHintAsync::client
Binder:1151_9-1624 ( 1151) [007] ...1 1034717.939614: tracing_mark_write: E|1151
power@1.2-serv-773 ( 773) [004] ...1 1034717.939694: tracing_mark_write: B|773|HIDL::IPower::powerHintAsync::server
power@1.2-serv-773 ( 773) [004] ...1 1034717.940314: tracing_mark_write: B|773|launch
power@1.2-serv-773 ( 773) [004] ...1 1034717.940328: tracing_mark_write: C|773|launch_lock|1
power@1.2-serv-773 ( 773) [004] ...1 1034717.940708: tracing_mark_write: E|773
power@1.2-serv-773 ( 773) [004] ...1 1034717.940723: tracing_mark_write: E|773
surfaceflinger-591 ( 591) [000] ...1 1034717.941313: tracing_mark_write: B|591|HIDL::IComposerClient::getActiveConfig::client
composer@2.1-s-593 ( 593) [001] ...1 1034717.941362: tracing_mark_write: B|593|HIDL::IComposerClient::getActiveConfig::server
composer@2.1-s-593 ( 593) [001] ...1 1034717.941370: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034717.941396: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034717.947749: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034717.947883: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034717.947954: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034717.947963: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034717.947968: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034717.948249: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034717.948313: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034717.948332: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034717.948352: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034717.948407: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034717.948476: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034717.948526: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034717.948536: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034717.948547: tracing_mark_write: B|593|HWDevice::Commit::
HwBinder:778_1-1087 ( 778) [000] ...1 1034717.948604: tracing_mark_write: E|778
composer@2.1-s-593 ( 593) [001] ...1 1034717.948634: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034717.948652: tracing_mark_write: E|593
SensorService-1283 ( 1151) [003] ...1 1034717.948663: tracing_mark_write: E|1151
composer@2.1-s-593 ( 593) [001] ...1 1034717.948673: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034717.948720: tracing_mark_write: E|591
SensorService-1283 ( 1151) [003] ...1 1034717.948730: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [004] ...1 1034717.948783: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034717.948922: tracing_mark_write: B|591|HIDL::IComposerClient::getActiveConfig::client
composer@2.1-s-593 ( 593) [001] ...1 1034717.948969: tracing_mark_write: B|593|HIDL::IComposerClient::getActiveConfig::server
composer@2.1-s-593 ( 593) [001] ...1 1034717.948979: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034717.949005: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [001] ...1 1034717.961674: tracing_mark_write: B|591|HIDL::IComposerClient::getActiveConfig::client
composer@2.1-s-593 ( 593) [000] ...1 1034717.961765: tracing_mark_write: B|593|HIDL::IComposerClient::getActiveConfig::server
composer@2.1-s-593 ( 593) [000] ...1 1034717.961781: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034717.961819: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [005] ...1 1034717.963511: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034717.963585: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034717.963656: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [005] ...1 1034717.963707: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034717.963855: tracing_mark_write: B|591|HIDL::IComposerClient::getActiveConfig::client
composer@2.1-s-593 ( 593) [000] ...1 1034717.963929: tracing_mark_write: B|593|HIDL::IComposerClient::getActiveConfig::server
composer@2.1-s-593 ( 593) [000] ...1 1034717.963946: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034717.963979: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [001] ...1 1034717.964750: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034717.964819: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034717.964886: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034717.964905: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034717.965004: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034717.965030: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034717.965057: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034717.965113: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [001] ...1 1034717.965320: tracing_mark_write: B|591|HIDL::IComposerClient::getActiveConfig::client
composer@2.1-s-593 ( 593) [000] ...1 1034717.965363: tracing_mark_write: B|593|HIDL::IComposerClient::getActiveConfig::server
composer@2.1-s-593 ( 593) [000] ...1 1034717.965369: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034717.965395: tracing_mark_write: E|591
Binder:591_4-1671 ( 591) [002] ...1 1034717.978916: tracing_mark_write: B|591|HIDL::IMapper::createDescriptor::passthrough
Binder:591_4-1671 ( 591) [002] ...1 1034717.978932: tracing_mark_write: E|591
Binder:591_4-1671 ( 591) [002] ...1 1034717.978947: tracing_mark_write: B|591|HIDL::IAllocator::allocate::client
HwBinder:595_2-1778 ( 595) [003] ...1 1034717.979078: tracing_mark_write: B|595|HIDL::IAllocator::allocate::server
HwBinder:595_2-1778 ( 595) [003] ...1 1034717.979124: tracing_mark_write: B|595|AllocBuffer
HwBinder:595_2-1778 ( 595) [003] ...1 1034717.979135: tracing_mark_write: B|595|ION_IOC_ALLOC size: 8355840
HwBinder:595_2-1778 ( 595) [003] ...1 1034717.979274: tracing_mark_write: E|595
HwBinder:595_2-1778 ( 595) [003] ...1 1034717.979277: tracing_mark_write: B|595|ION_IOC_MAP
HwBinder:595_2-1778 ( 595) [003] ...1 1034717.979290: tracing_mark_write: E|595
HwBinder:595_2-1778 ( 595) [003] ...1 1034717.979294: tracing_mark_write: E|595
HwBinder:595_2-1778 ( 595) [003] ...1 1034717.979297: tracing_mark_write: B|595|AllocBuffer
HwBinder:595_2-1778 ( 595) [003] ...1 1034717.979301: tracing_mark_write: B|595|ION_IOC_ALLOC size: 4096
HwBinder:595_2-1778 ( 595) [003] ...1 1034717.979308: tracing_mark_write: E|595
HwBinder:595_2-1778 ( 595) [003] ...1 1034717.979311: tracing_mark_write: B|595|ION_IOC_MAP
HwBinder:595_2-1778 ( 595) [003] ...1 1034717.979317: tracing_mark_write: E|595
HwBinder:595_2-1778 ( 595) [003] ...1 1034717.979320: tracing_mark_write: E|595
HwBinder:595_2-1778 ( 595) [003] ...1 1034717.979363: tracing_mark_write: E|595
HwBinder:595_2-1778 ( 595) [003] ...1 1034717.979430: tracing_mark_write: B|595|FreeBuffer
HwBinder:595_2-1778 ( 595) [003] ...1 1034717.979438: tracing_mark_write: E|595
HwBinder:595_2-1778 ( 595) [003] ...1 1034717.979440: tracing_mark_write: B|595|FreeBuffer
Binder:591_4-1671 ( 591) [000] ...1 1034717.979443: tracing_mark_write: B|591|HIDL::IMapper::importBuffer::passthrough
HwBinder:595_2-1778 ( 595) [003] ...1 1034717.979443: tracing_mark_write: B|595|UnmapBuffer
HwBinder:595_2-1778 ( 595) [003] ...1 1034717.979455: tracing_mark_write: E|595
HwBinder:595_2-1778 ( 595) [003] ...1 1034717.979460: tracing_mark_write: E|595
Binder:591_4-1671 ( 591) [000] ...1 1034717.979497: tracing_mark_write: E|591
Binder:591_4-1671 ( 591) [000] ...1 1034717.979502: tracing_mark_write: E|591
android.anim-1277 ( 1151) [007] ...1 1034717.979672: tracing_mark_write: B|1151|HIDL::IMapper::importBuffer::passthrough
android.anim-1277 ( 1151) [007] ...1 1034717.979718: tracing_mark_write: E|1151
android.anim-1277 ( 1151) [007] ...1 1034717.979743: tracing_mark_write: B|1151|HIDL::IMapper::lock::passthrough
android.anim-1277 ( 1151) [007] ...1 1034717.979748: tracing_mark_write: B|1151|LockBuffer
android.anim-1277 ( 1151) [007] ...1 1034717.979752: tracing_mark_write: B|1151|MapBuffer
android.anim-1277 ( 1151) [007] ...1 1034717.979782: tracing_mark_write: E|1151
android.anim-1277 ( 1151) [007] ...1 1034717.979784: tracing_mark_write: B|1151|CleanBuffer
android.anim-1277 ( 1151) [007] ...1 1034717.979785: tracing_mark_write: C|1151|operation id|2
surfaceflinger-591 ( 591) [002] ...1 1034717.980696: tracing_mark_write: B|591|HIDL::IComposerClient::getActiveConfig::client
composer@2.1-s-593 ( 593) [000] ...1 1034717.980763: tracing_mark_write: B|593|HIDL::IComposerClient::getActiveConfig::server
composer@2.1-s-593 ( 593) [000] ...1 1034717.980777: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [002] ...1 1034717.980807: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [002] ...1 1034717.981826: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034717.981950: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034717.982023: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034717.982034: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034717.982038: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
android.anim-1277 ( 1151) [007] ...1 1034717.982046: tracing_mark_write: E|1151
android.anim-1277 ( 1151) [007] ...1 1034717.982051: tracing_mark_write: E|1151
android.anim-1277 ( 1151) [007] ...1 1034717.982057: tracing_mark_write: E|1151
composer@2.1-s-593 ( 593) [000] ...1 1034717.982342: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [000] ...1 1034717.982429: tracing_mark_write: E|593
Binder:591_4-1671 ( 591) [001] ...1 1034717.982441: tracing_mark_write: B|591|HIDL::IMapper::createDescriptor::passthrough
composer@2.1-s-593 ( 593) [000] ...1 1034717.982449: tracing_mark_write: E|593
Binder:591_4-1671 ( 591) [001] ...1 1034717.982450: tracing_mark_write: E|591
Binder:591_4-1671 ( 591) [001] ...1 1034717.982466: tracing_mark_write: B|591|HIDL::IAllocator::allocate::client
composer@2.1-s-593 ( 593) [000] ...1 1034717.982472: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [002] ...1 1034717.982535: tracing_mark_write: E|591
HwBinder:595_2-1778 ( 595) [000] ...1 1034717.982586: tracing_mark_write: B|595|HIDL::IAllocator::allocate::server
HwBinder:595_2-1778 ( 595) [000] ...1 1034717.982616: tracing_mark_write: B|595|AllocBuffer
surfaceflinger-591 ( 591) [002] ...1 1034717.982617: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
HwBinder:595_2-1778 ( 595) [000] ...1 1034717.982626: tracing_mark_write: B|595|ION_IOC_ALLOC size: 3891200
composer@2.1-s-593 ( 593) [000] ...1 1034717.982663: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034717.982674: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034717.982687: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034717.982785: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034717.982807: tracing_mark_write: E|593
HwBinder:778_1-1087 ( 778) [003] ...1 1034717.982822: tracing_mark_write: E|778
composer@2.1-s-593 ( 593) [000] ...1 1034717.982830: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [002] ...1 1034717.982882: tracing_mark_write: E|591
SensorService-1283 ( 1151) [001] ...1 1034717.982885: tracing_mark_write: E|1151
HwBinder:595_2-1778 ( 595) [000] ...1 1034717.982939: tracing_mark_write: E|595
HwBinder:595_2-1778 ( 595) [000] ...1 1034717.982942: tracing_mark_write: B|595|ION_IOC_MAP
SensorService-1283 ( 1151) [001] ...1 1034717.982954: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:595_2-1778 ( 595) [000] ...1 1034717.982955: tracing_mark_write: E|595
HwBinder:595_2-1778 ( 595) [000] ...1 1034717.982960: tracing_mark_write: E|595
HwBinder:595_2-1778 ( 595) [000] ...1 1034717.982964: tracing_mark_write: B|595|AllocBuffer
HwBinder:595_2-1778 ( 595) [000] ...1 1034717.982970: tracing_mark_write: B|595|ION_IOC_ALLOC size: 4096
HwBinder:595_2-1778 ( 595) [000] ...1 1034717.982981: tracing_mark_write: E|595
HwBinder:595_2-1778 ( 595) [000] ...1 1034717.982984: tracing_mark_write: B|595|ION_IOC_MAP
HwBinder:595_2-1778 ( 595) [000] ...1 1034717.982990: tracing_mark_write: E|595
HwBinder:595_2-1778 ( 595) [000] ...1 1034717.982993: tracing_mark_write: E|595
HwBinder:778_1-1087 ( 778) [003] ...1 1034717.982997: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:595_2-1778 ( 595) [000] ...1 1034717.983035: tracing_mark_write: E|595
HwBinder:595_2-1778 ( 595) [000] ...1 1034717.983074: tracing_mark_write: B|595|FreeBuffer
Binder:591_4-1671 ( 591) [001] ...1 1034717.983082: tracing_mark_write: B|591|HIDL::IMapper::importBuffer::passthrough
HwBinder:595_2-1778 ( 595) [000] ...1 1034717.983082: tracing_mark_write: E|595
HwBinder:595_2-1778 ( 595) [000] ...1 1034717.983085: tracing_mark_write: B|595|FreeBuffer
HwBinder:595_2-1778 ( 595) [000] ...1 1034717.983087: tracing_mark_write: B|595|UnmapBuffer
HwBinder:595_2-1778 ( 595) [000] ...1 1034717.983099: tracing_mark_write: E|595
HwBinder:595_2-1778 ( 595) [000] ...1 1034717.983105: tracing_mark_write: E|595
Binder:591_4-1671 ( 591) [001] ...1 1034717.983113: tracing_mark_write: E|591
Binder:591_4-1671 ( 591) [001] ...1 1034717.983118: tracing_mark_write: E|591
Binder:591_4-1671 ( 591) [001] ...1 1034717.983152: tracing_mark_write: B|591|HIDL::IMapper::createDescriptor::passthrough
Binder:591_4-1671 ( 591) [001] ...1 1034717.983157: tracing_mark_write: E|591
Binder:591_4-1671 ( 591) [001] ...1 1034717.983166: tracing_mark_write: B|591|HIDL::IAllocator::allocate::client
HwBinder:595_2-1778 ( 595) [000] ...1 1034717.983252: tracing_mark_write: B|595|HIDL::IAllocator::allocate::server
HwBinder:595_2-1778 ( 595) [000] ...1 1034717.983267: tracing_mark_write: B|595|AllocBuffer
HwBinder:595_2-1778 ( 595) [000] ...1 1034717.983271: tracing_mark_write: B|595|ION_IOC_ALLOC size: 3891200
HwBinder:595_2-1778 ( 595) [000] ...1 1034717.983327: tracing_mark_write: E|595
HwBinder:595_2-1778 ( 595) [000] ...1 1034717.983330: tracing_mark_write: B|595|ION_IOC_MAP
HwBinder:595_2-1778 ( 595) [000] ...1 1034717.983338: tracing_mark_write: E|595
HwBinder:595_2-1778 ( 595) [000] ...1 1034717.983341: tracing_mark_write: E|595
HwBinder:595_2-1778 ( 595) [000] ...1 1034717.983343: tracing_mark_write: B|595|AllocBuffer
HwBinder:595_2-1778 ( 595) [000] ...1 1034717.983347: tracing_mark_write: B|595|ION_IOC_ALLOC size: 4096
HwBinder:595_2-1778 ( 595) [000] ...1 1034717.983354: tracing_mark_write: E|595
HwBinder:595_2-1778 ( 595) [000] ...1 1034717.983356: tracing_mark_write: B|595|ION_IOC_MAP
HwBinder:595_2-1778 ( 595) [000] ...1 1034717.983363: tracing_mark_write: E|595
HwBinder:595_2-1778 ( 595) [000] ...1 1034717.983366: tracing_mark_write: E|595
HwBinder:595_2-1778 ( 595) [000] ...1 1034717.983387: tracing_mark_write: E|595
HwBinder:595_2-1778 ( 595) [000] ...1 1034717.983417: tracing_mark_write: B|595|FreeBuffer
Binder:591_4-1671 ( 591) [001] ...1 1034717.983421: tracing_mark_write: B|591|HIDL::IMapper::importBuffer::passthrough
HwBinder:595_2-1778 ( 595) [000] ...1 1034717.983423: tracing_mark_write: E|595
HwBinder:595_2-1778 ( 595) [000] ...1 1034717.983425: tracing_mark_write: B|595|FreeBuffer
HwBinder:595_2-1778 ( 595) [000] ...1 1034717.983428: tracing_mark_write: B|595|UnmapBuffer
HwBinder:595_2-1778 ( 595) [000] ...1 1034717.983434: tracing_mark_write: E|595
HwBinder:595_2-1778 ( 595) [000] ...1 1034717.983439: tracing_mark_write: E|595
Binder:591_4-1671 ( 591) [001] ...1 1034717.983441: tracing_mark_write: E|591
Binder:591_4-1671 ( 591) [001] ...1 1034717.983445: tracing_mark_write: E|591
Binder:591_4-1671 ( 591) [001] ...1 1034717.983461: tracing_mark_write: B|591|HIDL::IMapper::createDescriptor::passthrough
Binder:591_4-1671 ( 591) [001] ...1 1034717.983465: tracing_mark_write: E|591
Binder:591_4-1671 ( 591) [001] ...1 1034717.983470: tracing_mark_write: B|591|HIDL::IAllocator::allocate::client
HwBinder:595_2-1778 ( 595) [000] ...1 1034717.983503: tracing_mark_write: B|595|HIDL::IAllocator::allocate::server
HwBinder:595_2-1778 ( 595) [000] ...1 1034717.983511: tracing_mark_write: B|595|AllocBuffer
HwBinder:595_2-1778 ( 595) [000] ...1 1034717.983515: tracing_mark_write: B|595|ION_IOC_ALLOC size: 3891200
HwBinder:595_2-1778 ( 595) [000] ...1 1034717.983562: tracing_mark_write: E|595
HwBinder:595_2-1778 ( 595) [000] ...1 1034717.983564: tracing_mark_write: B|595|ION_IOC_MAP
HwBinder:595_2-1778 ( 595) [000] ...1 1034717.983572: tracing_mark_write: E|595
HwBinder:595_2-1778 ( 595) [000] ...1 1034717.983575: tracing_mark_write: E|595
HwBinder:595_2-1778 ( 595) [000] ...1 1034717.983577: tracing_mark_write: B|595|AllocBuffer
HwBinder:595_2-1778 ( 595) [000] ...1 1034717.983581: tracing_mark_write: B|595|ION_IOC_ALLOC size: 4096
HwBinder:595_2-1778 ( 595) [000] ...1 1034717.983587: tracing_mark_write: E|595
HwBinder:595_2-1778 ( 595) [000] ...1 1034717.983590: tracing_mark_write: B|595|ION_IOC_MAP
HwBinder:595_2-1778 ( 595) [000] ...1 1034717.983597: tracing_mark_write: E|595
HwBinder:595_2-1778 ( 595) [000] ...1 1034717.983599: tracing_mark_write: E|595
HwBinder:595_2-1778 ( 595) [000] ...1 1034717.983616: tracing_mark_write: E|595
HwBinder:595_2-1778 ( 595) [000] ...1 1034717.983643: tracing_mark_write: B|595|FreeBuffer
Binder:591_4-1671 ( 591) [001] ...1 1034717.983647: tracing_mark_write: B|591|HIDL::IMapper::importBuffer::passthrough
HwBinder:595_2-1778 ( 595) [000] ...1 1034717.983649: tracing_mark_write: E|595
HwBinder:595_2-1778 ( 595) [000] ...1 1034717.983651: tracing_mark_write: B|595|FreeBuffer
HwBinder:595_2-1778 ( 595) [000] ...1 1034717.983654: tracing_mark_write: B|595|UnmapBuffer
HwBinder:595_2-1778 ( 595) [000] ...1 1034717.983659: tracing_mark_write: E|595
Binder:591_4-1671 ( 591) [001] ...1 1034717.983661: tracing_mark_write: E|591
HwBinder:595_2-1778 ( 595) [000] ...1 1034717.983664: tracing_mark_write: E|595
Binder:591_4-1671 ( 591) [001] ...1 1034717.983664: tracing_mark_write: E|591
android.anim-1277 ( 1151) [004] ...1 1034717.989541: tracing_mark_write: B|1151|HIDL::IMapper::unlock::passthrough
android.anim-1277 ( 1151) [004] ...1 1034717.989557: tracing_mark_write: B|1151|CleanBuffer
android.anim-1277 ( 1151) [004] ...1 1034717.989560: tracing_mark_write: C|1151|operation id|1
android.anim-1277 ( 1151) [004] ...1 1034717.991550: tracing_mark_write: E|1151
android.anim-1277 ( 1151) [004] ...1 1034717.991560: tracing_mark_write: E|1151
surfaceflinger-591 ( 591) [000] ...1 1034717.992446: tracing_mark_write: B|591|HIDL::IComposerClient::getActiveConfig::client
composer@2.1-s-593 ( 593) [001] ...1 1034717.992541: tracing_mark_write: B|593|HIDL::IComposerClient::getActiveConfig::server
composer@2.1-s-593 ( 593) [001] ...1 1034717.992559: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034717.992593: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034717.995061: tracing_mark_write: B|591|HIDL::IComposerClient::getActiveConfig::client
composer@2.1-s-593 ( 593) [001] ...1 1034717.995106: tracing_mark_write: B|593|HIDL::IComposerClient::getActiveConfig::server
composer@2.1-s-593 ( 593) [001] ...1 1034717.995115: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034717.995142: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034717.996511: tracing_mark_write: B|591|HIDL::IComposerClient::getActiveConfig::client
composer@2.1-s-593 ( 593) [001] ...1 1034717.996546: tracing_mark_write: B|593|HIDL::IComposerClient::getActiveConfig::server
composer@2.1-s-593 ( 593) [001] ...1 1034717.996551: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034717.996576: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034717.998108: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034717.998170: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034717.998234: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034717.998243: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034717.998248: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034717.998476: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034717.998538: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034717.998556: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034717.998572: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034717.998614: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034717.998672: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034717.998710: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034717.998718: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034717.998729: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034717.998813: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034717.998830: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034717.998850: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034717.998890: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034718.001338: tracing_mark_write: B|591|HIDL::IComposerClient::getActiveConfig::client
composer@2.1-s-593 ( 593) [001] ...1 1034718.001376: tracing_mark_write: B|593|HIDL::IComposerClient::getActiveConfig::server
composer@2.1-s-593 ( 593) [001] ...1 1034718.001382: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.001406: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [001] ...1 1034718.001973: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034718.002034: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034718.002097: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034718.002138: tracing_mark_write: B|778|HIDL::ISensors::poll::server
Binder:591_3-1218 ( 591) [005] ...1 1034718.003009: tracing_mark_write: B|591|HIDL::IMapper::createDescriptor::passthrough
Binder:591_3-1218 ( 591) [005] ...1 1034718.003016: tracing_mark_write: E|591
Binder:591_3-1218 ( 591) [005] ...1 1034718.003025: tracing_mark_write: B|591|HIDL::IAllocator::allocate::client
HwBinder:595_2-1778 ( 595) [000] ...1 1034718.003087: tracing_mark_write: B|595|HIDL::IAllocator::allocate::server
HwBinder:595_2-1778 ( 595) [000] ...1 1034718.003116: tracing_mark_write: B|595|AllocBuffer
HwBinder:595_2-1778 ( 595) [000] ...1 1034718.003124: tracing_mark_write: B|595|ION_IOC_ALLOC size: 8355840
Binder:591_4-1671 ( 591) [006] ...1 1034718.004124: tracing_mark_write: B|591|HIDL::IMapper::freeBuffer::passthrough
Binder:591_4-1671 ( 591) [006] ...1 1034718.004160: tracing_mark_write: B|591|FreeBuffer
Binder:591_4-1671 ( 591) [006] ...1 1034718.004218: tracing_mark_write: E|591
Binder:591_4-1671 ( 591) [006] ...1 1034718.004220: tracing_mark_write: B|591|FreeBuffer
Binder:591_4-1671 ( 591) [006] ...1 1034718.004230: tracing_mark_write: E|591
Binder:591_4-1671 ( 591) [006] ...1 1034718.004237: tracing_mark_write: E|591
Binder:591_4-1671 ( 591) [006] ...1 1034718.004254: tracing_mark_write: B|591|HIDL::IMapper::createDescriptor::passthrough
Binder:591_4-1671 ( 591) [006] ...1 1034718.004259: tracing_mark_write: E|591
Binder:591_4-1671 ( 591) [006] ...1 1034718.004272: tracing_mark_write: B|591|HIDL::IAllocator::allocate::client
allocator@2.0--595 ( 595) [006] ...1 1034718.004387: tracing_mark_write: B|595|HIDL::IAllocator::allocate::server
HwBinder:595_2-1778 ( 595) [005] ...1 1034718.005344: tracing_mark_write: E|595
HwBinder:595_2-1778 ( 595) [005] ...1 1034718.005347: tracing_mark_write: B|595|ION_IOC_MAP
HwBinder:595_2-1778 ( 595) [005] ...1 1034718.005358: tracing_mark_write: E|595
HwBinder:595_2-1778 ( 595) [005] ...1 1034718.005362: tracing_mark_write: E|595
HwBinder:595_2-1778 ( 595) [005] ...1 1034718.005364: tracing_mark_write: B|595|AllocBuffer
HwBinder:595_2-1778 ( 595) [005] ...1 1034718.005368: tracing_mark_write: B|595|ION_IOC_ALLOC size: 4096
HwBinder:595_2-1778 ( 595) [000] ...1 1034718.005420: tracing_mark_write: E|595
HwBinder:595_2-1778 ( 595) [000] ...1 1034718.005423: tracing_mark_write: B|595|ION_IOC_MAP
HwBinder:595_2-1778 ( 595) [000] ...1 1034718.005435: tracing_mark_write: E|595
HwBinder:595_2-1778 ( 595) [000] ...1 1034718.005438: tracing_mark_write: E|595
HwBinder:595_2-1778 ( 595) [000] ...1 1034718.005501: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [006] ...1 1034718.005545: tracing_mark_write: B|595|AllocBuffer
allocator@2.0--595 ( 595) [006] ...1 1034718.005549: tracing_mark_write: B|595|ION_IOC_ALLOC size: 3919872
Binder:591_3-1218 ( 591) [000] ...1 1034718.005568: tracing_mark_write: B|591|HIDL::IMapper::importBuffer::passthrough
allocator@2.0--595 ( 595) [006] ...1 1034718.005590: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [006] ...1 1034718.005592: tracing_mark_write: B|595|ION_IOC_MAP
Binder:591_3-1218 ( 591) [000] ...1 1034718.005595: tracing_mark_write: E|591
allocator@2.0--595 ( 595) [006] ...1 1034718.005598: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [006] ...1 1034718.005600: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [006] ...1 1034718.005601: tracing_mark_write: B|595|AllocBuffer
Binder:591_3-1218 ( 591) [000] ...1 1034718.005601: tracing_mark_write: E|591
allocator@2.0--595 ( 595) [006] ...1 1034718.005602: tracing_mark_write: B|595|ION_IOC_ALLOC size: 4096
allocator@2.0--595 ( 595) [006] ...1 1034718.005607: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [006] ...1 1034718.005608: tracing_mark_write: B|595|ION_IOC_MAP
allocator@2.0--595 ( 595) [006] ...1 1034718.005611: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [006] ...1 1034718.005612: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [006] ...1 1034718.005637: tracing_mark_write: E|595
Binder:591_3-1218 ( 591) [000] ...1 1034718.005638: tracing_mark_write: B|591|HIDL::IMapper::createDescriptor::passthrough
Binder:591_3-1218 ( 591) [000] ...1 1034718.005642: tracing_mark_write: E|591
Binder:591_3-1218 ( 591) [000] ...1 1034718.005649: tracing_mark_write: B|591|HIDL::IAllocator::allocate::client
HwBinder:595_2-1778 ( 595) [001] ...1 1034718.005650: tracing_mark_write: B|595|FreeBuffer
HwBinder:595_2-1778 ( 595) [001] ...1 1034718.005659: tracing_mark_write: E|595
HwBinder:595_2-1778 ( 595) [001] ...1 1034718.005662: tracing_mark_write: B|595|FreeBuffer
HwBinder:595_2-1778 ( 595) [001] ...1 1034718.005664: tracing_mark_write: B|595|UnmapBuffer
Binder:591_4-1671 ( 591) [006] ...1 1034718.005676: tracing_mark_write: B|591|HIDL::IMapper::importBuffer::passthrough
HwBinder:595_2-1778 ( 595) [001] ...1 1034718.005678: tracing_mark_write: E|595
HwBinder:595_2-1778 ( 595) [001] ...1 1034718.005683: tracing_mark_write: E|595
Binder:591_4-1671 ( 591) [006] ...1 1034718.005689: tracing_mark_write: E|591
Binder:591_4-1671 ( 591) [006] ...1 1034718.005692: tracing_mark_write: E|591
allocator@2.0--595 ( 595) [006] ...1 1034718.005702: tracing_mark_write: B|595|FreeBuffer
HwBinder:595_3-1779 ( 595) [000] ...1 1034718.005705: tracing_mark_write: B|595|HIDL::IAllocator::allocate::server
allocator@2.0--595 ( 595) [006] ...1 1034718.005708: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [006] ...1 1034718.005709: tracing_mark_write: B|595|FreeBuffer
allocator@2.0--595 ( 595) [006] ...1 1034718.005710: tracing_mark_write: B|595|UnmapBuffer
allocator@2.0--595 ( 595) [006] ...1 1034718.005716: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [006] ...1 1034718.005718: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [001] ...1 1034718.005742: tracing_mark_write: B|595|AllocBuffer
HwBinder:595_3-1779 ( 595) [001] ...1 1034718.005747: tracing_mark_write: B|595|ION_IOC_ALLOC size: 8355840
RenderThread-11249 ( 1151) [006] ...1 1034718.005864: tracing_mark_write: B|1151|HIDL::IMapper::importBuffer::passthrough
RenderThread-11249 ( 1151) [006] ...1 1034718.005882: tracing_mark_write: E|1151
HwBinder:595_3-1779 ( 595) [001] ...1 1034718.007742: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [001] ...1 1034718.007746: tracing_mark_write: B|595|ION_IOC_MAP
HwBinder:595_3-1779 ( 595) [001] ...1 1034718.007758: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [001] ...1 1034718.007762: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [001] ...1 1034718.007764: tracing_mark_write: B|595|AllocBuffer
HwBinder:595_3-1779 ( 595) [001] ...1 1034718.007768: tracing_mark_write: B|595|ION_IOC_ALLOC size: 4096
HwBinder:595_3-1779 ( 595) [000] ...1 1034718.007816: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [000] ...1 1034718.007819: tracing_mark_write: B|595|ION_IOC_MAP
HwBinder:595_3-1779 ( 595) [000] ...1 1034718.007828: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [000] ...1 1034718.007830: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [000] ...1 1034718.007863: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [000] ...1 1034718.007894: tracing_mark_write: B|595|FreeBuffer
HwBinder:595_3-1779 ( 595) [000] ...1 1034718.007900: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [000] ...1 1034718.007902: tracing_mark_write: B|595|FreeBuffer
HwBinder:595_3-1779 ( 595) [000] ...1 1034718.007905: tracing_mark_write: B|595|UnmapBuffer
HwBinder:595_3-1779 ( 595) [000] ...1 1034718.007916: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [000] ...1 1034718.007921: tracing_mark_write: E|595
Binder:591_3-1218 ( 591) [000] ...1 1034718.007952: tracing_mark_write: B|591|HIDL::IMapper::importBuffer::passthrough
Binder:591_3-1218 ( 591) [000] ...1 1034718.007973: tracing_mark_write: E|591
Binder:591_3-1218 ( 591) [000] ...1 1034718.007977: tracing_mark_write: E|591
Binder:591_3-1218 ( 591) [000] ...1 1034718.008007: tracing_mark_write: B|591|HIDL::IMapper::createDescriptor::passthrough
Binder:591_3-1218 ( 591) [000] ...1 1034718.008011: tracing_mark_write: E|591
Binder:591_3-1218 ( 591) [000] ...1 1034718.008016: tracing_mark_write: B|591|HIDL::IAllocator::allocate::client
HwBinder:595_3-1779 ( 595) [000] ...1 1034718.008046: tracing_mark_write: B|595|HIDL::IAllocator::allocate::server
HwBinder:595_3-1779 ( 595) [000] ...1 1034718.008055: tracing_mark_write: B|595|AllocBuffer
HwBinder:595_3-1779 ( 595) [000] ...1 1034718.008059: tracing_mark_write: B|595|ION_IOC_ALLOC size: 8355840
RenderThread-27026 (27005) [004] ...1 1034718.009950: tracing_mark_write: B|27005|HIDL::IServiceManager::getTransport::client
hwservicemanag-570 ( 570) [003] ...1 1034718.010072: tracing_mark_write: B|570|HIDL::IServiceManager::getTransport::server
HwBinder:595_3-1779 ( 595) [000] ...1 1034718.010358: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [000] ...1 1034718.010362: tracing_mark_write: B|595|ION_IOC_MAP
HwBinder:595_3-1779 ( 595) [000] ...1 1034718.010377: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [000] ...1 1034718.010382: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [000] ...1 1034718.010386: tracing_mark_write: B|595|AllocBuffer
HwBinder:595_3-1779 ( 595) [000] ...1 1034718.010392: tracing_mark_write: B|595|ION_IOC_ALLOC size: 4096
HwBinder:595_3-1779 ( 595) [000] ...1 1034718.010401: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [000] ...1 1034718.010403: tracing_mark_write: B|595|ION_IOC_MAP
HwBinder:595_3-1779 ( 595) [000] ...1 1034718.010410: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [000] ...1 1034718.010413: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [000] ...1 1034718.010456: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [000] ...1 1034718.010498: tracing_mark_write: B|595|FreeBuffer
HwBinder:595_3-1779 ( 595) [000] ...1 1034718.010505: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [000] ...1 1034718.010507: tracing_mark_write: B|595|FreeBuffer
HwBinder:595_3-1779 ( 595) [000] ...1 1034718.010510: tracing_mark_write: B|595|UnmapBuffer
HwBinder:595_3-1779 ( 595) [000] ...1 1034718.010519: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [000] ...1 1034718.010524: tracing_mark_write: E|595
hwservicemanag-570 ( 570) [003] ...1 1034718.010539: tracing_mark_write: E|570
Binder:591_3-1218 ( 591) [000] ...1 1034718.010573: tracing_mark_write: B|591|HIDL::IMapper::importBuffer::passthrough
Binder:591_3-1218 ( 591) [000] ...1 1034718.010601: tracing_mark_write: E|591
Binder:591_3-1218 ( 591) [000] ...1 1034718.010606: tracing_mark_write: E|591
RenderThread-27026 (27005) [003] ...1 1034718.010630: tracing_mark_write: E|27005
RenderThread-27026 (27005) [003] ...1 1034718.010656: tracing_mark_write: B|27005|HIDL::IServiceManager::registerForNotifications::client
hwservicemanag-570 ( 570) [003] ...1 1034718.011094: tracing_mark_write: B|570|HIDL::IServiceManager::registerForNotifications::server
hwservicemanag-570 ( 570) [003] ...1 1034718.011292: tracing_mark_write: B|570|HIDL::IServiceNotification::onRegistration::client
hwservicemanag-570 ( 570) [003] ...1 1034718.011343: tracing_mark_write: E|570
hwservicemanag-570 ( 570) [003] ...1 1034718.011351: tracing_mark_write: E|570
HwBinder:27005-27027 (27005) [004] ...1 1034718.011364: tracing_mark_write: B|27005|HIDL::IServiceNotification::onRegistration::server
HwBinder:27005-27027 (27005) [004] ...1 1034718.011371: tracing_mark_write: E|27005
RenderThread-27026 (27005) [003] ...1 1034718.011406: tracing_mark_write: E|27005
RenderThread-27026 (27005) [003] ...1 1034718.011422: tracing_mark_write: B|27005|HIDL::IServiceManager::get::client
hwservicemanag-570 ( 570) [003] ...1 1034718.011462: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
hwservicemanag-570 ( 570) [003] ...1 1034718.011606: tracing_mark_write: E|570
RenderThread-27026 (27005) [003] ...1 1034718.011671: tracing_mark_write: E|27005
RenderThread-27026 (27005) [003] ...1 1034718.011681: tracing_mark_write: B|27005|HIDL::IBase::interfaceChain::client
HwBinder:594_2-7100 ( 594) [003] ...1 1034718.011767: tracing_mark_write: B|594|HIDL::IBase::interfaceChain::server
HwBinder:594_2-7100 ( 594) [003] ...1 1034718.011800: tracing_mark_write: E|594
RenderThread-27026 (27005) [003] ...1 1034718.011861: tracing_mark_write: E|27005
RenderThread-27026 (27005) [003] ...1 1034718.011870: tracing_mark_write: B|27005|HIDL::IServiceManager::unregisterForNotifications::client
hwservicemanag-570 ( 570) [003] ...1 1034718.011940: tracing_mark_write: B|570|HIDL::IServiceManager::unregisterForNotifications::server
hwservicemanag-570 ( 570) [003] ...1 1034718.011953: tracing_mark_write: E|570
RenderThread-27026 (27005) [003] ...1 1034718.011997: tracing_mark_write: E|27005
RenderThread-27026 (27005) [003] ...1 1034718.012058: tracing_mark_write: B|27005|HIDL::ISurfaceFlingerConfigs::hasWideColorDisplay::client
HwBinder:594_2-7100 ( 594) [003] ...1 1034718.012089: tracing_mark_write: B|594|HIDL::ISurfaceFlingerConfigs::hasWideColorDisplay::server
HwBinder:594_2-7100 ( 594) [003] ...1 1034718.012097: tracing_mark_write: E|594
RenderThread-27026 (27005) [003] ...1 1034718.012133: tracing_mark_write: E|27005
RenderThread-27026 (27005) [003] ...1 1034718.012281: tracing_mark_write: B|27005|HIDL::ISurfaceFlingerConfigs::hasHDRDisplay::client
HwBinder:594_2-7100 ( 594) [003] ...1 1034718.012310: tracing_mark_write: B|594|HIDL::ISurfaceFlingerConfigs::hasHDRDisplay::server
HwBinder:594_2-7100 ( 594) [003] ...1 1034718.012317: tracing_mark_write: E|594
RenderThread-27026 (27005) [003] ...1 1034718.012339: tracing_mark_write: E|27005
surfaceflinger-591 ( 591) [000] ...1 1034718.015259: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034718.015375: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034718.015449: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.015459: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.015463: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.015702: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034718.015766: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.015784: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.015804: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.015865: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034718.015935: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034718.015976: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034718.015986: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.015998: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034718.016088: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.016106: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.016128: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.016175: tracing_mark_write: E|591
Binder:591_4-1671 ( 591) [005] ...1 1034718.018549: tracing_mark_write: B|591|HIDL::IMapper::freeBuffer::passthrough
Binder:591_4-1671 ( 591) [005] ...1 1034718.018565: tracing_mark_write: B|591|FreeBuffer
Binder:591_4-1671 ( 591) [005] ...1 1034718.018588: tracing_mark_write: E|591
Binder:591_4-1671 ( 591) [005] ...1 1034718.018589: tracing_mark_write: B|591|FreeBuffer
Binder:591_4-1671 ( 591) [005] ...1 1034718.018596: tracing_mark_write: E|591
Binder:591_4-1671 ( 591) [005] ...1 1034718.018600: tracing_mark_write: E|591
Binder:591_4-1671 ( 591) [005] ...1 1034718.018609: tracing_mark_write: B|591|HIDL::IMapper::createDescriptor::passthrough
Binder:591_4-1671 ( 591) [005] ...1 1034718.018612: tracing_mark_write: E|591
Binder:591_4-1671 ( 591) [005] ...1 1034718.018619: tracing_mark_write: B|591|HIDL::IAllocator::allocate::client
surfaceflinger-591 ( 591) [000] ...1 1034718.018633: tracing_mark_write: B|591|HIDL::IComposerClient::getActiveConfig::client
HwBinder:595_3-1779 ( 595) [005] ...1 1034718.018690: tracing_mark_write: B|595|HIDL::IAllocator::allocate::server
HwBinder:595_3-1779 ( 595) [005] ...1 1034718.018711: tracing_mark_write: B|595|AllocBuffer
HwBinder:595_3-1779 ( 595) [005] ...1 1034718.018716: tracing_mark_write: B|595|ION_IOC_ALLOC size: 3919872
composer@2.1-s-593 ( 593) [001] ...1 1034718.018717: tracing_mark_write: B|593|HIDL::IComposerClient::getActiveConfig::server
composer@2.1-s-593 ( 593) [001] ...1 1034718.018731: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.018768: tracing_mark_write: E|591
HwBinder:595_3-1779 ( 595) [005] ...1 1034718.020191: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [005] ...1 1034718.020194: tracing_mark_write: B|595|ION_IOC_MAP
HwBinder:595_3-1779 ( 595) [005] ...1 1034718.020206: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [005] ...1 1034718.020208: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [005] ...1 1034718.020210: tracing_mark_write: B|595|AllocBuffer
HwBinder:595_3-1779 ( 595) [005] ...1 1034718.020213: tracing_mark_write: B|595|ION_IOC_ALLOC size: 4096
HwBinder:595_3-1779 ( 595) [005] ...1 1034718.020219: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [005] ...1 1034718.020220: tracing_mark_write: B|595|ION_IOC_MAP
HwBinder:595_3-1779 ( 595) [005] ...1 1034718.020223: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [005] ...1 1034718.020224: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [005] ...1 1034718.020255: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [005] ...1 1034718.020282: tracing_mark_write: B|595|FreeBuffer
HwBinder:595_3-1779 ( 595) [005] ...1 1034718.020286: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [005] ...1 1034718.020287: tracing_mark_write: B|595|FreeBuffer
HwBinder:595_3-1779 ( 595) [005] ...1 1034718.020289: tracing_mark_write: B|595|UnmapBuffer
HwBinder:595_3-1779 ( 595) [005] ...1 1034718.020294: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [005] ...1 1034718.020297: tracing_mark_write: E|595
Binder:591_4-1671 ( 591) [005] ...1 1034718.020333: tracing_mark_write: B|591|HIDL::IMapper::importBuffer::passthrough
Binder:591_4-1671 ( 591) [005] ...1 1034718.020350: tracing_mark_write: E|591
Binder:591_4-1671 ( 591) [005] ...1 1034718.020353: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034718.020475: tracing_mark_write: B|591|HIDL::IComposerClient::getActiveConfig::client
RenderThread-11249 ( 1151) [006] ...1 1034718.020477: tracing_mark_write: B|1151|HIDL::IMapper::importBuffer::passthrough
RenderThread-11249 ( 1151) [006] ...1 1034718.020496: tracing_mark_write: E|1151
composer@2.1-s-593 ( 593) [001] ...1 1034718.020529: tracing_mark_write: B|593|HIDL::IComposerClient::getActiveConfig::server
composer@2.1-s-593 ( 593) [001] ...1 1034718.020539: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.020568: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [004] ...1 1034718.021161: tracing_mark_write: E|778
surfaceflinger-591 ( 591) [001] ...1 1034718.021188: tracing_mark_write: B|591|HIDL::IComposerClient::getActiveConfig::client
SensorService-1283 ( 1151) [000] ...1 1034718.021225: tracing_mark_write: E|1151
composer@2.1-s-593 ( 593) [002] ...1 1034718.021247: tracing_mark_write: B|593|HIDL::IComposerClient::getActiveConfig::server
composer@2.1-s-593 ( 593) [002] ...1 1034718.021260: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034718.021292: tracing_mark_write: E|591
SensorService-1283 ( 1151) [000] ...1 1034718.021293: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [004] ...1 1034718.021335: tracing_mark_write: B|778|HIDL::ISensors::poll::server
Binder:591_4-1671 ( 591) [006] ...1 1034718.022819: tracing_mark_write: B|591|HIDL::IMapper::freeBuffer::passthrough
Binder:591_4-1671 ( 591) [006] ...1 1034718.022962: tracing_mark_write: B|591|FreeBuffer
Binder:591_4-1671 ( 591) [006] ...1 1034718.022992: tracing_mark_write: E|591
Binder:591_4-1671 ( 591) [006] ...1 1034718.022993: tracing_mark_write: B|591|FreeBuffer
Binder:591_4-1671 ( 591) [006] ...1 1034718.023000: tracing_mark_write: E|591
Binder:591_4-1671 ( 591) [006] ...1 1034718.023004: tracing_mark_write: E|591
Binder:591_4-1671 ( 591) [006] ...1 1034718.023019: tracing_mark_write: B|591|HIDL::IMapper::createDescriptor::passthrough
Binder:591_4-1671 ( 591) [006] ...1 1034718.023021: tracing_mark_write: E|591
Binder:591_4-1671 ( 591) [006] ...1 1034718.023028: tracing_mark_write: B|591|HIDL::IAllocator::allocate::client
HwBinder:595_3-1779 ( 595) [006] ...1 1034718.023081: tracing_mark_write: B|595|HIDL::IAllocator::allocate::server
HwBinder:595_3-1779 ( 595) [006] ...1 1034718.023103: tracing_mark_write: B|595|AllocBuffer
HwBinder:595_3-1779 ( 595) [006] ...1 1034718.023110: tracing_mark_write: B|595|ION_IOC_ALLOC size: 8417280
HwBinder:595_3-1779 ( 595) [006] ...1 1034718.025001: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [006] ...1 1034718.025005: tracing_mark_write: B|595|ION_IOC_MAP
HwBinder:595_3-1779 ( 595) [006] ...1 1034718.025017: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [006] ...1 1034718.025020: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [006] ...1 1034718.025022: tracing_mark_write: B|595|AllocBuffer
HwBinder:595_3-1779 ( 595) [006] ...1 1034718.025026: tracing_mark_write: B|595|ION_IOC_ALLOC size: 4096
HwBinder:595_3-1779 ( 595) [006] ...1 1034718.025032: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [006] ...1 1034718.025033: tracing_mark_write: B|595|ION_IOC_MAP
HwBinder:595_3-1779 ( 595) [006] ...1 1034718.025037: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [006] ...1 1034718.025038: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [006] ...1 1034718.025077: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [006] ...1 1034718.025113: tracing_mark_write: B|595|FreeBuffer
HwBinder:595_3-1779 ( 595) [006] ...1 1034718.025118: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [006] ...1 1034718.025119: tracing_mark_write: B|595|FreeBuffer
HwBinder:595_3-1779 ( 595) [006] ...1 1034718.025120: tracing_mark_write: B|595|UnmapBuffer
HwBinder:595_3-1779 ( 595) [006] ...1 1034718.025131: tracing_mark_write: E|595
Binder:591_4-1671 ( 591) [005] ...1 1034718.025134: tracing_mark_write: B|591|HIDL::IMapper::importBuffer::passthrough
HwBinder:595_3-1779 ( 595) [006] ...1 1034718.025135: tracing_mark_write: E|595
Binder:591_4-1671 ( 591) [005] ...1 1034718.025159: tracing_mark_write: E|591
Binder:591_4-1671 ( 591) [005] ...1 1034718.025163: tracing_mark_write: E|591
RenderThread-27026 (27005) [006] ...1 1034718.025348: tracing_mark_write: B|27005|HIDL::IServiceManager::getTransport::client
hwservicemanag-570 ( 570) [000] ...1 1034718.025432: tracing_mark_write: B|570|HIDL::IServiceManager::getTransport::server
hwservicemanag-570 ( 570) [000] ...1 1034718.025772: tracing_mark_write: E|570
RenderThread-27026 (27005) [005] ...1 1034718.025816: tracing_mark_write: E|27005
RenderThread-27026 (27005) [005] ...1 1034718.025828: tracing_mark_write: B|27005|HIDL::IServiceManager::registerForNotifications::client
hwservicemanag-570 ( 570) [000] ...1 1034718.025984: tracing_mark_write: B|570|HIDL::IServiceManager::registerForNotifications::server
hwservicemanag-570 ( 570) [000] ...1 1034718.026127: tracing_mark_write: E|570
RenderThread-27026 (27005) [007] ...1 1034718.026167: tracing_mark_write: E|27005
RenderThread-27026 (27005) [007] ...1 1034718.026174: tracing_mark_write: B|27005|HIDL::IServiceManager::unregisterForNotifications::client
hwservicemanag-570 ( 570) [000] ...1 1034718.026240: tracing_mark_write: B|570|HIDL::IServiceManager::unregisterForNotifications::server
hwservicemanag-570 ( 570) [000] ...1 1034718.026255: tracing_mark_write: E|570
RenderThread-27026 (27005) [005] ...1 1034718.026286: tracing_mark_write: E|27005
RenderThread-27026 (27005) [005] ...1 1034718.027042: tracing_mark_write: B|27005|HIDL::IServiceManager::registerPassthroughClient::client
hwservicemanag-570 ( 570) [000] ...1 1034718.027087: tracing_mark_write: B|570|HIDL::IServiceManager::registerPassthroughClient::server
hwservicemanag-570 ( 570) [000] ...1 1034718.027214: tracing_mark_write: E|570
RenderThread-27026 (27005) [004] ...1 1034718.027256: tracing_mark_write: E|27005
RenderThread-27026 (27005) [004] ...1 1034718.027322: tracing_mark_write: B|27005|HIDL::IMapper::interfaceChain::passthrough
RenderThread-27026 (27005) [004] ...1 1034718.027327: tracing_mark_write: E|27005
RenderThread-27026 (27005) [004] ...1 1034718.027339: tracing_mark_write: B|27005|HIDL::IMapper::interfaceChain::passthrough
RenderThread-27026 (27005) [004] ...1 1034718.027341: tracing_mark_write: E|27005
RenderThread-27026 (27005) [004] ...1 1034718.027357: tracing_mark_write: B|27005|HIDL::IMapper::importBuffer::passthrough
RenderThread-27026 (27005) [004] ...1 1034718.027391: tracing_mark_write: E|27005
Binder:591_4-1671 ( 591) [005] ...1 1034718.027455: tracing_mark_write: B|591|HIDL::IMapper::freeBuffer::passthrough
Binder:591_4-1671 ( 591) [005] ...1 1034718.027465: tracing_mark_write: B|591|FreeBuffer
Binder:591_4-1671 ( 591) [005] ...1 1034718.027482: tracing_mark_write: E|591
Binder:591_4-1671 ( 591) [005] ...1 1034718.027484: tracing_mark_write: B|591|FreeBuffer
Binder:591_4-1671 ( 591) [005] ...1 1034718.027491: tracing_mark_write: E|591
Binder:591_4-1671 ( 591) [005] ...1 1034718.027494: tracing_mark_write: E|591
Binder:591_4-1671 ( 591) [005] ...1 1034718.027503: tracing_mark_write: B|591|HIDL::IMapper::createDescriptor::passthrough
Binder:591_4-1671 ( 591) [005] ...1 1034718.027506: tracing_mark_write: E|591
Binder:591_4-1671 ( 591) [005] ...1 1034718.027511: tracing_mark_write: B|591|HIDL::IAllocator::allocate::client
HwBinder:595_3-1779 ( 595) [006] ...1 1034718.027551: tracing_mark_write: B|595|HIDL::IAllocator::allocate::server
HwBinder:595_3-1779 ( 595) [006] ...1 1034718.027566: tracing_mark_write: B|595|AllocBuffer
HwBinder:595_3-1779 ( 595) [006] ...1 1034718.027570: tracing_mark_write: B|595|ION_IOC_ALLOC size: 3919872
HwBinder:595_3-1779 ( 595) [006] ...1 1034718.027615: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [006] ...1 1034718.027616: tracing_mark_write: B|595|ION_IOC_MAP
HwBinder:595_3-1779 ( 595) [006] ...1 1034718.027622: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [006] ...1 1034718.027624: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [006] ...1 1034718.027625: tracing_mark_write: B|595|AllocBuffer
HwBinder:595_3-1779 ( 595) [006] ...1 1034718.027627: tracing_mark_write: B|595|ION_IOC_ALLOC size: 4096
HwBinder:595_3-1779 ( 595) [006] ...1 1034718.027631: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [006] ...1 1034718.027632: tracing_mark_write: B|595|ION_IOC_MAP
HwBinder:595_3-1779 ( 595) [006] ...1 1034718.027636: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [006] ...1 1034718.027638: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [006] ...1 1034718.027659: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [006] ...1 1034718.027679: tracing_mark_write: B|595|FreeBuffer
HwBinder:595_3-1779 ( 595) [006] ...1 1034718.027684: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [006] ...1 1034718.027686: tracing_mark_write: B|595|FreeBuffer
HwBinder:595_3-1779 ( 595) [006] ...1 1034718.027687: tracing_mark_write: B|595|UnmapBuffer
HwBinder:595_3-1779 ( 595) [006] ...1 1034718.027693: tracing_mark_write: E|595
Binder:591_4-1671 ( 591) [004] ...1 1034718.027694: tracing_mark_write: B|591|HIDL::IMapper::importBuffer::passthrough
HwBinder:595_3-1779 ( 595) [006] ...1 1034718.027697: tracing_mark_write: E|595
Binder:591_4-1671 ( 591) [004] ...1 1034718.027708: tracing_mark_write: E|591
Binder:591_4-1671 ( 591) [004] ...1 1034718.027711: tracing_mark_write: E|591
RenderThread-11249 ( 1151) [006] ...1 1034718.027813: tracing_mark_write: B|1151|HIDL::IMapper::importBuffer::passthrough
RenderThread-11249 ( 1151) [006] ...1 1034718.027831: tracing_mark_write: E|1151
surfaceflinger-591 ( 591) [000] ...1 1034718.032046: tracing_mark_write: B|591|HIDL::IComposerClient::createLayer::client
composer@2.1-s-593 ( 593) [002] ...1 1034718.032146: tracing_mark_write: B|593|HIDL::IComposerClient::createLayer::server
composer@2.1-s-593 ( 593) [002] ...1 1034718.032205: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.032249: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034718.032369: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [002] ...1 1034718.032442: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [002] ...1 1034718.032515: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [002] ...1 1034718.032525: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.032530: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [002] ...1 1034718.032888: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [002] ...1 1034718.032986: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.033009: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.033030: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.033084: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034718.033154: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [002] ...1 1034718.033230: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [002] ...1 1034718.033242: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [002] ...1 1034718.033256: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [002] ...1 1034718.033372: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.033391: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.033416: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.033462: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [001] ...1 1034718.040462: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034718.040546: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034718.040628: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034718.040687: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034718.048840: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [002] ...1 1034718.048964: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [002] ...1 1034718.049045: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [002] ...1 1034718.049055: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.049060: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [002] ...1 1034718.049344: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [002] ...1 1034718.049416: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.049436: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.049459: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.049521: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034718.049599: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [002] ...1 1034718.049640: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [002] ...1 1034718.049650: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [002] ...1 1034718.049661: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [002] ...1 1034718.049749: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.049768: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.049794: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.049839: tracing_mark_write: E|591
Binder:591_4-1671 ( 591) [005] ...1 1034718.059510: tracing_mark_write: B|591|HIDL::IMapper::freeBuffer::passthrough
Binder:591_4-1671 ( 591) [005] ...1 1034718.059528: tracing_mark_write: B|591|FreeBuffer
Binder:591_4-1671 ( 591) [005] ...1 1034718.059571: tracing_mark_write: E|591
Binder:591_4-1671 ( 591) [005] ...1 1034718.059573: tracing_mark_write: B|591|FreeBuffer
Binder:591_4-1671 ( 591) [005] ...1 1034718.059580: tracing_mark_write: E|591
Binder:591_4-1671 ( 591) [005] ...1 1034718.059584: tracing_mark_write: E|591
Binder:591_4-1671 ( 591) [005] ...1 1034718.059600: tracing_mark_write: B|591|HIDL::IMapper::createDescriptor::passthrough
Binder:591_4-1671 ( 591) [005] ...1 1034718.059603: tracing_mark_write: E|591
Binder:591_4-1671 ( 591) [005] ...1 1034718.059611: tracing_mark_write: B|591|HIDL::IAllocator::allocate::client
HwBinder:595_3-1779 ( 595) [007] ...1 1034718.059675: tracing_mark_write: B|595|HIDL::IAllocator::allocate::server
HwBinder:595_3-1779 ( 595) [007] ...1 1034718.059696: tracing_mark_write: B|595|AllocBuffer
HwBinder:595_3-1779 ( 595) [007] ...1 1034718.059706: tracing_mark_write: B|595|ION_IOC_ALLOC size: 8417280
HwBinder:778_1-1087 ( 778) [001] ...1 1034718.059749: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034718.059854: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034718.059977: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034718.060053: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:595_3-1779 ( 595) [007] ...1 1034718.060495: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [007] ...1 1034718.060497: tracing_mark_write: B|595|ION_IOC_MAP
HwBinder:595_3-1779 ( 595) [007] ...1 1034718.060508: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [007] ...1 1034718.060510: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [007] ...1 1034718.060512: tracing_mark_write: B|595|AllocBuffer
HwBinder:595_3-1779 ( 595) [007] ...1 1034718.060516: tracing_mark_write: B|595|ION_IOC_ALLOC size: 4096
HwBinder:595_3-1779 ( 595) [007] ...1 1034718.060522: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [007] ...1 1034718.060523: tracing_mark_write: B|595|ION_IOC_MAP
HwBinder:595_3-1779 ( 595) [007] ...1 1034718.060527: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [007] ...1 1034718.060528: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [007] ...1 1034718.060562: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [007] ...1 1034718.060594: tracing_mark_write: B|595|FreeBuffer
HwBinder:595_3-1779 ( 595) [007] ...1 1034718.060599: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [007] ...1 1034718.060600: tracing_mark_write: B|595|FreeBuffer
HwBinder:595_3-1779 ( 595) [007] ...1 1034718.060601: tracing_mark_write: B|595|UnmapBuffer
Binder:591_4-1671 ( 591) [005] ...1 1034718.060607: tracing_mark_write: B|591|HIDL::IMapper::importBuffer::passthrough
HwBinder:595_3-1779 ( 595) [007] ...1 1034718.060615: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [007] ...1 1034718.060618: tracing_mark_write: E|595
Binder:591_4-1671 ( 591) [005] ...1 1034718.060628: tracing_mark_write: E|591
Binder:591_4-1671 ( 591) [005] ...1 1034718.060632: tracing_mark_write: E|591
RenderThread-27026 (27005) [005] ...1 1034718.061298: tracing_mark_write: B|27005|HIDL::IMapper::importBuffer::passthrough
RenderThread-27026 (27005) [005] ...1 1034718.061996: tracing_mark_write: E|27005
surfaceflinger-591 ( 591) [000] ...1 1034718.062894: tracing_mark_write: B|591|HIDL::IComposerClient::getActiveConfig::client
composer@2.1-s-593 ( 593) [002] ...1 1034718.062992: tracing_mark_write: B|593|HIDL::IComposerClient::getActiveConfig::server
composer@2.1-s-593 ( 593) [002] ...1 1034718.063009: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.063047: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034718.065644: tracing_mark_write: B|591|HIDL::IComposerClient::createLayer::client
composer@2.1-s-593 ( 593) [002] ...1 1034718.065759: tracing_mark_write: B|593|HIDL::IComposerClient::createLayer::server
composer@2.1-s-593 ( 593) [002] ...1 1034718.065803: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.065846: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034718.065977: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [002] ...1 1034718.066088: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [002] ...1 1034718.066158: tracing_mark_write: B|593|HIDL::IMapper::importBuffer::passthrough
composer@2.1-s-593 ( 593) [002] ...1 1034718.066212: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.066267: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [002] ...1 1034718.066276: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.066281: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [002] ...1 1034718.066607: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [002] ...1 1034718.066702: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.066725: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.066748: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.066817: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034718.066906: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [002] ...1 1034718.066956: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [002] ...1 1034718.066969: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [002] ...1 1034718.066984: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [002] ...1 1034718.067095: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.067118: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.067146: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.067204: tracing_mark_write: E|591
RenderThread-11249 ( 1151) [007] ...1 1034718.068600: tracing_mark_write: B|1151|HIDL::IMapper::createDescriptor::passthrough
RenderThread-11249 ( 1151) [007] ...1 1034718.068607: tracing_mark_write: E|1151
RenderThread-11249 ( 1151) [007] ...1 1034718.068621: tracing_mark_write: B|1151|HIDL::IAllocator::allocate::client
HwBinder:595_3-1779 ( 595) [004] ...1 1034718.068705: tracing_mark_write: B|595|HIDL::IAllocator::allocate::server
HwBinder:595_3-1779 ( 595) [004] ...1 1034718.068726: tracing_mark_write: B|595|AllocBuffer
HwBinder:595_3-1779 ( 595) [004] ...1 1034718.068731: tracing_mark_write: B|595|ION_IOC_ALLOC size: 2211840
HwBinder:595_3-1779 ( 595) [004] ...1 1034718.068774: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [004] ...1 1034718.068775: tracing_mark_write: B|595|ION_IOC_MAP
HwBinder:595_3-1779 ( 595) [004] ...1 1034718.068783: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [004] ...1 1034718.068785: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [004] ...1 1034718.068787: tracing_mark_write: B|595|AllocBuffer
HwBinder:595_3-1779 ( 595) [004] ...1 1034718.068789: tracing_mark_write: B|595|ION_IOC_ALLOC size: 4096
HwBinder:595_3-1779 ( 595) [004] ...1 1034718.068793: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [004] ...1 1034718.068794: tracing_mark_write: B|595|ION_IOC_MAP
HwBinder:595_3-1779 ( 595) [004] ...1 1034718.068798: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [004] ...1 1034718.068799: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [004] ...1 1034718.068828: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [004] ...1 1034718.068850: tracing_mark_write: B|595|FreeBuffer
HwBinder:595_3-1779 ( 595) [004] ...1 1034718.068855: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [004] ...1 1034718.068856: tracing_mark_write: B|595|FreeBuffer
HwBinder:595_3-1779 ( 595) [004] ...1 1034718.068857: tracing_mark_write: B|595|UnmapBuffer
RenderThread-11249 ( 1151) [007] ...1 1034718.068862: tracing_mark_write: B|1151|HIDL::IMapper::importBuffer::passthrough
HwBinder:595_3-1779 ( 595) [004] ...1 1034718.068866: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [004] ...1 1034718.068869: tracing_mark_write: E|595
RenderThread-11249 ( 1151) [007] ...1 1034718.068879: tracing_mark_write: E|1151
RenderThread-11249 ( 1151) [007] ...1 1034718.068882: tracing_mark_write: E|1151
RenderThread-11249 ( 1151) [007] ...1 1034718.069506: tracing_mark_write: B|1151|LockBuffer
RenderThread-11249 ( 1151) [007] ...1 1034718.069511: tracing_mark_write: B|1151|MapBuffer
RenderThread-11249 ( 1151) [007] ...1 1034718.069528: tracing_mark_write: E|1151
RenderThread-11249 ( 1151) [007] ...1 1034718.069531: tracing_mark_write: B|1151|CleanBuffer
RenderThread-11249 ( 1151) [007] ...1 1034718.069532: tracing_mark_write: C|1151|operation id|2
RenderThread-11249 ( 1151) [007] ...1 1034718.070009: tracing_mark_write: E|1151
RenderThread-11249 ( 1151) [007] ...1 1034718.070012: tracing_mark_write: E|1151
RenderThread-11249 ( 1151) [007] ...1 1034718.071636: tracing_mark_write: B|1151|CleanBuffer
RenderThread-11249 ( 1151) [007] ...1 1034718.071641: tracing_mark_write: C|1151|operation id|1
RenderThread-11249 ( 1151) [007] ...1 1034718.072064: tracing_mark_write: E|1151
Binder:2279_3-2325 ( 2279) [007] ...1 1034718.072623: tracing_mark_write: B|2279|HIDL::IMapper::importBuffer::passthrough
Binder:2279_3-2325 ( 2279) [007] ...1 1034718.072679: tracing_mark_write: E|2279
Binder:591_3-1218 ( 591) [004] ...1 1034718.074330: tracing_mark_write: B|591|HIDL::IMapper::freeBuffer::passthrough
Binder:591_3-1218 ( 591) [004] ...1 1034718.074348: tracing_mark_write: B|591|FreeBuffer
Binder:591_3-1218 ( 591) [004] ...1 1034718.074369: tracing_mark_write: E|591
Binder:591_3-1218 ( 591) [004] ...1 1034718.074371: tracing_mark_write: B|591|FreeBuffer
Binder:591_3-1218 ( 591) [004] ...1 1034718.074378: tracing_mark_write: E|591
Binder:591_3-1218 ( 591) [004] ...1 1034718.074382: tracing_mark_write: E|591
Binder:591_3-1218 ( 591) [004] ...1 1034718.074399: tracing_mark_write: B|591|HIDL::IMapper::createDescriptor::passthrough
Binder:591_3-1218 ( 591) [004] ...1 1034718.074403: tracing_mark_write: E|591
Binder:591_3-1218 ( 591) [004] ...1 1034718.074410: tracing_mark_write: B|591|HIDL::IAllocator::allocate::client
HwBinder:595_3-1779 ( 595) [004] ...1 1034718.074473: tracing_mark_write: B|595|HIDL::IAllocator::allocate::server
HwBinder:595_3-1779 ( 595) [004] ...1 1034718.074493: tracing_mark_write: B|595|AllocBuffer
HwBinder:595_3-1779 ( 595) [004] ...1 1034718.074499: tracing_mark_write: B|595|ION_IOC_ALLOC size: 8417280
HwBinder:595_3-1779 ( 595) [004] ...1 1034718.075553: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [004] ...1 1034718.075555: tracing_mark_write: B|595|ION_IOC_MAP
HwBinder:595_3-1779 ( 595) [004] ...1 1034718.075566: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [004] ...1 1034718.075569: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [004] ...1 1034718.075571: tracing_mark_write: B|595|AllocBuffer
HwBinder:595_3-1779 ( 595) [004] ...1 1034718.075575: tracing_mark_write: B|595|ION_IOC_ALLOC size: 4096
HwBinder:595_3-1779 ( 595) [004] ...1 1034718.075583: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [004] ...1 1034718.075584: tracing_mark_write: B|595|ION_IOC_MAP
HwBinder:595_3-1779 ( 595) [004] ...1 1034718.075588: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [004] ...1 1034718.075589: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [004] ...1 1034718.075621: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [004] ...1 1034718.075659: tracing_mark_write: B|595|FreeBuffer
HwBinder:595_3-1779 ( 595) [004] ...1 1034718.075664: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [004] ...1 1034718.075665: tracing_mark_write: B|595|FreeBuffer
HwBinder:595_3-1779 ( 595) [004] ...1 1034718.075667: tracing_mark_write: B|595|UnmapBuffer
HwBinder:595_3-1779 ( 595) [004] ...1 1034718.075673: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [004] ...1 1034718.075676: tracing_mark_write: E|595
Binder:591_3-1218 ( 591) [004] ...1 1034718.075716: tracing_mark_write: B|591|HIDL::IMapper::importBuffer::passthrough
Binder:591_3-1218 ( 591) [004] ...1 1034718.075735: tracing_mark_write: E|591
Binder:591_3-1218 ( 591) [004] ...1 1034718.075739: tracing_mark_write: E|591
RenderThread-27026 (27005) [005] ...1 1034718.075868: tracing_mark_write: B|27005|HIDL::IMapper::importBuffer::passthrough
RenderThread-27026 (27005) [004] ...1 1034718.075942: tracing_mark_write: E|27005
Binder:1151_D-2620 ( 1151) [007] ...1 1034718.078687: tracing_mark_write: B|1151|HIDL::IPower::powerHintAsync::client
Binder:1151_D-2620 ( 1151) [007] ...1 1034718.078730: tracing_mark_write: E|1151
power@1.2-serv-773 ( 773) [004] ...1 1034718.078771: tracing_mark_write: B|773|HIDL::IPower::powerHintAsync::server
power@1.2-serv-773 ( 773) [004] ...1 1034718.078853: tracing_mark_write: B|773|launch
power@1.2-serv-773 ( 773) [004] ...1 1034718.078856: tracing_mark_write: C|773|launch_lock|0
HwBinder:778_1-1087 ( 778) [000] ...1 1034718.078903: tracing_mark_write: E|778
power@1.2-serv-773 ( 773) [004] ...1 1034718.078903: tracing_mark_write: E|773
power@1.2-serv-773 ( 773) [004] ...1 1034718.078906: tracing_mark_write: E|773
SensorService-1283 ( 1151) [006] ...1 1034718.078979: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034718.079028: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034718.079084: tracing_mark_write: B|778|HIDL::ISensors::poll::server
android.bg-1184 ( 1151) [000] ...1 1034718.079654: tracing_mark_write: B|1151|HIDL::IMemtrack::getMemory::client
memtrack@1.0-s-748 ( 748) [004] ...1 1034718.079750: tracing_mark_write: B|748|HIDL::IMemtrack::getMemory::server
memtrack@1.0-s-748 ( 748) [004] ...1 1034718.079764: tracing_mark_write: E|748
android.bg-1184 ( 1151) [000] ...1 1034718.079813: tracing_mark_write: E|1151
android.bg-1184 ( 1151) [000] ...1 1034718.079823: tracing_mark_write: B|1151|HIDL::IMemtrack::getMemory::client
memtrack@1.0-s-748 ( 748) [001] ...1 1034718.079899: tracing_mark_write: B|748|HIDL::IMemtrack::getMemory::server
memtrack@1.0-s-748 ( 748) [001] ...1 1034718.080002: tracing_mark_write: E|748
android.bg-1184 ( 1151) [000] ...1 1034718.080040: tracing_mark_write: E|1151
android.bg-1184 ( 1151) [000] ...1 1034718.080048: tracing_mark_write: B|1151|HIDL::IMemtrack::getMemory::client
memtrack@1.0-s-748 ( 748) [001] ...1 1034718.080086: tracing_mark_write: B|748|HIDL::IMemtrack::getMemory::server
memtrack@1.0-s-748 ( 748) [001] ...1 1034718.080115: tracing_mark_write: E|748
android.bg-1184 ( 1151) [000] ...1 1034718.080141: tracing_mark_write: E|1151
android.bg-1184 ( 1151) [000] ...1 1034718.080146: tracing_mark_write: B|1151|HIDL::IMemtrack::getMemory::client
memtrack@1.0-s-748 ( 748) [001] ...1 1034718.080181: tracing_mark_write: B|748|HIDL::IMemtrack::getMemory::server
memtrack@1.0-s-748 ( 748) [001] ...1 1034718.080189: tracing_mark_write: E|748
android.bg-1184 ( 1151) [000] ...1 1034718.080220: tracing_mark_write: E|1151
android.bg-1184 ( 1151) [000] ...1 1034718.080227: tracing_mark_write: B|1151|HIDL::IMemtrack::getMemory::client
memtrack@1.0-s-748 ( 748) [001] ...1 1034718.080264: tracing_mark_write: B|748|HIDL::IMemtrack::getMemory::server
memtrack@1.0-s-748 ( 748) [001] ...1 1034718.080271: tracing_mark_write: E|748
android.bg-1184 ( 1151) [000] ...1 1034718.080302: tracing_mark_write: E|1151
surfaceflinger-591 ( 591) [000] ...1 1034718.082795: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [002] ...1 1034718.082927: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [002] ...1 1034718.083005: tracing_mark_write: B|593|HIDL::IMapper::importBuffer::passthrough
composer@2.1-s-593 ( 593) [002] ...1 1034718.083042: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.083100: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [002] ...1 1034718.083111: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.083116: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [002] ...1 1034718.083490: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [002] ...1 1034718.083591: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.083616: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.083643: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.083722: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034718.083819: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [002] ...1 1034718.083866: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [002] ...1 1034718.083876: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [002] ...1 1034718.083887: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [002] ...1 1034718.083988: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.084009: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.084033: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.084082: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [004] ...1 1034718.098173: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034718.098314: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034718.098365: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [004] ...1 1034718.098414: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034718.099413: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [002] ...1 1034718.099530: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [002] ...1 1034718.099598: tracing_mark_write: B|593|HIDL::IMapper::importBuffer::passthrough
composer@2.1-s-593 ( 593) [002] ...1 1034718.099643: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.099695: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [002] ...1 1034718.099704: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.099709: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [002] ...1 1034718.100140: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [002] ...1 1034718.100258: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.100288: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.100315: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.100412: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034718.100529: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [002] ...1 1034718.100597: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [002] ...1 1034718.100613: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [002] ...1 1034718.100629: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [002] ...1 1034718.100762: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.100789: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.100822: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.100890: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [001] ...1 1034718.115962: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [002] ...1 1034718.116079: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [002] ...1 1034718.116160: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [002] ...1 1034718.116170: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.116174: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [002] ...1 1034718.116450: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [002] ...1 1034718.116557: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.116579: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.116600: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034718.116657: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [001] ...1 1034718.116733: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [002] ...1 1034718.116775: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [002] ...1 1034718.116784: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [002] ...1 1034718.116796: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [002] ...1 1034718.116889: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.116909: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.116933: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034718.117001: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [001] ...1 1034718.117481: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034718.117537: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034718.117586: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034718.117627: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034718.133037: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [002] ...1 1034718.133280: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [002] ...1 1034718.133410: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [002] ...1 1034718.133421: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.133426: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [002] ...1 1034718.133873: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [002] ...1 1034718.134003: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.134033: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.134061: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.134149: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034718.134247: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [002] ...1 1034718.134299: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [002] ...1 1034718.134310: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [002] ...1 1034718.134325: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [002] ...1 1034718.134463: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.134491: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.134527: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.134579: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034718.136929: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034718.137058: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034718.137116: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034718.137165: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034718.150136: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [002] ...1 1034718.150276: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [002] ...1 1034718.150370: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [002] ...1 1034718.150380: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.150386: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [002] ...1 1034718.150734: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [002] ...1 1034718.150837: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.150859: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.150883: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034718.150945: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [001] ...1 1034718.151024: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [002] ...1 1034718.151063: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [002] ...1 1034718.151073: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [002] ...1 1034718.151085: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [002] ...1 1034718.151197: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.151217: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.151243: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034718.151290: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034718.155952: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034718.156026: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034718.156086: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034718.156136: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034718.166195: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [002] ...1 1034718.166288: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [002] ...1 1034718.166365: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [002] ...1 1034718.166373: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.166378: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [002] ...1 1034718.166728: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [002] ...1 1034718.166822: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.166843: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.166862: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.166913: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034718.166988: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [002] ...1 1034718.167028: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [002] ...1 1034718.167037: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [002] ...1 1034718.167049: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [002] ...1 1034718.167148: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.167168: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.167194: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.167240: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034718.175320: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034718.175431: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034718.175500: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034718.175603: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034718.185847: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [002] ...1 1034718.186084: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [002] ...1 1034718.186279: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [002] ...1 1034718.186305: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.186321: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [002] ...1 1034718.187078: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [002] ...1 1034718.187271: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.187331: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.187376: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.187517: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034718.187707: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [002] ...1 1034718.187840: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [002] ...1 1034718.187869: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [002] ...1 1034718.187900: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [002] ...1 1034718.188169: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.188225: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.188296: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.188460: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034718.194501: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034718.194632: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034718.194839: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034718.194998: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034718.202222: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [002] ...1 1034718.202455: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [002] ...1 1034718.202656: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [002] ...1 1034718.202683: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.202699: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [002] ...1 1034718.203537: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [002] ...1 1034718.203757: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.203823: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.203876: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.204033: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034718.204260: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [002] ...1 1034718.204406: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [002] ...1 1034718.204439: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [002] ...1 1034718.204478: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [002] ...1 1034718.204797: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.204861: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.204938: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.205110: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034718.213950: tracing_mark_write: E|778
SensorService-1283 ( 1151) [006] ...1 1034718.214092: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [006] ...1 1034718.214194: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034718.214313: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034718.218240: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [002] ...1 1034718.218402: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [002] ...1 1034718.218542: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [002] ...1 1034718.218558: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.218567: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [002] ...1 1034718.219080: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [002] ...1 1034718.219206: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.219243: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.219276: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.219376: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034718.219510: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [002] ...1 1034718.219590: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [002] ...1 1034718.219607: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [002] ...1 1034718.219628: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [002] ...1 1034718.219807: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.219840: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.219944: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.220036: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [006] ...1 1034718.233317: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034718.233420: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034718.233543: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [006] ...1 1034718.233625: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034718.234747: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [002] ...1 1034718.234908: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [002] ...1 1034718.235045: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [002] ...1 1034718.235062: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.235070: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
android.anim-1277 ( 1151) [004] ...1 1034718.235362: tracing_mark_write: B|1151|HIDL::IMapper::freeBuffer::passthrough
android.anim-1277 ( 1151) [004] ...1 1034718.235387: tracing_mark_write: B|1151|FreeBuffer
android.anim-1277 ( 1151) [004] ...1 1034718.235391: tracing_mark_write: B|1151|UnmapBuffer
android.anim-1277 ( 1151) [004] ...1 1034718.235461: tracing_mark_write: E|1151
android.anim-1277 ( 1151) [004] ...1 1034718.235508: tracing_mark_write: E|1151
android.anim-1277 ( 1151) [004] ...1 1034718.235510: tracing_mark_write: B|1151|FreeBuffer
android.anim-1277 ( 1151) [004] ...1 1034718.235515: tracing_mark_write: E|1151
android.anim-1277 ( 1151) [004] ...1 1034718.235523: tracing_mark_write: E|1151
composer@2.1-s-593 ( 593) [002] ...1 1034718.235598: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [002] ...1 1034718.235725: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.235765: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.235800: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.235892: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034718.236022: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [002] ...1 1034718.236103: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [002] ...1 1034718.236120: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [002] ...1 1034718.236142: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [002] ...1 1034718.236328: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.236365: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.236410: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.236510: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034718.249911: tracing_mark_write: B|591|HIDL::IMapper::freeBuffer::passthrough
surfaceflinger-591 ( 591) [000] ...1 1034718.249945: tracing_mark_write: B|591|FreeBuffer
surfaceflinger-591 ( 591) [000] ...1 1034718.250007: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034718.250014: tracing_mark_write: B|591|FreeBuffer
surfaceflinger-591 ( 591) [000] ...1 1034718.250036: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034718.250047: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034718.251623: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [002] ...1 1034718.251837: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [002] ...1 1034718.251988: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [002] ...1 1034718.252006: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.252016: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
HwBinder:778_1-1087 ( 778) [000] ...1 1034718.252346: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034718.252469: tracing_mark_write: E|1151
composer@2.1-s-593 ( 593) [002] ...1 1034718.252563: tracing_mark_write: B|593|HWDevice::Validate::
SensorService-1283 ( 1151) [003] ...1 1034718.252617: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
composer@2.1-s-593 ( 593) [002] ...1 1034718.252698: tracing_mark_write: E|593
HwBinder:778_1-1087 ( 778) [000] ...1 1034718.252708: tracing_mark_write: B|778|HIDL::ISensors::poll::server
composer@2.1-s-593 ( 593) [002] ...1 1034718.252741: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.252777: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.252873: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034718.253014: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [002] ...1 1034718.253095: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [002] ...1 1034718.253115: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [002] ...1 1034718.253136: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [002] ...1 1034718.253372: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.253407: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.253448: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.253543: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034718.268958: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [002] ...1 1034718.269089: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [002] ...1 1034718.269192: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [002] ...1 1034718.269205: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.269211: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [002] ...1 1034718.269575: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [002] ...1 1034718.269666: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.269693: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.269719: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.269792: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034718.269922: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [002] ...1 1034718.269983: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [002] ...1 1034718.269999: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [002] ...1 1034718.270014: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [002] ...1 1034718.270146: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.270171: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.270201: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.270269: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034718.271516: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034718.271596: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034718.271696: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034718.271757: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034718.284138: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034718.284268: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034718.284368: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034718.284380: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034718.284388: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034718.284742: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [000] ...1 1034718.284828: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034718.284855: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034718.284879: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [002] ...1 1034718.284944: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [002] ...1 1034718.285040: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034718.285096: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034718.285109: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034718.285124: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034718.285248: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034718.285273: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034718.285303: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [002] ...1 1034718.285366: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034718.291039: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034718.291186: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034718.291422: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034718.291563: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034718.302960: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034718.303260: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
MobileIQWorker-27051 (27005) [005] ...1 1034718.303435: tracing_mark_write: B|27005|[NN_LA_PO]mobilenet_quantized
composer@2.1-s-593 ( 593) [001] ...1 1034718.303487: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.303515: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.303532: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.304285: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034718.304456: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.304521: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.304575: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.304735: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034718.304961: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034718.305105: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034718.305134: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.305166: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034718.305429: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.305482: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.305552: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.305713: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034718.310433: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034718.310583: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034718.310739: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034718.310881: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034718.319671: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034718.319947: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034718.320145: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.320171: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.320188: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.320894: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034718.321058: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.321117: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.321163: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.321303: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034718.321503: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034718.321635: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034718.321664: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.321695: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034718.321955: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.322006: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.322076: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.322231: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034718.329559: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034718.329711: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034718.329853: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034718.330045: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034718.336034: tracing_mark_write: B|591|HIDL::IComposerClient::createLayer::client
composer@2.1-s-593 ( 593) [001] ...1 1034718.336204: tracing_mark_write: B|593|HIDL::IComposerClient::createLayer::server
composer@2.1-s-593 ( 593) [001] ...1 1034718.336297: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.336399: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034718.336962: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034718.337251: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034718.337412: tracing_mark_write: B|593|HIDL::IMapper::importBuffer::passthrough
composer@2.1-s-593 ( 593) [001] ...1 1034718.337479: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.337621: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.337650: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.337669: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.338420: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034718.338685: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.338751: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.338795: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.338923: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034718.339139: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034718.339269: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034718.339298: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.339330: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034718.339632: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.339690: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.339766: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.339973: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034718.348830: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034718.348981: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034718.349124: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034718.349266: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034718.353783: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034718.354080: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034718.354258: tracing_mark_write: B|593|HIDL::IMapper::importBuffer::passthrough
composer@2.1-s-593 ( 593) [001] ...1 1034718.354345: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.354516: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.354547: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.354564: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.355434: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034718.355677: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.355749: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.355804: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [002] ...1 1034718.355960: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [002] ...1 1034718.356203: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034718.356345: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034718.356376: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.356413: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034718.356811: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.356870: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.356953: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.357143: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [002] ...1 1034718.368109: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034718.368287: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034718.368448: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [002] ...1 1034718.368592: tracing_mark_write: B|778|HIDL::ISensors::poll::server
MobileIQWorker-27051 (27005) [005] ...1 1034718.370141: tracing_mark_write: B|27005|[NN_LA_PE]BenchmarkModel::benchmark
surfaceflinger-591 ( 591) [000] ...1 1034718.370459: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
MobileIQWorker-27051 (27005) [005] ...1 1034718.370644: tracing_mark_write: B|27005|HIDL::IServiceManager::listByInterface::client
composer@2.1-s-593 ( 593) [001] ...1 1034718.370750: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
hwservicemanag-570 ( 570) [003] ...1 1034718.370839: tracing_mark_write: B|570|HIDL::IServiceManager::listByInterface::server
composer@2.1-s-593 ( 593) [001] ...1 1034718.370932: tracing_mark_write: B|593|HIDL::IMapper::importBuffer::passthrough
composer@2.1-s-593 ( 593) [001] ...1 1034718.371015: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.371180: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.371212: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.371229: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.372111: tracing_mark_write: B|593|HWDevice::Validate::
hwservicemanag-570 ( 570) [003] ...1 1034718.372291: tracing_mark_write: E|570
composer@2.1-s-593 ( 593) [001] ...1 1034718.372378: tracing_mark_write: E|593
MobileIQWorker-27051 (27005) [004] ...1 1034718.372417: tracing_mark_write: B|27005|HIDL::IServiceManager::getTransport::client
composer@2.1-s-593 ( 593) [001] ...1 1034718.372458: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.372516: tracing_mark_write: E|593
hwservicemanag-570 ( 570) [003] ...1 1034718.372573: tracing_mark_write: B|570|HIDL::IServiceManager::getTransport::server
surfaceflinger-591 ( 591) [000] ...1 1034718.372688: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034718.373019: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034718.373168: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034718.373306: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.373350: tracing_mark_write: B|593|HWDevice::Commit::
hwservicemanag-570 ( 570) [003] .n.1 1034718.373539: tracing_mark_write: E|570
composer@2.1-s-593 ( 593) [001] ...1 1034718.373692: tracing_mark_write: E|593
MobileIQWorker-27051 (27005) [005] ...1 1034718.373711: tracing_mark_write: E|27005
MobileIQWorker-27051 (27005) [005] ...1 1034718.373724: tracing_mark_write: B|27005|HIDL::IServiceManager::registerForNotifications::client
composer@2.1-s-593 ( 593) [001] ...1 1034718.373751: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.373852: tracing_mark_write: E|593
hwservicemanag-570 ( 570) [003] ...1 1034718.374000: tracing_mark_write: B|570|HIDL::IServiceManager::registerForNotifications::server
surfaceflinger-591 ( 591) [000] ...1 1034718.374031: tracing_mark_write: E|591
hwservicemanag-570 ( 570) [003] ...1 1034718.374566: tracing_mark_write: B|570|HIDL::IServiceNotification::onRegistration::client
HwBinder:27005-27027 (27005) [004] ...1 1034718.374714: tracing_mark_write: B|27005|HIDL::IServiceNotification::onRegistration::server
hwservicemanag-570 ( 570) [003] ...1 1034718.374717: tracing_mark_write: E|570
HwBinder:27005-27027 (27005) [004] ...1 1034718.374719: tracing_mark_write: E|27005
hwservicemanag-570 ( 570) [003] ...1 1034718.374749: tracing_mark_write: E|570
MobileIQWorker-27051 (27005) [004] ...1 1034718.374811: tracing_mark_write: E|27005
MobileIQWorker-27051 (27005) [004] ...1 1034718.374816: tracing_mark_write: B|27005|HIDL::IServiceManager::get::client
hwservicemanag-570 ( 570) [003] ...1 1034718.374871: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
hwservicemanag-570 ( 570) [003] ...1 1034718.375330: tracing_mark_write: E|570
MobileIQWorker-27051 (27005) [005] ...1 1034718.375419: tracing_mark_write: E|27005
MobileIQWorker-27051 (27005) [005] ...1 1034718.375425: tracing_mark_write: B|27005|HIDL::IBase::interfaceChain::client
HwBinder:756_2-23196 ( 756) [006] ...1 1034718.375509: tracing_mark_write: B|756|HIDL::IBase::interfaceChain::server
HwBinder:756_2-23196 ( 756) [006] ...1 1034718.375602: tracing_mark_write: E|756
MobileIQWorker-27051 (27005) [005] ...1 1034718.375641: tracing_mark_write: E|27005
MobileIQWorker-27051 (27005) [005] ...1 1034718.375646: tracing_mark_write: B|27005|HIDL::IServiceManager::unregisterForNotifications::client
hwservicemanag-570 ( 570) [003] ...1 1034718.375846: tracing_mark_write: B|570|HIDL::IServiceManager::unregisterForNotifications::server
hwservicemanag-570 ( 570) [003] ...1 1034718.375889: tracing_mark_write: E|570
MobileIQWorker-27051 (27005) [004] ...1 1034718.375957: tracing_mark_write: E|27005
MobileIQWorker-27051 (27005) [004] ...1 1034718.376005: tracing_mark_write: B|27005|HIDL::IBase::interfaceChain::client
HwBinder:756_2-23196 ( 756) [006] ...1 1034718.376042: tracing_mark_write: B|756|HIDL::IBase::interfaceChain::server
HwBinder:756_2-23196 ( 756) [006] ...1 1034718.376046: tracing_mark_write: E|756
MobileIQWorker-27051 (27005) [004] ...1 1034718.376064: tracing_mark_write: E|27005
MobileIQWorker-27051 (27005) [004] ...1 1034718.376073: tracing_mark_write: B|27005|HIDL::IDevice::getCapabilities::client
HwBinder:756_2-23196 ( 756) [006] ...1 1034718.376094: tracing_mark_write: B|756|HIDL::IDevice::getCapabilities::server
surfaceflinger-591 ( 591) [000] ...1 1034718.385754: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034718.385939: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034718.386101: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.386121: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.386131: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.386742: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034718.386910: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.386970: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.387013: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.387153: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034718.387370: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034718.387479: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034718.387511: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.387544: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034718.387785: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.387840: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.387901: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.388030: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [003] ...1 1034718.388153: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034718.388281: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034718.388403: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [003] ...1 1034718.388504: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034718.402050: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034718.402232: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034718.402378: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.402396: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.402404: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.402887: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034718.403027: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.403064: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.403097: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.403183: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034718.403397: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034718.403459: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034718.403475: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.403493: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034718.403658: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.403687: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.403726: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.403802: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034718.406492: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034718.406598: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034718.406693: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034718.406757: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034718.418444: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [002] ...1 1034718.418625: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [002] ...1 1034718.418758: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [002] ...1 1034718.418773: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.418781: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [002] ...1 1034718.419224: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [002] ...1 1034718.419351: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.419384: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.419415: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.419515: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034718.419658: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [002] ...1 1034718.419730: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [002] ...1 1034718.419746: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [002] ...1 1034718.419763: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [002] ...1 1034718.419981: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.420012: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034718.420051: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.420130: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034718.425745: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034718.425949: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034718.426116: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034718.426244: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034718.435845: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034718.436053: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034718.436212: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034718.436231: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034718.436240: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034718.436805: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [000] ...1 1034718.436955: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034718.436996: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034718.437034: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [002] ...1 1034718.437144: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [002] ...1 1034718.437316: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034718.437419: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034718.437443: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034718.437470: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034718.437692: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034718.437736: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034718.437789: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [002] ...1 1034718.437901: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [001] ...1 1034718.445035: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034718.445183: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034718.445312: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034718.445407: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:756_2-23196 ( 756) [003] ...1 1034718.450509: tracing_mark_write: E|756
MobileIQWorker-27051 (27005) [003] ...1 1034718.450716: tracing_mark_write: E|27005
MobileIQWorker-27051 (27005) [003] ...1 1034718.450745: tracing_mark_write: E|27005
MobileIQWorker-27051 (27005) [003] ...1 1034718.451209: tracing_mark_write: B|27005|HIDL::IDevice::getSupportedOperations::client
HwBinder:756_2-23196 ( 756) [003] ...1 1034718.451696: tracing_mark_write: B|756|HIDL::IDevice::getSupportedOperations::server
surfaceflinger-591 ( 591) [000] ...1 1034718.451845: tracing_mark_write: B|591|HIDL::IComposerClient::destroyLayer::client
composer@2.1-s-593 ( 593) [001] ...1 1034718.452011: tracing_mark_write: B|593|HIDL::IComposerClient::destroyLayer::server
composer@2.1-s-593 ( 593) [001] ...1 1034718.452052: tracing_mark_write: B|593|HIDL::IMapper::freeBuffer::passthrough
composer@2.1-s-593 ( 593) [001] ...1 1034718.452078: tracing_mark_write: B|593|FreeBuffer
composer@2.1-s-593 ( 593) [001] ...1 1034718.452094: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.452099: tracing_mark_write: B|593|FreeBuffer
composer@2.1-s-593 ( 593) [001] ...1 1034718.452104: tracing_mark_write: B|593|UnmapBuffer
composer@2.1-s-593 ( 593) [001] ...1 1034718.452127: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.452138: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.452146: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.452152: tracing_mark_write: B|593|HIDL::IMapper::freeBuffer::passthrough
composer@2.1-s-593 ( 593) [001] ...1 1034718.452160: tracing_mark_write: B|593|FreeBuffer
composer@2.1-s-593 ( 593) [001] ...1 1034718.452170: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.452175: tracing_mark_write: B|593|FreeBuffer
composer@2.1-s-593 ( 593) [001] ...1 1034718.452180: tracing_mark_write: B|593|UnmapBuffer
composer@2.1-s-593 ( 593) [001] ...1 1034718.452192: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.452204: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.452212: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.452219: tracing_mark_write: B|593|HIDL::IMapper::freeBuffer::passthrough
composer@2.1-s-593 ( 593) [001] ...1 1034718.452230: tracing_mark_write: B|593|FreeBuffer
composer@2.1-s-593 ( 593) [001] ...1 1034718.452243: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.452249: tracing_mark_write: B|593|FreeBuffer
composer@2.1-s-593 ( 593) [001] ...1 1034718.452254: tracing_mark_write: B|593|UnmapBuffer
composer@2.1-s-593 ( 593) [001] ...1 1034718.452270: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.452285: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.452294: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.452309: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.452372: tracing_mark_write: E|591
HwBinder:756_2-23196 ( 756) [002] ...1 1034718.452453: tracing_mark_write: E|756
RenderThread-2506 ( 2279) [001] ...1 1034718.452544: tracing_mark_write: B|2279|HIDL::IMapper::freeBuffer::passthrough
RenderThread-2506 ( 2279) [001] ...1 1034718.452564: tracing_mark_write: B|2279|FreeBuffer
RenderThread-2506 ( 2279) [001] ...1 1034718.452582: tracing_mark_write: E|2279
RenderThread-2506 ( 2279) [001] ...1 1034718.452588: tracing_mark_write: B|2279|FreeBuffer
RenderThread-2506 ( 2279) [001] ...1 1034718.452600: tracing_mark_write: E|2279
RenderThread-2506 ( 2279) [001] ...1 1034718.452610: tracing_mark_write: E|2279
RenderThread-2506 ( 2279) [001] ...1 1034718.452627: tracing_mark_write: B|2279|HIDL::IMapper::freeBuffer::passthrough
RenderThread-2506 ( 2279) [001] ...1 1034718.452640: tracing_mark_write: B|2279|FreeBuffer
RenderThread-2506 ( 2279) [001] ...1 1034718.452652: tracing_mark_write: E|2279
RenderThread-2506 ( 2279) [001] ...1 1034718.452659: tracing_mark_write: B|2279|FreeBuffer
RenderThread-2506 ( 2279) [001] ...1 1034718.452674: tracing_mark_write: E|2279
RenderThread-2506 ( 2279) [001] ...1 1034718.452698: tracing_mark_write: E|2279
RenderThread-2506 ( 2279) [001] ...1 1034718.452723: tracing_mark_write: B|2279|HIDL::IMapper::freeBuffer::passthrough
MobileIQWorker-27051 (27005) [002] ...1 1034718.452725: tracing_mark_write: E|27005
RenderThread-2506 ( 2279) [001] ...1 1034718.452737: tracing_mark_write: B|2279|FreeBuffer
RenderThread-2506 ( 2279) [001] ...1 1034718.452756: tracing_mark_write: E|2279
RenderThread-2506 ( 2279) [001] ...1 1034718.452768: tracing_mark_write: B|2279|FreeBuffer
RenderThread-2506 ( 2279) [001] ...1 1034718.452787: tracing_mark_write: E|2279
RenderThread-2506 ( 2279) [001] ...1 1034718.452799: tracing_mark_write: E|2279
surfaceflinger-591 ( 591) [000] ...1 1034718.452948: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
Binder:591_5-1775 ( 591) [001] .n.1 1034718.453045: tracing_mark_write: B|591|HIDL::IMapper::freeBuffer::passthrough
composer@2.1-s-593 ( 593) [001] ...1 1034718.453109: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034718.453347: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.453382: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.453395: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
MobileIQWorker-27051 (27005) [002] ...1 1034718.453498: tracing_mark_write: B|27005|HIDL::IDevice::prepareModel::client
composer@2.1-s-593 ( 593) [001] ...1 1034718.453751: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034718.453873: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.453901: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.453927: tracing_mark_write: E|593
HwBinder:756_2-23196 ( 756) [002] ...1 1034718.453969: tracing_mark_write: B|756|HIDL::IDevice::prepareModel::server
surfaceflinger-591 ( 591) [000] ...1 1034718.454037: tracing_mark_write: E|591
Binder:591_5-1775 ( 591) [001] ...1 1034718.454055: tracing_mark_write: B|591|FreeBuffer
Binder:591_5-1775 ( 591) [001] ...1 1034718.454070: tracing_mark_write: E|591
Binder:591_5-1775 ( 591) [001] ...1 1034718.454074: tracing_mark_write: B|591|FreeBuffer
Binder:591_5-1775 ( 591) [001] ...1 1034718.454110: tracing_mark_write: E|591
Binder:591_5-1775 ( 591) [001] ...1 1034718.454119: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034718.454159: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034718.454234: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034718.454250: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.454267: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034718.454399: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.454427: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.454461: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.454536: tracing_mark_write: E|591
Binder:591_5-1775 ( 591) [001] ...1 1034718.454628: tracing_mark_write: B|591|HIDL::IMapper::freeBuffer::passthrough
Binder:591_5-1775 ( 591) [001] ...1 1034718.454641: tracing_mark_write: B|591|FreeBuffer
Binder:591_5-1775 ( 591) [001] ...1 1034718.454999: tracing_mark_write: E|591
Binder:591_5-1775 ( 591) [001] ...1 1034718.455004: tracing_mark_write: B|591|FreeBuffer
Binder:591_5-1775 ( 591) [001] ...1 1034718.455022: tracing_mark_write: E|591
Binder:591_5-1775 ( 591) [001] ...1 1034718.455029: tracing_mark_write: E|591
Binder:1151_9-1624 ( 1151) [001] ...1 1034718.456193: tracing_mark_write: B|1151|HIDL::ISensors::activate::client
sensors@1.0-se-778 ( 778) [001] ...1 1034718.456318: tracing_mark_write: B|778|HIDL::ISensors::activate::server
sensors@1.0-se-778 ( 778) [001] ...1 1034718.457945: tracing_mark_write: E|778
Binder:1151_9-1624 ( 1151) [001] ...1 1034718.458070: tracing_mark_write: E|1151
surfaceflinger-591 ( 591) [000] ...1 1034718.468266: tracing_mark_write: B|591|HIDL::IComposerClient::destroyLayer::client
composer@2.1-s-593 ( 593) [001] ...1 1034718.468383: tracing_mark_write: B|593|HIDL::IComposerClient::destroyLayer::server
composer@2.1-s-593 ( 593) [001] ...1 1034718.468413: tracing_mark_write: B|593|HIDL::IMapper::freeBuffer::passthrough
composer@2.1-s-593 ( 593) [001] ...1 1034718.468426: tracing_mark_write: B|593|FreeBuffer
composer@2.1-s-593 ( 593) [001] ...1 1034718.468439: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.468441: tracing_mark_write: B|593|FreeBuffer
composer@2.1-s-593 ( 593) [001] ...1 1034718.468444: tracing_mark_write: B|593|UnmapBuffer
composer@2.1-s-593 ( 593) [001] ...1 1034718.468466: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.468472: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.468477: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.468480: tracing_mark_write: B|593|HIDL::IMapper::freeBuffer::passthrough
composer@2.1-s-593 ( 593) [001] ...1 1034718.468487: tracing_mark_write: B|593|FreeBuffer
composer@2.1-s-593 ( 593) [001] ...1 1034718.468493: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.468495: tracing_mark_write: B|593|FreeBuffer
composer@2.1-s-593 ( 593) [001] ...1 1034718.468498: tracing_mark_write: B|593|UnmapBuffer
composer@2.1-s-593 ( 593) [001] ...1 1034718.468508: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.468514: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.468517: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.468519: tracing_mark_write: B|593|HIDL::IMapper::freeBuffer::passthrough
composer@2.1-s-593 ( 593) [001] ...1 1034718.468525: tracing_mark_write: B|593|FreeBuffer
composer@2.1-s-593 ( 593) [001] ...1 1034718.468531: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.468534: tracing_mark_write: B|593|FreeBuffer
composer@2.1-s-593 ( 593) [001] ...1 1034718.468536: tracing_mark_write: B|593|UnmapBuffer
composer@2.1-s-593 ( 593) [001] ...1 1034718.468544: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.468550: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.468553: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.468564: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.468606: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034718.468873: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034718.468939: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034718.469013: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.469023: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.469028: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.469294: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034718.469387: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.469407: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.469426: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.469474: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034718.469545: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034718.469600: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034718.469611: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.469623: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034718.469776: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.469819: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.469862: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.469961: tracing_mark_write: E|591
GLThread 36-1854 ( 1529) [000] ...1 1034718.474138: tracing_mark_write: B|1529|HIDL::IMapper::freeBuffer::passthrough
GLThread 36-1854 ( 1529) [000] ...1 1034718.474165: tracing_mark_write: B|1529|FreeBuffer
GLThread 36-1854 ( 1529) [000] ...1 1034718.474195: tracing_mark_write: E|1529
GLThread 36-1854 ( 1529) [000] ...1 1034718.474199: tracing_mark_write: B|1529|FreeBuffer
GLThread 36-1854 ( 1529) [000] ...1 1034718.474207: tracing_mark_write: E|1529
GLThread 36-1854 ( 1529) [000] ...1 1034718.474214: tracing_mark_write: E|1529
GLThread 36-1854 ( 1529) [000] ...1 1034718.474221: tracing_mark_write: B|1529|HIDL::IMapper::freeBuffer::passthrough
GLThread 36-1854 ( 1529) [000] ...1 1034718.474227: tracing_mark_write: B|1529|FreeBuffer
GLThread 36-1854 ( 1529) [000] ...1 1034718.474234: tracing_mark_write: E|1529
GLThread 36-1854 ( 1529) [000] ...1 1034718.474237: tracing_mark_write: B|1529|FreeBuffer
GLThread 36-1854 ( 1529) [000] ...1 1034718.474244: tracing_mark_write: E|1529
GLThread 36-1854 ( 1529) [000] ...1 1034718.474250: tracing_mark_write: E|1529
GLThread 36-1854 ( 1529) [000] ...1 1034718.474255: tracing_mark_write: B|1529|HIDL::IMapper::freeBuffer::passthrough
GLThread 36-1854 ( 1529) [000] ...1 1034718.474260: tracing_mark_write: B|1529|FreeBuffer
GLThread 36-1854 ( 1529) [000] ...1 1034718.474267: tracing_mark_write: E|1529
GLThread 36-1854 ( 1529) [000] ...1 1034718.474270: tracing_mark_write: B|1529|FreeBuffer
GLThread 36-1854 ( 1529) [000] ...1 1034718.474277: tracing_mark_write: E|1529
GLThread 36-1854 ( 1529) [000] ...1 1034718.474281: tracing_mark_write: E|1529
Binder:591_5-1775 ( 591) [000] ...1 1034718.474494: tracing_mark_write: B|591|HIDL::IMapper::freeBuffer::passthrough
Binder:591_5-1775 ( 591) [000] ...1 1034718.474511: tracing_mark_write: B|591|FreeBuffer
Binder:591_5-1775 ( 591) [000] ...1 1034718.474740: tracing_mark_write: E|591
Binder:591_5-1775 ( 591) [000] ...1 1034718.474743: tracing_mark_write: B|591|FreeBuffer
Binder:591_5-1775 ( 591) [000] ...1 1034718.474755: tracing_mark_write: E|591
Binder:591_5-1775 ( 591) [000] ...1 1034718.474760: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034718.484510: tracing_mark_write: B|591|HIDL::IMapper::freeBuffer::passthrough
surfaceflinger-591 ( 591) [000] ...1 1034718.484530: tracing_mark_write: B|591|FreeBuffer
surfaceflinger-591 ( 591) [000] ...1 1034718.484544: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034718.484546: tracing_mark_write: B|591|FreeBuffer
surfaceflinger-591 ( 591) [000] ...1 1034718.484573: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034718.484580: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034718.485330: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034718.485455: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034718.485536: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.485545: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.485550: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.485818: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034718.485900: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.485920: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.485942: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.486000: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034718.486077: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034718.486123: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034718.486133: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.486146: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034718.486235: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.486255: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.486280: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.486327: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034718.502614: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034718.502781: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034718.502885: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.502898: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.502907: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.503239: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034718.503392: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.503412: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.503439: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.503749: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034718.503846: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034718.504198: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034718.504210: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.504222: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034718.504344: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.504366: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.504396: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.504454: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034718.518794: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034718.518958: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034718.519085: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.519096: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.519115: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.519488: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034718.519632: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.519655: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.519694: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.519780: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034718.519899: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034718.519962: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034718.519977: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.520021: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034718.520162: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.520190: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.520249: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.520345: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034718.535648: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034718.535816: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034718.535902: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.535916: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.535920: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.536218: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034718.536332: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.536361: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.536392: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.536495: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034718.536637: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034718.536723: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034718.536737: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.536752: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034718.536881: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.536907: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.536949: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.537022: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034718.552250: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034718.552393: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034718.552472: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.552481: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.552485: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.552737: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034718.552817: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.552835: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.552856: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.552922: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034718.553005: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034718.553047: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034718.553056: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.553067: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034718.553157: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.553174: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.553196: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034718.553303: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034718.569238: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034718.569398: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034718.569483: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.569493: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.569497: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.569772: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034718.569908: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.569936: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.569968: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.570075: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034718.570186: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034718.570259: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034718.570273: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.570287: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034718.570408: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.570432: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.570464: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.570532: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034718.585688: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034718.585803: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034718.585878: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.585887: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.585891: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.586188: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034718.586267: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.586286: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.586305: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.586358: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034718.586423: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034718.586463: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034718.586473: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.586484: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034718.586615: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.586632: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.586668: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.586714: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034718.602426: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034718.602532: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034718.602603: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.602612: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.602616: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.602861: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034718.602937: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.602955: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.602975: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.603026: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034718.603090: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034718.603128: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034718.603137: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.603148: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034718.603265: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.603282: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.603305: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.603348: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034718.620504: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034718.620688: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034718.620821: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.620840: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.620852: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.621309: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034718.621441: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.621480: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.621515: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.621614: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034718.621746: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034718.621838: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034718.621857: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.621880: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034718.622049: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.622086: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.622132: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.622239: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034718.637729: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034718.637975: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034718.638155: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.638180: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.638197: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.638823: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034718.639000: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.639056: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.639103: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.639248: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034718.639434: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034718.639569: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034718.639598: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.639632: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034718.639943: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.639996: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.640061: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.640222: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034718.654998: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034718.655245: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034718.655425: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.655450: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.655466: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.656112: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034718.656269: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.656325: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.656372: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.656518: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034718.656862: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034718.656999: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034718.657029: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.657062: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034718.657312: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.657363: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.657429: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.657583: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034718.671821: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034718.672069: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034718.672246: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.672272: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.672289: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.672933: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034718.673114: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.673172: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.673292: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.673437: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034718.673624: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034718.673760: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034718.673790: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.673822: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034718.674067: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.674123: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.674191: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.674347: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034718.688563: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034718.688805: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034718.688983: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.689009: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.689026: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.689660: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034718.689819: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.689941: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.689989: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.690134: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034718.690321: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034718.690456: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034718.690486: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.690520: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034718.690776: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.690828: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.690895: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.691051: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034718.705269: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034718.705516: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034718.705697: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.705722: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.705741: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.706368: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034718.706523: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.706724: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.706798: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.706944: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034718.707132: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034718.707266: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034718.707295: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.707327: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034718.707573: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.707624: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.707690: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.707842: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034718.722037: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034718.722254: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034718.722416: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.722442: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.722458: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.723055: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034718.723260: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.723317: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.723361: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.723495: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034718.723676: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034718.723810: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034718.723839: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.723871: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034718.724104: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.724157: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.724221: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.724375: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [002] ...1 1034718.738925: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034718.739147: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034718.739315: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.739340: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.739356: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.740063: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034718.740213: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.740269: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.740317: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [002] ...1 1034718.740456: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [002] ...1 1034718.740648: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034718.740791: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034718.740822: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.740854: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034718.741102: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.741153: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.741218: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [002] ...1 1034718.741378: tracing_mark_write: E|591
android.bg-1184 ( 1151) [000] ...1 1034718.754041: tracing_mark_write: B|1151|HIDL::IMemtrack::getMemory::client
memtrack@1.0-s-748 ( 748) [000] ...1 1034718.754257: tracing_mark_write: B|748|HIDL::IMemtrack::getMemory::server
memtrack@1.0-s-748 ( 748) [000] ...1 1034718.754313: tracing_mark_write: E|748
android.bg-1184 ( 1151) [000] ...1 1034718.754477: tracing_mark_write: E|1151
android.bg-1184 ( 1151) [000] ...1 1034718.754504: tracing_mark_write: B|1151|HIDL::IMemtrack::getMemory::client
memtrack@1.0-s-748 ( 748) [000] ...1 1034718.754607: tracing_mark_write: B|748|HIDL::IMemtrack::getMemory::server
memtrack@1.0-s-748 ( 748) [000] ...1 1034718.754786: tracing_mark_write: E|748
android.bg-1184 ( 1151) [000] ...1 1034718.755608: tracing_mark_write: E|1151
android.bg-1184 ( 1151) [000] ...1 1034718.755638: tracing_mark_write: B|1151|HIDL::IMemtrack::getMemory::client
memtrack@1.0-s-748 ( 748) [000] ...1 1034718.755757: tracing_mark_write: B|748|HIDL::IMemtrack::getMemory::server
surfaceflinger-591 ( 591) [001] ...1 1034718.755770: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
memtrack@1.0-s-748 ( 748) [000] ...1 1034718.755869: tracing_mark_write: E|748
composer@2.1-s-593 ( 593) [000] ...1 1034718.756022: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034718.756211: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034718.756239: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034718.756255: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034718.757038: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [000] ...1 1034718.757201: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034718.757261: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034718.757312: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034718.757473: tracing_mark_write: E|591
android.bg-1184 ( 1151) [000] ...1 1034718.757603: tracing_mark_write: E|1151
android.bg-1184 ( 1151) [000] ...1 1034718.757635: tracing_mark_write: B|1151|HIDL::IMemtrack::getMemory::client
surfaceflinger-591 ( 591) [003] ...1 1034718.757695: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
memtrack@1.0-s-748 ( 748) [000] ...1 1034718.757774: tracing_mark_write: B|748|HIDL::IMemtrack::getMemory::server
composer@2.1-s-593 ( 593) [000] ...1 1034718.757844: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034718.757878: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034718.757914: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034718.758179: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034718.758237: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034718.758309: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034718.758477: tracing_mark_write: E|591
memtrack@1.0-s-748 ( 748) [000] ...1 1034718.758800: tracing_mark_write: E|748
android.bg-1184 ( 1151) [000] ...1 1034718.758961: tracing_mark_write: E|1151
android.bg-1184 ( 1151) [000] ...1 1034718.758991: tracing_mark_write: B|1151|HIDL::IMemtrack::getMemory::client
memtrack@1.0-s-748 ( 748) [000] ...1 1034718.759108: tracing_mark_write: B|748|HIDL::IMemtrack::getMemory::server
memtrack@1.0-s-748 ( 748) [000] ...1 1034718.759136: tracing_mark_write: E|748
android.bg-1184 ( 1151) [000] ...1 1034718.759259: tracing_mark_write: E|1151
surfaceflinger-591 ( 591) [001] ...1 1034718.770482: tracing_mark_write: B|591|HIDL::IMapper::freeBuffer::passthrough
surfaceflinger-591 ( 591) [001] ...1 1034718.770519: tracing_mark_write: B|591|FreeBuffer
surfaceflinger-591 ( 591) [001] ...1 1034718.770990: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [001] ...1 1034718.770999: tracing_mark_write: B|591|FreeBuffer
surfaceflinger-591 ( 591) [001] ...1 1034718.771025: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [001] ...1 1034718.771038: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [003] ...1 1034718.773167: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034718.773406: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034718.773543: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034718.773563: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034718.773574: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034718.774052: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [000] ...1 1034718.774171: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034718.774211: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034718.774248: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034718.774359: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [003] ...1 1034718.774507: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034718.774607: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034718.774630: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034718.774655: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034718.774831: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034718.774872: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034718.774921: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034718.775032: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [002] ...1 1034718.787667: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034718.787820: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034718.787924: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034718.787938: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034718.787945: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034718.788304: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [000] ...1 1034718.788392: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034718.788420: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034718.788448: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [002] ...1 1034718.788534: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [002] ...1 1034718.788640: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034718.788707: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034718.788722: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034718.788740: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034718.788863: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034718.788891: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034718.788924: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [002] ...1 1034718.788996: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [001] ...1 1034718.803419: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034718.803562: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034718.803642: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034718.803664: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034718.803803: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034718.803836: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034718.803874: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034718.803964: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [001] ...1 1034718.820011: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034718.820176: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034718.820240: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034718.820260: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034718.820364: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034718.820390: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034718.820419: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034718.820493: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [001] ...1 1034718.836756: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034718.836865: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034718.836915: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034718.836931: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034718.837026: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034718.837049: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034718.837073: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034718.837132: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [001] ...1 1034718.854122: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034718.854365: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034718.854512: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034718.854555: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034718.854807: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034718.854871: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034718.854945: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034718.855124: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [001] ...1 1034718.870970: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034718.871219: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034718.871368: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034718.871412: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034718.871664: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034718.871729: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034718.871804: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034718.871987: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [001] ...1 1034718.887681: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034718.887934: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034718.888081: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034718.888123: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034718.888377: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034718.888443: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034718.888515: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034718.888691: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [001] ...1 1034718.904518: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034718.904763: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034718.904912: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034718.904956: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034718.905216: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034718.905281: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034718.905354: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034718.905534: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [001] ...1 1034718.921262: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034718.921506: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034718.921652: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034718.921695: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034718.921952: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034718.922017: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034718.922091: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034718.922271: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [001] ...1 1034718.938094: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034718.938340: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034718.938487: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034718.938529: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034718.938787: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034718.938853: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034718.938925: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034718.939103: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [001] ...1 1034718.954818: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034718.955063: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034718.955212: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034718.955255: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034718.955515: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034718.955580: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034718.955653: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034718.955829: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034718.971632: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034718.971883: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034718.972031: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.972075: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034718.972331: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.972396: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.972470: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.972651: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034718.988346: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034718.988584: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034718.988725: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034718.988766: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034718.989025: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.989088: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034718.989160: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034718.989337: tracing_mark_write: E|591
HwBinder:756_2-23196 ( 756) [001] ...1 1034718.997638: tracing_mark_write: B|756|HIDL::IPreparedModelCallback::notify::client
HwBinder:756_2-23196 ( 756) [001] ...1 1034718.998150: tracing_mark_write: E|756
HwBinder:756_2-23196 ( 756) [001] ...1 1034718.998181: tracing_mark_write: E|756
MobileIQWorker-27051 (27005) [001] ...1 1034718.998383: tracing_mark_write: E|27005
HwBinder:27005-27027 (27005) [004] ...1 1034718.998405: tracing_mark_write: B|27005|HIDL::IPreparedModelCallback::notify::server
HwBinder:27005-27027 (27005) [004] ...1 1034718.998439: tracing_mark_write: E|27005
MobileIQWorker-27058 (27005) [004] ...1 1034718.999993: tracing_mark_write: B|27005|HIDL::IServiceManager::getTransport::client
hwservicemanag-570 ( 570) [003] ...1 1034719.000244: tracing_mark_write: B|570|HIDL::IServiceManager::getTransport::server
hwservicemanag-570 ( 570) [003] ...1 1034719.001485: tracing_mark_write: E|570
MobileIQWorker-27058 (27005) [003] ...1 1034719.001656: tracing_mark_write: E|27005
MobileIQWorker-27058 (27005) [003] ...1 1034719.001713: tracing_mark_write: B|27005|HIDL::IServiceManager::registerForNotifications::client
hwservicemanag-570 ( 570) [003] ...1 1034719.002044: tracing_mark_write: B|570|HIDL::IServiceManager::registerForNotifications::server
hwservicemanag-570 ( 570) [003] ...1 1034719.002417: tracing_mark_write: B|570|HIDL::IServiceNotification::onRegistration::client
hwservicemanag-570 ( 570) [003] ...1 1034719.002490: tracing_mark_write: E|570
hwservicemanag-570 ( 570) [003] ...1 1034719.002509: tracing_mark_write: E|570
HwBinder:27005-27027 (27005) [004] ...1 1034719.002576: tracing_mark_write: B|27005|HIDL::IServiceNotification::onRegistration::server
HwBinder:27005-27027 (27005) [004] ...1 1034719.002601: tracing_mark_write: E|27005
MobileIQWorker-27058 (27005) [003] ...1 1034719.002613: tracing_mark_write: E|27005
MobileIQWorker-27058 (27005) [003] ...1 1034719.002644: tracing_mark_write: B|27005|HIDL::IServiceManager::get::client
hwservicemanag-570 ( 570) [003] ...1 1034719.002747: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
hwservicemanag-570 ( 570) [003] ...1 1034719.003048: tracing_mark_write: E|570
MobileIQWorker-27058 (27005) [003] ...1 1034719.003313: tracing_mark_write: E|27005
MobileIQWorker-27058 (27005) [003] ...1 1034719.003341: tracing_mark_write: B|27005|HIDL::IBase::interfaceChain::client
allocator@1.0--731 ( 731) [003] ...1 1034719.003556: tracing_mark_write: B|731|HIDL::IBase::interfaceChain::server
allocator@1.0--731 ( 731) [003] ...1 1034719.003658: tracing_mark_write: E|731
MobileIQWorker-27058 (27005) [003] ...1 1034719.003781: tracing_mark_write: E|27005
MobileIQWorker-27058 (27005) [003] ...1 1034719.003800: tracing_mark_write: B|27005|HIDL::IServiceManager::unregisterForNotifications::client
hwservicemanag-570 ( 570) [003] ...1 1034719.003958: tracing_mark_write: B|570|HIDL::IServiceManager::unregisterForNotifications::server
hwservicemanag-570 ( 570) [003] ...1 1034719.003988: tracing_mark_write: E|570
MobileIQWorker-27058 (27005) [003] ...1 1034719.004083: tracing_mark_write: E|27005
MobileIQWorker-27058 (27005) [003] ...1 1034719.004220: tracing_mark_write: B|27005|HIDL::IAllocator::allocate::client
allocator@1.0--731 ( 731) [003] ...1 1034719.004295: tracing_mark_write: B|731|HIDL::IAllocator::allocate::server
allocator@1.0--731 ( 731) [003] ...1 1034719.004741: tracing_mark_write: E|731
surfaceflinger-591 ( 591) [000] ...1 1034719.004858: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034719.005010: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034719.005109: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034719.005138: tracing_mark_write: B|593|HWDevice::Commit::
MobileIQWorker-27058 (27005) [003] ...1 1034719.005288: tracing_mark_write: E|27005
composer@2.1-s-593 ( 593) [001] ...1 1034719.005309: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.005350: tracing_mark_write: E|593
MobileIQWorker-27058 (27005) [003] ...1 1034719.005382: tracing_mark_write: B|27005|HIDL::IServiceManager::getTransport::client
composer@2.1-s-593 ( 593) [001] ...1 1034719.005397: tracing_mark_write: E|593
hwservicemanag-570 ( 570) [003] ...1 1034719.005480: tracing_mark_write: B|570|HIDL::IServiceManager::getTransport::server
surfaceflinger-591 ( 591) [000] ...1 1034719.005498: tracing_mark_write: E|591
hwservicemanag-570 ( 570) [003] ...1 1034719.006148: tracing_mark_write: E|570
MobileIQWorker-27058 (27005) [003] ...1 1034719.006230: tracing_mark_write: E|27005
MobileIQWorker-27058 (27005) [003] ...1 1034719.006259: tracing_mark_write: B|27005|HIDL::IServiceManager::registerForNotifications::client
hwservicemanag-570 ( 570) [003] ...1 1034719.006510: tracing_mark_write: B|570|HIDL::IServiceManager::registerForNotifications::server
hwservicemanag-570 ( 570) [003] ...1 1034719.006895: tracing_mark_write: E|570
MobileIQWorker-27058 (27005) [003] ...1 1034719.006972: tracing_mark_write: E|27005
MobileIQWorker-27058 (27005) [003] ...1 1034719.006991: tracing_mark_write: B|27005|HIDL::IServiceManager::unregisterForNotifications::client
hwservicemanag-570 ( 570) [003] ...1 1034719.007121: tracing_mark_write: B|570|HIDL::IServiceManager::unregisterForNotifications::server
hwservicemanag-570 ( 570) [003] ...1 1034719.007145: tracing_mark_write: E|570
MobileIQWorker-27058 (27005) [003] ...1 1034719.007233: tracing_mark_write: E|27005
MobileIQWorker-27058 (27005) [003] ...1 1034719.011829: tracing_mark_write: B|27005|HIDL::IServiceManager::registerPassthroughClient::client
hwservicemanag-570 ( 570) [003] ...1 1034719.011941: tracing_mark_write: B|570|HIDL::IServiceManager::registerPassthroughClient::server
hwservicemanag-570 ( 570) [003] ...1 1034719.012191: tracing_mark_write: E|570
MobileIQWorker-27058 (27005) [003] ...1 1034719.012271: tracing_mark_write: E|27005
MobileIQWorker-27058 (27005) [003] ...1 1034719.012549: tracing_mark_write: B|27005|HIDL::IAllocator::allocate::client
allocator@1.0--731 ( 731) [003] ...1 1034719.012633: tracing_mark_write: B|731|HIDL::IAllocator::allocate::server
allocator@1.0--731 ( 731) [003] ...1 1034719.012836: tracing_mark_write: E|731
MobileIQWorker-27058 (27005) [003] ...1 1034719.013048: tracing_mark_write: E|27005
MobileIQWorker-27058 (27005) [003] ...1 1034719.013621: tracing_mark_write: B|27005|HIDL::IPreparedModel::execute::client
HwBinder:756_2-23196 ( 756) [003] ...1 1034719.014024: tracing_mark_write: B|756|HIDL::IPreparedModel::execute::server
HwBinder:756_2-23196 ( 756) [000] ...1 1034719.018363: tracing_mark_write: B|756|HIDL::IServiceManager::getTransport::client
hwservicemanag-570 ( 570) [000] ...1 1034719.018536: tracing_mark_write: B|570|HIDL::IServiceManager::getTransport::server
hwservicemanag-570 ( 570) [000] ...1 1034719.019276: tracing_mark_write: E|570
HwBinder:756_2-23196 ( 756) [000] ...1 1034719.019395: tracing_mark_write: E|756
HwBinder:756_2-23196 ( 756) [000] ...1 1034719.019491: tracing_mark_write: B|756|HIDL::IServiceManager::registerForNotifications::client
hwservicemanag-570 ( 570) [000] ...1 1034719.019803: tracing_mark_write: B|570|HIDL::IServiceManager::registerForNotifications::server
hwservicemanag-570 ( 570) [000] ...1 1034719.020274: tracing_mark_write: E|570
HwBinder:756_2-23196 ( 756) [000] ...1 1034719.020361: tracing_mark_write: E|756
HwBinder:756_2-23196 ( 756) [000] ...1 1034719.020389: tracing_mark_write: B|756|HIDL::IServiceManager::unregisterForNotifications::client
hwservicemanag-570 ( 570) [000] ...1 1034719.020539: tracing_mark_write: B|570|HIDL::IServiceManager::unregisterForNotifications::server
hwservicemanag-570 ( 570) [000] ...1 1034719.020566: tracing_mark_write: E|570
HwBinder:756_2-23196 ( 756) [000] ...1 1034719.020680: tracing_mark_write: E|756
surfaceflinger-591 ( 591) [001] ...1 1034719.021658: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034719.021822: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034719.021920: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034719.021949: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034719.022118: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034719.022159: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034719.022204: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034719.022313: tracing_mark_write: E|591
HwBinder:756_2-23196 ( 756) [000] ...1 1034719.024034: tracing_mark_write: B|756|HIDL::IServiceManager::registerPassthroughClient::client
hwservicemanag-570 ( 570) [000] ...1 1034719.024153: tracing_mark_write: B|570|HIDL::IServiceManager::registerPassthroughClient::server
hwservicemanag-570 ( 570) [000] ...1 1034719.024428: tracing_mark_write: E|570
HwBinder:756_2-23196 ( 756) [000] ...1 1034719.024508: tracing_mark_write: E|756
HwBinder:756_2-23196 ( 756) [000] ...1 1034719.034754: tracing_mark_write: B|756|HIDL::IExecutionCallback::notify::client
HwBinder:756_2-23196 ( 756) [000] ...1 1034719.034839: tracing_mark_write: E|756
HwBinder:756_2-23196 ( 756) [000] ...1 1034719.034860: tracing_mark_write: E|756
HwBinder:27005-27027 (27005) [004] ...1 1034719.034945: tracing_mark_write: B|27005|HIDL::IExecutionCallback::notify::server
HwBinder:27005-27027 (27005) [004] ...1 1034719.034976: tracing_mark_write: E|27005
MobileIQWorker-27058 (27005) [000] ...1 1034719.035059: tracing_mark_write: E|27005
MobileIQWorker-27051 (27005) [004] ...1 1034719.035802: tracing_mark_write: E|27005
surfaceflinger-591 ( 591) [000] ...1 1034719.038316: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034719.038462: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034719.038549: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034719.038572: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034719.038705: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.038738: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.038775: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034719.038860: tracing_mark_write: E|591
MobileIQWorker-27051 (27005) [005] ...1 1034719.041231: tracing_mark_write: E|27005
MobileIQWorker-27051 (27005) [005] ...1 1034719.052604: tracing_mark_write: B|27005|[NN_LA_PO]mobilenet_quantized
surfaceflinger-591 ( 591) [000] ...1 1034719.055026: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034719.055156: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034719.055231: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034719.055253: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034719.055384: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.055416: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.055451: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034719.055532: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034719.072264: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034719.072507: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034719.072688: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034719.072731: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034719.072991: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.073054: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.073126: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034719.073309: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034719.089234: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034719.089472: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034719.089613: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034719.089638: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.089654: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034719.090346: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034719.090499: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.090558: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.090605: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034719.090743: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034719.090925: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034719.091057: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034719.091087: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034719.091118: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034719.091349: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.091400: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.091464: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034719.091616: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034719.105882: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034719.106132: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034719.106283: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034719.106310: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.106327: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034719.107040: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034719.107197: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.107258: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.107306: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034719.107445: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034719.107628: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034719.107764: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034719.107795: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034719.107828: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034719.108069: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.108121: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.108186: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034719.108340: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034719.122671: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034719.122917: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034719.123065: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034719.123108: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034719.123450: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.123515: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.123589: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034719.123776: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034719.139409: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034719.139659: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034719.139809: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034719.139852: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034719.140163: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.140227: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.140303: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034719.140494: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034719.156125: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034719.156344: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034719.156477: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034719.156516: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034719.156813: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.156874: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.156943: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034719.157123: tracing_mark_write: E|591
MobileIQWorker-27051 (27005) [006] ...1 1034719.163738: tracing_mark_write: B|27005|[NN_LA_PE]BenchmarkModel::benchmark
MobileIQWorker-27051 (27005) [006] ...1 1034719.163987: tracing_mark_write: B|27005|HIDL::IDevice::getSupportedOperations::client
HwBinder:756_3-27059 ( 756) [004] ...1 1034719.164151: tracing_mark_write: B|756|HIDL::IDevice::getSupportedOperations::server
HwBinder:756_3-27059 ( 756) [004] ...1 1034719.164599: tracing_mark_write: E|756
MobileIQWorker-27051 (27005) [006] ...1 1034719.164633: tracing_mark_write: E|27005
MobileIQWorker-27051 (27005) [006] ...1 1034719.164724: tracing_mark_write: B|27005|HIDL::IDevice::prepareModel::client
HwBinder:756_3-27059 ( 756) [004] ...1 1034719.164852: tracing_mark_write: B|756|HIDL::IDevice::prepareModel::server
surfaceflinger-591 ( 591) [000] ...1 1034719.173459: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034719.173721: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034719.173867: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034719.173911: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034719.174173: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.174238: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.174313: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034719.174496: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034719.189548: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034719.189725: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034719.189828: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034719.189858: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034719.190070: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.190116: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.190166: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034719.190288: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [001] ...1 1034719.206219: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034719.206372: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034719.206455: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034719.206480: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034719.206655: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034719.206690: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034719.206726: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034719.206814: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034719.222967: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034719.223110: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034719.223189: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034719.223300: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034719.223452: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.223488: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.223528: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034719.223618: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034719.239619: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034719.239754: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034719.239821: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034719.239841: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034719.239983: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.240009: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.240039: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034719.240109: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034719.256883: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034719.257104: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034719.257241: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034719.257280: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034719.257514: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.257571: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.257636: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034719.257795: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034719.273279: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034719.273433: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034719.273505: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034719.273527: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034719.273651: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.273679: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.273711: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034719.273787: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034719.289981: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034719.290105: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034719.290176: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034719.290197: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034719.290321: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.290349: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.290380: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034719.290457: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034719.306780: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034719.306898: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034719.306966: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034719.306987: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034719.307111: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.307138: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.307170: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034719.307243: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034719.324201: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034719.324451: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034719.324591: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034719.324630: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034719.324866: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.324923: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.324988: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034719.325145: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034719.340724: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034719.340944: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034719.341080: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034719.341119: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034719.341351: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.341409: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.341475: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034719.341641: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034719.357623: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034719.357878: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034719.358032: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034719.358076: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034719.358338: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.358404: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.358479: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034719.358661: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034719.374370: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034719.374624: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034719.374773: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034719.374818: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034719.375079: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.375142: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.375216: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034719.375394: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034719.391177: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034719.391423: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034719.391572: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034719.391616: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034719.391875: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.391939: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.392012: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034719.392189: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034719.407920: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034719.408163: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034719.408310: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034719.408353: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034719.408613: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.408678: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.408752: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034719.408926: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034719.424740: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034719.424987: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034719.425133: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034719.425176: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034719.425422: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.425485: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.425559: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034719.425736: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034719.441458: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034719.441701: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034719.441848: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034719.441892: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034719.442146: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.442209: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.442282: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034719.442455: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034719.458286: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034719.458529: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034719.458678: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034719.458721: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034719.458977: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.459040: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.459114: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034719.459290: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034719.475038: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034719.475283: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034719.475429: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034719.475472: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034719.475733: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.475798: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.475872: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034719.476046: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034719.491786: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034719.492036: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034719.492184: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034719.492227: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034719.492481: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.492544: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.492616: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034719.492792: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034719.508597: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034719.508843: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034719.508989: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034719.509031: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034719.509291: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.509355: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.509428: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034719.509604: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034719.525370: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034719.525613: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034719.525761: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034719.525804: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034719.526062: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.526127: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.526199: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034719.526377: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034719.542148: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034719.542391: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034719.542538: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034719.542582: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034719.542847: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.542912: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.542985: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034719.543162: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034719.558931: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034719.559172: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034719.559321: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034719.559365: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034719.559622: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.559684: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.559759: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034719.560093: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034719.575737: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034719.575984: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034719.576130: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034719.576173: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034719.576424: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.576489: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.576629: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034719.576810: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034719.592597: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034719.592949: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034719.593111: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034719.593162: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034719.593618: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034719.593683: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034719.593758: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034719.593956: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034719.609590: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034719.609849: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034719.610082: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034719.610110: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.610126: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034719.610756: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034719.610909: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.610967: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.611015: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034719.611153: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034719.611335: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034719.611469: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034719.611499: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034719.611530: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034719.611759: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.611811: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.611877: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034719.612028: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034719.626311: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034719.626654: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034719.626801: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034719.626844: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034719.627100: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.627172: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.627259: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034719.627445: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [001] ...1 1034719.643128: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034719.643462: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034719.643612: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034719.643655: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034719.643904: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034719.643970: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034719.644044: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034719.644228: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034719.659839: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034719.660217: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034719.660367: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034719.660411: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034719.660660: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.660724: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.660800: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034719.660976: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034719.676681: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034719.676927: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034719.677077: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034719.677121: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034719.677367: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.677432: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.677506: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034719.677681: tracing_mark_write: E|591
HwBinder:756_3-27059 ( 756) [000] ...1 1034719.686691: tracing_mark_write: B|756|HIDL::IPreparedModelCallback::notify::client
HwBinder:756_3-27059 ( 756) [000] ...1 1034719.686898: tracing_mark_write: E|756
HwBinder:756_3-27059 ( 756) [000] ...1 1034719.686930: tracing_mark_write: E|756
MobileIQWorker-27051 (27005) [000] ...1 1034719.687091: tracing_mark_write: E|27005
HwBinder:27005-27027 (27005) [004] ...1 1034719.687124: tracing_mark_write: B|27005|HIDL::IPreparedModelCallback::notify::server
HwBinder:27005-27027 (27005) [004] ...1 1034719.687159: tracing_mark_write: E|27005
MobileIQWorker-27064 (27005) [004] ...1 1034719.688449: tracing_mark_write: B|27005|HIDL::IAllocator::allocate::client
allocator@1.0--731 ( 731) [004] ...1 1034719.688637: tracing_mark_write: B|731|HIDL::IAllocator::allocate::server
allocator@1.0--731 ( 731) [004] ...1 1034719.688985: tracing_mark_write: E|731
MobileIQWorker-27064 (27005) [004] ...1 1034719.689167: tracing_mark_write: E|27005
MobileIQWorker-27064 (27005) [004] ...1 1034719.689327: tracing_mark_write: B|27005|HIDL::IAllocator::allocate::client
allocator@1.0--731 ( 731) [004] ...1 1034719.689431: tracing_mark_write: B|731|HIDL::IAllocator::allocate::server
allocator@1.0--731 ( 731) [004] ...1 1034719.689612: tracing_mark_write: E|731
MobileIQWorker-27064 (27005) [004] ...1 1034719.689747: tracing_mark_write: E|27005
MobileIQWorker-27064 (27005) [004] ...1 1034719.690321: tracing_mark_write: B|27005|HIDL::IPreparedModel::execute::client
HwBinder:756_3-27059 ( 756) [004] ...1 1034719.690639: tracing_mark_write: B|756|HIDL::IPreparedModel::execute::server
surfaceflinger-591 ( 591) [000] ...1 1034719.693108: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034719.693378: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034719.693489: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034719.693519: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034719.693688: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.693732: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.693782: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034719.693900: tracing_mark_write: E|591
HwBinder:756_3-27059 ( 756) [000] ...1 1034719.701158: tracing_mark_write: B|756|HIDL::IExecutionCallback::notify::client
HwBinder:756_3-27059 ( 756) [000] ...1 1034719.701230: tracing_mark_write: E|756
HwBinder:756_3-27059 ( 756) [000] ...1 1034719.701248: tracing_mark_write: E|756
HwBinder:27005-27027 (27005) [004] ...1 1034719.701305: tracing_mark_write: B|27005|HIDL::IExecutionCallback::notify::server
HwBinder:27005-27027 (27005) [004] ...1 1034719.701325: tracing_mark_write: E|27005
MobileIQWorker-27064 (27005) [000] ...1 1034719.701607: tracing_mark_write: E|27005
MobileIQWorker-27051 (27005) [004] ...1 1034719.702243: tracing_mark_write: E|27005
MobileIQWorker-27051 (27005) [005] ...1 1034719.706714: tracing_mark_write: E|27005
surfaceflinger-591 ( 591) [000] ...1 1034719.710350: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034719.710607: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
MobileIQWorker-27051 (27005) [005] ...1 1034719.710621: tracing_mark_write: B|27005|[NN_LA_PO]mobilenet_quantized
composer@2.1-s-593 ( 593) [001] ...1 1034719.710760: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034719.710804: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034719.711067: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.711131: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.711210: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034719.711405: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034719.727115: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034719.727381: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034719.727530: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034719.727573: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034719.727824: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.727887: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.727960: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034719.728140: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034719.744053: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034719.744298: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034719.744449: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034719.744478: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.744494: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034719.745136: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034719.745291: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.745351: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.745399: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034719.745538: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034719.745734: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034719.745868: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034719.745899: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034719.745933: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034719.746173: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.746225: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.746295: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034719.746449: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034719.760569: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034719.760813: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034719.760960: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034719.760987: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.761003: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034719.761641: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034719.761795: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.761855: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.761902: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034719.762037: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034719.762228: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034719.762364: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034719.762394: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034719.762428: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034719.762659: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.762711: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.762776: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034719.762929: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034719.777363: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034719.777629: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034719.777777: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034719.777821: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034719.778077: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.778140: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.778214: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034719.778392: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034719.794187: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034719.794430: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034719.794577: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034719.794621: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034719.794879: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.794941: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.795015: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034719.795198: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034719.810757: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034719.810981: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034719.811115: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034719.811155: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034719.811399: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.811463: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.811532: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034719.811706: tracing_mark_write: E|591
MobileIQWorker-27051 (27005) [007] ...1 1034719.822231: tracing_mark_write: B|27005|[NN_LA_PE]BenchmarkModel::benchmark
MobileIQWorker-27051 (27005) [007] ...1 1034719.822462: tracing_mark_write: B|27005|HIDL::IDevice::getSupportedOperations::client
neuralnetworks-756 ( 756) [006] ...1 1034719.822620: tracing_mark_write: B|756|HIDL::IDevice::getSupportedOperations::server
neuralnetworks-756 ( 756) [007] ...1 1034719.822912: tracing_mark_write: E|756
MobileIQWorker-27051 (27005) [004] ...1 1034719.822945: tracing_mark_write: E|27005
MobileIQWorker-27051 (27005) [004] ...1 1034719.823030: tracing_mark_write: B|27005|HIDL::IDevice::prepareModel::client
neuralnetworks-756 ( 756) [005] ...1 1034719.823155: tracing_mark_write: B|756|HIDL::IDevice::prepareModel::server
surfaceflinger-591 ( 591) [000] ...1 1034719.827731: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034719.828038: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034719.828370: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034719.828482: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034719.829010: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.829169: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.829340: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034719.829634: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034719.844344: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034719.844725: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034719.845126: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034719.845258: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034719.845862: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.846061: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.846222: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034719.846658: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034719.861192: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034719.861608: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034719.862109: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034719.862277: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034719.863028: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.863169: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.863655: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034719.863954: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034719.877909: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034719.878318: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034719.878702: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034719.878871: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034719.879731: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.880091: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.880404: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034719.880704: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034719.894462: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034719.894681: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034719.894810: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034719.894835: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.894851: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034719.895480: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034719.895637: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.895696: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.895742: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034719.895874: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034719.896057: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034719.896191: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034719.896220: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034719.896252: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034719.896494: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.896600: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.896689: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034719.896841: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034719.911270: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034719.911487: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034719.911621: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034719.911658: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034719.911905: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.911964: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.912030: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034719.912199: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034719.928175: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034719.928510: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034719.928703: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034719.928747: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034719.929150: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.929300: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034719.929413: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034719.929606: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [001] ...1 1034719.945303: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034719.945657: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034719.945806: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034719.945848: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034719.946110: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034719.946174: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034719.946249: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034719.946457: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [001] ...1 1034719.961717: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034719.961965: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034719.962114: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034719.962157: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034719.962413: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034719.962479: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034719.962553: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034719.962731: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [001] ...1 1034719.978481: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034719.978737: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034719.978885: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034719.978927: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034719.979183: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034719.979248: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034719.979320: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034719.979501: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [002] ...1 1034719.995204: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034719.995424: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034719.995546: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034719.995583: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034719.995829: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034719.995889: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034719.995957: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [002] ...1 1034719.996118: tracing_mark_write: E|591
neuralnetworks-756 ( 756) [007] ...1 1034720.366908: tracing_mark_write: B|756|HIDL::IPreparedModelCallback::notify::client
neuralnetworks-756 ( 756) [007] ...1 1034720.367189: tracing_mark_write: E|756
neuralnetworks-756 ( 756) [007] ...1 1034720.367222: tracing_mark_write: E|756
MobileIQWorker-27051 (27005) [007] ...1 1034720.367401: tracing_mark_write: E|27005
HwBinder:27005-27027 (27005) [004] ...1 1034720.367581: tracing_mark_write: B|27005|HIDL::IPreparedModelCallback::notify::server
HwBinder:27005-27027 (27005) [004] ...1 1034720.367610: tracing_mark_write: E|27005
MobileIQWorker-27069 (27005) [005] ...1 1034720.368515: tracing_mark_write: B|27005|HIDL::IAllocator::allocate::client
allocator@1.0--731 ( 731) [005] ...1 1034720.368707: tracing_mark_write: B|731|HIDL::IAllocator::allocate::server
allocator@1.0--731 ( 731) [005] ...1 1034720.369015: tracing_mark_write: E|731
MobileIQWorker-27069 (27005) [005] ...1 1034720.369206: tracing_mark_write: E|27005
MobileIQWorker-27069 (27005) [005] ...1 1034720.369372: tracing_mark_write: B|27005|HIDL::IAllocator::allocate::client
allocator@1.0--731 ( 731) [005] ...1 1034720.369495: tracing_mark_write: B|731|HIDL::IAllocator::allocate::server
allocator@1.0--731 ( 731) [005] ...1 1034720.369689: tracing_mark_write: E|731
MobileIQWorker-27069 (27005) [005] ...1 1034720.369848: tracing_mark_write: E|27005
MobileIQWorker-27069 (27005) [005] ...1 1034720.370465: tracing_mark_write: B|27005|HIDL::IPreparedModel::execute::client
neuralnetworks-756 ( 756) [005] ...1 1034720.370805: tracing_mark_write: B|756|HIDL::IPreparedModel::execute::server
neuralnetworks-756 ( 756) [005] ...1 1034720.384989: tracing_mark_write: B|756|HIDL::IExecutionCallback::notify::client
neuralnetworks-756 ( 756) [005] ...1 1034720.385118: tracing_mark_write: E|756
neuralnetworks-756 ( 756) [005] ...1 1034720.385144: tracing_mark_write: E|756
HwBinder:27005-27027 (27005) [004] ...1 1034720.385394: tracing_mark_write: B|27005|HIDL::IExecutionCallback::notify::server
HwBinder:27005-27027 (27005) [004] ...1 1034720.385423: tracing_mark_write: E|27005
MobileIQWorker-27069 (27005) [005] ...1 1034720.385489: tracing_mark_write: E|27005
MobileIQWorker-27051 (27005) [004] ...1 1034720.386216: tracing_mark_write: E|27005
MobileIQWorker-27051 (27005) [005] ...1 1034720.391329: tracing_mark_write: E|27005
MobileIQWorker-27051 (27005) [005] ...1 1034720.395048: tracing_mark_write: B|27005|[NN_LA_PO]mobilenet_quantized
surfaceflinger-591 ( 591) [000] ...1 1034720.431628: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034720.431894: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034720.432058: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034720.432087: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034720.432104: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034720.432766: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034720.432926: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034720.432988: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034720.433038: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034720.433180: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034720.433440: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034720.433583: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034720.433615: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034720.433650: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034720.433898: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034720.433951: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034720.434018: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034720.434178: tracing_mark_write: E|591
MobileIQWorker-27051 (27005) [007] ...1 1034720.514122: tracing_mark_write: B|27005|[NN_LA_PE]BenchmarkModel::benchmark
MobileIQWorker-27051 (27005) [007] ...1 1034720.514361: tracing_mark_write: B|27005|HIDL::IDevice::getSupportedOperations::client
neuralnetworks-756 ( 756) [005] ...1 1034720.514669: tracing_mark_write: B|756|HIDL::IDevice::getSupportedOperations::server
neuralnetworks-756 ( 756) [005] ...1 1034720.515329: tracing_mark_write: E|756
MobileIQWorker-27051 (27005) [006] ...1 1034720.515369: tracing_mark_write: E|27005
MobileIQWorker-27051 (27005) [006] ...1 1034720.515458: tracing_mark_write: B|27005|HIDL::IDevice::prepareModel::client
neuralnetworks-756 ( 756) [007] ...1 1034720.515590: tracing_mark_write: B|756|HIDL::IDevice::prepareModel::server
neuralnetworks-756 ( 756) [006] ...1 1034721.184087: tracing_mark_write: B|756|HIDL::IPreparedModelCallback::notify::client
neuralnetworks-756 ( 756) [006] ...1 1034721.184347: tracing_mark_write: E|756
neuralnetworks-756 ( 756) [006] ...1 1034721.184380: tracing_mark_write: E|756
MobileIQWorker-27051 (27005) [006] ...1 1034721.184660: tracing_mark_write: E|27005
HwBinder:27005-27027 (27005) [004] ...1 1034721.184700: tracing_mark_write: B|27005|HIDL::IPreparedModelCallback::notify::server
HwBinder:27005-27027 (27005) [004] ...1 1034721.184731: tracing_mark_write: E|27005
MobileIQWorker-27075 (27005) [005] ...1 1034721.185731: tracing_mark_write: B|27005|HIDL::IAllocator::allocate::client
allocator@1.0--731 ( 731) [005] ...1 1034721.185916: tracing_mark_write: B|731|HIDL::IAllocator::allocate::server
allocator@1.0--731 ( 731) [005] ...1 1034721.186229: tracing_mark_write: E|731
MobileIQWorker-27075 (27005) [005] ...1 1034721.186424: tracing_mark_write: E|27005
MobileIQWorker-27075 (27005) [005] ...1 1034721.186654: tracing_mark_write: B|27005|HIDL::IAllocator::allocate::client
allocator@1.0--731 ( 731) [005] ...1 1034721.186771: tracing_mark_write: B|731|HIDL::IAllocator::allocate::server
allocator@1.0--731 ( 731) [005] ...1 1034721.186965: tracing_mark_write: E|731
MobileIQWorker-27075 (27005) [005] ...1 1034721.187129: tracing_mark_write: E|27005
MobileIQWorker-27075 (27005) [005] ...1 1034721.187687: tracing_mark_write: B|27005|HIDL::IPreparedModel::execute::client
neuralnetworks-756 ( 756) [005] ...1 1034721.188014: tracing_mark_write: B|756|HIDL::IPreparedModel::execute::server
neuralnetworks-756 ( 756) [005] ...1 1034721.203997: tracing_mark_write: B|756|HIDL::IExecutionCallback::notify::client
neuralnetworks-756 ( 756) [005] ...1 1034721.204138: tracing_mark_write: E|756
neuralnetworks-756 ( 756) [005] ...1 1034721.204165: tracing_mark_write: E|756
MobileIQWorker-27075 (27005) [005] ...1 1034721.204406: tracing_mark_write: E|27005
HwBinder:27005-27027 (27005) [004] ...1 1034721.204420: tracing_mark_write: B|27005|HIDL::IExecutionCallback::notify::server
HwBinder:27005-27027 (27005) [004] ...1 1034721.204521: tracing_mark_write: E|27005
MobileIQWorker-27051 (27005) [004] ...1 1034721.205415: tracing_mark_write: E|27005
MobileIQWorker-27051 (27005) [004] ...1 1034721.210742: tracing_mark_write: E|27005
MobileIQWorker-27051 (27005) [004] ...1 1034721.214429: tracing_mark_write: B|27005|[NN_LA_PO]mobilenet_quantized
Binder:591_5-1775 ( 591) [001] ...1 1034721.214506: tracing_mark_write: B|591|HIDL::IComposerClient::getActiveConfig::client
composer@2.1-s-593 ( 593) [001] ...1 1034721.214717: tracing_mark_write: B|593|HIDL::IComposerClient::getActiveConfig::server
composer@2.1-s-593 ( 593) [001] ...1 1034721.214753: tracing_mark_write: E|593
Binder:591_5-1775 ( 591) [001] ...1 1034721.214858: tracing_mark_write: E|591
surfaceflinger-668 ( 591) [002] ...1 1034721.215199: tracing_mark_write: B|591|HIDL::IComposerClient::setVsyncEnabled::client
composer@2.1-s-593 ( 593) [002] ...1 1034721.215349: tracing_mark_write: B|593|HIDL::IComposerClient::setVsyncEnabled::server
composer@2.1-s-593 ( 593) [002] ...1 1034721.215373: tracing_mark_write: C|593|SetVsyncState |1
composer@2.1-s-593 ( 593) [002] ...1 1034721.215397: tracing_mark_write: B|593|HWPrimary::SetVSyncState::
composer@2.1-s-593 ( 593) [002] ...1 1034721.218839: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034721.218865: tracing_mark_write: E|593
surfaceflinger-668 ( 591) [002] ...1 1034721.218966: tracing_mark_write: E|591
SDM_EventThrea-634 ( 593) [000] ...1 1034721.230796: tracing_mark_write: B|593|HWCCallbacks::Vsync::
SDM_EventThrea-634 ( 593) [000] ...1 1034721.230815: tracing_mark_write: B|593|HIDL::IComposerCallback::onVsync::client
SDM_EventThrea-634 ( 593) [000] ...1 1034721.230986: tracing_mark_write: E|593
SDM_EventThrea-634 ( 593) [000] ...1 1034721.231006: tracing_mark_write: E|593
HwBinder:591_1-620 ( 591) [001] ...1 1034721.231194: tracing_mark_write: B|591|HIDL::IComposerCallback::onVsync::server
HwBinder:591_1-620 ( 591) [001] ...1 1034721.231251: tracing_mark_write: E|591
SDM_EventThrea-634 ( 593) [000] ...1 1034721.247281: tracing_mark_write: B|593|HWCCallbacks::Vsync::
SDM_EventThrea-634 ( 593) [000] ...1 1034721.247298: tracing_mark_write: B|593|HIDL::IComposerCallback::onVsync::client
SDM_EventThrea-634 ( 593) [000] ...1 1034721.247389: tracing_mark_write: E|593
SDM_EventThrea-634 ( 593) [000] ...1 1034721.247407: tracing_mark_write: E|593
HwBinder:591_1-620 ( 591) [001] ...1 1034721.247428: tracing_mark_write: B|591|HIDL::IComposerCallback::onVsync::server
HwBinder:591_1-620 ( 591) [001] ...1 1034721.247453: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034721.254125: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [002] ...1 1034721.254346: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [002] ...1 1034721.254497: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [002] ...1 1034721.254539: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [002] ...1 1034721.254798: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034721.254864: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034721.254942: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034721.255140: tracing_mark_write: E|591
SDM_EventThrea-634 ( 593) [000] ...1 1034721.264096: tracing_mark_write: B|593|HWCCallbacks::Vsync::
SDM_EventThrea-634 ( 593) [000] ...1 1034721.264113: tracing_mark_write: B|593|HIDL::IComposerCallback::onVsync::client
SDM_EventThrea-634 ( 593) [000] ...1 1034721.264209: tracing_mark_write: E|593
SDM_EventThrea-634 ( 593) [000] ...1 1034721.264227: tracing_mark_write: E|593
HwBinder:591_1-620 ( 591) [001] ...1 1034721.264250: tracing_mark_write: B|591|HIDL::IComposerCallback::onVsync::server
HwBinder:591_1-620 ( 591) [001] ...1 1034721.264276: tracing_mark_write: E|591
SDM_EventThrea-634 ( 593) [000] ...1 1034721.280829: tracing_mark_write: B|593|HWCCallbacks::Vsync::
SDM_EventThrea-634 ( 593) [000] ...1 1034721.280845: tracing_mark_write: B|593|HIDL::IComposerCallback::onVsync::client
SDM_EventThrea-634 ( 593) [000] ...1 1034721.280932: tracing_mark_write: E|593
SDM_EventThrea-634 ( 593) [000] ...1 1034721.280948: tracing_mark_write: E|593
HwBinder:591_1-620 ( 591) [001] ...1 1034721.280964: tracing_mark_write: B|591|HIDL::IComposerCallback::onVsync::server
HwBinder:591_1-620 ( 591) [001] ...1 1034721.280987: tracing_mark_write: E|591
SDM_EventThrea-634 ( 593) [000] ...1 1034721.297610: tracing_mark_write: B|593|HWCCallbacks::Vsync::
SDM_EventThrea-634 ( 593) [000] ...1 1034721.297627: tracing_mark_write: B|593|HIDL::IComposerCallback::onVsync::client
SDM_EventThrea-634 ( 593) [000] ...1 1034721.297711: tracing_mark_write: E|593
SDM_EventThrea-634 ( 593) [000] ...1 1034721.297728: tracing_mark_write: E|593
HwBinder:591_1-620 ( 591) [001] ...1 1034721.297742: tracing_mark_write: B|591|HIDL::IComposerCallback::onVsync::server
HwBinder:591_1-620 ( 591) [001] ...1 1034721.297764: tracing_mark_write: E|591
SDM_EventThrea-634 ( 593) [000] ...1 1034721.314386: tracing_mark_write: B|593|HWCCallbacks::Vsync::
SDM_EventThrea-634 ( 593) [000] ...1 1034721.314399: tracing_mark_write: B|593|HIDL::IComposerCallback::onVsync::client
SDM_EventThrea-634 ( 593) [000] ...1 1034721.314479: tracing_mark_write: E|593
SDM_EventThrea-634 ( 593) [000] ...1 1034721.314495: tracing_mark_write: E|593
HwBinder:591_1-620 ( 591) [001] ...1 1034721.314505: tracing_mark_write: B|591|HIDL::IComposerCallback::onVsync::server
HwBinder:591_1-620 ( 591) [001] ...1 1034721.314613: tracing_mark_write: E|591
surfaceflinger-668 ( 591) [000] ...1 1034721.314649: tracing_mark_write: B|591|HIDL::IComposerClient::setVsyncEnabled::client
composer@2.1-s-593 ( 593) [000] ...1 1034721.314805: tracing_mark_write: B|593|HIDL::IComposerClient::setVsyncEnabled::server
composer@2.1-s-593 ( 593) [000] ...1 1034721.314825: tracing_mark_write: C|593|SetVsyncState |0
composer@2.1-s-593 ( 593) [000] ...1 1034721.314846: tracing_mark_write: B|593|HWPrimary::SetVSyncState::
composer@2.1-s-593 ( 593) [000] ...1 1034721.315857: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034721.315883: tracing_mark_write: E|593
surfaceflinger-668 ( 591) [000] ...1 1034721.315983: tracing_mark_write: E|591
MobileIQWorker-27051 (27005) [005] ...1 1034721.327371: tracing_mark_write: B|27005|[NN_LA_PE]BenchmarkModel::benchmark
MobileIQWorker-27051 (27005) [005] ...1 1034721.327604: tracing_mark_write: B|27005|HIDL::IDevice::getSupportedOperations::client
neuralnetworks-756 ( 756) [007] ...1 1034721.327926: tracing_mark_write: B|756|HIDL::IDevice::getSupportedOperations::server
neuralnetworks-756 ( 756) [006] ...1 1034721.328729: tracing_mark_write: E|756
MobileIQWorker-27051 (27005) [005] ...1 1034721.328870: tracing_mark_write: E|27005
MobileIQWorker-27051 (27005) [005] ...1 1034721.328956: tracing_mark_write: B|27005|HIDL::IDevice::prepareModel::client
neuralnetworks-756 ( 756) [006] ...1 1034721.329180: tracing_mark_write: B|756|HIDL::IDevice::prepareModel::server
neuralnetworks-756 ( 756) [001] ...1 1034722.025592: tracing_mark_write: B|756|HIDL::IPreparedModelCallback::notify::client
neuralnetworks-756 ( 756) [001] ...1 1034722.025852: tracing_mark_write: E|756
neuralnetworks-756 ( 756) [001] ...1 1034722.025888: tracing_mark_write: E|756
MobileIQWorker-27051 (27005) [001] ...1 1034722.026387: tracing_mark_write: E|27005
HwBinder:27005-27027 (27005) [004] ...1 1034722.026899: tracing_mark_write: B|27005|HIDL::IPreparedModelCallback::notify::server
HwBinder:27005-27027 (27005) [004] ...1 1034722.026969: tracing_mark_write: E|27005
MobileIQWorker-27082 (27005) [006] ...1 1034722.028173: tracing_mark_write: B|27005|HIDL::IAllocator::allocate::client
allocator@1.0--731 ( 731) [006] ...1 1034722.028373: tracing_mark_write: B|731|HIDL::IAllocator::allocate::server
allocator@1.0--731 ( 731) [006] ...1 1034722.028784: tracing_mark_write: E|731
MobileIQWorker-27082 (27005) [006] ...1 1034722.028979: tracing_mark_write: E|27005
MobileIQWorker-27082 (27005) [006] ...1 1034722.029137: tracing_mark_write: B|27005|HIDL::IAllocator::allocate::client
allocator@1.0--731 ( 731) [006] ...1 1034722.029256: tracing_mark_write: B|731|HIDL::IAllocator::allocate::server
allocator@1.0--731 ( 731) [006] ...1 1034722.029450: tracing_mark_write: E|731
MobileIQWorker-27082 (27005) [006] ...1 1034722.029610: tracing_mark_write: E|27005
MobileIQWorker-27082 (27005) [006] ...1 1034722.030247: tracing_mark_write: B|27005|HIDL::IPreparedModel::execute::client
neuralnetworks-756 ( 756) [006] ...1 1034722.030612: tracing_mark_write: B|756|HIDL::IPreparedModel::execute::server
neuralnetworks-756 ( 756) [006] ...1 1034722.043624: tracing_mark_write: B|756|HIDL::IExecutionCallback::notify::client
neuralnetworks-756 ( 756) [006] ...1 1034722.043735: tracing_mark_write: E|756
neuralnetworks-756 ( 756) [006] ...1 1034722.043757: tracing_mark_write: E|756
HwBinder:27005-27027 (27005) [005] ...1 1034722.043793: tracing_mark_write: B|27005|HIDL::IExecutionCallback::notify::server
HwBinder:27005-27027 (27005) [005] ...1 1034722.043820: tracing_mark_write: E|27005
MobileIQWorker-27082 (27005) [006] ...1 1034722.043942: tracing_mark_write: E|27005
MobileIQWorker-27051 (27005) [005] ...1 1034722.044722: tracing_mark_write: E|27005
MobileIQWorker-27051 (27005) [005] ...1 1034722.049978: tracing_mark_write: E|27005
Binder:591_5-1775 ( 591) [000] ...1 1034722.053677: tracing_mark_write: B|591|HIDL::IComposerClient::getActiveConfig::client
composer@2.1-s-593 ( 593) [000] ...1 1034722.053838: tracing_mark_write: B|593|HIDL::IComposerClient::getActiveConfig::server
composer@2.1-s-593 ( 593) [000] ...1 1034722.053866: tracing_mark_write: E|593
Binder:591_5-1775 ( 591) [000] ...1 1034722.053940: tracing_mark_write: E|591
surfaceflinger-668 ( 591) [003] ...1 1034722.054204: tracing_mark_write: B|591|HIDL::IComposerClient::setVsyncEnabled::client
composer@2.1-s-593 ( 593) [003] ...1 1034722.054304: tracing_mark_write: B|593|HIDL::IComposerClient::setVsyncEnabled::server
composer@2.1-s-593 ( 593) [003] ...1 1034722.054320: tracing_mark_write: C|593|SetVsyncState |1
composer@2.1-s-593 ( 593) [003] ...1 1034722.054338: tracing_mark_write: B|593|HWPrimary::SetVSyncState::
composer@2.1-s-593 ( 593) [003] ...1 1034722.057641: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [003] ...1 1034722.057662: tracing_mark_write: E|593
surfaceflinger-668 ( 591) [003] ...1 1034722.057862: tracing_mark_write: E|591
SDM_EventThrea-634 ( 593) [000] ...1 1034722.069735: tracing_mark_write: B|593|HWCCallbacks::Vsync::
SDM_EventThrea-634 ( 593) [000] ...1 1034722.069752: tracing_mark_write: B|593|HIDL::IComposerCallback::onVsync::client
SDM_EventThrea-634 ( 593) [000] ...1 1034722.069854: tracing_mark_write: E|593
SDM_EventThrea-634 ( 593) [000] ...1 1034722.069947: tracing_mark_write: E|593
HwBinder:591_1-620 ( 591) [001] ...1 1034722.069961: tracing_mark_write: B|591|HIDL::IComposerCallback::onVsync::server
HwBinder:591_1-620 ( 591) [001] ...1 1034722.070022: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034722.076389: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [003] ...1 1034722.076641: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [003] ...1 1034722.076811: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [003] ...1 1034722.076879: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [003] ...1 1034722.077135: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [003] ...1 1034722.077204: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [003] ...1 1034722.077284: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.077491: tracing_mark_write: E|591
SDM_EventThrea-634 ( 593) [000] ...1 1034722.086527: tracing_mark_write: B|593|HWCCallbacks::Vsync::
SDM_EventThrea-634 ( 593) [000] ...1 1034722.086593: tracing_mark_write: B|593|HIDL::IComposerCallback::onVsync::client
SDM_EventThrea-634 ( 593) [000] ...1 1034722.086717: tracing_mark_write: E|593
SDM_EventThrea-634 ( 593) [000] ...1 1034722.086736: tracing_mark_write: E|593
HwBinder:591_1-620 ( 591) [001] ...1 1034722.086758: tracing_mark_write: B|591|HIDL::IComposerCallback::onVsync::server
HwBinder:591_1-620 ( 591) [001] ...1 1034722.086785: tracing_mark_write: E|591
SDM_EventThrea-634 ( 593) [000] ...1 1034722.103290: tracing_mark_write: B|593|HWCCallbacks::Vsync::
SDM_EventThrea-634 ( 593) [000] ...1 1034722.103306: tracing_mark_write: B|593|HIDL::IComposerCallback::onVsync::client
SDM_EventThrea-634 ( 593) [000] ...1 1034722.103394: tracing_mark_write: E|593
SDM_EventThrea-634 ( 593) [000] ...1 1034722.103411: tracing_mark_write: E|593
HwBinder:591_1-620 ( 591) [001] ...1 1034722.103427: tracing_mark_write: B|591|HIDL::IComposerCallback::onVsync::server
HwBinder:591_1-620 ( 591) [001] ...1 1034722.103451: tracing_mark_write: E|591
SDM_EventThrea-634 ( 593) [000] ...1 1034722.119994: tracing_mark_write: B|593|HWCCallbacks::Vsync::
SDM_EventThrea-634 ( 593) [000] ...1 1034722.120011: tracing_mark_write: B|593|HIDL::IComposerCallback::onVsync::client
SDM_EventThrea-634 ( 593) [000] ...1 1034722.120100: tracing_mark_write: E|593
SDM_EventThrea-634 ( 593) [000] ...1 1034722.120117: tracing_mark_write: E|593
HwBinder:591_1-620 ( 591) [001] ...1 1034722.120135: tracing_mark_write: B|591|HIDL::IComposerCallback::onVsync::server
HwBinder:591_1-620 ( 591) [001] ...1 1034722.120158: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034722.126337: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [003] ...1 1034722.126696: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [003] ...1 1034722.126837: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [003] ...1 1034722.126863: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [003] ...1 1034722.126879: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [003] ...1 1034722.127536: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [003] ...1 1034722.127694: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [003] ...1 1034722.127756: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [003] ...1 1034722.127801: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.127952: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034722.128145: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [003] ...1 1034722.128286: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [003] ...1 1034722.128318: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [003] ...1 1034722.128352: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [003] ...1 1034722.128598: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [003] ...1 1034722.128650: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [003] ...1 1034722.128720: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.128879: tracing_mark_write: E|591
SDM_EventThrea-634 ( 593) [000] ...1 1034722.137012: tracing_mark_write: B|593|HWCCallbacks::Vsync::
SDM_EventThrea-634 ( 593) [000] ...1 1034722.137029: tracing_mark_write: B|593|HIDL::IComposerCallback::onVsync::client
SDM_EventThrea-634 ( 593) [000] ...1 1034722.137127: tracing_mark_write: E|593
SDM_EventThrea-634 ( 593) [000] ...1 1034722.137147: tracing_mark_write: E|593
HwBinder:591_1-620 ( 591) [001] ...1 1034722.137167: tracing_mark_write: B|591|HIDL::IComposerCallback::onVsync::server
HwBinder:591_1-620 ( 591) [001] ...1 1034722.137193: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034722.142961: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [003] ...1 1034722.143159: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [003] ...1 1034722.143360: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [003] ...1 1034722.143395: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [003] ...1 1034722.143626: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [003] ...1 1034722.143684: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [003] ...1 1034722.143747: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.143923: tracing_mark_write: E|591
SDM_EventThrea-634 ( 593) [000] ...1 1034722.153581: tracing_mark_write: B|593|HWCCallbacks::Vsync::
SDM_EventThrea-634 ( 593) [000] ...1 1034722.153597: tracing_mark_write: B|593|HIDL::IComposerCallback::onVsync::client
SDM_EventThrea-634 ( 593) [000] ...1 1034722.153690: tracing_mark_write: E|593
SDM_EventThrea-634 ( 593) [000] ...1 1034722.153707: tracing_mark_write: E|593
HwBinder:591_1-620 ( 591) [001] ...1 1034722.153724: tracing_mark_write: B|591|HIDL::IComposerCallback::onVsync::server
HwBinder:591_1-620 ( 591) [001] ...1 1034722.153819: tracing_mark_write: E|591
surfaceflinger-668 ( 591) [002] ...1 1034722.153851: tracing_mark_write: B|591|HIDL::IComposerClient::setVsyncEnabled::client
composer@2.1-s-593 ( 593) [002] ...1 1034722.154008: tracing_mark_write: B|593|HIDL::IComposerClient::setVsyncEnabled::server
composer@2.1-s-593 ( 593) [002] ...1 1034722.154029: tracing_mark_write: C|593|SetVsyncState |0
composer@2.1-s-593 ( 593) [002] ...1 1034722.154050: tracing_mark_write: B|593|HWPrimary::SetVSyncState::
composer@2.1-s-593 ( 593) [002] ...1 1034722.154090: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034722.154112: tracing_mark_write: E|593
surfaceflinger-668 ( 591) [002] ...1 1034722.154199: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034722.160319: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [002] ...1 1034722.160527: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [002] ...1 1034722.160663: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [002] ...1 1034722.160700: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [002] ...1 1034722.160940: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034722.160999: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034722.161066: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.161231: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034722.176995: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [002] ...1 1034722.177196: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [002] ...1 1034722.177314: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [002] ...1 1034722.177352: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [002] ...1 1034722.177582: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034722.177640: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034722.177706: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.177871: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [001] ...1 1034722.194053: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [002] ...1 1034722.194295: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [002] ...1 1034722.194439: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [002] ...1 1034722.194482: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [002] ...1 1034722.194744: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034722.194807: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [002] ...1 1034722.194881: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034722.195064: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [002] ...1 1034722.210997: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034722.211150: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034722.211247: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034722.211260: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034722.211267: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034722.211593: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [000] ...1 1034722.211680: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034722.211706: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034722.211734: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [002] ...1 1034722.211821: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [002] ...1 1034722.211930: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034722.212003: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034722.212020: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034722.212038: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034722.212169: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034722.212197: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034722.212228: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [002] ...1 1034722.212303: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [001] ...1 1034722.227667: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034722.227819: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034722.227899: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034722.227909: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034722.227914: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034722.228179: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [000] ...1 1034722.228251: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034722.228271: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034722.228293: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034722.228367: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [001] ...1 1034722.228452: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034722.228504: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034722.228516: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034722.228529: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034722.228630: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034722.228653: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034722.228679: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034722.228738: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [003] ...1 1034722.244194: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034722.244309: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034722.244385: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034722.244396: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034722.244400: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034722.244654: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [000] ...1 1034722.244720: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034722.244740: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034722.244761: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034722.244822: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [003] ...1 1034722.244896: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034722.244943: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034722.244955: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034722.244966: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034722.245062: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034722.245082: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034722.245104: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034722.245149: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [003] ...1 1034722.245357: tracing_mark_write: B|591|HIDL::IComposerClient::getActiveConfig::client
composer@2.1-s-593 ( 593) [000] ...1 1034722.245395: tracing_mark_write: B|593|HIDL::IComposerClient::getActiveConfig::server
composer@2.1-s-593 ( 593) [000] ...1 1034722.245402: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034722.245428: tracing_mark_write: E|591
Binder:591_3-1218 ( 591) [006] ...1 1034722.246522: tracing_mark_write: B|591|HIDL::IMapper::createDescriptor::passthrough
Binder:591_3-1218 ( 591) [006] ...1 1034722.246529: tracing_mark_write: E|591
Binder:591_3-1218 ( 591) [006] ...1 1034722.246558: tracing_mark_write: B|591|HIDL::IAllocator::allocate::client
HwBinder:595_3-1779 ( 595) [006] ...1 1034722.246630: tracing_mark_write: B|595|HIDL::IAllocator::allocate::server
HwBinder:595_3-1779 ( 595) [006] ...1 1034722.246650: tracing_mark_write: B|595|AllocBuffer
HwBinder:595_3-1779 ( 595) [006] ...1 1034722.246657: tracing_mark_write: B|595|ION_IOC_ALLOC size: 8355840
HwBinder:595_3-1779 ( 595) [006] ...1 1034722.246743: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [006] ...1 1034722.246744: tracing_mark_write: B|595|ION_IOC_MAP
HwBinder:595_3-1779 ( 595) [006] ...1 1034722.246753: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [006] ...1 1034722.246756: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [006] ...1 1034722.246758: tracing_mark_write: B|595|AllocBuffer
HwBinder:595_3-1779 ( 595) [006] ...1 1034722.246760: tracing_mark_write: B|595|ION_IOC_ALLOC size: 4096
HwBinder:595_3-1779 ( 595) [006] ...1 1034722.246765: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [006] ...1 1034722.246766: tracing_mark_write: B|595|ION_IOC_MAP
HwBinder:595_3-1779 ( 595) [006] ...1 1034722.246769: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [006] ...1 1034722.246770: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [006] ...1 1034722.246796: tracing_mark_write: E|595
Binder:591_3-1218 ( 591) [006] ...1 1034722.246844: tracing_mark_write: B|591|HIDL::IMapper::importBuffer::passthrough
Binder:591_3-1218 ( 591) [006] ...1 1034722.246864: tracing_mark_write: E|591
Binder:591_3-1218 ( 591) [006] ...1 1034722.246867: tracing_mark_write: E|591
Binder:591_3-1218 ( 591) [006] ...1 1034722.246883: tracing_mark_write: B|591|HIDL::IMapper::createDescriptor::passthrough
Binder:591_3-1218 ( 591) [006] ...1 1034722.246886: tracing_mark_write: E|591
Binder:591_3-1218 ( 591) [006] ...1 1034722.246889: tracing_mark_write: B|591|HIDL::IAllocator::allocate::client
allocator@2.0--595 ( 595) [006] ...1 1034722.246919: tracing_mark_write: B|595|HIDL::IAllocator::allocate::server
allocator@2.0--595 ( 595) [006] ...1 1034722.246927: tracing_mark_write: B|595|AllocBuffer
allocator@2.0--595 ( 595) [006] ...1 1034722.246929: tracing_mark_write: B|595|ION_IOC_ALLOC size: 8355840
allocator@2.0--595 ( 595) [006] ...1 1034722.246993: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [006] ...1 1034722.246994: tracing_mark_write: B|595|ION_IOC_MAP
allocator@2.0--595 ( 595) [006] ...1 1034722.246998: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [006] ...1 1034722.247001: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [006] ...1 1034722.247002: tracing_mark_write: B|595|AllocBuffer
allocator@2.0--595 ( 595) [006] ...1 1034722.247004: tracing_mark_write: B|595|ION_IOC_ALLOC size: 4096
allocator@2.0--595 ( 595) [006] ...1 1034722.247007: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [006] ...1 1034722.247008: tracing_mark_write: B|595|ION_IOC_MAP
allocator@2.0--595 ( 595) [006] ...1 1034722.247011: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [006] ...1 1034722.247012: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [006] ...1 1034722.247025: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [006] ...1 1034722.247041: tracing_mark_write: B|595|FreeBuffer
allocator@2.0--595 ( 595) [006] ...1 1034722.247047: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [006] ...1 1034722.247048: tracing_mark_write: B|595|FreeBuffer
allocator@2.0--595 ( 595) [006] ...1 1034722.247049: tracing_mark_write: B|595|UnmapBuffer
allocator@2.0--595 ( 595) [006] ...1 1034722.247056: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [006] ...1 1034722.247059: tracing_mark_write: E|595
Binder:591_3-1218 ( 591) [006] ...1 1034722.247076: tracing_mark_write: B|591|HIDL::IMapper::importBuffer::passthrough
Binder:591_3-1218 ( 591) [006] ...1 1034722.247087: tracing_mark_write: E|591
Binder:591_3-1218 ( 591) [006] ...1 1034722.247089: tracing_mark_write: E|591
Binder:591_3-1218 ( 591) [006] ...1 1034722.247102: tracing_mark_write: B|591|HIDL::IMapper::createDescriptor::passthrough
Binder:591_3-1218 ( 591) [006] ...1 1034722.247104: tracing_mark_write: E|591
Binder:591_3-1218 ( 591) [006] ...1 1034722.247107: tracing_mark_write: B|591|HIDL::IAllocator::allocate::client
HwBinder:595_3-1779 ( 595) [006] ...1 1034722.247126: tracing_mark_write: B|595|FreeBuffer
HwBinder:595_3-1779 ( 595) [006] ...1 1034722.247129: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [006] ...1 1034722.247130: tracing_mark_write: B|595|FreeBuffer
HwBinder:595_3-1779 ( 595) [006] ...1 1034722.247131: tracing_mark_write: B|595|UnmapBuffer
HwBinder:595_3-1779 ( 595) [006] ...1 1034722.247135: tracing_mark_write: E|595
HwBinder:595_3-1779 ( 595) [006] ...1 1034722.247138: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [006] ...1 1034722.247152: tracing_mark_write: B|595|HIDL::IAllocator::allocate::server
allocator@2.0--595 ( 595) [006] ...1 1034722.247156: tracing_mark_write: B|595|AllocBuffer
allocator@2.0--595 ( 595) [006] ...1 1034722.247158: tracing_mark_write: B|595|ION_IOC_ALLOC size: 8355840
allocator@2.0--595 ( 595) [006] ...1 1034722.247229: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [006] ...1 1034722.247231: tracing_mark_write: B|595|ION_IOC_MAP
allocator@2.0--595 ( 595) [006] ...1 1034722.247234: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [006] ...1 1034722.247236: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [006] ...1 1034722.247237: tracing_mark_write: B|595|AllocBuffer
allocator@2.0--595 ( 595) [006] ...1 1034722.247239: tracing_mark_write: B|595|ION_IOC_ALLOC size: 4096
allocator@2.0--595 ( 595) [006] ...1 1034722.247242: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [006] ...1 1034722.247243: tracing_mark_write: B|595|ION_IOC_MAP
allocator@2.0--595 ( 595) [006] ...1 1034722.247246: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [006] ...1 1034722.247248: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [006] ...1 1034722.247257: tracing_mark_write: E|595
Binder:591_3-1218 ( 591) [006] ...1 1034722.247275: tracing_mark_write: B|591|HIDL::IMapper::importBuffer::passthrough
Binder:591_3-1218 ( 591) [006] ...1 1034722.247286: tracing_mark_write: E|591
Binder:591_3-1218 ( 591) [006] ...1 1034722.247288: tracing_mark_write: E|591
allocator@2.0--595 ( 595) [006] ...1 1034722.247380: tracing_mark_write: B|595|FreeBuffer
allocator@2.0--595 ( 595) [006] ...1 1034722.247383: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [006] ...1 1034722.247385: tracing_mark_write: B|595|FreeBuffer
allocator@2.0--595 ( 595) [006] ...1 1034722.247386: tracing_mark_write: B|595|UnmapBuffer
allocator@2.0--595 ( 595) [006] ...1 1034722.247390: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [006] ...1 1034722.247392: tracing_mark_write: E|595
Binder:591_5-1775 ( 591) [005] ...1 1034722.256972: tracing_mark_write: B|591|HIDL::IMapper::freeBuffer::passthrough
Binder:591_5-1775 ( 591) [005] ...1 1034722.256982: tracing_mark_write: B|591|FreeBuffer
Binder:591_5-1775 ( 591) [005] ...1 1034722.257005: tracing_mark_write: E|591
Binder:591_5-1775 ( 591) [005] ...1 1034722.257006: tracing_mark_write: B|591|FreeBuffer
Binder:591_5-1775 ( 591) [005] ...1 1034722.257011: tracing_mark_write: E|591
Binder:591_5-1775 ( 591) [005] ...1 1034722.257018: tracing_mark_write: E|591
Binder:591_5-1775 ( 591) [005] ...1 1034722.257029: tracing_mark_write: B|591|HIDL::IMapper::createDescriptor::passthrough
Binder:591_5-1775 ( 591) [005] ...1 1034722.257032: tracing_mark_write: E|591
Binder:591_5-1775 ( 591) [005] ...1 1034722.257036: tracing_mark_write: B|591|HIDL::IAllocator::allocate::client
allocator@2.0--595 ( 595) [005] ...1 1034722.257072: tracing_mark_write: B|595|HIDL::IAllocator::allocate::server
allocator@2.0--595 ( 595) [005] ...1 1034722.257083: tracing_mark_write: B|595|AllocBuffer
allocator@2.0--595 ( 595) [005] ...1 1034722.257086: tracing_mark_write: B|595|ION_IOC_ALLOC size: 8417280
allocator@2.0--595 ( 595) [005] ...1 1034722.257157: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [005] ...1 1034722.257159: tracing_mark_write: B|595|ION_IOC_MAP
allocator@2.0--595 ( 595) [005] ...1 1034722.257165: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [005] ...1 1034722.257166: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [005] ...1 1034722.257167: tracing_mark_write: B|595|AllocBuffer
allocator@2.0--595 ( 595) [005] ...1 1034722.257169: tracing_mark_write: B|595|ION_IOC_ALLOC size: 4096
allocator@2.0--595 ( 595) [005] ...1 1034722.257174: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [005] ...1 1034722.257174: tracing_mark_write: B|595|ION_IOC_MAP
allocator@2.0--595 ( 595) [005] ...1 1034722.257178: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [005] ...1 1034722.257179: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [005] ...1 1034722.257198: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [005] ...1 1034722.257216: tracing_mark_write: B|595|FreeBuffer
allocator@2.0--595 ( 595) [005] ...1 1034722.257220: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [005] ...1 1034722.257221: tracing_mark_write: B|595|FreeBuffer
allocator@2.0--595 ( 595) [005] ...1 1034722.257222: tracing_mark_write: B|595|UnmapBuffer
allocator@2.0--595 ( 595) [005] ...1 1034722.257228: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [005] ...1 1034722.257231: tracing_mark_write: E|595
Binder:591_5-1775 ( 591) [005] ...1 1034722.257253: tracing_mark_write: B|591|HIDL::IMapper::importBuffer::passthrough
Binder:591_5-1775 ( 591) [005] ...1 1034722.257267: tracing_mark_write: E|591
Binder:591_5-1775 ( 591) [005] ...1 1034722.257270: tracing_mark_write: E|591
RenderThread-2506 ( 2279) [005] ...1 1034722.257390: tracing_mark_write: B|2279|HIDL::IMapper::importBuffer::passthrough
RenderThread-2506 ( 2279) [005] ...1 1034722.257410: tracing_mark_write: E|2279
surfaceflinger-591 ( 591) [000] ...1 1034722.261031: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.261144: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.261219: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.261228: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.261233: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.261485: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034722.261553: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.261572: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.261593: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.261665: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034722.261751: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.261798: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.261809: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.261821: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034722.261907: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.261927: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.261949: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.261996: tracing_mark_write: E|591
Binder:1151_16-25177 ( 1151) [006] ...1 1034722.262213: tracing_mark_write: B|1151|HIDL::ISensors::batch::client
surfaceflinger-591 ( 591) [000] ...1 1034722.262224: tracing_mark_write: B|591|HIDL::IComposerClient::getActiveConfig::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.262264: tracing_mark_write: B|593|HIDL::IComposerClient::getActiveConfig::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.262272: tracing_mark_write: E|593
sensors@1.0-se-778 ( 778) [007] ...1 1034722.262278: tracing_mark_write: B|778|HIDL::ISensors::batch::server
surfaceflinger-591 ( 591) [000] ...1 1034722.262297: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [007] ...1 1034722.262302: tracing_mark_write: E|778
Binder:1151_16-25177 ( 1151) [006] ...1 1034722.262339: tracing_mark_write: E|1151
Binder:1151_16-25177 ( 1151) [006] ...1 1034722.262347: tracing_mark_write: B|1151|HIDL::ISensors::activate::client
sensors@1.0-se-778 ( 778) [007] ...1 1034722.262368: tracing_mark_write: B|778|HIDL::ISensors::activate::server
surfaceflinger-591 ( 591) [000] ...1 1034722.263315: tracing_mark_write: B|591|HIDL::IComposerClient::getActiveConfig::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.263354: tracing_mark_write: B|593|HIDL::IComposerClient::getActiveConfig::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.263361: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.263387: tracing_mark_write: E|591
sensors@1.0-se-778 ( 778) [007] ...1 1034722.263575: tracing_mark_write: E|778
Binder:1151_16-25177 ( 1151) [007] ...1 1034722.263604: tracing_mark_write: E|1151
Binder:591_3-1218 ( 591) [001] ...1 1034722.264691: tracing_mark_write: B|591|HIDL::IMapper::createDescriptor::passthrough
Binder:591_3-1218 ( 591) [001] ...1 1034722.264704: tracing_mark_write: E|591
Binder:591_3-1218 ( 591) [001] ...1 1034722.264717: tracing_mark_write: B|591|HIDL::IAllocator::allocate::client
allocator@2.0--595 ( 595) [001] ...1 1034722.264806: tracing_mark_write: B|595|HIDL::IAllocator::allocate::server
allocator@2.0--595 ( 595) [001] ...1 1034722.264834: tracing_mark_write: B|595|AllocBuffer
allocator@2.0--595 ( 595) [001] ...1 1034722.264843: tracing_mark_write: B|595|ION_IOC_ALLOC size: 8355840
allocator@2.0--595 ( 595) [001] ...1 1034722.264971: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [001] ...1 1034722.264974: tracing_mark_write: B|595|ION_IOC_MAP
allocator@2.0--595 ( 595) [001] ...1 1034722.264991: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [001] ...1 1034722.264995: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [001] ...1 1034722.264997: tracing_mark_write: B|595|AllocBuffer
allocator@2.0--595 ( 595) [001] ...1 1034722.265001: tracing_mark_write: B|595|ION_IOC_ALLOC size: 4096
allocator@2.0--595 ( 595) [001] ...1 1034722.265008: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [001] ...1 1034722.265010: tracing_mark_write: B|595|ION_IOC_MAP
allocator@2.0--595 ( 595) [001] ...1 1034722.265016: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [001] ...1 1034722.265019: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [001] ...1 1034722.265067: tracing_mark_write: E|595
Binder:591_3-1218 ( 591) [001] ...1 1034722.265118: tracing_mark_write: B|591|HIDL::IMapper::importBuffer::passthrough
Binder:591_3-1218 ( 591) [001] ...1 1034722.265144: tracing_mark_write: E|591
Binder:591_3-1218 ( 591) [001] ...1 1034722.265148: tracing_mark_write: E|591
allocator@2.0--595 ( 595) [001] ...1 1034722.265227: tracing_mark_write: B|595|FreeBuffer
allocator@2.0--595 ( 595) [001] ...1 1034722.265236: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [001] ...1 1034722.265238: tracing_mark_write: B|595|FreeBuffer
allocator@2.0--595 ( 595) [001] ...1 1034722.265241: tracing_mark_write: B|595|UnmapBuffer
allocator@2.0--595 ( 595) [001] ...1 1034722.265259: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [001] ...1 1034722.265266: tracing_mark_write: E|595
android.anim-1277 ( 1151) [004] ...1 1034722.268271: tracing_mark_write: B|1151|HIDL::IMapper::importBuffer::passthrough
android.anim-1277 ( 1151) [004] ...1 1034722.268330: tracing_mark_write: E|1151
Binder:2279_3-2325 ( 2279) [005] ...1 1034722.276786: tracing_mark_write: B|2279|HIDL::IMapper::importBuffer::passthrough
Binder:2279_3-2325 ( 2279) [005] ...1 1034722.276825: tracing_mark_write: E|2279
Binder:591_5-1775 ( 591) [001] ...1 1034722.276866: tracing_mark_write: B|591|HIDL::IMapper::createDescriptor::passthrough
Binder:591_5-1775 ( 591) [001] ...1 1034722.276876: tracing_mark_write: E|591
Binder:591_5-1775 ( 591) [001] ...1 1034722.276888: tracing_mark_write: B|591|HIDL::IAllocator::allocate::client
allocator@2.0--595 ( 595) [001] ...1 1034722.276970: tracing_mark_write: B|595|HIDL::IAllocator::allocate::server
allocator@2.0--595 ( 595) [001] ...1 1034722.277005: tracing_mark_write: B|595|AllocBuffer
Binder:1469_2-1492 ( 1469) [007] ...1 1034722.277013: tracing_mark_write: B|1469|HIDL::IMapper::importBuffer::passthrough
allocator@2.0--595 ( 595) [001] ...1 1034722.277014: tracing_mark_write: B|595|ION_IOC_ALLOC size: 4485120
Binder:1469_2-1492 ( 1469) [007] ...1 1034722.277087: tracing_mark_write: E|1469
Binder:1469_5-1995 ( 1469) [007] ...1 1034722.277310: tracing_mark_write: B|1469|HIDL::IMapper::importBuffer::passthrough
allocator@2.0--595 ( 595) [001] ...1 1034722.277313: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [001] ...1 1034722.277317: tracing_mark_write: B|595|ION_IOC_MAP
Binder:1469_5-1995 ( 1469) [007] ...1 1034722.277330: tracing_mark_write: E|1469
allocator@2.0--595 ( 595) [001] ...1 1034722.277331: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [001] ...1 1034722.277335: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [001] ...1 1034722.277339: tracing_mark_write: B|595|AllocBuffer
allocator@2.0--595 ( 595) [001] ...1 1034722.277343: tracing_mark_write: B|595|ION_IOC_ALLOC size: 4096
allocator@2.0--595 ( 595) [001] ...1 1034722.277352: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [001] ...1 1034722.277355: tracing_mark_write: B|595|ION_IOC_MAP
allocator@2.0--595 ( 595) [001] ...1 1034722.277362: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [001] ...1 1034722.277365: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [001] ...1 1034722.277415: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [001] ...1 1034722.277442: tracing_mark_write: B|595|FreeBuffer
allocator@2.0--595 ( 595) [001] ...1 1034722.277450: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [001] ...1 1034722.277453: tracing_mark_write: B|595|FreeBuffer
allocator@2.0--595 ( 595) [001] ...1 1034722.277455: tracing_mark_write: B|595|UnmapBuffer
allocator@2.0--595 ( 595) [001] ...1 1034722.277470: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [001] ...1 1034722.277476: tracing_mark_write: E|595
Binder:591_5-1775 ( 591) [001] ...1 1034722.277534: tracing_mark_write: B|591|HIDL::IMapper::importBuffer::passthrough
Binder:591_5-1775 ( 591) [001] ...1 1034722.277560: tracing_mark_write: E|591
Binder:591_5-1775 ( 591) [001] ...1 1034722.277566: tracing_mark_write: E|591
GLThread 36-1854 ( 1529) [001] ...1 1034722.277784: tracing_mark_write: B|1529|HIDL::IMapper::importBuffer::passthrough
GLThread 36-1854 ( 1529) [001] ...1 1034722.277819: tracing_mark_write: E|1529
surfaceflinger-591 ( 591) [003] ...1 1034722.277968: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.278067: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.278154: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.278163: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.278167: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.278425: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034722.278494: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.278513: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.278532: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034722.278590: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [003] ...1 1034722.278666: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.278710: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.278720: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.278733: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034722.278826: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.278845: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.278864: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034722.278909: tracing_mark_write: E|591
Binder:591_2-624 ( 591) [005] ...1 1034722.290504: tracing_mark_write: B|591|HIDL::IMapper::freeBuffer::passthrough
Binder:591_2-624 ( 591) [005] ...1 1034722.290523: tracing_mark_write: B|591|FreeBuffer
Binder:591_2-624 ( 591) [005] ...1 1034722.290562: tracing_mark_write: E|591
Binder:591_2-624 ( 591) [005] ...1 1034722.290565: tracing_mark_write: B|591|FreeBuffer
Binder:591_2-624 ( 591) [005] ...1 1034722.290576: tracing_mark_write: E|591
Binder:591_2-624 ( 591) [005] ...1 1034722.290581: tracing_mark_write: E|591
Binder:591_2-624 ( 591) [005] ...1 1034722.290600: tracing_mark_write: B|591|HIDL::IMapper::createDescriptor::passthrough
Binder:591_2-624 ( 591) [005] ...1 1034722.290604: tracing_mark_write: E|591
Binder:591_2-624 ( 591) [005] ...1 1034722.290614: tracing_mark_write: B|591|HIDL::IAllocator::allocate::client
allocator@2.0--595 ( 595) [005] ...1 1034722.290693: tracing_mark_write: B|595|HIDL::IAllocator::allocate::server
allocator@2.0--595 ( 595) [005] ...1 1034722.290722: tracing_mark_write: B|595|AllocBuffer
allocator@2.0--595 ( 595) [005] ...1 1034722.290731: tracing_mark_write: B|595|ION_IOC_ALLOC size: 8417280
allocator@2.0--595 ( 595) [005] ...1 1034722.292872: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [005] ...1 1034722.292876: tracing_mark_write: B|595|ION_IOC_MAP
allocator@2.0--595 ( 595) [005] ...1 1034722.292891: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [005] ...1 1034722.292896: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [005] ...1 1034722.292899: tracing_mark_write: B|595|AllocBuffer
allocator@2.0--595 ( 595) [005] ...1 1034722.292904: tracing_mark_write: B|595|ION_IOC_ALLOC size: 4096
allocator@2.0--595 ( 595) [005] ...1 1034722.292913: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [005] ...1 1034722.292915: tracing_mark_write: B|595|ION_IOC_MAP
allocator@2.0--595 ( 595) [005] ...1 1034722.292922: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [005] ...1 1034722.292925: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [005] ...1 1034722.292969: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [005] ...1 1034722.293017: tracing_mark_write: B|595|FreeBuffer
allocator@2.0--595 ( 595) [005] ...1 1034722.293025: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [005] ...1 1034722.293027: tracing_mark_write: B|595|FreeBuffer
allocator@2.0--595 ( 595) [005] ...1 1034722.293030: tracing_mark_write: B|595|UnmapBuffer
allocator@2.0--595 ( 595) [005] ...1 1034722.293043: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [005] ...1 1034722.293049: tracing_mark_write: E|595
Binder:591_2-624 ( 591) [005] ...1 1034722.293110: tracing_mark_write: B|591|HIDL::IMapper::importBuffer::passthrough
Binder:591_2-624 ( 591) [005] ...1 1034722.293140: tracing_mark_write: E|591
Binder:591_2-624 ( 591) [005] ...1 1034722.293145: tracing_mark_write: E|591
RenderThread-2506 ( 2279) [005] ...1 1034722.293404: tracing_mark_write: B|2279|HIDL::IMapper::importBuffer::passthrough
RenderThread-2506 ( 2279) [005] ...1 1034722.293432: tracing_mark_write: E|2279
surfaceflinger-591 ( 591) [000] ...1 1034722.294754: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.294863: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.294937: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.294946: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.294951: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.295206: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034722.295273: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.295294: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.295315: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.295375: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034722.295444: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.295487: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.295496: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.295508: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034722.295597: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.295616: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.295637: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.295679: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034722.312557: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.312719: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.312840: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.312856: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.312866: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.313342: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034722.313448: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.313483: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.313514: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.313610: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034722.313728: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.313812: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.313831: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.313852: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034722.314005: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.314038: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.314078: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.314171: tracing_mark_write: E|591
Binder:591_2-624 ( 591) [001] ...1 1034722.327148: tracing_mark_write: B|591|HIDL::IMapper::createDescriptor::passthrough
Binder:591_2-624 ( 591) [001] ...1 1034722.327161: tracing_mark_write: E|591
Binder:591_2-624 ( 591) [001] ...1 1034722.327175: tracing_mark_write: B|591|HIDL::IAllocator::allocate::client
allocator@2.0--595 ( 595) [001] ...1 1034722.327276: tracing_mark_write: B|595|HIDL::IAllocator::allocate::server
allocator@2.0--595 ( 595) [001] ...1 1034722.327315: tracing_mark_write: B|595|AllocBuffer
allocator@2.0--595 ( 595) [001] ...1 1034722.327327: tracing_mark_write: B|595|ION_IOC_ALLOC size: 4485120
allocator@2.0--595 ( 595) [001] ...1 1034722.327426: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [001] ...1 1034722.327430: tracing_mark_write: B|595|ION_IOC_MAP
allocator@2.0--595 ( 595) [001] ...1 1034722.327445: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [001] ...1 1034722.327450: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [001] ...1 1034722.327454: tracing_mark_write: B|595|AllocBuffer
allocator@2.0--595 ( 595) [001] ...1 1034722.327459: tracing_mark_write: B|595|ION_IOC_ALLOC size: 4096
allocator@2.0--595 ( 595) [001] ...1 1034722.327469: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [001] ...1 1034722.327473: tracing_mark_write: B|595|ION_IOC_MAP
allocator@2.0--595 ( 595) [001] ...1 1034722.327481: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [001] ...1 1034722.327485: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [001] ...1 1034722.327538: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [001] ...1 1034722.327582: tracing_mark_write: B|595|FreeBuffer
allocator@2.0--595 ( 595) [001] ...1 1034722.327592: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [001] ...1 1034722.327595: tracing_mark_write: B|595|FreeBuffer
allocator@2.0--595 ( 595) [001] ...1 1034722.327599: tracing_mark_write: B|595|UnmapBuffer
allocator@2.0--595 ( 595) [001] ...1 1034722.327611: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [001] ...1 1034722.327619: tracing_mark_write: E|595
Binder:591_2-624 ( 591) [001] ...1 1034722.327678: tracing_mark_write: B|591|HIDL::IMapper::importBuffer::passthrough
Binder:591_2-624 ( 591) [001] ...1 1034722.327709: tracing_mark_write: E|591
Binder:591_2-624 ( 591) [001] ...1 1034722.327715: tracing_mark_write: E|591
GLThread 36-1854 ( 1529) [001] ...1 1034722.327918: tracing_mark_write: B|1529|HIDL::IMapper::importBuffer::passthrough
GLThread 36-1854 ( 1529) [001] ...1 1034722.327950: tracing_mark_write: E|1529
surfaceflinger-591 ( 591) [000] ...1 1034722.328507: tracing_mark_write: B|591|HIDL::IComposerClient::createLayer::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.328614: tracing_mark_write: B|593|HIDL::IComposerClient::createLayer::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.328653: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.328702: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034722.328744: tracing_mark_write: B|591|HIDL::IComposerClient::createLayer::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.328789: tracing_mark_write: B|593|HIDL::IComposerClient::createLayer::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.328807: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.328841: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034722.329072: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.329169: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.329224: tracing_mark_write: B|593|HIDL::IMapper::importBuffer::passthrough
composer@2.1-s-593 ( 593) [001] ...1 1034722.329254: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.329303: tracing_mark_write: B|593|HIDL::IMapper::importBuffer::passthrough
composer@2.1-s-593 ( 593) [001] ...1 1034722.329322: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.329377: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.329389: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.329396: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.329787: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034722.329953: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.329985: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.330008: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.330073: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034722.330186: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.330247: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.330261: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.330278: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034722.330576: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.330606: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.330638: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.330708: tracing_mark_write: E|591
Binder:1469_2-1492 ( 1469) [007] ...1 1034722.335072: tracing_mark_write: B|1469|HIDL::IMapper::importBuffer::passthrough
Binder:1469_2-1492 ( 1469) [007] ...1 1034722.335109: tracing_mark_write: E|1469
surfaceflinger-591 ( 591) [000] ...1 1034722.345449: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.345599: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.345655: tracing_mark_write: B|593|HIDL::IMapper::importBuffer::passthrough
composer@2.1-s-593 ( 593) [001] ...1 1034722.345687: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.345775: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.345788: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.345793: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.346134: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034722.346233: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.346258: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.346281: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.346351: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034722.346444: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.346496: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.346507: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.346521: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034722.346777: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.346801: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.346832: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.346894: tracing_mark_write: E|591
Binder:2279_3-2325 ( 2279) [000] ...1 1034722.351005: tracing_mark_write: B|2279|HIDL::IMapper::importBuffer::passthrough
Binder:2279_3-2325 ( 2279) [000] ...1 1034722.351038: tracing_mark_write: E|2279
surfaceflinger-591 ( 591) [001] ...1 1034722.361873: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034722.361994: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034722.362084: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034722.362094: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034722.362099: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034722.362397: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [000] ...1 1034722.362488: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034722.362508: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034722.362528: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034722.362588: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [001] ...1 1034722.362666: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034722.362708: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034722.362717: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034722.362728: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034722.362911: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034722.362930: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034722.362955: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034722.363003: tracing_mark_write: E|591
Binder:591_5-1775 ( 591) [001] ...1 1034722.368077: tracing_mark_write: B|591|HIDL::IMapper::createDescriptor::passthrough
Binder:591_5-1775 ( 591) [001] ...1 1034722.368088: tracing_mark_write: E|591
Binder:591_5-1775 ( 591) [001] ...1 1034722.368100: tracing_mark_write: B|591|HIDL::IAllocator::allocate::client
allocator@2.0--595 ( 595) [001] ...1 1034722.368177: tracing_mark_write: B|595|HIDL::IAllocator::allocate::server
allocator@2.0--595 ( 595) [001] ...1 1034722.368208: tracing_mark_write: B|595|AllocBuffer
allocator@2.0--595 ( 595) [001] ...1 1034722.368217: tracing_mark_write: B|595|ION_IOC_ALLOC size: 4485120
allocator@2.0--595 ( 595) [001] ...1 1034722.368296: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [001] ...1 1034722.368299: tracing_mark_write: B|595|ION_IOC_MAP
allocator@2.0--595 ( 595) [001] ...1 1034722.368311: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [001] ...1 1034722.368315: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [001] ...1 1034722.368318: tracing_mark_write: B|595|AllocBuffer
allocator@2.0--595 ( 595) [001] ...1 1034722.368322: tracing_mark_write: B|595|ION_IOC_ALLOC size: 4096
allocator@2.0--595 ( 595) [001] ...1 1034722.368329: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [001] ...1 1034722.368332: tracing_mark_write: B|595|ION_IOC_MAP
allocator@2.0--595 ( 595) [001] ...1 1034722.368338: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [001] ...1 1034722.368340: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [001] ...1 1034722.368389: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [001] ...1 1034722.368417: tracing_mark_write: B|595|FreeBuffer
allocator@2.0--595 ( 595) [001] ...1 1034722.368424: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [001] ...1 1034722.368427: tracing_mark_write: B|595|FreeBuffer
allocator@2.0--595 ( 595) [001] ...1 1034722.368429: tracing_mark_write: B|595|UnmapBuffer
allocator@2.0--595 ( 595) [001] ...1 1034722.368445: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [001] ...1 1034722.368450: tracing_mark_write: E|595
Binder:591_5-1775 ( 591) [001] ...1 1034722.368486: tracing_mark_write: B|591|HIDL::IMapper::importBuffer::passthrough
Binder:591_5-1775 ( 591) [001] ...1 1034722.368512: tracing_mark_write: E|591
Binder:591_5-1775 ( 591) [001] ...1 1034722.368516: tracing_mark_write: E|591
GLThread 36-1854 ( 1529) [001] ...1 1034722.368660: tracing_mark_write: B|1529|HIDL::IMapper::importBuffer::passthrough
GLThread 36-1854 ( 1529) [001] ...1 1034722.368683: tracing_mark_write: E|1529
FinalizerDaemo-1487 ( 1469) [001] ...1 1034722.370661: tracing_mark_write: B|1469|HIDL::IMapper::freeBuffer::passthrough
FinalizerDaemo-1487 ( 1469) [001] ...1 1034722.370680: tracing_mark_write: B|1469|FreeBuffer
FinalizerDaemo-1487 ( 1469) [001] ...1 1034722.370692: tracing_mark_write: E|1469
FinalizerDaemo-1487 ( 1469) [001] ...1 1034722.370695: tracing_mark_write: B|1469|FreeBuffer
FinalizerDaemo-1487 ( 1469) [001] ...1 1034722.370700: tracing_mark_write: E|1469
FinalizerDaemo-1487 ( 1469) [001] ...1 1034722.370707: tracing_mark_write: E|1469
FinalizerDaemo-1487 ( 1469) [001] ...1 1034722.370718: tracing_mark_write: B|1469|HIDL::IMapper::freeBuffer::passthrough
FinalizerDaemo-1487 ( 1469) [001] ...1 1034722.370727: tracing_mark_write: B|1469|FreeBuffer
FinalizerDaemo-1487 ( 1469) [001] ...1 1034722.370733: tracing_mark_write: E|1469
FinalizerDaemo-1487 ( 1469) [001] ...1 1034722.370736: tracing_mark_write: B|1469|FreeBuffer
FinalizerDaemo-1487 ( 1469) [001] ...1 1034722.370740: tracing_mark_write: E|1469
FinalizerDaemo-1487 ( 1469) [001] ...1 1034722.370744: tracing_mark_write: E|1469
surfaceflinger-591 ( 591) [000] ...1 1034722.378846: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.378977: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.379029: tracing_mark_write: B|593|HIDL::IMapper::importBuffer::passthrough
composer@2.1-s-593 ( 593) [001] ...1 1034722.379072: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.379157: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.379167: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.379172: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.379497: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034722.379590: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.379614: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.379635: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.379695: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034722.379776: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.379822: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.379831: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.379843: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034722.380105: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.380127: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.380156: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.380210: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034722.390075: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034722.390153: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034722.390238: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034722.390288: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034722.395544: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.395675: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.395771: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.395782: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.395787: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.396103: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034722.396207: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.396231: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.396253: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [002] ...1 1034722.396313: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [002] ...1 1034722.396398: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.396445: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.396455: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.396467: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034722.396703: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.396724: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.396753: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.396819: tracing_mark_write: E|591
Binder:591_5-1775 ( 591) [005] ...1 1034722.409571: tracing_mark_write: B|591|HIDL::IMapper::freeBuffer::passthrough
HwBinder:778_1-1087 ( 778) [000] ...1 1034722.409575: tracing_mark_write: E|778
Binder:591_5-1775 ( 591) [005] ...1 1034722.409613: tracing_mark_write: B|591|FreeBuffer
Binder:591_5-1775 ( 591) [005] ...1 1034722.409698: tracing_mark_write: E|591
Binder:591_5-1775 ( 591) [005] ...1 1034722.409706: tracing_mark_write: B|591|FreeBuffer
SensorService-1283 ( 1151) [001] ...1 1034722.409731: tracing_mark_write: E|1151
Binder:591_5-1775 ( 591) [005] ...1 1034722.409740: tracing_mark_write: E|591
Binder:591_5-1775 ( 591) [005] ...1 1034722.409757: tracing_mark_write: E|591
Binder:591_5-1775 ( 591) [005] ...1 1034722.409786: tracing_mark_write: B|591|HIDL::IMapper::createDescriptor::passthrough
Binder:591_5-1775 ( 591) [005] ...1 1034722.409799: tracing_mark_write: E|591
Binder:591_5-1775 ( 591) [005] ...1 1034722.409822: tracing_mark_write: B|591|HIDL::IAllocator::allocate::client
SensorService-1283 ( 1151) [001] ...1 1034722.409964: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
allocator@2.0--595 ( 595) [005] ...1 1034722.410048: tracing_mark_write: B|595|HIDL::IAllocator::allocate::server
allocator@2.0--595 ( 595) [005] ...1 1034722.410099: tracing_mark_write: B|595|AllocBuffer
HwBinder:778_1-1087 ( 778) [000] ...1 1034722.410100: tracing_mark_write: B|778|HIDL::ISensors::poll::server
allocator@2.0--595 ( 595) [005] ...1 1034722.410119: tracing_mark_write: B|595|ION_IOC_ALLOC size: 8417280
allocator@2.0--595 ( 595) [005] ...1 1034722.412130: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [005] ...1 1034722.412140: tracing_mark_write: B|595|ION_IOC_MAP
allocator@2.0--595 ( 595) [005] ...1 1034722.412173: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [005] ...1 1034722.412184: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [005] ...1 1034722.412191: tracing_mark_write: B|595|AllocBuffer
allocator@2.0--595 ( 595) [005] ...1 1034722.412202: tracing_mark_write: B|595|ION_IOC_ALLOC size: 4096
allocator@2.0--595 ( 595) [005] ...1 1034722.412226: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [005] ...1 1034722.412233: tracing_mark_write: B|595|ION_IOC_MAP
allocator@2.0--595 ( 595) [005] ...1 1034722.412251: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [005] ...1 1034722.412257: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [005] ...1 1034722.412356: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [005] ...1 1034722.412462: tracing_mark_write: B|595|FreeBuffer
allocator@2.0--595 ( 595) [005] ...1 1034722.412484: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [005] ...1 1034722.412491: tracing_mark_write: B|595|FreeBuffer
allocator@2.0--595 ( 595) [005] ...1 1034722.412498: tracing_mark_write: B|595|UnmapBuffer
allocator@2.0--595 ( 595) [005] ...1 1034722.412531: tracing_mark_write: E|595
allocator@2.0--595 ( 595) [005] ...1 1034722.412549: tracing_mark_write: E|595
Binder:591_5-1775 ( 591) [005] ...1 1034722.412668: tracing_mark_write: B|591|HIDL::IMapper::importBuffer::passthrough
Binder:591_5-1775 ( 591) [005] ...1 1034722.412737: tracing_mark_write: E|591
Binder:591_5-1775 ( 591) [005] ...1 1034722.412751: tracing_mark_write: E|591
RenderThread-2506 ( 2279) [005] ...1 1034722.413355: tracing_mark_write: B|2279|HIDL::IMapper::importBuffer::passthrough
RenderThread-2506 ( 2279) [005] ...1 1034722.413430: tracing_mark_write: E|2279
surfaceflinger-591 ( 591) [000] ...1 1034722.414430: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.414698: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.414905: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.414931: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.414945: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.415639: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034722.415831: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.415890: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.415934: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.416074: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034722.416280: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.416413: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.416442: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.416471: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034722.417040: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.417096: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.417164: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.417324: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [001] ...1 1034722.428757: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034722.428919: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034722.429096: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034722.429228: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034722.431368: tracing_mark_write: B|591|HIDL::IMapper::freeBuffer::passthrough
surfaceflinger-591 ( 591) [000] ...1 1034722.431402: tracing_mark_write: B|591|FreeBuffer
surfaceflinger-591 ( 591) [000] ...1 1034722.431431: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034722.431440: tracing_mark_write: B|591|FreeBuffer
surfaceflinger-591 ( 591) [000] ...1 1034722.431459: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034722.431472: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034722.431652: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.431903: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.432012: tracing_mark_write: B|593|HIDL::IMapper::importBuffer::passthrough
composer@2.1-s-593 ( 593) [001] ...1 1034722.432074: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.432162: tracing_mark_write: B|593|HIDL::IMapper::freeBuffer::passthrough
composer@2.1-s-593 ( 593) [001] ...1 1034722.432181: tracing_mark_write: B|593|FreeBuffer
composer@2.1-s-593 ( 593) [001] ...1 1034722.432795: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.432807: tracing_mark_write: B|593|FreeBuffer
composer@2.1-s-593 ( 593) [001] ...1 1034722.432815: tracing_mark_write: B|593|UnmapBuffer
composer@2.1-s-593 ( 593) [001] ...1 1034722.432853: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.432887: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.432903: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.432926: tracing_mark_write: B|593|HIDL::IMapper::importBuffer::passthrough
composer@2.1-s-593 ( 593) [001] ...1 1034722.432968: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.433092: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.433121: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.433136: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.434080: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034722.434306: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.434372: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.434423: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.434582: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034722.434813: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.434939: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.434965: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.434997: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034722.435444: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.435499: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.435566: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.435714: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [001] ...1 1034722.447910: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034722.448100: tracing_mark_write: E|1151
surfaceflinger-591 ( 591) [000] ...1 1034722.448134: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
SensorService-1283 ( 1151) [002] ...1 1034722.448267: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.448371: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034722.448402: tracing_mark_write: B|778|HIDL::ISensors::poll::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.448498: tracing_mark_write: B|593|HIDL::IMapper::importBuffer::passthrough
composer@2.1-s-593 ( 593) [001] ...1 1034722.448558: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.448697: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.448723: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.448737: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.449433: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034722.449614: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.449670: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.449710: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.449831: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034722.450077: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.450199: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.450224: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.450254: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034722.450530: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.450582: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.450646: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.450788: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034722.464995: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.465234: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.465436: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.465462: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.465476: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.466157: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034722.466343: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.466401: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.466449: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.466642: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034722.466869: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.466991: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.467017: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.467046: tracing_mark_write: B|593|HWDevice::Commit::
HwBinder:778_1-1087 ( 778) [000] ...1 1034722.467325: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034722.467469: tracing_mark_write: E|1151
composer@2.1-s-593 ( 593) [001] ...1 1034722.467550: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.467606: tracing_mark_write: E|593
SensorService-1283 ( 1151) [002] ...1 1034722.467636: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.467673: tracing_mark_write: E|593
HwBinder:778_1-1087 ( 778) [000] ...1 1034722.467761: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [002] ...1 1034722.467839: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034722.481625: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.481863: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.482067: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.482093: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.482107: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.482788: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034722.482969: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.483026: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.483069: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.483270: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034722.483471: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.483592: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.483637: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.483667: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034722.484097: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.484151: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.484219: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.484370: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034722.486601: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034722.486733: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034722.486900: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034722.487020: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034722.498580: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.498841: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.499047: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.499075: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.499089: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.499780: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034722.500033: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.500091: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.500135: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.500268: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034722.500465: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.500586: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.500612: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.500641: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034722.500921: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.500974: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.501037: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.501183: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034722.505993: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034722.506151: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034722.506347: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034722.506491: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034722.515419: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.515681: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.515889: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.515915: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.515929: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.516696: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034722.516876: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.516934: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.516979: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.517112: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034722.517340: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.517469: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.517496: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.517525: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034722.518012: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.518069: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.518136: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.518283: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [001] ...1 1034722.525025: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034722.525165: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034722.525331: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034722.525465: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034722.531351: tracing_mark_write: B|591|HIDL::IComposerClient::destroyLayer::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.531532: tracing_mark_write: B|593|HIDL::IComposerClient::destroyLayer::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.531585: tracing_mark_write: B|593|HIDL::IMapper::freeBuffer::passthrough
composer@2.1-s-593 ( 593) [001] ...1 1034722.531610: tracing_mark_write: B|593|FreeBuffer
composer@2.1-s-593 ( 593) [001] ...1 1034722.531635: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.531644: tracing_mark_write: B|593|FreeBuffer
composer@2.1-s-593 ( 593) [001] ...1 1034722.531652: tracing_mark_write: B|593|UnmapBuffer
composer@2.1-s-593 ( 593) [001] ...1 1034722.531686: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.531704: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.531717: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.531726: tracing_mark_write: B|593|HIDL::IMapper::freeBuffer::passthrough
composer@2.1-s-593 ( 593) [001] ...1 1034722.531740: tracing_mark_write: B|593|FreeBuffer
composer@2.1-s-593 ( 593) [001] ...1 1034722.531757: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.531765: tracing_mark_write: B|593|FreeBuffer
composer@2.1-s-593 ( 593) [001] ...1 1034722.531773: tracing_mark_write: B|593|UnmapBuffer
composer@2.1-s-593 ( 593) [001] ...1 1034722.531794: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.531812: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.531823: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.531831: tracing_mark_write: B|593|HIDL::IMapper::freeBuffer::passthrough
composer@2.1-s-593 ( 593) [001] ...1 1034722.531847: tracing_mark_write: B|593|FreeBuffer
composer@2.1-s-593 ( 593) [001] ...1 1034722.531863: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.531871: tracing_mark_write: B|593|FreeBuffer
composer@2.1-s-593 ( 593) [001] ...1 1034722.531878: tracing_mark_write: B|593|UnmapBuffer
composer@2.1-s-593 ( 593) [001] ...1 1034722.531896: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.531913: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.531922: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.531944: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.532037: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034722.532661: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.532822: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.532998: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.533022: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.533037: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.533807: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034722.534022: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.534076: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.534118: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.534235: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034722.534414: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.534525: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.534551: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.534579: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034722.534966: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.535017: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.535082: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.535225: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034722.544289: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034722.544451: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034722.544635: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034722.544776: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034722.549413: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.549669: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.549936: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.549966: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.549983: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.550723: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034722.550890: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.550948: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.551070: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.551213: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034722.551429: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.551564: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.551592: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.551625: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034722.551900: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.551954: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.552022: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.552182: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034722.565712: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.565933: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.566122: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.566147: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.566163: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
HwBinder:778_1-1087 ( 778) [000] ...1 1034722.566371: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034722.566529: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034722.566764: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034722.566911: tracing_mark_write: B|778|HIDL::ISensors::poll::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.566926: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034722.567089: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.567149: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.567195: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.567339: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034722.567564: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.567706: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.567736: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.567769: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034722.568276: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.568330: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.568400: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.568563: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034722.582454: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.582734: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.582946: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.582975: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.582992: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
HwBinder:778_1-1087 ( 778) [003] ...1 1034722.583495: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034722.583652: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034722.583850: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.583868: tracing_mark_write: B|593|HWDevice::Validate::
HwBinder:778_1-1087 ( 778) [003] ...1 1034722.583995: tracing_mark_write: B|778|HIDL::ISensors::poll::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.584043: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.584104: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.584155: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.584308: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034722.584600: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.584750: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.584784: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.584820: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034722.585281: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.585337: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.585409: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.585578: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034722.599388: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.599623: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.599821: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.599847: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.599925: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.600635: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034722.600795: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.600852: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.600899: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.601042: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034722.601253: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.601391: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.601422: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.601453: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034722.601717: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.601772: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.601841: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.602016: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [003] ...1 1034722.602044: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034722.602185: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034722.602373: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [003] ...1 1034722.602509: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034722.615957: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.616182: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.616373: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.616399: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.616416: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.617232: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034722.617391: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.617447: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.617493: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.617631: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034722.617837: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.617973: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.618004: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.618038: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034722.618543: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.618596: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.618666: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.618828: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034722.621269: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034722.621415: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034722.621606: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034722.621749: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034722.633035: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034722.633340: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034722.633551: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034722.633579: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034722.633595: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034722.634301: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [000] ...1 1034722.634466: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034722.634525: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034722.634574: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034722.634721: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [001] ...1 1034722.634958: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034722.635102: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034722.635132: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034722.635166: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034722.635603: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034722.635658: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034722.635729: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034722.635890: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034722.640679: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034722.640827: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034722.641026: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034722.641164: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [003] ...1 1034722.649112: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034722.649329: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034722.649506: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034722.649529: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034722.649543: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034722.650228: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [000] ...1 1034722.650372: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034722.650424: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034722.650466: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034722.650589: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [003] ...1 1034722.650771: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034722.650886: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034722.650911: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034722.650939: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034722.651178: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034722.651224: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034722.651284: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034722.651423: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034722.659782: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034722.659995: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034722.660130: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034722.660250: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034722.665604: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.665811: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.665976: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.665999: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.666011: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.666652: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034722.666792: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.666839: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.666879: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.666997: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034722.667168: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.667274: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.667299: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.667325: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034722.667738: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.667783: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.667841: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.667963: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034722.679144: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034722.679273: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034722.679393: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034722.679501: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034722.680649: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.680835: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.680962: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.680984: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.680996: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.681553: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034722.681685: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.681735: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.681773: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.681879: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034722.682039: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.682144: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.682168: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.682193: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034722.682525: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.682567: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.682619: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.682740: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034722.697377: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.697587: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.697728: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.697753: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.697770: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.698442: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034722.698602: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.698669: tracing_mark_write: E|593
HwBinder:778_1-1087 ( 778) [000] ...1 1034722.698682: tracing_mark_write: E|778
composer@2.1-s-593 ( 593) [001] ...1 1034722.698715: tracing_mark_write: E|593
SensorService-1283 ( 1151) [002] ...1 1034722.698855: tracing_mark_write: E|1151
surfaceflinger-591 ( 591) [003] ...1 1034722.698879: tracing_mark_write: E|591
SensorService-1283 ( 1151) [002] ...1 1034722.699026: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
surfaceflinger-591 ( 591) [003] ...1 1034722.699092: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034722.699165: tracing_mark_write: B|778|HIDL::ISensors::poll::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.699233: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.699264: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.699299: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034722.699575: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.699629: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.699700: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [003] ...1 1034722.699862: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034722.714482: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.714744: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.714909: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.714937: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.714954: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.715660: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034722.715827: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.715890: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.715938: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.716076: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034722.716287: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.716423: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.716452: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.716486: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034722.717063: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.717118: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.717187: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.717350: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [001] ...1 1034722.718335: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034722.718488: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034722.718647: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034722.718784: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034722.730931: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.731155: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.731306: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.731332: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.731348: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.732041: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034722.732205: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.732267: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.732313: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.732447: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034722.732656: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.732794: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.732824: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.732858: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034722.733436: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.733489: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.733559: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.733718: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [001] ...1 1034722.736924: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034722.737075: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034722.737231: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034722.737368: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034722.747778: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.748071: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.748221: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.748259: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034722.748535: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.748598: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.748671: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.748854: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [001] ...1 1034722.756177: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034722.756346: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034722.756515: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034722.756749: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034722.764743: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.764987: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.765152: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.765180: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.765197: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.765904: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034722.766071: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.766136: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.766186: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.766323: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034722.766653: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.766789: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.766821: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.766856: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034722.767358: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.767414: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.767486: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.767649: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [001] ...1 1034722.775390: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034722.775539: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034722.775694: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034722.775831: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034722.781341: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.781564: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.781716: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.781743: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.781759: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.782450: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034722.782608: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.782669: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.782716: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.782848: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034722.783051: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.783186: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.783333: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.783390: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034722.783822: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.783878: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.783948: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.784111: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [001] ...1 1034722.796132: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034722.796294: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034722.796471: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034722.796732: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034722.798433: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.798681: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.798844: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.798873: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.798889: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.799616: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034722.799784: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.799847: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.799956: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.800094: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034722.800304: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.800440: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.800471: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.800505: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034722.800770: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.800826: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.800898: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.801073: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [001] ...1 1034722.813970: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034722.814151: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034722.814323: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034722.814467: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034722.814973: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.815188: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.815340: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.815367: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.815383: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.816071: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034722.816232: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.816294: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.816340: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.816469: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034722.816768: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.816908: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.816938: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.816971: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034722.817492: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.817545: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.817616: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.817779: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034722.831594: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.831800: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.831940: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.831976: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034722.832402: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.832464: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.832532: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.832704: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [001] ...1 1034722.833772: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034722.833917: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034722.834072: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034722.834205: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034722.848749: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.849009: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.849172: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.849201: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.849218: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.850013: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034722.850179: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.850241: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.850289: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.850436: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034722.850653: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.850789: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.850822: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.850856: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034722.851118: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.851173: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.851244: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.851416: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [001] ...1 1034722.852356: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034722.852491: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034722.852647: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034722.852778: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034722.865263: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.865496: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.865649: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.865676: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.865692: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.866387: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034722.866643: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.866708: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.866758: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.866892: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034722.867121: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.867257: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.867288: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.867321: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034722.867821: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.867876: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.867947: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.868108: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [001] ...1 1034722.871707: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034722.871842: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034722.871998: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034722.872129: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034722.882453: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.882723: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.882890: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.882918: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.882935: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.883781: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034722.883986: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.884054: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.884107: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.884271: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034722.884514: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034722.884738: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034722.884776: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034722.884814: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034722.885259: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034722.885319: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034722.885394: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034722.885595: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [001] ...1 1034722.892288: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034722.892446: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034722.892615: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034722.892760: tracing_mark_write: B|778|HIDL::ISensors::poll::server
RenderThread-27026 (27005) [002] ...1 1034722.897304: tracing_mark_write: B|27005|HIDL::IMapper::freeBuffer::passthrough
RenderThread-27026 (27005) [002] ...1 1034722.897866: tracing_mark_write: B|27005|FreeBuffer
RenderThread-27026 (27005) [002] ...1 1034722.897907: tracing_mark_write: E|27005
RenderThread-27026 (27005) [002] ...1 1034722.897921: tracing_mark_write: B|27005|FreeBuffer
RenderThread-27026 (27005) [002] ...1 1034722.897946: tracing_mark_write: E|27005
RenderThread-27026 (27005) [002] ...1 1034722.897973: tracing_mark_write: E|27005
RenderThread-27026 (27005) [002] ...1 1034722.898000: tracing_mark_write: B|27005|HIDL::IMapper::freeBuffer::passthrough
RenderThread-27026 (27005) [002] ...1 1034722.898028: tracing_mark_write: B|27005|FreeBuffer
RenderThread-27026 (27005) [002] ...1 1034722.898054: tracing_mark_write: E|27005
RenderThread-27026 (27005) [002] ...1 1034722.898066: tracing_mark_write: B|27005|FreeBuffer
RenderThread-27026 (27005) [002] ...1 1034722.898089: tracing_mark_write: E|27005
RenderThread-27026 (27005) [002] ...1 1034722.898106: tracing_mark_write: E|27005
RenderThread-27026 (27005) [002] ...1 1034722.898126: tracing_mark_write: B|27005|HIDL::IMapper::freeBuffer::passthrough
RenderThread-27026 (27005) [002] ...1 1034722.898144: tracing_mark_write: B|27005|FreeBuffer
RenderThread-27026 (27005) [002] ...1 1034722.898169: tracing_mark_write: E|27005
RenderThread-27026 (27005) [002] ...1 1034722.898180: tracing_mark_write: B|27005|FreeBuffer
RenderThread-27026 (27005) [002] ...1 1034722.898204: tracing_mark_write: E|27005
RenderThread-27026 (27005) [002] ...1 1034722.898225: tracing_mark_write: E|27005
Binder:591_1-623 ( 591) [002] ...1 1034722.898515: tracing_mark_write: B|591|HIDL::IMapper::freeBuffer::passthrough
Binder:591_1-623 ( 591) [002] ...1 1034722.898548: tracing_mark_write: B|591|FreeBuffer
Binder:591_1-623 ( 591) [002] ...1 1034722.899198: tracing_mark_write: E|591
Binder:591_1-623 ( 591) [002] ...1 1034722.899212: tracing_mark_write: B|591|FreeBuffer
Binder:591_1-623 ( 591) [002] ...1 1034722.899256: tracing_mark_write: E|591
Binder:591_1-623 ( 591) [002] ...1 1034722.899275: tracing_mark_write: E|591
Binder:591_1-623 ( 591) [002] ...1 1034722.899326: tracing_mark_write: B|591|HIDL::IMapper::freeBuffer::passthrough
Binder:591_1-623 ( 591) [002] ...1 1034722.899358: tracing_mark_write: B|591|FreeBuffer
Binder:591_1-623 ( 591) [002] ...1 1034722.900021: tracing_mark_write: E|591
Binder:591_1-623 ( 591) [002] ...1 1034722.900035: tracing_mark_write: B|591|FreeBuffer
Binder:591_1-623 ( 591) [002] ...1 1034722.900074: tracing_mark_write: E|591
Binder:591_1-623 ( 591) [002] ...1 1034722.900092: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [001] ...1 1034722.902324: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034722.902526: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034722.902670: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034722.902687: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034722.902696: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034722.903183: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [000] ...1 1034722.903382: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034722.903410: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034722.903440: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034722.903536: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [001] ...1 1034722.903662: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034722.903737: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034722.903755: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034722.903774: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034722.903916: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034722.903947: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034722.903981: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034722.904062: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [002] ...1 1034722.909819: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034722.909938: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034722.910030: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [002] ...1 1034722.910103: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034722.915675: tracing_mark_write: B|591|HIDL::IMapper::freeBuffer::passthrough
surfaceflinger-591 ( 591) [001] ...1 1034722.915701: tracing_mark_write: B|591|FreeBuffer
surfaceflinger-591 ( 591) [001] ...1 1034722.915720: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [001] ...1 1034722.915724: tracing_mark_write: B|591|FreeBuffer
surfaceflinger-591 ( 591) [001] ...1 1034722.915763: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [001] ...1 1034722.915772: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [001] ...1 1034722.916722: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034722.916895: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034722.917013: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034722.917027: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034722.917034: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034722.917449: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [000] ...1 1034722.917548: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034722.917578: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034722.917607: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034722.917684: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [001] ...1 1034722.917792: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034722.917856: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034722.917871: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034722.917889: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034722.918038: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034722.918067: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034722.918100: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034722.918169: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [001] ...1 1034722.929122: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034722.929201: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034722.929282: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034722.929333: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034722.932781: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.932909: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.933011: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.933022: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.933027: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.933425: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034722.933513: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.933536: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.933558: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.933614: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034722.933689: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.933728: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.933739: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.933750: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034722.933857: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.933878: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.933900: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.933946: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [002] ...1 1034722.948791: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034722.948941: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034722.949123: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [002] ...1 1034722.949265: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034722.951047: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034722.951219: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034722.951368: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034722.951387: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034722.951398: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034722.951943: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [000] ...1 1034722.952072: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034722.952114: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034722.952151: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034722.952267: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [001] ...1 1034722.952427: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034722.952524: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034722.952546: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034722.952570: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034722.952819: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034722.952863: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034722.952919: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034722.953048: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [004] ...1 1034722.979517: tracing_mark_write: E|778
SensorService-1283 ( 1151) [003] ...1 1034722.979687: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [003] ...1 1034722.979828: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [004] ...1 1034722.979977: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034722.984318: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.984612: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.984749: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.984765: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.984774: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.985227: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034722.985335: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.985371: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.985407: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.985528: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034722.985668: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034722.985760: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034722.985781: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034722.985804: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034722.985970: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.986009: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034722.986054: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034722.986167: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [003] ...1 1034722.987164: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034722.987272: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034722.987370: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [003] ...1 1034722.987441: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034723.000273: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034723.000449: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034723.000561: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034723.000574: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034723.000581: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034723.000952: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034723.001046: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034723.001074: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034723.001103: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034723.001203: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034723.001325: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034723.001397: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034723.001413: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034723.001430: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034723.001569: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034723.001598: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034723.001632: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034723.001708: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [002] ...1 1034723.006192: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034723.006308: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034723.006421: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [002] ...1 1034723.006520: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034723.015968: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034723.016136: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034723.016213: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034723.016225: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034723.016230: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034723.016528: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034723.016631: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034723.016655: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034723.016677: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034723.016741: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034723.016830: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034723.016884: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034723.016896: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034723.016909: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034723.017030: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034723.017053: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034723.017079: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034723.017137: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034723.025626: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034723.025754: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034723.025845: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034723.025905: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034723.044530: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034723.044602: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034723.044669: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034723.044718: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034723.049245: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034723.049342: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034723.049409: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034723.049429: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034723.049545: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034723.049570: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034723.049598: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034723.049666: tracing_mark_write: E|591
sh-27089 (27089) [005] ...1 1034723.059427: tracing_mark_write: trace_event_clock_sync: name=ed6e2e24-98d1-4b4b-83d2-7509d113d490
HwBinder:778_1-1087 ( 778) [000] ...1 1034723.063945: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034723.064109: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034723.064297: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034723.064437: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034723.083058: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034723.083186: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034723.083382: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034723.083511: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034723.100375: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034723.100686: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034723.100856: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034723.100899: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034723.101194: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034723.101262: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034723.101337: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034723.101577: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [001] ...1 1034723.102513: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034723.102681: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034723.102866: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034723.103005: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034723.121592: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034723.121718: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034723.121866: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034723.122018: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034723.140810: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034723.140971: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034723.141178: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034723.141322: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034723.150806: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034723.151140: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034723.151308: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034723.151353: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034723.151674: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034723.151742: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034723.151817: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034723.152027: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034723.160398: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034723.160578: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034723.160741: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034723.160925: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034723.179428: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034723.179617: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034723.179785: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034723.180056: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034723.184376: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034723.184814: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034723.184989: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034723.185032: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034723.185347: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034723.185415: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034723.185528: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034723.185750: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034723.198586: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034723.198798: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034723.198978: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034723.199121: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [001] ...1 1034723.217857: tracing_mark_write: E|778
SensorService-1283 ( 1151) [002] ...1 1034723.218148: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [002] ...1 1034723.218359: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034723.218457: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034723.234227: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034723.234402: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034723.234519: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034723.234550: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034723.234761: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034723.234805: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034723.234856: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034723.234990: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034723.237005: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034723.237151: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034723.237325: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034723.237426: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034723.256262: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034723.256368: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034723.256473: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034723.256611: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034723.268053: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034723.268295: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034723.268448: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034723.268488: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034723.268741: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034723.268799: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034723.268870: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034723.269046: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034723.275596: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034723.275738: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034723.275874: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034723.276027: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034723.295235: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034723.295372: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034723.295499: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034723.295632: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034723.314097: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034723.314225: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034723.314374: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034723.314505: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034723.318401: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034723.318688: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034723.318847: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034723.318890: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034723.319175: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034723.319246: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034723.319320: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034723.319517: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034723.333387: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034723.333524: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034723.333688: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034723.333828: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034723.351422: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034723.351533: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034723.351601: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034723.351621: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034723.351733: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034723.351758: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034723.351788: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034723.351863: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [001] ...1 1034723.352532: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034723.352598: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034723.352669: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034723.352717: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034723.372058: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034723.372132: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034723.372197: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034723.372244: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034723.391074: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034723.391143: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034723.391224: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034723.391272: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [001] ...1 1034723.401775: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034723.401933: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034723.402040: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034723.402050: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034723.402054: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034723.402330: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [000] ...1 1034723.402401: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034723.402422: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034723.402443: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034723.402505: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [001] ...1 1034723.402582: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [000] ...1 1034723.402629: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [000] ...1 1034723.402639: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [000] ...1 1034723.402650: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [000] ...1 1034723.402746: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034723.402764: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [000] ...1 1034723.402786: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [001] ...1 1034723.402832: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034723.410267: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034723.410333: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034723.410418: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034723.410465: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034723.418613: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034723.418728: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034723.418797: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034723.418807: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034723.418812: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034723.419083: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034723.419152: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034723.419173: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034723.419194: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034723.419257: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034723.419334: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034723.419376: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034723.419386: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034723.419397: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034723.419565: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034723.419587: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034723.419612: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034723.419664: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [001] ...1 1034723.429491: tracing_mark_write: E|778
SensorService-1283 ( 1151) [000] ...1 1034723.429563: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [000] ...1 1034723.429643: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [001] ...1 1034723.429688: tracing_mark_write: B|778|HIDL::ISensors::poll::server
surfaceflinger-591 ( 591) [000] ...1 1034723.435349: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034723.435455: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034723.435524: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034723.435535: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034723.435539: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034723.435810: tracing_mark_write: B|593|HWDevice::Validate::
composer@2.1-s-593 ( 593) [001] ...1 1034723.435880: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034723.435900: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034723.435921: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034723.435975: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034723.436049: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034723.436087: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034723.436097: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034723.436108: tracing_mark_write: B|593|HWDevice::Commit::
composer@2.1-s-593 ( 593) [001] ...1 1034723.436270: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034723.436288: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034723.436309: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034723.436354: tracing_mark_write: E|591
HwBinder:778_1-1087 ( 778) [000] ...1 1034723.448867: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034723.448937: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034723.449004: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034723.449050: tracing_mark_write: B|778|HIDL::ISensors::poll::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034723.468029: tracing_mark_write: E|778
SensorService-1283 ( 1151) [001] ...1 1034723.468118: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034723.468196: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034723.468250: tracing_mark_write: B|778|HIDL::ISensors::poll::server
atrace-27096 (27096) [005] ...1 1034723.471876: tracing_mark_write: B|27096|HIDL::IServiceManager::list::client
hwservicemanag-570 ( 570) [003] ...1 1034723.472053: tracing_mark_write: B|570|HIDL::IServiceManager::list::server
hwservicemanag-570 ( 570) [003] ...1 1034723.473019: tracing_mark_write: E|570
atrace-27096 (27096) [005] ...1 1034723.473192: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
hwservicemanag-570 ( 570) [003] ...1 1034723.473326: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
hwservicemanag-570 ( 570) [003] ...1 1034723.473652: tracing_mark_write: E|570
atrace-27096 (27096) [005] ...1 1034723.473744: tracing_mark_write: E|27096
atrace-27096 (27096) [005] ...1 1034723.473756: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [005] ...1 1034723.473784: tracing_mark_write: E|27096
atrace-27096 (27096) [005] ...1 1034723.473803: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
hwservicemanag-570 ( 570) [003] ...1 1034723.473867: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
HwBinder:591_1-620 ( 591) [001] ...1 1034723.473907: tracing_mark_write: B|591|HIDL::IBase::notifySyspropsChanged::server
hwservicemanag-570 ( 570) [003] ...1 1034723.474102: tracing_mark_write: E|570
HwBinder:591_1-620 ( 591) [001] ...1 1034723.474130: tracing_mark_write: E|591
atrace-27096 (27096) [005] ...1 1034723.474146: tracing_mark_write: E|27096
atrace-27096 (27096) [005] ...1 1034723.474151: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [005] ...1 1034723.474183: tracing_mark_write: E|27096
atrace-27096 (27096) [005] ...1 1034723.474195: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
HwBinder:1151_-1990 ( 1151) [006] ...1 1034723.474233: tracing_mark_write: B|1151|HIDL::IBase::notifySyspropsChanged::server
hwservicemanag-570 ( 570) [002] ...1 1034723.474241: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
hwservicemanag-570 ( 570) [002] ...1 1034723.474370: tracing_mark_write: E|570
atrace-27096 (27096) [005] ...1 1034723.474414: tracing_mark_write: E|27096
atrace-27096 (27096) [005] ...1 1034723.474419: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [005] ...1 1034723.474448: tracing_mark_write: E|27096
atrace-27096 (27096) [005] ...1 1034723.474459: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
hwservicemanag-570 ( 570) [002] ...1 1034723.474496: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
hwservicemanag-570 ( 570) [002] ...1 1034723.474613: tracing_mark_write: E|570
atrace-27096 (27096) [005] ...1 1034723.474655: tracing_mark_write: E|27096
atrace-27096 (27096) [005] ...1 1034723.474659: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [005] ...1 1034723.474706: tracing_mark_write: E|27096
atrace-27096 (27096) [005] ...1 1034723.474718: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
hwservicemanag-570 ( 570) [002] ...1 1034723.474755: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
HwBinder:1151_-1194 ( 1151) [006] ...1 1034723.474828: tracing_mark_write: B|1151|HIDL::IBase::notifySyspropsChanged::server
hwservicemanag-570 ( 570) [002] ...1 1034723.474863: tracing_mark_write: E|570
atrace-27096 (27096) [005] ...1 1034723.474906: tracing_mark_write: E|27096
atrace-27096 (27096) [005] ...1 1034723.474911: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [005] ...1 1034723.474939: tracing_mark_write: E|27096
atrace-27096 (27096) [005] ...1 1034723.474950: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
hwservicemanag-570 ( 570) [002] ...1 1034723.474988: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
hwservicemanag-570 ( 570) [002] ...1 1034723.475122: tracing_mark_write: E|570
atrace-27096 (27096) [005] ...1 1034723.475163: tracing_mark_write: E|27096
atrace-27096 (27096) [005] ...1 1034723.475168: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [005] ...1 1034723.475212: tracing_mark_write: E|27096
HwBinder:733_4-2714 ( 733) [002] ...1 1034723.475217: tracing_mark_write: B|733|HIDL::IBase::notifySyspropsChanged::server
atrace-27096 (27096) [005] ...1 1034723.475224: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
HwBinder:935_1-1139 ( 935) [007] ...1 1034723.475264: tracing_mark_write: B|935|HIDL::IBase::notifySyspropsChanged::server
HwBinder:733_3-1347 ( 733) [006] ...1 1034723.475305: tracing_mark_write: B|733|HIDL::IBase::notifySyspropsChanged::server
HwBinder:733_4-2714 ( 733) [002] ...1 1034723.475381: tracing_mark_write: E|733
HwBinder:733_3-1347 ( 733) [006] ...1 1034723.475405: tracing_mark_write: E|733
HwBinder:935_1-1139 ( 935) [007] ...1 1034723.475420: tracing_mark_write: E|935
hwservicemanag-570 ( 570) [002] ...1 1034723.475424: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
hwservicemanag-570 ( 570) [002] ...1 1034723.475535: tracing_mark_write: E|570
atrace-27096 (27096) [005] ...1 1034723.475584: tracing_mark_write: E|27096
atrace-27096 (27096) [005] ...1 1034723.475589: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
HwBinder:1151_-1990 ( 1151) [006] ...1 1034723.475615: tracing_mark_write: E|1151
atrace-27096 (27096) [005] ...1 1034723.475629: tracing_mark_write: E|27096
atrace-27096 (27096) [005] ...1 1034723.475641: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
HwBinder:734_1-746 ( 734) [002] ...1 1034723.475685: tracing_mark_write: B|734|HIDL::IBase::notifySyspropsChanged::server
HwBinder:734_1-746 ( 734) [002] ...1 1034723.475803: tracing_mark_write: E|734
HwBinder:1151_-1194 ( 1151) [006] ...1 1034723.475822: tracing_mark_write: E|1151
hwservicemanag-570 ( 570) [002] ...1 1034723.475842: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
hwservicemanag-570 ( 570) [002] ...1 1034723.475947: tracing_mark_write: E|570
atrace-27096 (27096) [004] ...1 1034723.476013: tracing_mark_write: E|27096
atrace-27096 (27096) [004] ...1 1034723.476021: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [004] ...1 1034723.476083: tracing_mark_write: E|27096
atrace-27096 (27096) [004] ...1 1034723.476100: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
boot@1.0-servi-586 ( 586) [006] ...1 1034723.476127: tracing_mark_write: B|586|HIDL::IBase::notifySyspropsChanged::server
hwservicemanag-570 ( 570) [002] ...1 1034723.476142: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
hwservicemanag-570 ( 570) [002] ...1 1034723.476269: tracing_mark_write: E|570
boot@1.0-servi-586 ( 586) [006] ...1 1034723.476273: tracing_mark_write: E|586
atrace-27096 (27096) [004] ...1 1034723.476318: tracing_mark_write: E|27096
atrace-27096 (27096) [004] ...1 1034723.476323: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [004] ...1 1034723.476373: tracing_mark_write: E|27096
atrace-27096 (27096) [004] ...1 1034723.476385: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
provider@2.4-s-736 ( 736) [005] ...1 1034723.476408: tracing_mark_write: B|736|HIDL::IBase::notifySyspropsChanged::server
hwservicemanag-570 ( 570) [002] ...1 1034723.476422: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
hwservicemanag-570 ( 570) [002] ...1 1034723.476526: tracing_mark_write: E|570
provider@2.4-s-736 ( 736) [005] ...1 1034723.476588: tracing_mark_write: E|736
atrace-27096 (27096) [006] ...1 1034723.476628: tracing_mark_write: E|27096
atrace-27096 (27096) [006] ...1 1034723.476636: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [006] ...1 1034723.476687: tracing_mark_write: E|27096
atrace-27096 (27096) [006] ...1 1034723.476702: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
HwBinder:737_2-23186 ( 737) [007] ...1 1034723.476722: tracing_mark_write: B|737|HIDL::IBase::notifySyspropsChanged::server
hwservicemanag-570 ( 570) [002] ...1 1034723.476744: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
hwservicemanag-570 ( 570) [002] ...1 1034723.476868: tracing_mark_write: E|570
HwBinder:737_2-23186 ( 737) [007] ...1 1034723.476885: tracing_mark_write: E|737
atrace-27096 (27096) [005] ...1 1034723.476923: tracing_mark_write: E|27096
atrace-27096 (27096) [005] ...1 1034723.476929: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [005] ...1 1034723.476974: tracing_mark_write: E|27096
atrace-27096 (27096) [005] ...1 1034723.476989: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
HwBinder:594_2-7100 ( 594) [003] ...1 1034723.477027: tracing_mark_write: B|594|HIDL::IBase::notifySyspropsChanged::server
hwservicemanag-570 ( 570) [002] ...1 1034723.477029: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
hwservicemanag-570 ( 570) [002] ...1 1034723.477141: tracing_mark_write: E|570
HwBinder:594_2-7100 ( 594) [003] ...1 1034723.477158: tracing_mark_write: E|594
atrace-27096 (27096) [005] ...1 1034723.477186: tracing_mark_write: E|27096
atrace-27096 (27096) [005] ...1 1034723.477191: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [005] ...1 1034723.477235: tracing_mark_write: E|27096
atrace-27096 (27096) [005] ...1 1034723.477247: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
contexthub@1.0-738 ( 738) [006] ...1 1034723.477279: tracing_mark_write: B|738|HIDL::IBase::notifySyspropsChanged::server
hwservicemanag-570 ( 570) [003] ...1 1034723.477292: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
hwservicemanag-570 ( 570) [003] ...1 1034723.477399: tracing_mark_write: E|570
contexthub@1.0-738 ( 738) [006] ...1 1034723.477421: tracing_mark_write: E|738
atrace-27096 (27096) [005] ...1 1034723.477442: tracing_mark_write: E|27096
atrace-27096 (27096) [005] ...1 1034723.477447: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [005] ...1 1034723.477488: tracing_mark_write: E|27096
atrace-27096 (27096) [005] ...1 1034723.477499: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
HwBinder:741_4-23194 ( 741) [006] ...1 1034723.477533: tracing_mark_write: B|741|HIDL::IBase::notifySyspropsChanged::server
hwservicemanag-570 ( 570) [003] ...1 1034723.477539: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
hwservicemanag-570 ( 570) [003] ...1 1034723.477641: tracing_mark_write: E|570
HwBinder:741_4-23194 ( 741) [006] ...1 1034723.477679: tracing_mark_write: E|741
atrace-27096 (27096) [005] ...1 1034723.477684: tracing_mark_write: E|27096
atrace-27096 (27096) [005] ...1 1034723.477689: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [005] ...1 1034723.477728: tracing_mark_write: E|27096
atrace-27096 (27096) [005] ...1 1034723.477739: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
HwBinder:739_1-846 ( 739) [006] ...1 1034723.477761: tracing_mark_write: B|739|HIDL::IBase::notifySyspropsChanged::server
hwservicemanag-570 ( 570) [003] ...1 1034723.477778: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
hwservicemanag-570 ( 570) [003] ...1 1034723.477879: tracing_mark_write: E|570
HwBinder:739_1-846 ( 739) [006] ...1 1034723.477908: tracing_mark_write: E|739
atrace-27096 (27096) [005] ...1 1034723.477922: tracing_mark_write: E|27096
atrace-27096 (27096) [005] ...1 1034723.477926: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [005] ...1 1034723.477967: tracing_mark_write: E|27096
atrace-27096 (27096) [005] ...1 1034723.477979: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
HwBinder:740_2-23191 ( 740) [006] ...1 1034723.478001: tracing_mark_write: B|740|HIDL::IBase::notifySyspropsChanged::server
hwservicemanag-570 ( 570) [003] ...1 1034723.478016: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
hwservicemanag-570 ( 570) [003] ...1 1034723.478108: tracing_mark_write: E|570
HwBinder:740_2-23191 ( 740) [006] ...1 1034723.478138: tracing_mark_write: E|740
atrace-27096 (27096) [005] ...1 1034723.478149: tracing_mark_write: E|27096
atrace-27096 (27096) [005] ...1 1034723.478153: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [005] ...1 1034723.478176: tracing_mark_write: E|27096
atrace-27096 (27096) [005] ...1 1034723.478186: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
HwBinder:741_4-23194 ( 741) [006] ...1 1034723.478189: tracing_mark_write: B|741|HIDL::IBase::notifySyspropsChanged::server
hwservicemanag-570 ( 570) [003] ...1 1034723.478223: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
HwBinder:741_4-23194 ( 741) [006] ...1 1034723.478254: tracing_mark_write: E|741
hwservicemanag-570 ( 570) [003] ...1 1034723.478316: tracing_mark_write: E|570
atrace-27096 (27096) [006] ...1 1034723.478378: tracing_mark_write: E|27096
atrace-27096 (27096) [006] ...1 1034723.478386: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [006] ...1 1034723.478420: tracing_mark_write: E|27096
atrace-27096 (27096) [006] ...1 1034723.478436: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
HwBinder:739_1-846 ( 739) [007] ...1 1034723.478439: tracing_mark_write: B|739|HIDL::IBase::notifySyspropsChanged::server
hwservicemanag-570 ( 570) [003] ...1 1034723.478478: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
HwBinder:739_1-846 ( 739) [007] ...1 1034723.478520: tracing_mark_write: E|739
hwservicemanag-570 ( 570) [003] ...1 1034723.478571: tracing_mark_write: E|570
atrace-27096 (27096) [005] ...1 1034723.478618: tracing_mark_write: E|27096
atrace-27096 (27096) [005] ...1 1034723.478624: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [005] ...1 1034723.478652: tracing_mark_write: E|27096
atrace-27096 (27096) [005] ...1 1034723.478663: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
HwBinder:740_2-23191 ( 740) [006] ...1 1034723.478672: tracing_mark_write: B|740|HIDL::IBase::notifySyspropsChanged::server
hwservicemanag-570 ( 570) [003] ...1 1034723.478699: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
HwBinder:740_2-23191 ( 740) [006] ...1 1034723.478753: tracing_mark_write: E|740
hwservicemanag-570 ( 570) [003] ...1 1034723.478800: tracing_mark_write: E|570
atrace-27096 (27096) [006] ...1 1034723.478857: tracing_mark_write: E|27096
atrace-27096 (27096) [006] ...1 1034723.478863: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [006] ...1 1034723.478895: tracing_mark_write: E|27096
atrace-27096 (27096) [006] ...1 1034723.478909: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
HwBinder:741_4-23194 ( 741) [007] ...1 1034723.478912: tracing_mark_write: B|741|HIDL::IBase::notifySyspropsChanged::server
hwservicemanag-570 ( 570) [003] ...1 1034723.478949: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
HwBinder:741_4-23194 ( 741) [007] ...1 1034723.478982: tracing_mark_write: E|741
hwservicemanag-570 ( 570) [003] ...1 1034723.479042: tracing_mark_write: E|570
atrace-27096 (27096) [005] ...1 1034723.479089: tracing_mark_write: E|27096
atrace-27096 (27096) [005] ...1 1034723.479094: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [005] ...1 1034723.479122: tracing_mark_write: E|27096
atrace-27096 (27096) [005] ...1 1034723.479133: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
HwBinder:741_4-23194 ( 741) [006] ...1 1034723.479137: tracing_mark_write: B|741|HIDL::IBase::notifySyspropsChanged::server
hwservicemanag-570 ( 570) [003] ...1 1034723.479170: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
HwBinder:741_4-23194 ( 741) [006] ...1 1034723.479214: tracing_mark_write: E|741
hwservicemanag-570 ( 570) [003] ...1 1034723.479284: tracing_mark_write: E|570
atrace-27096 (27096) [006] ...1 1034723.479340: tracing_mark_write: E|27096
atrace-27096 (27096) [006] ...1 1034723.479346: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [006] ...1 1034723.479394: tracing_mark_write: E|27096
atrace-27096 (27096) [006] ...1 1034723.479407: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
dumpstate@1.0--742 ( 742) [004] ...1 1034723.479443: tracing_mark_write: B|742|HIDL::IBase::notifySyspropsChanged::server
hwservicemanag-570 ( 570) [003] ...1 1034723.479449: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
hwservicemanag-570 ( 570) [003] ...1 1034723.479556: tracing_mark_write: E|570
dumpstate@1.0--742 ( 742) [004] ...1 1034723.479587: tracing_mark_write: E|742
atrace-27096 (27096) [005] ...1 1034723.479600: tracing_mark_write: E|27096
atrace-27096 (27096) [005] ...1 1034723.479605: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [005] ...1 1034723.479652: tracing_mark_write: E|27096
atrace-27096 (27096) [005] ...1 1034723.479663: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
gatekeeper@1.0-587 ( 587) [006] ...1 1034723.479699: tracing_mark_write: B|587|HIDL::IBase::notifySyspropsChanged::server
hwservicemanag-570 ( 570) [003] ...1 1034723.479701: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
hwservicemanag-570 ( 570) [003] ...1 1034723.479792: tracing_mark_write: E|570
gatekeeper@1.0-587 ( 587) [006] ...1 1034723.479832: tracing_mark_write: E|587
atrace-27096 (27096) [005] ...1 1034723.479833: tracing_mark_write: E|27096
atrace-27096 (27096) [005] ...1 1034723.479838: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [005] ...1 1034723.479890: tracing_mark_write: E|27096
atrace-27096 (27096) [005] ...1 1034723.479902: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
gnss@1.0-servi-743 ( 743) [007] ...1 1034723.479933: tracing_mark_write: B|743|HIDL::IBase::notifySyspropsChanged::server
hwservicemanag-570 ( 570) [003] ...1 1034723.479943: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
hwservicemanag-570 ( 570) [003] ...1 1034723.480059: tracing_mark_write: E|570
gnss@1.0-servi-743 ( 743) [007] ...1 1034723.480068: tracing_mark_write: E|743
atrace-27096 (27096) [005] ...1 1034723.480100: tracing_mark_write: E|27096
atrace-27096 (27096) [005] ...1 1034723.480104: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
allocator@2.0--595 ( 595) [005] ...1 1034723.480180: tracing_mark_write: B|595|HIDL::IBase::notifySyspropsChanged::server
allocator@2.0--595 ( 595) [005] ...1 1034723.480334: tracing_mark_write: E|595
atrace-27096 (27096) [005] ...1 1034723.480378: tracing_mark_write: E|27096
atrace-27096 (27096) [005] ...1 1034723.480394: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
hwservicemanag-570 ( 570) [003] ...1 1034723.480436: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
hwservicemanag-570 ( 570) [003] ...1 1034723.480552: tracing_mark_write: E|570
atrace-27096 (27096) [005] ...1 1034723.480603: tracing_mark_write: E|27096
atrace-27096 (27096) [005] ...1 1034723.480608: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [005] ...1 1034723.480656: tracing_mark_write: E|27096
atrace-27096 (27096) [005] ...1 1034723.480670: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
composer@2.1-s-593 ( 593) [000] ...1 1034723.480698: tracing_mark_write: B|593|HIDL::IBase::notifySyspropsChanged::server
hwservicemanag-570 ( 570) [003] ...1 1034723.480710: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
composer@2.1-s-593 ( 593) [000] ...1 1034723.480823: tracing_mark_write: E|593
hwservicemanag-570 ( 570) [003] ...1 1034723.480825: tracing_mark_write: E|570
atrace-27096 (27096) [005] ...1 1034723.480869: tracing_mark_write: E|27096
atrace-27096 (27096) [005] ...1 1034723.480874: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [005] ...1 1034723.480901: tracing_mark_write: E|27096
atrace-27096 (27096) [005] ...1 1034723.480916: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
HwBinder:732_1-767 ( 732) [002] ...1 1034723.480941: tracing_mark_write: B|732|HIDL::IBase::notifySyspropsChanged::server
hwservicemanag-570 ( 570) [003] ...1 1034723.480956: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
HwBinder:732_1-767 ( 732) [002] ...1 1034723.481005: tracing_mark_write: E|732
hwservicemanag-570 ( 570) [003] ...1 1034723.481052: tracing_mark_write: E|570
atrace-27096 (27096) [005] ...1 1034723.481096: tracing_mark_write: E|27096
atrace-27096 (27096) [005] ...1 1034723.481100: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [005] ...1 1034723.481141: tracing_mark_write: E|27096
atrace-27096 (27096) [005] ...1 1034723.481152: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
hwservicemanag-570 ( 570) [003] ...1 1034723.481194: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
healthd-729 ( 729) [002] ...1 1034723.481202: tracing_mark_write: B|729|HIDL::IBase::notifySyspropsChanged::server
hwservicemanag-570 ( 570) [003] ...1 1034723.481288: tracing_mark_write: E|570
healthd-729 ( 729) [002] ...1 1034723.481303: tracing_mark_write: E|729
atrace-27096 (27096) [005] ...1 1034723.481332: tracing_mark_write: E|27096
atrace-27096 (27096) [005] ...1 1034723.481336: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [005] ...1 1034723.481376: tracing_mark_write: E|27096
atrace-27096 (27096) [005] ...1 1034723.481387: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
hwservicemanag-570 ( 570) [003] ...1 1034723.481427: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
health@2.0-ser-744 ( 744) [001] ...1 1034723.481445: tracing_mark_write: B|744|HIDL::IBase::notifySyspropsChanged::server
hwservicemanag-570 ( 570) [003] ...1 1034723.481549: tracing_mark_write: E|570
health@2.0-ser-744 ( 744) [001] ...1 1034723.481561: tracing_mark_write: E|744
atrace-27096 (27096) [005] ...1 1034723.481592: tracing_mark_write: E|27096
atrace-27096 (27096) [005] ...1 1034723.481597: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [005] ...1 1034723.481637: tracing_mark_write: E|27096
atrace-27096 (27096) [005] ...1 1034723.481648: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
keymaster@3.0--588 ( 588) [006] ...1 1034723.481686: tracing_mark_write: B|588|HIDL::IBase::notifySyspropsChanged::server
hwservicemanag-570 ( 570) [002] ...1 1034723.481693: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
hwservicemanag-570 ( 570) [002] ...1 1034723.481813: tracing_mark_write: E|570
keymaster@3.0--588 ( 588) [006] ...1 1034723.481829: tracing_mark_write: E|588
atrace-27096 (27096) [005] ...1 1034723.481857: tracing_mark_write: E|27096
atrace-27096 (27096) [005] ...1 1034723.481862: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [005] ...1 1034723.481899: tracing_mark_write: E|27096
atrace-27096 (27096) [005] ...1 1034723.481910: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
keymaster@4.0--589 ( 589) [007] ...1 1034723.481945: tracing_mark_write: B|589|HIDL::IBase::notifySyspropsChanged::server
hwservicemanag-570 ( 570) [002] ...1 1034723.481953: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
hwservicemanag-570 ( 570) [002] ...1 1034723.482041: tracing_mark_write: E|570
keymaster@4.0--589 ( 589) [007] ...1 1034723.482081: tracing_mark_write: E|589
atrace-27096 (27096) [005] ...1 1034723.482083: tracing_mark_write: E|27096
atrace-27096 (27096) [005] ...1 1034723.482087: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [005] ...1 1034723.482128: tracing_mark_write: E|27096
atrace-27096 (27096) [005] ...1 1034723.482139: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
light@2.0-serv-745 ( 745) [007] ...1 1034723.482170: tracing_mark_write: B|745|HIDL::IBase::notifySyspropsChanged::server
hwservicemanag-570 ( 570) [002] ...1 1034723.482179: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
hwservicemanag-570 ( 570) [002] ...1 1034723.482270: tracing_mark_write: E|570
light@2.0-serv-745 ( 745) [007] ...1 1034723.482302: tracing_mark_write: E|745
atrace-27096 (27096) [005] ...1 1034723.482312: tracing_mark_write: E|27096
atrace-27096 (27096) [005] ...1 1034723.482317: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [005] ...1 1034723.482362: tracing_mark_write: E|27096
atrace-27096 (27096) [005] ...1 1034723.482384: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
omx@1.0-servic-914 ( 914) [006] ...1 1034723.482411: tracing_mark_write: B|914|HIDL::IBase::notifySyspropsChanged::server
hwservicemanag-570 ( 570) [002] ...1 1034723.482425: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
hwservicemanag-570 ( 570) [002] ...1 1034723.482528: tracing_mark_write: E|570
omx@1.0-servic-914 ( 914) [006] ...1 1034723.482549: tracing_mark_write: E|914
atrace-27096 (27096) [005] ...1 1034723.482571: tracing_mark_write: E|27096
atrace-27096 (27096) [005] ...1 1034723.482575: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [005] ...1 1034723.482598: tracing_mark_write: E|27096
atrace-27096 (27096) [005] ...1 1034723.482609: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
omx@1.0-servic-914 ( 914) [006] ...1 1034723.482613: tracing_mark_write: B|914|HIDL::IBase::notifySyspropsChanged::server
hwservicemanag-570 ( 570) [002] ...1 1034723.482644: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
omx@1.0-servic-914 ( 914) [006] ...1 1034723.482692: tracing_mark_write: E|914
hwservicemanag-570 ( 570) [002] ...1 1034723.482748: tracing_mark_write: E|570
atrace-27096 (27096) [006] ...1 1034723.482810: tracing_mark_write: E|27096
atrace-27096 (27096) [006] ...1 1034723.482817: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [006] ...1 1034723.482863: tracing_mark_write: E|27096
atrace-27096 (27096) [006] ...1 1034723.482878: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
memtrack@1.0-s-748 ( 748) [000] ...1 1034723.482904: tracing_mark_write: B|748|HIDL::IBase::notifySyspropsChanged::server
hwservicemanag-570 ( 570) [002] ...1 1034723.482919: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
memtrack@1.0-s-748 ( 748) [000] ...1 1034723.483020: tracing_mark_write: E|748
hwservicemanag-570 ( 570) [002] ...1 1034723.483027: tracing_mark_write: E|570
atrace-27096 (27096) [005] ...1 1034723.483075: tracing_mark_write: E|27096
atrace-27096 (27096) [005] ...1 1034723.483080: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [005] ...1 1034723.483125: tracing_mark_write: E|27096
atrace-27096 (27096) [005] ...1 1034723.483136: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
neuralnetworks-756 ( 756) [006] ...1 1034723.483153: tracing_mark_write: B|756|HIDL::IBase::notifySyspropsChanged::server
hwservicemanag-570 ( 570) [003] ...1 1034723.483178: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
hwservicemanag-570 ( 570) [003] ...1 1034723.483294: tracing_mark_write: E|570
neuralnetworks-756 ( 756) [006] ...1 1034723.483309: tracing_mark_write: E|756
atrace-27096 (27096) [004] ...1 1034723.483552: tracing_mark_write: E|27096
atrace-27096 (27096) [004] ...1 1034723.483567: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [004] ...1 1034723.483656: tracing_mark_write: E|27096
atrace-27096 (27096) [004] ...1 1034723.483685: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
nfc@1.0-servic-759 ( 759) [005] ...1 1034723.483735: tracing_mark_write: B|759|HIDL::IBase::notifySyspropsChanged::server
hwservicemanag-570 ( 570) [002] ...1 1034723.483756: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
hwservicemanag-570 ( 570) [002] ...1 1034723.483858: tracing_mark_write: E|570
nfc@1.0-servic-759 ( 759) [005] ...1 1034723.484019: tracing_mark_write: E|759
atrace-27096 (27096) [005] ...1 1034723.484119: tracing_mark_write: E|27096
atrace-27096 (27096) [005] ...1 1034723.484131: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [005] ...1 1034723.484215: tracing_mark_write: E|27096
atrace-27096 (27096) [005] ...1 1034723.484240: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
oemlock@1.0-se-760 ( 760) [006] ...1 1034723.484290: tracing_mark_write: B|760|HIDL::IBase::notifySyspropsChanged::server
hwservicemanag-570 ( 570) [003] ...1 1034723.484308: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
hwservicemanag-570 ( 570) [003] ...1 1034723.484399: tracing_mark_write: E|570
atrace-27096 (27096) [004] ...1 1034723.484480: tracing_mark_write: E|27096
atrace-27096 (27096) [004] ...1 1034723.484491: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
oemlock@1.0-se-760 ( 760) [006] ...1 1034723.484527: tracing_mark_write: E|760
atrace-27096 (27096) [004] ...1 1034723.484575: tracing_mark_write: E|27096
atrace-27096 (27096) [004] ...1 1034723.484600: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
power@1.2-serv-773 ( 773) [005] ...1 1034723.484654: tracing_mark_write: B|773|HIDL::IBase::notifySyspropsChanged::server
hwservicemanag-570 ( 570) [002] ...1 1034723.484664: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
hwservicemanag-570 ( 570) [002] ...1 1034723.484757: tracing_mark_write: E|570
power@1.2-serv-773 ( 773) [005] ...1 1034723.484927: tracing_mark_write: E|773
atrace-27096 (27096) [005] ...1 1034723.485030: tracing_mark_write: E|27096
atrace-27096 (27096) [005] ...1 1034723.485043: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [005] ...1 1034723.485099: tracing_mark_write: E|27096
atrace-27096 (27096) [005] ...1 1034723.485123: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
power@1.2-serv-773 ( 773) [004] ...1 1034723.485125: tracing_mark_write: B|773|HIDL::IBase::notifySyspropsChanged::server
hwservicemanag-570 ( 570) [003] ...1 1034723.485184: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
hwservicemanag-570 ( 570) [003] ...1 1034723.485274: tracing_mark_write: E|570
power@1.2-serv-773 ( 773) [004] ...1 1034723.485275: tracing_mark_write: E|773
atrace-27096 (27096) [004] ...1 1034723.485365: tracing_mark_write: E|27096
atrace-27096 (27096) [004] ...1 1034723.485378: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [004] ...1 1034723.485438: tracing_mark_write: E|27096
power@1.2-serv-773 ( 773) [005] ...1 1034723.485460: tracing_mark_write: B|773|HIDL::IBase::notifySyspropsChanged::server
atrace-27096 (27096) [004] ...1 1034723.485464: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
power@1.2-serv-773 ( 773) [005] ...1 1034723.485599: tracing_mark_write: E|773
surfaceflinger-591 ( 591) [000] ...1 1034723.485748: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
hwservicemanag-570 ( 570) [000] ...1 1034723.485878: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
composer@2.1-s-593 ( 593) [001] ...1 1034723.485887: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034723.485953: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034723.485963: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034723.485967: tracing_mark_write: B|593|HWCSession::ValidateDisplay::
hwservicemanag-570 ( 570) [000] ...1 1034723.486020: tracing_mark_write: E|570
atrace-27096 (27096) [005] ...1 1034723.486105: tracing_mark_write: E|27096
atrace-27096 (27096) [005] ...1 1034723.486117: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
composer@2.1-s-593 ( 593) [001] ...1 1034723.486241: tracing_mark_write: B|593|HWDevice::Validate::
rild-917 ( 917) [005] ...1 1034723.486278: tracing_mark_write: B|917|HIDL::IBase::notifySyspropsChanged::server
composer@2.1-s-593 ( 593) [001] ...1 1034723.486328: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034723.486349: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034723.486368: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034723.486422: tracing_mark_write: E|591
surfaceflinger-591 ( 591) [000] ...1 1034723.486504: tracing_mark_write: B|591|HIDL::IComposerClient::executeCommands::client
composer@2.1-s-593 ( 593) [001] ...1 1034723.486551: tracing_mark_write: B|593|HIDL::IComposerClient::executeCommands::server
composer@2.1-s-593 ( 593) [001] ...1 1034723.486561: tracing_mark_write: B|593|HWCSession::PresentDisplay::
composer@2.1-s-593 ( 593) [001] ...1 1034723.486572: tracing_mark_write: B|593|HWDevice::Commit::
rild-917 ( 917) [005] ...1 1034723.486631: tracing_mark_write: E|917
atrace-27096 (27096) [005] ...1 1034723.486712: tracing_mark_write: E|27096
composer@2.1-s-593 ( 593) [001] ...1 1034723.486744: tracing_mark_write: E|593
atrace-27096 (27096) [005] ...1 1034723.486748: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
composer@2.1-s-593 ( 593) [001] ...1 1034723.486763: tracing_mark_write: E|593
composer@2.1-s-593 ( 593) [001] ...1 1034723.486784: tracing_mark_write: E|593
surfaceflinger-591 ( 591) [000] ...1 1034723.486836: tracing_mark_write: E|591
hwservicemanag-570 ( 570) [000] ...1 1034723.487129: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
hwservicemanag-570 ( 570) [000] ...1 1034723.487284: tracing_mark_write: E|570
atrace-27096 (27096) [005] ...1 1034723.487412: tracing_mark_write: E|27096
atrace-27096 (27096) [005] ...1 1034723.487426: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034723.487483: tracing_mark_write: E|778
rild-917 ( 917) [005] ...1 1034723.487521: tracing_mark_write: B|917|HIDL::IBase::notifySyspropsChanged::server
SensorService-1283 ( 1151) [001] ...1 1034723.487549: tracing_mark_write: E|1151
SensorService-1283 ( 1151) [001] ...1 1034723.487619: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:778_1-1087 ( 778) [000] ...1 1034723.487662: tracing_mark_write: B|778|HIDL::ISensors::poll::server
rild-917 ( 917) [005] ...1 1034723.487674: tracing_mark_write: E|917
atrace-27096 (27096) [005] ...1 1034723.487729: tracing_mark_write: E|27096
atrace-27096 (27096) [005] ...1 1034723.487761: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
hwservicemanag-570 ( 570) [000] ...1 1034723.487840: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
hwservicemanag-570 ( 570) [000] ...1 1034723.487949: tracing_mark_write: E|570
atrace-27096 (27096) [000] ...1 1034723.488019: tracing_mark_write: E|27096
atrace-27096 (27096) [000] ...1 1034723.488031: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [000] ...1 1034723.488062: tracing_mark_write: E|27096
atrace-27096 (27096) [000] ...1 1034723.488080: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
rild-917 ( 917) [005] ...1 1034723.488105: tracing_mark_write: B|917|HIDL::IBase::notifySyspropsChanged::server
hwservicemanag-570 ( 570) [001] ...1 1034723.488120: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
hwservicemanag-570 ( 570) [001] ...1 1034723.488217: tracing_mark_write: E|570
atrace-27096 (27096) [001] ...1 1034723.488265: tracing_mark_write: E|27096
atrace-27096 (27096) [001] ...1 1034723.488271: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
rild-917 ( 917) [005] ...1 1034723.488285: tracing_mark_write: E|917
atrace-27096 (27096) [001] ...1 1034723.488299: tracing_mark_write: E|27096
atrace-27096 (27096) [001] ...1 1034723.488312: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
HwBinder:917_1-1223 ( 917) [004] ...1 1034723.488346: tracing_mark_write: B|917|HIDL::IBase::notifySyspropsChanged::server
hwservicemanag-570 ( 570) [000] ...1 1034723.488350: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
hwservicemanag-570 ( 570) [000] ...1 1034723.488447: tracing_mark_write: E|570
atrace-27096 (27096) [000] ...1 1034723.488493: tracing_mark_write: E|27096
atrace-27096 (27096) [000] ...1 1034723.488499: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
HwBinder:917_1-1223 ( 917) [004] ...1 1034723.488503: tracing_mark_write: E|917
atrace-27096 (27096) [000] ...1 1034723.488528: tracing_mark_write: E|27096
atrace-27096 (27096) [000] ...1 1034723.488542: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
rild-917 ( 917) [005] ...1 1034723.488562: tracing_mark_write: B|917|HIDL::IBase::notifySyspropsChanged::server
hwservicemanag-570 ( 570) [001] ...1 1034723.488579: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
rild-917 ( 917) [005] ...1 1034723.488688: tracing_mark_write: E|917
hwservicemanag-570 ( 570) [001] ...1 1034723.488704: tracing_mark_write: E|570
atrace-27096 (27096) [005] ...1 1034723.488789: tracing_mark_write: E|27096
atrace-27096 (27096) [005] ...1 1034723.488807: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [005] ...1 1034723.488903: tracing_mark_write: E|27096
atrace-27096 (27096) [005] ...1 1034723.488933: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
sensors@1.0-se-778 ( 778) [007] ...1 1034723.488946: tracing_mark_write: B|778|HIDL::IBase::notifySyspropsChanged::server
hwservicemanag-570 ( 570) [001] ...1 1034723.489005: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
hwservicemanag-570 ( 570) [001] ...1 1034723.489138: tracing_mark_write: E|570
sensors@1.0-se-778 ( 778) [007] ...1 1034723.489173: tracing_mark_write: E|778
atrace-27096 (27096) [001] ...1 1034723.489203: tracing_mark_write: E|27096
atrace-27096 (27096) [001] ...1 1034723.489210: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [001] ...1 1034723.489242: tracing_mark_write: E|27096
atrace-27096 (27096) [001] ...1 1034723.489255: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
hwservicemanag-570 ( 570) [000] ...1 1034723.489293: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
HwBinder:733_3-1347 ( 733) [007] ...1 1034723.489312: tracing_mark_write: B|733|HIDL::IBase::notifySyspropsChanged::server
hwservicemanag-570 ( 570) [000] ...1 1034723.489414: tracing_mark_write: E|570
atrace-27096 (27096) [000] ...1 1034723.489460: tracing_mark_write: E|27096
atrace-27096 (27096) [000] ...1 1034723.489466: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [000] ...1 1034723.489482: tracing_mark_write: E|27096
atrace-27096 (27096) [000] ...1 1034723.489494: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
HwBinder:733_3-1347 ( 733) [007] ...1 1034723.489518: tracing_mark_write: E|733
hwservicemanag-570 ( 570) [001] ...1 1034723.489529: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
HwBinder:733_3-1347 ( 733) [007] ...1 1034723.489611: tracing_mark_write: B|733|HIDL::IBase::notifySyspropsChanged::server
hwservicemanag-570 ( 570) [001] ...1 1034723.489657: tracing_mark_write: E|570
atrace-27096 (27096) [001] ...1 1034723.489705: tracing_mark_write: E|27096
atrace-27096 (27096) [001] ...1 1034723.489710: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
HwBinder:733_3-1347 ( 733) [007] ...1 1034723.489746: tracing_mark_write: E|733
atrace-27096 (27096) [001] ...1 1034723.489756: tracing_mark_write: E|27096
atrace-27096 (27096) [001] ...1 1034723.489768: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
hwservicemanag-570 ( 570) [000] ...1 1034723.489804: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
HwBinder:898_1-951 ( 898) [004] ...1 1034723.489900: tracing_mark_write: B|898|HIDL::IBase::notifySyspropsChanged::server
hwservicemanag-570 ( 570) [000] ...1 1034723.489990: tracing_mark_write: E|570
atrace-27096 (27096) [000] ...1 1034723.490038: tracing_mark_write: E|27096
atrace-27096 (27096) [000] ...1 1034723.490043: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [000] ...1 1034723.490060: tracing_mark_write: E|27096
atrace-27096 (27096) [000] ...1 1034723.490072: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
hwservicemanag-570 ( 570) [002] ...1 1034723.490110: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
HwBinder:898_1-951 ( 898) [004] ...1 1034723.490193: tracing_mark_write: E|898
hwservicemanag-570 ( 570) [002] ...1 1034723.490217: tracing_mark_write: E|570
HwBinder:898_1-951 ( 898) [004] ...1 1034723.490261: tracing_mark_write: B|898|HIDL::IBase::notifySyspropsChanged::server
atrace-27096 (27096) [002] ...1 1034723.490267: tracing_mark_write: E|27096
atrace-27096 (27096) [002] ...1 1034723.490273: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [002] ...1 1034723.490312: tracing_mark_write: E|27096
atrace-27096 (27096) [002] ...1 1034723.490324: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
hwservicemanag-570 ( 570) [000] ...1 1034723.490360: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
HwBinder:730_1-747 ( 730) [005] ...1 1034723.490383: tracing_mark_write: B|730|HIDL::IBase::notifySyspropsChanged::server
HwBinder:898_1-951 ( 898) [004] ...1 1034723.490384: tracing_mark_write: E|898
hwservicemanag-570 ( 570) [000] ...1 1034723.490463: tracing_mark_write: E|570
atrace-27096 (27096) [000] ...1 1034723.490508: tracing_mark_write: E|27096
atrace-27096 (27096) [000] ...1 1034723.490513: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [000] ...1 1034723.490528: tracing_mark_write: E|27096
atrace-27096 (27096) [000] ...1 1034723.490540: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
hwservicemanag-570 ( 570) [002] ...1 1034723.490575: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
HwBinder:730_1-747 ( 730) [005] ...1 1034723.490648: tracing_mark_write: E|730
hwservicemanag-570 ( 570) [002] ...1 1034723.490688: tracing_mark_write: E|570
HwBinder:730_1-747 ( 730) [005] ...1 1034723.490712: tracing_mark_write: B|730|HIDL::IBase::notifySyspropsChanged::server
atrace-27096 (27096) [002] ...1 1034723.490734: tracing_mark_write: E|27096
atrace-27096 (27096) [002] ...1 1034723.490739: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [002] ...1 1034723.490785: tracing_mark_write: E|27096
atrace-27096 (27096) [002] ...1 1034723.490798: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
HwBinder:730_1-747 ( 730) [005] ...1 1034723.490831: tracing_mark_write: E|730
hwservicemanag-570 ( 570) [000] ...1 1034723.490833: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
usb@1.1-servic-787 ( 787) [003] ...1 1034723.490837: tracing_mark_write: B|787|HIDL::IBase::notifySyspropsChanged::server
hwservicemanag-570 ( 570) [000] ...1 1034723.490924: tracing_mark_write: E|570
atrace-27096 (27096) [000] ...1 1034723.490987: tracing_mark_write: E|27096
atrace-27096 (27096) [000] ...1 1034723.490992: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
usb@1.1-servic-787 ( 787) [003] ...1 1034723.491009: tracing_mark_write: E|787
atrace-27096 (27096) [000] ...1 1034723.491019: tracing_mark_write: E|27096
atrace-27096 (27096) [000] ...1 1034723.491031: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
HwBinder:787_1-957 ( 787) [001] ...1 1034723.491035: tracing_mark_write: B|787|HIDL::IBase::notifySyspropsChanged::server
hwservicemanag-570 ( 570) [002] ...1 1034723.491067: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
HwBinder:787_1-957 ( 787) [001] ...1 1034723.491104: tracing_mark_write: E|787
hwservicemanag-570 ( 570) [002] ...1 1034723.491158: tracing_mark_write: E|570
atrace-27096 (27096) [002] ...1 1034723.491204: tracing_mark_write: E|27096
atrace-27096 (27096) [002] ...1 1034723.491209: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [002] ...1 1034723.491231: tracing_mark_write: E|27096
HwBinder:787_1-957 ( 787) [001] ...1 1034723.491239: tracing_mark_write: B|787|HIDL::IBase::notifySyspropsChanged::server
atrace-27096 (27096) [002] ...1 1034723.491243: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
hwservicemanag-570 ( 570) [000] ...1 1034723.491277: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
HwBinder:787_1-957 ( 787) [001] ...1 1034723.491298: tracing_mark_write: E|787
hwservicemanag-570 ( 570) [000] ...1 1034723.491395: tracing_mark_write: E|570
atrace-27096 (27096) [000] ...1 1034723.491442: tracing_mark_write: E|27096
atrace-27096 (27096) [000] ...1 1034723.491447: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [000] ...1 1034723.491491: tracing_mark_write: E|27096
atrace-27096 (27096) [000] ...1 1034723.491502: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
hwservicemanag-570 ( 570) [002] ...1 1034723.491541: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
vibrator@1.2-s-793 ( 793) [005] ...1 1034723.491591: tracing_mark_write: B|793|HIDL::IBase::notifySyspropsChanged::server
hwservicemanag-570 ( 570) [002] ...1 1034723.491647: tracing_mark_write: E|570
atrace-27096 (27096) [002] ...1 1034723.491693: tracing_mark_write: E|27096
atrace-27096 (27096) [002] ...1 1034723.491699: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [002] ...1 1034723.491714: tracing_mark_write: E|27096
atrace-27096 (27096) [002] ...1 1034723.491725: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
hwservicemanag-570 ( 570) [000] ...1 1034723.491759: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
vibrator@1.2-s-793 ( 793) [005] ...1 1034723.491839: tracing_mark_write: E|793
hwservicemanag-570 ( 570) [000] ...1 1034723.491862: tracing_mark_write: E|570
vibrator@1.2-s-793 ( 793) [005] ...1 1034723.491896: tracing_mark_write: B|793|HIDL::IBase::notifySyspropsChanged::server
atrace-27096 (27096) [000] ...1 1034723.491910: tracing_mark_write: E|27096
atrace-27096 (27096) [000] ...1 1034723.491915: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [000] ...1 1034723.491932: tracing_mark_write: E|27096
atrace-27096 (27096) [000] ...1 1034723.491943: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
hwservicemanag-570 ( 570) [002] ...1 1034723.491977: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
vibrator@1.2-s-793 ( 793) [005] ...1 1034723.492010: tracing_mark_write: E|793
vibrator@1.2-s-793 ( 793) [005] ...1 1034723.492043: tracing_mark_write: B|793|HIDL::IBase::notifySyspropsChanged::server
hwservicemanag-570 ( 570) [002] ...1 1034723.492063: tracing_mark_write: E|570
atrace-27096 (27096) [002] ...1 1034723.492109: tracing_mark_write: E|27096
atrace-27096 (27096) [002] ...1 1034723.492114: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [002] ...1 1034723.492153: tracing_mark_write: E|27096
atrace-27096 (27096) [002] ...1 1034723.492164: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
vibrator@1.2-s-793 ( 793) [005] ...1 1034723.492188: tracing_mark_write: E|793
hwservicemanag-570 ( 570) [000] ...1 1034723.492199: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
vr@1.0-service-802 ( 802) [006] ...1 1034723.492259: tracing_mark_write: B|802|HIDL::IBase::notifySyspropsChanged::server
hwservicemanag-570 ( 570) [000] ...1 1034723.492305: tracing_mark_write: E|570
atrace-27096 (27096) [000] ...1 1034723.492351: tracing_mark_write: E|27096
atrace-27096 (27096) [000] ...1 1034723.492357: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [000] ...1 1034723.492398: tracing_mark_write: E|27096
atrace-27096 (27096) [000] ...1 1034723.492410: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
hwservicemanag-570 ( 570) [002] ...1 1034723.492444: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
esed-813 ( 813) [005] ...1 1034723.492495: tracing_mark_write: B|813|HIDL::IBase::notifySyspropsChanged::server
vr@1.0-service-802 ( 802) [006] ...1 1034723.492522: tracing_mark_write: E|802
hwservicemanag-570 ( 570) [002] ...1 1034723.492560: tracing_mark_write: E|570
atrace-27096 (27096) [006] ...1 1034723.492732: tracing_mark_write: E|27096
esed-813 ( 813) [005] ...1 1034723.492732: tracing_mark_write: E|813
atrace-27096 (27096) [006] ...1 1034723.492739: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [006] ...1 1034723.492797: tracing_mark_write: E|27096
atrace-27096 (27096) [006] ...1 1034723.492814: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
offload@1.0-se-807 ( 807) [004] ...1 1034723.492845: tracing_mark_write: B|807|HIDL::IBase::notifySyspropsChanged::server
hwservicemanag-570 ( 570) [000] ...1 1034723.492871: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
hwservicemanag-570 ( 570) [000] ...1 1034723.492961: tracing_mark_write: E|570
offload@1.0-se-807 ( 807) [004] ...1 1034723.493007: tracing_mark_write: E|807
atrace-27096 (27096) [000] ...1 1034723.493017: tracing_mark_write: E|27096
atrace-27096 (27096) [000] ...1 1034723.493023: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [000] ...1 1034723.493059: tracing_mark_write: E|27096
atrace-27096 (27096) [000] ...1 1034723.493071: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
hwservicemanag-570 ( 570) [002] ...1 1034723.493107: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
android.hardwa-812 ( 812) [006] ...1 1034723.493116: tracing_mark_write: B|812|HIDL::IBase::notifySyspropsChanged::server
hwservicemanag-570 ( 570) [002] ...1 1034723.493191: tracing_mark_write: E|570
atrace-27096 (27096) [002] ...1 1034723.493253: tracing_mark_write: E|27096
atrace-27096 (27096) [002] ...1 1034723.493259: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [002] ...1 1034723.493274: tracing_mark_write: E|27096
atrace-27096 (27096) [002] ...1 1034723.493286: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
android.hardwa-812 ( 812) [006] ...1 1034723.493299: tracing_mark_write: E|812
hwservicemanag-570 ( 570) [000] ...1 1034723.493321: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
android.hardwa-812 ( 812) [006] ...1 1034723.493334: tracing_mark_write: B|812|HIDL::IBase::notifySyspropsChanged::server
android.hardwa-812 ( 812) [006] ...1 1034723.493398: tracing_mark_write: E|812
hwservicemanag-570 ( 570) [000] ...1 1034723.493408: tracing_mark_write: E|570
atrace-27096 (27096) [000] ...1 1034723.493454: tracing_mark_write: E|27096
atrace-27096 (27096) [000] ...1 1034723.493460: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [000] ...1 1034723.493483: tracing_mark_write: E|27096
atrace-27096 (27096) [000] ...1 1034723.493494: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
android.hardwa-812 ( 812) [006] ...1 1034723.493504: tracing_mark_write: B|812|HIDL::IBase::notifySyspropsChanged::server
hwservicemanag-570 ( 570) [002] ...1 1034723.493528: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
android.hardwa-812 ( 812) [006] ...1 1034723.493570: tracing_mark_write: E|812
hwservicemanag-570 ( 570) [002] ...1 1034723.493630: tracing_mark_write: E|570
atrace-27096 (27096) [002] ...1 1034723.493681: tracing_mark_write: E|27096
atrace-27096 (27096) [002] ...1 1034723.493687: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [002] ...1 1034723.493730: tracing_mark_write: E|27096
atrace-27096 (27096) [002] ...1 1034723.493743: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
allocator@1.0--731 ( 731) [005] ...1 1034723.493772: tracing_mark_write: B|731|HIDL::IBase::notifySyspropsChanged::server
hwservicemanag-570 ( 570) [000] ...1 1034723.493778: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
hwservicemanag-570 ( 570) [000] ...1 1034723.493865: tracing_mark_write: E|570
allocator@1.0--731 ( 731) [005] ...1 1034723.493901: tracing_mark_write: E|731
atrace-27096 (27096) [000] ...1 1034723.493911: tracing_mark_write: E|27096
atrace-27096 (27096) [000] ...1 1034723.493916: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [000] ...1 1034723.493956: tracing_mark_write: E|27096
atrace-27096 (27096) [000] ...1 1034723.493969: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
hwservicemanag-570 ( 570) [002] ...1 1034723.494004: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
hwservicemanag-570 ( 570) [002] ...1 1034723.494089: tracing_mark_write: E|570
atrace-27096 (27096) [002] ...1 1034723.494139: tracing_mark_write: E|27096
atrace-27096 (27096) [002] ...1 1034723.494144: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [002] ...1 1034723.494168: tracing_mark_write: E|27096
atrace-27096 (27096) [002] ...1 1034723.494180: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
allocator@1.0--731 ( 731) [005] ...1 1034723.494188: tracing_mark_write: B|731|HIDL::IBase::notifySyspropsChanged::server
hwservicemanag-570 ( 570) [000] ...1 1034723.494215: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
allocator@1.0--731 ( 731) [005] ...1 1034723.494241: tracing_mark_write: E|731
hwservicemanag-570 ( 570) [000] ...1 1034723.494300: tracing_mark_write: E|570
atrace-27096 (27096) [000] ...1 1034723.494353: tracing_mark_write: E|27096
atrace-27096 (27096) [000] ...1 1034723.494359: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [000] ...1 1034723.494398: tracing_mark_write: E|27096
atrace-27096 (27096) [000] ...1 1034723.494410: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
healthd-729 ( 729) [002] ...1 1034723.494434: tracing_mark_write: B|729|HIDL::IBase::notifySyspropsChanged::server
hwservicemanag-570 ( 570) [000] ...1 1034723.494450: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
healthd-729 ( 729) [002] ...1 1034723.494492: tracing_mark_write: E|729
hwservicemanag-570 ( 570) [000] ...1 1034723.494533: tracing_mark_write: E|570
atrace-27096 (27096) [005] ...1 1034723.494595: tracing_mark_write: E|27096
atrace-27096 (27096) [005] ...1 1034723.494603: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [005] ...1 1034723.494654: tracing_mark_write: E|27096
atrace-27096 (27096) [005] ...1 1034723.494670: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
HwBinder:741_4-23194 ( 741) [006] ...1 1034723.494678: tracing_mark_write: B|741|HIDL::IBase::notifySyspropsChanged::server
hwservicemanag-570 ( 570) [000] ...1 1034723.494713: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
HwBinder:741_4-23194 ( 741) [006] ...1 1034723.494764: tracing_mark_write: E|741
hwservicemanag-570 ( 570) [000] ...1 1034723.494795: tracing_mark_write: E|570
atrace-27096 (27096) [000] ...1 1034723.494850: tracing_mark_write: E|27096
atrace-27096 (27096) [000] ...1 1034723.494857: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [000] ...1 1034723.494899: tracing_mark_write: E|27096
atrace-27096 (27096) [000] ...1 1034723.494911: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
hwservicemanag-570 ( 570) [002] ...1 1034723.494947: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
HwBinder:890_1-946 ( 890) [005] ...1 1034723.494972: tracing_mark_write: B|890|HIDL::IBase::notifySyspropsChanged::server
hwservicemanag-570 ( 570) [002] ...1 1034723.495033: tracing_mark_write: E|570
atrace-27096 (27096) [002] ...1 1034723.495080: tracing_mark_write: E|27096
atrace-27096 (27096) [002] ...1 1034723.495086: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [002] ...1 1034723.495113: tracing_mark_write: E|27096
atrace-27096 (27096) [002] ...1 1034723.495125: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
HwBinder:890_1-946 ( 890) [005] ...1 1034723.495134: tracing_mark_write: E|890
HwBinder:1151_-1194 ( 1151) [007] ...1 1034723.495155: tracing_mark_write: B|1151|HIDL::IBase::notifySyspropsChanged::server
hwservicemanag-570 ( 570) [000] ...1 1034723.495160: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
hwservicemanag-570 ( 570) [000] ...1 1034723.495247: tracing_mark_write: E|570
atrace-27096 (27096) [000] ...1 1034723.495293: tracing_mark_write: E|27096
atrace-27096 (27096) [000] ...1 1034723.495298: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [000] ...1 1034723.495325: tracing_mark_write: E|27096
atrace-27096 (27096) [000] ...1 1034723.495337: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
neuralnetworks-756 ( 756) [005] ...1 1034723.495360: tracing_mark_write: B|756|HIDL::IBase::notifySyspropsChanged::server
hwservicemanag-570 ( 570) [002] ...1 1034723.495370: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
neuralnetworks-756 ( 756) [005] ...1 1034723.495446: tracing_mark_write: E|756
hwservicemanag-570 ( 570) [002] ...1 1034723.495466: tracing_mark_write: E|570
atrace-27096 (27096) [002] ...1 1034723.495512: tracing_mark_write: E|27096
atrace-27096 (27096) [002] ...1 1034723.495518: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [002] ...1 1034723.495543: tracing_mark_write: E|27096
atrace-27096 (27096) [002] ...1 1034723.495555: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
rild-917 ( 917) [005] ...1 1034723.495575: tracing_mark_write: B|917|HIDL::IBase::notifySyspropsChanged::server
hwservicemanag-570 ( 570) [000] ...1 1034723.495590: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
rild-917 ( 917) [005] ...1 1034723.495655: tracing_mark_write: E|917
hwservicemanag-570 ( 570) [000] ...1 1034723.495674: tracing_mark_write: E|570
atrace-27096 (27096) [000] ...1 1034723.495722: tracing_mark_write: E|27096
atrace-27096 (27096) [000] ...1 1034723.495727: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [000] ...1 1034723.495752: tracing_mark_write: E|27096
atrace-27096 (27096) [000] ...1 1034723.495764: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
provider@2.4-s-736 ( 736) [005] ...1 1034723.495793: tracing_mark_write: B|736|HIDL::IBase::notifySyspropsChanged::server
hwservicemanag-570 ( 570) [002] ...1 1034723.495797: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
hwservicemanag-570 ( 570) [002] ...1 1034723.495900: tracing_mark_write: E|570
provider@2.4-s-736 ( 736) [005] ...1 1034723.495904: tracing_mark_write: E|736
HwBinder:1151_-1194 ( 1151) [007] ...1 1034723.495939: tracing_mark_write: E|1151
atrace-27096 (27096) [005] ...1 1034723.495978: tracing_mark_write: E|27096
atrace-27096 (27096) [005] ...1 1034723.495985: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
rild-917 ( 917) [005] ...1 1034723.496033: tracing_mark_write: B|917|HIDL::IBase::notifySyspropsChanged::server
rild-917 ( 917) [005] ...1 1034723.496112: tracing_mark_write: E|917
atrace-27096 (27096) [005] ...1 1034723.496143: tracing_mark_write: E|27096
atrace-27096 (27096) [005] ...1 1034723.496161: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
hwservicemanag-570 ( 570) [000] ...1 1034723.496281: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
hwservicemanag-570 ( 570) [000] ...1 1034723.496478: tracing_mark_write: E|570
atrace-27096 (27096) [000] ...1 1034723.496574: tracing_mark_write: E|27096
atrace-27096 (27096) [000] ...1 1034723.496584: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [000] ...1 1034723.496619: tracing_mark_write: E|27096
rild-917 ( 917) [005] ...1 1034723.496637: tracing_mark_write: B|917|HIDL::IBase::notifySyspropsChanged::server
atrace-27096 (27096) [000] ...1 1034723.496638: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
hwservicemanag-570 ( 570) [001] ...1 1034723.496693: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
rild-917 ( 917) [005] ...1 1034723.496714: tracing_mark_write: E|917
hwservicemanag-570 ( 570) [001] ...1 1034723.496819: tracing_mark_write: E|570
atrace-27096 (27096) [001] ...1 1034723.496917: tracing_mark_write: E|27096
atrace-27096 (27096) [001] ...1 1034723.496926: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [001] ...1 1034723.497001: tracing_mark_write: E|27096
atrace-27096 (27096) [001] ...1 1034723.497022: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
HwBinder:732_1-767 ( 732) [002] ...1 1034723.497033: tracing_mark_write: B|732|HIDL::IBase::notifySyspropsChanged::server
hwservicemanag-570 ( 570) [001] ...1 1034723.497070: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
HwBinder:732_1-767 ( 732) [002] ...1 1034723.497095: tracing_mark_write: E|732
hwservicemanag-570 ( 570) [001] ...1 1034723.497151: tracing_mark_write: E|570
atrace-27096 (27096) [005] ...1 1034723.497210: tracing_mark_write: E|27096
atrace-27096 (27096) [005] ...1 1034723.497217: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [005] ...1 1034723.497262: tracing_mark_write: E|27096
atrace-27096 (27096) [005] ...1 1034723.497277: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
HwBinder:740_2-23191 ( 740) [006] ...1 1034723.497292: tracing_mark_write: B|740|HIDL::IBase::notifySyspropsChanged::server
hwservicemanag-570 ( 570) [000] ...1 1034723.497329: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
HwBinder:740_2-23191 ( 740) [006] ...1 1034723.497394: tracing_mark_write: E|740
hwservicemanag-570 ( 570) [000] ...1 1034723.497446: tracing_mark_write: E|570
atrace-27096 (27096) [000] ...1 1034723.497501: tracing_mark_write: E|27096
atrace-27096 (27096) [000] ...1 1034723.497508: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [000] ...1 1034723.497533: tracing_mark_write: E|27096
hwservicemanag-570 ( 570) [001] ...1 1034723.497543: tracing_mark_write: B|570|HIDL::IBase::notifySyspropsChanged::server
atrace-27096 (27096) [000] ...1 1034723.497545: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
hwservicemanag-570 ( 570) [001] ...1 1034723.500417: tracing_mark_write: E|570
hwservicemanag-570 ( 570) [001] ...1 1034723.500433: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
hwservicemanag-570 ( 570) [001] ...1 1034723.500545: tracing_mark_write: E|570
atrace-27096 (27096) [001] ...1 1034723.500591: tracing_mark_write: E|27096
atrace-27096 (27096) [001] ...1 1034723.500596: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [001] ...1 1034723.500619: tracing_mark_write: E|27096
hwservicemanag-570 ( 570) [000] ...1 1034723.500629: tracing_mark_write: B|570|HIDL::IBase::notifySyspropsChanged::server
atrace-27096 (27096) [001] ...1 1034723.500631: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
hwservicemanag-570 ( 570) [000] ...1 1034723.503454: tracing_mark_write: E|570
hwservicemanag-570 ( 570) [000] ...1 1034723.503470: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
hwservicemanag-570 ( 570) [000] ...1 1034723.503572: tracing_mark_write: E|570
atrace-27096 (27096) [005] ...1 1034723.503623: tracing_mark_write: E|27096
atrace-27096 (27096) [005] ...1 1034723.503629: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [005] ...1 1034723.503659: tracing_mark_write: E|27096
atrace-27096 (27096) [005] ...1 1034723.503672: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
hwservicemanag-570 ( 570) [001] ...1 1034723.503679: tracing_mark_write: B|570|HIDL::IBase::notifySyspropsChanged::server
hwservicemanag-570 ( 570) [001] ...1 1034723.506461: tracing_mark_write: E|570
hwservicemanag-570 ( 570) [001] ...1 1034723.506479: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
hwservicemanag-570 ( 570) [001] ...1 1034723.506597: tracing_mark_write: E|570
HwBinder:778_1-1087 ( 778) [000] ...1 1034723.506605: tracing_mark_write: E|778
atrace-27096 (27096) [004] ...1 1034723.506661: tracing_mark_write: E|27096
SensorService-1283 ( 1151) [001] ...1 1034723.506663: tracing_mark_write: E|1151
atrace-27096 (27096) [004] ...1 1034723.506670: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [004] ...1 1034723.506705: tracing_mark_write: E|27096
atrace-27096 (27096) [004] ...1 1034723.506721: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
SensorService-1283 ( 1151) [001] ...1 1034723.506725: tracing_mark_write: B|1151|HIDL::ISensors::poll::client
HwBinder:685_1-717 ( 685) [006] ...1 1034723.506739: tracing_mark_write: B|685|HIDL::IBase::notifySyspropsChanged::server
HwBinder:778_1-1087 ( 778) [000] ...1 1034723.506769: tracing_mark_write: B|778|HIDL::ISensors::poll::server
hwservicemanag-570 ( 570) [001] ...1 1034723.506776: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
HwBinder:685_1-717 ( 685) [006] ...1 1034723.506845: tracing_mark_write: E|685
hwservicemanag-570 ( 570) [001] ...1 1034723.506892: tracing_mark_write: E|570
atrace-27096 (27096) [006] ...1 1034723.506957: tracing_mark_write: E|27096
atrace-27096 (27096) [006] ...1 1034723.506964: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [006] ...1 1034723.507006: tracing_mark_write: E|27096
atrace-27096 (27096) [006] ...1 1034723.507022: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
HwBinder:904_1-997 ( 904) [007] ...1 1034723.507047: tracing_mark_write: B|904|HIDL::IBase::notifySyspropsChanged::server
hwservicemanag-570 ( 570) [000] ...1 1034723.507073: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
HwBinder:904_1-997 ( 904) [007] ...1 1034723.507127: tracing_mark_write: E|904
hwservicemanag-570 ( 570) [000] ...1 1034723.507182: tracing_mark_write: E|570
atrace-27096 (27096) [007] ...1 1034723.507253: tracing_mark_write: E|27096
atrace-27096 (27096) [007] ...1 1034723.507262: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [007] ...1 1034723.507301: tracing_mark_write: E|27096
rild-917 ( 917) [004] ...1 1034723.507317: tracing_mark_write: B|917|HIDL::IBase::notifySyspropsChanged::server
atrace-27096 (27096) [007] ...1 1034723.507318: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
hwservicemanag-570 ( 570) [003] ...1 1034723.507371: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
rild-917 ( 917) [004] ...1 1034723.507398: tracing_mark_write: E|917
hwservicemanag-570 ( 570) [003] ...1 1034723.507481: tracing_mark_write: E|570
atrace-27096 (27096) [003] ...1 1034723.507546: tracing_mark_write: E|27096
atrace-27096 (27096) [003] ...1 1034723.507553: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [003] ...1 1034723.507581: tracing_mark_write: E|27096
atrace-27096 (27096) [003] ...1 1034723.507595: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
rild-917 ( 917) [004] ...1 1034723.507601: tracing_mark_write: B|917|HIDL::IBase::notifySyspropsChanged::server
hwservicemanag-570 ( 570) [000] ...1 1034723.507631: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
rild-917 ( 917) [004] ...1 1034723.507674: tracing_mark_write: E|917
hwservicemanag-570 ( 570) [000] ...1 1034723.507745: tracing_mark_write: E|570
atrace-27096 (27096) [004] ...1 1034723.507807: tracing_mark_write: E|27096
atrace-27096 (27096) [004] ...1 1034723.507816: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [004] ...1 1034723.507852: tracing_mark_write: E|27096
rild-917 ( 917) [006] ...1 1034723.507867: tracing_mark_write: B|917|HIDL::IBase::notifySyspropsChanged::server
atrace-27096 (27096) [004] ...1 1034723.507869: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
hwservicemanag-570 ( 570) [003] ...1 1034723.507916: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
rild-917 ( 917) [006] ...1 1034723.507950: tracing_mark_write: E|917
hwservicemanag-570 ( 570) [003] ...1 1034723.508010: tracing_mark_write: E|570
atrace-27096 (27096) [003] ...1 1034723.508066: tracing_mark_write: E|27096
atrace-27096 (27096) [003] ...1 1034723.508072: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [003] ...1 1034723.508100: tracing_mark_write: E|27096
atrace-27096 (27096) [003] ...1 1034723.508111: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
HwBinder:890_1-946 ( 890) [006] ...1 1034723.508130: tracing_mark_write: B|890|HIDL::IBase::notifySyspropsChanged::server
hwservicemanag-570 ( 570) [000] ...1 1034723.508145: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
HwBinder:890_1-946 ( 890) [006] ...1 1034723.508215: tracing_mark_write: E|890
hwservicemanag-570 ( 570) [000] ...1 1034723.508232: tracing_mark_write: E|570
atrace-27096 (27096) [006] ...1 1034723.508313: tracing_mark_write: E|27096
atrace-27096 (27096) [006] ...1 1034723.508321: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [006] ...1 1034723.508353: tracing_mark_write: E|27096
atrace-27096 (27096) [006] ...1 1034723.508368: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
HwBinder:890_1-946 ( 890) [004] ...1 1034723.508368: tracing_mark_write: B|890|HIDL::IBase::notifySyspropsChanged::server
hwservicemanag-570 ( 570) [003] ...1 1034723.508415: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
HwBinder:890_1-946 ( 890) [004] ...1 1034723.508448: tracing_mark_write: E|890
hwservicemanag-570 ( 570) [003] ...1 1034723.508507: tracing_mark_write: E|570
atrace-27096 (27096) [003] ...1 1034723.508563: tracing_mark_write: E|27096
atrace-27096 (27096) [003] ...1 1034723.508569: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [003] ...1 1034723.508598: tracing_mark_write: E|27096
atrace-27096 (27096) [003] ...1 1034723.508610: tracing_mark_write: B|27096|HIDL::IServiceManager::get::client
hwservicemanag-570 ( 570) [003] ...1 1034723.508650: tracing_mark_write: B|570|HIDL::IServiceManager::get::server
hwservicemanag-570 ( 570) [003] ...1 1034723.508740: tracing_mark_write: E|570
atrace-27096 (27096) [004] ...1 1034723.508800: tracing_mark_write: E|27096
atrace-27096 (27096) [004] ...1 1034723.508808: tracing_mark_write: B|27096|HIDL::IBase::notifySyspropsChanged::client
atrace-27096 (27096) [004] ...1 1034723.508848: tracing_mark_write: E|27096
atrace-27096 (27096) [004] ...1 1034723.508862: tracing_mark_write: E|27096
rild-917 ( 917) [006] ...1 1034723.508863: tracing_mark_write: B|917|HIDL::IBase::notifySyspropsChanged::server
rild-917 ( 917) [006] ...1 1034723.508939: tracing_mark_write: E|917
</script>
<script class="trace-data" type="application/text">
{"traceEvents": [{"category": "process_argv", "name": "process_argv", "args": {"argv": ["/tmp/sar.systrace_sh.sar.0.9CzsyqQ9sZ/systrace_sh.runfiles/google3/third_party/java/android/android_sdk_linux/platforms/experimental/build-tools/systrace/systrace.py", "-e", "FA7BN1A03755", "-o", "/var/www/mh_lab_gen_files/c5d48edf-3a6f-4f85-8d5d-476a33a7834b/test_83e62778-66cb-4be0-94b2-c991ec74574e/systrace.html", "nnapi", "hal", "--app=com.google.android.testing.mlts.benchmark.mobileiq", "-b", "131072"]}, "pid": 102360, "ts": 12743874060593.143, "tid": 139948335695616, "ph": "M"}, {"category": "python", "name": "clock_sync", "args": {"issue_ts": 12743897028173.988, "sync_id": "ed6e2e24-98d1-4b4b-83d2-7509d113d490"}, "pid": 102360, "ts": 12743897032380.14, "tid": 139948390774592, "ph": "c"}], "metadata": {"clock-domain": "SYSTRACE"}} </script>
<!-- END TRACE -->
</body>
</html>