blob: 4c467e245b67bfd6a36292a39f170338909ebc6e [file] [log] [blame]
<style>
.labeled-checkbox {
display: flex;
white-space: nowrap;
}
</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;
}
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;
}
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>&#x2715</close-button>
</title-bar>
<overlay-content>
<content></content>
</overlay-content>
<button-bar></button-bar>
</overlay-frame>
</overlay-vertical-centering-container>
</overlay-mask>
</template>
<style>
x-drag-handle{-webkit-user-select:none;box-sizing:border-box;display:block}x-drag-handle.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;height:7px;position:relative;z-index:10}x-drag-handle.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;position:relative;width:7px;z-index:10}
</style>
<polymer-element name="tracing-analysis-tab-view" constructor="TracingAnalysisTabView">
<template>
<style>
:host {
display: flex;
flex-flow: column nowrap;
overflow: hidden;
box-sizing: border-box;
}
tab-strip[tabs-hidden] {
display: none;
}
tab-strip {
background-color: rgb(236, 236, 236);
border-bottom: 1px solid #8e8e8e;
display: flex;
flex: 0 0 auto;
flex-flow: row;
overflow-x: auto;
padding: 0 10px 0 10px;
font-size: 12px;
}
tab-button {
display: block;
flex: 0 0 auto;
padding: 4px 15px 1px 15px;
margin-top: 2px;
}
tab-button[selected=true] {
background-color: white;
border: 1px solid rgb(163, 163, 163);
border-bottom: none;
padding: 3px 14px 1px 14px;
}
tabs-content-container {
display: flex;
flex: 1 1 auto;
overflow: auto;
width: 100%;
}
::content > * {
flex: 1 1 auto;
}
::content > *:not([selected]) {
display: none;
}
button-label {
display: inline;
}
</style>
<tab-strip>
<template repeat="{{tab in tabs_}}">
<tab-button button-id="{{ tab.id }}" on-click="{{ tabButtonSelectHandler_ }}" selected="{{ selectedTab_.id === tab.id }}">
<button-label>{{ tab.label ? tab.label : 'No Label'}}</button-label>
</tab-button>
</template>
</tab-strip>
<tabs-content-container id="content-container">
<content></content>
</tabs-content-container>
</template>
</polymer-element>
<polymer-element name="tracing-analysis-sub-view" constructor="TracingAnalysisSubView">
</polymer-element>
<polymer-element name="tv-c-a-time-span">
<template>
<style>
:host {
display: flex;
flex-direction: row;
align-items: center;
}
#warning {
margin-left: 4px;
font-size: 66%;
}
</style>
<span id="content"></span>
<span id="warning" style="display:none">&#9888;</span>
</template>
</polymer-element>
<polymer-element name="tv-c-a-time-stamp">
<template>
</template>
</polymer-element>
<polymer-element name="tv-c-analysis-link" is="a">
<template>
<style>
:host {
display: inline;
color: -webkit-link;
cursor: pointer;
text-decoration: underline;
/* TODO(nduca): Whitespace is forced to normal here because the
analysis_results.css forces everything under it to pre. This is insane.
When that horrible evil class dies, then we can rip this white-space
restriction out.
*/
white-space: normal;
cursor: pointer;
}
</style>
<content></content>
</template>
</polymer-element>
<polymer-element name="tv-c-analysis-generic-object-view" is="HTMLUnknownElement">
<template>
<style>
:host {
display: block;
font-family: monospace;
}
</style>
</template>
</polymer-element>
<polymer-element name="tv-c-analysis-generic-object-view-with-label" is="HTMLUnknownElement">
<template>
<style>
:host {
display: block;
}
</style>
</template>
</polymer-element>
<polymer-element name="tv-c-a-stack-frame">
<template>
<style>
:host {
display: flex;
flex-direction: row;
align-items: center;
}
</style>
<tv-c-analysis-generic-object-view id="ov">
</tv-c-analysis-generic-object-view>
</template>
</polymer-element>
<polymer-element name="tracing-analysis-toggle-container" constructor="TracingAnalysisToggleContainer">
<template>
<style>
:host(:[visible]) {
display: flex;
}
:host(:not([visible])) {
display: none;
}
::content > * {
flex: 0 1 auto;
}
</style>
<content></content>
</template>
</polymer-element>
<polymer-element name="tracing-analysis-nested-table">
<template>
<style>
:host {
display: flex;
flex-direction: column;
}
table {
font-size: 12px;
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: text-top;
}
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;
}
table > tbody > tr:hover,
table > tfoot > tr:hover {
background-color: #e6e6e6
}
table > tbody.has-footer > tr:last-child > td {
border-bottom: 1px solid #aaa;
}
table > tfoot > tr:first-child > td {
border-top: 1px solid #ffffff;
}
expand-button {
-webkit-user-select: none;
display: inline-block;
cursor: pointer;
font-size: 9px;
min-width: 8px;
max-width: 8px;
}
.button-expanded {
transform: rotate(90deg);
}
</style>
<table>
<thead id="head">
</thead>
<tbody id="body">
</tbody>
<tfoot id="foot">
</tfoot>
</table>
</template>
</polymer-element>
<polymer-element name="tracing-analysis-header-cell" constructor="TracingAnalysisHeaderCell" on-tap="onTap_">
<template>
<style>
:host {
-webkit-user-select: none;
display: flex;
}
span {
flex: 0 1 auto;
}
side-element {
-webkit-user-select: none;
flex: 1 0 auto;
padding-left: 4px;
vertical-align: top;
font-size: 15px;
font-family: sans-serif;
display: inline;
line-height: 85%;
}
</style>
<span>{{ cellTitle_ }}</span><side-element id="side"></side-element>
</template>
</polymer-element>
<style>
.sortable-table>thead>tr>td{cursor:pointer!important}
</style>
<polymer-element name="tv-c-single-slice-sub-view" extends="tracing-analysis-sub-view">
<template>
<style>
:host {
display: flex;
flex-direction: column;
}
#table {
font-family: monospace;
flex: 1 1 auto;
align-self: stretch;
}
</style>
<tracing-analysis-nested-table id="table">
</tracing-analysis-nested-table>
</template>
</polymer-element>
<style>
.analysis-header{font-weight:bold}.analysis-results{font-family:monospace;white-space:pre}.analysis-results *{-webkit-user-select:text!important;cursor:text}.analysis-table{border-collapse:collapse;border-width:0;margin-bottom:25px;width:100%}.analysis-table tr>td:first-child{padding-left:2px}.analysis-table tr>td{padding:2px 4px 2px 4px;vertical-align:text-top;width:150px}.analysis-table td td{padding:0;width:auto}.analysis-table-header{text-align:left}.analysis-table-row{vertical-align:top}.analysis-table-row:nth-child(2n+0){background-color:#e2e2e2}.analysis-table-row-inverted:nth-child(2n+1){background-color:#e2e2e2}.selection-changing-link{color:-webkit-link;cursor:pointer;text-decoration:underline}.analysis-table thead{background-color:#e2e2e2;font-weight:bold}.analysis-table tfoot{font-weight:bold}
</style>
<polymer-element name="tv-c-multi-slice-sub-view" extends="tracing-analysis-sub-view">
<template>
<style>
:host {
display: flex;
}
#content {
flex: 1 1 auto;
}
</style>
<div id="content"></div>
</template>
</polymer-element>
<polymer-element name="tv-c-a-selection-summary-table">
<template>
<style>
:host {
display: flex;
}
#table {
flex: 1 1 auto;
align-self: stretch;
}
</style>
<tracing-analysis-nested-table id="table">
</tracing-analysis-nested-table>
</template>
</polymer-element>
<polymer-element name="tv-c-a-multi-event-summary-table">
<template>
<style>
:host {
display: flex;
}
#table {
flex: 1 1 auto;
align-self: stretch;
}
</style>
<tracing-analysis-nested-table id="table">
</tracing-analysis-nested-table>
</template>
</polymer-element>
<polymer-element name="tv-c-a-multi-event-details-table">
<template>
<style>
:host {
display: flex;
flex-direction: column;
}
#table {
flex: 1 1 auto;
align-self: stretch;
}
#titletable {
font-weight: bold;
}
#title-info {
font-size: 12px;
}
</style>
<tracing-analysis-nested-table id="titletable">
</tracing-analysis-nested-table>
<tracing-analysis-nested-table id="table">
</tracing-analysis-nested-table>
</template>
</polymer-element>
<polymer-element name="tv-c-a-multi-event-sub-view" extends="tracing-analysis-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;
}
tv-c-a-multi-event-summary-table {
border-bottom: 1px solid #aaa;
}
tv-c-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"></div>
</template>
</polymer-element>
<polymer-element name="tv-c-single-thread-time-slice-sub-view" extends="tracing-analysis-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>
<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 id="start"></td>
</tr>
<tr>
<td>Duration:</td><td id="duration"></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>
</table>
</template>
</polymer-element>
<polymer-element name="tv-c-single-cpu-slice-sub-view" extends="tracing-analysis-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>
<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 id="start"></td>
</tr>
<tr>
<td>Duration:</td><td id="duration"></td>
</tr>
<tr>
<td>Active slices:</td><td id="running-thread"></td>
</tr>
</table>
</template>
</polymer-element>
<polymer-element name="tv-c-single-instant-event-sub-view" extends="tracing-analysis-sub-view">
<template>
<style>
:host {
display: block;
}
</style>
<div id="content"></div>
</template>
</polymer-element>
<polymer-element name="tv-c-multi-instant-event-sub-view" extends="tracing-analysis-sub-view">
<template>
<style>
:host {
display: block;
}
</style>
<div id="content"></div>
</template>
</polymer-element>
<polymer-element name="tv-c-counter-sample-sub-view" extends="tracing-analysis-sub-view">
</polymer-element>
<polymer-element name="tv-c-single-flow-event-sub-view" extends="tracing-analysis-sub-view">
<template>
<style>
:host {
display: block;
}
</style>
<div id="content"></div>
</template>
</polymer-element>
<polymer-element name="tv-c-multi-flow-event-sub-view" extends="tracing-analysis-sub-view">
<template>
<style>
:host {
display: block;
}
</style>
<div id="content"></div>
</template>
</polymer-element>
<polymer-element name="tv-c-single-object-instance-sub-view" extends="tracing-analysis-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>
</polymer-element>
<polymer-element name="tv-c-single-object-snapshot-sub-view" extends="tracing-analysis-sub-view">
<template>
<style>
#args {
white-space: pre;
}
:host {
overflow: auto;
display: flex;
}
* {
-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>
<content></content>
</template>
</polymer-element>
<polymer-element name="tv-c-multi-object-sub-view" extends="tracing-analysis-sub-view">
</polymer-element>
<polymer-element name="tv-c-single-sample-sub-view" extends="tracing-analysis-sub-view">
</polymer-element>
<polymer-element name="tv-c-multi-sample-sub-view" extends="tracing-analysis-sub-view">
<template>
<style>
:host {
display: block;
}
</style>
<div id="content"></div>
</template>
</polymer-element>
<polymer-element name="tv-c-single-interaction-record-sub-view" extends="tracing-analysis-sub-view">
</polymer-element>
<polymer-element name="tv-c-multi-interaction-record-sub-view" extends="tracing-analysis-sub-view">
</polymer-element>
<polymer-element name="tv-c-single-alert-sub-view" extends="tracing-analysis-sub-view">
</polymer-element>
<polymer-element name="tv-c-multi-alert-sub-view" extends="tracing-analysis-sub-view">
</polymer-element>
<polymer-element name="tv-c-single-global-memory-dump-sub-view" extends="tracing-analysis-sub-view">
</polymer-element>
<polymer-element name="tv-c-multi-global-memory-dump-sub-view" extends="tracing-analysis-sub-view">
</polymer-element>
<polymer-element name="tracing-analysis-view" constructor="TracingAnalysisView">
<template>
<style>
:host {
background-color: white;
display: flex;
flex-direction: column;
height: 275px;
overflow: auto;
}
:host(.tall-mode) {
height: 525px;
}
::content > * {
flex: 1 0 auto;
}
</style>
<content></content>
</template>
</polymer-element>
<style>
.mouse-mode-selector{-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}.mouse-mode-icon{background-image:url(data:image/png;base64,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)}.mouse-mode-selector .drag-handle{background:url(data:image/png;base64,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) 2px 3px no-repeat;background-repeat:no-repeat;border-bottom:1px solid #bcbcbc;cursor:move;display:block;height:13px;width:27px}.mouse-mode-selector .pan-scan-mode-button{background-image:url(data:image/png;base64,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);background-position:0 -10px}.mouse-mode-selector .pan-scan-mode-button.active{background-position:-30px -10px}.mouse-mode-selector .selection-mode-button{background-image:url(data:image/png;base64,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);background-position:0 -40px}.mouse-mode-selector .selection-mode-button.active{background-position:-30px -40px}.mouse-mode-selector .zoom-mode-button{background-image:url(data:image/png;base64,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);background-position:0 -70px}.mouse-mode-selector .zoom-mode-button.active{background-position:-30px -70px}.mouse-mode-selector .timing-mode-button{background-image:url(data:image/png;base64,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);background-position:0 -100px;border-bottom:0}.mouse-mode-selector .timing-mode-button.active{background-position:-30px -100px}.mouse-mode-selector .rotate-mode-button{background-image:url(data:image/png;base64,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);background-position:0 -130px;border-bottom:0}.mouse-mode-selector .rotate-mode-button.active{background-position:-30px -130px}
</style>
<style>
.tool-button{background-position:center center;background-repeat:no-repeat;border-bottom:1px solid #bcbcbc;border-top:1px solid #f1f1f1;cursor:pointer;height:30px}.tool-button.active{cursor:auto}
</style>
<template id="mouse-mode-selector-template">
<div class="drag-handle"></div>
<div class="buttons">
</div>
</template>
<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>
.drawing-container{-webkit-box-flex:1;display:inline;overflow:auto;position:relative}.drawing-container-canvas{-webkit-box-flex:1;display:block;pointer-events:none;position:absolute;top:0}
</style>
<style>
.heading-track{-webkit-box-align:stretch;-webkit-box-orient:horizontal;display:-webkit-box;margin:0;padding:0 5px 0 0}.heading-track>heading{-webkit-box-sizing:border-box;background-color:#f3f5f7;border-right:1px solid #8e8e8e;box-sizing:border-box;display:-webkit-flex;-webkit-flex-direction:row;align-items:center;overflow-x:hidden;padding-right:5px;text-align:left;text-overflow:ellipsis;white-space:nowrap}.heading-track>heading>.heading-arrow{-webkit-flex:0 0 auto;margin-left:5px;margin-right:5px;width:8px;font-family:sans-serif}
</style>
<style>
.chart-track {
height: 30px;
position: relative;
}
</style>
<style>
.object-instance-track{height:18px}
</style>
<style>
.rect-track{height:18px}
</style>
<style>
.spacing-track{height:4px}
</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-base:not(.expanded)>.track:not(.inverse-expand){display:none}.process-track-base.expanded>.track.inverse-expand{display:none}.process-track-name:before{content:'\25B8';padding:0 5px}.process-track-base.expanded .process-track-name:before{content:'\25BE'}
</style>
<style>
.letter-dot-track {
height: 18px;
}
</style>
<style>
.model-track {
-webkit-box-flex: 1;
}
</style>
<style>
.ruler-track{height:12px}.ruler-track.tall-mode{height:30px}
</style>
<style>
body *{-webkit-user-select:none;box-sizing:border-box}
</style>
<style>
.timeline-track-view *{-webkit-user-select:none;cursor:default}.timeline-track-view .tool-button{cursor:pointer}.timeline-track-view{-webkit-box-orient:vertical;display:-webkit-box;position:relative}.model-track-container{-webkit-box-flex:1;overflow:auto}.drag-box{background-color:rgba(0,0,255,0.25);border:1px solid #000060;font-size:75%;position:fixed}.timeline-track-view>.hint-text{position:absolute;bottom:6px;right:6px;font-size:8pt}
</style>
<polymer-element name="tracing-find-control" constructor="TracingFindControl">
<template>
<style>
div.root {
-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;
height: 19px;
margin-bottom: 1px;
margin-left: 0;
margin-right: 0;
margin-top: 1px;
padding: 0;
width: 170px;
}
input:focus {
background-color: white;
}
.button {
background-color: #f8f8f8;
border: 1px solid rgba(0, 0, 0, 0.5);
border-left: none;
font-size: 14px;
height: 17px;
margin-left: 0;
margin-top: 1px;
}
.button :first-of-type {
margin-right: 0;
}
#hitCount {
height: 19px;
left: 0;
opacity: 0.25;
pointer-events: none;
position: absolute;
text-align: right;
top: 2px;
width: 170px;
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%;
animation: spin 1s linear infinite;
}
@keyframes spin { 100% { transform: rotate(360deg); } }
</style>
<div class="root">
<input type="text" id="filter" on-input="{{ filterTextChanged }}" on-keypress="{{ filterKeyPress }}" on-keydown="{{ filterKeyDown }}" on-blur="{{ filterBlur }}" on-focus="{{ filterFocus }}" on-mouseup="{{ filterMouseUp }}" />
<div id="spinner"></div>
<div class="button" on-click="{{ findPrevious }}">&larr;</div>
<div class="button" on-click="{{ findNext }}">&rarr;</div>
<div id="hitCount">0 of 0</div>
</div>
</template>
</polymer-element>
<polymer-element name="tv-c-scripting-object">
</polymer-element>
<polymer-element name="tv-e-tquery-context">
</polymer-element>
<polymer-element name="tv-e-tquery-filter" extends="tv-c-scripting-object">
</polymer-element>
<polymer-element name="tv-e-tquery-filter-has-ancestor" extends="tv-e-tquery-filter">
</polymer-element>
<polymer-element name="tv-e-tquery-filter-has-title" extends="tv-e-tquery-filter">
</polymer-element>
<polymer-element name="tv-e-tquery" extends="tv-c-scripting-object">
</polymer-element>
<polymer-element name="tv-c-scripting-controller">
</polymer-element>
<polymer-element name="tracing-scripting-control" constructor="TracingScriptingControl">
<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;
}
#prompt {
-webkit-user-select: text;
-webkit-user-modify: read-write-plaintext-only;
text-overflow: clip !important;
text-decoration: none !important;
}
#prompt:focus {
outline: none;
}
#prompt br {
display: none;
}
#prompt ::before {
content: ">";
color: #468;
}
</style>
<div id="root" class="root hidden" tabindex="0" on-focus="{{ onConsoleFocus }}">
<div id="history"></div>
<div id="prompt" on-keypress="{{ promptKeyPress }}" on-keydown="{{ promptKeyDown }}" on-blur="{{ onConsoleBlur }}">
</div></div></template>
</polymer-element>
<polymer-element name="tv-c-side-panel">
</polymer-element>
<polymer-element name="tv-c-side-panel-container" is="HTMLUnknownElement">
<template>
<style>
:host {
align-items: stretch;
display: -webkit-flex;
}
:host[expanded] > active-panel-container {
-webkit-flex: 1 1 auto;
border-left: 1px solid black;
display: -webkit-flex;
}
:host:not([expanded]) > active-panel-container {
display: none;
}
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;
}
</style>
<active-panel-container id="active_panel_container">
</active-panel-container>
<tab-strip id="tab_strip"></tab-strip>
</template>
</polymer-element>
<style>
x-timeline-view{-webkit-flex-direction:column;cursor:default;display:-webkit-flex;font-family:sans-serif;padding:0}x-timeline-view>.control>.title{font-size:14px;height:22px;padding-left:2px;padding-right:8px;padding-top:2px;flex:1 0 auto}x-timeline-view>.control{background-color:#e6e6e6;background-image:-webkit-gradient(linear,0 0,0 100%,from(#e5e5e5),to(#d1d1d1));flex:0 0 auto;overflow-x:auto}x-timeline-view>.control>.bar{display:flex}x-timeline-view>.control::-webkit-scrollbar{height:0}x-timeline-view>.control>.bar>#right-controls{margin-left:auto}x-timeline-view>.control>#collapsing-controls{display:-webkit-flex}x-timeline-view>.control .controls{display:-webkit-flex;flex:0 0 auto}x-timeline-view>.control>.bar>span{padding-left:5px;padding-right:10px}x-timeline-view>.control>.bar>.controls button,x-timeline-view>.control>.bar>.controls label{font-size:14px;height:22px;margin:1px 2px 1px 2px}x-timeline-view>.control>.bar>.spacer{-webkit-flex:1 1 auto}x-timeline-view>middle-container{-webkit-flex:1 1 auto;-webkit-flex-direction:row;border-bottom:1px solid #8e8e8e;display:-webkit-flex;min-height:0}x-timeline-view>middle-container>track-view-container{-webkit-flex:1 1 auto;display:-webkit-flex;min-height:0;min-width:0}x-timeline-view>middle-container>track-view-container>*{-webkit-flex:1 1 auto}x-timeline-view>middle-container>x-timeline-view-side-panel-container{-webkit-flex:0 0 auto}x-timeline-view>x-drag-handle{-webkit-flex:0 0 auto}x-timeline-view>tracing-analysis-view{-webkit-flex:0 0 auto}x-timeline-view .selection{margin:2px}x-timeline-view .selection ul{margin:0}.button{background-color:#f8f8f8;border:1px solid rgba(0,0,0,0.5);color:rgba(0,0,0,0.8);font-size:14px;height:19px;margin:1px;min-width:23px;text-align:center}.button:hover{background-color:rgba(255,255,255,1.0);border:1px solid rgba(0,0,0,0.8);box-shadow:0 0 .05em rgba(0,0,0,0.4);color:rgba(0,0,0,1)}.view-info-button{padding-left:4px;padding-right:4px;width:auto}.view-info-button:hover{border:solid 1px}.metadata-dialog-text{font-family:monospace;overflow:auto;white-space:pre}.view-help-text{-webkit-flex:1 1 auto;-webkit-flex-direction:row;display:-webkit-flex;width:700px}.view-help-text .column{width:50%}.view-help-text h2{font-size:1.2em;margin:0;margin-top:5px;text-align:center}.view-help-text h3{margin:0;margin-left:126px;margin-top:10px}.view-help-text .pair{-webkit-flex:1 1 auto;-webkit-flex-direction:row;display:-webkit-flex}.view-help-text .command{font-family:monospace;margin-right:5px;text-align:right;width:150px}.view-help-text .action{font-size:.9em;text-align:left;width:200px}.view-help-text .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;height:26px;margin-right:1px;position:relative;top:4px;width:27px;zoom:.75}.view-help-text .mouse-mode-icon.pan-mode{background-position:-1px -11px}.view-help-text .mouse-mode-icon.select-mode{background-position:-1px -41px}.view-help-text .mouse-mode-icon.zoom-mode{background-position:-1px -71px}.view-help-text .mouse-mode-icon.timing-mode{background-position:-1px -101px}
</style>
<template id="timeline-view-template">
<div class="control">
<div class="bar">
<div id="left-controls" class="controls"></div>
<div class="title">^_^</div>
<div id="right-controls" class="controls"></div>
</div>
<div id="collapsing-controls" class="controls"></div>
</div>
<middle-container>
<track-view-container></track-view-container>
<tv-c-side-panel-container></tv-c-side-panel-container>
</middle-container>
<x-drag-handle></x-drag-handle>
<tracing-analysis-view id="analysis"></tracing-analysis-view>
</template>
<template id="help-btn-template">
<div class="button view-help-button">?</div>
<div class="view-help-text">
<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">&rarr;/shift-TAB</div>
<div class="action">Select previous event</div>
</div>
<div class="pair">
<div class="command">&larr;/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>
<span class="mouse-mode-icon select-mode"></span>
Select mode
</h3>
<div class="pair">
<div class="command">drag</div>
<div class="action">Box select</div>
</div>
<div class="pair">
<div class="command">double click</div>
<div class="action">Select all events with same title</div>
</div>
<h3>
<span class="mouse-mode-icon pan-mode"></span>
Pan mode
</h3>
<div class="pair">
<div class="command">drag</div>
<div class="action">Pan the view</div>
</div>
<h3>
<span class="mouse-mode-icon zoom-mode"></span>
Zoom mode
</h3>
<div class="pair">
<div class="command">drag</div>
<div class="action">Zoom in/out by dragging up/down</div>
</div>
<h3>
<span class="mouse-mode-icon timing-mode"></span>
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"><span class="mod"></span></div>
<div class="action">Hold for temporary zoom</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">`</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>
</div>
</template>
<template id="metadata-btn-template">
<div class="button view-metadata-button view-info-button">Metadata</div>
<div class="info-button-text metadata-dialog-text"></div>
</template>
<template id="console-btn-template">
<div class="button view-console-button">&#187;</div>
</template>
<style>
* /deep/ .chart-base #title {
font-size: 16pt;
}
* /deep/ .chart-base {
font-size: 12pt;
-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 xmlns="http://www.w3.org/2000/svg" id="chart-area">
</g><g class="x axis"></g>
<g class="y axis"></g>
<text id="title"></text>
</svg>
</template>
<style>
* /deep/ .line-chart .line{fill:none;stroke-width:1.5px}* /deep/ .line-chart #brushes>rect{fill:#c0c0c0}
</style>
<polymer-element name="tv-e-analysis-side-panel-alerts" extends="tv-c-side-panel">
<template>
<style>
:host {
display: block;
width: 250px;
}
#content {
flex-direction: column;
display: flex;
}
</style>
<div id="content">
<toolbar id="toolbar"></toolbar>
<result-area id="result_area"></result-area>
</div>
</template>
</polymer-element>
<script>
// Copyright (c) 2014 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.
*/
/**
* @license
* Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
* This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
* The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
* The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
* Code distributed by Google as part of the polymer project is also
* subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
*/
// @version 0.5.5
window.PolymerGestures={},function(a){var b=!1,c=document.createElement("meta");if(c.createShadowRoot){var d=c.createShadowRoot(),e=document.createElement("span");d.appendChild(e),c.addEventListener("testpath",function(a){a.path&&(b=a.path[0]===e),a.stopPropagation()});var f=new CustomEvent("testpath",{bubbles:!0});document.head.appendChild(c),e.dispatchEvent(f),c.parentNode.removeChild(c),d=e=null}c=null;var g={shadow:function(a){return a?a.shadowRoot||a.webkitShadowRoot:void 0},canTarget:function(a){return a&&Boolean(a.elementFromPoint)},targetingShadow:function(a){var b=this.shadow(a);return this.canTarget(b)?b:void 0},olderShadow:function(a){var b=a.olderShadowRoot;if(!b){var c=a.querySelector("shadow");c&&(b=c.olderShadowRoot)}return b},allShadows:function(a){for(var b=[],c=this.shadow(a);c;)b.push(c),c=this.olderShadow(c);return b},searchRoot:function(a,b,c){var d,e;return a?(d=a.elementFromPoint(b,c),d?e=this.targetingShadow(d):a!==document&&(e=this.olderShadow(a)),this.searchRoot(e,b,c)||d):void 0},owner:function(a){if(!a)return document;for(var b=a;b.parentNode;)b=b.parentNode;return b.nodeType!=Node.DOCUMENT_NODE&&b.nodeType!=Node.DOCUMENT_FRAGMENT_NODE&&(b=document),b},findTarget:function(a){if(b&&a.path&&a.path.length)return a.path[0];var c=a.clientX,d=a.clientY,e=this.owner(a.target);return e.elementFromPoint(c,d)||(e=document),this.searchRoot(e,c,d)},findTouchAction:function(a){var c;if(b&&a.path&&a.path.length){for(var d=a.path,e=0;e<d.length;e++)if(c=d[e],c.nodeType===Node.ELEMENT_NODE&&c.hasAttribute("touch-action"))return c.getAttribute("touch-action")}else for(c=a.target;c;){if(c.nodeType===Node.ELEMENT_NODE&&c.hasAttribute("touch-action"))return c.getAttribute("touch-action");c=c.parentNode||c.host}return"auto"},LCA:function(a,b){if(a===b)return a;if(a&&!b)return a;if(b&&!a)return b;if(!b&&!a)return document;if(a.contains&&a.contains(b))return a;if(b.contains&&b.contains(a))return b;var c=this.depth(a),d=this.depth(b),e=c-d;for(e>=0?a=this.walk(a,e):b=this.walk(b,-e);a&&b&&a!==b;)a=a.parentNode||a.host,b=b.parentNode||b.host;return a},walk:function(a,b){for(var c=0;a&&b>c;c++)a=a.parentNode||a.host;return a},depth:function(a){for(var b=0;a;)b++,a=a.parentNode||a.host;return b},deepContains:function(a,b){var c=this.LCA(a,b);return c===a},insideNode:function(a,b,c){var d=a.getBoundingClientRect();return d.left<=b&&b<=d.right&&d.top<=c&&c<=d.bottom},path:function(a){var c;if(b&&a.path&&a.path.length)c=a.path;else{c=[];for(var d=this.findTarget(a);d;)c.push(d),d=d.parentNode||d.host}return c}};a.targetFinding=g,a.findTarget=g.findTarget.bind(g),a.deepContains=g.deepContains.bind(g),a.insideNode=g.insideNode}(window.PolymerGestures),function(){function a(a){return"html /deep/ "+b(a)}function b(a){return'[touch-action="'+a+'"]'}function c(a){return"{ -ms-touch-action: "+a+"; touch-action: "+a+";}"}var d=["none","auto","pan-x","pan-y",{rule:"pan-x pan-y",selectors:["pan-x pan-y","pan-y pan-x"]},"manipulation"],e="",f="string"==typeof document.head.style.touchAction,g=!window.ShadowDOMPolyfill&&document.head.createShadowRoot;if(f){d.forEach(function(d){String(d)===d?(e+=b(d)+c(d)+"\n",g&&(e+=a(d)+c(d)+"\n")):(e+=d.selectors.map(b)+c(d.rule)+"\n",g&&(e+=d.selectors.map(a)+c(d.rule)+"\n"))});var h=document.createElement("style");h.textContent=e,document.head.appendChild(h)}}(),function(a){var b=["bubbles","cancelable","view","detail","screenX","screenY","clientX","clientY","ctrlKey","altKey","shiftKey","metaKey","button","relatedTarget","pageX","pageY"],c=[!1,!1,null,null,0,0,0,0,!1,!1,!1,!1,0,null,0,0],d=function(){return function(){}},e={preventTap:d,makeBaseEvent:function(a,b){var c=document.createEvent("Event");return c.initEvent(a,b.bubbles||!1,b.cancelable||!1),c.preventTap=e.preventTap(c),c},makeGestureEvent:function(a,b){b=b||Object.create(null);for(var c,d=this.makeBaseEvent(a,b),e=0,f=Object.keys(b);e<f.length;e++)c=f[e],"bubbles"!==c&&"cancelable"!==c&&(d[c]=b[c]);return d},makePointerEvent:function(a,d){d=d||Object.create(null);for(var e,f=this.makeBaseEvent(a,d),g=2;g<b.length;g++)e=b[g],f[e]=d[e]||c[g];f.buttons=d.buttons||0;var h=0;return h=d.pressure?d.pressure:f.buttons?.5:0,f.x=f.clientX,f.y=f.clientY,f.pointerId=d.pointerId||0,f.width=d.width||0,f.height=d.height||0,f.pressure=h,f.tiltX=d.tiltX||0,f.tiltY=d.tiltY||0,f.pointerType=d.pointerType||"",f.hwTimestamp=d.hwTimestamp||0,f.isPrimary=d.isPrimary||!1,f._source=d._source||"",f}};a.eventFactory=e}(window.PolymerGestures),function(a){function b(){if(c){var a=new Map;return a.pointers=d,a}this.keys=[],this.values=[]}var c=window.Map&&window.Map.prototype.forEach,d=function(){return this.size};b.prototype={set:function(a,b){var c=this.keys.indexOf(a);c>-1?this.values[c]=b:(this.keys.push(a),this.values.push(b))},has:function(a){return this.keys.indexOf(a)>-1},"delete":function(a){var b=this.keys.indexOf(a);b>-1&&(this.keys.splice(b,1),this.values.splice(b,1))},get:function(a){var b=this.keys.indexOf(a);return this.values[b]},clear:function(){this.keys.length=0,this.values.length=0},forEach:function(a,b){this.values.forEach(function(c,d){a.call(b,c,this.keys[d],this)},this)},pointers:function(){return this.keys.length}},a.PointerMap=b}(window.PolymerGestures),function(a){var b,c=["bubbles","cancelable","view","detail","screenX","screenY","clientX","clientY","ctrlKey","altKey","shiftKey","metaKey","button","relatedTarget","buttons","pointerId","width","height","pressure","tiltX","tiltY","pointerType","hwTimestamp","isPrimary","type","target","currentTarget","which","pageX","pageY","timeStamp","preventTap","tapPrevented","_source"],d=[!1,!1,null,null,0,0,0,0,!1,!1,!1,!1,0,null,0,0,0,0,0,0,0,"",0,!1,"",null,null,0,0,0,0,function(){},!1],e="undefined"!=typeof SVGElementInstance,f=a.eventFactory,g={IS_IOS:!1,pointermap:new a.PointerMap,requiredGestures:new a.PointerMap,eventMap:Object.create(null),eventSources:Object.create(null),eventSourceList:[],gestures:[],dependencyMap:{down:{listeners:0,index:-1},up:{listeners:0,index:-1}},gestureQueue:[],registerSource:function(a,b){var c=b,d=c.events;d&&(d.forEach(function(a){c[a]&&(this.eventMap[a]=c[a].bind(c))},this),this.eventSources[a]=c,this.eventSourceList.push(c))},registerGesture:function(a,b){var c=Object.create(null);c.listeners=0,c.index=this.gestures.length;for(var d,e=0;e<b.exposes.length;e++)d=b.exposes[e].toLowerCase(),this.dependencyMap[d]=c;this.gestures.push(b)},register:function(a,b){for(var c,d=this.eventSourceList.length,e=0;d>e&&(c=this.eventSourceList[e]);e++)c.register.call(c,a,b)},unregister:function(a){for(var b,c=this.eventSourceList.length,d=0;c>d&&(b=this.eventSourceList[d]);d++)b.unregister.call(b,a)},down:function(a){this.requiredGestures.set(a.pointerId,b),this.fireEvent("down",a)},move:function(a){a.type="move",this.fillGestureQueue(a)},up:function(a){this.fireEvent("up",a),this.requiredGestures["delete"](a.pointerId)},cancel:function(a){a.tapPrevented=!0,this.fireEvent("up",a),this.requiredGestures["delete"](a.pointerId)},addGestureDependency:function(a,b){var c=a._pgEvents;if(c&&b)for(var d,e,f,g=Object.keys(c),h=0;h<g.length;h++)f=g[h],c[f]>0&&(d=this.dependencyMap[f],e=d?d.index:-1,b[e]=!0)},eventHandler:function(c){var d=c.type;if("touchstart"===d||"mousedown"===d||"pointerdown"===d||"MSPointerDown"===d)if(c._handledByPG||(b={}),this.IS_IOS){var e=c;if("touchstart"===d){var f=c.changedTouches[0];e={target:c.target,clientX:f.clientX,clientY:f.clientY,path:c.path}}for(var g,h=c.path||a.targetFinding.path(e),i=0;i<h.length;i++)g=h[i],this.addGestureDependency(g,b)}else this.addGestureDependency(c.currentTarget,b);if(!c._handledByPG){var j=this.eventMap&&this.eventMap[d];j&&j(c),c._handledByPG=!0}},listen:function(a,b){for(var c,d=0,e=b.length;e>d&&(c=b[d]);d++)this.addEvent(a,c)},unlisten:function(a,b){for(var c,d=0,e=b.length;e>d&&(c=b[d]);d++)this.removeEvent(a,c)},addEvent:function(a,b){a.addEventListener(b,this.boundHandler)},removeEvent:function(a,b){a.removeEventListener(b,this.boundHandler)},makeEvent:function(a,b){var c=f.makePointerEvent(a,b);return c.preventDefault=b.preventDefault,c.tapPrevented=b.tapPrevented,c._target=c._target||b.target,c},fireEvent:function(a,b){var c=this.makeEvent(a,b);return this.dispatchEvent(c)},cloneEvent:function(a){for(var b,f=Object.create(null),g=0;g<c.length;g++)b=c[g],f[b]=a[b]||d[g],("target"===b||"relatedTarget"===b)&&e&&f[b]instanceof SVGElementInstance&&(f[b]=f[b].correspondingUseElement);return f.preventDefault=function(){a.preventDefault()},f},dispatchEvent:function(a){var b=a._target;if(b){b.dispatchEvent(a);var c=this.cloneEvent(a);c.target=b,this.fillGestureQueue(c)}},gestureTrigger:function(){for(var a,b,c=0;c<this.gestureQueue.length;c++)if(a=this.gestureQueue[c],b=a._requiredGestures)for(var d,e,f=0;f<this.gestures.length;f++)b[f]&&(d=this.gestures[f],e=d[a.type],e&&e.call(d,a));this.gestureQueue.length=0},fillGestureQueue:function(a){this.gestureQueue.length||requestAnimationFrame(this.boundGestureTrigger),a._requiredGestures=this.requiredGestures.get(a.pointerId),this.gestureQueue.push(a)}};g.boundHandler=g.eventHandler.bind(g),g.boundGestureTrigger=g.gestureTrigger.bind(g),a.dispatcher=g,a.activateGesture=function(a,b){var c=b.toLowerCase(),d=g.dependencyMap[c];if(d){var e=g.gestures[d.index];if(a._pgListeners||(g.register(a),a._pgListeners=0),e){var f,h=e.defaultActions&&e.defaultActions[c];switch(a.nodeType){case Node.ELEMENT_NODE:f=a;break;case Node.DOCUMENT_FRAGMENT_NODE:f=a.host;break;default:f=null}h&&f&&!f.hasAttribute("touch-action")&&f.setAttribute("touch-action",h)}a._pgEvents||(a._pgEvents={}),a._pgEvents[c]=(a._pgEvents[c]||0)+1,a._pgListeners++}return Boolean(d)},a.addEventListener=function(b,c,d,e){d&&(a.activateGesture(b,c),b.addEventListener(c,d,e))},a.deactivateGesture=function(a,b){var c=b.toLowerCase(),d=g.dependencyMap[c];return d&&(a._pgListeners>0&&a._pgListeners--,0===a._pgListeners&&g.unregister(a),a._pgEvents&&(a._pgEvents[c]>0?a._pgEvents[c]--:a._pgEvents[c]=0)),Boolean(d)},a.removeEventListener=function(b,c,d,e){d&&(a.deactivateGesture(b,c),b.removeEventListener(c,d,e))}}(window.PolymerGestures),function(a){var b=a.dispatcher,c=b.pointermap,d=25,e=[0,1,4,2],f=0,g=/Linux.*Firefox\//i,h=function(){if(g.test(navigator.userAgent))return!1;try{return 1===new MouseEvent("test",{buttons:1}).buttons}catch(a){return!1}}(),i={POINTER_ID:1,POINTER_TYPE:"mouse",events:["mousedown","mousemove","mouseup"],exposes:["down","up","move"],register:function(a){b.listen(a,this.events)},unregister:function(a){a.nodeType!==Node.DOCUMENT_NODE&&b.unlisten(a,this.events)},lastTouches:[],isEventSimulatedFromTouch:function(a){for(var b,c=this.lastTouches,e=a.clientX,f=a.clientY,g=0,h=c.length;h>g&&(b=c[g]);g++){var i=Math.abs(e-b.x),j=Math.abs(f-b.y);if(d>=i&&d>=j)return!0}},prepareEvent:function(a){var c=b.cloneEvent(a);if(c.pointerId=this.POINTER_ID,c.isPrimary=!0,c.pointerType=this.POINTER_TYPE,c._source="mouse",!h){var d=a.type,g=e[a.which]||0;"mousedown"===d?f|=g:"mouseup"===d&&(f&=~g),c.buttons=f}return c},mousedown:function(d){if(!this.isEventSimulatedFromTouch(d)){var e=(c.has(this.POINTER_ID),this.prepareEvent(d));e.target=a.findTarget(d),c.set(this.POINTER_ID,e.target),b.down(e)}},mousemove:function(a){if(!this.isEventSimulatedFromTouch(a)){var d=c.get(this.POINTER_ID);if(d){var e=this.prepareEvent(a);e.target=d,0===(h?e.buttons:e.which)?(h||(f=e.buttons=0),b.cancel(e),this.cleanupMouse(e.buttons)):b.move(e)}}},mouseup:function(d){if(!this.isEventSimulatedFromTouch(d)){var e=this.prepareEvent(d);e.relatedTarget=a.findTarget(d),e.target=c.get(this.POINTER_ID),b.up(e),this.cleanupMouse(e.buttons)}},cleanupMouse:function(a){0===a&&c["delete"](this.POINTER_ID)}};a.mouseEvents=i}(window.PolymerGestures),function(a){var b=a.dispatcher,c=(a.targetFinding.allShadows.bind(a.targetFinding),b.pointermap),d=(Array.prototype.map.call.bind(Array.prototype.map),2500),e=25,f=200,g=20,h=!1,i={IS_IOS:!1,events:["touchstart","touchmove","touchend","touchcancel"],exposes:["down","up","move"],register:function(a,c){(this.IS_IOS?c:!c)&&b.listen(a,this.events)},unregister:function(a){this.IS_IOS||b.unlisten(a,this.events)},scrollTypes:{EMITTER:"none",XSCROLLER:"pan-x",YSCROLLER:"pan-y"},touchActionToScrollType:function(a){var b=a,c=this.scrollTypes;return b===c.EMITTER?"none":b===c.XSCROLLER?"X":b===c.YSCROLLER?"Y":"XY"},POINTER_TYPE:"touch",firstTouch:null,isPrimaryTouch:function(a){return this.firstTouch===a.identifier},setPrimaryTouch:function(a){(0===c.pointers()||1===c.pointers()&&c.has(1))&&(this.firstTouch=a.identifier,this.firstXY={X:a.clientX,Y:a.clientY},this.firstTarget=a.target,this.scrolling=null,this.cancelResetClickCount())},removePrimaryPointer:function(a){a.isPrimary&&(this.firstTouch=null,this.firstXY=null,this.resetClickCount())},clickCount:0,resetId:null,resetClickCount:function(){var a=function(){this.clickCount=0,this.resetId=null}.bind(this);this.resetId=setTimeout(a,f)},cancelResetClickCount:function(){this.resetId&&clearTimeout(this.resetId)},typeToButtons:function(a){var b=0;return("touchstart"===a||"touchmove"===a)&&(b=1),b},findTarget:function(b,d){if("touchstart"===this.currentTouchEvent.type){if(this.isPrimaryTouch(b)){var e={clientX:b.clientX,clientY:b.clientY,path:this.currentTouchEvent.path,target:this.currentTouchEvent.target};return a.findTarget(e)}return a.findTarget(b)}return c.get(d)},touchToPointer:function(a){var c=this.currentTouchEvent,d=b.cloneEvent(a),e=d.pointerId=a.identifier+2;d.target=this.findTarget(a,e),d.bubbles=!0,d.cancelable=!0,d.detail=this.clickCount,d.buttons=this.typeToButtons(c.type),d.width=a.webkitRadiusX||a.radiusX||0,d.height=a.webkitRadiusY||a.radiusY||0,d.pressure=a.webkitForce||a.force||.5,d.isPrimary=this.isPrimaryTouch(a),d.pointerType=this.POINTER_TYPE,d._source="touch";var f=this;return d.preventDefault=function(){f.scrolling=!1,f.firstXY=null,c.preventDefault()},d},processTouches:function(a,b){var d=a.changedTouches;this.currentTouchEvent=a;for(var e,f,g=0;g<d.length;g++)e=d[g],f=this.touchToPointer(e),"touchstart"===a.type&&c.set(f.pointerId,f.target),c.has(f.pointerId)&&b.call(this,f),("touchend"===a.type||a._cancel)&&this.cleanUpPointer(f)},shouldScroll:function(b){if(this.firstXY){var c,d=a.targetFinding.findTouchAction(b),e=this.touchActionToScrollType(d);if("none"===e)c=!1;else if("XY"===e)c=!0;else{var f=b.changedTouches[0],g=e,h="Y"===e?"X":"Y",i=Math.abs(f["client"+g]-this.firstXY[g]),j=Math.abs(f["client"+h]-this.firstXY[h]);c=i>=j}return c}},findTouch:function(a,b){for(var c,d=0,e=a.length;e>d&&(c=a[d]);d++)if(c.identifier===b)return!0},vacuumTouches:function(a){var b=a.touches;if(c.pointers()>=b.length){var d=[];c.forEach(function(a,c){if(1!==c&&!this.findTouch(b,c-2)){var e=a;d.push(e)}},this),d.forEach(function(a){this.cancel(a),c["delete"](a.pointerId)},this)}},touchstart:function(a){this.vacuumTouches(a),this.setPrimaryTouch(a.changedTouches[0]),this.dedupSynthMouse(a),this.scrolling||(this.clickCount++,this.processTouches(a,this.down))},down:function(a){b.down(a)},touchmove:function(a){if(h)a.cancelable&&this.processTouches(a,this.move);else if(this.scrolling){if(this.firstXY){var b=a.changedTouches[0],c=b.clientX-this.firstXY.X,d=b.clientY-this.firstXY.Y,e=Math.sqrt(c*c+d*d);e>=g&&(this.touchcancel(a),this.scrolling=!0,this.firstXY=null)}}else null===this.scrolling&&this.shouldScroll(a)?this.scrolling=!0:(this.scrolling=!1,a.preventDefault(),this.processTouches(a,this.move))},move:function(a){b.move(a)},touchend:function(a){this.dedupSynthMouse(a),this.processTouches(a,this.up)},up:function(c){c.relatedTarget=a.findTarget(c),b.up(c)},cancel:function(a){b.cancel(a)},touchcancel:function(a){a._cancel=!0,this.processTouches(a,this.cancel)},cleanUpPointer:function(a){c["delete"](a.pointerId),this.removePrimaryPointer(a)},dedupSynthMouse:function(b){var c=a.mouseEvents.lastTouches,e=b.changedTouches[0];if(this.isPrimaryTouch(e)){var f={x:e.clientX,y:e.clientY};c.push(f);var g=function(a,b){var c=a.indexOf(b);c>-1&&a.splice(c,1)}.bind(null,c,f);setTimeout(g,d)}}},j=Event.prototype.stopImmediatePropagation||Event.prototype.stopPropagation;document.addEventListener("click",function(b){var c=b.clientX,d=b.clientY,f=function(a){var b=Math.abs(c-a.x),f=Math.abs(d-a.y);return e>=b&&e>=f},g=a.mouseEvents.lastTouches.some(f),h=a.targetFinding.path(b);if(g){for(var k=0;k<h.length;k++)if(h[k]===i.firstTarget)return;b.preventDefault(),j.call(b)}},!0),a.touchEvents=i}(window.PolymerGestures),function(a){var b=a.dispatcher,c=b.pointermap,d=window.MSPointerEvent&&"number"==typeof window.MSPointerEvent.MSPOINTER_TYPE_MOUSE,e={events:["MSPointerDown","MSPointerMove","MSPointerUp","MSPointerCancel"],register:function(a){b.listen(a,this.events)},unregister:function(a){a.nodeType!==Node.DOCUMENT_NODE&&b.unlisten(a,this.events)},POINTER_TYPES:["","unavailable","touch","pen","mouse"],prepareEvent:function(a){var c=a;return c=b.cloneEvent(a),d&&(c.pointerType=this.POINTER_TYPES[a.pointerType]),c._source="ms",c},cleanup:function(a){c["delete"](a)},MSPointerDown:function(d){var e=this.prepareEvent(d);e.target=a.findTarget(d),c.set(d.pointerId,e.target),b.down(e)},MSPointerMove:function(a){var d=c.get(a.pointerId);if(d){var e=this.prepareEvent(a);e.target=d,b.move(e)}},MSPointerUp:function(d){var e=this.prepareEvent(d);e.relatedTarget=a.findTarget(d),e.target=c.get(e.pointerId),b.up(e),this.cleanup(d.pointerId)},MSPointerCancel:function(d){var e=this.prepareEvent(d);e.relatedTarget=a.findTarget(d),e.target=c.get(e.pointerId),b.cancel(e),this.cleanup(d.pointerId)}};a.msEvents=e}(window.PolymerGestures),function(a){var b=a.dispatcher,c=b.pointermap,d={events:["pointerdown","pointermove","pointerup","pointercancel"],prepareEvent:function(a){var c=b.cloneEvent(a);return c._source="pointer",c},register:function(a){b.listen(a,this.events)},unregister:function(a){a.nodeType!==Node.DOCUMENT_NODE&&b.unlisten(a,this.events)},cleanup:function(a){c["delete"](a)},pointerdown:function(d){var e=this.prepareEvent(d);e.target=a.findTarget(d),c.set(e.pointerId,e.target),b.down(e)},pointermove:function(a){var d=c.get(a.pointerId);if(d){var e=this.prepareEvent(a);e.target=d,b.move(e)}},pointerup:function(d){var e=this.prepareEvent(d);e.relatedTarget=a.findTarget(d),e.target=c.get(e.pointerId),b.up(e),this.cleanup(d.pointerId)},pointercancel:function(d){var e=this.prepareEvent(d);e.relatedTarget=a.findTarget(d),e.target=c.get(e.pointerId),b.cancel(e),this.cleanup(d.pointerId)}};a.pointerEvents=d}(window.PolymerGestures),function(a){var b=a.dispatcher,c=window.navigator;window.PointerEvent?b.registerSource("pointer",a.pointerEvents):c.msPointerEnabled?b.registerSource("ms",a.msEvents):(b.registerSource("mouse",a.mouseEvents),void 0!==window.ontouchstart&&b.registerSource("touch",a.touchEvents));var d=navigator.userAgent,e=d.match(/iPad|iPhone|iPod/)&&"ontouchstart"in window;b.IS_IOS=e,a.touchEvents.IS_IOS=e,b.register(document,!0)}(window.PolymerGestures),function(a){var b=a.dispatcher,c=a.eventFactory,d=new a.PointerMap,e={events:["down","move","up"],exposes:["trackstart","track","trackx","tracky","trackend"],defaultActions:{track:"none",trackx:"pan-y",tracky:"pan-x"},WIGGLE_THRESHOLD:4,clampDir:function(a){return a>0?1:-1},calcPositionDelta:function(a,b){var c=0,d=0;return a&&b&&(c=b.pageX-a.pageX,d=b.pageY-a.pageY),{x:c,y:d}},fireTrack:function(a,b,d){var e=d,f=this.calcPositionDelta(e.downEvent,b),g=this.calcPositionDelta(e.lastMoveEvent,b);if(g.x)e.xDirection=this.clampDir(g.x);else if("trackx"===a)return;if(g.y)e.yDirection=this.clampDir(g.y);else if("tracky"===a)return;var h={bubbles:!0,cancelable:!0,trackInfo:e.trackInfo,relatedTarget:b.relatedTarget,pointerType:b.pointerType,pointerId:b.pointerId,_source:"track"};"tracky"!==a&&(h.x=b.x,h.dx=f.x,h.ddx=g.x,h.clientX=b.clientX,h.pageX=b.pageX,h.screenX=b.screenX,h.xDirection=e.xDirection),"trackx"!==a&&(h.dy=f.y,h.ddy=g.y,h.y=b.y,h.clientY=b.clientY,h.pageY=b.pageY,h.screenY=b.screenY,h.yDirection=e.yDirection);var i=c.makeGestureEvent(a,h);e.downTarget.dispatchEvent(i)},down:function(a){if(a.isPrimary&&("mouse"===a.pointerType?1===a.buttons:!0)){var b={downEvent:a,downTarget:a.target,trackInfo:{},lastMoveEvent:null,xDirection:0,yDirection:0,tracking:!1};d.set(a.pointerId,b)}},move:function(a){var b=d.get(a.pointerId);if(b){if(!b.tracking){var c=this.calcPositionDelta(b.downEvent,a),e=c.x*c.x+c.y*c.y;e>this.WIGGLE_THRESHOLD&&(b.tracking=!0,b.lastMoveEvent=b.downEvent,this.fireTrack("trackstart",a,b))}b.tracking&&(this.fireTrack("track",a,b),this.fireTrack("trackx",a,b),this.fireTrack("tracky",a,b)),b.lastMoveEvent=a}},up:function(a){var b=d.get(a.pointerId);b&&(b.tracking&&this.fireTrack("trackend",a,b),d["delete"](a.pointerId))}};b.registerGesture("track",e)}(window.PolymerGestures),function(a){var b=a.dispatcher,c=a.eventFactory,d={HOLD_DELAY:200,WIGGLE_THRESHOLD:16,events:["down","move","up"],exposes:["hold","holdpulse","release"],heldPointer:null,holdJob:null,pulse:function(){var a=Date.now()-this.heldPointer.timeStamp,b=this.held?"holdpulse":"hold";this.fireHold(b,a),this.held=!0},cancel:function(){clearInterval(this.holdJob),this.held&&this.fireHold("release"),this.held=!1,this.heldPointer=null,this.target=null,this.holdJob=null},down:function(a){a.isPrimary&&!this.heldPointer&&(this.heldPointer=a,this.target=a.target,this.holdJob=setInterval(this.pulse.bind(this),this.HOLD_DELAY))},up:function(a){this.heldPointer&&this.heldPointer.pointerId===a.pointerId&&this.cancel()},move:function(a){if(this.heldPointer&&this.heldPointer.pointerId===a.pointerId){var b=a.clientX-this.heldPointer.clientX,c=a.clientY-this.heldPointer.clientY;b*b+c*c>this.WIGGLE_THRESHOLD&&this.cancel()}},fireHold:function(a,b){var d={bubbles:!0,cancelable:!0,pointerType:this.heldPointer.pointerType,pointerId:this.heldPointer.pointerId,x:this.heldPointer.clientX,y:this.heldPointer.clientY,_source:"hold"};b&&(d.holdTime=b);var e=c.makeGestureEvent(a,d);this.target.dispatchEvent(e)}};b.registerGesture("hold",d)}(window.PolymerGestures),function(a){var b=a.dispatcher,c=a.eventFactory,d=new a.PointerMap,e={events:["down","up"],exposes:["tap"],down:function(a){a.isPrimary&&!a.tapPrevented&&d.set(a.pointerId,{target:a.target,buttons:a.buttons,x:a.clientX,y:a.clientY})},shouldTap:function(a,b){var c=!0;return"mouse"===a.pointerType&&(c=1^a.buttons&&1&b.buttons),c&&!a.tapPrevented},up:function(b){var e=d.get(b.pointerId);if(e&&this.shouldTap(b,e)){var f=a.targetFinding.LCA(e.target,b.relatedTarget);if(f){var g=c.makeGestureEvent("tap",{bubbles:!0,cancelable:!0,x:b.clientX,y:b.clientY,detail:b.detail,pointerType:b.pointerType,pointerId:b.pointerId,altKey:b.altKey,ctrlKey:b.ctrlKey,metaKey:b.metaKey,shiftKey:b.shiftKey,_source:"tap"});f.dispatchEvent(g)}}d["delete"](b.pointerId)}};c.preventTap=function(a){return function(){a.tapPrevented=!0,d["delete"](a.pointerId)}},b.registerGesture("tap",e)}(window.PolymerGestures),function(a){var b=a.dispatcher,c=a.eventFactory,d=new a.PointerMap,e=180/Math.PI,f={events:["down","up","move","cancel"],exposes:["pinchstart","pinch","pinchend","rotate"],defaultActions:{pinch:"none",rotate:"none"},reference:{},down:function(b){if(d.set(b.pointerId,b),2==d.pointers()){var c=this.calcChord(),e=this.calcAngle(c);this.reference={angle:e,diameter:c.diameter,target:a.targetFinding.LCA(c.a.target,c.b.target)},this.firePinch("pinchstart",c.diameter,c)}},up:function(a){var b=d.get(a.pointerId),c=d.pointers();if(b){if(2===c){var e=this.calcChord();this.firePinch("pinchend",e.diameter,e)}d["delete"](a.pointerId)}},move:function(a){d.has(a.pointerId)&&(d.set(a.pointerId,a),d.pointers()>1&&this.calcPinchRotate())},cancel:function(a){this.up(a)},firePinch:function(a,b,d){var e=b/this.reference.diameter,f=c.makeGestureEvent(a,{bubbles:!0,cancelable:!0,scale:e,centerX:d.center.x,centerY:d.center.y,_source:"pinch"});this.reference.target.dispatchEvent(f)},fireRotate:function(a,b){var d=Math.round((a-this.reference.angle)%360),e=c.makeGestureEvent("rotate",{bubbles:!0,cancelable:!0,angle:d,centerX:b.center.x,centerY:b.center.y,_source:"pinch"});this.reference.target.dispatchEvent(e)},calcPinchRotate:function(){var a=this.calcChord(),b=a.diameter,c=this.calcAngle(a);b!=this.reference.diameter&&this.firePinch("pinch",b,a),c!=this.reference.angle&&this.fireRotate(c,a)},calcChord:function(){var a=[];d.forEach(function(b){a.push(b)});for(var b,c,e,f=0,g={a:a[0],b:a[1]},h=0;h<a.length;h++)for(var i=a[h],j=h+1;j<a.length;j++){var k=a[j];b=Math.abs(i.clientX-k.clientX),c=Math.abs(i.clientY-k.clientY),e=b+c,e>f&&(f=e,g={a:i,b:k})}return b=Math.abs(g.a.clientX+g.b.clientX)/2,c=Math.abs(g.a.clientY+g.b.clientY)/2,g.center={x:b,y:c},g.diameter=f,g},calcAngle:function(a){var b=a.a.clientX-a.b.clientX,c=a.a.clientY-a.b.clientY;return(360+Math.atan2(c,b)*e)%360}};b.registerGesture("pinch",f)}(window.PolymerGestures),function(a){"use strict";function b(a,b){if(!a)throw new Error("ASSERT: "+b)}function c(a){return a>=48&&57>=a}function d(a){return 32===a||9===a||11===a||12===a||160===a||a>=5760&&" ᠎              ".indexOf(String.fromCharCode(a))>0}function e(a){return 10===a||13===a||8232===a||8233===a}function f(a){return 36===a||95===a||a>=65&&90>=a||a>=97&&122>=a}function g(a){return 36===a||95===a||a>=65&&90>=a||a>=97&&122>=a||a>=48&&57>=a}function h(a){return"this"===a}function i(){for(;Y>X&&d(W.charCodeAt(X));)++X}function j(){var a,b;for(a=X++;Y>X&&(b=W.charCodeAt(X),g(b));)++X;return W.slice(a,X)}function k(){var a,b,c;return a=X,b=j(),c=1===b.length?S.Identifier:h(b)?S.Keyword:"null"===b?S.NullLiteral:"true"===b||"false"===b?S.BooleanLiteral:S.Identifier,{type:c,value:b,range:[a,X]}}function l(){var a,b,c=X,d=W.charCodeAt(X),e=W[X];switch(d){case 46:case 40:case 41:case 59:case 44:case 123:case 125:case 91:case 93:case 58:case 63:return++X,{type:S.Punctuator,value:String.fromCharCode(d),range:[c,X]};default:if(a=W.charCodeAt(X+1),61===a)switch(d){case 37:case 38:case 42:case 43:case 45:case 47:case 60:case 62:case 124:return X+=2,{type:S.Punctuator,value:String.fromCharCode(d)+String.fromCharCode(a),range:[c,X]};case 33:case 61:return X+=2,61===W.charCodeAt(X)&&++X,{type:S.Punctuator,value:W.slice(c,X),range:[c,X]}}}return b=W[X+1],e===b&&"&|".indexOf(e)>=0?(X+=2,{type:S.Punctuator,value:e+b,range:[c,X]}):"<>=!+-*%&|^/".indexOf(e)>=0?(++X,{type:S.Punctuator,value:e,range:[c,X]}):void s({},V.UnexpectedToken,"ILLEGAL")}function m(){var a,d,e;if(e=W[X],b(c(e.charCodeAt(0))||"."===e,"Numeric literal must start with a decimal digit or a decimal point"),d=X,a="","."!==e){for(a=W[X++],e=W[X],"0"===a&&e&&c(e.charCodeAt(0))&&s({},V.UnexpectedToken,"ILLEGAL");c(W.charCodeAt(X));)a+=W[X++];e=W[X]}if("."===e){for(a+=W[X++];c(W.charCodeAt(X));)a+=W[X++];e=W[X]}if("e"===e||"E"===e)if(a+=W[X++],e=W[X],("+"===e||"-"===e)&&(a+=W[X++]),c(W.charCodeAt(X)))for(;c(W.charCodeAt(X));)a+=W[X++];else s({},V.UnexpectedToken,"ILLEGAL");return f(W.charCodeAt(X))&&s({},V.UnexpectedToken,"ILLEGAL"),{type:S.NumericLiteral,value:parseFloat(a),range:[d,X]}}function n(){var a,c,d,f="",g=!1;for(a=W[X],b("'"===a||'"'===a,"String literal must starts with a quote"),c=X,++X;Y>X;){if(d=W[X++],d===a){a="";break}if("\\"===d)if(d=W[X++],d&&e(d.charCodeAt(0)))"\r"===d&&"\n"===W[X]&&++X;else switch(d){case"n":f+="\n";break;case"r":f+="\r";break;case"t":f+=" ";break;case"b":f+="\b";break;case"f":f+="\f";break;case"v":f+=" ";break;default:f+=d}else{if(e(d.charCodeAt(0)))break;f+=d}}return""!==a&&s({},V.UnexpectedToken,"ILLEGAL"),{type:S.StringLiteral,value:f,octal:g,range:[c,X]}}function o(a){return a.type===S.Identifier||a.type===S.Keyword||a.type===S.BooleanLiteral||a.type===S.NullLiteral}function p(){var a;return i(),X>=Y?{type:S.EOF,range:[X,X]}:(a=W.charCodeAt(X),40===a||41===a||58===a?l():39===a||34===a?n():f(a)?k():46===a?c(W.charCodeAt(X+1))?m():l():c(a)?m():l())}function q(){var a;return a=$,X=a.range[1],$=p(),X=a.range[1],a}function r(){var a;a=X,$=p(),X=a}function s(a,c){var d,e=Array.prototype.slice.call(arguments,2),f=c.replace(/%(\d)/g,function(a,c){return b(c<e.length,"Message reference must be in range"),e[c]});throw d=new Error(f),d.index=X,d.description=f,d}function t(a){s(a,V.UnexpectedToken,a.value)}function u(a){var b=q();(b.type!==S.Punctuator||b.value!==a)&&t(b)}function v(a){return $.type===S.Punctuator&&$.value===a}function w(a){return $.type===S.Keyword&&$.value===a}function x(){var a=[];for(u("[");!v("]");)v(",")?(q(),a.push(null)):(a.push(bb()),v("]")||u(","));return u("]"),Z.createArrayExpression(a)}function y(){var a;return i(),a=q(),a.type===S.StringLiteral||a.type===S.NumericLiteral?Z.createLiteral(a):Z.createIdentifier(a.value)}function z(){var a,b;return a=$,i(),(a.type===S.EOF||a.type===S.Punctuator)&&t(a),b=y(),u(":"),Z.createProperty("init",b,bb())}function A(){var a=[];for(u("{");!v("}");)a.push(z()),v("}")||u(",");return u("}"),Z.createObjectExpression(a)}function B(){var a;return u("("),a=bb(),u(")"),a}function C(){var a,b,c;return v("(")?B():(a=$.type,a===S.Identifier?c=Z.createIdentifier(q().value):a===S.StringLiteral||a===S.NumericLiteral?c=Z.createLiteral(q()):a===S.Keyword?w("this")&&(q(),c=Z.createThisExpression()):a===S.BooleanLiteral?(b=q(),b.value="true"===b.value,c=Z.createLiteral(b)):a===S.NullLiteral?(b=q(),b.value=null,c=Z.createLiteral(b)):v("[")?c=x():v("{")&&(c=A()),c?c:void t(q()))}function D(){var a=[];if(u("("),!v(")"))for(;Y>X&&(a.push(bb()),!v(")"));)u(",");return u(")"),a}function E(){var a;return a=q(),o(a)||t(a),Z.createIdentifier(a.value)}function F(){return u("."),E()}function G(){var a;return u("["),a=bb(),u("]"),a}function H(){var a,b,c;for(a=C();;)if(v("["))c=G(),a=Z.createMemberExpression("[",a,c);else if(v("."))c=F(),a=Z.createMemberExpression(".",a,c);else{if(!v("("))break;b=D(),a=Z.createCallExpression(a,b)}return a}function I(){var a,b;return $.type!==S.Punctuator&&$.type!==S.Keyword?b=ab():v("+")||v("-")||v("!")?(a=q(),b=I(),b=Z.createUnaryExpression(a.value,b)):w("delete")||w("void")||w("typeof")?s({},V.UnexpectedToken):b=ab(),b}function J(a){var b=0;if(a.type!==S.Punctuator&&a.type!==S.Keyword)return 0;switch(a.value){case"||":b=1;break;case"&&":b=2;break;case"==":case"!=":case"===":case"!==":b=6;break;case"<":case">":case"<=":case">=":case"instanceof":b=7;break;case"in":b=7;break;case"+":case"-":b=9;break;case"*":case"/":case"%":b=11}return b}function K(){var a,b,c,d,e,f,g,h;if(g=I(),b=$,c=J(b),0===c)return g;for(b.prec=c,q(),e=I(),d=[g,b,e];(c=J($))>0;){for(;d.length>2&&c<=d[d.length-2].prec;)e=d.pop(),f=d.pop().value,g=d.pop(),a=Z.createBinaryExpression(f,g,e),d.push(a);b=q(),b.prec=c,d.push(b),a=I(),d.push(a)}for(h=d.length-1,a=d[h];h>1;)a=Z.createBinaryExpression(d[h-1].value,d[h-2],a),h-=2;return a}function L(){var a,b,c;return a=K(),v("?")&&(q(),b=L(),u(":"),c=L(),a=Z.createConditionalExpression(a,b,c)),a}function M(){var a,b;return a=q(),a.type!==S.Identifier&&t(a),b=v("(")?D():[],Z.createFilter(a.value,b)}function N(){for(;v("|");)q(),M()}function O(){i(),r();var a=bb();a&&(","===$.value||"in"==$.value&&a.type===U.Identifier?Q(a):(N(),"as"===$.value?P(a):Z.createTopLevel(a))),$.type!==S.EOF&&t($)}function P(a){q();var b=q().value;Z.createAsExpression(a,b)}function Q(a){var b;","===$.value&&(q(),$.type!==S.Identifier&&t($),b=q().value),q();var c=bb();N(),Z.createInExpression(a.name,b,c)}function R(a,b){return Z=b,W=a,X=0,Y=W.length,$=null,_={labelSet:{}},O()}var S,T,U,V,W,X,Y,Z,$,_;S={BooleanLiteral:1,EOF:2,Identifier:3,Keyword:4,NullLiteral:5,NumericLiteral:6,Punctuator:7,StringLiteral:8},T={},T[S.BooleanLiteral]="Boolean",T[S.EOF]="<end>",T[S.Identifier]="Identifier",T[S.Keyword]="Keyword",T[S.NullLiteral]="Null",T[S.NumericLiteral]="Numeric",T[S.Punctuator]="Punctuator",T[S.StringLiteral]="String",U={ArrayExpression:"ArrayExpression",BinaryExpression:"BinaryExpression",CallExpression:"CallExpression",ConditionalExpression:"ConditionalExpression",EmptyStatement:"EmptyStatement",ExpressionStatement:"ExpressionStatement",Identifier:"Identifier",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",ObjectExpression:"ObjectExpression",Program:"Program",Property:"Property",ThisExpression:"ThisExpression",UnaryExpression:"UnaryExpression"},V={UnexpectedToken:"Unexpected token %0",UnknownLabel:"Undefined label '%0'",Redeclaration:"%0 '%1' has already been declared"};
var ab=H,bb=L;a.esprima={parse:R}}(this),function(a){"use strict";function b(a,b,d,e){var f;try{if(f=c(a),f.scopeIdent&&(d.nodeType!==Node.ELEMENT_NODE||"TEMPLATE"!==d.tagName||"bind"!==b&&"repeat"!==b))throw Error("as and in can only be used within <template bind/repeat>")}catch(g){return void console.error("Invalid expression syntax: "+a,g)}return function(a,b,c){var d=f.getBinding(a,e,c);return f.scopeIdent&&d&&(b.polymerExpressionScopeIdent_=f.scopeIdent,f.indexIdent&&(b.polymerExpressionIndexIdent_=f.indexIdent)),d}}function c(a){var b=q[a];if(!b){var c=new j;esprima.parse(a,c),b=new l(c),q[a]=b}return b}function d(a){this.value=a,this.valueFn_=void 0}function e(a){this.name=a,this.path=Path.get(a)}function f(a,b,c){this.computed="["==c,this.dynamicDeps="function"==typeof a||a.dynamicDeps||this.computed&&!(b instanceof d),this.simplePath=!this.dynamicDeps&&(b instanceof e||b instanceof d)&&(a instanceof f||a instanceof e),this.object=this.simplePath?a:i(a),this.property=!this.computed||this.simplePath?b:i(b)}function g(a,b){this.name=a,this.args=[];for(var c=0;c<b.length;c++)this.args[c]=i(b[c])}function h(){throw Error("Not Implemented")}function i(a){return"function"==typeof a?a:a.valueFn()}function j(){this.expression=null,this.filters=[],this.deps={},this.currentPath=void 0,this.scopeIdent=void 0,this.indexIdent=void 0,this.dynamicDeps=!1}function k(a){this.value_=a}function l(a){if(this.scopeIdent=a.scopeIdent,this.indexIdent=a.indexIdent,!a.expression)throw Error("No expression found.");this.expression=a.expression,i(this.expression),this.filters=a.filters,this.dynamicDeps=a.dynamicDeps}function m(a){return String(a).replace(/[A-Z]/g,function(a){return"-"+a.toLowerCase()})}function n(a,b){for(;a[t]&&!Object.prototype.hasOwnProperty.call(a,b);)a=a[t];return a}function o(a){switch(a){case"":return!1;case"false":case"null":case"true":return!0}return isNaN(Number(a))?!1:!0}function p(){}var q=Object.create(null);d.prototype={valueFn:function(){if(!this.valueFn_){var a=this.value;this.valueFn_=function(){return a}}return this.valueFn_}},e.prototype={valueFn:function(){if(!this.valueFn_){var a=(this.name,this.path);this.valueFn_=function(b,c){return c&&c.addPath(b,a),a.getValueFrom(b)}}return this.valueFn_},setValue:function(a,b){return 1==this.path.length&&(a=n(a,this.path[0])),this.path.setValueFrom(a,b)}},f.prototype={get fullPath(){if(!this.fullPath_){var a=this.object instanceof f?this.object.fullPath.slice():[this.object.name];a.push(this.property instanceof e?this.property.name:this.property.value),this.fullPath_=Path.get(a)}return this.fullPath_},valueFn:function(){if(!this.valueFn_){var a=this.object;if(this.simplePath){var b=this.fullPath;this.valueFn_=function(a,c){return c&&c.addPath(a,b),b.getValueFrom(a)}}else if(this.computed){var c=this.property;this.valueFn_=function(b,d,e){var f=a(b,d,e),g=c(b,d,e);return d&&d.addPath(f,[g]),f?f[g]:void 0}}else{var b=Path.get(this.property.name);this.valueFn_=function(c,d,e){var f=a(c,d,e);return d&&d.addPath(f,b),b.getValueFrom(f)}}}return this.valueFn_},setValue:function(a,b){if(this.simplePath)return this.fullPath.setValueFrom(a,b),b;var c=this.object(a),d=this.property instanceof e?this.property.name:this.property(a);return c[d]=b}},g.prototype={transform:function(a,b,c,d,e){var f=a,g=f[this.name];if(!g&&(g=c[this.name],!g))return void console.error("Cannot find function or filter: "+this.name);if(d?g=g.toModel:"function"==typeof g.toDOM&&(g=g.toDOM),"function"!=typeof g)return void console.error("Cannot find function or filter: "+this.name);for(var h=e||[],j=0;j<this.args.length;j++)h.push(i(this.args[j])(a,b,c));return g.apply(f,h)}};var r={"+":function(a){return+a},"-":function(a){return-a},"!":function(a){return!a}},s={"+":function(a,b){return a+b},"-":function(a,b){return a-b},"*":function(a,b){return a*b},"/":function(a,b){return a/b},"%":function(a,b){return a%b},"<":function(a,b){return b>a},">":function(a,b){return a>b},"<=":function(a,b){return b>=a},">=":function(a,b){return a>=b},"==":function(a,b){return a==b},"!=":function(a,b){return a!=b},"===":function(a,b){return a===b},"!==":function(a,b){return a!==b},"&&":function(a,b){return a&&b},"||":function(a,b){return a||b}};j.prototype={createUnaryExpression:function(a,b){if(!r[a])throw Error("Disallowed operator: "+a);return b=i(b),function(c,d,e){return r[a](b(c,d,e))}},createBinaryExpression:function(a,b,c){if(!s[a])throw Error("Disallowed operator: "+a);switch(b=i(b),c=i(c),a){case"||":return this.dynamicDeps=!0,function(a,d,e){return b(a,d,e)||c(a,d,e)};case"&&":return this.dynamicDeps=!0,function(a,d,e){return b(a,d,e)&&c(a,d,e)}}return function(d,e,f){return s[a](b(d,e,f),c(d,e,f))}},createConditionalExpression:function(a,b,c){return a=i(a),b=i(b),c=i(c),this.dynamicDeps=!0,function(d,e,f){return a(d,e,f)?b(d,e,f):c(d,e,f)}},createIdentifier:function(a){var b=new e(a);return b.type="Identifier",b},createMemberExpression:function(a,b,c){var d=new f(b,c,a);return d.dynamicDeps&&(this.dynamicDeps=!0),d},createCallExpression:function(a,b){if(!(a instanceof e))throw Error("Only identifier function invocations are allowed");var c=new g(a.name,b);return function(a,b,d){return c.transform(a,b,d,!1)}},createLiteral:function(a){return new d(a.value)},createArrayExpression:function(a){for(var b=0;b<a.length;b++)a[b]=i(a[b]);return function(b,c,d){for(var e=[],f=0;f<a.length;f++)e.push(a[f](b,c,d));return e}},createProperty:function(a,b,c){return{key:b instanceof e?b.name:b.value,value:c}},createObjectExpression:function(a){for(var b=0;b<a.length;b++)a[b].value=i(a[b].value);return function(b,c,d){for(var e={},f=0;f<a.length;f++)e[a[f].key]=a[f].value(b,c,d);return e}},createFilter:function(a,b){this.filters.push(new g(a,b))},createAsExpression:function(a,b){this.expression=a,this.scopeIdent=b},createInExpression:function(a,b,c){this.expression=c,this.scopeIdent=a,this.indexIdent=b},createTopLevel:function(a){this.expression=a},createThisExpression:h},k.prototype={open:function(){return this.value_},discardChanges:function(){return this.value_},deliver:function(){},close:function(){}},l.prototype={getBinding:function(a,b,c){function d(){if(h)return h=!1,g;i.dynamicDeps&&f.startReset();var c=i.getValue(a,i.dynamicDeps?f:void 0,b);return i.dynamicDeps&&f.finishReset(),c}function e(c){return i.setValue(a,c,b),c}if(c)return this.getValue(a,void 0,b);var f=new CompoundObserver,g=this.getValue(a,f,b),h=!0,i=this;return new ObserverTransform(f,d,e,!0)},getValue:function(a,b,c){for(var d=i(this.expression)(a,b,c),e=0;e<this.filters.length;e++)d=this.filters[e].transform(a,b,c,!1,[d]);return d},setValue:function(a,b,c){for(var d=this.filters?this.filters.length:0;d-->0;)b=this.filters[d].transform(a,void 0,c,!0,[b]);return this.expression.setValue?this.expression.setValue(a,b):void 0}};var t="@"+Math.random().toString(36).slice(2);p.prototype={styleObject:function(a){var b=[];for(var c in a)b.push(m(c)+": "+a[c]);return b.join("; ")},tokenList:function(a){var b=[];for(var c in a)a[c]&&b.push(c);return b.join(" ")},prepareInstancePositionChanged:function(a){var b=a.polymerExpressionIndexIdent_;if(b)return function(a,c){a.model[b]=c}},prepareBinding:function(a,c,d){var e=Path.get(a);{if(o(a)||!e.valid)return b(a,c,d,this);if(1==e.length)return function(a,b,c){if(c)return e.getValueFrom(a);var d=n(a,e[0]);return new PathObserver(d,e)}}},prepareInstanceModel:function(a){var b=a.polymerExpressionScopeIdent_;if(b){var c=a.templateInstance?a.templateInstance.model:a.model,d=a.polymerExpressionIndexIdent_;return function(a){return u(c,a,b,d)}}}};var u="__proto__"in{}?function(a,b,c,d){var e={};return e[c]=b,e[d]=void 0,e[t]=a,e.__proto__=a,e}:function(a,b,c,d){var e=Object.create(a);return Object.defineProperty(e,c,{value:b,configurable:!0,writable:!0}),Object.defineProperty(e,d,{value:void 0,configurable:!0,writable:!0}),Object.defineProperty(e,t,{value:a,configurable:!0,writable:!0}),e};a.PolymerExpressions=p,p.getExpression=c}(this),Polymer={version:"0.5.5"},"function"==typeof window.Polymer&&(Polymer={}),function(a){function b(a,b){return b=b||[],b.map||(b=[b]),a.apply(this,b.map(d))}function c(a,c,d){var e;switch(arguments.length){case 0:return;case 1:e=null;break;case 2:e=c.apply(this);break;default:e=b(d,c)}f[a]=e}function d(a){return f[a]}function e(a,c){HTMLImports.whenImportsReady(function(){b(c,a)})}var f={};a.marshal=d,a.modularize=c,a.using=e}(window),window.WebComponents||(window.WebComponents||(WebComponents={flush:function(){},flags:{log:{}}},Platform=WebComponents,CustomElements={useNative:!0,ready:!0,takeRecords:function(){},"instanceof":function(a,b){return a instanceof b}},HTMLImports={useNative:!0},addEventListener("HTMLImportsLoaded",function(){document.dispatchEvent(new CustomEvent("WebComponentsReady",{bubbles:!0}))}),ShadowDOMPolyfill=null,wrap=unwrap=function(a){return a}),window.HTMLImports=window.HTMLImports||{flags:{}},function(a){function b(a,b){b=b||o,d(function(){f(a,b)},b)}function c(a){return"complete"===a.readyState||a.readyState===r}function d(a,b){if(c(b))a&&a();else{var e=function(){("complete"===b.readyState||b.readyState===r)&&(b.removeEventListener(s,e),d(a,b))};b.addEventListener(s,e)}}function e(a){a.target.__loaded=!0}function f(a,b){function c(){h==i&&a&&a()}function d(a){e(a),h++,c()}var f=b.querySelectorAll("link[rel=import]"),h=0,i=f.length;if(i)for(var j,k=0;i>k&&(j=f[k]);k++)g(j)?d.call(j,{target:j}):(j.addEventListener("load",d),j.addEventListener("error",d));else c()}function g(a){return l?a.__loaded||a["import"]&&"loading"!==a["import"].readyState:a.__importParsed}function h(a){for(var b,c=0,d=a.length;d>c&&(b=a[c]);c++)i(b)&&j(b)}function i(a){return"link"===a.localName&&"import"===a.rel}function j(a){var b=a["import"];b?e({target:a}):(a.addEventListener("load",e),a.addEventListener("error",e))}var k="import",l=Boolean(k in document.createElement("link")),m=Boolean(window.ShadowDOMPolyfill),n=function(a){return m?ShadowDOMPolyfill.wrapIfNeeded(a):a},o=n(document),p={get:function(){var a=HTMLImports.currentScript||document.currentScript||("complete"!==document.readyState?document.scripts[document.scripts.length-1]:null);return n(a)},configurable:!0};Object.defineProperty(document,"_currentScript",p),Object.defineProperty(o,"_currentScript",p);var q=/Trident/.test(navigator.userAgent),r=q?"complete":"interactive",s="readystatechange";l&&(new MutationObserver(function(a){for(var b,c=0,d=a.length;d>c&&(b=a[c]);c++)b.addedNodes&&h(b.addedNodes)}).observe(document.head,{childList:!0}),function(){if("loading"===document.readyState)for(var a,b=document.querySelectorAll("link[rel=import]"),c=0,d=b.length;d>c&&(a=b[c]);c++)j(a)}()),b(function(){HTMLImports.ready=!0,HTMLImports.readyTime=(new Date).getTime(),o.dispatchEvent(new CustomEvent("HTMLImportsLoaded",{bubbles:!0}))}),a.IMPORT_LINK_TYPE=k,a.useNative=l,a.rootDocument=o,a.whenReady=b,a.isIE=q}(HTMLImports),function(){var a=document.createElement("style");a.textContent="body {transition: opacity ease-in 0.2s; } \nbody[unresolved] {opacity: 0; display: block; overflow: hidden; } \n";var b=document.querySelector("head");b.insertBefore(a,b.firstChild)}(Platform)),function(a){"use strict";function b(){function a(a){b=a}if("function"!=typeof Object.observe||"function"!=typeof Array.observe)return!1;var b=[],c={},d=[];return Object.observe(c,a),Array.observe(d,a),c.id=1,c.id=2,delete c.id,d.push(1,2),d.length=0,Object.deliverChangeRecords(a),5!==b.length?!1:"add"!=b[0].type||"update"!=b[1].type||"delete"!=b[2].type||"splice"!=b[3].type||"splice"!=b[4].type?!1:(Object.unobserve(c,a),Array.unobserve(d,a),!0)}function c(){if("undefined"!=typeof chrome&&chrome.app&&chrome.app.runtime)return!1;if("undefined"!=typeof navigator&&navigator.getDeviceStorage)return!1;try{var a=new Function("","return true;");return a()}catch(b){return!1}}function d(a){return+a===a>>>0&&""!==a}function e(a){return+a}function f(a){return a===Object(a)}function g(a,b){return a===b?0!==a||1/a===1/b:R(a)&&R(b)?!0:a!==a&&b!==b}function h(a){if(void 0===a)return"eof";var b=a.charCodeAt(0);switch(b){case 91:case 93:case 46:case 34:case 39:case 48:return a;case 95:case 36:return"ident";case 32:case 9:case 10:case 13:case 160:case 65279:case 8232:case 8233:return"ws"}return b>=97&&122>=b||b>=65&&90>=b?"ident":b>=49&&57>=b?"number":"else"}function i(){}function j(a){function b(){if(!(m>=a.length)){var b=a[m+1];return"inSingleQuote"==n&&"'"==b||"inDoubleQuote"==n&&'"'==b?(m++,d=b,o.append(),!0):void 0}}for(var c,d,e,f,g,j,k,l=[],m=-1,n="beforePath",o={push:function(){void 0!==e&&(l.push(e),e=void 0)},append:function(){void 0===e?e=d:e+=d}};n;)if(m++,c=a[m],"\\"!=c||!b(n)){if(f=h(c),k=W[n],g=k[f]||k["else"]||"error","error"==g)return;if(n=g[0],j=o[g[1]]||i,d=void 0===g[2]?c:g[2],j(),"afterPath"===n)return l}}function k(a){return V.test(a)}function l(a,b){if(b!==X)throw Error("Use Path.get to retrieve path objects");for(var c=0;c<a.length;c++)this.push(String(a[c]));Q&&this.length&&(this.getValueFrom=this.compiledGetValueFromFn())}function m(a){if(a instanceof l)return a;if((null==a||0==a.length)&&(a=""),"string"!=typeof a){if(d(a.length))return new l(a,X);a=String(a)}var b=Y[a];if(b)return b;var c=j(a);if(!c)return Z;var b=new l(c,X);return Y[a]=b,b}function n(a){return d(a)?"["+a+"]":'["'+a.replace(/"/g,'\\"')+'"]'}function o(b){for(var c=0;_>c&&b.check_();)c++;return O&&(a.dirtyCheckCycleCount=c),c>0}function p(a){for(var b in a)return!1;return!0}function q(a){return p(a.added)&&p(a.removed)&&p(a.changed)}function r(a,b){var c={},d={},e={};for(var f in b){var g=a[f];(void 0===g||g!==b[f])&&(f in a?g!==b[f]&&(e[f]=g):d[f]=void 0)}for(var f in a)f in b||(c[f]=a[f]);return Array.isArray(a)&&a.length!==b.length&&(e.length=a.length),{added:c,removed:d,changed:e}}function s(){if(!ab.length)return!1;for(var a=0;a<ab.length;a++)ab[a]();return ab.length=0,!0}function t(){function a(a){b&&b.state_===fb&&!d&&b.check_(a)}var b,c,d=!1,e=!0;return{open:function(c){if(b)throw Error("ObservedObject in use");e||Object.deliverChangeRecords(a),b=c,e=!1},observe:function(b,d){c=b,d?Array.observe(c,a):Object.observe(c,a)},deliver:function(b){d=b,Object.deliverChangeRecords(a),d=!1},close:function(){b=void 0,Object.unobserve(c,a),cb.push(this)}}}function u(a,b,c){var d=cb.pop()||t();return d.open(a),d.observe(b,c),d}function v(){function a(b,f){b&&(b===d&&(e[f]=!0),h.indexOf(b)<0&&(h.push(b),Object.observe(b,c)),a(Object.getPrototypeOf(b),f))}function b(a){for(var b=0;b<a.length;b++){var c=a[b];if(c.object!==d||e[c.name]||"setPrototype"===c.type)return!1}return!0}function c(c){if(!b(c)){for(var d,e=0;e<g.length;e++)d=g[e],d.state_==fb&&d.iterateObjects_(a);for(var e=0;e<g.length;e++)d=g[e],d.state_==fb&&d.check_()}}var d,e,f=0,g=[],h=[],i={objects:h,get rootObject(){return d},set rootObject(a){d=a,e={}},open:function(b){g.push(b),f++,b.iterateObjects_(a)},close:function(){if(f--,!(f>0)){for(var a=0;a<h.length;a++)Object.unobserve(h[a],c),x.unobservedCount++;g.length=0,h.length=0,d=void 0,e=void 0,db.push(this),$===this&&($=null)}}};return i}function w(a,b){return $&&$.rootObject===b||($=db.pop()||v(),$.rootObject=b),$.open(a,b),$}function x(){this.state_=eb,this.callback_=void 0,this.target_=void 0,this.directObserver_=void 0,this.value_=void 0,this.id_=ib++}function y(a){x._allObserversCount++,kb&&jb.push(a)}function z(){x._allObserversCount--}function A(a){x.call(this),this.value_=a,this.oldObject_=void 0}function B(a){if(!Array.isArray(a))throw Error("Provided object is not an Array");A.call(this,a)}function C(a,b){x.call(this),this.object_=a,this.path_=m(b),this.directObserver_=void 0}function D(a){x.call(this),this.reportChangesOnOpen_=a,this.value_=[],this.directObserver_=void 0,this.observed_=[]}function E(a){return a}function F(a,b,c,d){this.callback_=void 0,this.target_=void 0,this.value_=void 0,this.observable_=a,this.getValueFn_=b||E,this.setValueFn_=c||E,this.dontPassThroughSet_=d}function G(a,b,c){for(var d={},e={},f=0;f<b.length;f++){var g=b[f];nb[g.type]?(g.name in c||(c[g.name]=g.oldValue),"update"!=g.type&&("add"!=g.type?g.name in d?(delete d[g.name],delete c[g.name]):e[g.name]=!0:g.name in e?delete e[g.name]:d[g.name]=!0)):(console.error("Unknown changeRecord type: "+g.type),console.error(g))}for(var h in d)d[h]=a[h];for(var h in e)e[h]=void 0;var i={};for(var h in c)if(!(h in d||h in e)){var j=a[h];c[h]!==j&&(i[h]=j)}return{added:d,removed:e,changed:i}}function H(a,b,c){return{index:a,removed:b,addedCount:c}}function I(){}function J(a,b,c,d,e,f){return sb.calcSplices(a,b,c,d,e,f)}function K(a,b,c,d){return c>b||a>d?-1:b==c||d==a?0:c>a?d>b?b-c:d-c:b>d?d-a:b-a}function L(a,b,c,d){for(var e=H(b,c,d),f=!1,g=0,h=0;h<a.length;h++){var i=a[h];if(i.index+=g,!f){var j=K(e.index,e.index+e.removed.length,i.index,i.index+i.addedCount);if(j>=0){a.splice(h,1),h--,g-=i.addedCount-i.removed.length,e.addedCount+=i.addedCount-j;var k=e.removed.length+i.removed.length-j;if(e.addedCount||k){var c=i.removed;if(e.index<i.index){var l=e.removed.slice(0,i.index-e.index);Array.prototype.push.apply(l,c),c=l}if(e.index+e.removed.length>i.index+i.addedCount){var m=e.removed.slice(i.index+i.addedCount-e.index);Array.prototype.push.apply(c,m)}e.removed=c,i.index<e.index&&(e.index=i.index)}else f=!0}else if(e.index<i.index){f=!0,a.splice(h,0,e),h++;var n=e.addedCount-e.removed.length;i.index+=n,g+=n}}}f||a.push(e)}function M(a,b){for(var c=[],f=0;f<b.length;f++){var g=b[f];switch(g.type){case"splice":L(c,g.index,g.removed.slice(),g.addedCount);break;case"add":case"update":case"delete":if(!d(g.name))continue;var h=e(g.name);if(0>h)continue;L(c,h,[g.oldValue],1);break;default:console.error("Unexpected record type: "+JSON.stringify(g))}}return c}function N(a,b){var c=[];return M(a,b).forEach(function(b){return 1==b.addedCount&&1==b.removed.length?void(b.removed[0]!==a[b.index]&&c.push(b)):void(c=c.concat(J(a,b.index,b.index+b.addedCount,b.removed,0,b.removed.length)))}),c}var O=a.testingExposeCycleCount,P=b(),Q=c(),R=a.Number.isNaN||function(b){return"number"==typeof b&&a.isNaN(b)},S="__proto__"in{}?function(a){return a}:function(a){var b=a.__proto__;if(!b)return a;var c=Object.create(b);return Object.getOwnPropertyNames(a).forEach(function(b){Object.defineProperty(c,b,Object.getOwnPropertyDescriptor(a,b))}),c},T="[$_a-zA-Z]",U="[$_a-zA-Z0-9]",V=new RegExp("^"+T+"+"+U+"*$"),W={beforePath:{ws:["beforePath"],ident:["inIdent","append"],"[":["beforeElement"],eof:["afterPath"]},inPath:{ws:["inPath"],".":["beforeIdent"],"[":["beforeElement"],eof:["afterPath"]},beforeIdent:{ws:["beforeIdent"],ident:["inIdent","append"]},inIdent:{ident:["inIdent","append"],0:["inIdent","append"],number:["inIdent","append"],ws:["inPath","push"],".":["beforeIdent","push"],"[":["beforeElement","push"],eof:["afterPath","push"]},beforeElement:{ws:["beforeElement"],0:["afterZero","append"],number:["inIndex","append"],"'":["inSingleQuote","append",""],'"':["inDoubleQuote","append",""]},afterZero:{ws:["afterElement","push"],"]":["inPath","push"]},inIndex:{0:["inIndex","append"],number:["inIndex","append"],ws:["afterElement"],"]":["inPath","push"]},inSingleQuote:{"'":["afterElement"],eof:["error"],"else":["inSingleQuote","append"]},inDoubleQuote:{'"':["afterElement"],eof:["error"],"else":["inDoubleQuote","append"]},afterElement:{ws:["afterElement"],"]":["inPath","push"]}},X={},Y={};l.get=m,l.prototype=S({__proto__:[],valid:!0,toString:function(){for(var a="",b=0;b<this.length;b++){var c=this[b];a+=k(c)?b?"."+c:c:n(c)}return a},getValueFrom:function(a){for(var b=0;b<this.length;b++){if(null==a)return;a=a[this[b]]}return a},iterateObjects:function(a,b){for(var c=0;c<this.length;c++){if(c&&(a=a[this[c-1]]),!f(a))return;b(a,this[c])}},compiledGetValueFromFn:function(){var a="",b="obj";a+="if (obj != null";for(var c,d=0;d<this.length-1;d++)c=this[d],b+=k(c)?"."+c:n(c),a+=" &&\n "+b+" != null";a+=")\n";var c=this[d];return b+=k(c)?"."+c:n(c),a+=" return "+b+";\nelse\n return undefined;",new Function("obj",a)},setValueFrom:function(a,b){if(!this.length)return!1;for(var c=0;c<this.length-1;c++){if(!f(a))return!1;a=a[this[c]]}return f(a)?(a[this[c]]=b,!0):!1}});var Z=new l("",X);Z.valid=!1,Z.getValueFrom=Z.setValueFrom=function(){};var $,_=1e3,ab=[],bb=P?function(){return function(a){return Promise.resolve().then(a)}}():function(){return function(a){ab.push(a)}}(),cb=[],db=[],eb=0,fb=1,gb=2,hb=3,ib=1;x.prototype={open:function(a,b){if(this.state_!=eb)throw Error("Observer has already been opened.");return y(this),this.callback_=a,this.target_=b,this.connect_(),this.state_=fb,this.value_},close:function(){this.state_==fb&&(z(this),this.disconnect_(),this.value_=void 0,this.callback_=void 0,this.target_=void 0,this.state_=gb)},deliver:function(){this.state_==fb&&o(this)},report_:function(a){try{this.callback_.apply(this.target_,a)}catch(b){x._errorThrownDuringCallback=!0,console.error("Exception caught during observer callback: "+(b.stack||b))}},discardChanges:function(){return this.check_(void 0,!0),this.value_}};var jb,kb=!P;x._allObserversCount=0,kb&&(jb=[]);var lb=!1;a.Platform=a.Platform||{},a.Platform.performMicrotaskCheckpoint=function(){if(!lb&&kb){lb=!0;var b,c,d=0;do{d++,c=jb,jb=[],b=!1;for(var e=0;e<c.length;e++){var f=c[e];f.state_==fb&&(f.check_()&&(b=!0),jb.push(f))}s()&&(b=!0)}while(_>d&&b);O&&(a.dirtyCheckCycleCount=d),lb=!1}},kb&&(a.Platform.clearObservers=function(){jb=[]}),A.prototype=S({__proto__:x.prototype,arrayObserve:!1,connect_:function(){P?this.directObserver_=u(this,this.value_,this.arrayObserve):this.oldObject_=this.copyObject(this.value_)},copyObject:function(a){var b=Array.isArray(a)?[]:{};for(var c in a)b[c]=a[c];return Array.isArray(a)&&(b.length=a.length),b},check_:function(a){var b,c;if(P){if(!a)return!1;c={},b=G(this.value_,a,c)}else c=this.oldObject_,b=r(this.value_,this.oldObject_);return q(b)?!1:(P||(this.oldObject_=this.copyObject(this.value_)),this.report_([b.added||{},b.removed||{},b.changed||{},function(a){return c[a]}]),!0)},disconnect_:function(){P?(this.directObserver_.close(),this.directObserver_=void 0):this.oldObject_=void 0},deliver:function(){this.state_==fb&&(P?this.directObserver_.deliver(!1):o(this))},discardChanges:function(){return this.directObserver_?this.directObserver_.deliver(!0):this.oldObject_=this.copyObject(this.value_),this.value_}}),B.prototype=S({__proto__:A.prototype,arrayObserve:!0,copyObject:function(a){return a.slice()},check_:function(a){var b;if(P){if(!a)return!1;b=N(this.value_,a)}else b=J(this.value_,0,this.value_.length,this.oldObject_,0,this.oldObject_.length);return b&&b.length?(P||(this.oldObject_=this.copyObject(this.value_)),this.report_([b]),!0):!1}}),B.applySplices=function(a,b,c){c.forEach(function(c){for(var d=[c.index,c.removed.length],e=c.index;e<c.index+c.addedCount;)d.push(b[e]),e++;Array.prototype.splice.apply(a,d)})},C.prototype=S({__proto__:x.prototype,get path(){return this.path_},connect_:function(){P&&(this.directObserver_=w(this,this.object_)),this.check_(void 0,!0)},disconnect_:function(){this.value_=void 0,this.directObserver_&&(this.directObserver_.close(this),this.directObserver_=void 0)},iterateObjects_:function(a){this.path_.iterateObjects(this.object_,a)},check_:function(a,b){var c=this.value_;return this.value_=this.path_.getValueFrom(this.object_),b||g(this.value_,c)?!1:(this.report_([this.value_,c,this]),!0)},setValue:function(a){this.path_&&this.path_.setValueFrom(this.object_,a)}});var mb={};D.prototype=S({__proto__:x.prototype,connect_:function(){if(P){for(var a,b=!1,c=0;c<this.observed_.length;c+=2)if(a=this.observed_[c],a!==mb){b=!0;break}b&&(this.directObserver_=w(this,a))}this.check_(void 0,!this.reportChangesOnOpen_)},disconnect_:function(){for(var a=0;a<this.observed_.length;a+=2)this.observed_[a]===mb&&this.observed_[a+1].close();this.observed_.length=0,this.value_.length=0,this.directObserver_&&(this.directObserver_.close(this),this.directObserver_=void 0)},addPath:function(a,b){if(this.state_!=eb&&this.state_!=hb)throw Error("Cannot add paths once started.");var b=m(b);if(this.observed_.push(a,b),this.reportChangesOnOpen_){var c=this.observed_.length/2-1;this.value_[c]=b.getValueFrom(a)}},addObserver:function(a){if(this.state_!=eb&&this.state_!=hb)throw Error("Cannot add observers once started.");if(this.observed_.push(mb,a),this.reportChangesOnOpen_){var b=this.observed_.length/2-1;this.value_[b]=a.open(this.deliver,this)}},startReset:function(){if(this.state_!=fb)throw Error("Can only reset while open");this.state_=hb,this.disconnect_()},finishReset:function(){if(this.state_!=hb)throw Error("Can only finishReset after startReset");return this.state_=fb,this.connect_(),this.value_},iterateObjects_:function(a){for(var b,c=0;c<this.observed_.length;c+=2)b=this.observed_[c],b!==mb&&this.observed_[c+1].iterateObjects(b,a)},check_:function(a,b){for(var c,d=0;d<this.observed_.length;d+=2){var e,f=this.observed_[d],h=this.observed_[d+1];if(f===mb){var i=h;e=this.state_===eb?i.open(this.deliver,this):i.discardChanges()}else e=h.getValueFrom(f);b?this.value_[d/2]=e:g(e,this.value_[d/2])||(c=c||[],c[d/2]=this.value_[d/2],this.value_[d/2]=e)}return c?(this.report_([this.value_,c,this.observed_]),!0):!1}}),F.prototype={open:function(a,b){return this.callback_=a,this.target_=b,this.value_=this.getValueFn_(this.observable_.open(this.observedCallback_,this)),this.value_},observedCallback_:function(a){if(a=this.getValueFn_(a),!g(a,this.value_)){var b=this.value_;this.value_=a,this.callback_.call(this.target_,this.value_,b)}},discardChanges:function(){return this.value_=this.getValueFn_(this.observable_.discardChanges()),this.value_},deliver:function(){return this.observable_.deliver()},setValue:function(a){return a=this.setValueFn_(a),!this.dontPassThroughSet_&&this.observable_.setValue?this.observable_.setValue(a):void 0},close:function(){this.observable_&&this.observable_.close(),this.callback_=void 0,this.target_=void 0,this.observable_=void 0,this.value_=void 0,this.getValueFn_=void 0,this.setValueFn_=void 0}};var nb={add:!0,update:!0,"delete":!0},ob=0,pb=1,qb=2,rb=3;I.prototype={calcEditDistances:function(a,b,c,d,e,f){for(var g=f-e+1,h=c-b+1,i=new Array(g),j=0;g>j;j++)i[j]=new Array(h),i[j][0]=j;for(var k=0;h>k;k++)i[0][k]=k;for(var j=1;g>j;j++)for(var k=1;h>k;k++)if(this.equals(a[b+k-1],d[e+j-1]))i[j][k]=i[j-1][k-1];else{var l=i[j-1][k]+1,m=i[j][k-1]+1;i[j][k]=m>l?l:m}return i},spliceOperationsFromEditDistances:function(a){for(var b=a.length-1,c=a[0].length-1,d=a[b][c],e=[];b>0||c>0;)if(0!=b)if(0!=c){var f,g=a[b-1][c-1],h=a[b-1][c],i=a[b][c-1];f=i>h?g>h?h:g:g>i?i:g,f==g?(g==d?e.push(ob):(e.push(pb),d=g),b--,c--):f==h?(e.push(rb),b--,d=h):(e.push(qb),c--,d=i)}else e.push(rb),b--;else e.push(qb),c--;return e.reverse(),e},calcSplices:function(a,b,c,d,e,f){var g=0,h=0,i=Math.min(c-b,f-e);if(0==b&&0==e&&(g=this.sharedPrefix(a,d,i)),c==a.length&&f==d.length&&(h=this.sharedSuffix(a,d,i-g)),b+=g,e+=g,c-=h,f-=h,c-b==0&&f-e==0)return[];if(b==c){for(var j=H(b,[],0);f>e;)j.removed.push(d[e++]);return[j]}if(e==f)return[H(b,[],c-b)];for(var k=this.spliceOperationsFromEditDistances(this.calcEditDistances(a,b,c,d,e,f)),j=void 0,l=[],m=b,n=e,o=0;o<k.length;o++)switch(k[o]){case ob:j&&(l.push(j),j=void 0),m++,n++;break;case pb:j||(j=H(m,[],0)),j.addedCount++,m++,j.removed.push(d[n]),n++;break;case qb:j||(j=H(m,[],0)),j.addedCount++,m++;break;case rb:j||(j=H(m,[],0)),j.removed.push(d[n]),n++}return j&&l.push(j),l},sharedPrefix:function(a,b,c){for(var d=0;c>d;d++)if(!this.equals(a[d],b[d]))return d;return c},sharedSuffix:function(a,b,c){for(var d=a.length,e=b.length,f=0;c>f&&this.equals(a[--d],b[--e]);)f++;return f},calculateSplices:function(a,b){return this.calcSplices(a,0,a.length,b,0,b.length)},equals:function(a,b){return a===b}};var sb=new I,tb=a;"undefined"==typeof exports||exports.nodeType||("undefined"!=typeof module&&module.exports&&(exports=module.exports),tb=exports),tb.Observer=x,tb.Observer.runEOM_=bb,tb.Observer.observerSentinel_=mb,tb.Observer.hasObjectObserve=P,tb.ArrayObserver=B,tb.ArrayObserver.calculateSplices=function(a,b){return sb.calculateSplices(a,b)},tb.ArraySplice=I,tb.ObjectObserver=A,tb.PathObserver=C,tb.CompoundObserver=D,tb.Path=l,tb.ObserverTransform=F}("undefined"!=typeof global&&global&&"undefined"!=typeof module&&module?global:this||window),function(){"use strict";function a(a){for(;a.parentNode;)a=a.parentNode;return"function"==typeof a.getElementById?a:null}function b(a,b,c){var d=a.bindings_;return d||(d=a.bindings_={}),d[b]&&c[b].close(),d[b]=c}function c(a,b,c){return c}function d(a){return null==a?"":a}function e(a,b){a.data=d(b)}function f(a){return function(b){return e(a,b)}}function g(a,b,c,e){return c?void(e?a.setAttribute(b,""):a.removeAttribute(b)):void a.setAttribute(b,d(e))}function h(a,b,c){return function(d){g(a,b,c,d)}}function i(a){switch(a.type){case"checkbox":return u;case"radio":case"select-multiple":case"select-one":return"change";case"range":if(/Trident|MSIE/.test(navigator.userAgent))return"change";default:return"input"}}function j(a,b,c,e){a[b]=(e||d)(c)}function k(a,b,c){return function(d){return j(a,b,d,c)}}function l(){}function m(a,b,c,d){function e(){var e="value"==b&&"number"==a.type;c.setValue(e?a.valueAsNumber:a[b]),c.discardChanges(),(d||l)(a),Platform.performMicrotaskCheckpoint()}var f=i(a);return a.addEventListener(f,e),{close:function(){a.removeEventListener(f,e),c.close()},observable_:c}}function n(a){return Boolean(a)}function o(b){if(b.form)return s(b.form.elements,function(a){return a!=b&&"INPUT"==a.tagName&&"radio"==a.type&&a.name==b.name});var c=a(b);if(!c)return[];var d=c.querySelectorAll('input[type="radio"][name="'+b.name+'"]');return s(d,function(a){return a!=b&&!a.form})}function p(a){"INPUT"===a.tagName&&"radio"===a.type&&o(a).forEach(function(a){var b=a.bindings_.checked;b&&b.observable_.setValue(!1)})}function q(a,b){var c,e,f,g=a.parentNode;g instanceof HTMLSelectElement&&g.bindings_&&g.bindings_.value&&(c=g,e=c.bindings_.value,f=c.value),a.value=d(b),c&&c.value!=f&&(e.observable_.setValue(c.value),e.observable_.discardChanges(),Platform.performMicrotaskCheckpoint())}function r(a){return function(b){q(a,b)}}var s=Array.prototype.filter.call.bind(Array.prototype.filter);Node.prototype.bind=function(a,b){console.error("Unhandled binding to Node: ",this,a,b)},Node.prototype.bindFinished=function(){};var t=c;Object.defineProperty(Platform,"enableBindingsReflection",{get:function(){return t===b},set:function(a){return t=a?b:c,a},configurable:!0}),Text.prototype.bind=function(a,b,c){if("textContent"!==a)return Node.prototype.bind.call(this,a,b,c);if(c)return e(this,b);var d=b;return e(this,d.open(f(this))),t(this,a,d)},Element.prototype.bind=function(a,b,c){var d="?"==a[a.length-1];if(d&&(this.removeAttribute(a),a=a.slice(0,-1)),c)return g(this,a,d,b);var e=b;return g(this,a,d,e.open(h(this,a,d))),t(this,a,e)};var u;!function(){var a=document.createElement("div"),b=a.appendChild(document.createElement("input"));b.setAttribute("type","checkbox");var c,d=0;b.addEventListener("click",function(){d++,c=c||"click"}),b.addEventListener("change",function(){d++,c=c||"change"});var e=document.createEvent("MouseEvent");e.initMouseEvent("click",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),b.dispatchEvent(e),u=1==d?"change":c}(),HTMLInputElement.prototype.bind=function(a,c,e){if("value"!==a&&"checked"!==a)return HTMLElement.prototype.bind.call(this,a,c,e);this.removeAttribute(a);var f="checked"==a?n:d,g="checked"==a?p:l;if(e)return j(this,a,c,f);var h=c,i=m(this,a,h,g);return j(this,a,h.open(k(this,a,f)),f),b(this,a,i)},HTMLTextAreaElement.prototype.bind=function(a,b,c){if("value"!==a)return HTMLElement.prototype.bind.call(this,a,b,c);if(this.removeAttribute("value"),c)return j(this,"value",b);var e=b,f=m(this,"value",e);return j(this,"value",e.open(k(this,"value",d))),t(this,a,f)},HTMLOptionElement.prototype.bind=function(a,b,c){if("value"!==a)return HTMLElement.prototype.bind.call(this,a,b,c);if(this.removeAttribute("value"),c)return q(this,b);var d=b,e=m(this,"value",d);
return q(this,d.open(r(this))),t(this,a,e)},HTMLSelectElement.prototype.bind=function(a,c,d){if("selectedindex"===a&&(a="selectedIndex"),"selectedIndex"!==a&&"value"!==a)return HTMLElement.prototype.bind.call(this,a,c,d);if(this.removeAttribute(a),d)return j(this,a,c);var e=c,f=m(this,a,e);return j(this,a,e.open(k(this,a))),b(this,a,f)}}(this),function(a){"use strict";function b(a){if(!a)throw new Error("Assertion failed")}function c(a){for(var b;b=a.parentNode;)a=b;return a}function d(a,b){if(b){for(var d,e="#"+b;!d&&(a=c(a),a.protoContent_?d=a.protoContent_.querySelector(e):a.getElementById&&(d=a.getElementById(b)),!d&&a.templateCreator_);)a=a.templateCreator_;return d}}function e(a){return"template"==a.tagName&&"http://www.w3.org/2000/svg"==a.namespaceURI}function f(a){return"TEMPLATE"==a.tagName&&"http://www.w3.org/1999/xhtml"==a.namespaceURI}function g(a){return Boolean(L[a.tagName]&&a.hasAttribute("template"))}function h(a){return void 0===a.isTemplate_&&(a.isTemplate_="TEMPLATE"==a.tagName||g(a)),a.isTemplate_}function i(a,b){var c=a.querySelectorAll(N);h(a)&&b(a),G(c,b)}function j(a){function b(a){HTMLTemplateElement.decorate(a)||j(a.content)}i(a,b)}function k(a,b){Object.getOwnPropertyNames(b).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))})}function l(a){var b=a.ownerDocument;if(!b.defaultView)return b;var c=b.templateContentsOwner_;if(!c){for(c=b.implementation.createHTMLDocument("");c.lastChild;)c.removeChild(c.lastChild);b.templateContentsOwner_=c}return c}function m(a){if(!a.stagingDocument_){var b=a.ownerDocument;if(!b.stagingDocument_){b.stagingDocument_=b.implementation.createHTMLDocument(""),b.stagingDocument_.isStagingDocument=!0;var c=b.stagingDocument_.createElement("base");c.href=document.baseURI,b.stagingDocument_.head.appendChild(c),b.stagingDocument_.stagingDocument_=b.stagingDocument_}a.stagingDocument_=b.stagingDocument_}return a.stagingDocument_}function n(a){var b=a.ownerDocument.createElement("template");a.parentNode.insertBefore(b,a);for(var c=a.attributes,d=c.length;d-->0;){var e=c[d];K[e.name]&&("template"!==e.name&&b.setAttribute(e.name,e.value),a.removeAttribute(e.name))}return b}function o(a){var b=a.ownerDocument.createElement("template");a.parentNode.insertBefore(b,a);for(var c=a.attributes,d=c.length;d-->0;){var e=c[d];b.setAttribute(e.name,e.value),a.removeAttribute(e.name)}return a.parentNode.removeChild(a),b}function p(a,b,c){var d=a.content;if(c)return void d.appendChild(b);for(var e;e=b.firstChild;)d.appendChild(e)}function q(a){P?a.__proto__=HTMLTemplateElement.prototype:k(a,HTMLTemplateElement.prototype)}function r(a){a.setModelFn_||(a.setModelFn_=function(){a.setModelFnScheduled_=!1;var b=z(a,a.delegate_&&a.delegate_.prepareBinding);w(a,b,a.model_)}),a.setModelFnScheduled_||(a.setModelFnScheduled_=!0,Observer.runEOM_(a.setModelFn_))}function s(a,b,c,d){if(a&&a.length){for(var e,f=a.length,g=0,h=0,i=0,j=!0;f>h;){var g=a.indexOf("{{",h),k=a.indexOf("[[",h),l=!1,m="}}";if(k>=0&&(0>g||g>k)&&(g=k,l=!0,m="]]"),i=0>g?-1:a.indexOf(m,g+2),0>i){if(!e)return;e.push(a.slice(h));break}e=e||[],e.push(a.slice(h,g));var n=a.slice(g+2,i).trim();e.push(l),j=j&&l;var o=d&&d(n,b,c);e.push(null==o?Path.get(n):null),e.push(o),h=i+2}return h===f&&e.push(""),e.hasOnePath=5===e.length,e.isSimplePath=e.hasOnePath&&""==e[0]&&""==e[4],e.onlyOneTime=j,e.combinator=function(a){for(var b=e[0],c=1;c<e.length;c+=4){var d=e.hasOnePath?a:a[(c-1)/4];void 0!==d&&(b+=d),b+=e[c+3]}return b},e}}function t(a,b,c,d){if(b.hasOnePath){var e=b[3],f=e?e(d,c,!0):b[2].getValueFrom(d);return b.isSimplePath?f:b.combinator(f)}for(var g=[],h=1;h<b.length;h+=4){var e=b[h+2];g[(h-1)/4]=e?e(d,c):b[h+1].getValueFrom(d)}return b.combinator(g)}function u(a,b,c,d){var e=b[3],f=e?e(d,c,!1):new PathObserver(d,b[2]);return b.isSimplePath?f:new ObserverTransform(f,b.combinator)}function v(a,b,c,d){if(b.onlyOneTime)return t(a,b,c,d);if(b.hasOnePath)return u(a,b,c,d);for(var e=new CompoundObserver,f=1;f<b.length;f+=4){var g=b[f],h=b[f+2];if(h){var i=h(d,c,g);g?e.addPath(i):e.addObserver(i)}else{var j=b[f+1];g?e.addPath(j.getValueFrom(d)):e.addPath(d,j)}}return new ObserverTransform(e,b.combinator)}function w(a,b,c,d){for(var e=0;e<b.length;e+=2){var f=b[e],g=b[e+1],h=v(f,g,a,c),i=a.bind(f,h,g.onlyOneTime);i&&d&&d.push(i)}if(a.bindFinished(),b.isTemplate){a.model_=c;var j=a.processBindingDirectives_(b);d&&j&&d.push(j)}}function x(a,b,c){var d=a.getAttribute(b);return s(""==d?"{{}}":d,b,a,c)}function y(a,c){b(a);for(var d=[],e=0;e<a.attributes.length;e++){for(var f=a.attributes[e],g=f.name,i=f.value;"_"===g[0];)g=g.substring(1);if(!h(a)||g!==J&&g!==H&&g!==I){var j=s(i,g,a,c);j&&d.push(g,j)}}return h(a)&&(d.isTemplate=!0,d["if"]=x(a,J,c),d.bind=x(a,H,c),d.repeat=x(a,I,c),!d["if"]||d.bind||d.repeat||(d.bind=s("{{}}",H,a,c))),d}function z(a,b){if(a.nodeType===Node.ELEMENT_NODE)return y(a,b);if(a.nodeType===Node.TEXT_NODE){var c=s(a.data,"textContent",a,b);if(c)return["textContent",c]}return[]}function A(a,b,c,d,e,f,g){for(var h=b.appendChild(c.importNode(a,!1)),i=0,j=a.firstChild;j;j=j.nextSibling)A(j,h,c,d.children[i++],e,f,g);return d.isTemplate&&(HTMLTemplateElement.decorate(h,a),f&&h.setDelegate_(f)),w(h,d,e,g),h}function B(a,b){var c=z(a,b);c.children={};for(var d=0,e=a.firstChild;e;e=e.nextSibling)c.children[d++]=B(e,b);return c}function C(a){var b=a.id_;return b||(b=a.id_=S++),b}function D(a,b){var c=C(a);if(b){var d=b.bindingMaps[c];return d||(d=b.bindingMaps[c]=B(a,b.prepareBinding)||[]),d}var d=a.bindingMap_;return d||(d=a.bindingMap_=B(a,void 0)||[]),d}function E(a){this.closed=!1,this.templateElement_=a,this.instances=[],this.deps=void 0,this.iteratedValue=[],this.presentValue=void 0,this.arrayObserver=void 0}var F,G=Array.prototype.forEach.call.bind(Array.prototype.forEach);a.Map&&"function"==typeof a.Map.prototype.forEach?F=a.Map:(F=function(){this.keys=[],this.values=[]},F.prototype={set:function(a,b){var c=this.keys.indexOf(a);0>c?(this.keys.push(a),this.values.push(b)):this.values[c]=b},get:function(a){var b=this.keys.indexOf(a);if(!(0>b))return this.values[b]},"delete":function(a){var b=this.keys.indexOf(a);return 0>b?!1:(this.keys.splice(b,1),this.values.splice(b,1),!0)},forEach:function(a,b){for(var c=0;c<this.keys.length;c++)a.call(b||this,this.values[c],this.keys[c],this)}});"function"!=typeof document.contains&&(Document.prototype.contains=function(a){return a===this||a.parentNode===this?!0:this.documentElement.contains(a)});var H="bind",I="repeat",J="if",K={template:!0,repeat:!0,bind:!0,ref:!0,"if":!0},L={THEAD:!0,TBODY:!0,TFOOT:!0,TH:!0,TR:!0,TD:!0,COLGROUP:!0,COL:!0,CAPTION:!0,OPTION:!0,OPTGROUP:!0},M="undefined"!=typeof HTMLTemplateElement;M&&!function(){var a=document.createElement("template"),b=a.content.ownerDocument,c=b.appendChild(b.createElement("html")),d=c.appendChild(b.createElement("head")),e=b.createElement("base");e.href=document.baseURI,d.appendChild(e)}();var N="template, "+Object.keys(L).map(function(a){return a.toLowerCase()+"[template]"}).join(", ");document.addEventListener("DOMContentLoaded",function(){j(document),Platform.performMicrotaskCheckpoint()},!1),M||(a.HTMLTemplateElement=function(){throw TypeError("Illegal constructor")});var O,P="__proto__"in{};"function"==typeof MutationObserver&&(O=new MutationObserver(function(a){for(var b=0;b<a.length;b++)a[b].target.refChanged_()})),HTMLTemplateElement.decorate=function(a,c){if(a.templateIsDecorated_)return!1;var d=a;d.templateIsDecorated_=!0;var h=f(d)&&M,i=h,k=!h,m=!1;if(h||(g(d)?(b(!c),d=n(a),d.templateIsDecorated_=!0,h=M,m=!0):e(d)&&(d=o(a),d.templateIsDecorated_=!0,h=M)),!h){q(d);var r=l(d);d.content_=r.createDocumentFragment()}return c?d.instanceRef_=c:k?p(d,a,m):i&&j(d.content),!0},HTMLTemplateElement.bootstrap=j;var Q=a.HTMLUnknownElement||HTMLElement,R={get:function(){return this.content_},enumerable:!0,configurable:!0};M||(HTMLTemplateElement.prototype=Object.create(Q.prototype),Object.defineProperty(HTMLTemplateElement.prototype,"content",R)),k(HTMLTemplateElement.prototype,{bind:function(a,b,c){if("ref"!=a)return Element.prototype.bind.call(this,a,b,c);var d=this,e=c?b:b.open(function(a){d.setAttribute("ref",a),d.refChanged_()});return this.setAttribute("ref",e),this.refChanged_(),c?void 0:(this.bindings_?this.bindings_.ref=b:this.bindings_={ref:b},b)},processBindingDirectives_:function(a){return this.iterator_&&this.iterator_.closeDeps(),a["if"]||a.bind||a.repeat?(this.iterator_||(this.iterator_=new E(this)),this.iterator_.updateDependencies(a,this.model_),O&&O.observe(this,{attributes:!0,attributeFilter:["ref"]}),this.iterator_):void(this.iterator_&&(this.iterator_.close(),this.iterator_=void 0))},createInstance:function(a,b,c){b?c=this.newDelegate_(b):c||(c=this.delegate_),this.refContent_||(this.refContent_=this.ref_.content);var d=this.refContent_;if(null===d.firstChild)return T;var e=D(d,c),f=m(this),g=f.createDocumentFragment();g.templateCreator_=this,g.protoContent_=d,g.bindings_=[],g.terminator_=null;for(var h=g.templateInstance_={firstNode:null,lastNode:null,model:a},i=0,j=!1,k=d.firstChild;k;k=k.nextSibling){null===k.nextSibling&&(j=!0);var l=A(k,g,f,e.children[i++],a,c,g.bindings_);l.templateInstance_=h,j&&(g.terminator_=l)}return h.firstNode=g.firstChild,h.lastNode=g.lastChild,g.templateCreator_=void 0,g.protoContent_=void 0,g},get model(){return this.model_},set model(a){this.model_=a,r(this)},get bindingDelegate(){return this.delegate_&&this.delegate_.raw},refChanged_:function(){this.iterator_&&this.refContent_!==this.ref_.content&&(this.refContent_=void 0,this.iterator_.valueChanged(),this.iterator_.updateIteratedValue(this.iterator_.getUpdatedValue()))},clear:function(){this.model_=void 0,this.delegate_=void 0,this.bindings_&&this.bindings_.ref&&this.bindings_.ref.close(),this.refContent_=void 0,this.iterator_&&(this.iterator_.valueChanged(),this.iterator_.close(),this.iterator_=void 0)},setDelegate_:function(a){this.delegate_=a,this.bindingMap_=void 0,this.iterator_&&(this.iterator_.instancePositionChangedFn_=void 0,this.iterator_.instanceModelFn_=void 0)},newDelegate_:function(a){function b(b){var c=a&&a[b];if("function"==typeof c)return function(){return c.apply(a,arguments)}}if(a)return{bindingMaps:{},raw:a,prepareBinding:b("prepareBinding"),prepareInstanceModel:b("prepareInstanceModel"),prepareInstancePositionChanged:b("prepareInstancePositionChanged")}},set bindingDelegate(a){if(this.delegate_)throw Error("Template must be cleared before a new bindingDelegate can be assigned");this.setDelegate_(this.newDelegate_(a))},get ref_(){var a=d(this,this.getAttribute("ref"));if(a||(a=this.instanceRef_),!a)return this;var b=a.ref_;return b?b:a}});var S=1;Object.defineProperty(Node.prototype,"templateInstance",{get:function(){var a=this.templateInstance_;return a?a:this.parentNode?this.parentNode.templateInstance:void 0}});var T=document.createDocumentFragment();T.bindings_=[],T.terminator_=null,E.prototype={closeDeps:function(){var a=this.deps;a&&(a.ifOneTime===!1&&a.ifValue.close(),a.oneTime===!1&&a.value.close())},updateDependencies:function(a,b){this.closeDeps();var c=this.deps={},d=this.templateElement_,e=!0;if(a["if"]){if(c.hasIf=!0,c.ifOneTime=a["if"].onlyOneTime,c.ifValue=v(J,a["if"],d,b),e=c.ifValue,c.ifOneTime&&!e)return void this.valueChanged();c.ifOneTime||(e=e.open(this.updateIfValue,this))}a.repeat?(c.repeat=!0,c.oneTime=a.repeat.onlyOneTime,c.value=v(I,a.repeat,d,b)):(c.repeat=!1,c.oneTime=a.bind.onlyOneTime,c.value=v(H,a.bind,d,b));var f=c.value;return c.oneTime||(f=f.open(this.updateIteratedValue,this)),e?void this.updateValue(f):void this.valueChanged()},getUpdatedValue:function(){var a=this.deps.value;return this.deps.oneTime||(a=a.discardChanges()),a},updateIfValue:function(a){return a?void this.updateValue(this.getUpdatedValue()):void this.valueChanged()},updateIteratedValue:function(a){if(this.deps.hasIf){var b=this.deps.ifValue;if(this.deps.ifOneTime||(b=b.discardChanges()),!b)return void this.valueChanged()}this.updateValue(a)},updateValue:function(a){this.deps.repeat||(a=[a]);var b=this.deps.repeat&&!this.deps.oneTime&&Array.isArray(a);this.valueChanged(a,b)},valueChanged:function(a,b){Array.isArray(a)||(a=[]),a!==this.iteratedValue&&(this.unobserve(),this.presentValue=a,b&&(this.arrayObserver=new ArrayObserver(this.presentValue),this.arrayObserver.open(this.handleSplices,this)),this.handleSplices(ArrayObserver.calculateSplices(this.presentValue,this.iteratedValue)))},getLastInstanceNode:function(a){if(-1==a)return this.templateElement_;var b=this.instances[a],c=b.terminator_;if(!c)return this.getLastInstanceNode(a-1);if(c.nodeType!==Node.ELEMENT_NODE||this.templateElement_===c)return c;var d=c.iterator_;return d?d.getLastTemplateNode():c},getLastTemplateNode:function(){return this.getLastInstanceNode(this.instances.length-1)},insertInstanceAt:function(a,b){var c=this.getLastInstanceNode(a-1),d=this.templateElement_.parentNode;this.instances.splice(a,0,b),d.insertBefore(b,c.nextSibling)},extractInstanceAt:function(a){for(var b=this.getLastInstanceNode(a-1),c=this.getLastInstanceNode(a),d=this.templateElement_.parentNode,e=this.instances.splice(a,1)[0];c!==b;){var f=b.nextSibling;f==c&&(c=b),e.appendChild(d.removeChild(f))}return e},getDelegateFn:function(a){return a=a&&a(this.templateElement_),"function"==typeof a?a:null},handleSplices:function(a){if(!this.closed&&a.length){var b=this.templateElement_;if(!b.parentNode)return void this.close();ArrayObserver.applySplices(this.iteratedValue,this.presentValue,a);var c=b.delegate_;void 0===this.instanceModelFn_&&(this.instanceModelFn_=this.getDelegateFn(c&&c.prepareInstanceModel)),void 0===this.instancePositionChangedFn_&&(this.instancePositionChangedFn_=this.getDelegateFn(c&&c.prepareInstancePositionChanged));for(var d=new F,e=0,f=0;f<a.length;f++){for(var g=a[f],h=g.removed,i=0;i<h.length;i++){var j=h[i],k=this.extractInstanceAt(g.index+e);k!==T&&d.set(j,k)}e-=g.addedCount}for(var f=0;f<a.length;f++)for(var g=a[f],l=g.index;l<g.index+g.addedCount;l++){var j=this.iteratedValue[l],k=d.get(j);k?d["delete"](j):(this.instanceModelFn_&&(j=this.instanceModelFn_(j)),k=void 0===j?T:b.createInstance(j,void 0,c)),this.insertInstanceAt(l,k)}d.forEach(function(a){this.closeInstanceBindings(a)},this),this.instancePositionChangedFn_&&this.reportInstancesMoved(a)}},reportInstanceMoved:function(a){var b=this.instances[a];b!==T&&this.instancePositionChangedFn_(b.templateInstance_,a)},reportInstancesMoved:function(a){for(var b=0,c=0,d=0;d<a.length;d++){var e=a[d];if(0!=c)for(;b<e.index;)this.reportInstanceMoved(b),b++;else b=e.index;for(;b<e.index+e.addedCount;)this.reportInstanceMoved(b),b++;c+=e.addedCount-e.removed.length}if(0!=c)for(var f=this.instances.length;f>b;)this.reportInstanceMoved(b),b++},closeInstanceBindings:function(a){for(var b=a.bindings_,c=0;c<b.length;c++)b[c].close()},unobserve:function(){this.arrayObserver&&(this.arrayObserver.close(),this.arrayObserver=void 0)},close:function(){if(!this.closed){this.unobserve();for(var a=0;a<this.instances.length;a++)this.closeInstanceBindings(this.instances[a]);this.instances.length=0,this.closeDeps(),this.templateElement_.iterator_=void 0,this.closed=!0}}},HTMLTemplateElement.forAllTemplatesFrom_=i}(this),function(a){"use strict";function b(a){return void 0!==m[a]}function c(){h.call(this),this._isInvalid=!0}function d(a){return""==a&&c.call(this),a.toLowerCase()}function e(a){var b=a.charCodeAt(0);return b>32&&127>b&&-1==[34,35,60,62,63,96].indexOf(b)?a:encodeURIComponent(a)}function f(a){var b=a.charCodeAt(0);return b>32&&127>b&&-1==[34,35,60,62,96].indexOf(b)?a:encodeURIComponent(a)}function g(a,g,h){function i(a){t.push(a)}var j=g||"scheme start",k=0,l="",r=!1,s=!1,t=[];a:for(;(a[k-1]!=o||0==k)&&!this._isInvalid;){var u=a[k];switch(j){case"scheme start":if(!u||!p.test(u)){if(g){i("Invalid scheme.");break a}l="",j="no scheme";continue}l+=u.toLowerCase(),j="scheme";break;case"scheme":if(u&&q.test(u))l+=u.toLowerCase();else{if(":"!=u){if(g){if(o==u)break a;i("Code point not allowed in scheme: "+u);break a}l="",k=0,j="no scheme";continue}if(this._scheme=l,l="",g)break a;b(this._scheme)&&(this._isRelative=!0),j="file"==this._scheme?"relative":this._isRelative&&h&&h._scheme==this._scheme?"relative or authority":this._isRelative?"authority first slash":"scheme data"}break;case"scheme data":"?"==u?(query="?",j="query"):"#"==u?(this._fragment="#",j="fragment"):o!=u&&" "!=u&&"\n"!=u&&"\r"!=u&&(this._schemeData+=e(u));break;case"no scheme":if(h&&b(h._scheme)){j="relative";continue}i("Missing scheme."),c.call(this);break;case"relative or authority":if("/"!=u||"/"!=a[k+1]){i("Expected /, got: "+u),j="relative";continue}j="authority ignore slashes";break;case"relative":if(this._isRelative=!0,"file"!=this._scheme&&(this._scheme=h._scheme),o==u){this._host=h._host,this._port=h._port,this._path=h._path.slice(),this._query=h._query;break a}if("/"==u||"\\"==u)"\\"==u&&i("\\ is an invalid code point."),j="relative slash";else if("?"==u)this._host=h._host,this._port=h._port,this._path=h._path.slice(),this._query="?",j="query";else{if("#"!=u){var v=a[k+1],w=a[k+2];("file"!=this._scheme||!p.test(u)||":"!=v&&"|"!=v||o!=w&&"/"!=w&&"\\"!=w&&"?"!=w&&"#"!=w)&&(this._host=h._host,this._port=h._port,this._path=h._path.slice(),this._path.pop()),j="relative path";continue}this._host=h._host,this._port=h._port,this._path=h._path.slice(),this._query=h._query,this._fragment="#",j="fragment"}break;case"relative slash":if("/"!=u&&"\\"!=u){"file"!=this._scheme&&(this._host=h._host,this._port=h._port),j="relative path";continue}"\\"==u&&i("\\ is an invalid code point."),j="file"==this._scheme?"file host":"authority ignore slashes";break;case"authority first slash":if("/"!=u){i("Expected '/', got: "+u),j="authority ignore slashes";continue}j="authority second slash";break;case"authority second slash":if(j="authority ignore slashes","/"!=u){i("Expected '/', got: "+u);continue}break;case"authority ignore slashes":if("/"!=u&&"\\"!=u){j="authority";continue}i("Expected authority, got: "+u);break;case"authority":if("@"==u){r&&(i("@ already seen."),l+="%40"),r=!0;for(var x=0;x<l.length;x++){var y=l[x];if(" "!=y&&"\n"!=y&&"\r"!=y)if(":"!=y||null!==this._password){var z=e(y);null!==this._password?this._password+=z:this._username+=z}else this._password="";else i("Invalid whitespace in authority.")}l=""}else{if(o==u||"/"==u||"\\"==u||"?"==u||"#"==u){k-=l.length,l="",j="host";continue}l+=u}break;case"file host":if(o==u||"/"==u||"\\"==u||"?"==u||"#"==u){2!=l.length||!p.test(l[0])||":"!=l[1]&&"|"!=l[1]?0==l.length?j="relative path start":(this._host=d.call(this,l),l="",j="relative path start"):j="relative path";continue}" "==u||"\n"==u||"\r"==u?i("Invalid whitespace in file host."):l+=u;break;case"host":case"hostname":if(":"!=u||s){if(o==u||"/"==u||"\\"==u||"?"==u||"#"==u){if(this._host=d.call(this,l),l="",j="relative path start",g)break a;continue}" "!=u&&"\n"!=u&&"\r"!=u?("["==u?s=!0:"]"==u&&(s=!1),l+=u):i("Invalid code point in host/hostname: "+u)}else if(this._host=d.call(this,l),l="",j="port","hostname"==g)break a;break;case"port":if(/[0-9]/.test(u))l+=u;else{if(o==u||"/"==u||"\\"==u||"?"==u||"#"==u||g){if(""!=l){var A=parseInt(l,10);A!=m[this._scheme]&&(this._port=A+""),l=""}if(g)break a;j="relative path start";continue}" "==u||"\n"==u||"\r"==u?i("Invalid code point in port: "+u):c.call(this)}break;case"relative path start":if("\\"==u&&i("'\\' not allowed in path."),j="relative path","/"!=u&&"\\"!=u)continue;break;case"relative path":if(o!=u&&"/"!=u&&"\\"!=u&&(g||"?"!=u&&"#"!=u))" "!=u&&"\n"!=u&&"\r"!=u&&(l+=e(u));else{"\\"==u&&i("\\ not allowed in relative path.");var B;(B=n[l.toLowerCase()])&&(l=B),".."==l?(this._path.pop(),"/"!=u&&"\\"!=u&&this._path.push("")):"."==l&&"/"!=u&&"\\"!=u?this._path.push(""):"."!=l&&("file"==this._scheme&&0==this._path.length&&2==l.length&&p.test(l[0])&&"|"==l[1]&&(l=l[0]+":"),this._path.push(l)),l="","?"==u?(this._query="?",j="query"):"#"==u&&(this._fragment="#",j="fragment")}break;case"query":g||"#"!=u?o!=u&&" "!=u&&"\n"!=u&&"\r"!=u&&(this._query+=f(u)):(this._fragment="#",j="fragment");break;case"fragment":o!=u&&" "!=u&&"\n"!=u&&"\r"!=u&&(this._fragment+=u)}k++}}function h(){this._scheme="",this._schemeData="",this._username="",this._password=null,this._host="",this._port="",this._path=[],this._query="",this._fragment="",this._isInvalid=!1,this._isRelative=!1}function i(a,b){void 0===b||b instanceof i||(b=new i(String(b))),this._url=a,h.call(this);var c=a.replace(/^[ \t\r\n\f]+|[ \t\r\n\f]+$/g,"");g.call(this,c,null,b)}var j=!1;if(!a.forceJURL)try{var k=new URL("b","http://a");k.pathname="c%20d",j="http://a/c%20d"===k.href}catch(l){}if(!j){var m=Object.create(null);m.ftp=21,m.file=0,m.gopher=70,m.http=80,m.https=443,m.ws=80,m.wss=443;var n=Object.create(null);n["%2e"]=".",n[".%2e"]="..",n["%2e."]="..",n["%2e%2e"]="..";var o=void 0,p=/[a-zA-Z]/,q=/[a-zA-Z0-9\+\-\.]/;i.prototype={get href(){if(this._isInvalid)return this._url;var a="";return(""!=this._username||null!=this._password)&&(a=this._username+(null!=this._password?":"+this._password:"")+"@"),this.protocol+(this._isRelative?"//"+a+this.host:"")+this.pathname+this._query+this._fragment},set href(a){h.call(this),g.call(this,a)},get protocol(){return this._scheme+":"},set protocol(a){this._isInvalid||g.call(this,a+":","scheme start")},get host(){return this._isInvalid?"":this._port?this._host+":"+this._port:this._host},set host(a){!this._isInvalid&&this._isRelative&&g.call(this,a,"host")},get hostname(){return this._host},set hostname(a){!this._isInvalid&&this._isRelative&&g.call(this,a,"hostname")},get port(){return this._port},set port(a){!this._isInvalid&&this._isRelative&&g.call(this,a,"port")},get pathname(){return this._isInvalid?"":this._isRelative?"/"+this._path.join("/"):this._schemeData},set pathname(a){!this._isInvalid&&this._isRelative&&(this._path=[],g.call(this,a,"relative path start"))},get search(){return this._isInvalid||!this._query||"?"==this._query?"":this._query},set search(a){!this._isInvalid&&this._isRelative&&(this._query="?","?"==a[0]&&(a=a.slice(1)),g.call(this,a,"query"))},get hash(){return this._isInvalid||!this._fragment||"#"==this._fragment?"":this._fragment},set hash(a){this._isInvalid||(this._fragment="#","#"==a[0]&&(a=a.slice(1)),g.call(this,a,"fragment"))},get origin(){var a;if(this._isInvalid||!this._scheme)return"";switch(this._scheme){case"data":case"file":case"javascript":case"mailto":return"null"}return a=this.host,a?this._scheme+"://"+a:""}};var r=a.URL;r&&(i.createObjectURL=function(){return r.createObjectURL.apply(r,arguments)},i.revokeObjectURL=function(a){r.revokeObjectURL(a)}),a.URL=i}}(this),function(a){function b(a){f.textContent=d++,e.push(a)}function c(){for(;e.length;)e.shift()()}var d=0,e=[],f=document.createTextNode("");new(window.MutationObserver||JsMutationObserver)(c).observe(f,{characterData:!0}),a.endOfMicrotask=b,Platform.endOfMicrotask=b}(Polymer),function(a){function b(){g||(g=!0,c(function(){g=!1,d.data&&console.group("flush"),Platform.performMicrotaskCheckpoint(),d.data&&console.groupEnd()}))}var c=a.endOfMicrotask,d=window.WebComponents?WebComponents.flags.log:{},e=document.createElement("style");e.textContent="template {display: none !important;} /* injected by platform.js */";var f=document.querySelector("head");f.insertBefore(e,f.firstChild);var g;if(Observer.hasObjectObserve)b=function(){};else{var h=125;window.addEventListener("WebComponentsReady",function(){b();var c=function(){"hidden"===document.visibilityState?a.flushPoll&&clearInterval(a.flushPoll):a.flushPoll=setInterval(b,h)};"string"==typeof document.visibilityState&&document.addEventListener("visibilitychange",c),c()})}if(window.CustomElements&&!CustomElements.useNative){var i=Document.prototype.importNode;Document.prototype.importNode=function(a,b){var c=i.call(this,a,b);return CustomElements.upgradeAll(c),c}}a.flush=b,Platform.flush=b}(window.Polymer),function(a){function b(a){var b=new URL(a.ownerDocument.baseURI);return b.search="",b.hash="",b}function c(a,b,c,e){return a.replace(e,function(a,e,f,g){var h=f.replace(/["']/g,"");return h=d(b,h,c),e+"'"+h+"'"+g})}function d(a,b,c){if(b&&"/"===b[0])return b;if(b&&"#"===b[0])return b;var d=new URL(b,a);return c?d.href:e(d.href)}function e(a){var c=b(document.documentElement),d=new URL(a,c);return d.host===c.host&&d.port===c.port&&d.protocol===c.protocol?f(c,d):a}function f(a,b){for(var c=a.pathname,d=b.pathname,e=c.split("/"),f=d.split("/");e.length&&e[0]===f[0];)e.shift(),f.shift();for(var g=0,h=e.length-1;h>g;g++)f.unshift("..");var i=b.href.slice(-1)===m?m:b.hash;return f.join("/")+b.search+i}var g={resolveDom:function(a,c){c=c||b(a),this.resolveAttributes(a,c),this.resolveStyles(a,c);var d=a.querySelectorAll("template");if(d)for(var e,f=0,g=d.length;g>f&&(e=d[f]);f++)e.content&&this.resolveDom(e.content,c)},resolveTemplate:function(a){this.resolveDom(a.content,b(a))},resolveStyles:function(a,b){var c=a.querySelectorAll("style");if(c)for(var d,e=0,f=c.length;f>e&&(d=c[e]);e++)this.resolveStyle(d,b)},resolveStyle:function(a,c){c=c||b(a),a.textContent=this.resolveCssText(a.textContent,c)},resolveCssText:function(a,b,d){return a=c(a,b,d,h),c(a,b,d,i)},resolveAttributes:function(a,b){a.hasAttributes&&a.hasAttributes()&&this.resolveElementAttributes(a,b);var c=a&&a.querySelectorAll(k);if(c)for(var d,e=0,f=c.length;f>e&&(d=c[e]);e++)this.resolveElementAttributes(d,b)},resolveElementAttributes:function(a,e){e=e||b(a),j.forEach(function(b){var f,g=a.attributes[b],i=g&&g.value;i&&i.search(l)<0&&(f="style"===b?c(i,e,!1,h):d(e,i),g.value=f)})}},h=/(url\()([^)]*)(\))/g,i=/(@import[\s]+(?!url\())([^;]*)(;)/g,j=["href","src","action","style","url"],k="["+j.join("],[")+"]",l="{{.*}}",m="#";a.urlResolver=g}(Polymer),function(a){function b(a){this.cache=Object.create(null),this.map=Object.create(null),this.requests=0,this.regex=a}var c=Polymer.endOfMicrotask;b.prototype={extractUrls:function(a,b){for(var c,d,e=[];c=this.regex.exec(a);)d=new URL(c[1],b),e.push({matched:c[0],url:d.href});return e},process:function(a,b,c){var d=this.extractUrls(a,b),e=c.bind(null,this.map);this.fetch(d,e)},fetch:function(a,b){var c=a.length;if(!c)return b();for(var d,e,f,g=function(){0===--c&&b()},h=0;c>h;h++)d=a[h],f=d.url,e=this.cache[f],e||(e=this.xhr(f),e.match=d,this.cache[f]=e),e.wait(g)},handleXhr:function(a){var b=a.match,c=b.url,d=a.response||a.responseText||"";this.map[c]=d,this.fetch(this.extractUrls(d,c),a.resolve)},xhr:function(a){this.requests++;var b=new XMLHttpRequest;return b.open("GET",a,!0),b.send(),b.onerror=b.onload=this.handleXhr.bind(this,b),b.pending=[],b.resolve=function(){for(var a=b.pending,c=0;c<a.length;c++)a[c]();b.pending=null},b.wait=function(a){b.pending?b.pending.push(a):c(a)},b}},a.Loader=b}(Polymer),function(a){function b(){this.loader=new d(this.regex)}var c=a.urlResolver,d=a.Loader;b.prototype={regex:/@import\s+(?:url)?["'\(]*([^'"\)]*)['"\)]*;/g,resolve:function(a,b,c){var d=function(d){c(this.flatten(a,b,d))}.bind(this);this.loader.process(a,b,d)},resolveNode:function(a,b,c){var d=a.textContent,e=function(b){a.textContent=b,c(a)};this.resolve(d,b,e)},flatten:function(a,b,d){for(var e,f,g,h=this.loader.extractUrls(a,b),i=0;i<h.length;i++)e=h[i],f=e.url,g=c.resolveCssText(d[f],f,!0),g=this.flatten(g,b,d),a=a.replace(e.matched,g);return a},loadStyles:function(a,b,c){function d(){f++,f===g&&c&&c()}for(var e,f=0,g=a.length,h=0;g>h&&(e=a[h]);h++)this.resolveNode(e,b,d)}};var e=new b;a.styleResolver=e}(Polymer),function(a){function b(a,b){return a&&b&&Object.getOwnPropertyNames(b).forEach(function(c){var d=Object.getOwnPropertyDescriptor(b,c);d&&(Object.defineProperty(a,c,d),"function"==typeof d.value&&(d.value.nom=c))}),a}function c(a){for(var b=a||{},c=1;c<arguments.length;c++){var e=arguments[c];try{for(var f in e)d(f,e,b)}catch(g){}}return b}function d(a,b,c){var d=e(b,a);Object.defineProperty(c,a,d)}function e(a,b){if(a){var c=Object.getOwnPropertyDescriptor(a,b);return c||e(Object.getPrototypeOf(a),b)}}a.extend=b,a.mixin=c,Platform.mixin=c}(Polymer),function(a){function b(a,b,d){return a?a.stop():a=new c(this),a.go(b,d),a}var c=function(a){this.context=a,this.boundComplete=this.complete.bind(this)};c.prototype={go:function(a,b){this.callback=a;var c;b?(c=setTimeout(this.boundComplete,b),this.handle=function(){clearTimeout(c)}):(c=requestAnimationFrame(this.boundComplete),this.handle=function(){cancelAnimationFrame(c)})},stop:function(){this.handle&&(this.handle(),this.handle=null)},complete:function(){this.handle&&(this.stop(),this.callback.call(this.context))}},a.job=b}(Polymer),function(a){function b(a,b,c){var d="string"==typeof a?document.createElement(a):a.cloneNode(!0);if(d.innerHTML=b,c)for(var e in c)d.setAttribute(e,c[e]);return d}var c={};HTMLElement.register=function(a,b){c[a]=b},HTMLElement.getPrototypeForTag=function(a){var b=a?c[a]:HTMLElement.prototype;return b||Object.getPrototypeOf(document.createElement(a))};var d=Event.prototype.stopPropagation;Event.prototype.stopPropagation=function(){this.cancelBubble=!0,d.apply(this,arguments)};var e=DOMTokenList.prototype.add,f=DOMTokenList.prototype.remove;DOMTokenList.prototype.add=function(){for(var a=0;a<arguments.length;a++)e.call(this,arguments[a])},DOMTokenList.prototype.remove=function(){for(var a=0;a<arguments.length;a++)f.call(this,arguments[a])},DOMTokenList.prototype.toggle=function(a,b){1==arguments.length&&(b=!this.contains(a)),b?this.add(a):this.remove(a)},DOMTokenList.prototype["switch"]=function(a,b){a&&this.remove(a),b&&this.add(b)};var g=function(){return Array.prototype.slice.call(this)},h=window.NamedNodeMap||window.MozNamedAttrMap||{};NodeList.prototype.array=g,h.prototype.array=g,HTMLCollection.prototype.array=g,a.createDOM=b}(Polymer),function(a){function b(a){var e=b.caller,g=e.nom,h=e._super;h||(g||(g=e.nom=c.call(this,e)),g||console.warn("called super() on a method not installed declaratively (has no .nom property)"),h=d(e,g,f(this)));var i=h[g];return i?(i._super||d(i,g,h),i.apply(this,a||[])):void 0}function c(a){for(var b=this.__proto__;b&&b!==HTMLElement.prototype;){for(var c,d=Object.getOwnPropertyNames(b),e=0,f=d.length;f>e&&(c=d[e]);e++){var g=Object.getOwnPropertyDescriptor(b,c);if("function"==typeof g.value&&g.value===a)return c}b=b.__proto__}}function d(a,b,c){var d=e(c,b,a);return d[b]&&(d[b].nom=b),a._super=d}function e(a,b,c){for(;a;){if(a[b]!==c&&a[b])return a;a=f(a)}return Object}function f(a){return a.__proto__}a["super"]=b}(Polymer),function(a){function b(a){return a}function c(a,b){var c=typeof b;return b instanceof Date&&(c="date"),d[c](a,b)}var d={string:b,undefined:b,date:function(a){return new Date(Date.parse(a)||Date.now())},"boolean":function(a){return""===a?!0:"false"===a?!1:!!a},number:function(a){var b=parseFloat(a);return 0===b&&(b=parseInt(a)),isNaN(b)?a:b},object:function(a,b){if(null===b)return a;try{return JSON.parse(a.replace(/'/g,'"'))}catch(c){return a}},"function":function(a,b){return b}};a.deserializeValue=c}(Polymer),function(a){var b=a.extend,c={};c.declaration={},c.instance={},c.publish=function(a,c){for(var d in a)b(c,a[d])},a.api=c}(Polymer),function(a){var b={async:function(a,b,c){Polymer.flush(),b=b&&b.length?b:[b];var d=function(){(this[a]||a).apply(this,b)}.bind(this),e=c?setTimeout(d,c):requestAnimationFrame(d);return c?e:~e},cancelAsync:function(a){0>a?cancelAnimationFrame(~a):clearTimeout(a)},fire:function(a,b,c,d,e){var f=c||this,b=null===b||void 0===b?{}:b,g=new CustomEvent(a,{bubbles:void 0!==d?d:!0,cancelable:void 0!==e?e:!0,detail:b});return f.dispatchEvent(g),g},asyncFire:function(){this.async("fire",arguments)},classFollows:function(a,b,c){b&&b.classList.remove(c),a&&a.classList.add(c)},injectBoundHTML:function(a,b){var c=document.createElement("template");c.innerHTML=a;var d=this.instanceTemplate(c);return b&&(b.textContent="",b.appendChild(d)),d}},c=function(){},d={};b.asyncMethod=b.async,a.api.instance.utils=b,a.nop=c,a.nob=d}(Polymer),function(a){var b=window.WebComponents?WebComponents.flags.log:{},c="on-",d={EVENT_PREFIX:c,addHostListeners:function(){var a=this.eventDelegates;
b.events&&Object.keys(a).length>0&&console.log("[%s] addHostListeners:",this.localName,a);for(var c in a){var d=a[c];PolymerGestures.addEventListener(this,c,this.element.getEventHandler(this,this,d))}},dispatchMethod:function(a,c,d){if(a){b.events&&console.group("[%s] dispatch [%s]",a.localName,c);var e="function"==typeof c?c:a[c];e&&e[d?"apply":"call"](a,d),b.events&&console.groupEnd(),Polymer.flush()}}};a.api.instance.events=d,a.addEventListener=function(a,b,c,d){PolymerGestures.addEventListener(wrap(a),b,c,d)},a.removeEventListener=function(a,b,c,d){PolymerGestures.removeEventListener(wrap(a),b,c,d)}}(Polymer),function(a){var b={copyInstanceAttributes:function(){var a=this._instanceAttributes;for(var b in a)this.hasAttribute(b)||this.setAttribute(b,a[b])},takeAttributes:function(){if(this._publishLC)for(var a,b=0,c=this.attributes,d=c.length;(a=c[b])&&d>b;b++)this.attributeToProperty(a.name,a.value)},attributeToProperty:function(b,c){var b=this.propertyForAttribute(b);if(b){if(c&&c.search(a.bindPattern)>=0)return;var d=this[b],c=this.deserializeValue(c,d);c!==d&&(this[b]=c)}},propertyForAttribute:function(a){var b=this._publishLC&&this._publishLC[a];return b},deserializeValue:function(b,c){return a.deserializeValue(b,c)},serializeValue:function(a,b){return"boolean"===b?a?"":void 0:"object"!==b&&"function"!==b&&void 0!==a?a:void 0},reflectPropertyToAttribute:function(a){var b=typeof this[a],c=this.serializeValue(this[a],b);void 0!==c?this.setAttribute(a,c):"boolean"===b&&this.removeAttribute(a)}};a.api.instance.attributes=b}(Polymer),function(a){function b(a,b){return a===b?0!==a||1/a===1/b:f(a)&&f(b)?!0:a!==a&&b!==b}function c(a,b){return void 0===b&&null===a?b:null===b||void 0===b?a:b}var d=window.WebComponents?WebComponents.flags.log:{},e={object:void 0,type:"update",name:void 0,oldValue:void 0},f=Number.isNaN||function(a){return"number"==typeof a&&isNaN(a)},g={createPropertyObserver:function(){var a=this._observeNames;if(a&&a.length){var b=this._propertyObserver=new CompoundObserver(!0);this.registerObserver(b);for(var c,d=0,e=a.length;e>d&&(c=a[d]);d++)b.addPath(this,c),this.observeArrayValue(c,this[c],null)}},openPropertyObserver:function(){this._propertyObserver&&this._propertyObserver.open(this.notifyPropertyChanges,this)},notifyPropertyChanges:function(a,b,c){var d,e,f={};for(var g in b)if(d=c[2*g+1],e=this.observe[d]){var h=b[g],i=a[g];this.observeArrayValue(d,i,h),f[e]||(void 0!==h&&null!==h||void 0!==i&&null!==i)&&(f[e]=!0,this.invokeMethod(e,[h,i,arguments]))}},invokeMethod:function(a,b){var c=this[a]||a;"function"==typeof c&&c.apply(this,b)},deliverChanges:function(){this._propertyObserver&&this._propertyObserver.deliver()},observeArrayValue:function(a,b,c){var e=this.observe[a];if(e&&(Array.isArray(c)&&(d.observe&&console.log("[%s] observeArrayValue: unregister observer [%s]",this.localName,a),this.closeNamedObserver(a+"__array")),Array.isArray(b))){d.observe&&console.log("[%s] observeArrayValue: register observer [%s]",this.localName,a,b);var f=new ArrayObserver(b);f.open(function(a){this.invokeMethod(e,[a])},this),this.registerNamedObserver(a+"__array",f)}},emitPropertyChangeRecord:function(a,c,d){if(!b(c,d)&&(this._propertyChanged(a,c,d),Observer.hasObjectObserve)){var f=this._objectNotifier;f||(f=this._objectNotifier=Object.getNotifier(this)),e.object=this,e.name=a,e.oldValue=d,f.notify(e)}},_propertyChanged:function(a){this.reflect[a]&&this.reflectPropertyToAttribute(a)},bindProperty:function(a,b,d){if(d)return void(this[a]=b);var e=this.element.prototype.computed;if(e&&e[a]){var f=a+"ComputedBoundObservable_";return void(this[f]=b)}return this.bindToAccessor(a,b,c)},bindToAccessor:function(a,c,d){function e(b,c){j[f]=b;var d=j[h];d&&"function"==typeof d.setValue&&d.setValue(b),j.emitPropertyChangeRecord(a,b,c)}var f=a+"_",g=a+"Observable_",h=a+"ComputedBoundObservable_";this[g]=c;var i=this[f],j=this,k=c.open(e);if(d&&!b(i,k)){var l=d(i,k);b(k,l)||(k=l,c.setValue&&c.setValue(k))}e(k,i);var m={close:function(){c.close(),j[g]=void 0,j[h]=void 0}};return this.registerObserver(m),m},createComputedProperties:function(){if(this._computedNames)for(var a=0;a<this._computedNames.length;a++){var b=this._computedNames[a],c=this.computed[b];try{var d=PolymerExpressions.getExpression(c),e=d.getBinding(this,this.element.syntax);this.bindToAccessor(b,e)}catch(f){console.error("Failed to create computed property",f)}}},registerObserver:function(a){return this._observers?void this._observers.push(a):void(this._observers=[a])},closeObservers:function(){if(this._observers){for(var a=this._observers,b=0;b<a.length;b++){var c=a[b];c&&"function"==typeof c.close&&c.close()}this._observers=[]}},registerNamedObserver:function(a,b){var c=this._namedObservers||(this._namedObservers={});c[a]=b},closeNamedObserver:function(a){var b=this._namedObservers;return b&&b[a]?(b[a].close(),b[a]=null,!0):void 0},closeNamedObservers:function(){if(this._namedObservers){for(var a in this._namedObservers)this.closeNamedObserver(a);this._namedObservers={}}}};a.api.instance.properties=g}(Polymer),function(a){var b=window.WebComponents?WebComponents.flags.log:{},c={instanceTemplate:function(a){HTMLTemplateElement.decorate(a);for(var b=this.syntax||!a.bindingDelegate&&this.element.syntax,c=a.createInstance(this,b),d=c.bindings_,e=0;e<d.length;e++)this.registerObserver(d[e]);return c},bind:function(a,b,c){var d=this.propertyForAttribute(a);if(d){var e=this.bindProperty(d,b,c);return Platform.enableBindingsReflection&&e&&(e.path=b.path_,this._recordBinding(d,e)),this.reflect[d]&&this.reflectPropertyToAttribute(d),e}return this.mixinSuper(arguments)},_recordBinding:function(a,b){this.bindings_=this.bindings_||{},this.bindings_[a]=b},bindFinished:function(){this.makeElementReady()},asyncUnbindAll:function(){this._unbound||(b.unbind&&console.log("[%s] asyncUnbindAll",this.localName),this._unbindAllJob=this.job(this._unbindAllJob,this.unbindAll,0))},unbindAll:function(){this._unbound||(this.closeObservers(),this.closeNamedObservers(),this._unbound=!0)},cancelUnbindAll:function(){return this._unbound?void(b.unbind&&console.warn("[%s] already unbound, cannot cancel unbindAll",this.localName)):(b.unbind&&console.log("[%s] cancelUnbindAll",this.localName),void(this._unbindAllJob&&(this._unbindAllJob=this._unbindAllJob.stop())))}},d=/\{\{([^{}]*)}}/;a.bindPattern=d,a.api.instance.mdv=c}(Polymer),function(a){function b(a){return a.hasOwnProperty("PolymerBase")}function c(){}var d={PolymerBase:!0,job:function(a,b,c){if("string"!=typeof a)return Polymer.job.call(this,a,b,c);var d="___"+a;this[d]=Polymer.job.call(this,this[d],b,c)},"super":Polymer["super"],created:function(){},ready:function(){},createdCallback:function(){this.templateInstance&&this.templateInstance.model&&console.warn("Attributes on "+this.localName+" were data bound prior to Polymer upgrading the element. This may result in incorrect binding types."),this.created(),this.prepareElement(),this.ownerDocument.isStagingDocument||this.makeElementReady()},prepareElement:function(){return this._elementPrepared?void console.warn("Element already prepared",this.localName):(this._elementPrepared=!0,this.shadowRoots={},this.createPropertyObserver(),this.openPropertyObserver(),this.copyInstanceAttributes(),this.takeAttributes(),void this.addHostListeners())},makeElementReady:function(){this._readied||(this._readied=!0,this.createComputedProperties(),this.parseDeclarations(this.__proto__),this.removeAttribute("unresolved"),this.ready())},attributeChangedCallback:function(a){"class"!==a&&"style"!==a&&this.attributeToProperty(a,this.getAttribute(a)),this.attributeChanged&&this.attributeChanged.apply(this,arguments)},attachedCallback:function(){this.cancelUnbindAll(),this.attached&&this.attached(),this.hasBeenAttached||(this.hasBeenAttached=!0,this.domReady&&this.async("domReady"))},detachedCallback:function(){this.preventDispose||this.asyncUnbindAll(),this.detached&&this.detached(),this.leftView&&this.leftView()},parseDeclarations:function(a){a&&a.element&&(this.parseDeclarations(a.__proto__),a.parseDeclaration.call(this,a.element))},parseDeclaration:function(a){var b=this.fetchTemplate(a);if(b){var c=this.shadowFromTemplate(b);this.shadowRoots[a.name]=c}},fetchTemplate:function(a){return a.querySelector("template")},shadowFromTemplate:function(a){if(a){var b=this.createShadowRoot(),c=this.instanceTemplate(a);return b.appendChild(c),this.shadowRootReady(b,a),b}},lightFromTemplate:function(a,b){if(a){this.eventController=this;var c=this.instanceTemplate(a);return b?this.insertBefore(c,b):this.appendChild(c),this.shadowRootReady(this),c}},shadowRootReady:function(a){this.marshalNodeReferences(a)},marshalNodeReferences:function(a){var b=this.$=this.$||{};if(a)for(var c,d=a.querySelectorAll("[id]"),e=0,f=d.length;f>e&&(c=d[e]);e++)b[c.id]=c},onMutation:function(a,b){var c=new MutationObserver(function(a){b.call(this,c,a),c.disconnect()}.bind(this));c.observe(a,{childList:!0,subtree:!0})}};c.prototype=d,d.constructor=c,a.Base=c,a.isBase=b,a.api.instance.base=d}(Polymer),function(a){function b(a){return a.__proto__}function c(a,b){var c="",d=!1;b&&(c=b.localName,d=b.hasAttribute("is"));var e=WebComponents.ShadowCSS.makeScopeSelector(c,d);return WebComponents.ShadowCSS.shimCssText(a,e)}var d=(window.WebComponents?WebComponents.flags.log:{},window.ShadowDOMPolyfill),e="element",f="controller",g={STYLE_SCOPE_ATTRIBUTE:e,installControllerStyles:function(){var a=this.findStyleScope();if(a&&!this.scopeHasNamedStyle(a,this.localName)){for(var c=b(this),d="";c&&c.element;)d+=c.element.cssTextForScope(f),c=b(c);d&&this.installScopeCssText(d,a)}},installScopeStyle:function(a,b,c){var c=c||this.findStyleScope(),b=b||"";if(c&&!this.scopeHasNamedStyle(c,this.localName+b)){var d="";if(a instanceof Array)for(var e,f=0,g=a.length;g>f&&(e=a[f]);f++)d+=e.textContent+"\n\n";else d=a.textContent;this.installScopeCssText(d,c,b)}},installScopeCssText:function(a,b,e){if(b=b||this.findStyleScope(),e=e||"",b){d&&(a=c(a,b.host));var g=this.element.cssTextToScopeStyle(a,f);Polymer.applyStyleToScope(g,b),this.styleCacheForScope(b)[this.localName+e]=!0}},findStyleScope:function(a){for(var b=a||this;b.parentNode;)b=b.parentNode;return b},scopeHasNamedStyle:function(a,b){var c=this.styleCacheForScope(a);return c[b]},styleCacheForScope:function(a){if(d){var b=a.host?a.host.localName:a.localName;return h[b]||(h[b]={})}return a._scopeStyles=a._scopeStyles||{}}},h={};a.api.instance.styles=g}(Polymer),function(a){function b(a,b){if("string"!=typeof a){var c=b||document._currentScript;if(b=a,a=c&&c.parentNode&&c.parentNode.getAttribute?c.parentNode.getAttribute("name"):"",!a)throw"Element name could not be inferred."}if(f(a))throw"Already registered (Polymer) prototype for element "+a;e(a,b),d(a)}function c(a,b){i[a]=b}function d(a){i[a]&&(i[a].registerWhenReady(),delete i[a])}function e(a,b){return j[a]=b||{}}function f(a){return j[a]}function g(a,b){if("string"!=typeof b)return!1;var c=HTMLElement.getPrototypeForTag(b),d=c&&c.constructor;return d?CustomElements["instanceof"]?CustomElements["instanceof"](a,d):a instanceof d:!1}var h=a.extend,i=(a.api,{}),j={};a.getRegisteredPrototype=f,a.waitingForPrototype=c,a.instanceOfType=g,window.Polymer=b,h(Polymer,a),WebComponents.consumeDeclarations&&WebComponents.consumeDeclarations(function(a){if(a)for(var c,d=0,e=a.length;e>d&&(c=a[d]);d++)b.apply(null,c)})}(Polymer),function(a){var b={resolveElementPaths:function(a){Polymer.urlResolver.resolveDom(a)},addResolvePathApi:function(){var a=this.getAttribute("assetpath")||"",b=new URL(a,this.ownerDocument.baseURI);this.prototype.resolvePath=function(a,c){var d=new URL(a,c||b);return d.href}}};a.api.declaration.path=b}(Polymer),function(a){function b(a,b){var c=new URL(a.getAttribute("href"),b).href;return"@import '"+c+"';"}function c(a,b){if(a){b===document&&(b=document.head),i&&(b=document.head);var c=d(a.textContent),e=a.getAttribute(h);e&&c.setAttribute(h,e);var f=b.firstElementChild;if(b===document.head){var g="style["+h+"]",j=document.head.querySelectorAll(g);j.length&&(f=j[j.length-1].nextElementSibling)}b.insertBefore(c,f)}}function d(a,b){b=b||document,b=b.createElement?b:b.ownerDocument;var c=b.createElement("style");return c.textContent=a,c}function e(a){return a&&a.__resource||""}function f(a,b){return q?q.call(a,b):void 0}var g=(window.WebComponents?WebComponents.flags.log:{},a.api.instance.styles),h=g.STYLE_SCOPE_ATTRIBUTE,i=window.ShadowDOMPolyfill,j="style",k="@import",l="link[rel=stylesheet]",m="global",n="polymer-scope",o={loadStyles:function(a){var b=this.fetchTemplate(),c=b&&this.templateContent();if(c){this.convertSheetsToStyles(c);var d=this.findLoadableStyles(c);if(d.length){var e=b.ownerDocument.baseURI;return Polymer.styleResolver.loadStyles(d,e,a)}}a&&a()},convertSheetsToStyles:function(a){for(var c,e,f=a.querySelectorAll(l),g=0,h=f.length;h>g&&(c=f[g]);g++)e=d(b(c,this.ownerDocument.baseURI),this.ownerDocument),this.copySheetAttributes(e,c),c.parentNode.replaceChild(e,c)},copySheetAttributes:function(a,b){for(var c,d=0,e=b.attributes,f=e.length;(c=e[d])&&f>d;d++)"rel"!==c.name&&"href"!==c.name&&a.setAttribute(c.name,c.value)},findLoadableStyles:function(a){var b=[];if(a)for(var c,d=a.querySelectorAll(j),e=0,f=d.length;f>e&&(c=d[e]);e++)c.textContent.match(k)&&b.push(c);return b},installSheets:function(){this.cacheSheets(),this.cacheStyles(),this.installLocalSheets(),this.installGlobalStyles()},cacheSheets:function(){this.sheets=this.findNodes(l),this.sheets.forEach(function(a){a.parentNode&&a.parentNode.removeChild(a)})},cacheStyles:function(){this.styles=this.findNodes(j+"["+n+"]"),this.styles.forEach(function(a){a.parentNode&&a.parentNode.removeChild(a)})},installLocalSheets:function(){var a=this.sheets.filter(function(a){return!a.hasAttribute(n)}),b=this.templateContent();if(b){var c="";if(a.forEach(function(a){c+=e(a)+"\n"}),c){var f=d(c,this.ownerDocument);b.insertBefore(f,b.firstChild)}}},findNodes:function(a,b){var c=this.querySelectorAll(a).array(),d=this.templateContent();if(d){var e=d.querySelectorAll(a).array();c=c.concat(e)}return b?c.filter(b):c},installGlobalStyles:function(){var a=this.styleForScope(m);c(a,document.head)},cssTextForScope:function(a){var b="",c="["+n+"="+a+"]",d=function(a){return f(a,c)},g=this.sheets.filter(d);g.forEach(function(a){b+=e(a)+"\n\n"});var h=this.styles.filter(d);return h.forEach(function(a){b+=a.textContent+"\n\n"}),b},styleForScope:function(a){var b=this.cssTextForScope(a);return this.cssTextToScopeStyle(b,a)},cssTextToScopeStyle:function(a,b){if(a){var c=d(a);return c.setAttribute(h,this.getAttribute("name")+"-"+b),c}}},p=HTMLElement.prototype,q=p.matches||p.matchesSelector||p.webkitMatchesSelector||p.mozMatchesSelector;a.api.declaration.styles=o,a.applyStyleToScope=c}(Polymer),function(a){var b=(window.WebComponents?WebComponents.flags.log:{},a.api.instance.events),c=b.EVENT_PREFIX,d={};["webkitAnimationStart","webkitAnimationEnd","webkitTransitionEnd","DOMFocusOut","DOMFocusIn","DOMMouseScroll"].forEach(function(a){d[a.toLowerCase()]=a});var e={parseHostEvents:function(){var a=this.prototype.eventDelegates;this.addAttributeDelegates(a)},addAttributeDelegates:function(a){for(var b,c=0;b=this.attributes[c];c++)this.hasEventPrefix(b.name)&&(a[this.removeEventPrefix(b.name)]=b.value.replace("{{","").replace("}}","").trim())},hasEventPrefix:function(a){return a&&"o"===a[0]&&"n"===a[1]&&"-"===a[2]},removeEventPrefix:function(a){return a.slice(f)},findController:function(a){for(;a.parentNode;){if(a.eventController)return a.eventController;a=a.parentNode}return a.host},getEventHandler:function(a,b,c){var d=this;return function(e){a&&a.PolymerBase||(a=d.findController(b));var f=[e,e.detail,e.currentTarget];a.dispatchMethod(a,c,f)}},prepareEventBinding:function(a,b){if(this.hasEventPrefix(b)){var c=this.removeEventPrefix(b);c=d[c]||c;var e=this;return function(b,d,f){function g(){return"{{ "+a+" }}"}var h=e.getEventHandler(void 0,d,a);return PolymerGestures.addEventListener(d,c,h),f?void 0:{open:g,discardChanges:g,close:function(){PolymerGestures.removeEventListener(d,c,h)}}}}}},f=c.length;a.api.declaration.events=e}(Polymer),function(a){var b=["attribute"],c={inferObservers:function(a){var b,c=a.observe;for(var d in a)"Changed"===d.slice(-7)&&(b=d.slice(0,-7),this.canObserveProperty(b)&&(c||(c=a.observe={}),c[b]=c[b]||d))},canObserveProperty:function(a){return b.indexOf(a)<0},explodeObservers:function(a){var b=a.observe;if(b){var c={};for(var d in b)for(var e,f=d.split(" "),g=0;e=f[g];g++)c[e]=b[d];a.observe=c}},optimizePropertyMaps:function(a){if(a.observe){var b=a._observeNames=[];for(var c in a.observe)for(var d,e=c.split(" "),f=0;d=e[f];f++)b.push(d)}if(a.publish){var b=a._publishNames=[];for(var c in a.publish)b.push(c)}if(a.computed){var b=a._computedNames=[];for(var c in a.computed)b.push(c)}},publishProperties:function(a,b){var c=a.publish;c&&(this.requireProperties(c,a,b),this.filterInvalidAccessorNames(c),a._publishLC=this.lowerCaseMap(c));var d=a.computed;d&&this.filterInvalidAccessorNames(d)},filterInvalidAccessorNames:function(a){for(var b in a)this.propertyNameBlacklist[b]&&(console.warn('Cannot define property "'+b+'" for element "'+this.name+'" because it has the same name as an HTMLElement property, and not all browsers support overriding that. Consider giving it a different name.'),delete a[b])},requireProperties:function(a,b){b.reflect=b.reflect||{};for(var c in a){var d=a[c];d&&void 0!==d.reflect&&(b.reflect[c]=Boolean(d.reflect),d=d.value),void 0!==d&&(b[c]=d)}},lowerCaseMap:function(a){var b={};for(var c in a)b[c.toLowerCase()]=c;return b},createPropertyAccessor:function(a,b){var c=this.prototype,d=a+"_",e=a+"Observable_";c[d]=c[a],Object.defineProperty(c,a,{get:function(){var a=this[e];return a&&a.deliver(),this[d]},set:function(c){if(b)return this[d];var f=this[e];if(f)return void f.setValue(c);var g=this[d];return this[d]=c,this.emitPropertyChangeRecord(a,c,g),c},configurable:!0})},createPropertyAccessors:function(a){var b=a._computedNames;if(b&&b.length)for(var c,d=0,e=b.length;e>d&&(c=b[d]);d++)this.createPropertyAccessor(c,!0);var b=a._publishNames;if(b&&b.length)for(var c,d=0,e=b.length;e>d&&(c=b[d]);d++)a.computed&&a.computed[c]||this.createPropertyAccessor(c)},propertyNameBlacklist:{children:1,"class":1,id:1,hidden:1,style:1,title:1}};a.api.declaration.properties=c}(Polymer),function(a){var b="attributes",c=/\s|,/,d={inheritAttributesObjects:function(a){this.inheritObject(a,"publishLC"),this.inheritObject(a,"_instanceAttributes")},publishAttributes:function(a){var d=this.getAttribute(b);if(d)for(var e,f=a.publish||(a.publish={}),g=d.split(c),h=0,i=g.length;i>h;h++)e=g[h].trim(),e&&void 0===f[e]&&(f[e]=void 0)},accumulateInstanceAttributes:function(){for(var a,b=this.prototype._instanceAttributes,c=this.attributes,d=0,e=c.length;e>d&&(a=c[d]);d++)this.isInstanceAttribute(a.name)&&(b[a.name]=a.value)},isInstanceAttribute:function(a){return!this.blackList[a]&&"on-"!==a.slice(0,3)},blackList:{name:1,"extends":1,constructor:1,noscript:1,assetpath:1,"cache-csstext":1}};d.blackList[b]=1,a.api.declaration.attributes=d}(Polymer),function(a){var b=a.api.declaration.events,c=new PolymerExpressions,d=c.prepareBinding;c.prepareBinding=function(a,e,f){return b.prepareEventBinding(a,e,f)||d.call(c,a,e,f)};var e={syntax:c,fetchTemplate:function(){return this.querySelector("template")},templateContent:function(){var a=this.fetchTemplate();return a&&a.content},installBindingDelegate:function(a){a&&(a.bindingDelegate=this.syntax)}};a.api.declaration.mdv=e}(Polymer),function(a){function b(a){if(!Object.__proto__){var b=Object.getPrototypeOf(a);a.__proto__=b,d(b)&&(b.__proto__=Object.getPrototypeOf(b))}}var c=a.api,d=a.isBase,e=a.extend,f=window.ShadowDOMPolyfill,g={register:function(a,b){this.buildPrototype(a,b),this.registerPrototype(a,b),this.publishConstructor()},buildPrototype:function(b,c){var d=a.getRegisteredPrototype(b),e=this.generateBasePrototype(c);this.desugarBeforeChaining(d,e),this.prototype=this.chainPrototypes(d,e),this.desugarAfterChaining(b,c)},desugarBeforeChaining:function(a,b){a.element=this,this.publishAttributes(a,b),this.publishProperties(a,b),this.inferObservers(a),this.explodeObservers(a)},chainPrototypes:function(a,c){this.inheritMetaData(a,c);var d=this.chainObject(a,c);return b(d),d},inheritMetaData:function(a,b){this.inheritObject("observe",a,b),this.inheritObject("publish",a,b),this.inheritObject("reflect",a,b),this.inheritObject("_publishLC",a,b),this.inheritObject("_instanceAttributes",a,b),this.inheritObject("eventDelegates",a,b)},desugarAfterChaining:function(a,b){this.optimizePropertyMaps(this.prototype),this.createPropertyAccessors(this.prototype),this.installBindingDelegate(this.fetchTemplate()),this.installSheets(),this.resolveElementPaths(this),this.accumulateInstanceAttributes(),this.parseHostEvents(),this.addResolvePathApi(),f&&WebComponents.ShadowCSS.shimStyling(this.templateContent(),a,b),this.prototype.registerCallback&&this.prototype.registerCallback(this)},publishConstructor:function(){var a=this.getAttribute("constructor");a&&(window[a]=this.ctor)},generateBasePrototype:function(a){var b=this.findBasePrototype(a);if(!b){var b=HTMLElement.getPrototypeForTag(a);b=this.ensureBaseApi(b),h[a]=b}return b},findBasePrototype:function(a){return h[a]},ensureBaseApi:function(a){if(a.PolymerBase)return a;var b=Object.create(a);return c.publish(c.instance,b),this.mixinMethod(b,a,c.instance.mdv,"bind"),b},mixinMethod:function(a,b,c,d){var e=function(a){return b[d].apply(this,a)};a[d]=function(){return this.mixinSuper=e,c[d].apply(this,arguments)}},inheritObject:function(a,b,c){var d=b[a]||{};b[a]=this.chainObject(d,c[a])},registerPrototype:function(a,b){var c={prototype:this.prototype},d=this.findTypeExtension(b);d&&(c["extends"]=d),HTMLElement.register(a,this.prototype),this.ctor=document.registerElement(a,c)},findTypeExtension:function(a){if(a&&a.indexOf("-")<0)return a;var b=this.findBasePrototype(a);return b.element?this.findTypeExtension(b.element["extends"]):void 0}},h={};g.chainObject=Object.__proto__?function(a,b){return a&&b&&a!==b&&(a.__proto__=b),a}:function(a,b){if(a&&b&&a!==b){var c=Object.create(b);a=e(c,a)}return a},c.declaration.prototype=g}(Polymer),function(a){function b(a){return document.contains(a)?j:i}function c(){return i.length?i[0]:j[0]}function d(a){f.waitToReady=!0,Polymer.endOfMicrotask(function(){HTMLImports.whenReady(function(){f.addReadyCallback(a),f.waitToReady=!1,f.check()})})}function e(a){if(void 0===a)return void f.ready();var b=setTimeout(function(){f.ready()},a);Polymer.whenReady(function(){clearTimeout(b)})}var f={wait:function(a){a.__queue||(a.__queue={},g.push(a))},enqueue:function(a,c,d){var e=a.__queue&&!a.__queue.check;return e&&(b(a).push(a),a.__queue.check=c,a.__queue.go=d),0!==this.indexOf(a)},indexOf:function(a){var c=b(a).indexOf(a);return c>=0&&document.contains(a)&&(c+=HTMLImports.useNative||HTMLImports.ready?i.length:1e9),c},go:function(a){var b=this.remove(a);b&&(a.__queue.flushable=!0,this.addToFlushQueue(b),this.check())},remove:function(a){var c=this.indexOf(a);if(0===c)return b(a).shift()},check:function(){var a=this.nextElement();return a&&a.__queue.check.call(a),this.canReady()?(this.ready(),!0):void 0},nextElement:function(){return c()},canReady:function(){return!this.waitToReady&&this.isEmpty()},isEmpty:function(){for(var a,b=0,c=g.length;c>b&&(a=g[b]);b++)if(a.__queue&&!a.__queue.flushable)return;return!0},addToFlushQueue:function(a){h.push(a)},flush:function(){if(!this.flushing){this.flushing=!0;for(var a;h.length;)a=h.shift(),a.__queue.go.call(a),a.__queue=null;this.flushing=!1}},ready:function(){var a=CustomElements.ready;CustomElements.ready=!1,this.flush(),CustomElements.useNative||CustomElements.upgradeDocumentTree(document),CustomElements.ready=a,Polymer.flush(),requestAnimationFrame(this.flushReadyCallbacks)},addReadyCallback:function(a){a&&k.push(a)},flushReadyCallbacks:function(){if(k)for(var a;k.length;)(a=k.shift())()},waitingFor:function(){for(var a,b=[],c=0,d=g.length;d>c&&(a=g[c]);c++)a.__queue&&!a.__queue.flushable&&b.push(a);return b},waitToReady:!0},g=[],h=[],i=[],j=[],k=[];a.elements=g,a.waitingFor=f.waitingFor.bind(f),a.forceReady=e,a.queue=f,a.whenReady=a.whenPolymerReady=d}(Polymer),function(a){function b(a){return Boolean(HTMLElement.getPrototypeForTag(a))}function c(a){return a&&a.indexOf("-")>=0}var d=a.extend,e=a.api,f=a.queue,g=a.whenReady,h=a.getRegisteredPrototype,i=a.waitingForPrototype,j=d(Object.create(HTMLElement.prototype),{createdCallback:function(){this.getAttribute("name")&&this.init()},init:function(){this.name=this.getAttribute("name"),this["extends"]=this.getAttribute("extends"),f.wait(this),this.loadResources(),this.registerWhenReady()},registerWhenReady:function(){this.registered||this.waitingForPrototype(this.name)||this.waitingForQueue()||this.waitingForResources()||f.go(this)},_register:function(){c(this["extends"])&&!b(this["extends"])&&console.warn("%s is attempting to extend %s, an unregistered element or one that was not registered with Polymer.",this.name,this["extends"]),this.register(this.name,this["extends"]),this.registered=!0},waitingForPrototype:function(a){return h(a)?void 0:(i(a,this),this.handleNoScript(a),!0)},handleNoScript:function(a){this.hasAttribute("noscript")&&!this.noscript&&(this.noscript=!0,Polymer(a))},waitingForResources:function(){return this._needsResources},waitingForQueue:function(){return f.enqueue(this,this.registerWhenReady,this._register)},loadResources:function(){this._needsResources=!0,this.loadStyles(function(){this._needsResources=!1,this.registerWhenReady()}.bind(this))}});e.publish(e.declaration,j),g(function(){document.body.removeAttribute("unresolved"),document.dispatchEvent(new CustomEvent("polymer-ready",{bubbles:!0}))}),document.registerElement("polymer-element",{prototype:j})}(Polymer),function(a){function b(a,b){a?(document.head.appendChild(a),d(b)):b&&b()}function c(a,c){if(a&&a.length){for(var d,e,f=document.createDocumentFragment(),g=0,h=a.length;h>g&&(d=a[g]);g++)e=document.createElement("link"),e.rel="import",e.href=d,f.appendChild(e);b(f,c)}else c&&c()}var d=a.whenReady;a["import"]=c,a.importElements=b}(Polymer),function(){var a=document.createElement("polymer-element");a.setAttribute("name","auto-binding"),a.setAttribute("extends","template"),a.init(),Polymer("auto-binding",{createdCallback:function(){this.syntax=this.bindingDelegate=this.makeSyntax(),Polymer.whenPolymerReady(function(){this.model=this,this.setAttribute("bind",""),this.async(function(){this.marshalNodeReferences(this.parentNode),this.fire("template-bound")})}.bind(this))},makeSyntax:function(){var a=Object.create(Polymer.api.declaration.events),b=this;a.findController=function(){return b.model};var c=new PolymerExpressions,d=c.prepareBinding;return c.prepareBinding=function(b,e,f){return a.prepareEventBinding(b,e,f)||d.call(c,b,e,f)},c}})}();
window._TV_IS_COMPILED = true;
var global=this;
this.tv=function(){function e(){if(!b){var a=document.createElement("div");a.style.backgroundColor="white";a.style.border="3px solid red";a.style.boxSizing="border-box";a.style.color="black";a.style.display="-webkit-flex";a.style.height="100%";a.style.left=0;a.style.padding="8px";a.style.position="fixed";a.style.top=0;a.style.webkitFlexDirection="column";a.style.width="100%";b=document.createElement("div");b.style.webkitFlex="1 1 auto";b.style.overflow="auto";a.appendChild(b);document.body?document.body.appendChild(a):
setTimeout(function(){document.body.appendChild(a)},150)}}function c(f,d){d instanceof Error&&(d=d.stack);e();var c=document.createElement("div");c.innerHTML='<h2 id="message"></h2><pre id="details"></pre>';c.querySelector("#message").textContent=f;c.querySelector("#details").textContent=d;b.appendChild(c);a.push({title:f,details:d})}if(window.tv)return console.warn("Base was multiply initialized. First init wins."),window.tv;var b=void 0,a=[];return{initialize:function(){if(!window._TRACE_VIEWER_IS_COMPILED){var a=
parseInt(window.navigator.appVersion.match(/Chrome\/(\d+)\./)[1],10),d=window.navigator.appVersion.match("77.34.5");36>a&&!d&&c("Invalid Chrome version","A Chrome version of 36 or higher is required for trace-viewer development. Please upgrade your version of Chrome and try again.")}tv.doc=document;tv.isMac=/Mac/.test(navigator.platform);tv.isWindows=/Win/.test(navigator.platform);tv.isChromeOS=/CrOS/.test(navigator.userAgent);tv.isLinux=/Linux/.test(navigator.userAgent)},exportTo:function(a,d){var b;
b=a.split(".");for(var c=global,e;b.length&&(e=b.shift());)c=e in c?c[e]:c[e]={};b=c;var c=d(),l;for(l in c)(e=Object.getOwnPropertyDescriptor(c,l))&&Object.defineProperty(b,l,e)},isDefined:function(a,d){for(var b=a.split("."),c=d||global,e=0;e<b.length;e++)if(c=c[b[e]],void 0===c)return!1;return!0},showPanic:c,hasPanic:function(){return 0!==a.length},getPanicText:function(){return a.map(function(a){return a.title}).join(", ")}}}();tv.initialize();"use strict";
tv.exportTo("tv.b.ui",function(){return{decorate:function(e,c){var b;b="string"==typeof e?tv.doc.querySelectorAll(e):[e];for(var a=0,f;f=b[a];a++)f instanceof c||c.decorate(f)},define:function(e,c,b){function a(){if(c&&a.prototype.__proto__!=c.prototype)throw Error(e+" prototye's __proto__ field is messed up. It MUST be the prototype of "+c.tagName);var b;b=void 0===d?tv.doc.createElement(f):tv.doc.createElementNS(d,f);a.decorate.call(this,b,arguments);return b}if("function"==typeof e)throw Error("Passing functions as className is deprecated. Please use (className, opt_parentConstructor) to subclass");
e=e.toLowerCase();if(c&&!c.tagName)throw Error("opt_parentConstructor was not created by tv.b.ui.define");var f=e,d=void 0;if(c){if(b)throw Error("Must not specify tagNS if parentConstructor is given");for(b=c;b&&b.tagName;)f=b.tagName,d=b.tagNS,b=b.parentConstructor}else d=b;a.decorate=function(d,b){d.__proto__=a.prototype;d.decorate.apply(d,b);d.constructor=a};a.className=e;a.tagName=f;a.tagNS=d;a.parentConstructor=c?c:void 0;a.toString=function(){return!a.parentConstructor?a.tagName:a.parentConstructor.toString()+
"::"+a.className};return a},elementIsChildOf:function(e,c){if(e==c)return!1;for(var b=e;b.parentNode;){if(b==c)return!0;b=b.parentNode}return!1}}});"use strict";
tv.exportTo("tv.b",function(){function e(a,b){if(a instanceof Object)if(a instanceof Array)for(var d=0;d<a.length;d++)b(a,d,a[d]),e(a[d],b);else for(d in a){var c=a[d];b(a,d,c);e(c,b)}}function c(a){return a}function b(a,b,d){b=b||c;for(var h=0;h<a.length;h++)if(b.call(d,a[h],h))return h;return-1}return{asArray:function(a){for(var b=[],d=0;d<a.length;d++)b.push(a[d]);return b},concatenateArrays:function(){for(var a=[],b=0;b<arguments.length;b++){if(!(arguments[b]instanceof Array))throw Error("Arguments "+
b+"is not an array");a.push.apply(a,arguments[b])}return a},concatenateObjects:function(){for(var a={},b=0;b<arguments.length;b++){var d=arguments[b],c;for(c in d)a[c]=d[c]}return a},compareArrays:function(a,b,d){for(var c=Math.min(a.length,b.length),e=0;e<c;e++){var k=d(a[e],b[e]);if(k)return k}return a.length==b.length?0:void 0===a[e]?-1:1},comparePossiblyUndefinedValues:function(a,b,d){return void 0!==a&&void 0!==b?d(a,b):void 0!==a?-1:void 0!==b?1:0},dictionaryLength:function(a){var b=0,d;for(d in a)b++;
return b},dictionaryKeys:function(a){var b=[],d;for(d in a)b.push(d);return b},dictionaryValues:function(a){var b=[],d;for(d in a)b.push(a[d]);return b},iterItems:function(a,b,d){d=d||this;for(var c in a)b.call(d,c,a[c])},iterObjectFieldsRecursively:e,findFirstIndexInArray:b,findFirstInArray:function(a,f,d){f=b(a,f,f);return-1===f?void 0:a[f]}}});
(function(){var e;"undefined"==typeof exports?"function"==typeof define&&"object"==typeof define.amd&&define.amd?(e={},define(function(){return e})):e=window:e=exports;(function(c){if(!b)var b=1E-6;if(!a)var a="undefined"!=typeof Float32Array?Float32Array:Array;var f={setMatrixArrayType:function(d){a=d}};"undefined"!=typeof c&&(c.glMatrix=f);var d={create:function(){var d=new a(2);return d[0]=0,d[1]=0,d},clone:function(d){var b=new a(2);return b[0]=d[0],b[1]=d[1],b},fromValues:function(d,b){var f=
new a(2);return f[0]=d,f[1]=b,f},copy:function(a,d){return a[0]=d[0],a[1]=d[1],a},set:function(a,d,b){return a[0]=d,a[1]=b,a},add:function(a,d,b){return a[0]=d[0]+b[0],a[1]=d[1]+b[1],a},subtract:function(a,d,b){return a[0]=d[0]-b[0],a[1]=d[1]-b[1],a}};d.sub=d.subtract;d.multiply=function(a,d,b){return a[0]=d[0]*b[0],a[1]=d[1]*b[1],a};d.mul=d.multiply;d.divide=function(a,d,b){return a[0]=d[0]/b[0],a[1]=d[1]/b[1],a};d.div=d.divide;d.min=function(a,d,b){return a[0]=Math.min(d[0],b[0]),a[1]=Math.min(d[1],
b[1]),a};d.max=function(a,d,b){return a[0]=Math.max(d[0],b[0]),a[1]=Math.max(d[1],b[1]),a};d.scale=function(a,d,b){return a[0]=d[0]*b,a[1]=d[1]*b,a};d.distance=function(a,d){var b=d[0]-a[0],f=d[1]-a[1];return Math.sqrt(b*b+f*f)};d.dist=d.distance;d.squaredDistance=function(a,d){var b=d[0]-a[0],f=d[1]-a[1];return b*b+f*f};d.sqrDist=d.squaredDistance;d.length=function(a){var d=a[0];a=a[1];return Math.sqrt(d*d+a*a)};d.len=d.length;d.squaredLength=function(a){var d=a[0];a=a[1];return d*d+a*a};d.sqrLen=
d.squaredLength;d.negate=function(a,d){return a[0]=-d[0],a[1]=-d[1],a};d.normalize=function(a,d){var b=d[0],f=d[1],b=b*b+f*f;return 0<b&&(b=1/Math.sqrt(b),a[0]=d[0]*b,a[1]=d[1]*b),a};d.dot=function(a,d){return a[0]*d[0]+a[1]*d[1]};d.cross=function(a,d,b){d=d[0]*b[1]-d[1]*b[0];return a[0]=a[1]=0,a[2]=d,a};d.lerp=function(a,d,b,f){var c=d[0];d=d[1];return a[0]=c+f*(b[0]-c),a[1]=d+f*(b[1]-d),a};d.transformMat2=function(a,d,b){var f=d[0];d=d[1];return a[0]=b[0]*f+b[2]*d,a[1]=b[1]*f+b[3]*d,a};d.transformMat2d=
function(a,d,b){var f=d[0];d=d[1];return a[0]=b[0]*f+b[2]*d+b[4],a[1]=b[1]*f+b[3]*d+b[5],a};d.transformMat3=function(a,d,b){var f=d[0];d=d[1];return a[0]=b[0]*f+b[3]*d+b[6],a[1]=b[1]*f+b[4]*d+b[7],a};d.transformMat4=function(a,d,b){var f=d[0];d=d[1];return a[0]=b[0]*f+b[4]*d+b[12],a[1]=b[1]*f+b[5]*d+b[13],a};d.forEach=function(){var a=d.create();return function(d,b,f,c,h,e){var g;b||(b=2);f||(f=0);for(c?g=Math.min(c*b+f,d.length):g=d.length;f<g;f+=b)a[0]=d[f],a[1]=d[f+1],h(a,a,e),d[f]=a[0],d[f+1]=
a[1];return d}}();d.str=function(a){return"vec2("+a[0]+", "+a[1]+")"};"undefined"!=typeof c&&(c.vec2=d);var h={create:function(){var d=new a(3);return d[0]=0,d[1]=0,d[2]=0,d},clone:function(d){var b=new a(3);return b[0]=d[0],b[1]=d[1],b[2]=d[2],b},fromValues:function(d,b,f){var c=new a(3);return c[0]=d,c[1]=b,c[2]=f,c},copy:function(a,d){return a[0]=d[0],a[1]=d[1],a[2]=d[2],a},set:function(a,d,b,f){return a[0]=d,a[1]=b,a[2]=f,a},add:function(a,d,b){return a[0]=d[0]+b[0],a[1]=d[1]+b[1],a[2]=d[2]+b[2],
a},subtract:function(a,d,b){return a[0]=d[0]-b[0],a[1]=d[1]-b[1],a[2]=d[2]-b[2],a}};h.sub=h.subtract;h.multiply=function(a,d,b){return a[0]=d[0]*b[0],a[1]=d[1]*b[1],a[2]=d[2]*b[2],a};h.mul=h.multiply;h.divide=function(a,d,b){return a[0]=d[0]/b[0],a[1]=d[1]/b[1],a[2]=d[2]/b[2],a};h.div=h.divide;h.min=function(a,d,b){return a[0]=Math.min(d[0],b[0]),a[1]=Math.min(d[1],b[1]),a[2]=Math.min(d[2],b[2]),a};h.max=function(a,d,b){return a[0]=Math.max(d[0],b[0]),a[1]=Math.max(d[1],b[1]),a[2]=Math.max(d[2],b[2]),
a};h.scale=function(a,d,b){return a[0]=d[0]*b,a[1]=d[1]*b,a[2]=d[2]*b,a};h.distance=function(a,d){var b=d[0]-a[0],f=d[1]-a[1],c=d[2]-a[2];return Math.sqrt(b*b+f*f+c*c)};h.dist=h.distance;h.squaredDistance=function(a,d){var b=d[0]-a[0],f=d[1]-a[1],c=d[2]-a[2];return b*b+f*f+c*c};h.sqrDist=h.squaredDistance;h.length=function(a){var d=a[0],b=a[1];a=a[2];return Math.sqrt(d*d+b*b+a*a)};h.len=h.length;h.squaredLength=function(a){var d=a[0],b=a[1];a=a[2];return d*d+b*b+a*a};h.sqrLen=h.squaredLength;h.negate=
function(a,d){return a[0]=-d[0],a[1]=-d[1],a[2]=-d[2],a};h.normalize=function(a,d){var b=d[0],f=d[1],c=d[2],b=b*b+f*f+c*c;return 0<b&&(b=1/Math.sqrt(b),a[0]=d[0]*b,a[1]=d[1]*b,a[2]=d[2]*b),a};h.dot=function(a,d){return a[0]*d[0]+a[1]*d[1]+a[2]*d[2]};h.cross=function(a,d,b){var f=d[0],c=d[1];d=d[2];var h=b[0],e=b[1];b=b[2];return a[0]=c*b-d*e,a[1]=d*h-f*b,a[2]=f*e-c*h,a};h.lerp=function(a,d,b,f){var c=d[0],h=d[1];d=d[2];return a[0]=c+f*(b[0]-c),a[1]=h+f*(b[1]-h),a[2]=d+f*(b[2]-d),a};h.transformMat4=
function(a,d,b){var f=d[0],c=d[1];d=d[2];return a[0]=b[0]*f+b[4]*c+b[8]*d+b[12],a[1]=b[1]*f+b[5]*c+b[9]*d+b[13],a[2]=b[2]*f+b[6]*c+b[10]*d+b[14],a};h.transformQuat=function(a,d,b){var f=d[0],c=d[1],h=d[2];d=b[0];var e=b[1],g=b[2];b=b[3];var k=b*f+e*h-g*c,v=b*c+g*f-d*h,y=b*h+d*c-e*f,f=-d*f-e*c-g*h;return a[0]=k*b+f*-d+v*-g-y*-e,a[1]=v*b+f*-e+y*-d-k*-g,a[2]=y*b+f*-g+k*-e-v*-d,a};h.forEach=function(){var a=h.create();return function(d,b,f,c,h,e){var g;b||(b=3);f||(f=0);for(c?g=Math.min(c*b+f,d.length):
g=d.length;f<g;f+=b)a[0]=d[f],a[1]=d[f+1],a[2]=d[f+2],h(a,a,e),d[f]=a[0],d[f+1]=a[1],d[f+2]=a[2];return d}}();h.str=function(a){return"vec3("+a[0]+", "+a[1]+", "+a[2]+")"};"undefined"!=typeof c&&(c.vec3=h);var e={create:function(){var d=new a(4);return d[0]=0,d[1]=0,d[2]=0,d[3]=0,d},clone:function(d){var b=new a(4);return b[0]=d[0],b[1]=d[1],b[2]=d[2],b[3]=d[3],b},fromValues:function(d,b,f,c){var h=new a(4);return h[0]=d,h[1]=b,h[2]=f,h[3]=c,h},copy:function(a,d){return a[0]=d[0],a[1]=d[1],a[2]=d[2],
a[3]=d[3],a},set:function(a,d,b,f,c){return a[0]=d,a[1]=b,a[2]=f,a[3]=c,a},add:function(a,d,b){return a[0]=d[0]+b[0],a[1]=d[1]+b[1],a[2]=d[2]+b[2],a[3]=d[3]+b[3],a},subtract:function(a,d,b){return a[0]=d[0]-b[0],a[1]=d[1]-b[1],a[2]=d[2]-b[2],a[3]=d[3]-b[3],a}};e.sub=e.subtract;e.multiply=function(a,d,b){return a[0]=d[0]*b[0],a[1]=d[1]*b[1],a[2]=d[2]*b[2],a[3]=d[3]*b[3],a};e.mul=e.multiply;e.divide=function(a,d,b){return a[0]=d[0]/b[0],a[1]=d[1]/b[1],a[2]=d[2]/b[2],a[3]=d[3]/b[3],a};e.div=e.divide;
e.min=function(a,d,b){return a[0]=Math.min(d[0],b[0]),a[1]=Math.min(d[1],b[1]),a[2]=Math.min(d[2],b[2]),a[3]=Math.min(d[3],b[3]),a};e.max=function(a,d,b){return a[0]=Math.max(d[0],b[0]),a[1]=Math.max(d[1],b[1]),a[2]=Math.max(d[2],b[2]),a[3]=Math.max(d[3],b[3]),a};e.scale=function(a,d,b){return a[0]=d[0]*b,a[1]=d[1]*b,a[2]=d[2]*b,a[3]=d[3]*b,a};e.distance=function(a,d){var b=d[0]-a[0],f=d[1]-a[1],c=d[2]-a[2],h=d[3]-a[3];return Math.sqrt(b*b+f*f+c*c+h*h)};e.dist=e.distance;e.squaredDistance=function(a,
d){var b=d[0]-a[0],f=d[1]-a[1],c=d[2]-a[2],h=d[3]-a[3];return b*b+f*f+c*c+h*h};e.sqrDist=e.squaredDistance;e.length=function(a){var d=a[0],b=a[1],f=a[2];a=a[3];return Math.sqrt(d*d+b*b+f*f+a*a)};e.len=e.length;e.squaredLength=function(a){var d=a[0],b=a[1],f=a[2];a=a[3];return d*d+b*b+f*f+a*a};e.sqrLen=e.squaredLength;e.negate=function(a,d){return a[0]=-d[0],a[1]=-d[1],a[2]=-d[2],a[3]=-d[3],a};e.normalize=function(a,d){var b=d[0],f=d[1],c=d[2],h=d[3],b=b*b+f*f+c*c+h*h;return 0<b&&(b=1/Math.sqrt(b),
a[0]=d[0]*b,a[1]=d[1]*b,a[2]=d[2]*b,a[3]=d[3]*b),a};e.dot=function(a,d){return a[0]*d[0]+a[1]*d[1]+a[2]*d[2]+a[3]*d[3]};e.lerp=function(a,d,b,f){var c=d[0],h=d[1],e=d[2];d=d[3];return a[0]=c+f*(b[0]-c),a[1]=h+f*(b[1]-h),a[2]=e+f*(b[2]-e),a[3]=d+f*(b[3]-d),a};e.transformMat4=function(a,d,b){var f=d[0],c=d[1],h=d[2];d=d[3];return a[0]=b[0]*f+b[4]*c+b[8]*h+b[12]*d,a[1]=b[1]*f+b[5]*c+b[9]*h+b[13]*d,a[2]=b[2]*f+b[6]*c+b[10]*h+b[14]*d,a[3]=b[3]*f+b[7]*c+b[11]*h+b[15]*d,a};e.transformQuat=function(a,d,b){var f=
d[0],c=d[1],h=d[2];d=b[0];var e=b[1],g=b[2];b=b[3];var k=b*f+e*h-g*c,v=b*c+g*f-d*h,y=b*h+d*c-e*f,f=-d*f-e*c-g*h;return a[0]=k*b+f*-d+v*-g-y*-e,a[1]=v*b+f*-e+y*-d-k*-g,a[2]=y*b+f*-g+k*-e-v*-d,a};e.forEach=function(){var a=e.create();return function(d,b,f,c,h,e){var g;b||(b=4);f||(f=0);for(c?g=Math.min(c*b+f,d.length):g=d.length;f<g;f+=b)a[0]=d[f],a[1]=d[f+1],a[2]=d[f+2],a[3]=d[f+3],h(a,a,e),d[f]=a[0],d[f+1]=a[1],d[f+2]=a[2],d[f+3]=a[3];return d}}();e.str=function(a){return"vec4("+a[0]+", "+a[1]+", "+
a[2]+", "+a[3]+")"};"undefined"!=typeof c&&(c.vec4=e);f={create:function(){var d=new a(4);return d[0]=1,d[1]=0,d[2]=0,d[3]=1,d},clone:function(d){var b=new a(4);return b[0]=d[0],b[1]=d[1],b[2]=d[2],b[3]=d[3],b},copy:function(a,d){return a[0]=d[0],a[1]=d[1],a[2]=d[2],a[3]=d[3],a},identity:function(a){return a[0]=1,a[1]=0,a[2]=0,a[3]=1,a},transpose:function(a,d){if(a===d){var b=d[1];a[1]=d[2];a[2]=b}else a[0]=d[0],a[1]=d[2],a[2]=d[1],a[3]=d[3];return a},invert:function(a,d){var b=d[0],f=d[1],c=d[2],
h=d[3],e=b*h-c*f;return e?(e=1/e,a[0]=h*e,a[1]=-f*e,a[2]=-c*e,a[3]=b*e,a):null},adjoint:function(a,d){var b=d[0];return a[0]=d[3],a[1]=-d[1],a[2]=-d[2],a[3]=b,a},determinant:function(a){return a[0]*a[3]-a[2]*a[1]},multiply:function(a,d,b){var f=d[0],c=d[1],h=d[2];d=d[3];var e=b[0],g=b[1],k=b[2];b=b[3];return a[0]=f*e+c*k,a[1]=f*g+c*b,a[2]=h*e+d*k,a[3]=h*g+d*b,a}};f.mul=f.multiply;f.rotate=function(a,d,b){var f=d[0],c=d[1],h=d[2];d=d[3];var e=Math.sin(b);b=Math.cos(b);return a[0]=f*b+c*e,a[1]=f*-e+
c*b,a[2]=h*b+d*e,a[3]=h*-e+d*b,a};f.scale=function(a,d,b){var f=d[1],c=d[2],h=d[3],e=b[0];b=b[1];return a[0]=d[0]*e,a[1]=f*b,a[2]=c*e,a[3]=h*b,a};f.str=function(a){return"mat2("+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+")"};"undefined"!=typeof c&&(c.mat2=f);f={create:function(){var d=new a(6);return d[0]=1,d[1]=0,d[2]=0,d[3]=1,d[4]=0,d[5]=0,d},clone:function(d){var b=new a(6);return b[0]=d[0],b[1]=d[1],b[2]=d[2],b[3]=d[3],b[4]=d[4],b[5]=d[5],b},copy:function(a,d){return a[0]=d[0],a[1]=d[1],a[2]=d[2],a[3]=
d[3],a[4]=d[4],a[5]=d[5],a},identity:function(a){return a[0]=1,a[1]=0,a[2]=0,a[3]=1,a[4]=0,a[5]=0,a},invert:function(a,d){var b=d[0],f=d[1],c=d[2],h=d[3],e=d[4],g=d[5],k=b*h-f*c;return k?(k=1/k,a[0]=h*k,a[1]=-f*k,a[2]=-c*k,a[3]=b*k,a[4]=(c*g-h*e)*k,a[5]=(f*e-b*g)*k,a):null},determinant:function(a){return a[0]*a[3]-a[1]*a[2]},multiply:function(a,d,b){var f=d[0],c=d[1],h=d[2],e=d[3],g=d[4];d=d[5];var k=b[0],v=b[1],y=b[2],B=b[3],H=b[4];b=b[5];return a[0]=f*k+c*y,a[1]=f*v+c*B,a[2]=h*k+e*y,a[3]=h*v+e*
B,a[4]=k*g+y*d+H,a[5]=v*g+B*d+b,a}};f.mul=f.multiply;f.rotate=function(a,d,b){var f=d[0],c=d[1],h=d[2],e=d[3],g=d[4];d=d[5];var k=Math.sin(b);b=Math.cos(b);return a[0]=f*b+c*k,a[1]=-f*k+c*b,a[2]=h*b+e*k,a[3]=-h*k+b*e,a[4]=b*g+k*d,a[5]=b*d-k*g,a};f.scale=function(a,d,b){var f=b[0];b=b[1];return a[0]=d[0]*f,a[1]=d[1]*b,a[2]=d[2]*f,a[3]=d[3]*b,a[4]=d[4]*f,a[5]=d[5]*b,a};f.translate=function(a,d,b){return a[0]=d[0],a[1]=d[1],a[2]=d[2],a[3]=d[3],a[4]=d[4]+b[0],a[5]=d[5]+b[1],a};f.str=function(a){return"mat2d("+
a[0]+", "+a[1]+", "+a[2]+", "+a[3]+", "+a[4]+", "+a[5]+")"};"undefined"!=typeof c&&(c.mat2d=f);f={create:function(){var d=new a(9);return d[0]=1,d[1]=0,d[2]=0,d[3]=0,d[4]=1,d[5]=0,d[6]=0,d[7]=0,d[8]=1,d},fromMat4:function(a,d){return a[0]=d[0],a[1]=d[1],a[2]=d[2],a[3]=d[4],a[4]=d[5],a[5]=d[6],a[6]=d[8],a[7]=d[9],a[8]=d[10],a},clone:function(d){var b=new a(9);return b[0]=d[0],b[1]=d[1],b[2]=d[2],b[3]=d[3],b[4]=d[4],b[5]=d[5],b[6]=d[6],b[7]=d[7],b[8]=d[8],b},copy:function(a,d){return a[0]=d[0],a[1]=
d[1],a[2]=d[2],a[3]=d[3],a[4]=d[4],a[5]=d[5],a[6]=d[6],a[7]=d[7],a[8]=d[8],a},identity:function(a){return a[0]=1,a[1]=0,a[2]=0,a[3]=0,a[4]=1,a[5]=0,a[6]=0,a[7]=0,a[8]=1,a},transpose:function(a,d){if(a===d){var b=d[1],f=d[2],c=d[5];a[1]=d[3];a[2]=d[6];a[3]=b;a[5]=d[7];a[6]=f;a[7]=c}else a[0]=d[0],a[1]=d[3],a[2]=d[6],a[3]=d[1],a[4]=d[4],a[5]=d[7],a[6]=d[2],a[7]=d[5],a[8]=d[8];return a},invert:function(a,d){var b=d[0],f=d[1],c=d[2],h=d[3],e=d[4],g=d[5],k=d[6],v=d[7],y=d[8],B=y*e-g*v,H=-y*h+g*k,z=v*h-
e*k,x=b*B+f*H+c*z;return x?(x=1/x,a[0]=B*x,a[1]=(-y*f+c*v)*x,a[2]=(g*f-c*e)*x,a[3]=H*x,a[4]=(y*b-c*k)*x,a[5]=(-g*b+c*h)*x,a[6]=z*x,a[7]=(-v*b+f*k)*x,a[8]=(e*b-f*h)*x,a):null},adjoint:function(a,d){var b=d[0],f=d[1],c=d[2],h=d[3],e=d[4],g=d[5],k=d[6],v=d[7],y=d[8];return a[0]=e*y-g*v,a[1]=c*v-f*y,a[2]=f*g-c*e,a[3]=g*k-h*y,a[4]=b*y-c*k,a[5]=c*h-b*g,a[6]=h*v-e*k,a[7]=f*k-b*v,a[8]=b*e-f*h,a},determinant:function(a){var d=a[3],b=a[4],f=a[5],c=a[6],h=a[7],e=a[8];return a[0]*(e*b-f*h)+a[1]*(-e*d+f*c)+a[2]*
(h*d-b*c)},multiply:function(a,d,b){var f=d[0],c=d[1],h=d[2],e=d[3],g=d[4],k=d[5],v=d[6],y=d[7];d=d[8];var B=b[0],H=b[1],z=b[2],x=b[3],G=b[4],E=b[5],K=b[6],Q=b[7];b=b[8];return a[0]=B*f+H*e+z*v,a[1]=B*c+H*g+z*y,a[2]=B*h+H*k+z*d,a[3]=x*f+G*e+E*v,a[4]=x*c+G*g+E*y,a[5]=x*h+G*k+E*d,a[6]=K*f+Q*e+b*v,a[7]=K*c+Q*g+b*y,a[8]=K*h+Q*k+b*d,a}};f.mul=f.multiply;f.translate=function(a,d,b){var f=d[0],c=d[1],h=d[2],e=d[3],g=d[4],k=d[5],v=d[6],y=d[7];d=d[8];var B=b[0];b=b[1];return a[0]=f,a[1]=c,a[2]=h,a[3]=e,a[4]=
g,a[5]=k,a[6]=B*f+b*e+v,a[7]=B*c+b*g+y,a[8]=B*h+b*k+d,a};f.rotate=function(a,d,b){var f=d[0],c=d[1],h=d[2],e=d[3],g=d[4],k=d[5],v=d[6],y=d[7];d=d[8];var B=Math.sin(b);b=Math.cos(b);return a[0]=b*f+B*e,a[1]=b*c+B*g,a[2]=b*h+B*k,a[3]=b*e-B*f,a[4]=b*g-B*c,a[5]=b*k-B*h,a[6]=v,a[7]=y,a[8]=d,a};f.scale=function(a,d,b){var f=b[0];b=b[2];return a[0]=f*d[0],a[1]=f*d[1],a[2]=f*d[2],a[3]=b*d[3],a[4]=b*d[4],a[5]=b*d[5],a[6]=d[6],a[7]=d[7],a[8]=d[8],a};f.fromMat2d=function(a,d){return a[0]=d[0],a[1]=d[1],a[2]=
0,a[3]=d[2],a[4]=d[3],a[5]=0,a[6]=d[4],a[7]=d[5],a[8]=1,a};f.fromQuat=function(a,d){var b=d[0],f=d[1],c=d[2],h=d[3],e=b+b,g=f+f,k=c+c,v=b*e,y=b*g,b=b*k,B=f*g,f=f*k,c=c*k,e=h*e,g=h*g,h=h*k;return a[0]=1-(B+c),a[1]=y+h,a[2]=b-g,a[3]=y-h,a[4]=1-(v+c),a[5]=f+e,a[6]=b+g,a[7]=f-e,a[8]=1-(v+B),a};f.str=function(a){return"mat3("+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+", "+a[4]+", "+a[5]+", "+a[6]+", "+a[7]+", "+a[8]+")"};"undefined"!=typeof c&&(c.mat3=f);var k={create:function(){var d=new a(16);return d[0]=1,
d[1]=0,d[2]=0,d[3]=0,d[4]=0,d[5]=1,d[6]=0,d[7]=0,d[8]=0,d[9]=0,d[10]=1,d[11]=0,d[12]=0,d[13]=0,d[14]=0,d[15]=1,d},clone:function(d){var b=new a(16);return b[0]=d[0],b[1]=d[1],b[2]=d[2],b[3]=d[3],b[4]=d[4],b[5]=d[5],b[6]=d[6],b[7]=d[7],b[8]=d[8],b[9]=d[9],b[10]=d[10],b[11]=d[11],b[12]=d[12],b[13]=d[13],b[14]=d[14],b[15]=d[15],b},copy:function(a,d){return a[0]=d[0],a[1]=d[1],a[2]=d[2],a[3]=d[3],a[4]=d[4],a[5]=d[5],a[6]=d[6],a[7]=d[7],a[8]=d[8],a[9]=d[9],a[10]=d[10],a[11]=d[11],a[12]=d[12],a[13]=d[13],
a[14]=d[14],a[15]=d[15],a},identity:function(a){return a[0]=1,a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[5]=1,a[6]=0,a[7]=0,a[8]=0,a[9]=0,a[10]=1,a[11]=0,a[12]=0,a[13]=0,a[14]=0,a[15]=1,a},transpose:function(a,d){if(a===d){var b=d[1],f=d[2],c=d[3],h=d[6],e=d[7],g=d[11];a[1]=d[4];a[2]=d[8];a[3]=d[12];a[4]=b;a[6]=d[9];a[7]=d[13];a[8]=f;a[9]=h;a[11]=d[14];a[12]=c;a[13]=e;a[14]=g}else a[0]=d[0],a[1]=d[4],a[2]=d[8],a[3]=d[12],a[4]=d[1],a[5]=d[5],a[6]=d[9],a[7]=d[13],a[8]=d[2],a[9]=d[6],a[10]=d[10],a[11]=d[14],a[12]=
d[3],a[13]=d[7],a[14]=d[11],a[15]=d[15];return a},invert:function(a,d){var b=d[0],f=d[1],c=d[2],h=d[3],e=d[4],g=d[5],k=d[6],v=d[7],y=d[8],B=d[9],H=d[10],z=d[11],x=d[12],G=d[13],E=d[14],K=d[15],Q=b*g-f*e,O=b*k-c*e,T=b*v-h*e,U=f*k-c*g,ja=f*v-h*g,u=c*v-h*k,t=y*G-B*x,oa=y*E-H*x,V=y*K-z*x,M=B*E-H*G,ea=B*K-z*G,S=H*K-z*E,I=Q*S-O*ea+T*M+U*V-ja*oa+u*t;return I?(I=1/I,a[0]=(g*S-k*ea+v*M)*I,a[1]=(c*ea-f*S-h*M)*I,a[2]=(G*u-E*ja+K*U)*I,a[3]=(H*ja-B*u-z*U)*I,a[4]=(k*V-e*S-v*oa)*I,a[5]=(b*S-c*V+h*oa)*I,a[6]=(E*
T-x*u-K*O)*I,a[7]=(y*u-H*T+z*O)*I,a[8]=(e*ea-g*V+v*t)*I,a[9]=(f*V-b*ea-h*t)*I,a[10]=(x*ja-G*T+K*Q)*I,a[11]=(B*T-y*ja-z*Q)*I,a[12]=(g*oa-e*M-k*t)*I,a[13]=(b*M-f*oa+c*t)*I,a[14]=(G*O-x*U-E*Q)*I,a[15]=(y*U-B*O+H*Q)*I,a):null},adjoint:function(a,d){var b=d[0],f=d[1],c=d[2],h=d[3],e=d[4],g=d[5],k=d[6],v=d[7],y=d[8],B=d[9],H=d[10],z=d[11],x=d[12],G=d[13],E=d[14],K=d[15];return a[0]=g*(H*K-z*E)-B*(k*K-v*E)+G*(k*z-v*H),a[1]=-(f*(H*K-z*E)-B*(c*K-h*E)+G*(c*z-h*H)),a[2]=f*(k*K-v*E)-g*(c*K-h*E)+G*(c*v-h*k),a[3]=
-(f*(k*z-v*H)-g*(c*z-h*H)+B*(c*v-h*k)),a[4]=-(e*(H*K-z*E)-y*(k*K-v*E)+x*(k*z-v*H)),a[5]=b*(H*K-z*E)-y*(c*K-h*E)+x*(c*z-h*H),a[6]=-(b*(k*K-v*E)-e*(c*K-h*E)+x*(c*v-h*k)),a[7]=b*(k*z-v*H)-e*(c*z-h*H)+y*(c*v-h*k),a[8]=e*(B*K-z*G)-y*(g*K-v*G)+x*(g*z-v*B),a[9]=-(b*(B*K-z*G)-y*(f*K-h*G)+x*(f*z-h*B)),a[10]=b*(g*K-v*G)-e*(f*K-h*G)+x*(f*v-h*g),a[11]=-(b*(g*z-v*B)-e*(f*z-h*B)+y*(f*v-h*g)),a[12]=-(e*(B*E-H*G)-y*(g*E-k*G)+x*(g*H-k*B)),a[13]=b*(B*E-H*G)-y*(f*E-c*G)+x*(f*H-c*B),a[14]=-(b*(g*E-k*G)-e*(f*E-c*G)+x*
(f*k-c*g)),a[15]=b*(g*H-k*B)-e*(f*H-c*B)+y*(f*k-c*g),a},determinant:function(a){var d=a[0],b=a[1],f=a[2],c=a[3],h=a[4],e=a[5],g=a[6],k=a[7],v=a[8],y=a[9],B=a[10],H=a[11],z=a[12],x=a[13],G=a[14];a=a[15];return(d*e-b*h)*(B*a-H*G)-(d*g-f*h)*(y*a-H*x)+(d*k-c*h)*(y*G-B*x)+(b*g-f*e)*(v*a-H*z)-(b*k-c*e)*(v*G-B*z)+(f*k-c*g)*(v*x-y*z)},multiply:function(a,d,b){var f=d[0],c=d[1],h=d[2],e=d[3],g=d[4],k=d[5],v=d[6],y=d[7],B=d[8],H=d[9],z=d[10],x=d[11],G=d[12],E=d[13],K=d[14];d=d[15];var Q=b[0],O=b[1],T=b[2],
U=b[3];return a[0]=Q*f+O*g+T*B+U*G,a[1]=Q*c+O*k+T*H+U*E,a[2]=Q*h+O*v+T*z+U*K,a[3]=Q*e+O*y+T*x+U*d,Q=b[4],O=b[5],T=b[6],U=b[7],a[4]=Q*f+O*g+T*B+U*G,a[5]=Q*c+O*k+T*H+U*E,a[6]=Q*h+O*v+T*z+U*K,a[7]=Q*e+O*y+T*x+U*d,Q=b[8],O=b[9],T=b[10],U=b[11],a[8]=Q*f+O*g+T*B+U*G,a[9]=Q*c+O*k+T*H+U*E,a[10]=Q*h+O*v+T*z+U*K,a[11]=Q*e+O*y+T*x+U*d,Q=b[12],O=b[13],T=b[14],U=b[15],a[12]=Q*f+O*g+T*B+U*G,a[13]=Q*c+O*k+T*H+U*E,a[14]=Q*h+O*v+T*z+U*K,a[15]=Q*e+O*y+T*x+U*d,a}};k.mul=k.multiply;k.translate=function(a,d,b){var f=
b[0],c=b[1];b=b[2];var h,e,g,k,v,y,B,H,z,x,G,E;return d===a?(a[12]=d[0]*f+d[4]*c+d[8]*b+d[12],a[13]=d[1]*f+d[5]*c+d[9]*b+d[13],a[14]=d[2]*f+d[6]*c+d[10]*b+d[14],a[15]=d[3]*f+d[7]*c+d[11]*b+d[15]):(h=d[0],e=d[1],g=d[2],k=d[3],v=d[4],y=d[5],B=d[6],H=d[7],z=d[8],x=d[9],G=d[10],E=d[11],a[0]=h,a[1]=e,a[2]=g,a[3]=k,a[4]=v,a[5]=y,a[6]=B,a[7]=H,a[8]=z,a[9]=x,a[10]=G,a[11]=E,a[12]=h*f+v*c+z*b+d[12],a[13]=e*f+y*c+x*b+d[13],a[14]=g*f+B*c+G*b+d[14],a[15]=k*f+H*c+E*b+d[15]),a};k.scale=function(a,d,b){var f=b[0],
c=b[1];b=b[2];return a[0]=d[0]*f,a[1]=d[1]*f,a[2]=d[2]*f,a[3]=d[3]*f,a[4]=d[4]*c,a[5]=d[5]*c,a[6]=d[6]*c,a[7]=d[7]*c,a[8]=d[8]*b,a[9]=d[9]*b,a[10]=d[10]*b,a[11]=d[11]*b,a[12]=d[12],a[13]=d[13],a[14]=d[14],a[15]=d[15],a};k.rotate=function(a,d,f,c){var h=c[0],e=c[1];c=c[2];var g=Math.sqrt(h*h+e*e+c*c),k,C,v,y,B,H,z,x,G,E,K,Q,O,T,U,ja,u,t,oa,V,M,ea,S,I;return Math.abs(g)<b?null:(g=1/g,h*=g,e*=g,c*=g,k=Math.sin(f),C=Math.cos(f),v=1-C,y=d[0],B=d[1],H=d[2],z=d[3],x=d[4],G=d[5],E=d[6],K=d[7],Q=d[8],O=d[9],
T=d[10],U=d[11],ja=h*h*v+C,u=e*h*v+c*k,t=c*h*v-e*k,oa=h*e*v-c*k,V=e*e*v+C,M=c*e*v+h*k,ea=h*c*v+e*k,S=e*c*v-h*k,I=c*c*v+C,a[0]=y*ja+x*u+Q*t,a[1]=B*ja+G*u+O*t,a[2]=H*ja+E*u+T*t,a[3]=z*ja+K*u+U*t,a[4]=y*oa+x*V+Q*M,a[5]=B*oa+G*V+O*M,a[6]=H*oa+E*V+T*M,a[7]=z*oa+K*V+U*M,a[8]=y*ea+x*S+Q*I,a[9]=B*ea+G*S+O*I,a[10]=H*ea+E*S+T*I,a[11]=z*ea+K*S+U*I,d!==a&&(a[12]=d[12],a[13]=d[13],a[14]=d[14],a[15]=d[15]),a)};k.rotateX=function(a,d,b){var f=Math.sin(b);b=Math.cos(b);var c=d[4],h=d[5],e=d[6],g=d[7],k=d[8],v=d[9],
y=d[10],B=d[11];return d!==a&&(a[0]=d[0],a[1]=d[1],a[2]=d[2],a[3]=d[3],a[12]=d[12],a[13]=d[13],a[14]=d[14],a[15]=d[15]),a[4]=c*b+k*f,a[5]=h*b+v*f,a[6]=e*b+y*f,a[7]=g*b+B*f,a[8]=k*b-c*f,a[9]=v*b-h*f,a[10]=y*b-e*f,a[11]=B*b-g*f,a};k.rotateY=function(a,d,b){var f=Math.sin(b);b=Math.cos(b);var c=d[0],h=d[1],e=d[2],g=d[3],k=d[8],v=d[9],y=d[10],B=d[11];return d!==a&&(a[4]=d[4],a[5]=d[5],a[6]=d[6],a[7]=d[7],a[12]=d[12],a[13]=d[13],a[14]=d[14],a[15]=d[15]),a[0]=c*b-k*f,a[1]=h*b-v*f,a[2]=e*b-y*f,a[3]=g*b-
B*f,a[8]=c*f+k*b,a[9]=h*f+v*b,a[10]=e*f+y*b,a[11]=g*f+B*b,a};k.rotateZ=function(a,d,b){var f=Math.sin(b);b=Math.cos(b);var c=d[0],h=d[1],e=d[2],g=d[3],k=d[4],v=d[5],y=d[6],B=d[7];return d!==a&&(a[8]=d[8],a[9]=d[9],a[10]=d[10],a[11]=d[11],a[12]=d[12],a[13]=d[13],a[14]=d[14],a[15]=d[15]),a[0]=c*b+k*f,a[1]=h*b+v*f,a[2]=e*b+y*f,a[3]=g*b+B*f,a[4]=k*b-c*f,a[5]=v*b-h*f,a[6]=y*b-e*f,a[7]=B*b-g*f,a};k.fromRotationTranslation=function(a,d,b){var f=d[0],c=d[1],h=d[2],e=d[3],g=f+f,k=c+c,v=h+h;d=f*g;var y=f*k,
f=f*v,B=c*k,c=c*v,h=h*v,g=e*g,k=e*k,e=e*v;return a[0]=1-(B+h),a[1]=y+e,a[2]=f-k,a[3]=0,a[4]=y-e,a[5]=1-(d+h),a[6]=c+g,a[7]=0,a[8]=f+k,a[9]=c-g,a[10]=1-(d+B),a[11]=0,a[12]=b[0],a[13]=b[1],a[14]=b[2],a[15]=1,a};k.fromQuat=function(a,d){var b=d[0],f=d[1],c=d[2],h=d[3],e=b+b,g=f+f,k=c+c,v=b*e,y=b*g,b=b*k,B=f*g,f=f*k,c=c*k,e=h*e,g=h*g,h=h*k;return a[0]=1-(B+c),a[1]=y+h,a[2]=b-g,a[3]=0,a[4]=y-h,a[5]=1-(v+c),a[6]=f+e,a[7]=0,a[8]=b+g,a[9]=f-e,a[10]=1-(v+B),a[11]=0,a[12]=0,a[13]=0,a[14]=0,a[15]=1,a};k.frustum=
function(a,d,b,f,c,h,e){var g=1/(b-d),k=1/(c-f),v=1/(h-e);return a[0]=2*h*g,a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[5]=2*h*k,a[6]=0,a[7]=0,a[8]=(b+d)*g,a[9]=(c+f)*k,a[10]=(e+h)*v,a[11]=-1,a[12]=0,a[13]=0,a[14]=2*(e*h)*v,a[15]=0,a};k.perspective=function(a,d,b,f,c){d=1/Math.tan(d/2);var h=1/(f-c);return a[0]=d/b,a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[5]=d,a[6]=0,a[7]=0,a[8]=0,a[9]=0,a[10]=(c+f)*h,a[11]=-1,a[12]=0,a[13]=0,a[14]=2*c*f*h,a[15]=0,a};k.ortho=function(a,d,b,f,c,h,e){var g=1/(d-b),k=1/(f-c),v=1/(h-e);return a[0]=
-2*g,a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[5]=-2*k,a[6]=0,a[7]=0,a[8]=0,a[9]=0,a[10]=2*v,a[11]=0,a[12]=(d+b)*g,a[13]=(c+f)*k,a[14]=(e+h)*v,a[15]=1,a};k.lookAt=function(a,d,f,c){var h,e,g,F,C,v,y,B,H,z,x=d[0],G=d[1];d=d[2];var E=c[0],K=c[1];c=c[2];var Q=f[0],O=f[1];f=f[2];return Math.abs(x-Q)<b&&Math.abs(G-O)<b&&Math.abs(d-f)<b?k.identity(a):(y=x-Q,B=G-O,H=d-f,z=1/Math.sqrt(y*y+B*B+H*H),y*=z,B*=z,H*=z,h=K*H-c*B,e=c*y-E*H,g=E*B-K*y,z=Math.sqrt(h*h+e*e+g*g),z?(z=1/z,h*=z,e*=z,g*=z):(h=0,e=0,g=0),F=B*g-H*e,C=
H*h-y*g,v=y*e-B*h,z=Math.sqrt(F*F+C*C+v*v),z?(z=1/z,F*=z,C*=z,v*=z):(F=0,C=0,v=0),a[0]=h,a[1]=F,a[2]=y,a[3]=0,a[4]=e,a[5]=C,a[6]=B,a[7]=0,a[8]=g,a[9]=v,a[10]=H,a[11]=0,a[12]=-(h*x+e*G+g*d),a[13]=-(F*x+C*G+v*d),a[14]=-(y*x+B*G+H*d),a[15]=1,a)};k.str=function(a){return"mat4("+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+", "+a[4]+", "+a[5]+", "+a[6]+", "+a[7]+", "+a[8]+", "+a[9]+", "+a[10]+", "+a[11]+", "+a[12]+", "+a[13]+", "+a[14]+", "+a[15]+")"};"undefined"!=typeof c&&(c.mat4=k);f={create:function(){var d=
new a(4);return d[0]=0,d[1]=0,d[2]=0,d[3]=1,d}};f.clone=e.clone;f.fromValues=e.fromValues;f.copy=e.copy;f.set=e.set;f.identity=function(a){return a[0]=0,a[1]=0,a[2]=0,a[3]=1,a};f.setAxisAngle=function(a,d,b){b*=0.5;var f=Math.sin(b);return a[0]=f*d[0],a[1]=f*d[1],a[2]=f*d[2],a[3]=Math.cos(b),a};f.add=e.add;f.multiply=function(a,d,b){var f=d[0],c=d[1],h=d[2];d=d[3];var e=b[0],g=b[1],k=b[2];b=b[3];return a[0]=f*b+d*e+c*k-h*g,a[1]=c*b+d*g+h*e-f*k,a[2]=h*b+d*k+f*g-c*e,a[3]=d*b-f*e-c*g-h*k,a};f.mul=f.multiply;
f.scale=e.scale;f.rotateX=function(a,d,b){b*=0.5;var f=d[0],c=d[1],h=d[2];d=d[3];var e=Math.sin(b);b=Math.cos(b);return a[0]=f*b+d*e,a[1]=c*b+h*e,a[2]=h*b-c*e,a[3]=d*b-f*e,a};f.rotateY=function(a,d,b){b*=0.5;var f=d[0],c=d[1],h=d[2];d=d[3];var e=Math.sin(b);b=Math.cos(b);return a[0]=f*b-h*e,a[1]=c*b+d*e,a[2]=h*b+f*e,a[3]=d*b-c*e,a};f.rotateZ=function(a,d,b){b*=0.5;var f=d[0],c=d[1],h=d[2];d=d[3];var e=Math.sin(b);b=Math.cos(b);return a[0]=f*b+c*e,a[1]=c*b-f*e,a[2]=h*b+d*e,a[3]=d*b-h*e,a};f.calculateW=
function(a,d){var b=d[0],f=d[1],c=d[2];return a[0]=b,a[1]=f,a[2]=c,a[3]=-Math.sqrt(Math.abs(1-b*b-f*f-c*c)),a};f.dot=e.dot;f.lerp=e.lerp;f.slerp=function(a,d,b,f){var c=d[0],h=d[1],e=d[2],g=d[3],k=b[0],v=b[1],y=b[2];b=b[3];var B=c*k+h*v+e*y+g*b,H,z,x,G;return 1<=Math.abs(B)?(a!==d&&(a[0]=c,a[1]=h,a[2]=e,a[3]=g),a):(H=Math.acos(B),z=Math.sqrt(1-B*B),0.001>Math.abs(z)?(a[0]=0.5*c+0.5*k,a[1]=0.5*h+0.5*v,a[2]=0.5*e+0.5*y,a[3]=0.5*g+0.5*b,a):(x=Math.sin((1-f)*H)/z,G=Math.sin(f*H)/z,a[0]=c*x+k*G,a[1]=h*
x+v*G,a[2]=e*x+y*G,a[3]=g*x+b*G,a))};f.invert=function(a,d){var b=d[0],f=d[1],c=d[2],h=d[3],e=b*b+f*f+c*c+h*h,e=e?1/e:0;return a[0]=-b*e,a[1]=-f*e,a[2]=-c*e,a[3]=h*e,a};f.conjugate=function(a,d){return a[0]=-d[0],a[1]=-d[1],a[2]=-d[2],a[3]=d[3],a};f.length=e.length;f.len=f.length;f.squaredLength=e.squaredLength;f.sqrLen=f.squaredLength;f.normalize=e.normalize;f.fromMat3=function(){var a=[1,2,0];return function(d,b){var f=b[0]+b[4]+b[8];if(0<f)f=Math.sqrt(f+1),d[3]=0.5*f,f=0.5/f,d[0]=(b[7]-b[5])*f,
d[1]=(b[2]-b[6])*f,d[2]=(b[3]-b[1])*f;else{var c=0;b[4]>b[0]&&(c=1);b[8]>b[3*c+c]&&(c=2);var h=a[c],e=a[h],f=Math.sqrt(b[3*c+c]-b[3*h+h]-b[3*e+e]+1);d[c]=0.5*f;f=0.5/f;d[3]=(b[3*e+h]-b[3*h+e])*f;d[h]=(b[3*h+c]+b[3*c+h])*f;d[e]=(b[3*e+c]+b[3*c+e])*f}return d}}();f.str=function(a){return"quat("+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+")"};"undefined"!=typeof c&&(c.quat=f)})(e)})();"use strict";
tv.exportTo("tv.b",function(){var e=vec2.create(),c=vec2.create(),b=vec4.create();mat2d.create();vec2.createFromArray=function(a){if(2!=a.length)throw Error("Should be length 2");var b=vec2.create();vec2.set(b,a[0],a[1]);return b};vec2.createXY=function(a,b){var d=vec2.create();vec2.set(d,a,b);return d};vec2.toString=function(a){return"["+a[0]+", "+a[1]+"]"};vec2.addTwoScaledUnitVectors=function(a,b,d,h,g){vec2.scale(e,b,d);vec2.scale(c,h,g);vec2.add(a,e,c)};vec3.createXYZ=function(a,b,d){var c=vec3.create();
vec3.set(c,a,b,d);return c};vec3.toString=function(a){return"vec3("+a[0]+", "+a[1]+", "+a[2]+")"};mat2d.translateXY=function(a,b,d){vec2.set(e,b,d);mat2d.translate(a,a,e)};mat2d.scaleXY=function(a,b,d){vec2.set(e,b,d);mat2d.scale(a,a,e)};vec4.unitize=function(a,b){a[0]=b[0]/b[3];a[1]=b[1]/b[3];a[2]=b[2]/b[3];a[3]=1;return a};vec2.copyFromVec4=function(a,f){vec4.unitize(b,f);vec2.copy(a,b)};return{}});"use strict";
tv.exportTo("tv.b",function(){function e(){this.height=this.width=this.y=this.x=0}e.fromXYWH=function(c,b,a,f){var d=new e;d.x=c;d.y=b;d.width=a;d.height=f;return d};e.fromArray=function(c){if(4!=c.length)throw Error("ary.length must be 4");var b=new e;b.x=c[0];b.y=c[1];b.width=c[2];b.height=c[3];return b};e.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:function(){return"Rect("+
this.x+", "+this.y+", "+this.width+", "+this.height+")"},toArray:function(){return[this.x,this.y,this.width,this.height]},clone:function(){var c=new e;c.x=this.x;c.y=this.y;c.width=this.width;c.height=this.height;return c},enlarge:function(c){var b=new e;this.enlargeFast(b,c);return b},enlargeFast:function(c,b){c.x=this.x-b;c.y=this.y-b;c.width=this.width+2*b;c.height=this.height+2*b;return c},size:function(){return{width:this.width,height:this.height}},scale:function(c){var b=new e;this.scaleFast(b,
c);return b},scaleSize:function(c){return e.fromXYWH(this.x,this.y,this.width*c,this.height*c)},scaleFast:function(c,b){c.x=this.x*b;c.y=this.y*b;c.width=this.width*b;c.height=this.height*b;return c},translate:function(c){var b=new e;this.translateFast(b,c);return b},translateFast:function(c,b){c.x=this.x+b[0];c.y=this.x+b[1];c.width=this.width;c.height=this.height;return c},asUVRectInside:function(c){var b=new e;b.x=(this.x-c.x)/c.width;b.y=(this.y-c.y)/c.height;b.width=this.width/c.width;b.height=
this.height/c.height;return b},intersects:function(c){var b;b=1&this.x<c.right;b&=this.right>c.x;b&=this.y<c.bottom;return b&=this.bottom>c.y},equalTo:function(c){return c&&this.x===c.x&&this.y===c.y&&this.width===c.width&&this.height===c.height}};return{Rect:e}});"use strict";
tv.exportTo("tv.b",function(){return{addSingletonGetter:function(e){e.getInstance=function(){return e.instance_||(e.instance_=new e)}},tracedFunction:function(e,c,b){return function(){console.time(c);try{e.apply(b,arguments)}finally{console.timeEnd(c)}}},normalizeException:function(e){return"string"==typeof e?{message:e,stack:["<unknown>"]}:{message:e.message,stack:e.stack?e.stack:["<unknown>"]}},instantiateTemplate:function(e,c){c=c||document;var b=c.querySelector(e);if(!b)throw Error("Element not found");
return b.createInstance()},stackTrace:function(){var e=Error().stack+"",e=e.split("\n");return e.slice(2)},windowRectForElement:function(e){var c=[e.offsetLeft,e.offsetTop],b=[e.offsetWidth,e.offsetHeight];for(e=e.offsetParent;e;)c[0]+=e.offsetLeft,c[1]+=e.offsetTop,e=e.offsetParent;return tv.b.Rect.fromXYWH(c[0],c[1],b[0],b[1])},scrollIntoViewIfNeeded:function(e){var c=e.parentElement.getBoundingClientRect(),b=e.getBoundingClientRect();b.top<c.top?e.scrollIntoView(!0):b.bottom>c.bottom&&e.scrollIntoView(!1)},
clamp:function(e,c,b){return Math.min(Math.max(e,c),b)},lerp:function(e,c,b){return c+e*(b-c)},deg2rad:function(e){return Math.PI*e/180},getUsingPath:function(e,c){for(var b=e.split("."),a=c,f;b.length&&(f=b.shift());)if(b.length)if(f in a)a=a[f];else break;else return a[f]}}});"use strict";
tv.exportTo("tv.b",function(){function e(){return e}function c(){return c}function b(a,b){a.storage_=b;a.get=function(d,b,f){d=a.namespace_(d,f);var c=a.storage_.getItem(d);if(null===c||void 0===c)return b;try{return JSON.parse(c).value}catch(e){return a.storage_.removeItem(a.namespace_(d,f)),b}};a.set=function(d,b,f){if(void 0===b)throw Error("Settings.set: value must not be undefined");b=JSON.stringify({value:b});a.storage_.setItem(a.namespace_(d,f),b)};a.keys=function(d){var b=[];d=d||"";for(var f=
0;f<a.storage_.length;f++){var c=a.storage_.key(f);a.isnamespaced_(c,d)&&b.push(a.unnamespace_(c,d))}return b};a.isnamespaced_=function(d,b){return 0==d.indexOf(a.normalize_(b))};a.namespace_=function(d,b){return a.normalize_(b)+d};a.unnamespace_=function(d,b){return d.replace(a.normalize_(b),"")};a.normalize_=function(d){return a.NAMESPACE+(d?d+".":"")};a.setAlternativeStorageInstance=function(d){a.storage_=d};a.getAlternativeStorageInstance=function(){return a.storage_===localStorage?void 0:a.storage_};
a.NAMESPACE="trace-viewer"}document.head.addEventListener("tv-unittest-will-run",function(){e.setAlternativeStorageInstance(global.sessionStorage)});b(e,localStorage);b(c,sessionStorage);return{Settings:e,SessionSettings:c}});"use strict";
tv.exportTo("tv.b.ui",function(){function e(a){var d=document.createElement("span");a&&(a.className&&(d.className=a.className),a.textContent&&(d.textContent=a.textContent),a.parent&&a.parent.appendChild(d),a.bold&&(d.style.fontWeight="bold"));return d}function c(a,d){return a instanceof Array&&d instanceof Array?a.length===d.length&&JSON.stringify(a)===JSON.stringify(d):a===d}function b(a,d){var b=e({className:"edit-categories"});b.textContent="Edit categories";b.classList.add("labeled-option");b.addEventListener("click",
function(){d.onClickEditCategories()});return b}var a=1;return{createSpan:e,createDiv:function(a){var d=document.createElement("div");a&&(a.className&&(d.className=a.className),a.parent&&a.parent.appendChild(d));return d},createScopedStyle:function(a){var d=document.createElement("style");d.scoped=!0;d.innerHTML=a;return d},createSelector:function(a,d,b,e,k,l){function m(c){c=s.selectedOptions[0].targetPropertyValue;tv.b.Settings.set(b,c,l);a[d]=c}for(var n,q=0;q<k.length;q++){var w=k[q];if(c(w.value,
e)){n=q;break}}if(void 0===n)throw Error("defaultValue must be in the items list");var s=document.createElement("select");s.addEventListener("change",m);for(q=0;q<k.length;q++){var w=k[q],D=document.createElement("option");D.textContent=w.label;D.targetPropertyValue=w.value;s.appendChild(D)}a.__lookupSetter__("selectedIndex");s.__defineGetter__("selectedValue",function(a){return s.children[s.selectedIndex].targetPropertyValue});s.__defineSetter__("selectedValue",function(a){for(var d=0;d<s.children.length;d++)if(c(s.children[d].targetPropertyValue,
a)){s.selectedIndex!=d&&(s.selectedIndex=d,m());return}throw Error("Not a valid value");});k=tv.b.Settings.get(b,e,l);w=!1;for(q=0;q<s.children.length;q++)if(c(s.children[q].targetPropertyValue,k)){w=!0;a[d]=k;s.selectedIndex=q;break}w||(s.selectedIndex=n,a[d]=e);return s},createOptionGroup:function(a,d,h,g,k){function l(){var b=[];this.value.length&&(b=this.value.split(","));tv.b.Settings.set(h,b);a[d]=b}var m=e({className:"labeled-option-group"});g=tv.b.Settings.get(h,g);for(var n=0;n<k.length;++n){var q=
k[n],w="category-preset-"+q.label.replace(/ /g,"-"),s=document.createElement("input");s.type="radio";s.setAttribute("id",w);s.setAttribute("name","category-presets-group");s.setAttribute("value",q.value);s.addEventListener("change",l.bind(s,a,d,h));c(g,q.value)&&(s.checked=!0);var D=document.createElement("label");D.textContent=q.label;D.setAttribute("for",w);q=e({className:"labeled-option"});q.appendChild(s);q.appendChild(D);q.__defineSetter__("checked",function(a){s.checked!==!!a&&(s.checked=!!a,
l())});q.__defineGetter__("checked",function(){return s.checked});m.appendChild(q)}m.appendChild(b(m,a));g.length||m.classList.add("categories-expanded");a[d]=g;return m},createCheckBox:function(b,d,c,g,k){function l(){tv.b.Settings.set(c,m.checked);b&&(b[d]=m.checked)}var m=document.createElement("input");m.type="checkbox";g=tv.b.Settings.get(c,g);m.checked=!!g;b&&(b[d]=g);m.addEventListener("change",l);g="#checkbox-"+a++;var n=e({className:"labeled-checkbox"});m.setAttribute("id",g);var q=document.createElement("label");
q.textContent=k;q.setAttribute("for",g);n.appendChild(m);n.appendChild(q);n.__defineSetter__("checked",function(a){m.checked!==!!a&&(m.checked=!!a,l())});n.__defineGetter__("checked",function(){return m.checked});return n},isElementAttachedToDocument:function(a){for(var d=a;d.parentNode;)d=d.parentNode;return d===a.ownerDocument||"#document-fragment"===d.nodeName}}});"use strict";
tv.exportTo("tv.b",function(){function e(){}e.decorate=function(b){for(var a in e.prototype)if("decorate"!=a){var f=e.prototype[a];"function"===typeof f&&(b[a]=f)}};e.prototype={addEventListener:function(b,a){this.listeners_||(this.listeners_=Object.create(null));if(b in this.listeners_){var f=this.listeners_[b];0>f.indexOf(a)&&f.push(a)}else this.listeners_[b]=[a]},removeEventListener:function(b,a){if(this.listeners_&&b in this.listeners_){var f=this.listeners_[b],d=f.indexOf(a);0<=d&&(1==f.length?
delete this.listeners_[b]:f.splice(d,1))}},dispatchEvent:function(b){if(!this.listeners_)return!0;var a=this;b.__defineGetter__("target",function(){return a});var f=b.preventDefault;b.preventDefault=function(){f.call(this);this.rawReturnValue=!1};var d=b.type,c=0;if(d in this.listeners_)for(var d=this.listeners_[d].concat(),e=0,k;k=d[e];e++)c=k.handleEvent?c|!1===k.handleEvent.call(k,b):c|!1===k.call(this,b);return!c&&b.rawReturnValue},hasEventListener:function(b){return void 0!==this.listeners_[b]}};
var c={decorate:function(b){for(var a in c)if("decorate"!=a){var f=c[a];"function"===typeof f&&(b[a]=f)}b.listenerCounts_={}},addEventListener:function(b,a,f){this.__proto__.addEventListener.call(this,b,a,f);void 0===this.listenerCounts_[b]&&(this.listenerCounts_[b]=0);this.listenerCounts_[b]++},removeEventListener:function(b,a,f){this.__proto__.removeEventListener.call(this,b,a,f);this.listenerCounts_[b]--},hasEventListener:function(b){return 0<this.listenerCounts_[b]}};return{EventTarget:e,EventTargetHelper:c}});
"use strict";tv.exportTo("tv.b",function(){function e(c,b,a){var f=tv.doc.createEvent("Event");f.initEvent(c,!!b,!!a);f.__proto__=global.Event.prototype;return f}e.prototype={__proto__:global.Event.prototype};return{Event:e,dispatchSimpleEvent:function(c,b,a,f){b=new e(b,a,f);return c.dispatchEvent(b)}}});"use strict";
tv.exportTo("tv.b",function(){function e(a,b,f,c,e,m){e=new tv.b.Event(b+"Change",e,m);e.propertyName=b;e.newValue=f;e.oldValue=c;var n;e.throwError=function(a){n=a};a.dispatchEvent(e);if(n)throw n;}function c(a){return a.replace(/([A-Z])/g,"-$1").toLowerCase()}function b(a,b){switch(b){case f.JS:var e=a+"_tv_";return function(){return this[e]};case f.ATTR:var k=c(a);return function(){return this.getAttribute(k)};case f.BOOL_ATTR:return k=c(a),function(){return this.hasAttribute(k)}}}function a(a,
b,g,k,l){switch(b){case f.JS:var m=a+"_tv_";return function(b){var f=this[m];b!==f&&(this[m]=b,g&&g.call(this,b,f),e(this,a,b,f,k,l))};case f.ATTR:var n=c(a);return function(b){var f=this.getAttribute(n);b!==f&&(void 0==b?this.removeAttribute(n):this.setAttribute(n,b),g&&g.call(this,b,f),e(this,a,b,f,k,l))};case f.BOOL_ATTR:return n=c(a),function(b){var f=this.getAttribute(n)===a;b!==f&&(b?this.setAttribute(n,a):this.removeAttribute(n),g&&g.call(this,b,f),e(this,a,b,f,k,l))}}}var f={JS:"js",ATTR:"attr",
BOOL_ATTR:"boolAttr"};return{PropertyKind:f,defineProperty:function(d,c,e,k,l,m){console.error("Don't use tv.b.defineProperty");"function"==typeof d&&(d=d.prototype);e=e||f.JS;d.__lookupGetter__(c)||d.__defineGetter__(c,b(c,e));d.__lookupSetter__(c)||d.__defineSetter__(c,a(c,e,k,l,m))},dispatchPropertyChange:e,setPropertyAndDispatchChange:function(a,b,f){var c=a[b];a[b+"_"]=f;c!==f&&tv.b.dispatchPropertyChange(a,b,f,c,!0,!1)}}});"use strict";
tv.exportTo("tv.b.ui",function(){var e=document.currentScript.ownerDocument,c=tv.b.ui.define("overlay");c.prototype={__proto__:HTMLDivElement.prototype,decorate:function(){this.classList.add("overlay");this.parentEl_=this.ownerDocument.body;this.visible_=!1;this.userCanClose_=!0;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("visibleChange",
tv.b.ui.Overlay.prototype.onVisibleChange_.bind(this),!0);this.shadow_=(this.createShadowRoot||this.webkitCreateShadowRoot).call(this);this.shadow_.appendChild(tv.b.instantiateTemplate("#overlay-template",e));this.closeBtn_=this.shadow_.querySelector("close-button");this.closeBtn_.addEventListener("click",this.onClose_);this.shadow_.querySelector("overlay-frame").addEventListener("click",this.onClick_);this.observer_=new WebKitMutationObserver(this.didButtonBarMutate_.bind(this));this.observer_.observe(this.shadow_.querySelector("button-bar"),
{childList:!0});Object.defineProperty(this,"title",{get:function(){return this.shadow_.querySelector("title").textContent},set:function(b){this.shadow_.querySelector("title").textContent=b}})},set userCanClose(b){this.userCanClose_=b;this.closeBtn_.style.display=b?"block":"none"},get buttons(){return this.shadow_.querySelector("button-bar")},get visible(){return this.visible_},set visible(b){this.visible_!==b&&tv.b.setPropertyAndDispatchChange(this,"visible",b)},onVisibleChange_:function(){this.visible_?
this.show_():this.hide_()},show_:function(){this.parentEl_.appendChild(this);this.userCanClose_&&(this.addEventListener("keydown",this.onKeyDown_.bind(this)),this.addEventListener("click",this.onDocumentClick_.bind(this)));this.parentEl_.addEventListener("focusin",this.onFocusIn_);this.tabIndex=0;var b=void 0,a=this.querySelectorAll("button, input, list, select, a");0<a.length&&(a[0]===this.closeBtn_?1<a.length&&(b=a[1]):b=a[0]);void 0===b&&(b=this);b.focus()},hide_:function(){this.parentEl_.removeChild(this);
this.parentEl_.removeEventListener("focusin",this.onFocusIn_);this.closeBtn_&&this.closeBtn_.removeEventListener(this.onClose_);document.removeEventListener("keydown",this.onKeyDown_);document.removeEventListener("click",this.onDocumentClick_)},onClose_:function(b){this.visible=!1;("keydown"!=b.type||"keydown"===b.type&&27===b.keyCode)&&b.stopPropagation();b.preventDefault();tv.b.dispatchSimpleEvent(this,"closeclick")},onFocusIn_:function(b){b.target!==this&&(window.setTimeout(function(){this.focus()},
0),b.preventDefault(),b.stopPropagation())},didButtonBarMutate_:function(b){0<this.buttons.children.length?this.shadow_.querySelector("button-bar").style.display=void 0:this.shadow_.querySelector("button-bar").style.display="none"},onKeyDown_:function(b){if(9===b.keyCode&&b.shiftKey&&b.target===this)b.preventDefault();else if(27===b.keyCode)this.onClose_(b)},onClick_:function(b){b.stopPropagation()},onDocumentClick_:function(b){if(this.userCanClose_)this.onClose_(b)}};c.showError=function(b,a){var f=
new c;f.title="Error";f.textContent=b;if(a){var d=tv.b.normalizeException(a),h=document.createElement("pre");h.textContent=d.stack;h.style.paddingLeft="8px";h.style.margin=0;f.appendChild(h)}d=document.createElement("button");d.textContent="OK";d.addEventListener("click",function(){f.visible=!1});f.buttons.appendChild(d);f.visible=!0;return f};return{Overlay:c}});"use strict";
tv.exportTo("tv.b.ui",function(){var e=tv.b.ui.define("x-drag-handle");e.prototype={__proto__:HTMLDivElement.prototype,decorate:function(){this.lastMousePos_=0;this.onMouseMove_=this.onMouseMove_.bind(this);this.onMouseUp_=this.onMouseUp_.bind(this);this.addEventListener("mousedown",this.onMouseDown_);this.target_=void 0;this.horizontal=!0;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(c){this.observer_.disconnect();(this.target_=c)&&this.observer_.observe(this.target_,{attributes:!0,attributeFilter:["class"]})},get horizontal(){return this.horizontal_},set horizontal(c){this.className=(this.horizontal_=c)?"horizontal-drag-handle":"vertical-drag-handle"},get vertical(){return!this.horizontal_},set vertical(c){this.horizontal=!c},forceMutationObserverFlush_:function(){var c=this.observer_.takeRecords();c.length&&
this.didTargetMutate_(c)},didTargetMutate_:function(c){c=this.targetSizesByModeKey_[this.modeKey_];void 0!==c?this.setTargetSize_(c):this.target_.style[this.targetStyleKey_]=""},get targetStyleKey_(){return this.horizontal_?"height":"width"},getTargetSize_:function(){var c=this.targetStyleKey_;this.target_.style[c]||(this.target_.style[c]=window.getComputedStyle(this.target_)[c]);c=parseInt(this.target_.style[c]);return this.targetSizesByModeKey_[this.modeKey_]=c},setTargetSize_:function(c){this.target_.style[this.targetStyleKey_]=
c+"px";this.targetSizesByModeKey_[this.modeKey_]=c},applyDelta_:function(c){var b=this.getTargetSize_();this.setTargetSize_(this.target_===this.nextElementSibling?b+c:b-c)},onMouseMove_:function(c){var b=this.horizontal_?c.clientY:c.clientX;this.applyDelta_(this.lastMousePos_-b);this.lastMousePos_=b;c.preventDefault();return!0},onMouseDown_:function(c){if(this.target_)return this.forceMutationObserverFlush_(),this.lastMousePos_=this.horizontal_?c.clientY:c.clientX,document.addEventListener("mousemove",
this.onMouseMove_),document.addEventListener("mouseup",this.onMouseUp_),c.preventDefault(),!0},onMouseUp_:function(c){document.removeEventListener("mousemove",this.onMouseMove_);document.removeEventListener("mouseup",this.onMouseUp_);c.preventDefault()}};return{DragHandle:e}});"use strict";
tv.exportTo("tv.b",function(){function e(){void 0!==f&&void 0!==a||(a={},f={},Polymer.elements.forEach(function(d){if(a[d.name])throw Error("Something is strange: dupe polymer element names");a[d.name]=d;d.extends&&(void 0===f[d.extends]&&(f[d.extends]=[]),f[d.extends].push(d.name))}))}function c(d){e();return a[d]}function b(a){if(Polymer.waitingFor().length)throw Error("There are unresolved polymer elements. Wait until Polymer.whenReady");e();var g=c(a);if(!g)throw Error(a+" is not a polymer element");
void 0===d&&(d={});if(void 0===d[a]){var g=f[g.name],k=[];void 0!==g&&g.length&&g.forEach(function(a){k.push(a);k.push.apply(k,b(a))});d[a]=k}return d[a]}Object.observe(Polymer.elements,function(){a={};f=void 0;d={}});var a=void 0,f=void 0,d=void 0;return{getPolymerElementNamed:c,getPolymerElementsThatSubclass:b,getPolymerSubclassingDepthFrom:function(a,d){if(Polymer.waitingFor().length)throw Error("There are unresolved polymer elements. Wait until Polymer.whenReady");if(!Polymer.elements[d])throw Error(d+
" is not a polymer element");if(!Polymer.elements[a])throw Error(a+" is not a polymer element");for(var b=0,f=a;f!=d;)if(b+=1,f=Polymer.elements[f].extends,!f)throw Error(a+" does not subclass "+d);return b}}});"use strict";
Polymer("tracing-analysis-tab-view",{get selectedTab(){if(this.selectedTab_)return this.selectedTab_.content},set selectedTab(e){this.childrenUpdated_(this.childrenObserver_.takeRecords(),this.childrenObserver_);if(void 0===e||null===e)this.changeSelectedTabById_(void 0);else{for(var c=void 0,b=0;b<this.tabs_.length;b++)if(this.tabs_[b].content===e){c=this.tabs_[b].id;break}void 0===c?console.warn("Tab not in tabs list. Ignoring changed selection."):this.changeSelectedTabById_(c)}},get tabsHidden(){return this.shadowRoot.querySelector("tab-strip").hasAttribute("tabs-hidden")},
set tabsHidden(e){e=!!e;var c=this.shadowRoot.querySelector("tab-strip");e?c.setAttribute("tabs-hidden",!0):c.removeAttribute("tabs-hidden")},ready:function(){this.tabs_=[];this.selectedTab_=void 0;for(var e=0;e<this.children.length;e++)this.processAddedChild_(this.children[e]);this.childrenObserver_=new MutationObserver(this.childrenUpdated_.bind(this));this.childrenObserver_.observe(this,{childList:"true"})},processAddedChild_:function(e){var c=new MutationObserver(this.childAttributesChanged_.bind(this)),
b=new MutationObserver(this.childAttributesChanged_.bind(this)),a={id:this.tabs_.length,content:e,label:e.getAttribute("tab-label"),observers:{forAttributeSelected:c,forAttributeTabLabel:b},savedScrollTop:0,savedScrollLeft:0};this.tabs_.push(a);e.hasAttribute("selected")&&(this.selectedTab_?e.removeAttribute("selected"):this.setSelectedTabById_(a.id));var f=e.selected,d=this;Object.defineProperty(e,"selected",{configurable:!0,set:function(b){b?d.changeSelectedTabById_(a.id):d.selectedTab_===a&&d.changeSelectedTabById_(void 0)},
get:function(){return this.hasAttribute("selected")}});f&&(e.selected=f);c.observe(e,{attributeFilter:["selected"]});b.observe(e,{attributeFilter:["tab-label"]})},processRemovedChild_:function(e){for(var c=0;c<this.tabs_.length;c++)this.tabs_[c].id=c,this.tabs_[c].content===e&&(this.tabs_[c].observers.forAttributeSelected.disconnect(),this.tabs_[c].observers.forAttributeTabLabel.disconnect(),this.tabs_[c]===this.selectedTab_&&this.clearSelectedTab_(),e.removeAttribute("selected"),delete e.selected,
this.tabs_.splice(c,1),c--)},childAttributesChanged_:function(e,c){for(var b=void 0,a=0;a<this.tabs_.length;a++){var f=this.tabs_[a].observers;if(f.forAttributeSelected===c||f.forAttributeTabLabel===c){b=this.tabs_[a];break}}if(b)for(a=0;a<e.length;a++)f=b.content,"tab-label"===e[a].attributeName&&(b.label=f.getAttribute("tab-label")),"selected"===e[a].attributeName&&(f.hasAttribute("selected")?this.changeSelectedTabById_(b.id):this.changeSelectedTabById_(void 0))},childrenUpdated_:function(e,c){e.forEach(function(b){for(var a=
0;a<b.removedNodes.length;a++)this.processRemovedChild_(b.removedNodes[a]);for(a=0;a<b.addedNodes.length;a++)this.processAddedChild_(b.addedNodes[a])},this)},tabButtonSelectHandler_:function(e,c,b){this.changeSelectedTabById_(b.getAttribute("button-id"))},changeSelectedTabById_:function(e){var c=this.selectedTab_!==(void 0!==e?this.tabs_[e]:void 0);this.saveCurrentTabScrollPosition_();this.clearSelectedTab_();void 0!==e&&(this.setSelectedTabById_(e),this.restoreCurrentTabScrollPosition_());c&&this.fire("selected-tab-change")},
setSelectedTabById_:function(e){this.selectedTab_=this.tabs_[e];this.selectedTab_.observers.forAttributeSelected.disconnect();this.selectedTab_.content.setAttribute("selected","selected");this.selectedTab_.observers.forAttributeSelected.observe(this.selectedTab_.content,{attributeFilter:["selected"]})},saveCurrentTabScrollPosition_:function(){this.selectedTab_&&(this.selectedTab_.savedScrollTop=this.$["content-container"].scrollTop,this.selectedTab_.savedScrollLeft=this.$["content-container"].scrollLeft)},
restoreCurrentTabScrollPosition_:function(){this.selectedTab_&&(this.$["content-container"].scrollTop=this.selectedTab_.savedScrollTop,this.$["content-container"].scrollLeft=this.selectedTab_.savedScrollLeft)},clearSelectedTab_:function(){this.selectedTab_&&(this.selectedTab_.observers.forAttributeSelected.disconnect(),this.selectedTab_.content.removeAttribute("selected"),this.selectedTab_.observers.forAttributeSelected.observe(this.selectedTab_.content,{attributeFilter:["selected"]}),this.selectedTab_=
void 0)}});"use strict";Polymer("tracing-analysis-sub-view",{set tabLabel(e){return this.setAttribute("tab-label",e)},get tabLabel(){return this.getAttribute("tab-label")},get requiresTallView(){return!1},set selection(e){throw Error("Not implemented!");},get selection(){throw Error("Not implemented!");}});"use strict";tv.exportTo("tv.c.analysis",function(){function e(c){return Math.round(1E3*c)/1E3}return{tsString:function(c){return Number(parseFloat(e(c)).toFixed(3)).toLocaleString()+" ms"},tsRound:e}});
"use strict";tv.exportTo("tv.c.analysis",function(){return{createTimeSpan:function(e){if(void 0===e)return"";var c=document.createElement("tv-c-a-time-span");c.duration=e;return c}}});"use strict";
Polymer("tv-c-a-time-span",{ready:function(){this.duration_=this.warning_=void 0},get duration(){return this.duration_},set duration(e){this.duration_=e;this.$.content.textContent=tv.c.analysis.tsString(e)},get warning(){return this.warning_},set warning(e){this.warning_=e;var c=this.$.warning;this.warning_?(c.title=e,c.style.display=""):(c.title="",c.style.display="none")}});"use strict";
tv.exportTo("tv.c.analysis",function(){return{createTimeStamp:function(e){if(void 0===e)return"";var c=document.createElement("tv-c-a-time-stamp");c.timestamp=e;return c}}});"use strict";Polymer("tv-c-a-time-stamp",{ready:function(){this.timestamp_=void 0},get timestamp(){return this.timestamp_},set timestamp(e){this.timestamp_=e;this.shadowRoot.textContent=tv.c.analysis.tsString(e)}});"use strict";tv.exportTo("tv.b",function(){var e=1;return{GUID:{allocate:function(){return e++}}}});"use strict";
tv.exportTo("tv.b",function(){function e(){this.isEmpty_=!0;this.max_=this.min_=void 0}e.prototype={__proto__:Object.prototype,reset:function(){this.isEmpty_=!0;this.max_=this.min_=void 0},get isEmpty(){return this.isEmpty_},addRange:function(c){c.isEmpty||(this.addValue(c.min),this.addValue(c.max))},addValue:function(c){this.isEmpty_?(this.min_=this.max_=c,this.isEmpty_=!1):(this.max_=Math.max(this.max_,c),this.min_=Math.min(this.min_,c))},set min(c){this.isEmpty_=!1;this.min_=c},get min(){return this.isEmpty_?
void 0:this.min_},get max(){return this.isEmpty_?void 0:this.max_},set max(c){this.isEmpty_=!1;this.max_=c},get range(){return this.isEmpty_?void 0:this.max_-this.min_},get center(){return 0.5*(this.min_+this.max_)},equals:function(c){return this.isEmpty&&c.isEmpty?!0:this.isEmpty!=c.isEmpty?!1:this.min===c.min&&this.max===c.max},containsRange:function(c){return this.isEmpty||c.isEmpty?!1:this.min<=c.min&&this.max>=c.max},containsExplicitRange:function(c,b){return this.isEmpty?!1:this.min<=c&&this.max>=
b},intersectsRange:function(c){return this.isEmpty||c.isEmpty?!1:!(c.max<this.min||c.min>this.max)},intersectsExplicitRange:function(c,b){return this.isEmpty?!1:!(b<this.min||c>this.max)}};e.compareByMinTimes=function(c,b){return!c.isEmpty&&!b.isEmpty?c.min_-b.min_:c.isEmpty&&!b.isEmpty?-1:!c.isEmpty&&b.isEmpty?1:0};return{Range:e}});"use strict";
tv.exportTo("tv.b",function(){function e(a,d){return void 0===a?d:void 0===d?a:Math.max(a,d)}function c(a,d){this.beginPositionCb_=a;this.endPositionCb_=d;this.root_=void 0;this.size_=0}function b(b,d,c){this.lowValue_=d;this.data_=[{datum:b,high:c,low:d}];this.colour_=a.RED;this.maxHighRight_=this.maxHighLeft_=this.rightNode_=this.leftNode_=this.parentNode_=void 0}c.prototype={insert:function(f){var d=this.beginPositionCb_(f),c=this.endPositionCb_(f),d=new b(f,d,c);this.size_++;this.root_=this.insertNode_(this.root_,
d);this.root_.colour=a.BLACK;return f},insertNode_:function(a,d){if(void 0===a)return d;a.leftNode&&(a.leftNode.isRed&&a.rightNode&&a.rightNode.isRed)&&this.flipNodeColour_(a);d.key<a.key?a.leftNode=this.insertNode_(a.leftNode,d):d.key===a.key?a.merge(d):a.rightNode=this.insertNode_(a.rightNode,d);if(a.rightNode&&a.rightNode.isRed&&(void 0===a.leftNode||!a.leftNode.isRed))a=this.rotateLeft_(a);a.leftNode&&(a.leftNode.isRed&&a.leftNode.leftNode&&a.leftNode.leftNode.isRed)&&(a=this.rotateRight_(a));
return a},rotateRight_:function(b){var d=b.leftNode;b.leftNode=d.rightNode;d.rightNode=b;d.colour=b.colour;b.colour=a.RED;return d},rotateLeft_:function(b){var d=b.rightNode;b.rightNode=d.leftNode;d.leftNode=b;d.colour=b.colour;b.colour=a.RED;return d},flipNodeColour_:function(a){a.colour=this.flipColour_(a.colour);a.leftNode.colour=this.flipColour_(a.leftNode.colour);a.rightNode.colour=this.flipColour_(a.rightNode.colour)},flipColour_:function(b){return b===a.RED?a.BLACK:a.RED},updateHighValues:function(){this.updateHighValues_(this.root_)},
updateHighValues_:function(a){if(void 0!==a)return a.maxHighLeft=this.updateHighValues_(a.leftNode),a.maxHighRight=this.updateHighValues_(a.rightNode),e(e(a.maxHighLeft,a.highValue),a.maxHighRight)},validateFindArguments_:function(a,d){if(void 0===a||void 0===d)throw Error("queryLow and queryHigh must be defined");if("number"!==typeof a||"number"!==typeof d)throw Error("queryLow and queryHigh must be numbers");},findIntersection:function(a,d){this.validateFindArguments_(a,d);if(void 0===this.root_)return[];
var b=[];this.root_.appendIntersectionsInto_(b,a,d);return b},get size(){return this.size_},get root(){return this.root_},dump_:function(){return void 0===this.root_?[]:this.root_.dump()}};var a={RED:"red",BLACK:"black"};b.prototype={appendIntersectionsInto_:function(a,d,b){if(this.lowValue_>=b)return!this.leftNode_?void 0:this.leftNode_.appendIntersectionsInto_(a,d,b);this.maxHighLeft_>d&&this.leftNode_.appendIntersectionsInto_(a,d,b);if(this.highValue>d)for(var c=this.data.length-1;0<=c&&!(this.data[c].high<
d);--c)a.push(this.data[c].datum);this.rightNode_&&this.rightNode_.appendIntersectionsInto_(a,d,b)},get colour(){return this.colour_},set colour(a){this.colour_=a},get key(){return this.lowValue_},get lowValue(){return this.lowValue_},get highValue(){return this.data_[this.data_.length-1].high},set leftNode(a){this.leftNode_=a},get leftNode(){return this.leftNode_},get hasLeftNode(){return void 0!==this.leftNode_},set rightNode(a){this.rightNode_=a},get rightNode(){return this.rightNode_},get hasRightNode(){return void 0!==
this.rightNode_},set parentNode(a){this.parentNode_=a},get parentNode(){return this.parentNode_},get isRootNode(){return void 0===this.parentNode_},set maxHighLeft(a){this.maxHighLeft_=a},get maxHighLeft(){return this.maxHighLeft_},set maxHighRight(a){this.maxHighRight_=a},get maxHighRight(){return this.maxHighRight_},get data(){return this.data_},get isRed(){return this.colour_===a.RED},merge:function(a){for(var d=0;d<a.data.length;d++)this.data_.push(a.data[d]);this.data_.sort(function(a,d){return a.high-
d.high})},dump:function(){var a={};this.leftNode_&&(a.left=this.leftNode_.dump());a.data=this.data_.map(function(a){return[a.low,a.high]});this.rightNode_&&(a.right=this.rightNode_.dump());return a}};return{IntervalTree:c}});"use strict";
tv.exportTo("tv.b",function(){function e(){if(!m)if(m=!0,window.requestAnimationFrame)window.requestAnimationFrame(b);else{var a=Date.now()-window.performance.now();window.webkitRequestAnimationFrame(function(d){b(d-a)})}}function c(a,d){try{a.callback.call(a.context,d)}catch(b){tv.b.onAnimationFrameError(b,a.stack)}}function b(a){var d=a+10;m=!1;var b=h;l=g;h=[];g=[];for(var f=b.length||l.length,D=0;D<b.length;D++)c(b[D],a);for(;0<l.length;)c(l.shift(),a);l=void 0;if(!f)for(;0<k.length&&!(c(k.shift()),
window.performance.now()>=d););0<k.length&&e()}function a(){if(!d)return"";var a=tv.b.stackTrace();a.shift();return a.join("\n")}function f(d,b){g.push({callback:d,context:b||window,stack:a()});e()}var d=!1,h=[],g=[],k=[],l=void 0,m=!1;return{onAnimationFrameError:function(a,d){d&&console.log(d);a.message?console.error(a.message,a.stack):console.error(a)},requestPreAnimationFrame:function(d,b){h.push({callback:d,context:b||window,stack:a()});e()},requestAnimationFrame:f,requestAnimationFrameInThisFrameIfPossible:function(d,
b){l?l.push({callback:d,context:b||window,stack:a()}):f(d,b)},requestIdleCallback:function(d,b){k.push({callback:d,context:b||window,stack:a()});e()},forcePendingRAFTasksToRun:function(a){m&&b(a)}}});"use strict";
tv.exportTo("tv.b",function(){function e(c,b){if(void 0!==c&&void 0===b)throw Error("Almost certainly, you meant to pass a thisArg.");this.runCb_=c;this.thisArg_=b;this.afterTask_=void 0;this.subTasks_=[]}e.prototype={subTask:function(c,b){c instanceof e?this.subTasks_.push(c):this.subTasks_.push(new e(c,b));return this.subTasks_[this.subTasks_.length-1]},run:function(){void 0!==this.runCb_&&this.runCb_.call(this.thisArg_,this);var c=this.subTasks_;this.subTasks_=void 0;if(!c.length)return this.afterTask_;
for(var b=1;b<c.length;b++)c[b-1].afterTask_=c[b];c[c.length-1].afterTask_=this.afterTask_;return c[0]},after:function(c,b){if(this.afterTask_)throw Error("Has an after task already");return this.afterTask_=c instanceof e?c:new e(c,b)}};e.RunSynchronously=function(c){for(;c;)c=c.run()};e.RunWhenIdle=function(c){return new Promise(function(b,a){function f(){try{d=d.run()}catch(c){a(c);console.error(c.stack);return}d?tv.b.requestIdleCallback(f):b()}var d=c;tv.b.requestIdleCallback(f)})};return{Task:e}});
"use strict";
tv.exportTo("tv.c",function(){function e(){}function c(a){this.text_=a.toLowerCase();if(!a.length)throw Error("Filter text is empty.");}function b(a){this.text_=a;if(!a.length)throw Error("Filter text is empty.");}e.prototype={__proto__:Object.prototype,matchCounter:function(a){return!0},matchCpu:function(a){return!0},matchProcess:function(a){return!0},matchSlice:function(a){return!0},matchThread:function(a){return!0}};c.prototype={__proto__:e.prototype,matchSlice:function(a){return void 0===a.title&&
void 0===a.category?!1:-1!==a.title.toLowerCase().indexOf(this.text_)||-1!==a.category.toLowerCase().indexOf(this.text_)}};b.prototype={__proto__:e.prototype,matchSlice:function(a){return a.title===this.text_}};return{Filter:e,TitleOrCategoryFilter:c,ExactTitleFilter:b}});"use strict";
tv.exportTo("tv.b",function(){function e(a,b){this.constructor=a;this.metadata=b}function c(a){if(void 0===a)throw Error("Mode is required");if(!b[a])throw Error("Not a mode.");this.mode_=a;this.defaultMetadata_={};this.defaultTypeInfo_=this.mandatoryBaseClass_=this.defaultConstructor_=void 0;this.frozen_=!1}var b={BASIC_REGISTRY_MODE:!0,TYPE_BASED_REGISTRY_MODE:!0};c.prototype={freeze:function(){if(this.frozen_)throw Error("Frozen");this.frozen_=!0},get mode(){return this.mode_},get defaultMetadata(){return this.defaultMetadata_},
set defaultMetadata(a){if(this.frozen_)throw Error("Frozen");this.defaultMetadata_=a;this.defaultTypeInfo_=void 0},get defaultConstructor(){return this.defaultConstructor_},set defaultConstructor(a){if(this.frozen_)throw Error("Frozen");this.defaultConstructor_=a;this.defaultTypeInfo_=void 0},get defaultTypeInfo(){void 0===this.defaultTypeInfo_&&this.defaultConstructor_&&(this.defaultTypeInfo_=new e(this.defaultConstructor,this.defaultMetadata));return this.defaultTypeInfo_},validateConstructor:function(a){if(this.mandatoryBaseClass){for(var b=
a.prototype.__proto__,d=!1;b;){if(b===this.mandatoryBaseClass.prototype){d=!0;break}b=b.__proto__}if(!d)throw Error(a+"must be subclass of "+registry);}}};return{BASIC_REGISTRY_MODE:"BASIC_REGISTRY_MODE",TYPE_BASED_REGISTRY_MODE:"TYPE_BASED_REGISTRY_MODE",ExtensionRegistryOptions:c,RegisteredTypeInfo:e}});"use strict";
tv.exportTo("tv.b",function(){var e=tv.b.RegisteredTypeInfo;return{_decorateBasicExtensionRegistry:function(c,b){var a=[];c.registeredTypeInfos_=[];c.register=function(a,d){if(void 0!==c.findIndexOfRegisteredConstructor(a))throw Error("Handler already registered for "+a);b.validateConstructor(a);var h={},g;for(g in b.defaultMetadata)h[g]=b.defaultMetadata[g];if(d)for(g in d)h[g]=d[g];h=new e(a,h);g=new Event("will-register");g.typeInfo=h;c.dispatchEvent(g);c.registeredTypeInfos_.push(h);g=new Event("registry-changed");
c.dispatchEvent(g)};c.pushCleanStateBeforeTest=function(){a.push(c.registeredTypeInfos_);c.registeredTypeInfos_=[];var b=new Event("registry-changed");c.dispatchEvent(b)};c.popCleanStateAfterTest=function(){c.registeredTypeInfos_=a[0];a.splice(0,1);var b=new Event("registry-changed");c.dispatchEvent(b)};c.findIndexOfRegisteredConstructor=function(a){for(var d=0;d<c.registeredTypeInfos_.length;d++)if(c.registeredTypeInfos_[d].constructor==a)return d};c.unregister=function(a){var d=c.findIndexOfRegisteredConstructor(a);
if(void 0===d)throw Error(a+" not registered");c.registeredTypeInfos_.splice(d,1);a=new Event("registry-changed");c.dispatchEvent(a)};c.getAllRegisteredTypeInfos=function(){return c.registeredTypeInfos_};c.findTypeInfo=function(a){a=this.findIndexOfRegisteredConstructor(a);if(void 0!==a)return this.registeredTypeInfos_[a]};c.findTypeInfoMatching=function(a,d){d=d?d:void 0;for(var h=0;h<c.registeredTypeInfos_.length;++h){var e=c.registeredTypeInfos_[h];if(a.call(d,e))return e}return b.defaultTypeInfo}}}});
"use strict";tv.exportTo("tv.b",function(){var e={};return{getCategoryParts:function(c){var b=e[c];if(void 0!==b)return b;b=c.split(",");return e[c]=b}}});"use strict";
tv.exportTo("tv.b",function(){var e=tv.b.getCategoryParts,c=tv.b.RegisteredTypeInfo;return{_decorateTypeBasedExtensionRegistry:function(b,a){var f=[];b.registeredTypeInfos_=[];b.categoryPartToTypeInfoMap_={};b.typeNameToTypeInfoMap_={};b.register=function(d,f){a.validateConstructor(d);var e=new c(d,f||a.defaultMetadata);e.typeNames=[];e.categoryParts=[];f&&f.typeName&&e.typeNames.push(f.typeName);f&&f.typeNames&&e.typeNames.push.apply(e.typeNames,f.typeNames);f&&f.categoryParts&&e.categoryParts.push.apply(e.categoryParts,
f.categoryParts);if(0===e.typeNames.length&&0===e.categoryParts.length)throw Error("typeName or typeNames must be provided");e.typeNames.forEach(function(a){if(b.typeNameToTypeInfoMap_[a])throw Error("typeName "+a+" already registered");});e.categoryParts.forEach(function(a){if(b.categoryPartToTypeInfoMap_[a])throw Error("categoryPart "+a+" already registered");});var k=new Event("will-register");k.typeInfo=e;b.dispatchEvent(k);e.typeNames.forEach(function(a){b.typeNameToTypeInfoMap_[a]=e});e.categoryParts.forEach(function(a){b.categoryPartToTypeInfoMap_[a]=
e});b.registeredTypeInfos_.push(e);k=new Event("registry-changed");b.dispatchEvent(k)};b.pushCleanStateBeforeTest=function(){f.push({registeredTypeInfos:b.registeredTypeInfos_,typeNameToTypeInfoMap:b.typeNameToTypeInfoMap_,categoryPartToTypeInfoMap:b.categoryPartToTypeInfoMap_});b.registeredTypeInfos_=[];b.typeNameToTypeInfoMap_={};b.categoryPartToTypeInfoMap_={};var a=new Event("registry-changed");b.dispatchEvent(a)};b.popCleanStateAfterTest=function(){var a=f[0];f.splice(0,1);b.registeredTypeInfos_=
a.registeredTypeInfos;b.typeNameToTypeInfoMap_=a.typeNameToTypeInfoMap;b.categoryPartToTypeInfoMap_=a.categoryPartToTypeInfoMap;a=new Event("registry-changed");b.dispatchEvent(a)};b.unregister=function(a){for(var f=-1,c=0;c<b.registeredTypeInfos_.length;c++)if(b.registeredTypeInfos_[c].constructor==a){f=c;break}if(-1===f)throw Error(a+" not registered");a=b.registeredTypeInfos_[f];b.registeredTypeInfos_.splice(f,1);a.typeNames.forEach(function(a){delete b.typeNameToTypeInfoMap_[a]});a.categoryParts.forEach(function(a){delete b.categoryPartToTypeInfoMap_[a]});
f=new Event("registry-changed");b.dispatchEvent(f)};b.getTypeInfo=function(d,f){if(d)for(var c=e(d),k=0;k<c.length;k++){var l=c[k];if(b.categoryPartToTypeInfoMap_[l])return b.categoryPartToTypeInfoMap_[l]}return b.typeNameToTypeInfoMap_[f]?b.typeNameToTypeInfoMap_[f]:a.defaultTypeInfo};b.getConstructor=function(a,f){var c=b.getTypeInfo(a,f);if(c)return c.constructor}}}});"use strict";
tv.exportTo("tv.b",function(){return{decorateExtensionRegistry:function(e,c){if(e.register)throw Error("Already has registry");c.freeze();if(c.mode==tv.b.BASIC_REGISTRY_MODE)tv.b._decorateBasicExtensionRegistry(e,c);else if(c.mode==tv.b.TYPE_BASED_REGISTRY_MODE)tv.b._decorateTypeBasedExtensionRegistry(e,c);else throw Error("Unrecognized mode");void 0===e.addEventListener&&tv.b.EventTarget.decorate(e)}}});"use strict";
tv.exportTo("tv.c",function(){function e(b){}e.prototype={__proto__:Object.prototype,runAnnotate:function(){},runAudit:function(){}};var c=new tv.b.ExtensionRegistryOptions(tv.b.BASIC_REGISTRY_MODE);c.defaultMetadata={};c.mandatoryBaseClass=e;tv.b.decorateExtensionRegistry(e,c);return{Auditor:e}});"use strict";
tv.exportTo("tv.c.importer",function(){function e(){}e.prototype={__proto__:Object.prototype,isTraceDataContainer:function(){return!1},extractSubtraces:function(){return[]},importEvents:function(){},importSampleData:function(){},finalizeImport:function(){},joinRefs:function(){}};var c=new tv.b.ExtensionRegistryOptions(tv.b.BASIC_REGISTRY_MODE);c.defaultMetadata={};c.mandatoryBaseClass=e;tv.b.decorateExtensionRegistry(e,c);e.findImporterFor=function(b){var a=e.findTypeInfoMatching(function(a){return a.constructor.canImport(b)});
if(a)return a.constructor};return{Importer:e}});"use strict";tv.exportTo("tv.c.importer",function(){function e(b){this.importPriority=0}var c=tv.c.importer.Importer;e.canImport=function(b){return b instanceof Array&&0==b.length?!0:"string"===typeof b||b instanceof String?0==b.length:!1};e.prototype={__proto__:c.prototype};c.register(e);return{EmptyImporter:e}});"use strict";
tv.exportTo("tv.c.trace_model",function(){function e(){this.guid_=tv.b.GUID.allocate();this.selectionState=a.NONE}function c(){}function b(a){a=a.replace(/[A-Z]/g," $&");return a=a.charAt(0).toUpperCase()+a.slice(1)}var a={NONE:0,SELECTED:1,HIGHLIGHTED:2,DIMMED:3};e.prototype={get guid(){return this.guid_},get selected(){return this.selectionState===a.SELECTED}};var f=new tv.b.ExtensionRegistryOptions(tv.b.BASIC_REGISTRY_MODE);f.mandatoryBaseType=e;tv.b.decorateExtensionRegistry(c,f);c.addEventListener("will-register",
function(a){var d=a.typeInfo.metadata;if(void 0===d.name)throw Error("Registered events must provide name metadata");if(void 0!==tv.b.findFirstInArray(c.getAllRegisteredTypeInfos(),function(a){return a.metadata.name===d.name}))throw Error("Event type with that name already registered");if(void 0===d.pluralName)throw Error("Registered events must provide pluralName metadata");if(void 0===d.singleViewElementName)throw Error("Registered events must provide singleViewElementName metadata");if(void 0===
d.multiViewElementName)throw Error("Registered events must provide multiViewElementName metadata");});var d=void 0;c.getEventTypeInfoByTypeName=function(a){void 0===d&&(d={},c.getAllRegisteredTypeInfos().forEach(function(a){d[a.metadata.name]=a}));return d[a]};c.addEventListener("registry-changed",function(){d=void 0});c.getUserFriendlySingularName=function(a){a=c.getEventTypeInfoByTypeName(a).metadata.name;return b(a)};c.getUserFriendlyPluralName=function(a){a=c.getEventTypeInfoByTypeName(a).metadata.pluralName;
return b(a)};return{Event:e,EventRegistry:c,SelectionState:a}});"use strict";
tv.exportTo("tv.b",function(){function e(b,a,f){if(0==b.length)return 1;for(var d=0,c=b.length-1,e,k,l=-1;d<=c;)e=Math.floor((d+c)/2),k=a(b[e])-f,0>k?d=e+1:(0<k||(l=e),c=e-1);return-1!=l?l:d}function c(b,a,f,d,c,g){if(0!=b.length&&!(d>c)){var k=e(b,a,d);if(-1!=k&&(0<k&&a(b[k-1])+f(b[k-1],k-1)>=d&&g(b[k-1]),k!=b.length))for(f=b.length;k<f&&!(a(b[k])>=c);k++)g(b[k])}}return{findLowIndexInSortedArray:e,findLowIndexInSortedIntervals:function(b,a,f,d){var c=e(b,a,d);return 0==c?d>=a(b[0])&&d<a(b[0])+f(b[0],
0)?0:-1:c<b.length?d>=a(b[c])&&d<a(b[c])+f(b[c],c)?c:d>=a(b[c-1])&&d<a(b[c-1])+f(b[c-1],c-1)?c-1:b.length:c==b.length?d>=a(b[c-1])&&d<a(b[c-1])+f(b[c-1],c-1)?c-1:b.length:b.length},iterateOverIntersectingIntervals:c,getIntersectingIntervals:function(b,a,f,d,h){var e=[];c(b,a,f,d,h,function(a){e.push(a)});return e},findClosestElementInSortedArray:function(b,a,f,d){if(0===b.length)return null;var c=e(b,a,f),g=0<c?c-1:0;c===b.length&&(c-=1);var k=Math.abs(f-a(b[g]));a=Math.abs(f-a(b[c]));return k>d&&
a>d?null:b[k<a?g:c]},findClosestIntervalInSortedIntervals:function(b,a,f,d,c){if(0===b.length)return null;var g=e(b,a,d);0<g&&(g-=1);var k=b[g],l=k;d>f(k)&&g+1<b.length&&(l=b[g+1]);b=Math.abs(d-a(l));f=Math.abs(d-f(k));return b>c&&f>c?null:b<f?l:k}}});"use strict";
tv.exportTo("tv.c.trace_model",function(){function e(c,b,a){tv.c.trace_model.Event.call(this);this.series_=c;this.timestamp_=b;this.value_=a}e.groupByTimestamp=function(c){for(var b={},a=0;a<c.length;a++){var f=c[a],d=f.timestamp;b[d]||(b[d]=[]);b[d].push(f)}c=tv.b.dictionaryKeys(b);c.sort();f=[];for(a=0;a<c.length;a++)d=c[a],d=b[d],d.sort(function(a,d){return a.series.seriesIndex-d.series.seriesIndex}),f.push(d);return f};e.prototype={__proto__:tv.c.trace_model.Event.prototype,get series(){return this.series_},
get timestamp(){return this.timestamp_},get value(){return this.value_},set timestamp(c){this.timestamp_=c},addBoundsToRange:function(c){c.addValue(this.timestamp)},getSampleIndex:function(){return tv.b.findLowIndexInSortedArray(this.series.timestamps,function(c){return c},this.timestamp_)},get userFriendlyName(){return"Counter sample from "+this.series_.title+" at "+tv.c.analysis.tsString(this.timestamp)}};tv.c.trace_model.EventRegistry.register(e,{name:"counterSample",pluralName:"counterSamples",
singleViewElementName:"tv-c-counter-sample-sub-view",multiViewElementName:"tv-c-counter-sample-sub-view"});return{CounterSample:e}});"use strict";
tv.exportTo("tv.c.trace_model",function(){function e(b,a){this.guid_=tv.b.GUID.allocate();this.name_=b;this.color_=a;this.timestamps_=[];this.samples_=[];this.seriesIndex=this.counter=void 0}var c=tv.c.trace_model.CounterSample;e.prototype={__proto__:Object.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:function(b){return this.samples_[b]},getTimestamp:function(b){return this.timestamps_[b]},
addCounterSample:function(b,a){this.timestamps_.push(b);var f=new c(this,b,a);this.samples_.push(f);return f},getStatistics:function(b){for(var a=0,f=Number.MAX_VALUE,d=-Number.MAX_VALUE,c=0;c<b.length;++c)var e=this.getSample(b[c]).value,a=a+e,f=Math.min(e,f),d=Math.max(e,d);return{min:f,max:d,avg:a/b.length,start:this.getSample(b[0]).value,end:this.getSample(b.length-1).value}},shiftTimestampsForward:function(b){for(var a=0;a<this.timestamps_.length;++a)this.timestamps_[a]+=b,this.samples_[a].timestamp=
this.timestamps_[a]},iterateAllEvents:function(b,a){this.samples_.forEach(b,a)}};return{CounterSeries:e}});"use strict";
tv.exportTo("tv.c.trace_model",function(){function e(c,b,a,f){this.guid_=tv.b.GUID.allocate();this.parent=c;this.id=b;this.category=a||"";this.name=f;this.series_=[];this.totals=[];this.bounds=new tv.b.Range}e.prototype={__proto__:Object.prototype,get guid(){return this.guid_},set timestamps(c){throw Error("Bad counter API. No cookie.");},set seriesNames(c){throw Error("Bad counter API. No cookie.");},set seriesColors(c){throw Error("Bad counter API. No cookie.");},set samples(c){throw Error("Bad counter API. No cookie.");
},addSeries:function(c){c.counter=this;c.seriesIndex=this.series_.length;this.series_.push(c);return c},getSeries:function(c){return this.series_[c]},get series(){return this.series_},get numSeries(){return this.series_.length},get numSamples(){return 0===this.series_.length?0:this.series_[0].length},get timestamps(){return 0===this.series_.length?[]:this.series_[0].timestamps},getSampleStatistics:function(c){c.sort();var b=[];this.series_.forEach(function(a){b.push(a.getStatistics(c))});return b},
shiftTimestampsForward:function(c){for(var b=0;b<this.series_.length;++b)this.series_[b].shiftTimestampsForward(c)},updateBounds:function(){this.totals=[];this.maxTotal=0;this.bounds.reset();if(0!==this.series_.length){var c=this.series_[0],b=this.series_[this.series_.length-1];this.bounds.addValue(c.getTimestamp(0));this.bounds.addValue(b.getTimestamp(b.length-1));this.maxTotal=-Infinity;for(var a=0;a<c.length;++a){var f=0;this.series_.forEach(function(d){f+=d.getSample(a).value;this.totals.push(f)}.bind(this));
this.maxTotal=Math.max(f,this.maxTotal)}}},iterateAllEvents:function(c,b){for(var a=0;a<this.series_.length;a++)this.series_[a].iterateAllEvents(c,b)}};e.compare=function(c,b){var a=c.parent.compareTo(b);if(0!=a)return a;a=c.name.localeCompare(b.name);return 0==a?c.tid-b.tid:a};return{Counter:e}});"use strict";
tv.exportTo("tv.c.trace_model",function(){function e(c){tv.c.trace_model.Event.call(this);this.start=c;this.duration=0;this.cpuDuration=this.cpuStart=void 0}e.prototype={__proto__:tv.c.trace_model.Event.prototype,get end(){return this.start+this.duration},addBoundsToRange:function(c){c.addValue(this.start);c.addValue(this.end)},bounds:function(c){var b=Math.round(1E3*this.end),a=Math.round(1E3*c.end);return this.start<=c.start&&b>=a}};return{TimedEvent:e}});"use strict";
tv.exportTo("tv.c.trace_model",function(){function e(c,b,a,f,d,h,e,k){tv.c.trace_model.TimedEvent.call(this,f);this.category=c||"";this.title=b;this.colorId=a;this.args=d;this.endStackFrame=this.startStackFrame=void 0;this.didNotFinish=!1;this.inFlowEvents=[];this.outFlowEvents=[];this.subSlices=[];this.cpuSelfTime=this.selfTime=void 0;this.important=!1;void 0!==h&&(this.duration=h);void 0!==e&&(this.cpuStart=e);void 0!==k&&(this.cpuDuration=k)}e.prototype={__proto__:tv.c.trace_model.TimedEvent.prototype,
get analysisTypeName(){return this.title},get userFriendlyName(){return"Slice "+this.title+" at "+tv.c.analysis.tsString(this.start)},findDescendentSlice:function(c){if(this.subSlices)for(var b=0;b<this.subSlices.length;b++){if(this.subSlices[b].title==c)return this.subSlices[b];var a=this.subSlices[b].findDescendentSlice(c);if(a)return a}}};tv.c.trace_model.EventRegistry.register(e,{name:"slice",pluralName:"slices",singleViewElementName:"tv-c-single-slice-sub-view",multiViewElementName:"tv-c-multi-slice-sub-view"});
return{Slice:e}});"use strict";
tv.exportTo("tv.c.trace_model",function(){function e(b,a,f,d,h,e,k){c.call(this,a,f,d,h,e,k);this.thread=b;this.cpuOnWhichThreadWasRunning=void 0}var c=tv.c.trace_model.Slice;e.prototype={__proto__:c.prototype,get analysisTypeName(){return"tv.c.analysis.ThreadTimeSlice"},getAssociatedCpuSlice:function(){if(this.cpuOnWhichThreadWasRunning)for(var b=this.cpuOnWhichThreadWasRunning.slices,a=0;a<b.length;a++){var f=b[a];if(f.start===this.start&&f.duration===this.duration)return f}},getCpuSliceThatTookCpu:function(){if(!this.cpuOnWhichThreadWasRunning){for(var b=
this.thread.indexOfTimeSlice(this),a;0<=b;){var f=this.thread.timeSlices[b];if(f.cpuOnWhichThreadWasRunning){a=f.getAssociatedCpuSlice();break}else b--}if(a&&(b=a.cpu,f=b.indexOf(a),(b=b.slices[f+1])&&1E-5>Math.abs(b.start-a.end)))return b}}};tv.c.trace_model.EventRegistry.register(e,{name:"threadTimeSlice",pluralName:"threadTimeSlices",singleViewElementName:"tv-c-single-thread-time-slice-sub-view",multiViewElementName:"tv-c-multi-slice-sub-view"});return{ThreadTimeSlice:e}});"use strict";
tv.exportTo("tv.c.trace_model",function(){function e(b,a,f,d,h,e){c.apply(this,arguments);this.cpu=this.threadThatWasRunning=void 0}var c=tv.c.trace_model.Slice;e.prototype={__proto__:c.prototype,get analysisTypeName(){return"tv.c.analysis.CpuSlice"},getAssociatedTimeslice:function(){if(this.threadThatWasRunning)for(var b=this.threadThatWasRunning.timeSlices,a=0;a<b.length;a++){var f=b[a];if(f.start===this.start&&f.duration===this.duration)return f}}};tv.c.trace_model.EventRegistry.register(e,{name:"cpuSlice",
pluralName:"cpuSlices",singleViewElementName:"tv-c-single-cpu-slice-sub-view",multiViewElementName:"tv-c-multi-slice-sub-view"});return{CpuSlice:e}});"use strict";
tv.exportTo("tv.c.trace_model",function(){function e(b,a){if(void 0===b||void 0===a)throw Error("Missing arguments");this.kernel=b;this.cpuNumber=a;this.slices=[];this.counters={};this.bounds=new tv.b.Range;this.lastActiveArgs_=this.lastActiveName_=this.lastActiveThread_=this.lastActiveTimestamp_=this.samples_=void 0}var c=tv.c.trace_model.Counter;e.prototype={getOrCreateCounter:function(b,a){var f;f=b.length?b+"."+a:a;this.counters[f]||(this.counters[f]=new c(this,f,b,a));return this.counters[f]},
shiftTimestampsForward:function(b){for(var a=0;a<this.slices.length;a++)this.slices[a].start+=b;for(var f in this.counters)this.counters[f].shiftTimestampsForward(b)},updateBounds:function(){this.bounds.reset();this.slices.length&&(this.bounds.addValue(this.slices[0].start),this.bounds.addValue(this.slices[this.slices.length-1].end));for(var b in this.counters)this.counters[b].updateBounds(),this.bounds.addRange(this.counters[b].bounds);this.samples_&&this.samples_.length&&(this.bounds.addValue(this.samples_[0].start),
this.bounds.addValue(this.samples_[this.samples_.length-1].end))},createSubSlices:function(){this.samples_=this.kernel.model.samples.filter(function(b){return b.cpu==this},this)},addCategoriesToDict:function(b){for(var a=0;a<this.slices.length;a++)b[this.slices[a].category]=!0;for(var f in this.counters)b[this.counters[f].category]=!0;for(a=0;a<this.samples_.length;a++)b[this.samples_[a].category]=!0},get userFriendlyName(){return"CPU "+this.cpuNumber},indexOf:function(b){var a=tv.b.findLowIndexInSortedArray(this.slices,
function(a){return a.start},b.start);return this.slices[a]!==b?void 0:a},iterateAllEvents:function(b,a){this.slices.forEach(b,a);for(var f in this.counters)this.counters[f].iterateAllEvents(b,a)},closeActiveThread:function(b,a){if(!(void 0==this.lastActiveThread_||0==this.lastActiveThread_)){if(b<this.lastActiveTimestamp_)throw Error("The end timestamp of a thread running on CPU "+this.cpuNumber+" is before its start timestamp.");for(var f in a)this.lastActiveArgs_[f]=a[f];f=b-this.lastActiveTimestamp_;
f=new tv.c.trace_model.CpuSlice("",this.lastActiveName_,tv.b.ui.getColorIdForGeneralPurposeString(this.lastActiveName_),this.lastActiveTimestamp_,this.lastActiveArgs_,f);f.cpu=this;this.slices.push(f);this.lastActiveArgs_=this.lastActiveName_=this.lastActiveThread_=this.lastActiveTimestamp_=void 0}},switchActiveThread:function(b,a,f,d,c){this.closeActiveThread(b,a);this.lastActiveTimestamp_=b;this.lastActiveThread_=f;this.lastActiveName_=d;this.lastActiveArgs_=c},get samples(){return this.samples_}};
e.compare=function(b,a){return b.cpuNumber-a.cpuNumber};return{Cpu:e}});"use strict";
tv.exportTo("tv.c.trace_model",function(){function e(b,a,f){tv.c.trace_model.Event.call(this);this.objectInstance=b;this.ts=a;this.args=f}e.prototype={__proto__:tv.c.trace_model.Event.prototype,preInitialize:function(){},initialize:function(){},addBoundsToRange:function(b){b.addValue(this.ts)},get userFriendlyName(){return"Snapshot of "+this.objectInstance.typeName+" "+this.objectInstance.id+" @ "+tv.c.analysis.tsString(this.ts)}};tv.c.trace_model.EventRegistry.register(e,{name:"objectSnapshot",pluralName:"objectSnapshots",
singleViewElementName:"tv-c-single-object-snapshot-sub-view",multiViewElementName:"tv-c-multi-object-sub-view"});var c=new tv.b.ExtensionRegistryOptions(tv.b.TYPE_BASED_REGISTRY_MODE);c.mandatoryBaseClass=e;c.defaultConstructor=e;tv.b.decorateExtensionRegistry(e,c);return{ObjectSnapshot:e}});"use strict";
tv.exportTo("tv.c.trace_model",function(){function e(b,a,f,d,c,e){tv.c.trace_model.Event.call(this);this.parent=b;this.id=a;this.category=f;this.baseTypeName=e?e:d;this.name=d;this.creationTs=c;this.creationTsWasExplicit=!1;this.deletionTs=Number.MAX_VALUE;this.deletionTsWasExplicit=!1;this.colorId=0;this.bounds=new tv.b.Range;this.snapshots=[];this.hasImplicitSnapshots=!1}e.prototype={__proto__:tv.c.trace_model.Event.prototype,get typeName(){return this.name},addBoundsToRange:function(b){b.addRange(this.bounds)},
addSnapshot:function(b,a,f,d){if(b<this.creationTs)throw Error("Snapshots must be >= instance.creationTs");if(b>=this.deletionTs)throw Error("Snapshots cannot be added after an objects deletion timestamp.");var c;if(0<this.snapshots.length){c=this.snapshots[this.snapshots.length-1];if(c.ts==b)throw Error("Snapshots already exists at this time!");if(b<c.ts)throw Error("Snapshots must be added in increasing timestamp order");}if(f&&this.name!=f){if(!d)throw Error("Must provide base type name for name update");
if(this.baseTypeName!=d)throw Error("Cannot update type name: base types dont match");this.name=f}b=new (tv.c.trace_model.ObjectSnapshot.getConstructor(this.category,this.name))(this,b,a);this.snapshots.push(b);return b},wasDeleted:function(b){var a;if(0<this.snapshots.length&&(a=this.snapshots[this.snapshots.length-1],a.ts>b))throw Error("Instance cannot be deleted at ts="+b+". A snapshot exists that is older.");this.deletionTs=b;this.deletionTsWasExplicit=!0},preInitialize:function(){for(var b=
0;b<this.snapshots.length;b++)this.snapshots[b].preInitialize()},initialize:function(){for(var b=0;b<this.snapshots.length;b++)this.snapshots[b].initialize()},getSnapshotAt:function(b){if(b<this.creationTs){if(this.creationTsWasExplicit)throw Error("ts must be within lifetime of this instance");return this.snapshots[0]}if(b>this.deletionTs)throw Error("ts must be within lifetime of this instance");var a=this.snapshots;b=tv.b.findLowIndexInSortedIntervals(a,function(a){return a.ts},function(b,d){return d==
a.length-1?a[d].objectInstance.deletionTs:a[d+1].ts-a[d].ts},b);return 0>b?this.snapshots[0]:b>=this.snapshots.length?this.snapshots[this.snapshots.length-1]:this.snapshots[b]},updateBounds:function(){this.bounds.reset();this.bounds.addValue(this.creationTs);this.deletionTs!=Number.MAX_VALUE?this.bounds.addValue(this.deletionTs):0<this.snapshots.length&&this.bounds.addValue(this.snapshots[this.snapshots.length-1].ts)},shiftTimestampsForward:function(b){this.creationTs+=b;this.deletionTs!=Number.MAX_VALUE&&
(this.deletionTs+=b);this.snapshots.forEach(function(a){a.ts+=b})},get userFriendlyName(){return this.typeName+" object "+this.id}};tv.c.trace_model.EventRegistry.register(e,{name:"objectInstance",pluralName:"objectInstances",singleViewElementName:"tv-c-single-object-instance-sub-view",multiViewElementName:"tv-c-multi-object-sub-view"});var c=new tv.b.ExtensionRegistryOptions(tv.b.TYPE_BASED_REGISTRY_MODE);c.mandatoryBaseClass=e;c.defaultConstructor=e;tv.b.decorateExtensionRegistry(e,c);return{ObjectInstance:e}});
"use strict";
tv.exportTo("tv.c.trace_model",function(){function e(c,b,a){this.createObjectInstanceFunction_=c;this.parent=b;this.id=a;this.instances=[]}e.prototype={idWasCreated:function(c,b,a){if(0==this.instances.length)return this.instances.push(this.createObjectInstanceFunction_(this.parent,this.id,c,b,a)),this.instances[0].creationTsWasExplicit=!0,this.instances[0];var f=this.instances[this.instances.length-1];if(a<f.deletionTs)throw Error("Mutation of the TimeToObjectInstanceMap must be done in ascending timestamp order.");f=
this.createObjectInstanceFunction_(this.parent,this.id,c,b,a);f.creationTsWasExplicit=!0;this.instances.push(f);return f},addSnapshot:function(c,b,a,f,d){0==this.instances.length&&this.instances.push(this.createObjectInstanceFunction_(this.parent,this.id,c,b,a,d));var h=tv.b.findLowIndexInSortedIntervals(this.instances,function(a){return a.creationTs},function(a){return a.deletionTs-a.creationTs},a);if(0>h){h=this.instances[0];if(a>h.deletionTs||h.creationTsWasExplicit)throw Error("At the provided timestamp, no instance was still alive");
if(0!=h.snapshots.length)throw Error("Cannot shift creationTs forward, snapshots have been added. First snap was at ts="+h.snapshots[0].ts+" and creationTs was "+h.creationTs);h.creationTs=a}else if(h>=this.instances.length)if(h=this.instances[this.instances.length-1],a>=h.deletionTs)h=this.createObjectInstanceFunction_(this.parent,this.id,c,b,a,d),this.instances.push(h);else{for(var e,h=this.instances.length-1;0<=h;h--){c=this.instances[h];if(a>=c.deletionTs)break;!1==c.creationTsWasExplicit&&0==
c.snapshots.length&&(e=h)}if(void 0===e)throw Error("Cannot add snapshot. No instance was alive that was mutable.");h=this.instances[e];h.creationTs=a}else h=this.instances[h];return h.addSnapshot(a,f,b,d)},get lastInstance(){return 0==this.instances.length?void 0:this.instances[this.instances.length-1]},idWasDeleted:function(c,b,a){0==this.instances.length&&this.instances.push(this.createObjectInstanceFunction_(this.parent,this.id,c,b,a));var f=this.instances[this.instances.length-1];if(a<f.creationTs)throw Error("Cannot delete a id before it was crated");
if(f.deletionTs==Number.MAX_VALUE)return f.wasDeleted(a),f;if(a<f.deletionTs)throw Error("id was already deleted earlier.");f=this.createObjectInstanceFunction_(this.parent,this.id,c,b,a);this.instances.push(f);f.wasDeleted(a);return f},getInstanceAt:function(c){c=tv.b.findLowIndexInSortedIntervals(this.instances,function(b){return b.creationTs},function(b){return b.deletionTs-b.creationTs},c);return 0>c?this.instances[0].creationTsWasExplicit?void 0:this.instances[0]:c>=this.instances.length?void 0:
this.instances[c]},logToConsole:function(){for(var c=0;c<this.instances.length;c++){var b=this.instances[c],a="",f="";b.creationTsWasExplicit&&(a="(explicitC)");b.deletionTsWasExplicit&&(f="(explicit)");console.log(b.creationTs,a,b.deletionTs,f,b.category,b.name,b.snapshots.length+" snapshots")}}};return{TimeToObjectInstanceMap:e}});"use strict";
tv.exportTo("tv.c.trace_model",function(){function e(c){this.parent=c;this.bounds=new tv.b.Range;this.instanceMapsById_={};this.instancesByTypeName_={};this.createObjectInstance_=this.createObjectInstance_.bind(this)}e.prototype={__proto__:Object.prototype,createObjectInstance_:function(c,b,a,f,d,h){c=new (tv.c.trace_model.ObjectInstance.getConstructor(a,f))(c,b,a,f,d,h);b=c.typeName;a=this.instancesByTypeName_[b];a||(a=[],this.instancesByTypeName_[b]=a);a.push(c);return c},getOrCreateInstanceMap_:function(c){var b=
this.instanceMapsById_[c];if(b)return b;b=new tv.c.trace_model.TimeToObjectInstanceMap(this.createObjectInstance_,this.parent,c);return this.instanceMapsById_[c]=b},idWasCreated:function(c,b,a,f){return this.getOrCreateInstanceMap_(c).idWasCreated(b,a,f)},addSnapshot:function(c,b,a,f,d,h){c=this.getOrCreateInstanceMap_(c).addSnapshot(b,a,f,d,h);if(c.objectInstance.category!=b)throw Error("Added snapshot name="+a+" with cat="+b+" impossible. It instance was created/snapshotted with cat="+c.objectInstance.category+
" name="+c.objectInstance.name);if(h&&c.objectInstance.baseTypeName!=h)throw Error("Could not add snapshot with baseTypeName="+h+". It was previously created with name="+c.objectInstance.baseTypeName);if(c.objectInstance.name!=a)throw Error("Could not add snapshot with name="+a+". It was previously created with name="+c.objectInstance.name);return c},idWasDeleted:function(c,b,a,f){if(c=this.getOrCreateInstanceMap_(c).idWasDeleted(b,a,f)){if(c.category!=b)throw Error("Deleting object "+c.name+" with a different category than when it was created. It previous had cat="+
c.category+" but the delete command had cat="+b);if(c.baseTypeName!=a)throw Error("Deletion requested for name="+a+" could not proceed: An existing object with baseTypeName="+c.baseTypeName+" existed.");}},autoDeleteObjects:function(c){tv.b.iterItems(this.instanceMapsById_,function(b,a){var f=a.lastInstance;f.deletionTs==Number.MAX_VALUE&&(a.idWasDeleted(f.category,f.name,c),f.deletionTsWasExplicit=!1)})},getObjectInstanceAt:function(c,b){var a=this.instanceMapsById_[c];return!a?void 0:a.getInstanceAt(b)},
getSnapshotAt:function(c,b){var a=this.getObjectInstanceAt(c,b);return!a?void 0:a.getSnapshotAt(b)},iterObjectInstances:function(c,b){b=b||this;tv.b.iterItems(this.instanceMapsById_,function(a,f){f.instances.forEach(c,b)})},getAllObjectInstances:function(){var c=[];this.iterObjectInstances(function(b){c.push(b)});return c},getAllInstancesNamed:function(c){return this.instancesByTypeName_[c]},getAllInstancesByTypeName:function(){return this.instancesByTypeName_},preInitializeAllObjects:function(){this.iterObjectInstances(function(c){c.preInitialize()})},
initializeAllObjects:function(){this.iterObjectInstances(function(c){c.initialize()})},initializeInstances:function(){this.iterObjectInstances(function(c){c.initialize()})},updateBounds:function(){this.bounds.reset();this.iterObjectInstances(function(c){c.updateBounds();this.bounds.addRange(c.bounds)},this)},shiftTimestampsForward:function(c){this.iterObjectInstances(function(b){b.shiftTimestampsForward(c)})},addCategoriesToDict:function(c){this.iterObjectInstances(function(b){c[b.category]=!0})},
iterateAllEvents:function(c,b){this.iterObjectInstances(function(a){c.call(this,a);a.snapshots.forEach(c)},b)}};return{ObjectCollection:e}});"use strict";tv.exportTo("tv.c.trace_model",function(){function e(){}e.prototype={get stableId(){throw Error("Not implemented");}};return{EventContainer:e}});"use strict";tv.exportTo("tv.c.trace_model",function(){function e(b,a,f,d,h,e,k,l){c.call(this,b,a,f,d,h,e,k,l);this.subSlices=[]}var c=tv.c.trace_model.Slice;e.prototype={__proto__:c.prototype};return{ThreadSlice:e}});
"use strict";tv.exportTo("tv.b.ui",function(){return{brightenColor:function(e){var c;c=240<=e.r&&240<=e.g&&240<=e.b?-0.2:0.45;return{r:Math.min(255,e.r+Math.floor(e.r*c)),g:Math.min(255,e.g+Math.floor(e.g*c)),b:Math.min(255,e.b+Math.floor(e.b*c))}},colorToRGBString:function(e){return"rgb("+e.r+","+e.g+","+e.b+")"},colorToRGBAString:function(e,c){return"rgba("+e.r+","+e.g+","+e.b+","+c+")"}}});"use strict";
tv.exportTo("tv.b.ui",function(){function e(a){for(var d=0,b=0;b<a.length;++b)d=(d+37*d+11*a.charCodeAt(b))%4294967295;return d}var c=tv.b.ui.colorToRGBString,b=[{r:138,g:113,b:152},{r:175,g:112,b:133},{r:127,g:135,b:225},{r:93,g:81,b:137},{r:116,g:143,b:119},{r:178,g:214,b:122},{r:87,g:109,b:147},{r:119,g:155,b:95},{r:114,g:180,b:160},{r:132,g:85,b:103},{r:157,g:210,b:150},{r:148,g:94,b:86},{r:164,g:108,b:138},{r:139,g:191,b:150},{r:110,g:99,b:145},{r:80,g:129,b:109},{r:125,g:140,b:149},{r:93,g:124,
b:132},{r:140,g:85,b:140},{r:104,g:163,b:162},{r:132,g:141,b:178},{r:131,g:105,b:147},{r:135,g:183,b:98},{r:152,g:134,b:177},{r:141,g:188,b:141},{r:133,g:160,b:210},{r:126,g:186,b:148},{r:112,g:198,b:205},{r:180,g:122,b:195},{r:203,g:144,b:152}],a={thread_state_iowait:{r:182,g:125,b:143},thread_state_running:{r:126,g:200,b:148},thread_state_runnable:{r:133,g:160,b:210},thread_state_sleeping:{r:240,g:240,b:240},thread_state_unknown:{r:199,g:155,b:125},memory_dump:{r:0,g:0,b:180},generic_work:{r:125,
g:125,b:125}},f=b.length;tv.b.dictionaryLength(a);var d=function(){var d=[];d.push.apply(d,b);d.push.apply(d,tv.b.dictionaryValues(a));return d.concat(d.map(tv.b.ui.brightenColor))}(),h=d.map(c),g=h.length/2,k=function(){var d={},f=b.length;tv.b.iterItems(a,function(a,b){d[a]=f++});return d}(),l={};return{getRawColorPalette:function(){return d},getColorPalette:function(){return h},paletteProperties:{numGeneralPurposeColorIds:f,highlightIdBoost:g},getColorPaletteHighlightIdBoost:function(){return g},
getColorIdForReservedName:function(a){var d=k[a];if(void 0===d)throw Error("Unrecognized color ")+a;return d},getStringHash:e,getColorIdForGeneralPurposeString:function(a){if(void 0===l[a]){var d=e(a);l[a]=d%f}return l[a]}}});"use strict";
tv.exportTo("tv.c.trace_model",function(){function e(b,a,f){this.guid_=tv.b.GUID.allocate();this.parentThread_=b;this.sliceConstructor=a||c;this.openPartialSlices_=[];this.slices=[];this.bounds=new tv.b.Range;this.topLevelSlices=[];this.haveTopLevelSlicesBeenBuilt=!1;this.name_=f}var c=tv.c.trace_model.Slice;e.prototype={__proto__:tv.c.trace_model.EventContainer.prototype,get guid(){return this.guid_},get parentThread(){return this.parentThread_},get model(){return this.parentThread_.parent.model},
get stableId(){return this.parentThread_.stableId+".SliceGroup"},getSettingsKey:function(){if(this.name_){var b=this.parentThread_.getSettingsKey();return!b?void 0:b+"."+this.name}},get length(){return this.slices.length},pushSlice:function(b){this.haveTopLevelSlicesBeenBuilt=!1;this.slices.push(b);return b},pushSlices:function(b){this.haveTopLevelSlicesBeenBuilt=!1;this.slices.push.apply(this.slices,b)},beginSlice:function(b,a,f,d,c){if(this.openPartialSlices_.length&&f<this.openPartialSlices_[this.openPartialSlices_.length-
1].start)throw Error("Slices must be added in increasing timestamp order");var e=tv.b.ui.getColorIdForGeneralPurposeString(a);b=new this.sliceConstructor(b,a,e,f,d?d:{},null,c);this.openPartialSlices_.push(b);b.didNotFinish=!0;this.pushSlice(b);return b},isTimestampValidForBeginOrEnd:function(b){return!this.openPartialSlices_.length?!0:b>=this.openPartialSlices_[this.openPartialSlices_.length-1].start},get openSliceCount(){return this.openPartialSlices_.length},get mostRecentlyOpenedPartialSlice(){return!this.openPartialSlices_.length?
void 0:this.openPartialSlices_[this.openPartialSlices_.length-1]},endSlice:function(b,a){if(!this.openSliceCount)throw Error("endSlice called without an open slice");var f=this.openPartialSlices_[this.openSliceCount-1];this.openPartialSlices_.splice(this.openSliceCount-1,1);if(b<f.start)throw Error("Slice "+f.title+" end time is before its start.");f.duration=b-f.start;f.didNotFinish=!1;a&&void 0!==f.cpuStart&&(f.cpuDuration=a-f.cpuStart);return f},pushCompleteSlice:function(b,a,f,d,c,e,k){var l=
tv.b.ui.getColorIdForGeneralPurposeString(a);b=new this.sliceConstructor(b,a,l,f,k?k:{},d,c,e);void 0===d&&(b.didNotFinish=!0);this.pushSlice(b);return b},autoCloseOpenSlices:function(b){b||(this.updateBounds(),b=this.bounds.max);for(var a=0;a<this.slices.length;a++){var f=this.slices[a];f.didNotFinish&&(f.duration=b-f.start)}this.openPartialSlices_=[]},shiftTimestampsForward:function(b){for(var a=0;a<this.slices.length;a++){var f=this.slices[a];f.start+=b}},updateBounds:function(){this.bounds.reset();
for(var b=0;b<this.slices.length;b++)this.bounds.addValue(this.slices[b].start),this.bounds.addValue(this.slices[b].end)},copySlice:function(b){var a=new this.sliceConstructor(b.category,b.title,b.colorId,b.start,b.args,b.duration,b.cpuStart,b.cpuDuration);a.didNotFinish=b.didNotFinish;return a},iterateAllEvents:function(b,a){this.slices.forEach(b,a)},iterateAllEventContainers:function(b){b(this)},getSlicesOfName:function(b){for(var a=[],f=0;f<this.slices.length;f++)this.slices[f].title==b&&a.push(this.slices[f]);
return a},createSubSlices:function(){this.haveTopLevelSlicesBeenBuilt=!0;this.createSubSlicesImpl_();this.slices.forEach(function(b){for(var a=b.duration,f=0;f<b.subSlices.length;f++)a-=b.subSlices[f].duration;b.selfTime=a;if(void 0!==b.cpuDuration){a=b.cpuDuration;for(f=0;f<b.subSlices.length;f++)void 0!==b.subSlices[f].cpuDuration&&(a-=b.subSlices[f].cpuDuration);b.cpuSelfTime=a}})},createSubSlicesImpl_:function(){function b(a,d){if(a.bounds(d)){if(a.subSlices&&0<a.subSlices.length&&b(a.subSlices[a.subSlices.length-
1],d))return!0;d.parentSlice=a;void 0===a.subSlices&&(a.subSlices=[]);a.subSlices.push(d);return!0}return!1}if(this.slices.length){for(var a=[],f=0;f<this.slices.length;f++)this.slices[f].subSlices&&this.slices[f].subSlices.splice(0,this.slices[f].subSlices.length),a.push(f);var d=this.slices;a.sort(function(a,b){var f=d[a],c=d[b];return f.start!=c.start?f.start-c.start:a-b});var c=this.slices[a[0]];this.topLevelSlices=[];this.topLevelSlices.push(c);for(f=1;f<a.length;f++){var e=this.slices[a[f]];
b(c,e)||(c=e,this.topLevelSlices.push(c))}}}};e.merge=function(b,a){if(0<b.openPartialSlices_.length)throw Error("groupA has open partial slices");if(0<a.openPartialSlices_.length)throw Error("groupB has open partial slices");if(b.parentThread!=a.parentThread)throw Error("Different parent threads. Cannot merge");for(var f=new e(b.parentThread),d=b.slices,c=a.slices,g=0,k=0,l=[],m=[],n=function(a){for(var d=0;d<m.length;d++){var b=m[d],c=b.end;if(a<b.start||c<a)throw Error("slice should not be split");
var h=f.copySlice(b);h.start=a;h.duration=c-a;-1==h.title.indexOf(" (cont.)")&&(h.title+=" (cont.)");b.duration=a-b.start;m[d]=h;f.pushSlice(h)}},q=function(a){for(;0<l.length||0<m.length;){var d=l[l.length-1],b=m[m.length-1],d=d&&d.end,b=b&&b.end;if((void 0===d||d>a)&&(void 0===b||b>a))break;void 0===b||d<b?(n(d),l.pop()):m.pop()}};g<d.length||k<c.length;){var w=d[g],s=c[k];void 0===w||void 0!==s&&w.start>s.start?(w=f.copySlice(s),s=!0,k++):(w=f.copySlice(w),s=!1,g++);q(w.start);f.pushSlice(w);s?
m.push(w):(n(w.start),l.push(w))}q();return f};return{SliceGroup:e}});"use strict";
tv.exportTo("tv.c.trace_model",function(){function e(b,a,f,d,c,e,k){tv.c.trace_model.Slice.call(this,b,a,f,d,c,e);this.subSlices=void 0;this.isTopLevel=!0===k}e.prototype={__proto__:tv.c.trace_model.Slice.prototype,id:void 0,startThread:void 0,endThread:void 0,subSlices:void 0,get viewSubGroupTitle(){return this.title},get userFriendlyName(){return"Async slice "+this.title+" at "+tv.c.analysis.tsString(this.start)}};tv.c.trace_model.EventRegistry.register(e,{name:"asyncSlice",pluralName:"asyncSlices",
singleViewElementName:"tv-c-single-slice-sub-view",multiViewElementName:"tv-c-multi-slice-sub-view"});var c=new tv.b.ExtensionRegistryOptions(tv.b.TYPE_BASED_REGISTRY_MODE);c.mandatoryBaseClass=e;c.defaultConstructor=e;tv.b.decorateExtensionRegistry(e,c);return{AsyncSlice:e}});"use strict";
tv.exportTo("tv.c.trace_model",function(){function e(c,b){this.parentThread_=c;this.guid_=tv.b.GUID.allocate();this.slices=[];this.bounds=new tv.b.Range;this.name_=b;this.viewSubGroups_=void 0}e.prototype={__proto__:tv.c.trace_model.EventContainer.prototype,get guid(){return this.guid_},get parentThread(){return this.parentThread_},get model(){return this.parentThread_.parent.model},get stableId(){return this.parentThread_.stableId+".AsyncSliceGroup"},getSettingsKey:function(){if(this.name_){var c=
this.parentThread_.getSettingsKey();return!c?void 0:c+"."+this.name_}},push:function(c){this.slices.push(c)},get length(){return this.slices.length},shiftTimestampsForward:function(c){for(var b=0;b<this.slices.length;b++){var a=this.slices[b];a.start+=c;var f=function(a){if(!(void 0===a||0===a.length))for(var b=0;b<a.length;b++)a[b].start+=c,f(a[b].subSlices)};f(a.subSlices)}},updateBounds:function(){this.bounds.reset();for(var c=0;c<this.slices.length;c++)this.bounds.addValue(this.slices[c].start),
this.bounds.addValue(this.slices[c].end)},get viewSubGroups(){if(void 0===this.viewSubGroups_){for(var c="",c=void 0!==this.name?this.name+".":"",b={},a=0;a<this.slices.length;++a){var f=this.slices[a],d=f.viewSubGroupTitle;b[d]||(b[d]=new e(this.parentThread_,c+d));b[d].slices.push(f)}this.viewSubGroups_=tv.b.dictionaryValues(b)}return this.viewSubGroups_},iterateAllEvents:function(c,b){for(var a=0;a<this.slices.length;a++){var f=this.slices[a];c.call(b,f);f.subSlices&&f.subSlices.forEach(c,b)}},
iterateAllEventContainers:function(c){c(this)}};return{AsyncSliceGroup:e}});"use strict";
tv.exportTo("tv.c.trace_model",function(){function e(a,f,c,e,l,m,n,q){b.call(this,a,f,c,e,l,m,n,q);this.subSlices=[]}function c(d,b){function c(a,d,b,f,h,g,D,F){e.call(this,a,d,b,f,h,g,D,F);this.parentThread=k}this.guid_=tv.b.GUID.allocate();if(!d)throw Error("Parent must be provided.");this.parent=d;this.sortIndex=0;this.tid=b;this.samples_=this.name=void 0;var k=this;c.prototype={__proto__:e.prototype};this.sliceGroup=new a(this,c,"slices");this.timeSlices=void 0;this.kernelSliceGroup=new a(this,
void 0,"kernel-slices");this.asyncSliceGroup=new f(this,"async-slices");this.bounds=new tv.b.Range}var b=tv.c.trace_model.Slice,a=tv.c.trace_model.SliceGroup,f=tv.c.trace_model.AsyncSliceGroup,e=tv.c.trace_model.ThreadSlice;e.prototype={__proto__:b.prototype};c.prototype={__proto__:tv.c.trace_model.EventContainer.prototype,get guid(){return this.guid_},get stableId(){return this.parent.stableId+"."+this.tid},compareTo:function(a){return c.compare(this,a)},shiftTimestampsForward:function(a){this.sliceGroup.shiftTimestampsForward(a);
if(this.timeSlices)for(var b=0;b<this.timeSlices.length;b++)this.timeSlices[b].start+=a;this.kernelSliceGroup.shiftTimestampsForward(a);this.asyncSliceGroup.shiftTimestampsForward(a)},get isEmpty(){return this.sliceGroup.length||this.sliceGroup.openSliceCount||this.timeSlices&&this.timeSlices.length||this.kernelSliceGroup.length||this.asyncSliceGroup.length||this.samples_.length?!1:!0},updateBounds:function(){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);this.timeSlices&&this.timeSlices.length&&(this.bounds.addValue(this.timeSlices[0].start),this.bounds.addValue(this.timeSlices[this.timeSlices.length-1].end));this.samples_&&this.samples_.length&&(this.bounds.addValue(this.samples_[0].start),this.bounds.addValue(this.samples_[this.samples_.length-1].end))},addCategoriesToDict:function(a){for(var b=
0;b<this.sliceGroup.length;b++)a[this.sliceGroup.slices[b].category]=!0;for(b=0;b<this.kernelSliceGroup.length;b++)a[this.kernelSliceGroup.slices[b].category]=!0;for(b=0;b<this.asyncSliceGroup.length;b++)a[this.asyncSliceGroup.slices[b].category]=!0;if(this.samples_)for(b=0;b<this.samples_.length;b++)a[this.samples_[b].category]=!0},autoCloseOpenSlices:function(a){this.sliceGroup.autoCloseOpenSlices(a);this.kernelSliceGroup.autoCloseOpenSlices(a)},mergeKernelWithUserland:function(){if(0<this.kernelSliceGroup.length){var d=
a.merge(this.sliceGroup,this.kernelSliceGroup);this.sliceGroup.slices=d.slices;this.kernelSliceGroup=new a(this);this.updateBounds()}},createSubSlices:function(){this.sliceGroup.createSubSlices();this.samples_=this.parent.model.samples.filter(function(a){return a.thread==this},this)},get userFriendlyName(){return this.name||this.tid},get userFriendlyDetails(){return"tid: "+this.tid+(this.name?", name: "+this.name:"")},getSettingsKey:function(){if(this.name){var a=this.parent.getSettingsKey();return!a?
void 0:a+"."+this.name}},indexOfTimeSlice:function(a){var b=tv.b.findLowIndexInSortedArray(this.timeSlices,function(a){return a.start},a.start);return this.timeSlices[b]!==a?void 0:b},iterateAllEvents:function(a,b){this.sliceGroup.iterateAllEvents(a,b);this.kernelSliceGroup.iterateAllEvents(a,b);this.asyncSliceGroup.iterateAllEvents(a,b);this.timeSlices&&this.timeSlices.length&&this.timeSlices.forEach(a,b)},iterateAllPersistableObjects:function(a){a(this);this.sliceGroup.length&&a(this.sliceGroup);
this.asyncSliceGroup.viewSubGroups.forEach(a)},iterateAllEventContainers:function(a){a(this);this.sliceGroup.length&&this.sliceGroup.iterateAllEventContainers(a);this.kernelSliceGroup.length&&this.kernelSliceGroup.iterateAllEventContainers(a);this.asyncSliceGroup.length&&this.asyncSliceGroup.iterateAllEventContainers(a)},get samples(){return this.samples_}};c.compare=function(a,b){var f=a.parent.compareTo(b.parent);return f||(f=a.sortIndex-b.sortIndex)?f:(f=tv.b.comparePossiblyUndefinedValues(a.name,
b.name,function(a,d){return a.localeCompare(d)}))?f:a.tid-b.tid};return{Thread:c}});"use strict";
tv.exportTo("tv.c",function(){function e(b){this.model=b;this.objectsByKey_=[];this.nonuniqueKeys_=[];this.buildObjectsByKeyMap_();this.removeNonuniqueKeysFromSettings_();this.ephemeralSettingsByGUID_={}}var c=tv.b.Settings;e.prototype={buildObjectsByKeyMap_:function(){var b=[];this.model.iterateAllPersistableObjects(function(a){b.push(a)});for(var a={},f=0;f<b.length;f++){var d=b[f],c=d.getSettingsKey();c&&(a[c]=void 0===a[c]?d:"nonuniqueKey")}var e={};tv.b.dictionaryKeys(a).forEach(function(d){"nonuniqueKey"===
a[d]&&(delete a[d],e[d]=!0)});this.nonuniqueKeys=e;this.objectsByKey_=a},removeNonuniqueKeysFromSettings_:function(){var b=c.get("trace_model_settings",{}),a=!1;tv.b.dictionaryKeys(b).forEach(function(f){this.nonuniqueKeys[f]&&(a=!0,delete b[f])},this);a&&c.set("trace_model_settings",b)},hasUniqueSettingKey:function(b){b=b.getSettingsKey();return!b?!1:void 0!==this.objectsByKey_[b]},getSettingFor:function(b,a,f){var d=b.getSettingsKey();if(!d||!this.objectsByKey_[d])return b=this.getEphemeralSettingsFor_(b),
a=b[a],void 0!==a?a:f;b=c.get("trace_model_settings",{});b[d]||(b[d]={});a=b[d][a];return void 0!==a?a:f},setSettingFor:function(b,a,f){var d=b.getSettingsKey();!d||!this.objectsByKey_[d]?this.getEphemeralSettingsFor_(b)[a]=f:(b=c.get("trace_model_settings",{}),b[d]||(b[d]={}),b[d][a]!==f&&(b[d][a]=f,c.set("trace_model_settings",b)))},getEphemeralSettingsFor_:function(b){if(void 0===b.guid)throw Error("Only objects with GUIDs can be persisted");void 0===this.ephemeralSettingsByGUID_[b.guid]&&(this.ephemeralSettingsByGUID_[b.guid]=
{});return this.ephemeralSettingsByGUID_[b.guid]}};return{TraceModelSettings:e}});"use strict";
tv.exportTo("tv.c.trace_model",function(){function e(a){if(!a)throw Error("Must provide a model");this.guid_=tv.b.GUID.allocate();this.model=a;this.threads={};this.counters={};this.objects=new tv.c.trace_model.ObjectCollection(this);this.bounds=new tv.b.Range;this.sortIndex=0}var c=tv.c.trace_model.Thread,b=tv.c.trace_model.Counter;e.compare=function(a,b){return a.sortIndex-b.sortIndex};e.prototype={__proto__:tv.c.trace_model.EventContainer.prototype,get guid(){return this.guid_},get stableId(){throw Error("Not implemented");
},get numThreads(){var a=0,b;for(b in this.threads)a++;return a},shiftTimestampsForward:function(a){for(var b in this.threads)this.threads[b].shiftTimestampsForward(a);for(var d in this.counters)this.counters[d].shiftTimestampsForward(a);this.objects.shiftTimestampsForward(a)},autoCloseOpenSlices:function(a){for(var b in this.threads)this.threads[b].autoCloseOpenSlices(a)},autoDeleteObjects:function(a){this.objects.autoDeleteObjects(a)},preInitializeObjects:function(){this.objects.preInitializeAllObjects()},
initializeObjects:function(){this.objects.initializeAllObjects()},mergeKernelWithUserland:function(){for(var a in this.threads)this.threads[a].mergeKernelWithUserland()},updateBounds:function(){this.bounds.reset();for(var a in this.threads)this.threads[a].updateBounds(),this.bounds.addRange(this.threads[a].bounds);for(var b in this.counters)this.counters[b].updateBounds(),this.bounds.addRange(this.counters[b].bounds);this.objects.updateBounds();this.bounds.addRange(this.objects.bounds)},addCategoriesToDict:function(a){for(var b in this.threads)this.threads[b].addCategoriesToDict(a);
for(var d in this.counters)a[this.counters[d].category]=!0;this.objects.addCategoriesToDict(a)},findAllThreadsNamed:function(a){var b=[],d;for(d in this.threads){var c=this.threads[d];c.name==a&&b.push(c)}return b},pruneEmptyContainers:function(){var a={},b;for(b in this.threads){var d=this.threads[b];d.isEmpty||(a[b]=d)}this.threads=a},getThread:function(a){return this.threads[a]},getOrCreateThread:function(a){this.threads[a]||(this.threads[a]=new c(this,a));return this.threads[a]},getOrCreateCounter:function(a,
f){var d=a+"."+f;this.counters[d]||(this.counters[d]=new b(this,d,a,f));return this.counters[d]},getSettingsKey:function(){throw Error("Not implemented");},createSubSlices:function(){for(var a in this.threads)this.threads[a].createSubSlices()},iterateAllEvents:function(a,b){for(var d in this.threads)this.threads[d].iterateAllEvents(a,b);for(var c in this.counters)this.counters[c].iterateAllEvents(a,b);this.objects.iterateAllEvents(a,b)},iterateAllPersistableObjects:function(a){a(this);for(var b in this.threads)this.threads[b].iterateAllPersistableObjects(a)}};
return{ProcessBase:e}});"use strict";
tv.exportTo("tv.c.trace_model",function(){function e(a){if(void 0===a)throw Error("model must be provided");b.call(this,a);this.cpus={};this.softwareMeasuredCpuCount_=void 0}var c=tv.c.trace_model.Cpu,b=tv.c.trace_model.ProcessBase;e.compare=function(a,b){return 0};e.prototype={__proto__:b.prototype,compareTo:function(a){return e.compare(this,a)},get userFriendlyName(){return"Kernel"},get userFriendlyDetails(){return"Kernel"},get stableId(){return"Kernel"},getOrCreateCpu:function(a){this.cpus[a]||(this.cpus[a]=
new c(this,a));return this.cpus[a]},get softwareMeasuredCpuCount(){return this.softwareMeasuredCpuCount_},set softwareMeasuredCpuCount(a){if(void 0!==this.softwareMeasuredCpuCount_&&this.softwareMeasuredCpuCount_!==a)throw Error("Cannot change the softwareMeasuredCpuCount once it is set");this.softwareMeasuredCpuCount_=a},get bestGuessAtCpuCount(){var a=tv.b.dictionaryLength(this.cpus);return 0!==a?a:this.softwareMeasuredCpuCount},shiftTimestampsForward:function(a){b.prototype.shiftTimestampsForward.call(this,
a);for(var f in this.cpus)this.cpus[f].shiftTimestampsForward(a)},updateBounds:function(){b.prototype.updateBounds.call(this);for(var a in this.cpus){var f=this.cpus[a];f.updateBounds();this.bounds.addRange(f.bounds)}},createSubSlices:function(){b.prototype.createSubSlices.call(this);for(var a in this.cpus)this.cpus[a].createSubSlices()},addCategoriesToDict:function(a){b.prototype.addCategoriesToDict.call(this,a);for(var f in this.cpus)this.cpus[f].addCategoriesToDict(a)},getSettingsKey:function(){return"kernel"},
iterateAllEvents:function(a,f){for(var d in this.cpus)this.cpus[d].iterateAllEvents(a,f);b.prototype.iterateAllEvents.call(this,a,f)},iterateAllEventContainers:function(a){a(this)}};return{Kernel:e}});"use strict";
tv.exportTo("tv.c.trace_model",function(){function e(b,a){if(void 0===b)throw Error("model must be provided");if(void 0===a)throw Error("pid must be provided");tv.c.trace_model.ProcessBase.call(this,b);this.pid=a;this.name=void 0;this.labels=[];this.instantEvents=[];this.memoryDumps=[];this.frames=[]}var c=tv.c.trace_model.ProcessBase;e.compare=function(b,a){var f=tv.c.trace_model.ProcessBase.compare(b,a);return f||(f=tv.b.comparePossiblyUndefinedValues(b.name,a.name,function(a,b){return a.localeCompare(b)}))?
f:(f=tv.b.compareArrays(b.labels,a.labels,function(a,b){return a.localeCompare(b)}))?f:b.pid-a.pid};e.prototype={__proto__:tv.c.trace_model.ProcessBase.prototype,get stableId(){return this.pid},compareTo:function(b){return e.compare(this,b)},pushInstantEvent:function(b){this.instantEvents.push(b)},addLabelIfNeeded:function(b){for(var a=0;a<this.labels.length;a++)if(this.labels[a]===b)return;this.labels.push(b)},get userFriendlyName(){var b;b=this.name?this.name+" (pid "+this.pid+")":"Process "+this.pid;
this.labels.length&&(b+=": "+this.labels.join(", "));return b},get userFriendlyDetails(){return this.name?this.name+" (pid "+this.pid+")":"pid: "+this.pid},getSettingsKey:function(){return!this.name?void 0:!this.labels.length?"processes."+this.name:"processes."+this.name+"."+this.labels.join(".")},shiftTimestampsForward:function(b){for(var a in this.instantEvents)this.instantEvents[a].start+=b;for(a=0;a<this.frames.length;a++)this.frames[a].shiftTimestampsForward(b);for(a=0;a<this.memoryDumps.length;a++)this.memoryDumps[a].shiftTimestampsForward(b);
tv.c.trace_model.ProcessBase.prototype.shiftTimestampsForward.apply(this,arguments)},updateBounds:function(){tv.c.trace_model.ProcessBase.prototype.updateBounds.apply(this);for(var b=0;b<this.frames.length;b++)this.frames[b].addBoundsToRange(this.bounds);for(b=0;b<this.memoryDumps.length;b++)this.memoryDumps[b].addBoundsToRange(this.bounds)},iterateAllEvents:function(b,a){this.instantEvents.forEach(b,a);this.frames.forEach(b,a);this.memoryDumps.forEach(b,a);c.prototype.iterateAllEvents.call(this,
b,a)},iterateAllEventContainers:function(b){b(this);for(var a in this.threads)this.threads[a].iterateAllEventContainers(b)},sortMemoryDumps:function(){this.memoryDumps.sort(function(b,a){return b.start-a.start})}};return{Process:e}});"use strict";
tv.exportTo("tv.c.trace_model",function(){function e(c,b,a,f,d,e,g){tv.c.trace_model.TimedEvent.call(this,f);this.title=a;this.cpu=c;this.thread=b;this.leafStackFrame=d;this.weight=e;this.args=g||{}}e.prototype={__proto__:tv.c.trace_model.TimedEvent.prototype,get colorId(){return this.leafStackFrame.colorId},get stackTrace(){return this.leafStackFrame.stackTrace},getUserFriendlyStackTrace:function(){return this.leafStackFrame.getUserFriendlyStackTrace()},get userFriendlyName(){return"Sample at "+
tv.c.analysis.tsString(this.start)}};tv.c.trace_model.EventRegistry.register(e,{name:"sample",pluralName:"samples",singleViewElementName:"tv-c-single-sample-sub-view",multiViewElementName:"tv-c-multi-sample-sub-view"});return{Sample:e}});"use strict";
tv.exportTo("tv.c.trace_model",function(){function e(c,b,a,f,d){if(void 0===b)throw Error("id must be given");this.parentFrame_=c;this.id=b;this.category=a||"";this.title=f;this.colorId=d;this.children=[];this.parentFrame_&&this.parentFrame_.addChild(this)}e.prototype={get parentFrame(){return this.parentFrame_},set parentFrame(c){this.parentFrame_&&this.parentFrame_.removeChild(this);(this.parentFrame_=c)&&this.parentFrame_.addChild(this)},addChild:function(c){this.children.push(c)},removeChild:function(c){c=
this.children.indexOf(c.id);if(-1==c)throw Error("omg");this.children.splice(c,1)},removeAllChildren:function(){for(var c=0;c<this.children.length;c++)this.children[c].parentFrame_=void 0;this.children.splice(0,this.children.length)},get stackTrace(){for(var c=[],b=this;b;)c.push(b),b=b.parentFrame;c.reverse();return c},getUserFriendlyStackTrace:function(){return this.stackTrace.map(function(c){return c.category+": "+c.title})}};return{StackFrame:e}});"use strict";
tv.exportTo("tv.c.trace_model",function(){function e(a,d,b,c,e){tv.c.trace_model.TimedEvent.call(this);this.category=a||"";this.title=d;this.colorId=b;this.start=c;this.args=e;this.type=void 0}function c(b,d,c,g,k){e.apply(this,arguments);this.type=a.GLOBAL}function b(b,d,c,g,k){e.apply(this,arguments);this.type=a.PROCESS}var a={GLOBAL:1,PROCESS:2};e.prototype={__proto__:tv.c.trace_model.TimedEvent.prototype};c.prototype={__proto__:e.prototype,get userFriendlyName(){return"Global instant event "+
this.title+" @ "+this.tsString(start)}};b.prototype={__proto__:e.prototype,get userFriendlyName(){return"Process-level instant event "+this.title+" @ "+this.tsString(start)}};tv.c.trace_model.EventRegistry.register(e,{name:"instantEvent",pluralName:"instantEvents",singleViewElementName:"tv-c-single-instant-event-sub-view",multiViewElementName:"tv-c-multi-instant-event-sub-view"});return{GlobalInstantEvent:c,ProcessInstantEvent:b,InstantEventType:a,InstantEvent:e}});"use strict";
tv.exportTo("tv.c.trace_model",function(){function e(c,b,a,f,d,e,g){tv.c.trace_model.TimedEvent.call(this,d);this.category=c||"";this.title=a;this.colorId=f;this.start=d;this.args=e;this.id=b;this.endSlice=this.startSlice=void 0;void 0!==g&&(this.duration=g)}e.prototype={__proto__:tv.c.trace_model.TimedEvent.prototype,get userFriendlyName(){return"Flow event named "+this.title+" at "+tv.c.analysis.tsString(this.timestamp)}};tv.c.trace_model.EventRegistry.register(e,{name:"flowEvent",pluralName:"flowEvents",
singleViewElementName:"tv-c-single-flow-event-sub-view",multiViewElementName:"tv-c-multi-flow-event-sub-view"});return{FlowEvent:e}});"use strict";
tv.exportTo("tv.c.trace_model",function(){function e(c,b,a){tv.c.trace_model.TimedEvent.call(this,b);this.model=c;this.processMemoryDumps={};this.args=a}e.prototype={__proto__:tv.c.trace_model.TimedEvent.prototype,shiftTimestampsForward:function(c){this.start+=c},get userFriendlyName(){return"Global memory dump at "+tv.c.analysis.tsString(this.start)}};tv.c.trace_model.EventRegistry.register(e,{name:"globalMemoryDump",pluralName:"globalMemoryDumps",singleViewElementName:"tv-c-single-global-memory-dump-sub-view",
multiViewElementName:"tv-c-multi-global-memory-dump-sub-view"});return{GlobalMemoryDump:e}});"use strict";
tv.exportTo("tv.c.trace_model",function(){function e(a,d,b){tv.c.trace_model.TimedEvent.call(this,b);this.process=d;this.globalMemoryDump=a;this.vmRegions=this.totalResidentBytes=void 0;this.memoryAllocatorDumps=[];this.memoryAllocatorDumpsByFullName={}}function c(a,d,b,c,e){this.fullName=a;this.parent=e;this.children=[];this.physicalSizeInBytes=d;this.allocatedObjectsCount=b;this.allocatedObjectsSizeInBytes=c}function b(a,d,b,c,e){this.startAddress=a;this.sizeInBytes=d;this.protectionFlags=b;this.mappedFile=
c;this.byteStats=e}function a(a,d,b){this.privateResident=a;this.sharedResident=d;this.proportionalResident=b}e.prototype={__proto__:tv.c.trace_model.TimedEvent.prototype,shiftTimestampsForward:function(a){this.start+=a},get userFriendlyName(){return"Process memory dump at "+tv.c.analysis.tsString(this.start)}};c.prototype={get name(){return this.fullName.substring(this.fullName.lastIndexOf("/")+1)}};b.PROTECTION_FLAG_READ=4;b.PROTECTION_FLAG_WRITE=2;b.PROTECTION_FLAG_EXECUTE=1;b.prototype={get protectionFlagsToString(){return(this.protectionFlags&
b.PROTECTION_FLAG_READ?"r":"-")+(this.protectionFlags&b.PROTECTION_FLAG_WRITE?"w":"-")+(this.protectionFlags&b.PROTECTION_FLAG_EXECUTE?"x":"-")}};a.prototype={get totalResident(){return this.privateResident+this.sharedResident}};tv.c.trace_model.EventRegistry.register(e,{name:"processMemoryDump",pluralName:"processMemoryDumps",singleViewElementName:"tv-c-single-process-memory-dump-sub-view",multiViewElementName:"tv-c-multi-process-memory-dump-sub-view"});return{ProcessMemoryDump:e,MemoryAllocatorDump:c,
VMRegion:b,VMRegionByteStats:a}});"use strict";tv.exportTo("tv.c.trace_model",function(){return{AlertType:function(e,c,b,a){this.title=e;this.description=c;this.severity=b;this.colorId=void 0!==a?a:tv.b.ui.getColorIdForGeneralPurposeString(e)},ALERT_SEVERITY:{CRITICAL:"critical",WARNING:"warning"}}});"use strict";
tv.exportTo("tv.c.trace_model",function(){function e(c,b,a){tv.c.trace_model.TimedEvent.call(this,b);this.type=c;this.args=void 0!==a?a:{};this.duration=0}e.prototype={__proto__:tv.c.trace_model.TimedEvent.prototype,get title(){return this.type.title},get colorId(){return this.type.colorId},get userFriendlyName(){return"Alert "+this.title+" at "+tv.c.analysis.tsString(this.start)}};tv.c.trace_model.EventRegistry.register(e,{name:"alert",pluralName:"alerts",singleViewElementName:"tv-c-single-alert-sub-view",
multiViewElementName:"tv-c-multi-alert-sub-view"});return{Alert:e}});"use strict";
tv.exportTo("tv.c.trace_model",function(){function e(c,b,a,f){tv.c.trace_model.TimedEvent.call(this,a);this.title=c;this.colorId=b;this.duration=f}e.prototype={__proto__:tv.c.trace_model.TimedEvent.prototype,get subSlices(){return[]},get userFriendlyName(){return this.title+" interaction at "+tv.c.analysis.tsString(this.start)}};tv.c.trace_model.EventRegistry.register(e,{name:"interaction",pluralName:"interactions",singleViewElementName:"tv-c-single-interaction-record-sub-view",multiViewElementName:"tv-c-multi-interaction-record-sub-view"});
return{InteractionRecord:e}});"use strict";
tv.exportTo("tv.c",function(){function e(){this.pruneEmptyContainers=this.shiftWorldToZero=!0;this.customizeModelCallback=void 0;this.auditorConstructors=tv.c.Auditor.getAllRegisteredTypeInfos().map(function(a){return a.constructor})}function c(b,d){this.faviconHue="blue";this.kernel=new a(this);this.processes={};this.metadata=[];this.categories=[];this.bounds=new tv.b.Range;this.instantEvents=[];this.flowEvents=[];this.clockSyncRecords=[];this.stackFrames={};this.samples=[];this.alerts=[];this.interaction_records=
[];this.flowIntervalTree=new tv.b.IntervalTree(function(a){return a.start},function(a){return a.end});this.globalMemoryDumps=[];this.annotationsByGuid_={};this.importWarnings_=[];this.reportedImportWarnings_={};var c=e.fromArguments(arguments,1);b&&this.importTraces([b],c)}var b=tv.c.trace_model.Process,a=tv.c.trace_model.Kernel;e.fromArguments=function(a,d){var b=a[d+0];if("object"===typeof b){if(!(b instanceof e))throw Error("Unexpected");return b}b=new e;void 0!==a[d]&&(b.shiftWorldToZero=a[d]);
void 0!==a[d+1]&&(b.pruneEmptyContainers=a[d+1]);a[d+2]&&(b.customizeModelCallback=a[d+2]);return b};c.prototype={__proto__:tv.b.EventTarget.prototype,get numProcesses(){var a=0,d;for(d in this.processes)a++;return a},getProcess:function(a){return this.processes[a]},getOrCreateProcess:function(a){this.processes[a]||(this.processes[a]=new b(this,a));return this.processes[a]},pushInstantEvent:function(a){this.instantEvents.push(a)},addStackFrame:function(a){if(this.stackFrames[a.id])throw Error("Stack frame already exists");
return this.stackFrames[a.id]=a},addInteractionRecord:function(a){this.interaction_records.push(a)},getClockSyncRecordsNamed:function(a){return this.clockSyncRecords.filter(function(d){return d.name===a})},updateCategories_:function(){var a={};this.kernel.addCategoriesToDict(a);for(var d in this.processes)this.processes[d].addCategoriesToDict(a);this.categories=[];for(var b in a)""!=b&&this.categories.push(b)},updateBounds:function(){this.bounds.reset();this.kernel.updateBounds();this.bounds.addRange(this.kernel.bounds);
for(var a in this.processes)this.processes[a].updateBounds(),this.bounds.addRange(this.processes[a].bounds);for(a=0;a<this.globalMemoryDumps.length;a++)this.globalMemoryDumps[a].addBoundsToRange(this.bounds);this.flowEvents.forEach(function(a){this.bounds.addValue(a.start);this.bounds.addValue(a.end)},this);this.alerts.forEach(function(a){this.bounds.addValue(a.start);this.bounds.addValue(a.end)},this);this.interaction_records.forEach(function(a){this.bounds.addValue(a.start);this.bounds.addValue(a.end)},
this)},shiftWorldToZero:function(){if(!this.bounds.isEmpty){var a=this.bounds.min;this.kernel.shiftTimestampsForward(-a);for(var d in this.instantEvents)this.instantEvents[d].start-=a;for(var b in this.processes)this.processes[b].shiftTimestampsForward(-a);for(d=0;d<this.samples.length;d++)this.samples[d].start-=a;this.flowEvents.forEach(function(d){d.start-=a});this.alerts.forEach(function(d){d.start-=a});this.interaction_records.forEach(function(d){d.start-=a});for(d=0;d<this.globalMemoryDumps.length;d++)this.globalMemoryDumps[d].shiftTimestampsForward(-a);
this.updateBounds()}},getAllThreads:function(){var a=[],d;for(d in this.kernel.threads)a.push(c.threads[d]);for(var b in this.processes){var c=this.processes[b];for(d in c.threads)a.push(c.threads[d])}return a},getAllProcesses:function(){var a=[],d;for(d in this.processes)a.push(this.processes[d]);return a},getAllCounters:function(){var a=[];a.push.apply(a,tv.b.dictionaryValues(this.kernel.counters));for(var d in this.processes){var b=this.processes[d],c;for(c in b.counters)a.push(b.counters[c])}return a},
getAnnotationByGUID:function(a){return this.annotationsByGuid_[a]},addAnnotation:function(a){if(!a.guid)throw Error("Annotation with undefined guid given");this.annotationsByGuid_[a.guid]=a;tv.b.dispatchSimpleEvent(this,"annotationChange")},removeAnnotation:function(a){delete this.annotationsByGuid_[a.guid];tv.b.dispatchSimpleEvent(this,"annotationChange")},getAllAnnotations:function(){return tv.b.dictionaryValues(this.annotationsByGuid_)},findAllThreadsNamed:function(a){var d=[];d.push.apply(d,this.kernel.findAllThreadsNamed(a));
for(var b in this.processes)d.push.apply(d,this.processes[b].findAllThreadsNamed(a));return d},createImporter_:function(a){var d=tv.c.importer.Importer.findImporterFor(a);if(!d)throw Error("Could not find an importer for the provided eventData.");return new d(this,a)},importTraces:function(a,d){var b=e.fromArguments(arguments,1),b=this.createImportTracesTask({update:function(a){}},a,b);tv.b.Task.RunSynchronously(b)},importTracesWithProgressDialog:function(a,d){var b=e.fromArguments(arguments,1),c=
tv.b.ui.Overlay();c.title="Importing...";c.userCanClose=!1;c.msgEl=document.createElement("div");c.appendChild(c.msgEl);c.msgEl.style.margin="20px";c.update=function(a){this.msgEl.textContent=a};c.visible=!0;b=this.createImportTracesTask(c,a,b);b=tv.b.Task.RunWhenIdle(b);b.then(function(){c.visible=!1},function(a){c.visible=!1});return b},hasEventDataDecoder_:function(a){if(0===a.length)return!1;for(var d=0;d<a.length;++d)if(!a[d].isTraceDataContainer())return!0;return!1},createImportTracesTask:function(a,
d,b){var c=e.fromArguments(arguments,2);if(this.importing_)throw Error("Already importing.");this.importing_=!0;var k=new tv.b.Task(function(){a.update("I will now import your traces for you...")},this),l,m=[];l=k.after(function(){d=d.slice(0);a.update("Creating importers...");for(var b=0;b<d.length;++b)m.push(this.createImporter_(d[b]));for(b=0;b<m.length;b++)for(var c=m[b].extractSubtraces(),e=0;e<c.length;e++)try{d.push(c[e]),m.push(this.createImporter_(c[e]))}catch(h){console.warn(h.name+": "+
h.message)}if(d.length&&!this.hasEventDataDecoder_(m))throw Error("Could not find an importer for the provided eventData.");m.sort(function(a,d){return a.importPriority-d.importPriority})},this);l=l.after(function(d){m.forEach(function(b,c){d.subTask(function(){a.update("Importing "+(c+1)+" of "+m.length);b.importEvents()},this)},this)},this);c.customizeModelCallback&&(l=l.after(function(a){c.customizeModelCallback(this)},this));l=l.after(function(d){m.forEach(function(d,b){a.update("Importing sample data "+
(b+1)+"/"+m.length);d.importSampleData()},this)},this);l=l.after(function(){a.update("Autoclosing open slices...");this.samples.sort(function(a,d){return a.start-d.start});this.updateBounds();this.kernel.autoCloseOpenSlices(this.bounds.max);for(var d in this.processes)this.processes[d].autoCloseOpenSlices(this.bounds.max);this.kernel.createSubSlices();for(d in this.processes)this.processes[d].createSubSlices()},this);l=l.after(function(d){m.forEach(function(d,b){a.update("Finalizing import "+(b+1)+
"/"+m.length);d.finalizeImport()},this)},this);l=l.after(function(){a.update("Initializing objects (step 1/2)...");for(var d in this.processes)this.processes[d].preInitializeObjects()},this);c.pruneEmptyContainers&&(l=l.after(function(){a.update("Pruning empty containers...");this.kernel.pruneEmptyContainers();for(var d in this.processes)this.processes[d].pruneEmptyContainers()},this));l=l.after(function(){a.update("Merging kernel with userland...");for(var d in this.processes)this.processes[d].mergeKernelWithUserland()},
this);var n=[];l=l.after(function(){a.update("Adding arbitrary data to model...");n=c.auditorConstructors.map(function(a){return new a(this)},this);n.forEach(function(a){a.runAnnotate()})},this);l=l.after(function(){a.update("Computing final world bounds...");this.updateBounds();this.updateCategories_();c.shiftWorldToZero&&this.shiftWorldToZero()},this);l=l.after(function(){a.update("Building flow event map...");for(var d=0;d<this.flowEvents.length;++d)this.flowIntervalTree.insert(this.flowEvents[d]);
this.flowIntervalTree.updateHighValues()},this);l=l.after(function(){a.update("Joining object refs...");for(var d=0;d<m.length;d++)m[d].joinRefs()},this);l=l.after(function(){a.update("Cleaning up undeleted objects...");for(var d in this.processes)this.processes[d].autoDeleteObjects(this.bounds.max)},this);l=l.after(function(){a.update("Sorting memory dumps...");this.globalMemoryDumps.sort(function(a,d){return a.start-d.start});for(var d in this.processes)this.processes[d].sortMemoryDumps()},this);
l=l.after(function(){a.update("Initializing objects (step 2/2)...");for(var d in this.processes)this.processes[d].initializeObjects()},this);l=l.after(function(){a.update("Running auditors...");n.forEach(function(a){a.runAudit()});this.interaction_records.sort(function(a,d){return a.start-d.start});this.alerts.sort(function(a,d){return a.start-d.start});this.updateBounds()},this);l.after(function(){this.importing_=!1},this);return k},importWarning:function(a){this.importWarnings_.push(a);!0!==this.reportedImportWarnings_[a.type]&&
(console.warn(a.message),this.reportedImportWarnings_[a.type]=!0)},get hasImportWarnings(){return 0<this.importWarnings_.length},get importWarnings(){return this.importWarnings_},iterateAllEvents:function(a,d){this.instantEvents.forEach(a,d);this.kernel.iterateAllEvents(a,d);for(var b in this.processes)this.processes[b].iterateAllEvents(a,d);this.samples.forEach(a,d);this.globalMemoryDumps.forEach(a,d)},iterateAllPersistableObjects:function(a){this.kernel.iterateAllPersistableObjects(a);for(var d in this.processes)this.processes[d].iterateAllPersistableObjects(a)},
iterateAllEventContainers:function(a){this.kernel.iterateAllEventContainers(a);for(var d in this.processes)this.processes[d].iterateAllEventContainers(a)}};return{ImportOptions:e,ClockSyncRecord:function(a,d,b){this.name=a;this.ts=d;this.args=b},TraceModel:c}});"use strict";
tv.exportTo("tv.c",function(){function e(a){this.sunburst_zoom_level=void 0;this.bounds_dirty_=!0;this.bounds_=new tv.b.Range;this.length_=0;this.guid_=tv.b.GUID.allocate();this.pushed_guids_={};if(a)if(a instanceof Array)for(var b=0;b<a.length;b++)this.push(a[b]);else this.push(a)}var c=tv.c.trace_model.EventRegistry,b=tv.b.Event.bind(void 0,"requestSelectionChange",!0,!1);e.prototype={__proto__:Object.prototype,get bounds(){if(this.bounds_dirty_){this.bounds_.reset();for(var a=0;a<this.length_;a++)this[a].addBoundsToRange(this.bounds_);
this.bounds_dirty_=!1}return this.bounds_},get duration(){return this.bounds_.isEmpty?0:this.bounds_.max-this.bounds_.min},get length(){return this.length_},get guid(){return this.guid_},clear:function(){for(var a=0;a<this.length_;++a)delete this[a];this.length_=0;this.bounds_dirty_=!0},push:function(a){if(void 0==a.guid)throw Error("Event must have a GUID");if(this.contains(a))return a;this.pushed_guids_[a.guid]=!0;this[this.length_++]=a;this.bounds_dirty_=!0;return a},contains:function(a){return this.pushed_guids_[a.guid]},
addSelection:function(a){for(var b=0;b<a.length;b++)this.push(a[b])},subSelection:function(a,b){b=b||1;var d=new e;d.bounds_dirty_=!0;if(0>a||a+b>this.length_)throw Error("Index out of bounds");for(var c=a;c<a+b;c++)d.push(this[c]);return d},getEventsOrganizedByBaseType:function(a){var b={},d=c.getAllRegisteredTypeInfos();d.forEach(function(a){b[a.metadata.name]=new e;void 0!==this.sunburst_zoom_level&&(b[a.metadata.name].sunburst_zoom_level=this.sunburst_zoom_level)},this);this.forEach(function(a,
c){var e=-1,h=void 0;d.forEach(function(d,b){a instanceof d.constructor&&b>e&&(e=b,h=d)});if(-1==e)throw Error("Unrecgonized event type");b[h.metadata.name].push(a)});if(a){a={};for(var h in b)0<b[h].length&&(a[h]=b[h]);return a}return b},getEventsOrganizedByTitle:function(){for(var a={},b=0;b<this.length;b++){var d=this[b];if(void 0===d.title)throw Error("An event didn't have a title!");void 0==a[d.title]&&(a[d.title]=[]);a[d.title].push(d)}return a},enumEventsOfType:function(a,b){for(var d=0;d<
this.length_;d++)this[d]instanceof a&&b(this[d])},get userFriendlyName(){if(0===this.length)throw Error("Empty selection");var a=this.getEventsOrganizedByBaseType(!0),b=tv.b.dictionaryKeys(a)[0];if(1===this.length)return a=c.getUserFriendlySingularName(b),this[0].userFriendlyName;if(1!==tv.b.dictionaryLength(a))return this.length+" events of various types";a=c.getUserFriendlyPluralName(b);return this.length+" "+a},getShiftedSelection:function(a,b){for(var d=new e,c=0;c<this.length_;c++){var g=this[c];
if(g instanceof tv.c.trace_model.FlowEvent)if(0<b&&g.nextFlowEvent){d.push(g.nextFlowEvent);continue}else if(0>b&&g.previousFlowEvent){d.push(g.previousFlowEvent);continue}a.trackForEvent(g).addItemNearToProvidedEventToSelection(g,b,d)}return 0==d.length?void 0:d},forEach:function(a,b){for(var d=0;d<this.length;d++)a.call(b,this[d],d)},map:function(a,b){for(var d=[],c=0;c<this.length;c++)d.push(a.call(b,this[c],c));return d},every:function(a,b){for(var d=0;d<this.length;d++)if(!a.call(b,this[d],d))return!1;
return!0},some:function(a,b){for(var d=0;d<this.length;d++)if(a.call(b,this[d],d))return!0;return!1}};return{Selection:e,RequestSelectionChangeEvent:b}});"use strict";
Polymer("tv-c-analysis-link",{ready:function(){this.addEventListener("click",this.onClicked_.bind(this));this.selection_=void 0},get selection(){return this.selection_},set selection(e){this.selection_=e;this.textContent=e.userFriendlyName},setSelectionAndContent:function(e,c){this.selection_=e;c&&(this.textContent=c)},onClicked_:function(){if(this.selection_){var e=new tv.c.RequestSelectionChangeEvent;e.selection="function"===typeof this.selection_?this.selection_():this.selection_;this.dispatchEvent(e)}}});
"use strict";
Polymer("tv-c-analysis-generic-object-view",{ready:function(){this.object_=void 0},get object(){return this.object_},set object(e){this.object_=e;this.updateContents_()},updateContents_:function(){this.shadowRoot.textContent="";this.appendElementsForType_("",this.object_,0,0,5,"")},appendElementsForType_:function(e,c,b,a,f,d){if(a>f)this.appendSimpleText_(e,b,"<recursion limit reached>",d);else if(void 0===c)this.appendSimpleText_(e,b,"undefined",d);else if(null===c)this.appendSimpleText_(e,b,"null",
d);else{if(!(c instanceof Object))if("string"==typeof c){var h=!1;if("{"==c[0]&&"}"==c[c.length-1]||"["==c[0]&&"]"==c[c.length-1])try{c=JSON.parse(c),h=!0}catch(g){}if(!h)return this.appendSimpleText_(e,b,'"'+c+'"',d)}else return this.appendSimpleText_(e,b,c,d);c instanceof tv.c.trace_model.ObjectSnapshot?(a=document.createElement("tv-c-analysis-link"),a.selection=new tv.c.Selection(c),this.appendElementWithLabel_(e,b,a,d)):c instanceof tv.c.trace_model.ObjectInstance?(a=document.createElement("tv-c-analysis-link"),
a.selection=new tv.c.Selection(c),this.appendElementWithLabel_(e,b,a,d)):c instanceof tv.b.Rect?this.appendSimpleText_(e,b,c.toString(),d):c instanceof Array?this.appendElementsForArray_(e,c,b,a,f,d):this.appendElementsForObject_(e,c,b,a,f,d)}},appendElementsForArray_:function(e,c,b,a,f,d){if(0==c.length)this.appendSimpleText_(e,b,"[]",d);else{this.appendElementsForType_(e+"[",c[0],b,a+1,f,1<c.length?",":"]"+d);for(var h=1;h<c.length;h++)this.appendElementsForType_("",c[h],b+e.length+1,a+1,f,h<c.length-
1?",":"]"+d)}},appendElementsForObject_:function(e,c,b,a,f,d){var h=tv.b.dictionaryKeys(c);if(0==h.length)this.appendSimpleText_(e,b,"{}",d);else{this.appendElementsForType_(e+"{"+h[0]+": ",c[h[0]],b,a,f,1<h.length?",":"}"+d);for(var g=1;g<h.length;g++)this.appendElementsForType_(h[g]+": ",c[h[g]],b+e.length+1,a+1,f,g<h.length-1?",":"}"+d)}},appendElementWithLabel_:function(e,c,b,a){var f=document.createElement("div"),d=document.createElement("span");d.style.whiteSpace="pre";for(var h=0;h<c;h++)d.textContent+=
" ";f.appendChild(d);c=document.createElement("span");c.textContent=e;f.appendChild(c);f.appendChild(b);e=document.createElement("span");e.textContent=a;f.appendChild(e);f.dataElement=b;this.shadowRoot.appendChild(f)},appendSimpleText_:function(e,c,b,a){var f=this.ownerDocument.createElement("span");f.textContent=b;this.appendElementWithLabel_(e,c,f,a);return f}});"use strict";
Polymer("tv-c-analysis-generic-object-view-with-label",{ready:function(){this.labelEl_=document.createElement("div");this.genericObjectView_=document.createElement("tv-c-analysis-generic-object-view");this.shadowRoot.appendChild(this.labelEl_);this.shadowRoot.appendChild(this.genericObjectView_)},get label(){return this.labelEl_.textContent},set label(e){this.labelEl_.textContent=e},get object(){return this.genericObjectView_.object},set object(e){this.genericObjectView_.object=e}});"use strict";
Polymer("tv-c-a-stack-frame",{ready:function(){this.stackFrame_=void 0},get stackFrame(){return this.stackFrame_},set stackFrame(e){this.stackFrame_=e;this.$.ov.object=e.getUserFriendlyStackTrace()}});"use strict";
Polymer("tracing-analysis-toggle-container",{publish:{visible:{value:!1,reflect:!0}},created:function(){this.toggleListeners_=[]},toggleVisible:function(){this.visible=!this.visible},setToggleListener:function(e,c){var b=this.toggleVisible.bind(this);e.addEventListener(c,b,!1);this.toggleListeners_.push({target:e,eventType:c,listenerFunction:b})},clearToggleListener:function(e,c){for(var b=0;b<this.toggleListeners_.length;b++){var a=this.toggleListeners_[b];if(a.target===e&&a.eventType===c){e.removeEventListener(a.eventType,
a.listenerFunction,!1);this.toggleListeners_.splice(b,1);break}}}});"use strict";
(function(){var e=String.fromCharCode(9654),c=String.fromCharCode(9663),b=String.fromCharCode(9662),a=String.fromCharCode(9652);Polymer("tracing-analysis-nested-table",{created:function(){this.tableColumns_=[];this.tableRows_=[];this.tableRowsInfo_=[];this.tableFooterRows_=[];this.sortColumnIndex_=void 0;this.sortDescending_=!1;this.columnsWithExpandButtons_=[];this.headerCells_=[];this.showHeader_=!0},clear:function(){this.textContent="";this.tableColumns_=[];this.tableRows_=[];this.tableRowsInfo_=
[];this.tableFooterRows_=[];this.sortColumnIndex_=void 0;this.sortDescending_=!1;this.columnsWithExpandButtons_=[];this.headerCells_=[];this.rowClickCallback_=void 0},get showHeader(){return this.showHeader_},set showHeader(a){this.showHeader_=a;this.scheduleRebuildHeaders_()},set tableColumns(a){for(var d=[],b=0;b<a.length;b++)a[b].showExpandButtons&&d.push(b);0===d.length&&(d=[0]);for(b=0;b<a.length;b++){var c=a[b];if(void 0!==c.width){var e=-1!==d.indexOf(b);if((c=c.width)&&!/\d+px/.test(c))if(/\d+%/.test(c)){if(e)throw Error("Columns cannot be %-sized and host an expand button");
}else throw Error("Unrecognized width string");}}this.tableColumns_=a;this.columnsWithExpandButtons_=d;this.sortColumnIndex=void 0;this.scheduleRebuildHeaders_()},get tableColumns(){return this.tableColumns_},set tableRows(a){this.tableRows_=a;this.tableRowsInfo_=[];this.createTableRowsInfo_(a,this.tableRowsInfo_);void 0!==this.sortColumnIndex_&&this.sortTable_();this.scheduleRebuildBody_()},get tableRows(){return this.tableRows_},set footerRows(a){this.tableFooterRows_=a;this.tableFooterRowsInfo_=
[];this.createTableRowsInfo_(a,this.tableFooterRowsInfo_);this.scheduleRebuildFooter_()},get footerRows(){return this.tableFooterRows_},set sortColumnIndex(a){if(void 0===a)this.sortColumnIndex_=void 0,this.updateHeaderArrows_();else{if(this.tableColumns_.length<=a)throw Error("Column number "+a+" is out of bounds.");if(!this.tableColumns_[a].cmp)throw Error("Column "+a+" does not have a comparator.");this.sortColumnIndex_=a;this.updateHeaderArrows_();this.sortTable_()}},get sortColumnIndex(){return this.sortColumnIndex_},
set sortDescending(a){a=!!a;a!==this.sortDescending_&&(this.sortDescending_=a,this.updateHeaderArrows_(),void 0!==this.sortColumnIndex_&&this.sortTable_())},get sortDescending(){return this.sortDescending_},set rowClickCallback(a){this.rowClickCallback_=a},get rowClickCallback(){return this.rowClickCallback_},updateHeaderArrows_:function(){for(var f=0;f<this.headerCells_.length;f++)this.headerCells_[f].sideContent=this.tableColumns_[f].cmp?f!==this.sortColumnIndex_?c:this.sortDescending_?a:b:""},
sortTable_:function(){this.sortRows_(this.tableRowsInfo_);this.scheduleRebuildBody_()},sortRows_:function(a){a.sort(function(a,d){return this.sortDescending_?this.tableColumns_[this.sortColumnIndex_].cmp(d.userRow,a.userRow):this.tableColumns_[this.sortColumnIndex_].cmp(a.userRow,d.userRow)}.bind(this));for(var d=0;d<a.length;d++)a[d].isExpanded&&this.sortRows_(a[d].subRows)},generateHeaderColumns_:function(){this.headerCells_=[];this.$.head.textContent="";if(this.showHeader_)for(var f=this.appendNewElementAfter_(this.$.head,
"tr"),d=0;d<this.tableColumns_.length;d++){var e=this.appendNewElementAfter_(f,"td"),g=new TracingAnalysisHeaderCell;g.cellTitle=this.showHeader?this.tableColumns_[d].title:"";this.tableColumns_[d].cmp&&(e.classList.add("sensitive"),g.tapCallback=this.createSortCallback_(d),g.sideContent=this.sortColumnIndex_===d?this.sortDescending_?a:b:c);e.appendChild(g);this.headerCells_.push(g)}},applySizes_:function(){var a,d;this.showHeader?(d=this.$.head.children[0],a=this.$.body.children[0]):(d=this.$.body.children[0],
a=this.$.head.children[0]);for(var b=0;b<this.tableColumns_.length;b++){if(a&&a.children[b]){var c=a.children[b];c.style.minWidth="";c.style.width=""}var e=d.children[b];c=-1!==this.columnsWithExpandButtons_.indexOf(b)?e.style.paddingLeft="8px":void 0;var l=this.tableColumns_[b].width;if(l)if(/\d+px/.test(l))e=e.style,c=c?"calc("+l+" - "+c+")":l,e.minWidth=c;else if(/\d+%/.test(l))e.style.width=l;else throw Error("Unrecognized width string: "+l);}},createSortCallback_:function(a){return function(){var d=
this.sortColumnIndex;this.sortColumnIndex=a;this.sortDescending=d!==a?!1:!this.sortDescending}.bind(this)},generateTableRowNodes_:function(a,d,b,c){for(var e=0;e<d.length;e++){var l=d[e];this.generateRowNode_(a,l,b);this.appendElementAfter_(a,l.htmlNode,c);c=l.isExpanded?this.generateTableRowNodes_(a,l.subRows,b+1,l.htmlNode):l.htmlNode}return c},generateRowNode_:function(a,d,b){if(d.htmlNode)return d.htmlNode;var c=16*b,k=16*b+8,l=this.ownerDocument.createElement("tr");d.htmlNode=l;d.indentation=
b;for(b=0;b<this.tableColumns_.length;){var m=this.appendNewElementAfter_(l,"td"),n=this.tableColumns_[b],q=n.value(d.userRow),n=n.colSpan?n.colSpan:1;m.style.colSpan=n;if(-1!=this.columnsWithExpandButtons_.indexOf(b))if(0<d.subRows.length){m.style.paddingLeft=c+"px";var w=this.appendNewElementAfter_(m,"expand-button");w.textContent=e;d.isExpanded&&w.classList.add("button-expanded");this.addToggleListenerForRowToButton_(a,d,w)}else m.style.paddingLeft=k+"px";q instanceof HTMLElement?m.appendChild(q):
m.appendChild(this.ownerDocument.createTextNode(q));b+=n}var s=this;l.addEventListener("click",function(a){s.rowClickCallback_&&s.rowClickCallback_(a)})},addToggleListenerForRowToButton_:function(a,d,b){b.parentElement.addEventListener("click",function(){d.isExpanded=!d.isExpanded;d.isExpanded?(b.classList.add("button-expanded"),void 0!==this.sortColumnIndex_&&this.sortRows_(d.subRows),this.generateTableRowNodes_(a,d.subRows,d.indentation+1,d.htmlNode)):(b.classList.remove("button-expanded"),this.removeSubNodes_(a,
d))}.bind(this))},removeSubNodes_:function(a,d){for(var b=0;b<d.subRows.length;b++){var c=d.subRows[b].htmlNode;c&&c.parentNode===a&&(a.removeChild(d.subRows[b].htmlNode),this.removeSubNodes_(a,d.subRows[b]))}},scheduleRebuildHeaders_:function(){this.headerDirty_=!0;this.scheduleRebuild_()},scheduleRebuildBody_:function(){this.bodyDirty_=!0;this.scheduleRebuild_()},scheduleRebuildFooter_:function(){this.footerDirty_=!0;this.scheduleRebuild_()},scheduleRebuild_:function(){this.rebuildPending_||(this.rebuildPending_=
!0,setTimeout(function(){this.rebuildPending_=!1;this.rebuild()}.bind(this),0))},rebuild:function(){var a=this.headerDirty_||this.bodyDirty_;this.headerDirty_&&(this.generateHeaderColumns_(),this.headerDirty_=!1);this.bodyDirty_&&(this.generateTableRowNodes_(this.$.body,this.tableRowsInfo_,0),this.bodyDirty_=!1);a&&this.applySizes_();this.footerDirty_&&(this.generateTableRowNodes_(this.$.foot,this.tableFooterRowsInfo_,0),this.tableFooterRowsInfo_.length?this.$.body.classList.add("has-footer"):this.$.body.classList.remove("has-footer"),
this.footerDirty_=!1)},createTableRowsInfo_:function(a,d){for(var b=0;b<a.length;b++){var c=[];a[b].subRows&&this.createTableRowsInfo_(a[b].subRows,c);d.push({userRow:a[b],htmlNode:void 0,subRows:c,isExpanded:a[b].isExpanded||!1})}},appendElementAfter_:function(a,d,b){var c=void 0;b&&(c=b.nextSibling);a.insertBefore(d,c)},appendNewElementAfter_:function(a,b,c){b=a.ownerDocument.createElement(b);this.appendElementAfter_(a,b,c);return b}})})();"use strict";
Polymer("tracing-analysis-header-cell",{created:function(){this.tapCallback_=void 0;this.cellTitle_=""},set cellTitle(e){this.cellTitle_=e},get cellTitle(){return this.cellTitle_},clearSideContent:function(){this.$.side.textContent=""},set sideContent(e){this.$.side.textContent=e},get sideContent(){return this.$.side.textContent},set tapCallback(e){this.style.cursor="pointer";this.tapCallback_=e},get tapCallback(){return this.tapCallback_},onTap_:function(){this.tapCallback_&&this.tapCallback_()}});
"use strict";
tv.exportTo("tv.b.ui",function(){function e(a,d){return b(a,d)}function c(a,d){return b(d,a)}function b(a,b){var c=parseFloat(a),e=parseFloat(b);return isNaN(c)&&isNaN(e)?a.toString().localeCompare(b.toString()):isNaN(c)?-1:isNaN(e)?1:c-e}var a=tv.b.ui.define("sortable-table");a.prototype={__proto__:HTMLTableElement.prototype,decorate:function(){this.classList.add("sortable-table");if(this.tHead){for(var a=this.tHead.rows[0],b=window.history.state,c=0;c<a.cells.length;c++)a.cells[c].addEventListener("click",this.onItemClicked_,
!0),a.cells[c].innerHTML+="&nbsp;&#x25BF";b&&b.tableSorting&&(a=this.sortingHashCode_(),b.tableSorting[a]&&this.sort(b.tableSorting[a].col,b.tableSorting[a].sortDirection))}},onItemClicked_:function(a){var b=this.parentNode;a=b.parentNode.parentNode;var b=Array.prototype.slice.call(b.cells).indexOf(this),c=a.sort(b),e=history.state;e.tableSorting||(e.tableSorting={});e.tableSorting[a.sortingHashCode_()]={col:b,sortDirection:c};window.history.pushState(e,"")},sort:function(a,b){var h=this.tHead.rows[0],
g=h.cells[a];if(g.hasAttribute("sort")){var k=h,h=g.getAttribute("sort");if(b!=h){h="upward"==h?"downward":"upward";g.setAttribute("sort",h);k=g.innerHTML;g.innerHTML=k.substr(0,k.length-2)+("downward"==h?"&#x25BE":"&#x25B4");for(var k=g.parentNode,g=k.parentNode.parentNode.tBodies[0],k=[],l=0;l<g.rows.length;l++)k[k.length]=g.rows[l];for(l=k.length-1;0<=l;l--)g.appendChild(k[l])}return h}k=b||"downward";for(l=0;l<h.cells.length;l++)if(h.cells[l].getAttribute("sort")){h.cells[l].removeAttribute("sort");
var m=h.cells[l].innerHTML;h.cells[l].innerHTML=m.substr(0,m.length-2)+"&#x25BF"}m=h.cells[a].innerHTML;g.innerHTML=m.substr(0,m.length-2)+("downward"==k?"&#x25BE":"&#x25B4");g.setAttribute("sort",k);m=h.parentNode.parentNode.tBodies[0].rows;g=[];for(l=0;l<m.length;l++)g.push([m[l].cells[a].innerText,m[l]]);g.sort("downward"==k?e:c);for(l=0;l<g.length;l++)h.parentNode.parentNode.tBodies[0].appendChild(g[l][1]);return k},sortingHashCode_:function(){if(this.sortingHashValue_)return this.sortingHashValue_;
for(var a=this.tHead.rows[0].innerText,b=0,c=0;c<a.length;c++)127>a.charCodeAt(c)&&(b+=a.charCodeAt(c));return this.sortingHashValue_=Array.prototype.slice.call(document.getElementsByClassName("sortable-table")).indexOf(this)+""+b}};return{SortableTable:a}});"use strict";
Polymer("tv-c-single-slice-sub-view",{ready:function(){this.currentSelection_=void 0;this.$.table.tableColumns=[{title:"Label",value:function(e){return e.name},width:"150px"},{title:"Value",width:"100%",value:function(e){return e.value}}];this.$.table.showHeader=!1},set selection(e){if(1!==e.length)throw Error("Only supports single slices");if(!(e[0]instanceof tv.c.trace_model.Slice))throw Error("Only supports slices");this.setSelectionWithoutErrorChecks(e)},get selection(){return this.currentSelection_},
setSelectionWithoutErrorChecks:function(e){function c(a){var b=document.createElement("tv-c-a-stack-frame");b.stackFrame=a;return b}this.currentSelection_=e;if(void 0===this.currentSelection_)this.$.table.rows=[];else{e=this.currentSelection_[0];var b=[];e.error&&b.push({name:"Error",value:e.error});e.title&&b.push({name:"Title",value:e.title});e.category&&b.push({name:"Category",value:e.category});var a=document.createElement("tv-c-a-time-stamp");a.timestamp=e.start;b.push({name:"Start",value:a});
a=document.createElement("tv-c-a-time-span");a.duration=e.duration;b.push({name:"Wall Duration",value:a});e.cpuDuration&&(a=document.createElement("tv-c-a-time-span"),a.duration=e.cpuDuration,b.push({name:"CPU Duration",value:a}));void 0!==e.subSlices&&0!==e.subSlices.length&&(e.selfTime&&(a=document.createElement("tv-c-a-time-span"),a.duration=e.selfTime,b.push({name:"Self Time",value:a})),e.cpuSelfTime&&(a=document.createElement("tv-c-a-time-span"),a.duration=e.cpuSelfTime,e.cpuSelfTime>e.selfTime&&
(a.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."),b.push({name:"CPU Self Time",value:a})));e.durationInUserTime&&(a=document.createElement("tv-c-a-time-span"),a.duration=e.durationInUserTime,b.push({name:"Duration (U)",value:a}));e.startStackFrame&&e.endStackFrame?e.startStackFrame===e.endStackFrame?b.push({name:"Start+End Stack Trace",
value:c(e.startStackFrame)}):(b.push({name:"Start Stack Trace",value:c(e.startStackFrame)}),b.push({name:"End Stack Trace",value:c(e.endStackFrame)})):e.startStackFrame?b.push({name:"Start Stack Trace",value:c(e.startStackFrame)}):e.endStackFrame&&b.push({name:"End Stack Trace",value:c(e.endStackFrame)});var a=0,f;for(f in e.args)a+=1;if(0<a){a=[];for(f in e.args){var d=document.createElement("tv-c-analysis-generic-object-view");d.object=e.args[f];a.push({name:f,value:d})}b.push({name:"Args",value:"",
isExpanded:!0,subRows:a})}this.$.table.tableRows=b}this.$.table.rebuild()}});"use strict";
tv.exportTo("tv.c.analysis",function(){var e=tv.b.ui.define("div");e.prototype={__proto__:HTMLDivElement.prototype,decorate:function(){this.className="analysis-results"},get requiresTallView(){return!0},clear:function(){this.textContent=""},createSelectionChangingLink:function(c,b,a){function f(){return b()}var d=this.ownerDocument.createElement("tv-c-analysis-link");f.userFriendlyName=c;d.selection=f;a&&(d.title=a);return d},appendElement_:function(c,b,a){b=c.ownerDocument.createElement(b);c.appendChild(b);
void 0!=a&&(b.textContent=a);return b},appendText_:function(c,b){c.ownerDocument.createTextNode(b);c.appendChild(textNode);return textNode},appendTableCell_:function(c,b,a,f,d){b=this.appendElement_(b,"td",f);b.className=c.className+"-col-"+a;d&&(c=document.createElement("span"),c.textContent=" "+String.fromCharCode(9888),c.title=d,b.appendChild(c));return b},appendTableCell:function(c,b,a){return this.appendTableCell_(c,b,b.children.length,a)},appendTableCellWithTooltip_:function(c,b,a,f,d){return d?
(b=this.appendElement_(b,"td"),b.className=c.className+"-col-"+a,c=this.appendElement_(b,"span",f),c.className="tooltip",c.title=d,b):this.appendTableCell_(c,b,a,f)},appendHeader:function(c){c=this.appendElement_(this,"span",c);c.className="analysis-header";return c},appendInfo:function(c,b){var a=this.appendElement_(this,"div");a.label=this.appendElement_(a,"b",c);a.value=this.appendElement_(a,"span",b);return a},appendTable:function(c,b){var a=this.appendElement_(this,"table");a.className=c+" analysis-table";
a.numColumns=b;return a},appendHeadRow:function(c){if(c.headerRow)throw Error("Only one header row allowed.");if(c.tbody||c.tfoot)throw Error("Cannot add a header row after data rows have been added.");c.headerRow=this.appendElement_(this.appendElement_(c,"thead"),"tr");c.headerRow.className="analysis-table-header";return c.headerRow},appendBodyRow:function(c){if(c.tfoot)throw Error("Cannot add a tbody row after footer rows have been added.");c.tbody||(c.tbody=this.appendElement_(c,"tbody"));var b=
this.appendElement_(c.tbody,"tr");b.className=c.headerRow?"analysis-table-row":"analysis-table-row-inverted";return b},appendFootRow:function(c){c.tfoot||(c.tfoot=this.appendElement_(c,"tfoot"),c.tfoot.rowsClassName=((c.headerRow?1:0)+(c.tbody?c.tbody.rows.length:0))%2?"analysis-table-row":"analysis-table-row-inverted");var b=this.appendElement_(c.tfoot,"tr");b.className=c.tfoot.rowsClassName;return b},appendSpacingRow:function(c,b){for(var a=c.tfoot||b?this.appendFootRow(c):this.appendBodyRow(c),
f=0;f<c.numColumns;f++)this.appendTableCell_(c,a,f," ")},appendInfoRow:function(c,b,a,f){f=c.tfoot||f?this.appendFootRow(c):this.appendBodyRow(c);this.appendTableCell_(c,f,0,b);void 0!==a?(b=document.createElement("tv-c-analysis-generic-object-view"),b.object=a,b.classList.add("analysis-table-col-1"),b.style.display="table-cell",f.appendChild(b)):this.appendTableCell_(c,f,1,"");for(a=2;a<c.numColumns;a++)this.appendTableCell_(c,f,a,"")},appendInfoRowTime:function(c,b,a,f,d){f=c.tfoot||f?this.appendFootRow(c):
this.appendBodyRow(c);this.appendTableCell_(c,f,0,b);this.appendTableCell_(c,f,1,tv.c.analysis.tsString(a),d)},appendDetailsRow:function(c,b,a,f,d,e,g,k){if(k)k=this.appendFootRow(c),this.appendTableCell(c,k,"Totals");else if(k=this.appendBodyRow(c),e){var l=this.appendTableCell(c,k,tv.c.analysis.tsString(b));l.textContent="";l.appendChild(this.createSelectionChangingLink(tv.c.analysis.tsString(b),e,""))}else this.appendTableCell(c,k,tv.c.analysis.tsString(b));null!==a&&this.appendTableCell(c,k,tv.c.analysis.tsString(a));
g&&this.appendTableCell(c,k,""!=g?tv.c.analysis.tsString(g):"");null!==f&&this.appendTableCell(c,k,tv.c.analysis.tsString(f));c=this.appendTableCell(c,k,"");b=0;for(var m in d)b+=1;if(0<b)for(m in d)a=d[m],b=document.createElement("tv-c-analysis-generic-object-view"),b.object=a,a=this.appendElement_(this.appendElement_(c,"table"),"tr"),this.appendElement_(a,"td",m+":"),this.appendElement_(a,"td").appendChild(b)},appendDataRow:function(c,b,a,f,d,e,g,k,l,m,n){var q=void 0;l&&(q="Min Duration:\t"+tv.c.analysis.tsString(l.min)+
" ms \rMax Duration:\t"+tv.c.analysis.tsString(l.max)+" ms \rAvg Duration:\t"+tv.c.analysis.tsString(l.avg)+" ms (\u03c3 = "+tv.c.analysis.tsRound(l.avg_stddev)+")",l.start&&(q+="\rStart Time:\t"+tv.c.analysis.tsString(l.start)),l.end&&(q+="\rEnd Time:\t"+tv.c.analysis.tsString(l.end)),l.frequency&&l.frequency_stddev&&(q+="\rFrequency:\t"+tv.c.analysis.tsRound(l.frequency)+" occurrences/s (\u03c3 = "+tv.c.analysis.tsRound(l.frequency_stddev)+")"));l=c.tfoot||n?this.appendFootRow(c):this.appendBodyRow(c);
n=0;if(m){var w=this.appendTableCellWithTooltip_(c,l,n,b,q);w&&(w.textContent="",w.appendChild(this.createSelectionChangingLink(b,m,q)))}else this.appendTableCellWithTooltip_(c,l,n,b,q);n++;null!==a&&(a?a instanceof Array?this.appendTableCellWithTooltip_(c,l,n,"["+a.join(", ")+"]",q):this.appendTableCellWithTooltip_(c,l,n,tv.c.analysis.tsString(a),q):this.appendTableCell_(c,l,n,""),n++);null!==f&&(""!=f?this.appendTableCellWithTooltip_(c,l,n,tv.c.analysis.tsString(f),q):this.appendTableCell_(c,l,
n,""),n++);null!==d&&(d?this.appendTableCellWithTooltip_(c,l,n,tv.c.analysis.tsString(d),q):this.appendTableCell_(c,l,n,""),n++);null!==e&&(e?this.appendTableCellWithTooltip_(c,l,n,tv.c.analysis.tsString(e),q):this.appendTableCell_(c,l,n,""),n++);null!==k&&(k?this.appendTableCellWithTooltip_(c,l,n,k,q):this.appendTableCell_(c,l,n,""),n++);g?this.appendTableCellWithTooltip_(c,l,n,String(g),q):this.appendTableCell_(c,l,n,"")}};return{AnalysisResults:e}});"use strict";
Polymer("tv-c-multi-slice-sub-view",{created:function(){this.currentSelection_=void 0;this.requiresTallView_=!1},set selection(e){if(1>=e.length)throw Error("Only supports multiple items");if(!e.every(function(c){return c instanceof tv.c.trace_model.Slice}))throw Error("Only supports slices");this.setSelectionWithoutErrorChecks(e)},get selection(){return this.currentSelection_},get requiresTallView(){return this.requiresTallView_},setSelectionWithoutErrorChecks:function(e){this.currentSelection_=
e;this.$.content.textContent="";this.requiresTallView_=!1;if(void 0!==window.RasterTaskView&&tv.e.cc.RasterTaskSelection.supports(e)){e=new tv.e.cc.RasterTaskSelection(e);var c=new tv.e.cc.LayerTreeHostImplSnapshotView;c.objectSnapshot=e.containingSnapshot;c.selection=e;c.extraHighlightsByLayerId=e.extraHighlightsByLayerId;this.$.content.appendChild(c);this.style.display="flex";this.requiresTallView_=!0}else this.style.display="",c=new tv.c.analysis.AnalysisResults,this.$.content.appendChild(c),this.analyze_(c,
e)},analyze_:function(e,c){var b=this.buildSliceGroups_(c),a=this.analyzeMultipleSlices_(e,b.sliceGroups,b.hasCpuDuration),f=Object.keys(b.sliceGroups);if(1===f.length){var d=b.sliceGroups[f[0]];e.appendInfo("Title: ",d.slices[0].title);e.appendInfo("Category: ",d.slices[0].category);var h=this.analyzeSingleTypeSlices_(e,d,b.hasCpuDuration);1<b.sliceGroups[f[0]].slices.length&&(e.appendDetailsRow(h.table,void 0,d.duration,d.selfTime,h.args,void 0,b.hasCpuDuration?d.cpuDuration:void 0,!0),tv.b.ui.SortableTable.decorate(a))}else e.appendDataRow(a,
"Totals",b.totals.duration,b.hasCpuDuration?b.totals.cpuDuration:null,b.totals.selfTime,b.hasCpuDuration?b.totals.cpuSelfTime:null,c.length,null,null,null,!0),e.appendSpacingRow(a,!0),tv.b.ui.SortableTable.decorate(a);b=c.bounds.min;f=c.bounds.max;e.appendInfoRowTime(a,"Selection start",b,!0);e.appendInfoRowTime(a,"Selection extent",f-b,!0)},buildSliceGroups_:function(e){for(var c={},b=!1,a={duration:0,cpuDuration:0,cpuSelfTime:0,selfTime:0},f=0;f<e.length;f++){var d=e[f];void 0===c[d.title]&&(c[d.title]=
{slices:[],duration:0,cpuDuration:0,selfTime:0,cpuSelfTime:0,startOfFirstOccurrence:Number.MAX_VALUE,startOfLastOccurrence:-Number.MAX_VALUE,min:Number.MAX_VALUE,max:-Number.MAX_VALUE});d.cpuDuration&&(b=!0);var h=c[d.title];h.duration+=d.duration;a.duration+=d.duration;d.cpuDuration&&(h.cpuDuration+=d.cpuDuration,a.cpuDuration+=d.cpuDuration,h.cpuSelfTime+=d.cpuSelfTime?d.cpuSelfTime:d.cpuDuration,a.cpuSelfTime+=d.cpuSelfTime?d.cpuSelfTime:d.cpuDuration);h.selfTime+=d.selfTime?d.selfTime:d.duration;
a.selfTime+=d.selfTime?d.selfTime:d.duration;h.startOfFirstOccurrence=Math.min(d.start,h.startOfFirstOccurrence);h.startOfLastOccurrence=Math.max(d.start,h.startOfLastOccurrence);h.min=Math.min(d.duration,h.min);h.max=Math.max(d.duration,h.max);h.slices.push(e[f])}return{hasCpuDuration:b,sliceGroups:c,totals:a}},analyzeSingleTypeSlices_:function(e,c,b){var a=e.appendTable("analysis-slice-table",4+b),f=e.appendHeadRow(a);e.appendTableCell(a,f,"Start");e.appendTableCell(a,f,"Wall Duration (ms)");b&&
e.appendTableCell(a,f,"CPU Duration (ms)");e.appendTableCell(a,f,"Self Time (ms)");e.appendTableCell(a,f,"Args");var d={};tv.b.iterItems(c.slices,function(b,c){e.appendDetailsRow(a,c.start,c.duration,c.selfTime?c.selfTime:c.duration,c.args,function(){return new tv.c.Selection([c])},c.cpuDuration,!1);for(var f in c.args){var l=c.args[f];"number"==typeof l&&(null==d[f]&&(d[f]=0),d[f]+=l)}});return{table:a,args:d}},analyzeMultipleSlices_:function(e,c,b){var a=e.appendTable("analysis-slice-table",4+b),
f=e.appendHeadRow(a);e.appendTableCell(a,f,"Name");e.appendTableCell(a,f,"Wall Duration (ms)");b&&e.appendTableCell(a,f,"CPU Duration (ms)");e.appendTableCell(a,f,"Self Time (ms)");b&&e.appendTableCell(a,f,"CPU Self Time (ms)");e.appendTableCell(a,f,"Occurrences");tv.b.iterItems(c,function(d,c){for(var f=c.slices,k={min:c.min,max:c.max,avg:c.duration/f.length,avg_stddev:void 0,frequency:void 0,frequency_stddev:void 0},l=0,m=0;m<f.length;m++)var n=k.avg-f[m].duration,l=l+n*n;k.avg_stddev=Math.sqrt(l/
(f.length-1));l=c.startOfLastOccurrence-c.startOfFirstOccurrence;if(2<f.length&&0<l){var q=f.length-1;k.frequency=1E3*q/l;l=0;for(m=1;m<f.length;m++)n=k.frequency-1E3/(f[m].start-f[m-1].start),l+=n*n;k.frequency_stddev=Math.sqrt(l/(q-1))}e.appendDataRow(a,d,c.duration,b?0<c.cpuDuration?c.cpuDuration:"":null,c.selfTime,b?0<c.cpuSelfTime?c.cpuSelfTime:"":null,f.length,null,k,function(){return new tv.c.Selection(f)})});return a}});"use strict";
Polymer("tv-c-a-selection-summary-table",{created:function(){this.selection_=new tv.b.Range},ready:function(){this.$.table.showHeader=!1;this.$.table.tableColumns=[{title:"Name",value:function(e){return e.title},width:"350px"},{title:"Value",width:"100%",value:function(e){return e.value}}]},get selection(){return this.selection_},set selection(e){this.selection_=e;this.updateContents_()},updateContents_:function(){var e=this.selection_,c=[],b;b=this.selection_&&!e.bounds.isEmpty?!0:!1;c.push({title:"Selection start",
value:b?tv.c.analysis.createTimeStamp(e.bounds.min):"<empty>"});c.push({title:"Selection extent",value:b?tv.c.analysis.createTimeSpan(e.bounds.range):"<empty>"});this.$.table.tableRows=c;this.$.table.rebuild()}});"use strict";
tv.exportTo("tv.b",function(){function e(b){return b}function c(){}c.sum=function(b,a,c){a=a||e;for(var d=0,h=0;h<b.length;h++)d+=a.call(c,b[h],h);return d};c.mean=function(b,a,f){return c.sum(b,a,f)/b.length};c.variance=function(b,a,f){var d=a||e,h=c.mean(b,d,f);return c.sum(b,function(a,b){var c=d.call(this,a,b)-h;return c*c},f)/(b.length-1)};c.stddev=function(b,a,f){return Math.sqrt(c.variance(b,a,f))};c.max=function(b,a,c){a=a||e;for(var d=-Infinity,h=0;h<b.length;h++)d=Math.max(d,a.call(c,b[h],
h));return d};c.min=function(b,a,c){a=a||e;for(var d=Infinity,h=0;h<b.length;h++)d=Math.min(d,a.call(c,b[h],h));return d};c.range=function(b,a,c){a=a||e;for(var d=new tv.b.Range,h=0;h<b.length;h++)d.addValue(a.call(c,b[h],h));return d};c.percentile=function(b,a,c,d){if(!(0<=a&&1>=a))throw Error("percent must be [0,1]");c=c||e;for(var h=Array(b.length),g=0;g<b.length;g++)h[g]=c.call(d,b[g],g);h.sort();return h[Math.floor((b.length-1)*a)]};return{Statistics:c}});"use strict";
tv.exportTo("tv.c.analysis",function(){function e(c,b){this.title=c;this.selfTime_=this.duration_=void 0;this.events_=b;this.cpuTimesComputed_=!1;this.cpuDuration_=this.cpuSelfTime_=void 0;this.untotallableArgs_=[];this.totalledArgs_=void 0}e.prototype={get duration(){void 0===this.duration_&&(this.duration_=tv.b.Statistics.sum(this.events_,function(c){return c.duration}));return this.duration_},get cpuSelfTime(){this.computeCpuTimesIfNeeded_();return this.cpuSelfTime_},get cpuDuration(){this.computeCpuTimesIfNeeded_();
return this.cpuDuration_},computeCpuTimesIfNeeded_:function(){if(!this.cpuTimesComputed_){this.cpuTimesComputed_=!0;for(var c=0,b=0,a=!1,f=0;f<this.events_.length;f++){var d=this.events_[f];void 0!==d.cpuDuration&&(b+=d.cpuDuration,a=!0);void 0!==d.cpuSelfTime&&(c+=d.cpuSelfTime,a=!0)}a&&(this.cpuDuration_=b,this.cpuSelfTime_=c)}},get selfTime(){if(void 0===this.selfTime_)for(var c=this.selfTime_=0;c<this.events_.length;c++)void 0!==this.events_[c].selfTime&&(this.selfTime_+=this.events[c].selfTime);
return this.selfTime_},get events(){return this.events_},get numEvents(){return this.events_.length},get untotallableArgs(){this.updateArgsIfNeeded_();return this.untotallableArgs_},get totalledArgs(){this.updateArgsIfNeeded_();return this.totalledArgs_},updateArgsIfNeeded_:function(){if(void 0===this.totalledArgs_){for(var c={},b={},a=0;a<this.events_.length;a++){var f=this.events_[a],d;for(d in f.args){var e=f.args[d];"number"!==typeof e?(c[d]=!0,delete b[d]):c[d]||(void 0===b[d]&&(b[d]=0),b[d]+=
e)}}this.untotallableArgs_=tv.b.dictionaryKeys(c);this.totalledArgs_=b}}};return{MultiEventSummary:e}});"use strict";
Polymer("tv-c-a-multi-event-summary-table",{ready:function(){this.showTotals_=!1;this.eventsByTitle_=void 0},updateTableColumns_:function(e){var c=!1;e.forEach(function(a){void 0!==a.cpuDuration&&(c=!0);void 0!==a.cpuSelfTime&&(c=!0)});e=c?"20%":"33.3333%";var b=[];b.push({title:"Name",value:function(a){if("Totals"===a.title)return"Totals";var b=document.createElement("tv-c-analysis-link");b.setSelectionAndContent(function(){return new tv.c.Selection(a.events)},a.title);return b},width:"350px",cmp:function(a,
b){return a.title.localeCompare(b.title)}});b.push({title:"Wall Duration (ms)",value:function(a){return tv.c.analysis.createTimeSpan(a.duration)},width:e,cmp:function(a,b){return a.duration-b.duration}});c&&b.push({title:"CPU Duration (ms)",value:function(a){return tv.c.analysis.createTimeSpan(a.cpuDuration)},width:e,cmp:function(a,b){return a.cpuDuration-b.cpuDuration}});b.push({title:"Self time (ms)",value:function(a){return tv.c.analysis.createTimeSpan(a.selfTime)},width:e,cmp:function(a,b){return a.selfTime-
b.selfTime}});c&&b.push({title:"CPU Self Time (ms)",value:function(a){return tv.c.analysis.createTimeSpan(a.cpuSelfTime)},width:e,cmp:function(a,b){return a.cpuSelfTime-b.cpuSelfTime}});b.push({title:"Occurrences",value:function(a){return a.numEvents},width:e,cmp:function(a,b){return a.numEvents-b.numEvents}});this.$.table.tableColumns=b},configure:function(e){this.showTotals_=e.showTotals;this.eventsByTitle_=e.eventsByTitle;this.updateContents_()},get showTotals(){return this.showTotals_},set showTotals(e){this.showTotals_=
e;this.updateContents_()},get eventsByTitle(){return this.eventsByTitle_},set eventsByTitle(e){this.eventsByTitle_=e;this.appendChild(this.updateContents_())},get selectionBounds(){return this.selectionBounds_},set selectionBounds(e){this.selectionBounds_=e;this.updateContents_()},updateContents_:function(){var e=[],c=[];tv.b.iterItems(void 0!==this.eventsByTitle_?this.eventsByTitle_:[],function(a,b){e.push.apply(e,b);var d=new tv.c.analysis.MultiEventSummary(a,b);c.push(d)});this.updateTableColumns_(c);
this.$.table.tableRows=c;var b=[];this.showTotals_&&b.push(new tv.c.analysis.MultiEventSummary("Totals",e));this.$.table.footerRows=b;this.$.table.rebuild()}});"use strict";
Polymer("tv-c-a-multi-event-details-table",{created:function(){this.selection_=void 0},ready:function(){this.initTitleTable_()},get selection(){return this.selection_},set selection(e){this.selection_=e;this.updateTitleTable_();void 0===this.selection_?(this.$.table.tableRows=[],this.$.table.tableFooterRows=[]):(e=new tv.c.analysis.MultiEventSummary("Totals",this.selection_),this.updateColumns_(e),this.updateRows_(e));this.$.table.rebuild()},initTitleTable_:function(){var e=this.$.titletable;e.showHeader=
!1;e.tableColumns=[{title:"Title",value:function(c){return c.title},width:"350px"},{title:"Value",width:"100%",value:function(c){return c.value}}]},updateTitleTable_:function(){this.$.titletable.tableRows=[{title:"Title",value:this.selection_&&this.selection_.length?this.selection_[0].title:"<No selection>"}]},updateColumns_:function(e){var c;void 0!==e.cpuDuration&&(c=!0);void 0!==e.cpuSelfTime&&(c=!0);var b;b=c?"20%":"33.3333%";var a=[];a.push({title:"Start",value:function(a){if(a.__proto__===tv.c.analysis.MultiEventSummary.prototype)return a.title;
var b=document.createElement("tv-c-analysis-link");b.setSelectionAndContent(function(){return new tv.c.Selection(a)});b.appendChild(tv.c.analysis.createTimeStamp(a.start));return b},width:"350px",cmp:function(a,b){return a.title.localeCompare(b.title)}});a.push({title:"Wall Duration (ms)",value:function(a){return tv.c.analysis.createTimeSpan(a.duration)},width:"<upated further down>",cmp:function(a,b){return a.duration-b.duration}});c&&a.push({title:"CPU Duration (ms)",value:function(a){return tv.c.analysis.createTimeSpan(a.cpuDuration)},
width:"<upated further down>",cmp:function(a,b){return a.cpuDuration-b.cpuDuration}});a.push({title:"Self time (ms)",value:function(a){return tv.c.analysis.createTimeSpan(a.selfTime)},width:"<upated further down>",cmp:function(a,b){return a.selfTime-b.selfTime}});c&&a.push({title:"CPU Self Time (ms)",value:function(a){return tv.c.analysis.createTimeSpan(a.cpuSelfTime)},width:"<upated further down>",cmp:function(a,b){return a.cpuSelfTime-b.cpuSelfTime}});b=tv.b.dictionaryKeys(e.totalledArgs);b.sort();
c=e.untotallableArgs.slice(0);c.sort();b.push.apply(b,c);c=b.slice(0,4);var f=b.slice(4);c.forEach(function(b){var c=e.totalledArgs[b],f={title:"Arg: "+b,value:function(a){if(a.__proto__!==tv.c.analysis.MultiEventSummary.prototype){var f=document.createElement("tv-c-analysis-generic-object-view");f.object=a.args[b];return f}return c?a.totalledArgs[b]:""},width:"<upated further down>"};c&&(f.cmp=function(a,c){return a.args[b]-c.args[b]});a.push(f)});f.length&&a.push({title:"Other Args",value:function(a){if(a.__proto__===
tv.c.analysis.MultiEventSummary.prototype)return"";for(var b=document.createElement("tv-c-analysis-generic-object-view"),c={},e=0;e<f.length;e++)c[f[e]]=a.args[f[e]];b.object=c;return b},width:"<upated further down>"});b=(100/(a.length-1)).toFixed(3)+"%";for(c=1;c<a.length;c++)a[c].width=b;this.$.table.tableColumns=a},updateRows_:function(e){this.$.table.sortColumnIndex=0;this.$.table.tableRows=this.selection_.map(function(c){return c});this.$.table.footerRows=[e]}});"use strict";
Polymer("tv-c-a-multi-event-sub-view",{created:function(){this.currentSelection_=void 0;this.requiresTallView_=!1},set selection(e){if(1>=e.length)throw Error("Only supports multiple items");if(!e.every(function(c){return c instanceof tv.c.trace_model.Slice}))throw Error("Only supports slices");this.setSelectionWithoutErrorChecks(e)},get selection(){return this.currentSelection_},get requiresTallView(){return this.requiresTallView_},setSelectionWithoutErrorChecks:function(e){this.currentSelection_=
e;this.requiresTallView_=!1;if(void 0!==window.RasterTaskView&&tv.e.cc.RasterTaskSelection.supports(e)){e=new tv.e.cc.RasterTaskSelection(e);var c=new tv.e.cc.LayerTreeHostImplSnapshotView;c.objectSnapshot=e.containingSnapshot;c.selection=e;c.extraHighlightsByLayerId=e.extraHighlightsByLayerId;this.appendChild(c);this.style.display="flex";this.requiresTallView_=!0}else{this.style.display="";var b=e.getEventsOrganizedByTitle(),c=tv.b.dictionaryLength(b);this.$.content.textContent="";var a=document.createElement("tv-c-a-multi-event-summary-table");
a.configure({showTotals:1<c,eventsByTitle:b});this.$.content.appendChild(a);b=document.createElement("tv-c-a-selection-summary-table");b.selection=this.currentSelection_;this.$.content.appendChild(b);1===c&&(c=document.createElement("tv-c-a-multi-event-details-table"),c.selection=e,this.$.content.appendChild(c))}}});"use strict";
Polymer("tv-c-single-thread-time-slice-sub-view",{created:function(){this.currentSelection_=void 0},get selection(){return this.currentSelection_},set selection(e){if(1!==e.length)throw Error("Only supports single slices");if(!(e[0]instanceof tv.c.trace_model.ThreadTimeSlice))throw Error("Only supports thread time slices");this.currentSelection_=e;e=e[0];var c=e.thread,b=this.shadowRoot;b.querySelector("#state").textContent=e.title;var a=tv.b.ui.getColorPalette()[e.colorId];b.querySelector("#state").style.backgroundColor=
a;b.querySelector("#process-name").textContent=c.parent.userFriendlyName;b.querySelector("#thread-name").textContent=c.userFriendlyName;b.querySelector("#start").textContent=tv.c.analysis.tsString(e.start);b.querySelector("#duration").textContent=tv.c.analysis.tsString(e.duration);var f=b.querySelector("#on-cpu");f.textContent="";c=b.querySelector("#running-instead");e.cpuOnWhichThreadWasRunning?(c.parentElement.removeChild(c),a=document.createElement("tv-c-analysis-link"),a.selection=new tv.c.Selection(e.getAssociatedCpuSlice()),
a.textContent=e.cpuOnWhichThreadWasRunning.userFriendlyName,f.appendChild(a)):(f.parentElement.removeChild(f),(f=e.getCpuSliceThatTookCpu())?(a=document.createElement("tv-c-analysis-link"),a.selection=new tv.c.Selection(f),a.textContent=f.thread?f.thread.userFriendlyName:f.title,c.appendChild(a)):c.parentElement.removeChild(c));b=b.querySelector("#args");0<tv.b.dictionaryKeys(e.args).length?(c=document.createElement("tv-c-analysis-generic-object-view"),c.object=e.args,b.parentElement.style.display=
"",b.textContent="",b.appendChild(c)):b.parentElement.style.display="none"}});"use strict";
Polymer("tv-c-single-cpu-slice-sub-view",{created:function(){this.currentSelection_=void 0},get selection(){return this.currentSelection_},set selection(e){if(1!==e.length)throw Error("Only supports single slices");if(!(e[0]instanceof tv.c.trace_model.CpuSlice))throw Error("Only supports thread time slices");this.currentSelection_=e;e=e[0];var c=e.threadThatWasRunning,b=this.shadowRoot;c?(b.querySelector("#process-name").textContent=c.parent.userFriendlyName,b.querySelector("#thread-name").textContent=
c.userFriendlyName):(b.querySelector("#process-name").parentElement.style.display="none",b.querySelector("#thread-name").textContent=e.title);b.querySelector("#start").textContent=tv.c.analysis.tsString(e.start);b.querySelector("#duration").textContent=tv.c.analysis.tsString(e.duration);c=b.querySelector("#running-thread");(e=e.getAssociatedTimeslice())?(b=document.createElement("tv-c-analysis-link"),b.selection=new tv.c.Selection(e),b.textContent="Click to select",c.parentElement.style.display="",
c.textContent="",c.appendChild(b)):c.parentElement.style.display="none"}});"use strict";Polymer("tv-c-single-instant-event-sub-view",{created:function(){this.currentSelection_=void 0},set selection(e){this.$.content.textContent="";var c=document.createElement("tv-c-single-slice-sub-view");c.setSelectionWithoutErrorChecks(e);this.$.content.appendChild(c);this.currentSelection_=e},get selection(){return this.currentSelection_}});"use strict";
Polymer("tv-c-multi-instant-event-sub-view",{created:function(){this.currentSelection_=void 0},set selection(e){this.$.content.textContent="";var c=document.createElement("tv-c-multi-slice-sub-view");this.$.content.appendChild(c);c.setSelectionWithoutErrorChecks(e);this.currentSelection_=e},get selection(){return this.currentSelection_}});"use strict";
(function(){var e=tv.c.trace_model.CounterSample;Polymer("tv-c-counter-sample-sub-view",{created:function(){this.currentSelection_=void 0},get selection(){return this.currentSelection_},set selection(c){var b=new tv.c.analysis.AnalysisResults;this.appendChild(b);this.analyzeCounterSamples_(b,c)},analyzeCounterSamples_:function(c,b){for(var a={},f=0;f<b.length;f++){var d=b[f].series.counter;a[d.guid]||(a[d.guid]=[]);a[d.guid].push(b[f])}for(var h in a)f=a[h],d=f[0].series.counter,f=e.groupByTimestamp(f),
1==f.length?this.analyzeSingleCounterTimestamp_(c,d,f[0]):this.analyzeMultipleCounterTimestamps_(c,d,f)},analyzeSingleCounterTimestamp_:function(c,b,a){c.appendHeader("Selected counter:");var f=c.appendTable("analysis-counter-table",2);c.appendInfoRow(f,"Title",b.name);c.appendInfoRowTime(f,"Timestamp",a[0].timestamp);for(b=0;b<a.length;b++){var d=a[b];c.appendInfoRow(f,d.series.name,d.value)}},analyzeMultipleCounterTimestamps_:function(c,b,a){c.appendHeader("Counter "+b.name);for(var f=c.appendTable("analysis-counter-table",
2),d=[],e=0;e<a.length;e++)d.push(a[e][0].getSampleIndex());a=b.getSampleStatistics(d);for(e=0;e<a.length;e++){for(var g=[],k=0;k<d.length;++k)g.push(b.getSeries(e).getSample(d[k]).value);c.appendDataRow(f,b.name+": series("+b.getSeries(e).name+")",g,null,null,null,g.length,null,a[e])}}})})();"use strict";
Polymer("tv-c-single-flow-event-sub-view",{created:function(){this.currentSelection_=void 0},set selection(e){this.$.content.textContent="";var c=document.createElement("tv-c-single-slice-sub-view");c.setSelectionWithoutErrorChecks(e);this.$.content.appendChild(c);this.currentSelection_=e},get selection(){return this.currentSelection_}});"use strict";
Polymer("tv-c-multi-flow-event-sub-view",{created:function(){this.currentSelection_=void 0},set selection(e){this.$.content.textContent="";var c=document.createElement("tv-c-multi-slice-sub-view");this.$.content.appendChild(c);c.setSelectionWithoutErrorChecks(e);this.currentSelection_=e},get selection(){return this.currentSelection_}});"use strict";
tv.exportTo("tv.c.analysis",function(){var e=tv.b.ui.define("object-instance-view");e.prototype={__proto__:HTMLUnknownElement.prototype,decorate:function(){this.objectInstance_=void 0},get requiresTallView(){return!0},set modelEvent(b){this.objectInstance=b},get modelEvent(){return this.objectInstance},get objectInstance(){return this.objectInstance_},set objectInstance(b){this.objectInstance_=b;this.updateContents()},updateContents:function(){throw Error("Not implemented");}};var c=new tv.b.ExtensionRegistryOptions(tv.b.TYPE_BASED_REGISTRY_MODE);
c.mandatoryBaseClass=e;c.defaultMetadata={showInTrackView:!0};tv.b.decorateExtensionRegistry(e,c);return{ObjectInstanceView:e}});"use strict";
Polymer("tv-c-single-object-instance-sub-view",{created:function(){this.currentSelection_=void 0},get requiresTallView(){if(0===this.$.content.children.length)return!1;if(this.$.content.children[0]instanceof tv.c.analysis.ObjectInstanceView)return this.$.content.children[0].requiresTallView},get selection(){return this.currentSelection_},set selection(e){if(1!==e.length)throw Error("Only supports single item selections");if(!(e[0]instanceof tv.c.trace_model.ObjectInstance))throw Error("Only supports object instances");
this.$.content.textContent="";this.currentSelection_=e;e=e[0];var c=tv.c.analysis.ObjectInstanceView.getTypeInfo(e.category,e.typeName);c?(c=new c.constructor,this.$.content.appendChild(c),c.modelEvent=e):this.appendGenericAnalysis_(e)},appendGenericAnalysis_:function(e){var c;c=""+('<div class="title">'+e.typeName+" "+e.id+"</div>\n");c+="<table><tr>";c+="<tr><td>creationTs:</td><td>"+e.creationTs+"</td></tr>\n";c=e.deletionTs!=Number.MAX_VALUE?c+("<tr><td>deletionTs:</td><td>"+e.deletionTs+"</td></tr>\n"):
c+"<tr><td>deletionTs:</td><td>not deleted</td></tr>\n";c+='<tr><td>snapshots:</td><td id="snapshots"></td></tr>\n';c+="</table>";this.$.content.innerHTML=c;var b=this.$.content.querySelector("#snapshots");e.snapshots.forEach(function(a){var c=document.createElement("tv-c-analysis-link");c.selection=new tv.c.Selection(a);b.appendChild(c)})}});"use strict";
tv.exportTo("tv.c.analysis",function(){var e=tv.b.ui.define("object-snapshot-view");e.prototype={__proto__:HTMLUnknownElement.prototype,decorate:function(){this.objectSnapshot_=void 0},get requiresTallView(){return!0},set modelEvent(b){this.objectSnapshot=b},get modelEvent(){return this.objectSnapshot},get objectSnapshot(){return this.objectSnapshot_},set objectSnapshot(b){this.objectSnapshot_=b;this.updateContents()},updateContents:function(){throw Error("Not implemented");}};var c=new tv.b.ExtensionRegistryOptions(tv.b.TYPE_BASED_REGISTRY_MODE);
c.mandatoryBaseClass=e;c.defaultMetadata={showInstances:!0,showInTrackView:!0};tv.b.decorateExtensionRegistry(e,c);return{ObjectSnapshotView:e}});"use strict";
Polymer("tv-c-single-object-snapshot-sub-view",{created:function(){this.currentSelection_=void 0},get requiresTallView(){if(0===this.children.length)return!1;if(this.children[0]instanceof tv.c.analysis.ObjectSnapshotView)return this.children[0].requiresTallView},get selection(){return this.currentSelection_},set selection(e){if(1!==e.length)throw Error("Only supports single item selections");if(!(e[0]instanceof tv.c.trace_model.ObjectSnapshot))throw Error("Only supports object instances");this.textContent=
"";this.currentSelection_=e;e=e[0];var c=tv.c.analysis.ObjectSnapshotView.getTypeInfo(e.objectInstance.category,e.objectInstance.typeName);c?(c=new c.constructor,this.appendChild(c),c.modelEvent=e):this.appendGenericAnalysis_(e)},appendGenericAnalysis_:function(e){var c=e.objectInstance,b;b=""+('<div class="title">Snapshot of <a id="instance-link"></a> @ '+tv.c.analysis.tsString(e.ts)+"</div>\n");b+="<table><tr>";b+='<tr><td>args:</td><td id="args"></td></tr>\n';this.innerHTML=b+="</table>";b=document.createElement("tv-c-analysis-link");
b.selection=new tv.c.Selection(c);c=this.querySelector("#instance-link");c.parentElement.replaceChild(b,c);c=this.querySelector("#args");c.textContent="";b=document.createElement("tv-c-analysis-generic-object-view");b.object=e.args;c.appendChild(b)}});"use strict";
Polymer("tv-c-multi-object-sub-view",{created:function(){this.currentSelection_=void 0},get selection(){return this.currentSelection_},set selection(e){this.currentSelection_=e;this.textContent="";var c=new tv.c.analysis.AnalysisResults;this.appendChild(c);this.analyzeObjectEvents_(c,e)},analyzeObjectEvents_:function(e,c){c=tv.b.asArray(c).sort(tv.b.Range.compareByMinTimes);var b=e.appendTable("analysis-object-sample-table",2);c.forEach(function(a){var c=e.appendBodyRow(b),d,h,g;a instanceof tv.c.trace_model.ObjectSnapshot?
(d=tv.c.analysis.tsString(a.ts),h=a.objectInstance.typeName+" "+a.objectInstance.id,g=function(){var b=new tv.c.Selection;b.push(a);return b}):(d=a.deletionTs==Number.MAX_VALUE?"":tv.c.analysis.tsString(a.deletionTs),d=tv.c.analysis.tsString(a.creationTs)+" - "+d,h=a.typeName+" "+a.id,g=function(){var b=new tv.c.Selection;b.push(a);return b});e.appendTableCell(b,c,d);e.appendTableCell(b,c,"").appendChild(e.createSelectionChangingLink(h,g))})}});"use strict";
Polymer("tv-c-single-sample-sub-view",{created:function(){this.currentSelection_=void 0},set selection(e){this.textContent="";this.currentSelection_=e;var c=new tv.c.analysis.AnalysisResults;this.appendChild(c);this.analyzeSingleSampleEvent_(c,e[0],"Sample Event")},get selection(){return this.currentSelection_},analyzeSingleSampleEvent_:function(e,c,b){e.appendHeader("Selected "+b+":");b=e.appendTable("analysis-slice-table",2);e.appendInfoRow(b,"Title",c.title);e.appendInfoRowTime(b,"Sample Time",
c.start);e.appendInfoRow(b,"Stack Trace",c.getUserFriendlyStackTrace())}});"use strict";Polymer("tv-c-multi-sample-sub-view",{created:function(){this.currentSelection_=void 0},get requiresTallView(){return!0},set selection(e){this.$.content.textContent="";this.currentSelection_=e;if(tv.isDefined("tv.e.analysis.SamplingSummaryPanel")){var c=new tv.e.analysis.SamplingSummaryPanel;this.$.content.appendChild(c);c.selection=e}else this.$.content.textContent="SamplingSummaryPanel not installed. :("},get selection(){return this.currentSelection_}});
"use strict";Polymer("tv-c-single-interaction-record-sub-view",{created:function(){this.currentSelection_=void 0},set selection(e){this.textContent="";var c=document.createElement("tv-c-single-slice-sub-view");this.appendChild(c);c.setSelectionWithoutErrorChecks(e);this.currentSelection_=e}});"use strict";
Polymer("tv-c-multi-interaction-record-sub-view",{created:function(){this.currentSelection_=void 0},set selection(e){this.currentSelection_=e;this.textContent="";var c=document.createElement("tv-c-multi-slice-sub-view");this.appendChild(c);c.setSelectionWithoutErrorChecks(e);this.currentSelection_=e},get selection(){return this.currentSelection_}});"use strict";
Polymer("tv-c-single-alert-sub-view",{created:function(){this.currentSelection_=void 0},set selection(e){this.textContent="";var c=document.createElement("tv-c-single-slice-sub-view");this.appendChild(c);c.setSelectionWithoutErrorChecks(e);this.currentSelection_=e}});"use strict";
Polymer("tv-c-multi-alert-sub-view",{created:function(){this.currentSelection_=void 0},set selection(e){this.currentSelection_=e;this.textContent="";var c=document.createElement("tv-c-multi-slice-sub-view");this.appendChild(c);c.setSelectionWithoutErrorChecks(e);this.currentSelection_=e},get selection(){return this.currentSelection_}});"use strict";
Polymer("tv-c-single-global-memory-dump-sub-view",{created:function(){this.currentSelection_=void 0},set selection(e){if(1!==e.length)throw Error("Only supports a single global memory dump");if(!(e[0]instanceof tv.c.trace_model.GlobalMemoryDump))throw Error("Only supports global memory dumps");this.setSelectionWithoutErrorChecks(e)},get selection(){return this.currentSelection_},setSelectionWithoutErrorChecks:function(e){this.currentSelection_=e;this.textContent="";e={};var c=this.currentSelection_[0],
b;for(b in c.processMemoryDumps)e[b]=c.processMemoryDumps[b].args;b=document.createElement("tv-c-analysis-generic-object-view");b.object=e;this.appendChild(b)}});"use strict";
Polymer("tv-c-multi-global-memory-dump-sub-view",{created:function(){this.currentSelection_=void 0},set selection(e){this.currentSelection_=e;this.textContent="";e=tv.b.asArray(e).sort(tv.b.Range.compareByMinTimes);var c=new tv.c.analysis.AnalysisResults;this.appendChild(c);var b=c.appendTable("analysis-global-memory-dump-table",1);e.forEach(function(a){var f=c.appendBodyRow(b),f=c.appendTableCell(b,f,""),d="Dump at "+tv.c.analysis.tsString(a.start);f.appendChild(c.createSelectionChangingLink(d,function(){var b=
new tv.c.Selection;b.push(a);return b}))})},get selection(){return this.currentSelection_}});"use strict";
(function(){var e=tv.c.trace_model.EventRegistry;Polymer("tracing-analysis-view",{ready:function(){this.tabView_=document.createElement("tracing-analysis-tab-view");this.tabView_.style.flex="1 1 auto";this.tabView_.addEventListener("selected-tab-change",this.onSelectedTabChange_.bind(this));this.appendChild(this.tabView_);this.currentSelection_=void 0},set tallMode(c){c?this.classList.add("tall-mode"):this.classList.remove("tall-mode")},get tallMode(){return this.classList.contains("tall-mode")},
get tabView(){return this.tabView_},get selection(){return this.currentSelection_},set selection(c){var b,a;this.tabView_.selectedTab&&(b=this.tabView_.selectedTab.tagName,a=this.tabView_.selectedTab._eventTypeName);this.tallMode=!1;this.tabView_.textContent="";c=c.getEventsOrganizedByBaseType(!0);tv.b.dictionaryLength(c);for(var f in c){var d=c[f],e=this.createSubViewForSelection_(f,d);e._eventTypeName=f;this.tabView_.appendChild(e);e.selection=d}var g;b&&(g=this.tabView_.querySelector(b));!g&&a&&
(g=tv.b.findFirstInArray(this.tabView_.children,function(b){return b._eventTypeName===a}));g||(g=this.tabView_.firstChild);this.tabView_.selectedTab=g},createSubViewForSelection_:function(c,b){var a=e.getEventTypeInfoByTypeName(c),a=1===b.length?a.metadata.singleViewElementName:a.metadata.multiViewElementName;if(!tv.b.getPolymerElementNamed(a))throw Error("Element not registered: "+a);var a=document.createElement(a),f;f=1===b.length?e.getUserFriendlySingularName(c):e.getUserFriendlyPluralName(c);
a.tabLabel=f;return a},onSelectedTabChange_:function(){this.tallMode=this.tabView_.selectedTab?this.tabView_.selectedTab.requiresTallView:!1}})})();"use strict";
tv.exportTo("tv.c",function(){return{FaviconsByHue:{blue:"data:image/vndmicrosofticon;base64,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NP+9ZjT/vGY0/7xmNP+8ZjT/vGY0/7xmNP+8ZjT/u2U0/7FiLY0AAAACk5OTFu/v78X5+fn/+fn5//n5+f/5+vr/+fn5//n5+f/5+fn/+fn5//n5+f/5+/3/99iy//KWI//ylSH/8ZUh//GVIf/xlSH/8ZUh//GVIf/xlSH/8ZUh//GVIf/xlSH/8ZUh//GVIf/xlSH/8ZUh//CUIf/vkyD/5Y0fxY1XExbDw8Mz9PT05fn5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n7/f/32LL/85cj//OWIf/zliH/85Yh//OWIf/zliH/85Yh//OWIf/zliH/85Yh//OWIf/zliH/85Yh//OWIf/wlCD/7pIg/+6SIP/pjx/lunIZM9XV1VD39/f0+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fv9//fYsv/zlyP/85Yh//OWIf/zliH/85Yh//OWIf/zliH/85Yh//OWIf/zliH/85Yh//OWIf/zliH/75Mg/+uRH//qkB//6pAf/+iPH/TIfBtQ3d3dYfj4+Pn5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+/3/99iy//OXI//zliH/85Yh//OWIf/zliH/85Yh//OWIf/zliH/85Yh//OWIf/zliH/85Yh/+6TIP/ojx//548f/+ePH//njx//5o4f+c1/HGHh4eFl+Pj4+vn5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n7/f/32LL/85cj//OWIf/zliH/85Yh//OWIf/zliH/85Yh//OWIf/zliH/85Yh//OWIf/tkiD/5Y0f/+SNH//ljR//5Y0f/+WNH//kjB/6zn8cZeDg4Fr4+Pj3+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fv9//fYsv/zlyP/85Yh//OWIf/zliH/85Yh//OWIf/zliH/85Yh//OWIf/zliH/65Eg/+KMHv/iix7/4ose/+KLHv/iix7/4ose/+CLHvfLfRta3NzcQvf39+/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+/3/99iy//OXI//zliH/85Yh//OWIf/zliH/85Yh//OWIf/zliH/85Yh/+qR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",green:"data:image/vndmicrosofticon;base64,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a/9sjmr/bI1q/2yNav9sjWr/bI1q/2uNav9rjWr/a41q/16GZI0AAAACk5OTFu/v78X5+fn/+fn5//n5+f/5+fr/+fn5//n5+f/5+fn/+fn5//n5+f/8+vv/wOfV/0vCi/9Kwor/SsKK/0rCiv9Kwor/SsKK/0rCiv9Kwor/SsKK/0rCiv9Kwor/SsKK/0rCiv9Kwor/SsKK/0nAif9Jv4j/RreCxStxUBbDw8Mz9PT05fn5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//z6+/+/59X/TMSM/0rDi/9Kw4v/SsOL/0rDi/9Kw4v/SsOL/0rDi/9Kw4v/SsOL/0rDi/9Kw4v/SsOL/0rDi/9JwYn/SL6I/0i+iP9GuoXlOJVqM9XV1VD39/f0+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn//Pr7/7/n1f9Mw4z/SsOL/0rDi/9Kw4v/SsOL/0rDi/9Kw4v/SsOL/0rDi/9Kw4v/SsOL/0rDi/9Kw4v/ScCJ/0e8hv9HvIb/R7yG/0a6hfQ9oXJQ3d3dYfj4+Pn5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/8+vv/v+fV/0zDjP9Kw4v/SsOL/0rDi/9Kw4v/SsOL/0rDi/9Kw4v/SsOL/0rDi/9Kw4v/SsOL/0i/iP9GuoX/RrqE/0a6hP9GuoT/RrmD+T6ldWHh4eFl+Pj4+vn5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//z6+/+/59X/TMOM/0rDi/9Kw4v/SsOL/0rDi/9Kw4v/SsOL/0rDi/9Kw4v/SsOL/0rDi/9Ivof/RbiD/0W3gv9FuIP/RbiD/0W4g/9Ft4L6PqZ2ZeDg4Fr4+Pj3+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn//Pr7/7/n1f9Mw4z/SsOL/0rDi/9Kw4v/SsOL/0rDi/9Kw4v/SsOL/0rDi/9Kw4v/SL2H/0W2gv9FtYH/RbWB/0W1gf9FtYH/RbWB/0S0gPc+o3Ra3NzcQvf39+/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/8+vv/v+fV/0zDjP9Kw4v/SsOL/0rDi/9Kw4v/SsOL/0rDi/9Kw4v/SsOL/0e8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",
red:"data:image/vndmicrosofticon;base64,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xv9HL8b/Ry/G/0cvxv9HL8b/Ry/G/0cvxv9HL8X/Ry7F/z8tuI0AAAACk5OTFu/v78X5+fn/+fn5//n5+f/6+vn/+fr5//n6+f/5+vn/+fr5//n6+f/9/fn/ub73/zhF8v82Q/L/NkPy/zZD8v82Q/L/NkPy/zZD8v82Q/L/NkPy/zZD8v82Q/L/NkPy/zZD8v82Q/L/NkPy/zVC8f81QvD/Mz/mxR8njhbDw8Mz9PT05fn5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//z8+f+5vff/OEX0/zZD9P82Q/T/NkP0/zZD9P82Q/T/NkP0/zZD9P82Q/T/NkP0/zZD9P82Q/T/NkP0/zZD9P81QvH/NEHv/zRB7/8zQOrlKTO6M9XV1VD39/f0+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn//Pz5/7m99/84RfT/NkP0/zZD9P82Q/T/NkP0/zZD9P82Q/T/NkP0/zZD9P82Q/T/NkP0/zZD9P82Q/T/NULw/zRA7P80QOv/NEDr/zNA6fQsN8lQ3d3dYfj4+Pn5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/8/Pn/ub33/zhF9P82Q/T/NkP0/zZD9P82Q/T/NkP0/zZD9P82Q/T/NkP0/zZD9P82Q/T/NkP0/zVB7/8zQOn/Mz/o/zM/6P8zQOj/Mz/n+S04zmHh4eFl+Pj4+vn5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//z8+f+5vff/OEX0/zZD9P82Q/T/NkP0/zZD9P82Q/T/NkP0/zZD9P82Q/T/NkP0/zZD9P80Qe7/Mz/m/zM/5f8zP+b/Mz/m/zM/5v8yP+X6LjnPZeDg4Fr4+Pj3+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn//Pz5/7m99/84RfT/NkP0/zZD9P82Q/T/NkP0/zZD9P82Q/T/NkP0/zZD9P82Q/T/NEHs/zI+4/8yPuP/Mj7j/zI+4/8yPuP/Mj7j/zI+4fctOMxa3NzcQvf39+/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/8/Pn/ub33/zhF9P82Q/T/NkP0/zZD9P82Q/T/NkP0/zZD9P82Q/T/NkP0/zRA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",
yellow:"data:image/vndmicrosofticon;base64,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//8Hwf//B8H//wfB//8Hwf//B8H//wfB//8Hwf//B8H//wfB//8Hwf//B8H//wfB//8Hv/3/Br36/wa9+v8GuvbsBZnLQNra2mD39/f4+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn//fr5/6Xm+/8Jwf//B8H//wfB//8Hwf//B8H//wfB//8Hwf//B8H//wfB//8Hwf//B8H//wfB//8Hwf//B778/wa79/8Guvf/Brr3/wa59fgFo9hg4uLidPj4+P35+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/9+vn/peb7/wnB//8Hwf//B8H//wfB//8Hwf//B8H//wfB//8Hwf//B8H//wfB//8Hwf//B8H//we++/8GufX/Brj0/wa49P8GuPT/Brfz/QWm3XTk5OR6+Pj4/fn5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//36+f+l5vv/CcH//wfB//8Hwf//B8H//wfB//8Hwf//B8H//wfB//8Hwf//B8H//wfB//8Hvfr/Brfy/wa28f8GtvH/Brbx/wa28f8GtfD9BafdeuXl5W/4+Pj8+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn//fr5/6Xm+/8Jwf//B8H//wfB//8Hwf//B8H//wfB//8Hwf//B8H//wfB//8Hwf//B7z5/wa17/8GtO7/BrTu/wa07v8GtO7/BrTu/waz7fwFpdtv4eHhVvj4+Pb5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/9+vn/peb7/wnB//8Hwf//B8H//wfB//8Hwf//B8H//wfB//8Hwf//B8H//we7+P8Gsu3/BrHr/wax6/8Gsev/BrHr/wax6/8Gsev/BrDq9gWh1Vba2toz9vb25vn5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//36+f+k5fv/BsH//wPA//8DwP//A8D//wPA//8DwP//A8D//wXA//8Guvb/BrDq/wau6P8Gruj/Bq7o/wau6P8Gruj/Bq7o/wau6P8GreXmBZnLM7+/vxH09PTC+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+/r5/83v+v9x2vz/btn9/2/Z/f9v2f3/b9n9/2/Z/f9v2f3/RdL5/yXG7v8mxOz/JsTs/ybE6/8mxOv/JsTr/yXE6/8lw+v/JcPr/yK95cIQirAR////APDw8IH5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+vn5//r5+f/6+fn/+vn5//r5+f/6+fn/+vn5//r5+f+H8Pz/Oer+/zzq/v886v7/POr+/zzq/v886v7/POr+/zzq/v886v3/OuDzgWz//wD09PQA5+fnNPf39+n5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5/4Xw/f846///O+v//zvr//876///O+v//zvr//876///O+v//zvp/ek32+00Ouf6AMrKygCzs7MF8/Pzmvn5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/hfD9/zjr//876///O+v//zvr//876///O+v//zvr//876///OuX5miqptwUwv88AAAAAAPPz8wDp6eku9/f33fn5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f+F8P3/OOv//zvr//876///O+v//zvr//876///O+v//zvp/d033O8uOuX5AAAAAAAAAAAAvr6+AP///wDx8fFl+Pj49fn5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5/4Xw/f846///O+v//zvr//876///O+v//zvr//876v71OeP2ZY7//wAus8IAAAAAAAAAAAAAAAAA4ODgANPT0wj09PSI+fn5+vn5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/hfD9/zjr//876///O+v//zvr//876///O+v/+jrm+Ygyx9gINdPlAAAAAAAAAAAAAAAAAAAAAAAAAAAA6enpAOHh4Q309PSM+fn5+Pn5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5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"}}});
"use strict";
tv.exportTo("tv.c",function(){function e(b,a){this.stableId=b;this.yPercentOffset=a}function c(b,a){this.xWorld_=b;this.yComponents_=a}e.prototype={toDict:function(){return{stableId:this.stableId,yPercentOffset:this.yPercentOffset}}};c.fromViewCoordinates=function(b,a,f){var d=b.currentDisplayTransform.xViewToWorld(a),h=[];for(b=document.elementFromPoint(a+b.modelTrackContainer.canvas.offsetLeft,f+b.modelTrackContainer.canvas.offsetTop);b instanceof tv.c.tracks.Track;)b.eventContainer&&(a=b.getBoundingClientRect(),
h.push(new e(b.eventContainer.stableId,(f-a.top)/a.height))),b=b.parentElement;if(0!=h.length)return new c(d,h)};c.fromStableIdAndTimestamp=function(b,a,f){var d=[];if(b=b.containerToTrackObj.getTrackByStableId(a)){for(a=b.getBoundingClientRect().top;b instanceof tv.c.tracks.Track;){if(b.eventContainer){var h=b.getBoundingClientRect();d.push(new e(b.eventContainer.stableId,(a-h.top)/h.height))}b=b.parentElement}if(0!=d.length)return new c(f,d)}};c.prototype={get xWorld(){return this.xWorld_},getContainingTrack:function(b){b=
b.containerToTrackObj;for(var a in this.yComponents_){var c=b.getTrackByStableId(this.yComponents_[a].stableId);if(void 0!==c)return c}},toViewCoordinates:function(b){var a=b.containerToTrackObj;b=b.currentDisplayTransform.xWorldToView(this.xWorld_);var c=-1,d;for(d in this.yComponents_){var e=this.yComponents_[d],g=a.getTrackByStableId(e.stableId);if(void 0!==g){a=g.getBoundingClientRect();c=e.yPercentOffset*a.height+a.top;break}}return{viewX:b,viewY:c}},toDict:function(){return{xWorld:this.xWorld_,
yComponents:this.yComponents_}}};return{Location:c}});"use strict";
tv.exportTo("tv.c",function(){function e(c,b){this.location_=c;this.scaleX_=b}e.fromUserFriendlyString=function(c,b,a){var f=/^(-?\d+(\.\d+)?)@(\d+)\.(\d+)x(\d+(\.\d+)?)$/g.exec(a);if(f){a=parseFloat(f[1]);var d=f[3],h=f[4],f=parseFloat(f[5]);if(0>=f)throw Error("Invalid ScaleX value in UI State string.");c=c.processes[d];if(!c)throw Error("Invalid PID value in UI State string.");c=c.threads[h];if(!c)throw Error("Invalid TID value in UI State string.");b=tv.c.Location.fromStableIdAndTimestamp(b,c.stableId,
a);return new e(b,f)}};e.prototype={get location(){return this.location_},get scaleX(){return this.scaleX_},toUserFriendlyString:function(c){var b=this.location_.xWorld;c=this.location_.getContainingTrack(c).eventContainer.stableId;return b+"@"+c+"x"+this.scaleX_},toDict:function(){return{location:this.location_.toDict(),scaleX:this.scaleX_}}};return{UIState:e}});"use strict";
tv.exportTo("tv.c",function(){function e(){this.timeline_=void 0;this.filterText_="";this.filterHits_=new tv.c.Selection;this.filterHitsDirty_=!0;this.currentHitIndex_=-1}var c=tv.b.Task;e.prototype={__proto__:Object.prototype,get model(){if(this.timeline_)return this.timeline_.model},get timeline(){return this.timeline_},set timeline(b){this.timeline_=b;this.filterHitsDirty_=!0},get filterText(){return this.filterText_},set filterText(b){b!=this.filterText_&&(this.filterText_=b,this.filterHitsDirty_=
!0)},getFilterPromise_:function(b){if(this.timeline_){var a=Promise.resolve();b=new tv.c.TitleOrCategoryFilter(b);var f=new tv.c.Selection;b=this.timeline.addAllObjectsMatchingFilterToSelectionAsTask(b,f);a=c.RunWhenIdle(b);a.then(function(){this.filterHitsDirty_=!1;this.filterHits_=f;this.timeline.setHighlightAndClearSelection(f)}.bind(this));return a}},clearFindSelections_:function(){this.timeline.setHighlightAndClearSelection(new tv.c.Selection);this.timeline.removeXNavStringMarker()},updateFilterHits:function(){var b=
Promise.resolve();if(!this.filterHitsDirty_)return b;this.filterHits_=new tv.c.Selection;this.currentHitIndex_=-1;var a;try{a=tv.c.UIState.fromUserFriendlyString(this.model,this.timeline.viewport,this.filterText)}catch(c){return a=new tv.b.ui.Overlay,a.textContent=c.message,a.title="UI State Navigation Error",a.visible=!0,b}void 0!==a?this.timeline.navToPosition(a):0===this.filterText.length?this.clearFindSelections_():b=this.getFilterPromise_(this.filterText);return b},get filterHits(){return this.filterHits_},
get currentHitIndex(){return this.currentHitIndex_},find_:function(b){-1===this.currentHitIndex_&&0>b&&(this.currentHitIndex_=0);var a=this.filterHits.length;this.currentHitIndex_=(this.currentHitIndex_+b+a)%a;this.timeline&&(this.timeline.selection=this.filterHits.subSelection(this.currentHitIndex_,1))},findNext:function(){this.find_(1)},findPrevious:function(){this.find_(-1)},reset:function(){this.filterText_="";this.filterHitsDirty_=!0}};return{FindController:e}});"use strict";
tv.exportTo("tv.b",function(){function e(c){this.document_=c||document;if(e.instance)throw Error("KeyEventManager is a singleton.");this.onEvent_=this.onEvent_.bind(this);this.document_.addEventListener("keydown",this.onEvent_);this.document_.addEventListener("keypress",this.onEvent_);this.document_.addEventListener("keyup",this.onEvent_);this.listeners_=[]}e.instance=void 0;document.head.addEventListener("tv-unittest-will-run",function(){e.instance&&(e.instance.destroy(),e.instance=void 0);e.instance=
new e});e.prototype={addListener:function(c,b,a){a.keyEventManagerGuid_||(a.keyEventManagerGuid_=tv.b.GUID.allocate(),a.keyEventManagerRefCount_=0);a.classList.add("key-event-manager-target");a.keyEventManagerRefCount_++;this.listeners_.push({guid:a.keyEventManagerGuid_,type:c,handler:b})},onEvent_:function(c){var b=void 0,a=!1,f=c.preventDefault;c.preventDefault=function(){b=!1;f.call(this)};var d=c.stopPropagation;c.stopPropagation=function(){a=!0;d.call(this)};c.stopImmediatePropagation=function(){throw Error("Not implemented");
};for(var e=this.document_.querySelectorAll(".key-event-manager-target"),g={},k=0;k<e.length;k++)g[e[k].keyEventManagerGuid_]=e[k];for(var e=this.listeners_.concat(),l=c.type,m=0,k=0;k<e.length;k++){var n=e[k];if(n.type===l){var q=g[n.guid];if(q&&(n=n.handler,m=n.handleEvent?m|!1===n.handleEvent.call(n,c):m|!1===n.call(q,c),a))break}}return!m&&b},removeListener:function(c,b,a){if(void 0===a.keyEventManagerGuid_)throw Error("Was not registered with KeyEventManager");if(0===a.keyEventManagerRefCount_)throw Error("No events were registered on the provided thisArg");
for(var f=0;f<this.listeners_.length;f++){var d=this.listeners_[f];if(d.type==c&&d.handler==b&&d.guid==a.keyEventManagerGuid_){a.keyEventManagerRefCount_--;0===a.keyEventManagerRefCount_&&a.classList.remove("key-event-manager-target");this.listeners_.splice(f,1);return}}throw Error("Listener not found");},destroy:function(){this.listeners_.splice(0);this.document_.removeEventListener("keydown",this.onEvent_);this.document_.removeEventListener("keypress",this.onEvent_);this.document_.removeEventListener("keyup",
this.onEvent_)},dispatchFakeEvent:function(c,b){var a=new KeyboardEvent(c,b);return e.instance.onEvent_.call(void 0,a)}};e.instance=new e;return{KeyEventManager:e}});"use strict";
tv.exportTo("tv.b.ui",function(){function e(c){this.onMouseDown_=this.onMouseDown_.bind(this);this.onMouseMove_=this.onMouseMove_.bind(this);this.onMouseUp_=this.onMouseUp_.bind(this);this.targetElement=c}e.prototype={get targetElement(){return this.targetElement_},set targetElement(c){this.targetElement_&&this.targetElement_.removeEventListener("mousedown",this.onMouseDown_);(this.targetElement_=c)&&this.targetElement_.addEventListener("mousedown",this.onMouseDown_)},onMouseDown_:function(c){if(0!==
c.button)return!0;c=this.remakeEvent_(c,"mouse-tracker-start");this.targetElement_.dispatchEvent(c);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";c.preventDefault();return!0},onMouseMove_:function(c){c=this.remakeEvent_(c,"mouse-tracker-move");this.targetElement_.dispatchEvent(c)},
onMouseUp_:function(c){document.removeEventListener("mousemove",this.onMouseMove_);document.removeEventListener("mouseup",this.onMouseUp_);this.targetElement_.removeEventListener("blur",this.onMouseUp_);document.body.style["-webkit-user-select"]=this.savePreviousUserSelect_;c=this.remakeEvent_(c,"mouse-tracker-end");this.targetElement_.dispatchEvent(c)},remakeEvent_:function(c,b){var a=new tv.b.Event(b,!0,!0);a.x=c.x;a.y=c.y;a.offsetX=c.offsetX;a.offsetY=c.offsetY;a.clientX=c.clientX;a.clientY=c.clientY;
return a}};return{MouseTracker:e,trackMouseMovesUntilMouseUp:function(c,b){function a(f){document.removeEventListener("mousemove",c);document.removeEventListener("mouseup",a);b&&b(f)}document.addEventListener("mousemove",c);document.addEventListener("mouseup",a)}}});"use strict";
tv.exportTo("tv.b.ui",function(){var e=document.currentScript.ownerDocument,c={SELECTION:1,PANSCAN:2,ZOOM:4,TIMING:8,ROTATE:16,ALL_MODES:31},b={};b[c.PANSCAN]={title:"pan",className:"pan-scan-mode-button",eventNames:{enter:"enterpan",begin:"beginpan",update:"updatepan",end:"endpan",exit:"exitpan"}};b[c.SELECTION]={title:"selection",className:"selection-mode-button",eventNames:{enter:"enterselection",begin:"beginselection",update:"updateselection",end:"endselection",exit:"exitselection"}};b[c.ZOOM]=
{title:"zoom",className:"zoom-mode-button",eventNames:{enter:"enterzoom",begin:"beginzoom",update:"updatezoom",end:"endzoom",exit:"exitzoom"}};b[c.TIMING]={title:"timing",className:"timing-mode-button",eventNames:{enter:"entertiming",begin:"begintiming",update:"updatetiming",end:"endtiming",exit:"exittiming"}};b[c.ROTATE]={title:"rotate",className:"rotate-mode-button",eventNames:{enter:"enterrotate",begin:"beginrotate",update:"updaterotate",end:"endrotate",exit:"exitrotate"}};var a={SHIFT:1,SPACE:2,
CMD_OR_CTRL:4},f=tv.b.ui.define("div");f.prototype={__proto__:HTMLDivElement.prototype,decorate:function(a){this.classList.add("mouse-mode-selector");var b=tv.b.instantiateTemplate("#mouse-mode-selector-template",e);this.appendChild(b);this.buttonsEl_=this.querySelector(".buttons");this.dragHandleEl_=this.querySelector(".drag-handle");this.supportedModeMask=c.ALL_MODES;this.initialRelativeMouseDownPos_={x:0,y:0};this.defaultMode_=c.PANSCAN;this.settingsKey_=void 0;this.mousePos_={x:0,y:0};this.mouseDownPos_=
{x:0,y:0};this.dragHandleEl_.addEventListener("mousedown",this.onDragHandleMouseDown_.bind(this));this.onMouseDown_=this.onMouseDown_.bind(this);this.onMouseMove_=this.onMouseMove_.bind(this);this.onMouseUp_=this.onMouseUp_.bind(this);this.buttonsEl_.addEventListener("mouseup",this.onButtonMouseUp_);this.buttonsEl_.addEventListener("mousedown",this.onButtonMouseDown_);this.buttonsEl_.addEventListener("click",this.onButtonPress_.bind(this));tv.b.KeyEventManager.instance.addListener("keydown",this.onKeyDown_,
this);tv.b.KeyEventManager.instance.addListener("keyup",this.onKeyUp_,this);this.mode_=this.keyCodeCondition=void 0;this.modeToKeyCodeMap_={};this.modifierToModeMap_={};this.targetElement=a;this.spacePressed_=!1;this.modeBeforeAlternativeModeActivated_=null;this.isClick_=this.isInteracting_=!1},get targetElement(){return this.targetElement_},set targetElement(a){this.targetElement_&&this.targetElement_.removeEventListener("mousedown",this.onMouseDown_);(this.targetElement_=a)&&this.targetElement_.addEventListener("mousedown",
this.onMouseDown_)},get defaultMode(){return this.defaultMode_},set defaultMode(a){this.defaultMode_=a},get settingsKey(){return this.settingsKey_},set settingsKey(a){if(this.settingsKey_=a)if(a=tv.b.Settings.get(this.settingsKey_+".mode",void 0),void 0===b[a]&&(a=void 0),0===(a&this.supportedModeMask_)&&(a=void 0),a||(a=this.defaultMode_),this.mode=a,a=tv.b.Settings.get(this.settingsKey_+".pos",void 0))this.pos=a},get supportedModeMask(){return this.supportedModeMask_},set supportedModeMask(a){function f(a){var d=
document.createElement("div");d.mode=a;d.title=b[a].title;d.classList.add("tool-button");d.classList.add(b[a].className);return d}if(this.mode&&0===(a&this.mode))throw Error("supportedModeMask must include current mode.");this.supportedModeMask_=a;this.buttonsEl_.textContent="";for(var e in c)"ALL_MODES"!=e&&(a=c[e],0!==(this.supportedModeMask_&a)&&this.buttonsEl_.appendChild(f(a)))},get mode(){return this.currentMode_},set mode(a){if(void 0!==a){if("number"!==typeof a)throw Error("Mode must be a number");
if(0===(a&this.supportedModeMask_))throw Error("Cannot switch to this mode, it is not supported");if(void 0===b[a])throw Error("Unrecognized mode");}var c;if(this.currentMode_!==a){if(this.currentMode_){c=b[this.currentMode_];var f=this.buttonsEl_.querySelector("."+c.className);f&&f.classList.remove("active");this.isInteracting_&&(f=this.createEvent_(b[this.mode].eventNames.end),this.dispatchEvent(f));tv.b.dispatchSimpleEvent(this,c.eventNames.exit,!0)}if(this.currentMode_=a)c=b[this.currentMode_],
(f=this.buttonsEl_.querySelector("."+c.className))&&f.classList.add("active"),this.mouseDownPos_.x=this.mousePos_.x,this.mouseDownPos_.y=this.mousePos_.y,this.isInAlternativeMode_||tv.b.dispatchSimpleEvent(this,c.eventNames.enter,!0),this.isInteracting_&&(f=this.createEvent_(b[this.mode].eventNames.begin),this.dispatchEvent(f));this.settingsKey_&&!this.isInAlternativeMode_&&tv.b.Settings.set(this.settingsKey_+".mode",this.mode)}},setKeyCodeForMode:function(a,c){if(0===(a&this.supportedModeMask_))throw Error("Mode not supported");
this.modeToKeyCodeMap_[a]=c;if(this.buttonsEl_){var f=b[a],e=this.buttonsEl_.querySelector("."+f.className);e&&(e.title=f.title+" ("+String.fromCharCode(c)+")")}},setKeyCodeCondition:function(a){this.keyCodeCondition=a},setCurrentMousePosFromEvent_:function(a){this.mousePos_.x=a.clientX;this.mousePos_.y=a.clientY},createEvent_:function(a,b){var c=new tv.b.Event(a,!0);c.clientX=this.mousePos_.x;c.clientY=this.mousePos_.y;c.deltaX=this.mousePos_.x-this.mouseDownPos_.x;c.deltaY=this.mousePos_.y-this.mouseDownPos_.y;
c.mouseDownX=this.mouseDownPos_.x;c.mouseDownY=this.mouseDownPos_.y;c.didPreventDefault=!1;c.preventDefault=function(){c.didPreventDefault=!0;b&&b.preventDefault()};c.stopPropagation=function(){b.stopPropagation()};c.stopImmediatePropagation=function(){throw Error("Not implemented");};return c},onMouseDown_:function(a){0===a.button&&(this.setCurrentMousePosFromEvent_(a),a=this.createEvent_(b[this.mode].eventNames.begin,a),this.dispatchEvent(a),this.isClick_=this.isInteracting_=!0,tv.b.ui.trackMouseMovesUntilMouseUp(this.onMouseMove_,
this.onMouseUp_))},onMouseMove_:function(a){this.setCurrentMousePosFromEvent_(a);var c=this.createEvent_(b[this.mode].eventNames.update,a);this.dispatchEvent(c);this.isInteracting_&&this.checkIsClick_(a)},onMouseUp_:function(a){if(0===a.button){var c=this.createEvent_(b[this.mode].eventNames.end,a);c.isClick=this.isClick_;this.dispatchEvent(c);this.isClick_&&!c.didPreventDefault&&this.dispatchClickEvents_(a);this.isInteracting_=!1;this.updateAlternativeModeState_(a)}},onButtonMouseDown_:function(a){a.preventDefault();
a.stopImmediatePropagation()},onButtonMouseUp_:function(a){a.preventDefault();a.stopImmediatePropagation()},onButtonPress_:function(a){this.modeBeforeAlternativeModeActivated_=void 0;this.mode=a.target.mode;a.preventDefault()},onKeyDown_:function(a){32===a.keyCode&&(this.spacePressed_=!0);this.updateAlternativeModeState_(a)},onKeyUp_:function(a){32===a.keyCode&&(this.spacePressed_=!1);if(void 0==this.keyCodeCondition||this.keyCodeCondition()){var b=!1;tv.b.iterItems(this.modeToKeyCodeMap_,function(c,
f){a.keyCode===f&&(this.modeBeforeAlternativeModeActivated_=void 0,this.mode=parseInt(c),b=!0)},this);b?(a.preventDefault(),a.stopPropagation()):this.updateAlternativeModeState_(a)}},updateAlternativeModeState_:function(b){var c=this.spacePressed_,f=tv.isMac&&b.metaKey||!tv.isMac&&b.ctrlKey,e=this.supportedModeMask_,l=!1;b.shiftKey&&0!==(this.modifierToModeMap_[a.SHIFT]&e)?(b=this.modifierToModeMap_[a.SHIFT],l=!0):c&&0!==(this.modifierToModeMap_[a.SPACE]&e)?(b=this.modifierToModeMap_[a.SPACE],l=!0):
f&&0!==(this.modifierToModeMap_[a.CMD_OR_CTRL]&e)?(b=this.modifierToModeMap_[a.CMD_OR_CTRL],l=!0):this.isInAlternativeMode_?(b=this.modeBeforeAlternativeModeActivated_,l=!1):b=void 0;this.mode===b||void 0===b||(l&&(this.modeBeforeAlternativeModeActivated_=this.mode),this.mode=b)},get isInAlternativeMode_(){return!!this.modeBeforeAlternativeModeActivated_},setModifierForAlternateMode:function(a,b){this.modifierToModeMap_[b]=a},get pos(){return{x:parseInt(this.style.left),y:parseInt(this.style.top)}},
set pos(a){a=this.constrainPositionToBounds_(a);this.style.left=a.x+"px";this.style.top=a.y+"px";this.settingsKey_&&tv.b.Settings.set(this.settingsKey_+".pos",this.pos)},constrainPositionToBounds_:function(a){var b=tv.b.windowRectForElement(this.offsetParent||document.body),c=b.height-this.offsetHeight,b=b.width-this.offsetWidth,f={};f.x=Math.max(a.x,0);f.x=Math.min(f.x,b);f.y=Math.max(a.y,0);f.y=Math.min(f.y,c);return f},onDragHandleMouseDown_:function(a){a.preventDefault();a.stopImmediatePropagation();
var b=a.clientX-this.offsetLeft,c=a.clientY-this.offsetTop;tv.b.ui.trackMouseMovesUntilMouseUp(function(a){var d={};d.x=a.clientX-b;d.y=a.clientY-c;this.pos=d}.bind(this))},checkIsClick_:function(a){if(this.isInteracting_&&this.isClick_){a=this.mousePos_.x-this.mouseDownPos_.x;var b=this.mousePos_.y-this.mouseDownPos_.y;16<a*a+b*b&&(this.isClick_=!1)}},dispatchClickEvents_:function(a){if(this.isClick_){a=b[c.SELECTION].eventNames;var f=this.createEvent_(a.begin);this.dispatchEvent(f);f=this.createEvent_(a.end);
this.dispatchEvent(f)}}};return{MIN_MOUSE_SELECTION_DISTANCE:4,MouseModeSelector:f,MOUSE_SELECTOR_MODE:c,MODIFIER:a}});"use strict";
tv.exportTo("tv.c",function(){var e=tv.b.ui.getRawColorPalette(),c=tv.b.ui.getColorPalette(),b=tv.c.trace_model.SelectionState;return{EventPresenter:{getAlpha_:function(a){return a.selectionState===b.DIMMED?0.3:1},getColorIdOffset_:function(a){return a.selectionState===b.SELECTED?tv.b.ui.paletteProperties.highlightIdBoost:0},getTextColor:function(a){return a.selectionState===b.DIMMED?"rgb(60,60,60)":"rgb(0,0,0)"},getSliceColorId:function(a){return a.colorId+this.getColorIdOffset_(a)},getSliceAlpha:function(a,
b){var d=this.getAlpha_(a);b&&(d*=0.3);return d},getInstantSliceColor:function(a){var b=a.colorId+this.getColorIdOffset_(a);return tv.b.ui.colorToRGBAString(e[b],this.getAlpha_(a))},getObjectInstanceColor:function(a){a=a.colorId+this.getColorIdOffset_(a);return tv.b.ui.colorToRGBAString(e[a],0.25)},getObjectSnapshotColor:function(a){a=a.objectInstance.colorId+this.getColorIdOffset_(a);return c[a]},getCounterSeriesColor:function(a,b,d){b={selectionState:b};return tv.b.ui.colorToRGBAString(e[a+this.getColorIdOffset_(b)],
this.getAlpha_(b)*(void 0!==d?d:1))},getBarSnapshotColor:function(a,b){var d=(a.objectInstance.colorId+b)%tv.b.ui.paletteProperties.numGeneralPurposeColorIds,d=d+this.getColorIdOffset_(a);return tv.b.ui.colorToRGBAString(e[d],this.getAlpha_(a))}}}});"use strict";
tv.exportTo("tv.c",function(){function e(){this.textWidthMap={}}function c(a,b){this.string=a;this.width=b}var b={};new e;e.prototype={get:function(a,f,d,e,g){var k=b[d];k||(k={},b[d]=k);e=k[f];e||(k[f]={},e=k[f]);k=e[g];if(void 0===k){for(k=!1;this.labelWidthWorld(a,d,f)>g&&!(1>0.75*d.length);)d=d.substring(0,0.75*d.length),k=!0;k&&3<d.length&&(d=d.substring(0,d.length-3)+"...");k=new c(d,this.labelWidth(a,d));e[g]=k}return k},quickMeasureText_:function(a,b){var d=this.textWidthMap[b];d||(d=a.measureText(b).width,
this.textWidthMap[b]=d);return d},labelWidth:function(a,b){return this.quickMeasureText_(a,b)+2},labelWidthWorld:function(a,b,d){return this.labelWidth(a,b)*d}};return{ElidedTitleCache:e}});"use strict";
tv.exportTo("tv.c",function(){function e(a,b,c,f,e){a.moveTo(b,c);a.lineTo(f,e)}function c(a,b,c,f,e,m,n){a.beginPath();a.moveTo(b,c);a.lineTo(f,e);a.lineTo(m,n);a.closePath()}var b=new tv.c.ElidedTitleCache,a=tv.b.ui.getColorPalette(),f=tv.c.EventPresenter;return{drawSlices:function(b,c,g,k,l,m,n){var q=window.devicePixelRatio||1,w=c.xViewVectorToWorld(1);l*=q;q*=4;l<q&&(q=0);var s=l-q;b.save();c.applyTransformToCanvas(b);c=new tv.c.FastRectRenderer(b,2*w,2*w,a);c.setYandH(0,l);for(g=tv.b.findLowIndexInSortedArray(m,
function(a){return a.start+a.duration},g);g<m.length;++g){var D=m[g],F=D.start;if(F>k)break;var C=w;0<D.duration&&(C=Math.max(D.duration,0.001),C<w&&(C=w));var v=f.getSliceColorId(D),y=f.getSliceAlpha(D,n),B=0.7*y;D.isTopLevel&&(b.beginPath(),e(b,F,2,C+F,2),b.lineWidth=2,b.stroke(),c.setYandH(3,l-3));if(D.cpuDuration){var D=C*(D.cpuDuration/D.duration),H=C-D;D<1*w&&(D=0,H=C);H<3*w&&(D=C,H=0);0<D&&c.fillRect(F,D,v,y);0<H&&(c.setYandH(0,s),c.fillRect(F+D-w,H+w,v,B),c.setYandH(s,q),c.fillRect(F+D-w,
H+w,v,y),c.setYandH(0,l))}else c.fillRect(F,C,v,y)}c.flush();b.restore()},drawInstantSlicesAsLines:function(a,b,c,e,l,m,n){var q=window.devicePixelRatio||1;l*=q;var w=b.xViewVectorToWorld(1);a.save();a.lineWidth=w*n*q;b.applyTransformToCanvas(a);a.beginPath();for(b=tv.b.findLowIndexInSortedArray(m,function(a){return a.start},c);b<m.length;++b){c=m[b];n=c.start;if(n>e)break;a.strokeStyle=f.getInstantSliceColor(c);a.beginPath();a.moveTo(n,0);a.lineTo(n,l);a.stroke()}a.restore()},drawLabels:function(a,
c,e,k,l,m,n,q){var w=window.devicePixelRatio||1,s=c.xViewVectorToWorld(1);a.save();a.textAlign="center";a.textBaseline="top";a.font=n*w+"px sans-serif";m&&(a.font="italic "+a.font);m=q*w;n=tv.b.findLowIndexInSortedArray(l,function(a){return a.start+a.duration},e);for(e=20*s;n<l.length;++n){w=l[n];if(w.start>k)break;if(!(w.duration<=e)){q=w.title+(w.didNotFinish?" (Did Not Finish)":"");var D=b.labelWidth(a,q);b.labelWidthWorld(a,q,s)>w.duration&&(D=b.get(a,s,q,D,w.duration),q=D.string,D=D.width);D*
s<w.duration&&(a.fillStyle=f.getTextColor(w),w=c.xWorldToView(w.start+0.5*w.duration),a.fillText(q,w,m,D))}}a.restore()},drawLine:e,drawTriangle:c,drawArrow:function(a,b,f,k,l,m,n){var q=k-b,w=l-f,s=Math.sqrt(q*q+w*w),D=(s-m)/s;m=b+D*q;D=f+D*w;w=w/s*n;n*=-(q/s);a.beginPath();e(a,b,f,k,l);a.stroke();c(a,m+w,D+n,k,l,m-w,D-n);a.fill()},elidedTitleCache_:b,THIN_SLICE_HEIGHT:4}});"use strict";
tv.exportTo("tv.c",function(){function e(c){this.viewport_=c;this.range_=new tv.b.Range;this.rightSelected_=this.leftSelected_=!1;this.rightSnapIndicator_=this.leftSnapIndicator_=void 0}e.prototype={get isEmpty(){return this.range_.isEmpty},reset:function(){this.range_.reset();this.rightSelected_=this.leftSelected_=!1;this.rightSnapIndicator_=this.leftSnapIndicator_=void 0;this.viewport_.dispatchChangeEvent()},get min(){return this.range_.min},set min(c){this.range_.min=c;this.viewport_.dispatchChangeEvent()},
get max(){return this.range_.max},set max(c){this.range_.max=c;this.viewport_.dispatchChangeEvent()},set:function(c){this.range_.reset();this.range_.addRange(c);this.viewport_.dispatchChangeEvent()},setMinAndMax:function(c,b){this.range_.min=c;this.range_.max=b;this.viewport_.dispatchChangeEvent()},get range(){return this.range_.range},asRangeObject:function(){var c=new tv.b.Range;c.addRange(this.range_);return c},get leftSelected(){return this.leftSelected_},set leftSelected(c){this.leftSelected_!=
c&&(this.leftSelected_=c,this.viewport_.dispatchChangeEvent())},get rightSelected(){return this.rightSelected_},set rightSelected(c){this.rightSelected_!=c&&(this.rightSelected_=c,this.viewport_.dispatchChangeEvent())},get leftSnapIndicator(){return this.leftSnapIndicator_},set leftSnapIndicator(c){this.leftSnapIndicator_=c;this.viewport_.dispatchChangeEvent()},get rightSnapIndicator(){return this.rightSnapIndicator_},set rightSnapIndicator(c){this.rightSnapIndicator_=c;this.viewport_.dispatchChangeEvent()},
draw:function(c,b,a){if(!this.range_.isEmpty){var f=this.viewport_.currentDisplayTransform,d=this.min,e=this.max,g=Math.round(f.xWorldToView(d)),k=Math.round(f.xWorldToView(e));c.fillStyle="rgba(0, 0, 0, 0.2)";d>b&&c.fillRect(f.xWorldToView(b),0,g,c.canvas.height);e<a&&c.fillRect(k,0,f.xWorldToView(a),c.canvas.height);c.lineWidth=Math.round(window.devicePixelRatio||1);0<this.range_.range?(this.drawLine_(c,b,a,c.canvas.height,this.min,this.leftSelected_),this.drawLine_(c,b,a,c.canvas.height,this.max,
this.rightSelected_)):this.drawLine_(c,b,a,c.canvas.height,this.min,this.leftSelected_||this.rightSelected_);c.lineWidth=1}},drawLine_:function(c,b,a,f,d,e){d<b||d>=a||(b=Math.round(this.viewport_.currentDisplayTransform.xWorldToView(d)),c.save(),c.translate(Math.round(c.lineWidth)%2/2,0),c.beginPath(),tv.c.drawLine(c,b,0,b,f),c.strokeStyle=e?"rgb(255, 0, 0)":"rgb(0, 0, 0)",c.stroke(),c.restore())},drawIndicators:function(c,b,a){this.leftSnapIndicator_&&this.drawIndicator_(c,b,a,this.range_.min,this.leftSnapIndicator_,
this.leftSelected_);this.rightSnapIndicator_&&this.drawIndicator_(c,b,a,this.range_.max,this.rightSnapIndicator_,this.rightSelected_)},drawIndicator_:function(c,b,a,f,d,e){b=Math.round(this.viewport_.currentDisplayTransform.xWorldToView(f));c.save();c.translate(Math.round(c.lineWidth)%2/2,0);a=d.y*devicePixelRatio;d=d.height*devicePixelRatio;f=4*(window.devicePixelRatio||1);c.fillStyle=e?"rgb(255, 0, 0)":"rgb(0, 0, 0)";tv.c.drawTriangle(c,b-0.75*f,a,b+0.75*f,a,b,a+f);c.fill();tv.c.drawTriangle(c,
b-0.75*f,a+d,b+0.75*f,a+d,b,a+d-f);c.fill();c.restore()}};return{SnapIndicator:function(c,b){this.y=c;this.height=b},TimelineInterestRange:e}});"use strict";
tv.exportTo("tv.c",function(){function e(c){c?this.set(c):(this.scaleX=1,this.panY=this.panX=0)}e.prototype={set:function(c){this.scaleX=c.scaleX;this.panX=c.panX;this.panY=c.panY},clone:function(){return new e(this)},equals:function(c){var b;if(void 0===c||null===c)return!1;b=1&this.panX===c.panX;b&=this.panY===c.panY;b&=this.scaleX===c.scaleX;return!!b},almostEquals:function(c){var b;if(void 0===c||null===c)return!1;b=1&0.001>Math.abs(this.panX-c.panX);b&=0.001>Math.abs(this.panY-c.panY);b&=0.001>
Math.abs(this.scaleX-c.scaleX);return!!b},incrementPanXInViewUnits:function(c){this.panX+=this.xViewVectorToWorld(c)},xPanWorldPosToViewPos:function(c,b,a){if("string"==typeof b)if("left"===b)b=0;else if("center"===b)b=a/2;else if("right"===b)b=a-1;else throw Error("viewX must be left|center|right or number.");this.panX=b/this.scaleX-c},xPanWorldBoundsIntoView:function(c,b,a){0>this.xWorldToView(c)?this.xPanWorldPosToViewPos(c,"left",a):this.xWorldToView(b)>a&&this.xPanWorldPosToViewPos(b,"right",
a)},xSetWorldBounds:function(c,b,a){this.setPanAndScale(-c,a/(b-c))},setPanAndScale:function(c,b){this.scaleX=b;this.panX=c},xWorldToView:function(c){return(c+this.panX)*this.scaleX},xWorldVectorToView:function(c){return c*this.scaleX},xViewToWorld:function(c){return c/this.scaleX-this.panX},xViewVectorToWorld:function(c){return c/this.scaleX},applyTransformToCanvas:function(c){c.transform(this.scaleX,0,0,1,this.panX*this.scaleX,0)}};return{TimelineDisplayTransform:e}});"use strict";
tv.exportTo("tv.b.ui",function(){function e(){}e.prototype={canTakeOverFor:function(c){throw Error("Not implemented");},takeOverFor:function(c,b,a){throw Error("Not implemented");},start:function(c,b){throw Error("Not implemented");},didStopEarly:function(c,b,a){},tick:function(c,b){throw Error("Not implemented");}};return{Animation:e}});"use strict";
tv.exportTo("tv.b.ui",function(){function e(){tv.b.EventTarget.call(this);this.activeAnimation_=this.target_=void 0;this.tickScheduled_=!1}e.prototype={__proto__:tv.b.EventTarget.prototype,get target(){return this.target_},set target(c){if(this.activeAnimation_)throw Error("Cannot change target while animation is running.");if(void 0===c.cloneAnimationState||"function"!==typeof c.cloneAnimationState)throw Error("target must have a cloneAnimationState function");this.target_=c},get activeAnimation(){return this.activeAnimation_},
get hasActiveAnimation(){return!!this.activeAnimation_},queueAnimation:function(c,b){if(void 0===this.target_)throw Error("Cannot queue animations without a target");var a;a=void 0!==b?b:window.performance.now();this.activeAnimation_&&this.activeAnimation_.tick(a,this.target_)&&(this.activeAnimation_=void 0);this.activeAnimation_&&(c.canTakeOverFor(this.activeAnimation_)?(this.activeAnimation_.didStopEarly(a,this.target_,!0),c.takeOverFor(this.activeAnimation_,a,this.target_)):this.activeAnimation_.didStopEarly(a,
this.target_,!1));this.activeAnimation_=c;this.activeAnimation_.start(a,this.target_);this.tickScheduled_||(this.tickScheduled_=!0,tv.b.requestAnimationFrame(this.tickActiveAnimation_,this))},cancelActiveAnimation:function(c){this.activeAnimation_&&(c=void 0!==c?c:window.performance.now(),this.activeAnimation_.didStopEarly(c,this.target_,!1),this.activeAnimation_=void 0)},tickActiveAnimation_:function(c){this.tickScheduled_=!1;if(this.activeAnimation_)if(void 0===this.target_)this.activeAnimation_.didStopEarly(c,
this.target_,!1);else{var b=this.target_.cloneAnimationState();this.activeAnimation_.tick(c,this.target_)&&(this.activeAnimation_=void 0);this.activeAnimation_&&(this.tickScheduled_=!0,tv.b.requestAnimationFrame(this.tickActiveAnimation_,this));b&&(c=new Event("didtick"),c.oldTargetState=b,this.dispatchEvent(c,!1,!1))}}};return{AnimationController:e}});"use strict";
tv.exportTo("tv.c",function(){function e(){this.stableIdToTrackMap_={}}function c(c){this.parentEl_=c;this.modelTrackContainer_=void 0;this.currentDisplayTransform_=new b;this.initAnimationController_();this.highDetails_=this.highlightVSync_=this.showFlowEvents_=!1;this.gridTimebase_=0;this.gridStep_=1E3/60;this.hasCalledSetupFunction_=this.gridEnabled_=!1;this.onResize_=this.onResize_.bind(this);this.onModelTrackControllerScroll_=this.onModelTrackControllerScroll_.bind(this);this.checkForAttachInterval_=
setInterval(this.checkForAttach_.bind(this),250);this.majorMarkPositions=[];this.interestRange_=new a(this);this.eventToTrackMap_={};this.containerToTrackObj=new e}var b=tv.c.TimelineDisplayTransform,a=tv.c.TimelineInterestRange;e.prototype={addContainer:function(a,b){if(!b)throw Error("Must provide a track.");this.stableIdToTrackMap_[a.stableId]=b},clearMap:function(){this.stableIdToTrackMap_={}},getTrackByStableId:function(a){return this.stableIdToTrackMap_[a]}};c.prototype={__proto__:tv.b.EventTarget.prototype,
setWhenPossible:function(a){this.pendingSetFunction_=a},get isAttachedToDocumentOrInTestMode(){if(void 0!==this.parentEl_)return tv.b.ui.isElementAttachedToDocument(this.parentEl_)},onResize_:function(){this.dispatchChangeEvent()},checkForAttach_:function(){if(this.isAttachedToDocumentOrInTestMode&&0!=this.clientWidth){this.iframe_||(this.iframe_=document.createElement("iframe"),this.iframe_.style.cssText="position:absolute;width:100%;height:0;border:0;visibility:hidden;",this.parentEl_.appendChild(this.iframe_),
this.iframe_.contentWindow.addEventListener("resize",this.onResize_));var a=this.parentEl_.clientWidth+"x"+this.parentEl_.clientHeight;if(this.pendingSetFunction_){this.lastSize_=a;try{this.pendingSetFunction_()}catch(b){console.log("While running setWhenPossible:",b.message?b.message+"\n"+b.stack:b.stack)}this.pendingSetFunction_=void 0}window.clearInterval(this.checkForAttachInterval_);this.checkForAttachInterval_=void 0}},dispatchChangeEvent:function(){tv.b.dispatchSimpleEvent(this,"change")},
detach:function(){this.checkForAttachInterval_&&(window.clearInterval(this.checkForAttachInterval_),this.checkForAttachInterval_=void 0);this.iframe_&&(this.iframe_.removeEventListener("resize",this.onResize_),this.parentEl_.removeChild(this.iframe_))},initAnimationController_:function(){this.dtAnimationController_=new tv.b.ui.AnimationController;this.dtAnimationController_.addEventListener("didtick",function(a){this.onCurentDisplayTransformChange_(a.oldTargetState)}.bind(this));var a=this;this.dtAnimationController_.target=
{get panX(){return a.currentDisplayTransform_.panX},set panX(b){a.currentDisplayTransform_.panX=b},get panY(){return a.currentDisplayTransform_.panY},set panY(b){a.currentDisplayTransform_.panY=b},get scaleX(){return a.currentDisplayTransform_.scaleX},set scaleX(b){a.currentDisplayTransform_.scaleX=b},cloneAnimationState:function(){return a.currentDisplayTransform_.clone()},xPanWorldPosToViewPos:function(b,c){a.currentDisplayTransform_.xPanWorldPosToViewPos(b,c,a.modelTrackContainer_.canvas.clientWidth)}}},
get currentDisplayTransform(){return this.currentDisplayTransform_},setDisplayTransformImmediately:function(a){this.dtAnimationController_.cancelActiveAnimation();var b=this.dtAnimationController_.target.cloneAnimationState();this.currentDisplayTransform_.set(a);this.onCurentDisplayTransformChange_(b)},queueDisplayTransformAnimation:function(a){if(!(a instanceof tv.b.ui.Animation))throw Error("animation must be instanceof tv.b.ui.Animation");this.dtAnimationController_.queueAnimation(a)},onCurentDisplayTransformChange_:function(a){this.modelTrackContainer_&&
(this.currentDisplayTransform.panY=tv.b.clamp(this.currentDisplayTransform.panY,0,this.modelTrackContainer_.scrollHeight-this.modelTrackContainer_.clientHeight));var b=!this.currentDisplayTransform.equals(a);this.currentDisplayTransform.panY!==a.panY&&(this.modelTrackContainer_.scrollTop=this.currentDisplayTransform.panY);b&&this.dispatchChangeEvent()},onModelTrackControllerScroll_:function(a){this.dtAnimationController_.activeAnimation&&this.dtAnimationController_.activeAnimation.affectsPanY&&this.dtAnimationController_.cancelActiveAnimation();
this.currentDisplayTransform_.panY=this.modelTrackContainer_.scrollTop},get modelTrackContainer(){return this.modelTrackContainer_},set modelTrackContainer(a){this.modelTrackContainer_&&this.modelTrackContainer_.removeEventListener("scroll",this.onModelTrackControllerScroll_);this.modelTrackContainer_=a;this.modelTrackContainer_.addEventListener("scroll",this.onModelTrackControllerScroll_)},get showFlowEvents(){return this.showFlowEvents_},set showFlowEvents(a){this.showFlowEvents_=a;this.dispatchChangeEvent()},
get highlightVSync(){return this.highlightVSync_},set highlightVSync(a){this.highlightVSync_=a;this.dispatchChangeEvent()},get highDetails(){return this.highDetails_},set highDetails(a){this.highDetails_=a;this.dispatchChangeEvent()},get gridEnabled(){return this.gridEnabled_},set gridEnabled(a){this.gridEnabled_!=a&&(this.gridEnabled_=a&&!0,this.dispatchChangeEvent())},get gridTimebase(){return this.gridTimebase_},set gridTimebase(a){this.gridTimebase_!=a&&(this.gridTimebase_=a,this.dispatchChangeEvent())},
get gridStep(){return this.gridStep_},get interestRange(){return this.interestRange_},drawMajorMarkLines:function(a){a.save();a.translate(Math.round(a.lineWidth)%2/2,0);a.beginPath();for(var b in this.majorMarkPositions){var c=Math.floor(this.majorMarkPositions[b]);tv.c.drawLine(a,c,0,c,a.canvas.height)}a.strokeStyle="#ddd";a.stroke();a.restore()},drawGridLines:function(a,b,c){if(this.gridEnabled){var e=this.currentDisplayTransform,k=this.gridTimebase;a.save();a.translate(Math.round(a.lineWidth)%
2/2,0);for(a.beginPath();k<c;){if(k>=b){var l=Math.floor(e.xWorldToView(k));tv.c.drawLine(a,l,0,l,a.canvas.height)}k+=this.gridStep}a.strokeStyle="rgba(255, 0, 0, 0.25)";a.stroke();a.restore()}},rebuildEventToTrackMap:function(){this.eventToTrackMap_=void 0;var a={addEvent:function(a,b){if(!b)throw Error("Must provide a track.");this[a.guid]=b}};this.modelTrackContainer_.addEventsToTrackMap(a);this.eventToTrackMap_=a},rebuildContainerToTrackMap:function(){this.containerToTrackObj.clearMap();this.modelTrackContainer_.addContainersToTrackMap(this.containerToTrackObj)},
trackForEvent:function(a){return this.eventToTrackMap_[a.guid]}};return{ContainerToTrackObj:e,TimelineViewport:c}});"use strict";
tv.exportTo("tv.c",function(){function e(a,c,d){this.deltaX=a;this.deltaY=c;this.durationMs=void 0===d?b:d;this.startTimeMs=this.startPanY=this.startPanX=void 0}function c(a,c,d,e,g){this.goalFocalPointXWorld=a;this.goalFocalPointXView=c;this.goalFocalPointY=d;this.zoomInRatioX=e;this.durationMs=void 0===g?b:g;this.startPanY=this.goalScaleX=this.startScaleX=this.startTimeMs=void 0}var b=100;e.prototype={__proto__:tv.b.ui.Animation.prototype,get affectsPanY(){return 0!==this.deltaY},canTakeOverFor:function(a){return a instanceof
e},takeOverFor:function(a,b,d){var c=a.goalPanX-d.panX;d=a.goalPanY-d.panY;a=b-(a.startTimeMs+a.durationMs);a=Math.max(a,0);this.deltaX+=c;this.deltaY+=d;this.durationMs+=a},start:function(a,b){this.startTimeMs=a;this.startPanX=b.panX;this.startPanY=b.panY},tick:function(a,b){var d=(a-this.startTimeMs)/this.durationMs,d=tv.b.clamp(d,0,1);b.panX=tv.b.lerp(d,this.startPanX,this.goalPanX);this.affectsPanY&&(b.panY=tv.b.lerp(d,this.startPanY,this.goalPanY));return a>=this.startTimeMs+this.durationMs},
get goalPanX(){return this.startPanX+this.deltaX},get goalPanY(){return this.startPanY+this.deltaY}};c.prototype={__proto__:tv.b.ui.Animation.prototype,get affectsPanY(){return this.startPanY!=this.goalFocalPointY},canTakeOverFor:function(a){return!1},takeOverFor:function(a,b,d){this.goalScaleX=d.scaleX*this.zoomInRatioX},start:function(a,b){this.startTimeMs=a;this.startScaleX=b.scaleX;this.goalScaleX=this.zoomInRatioX*b.scaleX;this.startPanY=b.panY},tick:function(a,b){var d=(a-this.startTimeMs)/
this.durationMs,d=tv.b.clamp(d,0,1);b.scaleX=tv.b.lerp(d,this.startScaleX,this.goalScaleX);this.affectsPanY&&(b.panY=tv.b.lerp(d,this.startPanY,this.goalFocalPointY));b.xPanWorldPosToViewPos(this.goalFocalPointXWorld,this.goalFocalPointXView);return a>=this.startTimeMs+this.durationMs}};return{TimelineDisplayTransformPanAnimation:e,TimelineDisplayTransformZoomToAnimation:c}});"use strict";tv.exportTo("tv.c",function(){return{constants:{HEADING_WIDTH:250}}});"use strict";
tv.exportTo("tv.c",function(){function e(c,b){this.viewport_=c;this.onMouseMove_=this.onMouseMove_.bind(this);this.onDblClick_=this.onDblClick_.bind(this);this.targetElement_=b;this.isMovingLeftEdge_=!1}e.prototype={onEnterTiming:function(c){this.targetElement_.addEventListener("mousemove",this.onMouseMove_);this.targetElement_.addEventListener("dblclick",this.onDblClick_)},onBeginTiming:function(c){this.isTouchPointInsideTrackBounds_(c.clientX,c.clientY)&&(c=this.getSnappedToEventPosition_(c),this.mouseDownAt_(c.x,
c.y),this.updateSnapIndicators_(c))},updateSnapIndicators_:function(c){if(c.snapped){var b=this.viewport_.interestRange;b.min===c.x&&(b.leftSnapIndicator=new tv.c.SnapIndicator(c.y,c.height));b.max===c.x&&(b.rightSnapIndicator=new tv.c.SnapIndicator(c.y,c.height))}},onUpdateTiming:function(c){c=this.getSnappedToEventPosition_(c);this.mouseMoveAt_(c.x,c.y,!0);this.updateSnapIndicators_(c)},onEndTiming:function(c){this.mouseUp_()},onExitTiming:function(c){this.targetElement_.removeEventListener("mousemove",
this.onMouseMove_);this.targetElement_.removeEventListener("dblclick",this.onDblClick_)},onMouseMove_:function(c){if(!c.button){var b=this.getWorldXFromEvent_(c);this.mouseMoveAt_(b,c.clientY,!1)}},onDblClick_:function(c){console.error("not implemented")},isTouchPointInsideTrackBounds_:function(c,b){if(!this.viewport_||!this.viewport_.modelTrackContainer||!this.viewport_.modelTrackContainer.canvas)return!1;var a=this.viewport_.modelTrackContainer.canvas.getBoundingClientRect();return c>=a.left&&c<=
a.right&&b>=a.top&&b<=a.bottom?!0:!1},mouseDownAt_:function(c,b){var a=this.viewport_.interestRange,f=this.viewport_.currentDisplayTransform.xViewVectorToWorld(6*(window.devicePixelRatio||1));a.isEmpty?(a.setMinAndMax(c,c),a.rightSelected=!0,this.isMovingLeftEdge_=!1):Math.abs(c-a.min)<f?(a.leftSelected=!0,a.min=c,this.isMovingLeftEdge_=!0):(Math.abs(c-a.max)<f?(a.rightSelected=!0,a.max=c):(a.setMinAndMax(c,c),a.rightSelected=!0),this.isMovingLeftEdge_=!1)},mouseMoveAt_:function(c,b,a){b=this.viewport_.interestRange;
a?this.updateMovingEdge_(c):(b=this.viewport_.interestRange,a=this.viewport_.currentDisplayTransform.xViewVectorToWorld(6*(window.devicePixelRatio||1)),Math.abs(c-b.min)<a?(b.leftSelected=!0,b.rightSelected=!1):Math.abs(c-b.max)<a?(b.leftSelected=!1,b.rightSelected=!0):(b.leftSelected=!1,b.rightSelected=!1))},updateMovingEdge_:function(c){var b=this.viewport_.interestRange,a=b.min,f=b.max;this.isMovingLeftEdge_?a=c:f=c;a<=f?b.setMinAndMax(a,f):b.setMinAndMax(f,a);b.min==c?(this.isMovingLeftEdge_=
!0,b.leftSelected=!0,b.rightSelected=!1):(this.isMovingLeftEdge_=!1,b.leftSelected=!1,b.rightSelected=!0)},mouseUp_:function(){var c=this.viewport_.currentDisplayTransform,b=this.viewport_.interestRange;b.leftSelected=!1;b.rightSelected=!1;c=c.xViewVectorToWorld(2*(window.devicePixelRatio||1));b.range<c&&b.reset()},getWorldXFromEvent_:function(c){var b=window.devicePixelRatio||1,a=this.viewport_.modelTrackContainer.canvas.getBoundingClientRect().left;return this.viewport_.currentDisplayTransform.xViewToWorld((c.clientX-
a)*b)},getSnappedToEventPosition_:function(c){var b=16*(window.devicePixelRatio||1),a=this.viewport_.modelTrackContainer,f=a.getBoundingClientRect(),d=this.viewport_,e=d.currentDisplayTransform,g=e.xViewVectorToWorld(b),b=this.getWorldXFromEvent_(c);c=c.clientY;var k=new tv.c.Selection;a.addClosestEventToSelection(b,g,c,c,k);k.length||a.addClosestEventToSelection(b,g,f.top,f.bottom,k);for(var l=Infinity,e=e.xViewVectorToWorld(1),m={x:b,y:c-f.top,height:0,snapped:!1},n=new tv.b.Range,q=0;q<k.length;q++){var w=
k[q],s=d.trackForEvent(w).getBoundingClientRect();n.reset();w.addBoundsToRange(n);var w=Math.abs(n.min-b)<Math.abs(n.max-b)?n.min:n.max,D=w-b,F=s.top,s=s.height,C=Math.abs(F+s/2-c);if((D<=g||Math.abs(D-g)<e)&&C<l)g=D,l=C,m.x=w,m.y=F+a.scrollTop-f.top,m.height=s,m.snapped=!0}return m}};return{TimingTool:e}});"use strict";
tv.exportTo("tv.c.trace_model",function(){function e(){this.guid_=tv.b.GUID.allocate();this.view_=void 0}e.fromDictIfPossible=function(b){if(void 0===b.typeName)throw Error("Missing typeName argument");var a=e.findTypeInfoMatching(function(a){return a.metadata.typeName===b.typeName});return void 0===a?void 0:a.constructor.fromDict(b)};e.fromDict=function(){throw Error("Not implemented");};e.prototype={get guid(){return this.guid_},toDict:function(){throw Error("Not implemented");},getOrCreateView:function(b){this.view_||
(this.view_=this.createView_(b));return this.view_},createView_:function(){throw Error("Not implemented");}};var c=new tv.b.ExtensionRegistryOptions(tv.b.BASIC_REGISTRY_MODE);c.mandatoryBaseType=e;tv.b.decorateExtensionRegistry(e,c);e.addEventListener("will-register",function(b){if(!b.typeInfo.constructor.hasOwnProperty("fromDict"))throw Error("Must have fromDict method");if(!b.typeInfo.metadata.typeName)throw Error("Registered Annotations must provide typeName");});return{Annotation:e}});"use strict";
tv.exportTo("tv.c.annotations",function(){function e(c,b){}e.prototype={draw:function(c){throw Error("Not implemented");}};return{AnnotationView:e}});"use strict";
tv.exportTo("tv.c.annotations",function(){function e(c,b){this.viewport_=c;this.annotation_=b}e.prototype={__proto__:tv.c.annotations.AnnotationView.prototype,draw:function(c){var b=this.viewport_.currentDisplayTransform.xWorldToView(this.annotation_.timestamp);c.beginPath();tv.c.drawLine(c,b,0,b,c.canvas.height);c.strokeStyle=this.annotation_.strokeStyle;c.stroke()}};return{XMarkerAnnotationView:e}});"use strict";
tv.exportTo("tv.c.trace_model",function(){function e(c){tv.c.trace_model.Annotation.apply(this,arguments);this.timestamp_=c;this.strokeStyle="rgba(0, 0, 255, 0.5)"}e.fromDict=function(c){return new e(c.args.timestamp)};e.prototype={__proto__:tv.c.trace_model.Annotation.prototype,get timestamp(){return this.timestamp_},toDict:function(){return{typeName:"xmarker",args:{timestamp:this.timestamp}}},createView_:function(c){return new tv.c.annotations.XMarkerAnnotationView(c,this)}};tv.c.trace_model.Annotation.register(e,
{typeName:"xmarker"});return{XMarkerAnnotation:e}});"use strict";
tv.exportTo("tv.b.ui",function(){var e=tv.b.ui.define("div");e.prototype={__proto__:HTMLUnknownElement.prototype,decorate:function(){this.observer_=new WebKitMutationObserver(this.didMutate_.bind(this));this.observer_.observe(this,{childList:!0});Object.defineProperty(this,"textContent",{get:void 0,set:this.onSetTextContent_})},appendChild:function(c){HTMLUnknownElement.prototype.appendChild.call(this,c);this.didMutate_(this.observer_.takeRecords())},insertBefore:function(c,b){HTMLUnknownElement.prototype.insertBefore.call(this,
c,b);this.didMutate_(this.observer_.takeRecords())},removeChild:function(c){HTMLUnknownElement.prototype.removeChild.call(this,c);this.didMutate_(this.observer_.takeRecords())},replaceChild:function(c,b){HTMLUnknownElement.prototype.replaceChild.call(this,c,b);this.didMutate_(this.observer_.takeRecords())},onSetTextContent_:function(c){if(""!=c)throw Error("textContent can only be set to ''.");this.clear()},clear:function(){for(;this.lastChild;)HTMLUnknownElement.prototype.removeChild.call(this,this.lastChild);
this.didMutate_(this.observer_.takeRecords())},didMutate_:function(c){this.beginDecorating_();for(var b=0;b<c.length;b++){var a=c[b].addedNodes;if(a)for(var f=0;f<a.length;f++)this.decorateChild_(a[f]);if(a=c[b].removedNodes)for(f=0;f<a.length;f++)this.undecorateChild_(a[f])}this.doneDecoratingForNow_()},decorateChild_:function(c){throw Error("Not implemented");},undecorateChild_:function(c){throw Error("Not implemented");},beginDecorating_:function(){},doneDecoratingForNow_:function(){}};return{ContainerThatDecoratesItsChildren:e}});
"use strict";
tv.exportTo("tv.c.tracks",function(){var e=tv.b.ui.define("track",tv.b.ui.ContainerThatDecoratesItsChildren);e.prototype={__proto__:tv.b.ui.ContainerThatDecoratesItsChildren.prototype,decorate:function(c){tv.b.ui.ContainerThatDecoratesItsChildren.prototype.decorate.call(this);if(void 0===c)throw Error("viewport is required when creating a Track.");this.viewport_=c;this.classList.add("track")},get viewport(){return this.viewport_},get drawingContainer(){for(var c=this;c;){if(c instanceof tv.c.tracks.DrawingContainer)return c;
c=c.parentElement}},get eventContainer(){},invalidateDrawingContainer:function(){var c=this.drawingContainer;c&&c.invalidate()},context:function(){if(this.parentNode){if(!this.parentNode.context)throw Error("Parent container does not support context() method.");return this.parentNode.context()}},decorateChild_:function(c){},undecorateChild_:function(c){c.detach&&c.detach()},updateContents_:function(){},drawTrack:function(c){var b=this.context(),a=window.devicePixelRatio||1,f=this.getBoundingClientRect(),
d=b.canvas.getBoundingClientRect();b.save();b.translate(0,a*(f.top-d.top));var e=this.viewport.currentDisplayTransform,d=e.xViewToWorld(0),a=e.xViewToWorld(f.width*a);this.draw(c,d,a);b.restore()},draw:function(c,b,a){},addEventsToTrackMap:function(c){},addContainersToTrackMap:function(c){},addIntersectingItemsInRangeToSelection:function(c,b,a,f,d){var e=window.devicePixelRatio||1,g=this.viewport.currentDisplayTransform,k=g.xViewVectorToWorld(1);c=g.xViewToWorld(c*e);b=g.xViewToWorld(b*e);e=this.getBoundingClientRect();
a=Math.max(a,e.top);f=Math.min(f,e.bottom);a>f||this.addIntersectingItemsInRangeToSelectionInWorldSpace(c,b,k,d)},addIntersectingItemsInRangeToSelectionInWorldSpace:function(c,b,a,f){},addClosestEventToSelection:function(c,b,a,f,d){},addClosestInstantEventToSelection:function(c,b,a,f){(c=tv.b.findClosestElementInSortedArray(c,function(a){return a.start},b,a))&&f.push(c)}};return{Track:e}});"use strict";
tv.exportTo("tv.c.tracks",function(){var e={SLICE:1,INSTANT_EVENT:2,BACKGROUND:3,GRID:4,FLOW_ARROWS:5,MARKERS:6,HIGHLIGHTS:7,ANNOTATIONS:8},c=tv.b.ui.define("drawing-container",tv.c.tracks.Track);c.prototype={__proto__:tv.c.tracks.Track.prototype,decorate:function(b){tv.c.tracks.Track.prototype.decorate.call(this,b);this.classList.add("drawing-container");this.canvas_=document.createElement("canvas");this.canvas_.className="drawing-container-canvas";this.canvas_.style.left=tv.c.constants.HEADING_WIDTH+
"px";this.appendChild(this.canvas_);this.ctx_=this.canvas_.getContext("2d");this.viewportChange_=this.viewportChange_.bind(this);this.viewport.addEventListener("change",this.viewportChange_)},get canvas(){return this.canvas_},context:function(){return this.ctx_},viewportChange_:function(){this.invalidate()},invalidate:function(){this.rafPending_||(this.rafPending_=!0,tv.b.requestPreAnimationFrame(this.preDraw_,this))},preDraw_:function(){this.rafPending_=!1;this.updateCanvasSizeIfNeeded_();tv.b.requestAnimationFrameInThisFrameIfPossible(this.draw_,
this)},draw_:function(){this.ctx_.clearRect(0,0,this.canvas_.width,this.canvas_.height);var b=[e.BACKGROUND,e.HIGHLIGHTS,e.GRID,e.INSTANT_EVENT,e.SLICE,e.MARKERS,e.ANNOTATIONS];this.viewport.showFlowEvents&&b.push(e.FLOW_ARROWS);for(var a in b)for(var c=0;c<this.children.length;++c)this.children[c]instanceof tv.c.tracks.Track&&this.children[c].drawTrack(b[a]);a=window.devicePixelRatio||1;var c=this.canvas_.getBoundingClientRect(),d=this.viewport.currentDisplayTransform,b=d.xViewToWorld(0);a=d.xViewToWorld(c.width*
a);this.viewport.drawGridLines(this.ctx_,b,a)},updateCanvasSizeIfNeeded_:function(){var b=tv.b.asArray(this.children).filter(this.visibleFilter_);this.getBoundingClientRect();var a=b[0].getBoundingClientRect(),c=b[b.length-1].getBoundingClientRect(),b=a.width-tv.c.constants.HEADING_WIDTH,a=c.bottom-a.top,c=window.devicePixelRatio||1;this.canvas_.width!=b*c&&(this.canvas_.width=b*c,this.canvas_.style.width=b+"px");this.canvas_.height!=a*c&&(this.canvas_.height=a*c,this.canvas_.style.height=a+"px")},
visibleFilter_:function(b){return!(b instanceof tv.c.tracks.Track)?!1:"none"!==window.getComputedStyle(b).display},addClosestEventToSelection:function(b,a,c,d,e){for(var g=0;g<this.children.length;++g)if(this.children[g]instanceof tv.c.tracks.Track){var k=this.children[g].getBoundingClientRect(),l=Math.max(c,k.top),k=Math.min(d,k.bottom);l<=k&&this.children[g].addClosestEventToSelection(b,a,c,d,e)}tv.c.tracks.Track.prototype.addClosestEventToSelection.apply(this,arguments)},addEventsToTrackMap:function(b){for(var a=
0;a<this.children.length;++a)this.children[a]instanceof tv.c.tracks.Track&&this.children[a].addEventsToTrackMap(b)},addContainersToTrackMap:function(b){for(var a=0;a<this.children.length;++a)this.children[a]instanceof tv.c.tracks.Track&&this.children[a].addContainersToTrackMap(b)}};return{DrawingContainer:c,DrawType:e}});"use strict";
tv.exportTo("tv.c.tracks",function(){function e(b){if(void 0===b)throw Error("viewport must be provided");this.viewport_=b}e.prototype={__proto__:Object.prototype,processModel:function(b){throw Error("processModel implementation missing");},drawHighlight:function(b,a,c,d,e){throw Error("drawHighlight implementation missing");}};var c=new tv.b.ExtensionRegistryOptions(tv.b.BASIC_REGISTRY_MODE);c.defaultMetadata={};c.mandatoryBaseClass=e;tv.b.decorateExtensionRegistry(e,c);return{Highlighter:e}});"use strict";
tv.exportTo("tv.c.tracks",function(){var e=tv.b.Task,c=tv.b.ui.define("container-track",tv.c.tracks.Track);c.prototype={__proto__:tv.c.tracks.Track.prototype,decorate:function(b){tv.c.tracks.Track.prototype.decorate.call(this,b)},detach:function(){this.textContent=""},get tracks_(){for(var b=[],a=0;a<this.children.length;a++)this.children[a].classList.contains("track")&&b.push(this.children[a]);return b},drawTrack:function(b){for(var a=0;a<this.children.length;++a)this.children[a]instanceof tv.c.tracks.Track&&
this.children[a].drawTrack(b)},addIntersectingItemsInRangeToSelection:function(b,a,c,d,e){for(var g=0;g<this.tracks_.length;g++){var k=this.tracks_[g].getBoundingClientRect(),l=Math.max(c,k.top),k=Math.min(d,k.bottom);l<=k&&this.tracks_[g].addIntersectingItemsInRangeToSelection(b,a,c,d,e)}tv.c.tracks.Track.prototype.addIntersectingItemsInRangeToSelection.apply(this,arguments)},addEventsToTrackMap:function(b){for(var a=0;a<this.children.length;++a)this.children[a].addEventsToTrackMap(b)},addAllObjectsMatchingFilterToSelection:function(b,
a){for(var c=0;c<this.tracks_.length;c++)this.tracks_[c].addAllObjectsMatchingFilterToSelection(b,a)},addAllObjectsMatchingFilterToSelectionAsTask:function(b,a){for(var c=new e,d=0;d<this.tracks_.length;d++)c.subTask(function(d){return function(){this.tracks_[d].addAllObjectsMatchingFilterToSelection(b,a)}}(d),this);return c},addClosestEventToSelection:function(b,a,c,d,e){for(var g=0;g<this.tracks_.length;g++){var k=this.tracks_[g].getBoundingClientRect(),l=Math.max(c,k.top),k=Math.min(d,k.bottom);
l<=k&&this.tracks_[g].addClosestEventToSelection(b,a,c,d,e)}tv.c.tracks.Track.prototype.addClosestEventToSelection.apply(this,arguments)}};return{ContainerTrack:c}});"use strict";
tv.exportTo("tv.c.tracks",function(){var e=String.fromCharCode(9662),c=String.fromCharCode(9656),b=tv.b.ui.define("heading-track",tv.c.tracks.Track);b.prototype={__proto__:tv.c.tracks.Track.prototype,decorate:function(a){tv.c.tracks.Track.prototype.decorate.call(this,a);this.classList.add("heading-track");this.headingDiv_=document.createElement("heading");this.headingDiv_.style.width=tv.c.constants.HEADING_WIDTH+"px";this.headingDiv_.addEventListener("click",this.onHeadingDivClicked_.bind(this));
this.heading_="";this.selectionGenerator_=this.expanded_=void 0;this.updateContents_()},get heading(){return this.heading_},set heading(a){this.heading_=a;this.updateContents_()},set tooltip(a){this.headingDiv_.title=a},set selectionGenerator(a){this.selectionGenerator_=a;this.updateContents_()},get expanded(){return this.expanded_},set expanded(a){this.expanded_!=a&&(this.expanded_=a,this.expandedStateChanged_())},expandedStateChanged_:function(){this.updateHeadigDiv_()},onHeadingDivClicked_:function(){var a=
new Event("heading-clicked",!0,!1);this.dispatchEvent(a)},updateContents_:function(){this.updateHeadigDiv_()},updateHeadigDiv_:function(){this.headingDiv_.innerHTML="";var a=document.createElement("span");a.classList.add("heading-arrow");a.textContent=!0===this.expanded?e:!1===this.expanded?c:"";this.headingDiv_.appendChild(a);this.selectionGenerator_?(this.headingLink_=document.createElement("tv-c-analysis-link"),this.headingLink_.selection=this.selectionGenerator_,this.headingLink_.textContent=
"",this.headingDiv_.appendChild(this.headingLink_),this.headingLink_.appendChild(document.createTextNode(this.heading_))):(a=document.createElement("span"),a.textContent=this.heading_,this.headingDiv_.appendChild(a));this.appendChild(this.headingDiv_)},draw:function(a,b,d){throw Error("draw implementation missing");}};return{HeadingTrack:b}});"use strict";
tv.exportTo("tv.c.tracks",function(){var e=tv.c.trace_model.SelectionState,c=tv.c.EventPresenter,b=8,a=tv.b.ui.define("chart-track",tv.c.tracks.HeadingTrack);a.prototype={__proto__:tv.c.tracks.HeadingTrack.prototype,decorate:function(a){tv.c.tracks.HeadingTrack.prototype.decorate.call(this,a);this.classList.add("chart-track");this.chart_=null},get chart(){return this.chart_},set chart(a){this.chart_=a;this.invalidateDrawingContainer()},get height(){return window.getComputedStyle(this).height},set height(a){this.style.height=
a;this.invalidateDrawingContainer()},get hasVisibleContent(){return!!this.chart_},getModelEventFromItem:function(a){throw Error("Not implemented.");},draw:function(a,b,c){switch(a){case tv.c.tracks.DrawType.SLICE:this.drawSlices_(b,c)}},drawSlices_:function(a,b){var h=this.viewport.highDetails,g=this.context(),k=window.devicePixelRatio||1,l=this.getBoundingClientRect().height*k,m=l-2*k,n=this.chart_,q=this.viewport.currentDisplayTransform;q.xViewVectorToWorld(1);for(var w=q.xViewVectorToWorld(1),
s=n.numSeries,D=n.numSamples,F=tv.b.findLowIndexInSortedArray(n.timestamps,function(a){return a},a),C=n.timestamps,F=0<F-1?F-1:0,v=m/n.maxTotal,y=n.numSeries-1;0<=y;y--){var B=n.series[y];g.strokeStyle=c.getCounterSeriesColor(B.color,e.NONE);var H=function(e){for(var h=-1,E=F-1,x=0<=E?C[E]-w:-1,G=l,u=!1;;){E++;if(E>=D)break;var t=C[E],K=m-v*n.totals[E*s+y];if(t>b){u&&(x=t=b,g.lineTo(q.xWorldToView(t),G));break}if(E+1<D){var z=C[E+1];if(z-x<=w&&z<b)continue;t<a&&(t=a)}t-x<w&&x<t&&(t=x+w);z=B.samples[E].selectionState;
u&&(g.lineTo(q.xWorldToView(t),G),z!=h&&(e?(g.lineTo(q.xWorldToView(t),l),g.closePath(),g.fill()):(g.lineTo(q.xWorldToView(t),K),g.stroke())));z!=h&&(g.fillStyle=c.getCounterSeriesColor(B.color,z,0.5),g.lineWidth=1*k,g.beginPath(),e?g.moveTo(q.xWorldToView(t),l):g.moveTo(q.xWorldToView(t),u?G:K));g.lineTo(q.xWorldToView(t),K);u=!0;x=t;G=K;h=z}u&&(e?(g.lineTo(q.xWorldToView(x),l),g.closePath(),g.fill()):g.stroke())};H(!0);h&&H(!1);H=tv.b.findLowIndexInSortedArray(n.timestamps,function(a){return a},
b);n.timestamps[H]==b&&H++;var z=F>=n.timestamps.length?a:n.timestamps[F],x=1>H?b:n.timestamps[H-1],H=(0.1-tv.b.clamp((H-F)/(q.scaleX*(z>=x?b-a:x-z)),0.05,0.1))/0.05;g.strokeStyle=c.getCounterSeriesColor(B.color,e.NONE);z=void 0;for(x=F;C[x]<b;x++){var G=C[x],E=m-v*n.totals[x*s+y];if(B.samples[x].selected){var K=c.getCounterSeriesColor(B.color,B.samples[x].selectionState);K!==z&&(g.fillStyle=z=K);g.beginPath();g.arc(q.xWorldToView(G),E,2*k,0,2*Math.PI);g.fill();g.stroke()}else h&&(K=c.getCounterSeriesColor(B.color,
B.samples[x].selectionState,H),K!==z&&(g.fillStyle=z=K),g.fillRect(q.xWorldToView(G)-1.5*k,E-1.5*k,3*k,3*k))}}},addEventsToTrackMap:function(a){for(var b=this.chart_.series,c=0;c<b.length;c++)for(var e=b[c].samples,k=0;k<e.length;k++)a.addEvent(e[k],this)},addIntersectingItemsInRangeToSelectionInWorldSpace:function(a,d,c,e){function k(a,d){if(d===l.timestamps.length-1){var c=this.viewport.currentDisplayTransform.xViewVectorToWorld(1);return b*c}return l.timestamps[d+1]-l.timestamps[d]}var l=this.chart_;
a=tv.b.findLowIndexInSortedIntervals(l.timestamps,function(a){return a},k.bind(this),a);for(d=tv.b.findLowIndexInSortedIntervals(l.timestamps,function(a){return a},k.bind(this),d);a<=d;a++)if(!(0>a)&&!(a>=l.timestamps.length))for(c=0;c<this.chart.numSeries;c++)this.addValueToSelection(this.chart.series[c].samples[a],e)},addItemNearToProvidedEventToSelection:function(a,b,c){b=a.getSampleIndex()+b;if(0>b||b>=a.series.samples.length)return!1;this.addValueToSelection(a.series.samples[b],c);return!0},
addAllObjectsMatchingFilterToSelection:function(a,b){},addClosestEventToSelection:function(a,b,c,e,k){c=this.chart;if(c.numSeries)for(e=0;e<c.numSeries;e++){var l=tv.b.findClosestElementInSortedArray(c.series_[e].samples_,function(a){return a.timestamp},a,b);l&&this.addValueToSelection(l,k)}},addValueToSelection:function(a,b){var c=this.getModelEventFromItem(a);c&&b.push(c)}};return{ChartTrack:a}});"use strict";
tv.exportTo("tv.c.tracks",function(){var e=tv.b.ui.define("counter-track",tv.c.tracks.ChartTrack);e.prototype={__proto__:tv.c.tracks.ChartTrack.prototype,decorate:function(c){tv.c.tracks.ChartTrack.prototype.decorate.call(this,c);this.classList.add("counter-track")},get counter(){return this.chart},set counter(c){this.heading=c.name+": ";this.chart=c},getModelEventFromItem:function(c){return c}};return{CounterTrack:e}});"use strict";
tv.exportTo("tv.c.tracks",function(){var e=tv.c.TraceModelSettings,c=tv.b.ui.define("multi-row-track",tv.c.tracks.ContainerTrack);c.prototype={__proto__:tv.c.tracks.ContainerTrack.prototype,decorate:function(b){tv.c.tracks.ContainerTrack.prototype.decorate.call(this,b);this.heading_=this.tooltip_="";this.itemsToGroup_=this.groupingSource_=void 0;this.defaultToCollapsedWhenSubRowCountMoreThan=1;this.itemsGroupedOnLastUpdateContents_=void 0;this.currentSubRows_=[];this.expanded_=!0},get itemsToGroup(){return this.itemsToGroup_},
setItemsToGroup:function(b,a){this.itemsToGroup_=b;this.groupingSource_=a;this.updateContents_();this.updateExpandedStateFromGroupingSource_()},get heading(){return this.heading_},set heading(b){this.heading_=b;this.updateContents_()},get tooltip(){return this.tooltip_},set tooltip(b){this.tooltip_=b;this.updateContents_()},get subRows(){return this.currentSubRows_},get hasVisibleContent(){return 0<this.children.length},get expanded(){return this.expanded_},set expanded(b){this.expanded_!=b&&(this.expanded_=
b,this.expandedStateChanged_())},onHeadingClicked_:function(b){1>=this.subRows.length||(this.expanded=!this.expanded,this.groupingSource_&&(new e(this.groupingSource_.model)).setSettingFor(this.groupingSource_,"expanded",this.expanded),b.stopPropagation())},updateExpandedStateFromGroupingSource_:function(){if(this.groupingSource_){var b=this.subRows.length,a=new e(this.groupingSource_.model);this.expanded=1<b?a.getSettingFor(this.groupingSource_,"expanded",b>this.defaultToCollapsedWhenSubRowCountMoreThan?
!1:!0):void 0}},expandedStateChanged_:function(){for(var b=Math.max(2,Math.ceil(18/this.children.length)),b=(this.expanded_?18:b)+"px",a=0;a<this.children.length;a++)this.children[a].height=b;0<this.children.length&&(this.children[0].expanded=this.expanded)},updateContents_:function(){tv.c.tracks.ContainerTrack.prototype.updateContents_.call(this);if(this.itemsToGroup_)if(this.areArrayContentsSame_(this.itemsGroupedOnLastUpdateContents_,this.itemsToGroup_))this.updateHeadingAndTooltip_();else if(this.itemsGroupedOnLastUpdateContents_=
this.itemsToGroup_,this.detach(),this.itemsToGroup_.length){var b=this.buildSubRows_(this.itemsToGroup_);this.currentSubRows_=b;for(var a=0;a<b.length;a++){var c=b[a];c.length&&this.addSubTrack_(c).addEventListener("heading-clicked",this.onHeadingClicked_.bind(this))}this.updateHeadingAndTooltip_();this.expandedStateChanged_()}else this.currentSubRows_=[];else this.updateHeadingAndTooltip_(),this.currentSubRows_=[]},updateHeadingAndTooltip_:function(){this.firstChild&&(this.firstChild.heading=this.heading_,
this.firstChild.tooltip=this.tooltip_)},buildSubRows_:function(b){throw Error("Not implemented");},addSubTrack_:function(b){throw Error("Not implemented");},areArrayContentsSame_:function(b,a){if(!b||!a||(!b.length||!a.length)||b.length!=a.length)return!1;for(var c=0;c<b.length;++c)if(b[c]!=a[c])return!1;return!0}};return{MultiRowTrack:c}});"use strict";
tv.exportTo("tv.c.tracks",function(){var e=tv.c.trace_model.SelectionState,c=tv.c.EventPresenter,b=tv.b.ui.define("object-instance-track",tv.c.tracks.HeadingTrack);b.prototype={__proto__:tv.c.tracks.HeadingTrack.prototype,decorate:function(a){tv.c.tracks.HeadingTrack.prototype.decorate.call(this,a);this.classList.add("object-instance-track");this.objectInstances_=[];this.objectSnapshots_=[]},get objectInstances(){return this.objectInstances_},set objectInstances(a){!a||0==a.length?(this.heading="",
this.objectInstances_=[],this.objectSnapshots_=[]):(this.heading=a[0].typeName,this.objectInstances_=a,this.objectSnapshots_=[],this.objectInstances_.forEach(function(a){this.objectSnapshots_.push.apply(this.objectSnapshots_,a.snapshots)},this),this.objectSnapshots_.sort(function(a,b){return a.ts-b.ts}))},get height(){return window.getComputedStyle(this).height},set height(a){this.style.height=a},get snapshotRadiusView(){return 7*(window.devicePixelRatio||1)},draw:function(a,b,c){switch(a){case tv.c.tracks.DrawType.SLICE:this.drawSlices_(b,
c)}},drawSlices_:function(a,b){var h=this.context(),g=window.devicePixelRatio||1,k=this.getBoundingClientRect(),l=k.height*g,m=0.5*l,n=2*Math.PI,q=this.viewport.currentDisplayTransform,w=this.snapshotRadiusView,s=q.xViewVectorToWorld(l),D;h.save();q.applyTransformToCanvas(h);var F=this.objectInstances_;D=tv.b.findLowIndexInSortedArray(F,function(a){return a.deletionTs},a);for(h.strokeStyle="rgb(0,0,0)";D<F.length;++D){var C=F[D],v=C.creationTs;if(v>b)break;var y=C.deletionTs==Number.MAX_VALUE?b:C.deletionTs;
h.fillStyle=c.getObjectInstanceColor(C);h.fillRect(v,g,y-v,l-2*g)}h.restore();C=this.objectSnapshots_;for(D=tv.b.findLowIndexInSortedArray(C,function(a){return a.ts+s},a);D<C.length;++D){y=C[D];v=y.ts;if(v-s>b)break;v=q.xWorldToView(v);h.fillStyle=c.getObjectSnapshotColor(y);h.beginPath();h.arc(v,m,w,0,n);h.fill();y.selected?(h.lineWidth=5,h.strokeStyle="rgb(100,100,0)",h.stroke(),h.beginPath(),h.arc(v,m,w-1,0,n),h.lineWidth=2,h.strokeStyle="rgb(255,255,0)"):(h.lineWidth=1,h.strokeStyle="rgb(0,0,0)");
h.stroke()}h.lineWidth=1;m=e.NONE;F.length&&F[0].selectionState===e.DIMMED&&(m=e.DIMMED);m===e.DIMMED&&(g*=k.width,h.fillStyle="rgba(255,255,255,0.5)",h.fillRect(0,0,g,l),h.restore())},addEventsToTrackMap:function(a){void 0!==this.objectInstance_&&this.objectInstance_.forEach(function(b){a.addEvent(b,this)},this);void 0!==this.objectSnapshots_&&this.objectSnapshots_.forEach(function(b){a.addEvent(b,this)},this)},addIntersectingItemsInRangeToSelectionInWorldSpace:function(a,b,c,e){var k=!1,l=c*this.snapshotRadiusView;
tv.b.iterateOverIntersectingIntervals(this.objectSnapshots_,function(a){return a.ts-l},function(a){return 2*l},a,b,function(a){e.push(a);k=!0});k||tv.b.iterateOverIntersectingIntervals(this.objectInstances_,function(a){return a.creationTs},function(a){return a.deletionTs-a.creationTs},a,b,e.push.bind(e))},addItemNearToProvidedEventToSelection:function(a,b,c){var e;if(a instanceof tv.c.trace_model.ObjectSnapshot)e=this.objectSnapshots_;else if(a instanceof tv.c.trace_model.ObjectInstance)e=this.objectInstances_;
else throw Error("Unrecognized event");a=e.indexOf(a)+b;return 0<=a&&a<e.length?(c.push(e[a]),!0):!1},addAllObjectsMatchingFilterToSelection:function(a,b){},addClosestEventToSelection:function(a,b,c,e,k){(a=tv.b.findClosestElementInSortedArray(this.objectSnapshots_,function(a){return a.ts},a,b))&&k.push(a)}};var a=new tv.b.ExtensionRegistryOptions(tv.b.TYPE_BASED_REGISTRY_MODE);tv.b.decorateExtensionRegistry(b,a);return{ObjectInstanceTrack:b}});"use strict";
tv.exportTo("tv.c.tracks",function(){var e=tv.b.ui.define("object-instance-group-track",tv.c.tracks.MultiRowTrack);e.prototype={__proto__:tv.c.tracks.MultiRowTrack.prototype,decorate:function(c){tv.c.tracks.MultiRowTrack.prototype.decorate.call(this,c);this.classList.add("object-instance-group-track");this.objectInstances_=void 0},get objectInstances(){return this.itemsToGroup},set objectInstances(c){this.setItemsToGroup(c)},addSubTrack_:function(c){var b=new tv.c.tracks.ObjectInstanceTrack(this.viewport);
b.objectInstances=c;this.appendChild(b);return b},buildSubRows_:function(c){c.sort(function(a,b){return a.creationTs-b.creationTs});for(var b=[],a=0;a<c.length;a++){for(var f=c[a],d=!1,e=0;e<b.length;e++){var g=b[e];if(f.creationTs>=g[g.length-1].deletionTs){d=!0;g.push(f);break}}d||(g=[f],b.push(g))}return b},updateHeadingAndTooltip_:function(){}};return{ObjectInstanceGroupTrack:e}});"use strict";
tv.exportTo("tv.c",function(){function e(c,b,a,f){this.ctx_=c;this.minRectSize_=b;this.maxMergeDist_=a;this.pallette_=f}e.prototype={y_:0,h_:0,merging_:!1,mergeStartX_:0,mergeCurRight_:0,mergedColorId_:0,mergedAlpha_:0,setYandH:function(c,b){this.flush();this.y_=c;this.h_=b},fillRect:function(c,b,a,f){var d=c+b;if(b<this.minRectSize_)if(d-this.mergeStartX_>this.maxMergeDist_&&this.flush(),this.merging_){if(this.mergeCurRight_=d,this.mergedAlpha_<f||this.mergedAlpha_===f&&this.mergedColorId_<a)this.mergedAlpha_=
f,this.mergedColorId_=a}else this.merging_=!0,this.mergeStartX_=c,this.mergeCurRight_=d,this.mergedColorId_=a,this.mergedAlpha_=f;else this.merging_&&this.flush(),this.ctx_.fillStyle=this.pallette_[a],this.ctx_.globalAlpha=f,this.ctx_.fillRect(c,this.y_,b,this.h_)},flush:function(){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_=
!1)}};return{FastRectRenderer:e}});"use strict";
tv.exportTo("tv.c.tracks",function(){var e=tv.b.ui.define("rect-track",tv.c.tracks.HeadingTrack);e.prototype={__proto__:tv.c.tracks.HeadingTrack.prototype,decorate:function(c){tv.c.tracks.HeadingTrack.prototype.decorate.call(this,c);this.classList.add("rect-track");this.asyncStyle_=!1;this.rects_=null},get asyncStyle(){return this.asyncStyle_},set asyncStyle(c){this.asyncStyle_=!!c},get rects(){return this.rects_},set rects(c){this.rects_=c||[];this.invalidateDrawingContainer()},get height(){return window.getComputedStyle(this).height},
set height(c){this.style.height=c;this.invalidateDrawingContainer()},get hasVisibleContent(){return 0<this.rects_.length},getModelEventFromItem:function(c){throw Error("Not implemented.");},draw:function(c,b,a){switch(c){case tv.c.tracks.DrawType.SLICE:this.drawRects_(b,a)}},drawRects_:function(c,b){var a=this.context();a.save();var f=this.getBoundingClientRect();tv.c.drawSlices(a,this.viewport.currentDisplayTransform,c,b,f.height,this.rects_,this.asyncStyle_);a.restore();if(!(6>=f.height)){var d;
15>f.height?(f=6,d=1):(f=10,d=2.5);tv.c.drawLabels(a,this.viewport.currentDisplayTransform,c,b,this.rects_,this.asyncStyle_,f,d)}},addEventsToTrackMap:function(c){void 0===this.rects_||null===this.rects_||this.rects_.forEach(function(b){(b=this.getModelEventFromItem(b))&&c.addEvent(b,this)},this)},addIntersectingItemsInRangeToSelectionInWorldSpace:function(c,b,a,f){function d(a){(a=this.getModelEventFromItem(a))&&f.push(a)}d=d.bind(this);tv.b.iterateOverIntersectingIntervals(this.rects_,function(a){return a.start},
function(a){return a.duration},c,b,d)},indexOfRect_:function(c){for(var b=tv.b.findLowIndexInSortedArray(this.rects_,function(a){return a.start},c.start);b<this.rects_.length&&c.start==this.rects_[b].start&&c.colorId!=this.rects_[b].colorId;)b++;return b<this.rects_.length?b:void 0},addItemNearToProvidedEventToSelection:function(c,b,a){c=this.indexOfRect_(c);if(void 0===c)return!1;b=c+b;if(0>b||b>=this.rects_.length)return!1;(c=this.rects_[b])&&a.push(c);return!0},addAllObjectsMatchingFilterToSelection:function(c,
b){for(var a=0;a<this.rects_.length;++a)if(c.matchSlice(this.rects_[a])){var f=this.getModelEventFromItem(this.rects_[a]);f&&b.push(f)}},addClosestEventToSelection:function(c,b,a,f,d){if(c=tv.b.findClosestIntervalInSortedIntervals(this.rects_,function(a){return a.start},function(a){return a.end},c,b))(c=this.getModelEventFromItem(c))&&d.push(c)}};return{RectTrack:e}});"use strict";
tv.exportTo("tv.c.tracks",function(){var e=tv.b.ui.define("process-summary-track",tv.c.tracks.RectTrack);e.buildRectsFromProcess=function(c){if(!c)return[];var b=[],a=function(a,d,c){b.push({isStart:a,time:d,slice:c})},f;for(f in c.threads){var d=c.threads[f].sliceGroup;d.topLevelSlices.forEach(function(b){a(!0,b.start,void 0);a(!1,b.end,void 0)});d.slices.forEach(function(b){b.important&&(a(!0,b.start,b),a(!1,b.end,b))})}b.sort(function(a,b){return a.time-b.time});var e=[],g=tv.b.ui.getColorIdForReservedName("generic_work"),
k=function(a,b,d){e.push({start:a,end:b,duration:b-a,colorId:d?d.colorId:g,title:d?d.title:void 0})},l=0,m=void 0,n=void 0;b.forEach(function(a){l+=a.isStart?1:-1;m?!a.isStart&&a.slice==m&&(k(n,a.time,m),n=1<=l?a.time:void 0,m=void 0):a.isStart?1==l?(n=a.time,m=a.slice):a.slice&&(a.time!=n&&(k(n,a.time,void 0),n=a.time),m=a.slice):0==l&&(k(n,a.time,void 0),n=void 0)});return e};e.prototype={__proto__:tv.c.tracks.RectTrack.prototype,decorate:function(c){tv.c.tracks.RectTrack.prototype.decorate.call(this,
c);this.classList.add("inverse-expand")},get process(){return this.process_},set process(c){this.process_=c;this.rects=e.buildRectsFromProcess(c)},getModelEventFromItem:function(c){}};return{ProcessSummaryTrack:e}});"use strict";
tv.exportTo("tv.c.tracks",function(){var e=tv.b.ui.define("spacing-track",tv.c.tracks.HeadingTrack);e.prototype={__proto__:tv.c.tracks.HeadingTrack.prototype,decorate:function(c){tv.c.tracks.HeadingTrack.prototype.decorate.call(this,c);this.classList.add("spacing-track")},draw:function(c,b,a){},addAllObjectsMatchingFilterToSelection:function(c,b){}};return{SpacingTrack:e}});"use strict";
tv.exportTo("tv.c.tracks",function(){var e=tv.b.ui.define("sample-track",tv.c.tracks.RectTrack);e.prototype={__proto__:tv.c.tracks.RectTrack.prototype,decorate:function(c){tv.c.tracks.RectTrack.prototype.decorate.call(this,c)},get samples(){return this.rects},set samples(c){this.rects=c},getModelEventFromItem:function(c){return c}};return{SampleTrack:e}});"use strict";
tv.exportTo("tv.c.tracks",function(){var e=tv.b.ui.define("slice-track",tv.c.tracks.RectTrack);e.prototype={__proto__:tv.c.tracks.RectTrack.prototype,decorate:function(c){tv.c.tracks.RectTrack.prototype.decorate.call(this,c)},get slices(){return this.rects},set slices(c){this.rects=c},getModelEventFromItem:function(c){return c}};return{SliceTrack:e}});"use strict";
tv.exportTo("tv.c.tracks",function(){var e=tv.b.ui.define("slice-group-track",tv.c.tracks.MultiRowTrack);e.prototype={__proto__:tv.c.tracks.MultiRowTrack.prototype,decorate:function(c){tv.c.tracks.MultiRowTrack.prototype.decorate.call(this,c);this.classList.add("slice-group-track");this.group_=void 0;this.defaultToCollapsedWhenSubRowCountMoreThan=100},addSubTrack_:function(c){var b=new tv.c.tracks.SliceTrack(this.viewport);b.slices=c;this.appendChild(b);return b},get group(){return this.group_},set group(c){this.group_=
c;this.setItemsToGroup(this.group_.slices,this.group_)},get eventContainer(){return this.group},addContainersToTrackMap:function(c){c.addContainer(this.group,this)},buildSubRows_:function(c){if(!c.length)return[];for(var b=[],a=0;a<c.length;a++)c[a].subSlices&&c[a].subSlices.splice(0,c[a].subSlices.length),b.push(a);b.sort(function(a,b){var d=c[a],f=c[b];return d.start!=f.start?d.start-f.start:a-b});var f=[[]];this.badSlices_=[];for(a=0;a<b.length;a++){for(var d=c[b[a]],e=!1,g=f.length-1;0<=g;g--)if(0!=
f[g].length){var k=f[g][f[g].length-1];d.start<k.start&&(this.badSlices_.push(d),e=!0);if(k.bounds(d)){for(;f.length<=g+1;)f.push([]);f[g+1].push(d);k.subSlices&&k.subSlices.push(d);e=!0;break}}e||f[0].push(d)}return f}};return{SliceGroupTrack:e}});"use strict";
tv.exportTo("tv.c.tracks",function(){var e=tv.b.ui.define("async-slice-group-track",tv.c.tracks.MultiRowTrack);e.prototype={__proto__:tv.c.tracks.MultiRowTrack.prototype,decorate:function(c){tv.c.tracks.MultiRowTrack.prototype.decorate.call(this,c);this.classList.add("async-slice-group-track");this.group_=void 0},addSubTrack_:function(c){var b=new tv.c.tracks.SliceTrack(this.viewport);b.slices=c;this.appendChild(b);b.asyncStyle=!0;return b},get group(){return this.group_},set group(c){this.group_=
c;this.setItemsToGroup(this.group_.slices,this.group_)},get eventContainer(){return this.group},addContainersToTrackMap:function(c){c.addContainer(this.group,this)},buildSubRows_:function(c,b){b||c.sort(function(a,b){return a.start-b.start});for(var a=function(b,d,c){if(c>=d.length)return!0;var f=d[c];if(b.start>=f[f.length-1].end){if(void 0===b.subSlices||0===b.subSlices.length)return!0;for(f=0;f<b.subSlices.length;f++)if(!a(b.subSlices[f],d,c+1))return!1;return!0}return!1},f=[],d=0;d<c.length;d++){for(var e=
c[d],g=!1,k=f.length,l=0;l<f.length;l++)if(a(e,f,l)){g=!0;k=l;break}g||f.push([]);f[k].push(e);var m=function(a,b,d){if(!(void 0===a||0===a.length)){b===d.length&&d.push([]);for(var c=0;c<a.length;c++)d[b].push(a[c]),m(a[c].subSlices,b+1,d)}};m(e.subSlices,k+1,f)}return f}};return{AsyncSliceGroupTrack:e}});"use strict";
tv.exportTo("tv.c.tracks",function(){var e=tv.b.ui.define("thread-track",tv.c.tracks.ContainerTrack);e.prototype={__proto__:tv.c.tracks.ContainerTrack.prototype,decorate:function(c){tv.c.tracks.ContainerTrack.prototype.decorate.call(this,c);this.classList.add("thread-track")},get thread(){return this.thread_},set thread(c){this.thread_=c;this.updateContents_()},get hasVisibleContent(){return 0<this.tracks_.length},get eventContainer(){return this.thread},addContainersToTrackMap:function(c){c.addContainer(this.thread,
this);for(var b=0;b<this.childNodes.length;++b)this.childNodes[b].addContainersToTrackMap(c)},updateContents_:function(){this.detach();if(this.thread_){this.heading=this.thread_.userFriendlyName+": ";this.tooltip=this.thread_.userFriendlyDetails;this.thread_.asyncSliceGroup.length&&this.appendAsyncSliceTracks_();this.appendThreadSamplesTracks_();if(this.thread_.timeSlices){var c=new tv.c.tracks.SliceTrack(this.viewport);c.heading="";c.height=tv.c.THIN_SLICE_HEIGHT+"px";c.slices=this.thread_.timeSlices;
c.hasVisibleContent&&this.appendChild(c)}this.thread_.sliceGroup.length&&(c=new tv.c.tracks.SliceGroupTrack(this.viewport),c.heading=this.thread_.userFriendlyName,c.tooltip=this.thread_.userFriendlyDetails,c.group=this.thread_.sliceGroup,c.hasVisibleContent&&this.appendChild(c))}},appendAsyncSliceTracks_:function(){this.thread_.asyncSliceGroup.viewSubGroups.forEach(function(c){var b=new tv.c.tracks.AsyncSliceGroupTrack(this.viewport),a=c.slices[0].viewSubGroupTitle;b.group=c;b.heading=a;b.hasVisibleContent&&
this.appendChild(b)},this)},appendThreadSamplesTracks_:function(){var c=this.thread_.samples;if(!(void 0===c||0===c.length)){var b={};c.forEach(function(a){void 0===b[a.title]&&(b[a.title]=[]);b[a.title].push(a)});c=tv.b.dictionaryKeys(b);c.sort();c.forEach(function(a){var c=b[a],d=new tv.c.tracks.SampleTrack(this.viewport);d.group=this.thread_;d.samples=c;d.heading=this.thread_.userFriendlyName+": "+a;d.tooltip=this.thread_.userFriendlyDetails;d.selectionGenerator=function(){for(var a=new tv.c.Selection,
b=0;b<d.samples.length;b++)a.push(d.samples[b]);return a};this.appendChild(d)},this)}},collapsedDidChange:function(c){if(c){c=parseInt(this.tracks[0].height);for(var b=0;b<this.tracks.length;++b)2<c?this.tracks[b].height=Math.floor(c)+"px":this.tracks[b].style.display="none",c*=0.5}else for(b=0;b<this.tracks.length;++b)this.tracks[b].height=this.tracks[0].height,this.tracks[b].style.display=""}};return{ThreadTrack:e}});"use strict";
tv.exportTo("tv.c.tracks",function(){var e=tv.c.analysis.ObjectSnapshotView,c=tv.c.analysis.ObjectInstanceView,b=tv.c.TraceModelSettings,a=tv.c.tracks.SpacingTrack,f=tv.b.ui.define("process-track-base",tv.c.tracks.ContainerTrack);f.prototype={__proto__:tv.c.tracks.ContainerTrack.prototype,decorate:function(a){tv.c.tracks.ContainerTrack.prototype.decorate.call(this,a);this.processBase_=void 0;this.classList.add("process-track-base");this.classList.add("expanded");this.processNameEl_=tv.b.ui.createSpan();
this.processNameEl_.classList.add("process-track-name");this.headerEl_=tv.b.ui.createDiv({className:"process-track-header"});this.headerEl_.appendChild(this.processNameEl_);this.headerEl_.addEventListener("click",this.onHeaderClick_.bind(this));this.appendChild(this.headerEl_)},get processBase(){return this.processBase_},set processBase(a){if(this.processBase_=a)this.expanded=(new b(this.processBase_.model)).getSettingFor(this.processBase_,"expanded",void 0!==this.processBase_.labels&&1==this.processBase_.labels.length&&
"chrome://tracing"==this.processBase_.labels[0]?!1:!0);this.updateContents_()},get expanded(){return this.classList.contains("expanded")},set expanded(a){a=!!a;this.expanded!==a&&(this.classList.toggle("expanded"),this.viewport_.dispatchChangeEvent(),this.processBase_&&(new b(this.processBase_.model)).setSettingFor(this.processBase_,"expanded",a))},get hasVisibleContent(){return this.expanded?1<this.children.length:!0},onHeaderClick_:function(a){a.stopPropagation();a.preventDefault();this.expanded=
!this.expanded},updateContents_:function(){this.tracks_.forEach(function(a){this.removeChild(a)},this);this.processBase_&&(this.processNameEl_.textContent=this.processBase_.userFriendlyName,this.headerEl_.title=this.processBase_.userFriendlyDetails,this.willAppendTracks_(),this.appendSummaryTrack_(),this.appendObjectInstanceTracks_(),this.appendCounterTracks_(),this.appendThreadTracks_(),this.didAppendTracks_())},addEventsToTrackMap:function(a){this.tracks_.forEach(function(b){b.addEventsToTrackMap(a)})},
willAppendTracks_:function(){},didAppendTracks_:function(){},appendSummaryTrack_:function(){var b=new tv.c.tracks.ProcessSummaryTrack(this.viewport);b.process=this.process;b.hasVisibleContent&&(this.appendChild(b),this.appendChild(new a(this.viewport)))},appendObjectInstanceTracks_:function(){var b=this.processBase_.objects.getAllInstancesByTypeName(),f=tv.b.dictionaryKeys(b);f.sort();var g=!1;f.forEach(function(a){var f=b[a],h=c.getTypeInfo(void 0,a),n=e.getTypeInfo(void 0,a);h&&!h.metadata.showInTrackView&&
(h=void 0);n&&!n.metadata.showInTrackView&&(n=void 0);for(var n=h||n,h=[],q=0;q<f.length;q++){var w=f[q];0!==w.snapshots.length&&(!w.hasImplicitSnapshots||n)&&h.push(w)}0!==h.length&&(f=tv.c.tracks.ObjectInstanceTrack.getConstructor(void 0,a),f||(f=(n=e.getTypeInfo(void 0,a))&&n.metadata.showInstances?tv.c.tracks.ObjectInstanceGroupTrack:tv.c.tracks.ObjectInstanceTrack),a=new f(this.viewport),a.objectInstances=h,this.appendChild(a),g=!0)},this);g&&this.appendChild(new a(this.viewport))},appendCounterTracks_:function(){var b=
tv.b.dictionaryValues(this.processBase.counters);b.sort(tv.c.trace_model.Counter.compare);b.forEach(function(b){var d=new tv.c.tracks.CounterTrack(this.viewport);d.counter=b;this.appendChild(d);this.appendChild(new a(this.viewport))}.bind(this))},appendThreadTracks_:function(){var b=tv.b.dictionaryValues(this.processBase.threads);b.sort(tv.c.trace_model.Thread.compare);b.forEach(function(b){var d=new tv.c.tracks.ThreadTrack(this.viewport);d.thread=b;d.hasVisibleContent&&(this.appendChild(d),this.appendChild(new a(this.viewport)))}.bind(this))}};
return{ProcessTrackBase:f}});"use strict";
tv.exportTo("tv.c.tracks",function(){var e=tv.b.ui.define("cpu-track",tv.c.tracks.ContainerTrack);e.prototype={__proto__:tv.c.tracks.ContainerTrack.prototype,decorate:function(c){tv.c.tracks.ContainerTrack.prototype.decorate.call(this,c);this.classList.add("cpu-track")},get cpu(){return this.cpu_},set cpu(c){this.cpu_=c;this.updateContents_()},get tooltip(){return this.tooltip_},set tooltip(c){this.tooltip_=c;this.updateContents_()},get hasVisibleContent(){return 0<this.children.length},updateContents_:function(){this.detach();
if(this.cpu_){var c=this.cpu_.slices;if(c.length){var b=new tv.c.tracks.SliceTrack(this.viewport);b.slices=c;b.heading=this.cpu_.userFriendlyName+":";this.appendChild(b)}this.appendSamplesTracks_();for(var a in this.cpu_.counters)c=this.cpu_.counters[a],b=new tv.c.tracks.CounterTrack(this.viewport),b.heading=this.cpu_.userFriendlyName+" "+c.name+":",b.counter=c,this.appendChild(b)}},appendSamplesTracks_:function(){var c=this.cpu_.samples;if(!(void 0===c||0===c.length)){var b={};c.forEach(function(a){void 0===
b[a.title]&&(b[a.title]=[]);b[a.title].push(a)});c=tv.b.dictionaryKeys(b);c.sort();c.forEach(function(a){var c=b[a],d=new tv.c.tracks.SliceTrack(this.viewport);d.group=this.cpu_;d.slices=c;d.heading=this.cpu_.userFriendlyName+": "+a;d.tooltip=this.cpu_.userFriendlyDetails;d.selectionGenerator=function(){for(var a=new tv.c.Selection,b=0;b<d.slices.length;b++)a.push(d.slices[b]);return a};this.appendChild(d)},this)}}};return{CpuTrack:e}});"use strict";
tv.exportTo("tv.c.tracks",function(){var e=tv.c.tracks.ProcessTrackBase,c=tv.c.tracks.SpacingTrack,b=tv.b.ui.define("kernel-track",e);b.prototype={__proto__:e.prototype,decorate:function(a){tv.c.tracks.ProcessTrackBase.prototype.decorate.call(this,a)},set kernel(a){this.processBase=a},get kernel(){return this.processBase},get eventContainer(){return this.kernel},addContainersToTrackMap:function(a){a.addContainer(this.kernel,this)},willAppendTracks_:function(){var a=tv.b.dictionaryValues(this.kernel.cpus);
a.sort(tv.c.trace_model.Cpu.compare);for(var b=!1,d=0;d<a.length;++d){var e=a[d],g=new tv.c.tracks.CpuTrack(this.viewport);g.cpu=e;g.hasVisibleContent&&(this.appendChild(g),b=!0)}b&&this.appendChild(new c(this.viewport))}};return{KernelTrack:b}});"use strict";
tv.exportTo("tv.c.tracks",function(){var e=tv.c.trace_model.SelectionState,c=tv.b.ui.define("letter-dot-track",tv.c.tracks.HeadingTrack);c.prototype={__proto__:tv.c.tracks.HeadingTrack.prototype,decorate:function(b){tv.c.tracks.HeadingTrack.prototype.decorate.call(this,b);this.classList.add("letter-dot-track");this.items_=void 0},getModelEventFromItem:function(b){throw Error("Not implemented.");},get items(){return this.items_},set items(b){this.items_=b;this.invalidateDrawingContainer()},get height(){return window.getComputedStyle(this).height},
set height(b){this.style.height=b},get dumpRadiusView(){return 7*(window.devicePixelRatio||1)},draw:function(b,a,c){if(void 0!==this.items_)switch(b){case tv.c.tracks.DrawType.SLICE:this.drawSlices_(a,c)}},drawSlices_:function(b,a){var c=this.context(),d=window.devicePixelRatio||1,h=this.getBoundingClientRect(),g=h.height*d,k=0.5*g,l=2*Math.PI,m=tv.b.ui.getColorPalette(),n=tv.b.ui.paletteProperties.highlightIdBoost,q=this.viewport.currentDisplayTransform,w=this.dumpRadiusView,s=q.xViewVectorToWorld(g),
D=this.items_,F=tv.b.findLowIndexInSortedArray(D,function(a){return a.start},b),C=c.font;c.font="400 "+Math.floor(9*d)+"px Arial";c.strokeStyle="rgb(0,0,0)";c.textBaseline="middle";c.textAlign="center";var v=function(b){for(var d=F;d<D.length;++d){var e=D[d],h=e.start;if(h-s>a)break;e.selected===b&&(h=q.xWorldToView(h),c.fillStyle=e.selected?m[e.colorId+n]:m[e.colorId],c.beginPath(),c.arc(h,k,w+0.5,0,l),c.fill(),e.selected?(c.lineWidth=3,c.strokeStyle="rgb(100,100,0)",c.stroke(),c.beginPath(),c.arc(h,
k,w,0,l),c.lineWidth=1.5,c.strokeStyle="rgb(255,255,0)"):(c.lineWidth=1,c.strokeStyle="rgb(0,0,0)"),c.stroke(),c.fillStyle="rgb(255, 255, 255)",c.fillText(e.dotLetter,h,k))}};v(!1);v(!0);c.lineWidth=1;c.font=C;C=e.NONE;D.length&&D[0].selectionState===e.DIMMED&&(C=e.DIMMED);C===e.DIMMED&&(d*=h.width,c.fillStyle="rgba(255,255,255,0.5)",c.fillRect(0,0,d,g))},addEventsToTrackMap:function(b){void 0!==this.items_&&this.items_.forEach(function(a){(a=this.getModelEventFromItem(a))&&b.addEvent(a,this)},this)},
addIntersectingItemsInRangeToSelectionInWorldSpace:function(b,a,c,d){if(void 0!==this.items_){var e=c*this.dumpRadiusView;tv.b.iterateOverIntersectingIntervals(this.items_,function(a){return a.start-e},function(a){return 2*e},b,a,function(a){(a=this.getModelEventFromItem(a))&&d.push(a)}.bind(this))}},addItemNearToProvidedEventToSelection:function(b,a,c){if(void 0!==this.items_){var d=this.items_;b=d.indexOf(b)+a;return 0<=b&&b<d.length?((b=this.getModelEventFromItem(d[b]))&&c.push(b),!0):!1}},addAllObjectsMatchingFilterToSelection:function(b,
a){},addClosestEventToSelection:function(b,a,c,d,e){if(void 0!==this.items_&&(b=tv.b.findClosestElementInSortedArray(this.items_,function(a){return a.start},b,a)))(b=this.getModelEventFromItem(b))&&e.push(b)}};return{LetterDotTrack:c}});"use strict";
tv.exportTo("tv.c.tracks",function(){var e=tv.b.ui.define("alert-track",tv.c.tracks.LetterDotTrack);e.prototype={__proto__:tv.c.tracks.LetterDotTrack.prototype,decorate:function(c){tv.c.tracks.LetterDotTrack.prototype.decorate.call(this,c);this.heading="Alerts";this.alerts_=void 0},get alerts(){return this.alerts_},set alerts(c){this.alerts_=c;this.items=void 0===c?void 0:this.alerts_.map(function(b){return{start:b.start,get selected(){return this.alert.selected},colorId:b.colorId,dotLetter:String.fromCharCode(9888),
alert:b}})},getModelEventFromItem:function(c){return c.alert}};return{AlertTrack:e}});"use strict";
tv.exportTo("tv.c.tracks",function(){var e=tv.b.ui.define("memory-dump-track",tv.c.tracks.LetterDotTrack);e.prototype={__proto__:tv.c.tracks.LetterDotTrack.prototype,decorate:function(c){tv.c.tracks.LetterDotTrack.prototype.decorate.call(this,c);this.heading="Memory dumps";this.memoryDumps_=void 0},get memoryDumps(){return this.memoryDumps_},set memoryDumps(c){this.memoryDumps_=c;if(void 0===c)this.items=void 0;else{var b=tv.b.ui.getColorIdForReservedName("memory_dump");this.items=this.memoryDumps_.map(function(a){return{start:a.start,
get selected(){return this.memoryDump.selected},colorId:b,dotLetter:"M",memoryDump:a}})}},getModelEventFromItem:function(c){return c.memoryDump}};return{MemoryDumpTrack:e}});"use strict";
tv.exportTo("tv.c.tracks",function(){var e=tv.c.tracks.ProcessTrackBase,c=tv.b.ui.define("process-track",e);c.prototype={__proto__:e.prototype,decorate:function(b){tv.c.tracks.ProcessTrackBase.prototype.decorate.call(this,b)},drawTrack:function(b){switch(b){case tv.c.tracks.DrawType.INSTANT_EVENT:if(!this.processBase.instantEvents||0===this.processBase.instantEvents.length)break;var a=this.context(),c=window.devicePixelRatio||1,d=this.getBoundingClientRect(),e=a.canvas.getBoundingClientRect();a.save();
a.translate(0,c*(d.top-e.top));var g=this.viewport.currentDisplayTransform,e=g.xViewToWorld(0),c=g.xViewToWorld(d.width*c);tv.c.drawInstantSlicesAsLines(a,this.viewport.currentDisplayTransform,e,c,d.height,this.processBase.instantEvents,2);a.restore();break;case tv.c.tracks.DrawType.BACKGROUND:this.drawBackground_();return}tv.c.tracks.ContainerTrack.prototype.drawTrack.call(this,b)},drawBackground_:function(){var b=this.context(),a=b.canvas.getBoundingClientRect(),c=window.devicePixelRatio||1,d=!1;
b.fillStyle="#eee";for(var e=0;e<this.children.length;++e)if(this.children[e]instanceof tv.c.tracks.Track&&!(this.children[e]instanceof tv.c.tracks.SpacingTrack)&&(d=!d)){var g=this.children[e].getBoundingClientRect();b.fillRect(0,c*(g.top-a.top),b.canvas.width,c*g.height)}},set process(b){this.processBase=b},get process(){return this.processBase},get eventContainer(){return this.process},addContainersToTrackMap:function(b){b.addContainer(this.process,this);this.tracks_.forEach(function(a){a.addContainersToTrackMap(b)})},
addIntersectingItemsInRangeToSelectionInWorldSpace:function(b,a,c,d){tv.b.iterateOverIntersectingIntervals(this.processBase.instantEvents,function(a){return a.start},function(a){return a.duration},b,a,function(a){d.push(a)}.bind(this));tv.c.tracks.ContainerTrack.prototype.addIntersectingItemsInRangeToSelectionInWorldSpace.apply(this,arguments)},addClosestEventToSelection:function(b,a,c,d,e){this.addClosestInstantEventToSelection(this.processBase.instantEvents,b,a,e);tv.c.tracks.ContainerTrack.prototype.addClosestEventToSelection.apply(this,
arguments)}};return{ProcessTrack:c}});"use strict";
tv.exportTo("tv.c.tracks",function(){function e(b,a){var c=new tv.c.tracks.MultiRowTrack(b);c.heading="Interactions";c.buildSubRows_=function(a){a.sort(function(a,b){var d=a.title.localeCompare(b.title);return d?d:a.start-b.start});return tv.c.tracks.AsyncSliceGroupTrack.prototype.buildSubRows_.call({},a,!0)};c.addSubTrack_=function(a){var b=new tv.c.tracks.SliceTrack(this.viewport);b.slices=a;this.appendChild(b);return b};c.setItemsToGroup(a.interaction_records,{guid:tv.b.GUID.allocate(),model:a,
getSettingsKey:function(){}});return c}var c=tv.b.ui.define("trace-model-track",tv.c.tracks.ContainerTrack);c.prototype={__proto__:tv.c.tracks.ContainerTrack.prototype,decorate:function(b){tv.c.tracks.ContainerTrack.prototype.decorate.call(this,b);this.classList.add("model-track");this.highlighters_=tv.c.tracks.Highlighter.getAllRegisteredTypeInfos().map(function(a){return new a.constructor(b)});this.upperMode_=!1;this.annotationViews_=[]},get upperMode(){return this.upperMode_},set upperMode(b){this.upperMode_=
b;this.updateContents_()},detach:function(){tv.c.tracks.ContainerTrack.prototype.detach.call(this)},get model(){return this.model_},set model(b){this.model_=b;this.updateContents_();this.model_.addEventListener("annotationChange",this.updateAnnotations_.bind(this))},get hasVisibleContent(){return 0<this.children.length},updateContents_:function(){this.textContent="";this.model_&&(this.upperMode_?this.updateContentsForUpperMode_():this.updateContentsForLowerMode_())},updateContentsForUpperMode_:function(){},
updateContentsForLowerMode_:function(){if(this.model_.interaction_records.length){var b=new e(this.viewport_,this.model_);this.appendChild(b)}this.model_.alerts.length&&(b=new tv.c.tracks.AlertTrack(this.viewport_),b.alerts=this.model_.alerts,this.appendChild(b));this.model_.globalMemoryDumps.length&&(b=new tv.c.tracks.MemoryDumpTrack(this.viewport_),b.memoryDumps=this.model_.globalMemoryDumps,this.appendChild(b));this.appendKernelTrack_();b=this.model_.getAllProcesses();b.sort(tv.c.trace_model.Process.compare);
for(var a=0;a<b.length;++a){var c=b[a],d=new tv.c.tracks.ProcessTrack(this.viewport);d.process=c;d.hasVisibleContent&&this.appendChild(d)}this.viewport_.rebuildEventToTrackMap();this.viewport_.rebuildContainerToTrackMap();for(a=0;a<this.highlighters_.length;a++)this.highlighters_[a].processModel(this.model_);this.updateAnnotations_()},updateAnnotations_:function(){this.annotationViews_=[];for(var b=this.model_.getAllAnnotations(),a=0;a<b.length;a++)this.annotationViews_.push(b[a].getOrCreateView(this.viewport_))},
addEventsToTrackMap:function(b){if(this.model_){for(var a=this.children,c=0;c<a.length;++c)a[c].addEventsToTrackMap(b);void 0!==this.instantEvents&&this.instantEvents.forEach(function(a){b.addEvent(a,this)}.bind(this))}},addContainersToTrackMap:function(b){for(var a=this.children,c=0;c<a.length;++c)a[c].addContainersToTrackMap(b)},appendKernelTrack_:function(){var b=new tv.c.tracks.KernelTrack(this.viewport);b.kernel=this.model.kernel;b.hasVisibleContent&&this.appendChild(b)},drawTrack:function(b){var a=
this.context(),c=window.devicePixelRatio||1,d=this.getBoundingClientRect(),e=a.canvas.getBoundingClientRect();a.save();a.translate(0,c*(d.top-e.top));var e=this.viewport.currentDisplayTransform,g=e.xViewToWorld(0),c=e.xViewToWorld(d.width*c);switch(b){case tv.c.tracks.DrawType.GRID:this.viewport.drawMajorMarkLines(a);a.restore();return;case tv.c.tracks.DrawType.FLOW_ARROWS:if(0===this.model_.flowIntervalTree.size){a.restore();return}this.drawFlowArrows_(g,c);a.restore();return;case tv.c.tracks.DrawType.INSTANT_EVENT:if(!this.model_.instantEvents||
0===this.model_.instantEvents.length)break;tv.c.drawInstantSlicesAsLines(a,this.viewport.currentDisplayTransform,g,c,d.height,this.model_.instantEvents,4);break;case tv.c.tracks.DrawType.MARKERS:this.viewport.interestRange.isEmpty||(this.viewport.interestRange.draw(a,g,c),this.viewport.interestRange.drawIndicators(a,g,c));a.restore();return;case tv.c.tracks.DrawType.HIGHLIGHTS:for(b=0;b<this.highlighters_.length;b++)this.highlighters_[b].drawHighlight(a,e,g,c,d.height);a.restore();return;case tv.c.tracks.DrawType.ANNOTATIONS:for(b=
0;b<this.annotationViews_.length;b++)this.annotationViews_[b].draw(this.context());a.restore();return}a.restore();tv.c.tracks.ContainerTrack.prototype.drawTrack.call(this,b)},drawFlowArrows_:function(b,a){var c=this.context(),d=this.viewport.currentDisplayTransform;d.applyTransformToCanvas(c);d=d.xViewVectorToWorld(1);c.strokeStyle="rgba(0, 0, 0, 0.4)";c.fillStyle="rgba(0, 0, 0, 0.4)";c.lineWidth=1<d?1:d;for(var e=this.model_.flowIntervalTree.findIntersection(b,a),g=c.canvas.getBoundingClientRect(),
k=0;k<e.length;++k)this.drawFlowArrow_(c,e[k],g,d)},drawFlowArrow_:function(b,a,c,d){var e=window.devicePixelRatio||1,g=this.viewport.trackForEvent(a.startSlice),k=this.viewport.trackForEvent(a.endSlice),l=g.getBoundingClientRect(),m=k.getBoundingClientRect();a.startSlice.selected||a.endSlice.selected?(b.shadowBlur=1,b.shadowColor="red",b.shadowOffsety=2,b.strokeStyle="red"):a.selected?(b.shadowBlur=1,b.shadowColor="orange",b.shadowOffsety=2,b.strokeStyle="orange"):(b.shadowBlur=0,b.shadowOffsetX=
0,b.strokeStyle="rgba(0, 0, 0, 0.4)");var n=m.left+m.top+m.bottom+m.right;0===l.left+l.top+l.bottom+l.right&&0===n||(g=this.calculateTrackY_(g,c),c=this.calculateTrackY_(k,c),k=e*g,c*=e,g=(a.end-a.start)/2,b.beginPath(),b.moveTo(a.start,k),b.bezierCurveTo(a.start+g,k,a.start+g,c,a.end,c),b.stroke(),d=5*d*e,a.end-a.start<=2*d||(a=a.end,e*=m.height/4,tv.c.drawTriangle(b,a,c,a-d,c-e,a-d,c+e),b.fill()))},calculateTrackY_:function(b,a){var c=b.getBoundingClientRect();return 0===c.left+c.top+c.bottom+c.right?
this.calculateTrackY_(b.parentNode,a):c.top-a.top+c.height/2},addIntersectingItemsInRangeToSelectionInWorldSpace:function(b,a,c,d){tv.b.iterateOverIntersectingIntervals(this.model_.instantEvents,function(a){return a.start},function(a){return a.duration},b,a,function(a){d.push(a)}.bind(this));tv.c.tracks.ContainerTrack.prototype.addIntersectingItemsInRangeToSelectionInWorldSpace.apply(this,arguments)},addClosestEventToSelection:function(b,a,c,d,e){this.addClosestInstantEventToSelection(this.model_.instantEvents,
b,a,e);tv.c.tracks.ContainerTrack.prototype.addClosestEventToSelection.apply(this,arguments)}};return{TraceModelTrack:c}});"use strict";
tv.exportTo("tv.c.tracks",function(){var e=tv.b.ui.define("ruler-track",tv.c.tracks.HeadingTrack),c=Math.log(10);e.prototype={__proto__:tv.c.tracks.HeadingTrack.prototype,decorate:function(b){tv.c.tracks.HeadingTrack.prototype.decorate.call(this,b);this.classList.add("ruler-track");this.strings_secs_=[];this.strings_msecs_=[];this.viewportChange_=this.viewportChange_.bind(this);b.addEventListener("change",this.viewportChange_)},detach:function(){tv.c.tracks.HeadingTrack.prototype.detach.call(this);
this.viewport.removeEventListener("change",this.viewportChange_)},viewportChange_:function(){this.viewport.interestRange.isEmpty?this.classList.remove("tall-mode"):this.classList.add("tall-mode")},draw:function(b,a,c){switch(b){case tv.c.tracks.DrawType.GRID:this.drawGrid_(a,c);break;case tv.c.tracks.DrawType.MARKERS:this.viewport.interestRange.isEmpty||this.viewport.interestRange.draw(this.context(),a,c)}},drawGrid_:function(b,a){for(var e=this.context(),d=window.devicePixelRatio||1,h=e.canvas.getBoundingClientRect(),
g=this.getBoundingClientRect(),h=h.width*d,k=g.height*d,l=!this.viewport.interestRange.isEmpty,m=l?2*k/5:k,n=this.viewport,g=n.currentDisplayTransform,d=150*d,q=g.xViewVectorToWorld(d),w,q=Math.pow(10,Math.ceil(Math.log(q)/c)),s=[10,5,2,1],D=0;D<s.length;++D)if(!(g.xWorldVectorToView(q/s[D])<d)){w=q/s[D-1];break}var F=void 0;100>w?(q="ms",s=1,F=this.strings_msecs_):(q="s",s=1E3,F=this.strings_secs_);var C=g.xWorldVectorToView(w/5),D=Math.floor(b/w)*w,v=Math.floor(0.25*m);e.save();d=window.devicePixelRatio||
1;e.lineWidth=Math.round(d);var y=e.lineWidth%2/2;e.translate(y,-y);e.fillStyle="rgb(0, 0, 0)";e.strokeStyle="rgb(0, 0, 0)";e.textAlign="left";e.textBaseline="top";e.font=9*d+"px sans-serif";n.majorMarkPositions=[];e.beginPath();for(y=D;y<a;y+=w){var B=Math.floor(g.xWorldToView(y)),D=Math.floor(1E5*(y/s))/1E5;F[D]||(F[D]=D+" "+q);e.fillText(F[D],B+2*d,0);n.majorMarkPositions.push(B);tv.c.drawLine(e,B,0,B,m);for(D=1;5>D;++D){var H=Math.floor(B+C*D);tv.c.drawLine(e,H,m-v,H,m)}}e.strokeStyle="rgb(0, 0, 0)";
tv.c.drawLine(e,0,k,h,k);e.stroke();l&&(tv.c.drawLine(e,0,m,h,m),e.stroke(),k=10*d,w=1.75*m,m=3*d,l=10*d,D=2*(m+k),e.textBaseline="middle",e.font=14*d+"px sans-serif",F=n.interestRange,0===F.range?(n=F.min,g=g.xWorldToView(n),s=Math.abs(Math.floor(1E3*(n/s))/1E3),q=s+" "+q,s=g+4*d,C=e.measureText(q).width,s+C>h&&(s=g-4*d-C),e.fillStyle="rgb(0,0,0)",e.fillText(q,s,w)):(q=F.max,d=g.xWorldToView(F.min),n=g.xWorldToView(q),C=F.range,F=g.xWorldVectorToView(C),g=d+F/2,100>C?(q="ms",s=1):(q="s",s=1E3),q=
Math.abs(Math.floor(1E3*(C/s))/1E3)+" "+q,C=e.measureText(q).width,y=C+D+k,s=g-C/2,v=s+C,y>F?(s=n+2*k,s+C>h&&(s=d-2*k-C),e.fillStyle="rgb(0,0,0)",e.fillText(q,s,w),e.strokeStyle="rgb(128,121,121)",e.beginPath(),tv.c.drawLine(e,d,w,n,w),e.stroke(),e.fillStyle="rgb(128,121,121)",tv.c.drawArrow(e,d-1.5*k,w,d,w,l,m),tv.c.drawArrow(e,n+1.5*k,w,n,w,l,m)):D<=F&&(y<=F?(e.fillStyle="rgb(0,0,0)",e.fillText(q,s,w),h=s-k,g=v+k):h=g,e.strokeStyle="rgb(128,121,121)",e.fillStyle="rgb(128,121,121)",tv.c.drawArrow(e,
h,w,d,w,l,m),tv.c.drawArrow(e,g,w,n,w,l,m)),e.restore()))},addIntersectingItemsInRangeToSelection:function(b,a,c,d,e){},addAllObjectsMatchingFilterToSelection:function(b,a){}};return{RulerTrack:e}});"use strict";
tv.exportTo("tv.c",function(){var e=tv.c.Selection,c=tv.c.trace_model.SelectionState,b=tv.c.TimelineViewport,a=new tv.c.TimelineDisplayTransform,f=tv.b.ui.define("div");f.prototype={__proto__:HTMLDivElement.prototype,model_:null,decorate:function(){this.classList.add("timeline-track-view");this.viewport_=new b(this);this.viewportDisplayTransformAtMouseDown_=null;this.rulerTrackContainer_=new tv.c.tracks.DrawingContainer(this.viewport_);this.appendChild(this.rulerTrackContainer_);this.rulerTrackContainer_.invalidate();
this.rulerTrack_=new tv.c.tracks.RulerTrack(this.viewport_);this.rulerTrackContainer_.appendChild(this.rulerTrack_);this.upperModelTrack_=new tv.c.tracks.TraceModelTrack(this.viewport_);this.upperModelTrack_.upperMode=!0;this.rulerTrackContainer_.appendChild(this.upperModelTrack_);this.modelTrackContainer_=new tv.c.tracks.DrawingContainer(this.viewport_);this.appendChild(this.modelTrackContainer_);this.modelTrackContainer_.style.display="block";this.modelTrackContainer_.invalidate();this.viewport_.modelTrackContainer=
this.modelTrackContainer_;this.modelTrack_=new tv.c.tracks.TraceModelTrack(this.viewport_);this.modelTrackContainer_.appendChild(this.modelTrack_);this.timingTool_=new tv.c.TimingTool(this.viewport_,this);this.initMouseModeSelector();this.dragBox_=this.ownerDocument.createElement("div");this.dragBox_.className="drag-box";this.appendChild(this.dragBox_);this.hideDragBox_();this.initHintText_();this.bindEventListener_(document,"keypress",this.onKeypress_,this);this.bindEventListener_(document,"keydown",
this.onKeydown_,this);this.bindEventListener_(document,"keyup",this.onKeyup_,this);this.bindEventListener_(this,"dblclick",this.onDblClick_,this);this.bindEventListener_(this,"mousewheel",this.onMouseWheel_,this);this.addEventListener("mousemove",this.onMouseMove_);this.addEventListener("touchstart",this.onTouchStart_);this.addEventListener("touchmove",this.onTouchMove_);this.addEventListener("touchend",this.onTouchEnd_);this.mouseViewPosAtMouseDown_={x:0,y:0};this.lastMouseViewPos_={x:0,y:0};this.lastTouchViewPositions_=
[];this.selection_=new e;this.highlight_=new e;this.isZooming_=this.isPanningAndScanning_=!1},bindEventListener_:function(a,b,c,e){this.boundListeners_||(this.boundListeners_=[]);c=c.bind(e);this.boundListeners_.push({object:a,event:b,boundFunc:c});a.addEventListener(b,c)},initMouseModeSelector:function(){this.mouseModeSelector_=new tv.b.ui.MouseModeSelector(this);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_));var a=tv.b.ui.MOUSE_SELECTOR_MODE;this.mouseModeSelector_.supportedModeMask=a.SELECTION|a.PANSCAN|a.ZOOM|a.TIMING;this.mouseModeSelector_.settingsKey="timelineTrackView.mouseModeSelector";this.mouseModeSelector_.setKeyCodeForMode(a.PANSCAN,50);this.mouseModeSelector_.setKeyCodeForMode(a.SELECTION,49);this.mouseModeSelector_.setKeyCodeForMode(a.ZOOM,51);this.mouseModeSelector_.setKeyCodeForMode(a.TIMING,
52);this.mouseModeSelector_.setKeyCodeCondition(function(){return this.listenToKeys_}.bind(this));this.mouseModeSelector_.setModifierForAlternateMode(a.SELECTION,tv.b.ui.MODIFIER.SHIFT);this.mouseModeSelector_.setModifierForAlternateMode(a.PANSCAN,tv.b.ui.MODIFIER.SPACE);this.mouseModeSelector_.setModifierForAlternateMode(a.ZOOM,tv.b.ui.MODIFIER.CMD_OR_CTRL)},detach:function(){this.modelTrack_.detach();this.upperModelTrack_.detach();for(var a=0;a<this.boundListeners_.length;a++){var b=this.boundListeners_[a];
b.object.removeEventListener(b.event,b.boundFunc)}this.boundListeners_=void 0;this.viewport_.detach()},get viewport(){return this.viewport_},get model(){return this.model_},set model(a){if(!a)throw Error("Model cannot be null");var b=this.model_!==a;this.model_=a;this.modelTrack_.model=a;this.upperModelTrack_.model=a;b&&this.viewport_.setWhenPossible(this.setInitialViewport_.bind(this));tv.b.setPropertyAndDispatchChange(this,"model",a)},get hasVisibleContent(){return this.modelTrack_.hasVisibleContent||
this.upperModelTrack_.hasVisibleContent},setInitialViewport_:function(){this.modelTrackContainer_.updateCanvasSizeIfNeeded_();var b=this.modelTrackContainer_.canvas.width,c,e;this.model_.bounds.isEmpty?(c=0,e=1E3):0===this.model_.bounds.range?(c=this.model_.bounds.min,e=1E3):(c=this.model_.bounds.min,e=this.model_.bounds.range);var f=0.15*e;a.set(this.viewport_.currentDisplayTransform);a.xSetWorldBounds(c-f,c+e+f,b);this.viewport_.setDisplayTransformImmediately(a)},addAllObjectsMatchingFilterToSelectionAsTask:function(a,
b){return this.modelTrack_.addAllObjectsMatchingFilterToSelectionAsTask(a,b)},get focusElement(){return this.focusElement_?this.focusElement_:this.parentElement},set focusElement(a){this.focusElement_=a},get listenToKeys_(){return!this.viewport_.isAttachedToDocumentOrInTestMode||document.activeElement instanceof TracingFindControl||document.activeElement instanceof TracingScriptingControl?!1:!this.focusElement_?!0:0<=this.focusElement.tabIndex?document.activeElement==this.focusElement?!0:tv.b.ui.elementIsChildOf(document.activeElement,
this.focusElement):!0},onMouseMove_:function(a){this.isZooming_||this.storeLastMousePos_(a)},onTouchStart_:function(a){this.storeLastTouchPositions_(a);this.focusElements_()},onTouchMove_:function(a){a.preventDefault();this.onUpdateTransformForTouch_(a)},onTouchEnd_:function(a){this.storeLastTouchPositions_(a);this.focusElements_()},onKeypress_:function(a){if(this.listenToKeys_&&"INPUT"!=document.activeElement.nodeName){var b=this.modelTrackContainer_.canvas.clientWidth;switch(a.keyCode){case 119:case 44:this.zoomBy_(1.5,
!0);break;case 115:case 111:this.zoomBy_(1/1.5,!0);break;case 103:this.onGridToggle_(!0);break;case 71:this.onGridToggle_(!1);break;case 87:case 60:this.zoomBy_(10,!0);break;case 83:case 79:this.zoomBy_(0.1,!0);break;case 97:this.queueSmoothPan_(0.3*b,0);break;case 100:case 101:this.queueSmoothPan_(-0.3*b,0);break;case 65:this.queueSmoothPan_(0.5*b,0);break;case 68:this.queueSmoothPan_(-0.5*b,0);break;case 48:this.setInitialViewport_();break;case 102:this.zoomToSelection();break;case 109:this.setCurrentSelectionAsInterestRange_();
break;case 104:this.toggleHighDetails_()}}},onKeydown_:function(a){if(this.listenToKeys_){var b,c=this.modelTrackContainer_.canvas.clientWidth;switch(a.keyCode){case 37:(b=this.selection.getShiftedSelection(this.viewport,-1))?(this.setSelectionAndClearHighlight(b),this.panToSelection(),a.preventDefault()):this.queueSmoothPan_(0.3*c,0);break;case 39:(b=this.selection.getShiftedSelection(this.viewport,1))?(this.setSelectionAndClearHighlight(b),this.panToSelection(),a.preventDefault()):this.queueSmoothPan_(0.3*
-c,0);break;case 9:-1==this.focusElement.tabIndex&&(a.shiftKey?this.selectPrevious_(a):this.selectNext_(a),a.preventDefault())}}},onKeyup_:function(a){this.listenToKeys_&&(a.shiftKey||this.dragBeginEvent_&&this.setDragBoxPosition_(this.dragBoxXStart_,this.dragBoxYStart_,this.dragBoxXEnd_,this.dragBoxYEnd_))},onDblClick_:function(a){if(this.mouseModeSelector_.mode===tv.b.ui.MOUSE_SELECTOR_MODE.SELECTION&&this.selection.length&&this.selection[0].title){a=new e;var b=new tv.c.ExactTitleFilter(this.selection[0].title);
this.modelTrack_.addAllObjectsMatchingFilterToSelection(b,a);this.setSelectionAndClearHighlight(a)}},onMouseWheel_:function(a){if(a.altKey){var b=Math.pow(1.5,a.wheelDelta/120);this.zoomBy_(b);a.preventDefault()}},queueSmoothPan_:function(a,b){var c=this.viewport_.currentDisplayTransform.xViewVectorToWorld(a),c=new tv.c.TimelineDisplayTransformPanAnimation(c,b);this.viewport_.queueDisplayTransformAnimation(c)},zoomBy_:function(b,c){if(!(0>=b)){c=!!c;var e=this.viewport_,f=this.modelTrackContainer_.canvas.clientWidth,
l=this.lastMouseViewPos_.x*(window.devicePixelRatio||1),m=e.currentDisplayTransform.xViewToWorld(l);c?(f=new tv.c.TimelineDisplayTransformZoomToAnimation(m,l,e.currentDisplayTransform.panY,b),e.queueDisplayTransformAnimation(f)):(a.set(e.currentDisplayTransform),a.scaleX*=b,a.xPanWorldPosToViewPos(m,l,f),e.setDisplayTransformImmediately(a))}},zoomToSelection:function(){if(this.selectionOfInterest.length){var a=this.selectionOfInterest.bounds;a.range&&(a=new tv.c.TimelineDisplayTransformZoomToAnimation(a.center,
this.modelTrackContainer_.canvas.width/2,this.viewport_.currentDisplayTransform.panY,this.modelTrackContainer_.canvas.width/(1.25*a.range)/this.viewport_.currentDisplayTransform.scaleX),this.viewport_.queueDisplayTransformAnimation(a))}},panToSelection:function(){var b;if(this.selectionOfInterest.length){b=this.selectionOfInterest.bounds;var c=this.modelTrackContainer_.canvas.width,e=this.viewport_.currentDisplayTransform;a.set(e);a.xPanWorldBoundsIntoView(b.min,b.max,c);b=a.panX-e.panX;b=new tv.c.TimelineDisplayTransformPanAnimation(b,
0);this.viewport_.queueDisplayTransformAnimation(b)}},navToPosition:function(a){var b=a.location,c=a.scaleX;a=b.getContainingTrack(this.viewport_);var b=b.xWorld,e=this.modelTrackContainer_.canvas.width/5,c=c/this.viewport_.currentDisplayTransform.scaleX;a.scrollIntoViewIfNeeded();a=new tv.c.TimelineDisplayTransformZoomToAnimation(b,e,this.viewport_.currentDisplayTransform.panY,c);this.viewport_.queueDisplayTransformAnimation(a);this.xNavStringMarker_&&this.model.removeAnnotation(this.xNavStringMarker_);
this.xNavStringMarker_=new tv.c.trace_model.XMarkerAnnotation(b);this.model.addAnnotation(this.xNavStringMarker_)},removeXNavStringMarker:function(){this.xNavStringMarker_&&this.model.removeAnnotation(this.xNavStringMarker_)},setCurrentSelectionAsInterestRange_:function(){var a=this.selection.bounds;a.empty?this.viewport_.interestRange.reset():this.viewport_.interestRange.min==a.min&&this.viewport_.interestRange.max==a.max?this.viewport_.interestRange.reset():this.viewport_.interestRange.set(a)},
toggleHighDetails_:function(){this.viewport_.highDetails=!this.viewport_.highDetails},set selection(a){this.setSelectionAndHighlight(a,this.highlight_)},get selection(){return this.selection_},set highlight(a){this.setSelectionAndHighlight(this.selection_,a)},get highlight(){return this.highlight_},get selectionOfInterest(){return!this.selection_.length&&this.highlight_.length?this.highlight_:this.selection_},setSelectionAndClearHighlight:function(a){this.setSelectionAndHighlight(a,null)},setHighlightAndClearSelection:function(a){this.setSelectionAndHighlight(null,
a)},setSelectionAndHighlight:function(a,b){if(!(a===this.selection_&&b===this.highlight_)){if(null!==a&&!(a instanceof e)||null!==b&&!(b instanceof e))throw Error("Expected Selection");b&&b.length?(this.resetEventsTo_(c.DIMMED),b!==this.highlight_&&(this.highlight_=b),this.setSelectionState_(b,c.HIGHLIGHTED)):(this.resetEventsTo_(c.NONE),this.highlight_=new e);a&&a.length?(a!==this.selection_&&(this.selection_=a),this.setSelectionState_(a,c.SELECTED)):this.selection_=new e;tv.b.dispatchSimpleEvent(this,
"selectionChange");this.showHintText_("Press 'm' to mark current selection");if(this.selectionOfInterest.length){var f=this.viewport_.trackForEvent(this.selectionOfInterest[0]);f&&f.scrollIntoViewIfNeeded()}this.viewport_.dispatchChangeEvent()}},setSelectionState_:function(a,b){for(var c=0;c<a.length;c++)a[c].selectionState=b},resetEventsTo_:function(a){var b=this.highlight_.length;b&&a!==c.DIMMED||!b&&a===c.DIMMED?this.model.iterateAllEvents(function(b){b.selectionState=a}):(this.setSelectionState_(this.selection_,
a),this.setSelectionState_(this.highlight_,a))},hideDragBox_:function(){this.dragBox_.style.left="-1000px";this.dragBox_.style.top="-1000px";this.dragBox_.style.width=0;this.dragBox_.style.height=0},setDragBoxPosition_:function(a,b,c,e){var f=Math.min(b,e);e=Math.max(b,e);b=Math.min(a,c);a=Math.max(a,c);this.modelTrack_.getBoundingClientRect();c=b+(a-b);e=f+(e-f);var m=this.modelTrackContainer_.getBoundingClientRect(),n=m.left,q=m.top,w=m.right,m=m.bottom,s=window.getComputedStyle(this.querySelector("heading")).width,
s=parseInt(s),n=n+s;s={};b>w||c<n||f>m||e<q?f=!1:(s.left=Math.max(n,b),s.top=Math.max(q,f),s.right=Math.min(w,c),s.bottom=Math.min(m,e),s.width=s.right-s.left,s.height=s.bottom-s.top,f=s);this.dragBox_.style.left=f.left+"px";this.dragBox_.style.width=f.width+"px";this.dragBox_.style.top=f.top+"px";this.dragBox_.style.height=f.height+"px";f=window.devicePixelRatio||1;c=this.modelTrackContainer_.canvas;e=this.viewport_.currentDisplayTransform;b=e.xViewToWorld((b-c.offsetLeft)*f);a=e.xViewToWorld((a-
c.offsetLeft)*f);f=Math.round(100*(a-b))/100;this.dragBox_.textContent=f+"ms";f=new tv.b.Event("selectionChanging");f.loWX=b;f.hiWX=a;this.dispatchEvent(f)},onGridToggle_:function(a){var b=a?this.selection.bounds.min:this.selection.bounds.max;if(this.viewport_.gridEnabled&&this.viewport_.gridSide===a&&this.viewport_.gridInitialTimebase===b)this.viewport_.gridside=void 0,this.viewport_.gridEnabled=!1,this.viewport_.gridInitialTimebase=void 0;else{var c=Math.ceil((b-this.model_.bounds.min)/this.viewport_.gridStep_);
this.viewport_.gridEnabled=!0;this.viewport_.gridSide=a;this.viewport_.gridInitialTimebase=b;this.viewport_.gridTimebase=b-(c+1)*this.viewport_.gridStep_}},storeLastMousePos_:function(a){this.lastMouseViewPos_=this.extractRelativeMousePosition_(a)},storeLastTouchPositions_:function(a){this.lastTouchViewPositions_=this.extractRelativeTouchPositions_(a)},extractRelativeMousePosition_:function(a){var b=this.modelTrackContainer_.canvas;return{x:a.clientX-b.offsetLeft,y:a.clientY-b.offsetTop}},extractRelativeTouchPositions_:function(a){for(var b=
this.modelTrackContainer_.canvas,c=[],e=0;e<a.touches.length;++e)c.push({x:a.touches[e].clientX-b.offsetLeft,y:a.touches[e].clientY-b.offsetTop});return c},storeInitialMouseDownPos_:function(a){a=this.extractRelativeMousePosition_(a);this.mouseViewPosAtMouseDown_.x=a.x;this.mouseViewPosAtMouseDown_.y=a.y},focusElements_:function(){document.activeElement&&document.activeElement.blur();0<=this.focusElement.tabIndex&&this.focusElement.focus()},storeInitialInteractionPositionsAndFocus_:function(a){this.storeInitialMouseDownPos_(a);
this.storeLastMousePos_(a);this.focusElements_()},onBeginPanScan_:function(a){this.viewportDisplayTransformAtMouseDown_=this.viewport_.currentDisplayTransform.clone();this.isPanningAndScanning_=!0;this.storeInitialInteractionPositionsAndFocus_(a);a.preventDefault()},onUpdatePanScan_:function(b){if(this.isPanningAndScanning_){var c=(window.devicePixelRatio||1)*(this.lastMouseViewPos_.x-this.mouseViewPosAtMouseDown_.x),e=this.lastMouseViewPos_.y-this.mouseViewPosAtMouseDown_.y;a.set(this.viewportDisplayTransformAtMouseDown_);
a.incrementPanXInViewUnits(c);a.panY-=e;this.viewport_.setDisplayTransformImmediately(a);b.preventDefault();b.stopPropagation();this.storeLastMousePos_(b)}},onEndPanScan_:function(a){this.isPanningAndScanning_=!1;this.storeLastMousePos_(a);a.isClick||a.preventDefault()},onBeginSelection_:function(a){var b=this.modelTrackContainer_.canvas,c=this.modelTrack_.getBoundingClientRect(),b=b.getBoundingClientRect();c&&(a.clientX>=c.left&&a.clientX<c.right&&a.clientY>=c.top&&a.clientY<c.bottom&&a.clientX>=
b.left&&a.clientX<b.right)&&(this.dragBeginEvent_=a,this.storeInitialInteractionPositionsAndFocus_(a),a.preventDefault())},onUpdateSelection_:function(a){this.dragBeginEvent_&&(this.dragBoxXStart_=this.dragBeginEvent_.clientX,this.dragBoxXEnd_=a.clientX,this.dragBoxYStart_=this.dragBeginEvent_.clientY,this.dragBoxYEnd_=a.clientY,this.setDragBoxPosition_(this.dragBoxXStart_,this.dragBoxYStart_,this.dragBoxXEnd_,this.dragBoxYEnd_))},onEndSelection_:function(a){a.preventDefault();if(this.dragBeginEvent_){this.hideDragBox_();
var b=this.dragBeginEvent_;this.dragBeginEvent_=null;var c=Math.min(b.clientY,a.clientY),f=Math.max(b.clientY,a.clientY),l=Math.min(b.clientX,a.clientX);a=Math.max(b.clientX,a.clientX);b=this.modelTrackContainer_.canvas.getBoundingClientRect().left;l-=b;b=a-b;a=new e;this.modelTrack_.addIntersectingItemsInRangeToSelection(l,b,c,f,a);c=new tv.c.RequestSelectionChangeEvent;c.selection=a;this.dispatchEvent(c)}},onBeginZoom_:function(a){this.isZooming_=!0;this.storeInitialInteractionPositionsAndFocus_(a);
a.preventDefault()},onUpdateZoom_:function(a){if(this.isZooming_){var b=this.extractRelativeMousePosition_(a);this.zoomBy_(1+0.01*(this.lastMouseViewPos_.y-b.y),!1);this.storeLastMousePos_(a)}},onEndZoom_:function(a){this.isZooming_=!1;a.isClick||a.preventDefault()},computeTouchCenter_:function(a){for(var b=0,c=0,e=0;e<a.length;++e)b+=a[e].x,c+=a[e].y;return{x:b/a.length,y:c/a.length}},computeTouchSpan_:function(a){for(var b=Number.MAX_VALUE,c=Number.MAX_VALUE,e=Number.MIN_VALUE,f=Number.MIN_VALUE,
m=0;m<a.length;++m)b=Math.min(b,a[m].x),c=Math.min(c,a[m].y),e=Math.max(e,a[m].x),f=Math.max(f,a[m].y);return Math.sqrt((b-e)*(b-e)+(c-f)*(c-f))},onUpdateTransformForTouch_:function(b){var c=this.extractRelativeTouchPositions_(b),e=this.lastTouchViewPositions_,f=this.computeTouchCenter_(c),l=this.computeTouchCenter_(e),m=this.computeTouchSpan_(c),n=this.computeTouchSpan_(e),e=this.viewport_,c=this.modelTrackContainer_.canvas.clientWidth,q=window.devicePixelRatio||1,w=q*(f.x-l.x),l=f.y-l.y,m=10<n?
m/n:1,f=q*f.x,q=e.currentDisplayTransform.xViewToWorld(f);a.set(e.currentDisplayTransform);a.scaleX*=m;a.xPanWorldPosToViewPos(q,f,c);a.incrementPanXInViewUnits(w);a.panY-=l;e.setDisplayTransformImmediately(a);this.storeLastTouchPositions_(b)},initHintText_:function(){this.hintTextBox_=this.ownerDocument.createElement("div");this.hintTextBox_.className="hint-text";this.hintTextBox_.style.display="none";this.appendChild(this.hintTextBox_);this.pendingHintTextClearTimeout_=void 0},showHintText_:function(a){this.pendingHintTextClearTimeout_&&
(window.clearTimeout(this.pendingHintTextClearTimeout_),this.pendingHintTextClearTimeout_=void 0);this.pendingHintTextClearTimeout_=setTimeout(this.hideHintText_.bind(this),1E3);this.hintTextBox_.textContent=a;this.hintTextBox_.style.display=""},hideHintText_:function(){this.pendingHintTextClearTimeout_=void 0;this.hintTextBox_.style.display="none"}};return{TimelineTrackView:f}});"use strict";
Polymer("tracing-find-control",{filterKeyDown:function(e){e.stopPropagation();13===e.keyCode&&(e.shiftKey?this.findPrevious():this.findNext())},filterKeyPress:function(e){e.stopPropagation()},filterBlur:function(e){this.updateHitCountEl()},filterFocus:function(e){this.controller.reset();this.$.filter.select()},filterMouseUp:function(e){e.preventDefault()},get controller(){return this.controller_},set controller(e){this.controller_=e;this.updateHitCountEl()},focus:function(){this.$.filter.focus()},
get hasFocus(){return this===document.activeElement},filterTextChanged:function(){this.controller.filterText=this.$.filter.value;this.$.hitCount.textContent="";this.$.spinner.style.visibility="visible";this.controller.updateFilterHits().then(function(){this.$.spinner.style.visibility="hidden";this.updateHitCountEl()}.bind(this))},findNext:function(){this.controller&&this.controller.findNext();this.updateHitCountEl()},findPrevious:function(){this.controller&&this.controller.findPrevious();this.updateHitCountEl()},
updateHitCountEl:function(){if(!this.controller||!this.hasFocus)this.$.hitCount.textContent="";else{var e=this.controller.filterHits.length;this.$.hitCount.textContent=(0===e?-1:this.controller.currentHitIndex)+1+" of "+e}}});"use strict";Polymer("tv-c-scripting-object",{get scriptName(){throw Error("Not implemented");},get scriptValue(){return this},onTimelineChanged:function(e){}});"use strict";
Polymer("tv-e-tquery-context",{ready:function(){this.event=void 0;this.ancestors=[]},push:function(e){var c=document.createElement(this.element.name);c.ancestors=this.ancestors.slice();c.ancestors.push(e);return c},pop:function(e){e=document.createElement(this.element.name);e.event=this.ancestors[this.ancestors.length-1];e.ancestors=this.ancestors.slice(0,this.ancestors.length-1);return e}});"use strict";
Polymer("tv-e-tquery-filter",{get scriptName(){},evaluate:function(e){throw Error("Not implemented");},matchValue_:function(e,c){return c instanceof RegExp?c.test(e):c instanceof Function?c(e):e===c},normalizeFilterExpression:function(e){if(e instanceof String||"string"==typeof e||e instanceof RegExp){var c=document.createElement("tv-e-tquery-filter-has-title");c.expected=e;return c}return e}});"use strict";
Polymer("tv-e-tquery-filter-has-ancestor",{ready:function(){this.subExpression_=void 0},get scriptName(){return"hasAncestor"},get scriptValue(){return function(e){var c=document.createElement(this.element.name);c.subExpression=e;return c}.bind(this)},set subExpression(e){this.subExpression_=this.normalizeFilterExpression(e)},get subExpression(){return this.subExpression_},evaluate:function(e){if(!this.subExpression)return 0<e.ancestors.length;for(;e.ancestors.length;)if(e=e.pop(),this.subExpression.evaluate(e))return!0;
return!1}});"use strict";Polymer("tv-e-tquery-filter-has-title",{ready:function(){this.expected=void 0},get scriptName(){return"hasTitle"},get scriptValue(){return function(e){var c=document.createElement(this.element.name);c.expected=e;return c}.bind(this)},evaluate:function(e){return this.matchValue_(e.event.title,this.expected)}});"use strict";
Polymer("tv-e-tquery",{ready:function(){this.selection_=this.filterExpression_=this.parent_=this.timeline_=void 0},get scriptName(){return"$t"},onTimelineChanged:function(e){this.timeline_=e;this.selection_=void 0},get timeline(){return this.timeline_},filter:function(e){var c=document.createElement("tv-e-tquery");c.timeline_=this.timeline;c.parent_=this;c.filterExpression_=document.createElement("tv-e-tquery-filter").normalizeFilterExpression(e);return c},createFilterTaskGraph_:function(){for(var e=
[],c=this;void 0!==c;)e.push(c),c=c.parent_;for(var b=new tv.b.Task,a=b,f=e.length-1;0<=f;f--)c=e[f],void 0===c.selection_&&(c.selection_=new tv.c.Selection,a=void 0===c.parent_?a.after(this.selectEverythingAsTask_(c.selection_)):this.createFilterTaskForNode_(a,c,e[f+1]));return{rootTask:b,lastTask:a,lastNode:c}},createFilterTaskForNode_:function(e,c,b){return e.after(function(){c.evaluateFilterExpression_(b.selection_,c.selection_)},this)},evaluateFilterExpression_:function(e,c){var b={};e.forEach(function(a){var f=
document.createElement("tv-e-tquery-context");f.event=a;this.evaluateFilterExpressionForEvent_(f,e,c,b)}.bind(this))},evaluateFilterExpressionForEvent_:function(e,c,b,a){var f=e.event;c.contains(f)&&!a[f.guid]&&(a[f.guid]=!0,(!this.filterExpression_||this.filterExpression_.evaluate(e))&&b.push(f));if(f.subSlices){e=e.push(f);for(var d=0;d<f.subSlices.length;d++)e.event=f.subSlices[d],this.evaluateFilterExpressionForEvent_(e,c,b,a)}},show:function(){var e=this.createFilterTaskGraph_();e.lastTask=e.lastTask.after(function(){this.timeline.setHighlightAndClearSelection(e.lastNode.selection_)},
this);return e.rootTask},selectEverythingAsTask_:function(e){var c=new tv.c.Filter;return this.timeline.addAllObjectsMatchingFilterToSelectionAsTask(c,e)},get selection(){if(void 0===this.selection_){var e=this.createFilterTaskGraph_();tv.b.Task.RunSynchronously(e.rootTask)}return this.selection_}});"use strict";
Polymer("tv-c-scripting-controller",{ready:function(){this.timeline_=void 0;this.scriptObjectNames_=[];this.scriptObjectValues_=[];tv.b.getPolymerElementsThatSubclass("tv-c-scripting-object").forEach(function(e){e=document.createElement(e);e.scriptName&&(this.addScriptObject(e.scriptName,e.scriptValue),window[e.scriptName]=e.scriptValue)}.bind(this))},get timeline(){return this.timeline_},set timeline(e){this.timeline_=e;this.scriptObjectValues_.forEach(function(c){if(c.onTimelineChanged)c.onTimelineChanged(e)})},
addScriptObject:function(e,c){this.scriptObjectNames_.push(e);this.scriptObjectValues_.push(c)},executeCommand:function(e){return(new Function(this.scriptObjectNames_,"return eval("+e+")")).apply(null,this.scriptObjectValues_)}});"use strict";
Polymer("tracing-scripting-control",{_isEnterKey:function(e){return 229!==e.keyCode&&"Enter"===e.keyIdentifier},_setFocused:function(e){var c=this.$.prompt;e?(c.focus(),this.$.root.classList.add("focused"),0<c.innerText.length&&window.getSelection().collapse(c.firstChild,c.innerText.length)):(c.blur(),this.$.root.classList.remove("focused"),e=document.createElement("input"),e.focus(),e.setSelectionRange(0,0),e.blur())},onConsoleFocus:function(e){e.stopPropagation();this._setFocused(!0)},onConsoleBlur:function(e){e.stopPropagation();
this._setFocused(!1)},promptKeyDown:function(e){e.stopPropagation();if(this._isEnterKey(e)){e=this.$.prompt;var c=e.innerText;if(0!==c.length){e.innerText="";this.addLine_(String.fromCharCode(187)+" "+c);try{var b=this.controller_.executeCommand(c)}catch(a){b=a.stack||a.stackTrace}b instanceof tv.b.Task?tv.b.Task.RunWhenIdle(b):this.addLine_(b)}}},addLine_:function(e){var c=this.$.history;0!==c.innerText.length&&(c.innerText+="\n");c.innerText+=e},promptKeyPress:function(e){e.stopPropagation()},toggleVisibility:function(){var e=
this.$.root;this.visible?(e.classList.add("hidden"),this._setFocused(!1)):(e.classList.remove("hidden"),this._setFocused(!0))},get hasFocus(){return this===document.activeElement},get visible(){return!this.$.root.classList.contains("hidden")},get controller(){return this.controller_},set controller(e){this.controller_=e}});"use strict";
Polymer("tv-c-side-panel",{ready:function(){this.objectInstance_=void 0},get rangeOfInterest(){throw Error("Not implemented");},set rangeOfInterest(e){throw Error("Not implemented");},get selection(){throw Error("Not implemented");},set selection(e){throw Error("Not implemented");},get model(){throw Error("Not implemented");},set model(e){throw Error("Not implemented");}});"use strict";
Polymer("tv-c-side-panel-container",{ready:function(){this.activePanelContainer_=this.$.active_panel_container;this.tabStrip_=this.$.tab_strip;this.model_=void 0;this.rangeOfInterest_=new tv.b.Range},get model(){return this.model_},set model(e){this.model_=e;this.activePanelType_=void 0;this.updateContents_()},get expanded(){this.hasAttribute("expanded")},get activePanel(){return 0===this.activePanelContainer_.children.length?void 0:this.activePanelContainer_.children[0]},get activePanelType(){return this.activePanelType_},
set activePanelType(e){if(void 0===this.model_)throw Error("Cannot activate panel without a model");var c=void 0;e&&(c=document.createElement(e));if(void 0!==c&&!c.supportsModel(this.model_))throw Error("Cannot activate panel: does not support this model");this.activePanelType&&this.getLabelElementForPanelType_(this.activePanelType).removeAttribute("selected");this.activePanelContainer_.textContent="";void 0===e?(this.removeAttribute("expanded"),this.activePanelType_=void 0):(this.getLabelElementForPanelType_(e).setAttribute("selected",
!0),this.setAttribute("expanded",!0),this.activePanelContainer_.appendChild(c),c.rangeOfInterest=this.rangeOfInterest_,c.selection=this.selection_,c.model=this.model_,this.activePanelType_=e)},getPanelTypeForConstructor_:function(e){for(var c=0;c<this.tabStrip_.children.length;c++)if(this.tabStrip_.children[c].panelType.constructor==e)return this.tabStrip_.children[c].panelType},getLabelElementForPanelType_:function(e){for(var c=0;c<this.tabStrip_.children.length;c++)if(this.tabStrip_.children[c].panelType==
e)return this.tabStrip_.children[c]},updateContents_:function(){var e=this.activePanelType;this.tabStrip_.textContent="";var c=[];tv.b.getPolymerElementsThatSubclass("tv-c-side-panel").forEach(function(b){var a=document.createElement("tab-strip-label"),e=document.createElement(b);a.textContent=e.textLabel;a.panelType=b;e=e.supportsModel(this.model_);this.model_&&e.supported?(c.push(b),a.setAttribute("enabled",!0),a.addEventListener("click",function(){this.activePanelType=this.activePanelType===b?
void 0:b}.bind(this))):a.title="Not supported for the current trace: "+e.reason;this.tabStrip_.appendChild(a)},this);e&&-1!=c.indexOf(e)?(this.activePanelType=e,this.setAttribute("expanded",!0)):(this.activePanelContainer_.textContent="",this.removeAttribute("expanded"))},get selection(){return this.selection_},set selection(e){this.selection_=e;this.activePanel&&(this.activePanel.selection=e)},get rangeOfInterest(){return this.rangeOfInterest_},set rangeOfInterest(e){if(void 0==e)throw Error("Must not be undefined");
this.rangeOfInterest_=e;this.activePanel&&(this.activePanel.rangeOfInterest=e)}});"use strict";
tv.exportTo("tv.c",function(){var e=document.currentScript.ownerDocument,c=tv.b.ui.define("x-timeline-view");c.prototype={__proto__:HTMLUnknownElement.prototype,decorate:function(){var b=tv.b.instantiateTemplate("#timeline-view-template",e);this.appendChild(b);this.titleEl_=this.querySelector(".title");this.leftControlsEl_=this.querySelector("#left-controls");this.rightControlsEl_=this.querySelector("#right-controls");this.collapsingControlsEl_=this.querySelector("#collapsing-controls");this.sidePanelContainer_=
this.querySelector("tv-c-side-panel-container");this.trackViewContainer_=this.querySelector("track-view-container");this.findCtl_=new TracingFindControl;this.findCtl_.controller=new tv.c.FindController;this.scriptingCtl_=new TracingScriptingControl;this.scriptingCtl_.controller=document.createElement("tv-c-scripting-controller");this.showFlowEvents_=!1;this.rightControls.appendChild(tv.b.ui.createCheckBox(this,"showFlowEvents","tv.c.TimelineView.showFlowEvents",!1,"Flow events"));this.highlightVSync_=
!1;this.highlightVSyncCheckbox_=tv.b.ui.createCheckBox(this,"highlightVSync","tv.c.TimelineView.highlightVSync",!1,"Highlight VSync");this.rightControls.appendChild(this.highlightVSyncCheckbox_);this.rightControls.appendChild(this.createMetadataButton_());this.rightControls.appendChild(this.findCtl_);this.rightControls.appendChild(this.createConsoleButton_());this.rightControls.appendChild(this.createHelpButton_());this.collapsingControls.appendChild(this.scriptingCtl_);this.dragEl_=this.querySelector("x-drag-handle");
tv.b.ui.decorate(this.dragEl_,tv.b.ui.DragHandle);this.analysisEl_=this.querySelector("#analysis");this.addEventListener("requestSelectionChange",this.onRequestSelectionChange_.bind(this));this.onViewportChanged_=this.onViewportChanged_.bind(this);this.onSelectionChanged_=this.onSelectionChanged_.bind(this);document.addEventListener("keydown",this.onKeyDown_.bind(this),!0);document.addEventListener("keypress",this.onKeypress_.bind(this),!0);this.dragEl_.target=this.analysisEl_;this.selections_={};
window.addEventListener("popstate",this.onPopState_.bind(this))},updateDocumentFavicon:function(){var b=tv.c.FaviconsByHue[this.model?this.model.faviconHue:"blue"];void 0===b&&(b=tv.c.FaviconsByHue.blue);var a=document.head.querySelector('link[rel="shortcut icon"]');a||(a=document.createElement("link"),a.rel="shortcut icon",document.head.appendChild(a));a.href=b},get showFlowEvents(){return this.showFlowEvents_},set showFlowEvents(b){this.showFlowEvents_=b;this.trackView_&&(this.trackView_.viewport.showFlowEvents=
b)},get highlightVSync(){return this.highlightVSync_},set highlightVSync(b){this.highlightVSync_=b;this.trackView_&&(this.trackView_.viewport.highlightVSync=b)},createHelpButton_:function(){var b=tv.b.instantiateTemplate("#help-btn-template",e),a=b.querySelector(".view-help-button"),c=b.querySelector(".view-help-text"),d=new tv.b.ui.Overlay;d.title="chrome://tracing Help";d.classList.add("view-help-overlay");d.appendChild(b);a.addEventListener("click",function(a){d.visible=!d.visible;for(var b=tv.isMac?
"cmd ":"ctrl",e=c.querySelectorAll("span.mod"),l=0;l<e.length;l++)e[l].textContent=b;a.stopPropagation();return!1}.bind(this));return a},createConsoleButton_:function(){var b=tv.b.instantiateTemplate("#console-btn-template",e).querySelector(".view-console-button");b.addEventListener("click",function(a){this.scriptingCtl_.toggleVisibility();a.stopPropagation();return!1}.bind(this));return b},createMetadataButton_:function(){var b=tv.b.instantiateTemplate("#metadata-btn-template",e),a=b.querySelector(".view-metadata-button"),
c=b.querySelector(".info-button-text"),d=new tv.b.ui.Overlay;d.title="Metadata for trace";d.classList.add("view-metadata-overlay");d.appendChild(b);a.addEventListener("click",function(a){d.visible=!0;var b=[],e=this.model,l;for(l in e.metadata){var m=e.metadata[l],n=JSON.stringify(m.name),m=JSON.stringify(m.value,void 0," ");b.push(n+": "+m)}c.textContent=b.join("\n");a.stopPropagation();return!1}.bind(this));b=function(){a.style.display=this.model&&this.model.metadata.length?"":"none"}.bind(this);
b();this.addEventListener("modelChange",b);return a},get leftControls(){return this.leftControlsEl_},get rightControls(){return this.rightControlsEl_},get collapsingControls(){return this.collapsingControlsEl_},get viewTitle(){return this.titleEl_.textContent.substring(this.titleEl_.textContent.length-2)},set viewTitle(b){void 0===b?(this.titleEl_.textContent="",this.titleEl_.hidden=!0):(this.titleEl_.hidden=!1,this.titleEl_.textContent=b)},get model(){if(this.trackView_)return this.trackView_.model},
set model(b){var a=b!=this.model,c=b&&!b.bounds.isEmpty;a&&(this.trackViewContainer_.textContent="",this.trackView_&&(this.trackView_.viewport.removeEventListener("change",this.onViewportChanged_),this.trackView_.removeEventListener("selectionChange",this.onSelectionChanged_),this.trackView_.detach(),this.trackView_=void 0,this.findCtl_.controller.timeline=void 0,this.scriptingCtl_.controller.timeline=void 0),this.sidePanelContainer_.model=void 0);c&&!this.trackView_&&(this.trackView_=new tv.c.TimelineTrackView,
this.trackView_.focusElement=this.focusElement_?this.focusElement_:this.parentElement,this.trackViewContainer_.appendChild(this.trackView_),this.findCtl_.controller.timeline=this.trackView_,this.scriptingCtl_.controller.timeline=this.trackView_,this.trackView_.addEventListener("selectionChange",this.onSelectionChanged_),this.trackView_.viewport.addEventListener("change",this.onViewportChanged_));c&&(this.trackView_.model=b,this.sidePanelContainer_.model=b,this.trackView_.viewport.showFlowEvents=this.showFlowEvents,
this.trackView_.viewport.highlightVSync=this.highlightVSync,this.clearSelectionHistory_());tv.b.dispatchSimpleEvent(this,"modelChange");a&&(this.onSelectionChanged_(),this.onViewportChanged_())},get timeline(){return this.trackView_},get settings(){this.settings_||(this.settings_=new tv.b.Settings);return this.settings_},set focusElement(b){this.focusElement_=b;this.trackView_&&(this.trackView_.focusElement=b)},get focusElement(){return this.focusElement_?this.focusElement_:this.parentElement},get listenToKeys_(){if(tv.b.ui.isElementAttachedToDocument(this))return!this.focusElement_?
!0:0<=this.focusElement.tabIndex?document.activeElement==this.focusElement:!0},onKeyDown_:function(b){this.listenToKeys_&&27===b.keyCode&&(this.focus(),b.preventDefault())},onKeypress_:function(b){if(this.listenToKeys_){switch(b.keyCode){case 96:this.scriptingCtl_.toggleVisibility(),this.scriptingCtl_.hasFocus||this.focus(),b.preventDefault()}if(!this.scriptingCtl_.hasFocus){switch(b.keyCode){case 47:this.findCtl_.hasFocus?this.focus():this.findCtl_.focus();b.preventDefault();break;case 63:this.querySelector(".view-help-button").click(),
b.preventDefault()}if(!this.findCtl_.hasFocus)switch(b.keyCode){case 118:this.toggleHighlightVSync_(),b.preventDefault()}}}},onSelectionChanged_:function(b){b=this.trackViewContainer_.scrollTop;var a=this.trackView_?this.trackView_.selectionOfInterest:new tv.c.Selection;this.analysisEl_.selection=a;this.trackViewContainer_.scrollTop=b;this.sidePanelContainer_.selection=a},onRequestSelectionChange_:function(b){this.selections_[b.selection.guid]=b.selection;window.history.pushState({selection_guid:b.selection.guid},
"");this.trackView_.selection=b.selection;b.stopPropagation()},onPopState_:function(b){if(null!==b.state){var a=this.selections_[b.state.selection_guid];a&&(this.trackView_.selection=a);b.stopPropagation()}},clearSelectionHistory_:function(){this.selections_={}},onViewportChanged_:function(b){b=this.sidePanelContainer_;if(this.trackView_){var a=this.trackView_.viewport.interestRange.asRangeObject();b.rangeOfInterest.equals(a)||(b.rangeOfInterest=a)}else b.rangeOfInterest.reset()},toggleHighlightVSync_:function(){this.highlightVSyncCheckbox_.checked=
!this.highlightVSyncCheckbox_.checked}};return{TimelineView:c}});"use strict";
tv.exportTo("tv",function(){var e=tv.b.ui.define("trace-viewer",tv.c.TimelineView);e.prototype={__proto__:tv.c.TimelineView.prototype,decorate:function(c){function b(){d.model=k;d.viewTitle=e;d.timeline&&(d.timeline.focusElement=d)}function a(){var a=new tv.b.ui.Overlay;a.textContent=tv.b.normalizeException(err).message;a.title="Import error";a.visible=!0}tv.c.TimelineView.prototype.decorate.call(this);if(void 0!==c){var e=c,d=this,h=new XMLHttpRequest,g=/[.]gz$/.test(e)||/[.]zip$/.test(e);h.overrideMimeType("text/plain; charset=x-user-defined");
h.open("GET",e,!0);g&&(h.responseType="arraybuffer");h.onreadystatechange=function(c){4==h.readyState&&window.setTimeout(function(){if(200==h.status){var c=g?h.response:h.responseText;k=new tv.c.TraceModel;k.importTracesWithProgressDialog([c],!0).then(b,a)}else{var c=h.status,d=new tv.b.ui.Overlay;d.textContent=c+": "+e+" could not be loaded";d.title="Failed to fetch data";d.visible=!0}},0)};h.send(null);var k}}};return{TraceViewer:e}});
!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var c;"undefined"!=typeof window?c=window:"undefined"!=typeof global?c=global:"undefined"!=typeof self&&(c=self);c.JSZip=e()}}(function(){return function c(b,a,f){function d(g,l){if(!a[g]){if(!b[g]){var m="function"==typeof require&&require;if(!l&&m)return m(g,!0);if(h)return h(g,!0);throw Error("Cannot find module '"+g+"'");}m=a[g]={exports:{}};b[g][0].call(m.exports,
function(a){var c=b[g][1][a];return d(c?c:a)},m,m.exports,c,b,a,f)}return a[g].exports}for(var h="function"==typeof require&&require,g=0;g<f.length;g++)d(f[g]);return d}({1:[function(c,b,a){a.encode=function(a){for(var b,c,g,k,l,m,n="",q=0;q<a.length;)b=a.charCodeAt(q++),c=a.charCodeAt(q++),g=a.charCodeAt(q++),k=b>>2,b=(3&b)<<4|c>>4,l=(15&c)<<2|g>>6,m=63&g,isNaN(c)?l=m=64:isNaN(g)&&(m=64),n=n+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt(k)+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt(b)+
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt(l)+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt(m);return n};a.decode=function(a){var b,c,g,k,l,m="",n=0;for(a=a.replace(/[^A-Za-z0-9\+\/\=]/g,"");n<a.length;)b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(a.charAt(n++)),c="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(a.charAt(n++)),k="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(a.charAt(n++)),
l="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(a.charAt(n++)),b=b<<2|c>>4,c=(15&c)<<4|k>>2,g=(3&k)<<6|l,m+=String.fromCharCode(b),64!=k&&(m+=String.fromCharCode(c)),64!=l&&(m+=String.fromCharCode(g));return m}},{}],2:[function(c,b){function a(){this.crc32=this.uncompressedSize=this.compressedSize=0;this.compressedContent=this.compressionMethod=null}a.prototype={getContent:function(){return null},getCompressedContent:function(){return null}};b.exports=a},{}],3:[function(c,
b,a){a.STORE={magic:"\x00\x00",compress:function(a){return a},uncompress:function(a){return a},compressInputType:null,uncompressInputType:null};a.DEFLATE=c("./flate")},{"./flate":8}],4:[function(c,b){var a=c("./utils"),f=[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(b,c){if("undefined"==typeof b||!b.length)return 0;
var g="string"!==a.getTypeOf(b);"undefined"==typeof c&&(c=0);var k=0,k=k=0;c^=-1;for(var l=0,m=b.length;m>l;l++)k=g?b[l]:b.charCodeAt(l),k=255&(c^k),k=f[k],c=c>>>8^k;return-1^c}},{"./utils":21}],5:[function(c,b){function a(){this.data=null;this.index=this.length=0}var f=c("./utils");a.prototype={checkOffset:function(a){this.checkIndex(this.index+a)},checkIndex:function(a){if(this.length<a||0>a)throw 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;this.checkOffset(a);for(b=this.index+a-1;b>=this.index;b--)c=(c<<8)+this.byteAt(b);return this.index+=a,c},readString:function(a){return f.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=a},{"./utils":21}],6:[function(c,b,a){a.base64=!1;a.binary=!1;a.dir=!1;a.createFolders=!1;a.date=null;a.compression=null;a.comment=null},{}],7:[function(c,b,a){var f=c("./utils");a.string2binary=function(a){return f.string2binary(a)};a.string2Uint8Array=function(a){return f.transformTo("uint8array",a)};a.uint8Array2String=function(a){return f.transformTo("string",a)};a.string2Blob=function(a){a=f.transformTo("arraybuffer",a);return f.arrayBuffer2Blob(a)};a.arrayBuffer2Blob=
function(a){return f.arrayBuffer2Blob(a)};a.transformTo=function(a,b){return f.transformTo(a,b)};a.getTypeOf=function(a){return f.getTypeOf(a)};a.checkSupport=function(a){return f.checkSupport(a)};a.MAX_VALUE_16BITS=f.MAX_VALUE_16BITS;a.MAX_VALUE_32BITS=f.MAX_VALUE_32BITS;a.pretty=function(a){return f.pretty(a)};a.findCompression=function(a){return f.findCompression(a)};a.isRegExp=function(a){return f.isRegExp(a)}},{"./utils":21}],8:[function(c,b,a){b="undefined"!=typeof Uint8Array&&"undefined"!=
typeof Uint16Array&&"undefined"!=typeof Uint32Array;var f=c("pako");a.uncompressInputType=b?"uint8array":"array";a.compressInputType=b?"uint8array":"array";a.magic="\b\x00";a.compress=function(a){return f.deflateRaw(a)};a.uncompress=function(a){return f.inflateRaw(a)}},{pako:24}],9:[function(c,b){function a(b,c){return this instanceof a?(this.files={},this.comment=null,this.root="",b&&this.load(b,c),void(this.clone=function(){var b=new a,c;for(c in this)"function"!=typeof this[c]&&(b[c]=this[c]);
return b})):new a(b,c)}var f=c("./base64");a.prototype=c("./object");a.prototype.load=c("./load");a.support=c("./support");a.defaults=c("./defaults");a.utils=c("./deprecatedPublicUtils");a.base64={encode:function(a){return f.encode(a)},decode:function(a){return f.decode(a)}};a.compressions=c("./compressions");b.exports=a},{"./base64":1,"./compressions":3,"./defaults":6,"./deprecatedPublicUtils":7,"./load":10,"./object":13,"./support":17}],10:[function(c,b){var a=c("./base64"),f=c("./zipEntries");
b.exports=function(b,c){var g,k,l,m;c=c||{};c.base64&&(b=a.decode(b));k=new f(b,c);g=k.files;for(l=0;l<g.length;l++)m=g[l],this.file(m.fileName,m.decompressed,{binary:!0,optimizedBinaryString:!0,date:m.date,dir:m.dir,comment:m.fileComment.length?m.fileComment:null,createFolders:c.createFolders});return k.zipComment.length&&(this.comment=k.zipComment),this}},{"./base64":1,"./zipEntries":22}],11:[function(c,b){(function(a){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(c,b){function a(a){this.data=a;this.length=this.data.length;this.index=0}var f=c("./uint8ArrayReader");a.prototype=new f;a.prototype.readData=function(a){this.checkOffset(a);var b=this.data.slice(this.index,this.index+a);return this.index+=a,b};b.exports=a},{"./uint8ArrayReader":18}],13:[function(c,b){var a=c("./support"),f=c("./utils"),d=c("./crc32"),h=c("./signature"),g=c("./defaults"),k=c("./base64"),l=c("./compressions"),m=c("./compressedObject"),
n=c("./nodeBuffer"),q=c("./utf8"),w=c("./stringWriter"),s=c("./uint8ArrayWriter"),D=function(a){if(a._data instanceof m&&(a._data=a._data.getContent(),a.options.binary=!0,a.options.base64=!1,"uint8array"===f.getTypeOf(a._data))){var b=a._data;a._data=new Uint8Array(b.length);0!==b.length&&a._data.set(b,0)}return a._data},F=function(b){var c=D(b);return"string"===f.getTypeOf(c)?!b.options.binary&&a.nodebuffer?n(c,"utf-8"):b.asBinary():c},C=function(a){var b=D(this);return null===b||"undefined"==typeof b?
"":(this.options.base64&&(b=k.decode(b)),b=a&&this.options.binary?x.utf8decode(b):f.transformTo("string",b),a||this.options.binary||(b=f.transformTo("string",x.utf8encode(b))),b)},v=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}};v.prototype={asText:function(){return C.call(this,!0)},asBinary:function(){return C.call(this,!1)},asNodeBuffer:function(){var a=F(this);return f.transformTo("nodebuffer",
a)},asUint8Array:function(){var a=F(this);return f.transformTo("uint8array",a)},asArrayBuffer:function(){return this.asUint8Array().buffer}};var y=function(a,b){var c,d="";for(c=0;b>c;c++)d+=String.fromCharCode(255&a),a>>>=8;return d},B=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},H=function(a,b,c){var d,h=f.getTypeOf(b),k=c;c=(k=k||{},!0!==k.base64||null!==k.binary&&void 0!==
k.binary||(k.binary=!0),k=B(k,g),k.date=k.date||new Date,null!==k.compression&&(k.compression=k.compression.toUpperCase()),k);if(c.createFolders){k=a;"/"==k.slice(-1)&&(k=k.substring(0,k.length-1));var l=k.lastIndexOf("/");(d=0<l?k.substring(0,l):"")&&z.call(this,d,!0)}if(c.dir||null===b||"undefined"==typeof b)c.base64=!1,c.binary=!1,b=null;else if("string"===h)c.binary&&!c.base64&&!0!==c.optimizedBinaryString&&(b=f.string2binary(b));else{if(c.base64=!1,c.binary=!0,!(h||b instanceof m))throw Error("The data of '"+
a+"' is in an unsupported format !");"arraybuffer"===h&&(b=f.transformTo("uint8array",b))}b=new v(a,b,c);return this.files[a]=b,b},z=function(a,b){return"/"!=a.slice(-1)&&(a+="/"),b="undefined"!=typeof b?b:!1,this.files[a]||H.call(this,a,null,{dir:!0,createFolders:b}),this.files[a]},x={load:function(){throw Error("Load method is not defined. Is the file jszip-load.js included ?");},filter:function(a){var b,c,d,f,h=[];for(b in this.files)this.files.hasOwnProperty(b)&&(d=this.files[b],f=new v(d.name,
d._data,B(d.options)),c=b.slice(this.root.length,b.length),b.slice(0,this.root.length)===this.root&&a(c,f)&&h.push(f));return h},file:function(a,b,c){if(1===arguments.length){if(f.isRegExp(a)){var d=a;return this.filter(function(a,b){return!b.dir&&d.test(a)})}return this.filter(function(b,c){return!c.dir&&b===a})[0]||null}return a=this.root+a,H.call(this,a,b,c),this},folder:function(a){if(!a)return this;if(f.isRegExp(a))return this.filter(function(b,c){return c.dir&&a.test(b)});var b=z.call(this,
this.root+a),c=this.clone();return c.root=b.name,c},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 b=this.filter(function(b,c){return c.name.slice(0,a.length)===a}),c=0;c<b.length;c++)delete this.files[b[c].name];return this},generate:function(a){a=B(a||{},{base64:!0,compression:"STORE",type:"base64",comment:null});f.checkSupport(a.type);var b,c,g=[];c=b=0;var n=f.transformTo("string",this.utf8encode(a.comment||
this.comment||"")),x;for(x in this.files)if(this.files.hasOwnProperty(x)){var D=this.files[x],v=D.options.compression||a.compression.toUpperCase(),u=l[v];if(!u)throw Error(v+" is not a valid compression method !");var v=D,t=void 0,C=new m,v=(v._data instanceof m?(C.uncompressedSize=v._data.uncompressedSize,C.crc32=v._data.crc32,0===C.uncompressedSize||v.dir?(u=l.STORE,C.compressedContent="",C.crc32=0):v._data.compressionMethod===u.magic?C.compressedContent=v._data.getCompressedContent():(t=v._data.getContent(),
C.compressedContent=u.compress(f.transformTo(u.compressInputType,t)))):(t=F(v),(!t||0===t.length||v.dir)&&(u=l.STORE,t=""),C.uncompressedSize=t.length,C.crc32=d(t),C.compressedContent=u.compress(f.transformTo(u.compressInputType,t))),C.compressedSize=C.compressedContent.length,C.compressionMethod=u.magic,C),z=D,D=v,u=b,H=void 0,ea=void 0,S=void 0,I=void 0,t=(D.compressedContent,f.transformTo("string",q.utf8encode(z.name))),S=z.comment||"",C=f.transformTo("string",q.utf8encode(S)),Z=t.length!==z.name.length,
fa=C.length!==S.length,H=z.options,pa="",la="",X="",S=z._initialMetadata.dir!==z.dir?z.dir:H.dir,I=z._initialMetadata.date!==z.date?z.date:H.date,H=I.getHours(),H=H<<6,H=H|I.getMinutes(),H=H<<5,H=H|I.getSeconds()/2,ea=I.getFullYear()-1980,ea=ea<<4,ea=ea|I.getMonth()+1,ea=ea<<5,ea=ea|I.getDate();Z&&(la=y(1,1)+y(d(t),4)+t,pa+="up"+y(la.length,2)+la);fa&&(X=y(1,1)+y(this.crc32(C),4)+C,pa+="uc"+y(X.length,2)+X);z="";z+="\n\x00";z+=Z||fa?"\x00\b":"\x00\x00";z+=D.compressionMethod;z+=y(H,2);z+=y(ea,2);
z+=y(D.crc32,4);z+=y(D.compressedSize,4);z+=y(D.uncompressedSize,4);z+=y(t.length,2);z+=y(pa.length,2);Z=h.LOCAL_FILE_HEADER+z+t+pa;u=h.CENTRAL_FILE_HEADER+"\u0014\x00"+z+y(C.length,2)+"\x00\x00\x00\x00"+(!0===S?"\u0010\x00\x00\x00":"\x00\x00\x00\x00")+y(u,4)+t+pa+C;D={fileRecord:Z,dirRecord:u,compressedObject:D};b+=D.fileRecord.length+v.compressedSize;c+=D.dirRecord.length;g.push(D)}x="";x=h.CENTRAL_DIRECTORY_END+"\x00\x00\x00\x00"+y(g.length,2)+y(g.length,2)+y(c,4)+y(b,4)+y(n.length,2)+n;n=a.type.toLowerCase();
b="uint8array"===n||"arraybuffer"===n||"blob"===n||"nodebuffer"===n?new s(b+c+x.length):new w(b+c+x.length);for(c=0;c<g.length;c++)b.append(g[c].fileRecord),b.append(g[c].compressedObject.compressedContent);for(c=0;c<g.length;c++)b.append(g[c].dirRecord);b.append(x);g=b.finalize();switch(a.type.toLowerCase()){case "uint8array":case "arraybuffer":case "nodebuffer":return f.transformTo(a.type.toLowerCase(),g);case "blob":return f.arrayBuffer2Blob(f.transformTo("arraybuffer",g));case "base64":return a.base64?
k.encode(g):g;default:return g}},crc32:function(a,b){return d(a,b)},utf8encode:function(a){return f.transformTo("string",q.utf8encode(a))},utf8decode:function(a){return q.utf8decode(a)}};b.exports=x},{"./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(c,b,a){a.LOCAL_FILE_HEADER="PK\u0003\u0004";a.CENTRAL_FILE_HEADER="PK\u0001\u0002";a.CENTRAL_DIRECTORY_END=
"PK\u0005\u0006";a.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK\u0006\u0007";a.ZIP64_CENTRAL_DIRECTORY_END="PK\u0006\u0006";a.DATA_DESCRIPTOR="PK\u0007\b"},{}],15:[function(c,b){function a(a,b){this.data=a;b||(this.data=d.string2binary(this.data));this.length=this.data.length;this.index=0}var f=c("./dataReader"),d=c("./utils");a.prototype=new f;a.prototype.byteAt=function(a){return this.data.charCodeAt(a)};a.prototype.lastIndexOfSignature=function(a){return this.data.lastIndexOf(a)};a.prototype.readData=function(a){this.checkOffset(a);
var b=this.data.slice(this.index,this.index+a);return this.index+=a,b};b.exports=a},{"./dataReader":5,"./utils":21}],16:[function(c,b){var a=c("./utils"),f=function(){this.data=[]};f.prototype={append:function(b){b=a.transformTo("string",b);this.data.push(b)},finalize:function(){return this.data.join("")}};b.exports=f},{"./utils":21}],17:[function(c,b,a){c="undefined"!=typeof Buffer?Buffer:void 0;if(a.base64=!0,a.array=!0,a.string=!0,a.arraybuffer="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array,
a.nodebuffer="undefined"!=typeof c,a.uint8array="undefined"!=typeof Uint8Array,"undefined"==typeof ArrayBuffer)a.blob=!1;else{c=new ArrayBuffer(0);try{a.blob=0===(new Blob([c],{type:"application/zip"})).size}catch(f){try{var d=new (window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder||window.MSBlobBuilder);d.append(c);a.blob=0===d.getBlob("application/zip").size}catch(h){a.blob=!1}}}},{}],18:[function(c,b){function a(a){a&&(this.data=a,this.length=this.data.length,this.index=0)}var f=
c("./dataReader");a.prototype=new f;a.prototype.byteAt=function(a){return this.data[a]};a.prototype.lastIndexOfSignature=function(a){var b=a.charCodeAt(0),c=a.charCodeAt(1),f=a.charCodeAt(2);a=a.charCodeAt(3);for(var l=this.length-4;0<=l;--l)if(this.data[l]===b&&this.data[l+1]===c&&this.data[l+2]===f&&this.data[l+3]===a)return l;return-1};a.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=a},{"./dataReader":5}],19:[function(c,b){var a=c("./utils"),f=function(a){this.data=new Uint8Array(a);this.index=0};f.prototype={append:function(b){0!==b.length&&(b=a.transformTo("uint8array",b),this.data.set(b,this.index),this.index+=b.length)},finalize:function(){return this.data}};b.exports=f},{"./utils":21}],20:[function(c,b,a){var f=c("./utils"),d=c("./support"),h=c("./nodeBuffer"),g=Array(256);for(c=0;256>c;c++)g[c]=252<=c?6:248<=c?5:240<=c?4:224<=c?3:192<=c?2:1;g[254]=g[254]=1;var k=
function(a){var b,c,d,h,k=a.length,D=Array(2*k);for(b=c=0;k>b;)if(d=a[b++],128>d)D[c++]=d;else if(h=g[d],4<h)D[c++]=65533,b+=h-1;else{for(d&=2===h?31:3===h?15:7;1<h&&k>b;)d=d<<6|63&a[b++],h--;1<h?D[c++]=65533:65536>d?D[c++]=d:(d-=65536,D[c++]=55296|d>>10&1023,D[c++]=56320|1023&d)}return D.length!==c&&(D.subarray?D=D.subarray(0,c):D.length=c),f.applyFromCharCode(D)};a.utf8encode=function(a){if(d.nodebuffer)a=h(a,"utf-8");else{var b,c,f,g,k,D=a.length,F=0;for(g=0;D>g;g++)c=a.charCodeAt(g),55296===(64512&
c)&&D>g+1&&(f=a.charCodeAt(g+1),56320===(64512&f)&&(c=65536+(c-55296<<10)+(f-56320),g++)),F+=128>c?1:2048>c?2:65536>c?3:4;b=d.uint8array?new Uint8Array(F):Array(F);for(g=k=0;F>k;g++)c=a.charCodeAt(g),55296===(64512&c)&&D>g+1&&(f=a.charCodeAt(g+1),56320===(64512&f)&&(c=65536+(c-55296<<10)+(f-56320),g++)),128>c?b[k++]=c:2048>c?(b[k++]=192|c>>>6,b[k++]=128|63&c):65536>c?(b[k++]=224|c>>>12,b[k++]=128|c>>>6&63,b[k++]=128|63&c):(b[k++]=240|c>>>18,b[k++]=128|c>>>12&63,b[k++]=128|c>>>6&63,b[k++]=128|63&c);
a=b}return a};a.utf8decode=function(a){if(d.nodebuffer)return f.transformTo("nodebuffer",a).toString("utf-8");a=f.transformTo(d.uint8array?"uint8array":"array",a);for(var b=[],c=0,h=a.length;h>c;){var w;w=Math.min(c+65536,h);var s=void 0;w=w||a.length;w>a.length&&(w=a.length);for(s=w-1;0<=s&&128===(192&a[s]);)s--;w=0>s?w:0===s?w:s+g[a[s]]>w?s:w;b.push(d.uint8array?k(a.subarray(c,w)):k(a.slice(c,w)));c=w}return b.join("")}},{"./nodeBuffer":11,"./support":17,"./utils":21}],21:[function(c,b,a){function f(a){return a}
function d(a,b){for(var c=0;c<a.length;++c)b[c]=255&a.charCodeAt(c);return b}function h(b){var c=65536,d=[],f=b.length,h=a.getTypeOf(b),g=0,k=!0;try{switch(h){case "uint8array":String.fromCharCode.apply(null,new Uint8Array(0));break;case "nodebuffer":String.fromCharCode.apply(null,m(0))}}catch(l){k=!1}if(!k){c="";for(d=0;d<b.length;d++)c+=String.fromCharCode(b[d]);return c}for(;f>g&&1<c;)try{d.push("array"===h||"nodebuffer"===h?String.fromCharCode.apply(null,b.slice(g,Math.min(g+c,f))):String.fromCharCode.apply(null,
b.subarray(g,Math.min(g+c,f)))),g+=c}catch(n){c=Math.floor(c/2)}return d.join("")}function g(a,b){for(var c=0;c<a.length;c++)b[c]=a[c];return b}var k=c("./support"),l=c("./compressions"),m=c("./nodeBuffer");a.string2binary=function(a){for(var b="",c=0;c<a.length;c++)b+=String.fromCharCode(255&a.charCodeAt(c));return b};a.arrayBuffer2Blob=function(b){a.checkSupport("blob");try{return new Blob([b],{type:"application/zip"})}catch(c){try{var d=new (window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder||
window.MSBlobBuilder);return d.append(b),d.getBlob("application/zip")}catch(f){throw Error("Bug : can't construct the Blob.");}}};a.applyFromCharCode=h;var n={};n.string={string:f,array:function(a){return d(a,Array(a.length))},arraybuffer:function(a){return n.string.uint8array(a).buffer},uint8array:function(a){return d(a,new Uint8Array(a.length))},nodebuffer:function(a){return d(a,m(a.length))}};n.array={string:h,array:f,arraybuffer:function(a){return(new Uint8Array(a)).buffer},uint8array:function(a){return new Uint8Array(a)},
nodebuffer:function(a){return m(a)}};n.arraybuffer={string:function(a){return h(new Uint8Array(a))},array:function(a){return g(new Uint8Array(a),Array(a.byteLength))},arraybuffer:f,uint8array:function(a){return new Uint8Array(a)},nodebuffer:function(a){return m(new Uint8Array(a))}};n.uint8array={string:h,array:function(a){return g(a,Array(a.length))},arraybuffer:function(a){return a.buffer},uint8array:f,nodebuffer:function(a){return m(a)}};n.nodebuffer={string:h,array:function(a){return g(a,Array(a.length))},
arraybuffer:function(a){return n.nodebuffer.uint8array(a).buffer},uint8array:function(a){return g(a,new Uint8Array(a.length))},nodebuffer:f};a.transformTo=function(b,c){if(c||(c=""),!b)return c;a.checkSupport(b);var d=a.getTypeOf(c);return n[d][b](c)};a.getTypeOf=function(a){return"string"==typeof a?"string":"[object Array]"===Object.prototype.toString.call(a)?"array":k.nodebuffer&&m.test(a)?"nodebuffer":k.uint8array&&a instanceof Uint8Array?"uint8array":k.arraybuffer&&a instanceof ArrayBuffer?"arraybuffer":
void 0};a.checkSupport=function(a){if(!k[a.toLowerCase()])throw Error(a+" is not supported by this browser");};a.MAX_VALUE_16BITS=65535;a.MAX_VALUE_32BITS=-1;a.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};a.findCompression=function(a){for(var b in l)if(l.hasOwnProperty(b)&&l[b].magic===a)return l[b];return null};a.isRegExp=function(a){return"[object RegExp]"===Object.prototype.toString.call(a)}},{"./compressions":3,
"./nodeBuffer":11,"./support":17}],22:[function(c,b){function a(a,b){this.files=[];this.loadOptions=b;a&&this.load(a)}var f=c("./stringReader"),d=c("./nodeBufferReader"),h=c("./uint8ArrayReader"),g=c("./utils"),k=c("./signature"),l=c("./zipEntry"),m=c("./support"),n=c("./object");a.prototype={checkSignature:function(a){var b=this.reader.readString(4);if(b!==a)throw 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=n.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;0<d;)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),1<this.disksCount)throw 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(k.LOCAL_FILE_HEADER),b.readLocalPart(this.reader),
b.handleUTF8()},readCentralDir:function(){var a;for(this.reader.setIndex(this.centralDirOffset);this.reader.readString(4)===k.CENTRAL_FILE_HEADER;)a=new l({zip64:this.zip64},this.loadOptions),a.readCentralPart(this.reader),this.files.push(a)},readEndOfCentral:function(){var a=this.reader.lastIndexOfSignature(k.CENTRAL_DIRECTORY_END);if(-1===a)throw Error("Corrupted zip : can't find end of central directory");if(this.reader.setIndex(a),this.checkSignature(k.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(k.ZIP64_CENTRAL_DIRECTORY_LOCATOR),-1===a)throw Error("Corrupted zip : can't find the ZIP64 end of central directory locator");this.reader.setIndex(a);this.checkSignature(k.ZIP64_CENTRAL_DIRECTORY_LOCATOR);
this.readBlockZip64EndOfCentralLocator();this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir);this.checkSignature(k.ZIP64_CENTRAL_DIRECTORY_END);this.readBlockZip64EndOfCentral()}},prepareReader:function(a){var b=g.getTypeOf(a);this.reader="string"!==b||m.uint8array?"nodebuffer"===b?new d(a):new h(g.transformTo("uint8array",a)):new f(a,this.loadOptions.optimizedBinaryString)},load:function(a){this.prepareReader(a);this.readEndOfCentral();this.readCentralDir();this.readLocalFiles()}};b.exports=
a},{"./nodeBufferReader":12,"./object":13,"./signature":14,"./stringReader":15,"./support":17,"./uint8ArrayReader":18,"./utils":21,"./zipEntry":23}],23:[function(c,b){function a(a,b){this.options=a;this.loadOptions=b}var f=c("./stringReader"),d=c("./utils"),h=c("./compressedObject"),g=c("./object");a.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 f=a.readData(c);return a.setIndex(d),f}},prepareContent:function(a,b,c,f,h){return function(){var a=d.transformTo(f.uncompressInputType,this.getCompressedContent()),a=f.uncompress(a);if(a.length!==h)throw Error("Bug : uncompressed data size mismatch");return a}},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 Error("Bug or corrupted zip : didn't get enough informations from the central directory (compressedSize == -1 || uncompressedSize == -1)");
if(b=d.findCompression(this.compressionMethod),null===b)throw Error("Corrupted zip : compression "+d.pretty(this.compressionMethod)+" unknown (inner file : "+this.fileName+")");if(this.decompressed=new h,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=d.transformTo("string",this.decompressed.getContent()),g.crc32(this.decompressed)!==this.crc32))throw 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 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 f(this.extraFields[1].value);this.uncompressedSize===d.MAX_VALUE_32BITS&&(this.uncompressedSize=a.readInt(8));this.compressedSize===d.MAX_VALUE_32BITS&&(this.compressedSize=a.readInt(8));this.localHeaderOffset===d.MAX_VALUE_32BITS&&(this.localHeaderOffset=a.readInt(8));this.diskNumberStart===d.MAX_VALUE_32BITS&&(this.diskNumberStart=a.readInt(4))}},
readExtraFields:function(a){var b,c,d,f=a.index;for(this.extraFields=this.extraFields||{};a.index<f+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);a=this.findExtraFieldUnicodeComment();null!==a&&(this.fileComment=a)}},findExtraFieldUnicodePath:function(){var a=
this.extraFields[28789];if(a){var b=new f(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 f(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=a},{"./compressedObject":2,"./object":13,"./stringReader":15,"./utils":21}],24:[function(c,
b){var a=c("./lib/utils/common").assign,f=c("./lib/deflate"),d=c("./lib/inflate"),h=c("./lib/zlib/constants"),g={};a(g,f,d,h);b.exports=g},{"./lib/deflate":25,"./lib/inflate":26,"./lib/utils/common":27,"./lib/zlib/constants":30}],25:[function(c,b,a){function f(a,b){var c=new m(b);if(c.push(a,!0),c.err)throw c.msg;return c.result}var d=c("./zlib/deflate.js"),h=c("./utils/common"),g=c("./utils/strings"),k=c("./zlib/messages"),l=c("./zlib/zstream"),m=function(a){a=this.options=h.assign({level:-1,method:8,
chunkSize:16384,windowBits:15,memLevel:8,strategy:0,to:""},a||{});a.raw&&0<a.windowBits?a.windowBits=-a.windowBits:a.gzip&&0<a.windowBits&&16>a.windowBits&&(a.windowBits+=16);this.err=0;this.msg="";this.ended=!1;this.chunks=[];this.strm=new l;this.strm.avail_out=0;var b=d.deflateInit2(this.strm,a.level,a.method,a.windowBits,a.memLevel,a.strategy);if(0!==b)throw Error(k[b]);a.header&&d.deflateSetHeader(this.strm,a.header)};m.prototype.push=function(a,b){var c,f,k=this.strm,l=this.options.chunkSize;
if(this.ended)return!1;f=b===~~b?b:!0===b?4:0;k.input="string"==typeof a?g.string2buf(a):a;k.next_in=0;k.avail_in=k.input.length;do{if(0===k.avail_out&&(k.output=new h.Buf8(l),k.next_out=0,k.avail_out=l),c=d.deflate(k,f),1!==c&&0!==c)return this.onEnd(c),this.ended=!0,!1;(0===k.avail_out||0===k.avail_in&&4===f)&&this.onData("string"===this.options.to?g.buf2binstring(h.shrinkBuf(k.output,k.next_out)):h.shrinkBuf(k.output,k.next_out))}while((0<k.avail_in||0===k.avail_out)&&1!==c);return 4===f?(c=d.deflateEnd(this.strm),
this.onEnd(c),this.ended=!0,0===c):!0};m.prototype.onData=function(a){this.chunks.push(a)};m.prototype.onEnd=function(a){0===a&&(this.result="string"===this.options.to?this.chunks.join(""):h.flattenChunks(this.chunks));this.chunks=[];this.err=a;this.msg=this.strm.msg};a.Deflate=m;a.deflate=f;a.deflateRaw=function(a,b){return b=b||{},b.raw=!0,f(a,b)};a.gzip=function(a,b){return b=b||{},b.gzip=!0,f(a,b)}},{"./utils/common":27,"./utils/strings":28,"./zlib/deflate.js":32,"./zlib/messages":37,"./zlib/zstream":39}],
26:[function(c,b,a){function f(a,b){var c=new q(b);if(c.push(a,!0),c.err)throw c.msg;return c.result}var d=c("./zlib/inflate.js"),h=c("./utils/common"),g=c("./utils/strings"),k=c("./zlib/constants"),l=c("./zlib/messages"),m=c("./zlib/zstream"),n=c("./zlib/gzheader"),q=function(a){var b=this.options=h.assign({chunkSize:16384,windowBits:0,to:""},a||{});b.raw&&0<=b.windowBits&&16>b.windowBits&&(b.windowBits=-b.windowBits,0===b.windowBits&&(b.windowBits=-15));!(0<=b.windowBits&&16>b.windowBits)||a&&a.windowBits||
(b.windowBits+=32);15<b.windowBits&&48>b.windowBits&&0===(15&b.windowBits)&&(b.windowBits|=15);this.err=0;this.msg="";this.ended=!1;this.chunks=[];this.strm=new m;this.strm.avail_out=0;a=d.inflateInit2(this.strm,b.windowBits);if(a!==k.Z_OK)throw Error(l[a]);this.header=new n;d.inflateGetHeader(this.strm,this.header)};q.prototype.push=function(a,b){var c,f,l,m,n,q=this.strm,H=this.options.chunkSize;if(this.ended)return!1;f=b===~~b?b:!0===b?k.Z_FINISH:k.Z_NO_FLUSH;q.input="string"==typeof a?g.binstring2buf(a):
a;q.next_in=0;q.avail_in=q.input.length;do{if(0===q.avail_out&&(q.output=new h.Buf8(H),q.next_out=0,q.avail_out=H),c=d.inflate(q,k.Z_NO_FLUSH),c!==k.Z_STREAM_END&&c!==k.Z_OK)return this.onEnd(c),this.ended=!0,!1;q.next_out&&(0===q.avail_out||c===k.Z_STREAM_END||0===q.avail_in&&f===k.Z_FINISH)&&("string"===this.options.to?(l=g.utf8border(q.output,q.next_out),m=q.next_out-l,n=g.buf2string(q.output,l),q.next_out=m,q.avail_out=H-m,m&&h.arraySet(q.output,q.output,l,m,0),this.onData(n)):this.onData(h.shrinkBuf(q.output,
q.next_out)))}while(0<q.avail_in&&c!==k.Z_STREAM_END);return c===k.Z_STREAM_END&&(f=k.Z_FINISH),f===k.Z_FINISH?(c=d.inflateEnd(this.strm),this.onEnd(c),this.ended=!0,c===k.Z_OK):!0};q.prototype.onData=function(a){this.chunks.push(a)};q.prototype.onEnd=function(a){a===k.Z_OK&&(this.result="string"===this.options.to?this.chunks.join(""):h.flattenChunks(this.chunks));this.chunks=[];this.err=a;this.msg=this.strm.msg};a.Inflate=q;a.inflate=f;a.inflateRaw=function(a,b){return b=b||{},b.raw=!0,f(a,b)};a.ungzip=
f},{"./utils/common":27,"./utils/strings":28,"./zlib/constants":30,"./zlib/gzheader":33,"./zlib/inflate.js":35,"./zlib/messages":37,"./zlib/zstream":39}],27:[function(c,b,a){c="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Int32Array;a.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};
a.shrinkBuf=function(a,b){return a.length===b?a:a.subarray?a.subarray(0,b):(a.length=b,a)};var f={arraySet:function(a,b,c,d,f){if(b.subarray&&a.subarray)return void a.set(b.subarray(c,c+d),f);for(var n=0;d>n;n++)a[f+n]=b[c+n]},flattenChunks:function(a){var b,c,d,f,n;b=d=0;for(c=a.length;c>b;b++)d+=a[b].length;n=new Uint8Array(d);b=d=0;for(c=a.length;c>b;b++)f=a[b],n.set(f,d),d+=f.length;return n}},d={arraySet:function(a,b,c,d,f){for(var n=0;d>n;n++)a[f+n]=b[c+n]},flattenChunks:function(a){return[].concat.apply([],
a)}};a.setTyped=function(b){b?(a.Buf8=Uint8Array,a.Buf16=Uint16Array,a.Buf32=Int32Array,a.assign(a,f)):(a.Buf8=Array,a.Buf16=Array,a.Buf32=Array,a.assign(a,d))};a.setTyped(c)},{}],28:[function(c,b,a){function f(a,b){if(65537>b&&(a.subarray&&g||!a.subarray&&h))return String.fromCharCode.apply(null,d.shrinkBuf(a,b));for(var c="",f=0;b>f;f++)c+=String.fromCharCode(a[f]);return c}var d=c("./common"),h=!0,g=!0;try{String.fromCharCode.apply(null,[0])}catch(k){h=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(l){g=
!1}var m=new d.Buf8(256);for(c=0;256>c;c++)m[c]=252<=c?6:248<=c?5:240<=c?4:224<=c?3:192<=c?2:1;m[254]=m[254]=1;a.string2buf=function(a){var b,c,f,h,g,k=a.length,l=0;for(h=0;k>h;h++)c=a.charCodeAt(h),55296===(64512&c)&&k>h+1&&(f=a.charCodeAt(h+1),56320===(64512&f)&&(c=65536+(c-55296<<10)+(f-56320),h++)),l+=128>c?1:2048>c?2:65536>c?3:4;b=new d.Buf8(l);for(h=g=0;l>g;h++)c=a.charCodeAt(h),55296===(64512&c)&&k>h+1&&(f=a.charCodeAt(h+1),56320===(64512&f)&&(c=65536+(c-55296<<10)+(f-56320),h++)),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};a.buf2binstring=function(a){return f(a,a.length)};a.binstring2buf=function(a){for(var b=new d.Buf8(a.length),c=0,f=b.length;f>c;c++)b[c]=a.charCodeAt(c);return b};a.buf2string=function(a,b){var c,d,h,g,k=b||a.length,l=Array(2*k);for(c=d=0;k>c;)if(h=a[c++],128>h)l[d++]=h;else if(g=m[h],4<g)l[d++]=65533,c+=
g-1;else{for(h&=2===g?31:3===g?15:7;1<g&&k>c;)h=h<<6|63&a[c++],g--;1<g?l[d++]=65533:65536>h?l[d++]=h:(h-=65536,l[d++]=55296|h>>10&1023,l[d++]=56320|1023&h)}return f(l,d)};a.utf8border=function(a,b){var c;b=b||a.length;b>a.length&&(b=a.length);for(c=b-1;0<=c&&128===(192&a[c]);)c--;return 0>c?b:0===c?b:c+m[a[c]]>b?c:b}},{"./common":27}],29:[function(c,b){b.exports=function(a,b,c,h){var g=65535&a|0;a=a>>>16&65535|0;for(var k=0;0!==c;){k=2E3<c?2E3:c;c-=k;do g=g+b[h++]|0,a=a+g|0;while(--k);g%=65521;a%=
65521}return g|a<<16|0}},{}],30:[function(c,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(c,b){var a=function(){for(var a,b=[],c=0;256>
c;c++){a=c;for(var g=0;8>g;g++)a=1&a?3988292384^a>>>1:a>>>1;b[c]=a}return b}();b.exports=function(b,c,h,g){h=g+h;for(b^=-1;h>g;g++)b=b>>>8^a[255&(b^c[g])];return-1^b}},{}],32:[function(c,b,a){function f(a,b){return a.msg=x[b],b}function d(a){for(var b=a.length;0<=--b;)a[b]=0}function h(a){var b=a.state,c=b.pending;c>a.avail_out&&(c=a.avail_out);0!==c&&(y.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 g(a,b){B._tr_flush_block(a,0<=a.block_start?a.block_start:-1,a.strstart-a.block_start,b);a.block_start=a.strstart;h(a.strm)}function k(a,b){a.pending_buf[a.pending++]=b}function l(a,b){a.pending_buf[a.pending++]=b>>>8&255;a.pending_buf[a.pending++]=255&b}function m(a,b){var c,d,f=a.max_chain_length,h=a.strstart,g=a.prev_length,k=a.nice_match,l=a.strstart>a.w_size-fa?a.strstart-(a.w_size-fa):0,E=a.window,m=a.w_mask,w=a.prev,x=a.strstart+Z,n=E[h+g-1],s=E[h+g];a.prev_length>=
a.good_match&&(f>>=2);k>a.lookahead&&(k=a.lookahead);do if(c=b,E[c+g]===s&&E[c+g-1]===n&&E[c]===E[h]&&E[++c]===E[h+1]){h+=2;c++;do;while(E[++h]===E[++c]&&E[++h]===E[++c]&&E[++h]===E[++c]&&E[++h]===E[++c]&&E[++h]===E[++c]&&E[++h]===E[++c]&&E[++h]===E[++c]&&E[++h]===E[++c]&&x>h);if(d=Z-(x-h),h=x-Z,d>g){if(a.match_start=b,g=d,d>=k)break;n=E[h+g-1];s=E[h+g]}}while((b=w[b&m])>l&&0!==--f);return g<=a.lookahead?g:a.lookahead}function n(a){var b,c,d,f,h=a.w_size;do{if(f=a.window_size-a.lookahead-a.strstart,
a.strstart>=h+(h-fa)){y.arraySet(a.window,a.window,h,h,0);a.match_start-=h;a.strstart-=h;a.block_start-=h;b=c=a.hash_size;do d=a.head[--b],a.head[b]=d>=h?d-h:0;while(--c);b=c=h;do d=a.prev[--b],a.prev[b]=d>=h?d-h:0;while(--c);f+=h}if(0===a.strm.avail_in)break;b=a.strm;d=a.window;var g=a.strstart+a.lookahead,k=b.avail_in;if(c=(k>f&&(k=f),0===k?0:(b.avail_in-=k,y.arraySet(d,b.input,b.next_in,k,g),1===b.state.wrap?b.adler=H(b.adler,d,k,g):2===b.state.wrap&&(b.adler=z(b.adler,d,k,g)),b.next_in+=k,b.total_in+=
k,k)),a.lookahead+=c,a.lookahead+a.insert>=I){f=a.strstart-a.insert;a.ins_h=a.window[f];for(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+I-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<I)););}}while(a.lookahead<fa&&0!==a.strm.avail_in)}function q(a,b){for(var c,d;;){if(a.lookahead<fa){if(n(a),a.lookahead<fa&&b===G)return X;if(0===a.lookahead)break}if(c=0,a.lookahead>=I&&(a.ins_h=
(a.ins_h<<a.hash_shift^a.window[a.strstart+I-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-fa&&(a.match_length=m(a,c)),a.match_length>=I)if(d=B._tr_tally(a,a.strstart-a.match_start,a.match_length-I),a.lookahead-=a.match_length,a.match_length<=a.max_lazy_match&&a.lookahead>=I){a.match_length--;do a.strstart++,a.ins_h=(a.ins_h<<a.hash_shift^a.window[a.strstart+I-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=B._tr_tally(a,0,a.window[a.strstart]),a.lookahead--,a.strstart++;if(d&&(g(a,!1),0===a.strm.avail_out))return X}return a.insert=a.strstart<I-1?a.strstart:I-1,b===E?(g(a,!0),0===a.strm.avail_out?ra:ha):a.last_lit&&(g(a,!1),0===a.strm.avail_out)?X:qa}function w(a,b){for(var c,d,f;;){if(a.lookahead<fa){if(n(a),
a.lookahead<fa&&b===G)return X;if(0===a.lookahead)break}if(c=0,a.lookahead>=I&&(a.ins_h=(a.ins_h<<a.hash_shift^a.window[a.strstart+I-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=I-1,0!==c&&a.prev_length<a.max_lazy_match&&a.strstart-c<=a.w_size-fa&&(a.match_length=m(a,c),5>=a.match_length&&(a.strategy===T||a.match_length===I&&4096<a.strstart-a.match_start)&&(a.match_length=I-1)),a.prev_length>=
I&&a.match_length<=a.prev_length){f=a.strstart+a.lookahead-I;d=B._tr_tally(a,a.strstart-1-a.prev_match,a.prev_length-I);a.lookahead-=a.prev_length-1;a.prev_length-=2;do++a.strstart<=f&&(a.ins_h=(a.ins_h<<a.hash_shift^a.window[a.strstart+I-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=I-1,a.strstart++,d&&(g(a,!1),0===a.strm.avail_out))return X}else if(a.match_available){if(d=B._tr_tally(a,0,
a.window[a.strstart-1]),d&&g(a,!1),a.strstart++,a.lookahead--,0===a.strm.avail_out)return X}else a.match_available=1,a.strstart++,a.lookahead--}return a.match_available&&(B._tr_tally(a,0,a.window[a.strstart-1]),a.match_available=0),a.insert=a.strstart<I-1?a.strstart:I-1,b===E?(g(a,!0),0===a.strm.avail_out?ra:ha):a.last_lit&&(g(a,!1),0===a.strm.avail_out)?X:qa}function s(){this.strm=null;this.status=0;this.pending_buf=null;this.wrap=this.pending=this.pending_out=this.pending_buf_size=0;this.gzhead=
null;this.gzindex=0;this.method=u;this.last_flush=-1;this.w_mask=this.w_bits=this.w_size=0;this.window=null;this.window_size=0;this.head=this.prev=null;this.nice_match=this.good_match=this.strategy=this.level=this.max_lazy_match=this.max_chain_length=this.prev_length=this.lookahead=this.match_start=this.strstart=this.match_available=this.prev_match=this.match_length=this.block_start=this.hash_shift=this.hash_mask=this.hash_bits=this.hash_size=this.ins_h=0;this.dyn_ltree=new y.Buf16(2*ea);this.dyn_dtree=
new y.Buf16(2*(2*V+1));this.bl_tree=new y.Buf16(2*(2*M+1));d(this.dyn_ltree);d(this.dyn_dtree);d(this.bl_tree);this.bl_desc=this.d_desc=this.l_desc=null;this.bl_count=new y.Buf16(S+1);this.heap=new y.Buf16(2*oa+1);d(this.heap);this.heap_max=this.heap_len=0;this.depth=new y.Buf16(2*oa+1);d(this.depth);this.bi_valid=this.bi_buf=this.insert=this.matches=this.static_len=this.opt_len=this.d_buf=this.last_lit=this.lit_bufsize=this.l_buf=0}function D(a){var b;return a&&a.state?(a.total_in=a.total_out=0,
a.data_type=ja,b=a.state,b.pending=0,b.pending_out=0,0>b.wrap&&(b.wrap=-b.wrap),b.status=b.wrap?pa:la,a.adler=2===b.wrap?0:1,b.last_flush=G,B._tr_init(b),K):f(a,Q)}function F(a){var b=D(a);b===K&&(a=a.state,a.window_size=2*a.w_size,d(a.head),a.max_lazy_match=v[a.level].max_lazy,a.good_match=v[a.level].good_length,a.nice_match=v[a.level].nice_length,a.max_chain_length=v[a.level].max_chain,a.strstart=0,a.block_start=0,a.lookahead=0,a.insert=0,a.match_length=a.prev_length=I-1,a.match_available=0,a.ins_h=
0);return b}function C(a,b,c,d,h,g){if(!a)return Q;var k=1;if(b===O&&(b=6),0>d?(k=0,d=-d):15<d&&(k=2,d-=16),1>h||h>t||c!==u||8>d||15<d||0>b||9<b||0>g||g>U)return f(a,Q);8===d&&(d=9);var l=new s;return a.state=l,l.strm=a,l.wrap=k,l.gzhead=null,l.w_bits=d,l.w_size=1<<l.w_bits,l.w_mask=l.w_size-1,l.hash_bits=h+7,l.hash_size=1<<l.hash_bits,l.hash_mask=l.hash_size-1,l.hash_shift=~~((l.hash_bits+I-1)/I),l.window=new y.Buf8(2*l.w_size),l.head=new y.Buf16(l.hash_size),l.prev=new y.Buf16(l.w_size),l.lit_bufsize=
1<<h+6,l.pending_buf_size=4*l.lit_bufsize,l.pending_buf=new y.Buf8(l.pending_buf_size),l.d_buf=l.lit_bufsize>>1,l.l_buf=3*l.lit_bufsize,l.level=b,l.strategy=g,l.method=c,F(a)}var v,y=c("../utils/common"),B=c("./trees"),H=c("./adler32"),z=c("./crc32"),x=c("./messages"),G=0,E=4,K=0,Q=-2,O=-1,T=1,U=4,ja=2,u=8,t=9,oa=286,V=30,M=19,ea=2*oa+1,S=15,I=3,Z=258,fa=Z+I+1,pa=42,la=113,X=1,qa=2,ra=3,ha=4;c=function(a,b,c,d,f){this.good_length=a;this.max_lazy=b;this.nice_length=c;this.max_chain=d;this.func=f};
v=[new c(0,0,0,0,function(a,b){var c=65535;for(c>a.pending_buf_size-5&&(c=a.pending_buf_size-5);;){if(1>=a.lookahead){if(n(a),0===a.lookahead&&b===G)return X;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,g(a,!1),0===a.strm.avail_out)||a.strstart-a.block_start>=a.w_size-fa&&(g(a,!1),0===a.strm.avail_out))return X}return a.insert=0,b===E?(g(a,!0),0===a.strm.avail_out?ra:ha):(a.strstart>
a.block_start&&g(a,!1),X)}),new c(4,4,8,4,q),new c(4,5,16,8,q),new c(4,6,32,32,q),new c(4,4,16,16,w),new c(8,16,32,32,w),new c(8,16,128,128,w),new c(8,32,128,256,w),new c(32,128,258,1024,w),new c(32,258,258,4096,w)];a.deflateInit=function(a,b){return C(a,b,u,15,8,0)};a.deflateInit2=C;a.deflateReset=F;a.deflateResetKeep=D;a.deflateSetHeader=function(a,b){return a&&a.state?2!==a.state.wrap?Q:(a.state.gzhead=b,K):Q};a.deflate=function(a,b){var c,r,m,w;if(!a||!a.state||5<b||0>b)return a?f(a,Q):Q;if(r=
a.state,!a.output||!a.input&&0!==a.avail_in||666===r.status&&b!==E)return f(a,0===a.avail_out?-5:Q);if(r.strm=a,c=r.last_flush,r.last_flush=b,r.status===pa)2===r.wrap?(a.adler=0,k(r,31),k(r,139),k(r,8),r.gzhead?(k(r,(r.gzhead.text?1:0)+(r.gzhead.hcrc?2:0)+(r.gzhead.extra?4:0)+(r.gzhead.name?8:0)+(r.gzhead.comment?16:0)),k(r,255&r.gzhead.time),k(r,r.gzhead.time>>8&255),k(r,r.gzhead.time>>16&255),k(r,r.gzhead.time>>24&255),k(r,9===r.level?2:2<=r.strategy||2>r.level?4:0),k(r,255&r.gzhead.os),r.gzhead.extra&&
r.gzhead.extra.length&&(k(r,255&r.gzhead.extra.length),k(r,r.gzhead.extra.length>>8&255)),r.gzhead.hcrc&&(a.adler=z(a.adler,r.pending_buf,r.pending,0)),r.gzindex=0,r.status=69):(k(r,0),k(r,0),k(r,0),k(r,0),k(r,0),k(r,9===r.level?2:2<=r.strategy||2>r.level?4:0),k(r,3),r.status=la)):(m=u+(r.w_bits-8<<4)<<8,w=-1,w=2<=r.strategy||2>r.level?0:6>r.level?1:6===r.level?2:3,m|=w<<6,0!==r.strstart&&(m|=32),r.status=la,l(r,m+(31-m%31)),0!==r.strstart&&(l(r,a.adler>>>16),l(r,65535&a.adler)),a.adler=1);if(69===
r.status)if(r.gzhead.extra){for(m=r.pending;r.gzindex<(65535&r.gzhead.extra.length)&&(r.pending!==r.pending_buf_size||(r.gzhead.hcrc&&r.pending>m&&(a.adler=z(a.adler,r.pending_buf,r.pending-m,m)),h(a),m=r.pending,r.pending!==r.pending_buf_size));)k(r,255&r.gzhead.extra[r.gzindex]),r.gzindex++;r.gzhead.hcrc&&r.pending>m&&(a.adler=z(a.adler,r.pending_buf,r.pending-m,m));r.gzindex===r.gzhead.extra.length&&(r.gzindex=0,r.status=73)}else r.status=73;if(73===r.status)if(r.gzhead.name){m=r.pending;do{if(r.pending===
r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>m&&(a.adler=z(a.adler,r.pending_buf,r.pending-m,m)),h(a),m=r.pending,r.pending===r.pending_buf_size)){w=1;break}w=r.gzindex<r.gzhead.name.length?255&r.gzhead.name.charCodeAt(r.gzindex++):0;k(r,w)}while(0!==w);r.gzhead.hcrc&&r.pending>m&&(a.adler=z(a.adler,r.pending_buf,r.pending-m,m));0===w&&(r.gzindex=0,r.status=91)}else r.status=91;if(91===r.status)if(r.gzhead.comment){m=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>m&&(a.adler=
z(a.adler,r.pending_buf,r.pending-m,m)),h(a),m=r.pending,r.pending===r.pending_buf_size)){w=1;break}w=r.gzindex<r.gzhead.comment.length?255&r.gzhead.comment.charCodeAt(r.gzindex++):0;k(r,w)}while(0!==w);r.gzhead.hcrc&&r.pending>m&&(a.adler=z(a.adler,r.pending_buf,r.pending-m,m));0===w&&(r.status=103)}else r.status=103;if(103===r.status&&(r.gzhead.hcrc?(r.pending+2>r.pending_buf_size&&h(a),r.pending+2<=r.pending_buf_size&&(k(r,255&a.adler),k(r,a.adler>>8&255),a.adler=0,r.status=la)):r.status=la),0!==
r.pending){if(h(a),0===a.avail_out)return r.last_flush=-1,K}else if(0===a.avail_in&&(b<<1)-(4<b?9:0)<=(c<<1)-(4<c?9:0)&&b!==E)return f(a,-5);if(666===r.status&&0!==a.avail_in)return f(a,-5);if(0!==a.avail_in||0!==r.lookahead||b!==G&&666!==r.status){var x;if(2===r.strategy)a:{for(var s;;){if(0===r.lookahead&&(n(r),0===r.lookahead)){if(b===G){x=X;break a}break}if(r.match_length=0,s=B._tr_tally(r,0,r.window[r.strstart]),r.lookahead--,r.strstart++,s&&(g(r,!1),0===r.strm.avail_out)){x=X;break a}}x=(r.insert=
0,b===E?(g(r,!0),0===r.strm.avail_out?ra:ha):r.last_lit&&(g(r,!1),0===r.strm.avail_out)?X:qa)}else if(3===r.strategy)a:{var q,t;for(s=r.window;;){if(r.lookahead<=Z){if(n(r),r.lookahead<=Z&&b===G){x=X;break a}if(0===r.lookahead)break}if(r.match_length=0,r.lookahead>=I&&0<r.strstart&&(t=r.strstart-1,q=s[t],q===s[++t]&&q===s[++t]&&q===s[++t])){c=r.strstart+Z;do;while(q===s[++t]&&q===s[++t]&&q===s[++t]&&q===s[++t]&&q===s[++t]&&q===s[++t]&&q===s[++t]&&q===s[++t]&&c>t);r.match_length=Z-(c-t);r.match_length>
r.lookahead&&(r.match_length=r.lookahead)}if(r.match_length>=I?(x=B._tr_tally(r,1,r.match_length-I),r.lookahead-=r.match_length,r.strstart+=r.match_length,r.match_length=0):(x=B._tr_tally(r,0,r.window[r.strstart]),r.lookahead--,r.strstart++),x&&(g(r,!1),0===r.strm.avail_out)){x=X;break a}}x=(r.insert=0,b===E?(g(r,!0),0===r.strm.avail_out?ra:ha):r.last_lit&&(g(r,!1),0===r.strm.avail_out)?X:qa)}else x=v[r.level].func(r,b);if((x===ra||x===ha)&&(r.status=666),x===X||x===ra)return 0===a.avail_out&&(r.last_flush=
-1),K;if(x===qa&&(1===b?B._tr_align(r):5!==b&&(B._tr_stored_block(r,0,0,!1),3===b&&(d(r.head),0===r.lookahead&&(r.strstart=0,r.block_start=0,r.insert=0))),h(a),0===a.avail_out))return r.last_flush=-1,K}return b!==E?K:0>=r.wrap?1:(2===r.wrap?(k(r,255&a.adler),k(r,a.adler>>8&255),k(r,a.adler>>16&255),k(r,a.adler>>24&255),k(r,255&a.total_in),k(r,a.total_in>>8&255),k(r,a.total_in>>16&255),k(r,a.total_in>>24&255)):(l(r,a.adler>>>16),l(r,65535&a.adler)),h(a),0<r.wrap&&(r.wrap=-r.wrap),0!==r.pending?K:1)};
a.deflateEnd=function(a){var b;return a&&a.state?(b=a.state.status,b!==pa&&69!==b&&73!==b&&91!==b&&103!==b&&b!==la&&666!==b?f(a,Q):(a.state=null,b===la?f(a,-3):K)):Q};a.deflateInfo="pako deflate (from Nodeca project)"},{"../utils/common":27,"./adler32":29,"./crc32":31,"./messages":37,"./trees":38}],33:[function(c,b){b.exports=function(){this.os=this.xflags=this.time=this.text=0;this.extra=null;this.extra_len=0;this.comment=this.name="";this.hcrc=0;this.done=!1}},{}],34:[function(c,b){b.exports=function(a,
b){var c,h,g,k,l,m,n,q,w,s,D,F,C,v,y,B,H,z,x,G,E,K,Q,O;c=a.state;h=a.next_in;Q=a.input;g=h+(a.avail_in-5);k=a.next_out;O=a.output;l=k-(b-a.avail_out);m=k+(a.avail_out-257);n=c.dmax;q=c.wsize;w=c.whave;s=c.wnext;D=c.window;F=c.hold;C=c.bits;v=c.lencode;y=c.distcode;B=(1<<c.lenbits)-1;H=(1<<c.distbits)-1;a:do{15>C&&(F+=Q[h++]<<C,C+=8,F+=Q[h++]<<C,C+=8);z=v[F&B];b:for(;;){if(x=z>>>24,F>>>=x,C-=x,x=z>>>16&255,0===x)O[k++]=65535&z;else{if(!(16&x)){if(0===(64&x)){z=v[(65535&z)+(F&(1<<x)-1)];continue b}if(32&
x){c.mode=12;break a}a.msg="invalid literal/length code";c.mode=30;break a}G=65535&z;(x&=15)&&(x>C&&(F+=Q[h++]<<C,C+=8),G+=F&(1<<x)-1,F>>>=x,C-=x);15>C&&(F+=Q[h++]<<C,C+=8,F+=Q[h++]<<C,C+=8);z=y[F&H];c:for(;;){if(x=z>>>24,F>>>=x,C-=x,x=z>>>16&255,!(16&x)){if(0===(64&x)){z=y[(65535&z)+(F&(1<<x)-1)];continue c}a.msg="invalid distance code";c.mode=30;break a}if(E=65535&z,x&=15,x>C&&(F+=Q[h++]<<C,C+=8,x>C&&(F+=Q[h++]<<C,C+=8)),E+=F&(1<<x)-1,E>n){a.msg="invalid distance too far back";c.mode=30;break a}if(F>>>=
x,C-=x,x=k-l,E>x){if(x=E-x,x>w&&c.sane){a.msg="invalid distance too far back";c.mode=30;break a}if(z=0,K=D,0===s){if(z+=q-x,G>x){G-=x;do O[k++]=D[z++];while(--x);z=k-E;K=O}}else if(x>s){if(z+=q+s-x,x-=s,G>x){G-=x;do O[k++]=D[z++];while(--x);if(z=0,G>s){x=s;G-=x;do O[k++]=D[z++];while(--x);z=k-E;K=O}}}else if(z+=s-x,G>x){G-=x;do O[k++]=D[z++];while(--x);z=k-E;K=O}for(;2<G;)O[k++]=K[z++],O[k++]=K[z++],O[k++]=K[z++],G-=3;G&&(O[k++]=K[z++],1<G&&(O[k++]=K[z++]))}else{z=k-E;do O[k++]=O[z++],O[k++]=O[z++],
O[k++]=O[z++],G-=3;while(2<G);G&&(O[k++]=O[z++],1<G&&(O[k++]=O[z++]))}break}}break}}while(g>h&&m>k);G=C>>3;h-=G;C-=G<<3;a.next_in=h;a.next_out=k;a.avail_in=g>h?5+(g-h):5-(h-g);a.avail_out=m>k?257+(m-k):257-(k-m);c.hold=F&(1<<C)-1;c.bits=C}},{}],35:[function(c,b,a){function f(a){return(a>>>24&255)+(a>>>8&65280)+((65280&a)<<8)+((255&a)<<24)}function d(){this.mode=0;this.last=!1;this.wrap=0;this.havedict=!1;this.total=this.check=this.dmax=this.flags=0;this.head=null;this.wnext=this.whave=this.wsize=
this.wbits=0;this.window=null;this.extra=this.offset=this.length=this.bits=this.hold=0;this.distcode=this.lencode=null;this.have=this.ndist=this.nlen=this.ncode=this.distbits=this.lenbits=0;this.next=null;this.lens=new q.Buf16(320);this.work=new q.Buf16(288);this.distdyn=this.lendyn=null;this.was=this.back=this.sane=0}function h(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=y,b.last=0,b.havedict=0,b.dmax=32768,b.head=null,b.hold=
0,b.bits=0,b.lencode=b.lendyn=new q.Buf32(B),b.distcode=b.distdyn=new q.Buf32(H),b.sane=1,b.back=-1,C):v}function g(a){var b;return a&&a.state?(b=a.state,b.wsize=0,b.whave=0,b.wnext=0,h(a)):v}function k(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||15<b)?v:(null!==d.window&&d.wbits!==b&&(d.window=null),d.wrap=c,d.wbits=b,g(a))):v}function l(a,b){var c,f;return a?(f=new d,a.state=f,f.window=null,c=k(a,b),c!==C&&(a.state=null),c):v}var m,n,q=c("../utils/common"),
w=c("./adler32"),s=c("./crc32"),D=c("./inffast"),F=c("./inftrees"),C=0,v=-2,y=1,B=852,H=592,z=!0;a.inflateReset=g;a.inflateReset2=k;a.inflateResetKeep=h;a.inflateInit=function(a){return l(a,15)};a.inflateInit2=l;a.inflate=function(a,b){var c,d,h,g,k,l,B,u,t,H,V,M,ea,S,I,Z,fa,pa,la,X,qa,ra,ha=0,na=new q.Buf8(4),Oa=[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 v;c=a.state;12===c.mode&&(c.mode=13);k=a.next_out;h=a.output;B=a.avail_out;g=
a.next_in;d=a.input;l=a.avail_in;u=c.hold;t=c.bits;H=l;V=B;qa=C;a:for(;;)switch(c.mode){case y:if(0===c.wrap){c.mode=13;break}for(;16>t;){if(0===l)break a;l--;u+=d[g++]<<t;t+=8}if(2&c.wrap&&35615===u){c.check=0;na[0]=255&u;na[1]=u>>>8&255;c.check=s(c.check,na,2,0);t=u=0;c.mode=2;break}if(c.flags=0,c.head&&(c.head.done=!1),!(1&c.wrap)||(((255&u)<<8)+(u>>8))%31){a.msg="incorrect header check";c.mode=30;break}if(8!==(15&u)){a.msg="unknown compression method";c.mode=30;break}if(u>>>=4,t-=4,X=(15&u)+8,
0===c.wbits)c.wbits=X;else if(X>c.wbits){a.msg="invalid window size";c.mode=30;break}c.dmax=1<<X;a.adler=c.check=1;c.mode=512&u?10:12;t=u=0;break;case 2:for(;16>t;){if(0===l)break a;l--;u+=d[g++]<<t;t+=8}if(c.flags=u,8!==(255&c.flags)){a.msg="unknown compression method";c.mode=30;break}if(57344&c.flags){a.msg="unknown header flags set";c.mode=30;break}c.head&&(c.head.text=u>>8&1);512&c.flags&&(na[0]=255&u,na[1]=u>>>8&255,c.check=s(c.check,na,2,0));t=u=0;c.mode=3;case 3:for(;32>t;){if(0===l)break a;
l--;u+=d[g++]<<t;t+=8}c.head&&(c.head.time=u);512&c.flags&&(na[0]=255&u,na[1]=u>>>8&255,na[2]=u>>>16&255,na[3]=u>>>24&255,c.check=s(c.check,na,4,0));t=u=0;c.mode=4;case 4:for(;16>t;){if(0===l)break a;l--;u+=d[g++]<<t;t+=8}c.head&&(c.head.xflags=255&u,c.head.os=u>>8);512&c.flags&&(na[0]=255&u,na[1]=u>>>8&255,c.check=s(c.check,na,2,0));t=u=0;c.mode=5;case 5:if(1024&c.flags){for(;16>t;){if(0===l)break a;l--;u+=d[g++]<<t;t+=8}c.length=u;c.head&&(c.head.extra_len=u);512&c.flags&&(na[0]=255&u,na[1]=u>>>
8&255,c.check=s(c.check,na,2,0));t=u=0}else c.head&&(c.head.extra=null);c.mode=6;case 6:if(1024&c.flags&&(M=c.length,M>l&&(M=l),M&&(c.head&&(X=c.head.extra_len-c.length,c.head.extra||(c.head.extra=Array(c.head.extra_len)),q.arraySet(c.head.extra,d,g,M,X)),512&c.flags&&(c.check=s(c.check,d,M,g)),l-=M,g+=M,c.length-=M),c.length))break a;c.length=0;c.mode=7;case 7:if(2048&c.flags){if(0===l)break a;M=0;do X=d[g+M++],c.head&&X&&65536>c.length&&(c.head.name+=String.fromCharCode(X));while(X&&l>M);if(512&
c.flags&&(c.check=s(c.check,d,M,g)),l-=M,g+=M,X)break a}else c.head&&(c.head.name=null);c.length=0;c.mode=8;case 8:if(4096&c.flags){if(0===l)break a;M=0;do X=d[g+M++],c.head&&X&&65536>c.length&&(c.head.comment+=String.fromCharCode(X));while(X&&l>M);if(512&c.flags&&(c.check=s(c.check,d,M,g)),l-=M,g+=M,X)break a}else c.head&&(c.head.comment=null);c.mode=9;case 9:if(512&c.flags){for(;16>t;){if(0===l)break a;l--;u+=d[g++]<<t;t+=8}if(u!==(65535&c.check)){a.msg="header crc mismatch";c.mode=30;break}t=u=
0}c.head&&(c.head.hcrc=c.flags>>9&1,c.head.done=!0);a.adler=c.check=0;c.mode=12;break;case 10:for(;32>t;){if(0===l)break a;l--;u+=d[g++]<<t;t+=8}a.adler=c.check=f(u);t=u=0;c.mode=11;case 11:if(0===c.havedict)return a.next_out=k,a.avail_out=B,a.next_in=g,a.avail_in=l,c.hold=u,c.bits=t,2;a.adler=c.check=1;c.mode=12;case 12:if(5===b||6===b)break a;case 13:if(c.last){u>>>=7&t;t-=7&t;c.mode=27;break}for(;3>t;){if(0===l)break a;l--;u+=d[g++]<<t;t+=8}switch(c.last=1&u,u>>>=1,t-=1,3&u){case 0:c.mode=14;break;
case 1:S=c;if(z){Z=void 0;m=new q.Buf32(512);n=new q.Buf32(32);for(Z=0;144>Z;)S.lens[Z++]=8;for(;256>Z;)S.lens[Z++]=9;for(;280>Z;)S.lens[Z++]=7;for(;288>Z;)S.lens[Z++]=8;F(1,S.lens,0,288,m,0,S.work,{bits:9});for(Z=0;32>Z;)S.lens[Z++]=5;F(2,S.lens,0,32,n,0,S.work,{bits:5});z=!1}S.lencode=m;S.lenbits=9;S.distcode=n;S.distbits=5;if(c.mode=20,6===b){u>>>=2;t-=2;break a}break;case 2:c.mode=17;break;case 3:a.msg="invalid block type",c.mode=30}u>>>=2;t-=2;break;case 14:u>>>=7&t;for(t-=7&t;32>t;){if(0===
l)break a;l--;u+=d[g++]<<t;t+=8}if((65535&u)!==(u>>>16^65535)){a.msg="invalid stored block lengths";c.mode=30;break}if(c.length=65535&u,u=0,t=0,c.mode=15,6===b)break a;case 15:c.mode=16;case 16:if(M=c.length){if(M>l&&(M=l),M>B&&(M=B),0===M)break a;q.arraySet(h,d,g,M,k);l-=M;g+=M;B-=M;k+=M;c.length-=M;break}c.mode=12;break;case 17:for(;14>t;){if(0===l)break a;l--;u+=d[g++]<<t;t+=8}if(c.nlen=(31&u)+257,u>>>=5,t-=5,c.ndist=(31&u)+1,u>>>=5,t-=5,c.ncode=(15&u)+4,u>>>=4,t-=4,286<c.nlen||30<c.ndist){a.msg=
"too many length or distance symbols";c.mode=30;break}c.have=0;c.mode=18;case 18:for(;c.have<c.ncode;){for(;3>t;){if(0===l)break a;l--;u+=d[g++]<<t;t+=8}c.lens[Oa[c.have++]]=7&u;u>>>=3;t-=3}for(;19>c.have;)c.lens[Oa[c.have++]]=0;if(c.lencode=c.lendyn,c.lenbits=7,ra={bits:c.lenbits},qa=F(0,c.lens,0,19,c.lencode,0,c.work,ra),c.lenbits=ra.bits,qa){a.msg="invalid code lengths set";c.mode=30;break}c.have=0;c.mode=19;case 19:for(;c.have<c.nlen+c.ndist;){for(;ha=c.lencode[u&(1<<c.lenbits)-1],I=ha>>>24,Z=
65535&ha,!(t>=I);){if(0===l)break a;l--;u+=d[g++]<<t;t+=8}if(16>Z)u>>>=I,t-=I,c.lens[c.have++]=Z;else{if(16===Z){for(S=I+2;S>t;){if(0===l)break a;l--;u+=d[g++]<<t;t+=8}if(u>>>=I,t-=I,0===c.have){a.msg="invalid bit length repeat";c.mode=30;break}X=c.lens[c.have-1];M=3+(3&u);u>>>=2;t-=2}else if(17===Z){for(S=I+3;S>t;){if(0===l)break a;l--;u+=d[g++]<<t;t+=8}u>>>=I;t-=I;X=0;M=3+(7&u);u>>>=3;t-=3}else{for(S=I+7;S>t;){if(0===l)break a;l--;u+=d[g++]<<t;t+=8}u>>>=I;t-=I;X=0;M=11+(127&u);u>>>=7;t-=7}if(c.have+
M>c.nlen+c.ndist){a.msg="invalid bit length repeat";c.mode=30;break}for(;M--;)c.lens[c.have++]=X}}if(30===c.mode)break;if(0===c.lens[256]){a.msg="invalid code -- missing end-of-block";c.mode=30;break}if(c.lenbits=9,ra={bits:c.lenbits},qa=F(1,c.lens,0,c.nlen,c.lencode,0,c.work,ra),c.lenbits=ra.bits,qa){a.msg="invalid literal/lengths set";c.mode=30;break}if(c.distbits=6,c.distcode=c.distdyn,ra={bits:c.distbits},qa=F(2,c.lens,c.nlen,c.ndist,c.distcode,0,c.work,ra),c.distbits=ra.bits,qa){a.msg="invalid distances set";
c.mode=30;break}if(c.mode=20,6===b)break a;case 20:c.mode=21;case 21:if(6<=l&&258<=B){a.next_out=k;a.avail_out=B;a.next_in=g;a.avail_in=l;c.hold=u;c.bits=t;D(a,V);k=a.next_out;h=a.output;B=a.avail_out;g=a.next_in;d=a.input;l=a.avail_in;u=c.hold;t=c.bits;12===c.mode&&(c.back=-1);break}for(c.back=0;ha=c.lencode[u&(1<<c.lenbits)-1],I=ha>>>24,S=ha>>>16&255,Z=65535&ha,!(t>=I);){if(0===l)break a;l--;u+=d[g++]<<t;t+=8}if(S&&0===(240&S)){fa=I;pa=S;for(la=Z;ha=c.lencode[la+((u&(1<<fa+pa)-1)>>fa)],I=ha>>>24,
S=ha>>>16&255,Z=65535&ha,!(t>=fa+I);){if(0===l)break a;l--;u+=d[g++]<<t;t+=8}u>>>=fa;t-=fa;c.back+=fa}if(u>>>=I,t-=I,c.back+=I,c.length=Z,0===S){c.mode=26;break}if(32&S){c.back=-1;c.mode=12;break}if(64&S){a.msg="invalid literal/length code";c.mode=30;break}c.extra=15&S;c.mode=22;case 22:if(c.extra){for(S=c.extra;S>t;){if(0===l)break a;l--;u+=d[g++]<<t;t+=8}c.length+=u&(1<<c.extra)-1;u>>>=c.extra;t-=c.extra;c.back+=c.extra}c.was=c.length;c.mode=23;case 23:for(;ha=c.distcode[u&(1<<c.distbits)-1],I=
ha>>>24,S=ha>>>16&255,Z=65535&ha,!(t>=I);){if(0===l)break a;l--;u+=d[g++]<<t;t+=8}if(0===(240&S)){fa=I;pa=S;for(la=Z;ha=c.distcode[la+((u&(1<<fa+pa)-1)>>fa)],I=ha>>>24,S=ha>>>16&255,Z=65535&ha,!(t>=fa+I);){if(0===l)break a;l--;u+=d[g++]<<t;t+=8}u>>>=fa;t-=fa;c.back+=fa}if(u>>>=I,t-=I,c.back+=I,64&S){a.msg="invalid distance code";c.mode=30;break}c.offset=Z;c.extra=15&S;c.mode=24;case 24:if(c.extra){for(S=c.extra;S>t;){if(0===l)break a;l--;u+=d[g++]<<t;t+=8}c.offset+=u&(1<<c.extra)-1;u>>>=c.extra;t-=
c.extra;c.back+=c.extra}if(c.offset>c.dmax){a.msg="invalid distance too far back";c.mode=30;break}c.mode=25;case 25:if(0===B)break a;if(M=V-B,c.offset>M){if(M=c.offset-M,M>c.whave&&c.sane){a.msg="invalid distance too far back";c.mode=30;break}M>c.wnext?(M-=c.wnext,ea=c.wsize-M):ea=c.wnext-M;M>c.length&&(M=c.length);S=c.window}else S=h,ea=k-c.offset,M=c.length;M>B&&(M=B);B-=M;c.length-=M;do h[k++]=S[ea++];while(--M);0===c.length&&(c.mode=21);break;case 26:if(0===B)break a;h[k++]=c.length;B--;c.mode=
21;break;case 27:if(c.wrap){for(;32>t;){if(0===l)break a;l--;u|=d[g++]<<t;t+=8}if(V-=B,a.total_out+=V,c.total+=V,V&&(a.adler=c.check=c.flags?s(c.check,h,V,k-V):w(c.check,h,V,k-V)),V=B,(c.flags?u:f(u))!==c.check){a.msg="incorrect data check";c.mode=30;break}t=u=0}c.mode=28;case 28:if(c.wrap&&c.flags){for(;32>t;){if(0===l)break a;l--;u+=d[g++]<<t;t+=8}if(u!==(4294967295&c.total)){a.msg="incorrect length check";c.mode=30;break}t=u=0}c.mode=29;case 29:qa=1;break a;case 30:qa=-3;break a;case 31:return-4;
default:return v}a.next_out=k;a.avail_out=B;a.next_in=g;a.avail_in=l;c.hold=u;c.bits=t;if(g=c.wsize||V!==a.avail_out&&30>c.mode&&(27>c.mode||4!==b)){g=a.output;k=a.next_out;d=V-a.avail_out;var ya;l=a.state;g=(null===l.window&&(l.wsize=1<<l.wbits,l.wnext=0,l.whave=0,l.window=new q.Buf8(l.wsize)),d>=l.wsize?(q.arraySet(l.window,g,k-l.wsize,l.wsize,0),l.wnext=0,l.whave=l.wsize):(ya=l.wsize-l.wnext,ya>d&&(ya=d),q.arraySet(l.window,g,k-d,ya,l.wnext),d-=ya,d?(q.arraySet(l.window,g,k-d,d,0),l.wnext=d,l.whave=
l.wsize):(l.wnext+=ya,l.wnext===l.wsize&&(l.wnext=0),l.whave<l.wsize&&(l.whave+=ya))),0)}return g?(c.mode=31,-4):(H-=a.avail_in,V-=a.avail_out,a.total_in+=H,a.total_out+=V,c.total+=V,c.wrap&&V&&(a.adler=c.check=c.flags?s(c.check,h,V,a.next_out-V):w(c.check,h,V,a.next_out-V)),a.data_type=c.bits+(c.last?64:0)+(12===c.mode?128:0)+(20===c.mode||15===c.mode?256:0),(0===H&&0===V||4===b)&&qa===C&&(qa=-5),qa)};a.inflateEnd=function(a){if(!a||!a.state)return v;var b=a.state;return b.window&&(b.window=null),
a.state=null,C};a.inflateGetHeader=function(a,b){var c;return a&&a.state?(c=a.state,0===(2&c.wrap)?v:(c.head=b,b.done=!1,C)):v};a.inflateInfo="pako inflate (from Nodeca project)"},{"../utils/common":27,"./adler32":29,"./crc32":31,"./inffast":34,"./inftrees":36}],36:[function(c,b){var a=c("../utils/common"),f=[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],d=[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],h=
[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],g=[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(b,c,m,n,q,w,s,D){var F,C,v,y,B,H,z,x;y=D.bits;for(var G=0,E=0,K=0,Q=0,O=0,T=0,U=0,ja=F=0,u=0,t=null,oa=0,V=new a.Buf16(16),T=new a.Buf16(16),M=null,ea=0,G=0;15>=G;G++)V[G]=0;for(E=0;n>E;E++)V[c[m+E]]++;O=y;for(Q=15;1<=Q&&0===V[Q];Q--);if(O>Q&&(O=Q),0===Q)return q[w++]=
20971520,q[w++]=20971520,D.bits=1,0;for(K=1;Q>K&&0===V[K];K++);K>O&&(O=K);for(G=F=1;15>=G;G++)if(F<<=1,F-=V[G],0>F)return-1;if(0<F&&(0===b||1!==Q))return-1;T[1]=0;for(G=1;15>G;G++)T[G+1]=T[G]+V[G];for(E=0;n>E;E++)0!==c[m+E]&&(s[T[c[m+E]]++]=E);if(0===b?(t=M=s,B=19):1===b?(t=f,oa-=257,M=d,ea-=257,B=256):(t=h,M=g,B=-1),u=0,E=0,G=K,y=w,T=O,U=0,v=-1,ja=1<<O,n=ja-1,1===b&&852<ja||2===b&&592<ja)return 1;for(var S=0;;){S++;H=G-U;s[E]<B?(z=0,x=s[E]):s[E]>B?(z=M[ea+s[E]],x=t[oa+s[E]]):(z=96,x=0);F=1<<G-U;
K=C=1<<T;do C-=F,q[y+(u>>U)+C]=H<<24|z<<16|x|0;while(0!==C);for(F=1<<G-1;u&F;)F>>=1;if(0!==F?(u&=F-1,u+=F):u=0,E++,0===--V[G]){if(G===Q)break;G=c[m+s[E]]}if(G>O&&(u&n)!==v){0===U&&(U=O);y+=K;T=G-U;for(F=1<<T;Q>T+U&&(F-=V[T+U],!(0>=F));)T++,F<<=1;if(ja+=1<<T,1===b&&852<ja||2===b&&592<ja)return 1;v=u&n;q[v]=O<<24|T<<16|y-w|0}}return 0!==u&&(q[y+u]=G-U<<24|4194304),D.bits=O,0}},{"../utils/common":27}],37:[function(c,b){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(c,b,a){function f(a){for(var b=a.length;0<=--b;)a[b]=0}function d(a,b){a.pending_buf[a.pending++]=255&b;a.pending_buf[a.pending++]=b>>>8&255}function h(a,b,c){a.bi_valid>U-c?(a.bi_buf|=b<<a.bi_valid&65535,d(a,a.bi_buf),a.bi_buf=b>>U-a.bi_valid,a.bi_valid+=c-U):(a.bi_buf|=b<<a.bi_valid&65535,a.bi_valid+=c)}function g(a,b,c){h(a,c[2*b],c[2*b+1])}function k(a,b){var c=0;do c|=1&a,a>>>=1,c<<=
1;while(0<--b);return c>>>1}function l(a,b,c){var d,f=Array(T+1),h=0;for(d=1;T>=d;d++)f[d]=h=h+c[d-1]<<1;for(c=0;b>=c;c++)d=a[2*c+1],0!==d&&(a[2*c]=k(f[d]++,d))}function m(a){var b;for(b=0;E>b;b++)a.dyn_ltree[2*b]=0;for(b=0;K>b;b++)a.dyn_dtree[2*b]=0;for(b=0;Q>b;b++)a.bl_tree[2*b]=0;a.dyn_ltree[2*ja]=1;a.opt_len=a.static_len=0;a.last_lit=a.matches=0}function n(a){8<a.bi_valid?d(a,a.bi_buf):0<a.bi_valid&&(a.pending_buf[a.pending++]=a.bi_buf);a.bi_buf=0;a.bi_valid=0}function q(a,b,c,d){var f=2*b,h=
2*c;return a[f]<a[h]||a[f]===a[h]&&d[b]<=d[c]}function w(a,b,c){for(var d=a.heap[c],f=c<<1;f<=a.heap_len&&(f<a.heap_len&&q(b,a.heap[f+1],a.heap[f],a.depth)&&f++,!q(b,d,a.heap[f],a.depth));)a.heap[c]=a.heap[f],c=f,f<<=1;a.heap[c]=d}function s(a,b,c){var d,f,k,l,m=0;if(0!==a.last_lit){do d=a.pending_buf[a.d_buf+2*m]<<8|a.pending_buf[a.d_buf+2*m+1],f=a.pending_buf[a.l_buf+m],m++,0===d?g(a,f,b):(k=pa[f],g(a,k+G+1,b),l=V[k],0!==l&&(f-=la[k],h(a,f,l)),d--,k=256>d?fa[d]:fa[256+(d>>>7)],g(a,k,c),l=M[k],0!==
l&&(d-=X[k],h(a,d,l)));while(m<a.last_lit)}g(a,ja,b)}function D(a,b){var c,d,f,h=b.dyn_tree;d=b.stat_desc.static_tree;var g=b.stat_desc.has_stree,k=b.stat_desc.elems,m=-1;a.heap_len=0;a.heap_max=O;for(c=0;k>c;c++)0!==h[2*c]?(a.heap[++a.heap_len]=m=c,a.depth[c]=0):h[2*c+1]=0;for(;2>a.heap_len;)f=a.heap[++a.heap_len]=2>m?++m:0,h[2*f]=1,a.depth[f]=0,a.opt_len--,g&&(a.static_len-=d[2*f+1]);b.max_code=m;for(c=a.heap_len>>1;1<=c;c--)w(a,h,c);f=k;do c=a.heap[1],a.heap[1]=a.heap[a.heap_len--],w(a,h,1),d=
a.heap[1],a.heap[--a.heap_max]=c,a.heap[--a.heap_max]=d,h[2*f]=h[2*c]+h[2*d],a.depth[f]=(a.depth[c]>=a.depth[d]?a.depth[c]:a.depth[d])+1,h[2*c+1]=h[2*d+1]=f,a.heap[1]=f++,w(a,h,1);while(2<=a.heap_len);a.heap[--a.heap_max]=a.heap[1];var n,s,g=b.dyn_tree,k=b.max_code,q=b.stat_desc.static_tree,t=b.stat_desc.has_stree,u=b.stat_desc.extra_bits,y=b.stat_desc.extra_base,v=b.stat_desc.max_length,C=0;for(d=0;T>=d;d++)a.bl_count[d]=0;g[2*a.heap[a.heap_max]+1]=0;for(c=a.heap_max+1;O>c;c++)f=a.heap[c],d=g[2*
g[2*f+1]+1]+1,d>v&&(d=v,C++),g[2*f+1]=d,f>k||(a.bl_count[d]++,n=0,f>=y&&(n=u[f-y]),s=g[2*f],a.opt_len+=s*(d+n),t&&(a.static_len+=s*(q[2*f+1]+n)));if(0!==C){do{for(d=v-1;0===a.bl_count[d];)d--;a.bl_count[d]--;a.bl_count[d+1]+=2;a.bl_count[v]--;C-=2}while(0<C);for(d=v;0!==d;d--)for(f=a.bl_count[d];0!==f;)n=a.heap[--c],n>k||(g[2*n+1]!==d&&(a.opt_len+=(d-g[2*n+1])*g[2*n],g[2*n+1]=d),f--)}l(h,m,a.bl_count)}function F(a,b,c){var d,f,h=-1,g=b[1],k=0,l=7,m=4;0===g&&(l=138,m=3);b[2*(c+1)+1]=65535;for(d=0;c>=
d;d++)f=g,g=b[2*(d+1)+1],++k<l&&f===g||(m>k?a.bl_tree[2*f]+=k:0!==f?(f!==h&&a.bl_tree[2*f]++,a.bl_tree[2*u]++):10>=k?a.bl_tree[2*t]++:a.bl_tree[2*oa]++,k=0,h=f,0===g?(l=138,m=3):f===g?(l=6,m=3):(l=7,m=4))}function C(a,b,c){var d,f,k=-1,l=b[1],m=0,w=7,n=4;0===l&&(w=138,n=3);for(d=0;c>=d;d++)if(f=l,l=b[2*(d+1)+1],!(++m<w&&f===l)){if(n>m){do g(a,f,a.bl_tree);while(0!==--m)}else 0!==f?(f!==k&&(g(a,f,a.bl_tree),m--),g(a,u,a.bl_tree),h(a,m-3,2)):10>=m?(g(a,t,a.bl_tree),h(a,m-3,3)):(g(a,oa,a.bl_tree),h(a,
m-11,7));m=0;k=f;0===l?(w=138,n=3):f===l?(w=6,n=3):(w=7,n=4)}}function v(a){var b,c=4093624447;for(b=0;31>=b;b++,c>>>=1)if(1&c&&0!==a.dyn_ltree[2*b])return H;if(0!==a.dyn_ltree[18]||0!==a.dyn_ltree[20]||0!==a.dyn_ltree[26])return z;for(b=32;G>b;b++)if(0!==a.dyn_ltree[2*b])return z;return H}function y(a,b,c,f){h(a,(x<<1)+(f?1:0),3);n(a);d(a,c);d(a,~c);B.arraySet(a.pending_buf,a.window,b,c,a.pending);a.pending+=c}var B=c("../utils/common"),H=0,z=1,x=0,G=256,E=G+1+29,K=30,Q=19,O=2*E+1,T=15,U=16,ja=256,
u=16,t=17,oa=18,V=[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],M=[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],ea=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],S=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],I=Array(2*(E+2));f(I);var Z=Array(2*K);f(Z);var fa=Array(512);f(fa);var pa=Array(256);f(pa);var la=Array(29);f(la);var X=Array(K);f(X);var qa,ra,ha,na=function(a,b,c,d,f){this.static_tree=a;this.extra_bits=b;this.extra_base=c;this.elems=d;this.max_length=f;
this.has_stree=a&&a.length},Oa=function(a,b){this.dyn_tree=a;this.max_code=0;this.stat_desc=b},ya=!1;a._tr_init=function(a){if(!ya){var b,c,d,f=Array(T+1);for(d=c=0;28>d;d++){la[d]=c;for(b=0;b<1<<V[d];b++)pa[c++]=d}pa[c-1]=d;for(d=c=0;16>d;d++){X[d]=c;for(b=0;b<1<<M[d];b++)fa[c++]=d}for(c>>=7;K>d;d++){X[d]=c<<7;for(b=0;b<1<<M[d]-7;b++)fa[256+c++]=d}for(b=0;T>=b;b++)f[b]=0;for(b=0;143>=b;)I[2*b+1]=8,b++,f[8]++;for(;255>=b;)I[2*b+1]=9,b++,f[9]++;for(;279>=b;)I[2*b+1]=7,b++,f[7]++;for(;287>=b;)I[2*b+
1]=8,b++,f[8]++;l(I,E+1,f);for(b=0;K>b;b++)Z[2*b+1]=5,Z[2*b]=k(b,5);qa=new na(I,V,G+1,E,T);ra=new na(Z,M,0,K,T);ha=new na([],ea,0,Q,7);ya=!0}a.l_desc=new Oa(a.dyn_ltree,qa);a.d_desc=new Oa(a.dyn_dtree,ra);a.bl_desc=new Oa(a.bl_tree,ha);a.bi_buf=0;a.bi_valid=0;m(a)};a._tr_stored_block=y;a._tr_flush_block=function(a,b,c,d){var f,g,k=0;if(0<a.level){2===a.strm.data_type&&(a.strm.data_type=v(a));D(a,a.l_desc);D(a,a.d_desc);F(a,a.dyn_ltree,a.l_desc.max_code);F(a,a.dyn_dtree,a.d_desc.max_code);D(a,a.bl_desc);
for(k=Q-1;3<=k&&0===a.bl_tree[2*S[k]+1];k--);k=(a.opt_len+=3*(k+1)+14,k);f=a.opt_len+3+7>>>3;g=a.static_len+3+7>>>3;f>=g&&(f=g)}else f=g=c+5;if(f>=c+4&&-1!==b)y(a,b,c,d);else if(4===a.strategy||g===f)h(a,2+(d?1:0),3),s(a,I,Z);else{h(a,4+(d?1:0),3);b=a.l_desc.max_code+1;c=a.d_desc.max_code+1;k+=1;h(a,b-257,5);h(a,c-1,5);h(a,k-4,4);for(f=0;k>f;f++)h(a,a.bl_tree[2*S[f]+1],3);C(a,a.dyn_ltree,b-1);C(a,a.dyn_dtree,c-1);s(a,a.dyn_ltree,a.dyn_dtree)}m(a);d&&n(a)};a._tr_tally=function(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*(pa[c]+G+1)]++,a.dyn_dtree[2*(256>b?fa[b]:fa[256+(b>>>7)])]++),a.last_lit===a.lit_bufsize-1};a._tr_align=function(a){h(a,2,3);g(a,ja,I);16===a.bi_valid?(d(a,a.bi_buf),a.bi_buf=0,a.bi_valid=0):8<=a.bi_valid&&(a.pending_buf[a.pending++]=255&a.bi_buf,a.bi_buf>>=8,a.bi_valid-=8)}},{"../utils/common":27}],39:[function(c,b){b.exports=
function(){this.input=null;this.total_in=this.avail_in=this.next_in=0;this.output=null;this.total_out=this.avail_out=this.next_out=0;this.msg="";this.state=null;this.data_type=2;this.adler=0}},{}]},{},[9])(9)});"use strict";
tv.exportTo("tv.e.importer.ddms",function(){function e(a){this.position_=0;this.data_=JSZip.utils.transformTo("uint8array",a)}function c(a,b){this.importPriority=3;this.model_=a;this.data_=b}var b=tv.c.importer.Importer;e.prototype={__proto__:Object.prototype,uint8:function(){var a=this.data_[this.position_];this.position_+=1;return a},uint16:function(){var a;a=0+this.uint8();return a+=this.uint8()<<8},uint32:function(){var a;a=0+this.uint8();a+=this.uint8()<<8;a+=this.uint8()<<16;return a+=this.uint8()<<
24},uint64:function(){var a=this.uint32(),b=this.uint32(),a=("0000000"+a.toString(16)).substr(-8);return("0000000"+b.toString(16)).substr(-8)+a},seekTo:function(a){this.position_=a},hasMore:function(){return this.position_<this.data_.length}};c.canImport=function(a){return"string"===typeof a||a instanceof String?(a=a.slice(0,1E3),a.startsWith("*version\n")&&0<=a.indexOf("\nvm=")&&0<=a.indexOf("\n*threads\n")):!1};c.prototype={__proto__:b.prototype,get model(){return this.model_},importEvents:function(a){a=
this.data_.indexOf("\n*end\n")+6;this.metadata_=this.data_.slice(0,a);this.methods_={};this.parseThreads();this.parseMethods();a=new e(this.data_.slice(a));if(1464814675!=a.uint32())throw Error("Failed to match magic value");this.version_=a.uint16();if(3!=this.version_)throw Error("Unknown version");var b=a.uint16();a.uint64();a.uint16();for(a.seekTo(b);a.hasMore();)this.parseTraceEntry(a)},parseTraceEntry:function(a){var b=a.uint16(),c=a.uint32(),e=a.uint32();a=a.uint32();var g=c&-4,c=c&3,b=this.getTid(b),
g=this.getMethodName(g);0==c?b.sliceGroup.beginSlice("java",g,a,void 0,e):b.sliceGroup.openSliceCount&&b.sliceGroup.endSlice(a,e)},parseThreads:function(){var a=this.metadata_.slice(this.metadata_.indexOf("\n*threads\n")+10),a=a.slice(0,a.indexOf("\n*")),a=a.split("\n");a.forEach(this.parseThread.bind(this))},parseThread:function(a){var b=a.slice(0,a.indexOf("\t"));this.getTid(parseInt(b)).name=a.slice(a.indexOf("\t")+1)},getTid:function(a){return this.model_.getOrCreateProcess(0).getOrCreateThread(a)},
parseMethods:function(){var a=this.metadata_.slice(this.metadata_.indexOf("\n*methods\n")+10),a=a.slice(0,a.indexOf("\n*")),a=a.split("\n");a.forEach(this.parseMethod.bind(this))},parseMethod:function(a){a=a.split("\t");var b=parseInt(a[0]);this.addMethod(b,a[1]+"."+a[2]+a[3])},addMethod:function(a,b){this.methods_[a]=b},getMethodName:function(a){return this.methods_[a]}};tv.c.importer.Importer.register(c);return{DdmsImporter:c}});"use strict";
tv.exportTo("tv.e.importer.linux_perf",function(){function e(b){this.importer=b;this.model=b.model}e.prototype={__proto__:Object.prototype};var c=new tv.b.ExtensionRegistryOptions(tv.b.BASIC_REGISTRY_MODE);c.mandatoryBaseClass=e;tv.b.decorateExtensionRegistry(e,c);return{Parser:e}});"use strict";
tv.exportTo("tv.e.importer.linux_perf",function(){function e(b){c.call(this,b);b.registerEventHandler("memory_bus_usage",e.prototype.traceMarkWriteBusEvent.bind(this));this.model_=b.model_;this.ppids_={}}var c=tv.e.importer.linux_perf.Parser;e.prototype={__proto__:c.prototype,traceMarkWriteBusEvent:function(b,a,c,d,e,g){c=/bus=(\S+) rw_bytes=(\d+) r_bytes=(\d+) w_bytes=(\d+) cycles=(\d+) ns=(\d+)/.exec(e.details);b=c[1];parseInt(c[2]);a=parseInt(c[3]);parseInt(c[4]);parseInt(c[5]);c=parseInt(c[6]);
var k=1E9*a/c,k=k/1048576;a=this.model_.kernel.getOrCreateCounter(null,"bus "+b+" read");0===a.numSeries&&a.addSeries(new tv.c.trace_model.CounterSeries("value",tv.b.ui.getColorIdForGeneralPurposeString(a.name+".value")));a.series.forEach(function(a){a.addCounterSample(d,k)});a=this.model_.kernel.getOrCreateCounter(null,"bus "+b+" write");0===a.numSeries&&a.addSeries(new tv.c.trace_model.CounterSeries("value",tv.b.ui.getColorIdForGeneralPurposeString(a.name+".value")));a.series.forEach(function(a){a.addCounterSample(d,
k)});return!0}};c.register(e);return{BusParser:e}});"use strict";
tv.exportTo("tv.e.importer.linux_perf",function(){function e(b){c.call(this,b);b.registerEventHandler("clock_set_rate",e.prototype.traceMarkWriteClockEvent.bind(this));this.model_=b.model_;this.ppids_={}}var c=tv.e.importer.linux_perf.Parser;e.prototype={__proto__:c.prototype,traceMarkWriteClockEvent:function(b,a,c,d,e,g){b=/(\S+) state=(\d+) cpu_id=(\d+)/.exec(e.details);a=b[1];var k=parseInt(b[2]);b=this.model_.kernel.getOrCreateCounter(null,a);0===b.numSeries&&b.addSeries(new tv.c.trace_model.CounterSeries("value",
tv.b.ui.getColorIdForGeneralPurposeString(b.name+".value")));b.series.forEach(function(a){a.addCounterSample(d,k)});return!0}};c.register(e);return{ClockParser:e}});"use strict";
tv.exportTo("tv.e.importer.linux_perf",function(){function e(a){b.call(this,a);a.registerEventHandler("cpufreq_interactive_up",e.prototype.cpufreqUpDownEvent.bind(this));a.registerEventHandler("cpufreq_interactive_down",e.prototype.cpufreqUpDownEvent.bind(this));a.registerEventHandler("cpufreq_interactive_already",e.prototype.cpufreqTargetEvent.bind(this));a.registerEventHandler("cpufreq_interactive_notyet",e.prototype.cpufreqTargetEvent.bind(this));a.registerEventHandler("cpufreq_interactive_setspeed",
e.prototype.cpufreqTargetEvent.bind(this));a.registerEventHandler("cpufreq_interactive_target",e.prototype.cpufreqTargetEvent.bind(this));a.registerEventHandler("cpufreq_interactive_boost",e.prototype.cpufreqBoostUnboostEvent.bind(this));a.registerEventHandler("cpufreq_interactive_unboost",e.prototype.cpufreqBoostUnboostEvent.bind(this))}function c(a){var b={};a=a.split(/\s+/);for(var c=a.length,e=0;e<c;e++){var g=a[e].split("=");b[g[0]]=parseInt(g[1])}return b}var b=tv.e.importer.linux_perf.Parser;
e.prototype={__proto__:b.prototype,cpufreqSlice:function(a,b,c,e){c=this.importer.getOrCreatePseudoThread("cpufreq");c.openSlice=b;a=new tv.c.trace_model.Slice("",c.openSlice,tv.b.ui.getColorIdForGeneralPurposeString(c.openSlice),a,e,0);c.thread.sliceGroup.pushSlice(a)},cpufreqBoostSlice:function(a,b,c){var e=this.importer.getOrCreatePseudoThread("cpufreq_boost");e.openSlice=b;a=new tv.c.trace_model.Slice("",e.openSlice,tv.b.ui.getColorIdForGeneralPurposeString(e.openSlice),a,c,0);e.thread.sliceGroup.pushSlice(a)},
cpufreqUpDownEvent:function(a,b,d,e,g){b=c(g.details);this.cpufreqSlice(e,a,b.cpu,b);return!0},cpufreqTargetEvent:function(a,b,d,e,g){b=c(g.details);this.cpufreqSlice(e,a,b.cpu,b);return!0},cpufreqBoostUnboostEvent:function(a,b,c,e,g){this.cpufreqBoostSlice(e,a,{type:g.details});return!0}};b.register(e);return{CpufreqParser:e}});"use strict";
tv.exportTo("tv.e.importer.linux_perf",function(){function e(b){c.call(this,b);b.registerEventHandler("f2fs_write_begin",e.prototype.f2fsWriteBeginEvent.bind(this));b.registerEventHandler("f2fs_write_end",e.prototype.f2fsWriteEndEvent.bind(this));b.registerEventHandler("f2fs_sync_file_enter",e.prototype.f2fsSyncFileEnterEvent.bind(this));b.registerEventHandler("f2fs_sync_file_exit",e.prototype.f2fsSyncFileExitEvent.bind(this));b.registerEventHandler("ext4_sync_file_enter",e.prototype.ext4SyncFileEnterEvent.bind(this));
b.registerEventHandler("ext4_sync_file_exit",e.prototype.ext4SyncFileExitEvent.bind(this));b.registerEventHandler("ext4_da_write_begin",e.prototype.ext4WriteBeginEvent.bind(this));b.registerEventHandler("ext4_da_write_end",e.prototype.ext4WriteEndEvent.bind(this));b.registerEventHandler("block_rq_issue",e.prototype.blockRqIssueEvent.bind(this));b.registerEventHandler("block_rq_complete",e.prototype.blockRqCompleteEvent.bind(this))}var c=tv.e.importer.linux_perf.Parser;e.prototype={__proto__:c.prototype,
openAsyncSlice:function(b,a,c,d,e,g){c=this.importer.getOrCreateKernelThread(a+":"+c,d);b=new (tv.c.trace_model.AsyncSlice.getConstructor(a,g))(a,g,tv.b.ui.getColorIdForGeneralPurposeString(g),b);b.startThread=c.thread;c.openAsyncSlices||(c.openAsyncSlices={});c.openAsyncSlices[e]=b},closeAsyncSlice:function(b,a,c,d,e,g){c=this.importer.getOrCreateKernelThread(a+":"+c,d);if(c.openAsyncSlices&&(d=c.openAsyncSlices[e]))d.duration=b-d.start,d.args=g,d.endThread=c.thread,d.subSlices=[new tv.c.trace_model.Slice(a,
d.title,d.colorId,d.start,d.args,d.duration)],c.thread.asyncSliceGroup.push(d),delete c.openAsyncSlices[e]},f2fsWriteBeginEvent:function(b,a,c,d,e){var g=/dev = \((\d+,\d+)\), ino = (\d+), pos = (\d+), len = (\d+), flags = (\d+)/.exec(e.details);if(!g)return!1;b=g[1];a=parseInt(g[2]);c=parseInt(g[3]);g=parseInt(g[4]);this.openAsyncSlice(d,"f2fs",e.threadName,e.pid,b+"-"+a+"-"+c+"-"+g,"f2fs_write");return!0},f2fsWriteEndEvent:function(b,a,c,d,e){var g=/dev = \((\d+,\d+)\), ino = (\d+), pos = (\d+), len = (\d+), copied = (\d+)/.exec(e.details);
if(!g)return!1;b=g[1];a=parseInt(g[2]);c=parseInt(g[3]);var k=parseInt(g[4]),g=parseInt(g[5])!==k;this.closeAsyncSlice(d,"f2fs",e.threadName,e.pid,b+"-"+a+"-"+c+"-"+k,{device:b,inode:a,error:g});return!0},ext4WriteBeginEvent:function(b,a,c,d,e){var g=/dev (\d+,\d+) ino (\d+) pos (\d+) len (\d+) flags (\d+)/.exec(e.details);if(!g)return!1;b=g[1];a=parseInt(g[2]);c=parseInt(g[3]);g=parseInt(g[4]);this.openAsyncSlice(d,"ext4",e.threadName,e.pid,b+"-"+a+"-"+c+"-"+g,"ext4_write");return!0},ext4WriteEndEvent:function(b,
a,c,d,e){var g=/dev (\d+,\d+) ino (\d+) pos (\d+) len (\d+) copied (\d+)/.exec(e.details);if(!g)return!1;b=g[1];a=parseInt(g[2]);c=parseInt(g[3]);var k=parseInt(g[4]),g=parseInt(g[5])!==k;this.closeAsyncSlice(d,"ext4",e.threadName,e.pid,b+"-"+a+"-"+c+"-"+k,{device:b,inode:a,error:g});return!0},f2fsSyncFileEnterEvent:function(b,a,c,d,e){a=RegExp("dev = \\((\\d+,\\d+)\\), ino = (\\d+), pino = (\\d+), i_mode = (\\S+), i_size = (\\d+), i_nlink = (\\d+), i_blocks = (\\d+), i_advise = (\\d+)").exec(e.details);
if(!a)return!1;b=a[1];a=parseInt(a[2]);this.openAsyncSlice(d,"f2fs",e.threadName,e.pid,b+"-"+a,"fsync");return!0},f2fsSyncFileExitEvent:function(b,a,c,d,e){c=/dev = \((\d+,\d+)\), ino = (\d+), checkpoint is (\S+), datasync = (\d+), ret = (\d+)/.exec(e.details.replace("not needed","not_needed"));if(!c)return!1;b=c[1];a=parseInt(c[2]);c=parseInt(c[5]);this.closeAsyncSlice(d,"f2fs",e.threadName,e.pid,b+"-"+a,{device:b,inode:a,error:c});return!0},ext4SyncFileEnterEvent:function(b,a,c,d,e){b=/dev (\d+,\d+) ino (\d+) parent (\d+) datasync (\d+)/.exec(e.details);
if(!b)return!1;a=b[1];c=parseInt(b[2]);this.openAsyncSlice(d,"ext4",e.threadName,e.pid,a+"-"+c,1==b[4]?"fdatasync":"fsync");return!0},ext4SyncFileExitEvent:function(b,a,c,d,e){c=/dev (\d+,\d+) ino (\d+) ret (\d+)/.exec(e.details);if(!c)return!1;b=c[1];a=parseInt(c[2]);c=parseInt(c[3]);this.closeAsyncSlice(d,"ext4",e.threadName,e.pid,b+"-"+a,{device:b,inode:a,error:c});return!0},blockRqIssueEvent:function(b,a,c,d,e){var g=/(\d+,\d+) (F)?([DWRN])(F)?(A)?(S)?(M)? \d+ \(.*\) (\d+) \+ (\d+) \[.*\]/.exec(e.details);
if(!g)return!1;switch(g[3]){case "D":b="discard";break;case "W":b="write";break;case "R":b="read";break;case "N":b="none";break;default:b="unknown"}g[2]&&(b+=" flush");"F"==g[4]&&(b+=" fua");"A"==g[5]&&(b+=" ahead");"S"==g[6]&&(b+=" sync");"M"==g[7]&&(b+=" meta");a=g[1];c=parseInt(g[8]);g=parseInt(g[9]);this.openAsyncSlice(d,"block",e.threadName,e.pid,a+"-"+c+"-"+g,b);return!0},blockRqCompleteEvent:function(b,a,c,d,e){var g=/(\d+,\d+) (F)?([DWRN])(F)?(A)?(S)?(M)? \(.*\) (\d+) \+ (\d+) \[(.*)\]/.exec(e.details);
if(!g)return!1;b=g[1];a=parseInt(g[8]);c=parseInt(g[9]);g=parseInt(g[10]);this.closeAsyncSlice(d,"block",e.threadName,e.pid,b+"-"+a+"-"+c,{device:b,sector:a,numSectors:c,error:g});return!0}};c.register(e);return{DiskParser:e}});"use strict";
tv.exportTo("tv.e.importer.linux_perf",function(){function e(b){c.call(this,b);b.registerEventHandler("drm_vblank_event",e.prototype.vblankEvent.bind(this))}var c=tv.e.importer.linux_perf.Parser;e.prototype={__proto__:c.prototype,drmVblankSlice:function(b,a,c){var d=this.importer.getOrCreatePseudoThread("drm_vblank");d.openSlice=a;b=new tv.c.trace_model.Slice("",d.openSlice,tv.b.ui.getColorIdForGeneralPurposeString(d.openSlice),b,c,0);d.thread.sliceGroup.pushSlice(b)},vblankEvent:function(b,a,c,d,
e){a=/crtc=(\d+), seq=(\d+)/.exec(e.details);if(!a)return!1;b=parseInt(a[1]);a=parseInt(a[2]);this.drmVblankSlice(d,"vblank:"+b,{crtc:b,seq:a});return!0}};c.register(e);return{DrmParser:e}});"use strict";
tv.exportTo("tv.e.importer.linux_perf",function(){function e(a){c.call(this,a);a.registerEventHandler("irq_handler_entry",e.prototype.irqHandlerEntryEvent.bind(this));a.registerEventHandler("irq_handler_exit",e.prototype.irqHandlerExitEvent.bind(this));a.registerEventHandler("softirq_raise",e.prototype.softirqRaiseEvent.bind(this));a.registerEventHandler("softirq_entry",e.prototype.softirqEntryEvent.bind(this));a.registerEventHandler("softirq_exit",e.prototype.softirqExitEvent.bind(this))}var c=tv.e.importer.linux_perf.Parser,
b=/irq=(\d+) name=(.+)/,a=/irq=(\d+) ret=(.+)/,f=/vec=(\d+) \[action=(.+)\]/;e.prototype={__proto__:c.prototype,irqHandlerEntryEvent:function(a,c,e,f,l){a=b.exec(l.details);if(!a)return!1;parseInt(a[1]);a=a[2];c=this.importer.getOrCreatePseudoThread("irqs cpu "+c);c.lastEntryTs=f;c.irqName=a;return!0},irqHandlerExitEvent:function(b,c,e,f,l){b=a.exec(l.details);if(!b)return!1;parseInt(b[1]);e=b[2];c=this.importer.getOrCreatePseudoThread("irqs cpu "+c);void 0!==c.lastEntryTs&&(f-=c.lastEntryTs,f=new tv.c.trace_model.Slice("",
c.irqName,tv.b.ui.getColorIdForGeneralPurposeString(b[1]),c.lastEntryTs,{ret:e},f),c.thread.sliceGroup.pushSlice(f));c.lastEntryTs=void 0;c.irqName=void 0;return!0},softirqRaiseEvent:function(a,b,c,e,f){return!0},softirqEntryEvent:function(a,b,c,e,l){if(!f.exec(l.details))return!1;this.importer.getOrCreatePseudoThread("softirq cpu "+b).lastEntryTs=e;return!0},softirqExitEvent:function(a,b,c,e,l){a=f.exec(l.details);if(!a)return!1;c=parseInt(a[1]);l=a[2];b=this.importer.getOrCreatePseudoThread("softirq cpu "+
b);void 0!==b.lastEntryTs&&(e-=b.lastEntryTs,e=new tv.c.trace_model.Slice("",l,tv.b.ui.getColorIdForGeneralPurposeString(a[1]),b.lastEntryTs,{vec:c},e),b.thread.sliceGroup.pushSlice(e));b.lastEntryTs=void 0;return!0}};c.register(e);return{IrqParser:e}});"use strict";
tv.exportTo("tv.e.importer.linux_perf",function(){function e(b){c.call(this,b);b.registerEventHandler("exynos_busfreq_target_int",e.prototype.busfreqTargetIntEvent.bind(this));b.registerEventHandler("exynos_busfreq_target_mif",e.prototype.busfreqTargetMifEvent.bind(this));b.registerEventHandler("exynos_page_flip_state",e.prototype.pageFlipStateEvent.bind(this))}var c=tv.e.importer.linux_perf.Parser;e.prototype={__proto__:c.prototype,exynosBusfreqSample:function(b,a,c){b=this.importer.getOrCreateCpu(0).getOrCreateCounter("",
b);0===b.numSeries&&b.addSeries(new tv.c.trace_model.CounterSeries("frequency",tv.b.ui.getColorIdForGeneralPurposeString(b.name+".frequency")));b.series.forEach(function(b){b.addCounterSample(a,c)})},busfreqTargetIntEvent:function(b,a,c,d,e){b=/frequency=(\d+)/.exec(e.details);if(!b)return!1;this.exynosBusfreqSample("INT Frequency",d,parseInt(b[1]));return!0},busfreqTargetMifEvent:function(b,a,c,d,e){b=/frequency=(\d+)/.exec(e.details);if(!b)return!1;this.exynosBusfreqSample("MIF Frequency",d,parseInt(b[1]));
return!0},exynosPageFlipStateOpenSlice:function(b,a,c,d){a=this.importer.getOrCreatePseudoThread("exynos_flip_state (pipe:"+a+", fb:"+c+")");a.openSliceTS=b;a.openSlice=d},exynosPageFlipStateCloseSlice:function(b,a,c,d){a=this.importer.getOrCreatePseudoThread("exynos_flip_state (pipe:"+a+", fb:"+c+")");a.openSlice&&(b=new tv.c.trace_model.Slice("",a.openSlice,tv.b.ui.getColorIdForGeneralPurposeString(a.openSlice),a.openSliceTS,d,b-a.openSliceTS),a.thread.sliceGroup.pushSlice(b));a.openSlice=void 0},
pageFlipStateEvent:function(b,a,c,d,e){c=/pipe=(\d+), fb=(\d+), state=(.*)/.exec(e.details);if(!c)return!1;b=parseInt(c[1]);a=parseInt(c[2]);c=c[3];this.exynosPageFlipStateCloseSlice(d,b,a,{pipe:b,fb:a});"flipped"!==c&&this.exynosPageFlipStateOpenSlice(d,b,a,c);return!0}};c.register(e);return{ExynosParser:e}});"use strict";
tv.exportTo("tv.e.importer.linux_perf",function(){function e(b){c.call(this,b);b.registerEventHandler("tracing_mark_write:log",e.prototype.logEvent.bind(this));b.registerEventHandler("tracing_mark_write:SyncInterpret",e.prototype.syncEvent.bind(this));b.registerEventHandler("tracing_mark_write:HandleTimer",e.prototype.timerEvent.bind(this))}var c=tv.e.importer.linux_perf.Parser;e.prototype={__proto__:c.prototype,gestureOpenSlice:function(b,a,c){this.importer.getOrCreatePseudoThread("gesture").thread.sliceGroup.beginSlice("touchpad_gesture",
b,a,c)},gestureCloseSlice:function(b,a){var c=this.importer.getOrCreatePseudoThread("gesture").thread;if(c.sliceGroup.openSliceCount){var d=c.sliceGroup.mostRecentlyOpenedPartialSlice;d.title!=b?this.importer.model.importWarning({type:"title_match_error",message:"Titles do not match. Title is "+d.title+" in openSlice, and is "+b+" in endSlice"}):c.sliceGroup.endSlice(a)}},logEvent:function(b,a,c,d,e){b=/^\s*(\w+):\s*(\w+)$/.exec(e.details);switch(b[1]){case "start":this.gestureOpenSlice("GestureLog",
d,{name:b[2]});break;case "end":this.gestureCloseSlice("GestureLog",d)}return!0},syncEvent:function(b,a,c,d,e){b=/^\s*(\w+):\s*(\w+)$/.exec(e.details);switch(b[1]){case "start":this.gestureOpenSlice("SyncInterpret",d,{interpreter:b[2]});break;case "end":this.gestureCloseSlice("SyncInterpret",d)}return!0},timerEvent:function(b,a,c,d,e){b=/^\s*(\w+):\s*(\w+)$/.exec(e.details);switch(b[1]){case "start":this.gestureOpenSlice("HandleTimer",d,{interpreter:b[2]});break;case "end":this.gestureCloseSlice("HandleTimer",
d)}return!0}};c.register(e);return{GestureParser:e}});"use strict";
tv.exportTo("tv.e.importer.linux_perf",function(){function e(b){c.call(this,b);b.registerEventHandler("i915_gem_object_create",e.prototype.gemObjectCreateEvent.bind(this));b.registerEventHandler("i915_gem_object_bind",e.prototype.gemObjectBindEvent.bind(this));b.registerEventHandler("i915_gem_object_unbind",e.prototype.gemObjectBindEvent.bind(this));b.registerEventHandler("i915_gem_object_change_domain",e.prototype.gemObjectChangeDomainEvent.bind(this));b.registerEventHandler("i915_gem_object_pread",
e.prototype.gemObjectPreadWriteEvent.bind(this));b.registerEventHandler("i915_gem_object_pwrite",e.prototype.gemObjectPreadWriteEvent.bind(this));b.registerEventHandler("i915_gem_object_fault",e.prototype.gemObjectFaultEvent.bind(this));b.registerEventHandler("i915_gem_object_clflush",e.prototype.gemObjectDestroyEvent.bind(this));b.registerEventHandler("i915_gem_object_destroy",e.prototype.gemObjectDestroyEvent.bind(this));b.registerEventHandler("i915_gem_ring_dispatch",e.prototype.gemRingDispatchEvent.bind(this));
b.registerEventHandler("i915_gem_ring_flush",e.prototype.gemRingFlushEvent.bind(this));b.registerEventHandler("i915_gem_request",e.prototype.gemRequestEvent.bind(this));b.registerEventHandler("i915_gem_request_add",e.prototype.gemRequestEvent.bind(this));b.registerEventHandler("i915_gem_request_complete",e.prototype.gemRequestEvent.bind(this));b.registerEventHandler("i915_gem_request_retire",e.prototype.gemRequestEvent.bind(this));b.registerEventHandler("i915_gem_request_wait_begin",e.prototype.gemRequestEvent.bind(this));
b.registerEventHandler("i915_gem_request_wait_end",e.prototype.gemRequestEvent.bind(this));b.registerEventHandler("i915_gem_ring_wait_begin",e.prototype.gemRingWaitEvent.bind(this));b.registerEventHandler("i915_gem_ring_wait_end",e.prototype.gemRingWaitEvent.bind(this));b.registerEventHandler("i915_reg_rw",e.prototype.regRWEvent.bind(this));b.registerEventHandler("i915_flip_request",e.prototype.flipEvent.bind(this));b.registerEventHandler("i915_flip_complete",e.prototype.flipEvent.bind(this));b.registerEventHandler("intel_gpu_freq_change",
e.prototype.gpuFrequency.bind(this))}var c=tv.e.importer.linux_perf.Parser;e.prototype={__proto__:c.prototype,i915FlipOpenSlice:function(b,a,c){var d=this.importer.getOrCreatePseudoThread("i915_flip");d.openSliceTS=b;d.openSlice="flip:"+a+"/"+c},i915FlipCloseSlice:function(b,a){var c=this.importer.getOrCreatePseudoThread("i915_flip");if(c.openSlice){var d=new tv.c.trace_model.Slice("",c.openSlice,tv.b.ui.getColorIdForGeneralPurposeString(c.openSlice),c.openSliceTS,a,b-c.openSliceTS);c.thread.sliceGroup.pushSlice(d)}c.openSlice=
void 0},i915GemObjectSlice:function(b,a,c,d){var e=this.importer.getOrCreatePseudoThread("i915_gem");e.openSlice=a+":"+c;b=new tv.c.trace_model.Slice("",e.openSlice,tv.b.ui.getColorIdForGeneralPurposeString(e.openSlice),b,d,0);e.thread.sliceGroup.pushSlice(b)},i915GemRingSlice:function(b,a,c,d,e){var g=this.importer.getOrCreatePseudoThread("i915_gem_ring");g.openSlice=a+":"+c+"."+d;b=new tv.c.trace_model.Slice("",g.openSlice,tv.b.ui.getColorIdForGeneralPurposeString(g.openSlice),b,e,0);g.thread.sliceGroup.pushSlice(b)},
i915RegSlice:function(b,a,c,d){var e=this.importer.getOrCreatePseudoThread("i915_reg");e.openSlice=a+":"+c;b=new tv.c.trace_model.Slice("",e.openSlice,tv.b.ui.getColorIdForGeneralPurposeString(e.openSlice),b,d,0);e.thread.sliceGroup.pushSlice(b)},i915FreqChangeSlice:function(b,a,c){var d=this.importer.getOrCreatePseudoThread("i915_gpu_freq");d.openSlice=a;b=new tv.c.trace_model.Slice("",d.openSlice,tv.b.ui.getColorIdForGeneralPurposeString(d.openSlice),b,c,0);d.thread.sliceGroup.pushSlice(b)},gemObjectCreateEvent:function(b,
a,c,d,e){c=/obj=(\w+), size=(\d+)/.exec(e.details);if(!c)return!1;a=c[1];c=parseInt(c[2]);this.i915GemObjectSlice(d,b,a,{obj:a,size:c});return!0},gemObjectBindEvent:function(b,a,c,d,e){e=/obj=(\w+), offset=(\w+), size=(\d+)/.exec(e.details);if(!e)return!1;a=e[1];c=e[2];e=parseInt(e[3]);this.i915ObjectGemSlice(d,b+":"+a,{obj:a,offset:c,size:e});return!0},gemObjectChangeDomainEvent:function(b,a,c,d,e){a=/obj=(\w+), read=(\w+=>\w+), write=(\w+=>\w+)/.exec(e.details);if(!a)return!1;c=a[1];this.i915GemObjectSlice(d,
b,c,{obj:c,read:a[2],write:a[3]});return!0},gemObjectPreadWriteEvent:function(b,a,c,d,e){e=/obj=(\w+), offset=(\d+), len=(\d+)/.exec(e.details);if(!e)return!1;a=e[1];c=parseInt(e[2]);e=parseInt(e[3]);this.i915GemObjectSlice(d,b,a,{obj:a,offset:c,len:e});return!0},gemObjectFaultEvent:function(b,a,c,d,e){e=/obj=(\w+), (\w+) index=(\d+)/.exec(e.details);if(!e)return!1;a=e[1];c=e[2];e=parseInt(e[3]);this.i915GemObjectSlice(d,b,a,{obj:a,type:c,index:e});return!0},gemObjectDestroyEvent:function(b,a,c,d,
e){a=/obj=(\w+)/.exec(e.details);if(!a)return!1;a=a[1];this.i915GemObjectSlice(d,b,a,{obj:a});return!0},gemRingDispatchEvent:function(b,a,c,d,e){e=/dev=(\d+), ring=(\d+), seqno=(\d+)/.exec(e.details);if(!e)return!1;a=parseInt(e[1]);c=parseInt(e[2]);e=parseInt(e[3]);this.i915GemRingSlice(d,b,a,c,{dev:a,ring:c,seqno:e});return!0},gemRingFlushEvent:function(b,a,c,d,e){a=/dev=(\d+), ring=(\w+), invalidate=(\w+), flush=(\w+)/.exec(e.details);if(!a)return!1;c=parseInt(a[1]);e=parseInt(a[2]);this.i915GemRingSlice(d,
b,c,e,{dev:c,ring:e,invalidate:a[3],flush:a[4]});return!0},gemRequestEvent:function(b,a,c,d,e){e=/dev=(\d+), ring=(\d+), seqno=(\d+)/.exec(e.details);if(!e)return!1;a=parseInt(e[1]);c=parseInt(e[2]);e=parseInt(e[3]);this.i915GemRingSlice(d,b,a,c,{dev:a,ring:c,seqno:e});return!0},gemRingWaitEvent:function(b,a,c,d,e){c=/dev=(\d+), ring=(\d+)/.exec(e.details);if(!c)return!1;a=parseInt(c[1]);c=parseInt(c[2]);this.i915GemRingSlice(d,b,a,c,{dev:a,ring:c});return!0},regRWEvent:function(b,a,c,d,e){b=/(\w+) reg=(\w+), len=(\d+), val=(\(\w+, \w+\))/.exec(e.details);
if(!b)return!1;a=b[1];c=b[2];this.i915RegSlice(d,a,c,{rw:a,reg:c,len:b[3],data:b[3]});return!0},flipEvent:function(b,a,c,d,e){c=/plane=(\d+), obj=(\w+)/.exec(e.details);if(!c)return!1;a=parseInt(c[1]);c=c[2];"i915_flip_request"==b?this.i915FlipOpenSlice(d,c,a):this.i915FlipCloseSlice(d,{obj:c,plane:a});return!0},gpuFrequency:function(b,a,c,d,e){a=/new_freq=(\d+)/.exec(e.details);if(!a)return!1;a=parseInt(a[1]);this.i915FreqChangeSlice(d,b,{freq:a});return!0}};c.register(e);return{I915Parser:e}});
"use strict";
tv.exportTo("tv.e.importer.linux_perf",function(){function e(b){c.call(this,b);b.registerEventHandler("mali_dvfs_event",e.prototype.dvfsEventEvent.bind(this));b.registerEventHandler("mali_dvfs_set_clock",e.prototype.dvfsSetClockEvent.bind(this));b.registerEventHandler("mali_dvfs_set_voltage",e.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(var a=0;7>a;a++){var f="JS"+a,d="mali_hwc_"+f;this.addJMCounter(d+"_JOBS",f+" Jobs");this.addJMCounter(d+"_TASKS",f+" Tasks");this.addJMCycles(d+"_ACTIVE",f+" Active");this.addJMCycles(d+"_WAIT_READ",f+" Wait Read");this.addJMCycles(d+"_WAIT_ISSUE",f+" Wait Issue");this.addJMCycles(d+"_WAIT_DEPEND",f+" Wait Depend");this.addJMCycles(d+"_WAIT_FINISH",f+" 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");b.registerEventHandler("tracing_mark_write:mali_driver",
e.prototype.maliDDKEvent.bind(this));this.model_=b.model_}var c=tv.e.importer.linux_perf.Parser;e.prototype={__proto__:c.prototype,maliDDKOpenSlice:function(b,a,c,d,e){b=this.importer.model_.getOrCreateProcess(b).getOrCreateThread(a);d=/^([\w\d_]*)(?:\(\))?:?\s*(.*)$/.exec(d);b.sliceGroup.beginSlice("gpu-driver",d[1],c,{args:d[2],blockinfo:e})},maliDDKCloseSlice:function(b,a,c,d,e){b=this.importer.model_.getOrCreateProcess(b).getOrCreateThread(a);b.sliceGroup.openSliceCount&&b.sliceGroup.endSlice(c)},
autoDetectLineRE:function(b){var a=/^\s*\(([\w\-]*)\)\s*(\w+):\s*([\w\\\/\.\-]*@\d*):?\s*(.*)$/;if(a.test(b))return a;a=/^s*()(\w+):\s*([\w\\\/.\-]*):?\s*(.*)$/;return a.test(b)?a:null},lineRE:null,maliDDKEvent:function(b,a,c,d,e){if(null==this.lineRE&&(this.lineRE=this.autoDetectLineRE(e.details),null==this.lineRE))return!1;b=this.lineRE.exec(e.details);a=""===b[1]?"mali":b[1];switch(b[2]){case "cros_trace_print_enter":this.maliDDKOpenSlice(c,a,d,b[4],b[3]);break;case "cros_trace_print_exit":this.maliDDKCloseSlice(c,
a,d,[],b[3])}return!0},dvfsSample:function(b,a,c,d){var e=parseInt(d);b=this.model_.kernel.getOrCreateCounter("DVFS",b);0===b.numSeries&&b.addSeries(new tv.c.trace_model.CounterSeries(a,tv.b.ui.getColorIdForGeneralPurposeString(b.name)));b.series.forEach(function(a){a.addCounterSample(c,e)})},dvfsEventEvent:function(b,a,c,d,e){b=/utilization=(\d+)/.exec(e.details);if(!b)return!1;this.dvfsSample("DVFS Utilization","utilization",d,b[1]);return!0},dvfsSetClockEvent:function(b,a,c,d,e){b=/frequency=(\d+)/.exec(e.details);
if(!b)return!1;this.dvfsSample("DVFS Frequency","frequency",d,b[1]);return!0},dvfsSetVoltageEvent:function(b,a,c,d,e){b=/voltage=(\d+)/.exec(e.details);if(!b)return!1;this.dvfsSample("DVFS Voltage","voltage",d,b[1]);return!0},hwcSample:function(b,a,c,d,e){e=/val=(\d+)/.exec(e.details);if(!e)return!1;var g=parseInt(e[1]);b=this.model_.kernel.getOrCreateCounter(b,a);0===b.numSeries&&b.addSeries(new tv.c.trace_model.CounterSeries(c,tv.b.ui.getColorIdForGeneralPurposeString(b.name)));b.series.forEach(function(a){a.addCounterSample(d,
g)});return!0},jmSample:function(b,a,c,d){return this.hwcSample("mali:jm","JM: "+b,a,c,d)},addJMCounter:function(b,a){this.importer.registerEventHandler(b,function(b,c,e,g,k){return this.jmSample(a,"count",g,k)}.bind(this))},addJMCycles:function(b,a){this.importer.registerEventHandler(b,function(b,c,e,g,k){return this.jmSample(a,"cycles",g,k)}.bind(this))},tilerSample:function(b,a,c,d){return this.hwcSample("mali:tiler","Tiler: "+b,a,c,d)},addTilerCounter:function(b,a){this.importer.registerEventHandler(b,
function(b,c,e,g,k){return this.tilerSample(a,"count",g,k)}.bind(this))},addTilerCycles:function(b,a){this.importer.registerEventHandler(b,function(b,c,e,g,k){return this.tilerSample(a,"cycles",g,k)}.bind(this))},fragSample:function(b,a,c,d){return this.hwcSample("mali:fragment","Fragment: "+b,a,c,d)},addFragCounter:function(b,a){this.importer.registerEventHandler(b,function(b,c,e,g,k){return this.fragSample(a,"count",g,k)}.bind(this))},addFragCycles:function(b,a){this.importer.registerEventHandler(b,
function(b,c,e,g,k){return this.fragSample(a,"cycles",g,k)}.bind(this))},computeSample:function(b,a,c,d){return this.hwcSample("mali:compute","Compute: "+b,a,c,d)},addComputeCounter:function(b,a){this.importer.registerEventHandler(b,function(b,c,e,g,k){return this.computeSample(a,"count",g,k)}.bind(this))},addComputeCycles:function(b,a){this.importer.registerEventHandler(b,function(b,c,e,g,k){return this.computeSample(a,"cycles",g,k)}.bind(this))},addTripipeCycles:function(b,a){this.importer.registerEventHandler(b,
function(b,c,e,g,k){return this.hwcSample("mali:shader","Tripipe: "+a,"cycles",g,k)}.bind(this))},arithSample:function(b,a,c,d){return this.hwcSample("mali:arith","Arith: "+b,a,c,d)},addArithCounter:function(b,a){this.importer.registerEventHandler(b,function(b,c,e,g,k){return this.arithSample(a,"count",g,k)}.bind(this))},addArithCycles:function(b,a){this.importer.registerEventHandler(b,function(b,c,e,g,k){return this.arithSample(a,"cycles",g,k)}.bind(this))},addLSCounter:function(b,a){this.importer.registerEventHandler(b,
function(b,c,e,g,k){return this.hwcSample("mali:ls","LS: "+a,"count",g,k)}.bind(this))},textureSample:function(b,a,c,d){return this.hwcSample("mali:texture","Texture: "+b,a,c,d)},addTexCounter:function(b,a){this.importer.registerEventHandler(b,function(b,c,e,g,k){return this.textureSample(a,"count",g,k)}.bind(this))},addLSCCounter:function(b,a){this.importer.registerEventHandler(b,function(b,c,e,g,k){return this.hwcSample("mali:lsc","LSC: "+a,"count",g,k)}.bind(this))},addAXICounter:function(b,a){this.importer.registerEventHandler(b,
function(b,c,e,g,k){return this.hwcSample("mali:axi","AXI: "+a,"count",g,k)}.bind(this))},mmuSample:function(b,a,c,d){return this.hwcSample("mali:mmu","MMU: "+b,a,c,d)},addMMUCounter:function(b,a){this.importer.registerEventHandler(b,function(b,c,e,g,k){return this.mmuSample(a,"count",g,k)}.bind(this))},addMMUCycles:function(b,a){this.importer.registerEventHandler(b,function(b,c,e,g,k){return this.mmuSample(a,"cycles",g,k)}.bind(this))},l2Sample:function(b,a,c,d){return this.hwcSample("mali:l2","L2: "+
b,a,c,d)},addL2Counter:function(b,a){this.importer.registerEventHandler(b,function(b,c,e,g,k){return this.l2Sample(a,"count",g,k)}.bind(this))},addL2Cycles:function(b,a){this.importer.registerEventHandler(b,function(b,c,e,g,k){return this.l2Sample(a,"cycles",g,k)}.bind(this))}};c.register(e);return{MaliParser:e}});"use strict";
tv.exportTo("tv.e.importer.linux_perf",function(){function e(a){c.call(this,a);a.registerEventHandler("mm_vmscan_kswapd_wake",e.prototype.kswapdWake.bind(this));a.registerEventHandler("mm_vmscan_kswapd_sleep",e.prototype.kswapdSleep.bind(this));a.registerEventHandler("mm_vmscan_direct_reclaim_begin",e.prototype.reclaimBegin.bind(this));a.registerEventHandler("mm_vmscan_direct_reclaim_end",e.prototype.reclaimEnd.bind(this))}var c=tv.e.importer.linux_perf.Parser,b=/nid=(\d+) order=(\d+)/,a=/order=(\d+) may_writepage=\d+ gfp_flags=(.+)/,
f=/nr_reclaimed=(\d+)/;e.prototype={__proto__:c.prototype,openAsyncSlice:function(a,b,c,e,f,m){c=this.importer.getOrCreateKernelThread(b+":"+c,e);a=new tv.c.trace_model.AsyncSlice(b,m,tv.c.getColorIdForGeneralPurposeString(m),a);a.startThread=c.thread;c.openAsyncSlices||(c.openAsyncSlices={});c.openAsyncSlices[f]=a},closeAsyncSlice:function(a,b,c,e,f,m){c=this.importer.getOrCreateKernelThread(b+":"+c,e);if(c.openAsyncSlices&&(e=c.openAsyncSlices[f]))e.duration=a-e.start,e.args=m,e.endThread=c.thread,
e.subSlices=[new tv.c.trace_model.Slice(b,e.title,e.colorId,e.start,e.args,e.duration)],c.thread.asyncSliceGroup.push(e),delete c.openAsyncSlices[f]},kswapdWake:function(a,c,e,f,l){a=b.exec(l.details);if(!a)return!1;parseInt(a[1]);a=parseInt(a[2]);e=this.importer.getOrCreateKernelThread("kswapd: "+l.threadName,e,e);e.openSliceTS?a>e.order&&(e.order=a):(e.openSliceTS=f,e.order=a);return!0},kswapdSleep:function(a,b,c,e,f){a=this.importer.getOrCreateKernelThread("kswapd: "+f.threadName,c,c);a.openSliceTS&&
(e=new tv.c.trace_model.Slice("",f.threadName,tv.b.ui.getColorIdForGeneralPurposeString(f.threadName),a.openSliceTS,{order:a.order},e-a.openSliceTS),a.thread.sliceGroup.pushSlice(e));a.openSliceTS=void 0;a.order=void 0;return!0},reclaimBegin:function(b,c,e,f,l){c=a.exec(l.details);if(!c)return!1;b=parseInt(c[1]);c=c[2];e=this.importer.getOrCreateKernelThread("direct reclaim: "+l.threadName,e,e);e.openSliceTS=f;e.order=b;e.gfp=c;return!0},reclaimEnd:function(a,b,c,e,l){a=f.exec(l.details);if(!a)return!1;
a=parseInt(a[1]);c=this.importer.getOrCreateKernelThread("direct reclaim: "+l.threadName,c,c);void 0!==c.openSliceTS&&(e=new tv.c.trace_model.Slice("","direct reclaim",tv.b.ui.getColorIdForGeneralPurposeString(l.threadName),c.openSliceTS,{order:c.order,gfp:c.gfp,nr_reclaimed:a},e-c.openSliceTS),c.thread.sliceGroup.pushSlice(e));c.openSliceTS=void 0;c.order=void 0;c.gfp=void 0;return!0}};c.register(e);return{MemReclaimParser:e}});"use strict";
tv.exportTo("tv.e.importer.linux_perf",function(){function e(b){c.call(this,b);b.registerEventHandler("power_start",e.prototype.powerStartEvent.bind(this));b.registerEventHandler("power_frequency",e.prototype.powerFrequencyEvent.bind(this));b.registerEventHandler("cpu_frequency",e.prototype.cpuFrequencyEvent.bind(this));b.registerEventHandler("cpu_idle",e.prototype.cpuIdleEvent.bind(this))}var c=tv.e.importer.linux_perf.Parser;e.prototype={__proto__:c.prototype,cpuStateSlice:function(b,a,c,d){a=this.importer.getOrCreateCpu(a);
"1"!=c?this.importer.model.importWarning({type:"parse_error",message:"Don't understand power_start events of type "+c}):(c=a.getOrCreateCounter("","C-State"),0===c.numSeries&&c.addSeries(new tv.c.trace_model.CounterSeries("state",tv.b.ui.getColorIdForGeneralPurposeString(c.name+".state"))),c.series.forEach(function(a){a.addCounterSample(b,d)}))},cpuIdleSlice:function(b,a,c){a=this.importer.getOrCreateCpu(a).getOrCreateCounter("","C-State");0===a.numSeries&&a.addSeries(new tv.c.trace_model.CounterSeries("state",
tv.b.ui.getColorIdForGeneralPurposeString(a.name)));var d=4294967295!=c?c+1:0;a.series.forEach(function(a){a.addCounterSample(b,d)})},cpuFrequencySlice:function(b,a,c){a=this.importer.getOrCreateCpu(a).getOrCreateCounter("","Clock Frequency");0===a.numSeries&&a.addSeries(new tv.c.trace_model.CounterSeries("state",tv.b.ui.getColorIdForGeneralPurposeString(a.name+".state")));a.series.forEach(function(a){a.addCounterSample(b,c)})},powerStartEvent:function(b,a,c,d,e){b=/type=(\d+) state=(\d) cpu_id=(\d)+/.exec(e.details);
if(!b)return!1;a=parseInt(b[3]);c=parseInt(b[2]);this.cpuStateSlice(d,a,b[1],c);return!0},powerFrequencyEvent:function(b,a,c,d,e){a=/type=(\d+) state=(\d+) cpu_id=(\d)+/.exec(e.details);if(!a)return!1;b=parseInt(a[3]);a=parseInt(a[2]);this.cpuFrequencySlice(d,b,a);return!0},cpuFrequencyEvent:function(b,a,c,d,e){a=/state=(\d+) cpu_id=(\d)+/.exec(e.details);if(!a)return!1;b=parseInt(a[2]);a=parseInt(a[1]);this.cpuFrequencySlice(d,b,a);return!0},cpuIdleEvent:function(b,a,c,d,e){a=/state=(\d+) cpu_id=(\d)+/.exec(e.details);
if(!a)return!1;b=parseInt(a[2]);a=parseInt(a[1]);this.cpuIdleSlice(d,b,a);return!0}};c.register(e);return{PowerParser:e}});"use strict";
tv.exportTo("tv.e.importer.linux_perf",function(){function e(a){c.call(this,a);a.registerEventHandler("regulator_enable",e.prototype.regulatorEnableEvent.bind(this));a.registerEventHandler("regulator_enable_delay",e.prototype.regulatorEnableDelayEvent.bind(this));a.registerEventHandler("regulator_enable_complete",e.prototype.regulatorEnableCompleteEvent.bind(this));a.registerEventHandler("regulator_disable",e.prototype.regulatorDisableEvent.bind(this));a.registerEventHandler("regulator_disable_complete",
e.prototype.regulatorDisableCompleteEvent.bind(this));a.registerEventHandler("regulator_set_voltage",e.prototype.regulatorSetVoltageEvent.bind(this));a.registerEventHandler("regulator_set_voltage_complete",e.prototype.regulatorSetVoltageCompleteEvent.bind(this));this.model_=a.model_}var c=tv.e.importer.linux_perf.Parser,b=/name=(.+)/,a=/name=(.+)/,f=/name=(\S+), val=(\d+)/;e.prototype={__proto__:c.prototype,getCtr_:function(a,b){var c=this.model_.kernel.getOrCreateCounter(null,"vreg "+a+" "+b);void 0===
c.series[0]&&c.addSeries(new tv.c.trace_model.CounterSeries(b,tv.b.ui.getColorIdForGeneralPurposeString(a+"."+b)));return c},regulatorEnableEvent:function(a,c,e,f,l){a=b.exec(l.details);if(!a)return!1;this.getCtr_(a[1],"enabled").series[0].addCounterSample(f,1);return!0},regulatorEnableDelayEvent:function(a,b,c,e,f){return!0},regulatorEnableCompleteEvent:function(a,b,c,e,f){return!0},regulatorDisableEvent:function(b,c,e,f,l){b=a.exec(l.details);if(!b)return!1;this.getCtr_(b[1],"enabled").series[0].addCounterSample(f,
0);return!0},regulatorDisableCompleteEvent:function(a,b,c,e,f){return!0},regulatorSetVoltageEvent:function(a,b,c,e,f){return!0},regulatorSetVoltageCompleteEvent:function(a,b,c,e,l){b=f.exec(l.details);if(!b)return!1;a=b[1];b=parseInt(b[2]);this.getCtr_(a,"voltage").series[0].addCounterSample(e,b);return!0}};c.register(e);return{RegulatorParser:e}});"use strict";
tv.exportTo("tv.e.importer.linux_perf",function(){function e(a){c.call(this,a);a.registerEventHandler("sched_switch",e.prototype.schedSwitchEvent.bind(this));a.registerEventHandler("sched_wakeup",e.prototype.schedWakeupEvent.bind(this))}var c=tv.e.importer.linux_perf.Parser,b={},a=RegExp("prev_comm=(.+) prev_pid=(\\d+) prev_prio=(\\d+) prev_state=(\\S\\+?|\\S\\|\\S) ==> next_comm=(.+) next_pid=(\\d+) next_prio=(\\d+)");b.schedSwitchRE=a;var f=/comm=(.+) pid=(\d+) prio=(\d+) success=(\d+) target_cpu=(\d+)/;
b.schedWakeupRE=f;e.prototype={__proto__:c.prototype,schedSwitchEvent:function(b,c,e,f,l){var m=a.exec(l.details);if(!m)return!1;b=m[4];e=m[5];l=parseInt(m[6]);var m=parseInt(m[7]),n=this.importer.threadsByLinuxPid[l],n=n?n.userFriendlyName:e;this.importer.getOrCreateCpu(c).switchActiveThread(f,{stateWhenDescheduled:b},l,n,{comm:e,tid:l,prio:m});return!0},schedWakeupEvent:function(a,b,c,e,l){l=f.exec(l.details);if(!l)return!1;a=c;b=l[1];c=parseInt(l[2]);l=parseInt(l[3]);this.importer.markPidRunnable(e,
c,b,l,a);return!0}};c.register(e);return{SchedParser:e,_SchedParserTestExports:b}});"use strict";
tv.exportTo("tv.e.importer.linux_perf",function(){function e(a){c.call(this,a);a.registerEventHandler("sync_timeline",e.prototype.timelineEvent.bind(this));a.registerEventHandler("sync_wait",e.prototype.syncWaitEvent.bind(this));a.registerEventHandler("sync_pt",e.prototype.syncPtEvent.bind(this));this.model_=a.model_}var c=tv.e.importer.linux_perf.Parser,b=/name=(\S+) value=(\S*)/,a=/(\S+) name=(\S+) state=(\d+)/,f=/name=(\S+) value=(\S*)/;e.prototype={__proto__:c.prototype,timelineEvent:function(a,
c,e,f,l){a=b.exec(l.details);if(!a)return!1;c=this.importer.getOrCreatePseudoThread(a[1]);void 0!==c.lastActiveTs&&(e=f-c.lastActiveTs,l=c.lastActiveValue,void 0==l&&(l=" "),e=new tv.c.trace_model.Slice("",l,tv.b.ui.getColorIdForGeneralPurposeString(l),c.lastActiveTs,{},e),c.thread.sliceGroup.pushSlice(e));c.lastActiveTs=f;c.lastActiveValue=a[2];return!0},syncWaitEvent:function(b,c,e,f,l){b=a.exec(l.details);if(!b||void 0===l.tgid)return!1;c=parseInt(l.tgid);e=this.model_.getOrCreateProcess(c).getOrCreateThread(e);
e.name=l.threadName;l=e.kernelSliceGroup;if(!l.isTimestampValidForBeginOrEnd(f))return this.model_.importWarning({type:"parse_error",message:"Timestamps are moving backward."}),!1;e='fence_wait("'+b[2]+'")';if("begin"==b[1])l.beginSlice(null,e,f,{"Start state":b[3]});else if("end"==b[1])0<l.openSliceCount&&l.endSlice(f);else return!1;return!0},syncPtEvent:function(a,b,c,e,l){return!f.exec(l.details)?!1:!0}};c.register(e);return{SyncParser:e}});"use strict";
tv.exportTo("tv.e.importer.linux_perf",function(){function e(a){c.call(this,a);a.registerEventHandler("workqueue_execute_start",e.prototype.executeStartEvent.bind(this));a.registerEventHandler("workqueue_execute_end",e.prototype.executeEndEvent.bind(this));a.registerEventHandler("workqueue_queue_work",e.prototype.executeQueueWork.bind(this));a.registerEventHandler("workqueue_activate_work",e.prototype.executeActivateWork.bind(this))}var c=tv.e.importer.linux_perf.Parser,b=/work struct (.+): function (\S+)/,
a=/work struct (.+)/;e.prototype={__proto__:c.prototype,executeStartEvent:function(a,c,e,g,k){a=b.exec(k.details);if(!a)return!1;e=this.importer.getOrCreateKernelThread(k.threadName,e,e);e.openSliceTS=g;e.openSlice=a[2];return!0},executeEndEvent:function(b,c,e,g,k){if(!a.exec(k.details))return!1;b=this.importer.getOrCreateKernelThread(k.threadName,e,e);b.openSlice&&(g=new tv.c.trace_model.Slice("",b.openSlice,tv.b.ui.getColorIdForGeneralPurposeString(b.openSlice),b.openSliceTS,{},g-b.openSliceTS),
b.thread.sliceGroup.pushSlice(g));b.openSlice=void 0;return!0},executeQueueWork:function(a,b,c,e,k){return!0},executeActivateWork:function(a,b,c,e,k){return!0}};c.register(e);return{WorkqueueParser:e}});"use strict";
tv.exportTo("tv.e.importer.linux_perf",function(){function e(a){b.call(this,a);a.registerEventHandler("tracing_mark_write:android",e.prototype.traceMarkWriteAndroidEvent.bind(this));a.registerEventHandler("0:android",e.prototype.traceMarkWriteAndroidEvent.bind(this));this.model_=a.model_;this.ppids_={}}function c(a){var b={};if(a){a=a.split(";");for(var c=0;c<a.length;++c){var e=a[c].split("=");e[0]&&(b[e.shift()]=e.join("="))}}return b}var b=tv.e.importer.linux_perf.Parser;e.prototype={__proto__:b.prototype,
openAsyncSlice:function(a,b,c,e,g,k){g=new (tv.c.trace_model.AsyncSlice.getConstructor(b,c))(b,c,tv.b.ui.getColorIdForGeneralPurposeString(c),g,k);g.id=e;g.startThread=a;this.openAsyncSlices||(this.openAsyncSlices={});this.openAsyncSlices[b+":"+c+":"+e]=g},closeAsyncSlice:function(a,b,c,e,g,k){if(this.openAsyncSlices&&(b=b+":"+c+":"+e,c=this.openAsyncSlices[b])){for(var l in k)void 0!==c.args[l]&&this.model_.importWarning({type:"parse_error",message:"Both the S and F events of "+c.title+" provided values for argument "+
l+". The value of the F event will be used."}),c.args[l]=k[l];c.endThread=a;c.duration=g-c.start;c.startThread.asyncSliceGroup.push(c);c.subSlices=[new tv.c.trace_model.Slice(c.category,c.title,c.colorId,c.start,c.args,c.duration)];delete this.openAsyncSlices[b]}},traceMarkWriteAndroidEvent:function(a,b,d,e,g){b=g.details.split("|");switch(b[0]){case "B":var k=parseInt(b[1]),l=b[2];a=c(b[3]);b=b[4];void 0===b&&(b="android");var m=this.model_.getOrCreateProcess(k).getOrCreateThread(d);m.name=g.threadName;
if(!m.sliceGroup.isTimestampValidForBeginOrEnd(e))return this.model_.importWarning({type:"parse_error",message:"Timestamps are moving backward."}),!1;this.ppids_[d]=k;m.sliceGroup.beginSlice(b,l,e,a);break;case "E":k=this.ppids_[d];if(void 0===k)break;m=this.model_.getOrCreateProcess(k).getOrCreateThread(d);if(!m.sliceGroup.openSliceCount)break;d=m.sliceGroup.endSlice(e);a=c(b[3]);for(l in a)void 0!==d.args[l]&&this.model_.importWarning({type:"parse_error",message:"Both the B and E events of "+d.title+
" provided values for argument "+l+". The value of the E event will be used."}),d.args[l]=a[l];break;case "C":var k=parseInt(b[1]),l=b[2],n=parseInt(b[3]);b=b[4];void 0===b&&(b="android");d=this.model_.getOrCreateProcess(k).getOrCreateCounter(b,l);0===d.numSeries&&d.addSeries(new tv.c.trace_model.CounterSeries(n,tv.b.ui.getColorIdForGeneralPurposeString(d.name+".value")));d.series.forEach(function(a){a.addCounterSample(e,n)});break;case "S":var k=parseInt(b[1]),l=b[2],q=parseInt(b[3]);a=c(b[4]);b=
b[5];void 0===b&&(b="android");m=this.model_.getOrCreateProcess(k).getOrCreateThread(d);m.name=g.threadName;this.ppids_[d]=k;this.openAsyncSlice(m,b,l,q,e,a);break;case "F":k=parseInt(b[1]);l=b[2];q=parseInt(b[3]);a=c(b[4]);b=b[5];void 0===b&&(b="android");m=this.model_.getOrCreateProcess(k).getOrCreateThread(d);m.name=g.threadName;this.ppids_[d]=k;this.closeAsyncSlice(m,b,l,q,e,a);break;default:return!1}return!0}};b.register(e);return{AndroidParser:e}});"use strict";
tv.exportTo("tv.e.importer.linux_perf",function(){function e(a){c.call(this,a);a.registerEventHandler("graph_ent",e.prototype.traceKernelFuncEnterEvent.bind(this));a.registerEventHandler("graph_ret",e.prototype.traceKernelFuncReturnEvent.bind(this));this.model_=a.model_;this.ppids_={}}var c=tv.e.importer.linux_perf.Parser,b=/func=(.+)/;e.prototype={__proto__:c.prototype,traceKernelFuncEnterEvent:function(a,c,d,e,g){a=b.exec(g.details);if(!a||void 0===g.tgid)return!1;c=parseInt(g.tgid);a=a[1];d=this.model_.getOrCreateProcess(c).getOrCreateThread(d);
d.name=g.threadName;g=d.kernelSliceGroup;if(!g.isTimestampValidForBeginOrEnd(e))return this.model_.importWarning({type:"parse_error",message:"Timestamps are moving backward."}),!1;g.beginSlice(null,a,e,{});return!0},traceKernelFuncReturnEvent:function(a,b,c,e,g){if(void 0===g.tgid)return!1;a=parseInt(g.tgid);c=this.model_.getOrCreateProcess(a).getOrCreateThread(c);c.name=g.threadName;g=c.kernelSliceGroup;if(!g.isTimestampValidForBeginOrEnd(e))return this.model_.importWarning({type:"parse_error",message:"Timestamps are moving backward."}),
!1;0<g.openSliceCount&&g.endSlice(e);return!0}};c.register(e);return{KernelFuncParser:e}});"use strict";
tv.exportTo("tv.c.importer",function(){function e(c){this.lines_=c.split("\n");this.curLine_=0;this.savedLines_=void 0}e.prototype={advanceToLineMatching:function(c){for(;this.curLine_<this.lines_.length;this.curLine_++){var b=this.lines_[this.curLine_];void 0!==this.savedLines_&&this.savedLines_.push(b);if(c.test(b))return!0}return!1},get curLineNumber(){return this.curLine_},beginSavingLines:function(){this.savedLines_=[]},endSavingLinesAndGetResult:function(){var c=this.savedLines_;this.savedLines_=
void 0;return c}};return{SimpleLineReader:e}});"use strict";
tv.exportTo("tv.e.importer.linux_perf",function(){function e(a,b){this.importPriority=2;this.model_=a;this.events_=b;this.newlyAddedClockSyncRecords_=[];this.wakeups_=[];this.kernelThreadStates_={};this.buildMapFromLinuxPidsToThreads();this.lines_=[];this.pseudoThreadCounter=1;this.parsers_=[];this.eventHandlers_={}}function c(a){return"{"==a[0]?!1:d.test(a)?h:g.test(a)?k:l.test(a)?m:null}var b=tv.c.importer.Importer,a=tv.c.ClockSyncRecord,f={},d=RegExp("^\\s*(.+)-(\\d+)\\s+\\(\\s*(\\d+|-+)\\)\\s\\[(\\d+)\\]\\s+[dX.][N.][Hhs.][0-9a-f.]\\s+(\\d+\\.\\d+):\\s+(\\S+):\\s(.*)$"),
h=function(a){a=d.exec(a);if(!a)return a;var b=a[3];"-"===b[0]&&(b=void 0);return{threadName:a[1],pid:a[2],tgid:b,cpuNumber:a[4],timestamp:a[5],eventName:a[6],details:a[7]}};f.lineParserWithTGID=h;var g=/^\s*(.+)-(\d+)\s+\[(\d+)\]\s+[dX.][N.][Hhs.][0-9a-f.]\s+(\d+\.\d+):\s+(\S+):\s(.*)$/,k=function(a){a=g.exec(a);return!a?a:{threadName:a[1],pid:a[2],cpuNumber:a[3],timestamp:a[4],eventName:a[5],details:a[6]}};f.lineParserWithIRQInfo=k;var l=/^\s*(.+)-(\d+)\s+\[(\d+)\]\s*(\d+\.\d+):\s+(\S+):\s(.*)$/,
m=function(a){a=l.exec(a);return!a?a:{threadName:a[1],pid:a[2],cpuNumber:a[3],timestamp:a[4],eventName:a[5],details:a[6]}};f.lineParserWithLegacyFmt=m;var n=/trace_event_clock_sync: parent_ts=(\d+\.?\d*)/;f.traceEventClockSyncRE=n;var q=/trace_event_clock_sync: name=(\w+)/;f.autoDetectLineParser=c;e.canImport=function(a){if(!("string"===typeof a||a instanceof String))return!1;if(e._extractEventsFromSystraceHTML(a,!1).ok||/^# tracer:/.test(a))return!0;var b=/^(.+)\n/.exec(a);b&&(a=b[1]);return c(a)?
!0:!1};e._extractEventsFromSystraceHTML=function(a,b){function c(a,b){return-1===a.indexOf(b,a.length-b.length)?a:a.substring(a,a.length-b.length)}var d={ok:!1};void 0===b&&(b=!0);if(!1==/^<!DOCTYPE HTML>/.test(a))return d;var e=new tv.c.importer.SimpleLineReader(a);if(!e.advanceToLineMatching(/^ <script>$/)||!e.advanceToLineMatching(/^ var linuxPerfData = "\\$/))return d;var f=e.curLineNumber+1;e.beginSavingLines();if(!e.advanceToLineMatching(/^ <\/script>$/))return d;var g=e.endSavingLinesAndGetResult(),
g=g.slice(1,g.length-1);if(!e.advanceToLineMatching(/^<\/body>$/)||!e.advanceToLineMatching(/^<\/html>$/))return d;e=[];if(b)for(var h=0;h<g.length;h++){var k=g[h],k=c(k,"\\n\\");e.push(k)}else e=[g[g.length-1]];g=e[e.length-1];h=c(g,'\\n";');if(h==g)return d;e[e.length-1]=h;return{ok:!0,lines:b?e:void 0,events_begin_at_line:f}};e.prototype={__proto__:b.prototype,get model(){return this.model_},buildMapFromLinuxPidsToThreads:function(){this.threadsByLinuxPid={};this.model_.getAllThreads().forEach(function(a){this.threadsByLinuxPid[a.tid]=
a}.bind(this))},getOrCreateCpu:function(a){return this.model_.kernel.getOrCreateCpu(a)},getOrCreateKernelThread:function(a,b,c){this.kernelThreadStates_[a]||(c=this.model_.getOrCreateProcess(b).getOrCreateThread(c),c.name=a,this.kernelThreadStates_[a]={pid:b,thread:c,openSlice:void 0,openSliceTS:void 0},this.threadsByLinuxPid[b]=c);return this.kernelThreadStates_[a]},getOrCreatePseudoThread:function(a){var b=this.kernelThreadStates_[a];b||(b=this.getOrCreateKernelThread(a,0,this.pseudoThreadCounter),
this.pseudoThreadCounter++);return b},importEvents:function(a){this.parsers_=this.createParsers_();this.registerDefaultHandlers_();this.parseLines();this.importClockSyncRecords();a=this.computeTimeTransform();void 0===a?this.model_.importWarning({type:"clock_sync",message:"Cannot import kernel trace without a clock sync."}):(this.shiftNewlyAddedClockSyncRecords(a),this.importCpuData(a),this.buildMapFromLinuxPidsToThreads(),this.buildPerThreadCpuSlicesFromCpuState(),this.computeCpuTimestampsForSlicesAsNeeded())},
buildPerThreadCpuSlicesFromCpuState:function(){for(var a in this.model_.kernel.cpus)for(var b=this.model_.kernel.cpus[a],c=0;c<b.slices.length;c++){var d=b.slices[c],e=this.threadsByLinuxPid[d.args.tid];e&&(d.threadThatWasRunning=e,e.tempCpuSlices||(e.tempCpuSlices=[]),e.tempCpuSlices.push(d))}for(c in this.wakeups_)if(a=this.wakeups_[c],e=this.threadsByLinuxPid[a.tid])e.tempWakeups=e.tempWakeups||[],e.tempWakeups.push(a);var c=tv.b.ui.getColorIdForReservedName,f=c("thread_state_running"),g=c("thread_state_runnable"),
h=c("thread_state_sleeping"),k=c("thread_state_iowait"),l=c("thread_state_unknown");this.model_.getAllThreads().forEach(function(a){if(void 0!==a.tempCpuSlices){var b=a.tempCpuSlices;delete a.tempCpuSlices;b.sort(function(a,b){return a.start-b.start});var c=a.tempWakeups||[];delete a.tempWakeups;c.sort(function(a,b){return a.ts-b.ts});var d=[];if(b.length){var e=b[0];if(c.length&&c[0].ts<e.start){var m=c.shift();d.push(new tv.c.trace_model.ThreadTimeSlice(a,"","Runnable",g,m.ts,{"wakeup from tid":m.fromTid},
e.start-m.ts))}var n=new tv.c.trace_model.ThreadTimeSlice(a,"","Running",f,e.start,{},e.duration);n.cpuOnWhichThreadWasRunning=e.cpu;d.push(n)}m=void 0;for(e=1;e<b.length;e++){for(var q=b[e-1],s=b[e],w=s.start-q.end;c.length&&c[0].ts<s.start;)n=c.shift(),void 0===m&&n.ts>q.end&&(m=n);n=function(b,c){void 0!==m&&(w=m.ts-q.end);d.push(new tv.c.trace_model.ThreadTimeSlice(a,"",b,c,q.end,{},w));void 0!==m&&(d.push(new tv.c.trace_model.ThreadTimeSlice(a,"","Runnable",g,m.ts,{"wakeup from tid":m.fromTid},
s.start-m.ts)),m=void 0)};"S"==q.args.stateWhenDescheduled?n("Sleeping",h):"R"==q.args.stateWhenDescheduled||"R+"==q.args.stateWhenDescheduled?d.push(new tv.c.trace_model.ThreadTimeSlice(a,"","Runnable",g,q.end,{},w)):"D"==q.args.stateWhenDescheduled?n("Uninterruptible Sleep",k):"T"==q.args.stateWhenDescheduled?d.push(new tv.c.trace_model.ThreadTimeSlice(a,"","__TASK_STOPPED",k,q.end,{},w)):"t"==q.args.stateWhenDescheduled?d.push(new tv.c.trace_model.ThreadTimeSlice(a,"","debug",k,q.end,{},w)):"Z"==
q.args.stateWhenDescheduled?d.push(new tv.c.trace_model.ThreadTimeSlice(a,"","Zombie",k,q.end,{},w)):"X"==q.args.stateWhenDescheduled?d.push(new tv.c.trace_model.ThreadTimeSlice(a,"","Exit Dead",k,q.end,{},w)):"x"==q.args.stateWhenDescheduled?d.push(new tv.c.trace_model.ThreadTimeSlice(a,"","Task Dead",k,q.end,{},w)):"K"==q.args.stateWhenDescheduled?d.push(new tv.c.trace_model.ThreadTimeSlice(a,"","Wakekill",k,q.end,{},w)):"W"==q.args.stateWhenDescheduled?d.push(new tv.c.trace_model.ThreadTimeSlice(a,
"","Waking",k,q.end,{},w)):"D|K"==q.args.stateWhenDescheduled?n("Uninterruptible Sleep | WakeKill",k):"D|W"==q.args.stateWhenDescheduled?n("Uninterruptible Sleep | Waking",k):(d.push(new tv.c.trace_model.ThreadTimeSlice(a,"","UNKNOWN",l,q.end,{},w)),this.model_.importWarning({type:"parse_error",message:"Unrecognized sleep state: "+q.args.stateWhenDescheduled}));n=new tv.c.trace_model.ThreadTimeSlice(a,"","Running",f,s.start,{},s.duration);n.cpuOnWhichThreadWasRunning=q.cpu;d.push(n)}a.timeSlices=
d}},this)},computeCpuTimestampsForSlicesAsNeeded:function(){},computeTimeTransform:function(){var a=0!==this.model.getClockSyncRecordsNamed("linux_perf_importer").length,b=this.model_.getClockSyncRecordsNamed("monotonic");if(0==b.length)return a?void 0:0;a=b[0].args;return 0==a.parentTS||a.parentTS==a.perfTS?0:a.parentTS-a.perfTS},createParsers_:function(){return tv.e.importer.linux_perf.Parser.getAllRegisteredTypeInfos().map(function(a){return new a.constructor(this)},this)},registerDefaultHandlers_:function(){this.registerEventHandler("tracing_mark_write",
e.prototype.traceMarkingWriteEvent.bind(this));this.registerEventHandler("0",e.prototype.traceMarkingWriteEvent.bind(this));this.registerEventHandler("tracing_mark_write:trace_event_clock_sync",function(){return!0});this.registerEventHandler("0:trace_event_clock_sync",function(){return!0})},registerEventHandler:function(a,b){this.eventHandlers_[a]=b},markPidRunnable:function(a,b,c,d,e){this.wakeups_.push({ts:a,tid:b,fromTid:e})},traceClockSyncEvent:function(b,c,d,e,f){if(b=/name=(\w+?)\s(.+)/.exec(f.details)){f=
b[1];b=b[2].split(" ");c={perfTS:e};for(d=0;d<b.length;d++){var g=b[d].split("=");if(2!=g.length)throw Error("omgbbq");c[g[0]]=g[1]}this.addClockSyncRecord(new a(f,e,c));return!0}b=/parent_ts=(\d+\.?\d*)/.exec(f.details);if(!b)return!1;this.addClockSyncRecord(new a("monotonic",e,{perfTS:e,parentTS:1E3*b[1]}));return!0},traceMarkingWriteEvent:function(a,b,c,d,e,f){e.details=e.details.replace(/\\n.*$/,"");var g=/^\s*(\w+):\s*(.*)$/.exec(e.details);if(g)e.subEventName=g[1],e.details=g[2];else if(g=e.details.substring(0,
2),"B|"==g||"E"==g||"E|"==g||"X|"==g||"C|"==g||"S|"==g||"F|"==g)e.subEventName="android";else return!1;a=a+":"+e.subEventName;g=this.eventHandlers_[a];return!g?(this.model_.importWarning({type:"parse_error",message:"Unknown trace_marking_write event "+a}),!0):g(a,b,c,d,e,f)},importClockSyncRecords:function(){this.forEachLine(function(a,b,c,d,e){a=b.eventName;"tracing_mark_write"!==a&&"0"!==a||(n.exec(b.details)&&this.traceClockSyncEvent(a,c,d,e,b),q.exec(b.details)&&this.traceClockSyncEvent(a,c,d,
e,b))}.bind(this))},addClockSyncRecord:function(a){this.newlyAddedClockSyncRecords_.push(a);this.model_.clockSyncRecords.push(a)},shiftNewlyAddedClockSyncRecords:function(a){this.newlyAddedClockSyncRecords_.forEach(function(b){b.ts+=a})},importCpuData:function(a){this.forEachLine(function(b,c,d,e,f){var g=c.eventName,h=this.eventHandlers_[g];h?(f+=a,h(g,d,e,f,c)||this.model_.importWarning({type:"parse_error",message:"Malformed "+g+" event ("+b+")"})):this.model_.importWarning({type:"parse_error",
message:"Unknown event "+g+" ("+b+")"})}.bind(this))},parseLines:function(){for(var a=e._extractEventsFromSystraceHTML(this.events_,!0),a=a.ok?a.lines:this.events_.split("\n"),b=null,d=0;d<a.length;++d){var f=a[d];if(!(0==f.length||/^#/.test(f))){if(null==b&&(b=c(f),null==b)){this.model_.importWarning({type:"parse_error",message:"Cannot parse line: "+f});continue}var g=b(f);g?this.lines_.push([f,g,parseInt(g.cpuNumber),parseInt(g.pid),1E3*parseFloat(g.timestamp)]):this.model_.importWarning({type:"parse_error",
message:"Unrecognized line: "+f})}}},forEachLine:function(a){for(var b=0;b<this.lines_.length;++b)a.apply(this,this.lines_[b])}};tv.c.importer.Importer.register(e);return{LinuxPerfImporter:e,_LinuxPerfImporterTestExports:f}});"use strict";
tv.exportTo("tv.e.audits",function(){function e(c,b){this.modelHelper=c;this.process=b}e.prototype={get pid(){return this.process.pid},getFrameEventsInRange:function(c,b){var a;a="main_frametime_type"==c?"BenchmarkInstrumentation::MainThreadRenderingStats":"BenchmarkInstrumentation::ImplThreadRenderingStats";var e=[];this.process.iterateAllEvents(function(c){c.title===a&&b.intersectsExplicitRange(c.start,c.end)&&e.push(c)});e.sort(function(a,b){return a.start-b.start});return e}};return{ChromeProcessHelper:e,
MAIN_FRAMETIME_TYPE:"main_frametime_type",IMPL_FRAMETIME_TYPE:"impl_frametime_type",getSlicesIntersectingRange:function(c,b){for(var a=[],e=0;e<b.length;e++){var d=b[e];c.intersectsExplicitRange(d.start,d.end)&&a.push(d)}return a},getFrametimeDataFromEvents:function(c){for(var b=[],a=1;a<c.length;a++)b.push({x:c[a].start,frametime:c[a].start-c[a-1].start});return b}}});"use strict";
tv.exportTo("tv.e.audits",function(){function e(c,b){tv.e.audits.ChromeProcessHelper.call(this,c,b)}e.prototype={__proto__:tv.e.audits.ChromeProcessHelper.prototype,getLoadingEventsInRange:function(c){var b=[];tv.b.iterItems(this.process.threads,function(a,e){e.iterateAllEvents(function(a){0===a.title.indexOf("WebContentsImpl Loading")&&c.intersectsExplicitRange(a.start,a.end)&&b.push(a)})});return b},get hasLatencyEvents(){var c=!1;this.modelHelper.model.getAllThreads().forEach(function(b){b.iterateAllEvents(function(a){0===
a.title.indexOf("InputLatency")&&(c=!0)})});return c},getLatencyEventsInRange:function(c){var b=[];this.modelHelper.model.getAllThreads().forEach(function(a){a.iterateAllEvents(function(a){0===a.title.indexOf("InputLatency")&&c.intersectsExplicitRange(a.start,a.end)&&b.push(a)})});return b},getLatencyDataInRange:function(c){var b=[];this.getLatencyEventsInRange(c).forEach(function(a){if("data"in a.args){var c=a.args.data;if("INPUT_EVENT_LATENCY_TERMINATED_FRAME_SWAP_COMPONENT"in c){var d=0,d=c.INPUT_EVENT_LATENCY_TERMINATED_FRAME_SWAP_COMPONENT.time;
if("INPUT_EVENT_LATENCY_ORIGINAL_COMPONENT"in c)d-=c.INPUT_EVENT_LATENCY_ORIGINAL_COMPONENT.time;else if("INPUT_EVENT_LATENCY_UI_COMPONENT"in c)d-=c.INPUT_EVENT_LATENCY_UI_COMPONENT.time;else if("INPUT_EVENT_LATENCY_BEGIN_RWH_COMPONENT"in c)d-=c.INPUT_EVENT_LATENCY_BEGIN_RWH_COMPONENT.time;else throw Error("No valid begin latency component");a={x:a.start,latency:d/1E3}}else a=void 0}else a=void 0;a&&b.push(a)});b.sort(function(a,b){return a.x-b.x});return b},getAllNetworkEventsInRange:function(c){var b=
[];this.modelHelper.model.getAllThreads().forEach(function(a){a.asyncSliceGroup.slices.forEach(function(a){var d=!1;if("net"==a.cat||"disabled-by-default-netlog"==a.cat||"netlog"==a.cat)d=!0;d&&c.intersectsExplicitRange(a.start,a.end)&&b.push(a)})});return b}};return{ChromeBrowserHelper:e}});"use strict";
tv.exportTo("tv.e.audits",function(){function e(c,b){tv.e.audits.ChromeProcessHelper.call(this,c,b);var a=b.findAllThreadsNamed(tv.e.audits.CHROME_RENDERER_THREAD_NAME);if(1!==a.length)throw Error("omgah: more than one renderer!");this.mainThread_=a[0]}e.prototype={__proto__:tv.e.audits.ChromeProcessHelper.prototype,get mainThread(){return this.mainThread_}};return{ChromeRendererHelper:e}});"use strict";
tv.exportTo("tv.e.audits",function(){function e(b){var c=[];b.getAllProcesses().forEach(function(b){0!==b.findAllThreadsNamed(a).length&&c.push(b)},this);return 0===c.length||1<c.length?void 0:c[0]}function c(a){var b=[];a.getAllProcesses().forEach(function(a){0!==a.findAllThreadsNamed(f).length&&b.push(a)});return b}function b(a){this.model_=a;this.browser_=(this.browserProcess_=e(a))?new tv.e.audits.ChromeBrowserHelper(this,this.browserProcess_):void 0;this.rendererProcesses_=c(a);this.renderers_=
{};this.rendererProcesses_.forEach(function(a){a=new tv.e.audits.ChromeRendererHelper(this,a);this.renderers_[a.pid]=a},this)}var a="CrBrowserMain",f="CrRendererMain";b.supportsModel=function(a){return void 0!==e(a)||c(a).length?!0:!1};b.prototype={get pid(){throw Error("woah");},get process(){throw Error("woah");},get model(){return this.model_},get browserProcess(){return this.browserProcess_},get browser(){return this.browser_},get rendererProcesses(){return this.rendererProcesses_},get renderers(){return this.renderers_}};
return{CHROME_RENDERER_THREAD_NAME:f,ChromeModelHelper:b}});
!function(){function e(a){return null!=a&&!isNaN(a)}function c(a){return a.length}function b(a,b){try{for(var c in b)Object.defineProperty(a.prototype,c,{value:b[c],enumerable:!1})}catch(d){a.prototype=b}}function a(){}function f(a){return hb+a in this}function d(){var a=[];return this.forEach(function(b){a.push(b)}),a}function h(){var a=0,b;for(b in this)b.charCodeAt(0)===Tb&&++a;return a}function g(){for(var a in this)if(a.charCodeAt(0)===Tb)return!1;return!0}function k(){}function l(a,b,c){return function(){var d=
c.apply(b,arguments);return d===b?a:d}}function m(a,b){if(b in a)return b;b=b.charAt(0).toUpperCase()+b.substring(1);for(var c=0,d=ae.length;d>c;++c){var e=ae[c]+b;if(e in a)return e}}function n(){}function q(){}function w(b){function c(){for(var a,e=d,f=-1,J=e.length;++f<J;)(a=e[f].on)&&a.apply(this,arguments);return b}var d=[],e=new a;return c.on=function(a,c){var f,J=e.get(a);return 2>arguments.length?J&&J.on:(J&&(J.on=null,d=d.slice(0,f=d.indexOf(J)).concat(d.slice(f+1)),e.remove(a)),c&&d.push(e.set(a,
{on:c})),b)},c}function s(){p.event.preventDefault()}function D(){for(var a,b=p.event;a=b.sourceEvent;)b=a;return b}function F(a){for(var b=new q,c=0,d=arguments.length;++c<d;)b[arguments[c]]=w(b);return b.of=function(c,d){return function(e){try{var f=e.sourceEvent=p.event;e.target=a;p.event=e;b[e.type].apply(c,d)}finally{p.event=f}}},b}function C(a){return Ub(a,ia),a}function v(a){return"function"==typeof a?a:function(){return Wc(a,this)}}function y(a){return"function"==typeof a?a:function(){return Xc(a,
this)}}function B(a,b){function c(){this.removeAttribute(a)}function d(){this.removeAttributeNS(a.space,a.local)}function e(){this.setAttribute(a,b)}function f(){this.setAttributeNS(a.space,a.local,b)}function g(){var c=b.apply(this,arguments);null==c?this.removeAttribute(a):this.setAttribute(a,c)}function h(){var c=b.apply(this,arguments);null==c?this.removeAttributeNS(a.space,a.local):this.setAttributeNS(a.space,a.local,c)}return a=p.ns.qualify(a),null==b?a.local?d:c:"function"==typeof b?a.local?
h:g:a.local?f:e}function H(a){return a.trim().replace(/\s+/g," ")}function z(a){return RegExp("(?:^|\\s+)"+p.requote(a)+"(?:\\s+|$)","g")}function x(a,b){function c(){for(var d=-1;++d<e;)a[d](this,b)}function d(){for(var c=-1,f=b.apply(this,arguments);++c<e;)a[c](this,f)}a=a.trim().split(/^|\s+/).map(G);var e=a.length;return"function"==typeof b?d:c}function G(a){var b=z(a);return function(c,d){if(e=c.classList)return d?e.add(a):e.remove(a);var e=c.getAttribute("class")||"";d?(b.lastIndex=0,b.test(e)||
c.setAttribute("class",H(e+" "+a))):c.setAttribute("class",H(e.replace(b," ")))}}function E(a,b,c){function d(){this.style.removeProperty(a)}function e(){this.style.setProperty(a,b,c)}function f(){var d=b.apply(this,arguments);null==d?this.style.removeProperty(a):this.style.setProperty(a,d,c)}return null==b?d:"function"==typeof b?f:e}function K(a,b){function c(){delete this[a]}function d(){this[a]=b}function e(){var c=b.apply(this,arguments);null==c?delete this[a]:this[a]=c}return null==b?c:"function"==
typeof b?e:d}function Q(a){return"function"==typeof a?a:(a=p.ns.qualify(a)).local?function(){return this.ownerDocument.createElementNS(a.space,a.local)}:function(){return this.ownerDocument.createElementNS(this.namespaceURI,a)}}function O(a){return function(){return be(this,a)}}function T(a){return arguments.length||(a=p.ascending),function(b,c){return b&&c?a(b.__data__,c.__data__):!b-!c}}function U(a,b){for(var c=0,d=a.length;d>c;c++)for(var e,f=a[c],g=0,h=f.length;h>g;g++)(e=f[g])&&b(e,g,c);return a}
function ja(a){return Ub(a,Sa),a}function u(a){var b,c;return function(d,e,f){d=a[f].update;var g=d.length;f!=c&&(c=f,b=0);for(e>=b&&(b=e+1);!(e=d[b])&&++b<g;);return e}}function t(){var a=this.__transition__;a&&++a.active}function oa(a,b,c){function d(){var b=this[g];b&&(this.removeEventListener(a,b,b.$),delete this[g])}function e(){var f=k(b,$a(arguments));d.call(this);this.addEventListener(a,this[g]=f,f.$=c);f._=b}function f(){var b,c=RegExp("^__on([^.]+)"+p.requote(a)+"$"),d;for(d in this)if(b=
d.match(c)){var e=this[d];this.removeEventListener(b[1],e,e.$);delete this[d]}}var g="__on"+a,h=a.indexOf("."),k=V;0<h&&(a=a.substring(0,h));var wa=Yc.get(a);return wa&&(a=wa,k=M),h?b?e:d:b?n:f}function V(a,b){return function(c){var d=p.event;p.event=c;b[0]=this.__data__;try{a.apply(this,b)}finally{p.event=d}}}function M(a,b){var c=V(a,b);return function(a){var b=a.relatedTarget;b&&(b===this||8&b.compareDocumentPosition(this))||c.call(this,a)}}function ea(){var a=".dragsuppress-"+ ++pg,b="click"+
a,c=p.select(za).on("touchmove"+a,s).on("dragstart"+a,s).on("selectstart"+a,s);if(Fb){var d=ab.style,e=d[Fb];d[Fb]="none"}return function(f){function g(){c.on(b,null)}c.on(a,null);Fb&&(d[Fb]=e);f&&(c.on(b,function(){s();g()},!0),setTimeout(g,0))}}function S(a,b){b.changedTouches&&(b=b.changedTouches[0]);var c=a.ownerSVGElement||a;if(c.createSVGPoint){var d=c.createSVGPoint();if(0>Zc&&(za.scrollX||za.scrollY)){var c=p.select("body").append("svg").style({position:"absolute",top:0,left:0,margin:0,padding:0,
border:"none"},"important"),e=c[0][0].getScreenCTM();Zc=!(e.f||e.e);c.remove()}return Zc?(d.x=b.pageX,d.y=b.pageY):(d.x=b.clientX,d.y=b.clientY),d=d.matrixTransform(a.getScreenCTM().inverse()),[d.x,d.y]}c=a.getBoundingClientRect();return[b.clientX-c.left-a.clientLeft,b.clientY-c.top-a.clientTop]}function I(a,b,c){return(b[0]-a[0])*(c[1]-a[1])-(b[1]-a[1])*(c[0]-a[0])}function Z(a){return 1<a?Ba:-1>a?-Ba:Math.asin(a)}function fa(a){return((a=Math.exp(a))+1/a)/2}function pa(a){return(a=Math.sin(a/2))*
a}function la(){}function X(a,b,c){return new qa(a,b,c)}function qa(a,b,c){this.h=a;this.s=b;this.l=c}function ra(a,b,c){function d(a){return 360<a?a-=360:0>a&&(a+=360),60>a?e+(f-e)*a/60:180>a?f:240>a?e+(f-e)*(240-a)/60:e}var e,f;return a=isNaN(a)?0:0>(a%=360)?a+360:a,b=isNaN(b)?0:0>b?0:1<b?1:b,c=0>c?0:1<c?1:c,f=0.5>=c?c*(1+b):c+b-c*b,e=2*c-f,Pa(Math.round(255*d(a+120)),Math.round(255*d(a)),Math.round(255*d(a-120)))}function ha(a,b,c){return new na(a,b,c)}function na(a,b,c){this.h=a;this.c=b;this.l=
c}function Oa(a,b,c){return isNaN(a)&&(a=0),isNaN(b)&&(b=0),ya(c,Math.cos(a*=Y)*b,Math.sin(a)*b)}function ya(a,b,c){return new r(a,b,c)}function r(a,b,c){this.l=a;this.a=b;this.b=c}function Wd(a,b,c){a=(a+16)/116;b=a+b/500;c=a-c/200;return b=Qc(b)*ce,a=Qc(a)*de,c=Qc(c)*ee,Pa(Sc(3.2404542*b-1.5371385*a-0.4985314*c),Sc(-0.969266*b+1.8760108*a+0.041556*c),Sc(0.0556434*b-0.2040259*a+1.0572252*c))}function Xd(a,b,c){return 0<a?ha(Math.atan2(c,b)*ma,Math.sqrt(b*b+c*c),a):ha(0/0,0/0,a)}function Qc(a){return 0.206893034<
a?a*a*a:(a-4/29)/7.787037}function Rc(a){return 0.008856<a?Math.pow(a,1/3):7.787037*a+4/29}function Sc(a){return Math.round(255*(0.00304>=a?12.92*a:1.055*Math.pow(a,1/2.4)-0.055))}function Sb(a){return Pa(a>>16,255&a>>8,255&a)+""}function Pa(a,b,c){return new Tc(a,b,c)}function Tc(a,b,c){this.r=a;this.g=b;this.b=c}function rb(a){return 16>a?"0"+Math.max(0,a).toString(16):Math.min(255,a).toString(16)}function Yd(a,b,c){var d,e,f,g,h=0,k=0,wa=0;if(e=/([a-z]+)\((.*)\)/i.exec(a))switch(f=e[2].split(","),
e[1]){case "hsl":return c(parseFloat(f[0]),parseFloat(f[1])/100,parseFloat(f[2])/100);case "rgb":return b(Vc(f[0]),Vc(f[1]),Vc(f[2]))}return(g=Vb.get(a))?b(g.r,g.g,g.b):(null!=a&&"#"===a.charAt(0)&&(d=parseInt(a.substring(1),16),isNaN(d)||(4===a.length?(h=(3840&d)>>4,h|=h>>4,k=240&d,k|=k>>4,wa=15&d,wa|=wa<<4):7===a.length&&(h=(16711680&d)>>16,k=(65280&d)>>8,wa=255&d))),b(h,k,wa))}function Zd(a,b,c){var d,e,f=Math.min(a/=255,b/=255,c/=255),g=Math.max(a,b,c),h=g-f,k=(g+f)/2;return h?(e=0.5>k?h/(g+f):
h/(2-g-f),d=a==g?(b-c)/h+(c>b?6:0):b==g?(c-a)/h+2:(a-b)/h+4,d*=60):(d=0/0,e=0<k&&1>k?0:d),X(d,e,k)}function $d(a,b,c){a=Uc(a);b=Uc(b);c=Uc(c);var d=Rc((0.4124564*a+0.3575761*b+0.1804375*c)/ce),e=Rc((0.2126729*a+0.7151522*b+0.072175*c)/de);a=Rc((0.0193339*a+0.119192*b+0.9503041*c)/ee);return ya(116*e-16,500*(d-e),200*(e-a))}function Uc(a){return 0.04045>=(a/=255)?a/12.92:Math.pow((a+0.055)/1.055,2.4)}function Vc(a){var b=parseFloat(a);return"%"===a.charAt(a.length-1)?Math.round(2.55*b):b}function ka(a){return"function"==
typeof a?a:function(){return a}}function va(a){return a}function $c(a){return function(b,c,d){return 2===arguments.length&&"function"==typeof c&&(d=c,c=null),Wb(b,c,a,d)}}function Wb(a,b,c,d){function e(){var a,b=k.status;if(!b&&k.responseText||200<=b&&300>b||304===b){try{a=c.call(f,k)}catch(d){return g.error.call(f,d),void 0}g.load.call(f,a)}else g.error.call(f,k)}var f={},g=p.dispatch("beforesend","progress","load","error"),h={},k=new XMLHttpRequest,wa=null;return!za.XDomainRequest||"withCredentials"in
k||!/^(http(s)?:)?\/\//.test(a)||(k=new XDomainRequest),"onload"in k?k.onload=k.onerror=e:k.onreadystatechange=function(){3<k.readyState&&e()},k.onprogress=function(a){var b=p.event;p.event=a;try{g.progress.call(f,k)}finally{p.event=b}},f.header=function(a,b){return a=(a+"").toLowerCase(),2>arguments.length?h[a]:(null==b?delete h[a]:h[a]=b+"",f)},f.mimeType=function(a){return arguments.length?(b=null==a?null:a+"",f):b},f.responseType=function(a){return arguments.length?(wa=a,f):wa},f.response=function(a){return c=
a,f},["get","post"].forEach(function(a){f[a]=function(){return f.send.apply(f,[a].concat($a(arguments)))}}),f.send=function(c,d,e){if(2===arguments.length&&"function"==typeof d&&(e=d,d=null),k.open(c,a,!0),null==b||"accept"in h||(h.accept=b+",*/*"),k.setRequestHeader)for(var R in h)k.setRequestHeader(R,h[R]);return null!=b&&k.overrideMimeType&&k.overrideMimeType(b),null!=wa&&(k.responseType=wa),null!=e&&f.on("error",e).on("load",function(a){e(null,a)}),g.beforesend.call(f,k),k.send(null==d?null:d),
f},f.abort=function(){return k.abort(),f},p.rebind(f,g,"on"),null==d?f:f.get(qg(d))}function qg(a){return 1===a.length?function(b,c){a(null==b?c:null)}:a}function ad(){var a=fe(),a=ge()-a;24<a?(isFinite(a)&&(clearTimeout(Xb),Xb=setTimeout(ad,a)),Yb=0):(Yb=1,he(ad))}function fe(){var a=Date.now();for(Ta=Zb;Ta;)a>=Ta.t&&(Ta.f=Ta.c(a-Ta.t)),Ta=Ta.n;return a}function ge(){for(var a,b=Zb,c=1/0;b;)b.f?b=a?a.n=b.n:Zb=b.n:(b.t<c&&(c=b.t),b=(a=b).n);return $b=a,c}function bd(a,b){return b-(a?Math.ceil(Math.log(a)/
Math.LN10):1)}function rg(a){var b=a.decimal,c=a.thousands,d=a.grouping,e=a.currency,f=d?function(a){for(var b=a.length,e=[],A=0,f=d[0];0<b&&0<f;)e.push(a.substring(b-=f,b+f)),f=d[A=(A+1)%d.length];return e.reverse().join(c)}:va;return function(a){a=ie.exec(a);var c=a[1]||" ",d=a[2]||">",A=a[3]||"",R=a[4]||"",ga=a[5],g=+a[6],h=a[7],k=a[8],l=a[9],m=1,n="",q="",aa=!1;switch(k&&(k=+k.substring(1)),(ga||"0"===c&&"="===d)&&(ga=c="0",d="=",h&&(g-=Math.floor((g-1)/4))),l){case "n":h=!0;l="g";break;case "%":m=
100;q="%";l="f";break;case "p":m=100;q="%";l="r";break;case "b":case "o":case "x":case "X":"#"===R&&(n="0"+l.toLowerCase());case "c":case "d":aa=!0;k=0;break;case "s":m=-1,l="r"}"$"===R&&(n=e[0],q=e[1]);"r"!=l||k||(l="g");null!=k&&("g"==l?k=Math.max(1,Math.min(21,k)):("e"==l||"f"==l)&&(k=Math.max(0,Math.min(20,k))));var l=sg.get(l)||tg,r=ga&&h;return function(a){var e=q;if(aa&&a%1)return"";var R=0>a||0===a&&0>1/a?(a=-a,"-"):A;0>m?(e=p.formatPrefix(a,k),a=e.scale(a),e=e.symbol+q):a*=m;a=l(a,k);var ba=
a.lastIndexOf("."),xa=0>ba?a:a.substring(0,ba),ba=0>ba?"":b+a.substring(ba+1);!ga&&h&&(xa=f(xa));var da=n.length+xa.length+ba.length+(r?0:R.length),s=g>da?Array(da=g-da+1).join(c):"";return r&&(xa=f(s+xa)),R+=n,a=xa+ba,("<"===d?R+a+s:">"===d?s+R+a:"^"===d?s.substring(0,da>>=1)+R+a+s.substring(da):R+(r?a:s+a))+e}}}function tg(a){return a+""}function Ua(){this._=new Date(1<arguments.length?Date.UTC.apply(this,arguments):arguments[0])}function ib(a,b,c){function d(b){var c=a(b),e=f(c,1);return e-b>b-
c?c:e}function e(c){return b(c=a(new Aa(c-1)),1),c}function f(a,c){return b(a=new Aa(+a),c),a}function g(a,d,A){a=e(a);var f=[];if(1<A)for(;d>a;)c(a)%A||f.push(new Date(+a)),b(a,1);else for(;d>a;)f.push(new Date(+a)),b(a,1);return f}a.floor=a;a.round=d;a.ceil=e;a.offset=f;a.range=g;var h=a.utc=bc(a);return h.floor=h,h.round=bc(d),h.ceil=bc(e),h.offset=bc(f),h.range=function(a,b,c){try{Aa=Ua;var d=new Ua;return d._=a,g(d,b,c)}finally{Aa=Date}},a}function bc(a){return function(b,c){try{Aa=Ua;var d=
new Ua;return d._=b,a(d,c)._}finally{Aa=Date}}}function ug(a){function b(a){function d(b){for(var c,A,f,J=[],R=-1,ga=0;++R<e;)37===a.charCodeAt(R)&&(J.push(a.substring(ga,R)),null!=(A=ke[c=a.charAt(++R)])&&(c=a.charAt(++R)),(f=r[c])&&(c=f(b,null==A?"e"===c?" ":"0":A)),J.push(c),ga=R+1);return J.push(a.substring(ga,R)),J.join("")}var e=a.length;return d.parse=function(b){var d={y:1900,m:0,d:1,H:0,M:0,S:0,L:0,Z:null};if(c(d,a,b,0)!=b.length)return null;"p"in d&&(d.H=d.H%12+12*d.p);b=null!=d.Z&&Aa!==
Ua;var e=new (b?Ua:Aa);return"j"in d?e.setFullYear(d.y,0,d.j):"w"in d&&("W"in d||"U"in d)?(e.setFullYear(d.y,0,1),e.setFullYear(d.y,0,"W"in d?(d.w+6)%7+7*d.W-(e.getDay()+5)%7:d.w+7*d.U-(e.getDay()+6)%7)):e.setFullYear(d.y,d.m,d.d),e.setHours(d.H+Math.floor(d.Z/100),d.M+d.Z%100,d.S,d.L),b?e._:e},d.toString=function(){return a},d}function c(a,b,d,e){for(var A,f,J,R=0,ga=b.length,g=d.length;ga>R;){if(e>=g)return-1;if(A=b.charCodeAt(R++),37===A){if(J=b.charAt(R++),f=t[J in ke?b.charAt(R++):J],!f||0>(e=
f(a,d,e)))return-1}else if(A!=d.charCodeAt(e++))return-1}return e}var d=a.dateTime,e=a.date,f=a.time,g=a.periods,h=a.days,k=a.shortDays,l=a.months,da=a.shortMonths;b.utc=function(a){function c(a){try{Aa=Ua;var b=new Aa;return b._=a,d(b)}finally{Aa=Date}}var d=b(a);return c.parse=function(a){try{Aa=Ua;var b=d.parse(a);return b&&b._}finally{Aa=Date}},c.toString=d.toString,c};b.multi=b.utc.multi=vg;var m=p.map(),L=cc(h),n=dc(h),q=cc(k),Da=dc(k),s=cc(l),dd=dc(l),je=cc(da),aa=dc(da);g.forEach(function(a,
b){m.set(a.toLowerCase(),b)});var r={a:function(a){return k[a.getDay()]},A:function(a){return h[a.getDay()]},b:function(a){return da[a.getMonth()]},B:function(a){return l[a.getMonth()]},c:b(d),d:function(a,b){return Ca(a.getDate(),b,2)},e:function(a,b){return Ca(a.getDate(),b,2)},H:function(a,b){return Ca(a.getHours(),b,2)},I:function(a,b){return Ca(a.getHours()%12||12,b,2)},j:function(a,b){return Ca(1+P.dayOfYear(a),b,3)},L:function(a,b){return Ca(a.getMilliseconds(),b,3)},m:function(a,b){return Ca(a.getMonth()+
1,b,2)},M:function(a,b){return Ca(a.getMinutes(),b,2)},p:function(a){return g[+(12<=a.getHours())]},S:function(a,b){return Ca(a.getSeconds(),b,2)},U:function(a,b){return Ca(P.sundayOfYear(a),b,2)},w:function(a){return a.getDay()},W:function(a,b){return Ca(P.mondayOfYear(a),b,2)},x:b(e),X:b(f),y:function(a,b){return Ca(a.getFullYear()%100,b,2)},Y:function(a,b){return Ca(a.getFullYear()%1E4,b,4)},Z:wg,"%":function(){return"%"}},t={a:function(a,b,c){q.lastIndex=0;return(b=q.exec(b.substring(c)))?(a.w=
Da.get(b[0].toLowerCase()),c+b[0].length):-1},A:function(a,b,c){L.lastIndex=0;return(b=L.exec(b.substring(c)))?(a.w=n.get(b[0].toLowerCase()),c+b[0].length):-1},b:function(a,b,c){je.lastIndex=0;return(b=je.exec(b.substring(c)))?(a.m=aa.get(b[0].toLowerCase()),c+b[0].length):-1},B:function(a,b,c){s.lastIndex=0;return(b=s.exec(b.substring(c)))?(a.m=dd.get(b[0].toLowerCase()),c+b[0].length):-1},c:function(a,b,d){return c(a,r.c.toString(),b,d)},d:le,e:le,H:me,I:me,j:xg,L:yg,m:zg,M:Ag,p:function(a,b,c){b=
m.get(b.substring(c,c+=2).toLowerCase());return null==b?-1:(a.p=b,c)},S:Bg,U:Cg,w:Dg,W:Eg,x:function(a,b,d){return c(a,r.x.toString(),b,d)},X:function(a,b,d){return c(a,r.X.toString(),b,d)},y:Fg,Y:Gg,Z:Hg,"%":Ig};return b}function Ca(a,b,c){var d=0>a?"-":"";a=(d?-a:a)+"";var e=a.length;return d+(c>e?Array(c-e+1).join(b)+a:a)}function cc(a){return RegExp("^(?:"+a.map(p.requote).join("|")+")","i")}function dc(b){for(var c=new a,d=-1,e=b.length;++d<e;)c.set(b[d].toLowerCase(),d);return c}function Dg(a,
b,c){sa.lastIndex=0;return(b=sa.exec(b.substring(c,c+1)))?(a.w=+b[0],c+b[0].length):-1}function Cg(a,b,c){sa.lastIndex=0;return(b=sa.exec(b.substring(c)))?(a.U=+b[0],c+b[0].length):-1}function Eg(a,b,c){sa.lastIndex=0;return(b=sa.exec(b.substring(c)))?(a.W=+b[0],c+b[0].length):-1}function Gg(a,b,c){sa.lastIndex=0;return(b=sa.exec(b.substring(c,c+4)))?(a.y=+b[0],c+b[0].length):-1}function Fg(a,b,c){sa.lastIndex=0;return(b=sa.exec(b.substring(c,c+2)))?(a.y=+b[0]+(68<+b[0]?1900:2E3),c+b[0].length):-1}
function Hg(a,b,c){return/^[+-]\d{4}$/.test(b=b.substring(c,c+5))?(a.Z=+b,c+5):-1}function zg(a,b,c){sa.lastIndex=0;return(b=sa.exec(b.substring(c,c+2)))?(a.m=b[0]-1,c+b[0].length):-1}function le(a,b,c){sa.lastIndex=0;return(b=sa.exec(b.substring(c,c+2)))?(a.d=+b[0],c+b[0].length):-1}function xg(a,b,c){sa.lastIndex=0;return(b=sa.exec(b.substring(c,c+3)))?(a.j=+b[0],c+b[0].length):-1}function me(a,b,c){sa.lastIndex=0;return(b=sa.exec(b.substring(c,c+2)))?(a.H=+b[0],c+b[0].length):-1}function Ag(a,
b,c){sa.lastIndex=0;return(b=sa.exec(b.substring(c,c+2)))?(a.M=+b[0],c+b[0].length):-1}function Bg(a,b,c){sa.lastIndex=0;return(b=sa.exec(b.substring(c,c+2)))?(a.S=+b[0],c+b[0].length):-1}function yg(a,b,c){sa.lastIndex=0;return(b=sa.exec(b.substring(c,c+3)))?(a.L=+b[0],c+b[0].length):-1}function wg(a){var b=a.getTimezoneOffset();a=0<b?"-":"+";var c=~~($(b)/60),b=$(b)%60;return a+Ca(c,"0",2)+Ca(b,"0",2)}function Ig(a,b,c){ne.lastIndex=0;return(a=ne.exec(b.substring(c,c+1)))?c+a[0].length:-1}function vg(a){for(var b=
a.length,c=-1;++c<b;)a[c][0]=this(a[c][0]);return function(b){for(var c=0,d=a[c];!d[1](b);)d=a[++c];return d[0](b)}}function ed(){}function oe(a,b,c){var d=c.s=a+b,e=d-a;c.t=a-(d-e)+(b-e)}function ec(a,b){a&&pe.hasOwnProperty(a.type)&&pe[a.type](a,b)}function fd(a,b,c){var d=-1,e=a.length-c;for(b.lineStart();++d<e;)c=a[d],b.point(c[0],c[1],c[2]);b.lineEnd()}function qe(a,b){var c=-1,d=a.length;for(b.polygonStart();++c<d;)fd(a[c],b,1);b.polygonEnd()}function Jg(){function a(b,c){b*=Y;c=c*Y/2+W/4;var A=
b-d,J=0<=A?1:-1,R=J*A,A=Math.cos(c),g=Math.sin(c),h=f*g,k=e*A+h*Math.cos(R),J=h*J*Math.sin(R);jb.add(Math.atan2(J,k));d=b;e=A;f=g}var b,c,d,e,f;Fa.point=function(g,h){Fa.point=a;d=(b=g)*Y;e=Math.cos(h=(c=h)*Y/2+W/4);f=Math.sin(h)};Fa.lineEnd=function(){a(b,c)}}function kb(a){var b=a[0];a=a[1];var c=Math.cos(a);return[c*Math.cos(b),c*Math.sin(b),Math.sin(a)]}function fc(a,b){return a[0]*b[0]+a[1]*b[1]+a[2]*b[2]}function sb(a,b){return[a[1]*b[2]-a[2]*b[1],a[2]*b[0]-a[0]*b[2],a[0]*b[1]-a[1]*b[0]]}function gd(a,
b){a[0]+=b[0];a[1]+=b[1];a[2]+=b[2]}function gc(a,b){return[a[0]*b,a[1]*b,a[2]*b]}function hc(a){var b=Math.sqrt(a[0]*a[0]+a[1]*a[1]+a[2]*a[2]);a[0]/=b;a[1]/=b;a[2]/=b}function ic(a){return[Math.atan2(a[1],a[0]),Z(a[2])]}function jc(a,b){return $(a[0]-b[0])<N&&$(a[1]-b[1])<N}function hd(a,b){a*=Y;var c=Math.cos(b*=Y);Gb(c*Math.cos(a),c*Math.sin(a),Math.sin(b))}function Gb(a,b,c){++Hb;Va+=(a-Va)/Hb;Wa+=(b-Wa)/Hb;Qa+=(c-Qa)/Hb}function re(){function a(e,A){e*=Y;var f=Math.cos(A*=Y),g=f*Math.cos(e),
f=f*Math.sin(e),h=Math.sin(A),k=Math.atan2(Math.sqrt((k=c*h-d*f)*k+(k=d*g-b*h)*k+(k=b*f-c*g)*k),b*g+c*f+d*h);tb+=k;Ia+=k*(b+(b=g));Ja+=k*(c+(c=f));Ea+=k*(d+(d=h));Gb(b,c,d)}var b,c,d;La.point=function(e,f){e*=Y;var g=Math.cos(f*=Y);b=g*Math.cos(e);c=g*Math.sin(e);d=Math.sin(f);La.point=a;Gb(b,c,d)}}function se(){La.point=hd}function Kg(){function a(b,c){b*=Y;var A=Math.cos(c*=Y),J=A*Math.cos(b),A=A*Math.sin(b),R=Math.sin(c),g=e*R-f*A,h=f*J-d*R,k=d*A-e*J,l=Math.sqrt(g*g+h*h+k*k),m=d*J+e*A+f*R,p=l&&
-(1<m?0:-1>m?W:Math.acos(m))/l,l=Math.atan2(l,m);bb+=p*g;cb+=p*h;Ra+=p*k;tb+=l;Ia+=l*(d+(d=J));Ja+=l*(e+(e=A));Ea+=l*(f+(f=R));Gb(d,e,f)}var b,c,d,e,f;La.point=function(g,h){b=g;c=h;La.point=a;g*=Y;var k=Math.cos(h*=Y);d=k*Math.cos(g);e=k*Math.sin(g);f=Math.sin(h);Gb(d,e,f)};La.lineEnd=function(){a(b,c);La.lineEnd=se;La.point=hd}}function ub(){return!0}function te(a,b,c,d,e){var f=[],g=[];if(a.forEach(function(a){if(!(0>=(b=a.length-1))){var b,c=a[0],d=a[b];if(jc(c,d)){e.lineStart();for(d=0;b>d;++d)e.point((c=
a[d])[0],c[1]);return e.lineEnd(),void 0}b=new kc(c,a,null,!0);c=new kc(c,null,b,!1);b.o=c;f.push(b);g.push(c);b=new kc(d,a,null,!1);c=new kc(d,null,b,!0);b.o=c;f.push(b);g.push(c)}}),g.sort(b),ue(f),ue(g),f.length){a=0;b=c;for(c=g.length;c>a;++a)g[a].e=b=!b;for(var h,k=f[0];;){for(var l=k,da=!0;l.v;)if((l=l.n)===k)return;b=l.z;e.lineStart();do{if(l.v=l.o.v=!0,l.e){if(da){a=0;for(c=b.length;c>a;++a)e.point((h=b[a])[0],h[1])}else d(l.x,l.n.x,1,e);l=l.n}else{if(da){b=l.p.z;for(a=b.length-1;0<=a;--a)e.point((h=
b[a])[0],h[1])}else d(l.x,l.p.x,-1,e);l=l.p}l=l.o;b=l.z;da=!da}while(!l.v);e.lineEnd()}}}function ue(a){if(b=a.length){for(var b,c,d=0,e=a[0];++d<b;)e.n=c=a[d],c.p=e,e=c;e.n=c=a[0];c.p=e}}function kc(a,b,c,d){this.x=a;this.z=b;this.o=c;this.e=d;this.v=!1;this.n=this.p=null}function ve(a,b,c,d){return function(e,f){function g(b,c){var d=e(b,c);a(b=d[0],c=d[1])&&f.point(b,c)}function h(a,b){var c=e(a,b);r.point(c[0],c[1])}function k(){s.point=h;r.lineStart()}function l(){s.point=g;r.lineEnd()}function da(a,
b){Da.push([a,b]);var c=e(a,b);t.point(c[0],c[1])}function m(){t.lineStart();Da=[]}function L(){da(Da[0][0],Da[0][1]);t.lineEnd();var a;a=t.clean();var b=aa.buffer(),c=b.length;if(Da.pop(),q.push(Da),Da=null,c){if(1&a){a=b[0];var d,c=a.length-1,b=-1;for(f.lineStart();++b<c;)f.point((d=a[b])[0],d[1]);return f.lineEnd(),void 0}1<c&&2&a&&b.push(b.pop().concat(b.shift()));n.push(b.filter(Lg))}}var n,q,Da,r=b(f),dd=e.invert(d[0],d[1]),s={point:g,lineStart:k,lineEnd:l,polygonStart:function(){s.point=da;
s.lineStart=m;s.lineEnd=L;n=[];q=[];f.polygonStart()},polygonEnd:function(){s.point=g;s.lineStart=k;s.lineEnd=l;n=p.merge(n);var a,b=dd;a=q;var d=b[0],e=b[1],A=[Math.sin(d),-Math.cos(d),0],J=0,ga=0;jb.reset();for(var h=0,ba=a.length;ba>h;++h){var ua=a[h],da=ua.length;if(da)for(var m=ua[0],L=m[0],b=m[1]/2+W/4,Eb=Math.sin(b),aa=Math.cos(b),Da=1;;){Da===da&&(Da=0);var b=ua[Da],r=b[0],t=b[1]/2+W/4,w=Math.sin(t),t=Math.cos(t),u=r-L,cd=0<=u?1:-1,v=cd*u,ac=v>W,Eb=Eb*w;if(jb.add(Math.atan2(Eb*cd*Math.sin(v),
aa*t+Eb*Math.cos(v))),J+=ac?u+cd*Ga:u,ac^L>=d^r>=d)m=sb(kb(m),kb(b)),hc(m),L=sb(A,m),hc(L),L=(ac^0<=u?-1:1)*Z(L[2]),(e>L||e===L&&(m[0]||m[1]))&&(ga+=ac^0<=u?1:-1);if(!Da++)break;L=r;Eb=w;aa=t;m=b}}a=(-N>J||N>J&&0>jb)^1&ga;n.length?te(n,Mg,a,c,f):a&&(f.lineStart(),c(null,null,1,f),f.lineEnd());f.polygonEnd();n=q=null},sphere:function(){f.polygonStart();f.lineStart();c(null,null,1,f);f.lineEnd();f.polygonEnd()}},aa=we(),t=b(aa);return s}}function Lg(a){return 1<a.length}function we(){var a,b=[];return{lineStart:function(){b.push(a=
[])},point:function(b,c){a.push([b,c])},lineEnd:n,buffer:function(){var c=b;return b=[],a=null,c},rejoin:function(){1<b.length&&b.push(b.pop().concat(b.shift()))}}}function Mg(a,b){return(0>(a=a.x)[0]?a[1]-Ba-N:Ba-a[1])-(0>(b=b.x)[0]?b[1]-Ba-N:Ba-b[1])}function Ng(a){function b(a,c){return Math.cos(a)*Math.cos(c)>e}function c(a,b,d){var A=kb(a),f=kb(b),J=[1,0,0],f=sb(A,f),R=fc(f,f),A=f[0],g=R-A*A;if(!g)return!d&&a;R=e*R/g;g=-e*A/g;A=sb(J,f);J=gc(J,R);f=gc(f,g);gd(J,f);f=fc(J,A);R=fc(A,A);g=f*f-R*
(fc(J,J)-1);if(!(0>g)){var ga=Math.sqrt(g),g=gc(A,(-f-ga)/R);if(gd(g,J),g=ic(g),!d)return g;var ca;d=a[0];var h=b[0];a=a[1];b=b[1];d>h&&(ca=d,d=h,h=ca);var k=h-d,ua=$(k-W)<N,l=ua||N>k;if(!ua&&a>b&&(ca=a,a=b,b=ca),l?ua?0<a+b^g[1]<($(g[0]-d)<N?a:b):a<=g[1]&&g[1]<=b:k>W^(d<=g[0]&&g[0]<=h))return ca=gc(A,(-f+ga)/R),gd(ca,J),[g,ic(ca)]}}function d(b,c){var e=f?a:W-a,J=0;return-e>b?J|=1:b>e&&(J|=2),-e>c?J|=4:c>e&&(J|=8),J}var e=Math.cos(a),f=0<e,g=$(e)>N,h=id(a,6*Y);return ve(b,function(a){var e,A,h,k,
ba;return{lineStart:function(){k=h=!1;ba=1},point:function(ua,l){var m,p=[ua,l],n=b(ua,l),q=f?n?0:d(ua,l):n?d(ua+(0>ua?W:-W),l):0;if(!e&&(k=h=n)&&a.lineStart(),n!==h&&(m=c(e,p),(jc(e,m)||jc(p,m))&&(p[0]+=N,p[1]+=N,n=b(p[0],p[1]))),n!==h)ba=0,n?(a.lineStart(),m=c(p,e),a.point(m[0],m[1])):(m=c(e,p),a.point(m[0],m[1]),a.lineEnd()),e=m;else if(g&&e&&f^n){var s;q&A||!(s=c(p,e,!0))||(ba=0,f?(a.lineStart(),a.point(s[0][0],s[0][1]),a.point(s[1][0],s[1][1]),a.lineEnd()):(a.point(s[1][0],s[1][1]),a.lineEnd(),
a.lineStart(),a.point(s[0][0],s[0][1])))}!n||e&&jc(e,p)||a.point(p[0],p[1]);e=p;h=n;A=q},lineEnd:function(){h&&a.lineEnd();e=null},clean:function(){return ba|(k&&h)<<1}}},h,f?[0,-a]:[-W,a-W])}function xe(a,b,c,d){return function(e){var f,g=e.a,h=e.b,k=g.x,g=g.y,l=0,da=1,m=h.x-k,h=h.y-g;if(f=a-k,m||!(0<f)){if(f/=m,0>m){if(l>f)return;da>f&&(da=f)}else if(0<m){if(f>da)return;f>l&&(l=f)}if(f=c-k,m||!(0>f)){if(f/=m,0>m){if(f>da)return;f>l&&(l=f)}else if(0<m){if(l>f)return;da>f&&(da=f)}if(f=b-g,h||!(0<
f)){if(f/=h,0>h){if(l>f)return;da>f&&(da=f)}else if(0<h){if(f>da)return;f>l&&(l=f)}if(f=d-g,h||!(0>f)){if(f/=h,0>h){if(f>da)return;f>l&&(l=f)}else if(0<h){if(l>f)return;da>f&&(da=f)}return 0<l&&(e.a={x:k+l*m,y:g+l*h}),1>da&&(e.b={x:k+da*m,y:g+da*h}),e}}}}}}function ye(a,b,c,d){function e(d,f){return $(d[0]-a)<N?0<f?0:3:$(d[0]-c)<N?0<f?2:1:$(d[1]-b)<N?0<f?1:0:0<f?3:2}function f(a,b){return g(a.x,b.x)}function g(a,b){var c=e(a,1),d=e(b,1);return c!==d?c-d:0===c?b[1]-a[1]:1===c?a[0]-b[0]:2===c?a[1]-
b[1]:b[0]-a[0]}return function(h){function k(f,h,ca,ua){var l=0,Db=0;if(null==f||(l=e(f,ca))!==(Db=e(h,ca))||0>g(f,h)^0<ca){do ua.point(0===l||3===l?a:c,1<l?d:b);while((l=(l+ca+4)%4)!==Db)}else ua.point(h[0],h[1])}function l(e,f){e>=a&&(c>=e&&f>=b&&d>=f)&&h.point(e,f)}function da(e,f){e=Math.max(-lc,Math.min(lc,e));f=Math.max(-lc,Math.min(lc,f));var g=e>=a&&c>=e&&f>=b&&d>=f;if(L&&n.push([e,f]),u)q=e,s=f,r=g,u=!1,g&&(h.lineStart(),h.point(e,f));else if(g&&aa)h.point(e,f);else{var ca={a:{x:t,y:w},b:{x:e,
y:f}};x(ca)?(aa||(h.lineStart(),h.point(ca.a.x,ca.a.y)),h.point(ca.b.x,ca.b.y),g||h.lineEnd(),v=!1):g&&(h.lineStart(),h.point(e,f),v=!1)}t=e;w=f;aa=g}var m,L,n,q,s,r,t,w,aa,u,v,y=h,z=we(),x=xe(a,b,c,d),B={point:l,lineStart:function(){B.point=da;L&&L.push(n=[]);u=!0;aa=!1;t=w=0/0},lineEnd:function(){m&&(da(q,s),r&&aa&&z.rejoin(),m.push(z.buffer()));B.point=l;aa&&h.lineEnd()},polygonStart:function(){h=z;m=[];L=[];v=!0},polygonEnd:function(){h=y;m=p.merge(m);var b;b=[a,d];for(var c=0,e=L.length,J=b[1],
R=0;e>R;++R)for(var g,ba=1,l=L[R],xa=l.length,wa=l[0];xa>ba;++ba)g=l[ba],wa[1]<=J?g[1]>J&&0<I(wa,g,b)&&++c:g[1]<=J&&0>I(wa,g,b)&&--c,wa=g;b=0!==c;c=v&&b;e=m.length;(c||e)&&(h.polygonStart(),c&&(h.lineStart(),k(null,null,1,h),h.lineEnd()),e&&te(m,f,b,k,h),h.polygonEnd());m=L=n=null}};return B}}function ze(a,b){function c(d,e){return d=a(d,e),b(d[0],d[1])}return a.invert&&b.invert&&(c.invert=function(c,d){return c=b.invert(c,d),c&&a.invert(c[0],c[1])}),c}function jd(a){var b=0,c=W/3,d=kd(a);a=d(b,c);
return a.parallels=function(a){return arguments.length?d(b=a[0]*W/180,c=a[1]*W/180):[180*(b/W),180*(c/W)]},a}function Ae(a,b){function c(a,b){var d=Math.sqrt(f-2*e*Math.sin(b))/e;return[d*Math.sin(a*=e),g-d*Math.cos(a)]}var d=Math.sin(a),e=(d+Math.sin(b))/2,f=1+d*(2*e-d),g=Math.sqrt(f)/e;return c.invert=function(a,b){var c=g-b;return[Math.atan2(a,c)/e,Z((f-(a*a+c*c)*e*e)/(2*e))]},c}function Og(){function a(b,c){mc+=e*b-d*c;d=b;e=c}var b,c,d,e;db.point=function(f,g){db.point=a;b=d=f;c=e=g};db.lineEnd=
function(){a(b,c)}}function Pg(){function a(b,c){g.push("M",b,",",c,f)}function b(a,d){g.push("M",a,",",d);h.point=c}function c(a,b){g.push("L",a,",",b)}function d(){h.point=a}function e(){g.push("Z")}var f=Be(4.5),g=[],h={point:a,lineStart:function(){h.point=b},lineEnd:d,polygonStart:function(){h.lineEnd=e},polygonEnd:function(){h.lineEnd=d;h.point=a},pointRadius:function(a){return f=Be(a),h},result:function(){if(g.length){var a=g.join("");return g=[],a}}};return h}function Be(a){return"m0,"+a+"a"+
a+","+a+" 0 1,1 0,"+-2*a+"a"+a+","+a+" 0 1,1 0,"+2*a+"z"}function lb(a,b){Va+=a;Wa+=b;++Qa}function Ce(){function a(d,e){var A=d-b,f=e-c,A=Math.sqrt(A*A+f*f);Ia+=A*(b+d)/2;Ja+=A*(c+e)/2;Ea+=A;lb(b=d,c=e)}var b,c;Ma.point=function(d,e){Ma.point=a;lb(b=d,c=e)}}function De(){Ma.point=lb}function Qg(){function a(b,c){var A=b-d,f=c-e,A=Math.sqrt(A*A+f*f);Ia+=A*(d+b)/2;Ja+=A*(e+c)/2;Ea+=A;A=e*b-d*c;bb+=A*(d+b);cb+=A*(e+c);Ra+=3*A;lb(d=b,e=c)}var b,c,d,e;Ma.point=function(f,g){Ma.point=a;lb(b=d=f,c=e=g)};
Ma.lineEnd=function(){a(b,c)}}function Rg(a){function b(c,d){a.moveTo(c,d);a.arc(c,d,g,0,Ga)}function c(b,e){a.moveTo(b,e);h.point=d}function d(b,c){a.lineTo(b,c)}function e(){h.point=b}function f(){a.closePath()}var g=4.5,h={point:b,lineStart:function(){h.point=c},lineEnd:e,polygonStart:function(){h.lineEnd=f},polygonEnd:function(){h.lineEnd=e;h.point=b},pointRadius:function(a){return g=a,h},result:n};return h}function Ee(a){function b(a){return(h?d:c)(a)}function c(b){return Fe(b,function(c,d){c=
a(c,d);b.point(c[0],c[1])})}function d(b){function c(d,e){d=a(d,e);b.point(d[0],d[1])}function f(){s=0/0;v.point=J;b.lineStart()}function J(c,d){var f=kb([c,d]),R=a(c,d);e(s,r,q,t,w,u,s=R[0],r=R[1],q=c,t=f[0],w=f[1],u=f[2],h,b);b.point(s,r)}function R(){v.point=c;b.lineEnd()}function g(){f();v.point=ga;v.lineEnd=k}function ga(a,b){J(ca=a,b);l=s;xa=r;m=t;p=w;n=u;v.point=J}function k(){e(s,r,q,t,w,u,l,xa,ca,m,p,n,h,b);v.lineEnd=R;R()}var ca,l,xa,m,p,n,q,s,r,t,w,u,v={point:c,lineStart:f,lineEnd:R,polygonStart:function(){b.polygonStart();
v.lineStart=g},polygonEnd:function(){b.polygonEnd();v.lineStart=f}};return v}function e(b,c,d,J,R,h,ga,k,l,ua,m,p,n,q){var s=ga-b,r=k-c,t=s*s+r*r;if(t>4*f&&n--){var w=J+ua,u=R+m,v=h+p,z=Math.sqrt(w*w+u*u+v*v),y=Math.asin(v/=z),x=$($(v)-1)<N||$(d-l)<N?(d+l)/2:Math.atan2(u,w),B=a(x,y),y=B[0],B=B[1],D=y-b,C=B-c,F=r*D-s*C;(F*F/t>f||0.3<$((s*D+r*C)/t-0.5)||g>J*ua+R*m+h*p)&&(e(b,c,d,J,R,h,y,B,x,w/=z,u/=z,v,n,q),q.point(y,B),e(y,B,x,w,u,v,ga,k,l,ua,m,p,n,q))}}var f=0.5,g=Math.cos(30*Y),h=16;return b.precision=
function(a){return arguments.length?(h=0<(f=a*a)&&16,b):Math.sqrt(f)},b}function Sg(a){var b=Ee(function(b,c){return a([b*ma,c*ma])});return function(a){return Ge(b(a))}}function He(a){this.stream=a}function Fe(a,b){return{point:b,sphere:function(){a.sphere()},lineStart:function(){a.lineStart()},lineEnd:function(){a.lineEnd()},polygonStart:function(){a.polygonStart()},polygonEnd:function(){a.polygonEnd()}}}function eb(a){return kd(function(){return a})()}function kd(a){function b(a){return a=h(a[0]*
Y,a[1]*Y),[a[0]*L+k,l-a[1]*L]}function c(a){return a=h.invert((a[0]-k)/L,(l-a[1])/L),a&&[a[0]*ma,a[1]*ma]}function d(){h=ze(g=ld(w,v,aa),f);var a=f(r,t);return k=q-a[0]*L,l=s+a[1]*L,e()}function e(){return m&&(m.valid=!1,m=null),b}var f,g,h,k,l,m,n=Ee(function(a,b){return a=f(a,b),[a[0]*L+k,l-a[1]*L]}),L=150,q=480,s=250,r=0,t=0,w=0,v=0,aa=0,u=Ie,y=va,z=null,B=null;return b.stream=function(a){return m&&(m.valid=!1),m=Ge(u(g,n(y(a)))),m.valid=!0,m},b.clipAngle=function(a){return arguments.length?(u=
null==a?(z=a,Ie):Ng((z=+a)*Y),e()):z},b.clipExtent=function(a){return arguments.length?(B=a,y=a?ye(a[0][0],a[0][1],a[1][0],a[1][1]):va,e()):B},b.scale=function(a){return arguments.length?(L=+a,d()):L},b.translate=function(a){return arguments.length?(q=+a[0],s=+a[1],d()):[q,s]},b.center=function(a){return arguments.length?(r=a[0]%360*Y,t=a[1]%360*Y,d()):[r*ma,t*ma]},b.rotate=function(a){return arguments.length?(w=a[0]%360*Y,v=a[1]%360*Y,aa=2<a.length?a[2]%360*Y:0,d()):[w*ma,v*ma,aa*ma]},p.rebind(b,
n,"precision"),function(){return f=a.apply(this,arguments),b.invert=f.invert&&c,d()}}function Ge(a){return Fe(a,function(b,c){a.point(b*Y,c*Y)})}function Ib(a,b){return[a,b]}function Je(a,b){return[a>W?a-Ga:-W>a?a+Ga:a,b]}function ld(a,b,c){return a?b||c?ze(Ke(a),Le(b,c)):Ke(a):b||c?Le(b,c):Je}function Me(a){return function(b,c){return b+=a,[b>W?b-Ga:-W>b?b+Ga:b,c]}}function Ke(a){var b=Me(a);return b.invert=Me(-a),b}function Le(a,b){function c(a,b){var A=Math.cos(b),J=Math.cos(a)*A,A=Math.sin(a)*
A,R=Math.sin(b),h=R*d+J*e;return[Math.atan2(A*f-h*g,J*d-R*e),Z(h*f+A*g)]}var d=Math.cos(a),e=Math.sin(a),f=Math.cos(b),g=Math.sin(b);return c.invert=function(a,b){var c=Math.cos(b),A=Math.cos(a)*c,c=Math.sin(a)*c,J=Math.sin(b),R=J*f-c*g;return[Math.atan2(c*f+J*g,A*d+R*e),Z(R*d-A*e)]},c}function id(a,b){var c=Math.cos(a),d=Math.sin(a);return function(e,f,g,h){var k=g*b;null!=e?(e=Ne(c,e),f=Ne(c,f),(0<g?f>e:e>f)&&(e+=g*Ga)):(e=a+g*Ga,f=a-0.5*k);for(var l;0<g?e>f:f>e;e-=k)h.point((l=ic([c,-d*Math.cos(e),
-d*Math.sin(e)]))[0],l[1])}}function Ne(a,b){var c=kb(b);c[0]-=a;hc(c);var d=1<-c[1]?0:-1>-c[1]?W:Math.acos(-c[1]);return((0>-c[2]?-d:d)+2*Math.PI-N)%(2*Math.PI)}function Oe(a,b,c){var d=p.range(a,b-N,c).concat(b);return function(a){return d.map(function(b){return[a,b]})}}function Pe(a,b,c){var d=p.range(a,b-N,c).concat(b);return function(a){return d.map(function(b){return[b,a]})}}function md(a){return a.source}function nd(a){return a.target}function Tg(a,b,c,d){var e=Math.cos(b),f=Math.sin(b),g=
Math.cos(d),h=Math.sin(d),k=e*Math.cos(a),l=e*Math.sin(a),m=g*Math.cos(c),p=g*Math.sin(c),L=2*Math.asin(Math.sqrt(pa(d-b)+e*g*pa(c-a))),n=1/Math.sin(L);c=L?function(a){var b=Math.sin(a*=L)*n,c=Math.sin(L-a)*n;a=c*k+b*m;var d=c*l+b*p,b=c*f+b*h;return[Math.atan2(d,a)*ma,Math.atan2(b,Math.sqrt(a*a+d*d))*ma]}:function(){return[a*ma,b*ma]};return c.distance=L,c}function Jb(a,b){function c(b,d){var e=Math.cos(b),f=Math.cos(d),e=a(e*f);return[e*f*Math.sin(b),e*Math.sin(d)]}return c.invert=function(a,c){var d=
Math.sqrt(a*a+c*c),e=b(d),A=Math.sin(e),e=Math.cos(e);return[Math.atan2(a*A,d*e),Math.asin(d&&c*A/d)]},c}function Qe(a,b){function c(a,b){var d=$($(b)-Ba)<N?0:f/Math.pow(Math.tan(W/4+b/2),e);return[d*Math.sin(e*a),f-d*Math.cos(e*a)]}var d=Math.cos(a),e=a===b?Math.sin(a):Math.log(d/Math.cos(b))/Math.log(Math.tan(W/4+b/2)/Math.tan(W/4+a/2)),f=d*Math.pow(Math.tan(W/4+a/2),e)/e;return e?(c.invert=function(a,b){var c=f-b,d=(0<e?1:0>e?-1:0)*Math.sqrt(a*a+c*c);return[Math.atan2(a,c)/e,2*Math.atan(Math.pow(f/
d,1/e))-Ba]},c):nc}function Re(a,b){function c(a,b){var d=f-b;return[d*Math.sin(e*a),f-d*Math.cos(e*a)]}var d=Math.cos(a),e=a===b?Math.sin(a):(d-Math.cos(b))/(b-a),f=d/e+a;return $(e)<N?Ib:(c.invert=function(a,b){var c=f-b;return[Math.atan2(a,c)/e,f-(0<e?1:0>e?-1:0)*Math.sqrt(a*a+c*c)]},c)}function nc(a,b){return[a,Math.log(Math.tan(W/4+b/2))]}function Se(a){var b,c=eb(a),d=c.scale,e=c.translate,f=c.clipExtent;return c.scale=function(){var a=d.apply(c,arguments);return a===c?b?c.clipExtent(null):
c:a},c.translate=function(){var a=e.apply(c,arguments);return a===c?b?c.clipExtent(null):c:a},c.clipExtent=function(a){var A=f.apply(c,arguments);if(A===c){if(b=null==a){var g=W*d(),h=e();f([[h[0]-g,h[1]-g],[h[0]+g,h[1]+g]])}}else b&&(A=null);return A},c.clipExtent(null)}function od(a,b){return[Math.log(Math.tan(W/4+b/2)),-a]}function vb(a){return a[0]}function Kb(a){return a[1]}function Te(a){for(var b=a.length,c=[0,1],d=2,e=2;b>e;e++){for(;1<d&&0>=I(a[c[d-2]],a[c[d-1]],a[e]);)--d;c[d++]=e}return c.slice(0,
d)}function Ug(a,b){return a[0]-b[0]||a[1]-b[1]}function pd(a,b,c){return(c[0]-b[0])*(a[1]-b[1])<(c[1]-b[1])*(a[0]-b[0])}function Ue(a,b,c,d){var e=a[0],f=c[0],g=b[0]-e,h=d[0]-f;a=a[1];c=c[1];b=b[1]-a;d=d[1]-c;f=(h*(a-c)-d*(e-f))/(d*g-h*b);return[e+f*g,a+f*b]}function Ve(a){var b=a[0];a=a[a.length-1];return!(b[0]-a[0]||b[1]-a[1])}function Vg(){oc(this);this.edge=this.site=this.circle=null}function We(a){var b=Xe.pop()||new Vg;return b.site=a,b}function qd(a){wb(a);xb.remove(a);Xe.push(a);oc(a)}function Ye(a,
b){var c=a.site,d=c.x,e=c.y,f=e-b;if(!f)return d;var g=a.P;if(!g)return-1/0;var c=g.site,g=c.x,c=c.y,h=c-b;if(!h)return g;var k=g-d,l=1/f-1/h,m=k/h;return l?(-m+Math.sqrt(m*m-2*l*(k*k/(-2*h)-c+h/2+e-f/2)))/l+d:(d+g)/2}function Ze(a){this.site=a;this.edges=[]}function $e(a,b){return b.angle-a.angle}function Wg(){oc(this);this.x=this.y=this.arc=this.site=this.cy=null}function yb(a){var b=a.P,c=a.N;if(b&&c){var d=b.site,b=a.site,e=c.site;if(d!==e){var c=b.x,f=b.y,g=d.x-c,h=d.y-f,d=e.x-c,e=e.y-f,k=2*
(g*e-h*d);if(!(k>=-rd)){var l=g*g+h*h,m=d*d+e*e,h=(e*l-h*m)/k,g=(g*m-d*l)/k,e=g+f,f=af.pop()||new Wg;f.arc=a;f.site=b;f.x=h+c;f.y=e+Math.sqrt(h*h+g*g);f.cy=e;a.circle=f;a=null;for(b=Lb._;b;)if(f.y<b.y||f.y===b.y&&f.x<=b.x){if(!b.L){a=b.P;break}b=b.L}else{if(!b.R){a=b;break}b=b.R}Lb.insert(a,f);a||(sd=f)}}}}function wb(a){var b=a.circle;b&&(b.P||(sd=b.N),Lb.remove(b),af.push(b),oc(b),a.circle=null)}function Xg(a,b){var c=a.b;if(c)return!0;var d,e,f=a.a,c=b[0][0],g=b[1][0],h=b[0][1],k=b[1][1],l=a.l,
m=a.r,p=l.x,l=l.y,L=m.x,m=m.y;e=(p+L)/2;if(m===l){if(c>e||e>=g)return;if(p>L){if(f){if(f.y>=k)return}else f={x:e,y:h};c={x:e,y:k}}else{if(f){if(f.y<h)return}else f={x:e,y:k};c={x:e,y:h}}}else if(d=(p-L)/(m-l),e=(l+m)/2-d*e,-1>d||1<d)if(p>L){if(f){if(f.y>=k)return}else f={x:(h-e)/d,y:h};c={x:(k-e)/d,y:k}}else{if(f){if(f.y<h)return}else f={x:(k-e)/d,y:k};c={x:(h-e)/d,y:h}}else if(m>l){if(f){if(f.x>=g)return}else f={x:c,y:d*c+e};c={x:g,y:d*g+e}}else{if(f){if(f.x<c)return}else f={x:g,y:d*g+e};c={x:c,
y:d*c+e}}return a.a=f,a.b=c,!0}function bf(a,b){this.l=a;this.r=b;this.a=this.b=null}function Mb(a,b,c,d){var e=new bf(a,b);return zb.push(e),c&&pc(e,a,b,c),d&&pc(e,b,a,d),mb[a.i].edges.push(new qc(e,a,b)),mb[b.i].edges.push(new qc(e,b,a)),e}function Yg(a,b,c){a=new bf(a,null);return a.a=b,a.b=c,zb.push(a),a}function pc(a,b,c,d){a.a||a.b?a.l===c?a.b=d:a.a=d:(a.a=d,a.l=b,a.r=c)}function qc(a,b,c){var d=a.a,e=a.b;this.edge=a;this.site=b;this.angle=c?Math.atan2(c.y-b.y,c.x-b.x):a.l===b?Math.atan2(e.x-
d.x,d.y-e.y):Math.atan2(d.x-e.x,e.y-d.y)}function td(){this._=null}function oc(a){a.U=a.C=a.L=a.R=a.P=a.N=null}function Nb(a,b){var c=b.R,d=b.U;d?d.L===b?d.L=c:d.R=c:a._=c;c.U=d;b.U=c;b.R=c.L;b.R&&(b.R.U=b);c.L=b}function Ob(a,b){var c=b.L,d=b.U;d?d.L===b?d.L=c:d.R=c:a._=c;c.U=d;b.U=c;b.L=c.R;b.L&&(b.L.U=b);c.R=b}function cf(a){for(;a.L;)a=a.L;return a}function ud(a,b){var c,d,e,f=a.sort(Zg).pop();zb=[];mb=Array(a.length);xb=new td;for(Lb=new td;;)if(e=sd,f&&(!e||f.y<e.y||f.y===e.y&&f.x<e.x)){if(f.x!==
c||f.y!==d){mb[f.i]=new Ze(f);c=f;for(var g=d=void 0,h=void 0,k=void 0,l=c.x,m=c.y,p=xb._;p;)if(h=Ye(p,m)-l,h>N)p=p.L;else{var L=l,n;var q=p;n=m;var s=q.N;s?n=Ye(s,n):(q=q.site,n=q.y===n?q.x:1/0);if(k=L-n,!(k>N)){h>-N?(d=p.P,g=p):k>-N?(d=p,g=p.N):d=g=p;break}if(!p.R){d=p;break}p=p.R}h=We(c);if(xb.insert(d,h),d||g)if(d===g)wb(d),g=We(d.site),xb.insert(h,g),h.edge=g.edge=Mb(d.site,h.site),yb(d),yb(g);else if(g){wb(d);wb(g);k=d.site;m=k.x;p=k.y;L=c.x-m;n=c.y-p;var l=g.site,q=l.x-m,s=l.y-p,r=2*(L*s-n*
q),t=L*L+n*n,w=q*q+s*s,m={x:(s*t-n*w)/r+m,y:(L*w-q*t)/r+p};pc(g.edge,k,l,m);h.edge=Mb(k,c,null,m);g.edge=Mb(c,l,null,m);yb(d);yb(g)}else h.edge=Mb(d.site,h.site);c=f.x;d=f.y}f=a.pop()}else{if(!e)break;l=e.arc;g=l.circle;k=g.x;m=g.cy;g={x:k,y:m};L=l.P;p=l.N;h=[l];qd(l);for(l=L;l.circle&&$(k-l.circle.x)<N&&$(m-l.circle.cy)<N;)L=l.P,h.unshift(l),qd(l),l=L;h.unshift(l);wb(l);for(L=p;L.circle&&$(k-L.circle.x)<N&&$(m-L.circle.cy)<N;)p=L.N,h.push(L),qd(L),L=p;h.push(L);wb(L);k=void 0;m=h.length;for(k=1;m>
k;++k)L=h[k],l=h[k-1],pc(L.edge,l.site,L.site,g);l=h[0];L=h[m-1];L.edge=Mb(l.site,L.site,null,g);yb(l);yb(L)}if(b){f=zb;c=xe(b[0][0],b[0][1],b[1][0],b[1][1]);for(d=f.length;d--;)e=f[d],(!Xg(e,b)||!c(e)||$(e.a.x-e.b.x)<N&&$(e.a.y-e.b.y)<N)&&(e.a=e.b=null,f.splice(d,1));var aa,l=b[0][0],m=b[1][0],p=b[0][1],L=b[1][1];n=mb;for(q=n.length;q--;)if(aa=n[q],aa&&aa.prepare()){g=aa.edges;h=g.length;for(d=0;h>d;)k=g[d].end(),f=k.x,c=k.y,s=g[++d%h].start(),e=s.x,s=s.y,($(f-e)>N||$(c-s)>N)&&(g.splice(d,0,new qc(Yg(aa.site,
k,$(f-l)<N&&L-c>N?{x:l,y:$(e-l)<N?s:L}:$(c-L)<N&&m-f>N?{x:$(s-L)<N?e:m,y:L}:$(f-m)<N&&c-p>N?{x:m,y:$(e-m)<N?s:p}:$(c-p)<N&&f-l>N?{x:$(s-p)<N?e:l,y:p}:null),aa.site,null)),++h)}}aa={cells:mb,edges:zb};return xb=Lb=zb=mb=null,aa}function Zg(a,b){return b.y-a.y||b.x-a.x}function $g(a){return a.x}function ah(a){return a.y}function df(){return{leaf:!0,nodes:[],point:null,x:null,y:null}}function Pb(a,b,c,d,e,f){if(!a(b,c,d,e,f)){var g=0.5*(c+e),h=0.5*(d+f);b=b.nodes;b[0]&&Pb(a,b[0],c,d,g,h);b[1]&&Pb(a,
b[1],g,d,e,h);b[2]&&Pb(a,b[2],c,h,g,f);b[3]&&Pb(a,b[3],g,h,e,f)}}function vd(a,b){a=p.rgb(a);b=p.rgb(b);var c=a.r,d=a.g,e=a.b,f=b.r-c,g=b.g-d,h=b.b-e;return function(a){return"#"+rb(Math.round(c+f*a))+rb(Math.round(d+g*a))+rb(Math.round(e+h*a))}}function ef(a,b){var c,d={},e={};for(c in a)c in b?d[c]=nb(a[c],b[c]):e[c]=a[c];for(c in b)c in a||(e[c]=b[c]);return function(a){for(c in d)e[c]=d[c](a);return e}}function Xa(a,b){return b-=a=+a,function(c){return a+b*c}}function ff(a,b){var c,d,e,f,g=0,
h=[],k=[];a+="";b+="";for(d=rc.lastIndex=0;c=rc.exec(b);++d)c.index&&h.push(b.substring(g,c.index)),k.push({i:h.length,x:c[0]}),h.push(null),g=rc.lastIndex;g<b.length&&h.push(b.substring(g));d=0;for(e=k.length;(c=rc.exec(a))&&e>d;++d)if(f=k[d],f.x==c[0]){if(f.i)if(null==h[f.i+1]){h[f.i-1]+=f.x;h.splice(f.i,1);for(c=d+1;e>c;++c)k[c].i--}else{h[f.i-1]+=f.x+h[f.i+1];h.splice(f.i,2);for(c=d+1;e>c;++c)k[c].i-=2}else if(null==h[f.i+1])h[f.i]=f.x;else{h[f.i]=f.x+h[f.i+1];h.splice(f.i+1,1);for(c=d+1;e>c;++c)k[c].i--}k.splice(d,
1);e--;d--}else f.x=Xa(parseFloat(c[0]),parseFloat(f.x));for(;e>d;)f=k.pop(),null==h[f.i+1]?h[f.i]=f.x:(h[f.i]=f.x+h[f.i+1],h.splice(f.i+1,1)),e--;return 1===h.length?null==h[0]?(f=k[0].x,function(a){return f(a)+""}):function(){return b}:function(a){for(d=0;e>d;++d)h[(f=k[d]).i]=f.x(a);return h.join("")}}function nb(a,b){for(var c,d=p.interpolators.length;0<=--d&&!(c=p.interpolators[d](a,b)););return c}function sc(a,b){var c,d=[],e=[],f=a.length,g=b.length,h=Math.min(a.length,b.length);for(c=0;h>
c;++c)d.push(nb(a[c],b[c]));for(;f>c;++c)e[c]=a[c];for(;g>c;++c)e[c]=b[c];return function(a){for(c=0;h>c;++c)e[c]=d[c](a);return e}}function bh(a){return function(b){return 0>=b?0:1<=b?1:a(b)}}function gf(a){return function(b){return 1-a(1-b)}}function hf(a){return function(b){return 0.5*(0.5>b?a(2*b):2-a(2-2*b))}}function ch(a){return a*a}function dh(a){return a*a*a}function eh(a){if(0>=a)return 0;if(1<=a)return 1;var b=a*a,c=b*a;return 4*(0.5>a?c:3*(a-b)+c-0.75)}function fh(a){return 1-Math.cos(a*
Ba)}function gh(a){return Math.pow(2,10*(a-1))}function hh(a){return 1-Math.sqrt(1-a*a)}function ih(a){return 1/2.75>a?7.5625*a*a:2/2.75>a?7.5625*(a-=1.5/2.75)*a+0.75:2.5/2.75>a?7.5625*(a-=2.25/2.75)*a+0.9375:7.5625*(a-=2.625/2.75)*a+0.984375}function jf(a,b){return b-=a,function(c){return Math.round(a+b*c)}}function kf(a){var b=[a.a,a.b],c=[a.c,a.d],d=lf(b),e=b[0]*c[0]+b[1]*c[1],f=lf((c[0]+=-e*b[0],c[1]+=-e*b[1],c))||0;b[0]*c[1]<c[0]*b[1]&&(b[0]*=-1,b[1]*=-1,d*=-1,e*=-1);this.rotate=(d?Math.atan2(b[1],
b[0]):Math.atan2(-c[0],c[1]))*ma;this.translate=[a.e,a.f];this.scale=[d,f];this.skew=f?Math.atan2(e,f)*ma:0}function lf(a){var b=Math.sqrt(a[0]*a[0]+a[1]*a[1]);return b&&(a[0]/=b,a[1]/=b),b}function mf(a,b){var c,d=[],e=[],f=p.transform(a),g=p.transform(b),h=f.translate,k=g.translate,l=f.rotate,m=g.rotate,n=f.skew,L=g.skew,f=f.scale,g=g.scale;return h[0]!=k[0]||h[1]!=k[1]?(d.push("translate(",null,",",null,")"),e.push({i:1,x:Xa(h[0],k[0])},{i:3,x:Xa(h[1],k[1])})):k[0]||k[1]?d.push("translate("+k+
")"):d.push(""),l!=m?(180<l-m?m+=360:180<m-l&&(l+=360),e.push({i:d.push(d.pop()+"rotate(",null,")")-2,x:Xa(l,m)})):m&&d.push(d.pop()+"rotate("+m+")"),n!=L?e.push({i:d.push(d.pop()+"skewX(",null,")")-2,x:Xa(n,L)}):L&&d.push(d.pop()+"skewX("+L+")"),f[0]!=g[0]||f[1]!=g[1]?(c=d.push(d.pop()+"scale(",null,",",null,")"),e.push({i:c-4,x:Xa(f[0],g[0])},{i:c-2,x:Xa(f[1],g[1])})):(1!=g[0]||1!=g[1])&&d.push(d.pop()+"scale("+g+")"),c=e.length,function(a){for(var b,f=-1;++f<c;)d[(b=e[f]).i]=b.x(a);return d.join("")}}
function jh(a,b){return b=b-(a=+a)?1/(b-a):0,function(c){return(c-a)*b}}function kh(a,b){return b=b-(a=+a)?1/(b-a):0,function(c){return Math.max(0,Math.min(1,(c-a)*b))}}function lh(a){var b=a.source;a=a.target;var c;var d=a;if(b===d)c=b;else{c=nf(b);for(var d=nf(d),e=c.pop(),f=d.pop(),g=null;e===f;)g=e,e=c.pop(),f=d.pop();c=g}for(d=[b];b!==c;)b=b.parent,d.push(b);for(b=d.length;a!==c;)d.splice(b,0,a),a=a.parent;return d}function nf(a){for(var b=[],c=a.parent;null!=c;)b.push(a),a=c,c=c.parent;return b.push(a),
b}function mh(a){a.fixed|=2}function nh(a){a.fixed&=-7}function oh(a){a.fixed|=4;a.px=a.x;a.py=a.y}function ph(a){a.fixed&=-5}function of(a,b,c){var d=0,e=0;if(a.charge=0,!a.leaf)for(var f,g=a.nodes,h=g.length,k=-1;++k<h;)f=g[k],null!=f&&(of(f,b,c),a.charge+=f.charge,d+=f.charge*f.cx,e+=f.charge*f.cy);a.point&&(a.leaf||(a.point.x+=Math.random()-0.5,a.point.y+=Math.random()-0.5),b*=c[a.point.index],a.charge+=a.pointCharge=b,d+=b*a.point.x,e+=b*a.point.y);a.cx=d/a.charge;a.cy=e/a.charge}function Qb(a,
b){return p.rebind(a,b,"sort","children","value"),a.nodes=a,a.links=qh,a}function rh(a){return a.children}function sh(a){return a.value}function th(a,b){return b.value-a.value}function qh(a){return p.merge(a.map(function(a){return(a.children||[]).map(function(b){return{source:a,target:b}})}))}function uh(a){return a.x}function vh(a){return a.y}function wh(a,b,c){a.y0=b;a.y=c}function wd(a){return p.range(a.length)}function xd(a){var b=-1;a=a[0].length;for(var c=[];++b<a;)c[b]=0;return c}function xh(a){for(var b,
c=1,d=0,e=a[0][1],f=a.length;f>c;++c)(b=a[c][1])>e&&(d=c,e=b);return d}function yh(a){return a.reduce(zh,0)}function zh(a,b){return a+b[1]}function Ah(a,b){return pf(a,Math.ceil(Math.log(b.length)/Math.LN2+1))}function pf(a,b){for(var c=-1,d=+a[0],e=(a[1]-d)/b,f=[];++c<=b;)f[c]=e*c+d;return f}function Bh(a){return[p.min(a),p.max(a)]}function qf(a,b){return a.parent==b.parent?1:2}function yd(a){var b=a.children;return b&&b.length?b[0]:a._tree.thread}function zd(a){var b,c=a.children;return c&&(b=c.length)?
c[b-1]:a._tree.thread}function tc(a,b){var c=a.children;if(c&&(e=c.length))for(var d,e,f=-1;++f<e;)0<b(d=tc(c[f],b),a)&&(a=d);return a}function Ch(a,b){return a.x-b.x}function Dh(a,b){return b.x-a.x}function Eh(a,b){return a.depth-b.depth}function Ya(a,b){function c(a,d){var e=a.children;if(e&&(A=e.length))for(var f,A,g=null,h=-1;++h<A;)f=e[h],c(f,g),g=f;b(a,d)}c(a,null)}function Fh(a,b){return a.value-b.value}function Ad(a,b){var c=a._pack_next;a._pack_next=b;b._pack_prev=a;b._pack_next=c;c._pack_prev=
b}function rf(a,b){a._pack_next=b;b._pack_prev=a}function sf(a,b){var c=b.x-a.x,d=b.y-a.y,e=a.r+b.r;return 0.999*e*e>c*c+d*d}function tf(a){function b(a){m=Math.min(a.x-a.r,m);p=Math.max(a.x+a.r,p);n=Math.min(a.y-a.r,n);q=Math.max(a.y+a.r,q)}if((c=a.children)&&(l=c.length)){var c,d,e,f,g,h,k,l,m=1/0,p=-1/0,n=1/0,q=-1/0;if(c.forEach(Gh),d=c[0],d.x=-d.r,d.y=0,b(d),1<l&&(e=c[1],e.x=e.r,e.y=0,b(e),2<l)){f=c[2];uf(d,e,f);b(f);Ad(d,f);d._pack_prev=f;Ad(f,e);e=d._pack_next;for(g=3;l>g;g++){uf(d,e,f=c[g]);
var s=0,r=1,t=1;for(h=e._pack_next;h!==e;h=h._pack_next,r++)if(sf(h,f)){s=1;break}if(1==s)for(k=d._pack_prev;k!==h._pack_prev&&!sf(k,f);k=k._pack_prev,t++);s?(t>r||r==t&&e.r<d.r?rf(d,e=h):rf(d=k,e),g--):(Ad(d,f),e=f,b(f))}}d=(m+p)/2;e=(n+q)/2;for(g=h=0;l>g;g++)f=c[g],f.x-=d,f.y-=e,h=Math.max(h,f.r+Math.sqrt(f.x*f.x+f.y*f.y));a.r=h;c.forEach(Hh)}}function Gh(a){a._pack_next=a._pack_prev=a}function Hh(a){delete a._pack_next;delete a._pack_prev}function vf(a,b,c,d){var e=a.children;if(a.x=b+=d*a.x,a.y=
c+=d*a.y,a.r*=d,e){a=-1;for(var f=e.length;++a<f;)vf(e[a],b,c,d)}}function uf(a,b,c){var d=a.r+c.r,e=b.x-a.x,f=b.y-a.y;if(d&&(e||f)){var g=b.r+c.r,h=e*e+f*f,g=g*g,d=d*d;b=0.5+(d-g)/(2*h);g=Math.sqrt(Math.max(0,2*g*(d+h)-(d-=h)*d-g*g))/(2*h);c.x=a.x+b*e+g*f;c.y=a.y+b*f-g*e}else c.x=a.x+d,c.y=a.y}function Ih(a){return 1+p.max(a,function(a){return a.y})}function Jh(a){return a.reduce(function(a,b){return a+b.x},0)/a.length}function wf(a){var b=a.children;return b&&b.length?wf(b[0]):a}function xf(a){var b,
c=a.children;return c&&(b=c.length)?xf(c[b-1]):a}function Bd(a){return{x:a.x,y:a.y,dx:a.dx,dy:a.dy}}function yf(a,b){var c=a.x+b[3],d=a.y+b[0],e=a.dx-b[1]-b[3],f=a.dy-b[0]-b[2];return 0>e&&(c+=e/2,e=0),0>f&&(d+=f/2,f=0),{x:c,y:d,dx:e,dy:f}}function Ab(a){var b=a[0];a=a[a.length-1];return a>b?[b,a]:[a,b]}function uc(a){return a.rangeExtent?a.rangeExtent():Ab(a.range())}function Kh(a,b,c,d){var e=c(a[0],a[1]),f=d(b[0],b[1]);return function(a){return f(e(a))}}function vc(a,b){var c,d=0,e=a.length-1,
f=a[d],g=a[e];return f>g&&(c=d,d=e,e=c,c=f,f=g,g=c),a[d]=b.floor(f),a[e]=b.ceil(g),a}function zf(a){return a?{floor:function(b){return Math.floor(b/a)*a},ceil:function(b){return Math.ceil(b/a)*a}}:Lh}function Mh(a,b,c,d){var e=[],f=[],g=0,h=Math.min(a.length,b.length)-1;for(a[h]<a[0]&&(a=a.slice().reverse(),b=b.slice().reverse());++g<=h;)e.push(c(a[g-1],a[g])),f.push(d(b[g-1],b[g]));return function(b){var c=p.bisect(a,b,1,h)-1;return f[c](e[c](b))}}function Af(a,b,c,d){function e(){var k=2<Math.min(a.length,
b.length)?Mh:Kh,l=d?kh:jh;return g=k(a,b,l,c),h=k(b,a,l,nb),f}function f(a){return g(a)}var g,h;return f.invert=function(a){return h(a)},f.domain=function(b){return arguments.length?(a=b.map(Number),e()):a},f.range=function(a){return arguments.length?(b=a,e()):b},f.rangeRound=function(a){return f.range(a).interpolate(jf)},f.clamp=function(a){return arguments.length?(d=a,e()):d},f.interpolate=function(a){return arguments.length?(c=a,e()):c},f.ticks=function(b){return p.range.apply(p,fb(a,b))},f.tickFormat=
function(b,c){return Cd(a,b,c)},f.nice=function(b){return vc(a,zf(fb(a,b)[2])),e()},f.copy=function(){return Af(a,b,c,d)},e()}function Dd(a,b){return p.rebind(a,b,"range","rangeRound","interpolate","clamp")}function fb(a,b){null==b&&(b=10);var c=Ab(a),d=c[1]-c[0],e=Math.pow(10,Math.floor(Math.log(d/b)/Math.LN10)),d=b/d*e;return 0.15>=d?e*=10:0.35>=d?e*=5:0.75>=d&&(e*=2),c[0]=Math.ceil(c[0]/e)*e,c[1]=Math.floor(c[1]/e)*e+0.5*e,c[2]=e,c}function Cd(a,b,c){var d=fb(a,b);return p.format(c?c.replace(ie,
function(a,b,c,e,f,A,g,h,k,J){return[b,c,e,f,A,g,h,k||"."+Nh(J,d),J].join("")}):",."+Ed(d[2])+"f")}function Ed(a){return-Math.floor(Math.log(a)/Math.LN10+0.01)}function Nh(a,b){var c=Ed(b[2]);return a in Oh?Math.abs(c-Ed(Math.max(Math.abs(b[0]),Math.abs(b[1]))))+ +("e"!==a):c-2*("%"===a)}function Bf(a,b,c,d){function e(a){return(c?Math.log(0>a?0:a):-Math.log(0<a?0:-a))/Math.log(b)}function f(a){return c?Math.pow(b,a):-Math.pow(b,-a)}function g(b){return a(e(b))}return g.invert=function(b){return f(a.invert(b))},
g.domain=function(b){return arguments.length?(c=0<=b[0],a.domain((d=b.map(Number)).map(e)),g):d},g.base=function(c){return arguments.length?(b=+c,a.domain(d.map(e)),g):b},g.nice=function(){var b=vc(d.map(e),c?Math:Ph);return a.domain(b),d=b.map(f),g},g.ticks=function(){var a=Ab(d),A=[],g=a[0],a=a[1],h=Math.floor(e(g)),k=Math.ceil(e(a)),l=b%1?2:b;if(isFinite(k-h)){if(c){for(;k>h;h++)for(var m=1;l>m;m++)A.push(f(h)*m);A.push(f(h))}else for(A.push(f(h));h++<k;)for(m=l-1;0<m;m--)A.push(f(h)*m);for(h=
0;A[h]<g;h++);for(k=A.length;A[k-1]>a;k--);A=A.slice(h,k)}return A},g.tickFormat=function(a,b){if(!arguments.length)return Cf;2>arguments.length?b=Cf:"function"!=typeof b&&(b=p.format(b));var d,A=Math.max(0.1,a/g.ticks().length),h=c?(d=1E-12,Math.ceil):(d=-1E-12,Math.floor);return function(a){return a/f(h(e(a)+d))<=A?b(a):""}},g.copy=function(){return Bf(a.copy(),b,c,d)},Dd(g,a)}function Df(a,b,c){function d(b){return a(e(b))}var e=wc(b),f=wc(1/b);return d.invert=function(b){return f(a.invert(b))},
d.domain=function(b){return arguments.length?(a.domain((c=b.map(Number)).map(e)),d):c},d.ticks=function(a){return p.range.apply(p,fb(c,a))},d.tickFormat=function(a,b){return Cd(c,a,b)},d.nice=function(a){return d.domain(vc(c,zf(fb(c,a)[2])))},d.exponent=function(g){return arguments.length?(e=wc(b=g),f=wc(1/b),a.domain(c.map(e)),d):b},d.copy=function(){return Df(a.copy(),b,c)},Dd(d,a)}function wc(a){return function(b){return 0>b?-Math.pow(-b,a):Math.pow(b,a)}}function Ef(b,c){function d(a){return g[((f.get(a)||
"range"===c.t&&f.set(a,b.push(a)))-1)%g.length]}function e(a,c){return p.range(b.length).map(function(b){return a+c*b})}var f,g,h;return d.domain=function(e){if(!arguments.length)return b;b=[];f=new a;for(var g,h=-1,k=e.length;++h<k;)f.has(g=e[h])||f.set(g,b.push(g));return d[c.t].apply(d,c.a)},d.range=function(a){return arguments.length?(g=a,h=0,c={t:"range",a:arguments},d):g},d.rangePoints=function(a,f){2>arguments.length&&(f=0);var k=a[0],l=a[1],ba=(l-k)/(Math.max(1,b.length-1)+f);return g=e(2>
b.length?(k+l)/2:k+ba*f/2,ba),h=0,c={t:"rangePoints",a:arguments},d},d.rangeBands=function(a,f,k){2>arguments.length&&(f=0);3>arguments.length&&(k=f);var l=a[1]<a[0],ba=a[l-0],m=(a[1-l]-ba)/(b.length-f+2*k);return g=e(ba+m*k,m),l&&g.reverse(),h=m*(1-f),c={t:"rangeBands",a:arguments},d},d.rangeRoundBands=function(a,f,k){2>arguments.length&&(f=0);3>arguments.length&&(k=f);var l=a[1]<a[0],ba=a[l-0],m=a[1-l],p=Math.floor((m-ba)/(b.length-f+2*k));return g=e(ba+Math.round((m-ba-(b.length-f)*p)/2),p),l&&
g.reverse(),h=Math.round(p*(1-f)),c={t:"rangeRoundBands",a:arguments},d},d.rangeBand=function(){return h},d.rangeExtent=function(){return Ab(c.a[0])},d.copy=function(){return Ef(b,c)},d.domain(b)}function Ff(a,b){function c(){var f=0,g=b.length;for(e=[];++f<g;)e[f-1]=p.quantile(a,f/g);return d}function d(a){return isNaN(a=+a)?void 0:b[p.bisect(e,a)]}var e;return d.domain=function(b){return arguments.length?(a=b.filter(function(a){return!isNaN(a)}).sort(p.ascending),c()):a},d.range=function(a){return arguments.length?
(b=a,c()):b},d.quantiles=function(){return e},d.invertExtent=function(c){return c=b.indexOf(c),0>c?[0/0,0/0]:[0<c?e[c-1]:a[0],c<e.length?e[c]:a[a.length-1]]},d.copy=function(){return Ff(a,b)},c()}function Gf(a,b,c){function d(b){return c[Math.max(0,Math.min(g,Math.floor(f*(b-a))))]}function e(){return f=c.length/(b-a),g=c.length-1,d}var f,g;return d.domain=function(c){return arguments.length?(a=+c[0],b=+c[c.length-1],e()):[a,b]},d.range=function(a){return arguments.length?(c=a,e()):c},d.invertExtent=
function(b){return b=c.indexOf(b),b=0>b?0/0:b/f+a,[b,b+1/f]},d.copy=function(){return Gf(a,b,c)},e()}function Hf(a,b){function c(d){return d>=d?b[p.bisect(a,d)]:void 0}return c.domain=function(b){return arguments.length?(a=b,c):a},c.range=function(a){return arguments.length?(b=a,c):b},c.invertExtent=function(c){return c=b.indexOf(c),[a[c-1],a[c]]},c.copy=function(){return Hf(a,b)},c}function If(a){function b(a){return+a}return b.invert=b,b.domain=b.range=function(c){return arguments.length?(a=c.map(b),
b):a},b.ticks=function(b){return p.range.apply(p,fb(a,b))},b.tickFormat=function(b,c){return Cd(a,b,c)},b.copy=function(){return If(a)},b}function Qh(a){return a.innerRadius}function Rh(a){return a.outerRadius}function Jf(a){return a.startAngle}function Kf(a){return a.endAngle}function Lf(a){function b(g){function k(){l.push("M",f(a(m),h))}for(var J,l=[],m=[],p=-1,xa=g.length,n=ka(c),q=ka(d);++p<xa;)e.call(this,J=g[p],p)?m.push([+n.call(this,J,p),+q.call(this,J,p)]):m.length&&(k(),m=[]);return m.length&&
k(),l.length?l.join(""):null}var c=vb,d=Kb,e=ub,f=Ha,g=f.key,h=0.7;return b.x=function(a){return arguments.length?(c=a,b):c},b.y=function(a){return arguments.length?(d=a,b):d},b.defined=function(a){return arguments.length?(e=a,b):e},b.interpolate=function(a){return arguments.length?(g="function"==typeof a?f=a:(f=Fd.get(a)||Ha).key,b):g},b.tension=function(a){return arguments.length?(h=a,b):h},b}function Ha(a){return a.join("L")}function Gd(a){for(var b=0,c=a.length,d=a[0],e=[d[0],",",d[1]];++b<c;)e.push("V",
(d=a[b])[1],"H",d[0]);return e.join("")}function Hd(a){for(var b=0,c=a.length,d=a[0],e=[d[0],",",d[1]];++b<c;)e.push("H",(d=a[b])[0],"V",d[1]);return e.join("")}function xc(a,b){if(1>b.length||a.length!=b.length&&a.length!=b.length+2)return Ha(a);var c=a.length!=b.length,d="",e=a[0],f=a[1],g=b[0],h=g,k=1;if(c&&(d+="Q"+(f[0]-2*g[0]/3)+","+(f[1]-2*g[1]/3)+","+f[0]+","+f[1],e=a[1],k=2),1<b.length){h=b[1];f=a[k];k++;d+="C"+(e[0]+g[0])+","+(e[1]+g[1])+","+(f[0]-h[0])+","+(f[1]-h[1])+","+f[0]+","+f[1];
for(e=2;e<b.length;e++,k++)f=a[k],h=b[e],d+="S"+(f[0]-h[0])+","+(f[1]-h[1])+","+f[0]+","+f[1]}c&&(c=a[k],d+="Q"+(f[0]+2*h[0]/3)+","+(f[1]+2*h[1]/3)+","+c[0]+","+c[1]);return d}function Id(a,b){for(var c,d=[],e=(1-b)/2,f=a[0],g=a[1],h=1,k=a.length;++h<k;)c=f,f=g,g=a[h],d.push([e*(g[0]-c[0]),e*(g[1]-c[1])]);return d}function Mf(a){if(3>a.length)return Ha(a);var b=1,c=a.length,d=a[0],e=d[0],f=d[1],g=[e,e,e,(d=a[1])[0]],h=[f,f,f,d[1]],e=[e,",",f,"L",Ka(gb,g),",",Ka(gb,h)];for(a.push(a[c-1]);++b<=c;)d=
a[b],g.shift(),g.push(d[0]),h.shift(),h.push(d[1]),Jd(e,g,h);return a.pop(),e.push("L",d),e.join("")}function Ka(a,b){return a[0]*b[0]+a[1]*b[1]+a[2]*b[2]+a[3]*b[3]}function Jd(a,b,c){a.push("C",Ka(Nf,b),",",Ka(Nf,c),",",Ka(Of,b),",",Ka(Of,c),",",Ka(gb,b),",",Ka(gb,c))}function Kd(a,b){return(b[1]-a[1])/(b[0]-a[0])}function Pf(a){for(var b,c,d,e=-1,f=a.length;++e<f;)b=a[e],c=b[0],d=b[1]+ob,b[0]=c*Math.cos(d),b[1]=c*Math.sin(d);return a}function Qf(a){function b(k){function J(){s.push("M",h(a(aa),
p),m,l(a(r.reverse()),p),"Z")}for(var n,q,Db,s=[],r=[],aa=[],t=-1,w=k.length,v=ka(c),u=ka(e),y=c===d?function(){return q}:ka(d),z=e===f?function(){return Db}:ka(f);++t<w;)g.call(this,n=k[t],t)?(r.push([q=+v.call(this,n,t),Db=+u.call(this,n,t)]),aa.push([+y.call(this,n,t),+z.call(this,n,t)])):r.length&&(J(),r=[],aa=[]);return r.length&&J(),s.length?s.join(""):null}var c=vb,d=vb,e=0,f=Kb,g=ub,h=Ha,k=h.key,l=h,m="L",p=0.7;return b.x=function(a){return arguments.length?(c=d=a,b):d},b.x0=function(a){return arguments.length?
(c=a,b):c},b.x1=function(a){return arguments.length?(d=a,b):d},b.y=function(a){return arguments.length?(e=f=a,b):f},b.y0=function(a){return arguments.length?(e=a,b):e},b.y1=function(a){return arguments.length?(f=a,b):f},b.defined=function(a){return arguments.length?(g=a,b):g},b.interpolate=function(a){return arguments.length?(k="function"==typeof a?h=a:(h=Fd.get(a)||Ha).key,l=h.reverse||h,m=h.closed?"M":"L",b):k},b.tension=function(a){return arguments.length?(p=a,b):p},b}function Sh(a){return a.radius}
function Rf(a){return[a.x,a.y]}function Th(a){return function(){var b=a.apply(this,arguments),c=b[0],b=b[1]+ob;return[c*Math.cos(b),c*Math.sin(b)]}}function Uh(){return 64}function Vh(){return"circle"}function Sf(a){a=Math.sqrt(a/W);return"M0,"+a+"A"+a+","+a+" 0 1,1 0,"+-a+"A"+a+","+a+" 0 1,1 0,"+a+"Z"}function Rb(a,b){return Ub(a,ta),a.id=b,a}function Ld(a,b,c,d){var e=a.id;return U(a,"function"==typeof c?function(a,f,A){a.__transition__[e].tween.set(b,d(c.call(a,a.__data__,f,A)))}:(c=d(c),function(a){a.__transition__[e].tween.set(b,
c)}))}function Wh(a){return null==a&&(a=""),function(){this.textContent=a}}function yc(b,c,d,e){var f=b.__transition__||(b.__transition__={active:0,count:0}),g=f[d];if(!g){var h=e.time,g=f[d]={tween:new a,time:h,ease:e.ease,delay:e.delay,duration:e.duration};++f.count;p.timer(function(a){function e(a){return f.active>d?l():(f.active=d,g.event&&g.event.start.call(b,ga,c),g.tween.forEach(function(a,d){(d=d.call(b,ga,c))&&r.push(d)}),p.timer(function(){return s.c=k(a||1)?ub:k,1},0,h),void 0)}function k(a){if(f.active!==
d)return l();a/=q;for(var e=m(a),h=r.length;0<h;)r[--h].call(b,e);return 1<=a?(g.event&&g.event.end.call(b,ga,c),l()):void 0}function l(){return--f.count?delete f[d]:delete b.__transition__,1}var ga=b.__data__,m=g.ease,n=g.delay,q=g.duration,s=Ta,r=[];return s.t=n+h,a>=n?e(a-n):(s.c=e,void 0)},0,h)}}function Tf(a,b){a.attr("transform",function(a){return"translate("+b(a)+",0)"})}function Uf(a,b){a.attr("transform",function(a){return"translate(0,"+b(a)+")"})}function Md(a){return a.toISOString()}function Nd(a,
b,c){function d(b){return a(b)}function e(a,c){var d=(a[1]-a[0])/c,f=p.bisect(zc,d);return f==zc.length?[b.year,fb(a.map(function(a){return a/31536E6}),c)[2]]:f?b[d/zc[f-1]<zc[f]/d?f-1:f]:[Xh,fb(a,c)[2]]}return d.invert=function(b){return pb(a.invert(b))},d.domain=function(b){return arguments.length?(a.domain(b),d):a.domain().map(pb)},d.nice=function(a,b){function c(d){return!isNaN(d)&&!a.range(d,pb(+d+1),b).length}var f=d.domain(),A=Ab(f),A=null==a?e(A,10):"number"==typeof a&&e(A,a);return A&&(a=
A[0],b=A[1]),d.domain(vc(f,1<b?{floor:function(b){for(;c(b=a.floor(b));)b=pb(b-1);return b},ceil:function(b){for(;c(b=a.ceil(b));)b=pb(+b+1);return b}}:a))},d.ticks=function(a,b){var c=Ab(d.domain()),f=null==a?e(c,10):"number"==typeof a?e(c,a):!a.range&&[{range:a},b];return f&&(a=f[0],b=f[1]),a.range(c[0],pb(+c[1]+1),1>b?1:b)},d.tickFormat=function(){return c},d.copy=function(){return Nd(a.copy(),b,c)},Dd(d,a)}function pb(a){return new Date(a)}function Yh(a){return JSON.parse(a.responseText)}function Zh(a){var b=
Na.createRange();return b.selectNode(Na.body),b.createContextualFragment(a.responseText)}var p={version:"3.4.3"};Date.now||(Date.now=function(){return+new Date});var Vf=[].slice,$a=function(a){return Vf.call(a)},Na=document,ab=Na.documentElement,za=window;try{$a(ab.childNodes)[0].nodeType}catch(yi){$a=function(a){for(var b=a.length,c=Array(b);b--;)c[b]=a[b];return c}}try{Na.createElement("div").style.setProperty("opacity",0,"")}catch(zi){var Ac=za.Element.prototype,$h=Ac.setAttribute,ai=Ac.setAttributeNS,
Wf=za.CSSStyleDeclaration.prototype,bi=Wf.setProperty;Ac.setAttribute=function(a,b){$h.call(this,a,b+"")};Ac.setAttributeNS=function(a,b,c){ai.call(this,a,b,c+"")};Wf.setProperty=function(a,b,c){bi.call(this,a,b+"",c)}}p.ascending=function(a,b){return b>a?-1:a>b?1:a>=b?0:0/0};p.descending=function(a,b){return a>b?-1:b>a?1:b>=a?0:0/0};p.min=function(a,b){var c,d,e=-1,f=a.length;if(1===arguments.length){for(;++e<f&&!(null!=(c=a[e])&&c>=c);)c=void 0;for(;++e<f;)null!=(d=a[e])&&c>d&&(c=d)}else{for(;++e<
f&&!(null!=(c=b.call(a,a[e],e))&&c>=c);)c=void 0;for(;++e<f;)null!=(d=b.call(a,a[e],e))&&c>d&&(c=d)}return c};p.max=function(a,b){var c,d,e=-1,f=a.length;if(1===arguments.length){for(;++e<f&&!(null!=(c=a[e])&&c>=c);)c=void 0;for(;++e<f;)null!=(d=a[e])&&d>c&&(c=d)}else{for(;++e<f&&!(null!=(c=b.call(a,a[e],e))&&c>=c);)c=void 0;for(;++e<f;)null!=(d=b.call(a,a[e],e))&&d>c&&(c=d)}return c};p.extent=function(a,b){var c,d,e,f=-1,g=a.length;if(1===arguments.length){for(;++f<g&&!(null!=(c=e=a[f])&&c>=c);)c=
e=void 0;for(;++f<g;)null!=(d=a[f])&&(c>d&&(c=d),d>e&&(e=d))}else{for(;++f<g&&!(null!=(c=e=b.call(a,a[f],f))&&c>=c);)c=void 0;for(;++f<g;)null!=(d=b.call(a,a[f],f))&&(c>d&&(c=d),d>e&&(e=d))}return[c,e]};p.sum=function(a,b){var c,d=0,e=a.length,f=-1;if(1===arguments.length)for(;++f<e;)isNaN(c=+a[f])||(d+=c);else for(;++f<e;)isNaN(c=+b.call(a,a[f],f))||(d+=c);return d};p.mean=function(a,b){var c,d=a.length,f=0,g=-1,h=0;if(1===arguments.length)for(;++g<d;)e(c=a[g])&&(f+=(c-f)/++h);else for(;++g<d;)e(c=
b.call(a,a[g],g))&&(f+=(c-f)/++h);return h?f:void 0};p.quantile=function(a,b){var c=(a.length-1)*b+1,d=Math.floor(c),e=+a[d-1];return(c-=d)?e+c*(a[d]-e):e};p.median=function(a,b){return 1<arguments.length&&(a=a.map(b)),a=a.filter(e),a.length?p.quantile(a.sort(p.ascending),0.5):void 0};p.bisector=function(a){return{left:function(b,c,d,e){3>arguments.length&&(d=0);for(4>arguments.length&&(e=b.length);e>d;){var f=d+e>>>1;a.call(b,b[f],f)<c?d=f+1:e=f}return d},right:function(b,c,d,e){3>arguments.length&&
(d=0);for(4>arguments.length&&(e=b.length);e>d;){var f=d+e>>>1;c<a.call(b,b[f],f)?e=f:d=f+1}return d}}};var Xf=p.bisector(function(a){return a});p.bisectLeft=Xf.left;p.bisect=p.bisectRight=Xf.right;p.shuffle=function(a){for(var b,c,d=a.length;d;)c=0|Math.random()*d--,b=a[d],a[d]=a[c],a[c]=b;return a};p.permute=function(a,b){for(var c=b.length,d=Array(c);c--;)d[c]=a[b[c]];return d};p.pairs=function(a){for(var b=0,c=a.length-1,d=a[0],e=Array(0>c?0:c);c>b;)e[b]=[d,d=a[++b]];return e};p.zip=function(){if(!(e=
arguments.length))return[];for(var a=-1,b=p.min(arguments,c),d=Array(b);++a<b;)for(var e,f=-1,g=d[a]=Array(e);++f<e;)g[f]=arguments[f][a];return d};p.transpose=function(a){return p.zip.apply(p,a)};p.keys=function(a){var b=[],c;for(c in a)b.push(c);return b};p.values=function(a){var b=[],c;for(c in a)b.push(a[c]);return b};p.entries=function(a){var b=[],c;for(c in a)b.push({key:c,value:a[c]});return b};p.merge=function(a){var b,c,d,e=a.length;b=-1;for(var f=0;++b<e;)f+=a[b].length;for(c=Array(f);0<=
--e;){d=a[e];for(b=d.length;0<=--b;)c[--f]=d[b]}return c};var $=Math.abs;p.range=function(a,b,c){if(3>arguments.length&&(c=1,2>arguments.length&&(b=a,a=0)),1/0===(b-a)/c)throw Error("infinite range");var d,e=[],f;d=$(c);for(f=1;d*f%1;)f*=10;var g=-1;if(a*=f,b*=f,c*=f,0>c)for(;(d=a+c*++g)>b;)e.push(d/f);else for(;(d=a+c*++g)<b;)e.push(d/f);return e};p.map=function(b){var c=new a;if(b instanceof a)b.forEach(function(a,b){c.set(a,b)});else for(var d in b)c.set(d,b[d]);return c};b(a,{has:f,get:function(a){return this[hb+
a]},set:function(a,b){return this[hb+a]=b},remove:function(a){return a=hb+a,a in this&&delete this[a]},keys:d,values:function(){var a=[];return this.forEach(function(b,c){a.push(c)}),a},entries:function(){var a=[];return this.forEach(function(b,c){a.push({key:b,value:c})}),a},size:h,empty:g,forEach:function(a){for(var b in this)b.charCodeAt(0)===Tb&&a.call(this,b.substring(1),this[b])}});var hb="\x00",Tb=hb.charCodeAt(0);p.nest=function(){function b(c,h,k){if(k>=g.length)return e?e.call(f,h):d?h.sort(d):
h;for(var l,J,m,p,n=-1,q=h.length,xa=g[k++],s=new a;++n<q;)(p=s.get(l=xa(J=h[n])))?p.push(J):s.set(l,[J]);return c?(J=c(),m=function(a,d){J.set(a,b(c,d,k))}):(J={},m=function(a,d){J[a]=b(c,d,k)}),s.forEach(m),J}function c(a,b){if(b>=g.length)return a;var d=[],e=h[b++];return a.forEach(function(a,e){d.push({key:a,values:c(e,b)})}),e?d.sort(function(a,b){return e(a.key,b.key)}):d}var d,e,f={},g=[],h=[];return f.map=function(a,c){return b(c,a,0)},f.entries=function(a){return c(b(p.map,a,0),0)},f.key=
function(a){return g.push(a),f},f.sortKeys=function(a){return h[g.length-1]=a,f},f.sortValues=function(a){return d=a,f},f.rollup=function(a){return e=a,f},f};p.set=function(a){var b=new k;if(a)for(var c=0,d=a.length;d>c;++c)b.add(a[c]);return b};b(k,{has:f,add:function(a){return this[hb+a]=!0,a},remove:function(a){return a=hb+a,a in this&&delete this[a]},values:d,size:h,empty:g,forEach:function(a){for(var b in this)b.charCodeAt(0)===Tb&&a.call(this,b.substring(1))}});p.behavior={};p.rebind=function(a,
b){for(var c,d=1,e=arguments.length;++d<e;)a[c=arguments[d]]=l(a,b,b[c]);return a};var ae="webkit ms moz Moz o O".split(" ");p.dispatch=function(){for(var a=new q,b=-1,c=arguments.length;++b<c;)a[arguments[b]]=w(a);return a};q.prototype.on=function(a,b){var c=a.indexOf("."),d="";if(0<=c&&(d=a.substring(c+1),a=a.substring(0,c)),a)return 2>arguments.length?this[a].on(d):this[a].on(d,b);if(2===arguments.length){if(null==b)for(a in this)this.hasOwnProperty(a)&&this[a].on(d,null);return this}};p.event=
null;p.requote=function(a){return a.replace(ci,"\\$&")};var ci=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g,Ub={}.__proto__?function(a,b){a.__proto__=b}:function(a,b){for(var c in b)a[c]=b[c]},Wc=function(a,b){return b.querySelector(a)},Xc=function(a,b){return b.querySelectorAll(a)},di=ab[m(ab,"matchesSelector")],be=function(a,b){return di.call(a,b)};"function"==typeof Sizzle&&(Wc=function(a,b){return Sizzle(a,b)[0]||null},Xc=Sizzle,be=Sizzle.matchesSelector);p.selection=function(){return Yf};var ia=p.selection.prototype=
[];ia.select=function(a){var b,c,d,e,f=[];a=v(a);for(var g=-1,h=this.length;++g<h;){f.push(b=[]);b.parentNode=(d=this[g]).parentNode;for(var k=-1,l=d.length;++k<l;)(e=d[k])?(b.push(c=a.call(e,e.__data__,k,g)),c&&"__data__"in e&&(c.__data__=e.__data__)):b.push(null)}return C(f)};ia.selectAll=function(a){var b,c,d=[];a=y(a);for(var e=-1,f=this.length;++e<f;)for(var g=this[e],h=-1,k=g.length;++h<k;)(c=g[h])&&(d.push(b=$a(a.call(c,c.__data__,h,e))),b.parentNode=c);return C(d)};var Od={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/"};p.ns={prefix:Od,qualify:function(a){var b=a.indexOf(":"),c=a;return 0<=b&&(c=a.substring(0,b),a=a.substring(b+1)),Od.hasOwnProperty(c)?{space:Od[c],local:a}:a}};ia.attr=function(a,b){if(2>arguments.length){if("string"==typeof a){var c=this.node();return a=p.ns.qualify(a),a.local?c.getAttributeNS(a.space,a.local):c.getAttribute(a)}for(b in a)this.each(B(b,
a[b]));return this}return this.each(B(a,b))};ia.classed=function(a,b){if(2>arguments.length){if("string"==typeof a){var c=this.node(),d=(a=a.trim().split(/^|\s+/)).length,e=-1;if(b=c.classList)for(;++e<d;){if(!b.contains(a[e]))return!1}else for(b=c.getAttribute("class");++e<d;)if(!z(a[e]).test(b))return!1;return!0}for(b in a)this.each(x(b,a[b]));return this}return this.each(x(a,b))};ia.style=function(a,b,c){var d=arguments.length;if(3>d){if("string"!=typeof a){2>d&&(b="");for(c in a)this.each(E(c,
a[c],b));return this}if(2>d)return za.getComputedStyle(this.node(),null).getPropertyValue(a);c=""}return this.each(E(a,b,c))};ia.property=function(a,b){if(2>arguments.length){if("string"==typeof a)return this.node()[a];for(b in a)this.each(K(b,a[b]));return this}return this.each(K(a,b))};ia.text=function(a){return arguments.length?this.each("function"==typeof a?function(){var b=a.apply(this,arguments);this.textContent=null==b?"":b}:null==a?function(){this.textContent=""}:function(){this.textContent=
a}):this.node().textContent};ia.html=function(a){return arguments.length?this.each("function"==typeof a?function(){var b=a.apply(this,arguments);this.innerHTML=null==b?"":b}:null==a?function(){this.innerHTML=""}:function(){this.innerHTML=a}):this.node().innerHTML};ia.append=function(a){return a=Q(a),this.select(function(){return this.appendChild(a.apply(this,arguments))})};ia.insert=function(a,b){return a=Q(a),b=v(b),this.select(function(){return this.insertBefore(a.apply(this,arguments),b.apply(this,
arguments)||null)})};ia.remove=function(){return this.each(function(){var a=this.parentNode;a&&a.removeChild(this)})};ia.data=function(b,c){function d(b,e){var f,g,h,A=b.length,R=e.length,ga=Math.min(A,R),ca=Array(R),p=Array(R),ba=Array(A);if(c){var n=new a,q=new a,xa=[];for(f=-1;++f<A;)ga=c.call(g=b[f],g.__data__,f),n.has(ga)?ba[f]=g:n.set(ga,g),xa.push(ga);for(f=-1;++f<R;)ga=c.call(e,h=e[f],f),(g=n.get(ga))?(ca[f]=g,g.__data__=h):q.has(ga)||(p[f]={__data__:h}),q.set(ga,h),n.remove(ga);for(f=-1;++f<
A;)n.has(xa[f])&&(ba[f]=b[f])}else{for(f=-1;++f<ga;)g=b[f],h=e[f],g?(g.__data__=h,ca[f]=g):p[f]={__data__:h};for(;R>f;++f)p[f]={__data__:e[f]};for(;A>f;++f)ba[f]=b[f]}p.update=ca;p.parentNode=ca.parentNode=ba.parentNode=b.parentNode;k.push(p);l.push(ca);m.push(ba)}var e,f,g=-1,h=this.length;if(!arguments.length){for(b=Array(h=(e=this[0]).length);++g<h;)(f=e[g])&&(b[g]=f.__data__);return b}var k=ja([]),l=C([]),m=C([]);if("function"==typeof b)for(;++g<h;)d(e=this[g],b.call(e,e.parentNode.__data__,g));
else for(;++g<h;)d(e=this[g],b);return l.enter=function(){return k},l.exit=function(){return m},l};ia.datum=function(a){return arguments.length?this.property("__data__",a):this.property("__data__")};ia.filter=function(a){var b,c,d,e=[];"function"!=typeof a&&(a=O(a));for(var f=0,g=this.length;g>f;f++){e.push(b=[]);b.parentNode=(c=this[f]).parentNode;for(var h=0,k=c.length;k>h;h++)(d=c[h])&&a.call(d,d.__data__,h,f)&&b.push(d)}return C(e)};ia.order=function(){for(var a=-1,b=this.length;++a<b;)for(var c,
d=this[a],e=d.length-1,f=d[e];0<=--e;)(c=d[e])&&(f&&f!==c.nextSibling&&f.parentNode.insertBefore(c,f),f=c);return this};ia.sort=function(a){a=T.apply(this,arguments);for(var b=-1,c=this.length;++b<c;)this[b].sort(a);return this.order()};ia.each=function(a){return U(this,function(b,c,d){a.call(b,b.__data__,c,d)})};ia.call=function(a){var b=$a(arguments);return a.apply(b[0]=this,b),this};ia.empty=function(){return!this.node()};ia.node=function(){for(var a=0,b=this.length;b>a;a++)for(var c=this[a],d=
0,e=c.length;e>d;d++){var f=c[d];if(f)return f}return null};ia.size=function(){var a=0;return this.each(function(){++a}),a};var Sa=[];p.selection.enter=ja;p.selection.enter.prototype=Sa;Sa.append=ia.append;Sa.empty=ia.empty;Sa.node=ia.node;Sa.call=ia.call;Sa.size=ia.size;Sa.select=function(a){for(var b,c,d,e,f,g=[],h=-1,k=this.length;++h<k;){d=(e=this[h]).update;g.push(b=[]);b.parentNode=e.parentNode;for(var l=-1,m=e.length;++l<m;)(f=e[l])?(b.push(d[l]=c=a.call(e.parentNode,f.__data__,l,h)),c.__data__=
f.__data__):b.push(null)}return C(g)};Sa.insert=function(a,b){return 2>arguments.length&&(b=u(this)),ia.insert.call(this,a,b)};ia.transition=function(){for(var a,b,c=qb||++Zf,d=[],e=Bc||{time:Date.now(),ease:eh,delay:0,duration:250},f=-1,g=this.length;++f<g;){d.push(a=[]);for(var h=this[f],k=-1,l=h.length;++k<l;)(b=h[k])&&yc(b,k,c,e),a.push(b)}return Rb(d,c)};ia.interrupt=function(){return this.each(t)};p.select=function(a){a=["string"==typeof a?Wc(a,Na):a];return a.parentNode=ab,C([a])};p.selectAll=
function(a){a=$a("string"==typeof a?Xc(a,Na):a);return a.parentNode=ab,C([a])};var Yf=p.select(ab);ia.on=function(a,b,c){var d=arguments.length;if(3>d){if("string"!=typeof a){2>d&&(b=!1);for(c in a)this.each(oa(c,a[c],b));return this}if(2>d)return(d=this.node()["__on"+a])&&d._;c=!1}return this.each(oa(a,b,c))};var Yc=p.map({mouseenter:"mouseover",mouseleave:"mouseout"});Yc.forEach(function(a){"on"+a in Na&&Yc.remove(a)});var Fb="onselectstart"in Na?null:m(ab.style,"userSelect"),pg=0;p.mouse=function(a){return S(a,
D())};var Zc=/WebKit/.test(za.navigator.userAgent)?-1:0;p.touches=function(a,b){return 2>arguments.length&&(b=D().touches),b?$a(b).map(function(b){var c=S(a,b);return c.identifier=b.identifier,c}):[]};p.behavior.drag=function(){function a(){this.on("mousedown.drag",e).on("touchstart.drag",f)}function b(a,e,f,g){return function(){var b,h=this.parentNode,A=c.of(this,arguments),k=p.event.target,l=a(),J=null==l?"drag":"drag-"+l,m=e(h,l),ca=0,n=p.select(za).on(f+"."+J,function(){var a=e(h,l),c=a[0]-m[0],
d=a[1]-m[1];ca|=c|d;m=a;A({type:"drag",x:a[0]+b[0],y:a[1]+b[1],dx:c,dy:d})}).on(g+"."+J,function(){n.on(f+"."+J,null).on(g+"."+J,null);ba(ca&&p.event.target===k);A({type:"dragend"})}),ba=ea();d?(b=d.apply(this,arguments),b=[b.x-m[0],b.y-m[1]]):b=[0,0];A({type:"dragstart"})}}var c=F(a,"drag","dragstart","dragend"),d=null,e=b(n,p.mouse,"mousemove","mouseup"),f=b(function(){return p.event.changedTouches[0].identifier},function(a,b){return p.touches(a).filter(function(a){return a.identifier===b})[0]},
"touchmove","touchend");return a.origin=function(b){return arguments.length?(d=b,a):d},p.rebind(a,c,"on")};var W=Math.PI,Ga=2*W,Ba=W/2,N=1E-6,rd=N*N,Y=W/180,ma=180/W,Cc=Math.SQRT2,Pd=2;p.interpolateZoom=function(a,b){function c(a){var b=a*s;if(q){a=fa(n);var g=f/(Pd*m),A,l=Cc*b+n;A=((l=Math.exp(2*l))-1)/(l+1);A*=a;var J=n,l=((J=Math.exp(J))-1/J)/2,g=g*(A-l);return[d+g*h,e+g*k,f*a/fa(Cc*b+n)]}return[d+a*h,e+a*k,f*Math.exp(Cc*b)]}var d=a[0],e=a[1],f=a[2],g=b[2],h=b[0]-d,k=b[1]-e,l=h*h+k*k,m=Math.sqrt(l),
p=(g*g-f*f+4*l)/(2*f*Pd*m),l=(g*g-f*f-4*l)/(2*g*Pd*m),n=Math.log(Math.sqrt(p*p+1)-p),q=Math.log(Math.sqrt(l*l+1)-l)-n,s=(q||Math.log(g/f))/Cc;return c.duration=1E3*s,c};p.behavior.zoom=function(){function a(b){b.on(G,k).on(ei+".zoom",m).on(E,n).on("dblclick.zoom",q).on(I,l)}function b(a){return[(a[0]-x.x)/x.k,(a[1]-x.y)/x.k]}function c(a){x.k=Math.max(C[0],Math.min(C[1],a))}function d(a,b){b=[b[0]*x.k+x.x,b[1]*x.k+x.y];x.x+=a[0]-b[0];x.y+=a[1]-b[1]}function e(){z&&z.domain(y.range().map(function(a){return(a-
x.x)/x.k}).map(y.invert));B&&B.domain(aa.range().map(function(a){return(a-x.y)/x.k}).map(aa.invert))}function f(a){a({type:"zoomstart"})}function g(a){e();a({type:"zoom",scale:x.k,translate:[x.x,x.y]})}function h(a){a({type:"zoomend"})}function k(){var a=this,c=K.of(a,arguments),e=p.event.target,A=0,l=p.select(za).on(E,function(){A=1;d(p.mouse(a),m);g(c)}).on(H,function(){l.on(E,za===a?n:null).on(H,null);R(A&&p.event.target===e);h(c)}),m=b(p.mouse(a)),R=ea();t.call(a);f(c)}function l(){function a(){var c=
p.touches(m);return A=x.k,c.forEach(function(a){a.identifier in ba&&(ba[a.identifier]=b(a))}),c}function e(){for(var b=p.event.changedTouches,f=0,h=b.length;h>f;++f)ba[b[f].identifier]=null;h=a();f=Date.now();1===h.length?(500>f-u&&(b=h[0],h=ba[b.identifier],c(2*x.k),d(b,h),s(),g(n)),u=f):1<h.length&&(b=h[0],h=h[1],f=b[0]-h[0],b=b[1]-h[1],q=f*f+b*b)}var A,m=this,n=K.of(m,arguments),ba={},q=0,r=p.event.changedTouches[0].identifier,da="touchmove.zoom-"+r,L="touchend.zoom-"+r,w=p.select(za).on(da,function(){for(var a,
b,e,f,h=p.touches(m),k=0,l=h.length;l>k;++k,f=null)if(e=h[k],f=ba[e.identifier]){if(b)break;a=e;b=f}if(f){var J=(J=e[0]-a[0])*J+(J=e[1]-a[1])*J,h=q&&Math.sqrt(J/q);a=[(a[0]+e[0])/2,(a[1]+e[1])/2];b=[(b[0]+f[0])/2,(b[1]+f[1])/2];c(h*A)}u=null;d(a,b);g(n)}).on(L,function(){if(p.event.touches.length){for(var b=p.event.changedTouches,c=0,d=b.length;d>c;++c)delete ba[b[c].identifier];for(var e in ba)return void a()}w.on(da,null).on(L,null);aa.on(G,k).on(I,l);v();h(n)}),aa=p.select(m).on(G,null).on(I,e),
v=ea();t.call(m);e();f(n)}function m(){var a=K.of(this,arguments);v?clearTimeout(v):(t.call(this),f(a));v=setTimeout(function(){v=null;h(a)},50);s();var e=w||p.mouse(this);r||(r=b(e));c(Math.pow(2,0.002*Dc())*x.k);d(e,r);g(a)}function n(){r=null}function q(){var a=K.of(this,arguments),e=p.mouse(this),k=b(e),A=Math.log(x.k)/Math.LN2;f(a);c(Math.pow(2,p.event.shiftKey?Math.ceil(A)-1:Math.floor(A)+1));d(e,k);g(a);h(a)}var r,w,v,u,y,z,aa,B,x={x:0,y:0,k:1},D=[960,500],C=$f,G="mousedown.zoom",E="mousemove.zoom",
H="mouseup.zoom",I="touchstart.zoom",K=F(a,"zoomstart","zoom","zoomend");return a.event=function(a){a.each(function(){var a=K.of(this,arguments),b=x;qb?p.select(this).transition().each("start.zoom",function(){x=this.__chart__||{x:0,y:0,k:1};f(a)}).tween("zoom:zoom",function(){var c=D[0],d=c/2,e=D[1]/2,f=p.interpolateZoom([(d-x.x)/x.k,(e-x.y)/x.k,c/x.k],[(d-b.x)/b.k,(e-b.y)/b.k,c/b.k]);return function(b){b=f(b);var h=c/b[2];this.__chart__=x={x:d-b[0]*h,y:e-b[1]*h,k:h};g(a)}}).each("end.zoom",function(){h(a)}):
(this.__chart__=x,f(a),g(a),h(a))})},a.translate=function(b){return arguments.length?(x={x:+b[0],y:+b[1],k:x.k},e(),a):[x.x,x.y]},a.scale=function(b){return arguments.length?(x={x:x.x,y:x.y,k:+b},e(),a):x.k},a.scaleExtent=function(b){return arguments.length?(C=null==b?$f:[+b[0],+b[1]],a):C},a.center=function(b){return arguments.length?(w=b&&[+b[0],+b[1]],a):w},a.size=function(b){return arguments.length?(D=b&&[+b[0],+b[1]],a):D},a.x=function(b){return arguments.length?(z=b,y=b.copy(),x={x:0,y:0,k:1},
a):z},a.y=function(b){return arguments.length?(B=b,aa=b.copy(),x={x:0,y:0,k:1},a):B},p.rebind(a,K,"on")};var Dc,$f=[0,1/0],ei="onwheel"in Na?(Dc=function(){return-p.event.deltaY*(p.event.deltaMode?120:1)},"wheel"):"onmousewheel"in Na?(Dc=function(){return p.event.wheelDelta},"mousewheel"):(Dc=function(){return-p.event.detail},"MozMousePixelScroll");la.prototype.toString=function(){return this.rgb()+""};p.hsl=function(a,b,c){return 1===arguments.length?a instanceof qa?X(a.h,a.s,a.l):Yd(""+a,Zd,X):
X(+a,+b,+c)};var Qd=qa.prototype=new la;Qd.brighter=function(a){return a=Math.pow(0.7,arguments.length?a:1),X(this.h,this.s,this.l/a)};Qd.darker=function(a){return a=Math.pow(0.7,arguments.length?a:1),X(this.h,this.s,a*this.l)};Qd.rgb=function(){return ra(this.h,this.s,this.l)};p.hcl=function(a,b,c){return 1===arguments.length?a instanceof na?ha(a.h,a.c,a.l):a instanceof r?Xd(a.l,a.a,a.b):Xd((a=$d((a=p.rgb(a)).r,a.g,a.b)).l,a.a,a.b):ha(+a,+b,+c)};var Rd=na.prototype=new la;Rd.brighter=function(a){return ha(this.h,
this.c,Math.min(100,this.l+Ec*(arguments.length?a:1)))};Rd.darker=function(a){return ha(this.h,this.c,Math.max(0,this.l-Ec*(arguments.length?a:1)))};Rd.rgb=function(){return Oa(this.h,this.c,this.l).rgb()};p.lab=function(a,b,c){return 1===arguments.length?a instanceof r?ya(a.l,a.a,a.b):a instanceof na?Oa(a.l,a.c,a.h):$d((a=p.rgb(a)).r,a.g,a.b):ya(+a,+b,+c)};var Ec=18,ce=0.95047,de=1,ee=1.08883,Sd=r.prototype=new la;Sd.brighter=function(a){return ya(Math.min(100,this.l+Ec*(arguments.length?a:1)),this.a,
this.b)};Sd.darker=function(a){return ya(Math.max(0,this.l-Ec*(arguments.length?a:1)),this.a,this.b)};Sd.rgb=function(){return Wd(this.l,this.a,this.b)};p.rgb=function(a,b,c){return 1===arguments.length?a instanceof Tc?Pa(a.r,a.g,a.b):Yd(""+a,Pa,ra):Pa(~~a,~~b,~~c)};var Fc=Tc.prototype=new la;Fc.brighter=function(a){a=Math.pow(0.7,arguments.length?a:1);var b=this.r,c=this.g,d=this.b;return b||c||d?(b&&30>b&&(b=30),c&&30>c&&(c=30),d&&30>d&&(d=30),Pa(Math.min(255,~~(b/a)),Math.min(255,~~(c/a)),Math.min(255,
~~(d/a)))):Pa(30,30,30)};Fc.darker=function(a){return a=Math.pow(0.7,arguments.length?a:1),Pa(~~(a*this.r),~~(a*this.g),~~(a*this.b))};Fc.hsl=function(){return Zd(this.r,this.g,this.b)};Fc.toString=function(){return"#"+rb(this.r)+rb(this.g)+rb(this.b)};var Vb=p.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});Vb.forEach(function(a,b){Vb.set(a,Pa(b>>16,255&b>>8,255&b))});p.functor=ka;p.xhr=$c(va);p.dsv=function(a,b){function c(a,f,g){3>arguments.length&&
(g=f,f=null);var h=Wb(a,b,null==f?d:e(f),g);return h.row=function(a){return arguments.length?h.response(null==(f=a)?d:e(a)):f},h}function d(a){return c.parse(a.responseText)}function e(a){return function(b){return c.parse(b.responseText,a)}}function f(b){return b.map(g).join(a)}function g(a){return h.test(a)?'"'+a.replace(/\"/g,'""')+'"':a}var h=RegExp('["'+a+"\n]"),l=a.charCodeAt(0);return c.parse=function(a,b){var d;return c.parseRows(a,function(a,c){if(d)return d(a,c-1);var e=new Function("d",
"return {"+a.map(function(a,b){return JSON.stringify(a)+": d["+b+"]"}).join(",")+"}");d=b?function(a,c){return b(e(a),c)}:e})},c.parseRows=function(a,b){function c(){if(A>=k)return g;if(e)return e=!1,f;var b=A;if(34===a.charCodeAt(b)){for(var d=b;d++<k;)if(34===a.charCodeAt(d)){if(34!==a.charCodeAt(d+1))break;++d}A=d+2;var h=a.charCodeAt(d+1);return 13===h?(e=!0,10===a.charCodeAt(d+2)&&++A):10===h&&(e=!0),a.substring(b+1,d).replace(/""/g,'"')}for(;k>A;){h=a.charCodeAt(A++);d=1;if(10===h)e=!0;else if(13===
h)e=!0,10===a.charCodeAt(A)&&(++A,++d);else if(h!==l)continue;return a.substring(b,A-d)}return a.substring(b)}for(var d,e,f={},g={},h=[],k=a.length,A=0,J=0;(d=c())!==g;){for(var m=[];d!==f&&d!==g;)m.push(d),d=c();(!b||(m=b(m,J++)))&&h.push(m)}return h},c.format=function(b){if(Array.isArray(b[0]))return c.formatRows(b);var d=new k,e=[];return b.forEach(function(a){for(var b in a)d.has(b)||e.push(d.add(b))}),[e.map(g).join(a)].concat(b.map(function(b){return e.map(function(a){return g(b[a])}).join(a)})).join("\n")},
c.formatRows=function(a){return a.map(f).join("\n")},c};p.csv=p.dsv(",","text/csv");p.tsv=p.dsv("\t","text/tab-separated-values");var Zb,$b,Yb,Xb,Ta,he=za[m(za,"requestAnimationFrame")]||function(a){setTimeout(a,17)};p.timer=function(a,b,c){var d=arguments.length;2>d&&(b=0);3>d&&(c=Date.now());d={c:a,t:c+b,f:!1,n:null};$b?$b.n=d:Zb=d;$b=d;Yb||(Xb=clearTimeout(Xb),Yb=1,he(ad))};p.timer.flush=function(){fe();ge()};p.round=function(a,b){return b?Math.round(a*(b=Math.pow(10,b)))/b:Math.round(a)};var fi=
"y z a f p n \u00b5 m k M G T P E Z Y".split(" ").map(function(a,b){var c=Math.pow(10,3*$(8-b));return{scale:8<b?function(a){return a/c}:function(a){return a*c},symbol:a}});p.formatPrefix=function(a,b){var c=0;return a&&(0>a&&(a*=-1),b&&(a=p.round(a,bd(a,b))),c=1+Math.floor(1E-12+Math.log(a)/Math.LN10),c=Math.max(-24,Math.min(24,3*Math.floor((0>=c?c+1:c-1)/3)))),fi[8+c/3]};var ie=/(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i,sg=p.map({b:function(a){return a.toString(2)},
c:function(a){return String.fromCharCode(a)},o:function(a){return a.toString(8)},x:function(a){return a.toString(16)},X:function(a){return a.toString(16).toUpperCase()},g:function(a,b){return a.toPrecision(b)},e:function(a,b){return a.toExponential(b)},f:function(a,b){return a.toFixed(b)},r:function(a,b){return(a=p.round(a,bd(a,b))).toFixed(Math.max(0,Math.min(20,bd(a*(1+1E-15),b))))}}),P=p.time={},Aa=Date;Ua.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(){Za.setUTCDate.apply(this._,arguments)},
setDay:function(){Za.setUTCDay.apply(this._,arguments)},setFullYear:function(){Za.setUTCFullYear.apply(this._,arguments)},setHours:function(){Za.setUTCHours.apply(this._,arguments)},setMilliseconds:function(){Za.setUTCMilliseconds.apply(this._,arguments)},setMinutes:function(){Za.setUTCMinutes.apply(this._,arguments)},setMonth:function(){Za.setUTCMonth.apply(this._,arguments)},setSeconds:function(){Za.setUTCSeconds.apply(this._,arguments)},setTime:function(){Za.setTime.apply(this._,arguments)}};var Za=
Date.prototype;P.year=ib(function(a){return a=P.day(a),a.setMonth(0,1),a},function(a,b){a.setFullYear(a.getFullYear()+b)},function(a){return a.getFullYear()});P.years=P.year.range;P.years.utc=P.year.utc.range;P.day=ib(function(a){var b=new Aa(2E3,0);return b.setFullYear(a.getFullYear(),a.getMonth(),a.getDate()),b},function(a,b){a.setDate(a.getDate()+b)},function(a){return a.getDate()-1});P.days=P.day.range;P.days.utc=P.day.utc.range;P.dayOfYear=function(a){var b=P.year(a);return Math.floor((a-b-6E4*
(a.getTimezoneOffset()-b.getTimezoneOffset()))/864E5)};"sunday monday tuesday wednesday thursday friday saturday".split(" ").forEach(function(a,b){b=7-b;var c=P[a]=ib(function(a){return(a=P.day(a)).setDate(a.getDate()-(a.getDay()+b)%7),a},function(a,b){a.setDate(a.getDate()+7*Math.floor(b))},function(a){var c=P.year(a).getDay();return Math.floor((P.dayOfYear(a)+(c+b)%7)/7)-(c!==b)});P[a+"s"]=c.range;P[a+"s"].utc=c.utc.range;P[a+"OfYear"]=function(a){var c=P.year(a).getDay();return Math.floor((P.dayOfYear(a)+
(c+b)%7)/7)}});P.week=P.sunday;P.weeks=P.sunday.range;P.weeks.utc=P.sunday.utc.range;P.weekOfYear=P.sundayOfYear;var ke={"-":"",_:" ","0":"0"},sa=/^\s*\d+/,ne=/^%/;p.locale=function(a){return{numberFormat:rg(a),timeFormat:ug(a)}};var ag=p.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".split(" "),shortDays:"Sun Mon Tue Wed Thu Fri Sat".split(" "),
months:"January February March April May June July August September October November December".split(" "),shortMonths:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" ")});p.format=ag.numberFormat;p.geo={};ed.prototype={s:0,t:0,add:function(a){oe(a,this.t,Gc);oe(Gc.s,this.s,this);this.s?this.t+=Gc.t:this.s=Gc.t},reset:function(){this.s=this.t=0},valueOf:function(){return this.s}};var Gc=new ed;p.geo.stream=function(a,b){a&&bg.hasOwnProperty(a.type)?bg[a.type](a,b):ec(a,b)};var bg={Feature:function(a,
b){ec(a.geometry,b)},FeatureCollection:function(a,b){for(var c=a.features,d=-1,e=c.length;++d<e;)ec(c[d].geometry,b)}},pe={Sphere:function(a,b){b.sphere()},Point:function(a,b){a=a.coordinates;b.point(a[0],a[1],a[2])},MultiPoint:function(a,b){for(var c=a.coordinates,d=-1,e=c.length;++d<e;)a=c[d],b.point(a[0],a[1],a[2])},LineString:function(a,b){fd(a.coordinates,b,0)},MultiLineString:function(a,b){for(var c=a.coordinates,d=-1,e=c.length;++d<e;)fd(c[d],b,0)},Polygon:function(a,b){qe(a.coordinates,b)},
MultiPolygon:function(a,b){for(var c=a.coordinates,d=-1,e=c.length;++d<e;)qe(c[d],b)},GeometryCollection:function(a,b){for(var c=a.geometries,d=-1,e=c.length;++d<e;)ec(c[d],b)}};p.geo.area=function(a){return Bb=0,p.geo.stream(a,Fa),Bb};var Bb,jb=new ed,Fa={sphere:function(){Bb+=4*W},point:n,lineStart:n,lineEnd:n,polygonStart:function(){jb.reset();Fa.lineStart=Jg},polygonEnd:function(){var a=2*jb;Bb+=0>a?4*W+a:a;Fa.lineStart=Fa.lineEnd=Fa.point=n}};p.geo.bounds=function(){function a(b,c){aa.push(x=
[m=b,q=b]);n>c&&(n=c);c>s&&(s=c)}function b(c,d){var e=kb([c*Y,d*Y]);if(v){var f=sb(v,e),f=sb([f[1],-f[0],0],f);hc(f);var f=ic(f),g=c-r,k=0<g?1:-1,l=f[0]*ma*k,g=180<$(g);g^(l>k*r&&k*c>l)?(f=f[1]*ma,f>s&&(s=f)):(l=(l+360)%360-180,g^(l>k*r&&k*c>l))?(f=-f[1]*ma,n>f&&(n=f)):(n>d&&(n=d),d>s&&(s=d));g?r>c?h(m,c)>h(m,q)&&(q=c):h(c,q)>h(m,q)&&(m=c):q>=m?(m>c&&(m=c),c>q&&(q=c)):c>r?h(m,c)>h(m,q)&&(q=c):h(c,q)>h(m,q)&&(m=c)}else a(c,d);v=e;r=c}function c(){y.point=b}function d(){x[0]=m;x[1]=q;y.point=a;v=null}
function e(a,c){if(v){var d=a-r;u+=180<$(d)?d+(0<d?360:-360):d}else t=a,w=c;Fa.point(a,c);b(a,c)}function f(){Fa.lineStart()}function g(){e(t,w);Fa.lineEnd();$(u)>N&&(m=-(q=180));x[0]=m;x[1]=q;v=null}function h(a,b){return 0>(b-=a)?b+360:b}function k(a,b){return a[0]-b[0]}function l(a,b){return b[0]<=b[1]?b[0]<=a&&a<=b[1]:a<b[0]||b[1]<a}var m,n,q,s,r,t,w,v,u,aa,x,y={point:a,lineStart:c,lineEnd:d,polygonStart:function(){y.point=e;y.lineStart=f;y.lineEnd=g;u=0;Fa.polygonStart()},polygonEnd:function(){Fa.polygonEnd();
y.point=a;y.lineStart=c;y.lineEnd=d;0>jb?(m=-(q=180),n=-(s=90)):u>N?s=90:-N>u&&(n=-90);x[0]=m;x[1]=q}};return function(a){s=q=-(m=n=1/0);aa=[];p.geo.stream(a,y);if(a=aa.length){aa.sort(k);for(var b,c=1,d=aa[0],e=[d];a>c;++c)b=aa[c],l(b[0],d)||l(b[1],d)?(h(d[0],b[1])>h(d[0],d[1])&&(d[1]=b[1]),h(b[0],d[1])>h(d[0],d[1])&&(d[0]=b[0])):e.push(d=b);var f,g=-1/0;a=e.length-1;c=0;for(d=e[a];a>=c;d=b,++c)b=e[c],(f=h(d[1],b[0]))>g&&(g=f,m=b[0],q=d[1])}return aa=x=null,1/0===m||1/0===n?[[0/0,0/0],[0/0,0/0]]:
[[m,n],[q,s]]}}();p.geo.centroid=function(a){Hb=tb=Va=Wa=Qa=Ia=Ja=Ea=bb=cb=Ra=0;p.geo.stream(a,La);a=bb;var b=cb,c=Ra,d=a*a+b*b+c*c;return rd>d&&(a=Ia,b=Ja,c=Ea,N>tb&&(a=Va,b=Wa,c=Qa),d=a*a+b*b+c*c,rd>d)?[0/0,0/0]:[Math.atan2(b,a)*ma,Z(c/Math.sqrt(d))*ma]};var Hb,tb,Va,Wa,Qa,Ia,Ja,Ea,bb,cb,Ra,La={sphere:n,point:hd,lineStart:re,lineEnd:se,polygonStart:function(){La.lineStart=Kg},polygonEnd:function(){La.lineStart=re}},Ie=ve(ub,function(a){var b,c=0/0,d=0/0,e=0/0;return{lineStart:function(){a.lineStart();
b=1},point:function(f,g){var h=0<f?W:-W,k=$(f-c);if($(k-W)<N)a.point(c,d=0<(d+g)/2?Ba:-Ba),a.point(e,d),a.lineEnd(),a.lineStart(),a.point(h,d),a.point(f,d),b=0;else if(e!==h&&k>=W){$(c-e)<N&&(c-=e*N);$(f-h)<N&&(f-=h*N);var k=c,l=d,m=f,p,n,q=Math.sin(k-m);d=$(q)>N?Math.atan((Math.sin(l)*(n=Math.cos(g))*Math.sin(m)-Math.sin(g)*(p=Math.cos(l))*Math.sin(k))/(p*n*q)):(l+g)/2;a.point(e,d);a.lineEnd();a.lineStart();a.point(h,d);b=0}a.point(c=f,d=g);e=h},lineEnd:function(){a.lineEnd();c=d=0/0},clean:function(){return 2-
b}}},function(a,b,c,d){null==a?(c*=Ba,d.point(-W,c),d.point(0,c),d.point(W,c),d.point(W,0),d.point(W,-c),d.point(0,-c),d.point(-W,-c),d.point(-W,0),d.point(-W,c)):$(a[0]-b[0])>N?(a=a[0]<b[0]?W:-W,c=c*a/2,d.point(-a,c),d.point(0,c),d.point(a,c)):d.point(b[0],b[1])},[-W,-W/2]),lc=1E9;p.geo.clipExtent=function(){var a,b,c,d,e,f,g={stream:function(a){return e&&(e.valid=!1),e=f(a),e.valid=!0,e},extent:function(h){return arguments.length?(f=ye(a=+h[0][0],b=+h[0][1],c=+h[1][0],d=+h[1][1]),e&&(e.valid=!1,
e=null),g):[[a,b],[c,d]]}};return g.extent([[0,0],[960,500]])};(p.geo.conicEqualArea=function(){return jd(Ae)}).raw=Ae;p.geo.albers=function(){return p.geo.conicEqualArea().rotate([96,0]).center([-0.6,38.7]).parallels([29.5,45.5]).scale(1070)};p.geo.albersUsa=function(){function a(f){var g=f[0];f=f[1];return b=null,c(g,f),b||(d(g,f),b)||e(g,f),b}var b,c,d,e,f=p.geo.albers(),g=p.geo.conicEqualArea().rotate([154,0]).center([-2,58.5]).parallels([55,65]),h=p.geo.conicEqualArea().rotate([157,0]).center([-3,
19.9]).parallels([8,18]),k={point:function(a,c){b=[a,c]}};return a.invert=function(a){var b=f.scale(),c=f.translate(),d=(a[0]-c[0])/b,b=(a[1]-c[1])/b;return(0.12<=b&&0.234>b&&-0.425<=d&&-0.214>d?g:0.166<=b&&0.234>b&&-0.214<=d&&-0.115>d?h:f).invert(a)},a.stream=function(a){var b=f.stream(a),c=g.stream(a),d=h.stream(a);return{point:function(a,e){b.point(a,e);c.point(a,e);d.point(a,e)},sphere:function(){b.sphere();c.sphere();d.sphere()},lineStart:function(){b.lineStart();c.lineStart();d.lineStart()},
lineEnd:function(){b.lineEnd();c.lineEnd();d.lineEnd()},polygonStart:function(){b.polygonStart();c.polygonStart();d.polygonStart()},polygonEnd:function(){b.polygonEnd();c.polygonEnd();d.polygonEnd()}}},a.precision=function(b){return arguments.length?(f.precision(b),g.precision(b),h.precision(b),a):f.precision()},a.scale=function(b){return arguments.length?(f.scale(b),g.scale(0.35*b),h.scale(b),a.translate(f.translate())):f.scale()},a.translate=function(b){if(!arguments.length)return f.translate();
var l=f.scale(),m=+b[0],J=+b[1];return c=f.translate(b).clipExtent([[m-0.455*l,J-0.238*l],[m+0.455*l,J+0.238*l]]).stream(k).point,d=g.translate([m-0.307*l,J+0.201*l]).clipExtent([[m-0.425*l+N,J+0.12*l+N],[m-0.214*l-N,J+0.234*l-N]]).stream(k).point,e=h.translate([m-0.205*l,J+0.212*l]).clipExtent([[m-0.214*l+N,J+0.166*l+N],[m-0.115*l-N,J+0.234*l-N]]).stream(k).point,a},a.scale(1070)};var Hc,mc,Ic,Jc,Kc,Lc,db={point:n,lineStart:n,lineEnd:n,polygonStart:function(){mc=0;db.lineStart=Og},polygonEnd:function(){db.lineStart=
db.lineEnd=db.point=n;Hc+=$(mc/2)}},gi={point:function(a,b){Ic>a&&(Ic=a);a>Kc&&(Kc=a);Jc>b&&(Jc=b);b>Lc&&(Lc=b)},lineStart:n,lineEnd:n,polygonStart:n,polygonEnd:n},Ma={point:lb,lineStart:Ce,lineEnd:De,polygonStart:function(){Ma.lineStart=Qg},polygonEnd:function(){Ma.point=lb;Ma.lineStart=Ce;Ma.lineEnd=De}};p.geo.path=function(){function a(b){return b&&("function"==typeof g&&e.pointRadius(+g.apply(this,arguments)),f&&f.valid||(f=d(e)),p.geo.stream(b,f)),e.result()}var b,c,d,e,f,g=4.5;return a.area=
function(a){return Hc=0,p.geo.stream(a,d(db)),Hc},a.centroid=function(a){return Va=Wa=Qa=Ia=Ja=Ea=bb=cb=Ra=0,p.geo.stream(a,d(Ma)),Ra?[bb/Ra,cb/Ra]:Ea?[Ia/Ea,Ja/Ea]:Qa?[Va/Qa,Wa/Qa]:[0/0,0/0]},a.bounds=function(a){return Kc=Lc=-(Ic=Jc=1/0),p.geo.stream(a,d(gi)),[[Ic,Jc],[Kc,Lc]]},a.projection=function(c){return arguments.length?(d=(b=c)?c.stream||Sg(c):va,f=null,a):b},a.context=function(b){return arguments.length?(e=null==(c=b)?new Pg:new Rg(b),"function"!=typeof g&&e.pointRadius(g),f=null,a):c},
a.pointRadius=function(b){return arguments.length?(g="function"==typeof b?b:(e.pointRadius(+b),+b),a):g},a.projection(p.geo.albersUsa()).context(null)};p.geo.transform=function(a){return{stream:function(b){b=new He(b);for(var c in a)b[c]=a[c];return b}}};He.prototype={point:function(a,b){this.stream.point(a,b)},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()}};
p.geo.projection=eb;p.geo.projectionMutator=kd;(p.geo.equirectangular=function(){return eb(Ib)}).raw=Ib.invert=Ib;p.geo.rotation=function(a){function b(c){return c=a(c[0]*Y,c[1]*Y),c[0]*=ma,c[1]*=ma,c}return a=ld(a[0]%360*Y,a[1]*Y,2<a.length?a[2]*Y:0),b.invert=function(b){return b=a.invert(b[0]*Y,b[1]*Y),b[0]*=ma,b[1]*=ma,b},b};Je.invert=Ib;p.geo.circle=function(){function a(){var b="function"==typeof d?d.apply(this,arguments):d,e=ld(-b[0]*Y,-b[1]*Y,0).invert,f=[];return c(null,null,1,{point:function(a,
b){f.push(a=e(a,b));a[0]*=ma;a[1]*=ma}}),{type:"Polygon",coordinates:[f]}}var b,c,d=[0,0],e=6;return a.origin=function(b){return arguments.length?(d=b,a):d},a.angle=function(d){return arguments.length?(c=id((b=+d)*Y,e*Y),a):b},a.precision=function(d){return arguments.length?(c=id(b*Y,(e=+d)*Y),a):e},a.angle(90)};p.geo.distance=function(a,b){var c,d=(b[0]-a[0])*Y,e=a[1]*Y,f=b[1]*Y,g=Math.sin(d),d=Math.cos(d),h=Math.sin(e),e=Math.cos(e),k=Math.sin(f),f=Math.cos(f);return Math.atan2(Math.sqrt((c=f*g)*
c+(c=e*k-h*f*d)*c),h*k+e*f*d)};p.geo.graticule=function(){function a(){return{type:"MultiLineString",coordinates:b()}}function b(){return p.range(Math.ceil(f/w)*w,e,w).map(q).concat(p.range(Math.ceil(l/v)*v,k,v).map(s)).concat(p.range(Math.ceil(d/r)*r,c,r).filter(function(a){return $(a%w)>N}).map(m)).concat(p.range(Math.ceil(h/t)*t,g,t).filter(function(a){return $(a%v)>N}).map(n))}var c,d,e,f,g,h,k,l,m,n,q,s,r=10,t=r,w=90,v=360,u=2.5;return a.lines=function(){return b().map(function(a){return{type:"LineString",
coordinates:a}})},a.outline=function(){return{type:"Polygon",coordinates:[q(f).concat(s(k).slice(1),q(e).reverse().slice(1),s(l).reverse().slice(1))]}},a.extent=function(b){return arguments.length?a.majorExtent(b).minorExtent(b):a.minorExtent()},a.majorExtent=function(b){return arguments.length?(f=+b[0][0],e=+b[1][0],l=+b[0][1],k=+b[1][1],f>e&&(b=f,f=e,e=b),l>k&&(b=l,l=k,k=b),a.precision(u)):[[f,l],[e,k]]},a.minorExtent=function(b){return arguments.length?(d=+b[0][0],c=+b[1][0],h=+b[0][1],g=+b[1][1],
d>c&&(b=d,d=c,c=b),h>g&&(b=h,h=g,g=b),a.precision(u)):[[d,h],[c,g]]},a.step=function(b){return arguments.length?a.majorStep(b).minorStep(b):a.minorStep()},a.majorStep=function(b){return arguments.length?(w=+b[0],v=+b[1],a):[w,v]},a.minorStep=function(b){return arguments.length?(r=+b[0],t=+b[1],a):[r,t]},a.precision=function(b){return arguments.length?(u=+b,m=Oe(h,g,90),n=Pe(d,c,u),q=Oe(l,k,90),s=Pe(f,e,u),a):u},a.majorExtent([[-180,-90+N],[180,90-N]]).minorExtent([[-180,-80-N],[180,80+N]])};p.geo.greatArc=
function(){function a(){return{type:"LineString",coordinates:[b||d.apply(this,arguments),c||e.apply(this,arguments)]}}var b,c,d=md,e=nd;return a.distance=function(){return p.geo.distance(b||d.apply(this,arguments),c||e.apply(this,arguments))},a.source=function(c){return arguments.length?(d=c,b="function"==typeof c?null:c,a):d},a.target=function(b){return arguments.length?(e=b,c="function"==typeof b?null:b,a):e},a.precision=function(){return arguments.length?a:0},a};p.geo.interpolate=function(a,b){return Tg(a[0]*
Y,a[1]*Y,b[0]*Y,b[1]*Y)};p.geo.length=function(a){return Mc=0,p.geo.stream(a,Cb),Mc};var Mc,Cb={sphere:n,point:n,lineStart:function(){function a(e,f){var g=Math.sin(f*=Y),h=Math.cos(f),k=$((e*=Y)-b),l=Math.cos(k);Mc+=Math.atan2(Math.sqrt((k=h*Math.sin(k))*k+(k=d*g-c*h*l)*k),c*g+d*h*l);b=e;c=g;d=h}var b,c,d;Cb.point=function(e,f){b=e*Y;c=Math.sin(f*=Y);d=Math.cos(f);Cb.point=a};Cb.lineEnd=function(){Cb.point=Cb.lineEnd=n}},lineEnd:n,polygonStart:n,polygonEnd:n},cg=Jb(function(a){return Math.sqrt(2/
(1+a))},function(a){return 2*Math.asin(a/2)});(p.geo.azimuthalEqualArea=function(){return eb(cg)}).raw=cg;var dg=Jb(function(a){return(a=Math.acos(a))&&a/Math.sin(a)},va);(p.geo.azimuthalEquidistant=function(){return eb(dg)}).raw=dg;(p.geo.conicConformal=function(){return jd(Qe)}).raw=Qe;(p.geo.conicEquidistant=function(){return jd(Re)}).raw=Re;var eg=Jb(function(a){return 1/a},Math.atan);(p.geo.gnomonic=function(){return eb(eg)}).raw=eg;nc.invert=function(a,b){return[a,2*Math.atan(Math.exp(b))-Ba]};
(p.geo.mercator=function(){return Se(nc)}).raw=nc;var fg=Jb(function(){return 1},Math.asin);(p.geo.orthographic=function(){return eb(fg)}).raw=fg;var gg=Jb(function(a){return 1/(1+a)},function(a){return 2*Math.atan(a)});(p.geo.stereographic=function(){return eb(gg)}).raw=gg;od.invert=function(a,b){return[-b,2*Math.atan(Math.exp(a))-Ba]};(p.geo.transverseMercator=function(){var a=Se(od),b=a.center,c=a.rotate;return a.center=function(a){return a?b([-a[1],a[0]]):(a=b(),[-a[1],a[0]])},a.rotate=function(a){return a?
c([a[0],a[1],2<a.length?a[2]+90:90]):(a=c(),[a[0],a[1],a[2]-90])},a.rotate([0,0])}).raw=od;p.geom={};p.geom.hull=function(a){function b(a){if(3>a.length)return[];var e,f=ka(c),g=ka(d),h=a.length,k=[],l=[];for(e=0;h>e;e++)k.push([+f.call(this,a[e],e),+g.call(this,a[e],e),e]);k.sort(Ug);for(e=0;h>e;e++)l.push([k[e][0],-k[e][1]]);var f=Te(k),l=Te(l),g=l[0]===f[0],h=l[l.length-1]===f[f.length-1],A=[];for(e=f.length-1;0<=e;--e)A.push(a[k[f[e]][2]]);for(e=+g;e<l.length-h;++e)A.push(a[k[l[e]][2]]);return A}
var c=vb,d=Kb;return arguments.length?b(a):(b.x=function(a){return arguments.length?(c=a,b):c},b.y=function(a){return arguments.length?(d=a,b):d},b)};p.geom.polygon=function(a){return Ub(a,Nc),a};var Nc=p.geom.polygon.prototype=[];Nc.area=function(){for(var a,b=-1,c=this.length,d=this[c-1],e=0;++b<c;)a=d,d=this[b],e+=a[1]*d[0]-a[0]*d[1];return 0.5*e};Nc.centroid=function(a){var b,c,d=-1,e=this.length,f=0,g=0,h=this[e-1];for(arguments.length||(a=-1/(6*this.area()));++d<e;)b=h,h=this[d],c=b[0]*h[1]-
h[0]*b[1],f+=(b[0]+h[0])*c,g+=(b[1]+h[1])*c;return[f*a,g*a]};Nc.clip=function(a){for(var b,c,d,e,f,g,h=Ve(a),k=-1,l=this.length-Ve(this),m=this[l-1];++k<l;){b=a.slice();a.length=0;e=this[k];f=b[(d=b.length-h)-1];for(c=-1;++c<d;)g=b[c],pd(g,m,e)?(pd(f,m,e)||a.push(Ue(f,g,m,e)),a.push(g)):pd(f,m,e)&&a.push(Ue(f,g,m,e)),f=g;h&&a.push(a[0]);m=e}return a};var zb,mb,xb,sd,Lb,Xe=[],af=[];Ze.prototype.prepare=function(){for(var a,b=this.edges,c=b.length;c--;)a=b[c].edge,a.b&&a.a||b.splice(c,1);return b.sort($e),
b.length};qc.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}};td.prototype={insert:function(a,b){var c,d,e;if(a){if(b.P=a,b.N=a.N,a.N&&(a.N.P=b),a.N=b,a.R){for(a=a.R;a.L;)a=a.L;a.L=b}else a.R=b;c=a}else this._?(a=cf(this._),b.P=null,b.N=a,a.P=a.L=b,c=a):(b.P=b.N=null,this._=b,c=null);b.L=b.R=null;b.U=c;b.C=!0;for(a=b;c&&c.C;)d=c.U,c===d.L?(e=d.R,e&&e.C?(c.C=e.C=!1,d.C=!0,a=d):(a===c.R&&(Nb(this,
c),a=c,c=a.U),c.C=!1,d.C=!0,Ob(this,d))):(e=d.L,e&&e.C?(c.C=e.C=!1,d.C=!0,a=d):(a===c.L&&(Ob(this,c),a=c,c=a.U),c.C=!1,d.C=!0,Nb(this,d))),c=a.U;this._.C=!1},remove:function(a){a.N&&(a.N.P=a.P);a.P&&(a.P.N=a.N);a.N=a.P=null;var b,c,d,e=a.U,f=a.L,g=a.R;if(c=f?g?cf(g):f:g,e?e.L===a?e.L=c:e.R=c:this._=c,f&&g?(d=c.C,c.C=a.C,c.L=f,f.U=c,c!==g?(e=c.U,c.U=a.U,a=c.R,e.L=a,c.R=g,g.U=c):(c.U=e,e=c,a=c.R)):(d=a.C,a=c),a&&(a.U=e),!d){if(a&&a.C)return a.C=!1,void 0;do{if(a===this._)break;if(a===e.L){if(b=e.R,
b.C&&(b.C=!1,e.C=!0,Nb(this,e),b=e.R),b.L&&b.L.C||b.R&&b.R.C){b.R&&b.R.C||(b.L.C=!1,b.C=!0,Ob(this,b),b=e.R);b.C=e.C;e.C=b.R.C=!1;Nb(this,e);a=this._;break}}else if(b=e.L,b.C&&(b.C=!1,e.C=!0,Ob(this,e),b=e.L),b.L&&b.L.C||b.R&&b.R.C){b.L&&b.L.C||(b.R.C=!1,b.C=!0,Nb(this,b),b=e.L);b.C=e.C;e.C=b.L.C=!1;Ob(this,e);a=this._;break}b.C=!0;a=e;e=e.U}while(!a.C);a&&(a.C=!1)}}};p.geom.voronoi=function(a){function b(a){var d=Array(a.length),e=h[0][0],f=h[0][1],g=h[1][0],k=h[1][1];return ud(c(a),h).cells.forEach(function(b,
c){var h=b.edges,l=b.site;(d[c]=h.length?h.map(function(a){a=a.start();return[a.x,a.y]}):l.x>=e&&l.x<=g&&l.y>=f&&l.y<=k?[[e,k],[g,k],[g,f],[e,f]]:[]).point=a[c]}),d}function c(a){return a.map(function(a,b){return{x:Math.round(f(a,b)/N)*N,y:Math.round(g(a,b)/N)*N,i:b}})}var d=vb,e=Kb,f=d,g=e,h=Oc;return a?b(a):(b.links=function(a){return ud(c(a)).edges.filter(function(a){return a.l&&a.r}).map(function(b){return{source:a[b.l.i],target:a[b.r.i]}})},b.triangles=function(a){var b=[];return ud(c(a)).cells.forEach(function(c,
d){for(var e,f=c.site,g=c.edges.sort($e),h=-1,k=g.length,l=g[k-1].edge,l=l.l===f?l.r:l.l;++h<k;)e=l,l=g[h].edge,l=l.l===f?l.r:l.l,d<e.i&&d<l.i&&0>(f.x-l.x)*(e.y-f.y)-(f.x-e.x)*(l.y-f.y)&&b.push([a[d],a[e.i],a[l.i]])}),b},b.x=function(a){return arguments.length?(f=ka(d=a),b):d},b.y=function(a){return arguments.length?(g=ka(e=a),b):e},b.clipExtent=function(a){return arguments.length?(h=null==a?Oc:a,b):h===Oc?null:h},b.size=function(a){return arguments.length?b.clipExtent(a&&[[0,0],a]):h===Oc?null:h&&
h[1]},b)};var Oc=[[-1E6,-1E6],[1E6,1E6]];p.geom.delaunay=function(a){return p.geom.voronoi().triangles(a)};p.geom.quadtree=function(a,b,c,d,e){function f(a){function l(a,b,c,d,e,f,g,h){if(!isNaN(c)&&!isNaN(d))if(a.leaf){var k=a.x,m=a.y;if(null!=k){if(!(0.01>$(k-c)+$(m-d))){var p=a.point;a.x=a.y=a.point=null;A(a,p,k,m,e,f,g,h)}A(a,b,c,d,e,f,g,h)}else a.x=c,a.y=d,a.point=b}else A(a,b,c,d,e,f,g,h)}function A(a,b,c,d,e,f,g,h){var k=0.5*(e+g),m=0.5*(f+h),p=c>=k,n=d>=m,q=(n<<1)+p;a.leaf=!1;a=a.nodes[q]||
(a.nodes[q]=df());p?e=k:g=k;n?f=m:h=m;l(a,b,c,d,e,f,g,h)}var m,p,n,q,s,r,ca,t,w,v=ka(h),u=ka(k);if(null!=b)r=b,ca=c,t=d,w=e;else if(t=w=-(r=ca=1/0),p=[],n=[],s=a.length,g)for(q=0;s>q;++q)m=a[q],m.x<r&&(r=m.x),m.y<ca&&(ca=m.y),m.x>t&&(t=m.x),m.y>w&&(w=m.y),p.push(m.x),n.push(m.y);else for(q=0;s>q;++q){var x=+v(m=a[q],q);m=+u(m,q);r>x&&(r=x);ca>m&&(ca=m);x>t&&(t=x);m>w&&(w=m);p.push(x);n.push(m)}x=t-r;m=w-ca;x>m?w=ca+x:t=r+m;var y=df();if(y.add=function(a){l(y,a,+v(a,++q),+u(a,q),r,ca,t,w)},y.visit=
function(a){Pb(a,y,r,ca,t,w)},q=-1,null==b){for(;++q<s;)l(y,a[q],p[q],n[q],r,ca,t,w);--q}else a.forEach(y.add);return p=n=a=m=null,y}var g,h=vb,k=Kb;return(g=arguments.length)?(h=$g,k=ah,3===g&&(e=c,d=b,c=b=0),f(a)):(f.x=function(a){return arguments.length?(h=a,f):h},f.y=function(a){return arguments.length?(k=a,f):k},f.extent=function(a){return arguments.length?(null==a?b=c=d=e=null:(b=+a[0][0],c=+a[0][1],d=+a[1][0],e=+a[1][1]),f):null==b?null:[[b,c],[d,e]]},f.size=function(a){return arguments.length?
(null==a?b=c=d=e=null:(b=c=0,d=+a[0],e=+a[1]),f):null==b?null:[d-b,e-c]},f)};p.interpolateRgb=vd;p.interpolateObject=ef;p.interpolateNumber=Xa;p.interpolateString=ff;var rc=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g;p.interpolate=nb;p.interpolators=[function(a,b){var c=typeof b;return("string"===c?Vb.has(b)||/^(#|rgb\(|hsl\()/.test(b)?vd:ff:b instanceof la?vd:"object"===c?Array.isArray(b)?sc:ef:Xa)(a,b)}];p.interpolateArray=sc;var hg=function(){return va},hi=p.map({linear:hg,poly:function(a){return function(b){return Math.pow(b,
a)}},quad:function(){return ch},cubic:function(){return dh},sin:function(){return fh},exp:function(){return gh},circle:function(){return hh},elastic:function(a,b){var c;return 2>arguments.length&&(b=0.45),arguments.length?c=b/Ga*Math.asin(1/a):(a=1,c=b/4),function(d){return 1+a*Math.pow(2,-10*d)*Math.sin((d-c)*Ga/b)}},back:function(a){return a||(a=1.70158),function(b){return b*b*((a+1)*b-a)}},bounce:function(){return ih}}),ii=p.map({"in":va,out:gf,"in-out":hf,"out-in":function(a){return hf(gf(a))}});
p.ease=function(a){var b=a.indexOf("-"),c=0<=b?a.substring(0,b):a,b=0<=b?a.substring(b+1):"in";return c=hi.get(c)||hg,b=ii.get(b)||va,bh(b(c.apply(null,Vf.call(arguments,1))))};p.interpolateHcl=function(a,b){a=p.hcl(a);b=p.hcl(b);var c=a.h,d=a.c,e=a.l,f=b.h-c,g=b.c-d,h=b.l-e;return isNaN(g)&&(g=0,d=isNaN(d)?b.c:d),isNaN(f)?(f=0,c=isNaN(c)?b.h:c):180<f?f-=360:-180>f&&(f+=360),function(a){return Oa(c+f*a,d+g*a,e+h*a)+""}};p.interpolateHsl=function(a,b){a=p.hsl(a);b=p.hsl(b);var c=a.h,d=a.s,e=a.l,f=
b.h-c,g=b.s-d,h=b.l-e;return isNaN(g)&&(g=0,d=isNaN(d)?b.s:d),isNaN(f)?(f=0,c=isNaN(c)?b.h:c):180<f?f-=360:-180>f&&(f+=360),function(a){return ra(c+f*a,d+g*a,e+h*a)+""}};p.interpolateLab=function(a,b){a=p.lab(a);b=p.lab(b);var c=a.l,d=a.a,e=a.b,f=b.l-c,g=b.a-d,h=b.b-e;return function(a){return Wd(c+f*a,d+g*a,e+h*a)+""}};p.interpolateRound=jf;p.transform=function(a){var b=Na.createElementNS(p.ns.prefix.svg,"g");return(p.transform=function(a){if(null!=a){b.setAttribute("transform",a);var c=b.transform.baseVal.consolidate()}return new kf(c?
c.matrix:ji)})(a)};kf.prototype.toString=function(){return"translate("+this.translate+")rotate("+this.rotate+")skewX("+this.skew+")scale("+this.scale+")"};var ji={a:1,b:0,c:0,d:1,e:0,f:0};p.interpolateTransform=mf;p.layout={};p.layout.bundle=function(){return function(a){for(var b=[],c=-1,d=a.length;++c<d;)b.push(lh(a[c]));return b}};p.layout.chord=function(){function a(){var l,A,n,q,s,r={},t=[],w=p.range(f),v=[];c=[];d=[];l=0;for(q=-1;++q<f;){A=0;for(s=-1;++s<f;)A+=e[q][s];t.push(A);v.push(p.range(f));
l+=A}g&&w.sort(function(a,b){return g(t[a],t[b])});h&&v.forEach(function(a,b){a.sort(function(a,c){return h(e[b][a],e[b][c])})});l=(Ga-m*f)/l;A=0;for(q=-1;++q<f;){n=A;for(s=-1;++s<f;){var u=w[q],x=v[u][s],y=e[u][x],z=A,B=A+=y*l;r[u+"-"+x]={index:u,subindex:x,startAngle:z,endAngle:B,value:y}}d[u]={index:u,startAngle:n,endAngle:A,value:(A-n)/l};A+=m}for(q=-1;++q<f;)for(s=q-1;++s<f;)l=r[q+"-"+s],A=r[s+"-"+q],(l.value||A.value)&&c.push(l.value<A.value?{source:A,target:l}:{source:l,target:A});k&&b()}function b(){c.sort(function(a,
b){return k((a.source.value+a.target.value)/2,(b.source.value+b.target.value)/2)})}var c,d,e,f,g,h,k,l={},m=0;return l.matrix=function(a){return arguments.length?(f=(e=a)&&e.length,c=d=null,l):e},l.padding=function(a){return arguments.length?(m=a,c=d=null,l):m},l.sortGroups=function(a){return arguments.length?(g=a,c=d=null,l):g},l.sortSubgroups=function(a){return arguments.length?(h=a,c=null,l):h},l.sortChords=function(a){return arguments.length?(k=a,c&&b(),l):k},l.chords=function(){return c||a(),
c},l.groups=function(){return d||a(),d},l};p.layout.force=function(){function a(b){return function(a,c,d,e){if(a.point!==b){d=a.cx-b.x;var f=a.cy-b.y;c=e-c;e=d*d+f*f;if(e>c*c/w)return r>e&&(c=a.charge/e,b.px-=d*c,b.py-=f*c),!0;a.point&&(e&&r>e)&&(c=a.pointCharge/e,b.px-=d*c,b.py-=f*c)}return!a.charge}}function b(a){a.px=p.event.x;a.py=p.event.y;h.resume()}var c,d,e,f,g,h={},k=p.dispatch("start","tick","end"),l=[1,1],m=0.9,n=ki,q=li,s=-30,r=mi,t=0.1,w=0.64,v=[],u=[];return h.tick=function(){if(0.005>
(d*=0.99))return k.end({type:"end",alpha:d=0}),!0;var b,c,h,n,q,r,J,w,R=v.length,x=u.length;for(c=0;x>c;++c)h=u[c],b=h.source,n=h.target,J=n.x-b.x,w=n.y-b.y,(q=J*J+w*w)&&(q=d*f[c]*((q=Math.sqrt(q))-e[c])/q,J*=q,w*=q,n.x-=J*(r=b.weight/(n.weight+b.weight)),n.y-=w*r,b.x+=J*(r=1-r),b.y+=w*r);if((r=d*t)&&(J=l[0]/2,w=l[1]/2,c=-1,r))for(;++c<R;)h=v[c],h.x+=(J-h.x)*r,h.y+=(w-h.y)*r;if(s){of(b=p.geom.quadtree(v),d,g);for(c=-1;++c<R;)(h=v[c]).fixed||b.visit(a(h))}for(c=-1;++c<R;)h=v[c],h.fixed?(h.x=h.px,h.y=
h.py):(h.x-=(h.px-(h.px=h.x))*m,h.y-=(h.py-(h.py=h.y))*m);k.tick({type:"tick",alpha:d})},h.nodes=function(a){return arguments.length?(v=a,h):v},h.links=function(a){return arguments.length?(u=a,h):u},h.size=function(a){return arguments.length?(l=a,h):l},h.linkDistance=function(a){return arguments.length?(n="function"==typeof a?a:+a,h):n},h.distance=h.linkDistance,h.linkStrength=function(a){return arguments.length?(q="function"==typeof a?a:+a,h):q},h.friction=function(a){return arguments.length?(m=
+a,h):m},h.charge=function(a){return arguments.length?(s="function"==typeof a?a:+a,h):s},h.chargeDistance=function(a){return arguments.length?(r=a*a,h):Math.sqrt(r)},h.gravity=function(a){return arguments.length?(t=+a,h):t},h.theta=function(a){return arguments.length?(w=a*a,h):Math.sqrt(w)},h.alpha=function(a){return arguments.length?(a=+a,d?d=0<a?a:0:0<a&&(k.start({type:"start",alpha:d=a}),p.timer(h.tick)),h):d},h.start=function(){function a(d,e){if(!c){c=Array(k);for(h=0;k>h;++h)c[h]=[];for(h=0;l>
h;++h){var f=u[h];c[f.source.index].push(f.target);c[f.target.index].push(f.source)}}for(var g=c[b],h=-1,l=g.length;++h<l;)if(!isNaN(f=g[h][d]))return f;return Math.random()*e}var b,c,d,k=v.length,m=u.length,A=l[0],p=l[1];for(b=0;k>b;++b)(d=v[b]).index=b,d.weight=0;for(b=0;m>b;++b)d=u[b],"number"==typeof d.source&&(d.source=v[d.source]),"number"==typeof d.target&&(d.target=v[d.target]),++d.source.weight,++d.target.weight;for(b=0;k>b;++b)d=v[b],isNaN(d.x)&&(d.x=a("x",A)),isNaN(d.y)&&(d.y=a("y",p)),
isNaN(d.px)&&(d.px=d.x),isNaN(d.py)&&(d.py=d.y);if(e=[],"function"==typeof n)for(b=0;m>b;++b)e[b]=+n.call(this,u[b],b);else for(b=0;m>b;++b)e[b]=n;if(f=[],"function"==typeof q)for(b=0;m>b;++b)f[b]=+q.call(this,u[b],b);else for(b=0;m>b;++b)f[b]=q;if(g=[],"function"==typeof s)for(b=0;k>b;++b)g[b]=+s.call(this,v[b],b);else for(b=0;k>b;++b)g[b]=s;return h.resume()},h.resume=function(){return h.alpha(0.1)},h.stop=function(){return h.alpha(0)},h.drag=function(){return c||(c=p.behavior.drag().origin(va).on("dragstart.force",
mh).on("drag.force",b).on("dragend.force",nh)),arguments.length?(this.on("mouseover.force",oh).on("mouseout.force",ph).call(c),void 0):c},p.rebind(h,k,"on")};var ki=20,li=1,mi=1/0;p.layout.hierarchy=function(){function a(b,g,h){var k=e.call(c,b,g);if(b.depth=g,h.push(b),k&&(l=k.length)){for(var l,m=-1,p=b.children=Array(l),n=0,q=g+1;++m<l;)g=p[m]=a(k[m],q,h),g.parent=b,n+=g.value;d&&p.sort(d);f&&(b.value=n)}else delete b.children,f&&(b.value=+f.call(c,b,g)||0);return b}function b(a,d){var e=a.children,
g=0;if(e&&(h=e.length))for(var h,k=-1,l=d+1;++k<h;)g+=b(e[k],l);else f&&(g=+f.call(c,a,d)||0);return f&&(a.value=g),g}function c(b){var d=[];return a(b,0,d),d}var d=th,e=rh,f=sh;return c.sort=function(a){return arguments.length?(d=a,c):d},c.children=function(a){return arguments.length?(e=a,c):e},c.value=function(a){return arguments.length?(f=a,c):f},c.revalue=function(a){return b(a,0),a},c};p.layout.partition=function(){function a(b,c,d,e){var f=b.children;if(b.x=c,b.y=b.depth*e,b.dx=d,b.dy=e,f&&
(g=f.length)){var g,h,k=-1;for(d=b.value?d/b.value:0;++k<g;)a(h=f[k],c,b=h.value*d,e),c+=b}}function b(a){a=a.children;var c=0;if(a&&(d=a.length))for(var d,e=-1;++e<d;)c=Math.max(c,b(a[e]));return 1+c}function c(f,g){var h=d.call(this,f,g);return a(h[0],0,e[0],e[1]/b(h[0])),h}var d=p.layout.hierarchy(),e=[1,1];return c.size=function(a){return arguments.length?(e=a,c):e},Qb(c,d)};p.layout.pie=function(){function a(f){var g=f.map(function(c,d){return+b.call(a,c,d)}),h=+("function"==typeof d?d.apply(this,
arguments):d),k=(("function"==typeof e?e.apply(this,arguments):e)-h)/p.sum(g),l=p.range(f.length);null!=c&&l.sort(c===ig?function(a,b){return g[b]-g[a]}:function(a,b){return c(f[a],f[b])});var m=[];return l.forEach(function(a){var b;m[a]={data:f[a],value:b=g[a],startAngle:h,endAngle:h+=b*k}}),m}var b=Number,c=ig,d=0,e=Ga;return a.value=function(c){return arguments.length?(b=c,a):b},a.sort=function(b){return arguments.length?(c=b,a):c},a.startAngle=function(b){return arguments.length?(d=b,a):d},a.endAngle=
function(b){return arguments.length?(e=b,a):e},a};var ig={};p.layout.stack=function(){function a(h,k){var l=h.map(function(c,d){return b.call(a,c,d)}),m=l.map(function(b){return b.map(function(b,c){return[f.call(a,b,c),g.call(a,b,c)]})}),n=c.call(a,m,k),l=p.permute(l,n),m=p.permute(m,n),q,s,r=d.call(a,m,k),t=l.length,w=l[0].length;for(q=0;w>q;++q){e.call(a,l[0][q],s=r[q],m[0][q][1]);for(n=1;t>n;++n)e.call(a,l[n][q],s+=m[n-1][q][1],m[n][q][1])}return h}var b=va,c=wd,d=xd,e=wh,f=uh,g=vh;return a.values=
function(c){return arguments.length?(b=c,a):b},a.order=function(b){return arguments.length?(c="function"==typeof b?b:ni.get(b)||wd,a):c},a.offset=function(b){return arguments.length?(d="function"==typeof b?b:oi.get(b)||xd,a):d},a.x=function(b){return arguments.length?(f=b,a):f},a.y=function(b){return arguments.length?(g=b,a):g},a.out=function(b){return arguments.length?(e=b,a):e},a};var ni=p.map({"inside-out":function(a){var b,c=a.length,d=a.map(xh),e=a.map(yh),f=p.range(c).sort(function(a,b){return d[a]-
d[b]}),g=0,h=0,k=[],l=[];for(a=0;c>a;++a)b=f[a],h>g?(g+=e[b],k.push(b)):(h+=e[b],l.push(b));return l.reverse().concat(k)},reverse:function(a){return p.range(a.length).reverse()},"default":wd}),oi=p.map({silhouette:function(a){var b,c,d,e=a.length,f=a[0].length,g=[],h=0,k=[];for(c=0;f>c;++c){for(d=b=0;e>b;b++)d+=a[b][c][1];d>h&&(h=d);g.push(d)}for(c=0;f>c;++c)k[c]=(h-g[c])/2;return k},wiggle:function(a){var b,c,d,e,f,g,h,k,l,m=a.length,n=a[0],p=n.length,q=[];q[0]=k=l=0;for(c=1;p>c;++c){for(e=b=0;m>
b;++b)e+=a[b][c][1];f=b=0;for(h=n[c][0]-n[c-1][0];m>b;++b){d=0;for(g=(a[b][c][1]-a[b][c-1][1])/(2*h);b>d;++d)g+=(a[d][c][1]-a[d][c-1][1])/h;f+=g*a[b][c][1]}q[c]=k-=e?f/e*h:0;l>k&&(l=k)}for(c=0;p>c;++c)q[c]-=l;return q},expand:function(a){var b,c,d,e=a.length,f=a[0].length,g=1/e,h=[];for(c=0;f>c;++c){for(d=b=0;e>b;b++)d+=a[b][c][1];if(d)for(b=0;e>b;b++)a[b][c][1]/=d;else for(b=0;e>b;b++)a[b][c][1]=g}for(c=0;f>c;++c)h[c]=0;return h},zero:xd});p.layout.histogram=function(){function a(f,g){var h,k,l=
[],m=f.map(c,this),A=d.call(this,m,g),n=e.call(this,A,m,g);g=-1;for(var q=m.length,s=n.length-1,r=b?1:1/q;++g<s;)h=l[g]=[],h.dx=n[g+1]-(h.x=n[g]),h.y=0;if(0<s)for(g=-1;++g<q;)k=m[g],k>=A[0]&&k<=A[1]&&(h=l[p.bisect(n,k,1,s)-1],h.y+=r,h.push(f[g]));return l}var b=!0,c=Number,d=Bh,e=Ah;return a.value=function(b){return arguments.length?(c=b,a):c},a.range=function(b){return arguments.length?(d=ka(b),a):d},a.bins=function(b){return arguments.length?(e="number"==typeof b?function(a){return pf(a,b)}:ka(b),
a):e},a.frequency=function(c){return arguments.length?(b=!!c,a):b},a};p.layout.tree=function(){function a(f,g){function h(a,b){var d=a.children,e=a._tree;if(d&&(f=d.length)){for(var f,g,k,l=d[0],m=l,A=-1;++A<f;){k=d[A];h(k,g);var n=k;if(g){for(var p=void 0,q=n,s=n,r=n.parent.children[0],t=q._tree.mod,w=s._tree.mod,v=g._tree.mod,u=r._tree.mod;g=zd(g),q=yd(q),g&&q;){r=yd(r);s=zd(s);s._tree.ancestor=n;p=g._tree.prelim+v-q._tree.prelim-t+c(g,q);if(0<p){var J=g._tree.ancestor.parent==n.parent?g._tree.ancestor:
m,x=n,y=p,J=J._tree,x=x._tree,z=y/(x.number-J.number);J.change+=z;x.change-=z;x.shift+=y;x.prelim+=y;x.mod+=y;t+=p;w+=p}v+=g._tree.mod;t+=q._tree.mod;u+=r._tree.mod;w+=s._tree.mod}g&&!zd(s)&&(s._tree.thread=g,s._tree.mod+=v-w);q&&!yd(r)&&(r._tree.thread=q,r._tree.mod+=t-u,m=n)}g=k}A=f=0;n=a.children;for(m=n.length;0<=--m;)d=n[m]._tree,d.prelim+=f,d.mod+=f,f+=d.shift+(A+=d.change);k=0.5*(l._tree.prelim+k._tree.prelim);b?(e.prelim=b._tree.prelim+c(a,b),e.mod=e.prelim-k):e.prelim=k}else b&&(e.prelim=
b._tree.prelim+c(a,b))}function k(a,b){a.x=a._tree.prelim+b;var c=a.children;if(c&&(d=c.length)){var d,e=-1;for(b+=a._tree.mod;++e<d;)k(c[e],b)}}var l=b.call(this,f,g),m=l[0];Ya(m,function(a,b){a._tree={ancestor:a,prelim:0,mod:0,change:0,shift:0,number:b?b._tree.number+1:0}});h(m);k(m,-m._tree.prelim);var A=tc(m,Dh),n=tc(m,Ch),p=tc(m,Eh),q=A.x-c(A,n)/2,s=n.x+c(n,A)/2,r=p.depth||1;return Ya(m,e?function(a){a.x*=d[0];a.y=a.depth*d[1];delete a._tree}:function(a){a.x=(a.x-q)/(s-q)*d[0];a.y=a.depth/r*
d[1];delete a._tree}),l}var b=p.layout.hierarchy().sort(null).value(null),c=qf,d=[1,1],e=!1;return a.separation=function(b){return arguments.length?(c=b,a):c},a.size=function(b){return arguments.length?(e=null==(d=b),a):e?null:d},a.nodeSize=function(b){return arguments.length?(e=null!=(d=b),a):e?d:null},Qb(a,b)};p.layout.pack=function(){function a(f,g){var h=c.call(this,f,g),k=h[0],l=e[0],m=e[1],A=null==b?Math.sqrt:"function"==typeof b?b:function(){return b};if(k.x=k.y=0,Ya(k,function(a){a.r=+A(a.value)}),
Ya(k,tf),d){var n=d*(b?1:Math.max(2*k.r/l,2*k.r/m))/2;Ya(k,function(a){a.r+=n});Ya(k,tf);Ya(k,function(a){a.r-=n})}return vf(k,l/2,m/2,b?1:1/Math.max(2*k.r/l,2*k.r/m)),h}var b,c=p.layout.hierarchy().sort(Fh),d=0,e=[1,1];return a.size=function(b){return arguments.length?(e=b,a):e},a.radius=function(c){return arguments.length?(b=null==c||"function"==typeof c?c:+c,a):b},a.padding=function(b){return arguments.length?(d=+b,a):d},Qb(a,c)};p.layout.cluster=function(){function a(f,g){var h,k=b.call(this,
f,g),l=k[0],m=0;Ya(l,function(a){var b=a.children;b&&b.length?(a.x=Jh(b),a.y=Ih(b)):(a.x=h?m+=c(a,h):0,a.y=0,h=a)});var A=wf(l),n=xf(l),p=A.x-c(A,n)/2,q=n.x+c(n,A)/2;return Ya(l,e?function(a){a.x=(a.x-l.x)*d[0];a.y=(l.y-a.y)*d[1]}:function(a){a.x=(a.x-p)/(q-p)*d[0];a.y=(1-(l.y?a.y/l.y:1))*d[1]}),k}var b=p.layout.hierarchy().sort(null).value(null),c=qf,d=[1,1],e=!1;return a.separation=function(b){return arguments.length?(c=b,a):c},a.size=function(b){return arguments.length?(e=null==(d=b),a):e?null:
d},a.nodeSize=function(b){return arguments.length?(e=null!=(d=b),a):e?d:null},Qb(a,b)};p.layout.treemap=function(){function a(b,c){for(var d,e,f=-1,g=b.length;++f<g;)e=(d=b[f]).value*(0>c?0:c),d.area=isNaN(e)||0>=e?0:e}function b(c){var e=c.children;if(e&&e.length){var f,g=m(c),h=[],k=e.slice(),l=1/0,n="slice"===q?g.dx:"dice"===q?g.dy:"slice-dice"===q?1&c.depth?g.dy:g.dx:Math.min(g.dx,g.dy);a(k,g.dx*g.dy/c.value);for(h.area=0;0<(c=k.length);){h.push(c=k[c-1]);h.area+=c.area;var p;if(!(p="squarify"!==
q)){c=n;f=void 0;var r=h.area;p=0;for(var t=1/0,w=-1,v=h.length;++w<v;)(f=h[w].area)&&(t>f&&(t=f),f>p&&(p=f));p=(f=(r*=r,c*=c,r?Math.max(c*p*s/r,r/(c*t*s)):1/0))<=l}p?(k.pop(),l=f):(h.area-=h.pop().area,d(h,n,g,!1),n=Math.min(g.dx,g.dy),h.length=h.area=0,l=1/0)}h.length&&(d(h,n,g,!0),h.length=h.area=0);e.forEach(b)}}function c(b){var e=b.children;if(e&&e.length){var f=m(b),g=e.slice(),h=[];a(g,f.dx*f.dy/b.value);for(h.area=0;b=g.pop();)h.push(b),h.area+=b.area,null!=b.z&&(d(h,b.z?f.dx:f.dy,f,!g.length),
h.length=h.area=0);e.forEach(c)}}function d(a,b,c,e){var f,g=-1,k=a.length,l=c.x,m=c.y,A=b?h(a.area/b):0;if(b==c.dx){for((e||A>c.dy)&&(A=c.dy);++g<k;)f=a[g],f.x=l,f.y=m,f.dy=A,l+=f.dx=Math.min(c.x+c.dx-l,A?h(f.area/A):0);f.z=!0;f.dx+=c.x+c.dx-l;c.y+=A;c.dy-=A}else{for((e||A>c.dx)&&(A=c.dx);++g<k;)f=a[g],f.x=l,f.y=m,f.dx=A,m+=f.dy=Math.min(c.y+c.dy-m,A?h(f.area/A):0);f.z=!1;f.dy+=c.y+c.dy-m;c.x+=A;c.dx-=A}}function e(d){d=f||g(d);var h=d[0];return h.x=0,h.y=0,h.dx=k[0],h.dy=k[1],f&&g.revalue(h),a([h],
h.dx*h.dy/h.value),(f?c:b)(h),n&&(f=d),d}var f,g=p.layout.hierarchy(),h=Math.round,k=[1,1],l=null,m=Bd,n=!1,q="squarify",s=0.5*(1+Math.sqrt(5));return e.size=function(a){return arguments.length?(k=a,e):k},e.padding=function(a){function b(c){var d=a.call(e,c,c.depth);return null==d?Bd(c):yf(c,"number"==typeof d?[d,d,d,d]:d)}function c(b){return yf(b,a)}if(!arguments.length)return l;var d;return m=null==(l=a)?Bd:"function"==(d=typeof a)?b:"number"===d?(a=[a,a,a,a],c):c,e},e.round=function(a){return arguments.length?
(h=a?Math.round:Number,e):h!=Number},e.sticky=function(a){return arguments.length?(n=a,f=null,e):n},e.ratio=function(a){return arguments.length?(s=a,e):s},e.mode=function(a){return arguments.length?(q=a+"",e):q},Qb(e,g)};p.random={normal:function(a,b){var c=arguments.length;return 2>c&&(b=1),1>c&&(a=0),function(){var c,d;do c=2*Math.random()-1,d=2*Math.random()-1,d=c*c+d*d;while(!d||1<d);return a+b*c*Math.sqrt(-2*Math.log(d)/d)}},logNormal:function(){var a=p.random.normal.apply(p,arguments);return function(){return Math.exp(a())}},
bates:function(a){var b=p.random.irwinHall(a);return function(){return b()/a}},irwinHall:function(a){return function(){for(var b=0,c=0;a>c;c++)b+=Math.random();return b}}};p.scale={};var Lh={floor:va,ceil:va};p.scale.linear=function(){return Af([0,1],[0,1],nb,!1)};var Oh={s:1,g:1,p:1,r:1,e:1};p.scale.log=function(){return Bf(p.scale.linear().domain([0,1]),10,!0,[1,10])};var Cf=p.format(".0e"),Ph={floor:function(a){return-Math.ceil(-a)},ceil:function(a){return-Math.floor(-a)}};p.scale.pow=function(){return Df(p.scale.linear(),
1,[0,1])};p.scale.sqrt=function(){return p.scale.pow().exponent(0.5)};p.scale.ordinal=function(){return Ef([],{t:"range",a:[[]]})};p.scale.category10=function(){return p.scale.ordinal().range(pi)};p.scale.category20=function(){return p.scale.ordinal().range(qi)};p.scale.category20b=function(){return p.scale.ordinal().range(ri)};p.scale.category20c=function(){return p.scale.ordinal().range(si)};var pi=[2062260,16744206,2924588,14034728,9725885,9197131,14907330,8355711,12369186,1556175].map(Sb),qi=
[2062260,11454440,16744206,16759672,2924588,10018698,14034728,16750742,9725885,12955861,9197131,12885140,14907330,16234194,8355711,13092807,12369186,14408589,1556175,10410725].map(Sb),ri=[3750777,5395619,7040719,10264286,6519097,9216594,11915115,13556636,9202993,12426809,15186514,15190932,8666169,11356490,14049643,15177372,8077683,10834324,13528509,14589654].map(Sb),si=[3244733,7057110,10406625,13032431,15095053,16616764,16625259,16634018,3253076,7652470,10607003,13101504,7695281,10394312,12369372,
14342891,6513507,9868950,12434877,14277081].map(Sb);p.scale.quantile=function(){return Ff([],[])};p.scale.quantize=function(){return Gf(0,1,[0,1])};p.scale.threshold=function(){return Hf([0.5],[0,1])};p.scale.identity=function(){return If([0,1])};p.svg={};p.svg.arc=function(){function a(){var f=b.apply(this,arguments),g=c.apply(this,arguments),h=d.apply(this,arguments)+ob,k=e.apply(this,arguments)+ob,l=(h>k&&(l=h,h=k,k=l),k-h),m=W>l?"0":"1",A=Math.cos(h),h=Math.sin(h),n=Math.cos(k),k=Math.sin(k);
return l>=ti?f?"M0,"+g+"A"+g+","+g+" 0 1,1 0,"+-g+"A"+g+","+g+" 0 1,1 0,"+g+"M0,"+f+"A"+f+","+f+" 0 1,0 0,"+-f+"A"+f+","+f+" 0 1,0 0,"+f+"Z":"M0,"+g+"A"+g+","+g+" 0 1,1 0,"+-g+"A"+g+","+g+" 0 1,1 0,"+g+"Z":f?"M"+g*A+","+g*h+"A"+g+","+g+" 0 "+m+",1 "+g*n+","+g*k+"L"+f*n+","+f*k+"A"+f+","+f+" 0 "+m+",0 "+f*A+","+f*h+"Z":"M"+g*A+","+g*h+"A"+g+","+g+" 0 "+m+",1 "+g*n+","+g*k+"L0,0Z"}var b=Qh,c=Rh,d=Jf,e=Kf;return a.innerRadius=function(c){return arguments.length?(b=ka(c),a):b},a.outerRadius=function(b){return arguments.length?
(c=ka(b),a):c},a.startAngle=function(b){return arguments.length?(d=ka(b),a):d},a.endAngle=function(b){return arguments.length?(e=ka(b),a):e},a.centroid=function(){var a=(b.apply(this,arguments)+c.apply(this,arguments))/2,f=(d.apply(this,arguments)+e.apply(this,arguments))/2+ob;return[Math.cos(f)*a,Math.sin(f)*a]},a};var ob=-Ba,ti=Ga-N;p.svg.line=function(){return Lf(va)};var Fd=p.map({linear:Ha,"linear-closed":function(a){return Ha(a)+"Z"},step:function(a){for(var b=0,c=a.length,d=a[0],e=[d[0],",",
d[1]];++b<c;)e.push("H",(d[0]+(d=a[b])[0])/2,"V",d[1]);return 1<c&&e.push("H",d[0]),e.join("")},"step-before":Gd,"step-after":Hd,basis:Mf,"basis-open":function(a){if(4>a.length)return Ha(a);for(var b,c=[],d=-1,e=a.length,f=[0],g=[0];3>++d;)b=a[d],f.push(b[0]),g.push(b[1]);c.push(Ka(gb,f)+","+Ka(gb,g));for(--d;++d<e;)b=a[d],f.shift(),f.push(b[0]),g.shift(),g.push(b[1]),Jd(c,f,g);return c.join("")},"basis-closed":function(a){for(var b,c,d=-1,e=a.length,f=e+4,g=[],h=[];4>++d;)c=a[d%e],g.push(c[0]),h.push(c[1]);
b=[Ka(gb,g),",",Ka(gb,h)];for(--d;++d<f;)c=a[d%e],g.shift(),g.push(c[0]),h.shift(),h.push(c[1]),Jd(b,g,h);return b.join("")},bundle:function(a,b){var c=a.length-1;if(c)for(var d,e,f=a[0][0],g=a[0][1],h=a[c][0]-f,k=a[c][1]-g,l=-1;++l<=c;)d=a[l],e=l/c,d[0]=b*d[0]+(1-b)*(f+e*h),d[1]=b*d[1]+(1-b)*(g+e*k);return Mf(a)},cardinal:function(a,b){return 3>a.length?Ha(a):a[0]+xc(a,Id(a,b))},"cardinal-open":function(a,b){return 4>a.length?Ha(a):a[1]+xc(a.slice(1,a.length-1),Id(a,b))},"cardinal-closed":function(a,
b){return 3>a.length?Ha(a):a[0]+xc((a.push(a[0]),a),Id([a[a.length-2]].concat(a,[a[1]]),b))},monotone:function(a){if(3>a.length)a=Ha(a);else{var b=a[0],c,d,e,f,g=[],h;c=0;h=a.length-1;for(var k=[],l=a[1],m=k[0]=Kd(a[0],l);++c<h;)k[c]=(m+(m=Kd(l,l=a[c+1])))/2;h=(k[c]=m,k);k=-1;for(l=a.length-1;++k<l;)c=Kd(a[k],a[k+1]),$(c)<N?h[k]=h[k+1]=0:(d=h[k]/c,e=h[k+1]/c,f=d*d+e*e,9<f&&(f=3*c/Math.sqrt(f),h[k]=f*d,h[k+1]=f*e));for(k=-1;++k<=l;)f=(a[Math.min(l,k+1)][0]-a[Math.max(0,k-1)][0])/(6*(1+h[k]*h[k])),
g.push([f||0,h[k]*f||0]);a=b+xc(a,g)}return a}});Fd.forEach(function(a,b){b.key=a;b.closed=/-closed$/.test(a)});var Nf=[0,2/3,1/3,0],Of=[0,1/3,2/3,0],gb=[0,1/6,2/3,1/6];p.svg.line.radial=function(){var a=Lf(Pf);return a.radius=a.x,delete a.x,a.angle=a.y,delete a.y,a};Gd.reverse=Hd;Hd.reverse=Gd;p.svg.area=function(){return Qf(va)};p.svg.area.radial=function(){var a=Qf(Pf);return a.radius=a.x,delete a.x,a.innerRadius=a.x0,delete a.x0,a.outerRadius=a.x1,delete a.x1,a.angle=a.y,delete a.y,a.startAngle=
a.y0,delete a.y0,a.endAngle=a.y1,delete a.y1,a};p.svg.chord=function(){function a(e,f){var g=b(this,c,e,f),h=b(this,d,e,f);return"M"+g.p0+("A"+g.r+","+g.r+" 0 "+ +(g.a1-g.a0>W)+",1 "+g.p1)+(g.a0==h.a0&&g.a1==h.a1?"Q 0,0 "+g.p0:"Q 0,0 "+h.p0+("A"+h.r+","+h.r+" 0 "+ +(h.a1-h.a0>W)+",1 "+h.p1)+("Q 0,0 "+g.p0))+"Z"}function b(a,c,d,h){var k=c.call(a,d,h);c=e.call(a,k,h);d=f.call(a,k,h)+ob;a=g.call(a,k,h)+ob;return{r:c,a0:d,a1:a,p0:[c*Math.cos(d),c*Math.sin(d)],p1:[c*Math.cos(a),c*Math.sin(a)]}}var c=
md,d=nd,e=Sh,f=Jf,g=Kf;return a.radius=function(b){return arguments.length?(e=ka(b),a):e},a.source=function(b){return arguments.length?(c=ka(b),a):c},a.target=function(b){return arguments.length?(d=ka(b),a):d},a.startAngle=function(b){return arguments.length?(f=ka(b),a):f},a.endAngle=function(b){return arguments.length?(g=ka(b),a):g},a};p.svg.diagonal=function(){function a(e,f){var g=b.call(this,e,f),h=c.call(this,e,f),k=(g.y+h.y)/2,g=[g,{x:g.x,y:k},{x:h.x,y:k},h];return g=g.map(d),"M"+g[0]+"C"+g[1]+
" "+g[2]+" "+g[3]}var b=md,c=nd,d=Rf;return a.source=function(c){return arguments.length?(b=ka(c),a):b},a.target=function(b){return arguments.length?(c=ka(b),a):c},a.projection=function(b){return arguments.length?(d=b,a):d},a};p.svg.diagonal.radial=function(){var a=p.svg.diagonal(),b=Rf,c=a.projection;return a.projection=function(a){return arguments.length?c(Th(b=a)):b},a};p.svg.symbol=function(){function a(d,e){return(jg.get(b.call(this,d,e))||Sf)(c.call(this,d,e))}var b=Vh,c=Uh;return a.type=function(c){return arguments.length?
(b=ka(c),a):b},a.size=function(b){return arguments.length?(c=ka(b),a):c},a};var jg=p.map({circle:Sf,cross:function(a){a=Math.sqrt(a/5)/2;return"M"+-3*a+","+-a+"H"+-a+"V"+-3*a+"H"+a+"V"+-a+"H"+3*a+"V"+a+"H"+a+"V"+3*a+"H"+-a+"V"+a+"H"+-3*a+"Z"},diamond:function(a){a=Math.sqrt(a/(2*kg));var b=a*kg;return"M0,"+-a+"L"+b+",0 0,"+a+" "+-b+",0Z"},square:function(a){a=Math.sqrt(a)/2;return"M"+-a+","+-a+"L"+a+","+-a+" "+a+","+a+" "+-a+","+a+"Z"},"triangle-down":function(a){a=Math.sqrt(a/Pc);var b=a*Pc/2;return"M0,"+
b+"L"+a+","+-b+" "+-a+","+-b+"Z"},"triangle-up":function(a){a=Math.sqrt(a/Pc);var b=a*Pc/2;return"M0,"+-b+"L"+a+","+b+" "+-a+","+b+"Z"}});p.svg.symbolTypes=jg.keys();var qb,Bc,Pc=Math.sqrt(3),kg=Math.tan(30*Y),ta=[],Zf=0;ta.call=ia.call;ta.empty=ia.empty;ta.node=ia.node;ta.size=ia.size;p.transition=function(a){return arguments.length?qb?a.transition():a:Yf.transition()};p.transition.prototype=ta;ta.select=function(a){var b,c,d,e=this.id,f=[];a=v(a);for(var g=-1,h=this.length;++g<h;){f.push(b=[]);
for(var k=this[g],l=-1,m=k.length;++l<m;)(d=k[l])&&(c=a.call(d,d.__data__,l,g))?("__data__"in d&&(c.__data__=d.__data__),yc(c,l,e,d.__transition__[e]),b.push(c)):b.push(null)}return Rb(f,e)};ta.selectAll=function(a){var b,c,d,e,f=this.id,g=[];a=y(a);for(var h=-1,k=this.length;++h<k;)for(var l=this[h],m=-1,n=l.length;++m<n;)if(b=l[m]){e=b.__transition__[f];c=a.call(b,b.__data__,m,h);g.push(b=[]);for(var p=-1,q=c.length;++p<q;)(d=c[p])&&yc(d,p,f,e),b.push(d)}return Rb(g,f)};ta.filter=function(a){var b,
c,d,e=[];"function"!=typeof a&&(a=O(a));for(var f=0,g=this.length;g>f;f++){e.push(b=[]);c=this[f];for(var h=0,k=c.length;k>h;h++)(d=c[h])&&a.call(d,d.__data__,h,f)&&b.push(d)}return Rb(e,this.id)};ta.tween=function(a,b){var c=this.id;return 2>arguments.length?this.node().__transition__[c].tween.get(a):U(this,null==b?function(b){b.__transition__[c].tween.remove(a)}:function(d){d.__transition__[c].tween.set(a,b)})};ta.attr=function(a,b){function c(){this.removeAttribute(h)}function d(){this.removeAttributeNS(h.space,
h.local)}function e(a){return null==a?c:(a+="",function(){var b,c=this.getAttribute(h);return c!==a&&(b=g(c,a),function(a){this.setAttribute(h,b(a))})})}function f(a){return null==a?d:(a+="",function(){var b,c=this.getAttributeNS(h.space,h.local);return c!==a&&(b=g(c,a),function(a){this.setAttributeNS(h.space,h.local,b(a))})})}if(2>arguments.length){for(b in a)this.attr(b,a[b]);return this}var g="transform"==a?mf:nb,h=p.ns.qualify(a);return Ld(this,"attr."+a,b,h.local?f:e)};ta.attrTween=function(a,
b){function c(a,d){var f=b.call(this,a,d,this.getAttribute(e));return f&&function(a){this.setAttribute(e,f(a))}}function d(a,c){var f=b.call(this,a,c,this.getAttributeNS(e.space,e.local));return f&&function(a){this.setAttributeNS(e.space,e.local,f(a))}}var e=p.ns.qualify(a);return this.tween("attr."+a,e.local?d:c)};ta.style=function(a,b,c){function d(){this.style.removeProperty(a)}var e=arguments.length;if(3>e){if("string"!=typeof a){2>e&&(b="");for(c in a)this.style(c,a[c],b);return this}c=""}return Ld(this,
"style."+a,b,function(b){return null==b?d:(b+="",function(){var d,e=za.getComputedStyle(this,null).getPropertyValue(a);return e!==b&&(d=nb(e,b),function(b){this.style.setProperty(a,d(b),c)})})})};ta.styleTween=function(a,b,c){return 3>arguments.length&&(c=""),this.tween("style."+a,function(d,e){var f=b.call(this,d,e,za.getComputedStyle(this,null).getPropertyValue(a));return f&&function(b){this.style.setProperty(a,f(b),c)}})};ta.text=function(a){return Ld(this,"text",a,Wh)};ta.remove=function(){return this.each("end.transition",
function(){var a;2>this.__transition__.count&&(a=this.parentNode)&&a.removeChild(this)})};ta.ease=function(a){var b=this.id;return 1>arguments.length?this.node().__transition__[b].ease:("function"!=typeof a&&(a=p.ease.apply(p,arguments)),U(this,function(c){c.__transition__[b].ease=a}))};ta.delay=function(a){var b=this.id;return U(this,"function"==typeof a?function(c,d,e){c.__transition__[b].delay=+a.call(c,c.__data__,d,e)}:(a=+a,function(c){c.__transition__[b].delay=a}))};ta.duration=function(a){var b=
this.id;return U(this,"function"==typeof a?function(c,d,e){c.__transition__[b].duration=Math.max(1,a.call(c,c.__data__,d,e))}:(a=Math.max(1,a),function(c){c.__transition__[b].duration=a}))};ta.each=function(a,b){var c=this.id;if(2>arguments.length){var d=Bc,e=qb;qb=c;U(this,function(b,d,e){Bc=b.__transition__[c];a.call(b,b.__data__,d,e)});Bc=d;qb=e}else U(this,function(d){d=d.__transition__[c];(d.event||(d.event=p.dispatch("start","end"))).on(a,b)});return this};ta.transition=function(){for(var a,
b,c,d,e=this.id,f=++Zf,g=[],h=0,k=this.length;k>h;h++){g.push(a=[]);b=this[h];for(var l=0,m=b.length;m>l;l++)(c=b[l])&&(d=Object.create(c.__transition__[e]),d.delay+=d.duration,yc(c,l,f,d)),a.push(c)}return Rb(g,f)};p.svg.axis=function(){function a(l){l.each(function(){var a,l=p.select(this),m=this.__chart__||c,n=this.__chart__=c.copy(),q=null==k?n.ticks?n.ticks.apply(n,h):n.domain():k,s=null==b?n.tickFormat?n.tickFormat.apply(n,h):va:b,r=l.selectAll(".tick").data(q,n),q=r.enter().insert("g",".domain").attr("class",
"tick").style("opacity",N),t=p.transition(r.exit()).style("opacity",N).remove(),A=p.transition(r).style("opacity",1),w=uc(n),l=l.selectAll(".domain").data([0]),l=(l.enter().append("path").attr("class","domain"),p.transition(l));q.append("line");q.append("text");var v=q.select("line"),u=A.select("line"),s=r.select("text").text(s),r=q.select("text"),x=A.select("text");switch(d){case "bottom":a=Tf;v.attr("y2",e);r.attr("y",Math.max(e,0)+g);u.attr("x2",0).attr("y2",e);x.attr("x",0).attr("y",Math.max(e,
0)+g);s.attr("dy",".71em").style("text-anchor","middle");l.attr("d","M"+w[0]+","+f+"V0H"+w[1]+"V"+f);break;case "top":a=Tf;v.attr("y2",-e);r.attr("y",-(Math.max(e,0)+g));u.attr("x2",0).attr("y2",-e);x.attr("x",0).attr("y",-(Math.max(e,0)+g));s.attr("dy","0em").style("text-anchor","middle");l.attr("d","M"+w[0]+","+-f+"V0H"+w[1]+"V"+-f);break;case "left":a=Uf;v.attr("x2",-e);r.attr("x",-(Math.max(e,0)+g));u.attr("x2",-e).attr("y2",0);x.attr("x",-(Math.max(e,0)+g)).attr("y",0);s.attr("dy",".32em").style("text-anchor",
"end");l.attr("d","M"+-f+","+w[0]+"H0V"+w[1]+"H"+-f);break;case "right":a=Uf,v.attr("x2",e),r.attr("x",Math.max(e,0)+g),u.attr("x2",e).attr("y2",0),x.attr("x",Math.max(e,0)+g).attr("y",0),s.attr("dy",".32em").style("text-anchor","start"),l.attr("d","M"+f+","+w[0]+"H0V"+w[1]+"H"+f)}if(n.rangeBand)var y=n,z=y.rangeBand()/2,m=n=function(a){return y(a)+z};else m.rangeBand?m=n:t.call(a,n);q.call(a,m);A.call(a,n)})}var b,c=p.scale.linear(),d=lg,e=6,f=6,g=3,h=[10],k=null;return a.scale=function(b){return arguments.length?
(c=b,a):c},a.orient=function(b){return arguments.length?(d=b in ui?b+"":lg,a):d},a.ticks=function(){return arguments.length?(h=arguments,a):h},a.tickValues=function(b){return arguments.length?(k=b,a):k},a.tickFormat=function(c){return arguments.length?(b=c,a):b},a.tickSize=function(b){var c=arguments.length;return c?(e=+b,f=+arguments[c-1],a):e},a.innerTickSize=function(b){return arguments.length?(e=+b,a):e},a.outerTickSize=function(b){return arguments.length?(f=+b,a):f},a.tickPadding=function(b){return arguments.length?
(g=+b,a):g},a.tickSubdivide=function(){return arguments.length&&a},a};var lg="bottom",ui={top:1,right:1,bottom:1,left:1};p.svg.brush=function(){function a(f){f.each(function(){var f=p.select(this).style("pointer-events","all").style("-webkit-tap-highlight-color","rgba(0,0,0,0)").on("mousedown.brush",e).on("touchstart.brush",e),g=f.selectAll(".background").data([0]);g.enter().append("rect").attr("class","background").style("visibility","hidden").style("cursor","crosshair");f.selectAll(".extent").data([0]).enter().append("rect").attr("class",
"extent").style("cursor","move");var h=f.selectAll(".resize").data(t,va);h.exit().remove();h.enter().append("g").attr("class",function(a){return"resize "+a}).style("cursor",function(a){return vi[a]}).append("rect").attr("x",function(a){return/[ew]$/.test(a)?-3:null}).attr("y",function(a){return/^[ns]/.test(a)?-3:null}).attr("width",6).attr("height",6).style("visibility","hidden");h.style("display",a.empty()?"none":null);var m,f=p.transition(f),g=p.transition(g);k&&(m=uc(k),g.attr("x",m[0]).attr("width",
m[1]-m[0]),c(f));l&&(m=uc(l),g.attr("y",m[0]).attr("height",m[1]-m[0]),d(f));b(f)})}function b(a){a.selectAll(".resize").attr("transform",function(a){return"translate("+m[+/e$/.test(a)]+","+n[+/^s/.test(a)]+")"})}function c(a){a.select(".extent").attr("x",m[0]);a.selectAll(".extent,.n>rect,.s>rect").attr("width",m[1]-m[0])}function d(a){a.select(".extent").attr("y",n[0]);a.selectAll(".extent,.e>rect,.w>rect").attr("height",n[1]-n[0])}function e(){function t(){var a=p.mouse(y),e=!1;x&&(a[0]+=x[0],
a[1]+=x[1]);E||(p.event.altKey?(u||(u=[(m[0]+m[1])/2,(n[0]+n[1])/2]),I[0]=m[+(a[0]<u[0])],I[1]=n[+(a[1]<u[1])]):u=null);F&&w(a,k,0)&&(c(D),e=!0);G&&w(a,l,1)&&(d(D),e=!0);e&&(b(D),B({type:"brush",mode:E?"move":"resize"}))}function w(a,b,c){var d,e,h=uc(b);b=h[0];var h=h[1],k=I[c],l=c?n:m,p=l[1]-l[0];return E&&(b-=k,h-=p+k),d=(c?r:q)?Math.max(b,Math.min(h,a[c])):a[c],E?e=(d+=k)+p:(u&&(k=Math.max(b,Math.min(h,2*u[c]-d))),d>k?(e=d,d=k):e=k),l[0]!=d||l[1]!=e?(c?g=null:f=null,l[0]=d,l[1]=e,!0):void 0}function v(){t();
D.style("pointer-events","all").selectAll(".resize").style("display",a.empty()?"none":null);p.select("body").style("cursor",null);K.on("mousemove.brush",null).on("mouseup.brush",null).on("touchmove.brush",null).on("touchend.brush",null).on("keydown.brush",null).on("keyup.brush",null);H();B({type:"brushend"})}var u,x,y=this,z=p.select(p.event.target),B=h.of(y,arguments),D=p.select(y),C=z.datum(),F=!/^(n|s)$/.test(C)&&k,G=!/^(e|w)$/.test(C)&&l,E=z.classed("extent"),H=ea(),I=p.mouse(y),K=p.select(za).on("keydown.brush",
function(){32==p.event.keyCode&&(E||(u=null,I[0]-=m[1],I[1]-=n[1],E=2),s())}).on("keyup.brush",function(){32==p.event.keyCode&&2==E&&(I[0]+=m[1],I[1]+=n[1],E=0,s())});if(p.event.changedTouches?K.on("touchmove.brush",t).on("touchend.brush",v):K.on("mousemove.brush",t).on("mouseup.brush",v),D.interrupt().selectAll("*").interrupt(),E)I[0]=m[0]-I[0],I[1]=n[0]-I[1];else if(C){var M=+/w$/.test(C),C=+/^n/.test(C);x=[m[1-M]-I[0],n[1-C]-I[1]];I[0]=m[M];I[1]=n[C]}else p.event.altKey&&(u=I.slice());D.style("pointer-events",
"none").selectAll(".resize").style("display",null);p.select("body").style("cursor",z.style("cursor"));B({type:"brushstart"});t()}var f,g,h=F(a,"brushstart","brush","brushend"),k=null,l=null,m=[0,0],n=[0,0],q=!0,r=!0,t=Td[0];return a.event=function(a){a.each(function(){var a=h.of(this,arguments),b={x:m,y:n,i:f,j:g},c=this.__chart__||b;this.__chart__=b;qb?p.select(this).transition().each("start.brush",function(){f=c.i;g=c.j;m=c.x;n=c.y;a({type:"brushstart"})}).tween("brush:brush",function(){var c=sc(m,
b.x),d=sc(n,b.y);return f=g=null,function(e){m=b.x=c(e);n=b.y=d(e);a({type:"brush",mode:"resize"})}}).each("end.brush",function(){f=b.i;g=b.j;a({type:"brush",mode:"resize"});a({type:"brushend"})}):(a({type:"brushstart"}),a({type:"brush",mode:"resize"}),a({type:"brushend"}))})},a.x=function(b){return arguments.length?(k=b,t=Td[!k<<1|!l],a):k},a.y=function(b){return arguments.length?(l=b,t=Td[!k<<1|!l],a):l},a.clamp=function(b){return arguments.length?(k&&l?(q=!!b[0],r=!!b[1]):k?q=!!b:l&&(r=!!b),a):
k&&l?[q,r]:k?q:l?r:null},a.extent=function(b){var c,d,e,h,q;return arguments.length?(k&&(c=b[0],d=b[1],l&&(c=c[0],d=d[0]),f=[c,d],k.invert&&(c=k(c),d=k(d)),c>d&&(q=c,c=d,d=q),(c!=m[0]||d!=m[1])&&(m=[c,d])),l&&(e=b[0],h=b[1],k&&(e=e[1],h=h[1]),g=[e,h],l.invert&&(e=l(e),h=l(h)),e>h&&(q=e,e=h,h=q),(e!=n[0]||h!=n[1])&&(n=[e,h])),a):(k&&(f?(c=f[0],d=f[1]):(c=m[0],d=m[1],k.invert&&(c=k.invert(c),d=k.invert(d)),c>d&&(q=c,c=d,d=q))),l&&(g?(e=g[0],h=g[1]):(e=n[0],h=n[1],l.invert&&(e=l.invert(e),h=l.invert(h)),
e>h&&(q=e,e=h,h=q))),k&&l?[[c,e],[d,h]]:k?[c,d]:l&&[e,h])},a.clear=function(){return a.empty()||(m=[0,0],n=[0,0],f=g=null),a},a.empty=function(){return!!k&&m[0]==m[1]||!!l&&n[0]==n[1]},p.rebind(a,h,"on")};var vi={n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},Td=["n e s w nw ne se sw".split(" "),["e","w"],["n","s"],[]],Ud=P.format=ag.timeFormat,mg=Ud.utc,ng=mg("%Y-%m-%dT%H:%M:%S.%LZ");Ud.iso=Date.prototype.toISOString&&
+new Date("2000-01-01T00:00:00.000Z")?Md:ng;Md.parse=function(a){a=new Date(a);return isNaN(a)?null:a};Md.toString=ng.toString;P.second=ib(function(a){return new Aa(1E3*Math.floor(a/1E3))},function(a,b){a.setTime(a.getTime()+1E3*Math.floor(b))},function(a){return a.getSeconds()});P.seconds=P.second.range;P.seconds.utc=P.second.utc.range;P.minute=ib(function(a){return new Aa(6E4*Math.floor(a/6E4))},function(a,b){a.setTime(a.getTime()+6E4*Math.floor(b))},function(a){return a.getMinutes()});P.minutes=
P.minute.range;P.minutes.utc=P.minute.utc.range;P.hour=ib(function(a){var b=a.getTimezoneOffset()/60;return new Aa(36E5*(Math.floor(a/36E5-b)+b))},function(a,b){a.setTime(a.getTime()+36E5*Math.floor(b))},function(a){return a.getHours()});P.hours=P.hour.range;P.hours.utc=P.hour.utc.range;P.month=ib(function(a){return a=P.day(a),a.setDate(1),a},function(a,b){a.setMonth(a.getMonth()+b)},function(a){return a.getMonth()});P.months=P.month.range;P.months.utc=P.month.utc.range;var zc=[1E3,5E3,15E3,3E4,6E4,
3E5,9E5,18E5,36E5,108E5,216E5,432E5,864E5,1728E5,6048E5,2592E6,7776E6,31536E6],Vd=[[P.second,1],[P.second,5],[P.second,15],[P.second,30],[P.minute,1],[P.minute,5],[P.minute,15],[P.minute,30],[P.hour,1],[P.hour,3],[P.hour,6],[P.hour,12],[P.day,1],[P.day,2],[P.week,1],[P.month,1],[P.month,3],[P.year,1]],wi=Ud.multi([[".%L",function(a){return a.getMilliseconds()}],[":%S",function(a){return a.getSeconds()}],["%I:%M",function(a){return a.getMinutes()}],["%I %p",function(a){return a.getHours()}],["%a %d",
function(a){return a.getDay()&&1!=a.getDate()}],["%b %d",function(a){return 1!=a.getDate()}],["%B",function(a){return a.getMonth()}],["%Y",ub]]),Xh={range:function(a,b,c){return p.range(Math.ceil(a/c)*c,+b,c).map(pb)},floor:va,ceil:va};Vd.year=P.year;P.scale=function(){return Nd(p.scale.linear(),Vd,wi)};var og=Vd.map(function(a){return[a[0].utc,a[1]]}),xi=mg.multi([[".%L",function(a){return a.getUTCMilliseconds()}],[":%S",function(a){return a.getUTCSeconds()}],["%I:%M",function(a){return a.getUTCMinutes()}],
["%I %p",function(a){return a.getUTCHours()}],["%a %d",function(a){return a.getUTCDay()&&1!=a.getUTCDate()}],["%b %d",function(a){return 1!=a.getUTCDate()}],["%B",function(a){return a.getUTCMonth()}],["%Y",ub]]);og.year=P.year.utc;P.scale.utc=function(){return Nd(p.scale.linear(),og,xi)};p.text=$c(function(a){return a.responseText});p.json=function(a,b){return Wb(a,"application/json",Yh,b)};p.html=function(a,b){return Wb(a,"text/html",Zh,b)};p.xml=$c(function(a){return a.responseXML});"function"==
typeof define&&define.amd?define(p):"object"==typeof module&&module.exports?module.exports=p:this.d3=p}();"use strict";
tv.exportTo("tv.b.ui",function(){function e(a,c){var e=tv.b.ui.getColorIdForGeneralPurposeString(a);c&&(e+=b);return tv.b.ui.getColorPalette()[e]}var c=document.currentScript.ownerDocument,b=tv.b.ui.getColorPaletteHighlightIdBoost(),a=tv.b.ui.define("svg",void 0,"http://www.w3.org/2000/svg");a.prototype={__proto__:HTMLUnknownElement.prototype,decorate:function(){this.classList.add("chart-base");this.seriesKeys_=this.data_=this.chartTitle_=void 0;this.width_=400;this.height_=300;for(var a=c.querySelector("#chart-base-template").content.querySelector("svg"),
b=0;b<a.children.length;b++)this.appendChild(a.children[b].cloneNode(!0));Object.defineProperty(this,"width",{get:function(){return this.width_},set:function(a){this.width_=a;this.updateContents_()}});Object.defineProperty(this,"height",{get:function(){return this.height_},set:function(a){this.height_=a;this.updateContents_()}})},get chartTitle(){return chartTitle_},set chartTitle(a){this.chartTitle_=a;this.updateContents_()},get chartAreaElement(){return this.querySelector("#chart-area")},get data(){return this.data_},
setSize:function(a){this.width_=a.width;this.height_=a.height;this.updateContents_()},get margin(){var a={top:20,right:20,bottom:30,left:50};this.chartTitle_&&(a.top+=20);return a},get chartAreaSize(){var a=this.margin;return{width:this.width_-a.left-a.right,height:this.height_-a.top-a.bottom}},getLegendKeys_:function(){throw Error("Not implemented");},updateScales_:function(a,b){throw Error("Not implemented");},updateContents_:function(){var a=this.margin,b=this.chartAreaSize.width,c=this.chartAreaSize.height,
e=d3.select(this);e.attr("width",this.width_);e.attr("height",this.height_);e=d3.select(this.chartAreaElement);e.attr("transform","translate("+a.left+","+a.top+")");this.updateScales_(b,c);if(this.xScale_&&this.yScale_){var a=d3.svg.axis().scale(this.xScale_).orient("bottom"),k=d3.svg.axis().scale(this.yScale_).orient("left");e.select(".x.axis").attr("transform","translate(0,"+c+")").call(a);e.select(".y.axis").call(k)}c=e.select("#title");this.chartTitle_?c.attr("transform","translate("+0.5*b+",-5)").style("display",
void 0).style("text-anchor","middle").attr("class","title").attr("width",b).text(this.chartTitle_):c.style("display","none");this.updateLegend_()},updateLegend_:function(){var a=this.getLegendKeys_();if(void 0!==a){var b=d3.select(this.chartAreaElement),c=this.chartAreaSize,a=b.selectAll(".legend").data(a.slice().reverse());a.enter().append("g").attr("class","legend").attr("transform",function(a,b){return"translate(0,"+20*b+")"}).append("text").text(function(a){return a});a.exit().remove();a.attr("x",
c.width-18).attr("width",18).attr("height",18).style("fill",function(a){return e(a,this.currentHighlightedLegendKey===a)}.bind(this));a.selectAll("text").attr("x",c.width-24).attr("y",9).attr("dy",".35em").style("text-anchor","end").text(function(a){return a})}},get highlightedLegendKey(){return this.highlightedLegendKey_},set highlightedLegendKey(a){this.highlightedLegendKey_=a;this.updateHighlight_()},get currentHighlightedLegendKey(){return this.tempHighlightedLegendKey_?this.tempHighlightedLegendKey_:
this.highlightedLegendKey_},pushTempHighlightedLegendKey:function(a){if(this.tempHighlightedLegendKey_)throw Error("push cannot nest");this.tempHighlightedLegendKey_=a;this.updateHighlight_()},popTempHighlightedLegendKey:function(a){if(this.tempHighlightedLegendKey_!=a)throw Error("pop cannot happen");this.tempHighlightedLegendKey_=void 0;this.updateHighlight_()},updateHighlight_:function(){var a=this;d3.select(this.chartAreaElement).selectAll(".legend").each(function(b){var c=b==a.currentHighlightedLegendKey;
b=e(b,c);this.style.fill=b;this.style.fontWeight=c?"bold":""})}};return{getColorOfKey:e,ChartBase:a}});"use strict";
tv.exportTo("tv.b.ui",function(){function e(a,b,c){var e;c?(c=Math.max(b-1,0),e=b):(c=b,e=Math.min(b+1,a.length-1));return 0.5*(a[b].x-a[c].x)+0.5*(a[e].x-a[b].x)}var c=tv.b.ui.ChartBase,b=tv.b.ui.getColorOfKey,a=tv.b.ui.define("line-chart",c);a.prototype={__proto__:c.prototype,decorate:function(){c.prototype.decorate.call(this);this.classList.add("line-chart");this.brushedRange_=new tv.b.Range;this.xScale_=d3.scale.linear();this.yScale_=d3.scale.linear();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))},set data(a){if(0==a.length)throw Error("Data must be nonzero. Pass undefined.");var b;if(void 0!==a){if(void 0===a[0].x)throw Error('Elements must have "x" fields');b=d3.keys(a[0]);b.splice(b.indexOf("x"),1);if(0==b.length)throw Error("Elements must have at least one other field than X");}else b=void 0;this.data_=a;this.seriesKeys_=b;this.updateContents_()},
set brushedRange(a){this.brushedRange_.reset();this.brushedRange_.addRange(a);this.updateContents_()},computeBrushRangeFromIndices:function(a,b){var c=new tv.b.Range,g=Math.min(a,b),k=Math.max(a,b),g=Math.max(0,g),k=Math.min(this.data_.length-1,k);c.addValue(this.data_[g].x-e(this.data_,g,!0));c.addValue(this.data_[k].x+e(this.data_,k,!1));return c},getLegendKeys_:function(){return this.seriesKeys_&&1<this.seriesKeys_.length?this.seriesKeys_.slice():[]},updateScales_:function(a,b){if(void 0!==this.data_){this.xScale_.range([0,
a]);this.xScale_.domain(d3.extent(this.data_,function(a){return a.x}));var c=new tv.b.Range;this.data_.forEach(function(a){this.seriesKeys_.forEach(function(b){c.addValue(a[b])})},this);this.yScale_.range([b,0]);this.yScale_.domain([c.min,c.max])}},updateContents_:function(){c.prototype.updateContents_.call(this);if(this.data_){var a=d3.select(this.chartAreaElement),d=this.brushedRange_.isEmpty?[]:[this.brushedRange_],d=a.select("#brushes").selectAll("rect").data(d);d.enter().append("rect");d.exit().remove();
d.attr("x",function(a){return this.xScale_(a.min)}.bind(this)).attr("y",0).attr("width",function(a){return this.xScale_(a.max)-this.xScale_(a.min)}.bind(this)).attr("height",this.chartAreaSize.height);a=a.select("#series").selectAll("path").data(this.seriesKeys_);a.enter().append("path").attr("class","line").style("stroke",function(a){return b(a)}).attr("d",function(a){return d3.svg.line().x(function(a){return this.xScale_(a.x)}.bind(this)).y(function(b){return this.yScale_(b[a])}.bind(this))(this.data_)}.bind(this));
a.exit().remove()}},getDataIndexAtClientPoint_:function(a,b,c){var e=this.getBoundingClientRect(),k=this.margin,l=this.chartAreaSize;b=b-e.top-k.top;if(!c||!(0>b||b>=l.height)){a=this.xScale_.invert(a-e.left-k.left);var m;this.data_&&(m=d3.bisector(function(a){return a.x}).right,m=m(this.data_,a)-1);return m}},onMouseDown_:function(a){var b=this.getDataIndexAtClientPoint_(a.clientX,a.clientY,!0);void 0!==b&&tv.b.ui.trackMouseMovesUntilMouseUp(this.onMouseMove_.bind(this,a.button),this.onMouseUp_.bind(this,
a.button));a.preventDefault();a.stopPropagation();var c=new Event("item-mousedown");c.data=this.data_[b];c.index=b;c.buttons=a.buttons;this.dispatchEvent(c)},onMouseMove_:function(a,b){var c=this.getDataIndexAtClientPoint_(b.clientX,b.clientY,!1);void 0!==b.buttons&&(b.preventDefault(),b.stopPropagation());var e=new Event("item-mousemove");e.data=this.data_[c];e.index=c;e.button=a;this.dispatchEvent(e)},onMouseUp_:function(a,b){var c=this.getDataIndexAtClientPoint_(b.clientX,b.clientY,!1);b.preventDefault();
b.stopPropagation();var e=new Event("item-mouseup");e.data=this.data_[c];e.index=c;e.button=a;this.dispatchEvent(e)}};return{LineChart:a}});"use strict";
Polymer("tv-e-analysis-side-panel-alerts",{ready:function(){this.rangeOfInterest_=new tv.b.Range;this.selection_=void 0},get model(){return this.model_},set model(e){this.model_=e;this.updateContents_()},set selection(e){},set rangeOfInterest(e){},selectAlertsOfType:function(e){var c=this.model_.alerts.filter(function(a){return a.title===e}),b=new tv.c.RequestSelectionChangeEvent;b.selection=new tv.c.Selection(c);this.dispatchEvent(b)},alertsByType_:function(e){var c={};e.forEach(function(b){var a=
b.type.title;c[a]||(c[a]=[]);c[a].push(b)});return c},alertsTableRows_:function(e){return Object.keys(e).map(function(c){return{alertType:c,count:e[c].length}})},alertsTableColumns_:function(){return[{title:"Alert type",value:function(e){return e.alertType},width:"180px"},{title:"Count",width:"100%",value:function(e){return e.count}}]},createAlertsTable_:function(e){e=this.alertsByType_(e);var c=document.createElement("tracing-analysis-nested-table");c.tableColumns=this.alertsTableColumns_();c.tableRows=
this.alertsTableRows_(e);c.rowClickCallback=function(b){this.selectAlertsOfType(b.target.parentElement.firstChild.innerText)}.bind(this);return c},updateContents_:function(){this.$.result_area.textContent="";if(void 0!==this.model_){var e=this.createAlertsTable_(this.model_.alerts);this.$.result_area.appendChild(e)}},supportsModel:function(e){return void 0==e?{supported:!1,reason:"Unknown tracing model"}:{supported:!0}},textLabel:"Alerts"});"use strict";
tv.exportTo("tv.c.trace_model",function(){function e(b){tv.c.trace_model.TimedEvent.call(this);this.threadTimeRanges=b;this.start=c.min(b,function(a){return a.start});this.end=c.max(b,function(a){return a.end});this.totalDuration=c.sum(b,function(a){return a.end-a.start})}var c=tv.b.Statistics;e.prototype={__proto__:tv.c.trace_model.Event.prototype,shiftTimestampsForward:function(b){this.start+=b;this.end+=b;for(var a=1;a<this.threadTimeRanges.length;a++)this.threadTimeRanges[a].start+=b,this.threadTimeRanges[a].end+=
b},addBoundsToRange:function(b){b.addValue(this.start);b.addValue(this.end)}};return{Frame:e}});"use strict";
tv.exportTo("tv.e.audits",function(){return{mergeEvents:function(e,c,b,a,f){function d(){n.push(l[0]);l.splice(0,1);q=k(n[0])}function h(){0!=n.length&&(m.push(b(n)),n=[],0!=l.length&&d())}var g=a,k=f;g||(g=function(a){return a.start});k||(k=function(a){return a.end});var l=e.slice();l.sort(function(a,b){return g(a)-g(b)});if(1>=l.length)return c=[],1==l.length&&c.push(b(l)),c;var m=[],n=[],q;for(d();l.length;)e=l[0],g(e)-q<c?(q=Math.max(q,k(e)),l.splice(0,1),n.push(e)):h();h();return m}}});"use strict";
tv.exportTo("tv.e.audits",function(){function e(a){if(!a)return[];var b=[];a.sliceGroup.slices.forEach(function(a){("obtainView"==a.title||"setupListItem"==a.title||"deliverInputEvent"==a.title)&&b.push(a)});a.asyncSliceGroup.slices.forEach(function(a){"deliverInputEvent"==a.title&&b.push(a)});return tv.e.audits.mergeEvents(b,3,function(a){return{start:a[0].start,end:a[a.length-1].end}})}function c(a,b){var c=tv.b.findClosestIntervalInSortedIntervals(b,function(a){return a.start},function(a){return a.end},
a,3);return c?c.start:a}function b(a){if(!a.uiThread)return[];var b=e(a.uiThread),d=[];a.uiThread.sliceGroup.getSlicesOfName(k).forEach(function(e){var f=[],h={thread:a.uiThread,start:c(e.start,b),end:e.end};f.push(h);a:{var k=a.renderThread;e=e.end;if(k)for(var k=k.sliceGroup.slices,m=0;m<k.length;m++){var B=k[m];if(B.title==l&&B.start<=e&&e<=B.end){e=B;break a}}e=void 0}if(e){if(k=e.findDescendentSlice(n))h.end=Math.min(h.end,k.start);f.push({thread:a.renderThread,start:e.start,end:e.end})}d.push(new g(f))});
return d}function a(a){if(!a.renderThread)return[];var b=[];a.renderThread.sliceGroup.getSlicesOfName(m).forEach(function(c){b.push(new g([{thread:a.renderThread,start:c.start,end:c.end}]))});return b}function f(a){var b=void 0,c;for(c in a.counters)if(/^android\.aq\:pending/.test(c)&&1==a.counters[c].numSeries){b=a.counters[c].series[0].samples;break}if(!b)return[];var d=[],e=0;b.forEach(function(a){a.value>e&&d.push(a);e=a.value});return d}function d(a){if(!a)return[];var b=[];a.asyncSliceGroup.iterateAllEvents(function(a){/^animator\:/.test(a.title)&&
b.push(a)});return b}function h(a,b,c){this.process=a;this.uiThread=b;this.renderThread=c;this.inputs_=this.frames_=void 0}var g=tv.c.trace_model.Frame,k="performTraversals",l="DrawFrame",m="doFrame",n="syncFrameState";h.createForProcessIfPossible=function(a){var b=a.getThread(a.pid),c;if(c=b){a:{c=b.sliceGroup.slices;for(var d=0;d<c.length;d++)if(c[d].title==k){c=b;break a}c=void 0}c=!c}c&&(b=void 0);c=a.findAllThreadsNamed("RenderThread");c=1==c.length?c[0]:void 0;if(b||c)return new h(a,b,c)};h.prototype=
{getFrames:function(){if(!this.frames_){var c=b(this),d=a(this);this.frames_=c.concat(d);this.frames_.sort(function(a,b){a.end-b.end})}return this.frames_},getInputSamples:function(){this.inputs_||(this.inputs_=f(this.process));return this.inputs_},getAnimationAsyncSlices:function(){this.animations_||(this.animations_=d(this.uiThread));return this.animations_}};return{AndroidApp:h}});"use strict";
tv.exportTo("tv.e.audits",function(){function e(a,b){var c=a.counters[b];c||(c=a.counters[d]);if(c&&1==c.numSeries&&1<c.numSamples)return c.series[0].timestamps}function c(b,c){this.process=b;this.thread=c;this.sfVsync_=this.appVsync_=void 0;this.appVsyncTimestamps_=e(b,f);this.sfVsyncTimestamps_=e(b,a)}var b=tv.b.findLowIndexInSortedArray,a="android.VSYNC-sf",f="android.VSYNC-app",d="android.VSYNC";c.createForProcessIfPossible=function(a){var b=a.getThread(a.pid);if(b&&b.name&&/surfaceflinger/.test(b.name))return new c(a,
b);b=a.findAllThreadsNamed("SurfaceFlinger");if(1==b.length)return new c(a,b[0])};c.prototype={get hasVsyncs(){return!!this.appVsyncTimestamps_&&!!this.sfVsyncTimestamps_},getFrameKickoff:function(a){if(!this.hasVsyncs)throw Error("cannot query vsync info without vsyncs");a=b(this.appVsyncTimestamps_,function(a){return a},a);return 1>a?void 0:this.appVsyncTimestamps_[a-1]},getFrameDeadline:function(a){if(!this.hasVsyncs)throw Error("cannot query vsync info without vsyncs");a=b(this.sfVsyncTimestamps_,
function(a){return a},a);return a>=this.sfVsyncTimestamps_.length?void 0:this.sfVsyncTimestamps_[a]}};return{AndroidSurfaceFlinger:c}});"use strict";
tv.exportTo("tv.e.audits",function(){function e(a,b,c){a&&a.sliceGroup.slices.forEach(function(a){a.title in b&&c(a)})}function c(c){this.model=c;this.apps=[];this.surfaceFlinger=void 0;c.getAllProcesses().forEach(function(c){var d=b.createForProcessIfPossible(c);if(d)this.apps.push(d);else if(c=a.createForProcessIfPossible(c))this.surfaceFlinger=c},this)}var b=tv.e.audits.AndroidApp,a=tv.e.audits.AndroidSurfaceFlinger,f={doComposition:!0,updateTexImage:!0,postFramebuffer:!0},d={performTraversals:!0,
deliverInputEvent:!0},h={doFrame:!0};c.prototype={iterateImportantSlices:function(a){this.surfaceFlinger&&e(this.surfaceFlinger.thread,f,a);this.apps.forEach(function(b){e(b.uiThread,d,a);e(b.renderThread,h,a)})}};return{AndroidModelHelper:c}});"use strict";
tv.exportTo("tv.e.audits",function(){function e(a){this.model=a;a=new b(a);if(a.apps.length||a.surfaceFlinger)this.helper=a}var c=tv.c.Auditor,b=tv.e.audits.AndroidModelHelper;e.prototype={__proto__:c.prototype,renameAndSort_:function(){this.model.getAllProcesses().forEach(function(a){if(this.helper.surfaceFlinger&&a==this.helper.surfaceFlinger.process)a.name||(a.name="SurfaceFlinger"),a.sortIndex=Number.NEGATIVE_INFINITY;else{var b=a.getThread(a.pid);!a.name&&(b&&b.name)&&(/^ndroid\./.test(b.name)&&
(b.name="a"+b.name),a.name=b.name);a.sortIndex=0;for(var c in a.threads)a.sortIndex-=a.threads[c].sliceGroup.slices.length}},this);this.model.getAllThreads().forEach(function(a){a.tid==a.parent.pid&&(a.sortIndex=-3);"RenderThread"==a.name&&(a.sortIndex=-2);/^hwuiTask/.test(a.name)&&(a.sortIndex=-1)})},pushFramesAndJudgeJank_:function(){var a=0,b=0;this.helper.apps.forEach(function(c){c.process.frames=c.getFrames();c.process.frames.forEach(function(b){16.67<b.totalDuration&&a++});b+=c.process.frames.length});
if(b){var c=a/b;this.model.faviconHue=0.3<c?"red":0.05<c?"yellow":"green"}},runAnnotate:function(){this.helper&&(this.renameAndSort_(),this.pushFramesAndJudgeJank_(),this.helper.iterateImportantSlices(function(a){a.important=!0}))},runAudit:function(){this.helper&&(this.helper.apps.forEach(function(a){a.getFrames().forEach(this.getFrameTimingAlerts,this);this.addSaveLayerAlerts(a.renderThread)},this),this.addRenderingInteractionRecords(),this.addInputInteractionRecords())},getFrameTimingAlerts:function(a){if(16.67<
a.totalDuration){var b=new tv.c.trace_model.AlertType("Long frame","Frames should take fewer than16.67ms to ensure smooth performance.",tv.c.trace_model.ALERT_SEVERITY.WARNING);a=new tv.c.trace_model.Alert(b,a.start,{totalDuration:a.totalDuration});this.model.alerts.push(a)}},addSaveLayerAlerts:function(a){if(a){var b=/caused (unclipped )?saveLayer (\d+)x(\d+)/;a.sliceGroup.slices.forEach(function(a){var c=b.exec(a.title);if(c){var e=new tv.c.trace_model.AlertType("Inefficient Alpha","http://developer.android.com/reference/android/view/View.html#setAlpha(float)",
tv.c.trace_model.ALERT_SEVERITY.CRITICAL),c={width:parseInt(c[2]),height:parseInt(c[3])};a=new tv.c.trace_model.Alert(e,a.start,c);this.model.alerts.push(a)}},this)}},addRenderingInteractionRecords:function(){var a=[];this.helper.apps.forEach(function(b){a.push.apply(a,b.getAnimationAsyncSlices());a.push.apply(a,b.getFrames())});var b=function(a){a=new tv.c.trace_model.InteractionRecord("Rendering",tv.b.ui.getColorIdForGeneralPurposeString("mt_rendering"),a[0].start,a[a.length-1].end-a[0].start);
this.model.addInteractionRecord(a)}.bind(this);tv.e.audits.mergeEvents(a,30,b)},addInputInteractionRecords:function(){var a=[];this.helper.apps.forEach(function(b){a.push.apply(a,b.getInputSamples())});var b=function(a){a=new tv.c.trace_model.InteractionRecord("Input",tv.b.ui.getColorIdForGeneralPurposeString("mt_input"),a[0].timestamp,a[a.length-1].timestamp-a[0].timestamp);this.model.addInteractionRecord(a)}.bind(this),c=function(a){return a.timestamp};tv.e.audits.mergeEvents(a,30,b,c,c)}};c.register(e);
return{AndroidAuditor:e}});
</script>