<!DOCTYPE html>
<html>
<head i18n-values="dir:textdirection;">
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<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: flex;
height: 100%;
left: 0;
position: fixed;
top: 0;
width: 100%;
}
overlay-mask:focus {
outline: none;
}
overlay-vertical-centering-container {
-webkit-justify-content: center;
flex-direction: column;
display: flex;
}
overlay-frame {
z-index: 1100;
background: rgb(255, 255, 255);
border: 1px solid #ccc;
margin: 75px;
display: flex;
flex-direction: column;
min-height: 0;
}
title-bar {
-webkit-align-items: center;
flex-direction: row;
border-bottom: 1px solid #ccc;
background-color: #ddd;
display: flex;
padding: 5px;
flex: 0 0 auto;
}
title {
display: inline;
font-weight: bold;
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: flex;
flex: 1 1 auto;
flex-direction: column;
overflow-y: auto;
padding: 10px;
min-width: 300px;
min-height: 0;
}
button-bar {
-webkit-align-items: baseline;
border-top: 1px solid #ccc;
display: flex;
flex: 0 0 auto;
flex-direction: row-reverse;
padding: 4px;
}
</style>
<overlay-mask>
<overlay-vertical-centering-container>
<overlay-frame>
<title-bar>
<title></title>
<close-button>✕</close-button>
</title-bar>
<overlay-content>
<content></content>
</overlay-content>
<button-bar></button-bar>
</overlay-frame>
</overlay-vertical-centering-container>
</overlay-mask>
</template><dom-module id="tr-ui-a-analysis-link">
<template>
<style>
:host {
display: inline;
cursor: pointer;
cursor: pointer;
white-space: nowrap;
}
a {
text-decoration: underline;
}
</style>
<a href="{{href}}" on-click="onClicked_" on-mouseenter="onMouseEnter_" on-mouseleave="onMouseLeave_"><content></content></a>
</template>
</dom-module><dom-module id="tr-ui-b-table">
<template>
<style>
:host {
display: flex;
flex-direction: column;
}
table {
flex: 1 1 auto;
align-self: stretch;
border-collapse: separate;
border-spacing: 0;
border-width: 0;
-webkit-user-select: initial;
}
tr > td {
padding: 2px 4px 2px 4px;
vertical-align: top;
}
table > tbody:focus {
outline: none;
}
table > tbody:focus[selection-mode="row"] > tr[selected],
table > tbody:focus[selection-mode="cell"] > tr > td[selected],
table > tbody:focus > tr.empty-row > td {
outline: 1px dotted #666666;
outline-offset: -1px;
}
button.toggle-button {
height: 15px;
line-height: 60%;
vertical-align: middle;
width: 100%;
}
button > * {
height: 15px;
vertical-align: middle;
}
td.button-column {
width: 30px;
}
table > thead > tr > td.sensitive:hover {
background-color: #fcfcfc;
}
table > thead > tr > td {
font-weight: bold;
text-align: left;
background-color: #eee;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
border-top: 1px solid #ffffff;
border-bottom: 1px solid #aaa;
}
table > tfoot {
background-color: #eee;
font-weight: bold;
}
/* Light row and cell highlight. */
table > tbody[row-highlight-style="light"] > tr[selected],
table > tbody[cell-highlight-style="light"] > tr > td[selected] {
background-color: rgb(213, 236, 229); /* light turquoise */
}
table > tbody[row-highlight-style="light"] >
tr:not(.empty-row):not([selected]):hover,
table > tbody[cell-highlight-style="light"] >
tr:not(.empty-row):not([selected]) > td:hover {
background-color: #f6f6f6; /* light grey */
}
/* Dark row and cell highlight. */
table > tbody[row-highlight-style="dark"] > tr[selected],
table > tbody[cell-highlight-style="dark"] > tr > td[selected] {
background-color: rgb(103, 199, 165); /* turquoise */
}
table > tbody[row-highlight-style="dark"] >
tr:not(.empty-row):not([selected]):hover,
table > tbody[cell-highlight-style="dark"] >
tr:not(.empty-row):not([selected]) > td:hover {
background-color: #e6e6e6; /* grey */
}
table > tbody[row-highlight-style="dark"] > tr:hover[selected],
table > tbody[cell-highlight-style="dark"] > tr[selected] > td:hover {
background-color: rgb(171, 217, 202); /* semi-light turquoise */
}
table > colgroup > col[selected] {
background-color: #e6e6e6; /* grey */
}
table > tbody > tr.empty-row > td {
color: #666;
font-style: italic;
text-align: center;
}
table > tbody.has-footer > tr:last-child > td {
border-bottom: 1px solid #aaa;
}
table > tfoot > tr:first-child > td {
border-top: 1px solid #ffffff;
}
:host([zebra]) table tbody tr:nth-child(even) {
background-color: #f4f4f4;
}
expand-button {
-webkit-user-select: none;
cursor: pointer;
margin-right: 3px;
font-size: smaller;
height: 1rem;
}
expand-button.button-expanded {
transform: rotate(90deg);
}
</style>
<table>
<colgroup id="cols">
</colgroup>
<thead id="head">
</thead>
<tbody id="body">
</tbody>
<tfoot id="foot">
</tfoot>
</table>
</template>
</dom-module><dom-module id="tr-ui-b-table-header-cell">
<template>
<style>
:host {
-webkit-user-select: none;
display: flex;
}
span {
flex: 0 1 auto;
}
#side {
-webkit-user-select: none;
flex: 0 0 auto;
padding-left: 2px;
padding-right: 2px;
vertical-align: top;
font-size: 15px;
font-family: sans-serif;
line-height: 85%;
margin-left: 5px;
}
#side.disabled {
color: rgb(140, 140, 140);
}
#title:empty, #side:empty {
display: none;
}
</style>
<span id="title"></span>
<span id="side"></span>
</template>
</dom-module><dom-module id="tr-v-ui-scalar-context-controller">
<template></template>
</dom-module><dom-module id="tr-v-ui-scalar-span">
<template>
<style>
:host {
display: flex;
flex-direction: row;
justify-content: flex-end;
position: relative;
/* Limit the sparkline's negative z-index to the span only. */
isolation: isolate;
}
:host(.left-align) {
justify-content: flex-start;
}
:host(.inline) {
display: inline-flex;
}
#sparkline {
width: 0%;
position: absolute;
bottom: 0;
display: none;
height: 100%;
background-color: hsla(216, 100%, 94.5%, .75);
border-color: hsl(216, 100%, 89%);
box-sizing: border-box;
z-index: -1;
}
#sparkline.positive {
border-right-style: solid;
/* The border width must be kept in sync with buildSparklineStyle_(). */
border-right-width: 1px;
}
#sparkline:not(.positive) {
border-left-style: solid;
/* The border width must be kept in sync with buildSparklineStyle_(). */
border-left-width: 1px;
}
#sparkline.better {
background-color: hsla(115, 100%, 93%, .75);
border-color: hsl(118, 60%, 80%);
}
#sparkline.worse {
background-color: hsla(0, 100%, 88%, .75);
border-color: hsl(0, 100%, 80%);
}
#content {
white-space: nowrap;
}
#content, #significance, #warning {
flex-grow: 0;
}
#content.better {
color: green;
}
#content.worse {
color: red;
}
#significance svg {
margin-left: 4px;
display: none;
height: 1em;
vertical-align: text-top;
stroke-width: 4;
fill: rgba(0, 0, 0, 0);
}
#significance #insignificant {
stroke: black;
}
#significance #significantly_better {
stroke: green;
}
#significance #significantly_worse {
stroke: red;
}
#warning {
display: none;
margin-left: 4px;
height: 1em;
vertical-align: text-top;
stroke-width: 0;
}
#warning path {
fill: rgb(255, 185, 185);
}
#warning rect {
fill: red;
}
</style>
<span id="sparkline"></span>
<span id="content"></span>
<span id="significance">
<svg id="insignificant" viewBox="0 0 128 128">
<circle cx="64" cy="64" r="60"></circle>
<circle cx="44" cy="44" r="4"></circle>
<circle cx="84" cy="44" r="4"></circle>
<line x1="36" x2="92" y1="80" y2="80"></line>
</svg>
<svg id="significantly_better" viewBox="0 0 128 128">
<circle cx="64" cy="64" r="60"></circle>
<circle cx="44" cy="44" r="4"></circle>
<circle cx="84" cy="44" r="4"></circle>
<path d="M 28 64 Q 64 128 100 64"></path>
</svg>
<svg id="significantly_worse" viewBox="0 0 128 128">
<circle cx="64" cy="64" r="60"></circle>
<circle cx="44" cy="44" r="4"></circle>
<circle cx="84" cy="44" r="4"></circle>
<path d="M 36 96 Q 64 48 92 96"></path>
</svg>
</span>
<svg id="warning" viewBox="0 0 128 128">
<path d="M 64 0 L 128 128 L 0 128 L 64 0"></path>
<rect height="84" width="8" x="60" y="0"></rect>
<rect height="24" width="8" x="60" y="100"></rect>
</svg>
</template>
</dom-module><dom-module id="tr-ui-a-generic-object-view">
<template>
<style>
:host {
display: block;
font-family: monospace;
}
</style>
<div id="content">
</div>
</template>
</dom-module><dom-module id="tr-ui-a-generic-object-view-with-label">
<template>
<style>
:host {
display: block;
}
</style>
</template>
</dom-module><dom-module id="tr-ui-b-drag-handle">
<template>
<style>
:host {
-webkit-user-select: none;
box-sizing: border-box;
display: block;
}
:host(.horizontal-drag-handle) {
background-image: -webkit-gradient(linear,
0 0, 0 100%,
from(#E5E5E5),
to(#D1D1D1));
border-bottom: 1px solid #8e8e8e;
border-top: 1px solid white;
cursor: ns-resize;
flex: 0 0 auto;
height: 7px;
position: relative;
}
:host(.vertical-drag-handle) {
background-image: -webkit-gradient(linear,
0 0, 100% 0,
from(#E5E5E5),
to(#D1D1D1));
border-left: 1px solid white;
border-right: 1px solid #8e8e8e;
cursor: ew-resize;
flex: 0 0 auto;
position: relative;
width: 7px;
}
</style>
<div></div>
</template>
</dom-module><dom-module id="tv-ui-b-hotkey-controller">
<template>
<div></div>
</template>
</dom-module><dom-module id="tr-ui-b-info-bar">
<template>
<style>
:host {
align-items: center;
flex: 0 0 auto;
background-color: rgb(252, 235, 162);
border-bottom: 1px solid #A3A3A3;
border-left: 1px solid white;
border-right: 1px solid #A3A3A3;
border-top: 1px solid white;
display: flex;
height: 26px;
padding: 0 3px 0 3px;
}
:host([hidden]) {
display: none !important;
}
#message { flex: 1 1 auto; }
</style>
<span id="message"></span>
<span id="buttons"></span>
</template>
</dom-module><dom-module id="tr-ui-b-mouse-mode-icon">
<template>
<style>
:host {
display: block;
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAChCAYAAACbBNzvAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABV0RVh0Q3JlYXRpb24gVGltZQA3LzE2LzEzRNEKUwAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTNui8sowAAA9aSURBVHic7V1rTFvl//+UrgUmZWMpbLa6cLErwpYxkqLGkjAG88WSbmumGUllvlmAJctMRtybvlHrLXiJUekMIZuYSCL5gS+EuLIXGEGjqCsllCEW6xQECgzWG7S05/+C/zkp9LTn0gsL6ych9JzznOdzPj19Luf5PN/nCN59913ixRdfRFdXFxLx/2GDgCAIYmpqCoWFhUjE/4cNae+99x4AIFH/Hzak7nDqDu+wOyyw2WzEdl9EMpG23ReQbKQE73Q8coJ3bfcFWK1W/Pbbb/D7/UhLi/37DwaDEIvFKC8vR0lJSdjxbRVstVoxPDyMxx9/HAUFBcjMzIRAIOCdXzAYhNvtht1ux/DwMACEid5WwSMjI3jyySdRXFwMsVgMoVAYk2CCIJCZmYns7GyMjo5iZGQkPoKXl5exd+9e3hdGIhgMIj8/H5mZmRCJRIyCyQ5NJBAEgUAgAKFQiIKCAiwsLISl4VxoHA4H+vv74Xa7uZ4aBqFQiOzsbIhEIojFYojFYohEItq/8fFxXLlyBUtLSxHThOaxZ88eCIXC2AWPj48DAH799deYBaelpUEoFLL6++qrrwAAH3zwAav0YrGYthLkJHh6ehpzc3MAgPn5eUxPT8csWiAQMJbboaEhmM1mAIDFYsHQ0BDvPDkJtlgsYdt+v59LFrxw/fr1sG2Xy8UrL06C6+vrw7bFYjEvYi747rvvwrYlEgmvvDjV0g6HI+p2ohBP3qh32OFwoLe3l1VGvb29sNvtvC8kFCMjI9DpdKzS6nQ6mEwm1nnTPg/7/X6MjY1hcnKS/VX+P/bu3YuysjLk5uYypv36669x8uRJZGRkQCQSwev1oqOjAz09PZx5CwsLcenSJRw+fBh+vx+rq6swmUx46aWXNqWjvcMDAwO8xAIbnZKBgQFeNXhzczMvscBGp6S5uRk//vhj1HS0grVaLYqLi3kRy+Vy1NXVRe0RRcKNGzeg0Wh48apUKnR1daG6ujpqOtpKy+VyQa1Wo6SkBLdv38aFCxeoY5988gn1+fLly9TnL774ApWVlXjiiSfgdDqxtrbG+aJ9Ph/0ej3OnDkDvV6PW7duUceOHDlCfR4dHaU+v/DCC7h27RrUajWcTidWV1ejctAKJggCKysryMzMhE6nw+zsLO3Joft1Oh0ePHiApaUlduqi8BYVFaGvr48Vb19fHyfeqM2Sz+dj3QTEs4lKJC+njsfWJoptkxUrtjZRbJssOnASXFtbG3U7UXjrrbeibnMBJ8FZWVkoKysDABQUFCArK4s3MRcoFArqrlZXV0OhUPDOi5Ngn8+Hw4cPQyqV4tlnn4XP5+NNTIIgmH0An8+HV155BUqlEq+++ior3kAgQLuf84jH2toajh8/jvX1da6n0sLj8SAjI4MxHUEQ+PTTT1nlSRAEHjx4QHtsW8e0RCIR7HY79uzZE/GOcEUgEEAgEMDff/8NkUgUdnxbBR85cgRmsxkCgQD5+fkRh2XYIhAI4P79+5iamoLD4cCxY8fC0myr4KeeegoCgQBWqxVzc3NIS0uLedQyGAxi165dKC8vR1FRUVialHu405ESvNPxyAlOuYfJRMo9fFjdw3iBq3vIBDbu4bYK3uoextKtJEH2yWNyD8nyEG8wuYcffvgha3cxru6h3W5Hf39/QoyzaE6fyWRCQ0MDZ+MsLu7h8vIyent7sby8zIk8VkxNTUGn08Fms8UlP04Nn9/vR39/f9w8JLZwu91obGzk5CFFAq+Wfnh4mDKok4mWlha0trbGlAfvrs3k5CQGBgaSYoiHoqenB1evXk2OIb4VDocDJpMp6eXaYrGgsbGRV7mOufPq8XgwMDCQ9HI9NzeHq1evci7XvDseUqkUWq0W6enpCAaDcDqd8Hq9fLNjDaVSiRs3bkAikfDi5XSHxWIxampqAAALCwsYGhrC7Ows5ufnEypWIpHAYDAAACYmJnD9+nXevJwEnzp1CjKZDBUVFQCAsbGxpJTfjz76CFVVVWhqagIAdHR08G6XWQuuqanB7t274fV6UVpaiuzsbAAbTzyJhMFggEKhgNfrRX19PWQyGQDAaDTyyo+V4JqaGshkMsricLlcOH78OICNCWp8p0cwwWAwoKqqahPvG2+8AWDji+7u7uacJyvBMpksrKxkZWVR0yLGxsY4E7NBVVVVGK9CoaCmRXR0dHDOk5VguorB5/OhoqICYrE4YZ2PSLxXrlyBRCLhNcE1pufh1dVVXLx4EWlpaRGnJzCBjXtId87g4GBU3ri5h1uJ5+fnY8mCtXvIhTflHoYg5R4mEyn3MAl45KyWlOCdjkdOcMo9TCZS7mHKPeSGhLmH5LBOrAGXXN1DcliHrgdFgsk95CzYbrfDbDbD7/ejrKwstpmtNO5hJJhMJrS2tsLtdqOpqQlarTZi2mjuIWvBfr8fZrN50/iz2WzG9PQ0nn/+edonEzZgij10uVwwGo2bxp+NRiOGhobw+uuv005hjtk9JENz6AbbyWCuRESp2Ww2NDc30w62WywW6HQ6zoOIrO5wbm4uzp8/j5WVFXR2dm46VldXh3379mF5eTku86dDUVxcjK6uLthstrClqrq6unDo0CHOvKwE+/1+LC4uUqG0oZiYmIhaicQCkvfu3bthxwYGBnhVmpy6NnSD7kxxQvEA3Zo+fIsQJ8F040j379/nRcwFdF4037FwToLphkUXFxd5EXMB3chkUgQ7nc6wfT6fL+Gm+H///Re2z+Vy8TLFGSut/v5+RsPsm2++AbDR84pXLFNDQwPjelxnz54FsBFK+/nnn7PKl/EOa7VaVmHvYrE4au+HK27evMkq7F0ikeDmzZus82UU7HK5qG8yGs6ePct73gUdfD4f2tvbGdO1t7dzaocZBRMEAaFQSBnhdKipqYFQKORlm0TjzcvLo4xwOhgMBuTl5XHiZVVp+f1+yGQy2iDq4uJiyGSyhFRcfr8fVVVVtEHUGo0GVVVVnHlZ19JerxdqtRpSqZTaJ5VKoVarEzrdwev1Qq/XQ6lUUvuUSiX0ej0vXk7N0srKCjQaDbXmjUajwcrKCmfSULD5Oa6srKCtrQ0SiQQSiQRtbW2MvHFzD0MrsXhUUmzdw9BKjKmSiqt7SBBE3Conru4hOa8kWqBnyj3cgl0EQcQ0cMYWW3kIgkiKe7iVV2C1Won09PSYxLCB1+tFZmYmtb22tobt4E1LBimATaQAkiKWjveR85ZSgnc6Uu5hMpFyD1PuITekYg/ZxB52dXXFTMo2n1D38NSpU7zjDEP/yHzisnJpIsBm5dJ45rntgpONuITTJirctqWlJabjdGAUvNUEp0NouxcvtLa2MgZhmUwmzqKjCrbb7aw9HC5pmWAymVivb2kymTgFe0RslrbeNTa1rtlshkgkQn5+PusL2Iqtd42NdWM0GpGVlYWTJ08ypo14h/nGI8Uax8Q3XJbteREFV1ZW8iLmex6Ja9euJfS8iD9puVyOmpoa3L59G8DmVUq3glzNlAzoimVgvrq6GmlpadDr9QA2r1K6FeRqpmRAFxveiIK9Xi8VZ/jLL78whulUVFTELJbkJeMMjUYjI29TUxNrsQBDX5qMM4w0qE2iuLgYpaWlcXMPyThDphWMNRoN6uvrOfGyskvVanXUNGq1Oq5WKclL/qwjQa/Xc+Zl1dNi8nFi9ZeSyZvqS0erjbmAbT6kT7X1lQp8QeYTyasKE8w3aJJvPh6PBwRBYGZmJi68MzMzqdjDUDx67mEsFxwrUrGHSUCqWdrpSAne6dix7uFzzz1HW0s/FO7h/v37UVBQgMceeyxm99DlcsFut2NwcBACgSDsnTHb7h4ePHgQxcXFcTPTMjIyIJFIcOfOHfz+++8Pl2DSPSTftxQv93DXrl0oKirCnTt3wtIwFhq62aputxtms5maCR8pHROEQiEkEgntew/X1tbC3mu4tLSE9vZ2nD9/njZd6Pn79u3jHoo3OTmJsbExnDlzBsDGWLXdbqcNoent7YVCocChQ4dYh+VFij3s7u5GR0cH9YWaTCbcunVr0yMkmfbChQvQarXQarVUWF4wGER6ejp7wdPT0zCbzfB4PJv2R7NT/H4/rFYrJicnUVZWxnowPtTpGxoagtFoDAsIi2anuN1ufPnll+ju7salS5dw4sQJKk+64hH2FTgcDgwPD4eJZQu/3w+bzcZ5JSSLxYL333+fNvqNDdxuN3p6ehjPDxMsl8tjjkw5ceIENfOVLVQqFd58882YeA0GA7WiWiSECfb5fPjpp58AbKyBx/bCpVIp6urqAADff/895wf6tbU1fPbZZwCAjz/+mPHCSSiVSsr3eueddxh5aWtpMrwuJyeH9cuczp07R5UZvktO/fnnnwCAY8eOoa+vj9U5nZ2d1CsH2fhaUZulwcFB1kGNi4uLjK/gYwuDwcCJ9+2332add9RmyW63w+12Q6FQIC8vD5cvX8bCwgI19VcqlcJms8HhcGBycjJuSz6aTCbMzs5Cq9Xi6NGjGB0dxcTEBJxOJyQSCZRKJUZGRjAyMoL//e9/jBFsoaAVLJfLKZvD4XBQ37ZEItlUph0OB238gVwu5ySQhEqlopo+i8VCtbsymWxTmb579y6t46BSqRg5aAXX1tbi22+/DZvY5XQ6aQMuQyGVSlFbW8trgb6WlhY0NDRgYmJi0/6ZmRnGYVylUomWlhbGeGbaMuzxeKDRaKhVDdkgOzsblZWVOHfuHO82fH19HW1tbWhqamL9ul2ZTIbXXnsNnZ2drN7yFfFFjy6XC6WlpVCpVFhaWsK///5LVfnz8/PIy8sDAOzevRu5ubnIycmBx+OJKZ6YIAj4fD7U19ejsbERf/zxB4aHhykrdHx8HE8//TQAYP/+/VAqlVAoFJx4I1ZapGiyrBw4cAD37t2DXC7HgQMHAGx0QXNycrC+vh63VR5Cecnw3J6eHqhUKpSXlwPY6OI+88wzALiHxnN6PPz555/D9h08eJATIR/Qzd9gE/FKh9SYFlvI5XKqPMUCrlFuKpUKp0+fZkwXDAZp93MSLBaLUVJSgqNHjyIjIwNerzfmOR0ul4sx9lAikeD06dN4+eWXIZVKGXnj5h5evHgRXq8XHo+Hd9MTCpFIhHv37iEnJydqp/+HH36A1+uFy+VirKTi6h7Gug7tVpDuIUEQKCwsjOge/vPPP6zyCwQCWF5exl9//YX5+Xla93DbzTSbzQar1Yr19fW4uoclJSUp9xB4BJullOCdjkdO8P8BGCQ0hnF1DxUAAAAASUVORK5CYII=);
width: 27px;
height: 30px;
}
:host.active {
cursor: auto;
}
</style>
</template>
</dom-module><dom-module id="tr-ui-b-mouse-mode-selector">
<template>
<style>
:host {
-webkit-user-drag: element;
-webkit-user-select: none;
background: #DDD;
border: 1px solid #BBB;
border-radius: 4px;
box-shadow: 0 1px 2px rgba(0,0,0,0.2);
left: calc(100% - 120px);
position: absolute;
top: 100px;
user-select: none;
width: 29px;
z-index: 20;
}
.drag-handle {
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAChCAYAAACbBNzvAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABV0RVh0Q3JlYXRpb24gVGltZQA3LzE2LzEzRNEKUwAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTNui8sowAAA9aSURBVHic7V1rTFvl//+UrgUmZWMpbLa6cLErwpYxkqLGkjAG88WSbmumGUllvlmAJctMRtybvlHrLXiJUekMIZuYSCL5gS+EuLIXGEGjqCsllCEW6xQECgzWG7S05/+C/zkp9LTn0gsL6ych9JzznOdzPj19Luf5PN/nCN59913ixRdfRFdXFxLx/2GDgCAIYmpqCoWFhUjE/4cNae+99x4AIFH/Hzak7nDqDu+wOyyw2WzEdl9EMpG23ReQbKQE73Q8coJ3bfcFWK1W/Pbbb/D7/UhLi/37DwaDEIvFKC8vR0lJSdjxbRVstVoxPDyMxx9/HAUFBcjMzIRAIOCdXzAYhNvtht1ux/DwMACEid5WwSMjI3jyySdRXFwMsVgMoVAYk2CCIJCZmYns7GyMjo5iZGQkPoKXl5exd+9e3hdGIhgMIj8/H5mZmRCJRIyCyQ5NJBAEgUAgAKFQiIKCAiwsLISl4VxoHA4H+vv74Xa7uZ4aBqFQiOzsbIhEIojFYojFYohEItq/8fFxXLlyBUtLSxHThOaxZ88eCIXC2AWPj48DAH799deYBaelpUEoFLL6++qrrwAAH3zwAav0YrGYthLkJHh6ehpzc3MAgPn5eUxPT8csWiAQMJbboaEhmM1mAIDFYsHQ0BDvPDkJtlgsYdt+v59LFrxw/fr1sG2Xy8UrL06C6+vrw7bFYjEvYi747rvvwrYlEgmvvDjV0g6HI+p2ohBP3qh32OFwoLe3l1VGvb29sNvtvC8kFCMjI9DpdKzS6nQ6mEwm1nnTPg/7/X6MjY1hcnKS/VX+P/bu3YuysjLk5uYypv36669x8uRJZGRkQCQSwev1oqOjAz09PZx5CwsLcenSJRw+fBh+vx+rq6swmUx46aWXNqWjvcMDAwO8xAIbnZKBgQFeNXhzczMvscBGp6S5uRk//vhj1HS0grVaLYqLi3kRy+Vy1NXVRe0RRcKNGzeg0Wh48apUKnR1daG6ujpqOtpKy+VyQa1Wo6SkBLdv38aFCxeoY5988gn1+fLly9TnL774ApWVlXjiiSfgdDqxtrbG+aJ9Ph/0ej3OnDkDvV6PW7duUceOHDlCfR4dHaU+v/DCC7h27RrUajWcTidWV1ejctAKJggCKysryMzMhE6nw+zsLO3Joft1Oh0ePHiApaUlduqi8BYVFaGvr48Vb19fHyfeqM2Sz+dj3QTEs4lKJC+njsfWJoptkxUrtjZRbJssOnASXFtbG3U7UXjrrbeibnMBJ8FZWVkoKysDABQUFCArK4s3MRcoFArqrlZXV0OhUPDOi5Ngn8+Hw4cPQyqV4tlnn4XP5+NNTIIgmH0An8+HV155BUqlEq+++ior3kAgQLuf84jH2toajh8/jvX1da6n0sLj8SAjI4MxHUEQ+PTTT1nlSRAEHjx4QHtsW8e0RCIR7HY79uzZE/GOcEUgEEAgEMDff/8NkUgUdnxbBR85cgRmsxkCgQD5+fkRh2XYIhAI4P79+5iamoLD4cCxY8fC0myr4KeeegoCgQBWqxVzc3NIS0uLedQyGAxi165dKC8vR1FRUVialHu405ESvNPxyAlOuYfJRMo9fFjdw3iBq3vIBDbu4bYK3uoextKtJEH2yWNyD8nyEG8wuYcffvgha3cxru6h3W5Hf39/QoyzaE6fyWRCQ0MDZ+MsLu7h8vIyent7sby8zIk8VkxNTUGn08Fms8UlP04Nn9/vR39/f9w8JLZwu91obGzk5CFFAq+Wfnh4mDKok4mWlha0trbGlAfvrs3k5CQGBgaSYoiHoqenB1evXk2OIb4VDocDJpMp6eXaYrGgsbGRV7mOufPq8XgwMDCQ9HI9NzeHq1evci7XvDseUqkUWq0W6enpCAaDcDqd8Hq9fLNjDaVSiRs3bkAikfDi5XSHxWIxampqAAALCwsYGhrC7Ows5ufnEypWIpHAYDAAACYmJnD9+nXevJwEnzp1CjKZDBUVFQCAsbGxpJTfjz76CFVVVWhqagIAdHR08G6XWQuuqanB7t274fV6UVpaiuzsbAAbTzyJhMFggEKhgNfrRX19PWQyGQDAaDTyyo+V4JqaGshkMsricLlcOH78OICNCWp8p0cwwWAwoKqqahPvG2+8AWDji+7u7uacJyvBMpksrKxkZWVR0yLGxsY4E7NBVVVVGK9CoaCmRXR0dHDOk5VguorB5/OhoqICYrE4YZ2PSLxXrlyBRCLhNcE1pufh1dVVXLx4EWlpaRGnJzCBjXtId87g4GBU3ri5h1uJ5+fnY8mCtXvIhTflHoYg5R4mEyn3MAl45KyWlOCdjkdOcMo9TCZS7mHKPeSGhLmH5LBOrAGXXN1DcliHrgdFgsk95CzYbrfDbDbD7/ejrKwstpmtNO5hJJhMJrS2tsLtdqOpqQlarTZi2mjuIWvBfr8fZrN50/iz2WzG9PQ0nn/+edonEzZgij10uVwwGo2bxp+NRiOGhobw+uuv005hjtk9JENz6AbbyWCuRESp2Ww2NDc30w62WywW6HQ6zoOIrO5wbm4uzp8/j5WVFXR2dm46VldXh3379mF5eTku86dDUVxcjK6uLthstrClqrq6unDo0CHOvKwE+/1+LC4uUqG0oZiYmIhaicQCkvfu3bthxwYGBnhVmpy6NnSD7kxxQvEA3Zo+fIsQJ8F040j379/nRcwFdF4037FwToLphkUXFxd5EXMB3chkUgQ7nc6wfT6fL+Gm+H///Re2z+Vy8TLFGSut/v5+RsPsm2++AbDR84pXLFNDQwPjelxnz54FsBFK+/nnn7PKl/EOa7VaVmHvYrE4au+HK27evMkq7F0ikeDmzZus82UU7HK5qG8yGs6ePct73gUdfD4f2tvbGdO1t7dzaocZBRMEAaFQSBnhdKipqYFQKORlm0TjzcvLo4xwOhgMBuTl5XHiZVVp+f1+yGQy2iDq4uJiyGSyhFRcfr8fVVVVtEHUGo0GVVVVnHlZ19JerxdqtRpSqZTaJ5VKoVarEzrdwev1Qq/XQ6lUUvuUSiX0ej0vXk7N0srKCjQaDbXmjUajwcrKCmfSULD5Oa6srKCtrQ0SiQQSiQRtbW2MvHFzD0MrsXhUUmzdw9BKjKmSiqt7SBBE3Conru4hOa8kWqBnyj3cgl0EQcQ0cMYWW3kIgkiKe7iVV2C1Won09PSYxLCB1+tFZmYmtb22tobt4E1LBimATaQAkiKWjveR85ZSgnc6Uu5hMpFyD1PuITekYg/ZxB52dXXFTMo2n1D38NSpU7zjDEP/yHzisnJpIsBm5dJ45rntgpONuITTJirctqWlJabjdGAUvNUEp0NouxcvtLa2MgZhmUwmzqKjCrbb7aw9HC5pmWAymVivb2kymTgFe0RslrbeNTa1rtlshkgkQn5+PusL2Iqtd42NdWM0GpGVlYWTJ08ypo14h/nGI8Uax8Q3XJbteREFV1ZW8iLmex6Ja9euJfS8iD9puVyOmpoa3L59G8DmVUq3glzNlAzoimVgvrq6GmlpadDr9QA2r1K6FeRqpmRAFxveiIK9Xi8VZ/jLL78whulUVFTELJbkJeMMjUYjI29TUxNrsQBDX5qMM4w0qE2iuLgYpaWlcXMPyThDphWMNRoN6uvrOfGyskvVanXUNGq1Oq5WKclL/qwjQa/Xc+Zl1dNi8nFi9ZeSyZvqS0erjbmAbT6kT7X1lQp8QeYTyasKE8w3aJJvPh6PBwRBYGZmJi68MzMzqdjDUDx67mEsFxwrUrGHSUCqWdrpSAne6dix7uFzzz1HW0s/FO7h/v37UVBQgMceeyxm99DlcsFut2NwcBACgSDsnTHb7h4ePHgQxcXFcTPTMjIyIJFIcOfOHfz+++8Pl2DSPSTftxQv93DXrl0oKirCnTt3wtIwFhq62aputxtms5maCR8pHROEQiEkEgntew/X1tbC3mu4tLSE9vZ2nD9/njZd6Pn79u3jHoo3OTmJsbExnDlzBsDGWLXdbqcNoent7YVCocChQ4dYh+VFij3s7u5GR0cH9YWaTCbcunVr0yMkmfbChQvQarXQarVUWF4wGER6ejp7wdPT0zCbzfB4PJv2R7NT/H4/rFYrJicnUVZWxnowPtTpGxoagtFoDAsIi2anuN1ufPnll+ju7salS5dw4sQJKk+64hH2FTgcDgwPD4eJZQu/3w+bzcZ5JSSLxYL333+fNvqNDdxuN3p6ehjPDxMsl8tjjkw5ceIENfOVLVQqFd58882YeA0GA7WiWiSECfb5fPjpp58AbKyBx/bCpVIp6urqAADff/895wf6tbU1fPbZZwCAjz/+mPHCSSiVSsr3eueddxh5aWtpMrwuJyeH9cuczp07R5UZvktO/fnnnwCAY8eOoa+vj9U5nZ2d1CsH2fhaUZulwcFB1kGNi4uLjK/gYwuDwcCJ9+2332add9RmyW63w+12Q6FQIC8vD5cvX8bCwgI19VcqlcJms8HhcGBycjJuSz6aTCbMzs5Cq9Xi6NGjGB0dxcTEBJxOJyQSCZRKJUZGRjAyMoL//e9/jBFsoaAVLJfLKZvD4XBQ37ZEItlUph0OB238gVwu5ySQhEqlopo+i8VCtbsymWxTmb579y6t46BSqRg5aAXX1tbi22+/DZvY5XQ6aQMuQyGVSlFbW8trgb6WlhY0NDRgYmJi0/6ZmRnGYVylUomWlhbGeGbaMuzxeKDRaKhVDdkgOzsblZWVOHfuHO82fH19HW1tbWhqamL9ul2ZTIbXXnsNnZ2drN7yFfFFjy6XC6WlpVCpVFhaWsK///5LVfnz8/PIy8sDAOzevRu5ubnIycmBx+OJKZ6YIAj4fD7U19ejsbERf/zxB4aHhykrdHx8HE8//TQAYP/+/VAqlVAoFJx4I1ZapGiyrBw4cAD37t2DXC7HgQMHAGx0QXNycrC+vh63VR5Cecnw3J6eHqhUKpSXlwPY6OI+88wzALiHxnN6PPz555/D9h08eJATIR/Qzd9gE/FKh9SYFlvI5XKqPMUCrlFuKpUKp0+fZkwXDAZp93MSLBaLUVJSgqNHjyIjIwNerzfmOR0ul4sx9lAikeD06dN4+eWXIZVKGXnj5h5evHgRXq8XHo+Hd9MTCpFIhHv37iEnJydqp/+HH36A1+uFy+VirKTi6h7Gug7tVpDuIUEQKCwsjOge/vPPP6zyCwQCWF5exl9//YX5+Xla93DbzTSbzQar1Yr19fW4uoclJSUp9xB4BJullOCdjkdO8P8BGCQ0hnF1DxUAAAAASUVORK5CYII=) 2px 3px no-repeat;
background-repeat: no-repeat;
border-bottom: 1px solid #BCBCBC;
cursor: move;
display: block;
height: 13px;
width: 27px;
}
.tool-button {
background-position: center center;
background-repeat: no-repeat;
border-bottom: 1px solid #BCBCBC;
border-top: 1px solid #F1F1F1;
cursor: pointer;
}
.buttons > .tool-button:last-child {
border-bottom: none;
}
</style>
<div class="drag-handle"></div>
<div class="buttons">
</div>
</template>
</dom-module><dom-module id="tr-ui-e-chrome-cc-display-item-list-item">
<template>
<style>
:host {
border-bottom: 1px solid #555;
display: block;
font-size: 12px;
padding: 3px 5px;
}
:host(:hover) {
background-color: #f0f0f0;
cursor: pointer;
}
.header {
font-weight: bold;
margin: 2px 0;
}
.header > .extra {
background-color: #777;
border-radius: 4px;
color: white;
margin: 0 6px;
text-decoration: none;
padding: 2px 4px;
}
.raw-details {
white-space: pre-wrap;
}
.details > dl {
margin: 0;
}
:host(:not([selected])) .details {
display: none;
}
</style>
<div class="header">
{{name}}
<template if="{{_computeIfSKP(richDetails)}}" is="dom-if">
<a class="extra" download="drawing.skp" href$="{{_computeHref(richDetails)}}" on-click="{{stopPropagation}}">SKP</a>
</template>
</div>
<div class="details">
<template if="{{rawDetails}}" is="dom-if">
<div class="raw-details">{{rawDetails}}</div>
</template>
<template if="{{richDetails}}" is="dom-if">
<dl>
<template if="{{richDetails.visualRect}}" is="dom-if">
<dt>Visual rect</dt>
<dd>{{richDetails.visualRect.x}},{{richDetails.visualRect.y}}
{{richDetails.visualRect.width}}×{{richDetails.visualRect.height}}
</dd>
</template>
</dl>
</template>
</div>
</template>
</dom-module><template id="tr-ui-e-chrome-cc-display-item-debugger-template">
<left-panel>
<display-item-info>
<header>
<span class="title">Display Item List</span>
<span class="size"></span>
<div class="export">
<input class="dlfilename" type="text" value="displayitemlist.json"/>
<button class="dlexport">Export display item list</button>
</div>
<div class="export">
<input class="skpfilename" type="text" value="skpicture.skp"/>
<button class="skpexport">Export list as SkPicture</button>
</div>
</header>
</display-item-info>
</left-panel>
<right-panel>
<raster-area><canvas></canvas></raster-area>
</right-panel>
</template><template id="quad-stack-view-template">
<style>
#chrome-left {
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMcAAABICAYAAABC4+HLAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAB3RJTUUH3QcNFyMmV/Pm9QAAIABJREFUeNrtvXmwXdd13vlbe9/7BgzEQAIcQAIEQYKjSAokLVlOW5Fk2nLKmqx0J2Wp0k652h13uiy5XYqdwU7sSnckpZ1yV3U75apU4kos27Elu9NlyRXZjiiRomSTIiWZs0hwHsABJIY33rPX6j/W2ueed3DvAyDKKoGFW0UCeO/ec/fZZ+29v7XWt74lAIuLi7tXV1f/raq+zcy2AogIZsbpvrqfMzNE5IS/1/fVn5sZKaUTrtX9/v7nT+fn9e/1e052X/3r1THWa3R/37+miKCq7c+mjW/a+F/P57vj6/45bayn+wzXs4n+794Q9nP8+PHdS0tL31LVmfpGVQU4YSInGUb/YfZvpn+zp/LQu4Y27X31d933nurkq+qaa08yotO55npG0v2O+r1/XZ9fb2FMWoD9Oe5+pju//e+fdP3u83+j2I+89NJLn11dXf1bdSCTJnnSSpz2+/VWZ/8m+w+g/zD616yT2P9733BOZ5f4dhbCevPQHet63zVtV3y9n1/v/k9nZ562SNY7Gd5o9iPPP//8qxVKrQdL+hOy3qqdNEnTjv1JA+vuRpMGvd7kn8oCqded9B2THuJ6u/Kk7+vuiNOgQH8OX+/np813/376O/CkU2EavDwVWPiGsp9nn33WJt3ItF2ne2xOe2jTHuTJMOS0He1UcG33791JmWQYkzB6dyfp7tynsktPG8/Jdv2TGcLpfH7Sc5m0EKZBsPV+tp4PMe39bwj7efrpp229G5u2O3WPplN1cE/XQZsENybtnNN2pv4x3N1Fpu2S/SO6j6fXgz6n4gRPGmMfR7/ez/cXd/1798Tsfr4PMU52Oq4Hp95I9jPor7ZJ+G7STlEnvN7gesfXpB2tH5lZzynrO07Txtb92aQTY9rv+3i1v4jqv5umOSEq0r9O3/iqEUx6MPXnqjpxrk73812oMQmP968zyUj68zPp+U1bxG80+5GnnnrKpkVxTiWUuN4q7+96/YFXp6pvANN8hD7MmRbF6O7200KR9ed9CDbpSF4v6jIJtnQjQdPGOylK9p34/HowaFL0Z73IUNex7Z5Gk3bkN6L9yBNPPGHdY3fayu3uSP0dqH62uyP0w4XrDWo957gPEfqf78e4p4U8+0Y86R6711pvAUyL3vTvd9ou238Q/Xn4dj4/Cd6d7BlMC532534S9OnO8xvVfuTxxx+39RJlk/DtpAGc6k6hquScp+7EkyIn0+LV60Ufpu2q05zN/sOYFIfvP8CT5VEmGWN/h5w0zm/38+sl7/r3drLntt58rzdXbyT7kccee8z6O2b3JnLO6zpjk47nkyVg1pu07muas9b3CaZh4f5uPMn4Sikn7Jj9RTEJMnQfVHdck4x3Wt5i0qL6dj8/6WQ5GcSYBiEn+STrhT/fqPYzmJYxrRcopax5eH18Oi38WI2ulLImYTPNMavv716z/93rRXUmOZXVgZ5kePX7+hPeN5xJTmx3MdXf9zHyM888w8LCwgn30IUQ0xzWSYvhVD4/LarTzpWBpOl+zqRQ9lqjE2DCtbH2x9MW3XA45JxzzmHnzp0njYp9r9jPoH75Gkekc8SZ2ZpjrH/Ez8wMSSmHMY4YjZp2MDnniVGT/sPvRhxmZ2fJOWHmxj0ajU7AtvV6k4727gSklMg5M4jdq6iyuro69bv799fNptYF0X3vJKjz8MMPMz+/gWuvuYatW7eScgIEwTADEwEUAZDkBgtuYONlCCJgAuZ/N5QkCcP8avFzUH8fsZgNEoJJLAakc+2TjENi90RQjGSCJm1/hwlmgmRFFIwEYoiNxyPxvYZ07gVKUzh8+DD333cfRZXLLrvsBLxfjbl76pyO/ZRS1thq325O137k4YcftvUSOf1Ufdco/uwLX+LOv7ibZ194EYBdF+zkB956C+98+99ARE64ue6XqyqDwaDdGZqm4Qtf/DK3f+UveO7QS2uu944f/IH2WpNwdp2U/oT8+W23c8dX7+K5GN9FF+zkb7zlZt71jh9cswNPw8uTsPU0h19VeeSRR7j55lvYumUzK6MCpqTs9p2AAiRLmChWBBIIiqZEMkVUMAQTJZtQSCCKkDE0/h+7twkKpCSYxrhVMTGyCYogohRLCGvHoYD0xyGKScIUpC5AVSQl/0ACaxeCkJJhakDCTJEEiKAmDMx8XSdAY6lZQjHmZoa89NLL3Pv1r3PVVVeesDH3T+FTtZ/uguhu8v3o36naj4ggjzzyiPXhwtRjOf6+tLjEP//4r3HOuRfw5psPsOeSXQA8+dQz3Pu1ezl2+BC//I9+jvn5uXWjDfW1uLjIr37y19m8/fzJ13vlBf75L/48c3Oza3aWadSP5eUVfuUT/2bd6/3yL/xvbNgwv2Y3qbtOF0J2MfN6ka7nnnuOvZfuZcfO8xitKnloFBXEBHGLc4MTQwVEDeIkyAqa/Pdh9z5vaqgkUuz8akYGVATEHOYYiCSUQtJqkCDJsJJIvXFYNRIzLGWQQqqLEiOhqKS6gnzhqJ9cJplsiiXBSnfBJF957TEoJBKYYskwFUSgWCKnBkmZp59+mpdfepmdO3eu2USn+V/r2c/JWAX9CN/J7KdNiD744IO2nqM0Cff+01/9P7js6gP8d29/C5detJNtmzYC8OrxBZ547kVu/+JfcPDBe/iXv/xPkCnkvHalm/HPTvV6v/SP25vs3mB3fKurI37pX36cfdesf73HHriH//2X/3Fr/NOSTZMyzn0n0sx47LHH+JEf+REWFhd8pzcliRtyBVbFYlcTN0bfpoWEYiaxENTtjOQwByOZ7+r+b/zacY5YICvH/iDmBurjmzQOKMlIWkPThpohkuN0iwWI+YrNGkdeQswwcbhlWEAzw8wXazZDJfsYMP84ghXzxSHip5rB/IY5/sv/+0dc96Y3rdmA2uz0YDA1EHIqDNv1KDAVvk2yn64vOujHlqdlJ+vv/+wLX2JuywVcfOkeXj2ywGtHn0C1Hov+uUsu3cNzzz/Hf7vtdm5959snRknq6wtfvOOUr/fnX7yDH37n29fccBdG5Zy57fYvs2HrqV7vdm59x9vXJeqtx6WqD+T555/nyiv3s7y8TMLhSgLMElkURx+KENi+7uzi0EgtIUCi+OmSwIpjmYTSAIN6uiSDkkAKQgp/IgON+yaGnxIBz/rjcPckj30LU5I5rCsJsiYsafgjCbXEUIwiiqq4e1J9FjVfNCioYMlPC/eJIFuisTiN0oBkhllBcmJlaYnL9+/n0KFD7Nixg5xza6hPP/00S0tLzM7Mho/lfpGicW/hyyCQAv75Nuw+UOwi/o7WmXLfClhYOMaWLVvZtWtXG7TpRibrMx/0V1j34XcdT4DBYMA933yQnRdeymhUOHZsCZFEqrurORRZHRV2XrCLr33jft596zsZjUbtiuzGqQeDAXd//T52Xrj3lK53zzce4G/d+k6WlpfXOF5jSAhf+8YD7DjF8d3zjQf50VvfRdM0LYzqv/pHcH9napqGF154gb/59rdz7PhxTPCdNSliisYuK5rjIRsWPyeJQyGhWhyNCEn9sbrPIGRJmBRfeCb+kEXQwDZG49AFIYmh4kvmhHGYISTEGl9YBimPoZypvx8VJA3R5IurMcdrSTrjLuGjGJCNpJnGlCwWp6CRMLIoMCBhFJPYIAxNxjVXX83v//7vs337dnLONE1DzpmXX36Zt73tB1g8fhwzh3OIObyrp60IWp9XNlBfRtkCPqWIM9T5x+GhDIQN8/O88srLfPWrX+WWW245IeLVPvvubt49biZRMTDj6MISGzdt9i81YTjIzM/OMjc7w3AwANwp27hpM0cWln0iOt9RowruSAlHFpZP43pLJxAB68lnZuSUOXJa41tCIuQ7jYBWf9fnP5kZo9GIlZUVLrzwQpaXVzxihGHJEE1ucdlIkgOwKMncj5Ds0SjfZd2R9re7AeWkGOFUhuOrrd+jFDPMEkJ1XGPhxdY+cRzZARPJfR9Jiqm/P2wONKHJwJRs6jt0Su5nWHJfQj2IYBQIp14xBkI47OE/BVyUFI6/KCk5zJOSGY1W2bFjB03TrOGtzQyHNKNRnTGQghWjWInxGI0phvtyNOZg0GAU86hmlMYw9c9qMYyCjgpHjx9ndmYD3//Wt3LPPfdM9FtUlYGqUko5IbzVdUi7WHw4M8vc3CxzczNsmnejq6HSphSWVlYBWF2ZY2Z2tt2tuwuw/ruUwszs6V2vuxi6TlYd48zM6V+vC8/qYqgnZT861Y+dP/bYo/zoj/4Yo3o8u1PgoVRJiPqJBRkRo6C+oxchSaGIxC5uJHEfwDdqN3xTg+wRKXd2EyRIBppjy/fLY02CWCzTxuHX91MAEfdPNJESqBopFcwyJurAqg3jWpx6DqkExVIiNwIDQa1BAWRAQiE5XExJ/URCyQgFIZlB9rk8cOAAt912G/v3728jiMOZGVQDEShoSUhuEM2U5CecFHWIGbAzlwZJghRDs0AJ2FVdu2wUMxI+XyqFpjF27drF0aNH2bRpU7txt455fcjVuCrE6Ds6DkdW2bF9C1lg49wsG+ZmOWfjHNu3bGL7lk1s2TjPpvlZNszOkMTYsW0LWvSEHbhraDu2nfr1ztu6haa3uLqn0qhpOO+0rncOTWcy+vmMesLVxVgXdimFpmligWbmZgZtLN8vFmFZbbBGHfdSwo9whxot8ZAdMydzTG9aUDGKGlZ8QaiGU6wGVtDSUChIY6j6gqOBTHPScZj5qVHUoAg0DaYlIIWhlj2qFUhBDUwLNH4tMCgKZqRSGMwO+PM//VOGgznPe2jDYGbIvfd8g5mZAapCMcEEv6cK8RpFLLFp06Z2Lqvt7dmzh4cfeRBTQ1E04GXBEG187pLSqNKYbyBm0IQda6MoDUbB1DwQUvyE1tJgKFqM1dJw6Z5Lefzxx1vb7B4EqbtSJjmmXYjVNIXrr7mCI68dZmaQmJ8dsu2cTezYtpkd2zaz9ZyNzM8OmRlkjr52mBuu2c/qaHRCZGcMSxpuuGb/qV/v2isYxfW6GdFqtE3TcMNpjq8mGbs+xyRSX520GhMvpfDC889z7XXXsdKsYMV8t7fA3ChYJmWgGKkIlh3SWeQEwJDkp0UJKKIioGNXW9R3PnKKEK+E32BYDlxvUMTQzEnHIREQSCQaMSRn9+dlvKOmMUr3aFRKcco43JIUicWU+G+3fYHf/c+/x6c+9R+ZGQ6ZmZ3jtz/1Kf7PX/vX3HPvvTHaQsYgKUnFo9C5oBirKytcdeVVvPjii+1zEBGOHTvGxk0bfXGabyxGQ1GHmaYB4YqRLDYIIXyw4vDQ/HoJQ61BTHyPKeZ3aMbxhQXm5+dPSDCaGamPt7pQZRJL8qYbrmP56KscPnwYEZgZJAbZ/5sZZMA4fPgVlo++yoEbrqXCtq4Bdv2bm9/8JpaPvXZq17v+2hNgTXcxN03DzQeuP+Xx3XLg+hNoGN1Togsxu4umnijPv/AC+6/YTxlZZIo1YJIf5yLmBpeFMhCwEg67J8QkVacyRe66eLg1aRtcUVFSgmzFsx3uWSKSkWIUibiSpcD1648DMU/ggTvP6r5PskhrmEMfRFEJKBcZfJPkjq4nQTA13vk338mHfuJDfOXOr/J7v/t7/M7v/A53fvlOfuqnfoqbbjhA8di1/2nZr5kU0YQlhz7XvukannrqqTW2snXrVpYXFrBmBH5+OBnA/CRxP0NJVjySZoo2DrLcbhu0eDTORONnxde3FUQLqoVmtMreS/fwzDPPnOBe5J/+6Z/+F/1dvZ9V7BqHiHDDtVdy51f/ktVRw9ZzNpMkMRo1HD16jAce/hbPPv0k/+N//941Wcr1CoNuvO4q7vjKetd7gr/3t98zkXJ8QpTJjBuuu5IvTxnf/Q9/i+effpIPf/DHJiqO9EPX/Yhd9UuWl5fZMD/ProsupJhDBEniOzaCWMakuNMsjp0znhzTSv0wRbL4yYCQyWgliJhTMzKZRty3cNhDJNgMY0ACz66H333ScRSHVSnCrZbdfzFpc4okFLHsvkEkBE0E6YSPfXxQrHDF/suZnZ3jttu+wHPPPcv73vdefuiHfpiVZrlNbLYJy4Hfm9uSn4jaFF47coScUuvnbd26lccOPsa27eehxXd/JO7LQAZgJRZ84+epZM8JeYwtIaKIRZpGxXNFLTvMIuye2LRxE48++ig7d+5c48/KPffcY5O4+11nvOsj1N/Pz2/ggYe/xaNPPUcTGHc4GLBvz0Vcc8U+VlZXpkrgTCrPrNf71pPPnnC9a6+8gqWlxTUOUx1T/VmfGbphw0buf+gRHn3yudavaMe3/3JWVpZPYOXW+6vX7CYcu9GUpmm47777+OAHP+h4NxYlSdr8gOGOY45TwCpIsRQwxkjqxi7iECCJY3MBj91L8viXKSlFrN7iG6SyrOp1OaVxEAlB1EPFyTzSVCkjmgSp2XGNPALBO2kMy0JW8YhW8VNpODvLp//g03zjG/diCDfeeAN/+8c/yOrqClgOLpZgA8NGKU6vOI0QhMzK8iL/9fOf58orr2QwGJBz5v777+etb/l+jh096rAzCNApbhMqRItTRVKHGBmcF6CYkSUjWlr+pNNrIodiwlNPP8WuXbvWJKoHXew+GAwYjUYnxPS78d9q3EtLi+zfdym3HLiBuVlP1qyurPLakSMsryxPrNfuhnL7hLKFhePs33cpN9/4Jubm58BgeWWFI0eOsLBwfM3i7BrytLrlhYXjXL1/H993043MzsyAwMrKKseOHWNxcWEq6a3PzO0nSFWV0WjE7OwsMzOzLC8teagTQ5w8FVljZ8B6bD/Ig2YkUaz4I1Tx06Sh+E4cxuIZcHdAU8Ak0+T2ihtWzYSj1NThScfhYM4dbne6fVcV8bCx5zpicanvvO2qix+bepSrFMgizM7O8h8/9Z/46p1f4f0f+HEA/ugP/5CVpRU+/KEPsTxa8XAxhpRUM6C+IFViDgqbNp3Tnso153HhhRfyyuGXyGmGOjtJxfliqYbFPX+hpiQKWIoNB1CFQYrTsqGIRLTKT+xk0ChA4Yr9+3ng/vvZu3dvaw+D7mmxsrLCYDBY44TWf3eNsJsPeeWVV9aVdekvvm7Uql88tLq6yksvvzy1sH+aSkh9NU3T+k0iwuLiIouLi+0J2K8zmERP7+Z2qvPdz3EcOnSI6667jtXVZTQZ0pgf81KZrNWgAuNWrlJSSolEWPL9WqWGOt2eJSlaguJhvusnEc/yV0ygRkkpiH+QRSnCScfhnCl1smM44BVIdVnBnnFOEfpMiBVUnMxYeWFZ3FP6/z77x9x5x528//0f4F3vfAdigpbCZ/7wM1yyezdveetbnL8lCbNC5cAUJ7d4SFoSS6Nlrrnmap555ll27tzJcDjk3HPP5eDBg1x2+RU0qytgQol5dNaDopactoLFCVyQLKhCSua+hQTzWD33YwKpcUaA/8ztbBRRs/bk6OPsLkTRoHj3C/Yn1Rv0/ZJJBSarq6troEr3c/XPmvnuQ7FJmfu+sMAkI+/WpPQTndMURGqCr8/6rD8/dOgQ73nPezh27HhEYzzk6Md6pX8bFbAIhonDJKhoxWLXTwFp1NdPY8EgFzT8Dv+AOwbOrjWPgKXKbfLo1CmNo15HPHFmUhgTVQh+lOOWLM641aCFWEtbj+cgyo/+yLvZtnUb3//Wt7G6OkIwfviHb2Xnzgu48c3Xs7K86idNzTGUoLlLxUdOiMwI1159NX/5l3exbdu29jkuLi4yPzvL8dUVSoNDtDjJLKBRI0YmkqXOcEQSFI2cShKkLowSSUlLkU+CZMbi4iLnbt/O8vIyMzMzbkt33nmnTaqK6lZx1aOuX7vcx+yTanq7MKpbfNR1quvu3F8wfQp5d7ev4+v6Al3o0/eX1hMHm1aLPEl8YWFhgZWVZd7+gz/IatOEPzDwya8bdXLoQwnqglR6OBFNcqhDOLbq22dEIiM513iUR8woyZ32XJ3sFDukuPtSKhnxFMbRJgZjx0ymIIM2CWkBO6xS4FNk7cVQC1jia6UNh1rOfgKotgnL
display: none;
}
#chrome-mid {
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAABICAYAAADRa1RpAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAB3RJTUUH3QcNFycE5v9iFQAAAQtJREFUOMvtkjGSWzEMQx/0eYrM3v8k3vgqycalSwlI8Ufyl3OBFMtGIgUCIEd6PB6RBEASqvfONSrJXrDNbNkQ8ywA2y/SmayW+ZIESTsiyQsxo40xmMS2aUmYbheHpCVd0+UqJGGMsey3mUyldoUvlY3D9rIN0K7Wbe/WbZ+y1yWtaVtrp3VJzAEX6ZVjc2p7b2mtnYhNdl6m05rwtfV/ltx7XypJTpXeO7Y5juOlchzHaWxyrJmuhLapqgIJONv05+srThBgiQpBTSRwGOr3rwccgWHUhJ7P5/YNlbd/2XiL78L/WajP240AQUihfnx84EDJjCHKHjTAbkimQDgBjAJ1/3kHAgEk/gL71AHEWVXPGQAAAABJRU5ErkJggg==);
display: none;
}
#chrome-right {
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAABICAYAAACaw4eEAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAB3RJTUUH3QcNFyghKmOqnQAADE1JREFUaN6dmsuyZsdRhb/M2uf07bREYDykPeIleAMibNx92i9BgEPBgyB5xlvgtgI8VDNBI41xhGkpQowERgqw3H0ue1cuBlm1T/3Vu4XNiWj9l12XrMyVK1fWL/v6668lCXdHEt/1Z2YnnyUhCTPbX8dn45pmRkR81z7/XUr59Pz8/K8ePnz47/bVV19pnDhu0t+Pmx0Z+Pv8zWv1/eZnZ2dntw8ePPizZXw4bj5/P3vq6G/eePZiX9fd9/Xng6/reg78/dInzxPG9+/auH83GjEbPUahj6m1Hoa6v1/X9c+XPrlP7INqrfuru7+10WzUkUHvOtTojPF1mPdHSzdqPPXo5vm046bdq0fhGr+bvXZk6OgAM2OZBx7hZD7hnCzbtp149Wid0YOjx+eE6t8tMzb659Ebkg5PPY8ZvXpEQWNCzck2M4H3BWeM1Fr31/6+GziPmTefM3tcYzQoIt4a3+cso2EzhsYTzAAdw9M9M3rviPv683dl/Oi9pdZKKeVk4piVRyDu1NI3mCtARFBKeWeGbtt2yHV9HXdnGUMyGjSfZq4K42ajYbPXx836XjO+jsj3rawcFx5dPgK8bzJ6eGbzI8yO3j4yaMToiWF98fl0c4bNSXBEJ/Ozd1HSEY8BLGOIxlONeCqlnHyWtGNoxteRMX38uP44fkyyPnfpp58zqy/s7jsGj0rOEcvPVaMD/sj4I/zWWllmMB/VviOwHumv+dkRGc9EOtOUu6fHZteOGBtDN/+NeJwPNRsxl54RU3PIO4x827a3wNwfdr45kib92WhAf9+fHem1I7FZa31rr+WIr45kzrjZsixvZWHHYcfqXFHGctM9ta7ridcigmVZWNf1DvyllN2wkatmHIxCby7kYzbPOD2qFCN39efrut55rE8YM3I+8VENHPFVa2VZlkOSdXe2bTuhmHdl+W5ox8T8YCbD/l2t9YQqRiNGjx8l1JEamVXKri56doyTuzfGhWd+OyLJjsNRlo+eHaX63Iy8ldnjQn3hbmA/yagGusfG7JwrxZytcxMyjpnH77VyPEEP65iVs5tntp4ldp8zlrG+x8z2Y9L1f91Jy+zeccGZn0Zv9nFHTH500BGbM6HOojMiWEZQf1cN7Aut68qyLCdeGFN+xuRYJ7tXu5fetU9EZCiPOp8xm8bTzLqpe2jkoDnzxjCOa8/VZByzzG7t8gQ4eT+GdO4Be0kZDTgq5kea/0g0RgS+rushNkbg93o6aqeejUeNR/fcUWmaqWLbtn39MdGWGcRHUrcb17E1jhszq3tvxNCsJuaE6VGZMbeMKTrL6LGelVL2k41jx6zuRbknSS9BI7WMdDRTxLi3z+VkDl3/7vb29oS3xhoZESdZOm4whrW/7/NHT83UtNze3u6c1I06Ozs7wdjc7PaQzsV8JNSOp7k97IDvtDPDYTdsvts6Pz8/MXCsm2PD2g/Tm+Vx0bHZHTNvjMyRyh2pajk/P0cIZEAHLLgXQLg5ckDCAFsKCwtIeHHAQGAmSnEkMAyZMBkin4lc3jBEM4a7MZgo7mBGhLD/+M1/qiCqDJflIjICYbknjlEtQEl81cBDYIaUi3aDwoEQ7mABuFMjcHOMQHLMRLSDhhlFQk4+k9IhLggZBREeVLN+NNwNCAhRwjGMimGyPJlA3owyIwiKEltWjTBHNchIGpLleIS5ITNKQHVDYRiBGUQI/83X/0XUyorhm2EKAsvT1IqFgwusgglCWARV3SuGmdNchwgiRHWQagcHIqCNJ7whJ6AI20AeUJ3A0ilP/vQJ33zzDdvNDbWkO91oAwphrah7wVGG1cHMqSHkggiwDJthmAcgjIIVg5rfWc1h2AZ7AgBLpMElMpQCUyOSX/3rr/j+9/+EGoEQTgKxKnDADRROmCiWySJBeILbMCxENVhwBISCnldm4EBEeiQRk1AJs/Y5ER2q7BX03v17SQnumDeXRqXgDaSA1cSdIExQDM+UgtoArTyMIjABJUPt4S2hRHEIgbdstV5LI4OusDvDMgMNqw3sHqi0HPcMotyRNqp5ArnmRrkLuBm4kHmjDAeEDMICk2PFMwomqjI2xYSHsJIUUnxoeBO7rdQUJ2qeJk8SLfdLGtgWCouEVzFUG7NXMAXVG1YqyDdMhSDgFuTpabUEiUguUw3AiAafbhoR4EtmpJknKArgytMaBHBmIozEIQ41M1dK7ySGEvxQ8NoI1w2WFh0XlsUaFYilJ5zhpuGKwBxXeygIqxlrE6Ih1wKPgi8L799/QGcJo4M5o9oYDfcKUZJmEFdX12zrikh2xwwrQA2KOeqETRlCGaKaUFXLpjQwy5Elu4dzflb4uw8/5MXP/wEsE6ORVX8hbVRzTVcN4ic/ec4HH3zA7XaTC1sQtZUXAm98Z7I7uvjii8+5ePw4pUiwu7TXuogM3cX7j/jhX/yIJz948gf/NPjll1/yy1/+E//z299RCGrL+AxI8krQfhk5Ab+6LmrGyDA1dvfkqOvXNzy7fMonn7w8umjafabmsDuowPPnz3nz5joLiN9VCwIqJDGHweixV59/weNHF4itZSMJbGq61kg3h3N2fs7D9x7jIdTwIzw3tCxrZo560U5U8frNFdu6URWJS8RmRukto3smv07uxwJrMa9uLDJCG1ZKI87AWJBvhEOsG9WEhSVcWBtu1A615da2kboiPaRW4hSRcBGEClhg0cTDycWdJR1XgUdkrN2hRqslGapydo+fffgRL37+Ir1opzrrJHZDAiB49vySv/3gp9zcRiqLCpsrjSLrnpQ27KH8/ItXPHz4PtRbRMoTajrBw6Hk4o8vLvjhj/6SH/w/wf/xx//I629/u9fPjkxLIZfVwmLwWBhQqUqgU1NZlCrkQVRwGW9urrl89pRPXr78gw27vHzO9dVVI2cIOYVIGHkrYXVDUQaPvXrFo4tHbFV7dnkjzGT+5BjXwnK/cPHovcRLI9hME3ZeM2+HtRwQAVdXb1ivr6ldzfYC3sSnPFAUZHW+HE7WtqamZL07avrcnYgKKtR6m/VKQTR9n0JQjZj7KqD2LCLY2h4quqsKNUWA5BQPatjAY1hTpuAO2iqlGLV1EQJ8C87vnfOzjz7ixS8+5vf93y+sFeZnl5f89K//htttw1bAW5d05rAK90awjOD//BUPHtynblmInXStyUHJR3jw3sV7/PjpU548eXJArvZ/gv/Fx7/g9bfftug4NfVKa7byd8pN9ZT5I9rFSM/wSPFXrOn5Tby5vubp0x/z8uU/t1Jx5/H9v3b3/q4YGJfPLrl+c0Pde8lgEWxN0znG1jG6e+zfXnHvwQNETdmMINqlSEeZJ1Dvn93j4uJiL+6jv8TQO9L6lya9f/fta26228wodVwZboFU2gLbqbqglZLarzTbdpvBEhWxNJI1bq5uuV6/SRCHt35AyAwPo5aKZzlIHRb5SqTR1nRSnitQtC4phNlyqvlTppRUlmZEQJizhCErbYSa57J8SNkLRm3s7RV54AHymjK9cYjUyg+wqV8XRCtfdzea+IZiFIoSsFKBEm1SE26SpXZCeDh7g9P64R4SrU2ZkC1btea5TMDsqCJ5UfUuZwO1BlnZ6tkgrWWWqjOgqhJmsLWa2dowsKZK0nuKlMWokWWBoBIeiJpZF6CqhtnMdHSHW6PdZLfijjISu2HX11dEjURrTza3BtymzaLV5NZwEGQYW4ekaLdCkXSDRCkidr2n/XKGUlOKjxc6oXZN0H4ZefXrVxQ3atTsjD1lkJpIDNEwlSCRZ53rp4zViNiQtqwEStHT1YoUOaclSY1MmmjXCelNz2Q1T5L/7LPPYDEePXqYNa0ENHnd7xeKKUFiAO2HBM97DZMoS1prMmQLrqCE8uZHIgVDNAFpFEW7BnGKWQtnYJ6GOmL54+99D0JEzfT1alRzikHtda+1/4nsxk/VqQZmlXXzJMUiqFu7nrJMe8v2LhteteuAvEcrVqk1m+Owdn9h7ZYSE6WAIrkjPCVIFua8s0jhWHfhZ5YZZ6rZNxoplZp3clg2uUSKAcmwYpgqUs1iFI5Z4rr3mliq3IVqVDbwM9CGkao1rN1IR6F4xepCEFht1wAhIKjRNH0Dv6ym5lHrEQw8JSlUtapghHJ+qiK13OyZ6yyf/sunSYqyVuPavVVq3bvSgrKxcKVGU7/s1U5ovXz1W5v9ftPVet68cbSehRo65ZNfUuB/AWHLchVUWJtFAAAAAElFTkSuQmCC);
display: none;
}
</style>
<div id="header"></div>
<input id="stacking-distance-slider" max="400" min="1" step="1" type="range"/>
<canvas id="canvas"></canvas>
<img id="chrome-left"/>
<img id="chrome-mid"/>
<img id="chrome-right"/>
</template><template id="tr-ui-e-chrome-cc-layer-tree-quad-stack-view-template">
<style>
#input-event {
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAMnwAADJ8BPja39wAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAyNSURBVHic7Z1PTCPXHcc/4wWWVbJN2cJSLVqiQJuGpoIGEVWReoBNIlIF5RCRSysOK9EbksUeOHLIIQcULbLEEYk7oqduD6gSRoqUEyK7dCOabOHghCiAE/JntQtesHt4fuM3z2+MZzy2x8ZfaTTjN+Px4/fh9/7Pb6xMJkND4VGk2hloyKkGkJCpASRkagAJmRpAQqYGkJCpASRkaqp2BvzKsizf3w1z38sKc+ZUaQCuAFeB57P7q4AF/Kxsj4GnLrfL+6PDYofQAskCaAJ6gJeB6+QAFOvZpwgwPwOHwCNgN5uu/+H252raJHRALMu6ggDwCtALNAf8E88QUL5AAHqSTVcNUTU4oQBiWVYzMIiA0E3lGhtp4CsEnPtACgFDGqXiYKoKxLKsCPAaMIwojlzV1tZGV1cXHR0ddHR00N7ebh93dHQAcHh4aG/JZNI+3tvb4+jo6LzsPAY+QYA5Ix9KBsoPpmpALMt6BXgTaHe7pre3l5GREUZGRujv7/fdsspkMmxtbRGPx4nH4+zs7BS6/HtgHfgvOW9xeE05bVZxIJZldQNvATf1c5FIhMHBQYaHh7l16xbd3d1lyUMikWBtbY319XU2NzdJp9Omy74B1oAEAoa8yIZTDttVDIhlWZeB94Dfm86Pjo4SjUbLBsFNiUSCWCzG6uqq2yVfAv9CNKHTlNlbKgLEsqxrwF+BX+nnhoaGuHPnDv39/WXPRyFtbW1x9+5dNjY2TKePgBXgOwQUFUyg3lJ2IJZl9QAfAK1qek9PD9PT04yMjJT1970qHo8zPz/P7u6ufuoE+CewQw6Kw2OCsGVZgViW9SdgFNGLBqC1tZWZmRnGx8eJRMI5lJZOp1lZWWFubo7j42P1VAZR4W8gWmJn5KBAAEVYWYBkm7PvIvoWtjo7O1lYWKCvry/w3yyHtre3mZqaYn9/Xz/1EPg3ot+iQslQIpTAgWRh/A0x5GFrYGCAWCxGe7trKzeUSiaTRKNRHjx4oJ/6CvgHoigLDEo5yox30WCMjY2xtLRUczAA2tvbWVpaYmxsTD91E3gbMbTTBFxCFM0WYPntMwXqIdk64x3lM9FolMnJycB+o5paXFwkFovplfcniDrlNLvJXr4vTwnMQ7KtqVE1rZ5gAExOThKNRvXkPyMGQaWXlOQpgQDJ9jM+QGlNjY2N1RUMqcnJSb34shClwnVE8aVCAY9QSi6ysj3wv6N0+gYGBlhaWqKlpaWke4dVqVSK27dv6xX9j8AyYpDyGaL4svsqxdo5CA95DwVGZ2cnsVisbmEAtLS0EIvF6OzsVJNfQIzRlVTJlwQkO1Boj021traysLBQk60pr2pvb2dhYYHWVscAxEuI1pcKJYIHKKV6yFvqh5mZmZrp9AWhvr4+ZmZm9OQ3MAMpSr6BZOcz7CH0np4exsfH/d6uZjU+Pk5Pj6PbdR34LT69xBeQbG/8TTVteno6tGNT5VQkEmF6elpPfh24TK7VFaFIKH4t+BrKTN/Q0FDoRm0rqZGREYaGhtSkXyDqVs9Fl2cg2QUJw2ranTt3vN6m7mSwwR8R68dULzm31eXHQwZRFiSMjo5WfXIpDOrv72d01DFQcQXoQ3hI0V7iB8gr9pcjEdNQwoVVNBrV69EXcanccfEST0Cyi9jsSe/BwcGKz4GHWd3d3QwOOqaAOoDnMFfuRnn1kJfV7wwPD3v8ev1Ls4mF+Ac2FVsW5C8aLxpI9ou/U9Nu3brlOcP1LoNNbuJej+R5ihcPaQJ+Iz/09vY2iiuDuru76e3tVZN+jeiTyFHggsWWFyA9KAufL3K/4zxptrkE3MClYkcDUxQQU3HVAOIug226yHlIXvNXrUe8eEiHPGhra2v0PQqov7+ftrY2NekFzEVWSXWI3Rns6uoq6ZGyepdlWXR1dalJrRTwEFVegFyVB3L5f0Pu0mzUirC1CsPoJcUCuYLyGFkDyPnSbBQhB8VUZNm99nOBZC+8qqZdhBnBUmWw0RXMQHx5iOPpprB5yMbGBp999lm1s+GQwUZXKFBUSRULxOEhYQNy//59Hj58WO1sOOQCpGAfBOoESBhVwENMm61in/cOXRt3f3+f09NTAH766SdaWlrY29sDoLm5mevXr1cze25y9QypYoH8rH44PDwsIU/B6KOPPrLzcXBwQCQS4dNPPwXgxo0bfPzxx9XMnslGJ7h7hkX2GZOaBRKLxezjxcVFLl++zMTERBVz5JTBRseGy3zXIaEDEna5eAgENIX7WP2QTCaL/NrFlcFG0kMKLvIttsh6ilg83ATh85D3338/dGNrmo3SiAXYuvLgeImX9Rj4peHHqq5r165VOwt50mx0gjkqhJT92cvgol2P7O3thSa+VBiVyWTsJnhWsv4wBrZR5QWIjfzo6IitrS0vebxQ2tra0oPdPCbfQ4ze4gXII/VDPB73k9cLIYNtDnACUJ9td8gLkF2UiqkBxF2abc6AJOboD3lQzgWi1BWnCCgA7OzskEgk/Oa5bpVIJPTwT9+RCymoe4jvIkt+8Qs1cW1tzVem61kGm8jiKk1+gIE8eV25+Ihc3CjW19c9fr3+pdkkgwCiwsiL+oDyUKhXIE8QISUA2NzcbBRbihKJBJubm2rSD4h4KLLuOMMQRUiVn9XvdrGVTqcdg3wXXbFYTI9Op3qHuqlQHCoKSNadJNH7KGNbq6urjT4Jou+hRaVLIUoTE4zA6hD5Q5+oCXfv3vVxm/qSwQY7iG6C9BAZByWv6auOevgBIr3ke5mwsbFxofsl8XhcDw34BPgaYXg1KI0p6JlDRQPRiq0zRGQ1W/Pz827RPeta6XSa+fl5Pfl/5LxC3QrCAP9P4WYQcW2/kQm7u7usrKz4vF3tamVlRY/P+CPwLTlvcANiDN/kCYjiJXLv6AXNzc2xvb3t5ZY1re3tbebm5vRk2Vc7JReExgTDqFI8JIMIMvylTDw+PmZqaupCzCgmk0mmpqb0IJkHiLpV9Ypn5MA4oJimMDwD0eqSDCLIsD3WvL+/TzQaJZVKeb11zSiVShGNRvXgmE+Az8kVU8+UrSjvgNKCz8jxmaeIIMNyEoYHDx4wOztbwq3DrdnZWT1W1imi5XmCE0YKlyLLbYLPFxDlZhLKd4ggw/aJe/fusbi46Of2odbi4iL37t1TkzLAfxAzqmc4PcPkIQVVqofIfRrREVpXL4jFYnUFRQbB1PQIMZsqYaSUraiWlaqSQvxlV3rIFd2XEIsm/gL8Qb1ubGyMDz/8sGajzKVSKWZnZ3XPANHs/xxh+BSiyDrObifkirCiiisIDogK5TIwjvY6ijoMpHwEbCJAPCMHQIWhxl4sKmxsEEEwwQmlCQHlbeBV9do6CjX+DbBNDobqHSYYRQfCLDnimKEZfJbN0CpiENLOxf7+PhMTEywvL4d6mCWdTrO8vMzExIQOI4Pod31OPowTzHWHpz80kMjWyqpB6SXSU5oRQYbfARwVSA2+ruIU0ZrSK/ATnEBky8oxqlusnQMLNa4VXRa5Sr4JEYdwDPG8tkM18kKXJ+TmgWQ/Q3qDDsNTJa4r6NjvkA/lEsJTnkdEMX3J9N0Qv/LoAFFEyRaTbFFJGPK4ZBhQntdVgDuUZkTr6w2E1zgUspeC/YjoY3yPczgkZdhk568kGFC+F7qAE4qsU2S90owIpfo6ImCkUVV6bd4TxHzGtzgnmNThEN0rHK0pSngFUtleeeQCRa1XmhHN41eBAcRDka6qwIslU4jRhq/Jn8tQh0HUitttWtb3YvRyv4MKck8MyUeCZRGmeosMGPkiIshNpR72yCCW6hwgFiTI1pE0tDS6abDQ87BIMarEW9rAGUFNNot1MHL/HCIs3k1E8K9LAWfpDDEYepDd5Lopdc5b9Qx9r14nx/EgABhQASCQ109RizAdjApH9vhvIOJNvYCIFyJjhhSjNLlm6WMEgCS5tbbqAjbTlKsKwwTCHmCtmfcY2j/khCL3auwPNXyRGqOwifzQRq2IYk7dwDl8cYwwpjoqrRrSDYYKpdCaqpLrC5Oq8S5c+xCzx+hwTJtbEBdT3aMbUBpVXWvrtsnz+op1CNArVFXlbdEu3mICowJS9+cBsR/Exx2IaQG0af1tHggI1itUVft96vahsi/kOabPxQCRe93IaW3TAVQMhFRVgdiZMIORexOgQiDkXv3DdAObPMYIgAqBkAoFECmtJ+4Gp9Ax2rEORe51w+sQ7OOK17FhAqLKBY567AbBTSY4rsfVsktogagqACfvUpd0tz/SkR4GW9QEEFVBhtAI499ec0DqXf8H8f4X10jf2YAAAAAASUVORK5CYII=);
display: none;
}
</style>
<img id="input-event"/>
</template><template id="tr-ui-e-chrome-cc-picture-debugger-template">
<left-panel>
<picture-info>
<div>
<span class="title">Skia Picture</span>
<span class="size"></span>
</div>
<div>
<input class="filename" type="text" value="skpicture.skp"/>
<button class="export">Export</button>
</div>
</picture-info>
</left-panel>
<right-panel>
<tr-ui-e-chrome-cc-picture-ops-chart-view>
</tr-ui-e-chrome-cc-picture-ops-chart-view>
<raster-area><canvas></canvas></raster-area>
</right-panel>
</template><dom-module id="tr-ui-a-stack-frame">
<template>
<style>
:host {
display: flex;
flex-direction: row;
align-items: center;
font-size: 12px;
}
</style>
<tr-ui-b-table id="table"></tr-ui-b-table>
</template>
</dom-module><dom-module id="tr-ui-a-single-event-sub-view">
<template>
<style>
:host {
display: flex;
flex: 0 1;
flex-direction: column;
}
#table {
flex: 0 1 auto;
align-self: stretch;
font-size: 12px;
}
</style>
<tr-ui-b-table id="table">
</tr-ui-b-table>
</template>
</dom-module><dom-module id="tr-ui-e-chrome-cc-raster-task-view">
<template>
<style>
:host {
display: flex;
flex-direction: column;
}
#heading {
flex: 0 0 auto;
}
tr-ui-b-table {
font-size: 12px;
}
</style>
<div id="heading">
Rasterization costs in
<tr-ui-a-analysis-link id="link"></tr-ui-a-analysis-link>
</div>
<tr-ui-b-table id="content"></tr-ui-b-table>
</template>
</dom-module><style>
.tr-ui-e-chrome-gpu-state-snapshot-view{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAAZiS0dEAEwATABMYqp3KAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB90JCQsBMCH7ZqYAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAUElEQVRYw+3WwQkAIAiF4Vc0hTO5/wiuURvYIcQOv1cRPhDlDXffSsrMsrYiQi/zU80FAACAVX3nt3lWAABA/x+ovnPyAAAA5AHyAAAA3wMOd34Xd+lsglgAAAAASUVORK5CYII=);display:flex;overflow:auto}.tr-ui-e-chrome-gpu-state-snapshot-view img{display:block;margin:16px auto 16px auto}
</style><dom-module id="tr-ui-a-layout-tree-sub-view">
<template>
<style>
tr-ui-b-table {
font-size: 12px;
}
</style>
<div id="content"></div>
</template>
</dom-module><dom-module id="tr-ui-e-s-frame-data-side-panel">
<template>
<style>
:host {
display: flex;
width: 600px;
flex-direction: column;
}
table-container {
display: flex;
overflow: auto;
font-size: 12px;
}
</style>
<div>
Organize by:
<select id="select">
<option value="none">None</option>
<option value="tree">Frame Tree</option>
</select>
</div>
<table-container>
<tr-ui-b-table id="table"></tr-ui-b-table>
</table-container>
</template>
</dom-module><dom-module id="tr-ui-b-chart-legend-key">
<template>
<style>
#checkbox {
margin: 0;
visibility: hidden;
vertical-align: text-top;
}
#label, #link {
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
display: inline-block;
}
</style>
<input checked="" id="checkbox" type="checkbox"/>
<tr-ui-a-analysis-link id="link"></tr-ui-a-analysis-link>
<label id="label"></label>
</template>
</dom-module><template id="chart-base-template">
<svg>
<g id="chart-area" xmlns="http://www.w3.org/2000/svg">
<g class="x axis"></g>
<g class="y axis"></g>
<text id="title"></text>
</g>
</svg>
</template><dom-module id="tr-ui-e-s-input-latency-side-panel">
<template>
<style>
:host {
flex-direction: column;
display: flex;
}
toolbar {
flex: 0 0 auto;
border-bottom: 1px solid black;
display: flex;
}
result-area {
flex: 1 1 auto;
display: block;
min-height: 0;
overflow-y: auto;
}
</style>
<toolbar id="toolbar"></toolbar>
<result-area id="result_area"></result-area>
</template>
</dom-module><dom-module id="tr-ui-b-heading">
<template>
<style>
:host {
background-color: rgb(243, 245, 247);
border-right: 1px solid #8e8e8e;
display: block;
height: 100%;
margin: 0;
padding: 0 5px 0 0;
}
heading {
display: block;
overflow-x: hidden;
text-align: left;
text-overflow: ellipsis;
white-space: nowrap;
}
#arrow {
flex: 0 0 auto;
font-family: sans-serif;
margin-left: 5px;
margin-right: 5px;
width: 8px;
}
#link, #heading_content {
display: none;
}
</style>
<heading id="heading" on-click="onHeadingDivClicked_">
<span id="arrow"></span>
<span id="heading_content"></span>
<tr-ui-a-analysis-link id="link"></tr-ui-a-analysis-link>
</heading>
</template>
</dom-module><style>
.track-button{background-color:rgba(255,255,255,0.5);border:1px solid rgba(0,0,0,0.1);color:rgba(0,0,0,0.2);font-size:10px;height:12px;text-align:center;width:12px}.track-button:hover{background-color:rgba(255,255,255,1.0);border:1px solid rgba(0,0,0,0.5);box-shadow:0 0 .05em rgba(0,0,0,0.4);color:rgba(0,0,0,1)}.track-close-button{left:2px;position:absolute;top:2px}.track-collapse-button{left:3px;position:absolute;top:2px}
</style><style>
.object-instance-track{height:18px}
</style><style>
.tr-ui-e-system-stats-instance-track{height:500px}.tr-ui-e-system-stats-instance-track ul{list-style:none;list-style-position:outside;margin:0;overflow:hidden}
</style><style>
.tr-ui-e-system-stats-snapshot-view .subhead{font-size:small;padding-bottom:10px}.tr-ui-e-system-stats-snapshot-view ul{background-position:0 5px;background-repeat:no-repeat;cursor:pointer;font-family:monospace;list-style:none;margin:0;padding-left:15px}.tr-ui-e-system-stats-snapshot-view li{background-position:0 5px;background-repeat:no-repeat;cursor:pointer;list-style:none;margin:0;padding-left:15px}
</style><dom-module id="tr-ui-e-v8-gc-objects-stats-table">
<template>
<style>
tr-ui-b-table {
flex: 0 0 auto;
align-self: stretch;
margin-top: 1em;
font-size: 12px;
}
.diff {
display: inline-block;
margin-top: 1em;
margin-left: 0.8em;
}
</style>
<div class="diff" id="diffOption">
Diff
</div>
<tr-ui-b-table id="diffTable"></tr-ui-b-table>
<tr-ui-b-table id="table"></tr-ui-b-table>
</template>
</dom-module><dom-module id="tr-ui-e-multi-v8-gc-stats-thread-slice-sub-view">
<template>
<style>
</style>
<tr-ui-e-v8-gc-objects-stats-table id="gcObjectsStats">
</tr-ui-e-v8-gc-objects-stats-table>
</template>
</dom-module><dom-module id="tr-ui-e-v8-ic-stats-table">
<template>
<style>
tr-ui-b-table {
flex: 0 0 auto;
align-self: stretch;
margin-top: 1em;
font-size: 12px;
}
#total {
margin-top: 1em;
margin-left: 0.8em;
}
#groupOption {
display: inline-block;
margin-top: 1em;
margin-left: 0.8em;
}
</style>
<div style="padding-right: 200px">
<div style="float:right; border-style: solid; border-width: 1px; padding:20px">
0 uninitialized<br/>
. premonomorphic<br/>
1 monomorphic<br/>
^ recompute handler<br/>
P polymorphic<br/>
N megamorphic<br/>
G generic
</div>
</div>
<div id="total">
</div>
<div id="groupOption">
Group Key
</div>
<tr-ui-b-table id="table"></tr-ui-b-table>
</template>
</dom-module><dom-module id="tr-ui-e-multi-v8-ic-stats-thread-slice-sub-view">
<template>
<tr-ui-e-v8-ic-stats-table id="table">
</tr-ui-e-v8-ic-stats-table>
</template>
</dom-module><dom-module id="tr-ui-e-v8-runtime-call-stats-table">
<template>
<style>
#table, #blink_rcs_table {
flex: 0 0 auto;
align-self: stretch;
margin-top: 1em;
font-size: 12px;
}
#v8_rcs_heading, #blink_rcs_heading {
padding-top: 1em;
font-size: 18px;
}
</style>
<h1 id="v8_rcs_heading"></h1>
<tr-ui-b-table id="table"></tr-ui-b-table>
<h1 id="blink_rcs_heading"></h1>
<tr-ui-b-table id="blink_rcs_table"></tr-ui-b-table>
</template>
</dom-module><dom-module id="tr-ui-e-multi-v8-thread-slice-sub-view">
<template>
<tr-ui-a-multi-thread-slice-sub-view id="content"></tr-ui-a-multi-thread-slice-sub-view>
<tr-ui-e-v8-runtime-call-stats-table id="runtimeCallStats"></tr-ui-e-v8-runtime-call-stats-table>
</template>
</dom-module><dom-module id="tr-ui-e-single-v8-gc-stats-thread-slice-sub-view">
<template>
<tr-ui-a-single-event-sub-view id="content"></tr-ui-a-single-event-sub-view>
<tr-ui-e-v8-gc-objects-stats-table id="gcObjectsStats"></tr-ui-e-v8-gc-objects-stats-table>
</template>
</dom-module><dom-module id="tr-ui-e-single-v8-ic-stats-thread-slice-sub-view">
<template>
<tr-ui-e-v8-ic-stats-table id="table">
</tr-ui-e-v8-ic-stats-table>
</template>
</dom-module><dom-module id="tr-ui-e-single-v8-thread-slice-sub-view">
<template>
<tr-ui-a-single-thread-slice-sub-view id="content"></tr-ui-a-single-thread-slice-sub-view>
<tr-ui-e-v8-runtime-call-stats-table id="runtimeCallStats"></tr-ui-e-v8-runtime-call-stats-table>
</template>
</dom-module><dom-module id="tr-ui-a-alert-sub-view">
<template>
<style>
:host {
display: flex;
flex-direction: column;
}
#table {
flex: 1 1 auto;
align-self: stretch;
font-size: 12px;
}
</style>
<tr-ui-b-table id="table">
</tr-ui-b-table>
</template>
</dom-module><dom-module id="tr-ui-b-tab-view">
<template>
<style>
:host {
display: flex;
flex-direction: column;
}
#selection_description, #tabs {
font-size: 12px;
}
#selection_description {
display: inline-block;
font-weight: bold;
margin: 9px 0px 4px 20px;
}
#tabs {
flex: 0 0 auto;
border-top: 1px solid #8e8e8e;
border-bottom: 1px solid #8e8e8e;
background-color: #ececec;
overflow: hidden;
margin: 0;
}
#tabs input[type=radio] {
display: none;
}
#tabs tab label {
cursor: pointer;
display: inline-block;
border: 1px solid #ececec;
margin: 5px 0px 0px 15px;
padding: 3px 10px 3px 10px;
}
#tabs tab label span {
font-weight: bold;
}
#tabs:focus input[type=radio]:checked ~ label {
outline: dotted 1px #8e8e8e;
outline-offset: -2px;
}
#tabs input[type=radio]:checked ~ label {
background-color: white;
border: 1px solid #8e8e8e;
border-bottom: 1px solid white;
}
#subView {
flex: 1 1 auto;
overflow: auto;
}
</style>
<div hidden="[[tabsHidden]]" id="tabs">
<label id="selection_description">[[label_]]</label>
<template is="dom-repeat" items="[[subViews_]]">
<tab>
<input checked="[[isChecked_(item)]]" id$="[[computeRadioId_(item)]]" name="tabs" on-change="onTabChanged_" type="radio"/>
<label for$="[[computeRadioId_(item)]]">
<template if="[[item.tabIcon]]" is="dom-if">
<span style$="[[item.tabIcon.style]]">[[item.tabIcon.text]]</span>
</template>
[[item.tabLabel]]
</label>
</tab>
</template>
</div>
<div id="subView"></div>
<content>
</content>
</template>
</dom-module><dom-module id="tr-ui-a-memory-dump-heap-details-breakdown-view">
<template>
<tr-ui-b-tab-view id="tabs"></tr-ui-b-tab-view>
</template>
</dom-module><dom-module id="tr-ui-a-memory-dump-heap-details-breakdown-view-tab">
<template>
<tr-v-ui-scalar-context-controller></tr-v-ui-scalar-context-controller>
<tr-ui-b-info-bar hidden="" id="info"></tr-ui-b-info-bar>
<tr-ui-b-table id="table"></tr-ui-b-table>
</template>
</dom-module><dom-module id="tr-ui-a-memory-dump-heap-details-path-view">
<template>
<style>
:host {
display: flex;
flex-direction: column;
}
</style>
<tr-v-ui-scalar-context-controller></tr-v-ui-scalar-context-controller>
<tr-ui-b-table id="table"></tr-ui-b-table>
</template>
</dom-module><dom-module id="tr-ui-a-memory-dump-heap-details-pane">
<template>
<style>
:host {
display: flex;
flex-direction: column;
}
#header {
flex: 0 0 auto;
display: flex;
flex-direction: row;
align-items: center;
background-color: #eee;
border-bottom: 1px solid #8e8e8e;
border-top: 1px solid white;
}
#label {
flex: 1 1 auto;
padding: 8px;
font-size: 15px;
font-weight: bold;
}
#view_mode_container {
display: none;
flex: 0 0 auto;
padding: 5px;
font-size: 15px;
}
#contents {
flex: 1 0 auto;
align-self: stretch;
font-size: 12px;
}
#info_text {
padding: 8px;
color: #666;
font-style: italic;
text-align: center;
}
#split_view {
display: none; /* Hide until memory allocator dumps are set. */
flex: 1 0 auto;
align-self: stretch;
flex-direction: row;
}
#path_view {
width: 50%;
}
#breakdown_view {
flex: 1 1 auto;
width: 0;
}
#path_view, #breakdown_view {
overflow-x: auto; /* Show scrollbar if necessary. */
}
</style>
<div id="header">
<div id="label">Heap details</div>
<div id="view_mode_container">
<span>View mode:</span>
</div>
</div>
<div id="contents">
<tr-ui-b-info-bar hidden="" id="info_bar">
</tr-ui-b-info-bar>
<div id="info_text">No heap dump selected</div>
<div id="split_view">
<tr-ui-a-memory-dump-heap-details-path-view id="path_view">
</tr-ui-a-memory-dump-heap-details-path-view>
<tr-ui-b-drag-handle id="drag_handle"></tr-ui-b-drag-handle>
<tr-ui-a-memory-dump-heap-details-breakdown-view id="breakdown_view">
</tr-ui-a-memory-dump-heap-details-breakdown-view>
</div>
</div>
</template>
</dom-module><dom-module id="tr-ui-a-memory-dump-allocator-details-pane">
<template>
<style>
:host {
display: flex;
flex-direction: column;
}
#label {
flex: 0 0 auto;
padding: 8px;
background-color: #eee;
border-bottom: 1px solid #8e8e8e;
border-top: 1px solid white;
font-size: 15px;
font-weight: bold;
}
#contents {
flex: 1 0 auto;
align-self: stretch;
font-size: 12px;
}
#info_text {
padding: 8px;
color: #666;
font-style: italic;
text-align: center;
}
#table {
display: none; /* Hide until memory allocator dumps are set. */
flex: 1 0 auto;
align-self: stretch;
font-size: 12px;
}
</style>
<div id="label">Component details</div>
<div id="contents">
<div id="info_text">No memory allocator dump selected</div>
<tr-ui-b-table id="table"></tr-ui-b-table>
</div>
</template>
</dom-module><dom-module id="tr-ui-a-memory-dump-vm-regions-details-pane">
<template>
<style>
:host {
display: flex;
flex-direction: column;
}
#label {
flex: 0 0 auto;
padding: 8px;
background-color: #eee;
border-bottom: 1px solid #8e8e8e;
border-top: 1px solid white;
font-size: 15px;
font-weight: bold;
}
#contents {
flex: 1 0 auto;
align-self: stretch;
font-size: 12px;
}
#info_text {
padding: 8px;
color: #666;
font-style: italic;
text-align: center;
}
#table {
display: none; /* Hide until memory dumps are set. */
flex: 1 0 auto;
align-self: stretch;
font-size: 12px;
}
</style>
<div id="label">Memory maps</div>
<div id="contents">
<div id="info_text">No memory maps selected</div>
<tr-ui-b-table id="table"></tr-ui-b-table>
</div>
</template>
</dom-module><dom-module id="tr-ui-b-color-legend">
<template>
<style>
:host {
display: inline-block;
}
#square {
font-size: 150%; /* Make the square bigger. */
line-height: 0%; /* Prevent the square from increasing legend height. */
}
</style>
<span id="square"></span>
<span id="label"></span>
</template>
</dom-module><dom-module id="tr-ui-b-view-specific-brushing-state">
<template></template>
</dom-module><dom-module id="tr-ui-a-memory-dump-overview-pane">
<template>
<style>
:host {
display: flex;
flex-direction: column;
}
#label {
flex: 0 0 auto;
padding: 8px;
background-color: #eee;
border-bottom: 1px solid #8e8e8e;
border-top: 1px solid white;
font-size: 15px;
font-weight: bold;
}
#label a {
font-weight: normal;
float: right;
}
#contents {
flex: 1 0 auto;
align-self: stretch;
font-size: 12px;
overflow: auto;
}
#info_text {
padding: 8px;
color: #666;
font-style: italic;
text-align: center;
}
#table {
display: none; /* Hide until memory dumps are set. */
flex: 1 0 auto;
align-self: stretch;
font-size: 12px;
}
</style>
<tr-ui-b-view-specific-brushing-state id="state" view-id="analysis.memory_dump_overview_pane">
</tr-ui-b-view-specific-brushing-state>
<div id="label">Overview <a href="https://chromium.googlesource.com/chromium/src/+/master/docs/memory-infra">Help</a></div>
<div id="contents">
<div id="info_text">No memory memory dumps selected</div>
<tr-ui-b-table id="table"></tr-ui-b-table>
</div>
</template>
</dom-module><dom-module id="tr-ui-a-memory-dump-header-pane">
<template>
<style>
:host {
display: flex;
flex-direction: row;
align-items: center;
background-color: #d0d0d0;
border-bottom: 1px solid #8e8e8e;
border-top: 1px solid white;
}
#label {
flex: 1 1 auto;
padding: 6px;
font-size: 15px;
}
#aggregation_mode_container {
display: none;
flex: 0 0 auto;
padding: 5px;
font-size: 15px;
}
</style>
<div id="label"></div>
<div id="aggregation_mode_container">
<span>Metric aggregation:</span>
</div>
</template>
</dom-module><dom-module id="tr-ui-a-stacked-pane-view">
<template>
<style>
:host {
display: flex;
flex-direction: column;
}
#pane_container > * {
flex: 0 0 auto;
}
</style>
<div id="pane_container">
</div>
</template>
</dom-module><dom-module id="tr-ui-a-container-memory-dump-sub-view">
<template>
<style>
tr-ui-b-table {
font-size: 12px;
}
</style>
<div id="content"></div>
</template>
</dom-module><dom-module id="tr-ui-a-counter-sample-sub-view">
<template>
<style>
:host {
display: flex;
flex-direction: column;
}
tr-ui-b-table {
font-size: 12px;
}
</style>
<tr-ui-b-table id="table"></tr-ui-b-table>
</template>
</dom-module><dom-module id="tr-ui-a-multi-event-summary-table">
<template>
<style>
:host {
display: flex;
}
#table {
flex: 1 1 auto;
align-self: stretch;
font-size: 12px;
}
</style>
<tr-ui-b-table id="table">
</tr-ui-b-table>
</template>
</dom-module><dom-module id="tr-ui-a-selection-summary-table">
<template>
<style>
:host {
display: flex;
}
#table {
flex: 1 1 auto;
align-self: stretch;
font-size: 12px;
}
</style>
<tr-ui-b-table id="table">
</tr-ui-b-table>
</template>
</dom-module><dom-module id="tr-ui-b-radio-picker">
<template>
<style>
:host([vertical]) #container {
flex-direction: column;
}
:host(:not[vertical]) #container {
flex-direction: row;
}
#container {
display: flex;
}
#container > div {
padding-left: 1em;
padding-bottom: 0.5em;
}
</style>
<div id="container"></div>
</template>
</dom-module><dom-module id="tr-v-ui-breakdown-span">
<template>
<style>
:host {
display: flex;
flex-direction: column;
}
#table_container {
display: flex;
flex: 0 0 auto;
}
#table {
max-height: 150px;
overflow-y: auto;
}
</style>
<div id="empty">(empty)</div>
<div id="table_container">
<div id="container"></div>
<span>
<tr-ui-b-table id="table"></tr-ui-b-table>
</span>
</div>
</template>
</dom-module><dom-module id="tr-v-ui-collected-related-event-set-span">
</dom-module><dom-module id="tr-v-ui-date-range-span">
<template>
<content></content>
</template>
</dom-module><dom-module id="tr-v-ui-generic-set-span">
<template>
<style>
a {
display: block;
}
</style>
<tr-ui-a-generic-object-view id="generic"></tr-ui-a-generic-object-view>
<div id="links"></div>
</template>
</dom-module><dom-module id="tr-v-ui-related-event-set-span">
</dom-module><dom-module id="tr-v-ui-related-histogram-map-span">
<template>
<tr-ui-b-table id="table"></tr-ui-b-table>
</template>
</dom-module><dom-module id="tr-v-ui-scalar-diagnostic-span">
<template>
<tr-v-ui-scalar-span id="scalar"></tr-v-ui-scalar-span>
</template>
</dom-module><dom-module id="tr-v-ui-tag-map-span">
<template>
<style>
#hide, #generic {
display: none;
}
</style>
<button id="show" on-click="onShow_">Show</button>
<button id="hide" on-click="onHide_">Hide</button>
<tr-ui-a-generic-object-view id="generic"></tr-ui-a-generic-object-view>
</template>
</dom-module><dom-module id="tr-v-ui-unmergeable-diagnostic-set-span">
</dom-module><dom-module id="tr-v-ui-diagnostic-map-table">
<template>
<tr-ui-b-table id="table"></tr-ui-b-table>
</template>
</dom-module><dom-module id="tr-v-ui-scalar-map-table">
<template>
<tr-ui-b-table id="table"></tr-ui-b-table>
</template>
</dom-module><dom-module id="tr-v-ui-histogram-span">
<template>
<style>
#container {
display: flex;
flex-direction: row;
justify-content: space-between;
}
#chart {
flex-grow: 1;
display: none;
}
#drag_handle, #diagnostics_tab_templates {
display: none;
}
#chart svg {
display: block;
}
#stats_container {
overflow-y: auto;
}
</style>
<div id="container">
<div id="chart"></div>
<div id="stats_container">
<tr-v-ui-scalar-map-table id="stats"></tr-v-ui-scalar-map-table>
</div>
</div>
<tr-ui-b-drag-handle id="drag_handle"></tr-ui-b-drag-handle>
<tr-ui-b-tab-view id="diagnostics"></tr-ui-b-tab-view>
<div id="diagnostics_tab_templates">
<tr-v-ui-diagnostic-map-table id="metric_diagnostics"></tr-v-ui-diagnostic-map-table>
<tr-v-ui-diagnostic-map-table id="metadata_diagnostics"></tr-v-ui-diagnostic-map-table>
<div id="sample_diagnostics_container">
<div id="merge_sample_diagnostics_container">
<input checked="" id="merge_sample_diagnostics" on-change="updateDiagnostics_" type="checkbox"/>
<label for="merge_sample_diagnostics">Merge Sample Diagnostics</label>
</div>
<tr-v-ui-diagnostic-map-table id="sample_diagnostics"></tr-v-ui-diagnostic-map-table>
</div>
</div>
</template>
</dom-module><dom-module id="tr-ui-a-multi-event-sub-view">
<template>
<style>
:host {
display: flex;
overflow: auto;
}
#content {
display: flex;
flex-direction: column;
flex: 0 1 auto;
align-self: stretch;
}
#content > * {
flex: 0 0 auto;
align-self: stretch;
}
#histogramContainer {
display: flex;
}
tr-ui-a-multi-event-summary-table {
border-bottom: 1px solid #aaa;
}
tr-ui-a-selection-summary-table {
margin-top: 1.25em;
border-top: 1px solid #aaa;
background-color: #eee;
font-weight: bold;
margin-bottom: 1.25em;
border-bottom: 1px solid #aaa;
}
</style>
<div id="content">
<tr-ui-a-multi-event-summary-table id="eventSummaryTable">
</tr-ui-a-multi-event-summary-table>
<tr-ui-a-selection-summary-table id="selectionSummaryTable">
</tr-ui-a-selection-summary-table>
<tr-ui-b-radio-picker id="radioPicker">
</tr-ui-b-radio-picker>
<div id="histogramContainer">
<tr-v-ui-histogram-span id="histogramSpan">
</tr-v-ui-histogram-span>
</div>
</div>
</template>
</dom-module><dom-module id="tr-ui-a-related-events">
<template>
<style>
:host {
display: flex;
flex-direction: column;
}
#table {
flex: 1 1 auto;
align-self: stretch;
font-size: 12px;
}
</style>
<tr-ui-b-table id="table"></tr-ui-b-table>
</template>
</dom-module><dom-module id="tr-ui-a-multi-async-slice-sub-view">
<template>
<style>
:host {
display: flex;
}
#container {
display: flex;
flex: 1 1 auto;
}
#events {
margin-left: 8px;
flex: 0 1 200px;
}
</style>
<div id="container">
<tr-ui-a-multi-event-sub-view id="content"></tr-ui-a-multi-event-sub-view>
<div id="events">
<tr-ui-a-related-events id="relatedEvents"></tr-ui-a-related-events>
</div>
</div>
</template>
</dom-module><dom-module id="tr-ui-a-multi-cpu-slice-sub-view">
<template>
<style>
:host {
display: flex;
}
#content {
flex: 1 1 auto;
}
</style>
<tr-ui-a-multi-event-sub-view id="content"></tr-ui-a-multi-event-sub-view>
</template>
</dom-module><dom-module id="tr-ui-a-multi-flow-event-sub-view">
<template>
<style>
:host {
display: flex;
}
</style>
<tr-ui-a-multi-event-sub-view id="content"></tr-ui-a-multi-event-sub-view>
</template>
</dom-module><dom-module id="tr-ui-a-multi-instant-event-sub-view">
<template>
<style>
:host {
display: block;
}
</style>
<div id="content"></div>
</template>
</dom-module><dom-module id="tr-ui-a-multi-object-sub-view">
<template>
<style>
:host {
display: flex;
font-size: 12px;
}
</style>
<tr-ui-b-table id="content"></tr-ui-b-table>
</template>
</dom-module><dom-module id="tr-ui-a-frame-power-usage-chart">
<template>
<div id="content"></div>
</template>
</dom-module><dom-module id="tr-ui-a-power-sample-summary-table">
<template>
<style>
tr-ui-b-table {
font-size: 12px;
}
</style>
<tr-ui-b-table id="table"></tr-ui-b-table>
</template>
</dom-module><dom-module id="tr-ui-a-multi-power-sample-sub-view">
<template>
<style>
:host {
display: flex;
flex-direction: row;
}
#tables {
display: flex;
flex-direction: column;
width: 50%;
}
#chart {
width: 50%;
}
</style>
<div id="tables">
<tr-ui-a-power-sample-summary-table id="summaryTable">
</tr-ui-a-power-sample-summary-table>
</div>
<tr-ui-a-frame-power-usage-chart id="chart">
</tr-ui-a-frame-power-usage-chart>
</template>
</dom-module><dom-module id="tr-ui-a-multi-sample-sub-view">
<template>
<style>
:host { display: block; }
#control {
background-color: #e6e6e6;
background-image: -webkit-gradient(linear, 0 0, 0 100%,
from(#E5E5E5), to(#D1D1D1));
flex: 0 0 auto;
overflow-x: auto;
}
#control::-webkit-scrollbar { height: 0px; }
#control {
font-size: 12px;
display: flex;
flex-direction: row;
align-items: stretch;
margin: 1px;
margin-right: 2px;
}
tr-ui-b-table {
font-size: 12px;
}
</style>
<div id="control">
Sample View Option
</div>
<tr-ui-b-table id="table">
</tr-ui-b-table>
</template>
</dom-module><dom-module id="tr-ui-a-multi-thread-slice-sub-view">
<template>
<style>
:host {
display: flex;
}
#content {
display: flex;
flex: 1 1 auto;
}
#content > tr-ui-a-related-events {
margin-left: 8px;
flex: 0 1 200px;
}
</style>
<div id="content"></div>
</template>
</dom-module><dom-module id="tr-ui-a-multi-thread-time-slice-sub-view">
<template>
<style>
:host {
display: flex;
}
#content {
flex: 1 1 auto;
}
</style>
<tr-ui-a-multi-event-sub-view id="content"></tr-ui-a-multi-event-sub-view>
</template>
</dom-module><dom-module id="tr-ui-a-user-expectation-related-samples-table">
<template>
<style>
#table {
flex: 1 1 auto;
align-self: stretch;
font-size: 12px;
}
</style>
<tr-ui-b-table id="table"></tr-ui-b-table>
</template>
</dom-module><dom-module id="tr-ui-a-multi-user-expectation-sub-view">
<template>
<style>
:host {
display: flex;
flex: 1 1 auto;
}
#events {
margin-left: 8px;
flex: 0 1 200px;
}
</style>
<tr-ui-a-multi-event-sub-view id="realView"></tr-ui-a-multi-event-sub-view>
<div id="events">
<tr-ui-a-user-expectation-related-samples-table id="relatedSamples"></tr-ui-a-user-expectation-related-samples-table>
</div>
</template>
</dom-module><dom-module id="tr-ui-a-single-async-slice-sub-view">
<template>
<style>
:host {
display: flex;
flex-direction: row;
}
#events {
display:flex;
flex-direction: column;
}
</style>
<tr-ui-a-single-event-sub-view id="content"></tr-ui-a-single-event-sub-view>
<div id="events">
<tr-ui-a-related-events id="relatedEvents"></tr-ui-a-related-events>
</div>
</template>
</dom-module><dom-module id="tr-ui-a-single-cpu-slice-sub-view">
<template>
<style>
table {
border-collapse: collapse;
border-width: 0;
margin-bottom: 25px;
width: 100%;
}
table tr > td:first-child {
padding-left: 2px;
}
table tr > td {
padding: 2px 4px 2px 4px;
vertical-align: text-top;
width: 150px;
}
table td td {
padding: 0 0 0 0;
width: auto;
}
tr {
vertical-align: top;
}
tr:nth-child(2n+0) {
background-color: #e2e2e2;
}
</style>
<table>
<tbody><tr>
<td>Running process:</td><td id="process-name"></td>
</tr>
<tr>
<td>Running thread:</td><td id="thread-name"></td>
</tr>
<tr>
<td>Start:</td>
<td>
<tr-v-ui-scalar-span id="start">
</tr-v-ui-scalar-span>
</td>
</tr>
<tr>
<td>Duration:</td>
<td>
<tr-v-ui-scalar-span id="duration">
</tr-v-ui-scalar-span>
</td>
</tr>
<tr>
<td>Active slices:</td><td id="running-thread"></td>
</tr>
<tr>
<td>Args:</td>
<td>
<tr-ui-a-generic-object-view id="args">
</tr-ui-a-generic-object-view>
</td>
</tr>
</tbody></table>
</template>
</dom-module><dom-module id="tr-ui-a-single-flow-event-sub-view">
<template>
<style>
:host {
display: block;
}
</style>
<tr-ui-a-single-event-sub-view id="singleEventSubView">
</tr-ui-a-single-event-sub-view>
</template>
</dom-module><dom-module id="tr-ui-a-single-frame-sub-view">
<template>
<style>
:host {
display: flex;
flex-direction: column;
}
#asv {
flex: 0 0 auto;
align-self: stretch;
}
</style>
<tr-ui-a-alert-sub-view id="asv">
</tr-ui-a-alert-sub-view>
</template>
</dom-module><dom-module id="tr-ui-a-single-instant-event-sub-view">
<template>
<style>
:host {
display: block;
}
</style>
<div id="content"></div>
</template>
</dom-module><dom-module id="tr-ui-a-single-object-instance-sub-view">
<template>
<style>
:host {
display: block;
}
#snapshots > * {
display: block;
}
:host {
overflow: auto;
display: block;
}
* {
-webkit-user-select: text;
}
.title {
border-bottom: 1px solid rgb(128, 128, 128);
font-size: 110%;
font-weight: bold;
}
td, th {
font-family: monospace;
vertical-align: top;
}
</style>
<div id="content"></div>
</template>
</dom-module><dom-module id="tr-ui-a-single-object-snapshot-sub-view">
<template>
<style>
#args {
white-space: pre;
}
:host {
overflow: auto;
display: flex;
}
::content * {
-webkit-user-select: text;
}
::content .title {
border-bottom: 1px solid rgb(128, 128, 128);
font-size: 110%;
font-weight: bold;
}
::content td, th {
font-family: monospace;
vertical-align: top;
}
</style>
<content></content>
</template>
</dom-module><dom-module id="tr-ui-a-power-sample-table">
<template>
<style>
:host {
display: flex;
font-size: 12px;
}
</style>
<tr-ui-b-table id="table"></tr-ui-b-table>
</template>
</dom-module><dom-module id="tr-ui-a-single-power-sample-sub-view">
<template>
<style>
:host { display: block; }
</style>
<tr-ui-a-power-sample-table id="samplesTable">
</tr-ui-a-power-sample-table>
</template>
</dom-module><dom-module id="tr-ui-a-single-sample-sub-view">
<template>
<style>
:host {
display: flex;
font-size: 12px;
}
</style>
<tr-ui-b-table id="content"></tr-ui-b-table>
</template>
</dom-module><dom-module id="tr-ui-a-single-thread-slice-sub-view">
<template>
<style>
:host {
display: flex;
flex-direction: row;
}
#events {
display: flex;
flex-direction: column;
}
</style>
<tr-ui-a-single-event-sub-view id="content"></tr-ui-a-single-event-sub-view>
<div id="events">
<tr-ui-a-related-events id="relatedEvents">
</tr-ui-a-related-events>
</div>
</template>
</dom-module><dom-module id="tr-ui-a-single-thread-time-slice-sub-view">
<template>
<style>
table {
border-collapse: collapse;
border-width: 0;
margin-bottom: 25px;
width: 100%;
}
table tr > td:first-child {
padding-left: 2px;
}
table tr > td {
padding: 2px 4px 2px 4px;
vertical-align: text-top;
width: 150px;
}
table td td {
padding: 0 0 0 0;
width: auto;
}
tr {
vertical-align: top;
}
tr:nth-child(2n+0) {
background-color: #e2e2e2;
}
</style>
<table>
<tbody><tr>
<td>Running process:</td><td id="process-name"></td>
</tr>
<tr>
<td>Running thread:</td><td id="thread-name"></td>
</tr>
<tr>
<td>State:</td>
<td><b><span id="state"></span></b></td>
</tr>
<tr>
<td>Start:</td>
<td>
<tr-v-ui-scalar-span id="start">
</tr-v-ui-scalar-span>
</td>
</tr>
<tr>
<td>Duration:</td>
<td>
<tr-v-ui-scalar-span id="duration">
</tr-v-ui-scalar-span>
</td>
</tr>
<tr>
<td>On CPU:</td><td id="on-cpu"></td>
</tr>
<tr>
<td>Running instead:</td><td id="running-instead"></td>
</tr>
<tr>
<td>Args:</td><td id="args"></td>
</tr>
</tbody></table>
</template>
</dom-module><dom-module id="tr-ui-a-single-user-expectation-sub-view">
<template>
<style>
:host {
display: flex;
flex-direction: row;
}
#events {
display: flex;
flex-direction: column;
}
</style>
<tr-ui-a-single-event-sub-view id="realView"></tr-ui-a-single-event-sub-view>
<div id="events">
<tr-ui-a-user-expectation-related-samples-table id="relatedSamples"></tr-ui-a-user-expectation-related-samples-table>
</div>
</template>
</dom-module><dom-module id="tr-ui-a-analysis-view">
<template>
<style>
:host {
background-color: white;
display: flex;
flex-direction: column;
height: 275px;
overflow: auto;
}
:host(.tall-mode) {
height: 525px;
}
</style>
<content></content>
</template>
</dom-module><dom-module id="tr-ui-b-dropdown">
<template>
<style>
button {
@apply(--dropdown-button);
}
button.open {
@apply(--dropdown-button-open);
}
dialog {
position: absolute;
margin: 0;
padding: 1em;
border: 1px solid darkgrey;
@apply(--dropdown-dialog);
}
</style>
<button id="button" on-tap="open">[[label]]</button>
<dialog id="dialog" on-cancel="close" on-tap="onDialogTap_">
<content></content>
</dialog>
</template>
</dom-module><dom-module id="tr-ui-b-info-bar-group">
<template>
<style>
:host {
flex: 0 0 auto;
flex-direction: column;
display: flex;
}
</style>
<div id="messages"></div>
</template>
</dom-module><dom-module id="tr-ui-b-toolbar-button">
<template>
<style>
:host {
display: flex;
background-color: #f8f8f8;
border: 1px solid rgba(0, 0, 0, 0.5);
color: rgba(0,0,0,0.8);
justify-content: center;
align-self: stretch;
min-width: 23px;
}
:host(:hover) {
background-color: rgba(255, 255, 255, 1.0);
border-color: rgba(0, 0, 0, 0.8);
box-shadow: 0 0 .05em rgba(0, 0, 0, 0.4);
color: rgba(0, 0, 0, 1);
}
#aligner {
display: flex;
flex: 0 0 auto;
align-self: center;
}
</style>
<div id="aligner">
<content></content>
</div>
</template>
</dom-module><style>
.drawing-container{display:inline;overflow:auto;overflow-x:hidden;position:relative}.drawing-container-canvas{display:block;pointer-events:none;position:absolute;top:0}
</style><style>
.letter-dot-track {
height: 18px;
}
</style><style>
.chart-track {
height: 30px;
position: relative;
}
</style><style>
.cpu-usage-track {
height: 90px;
}
</style><style>
.power-series-track {
height: 90px;
}
</style><style>
.spacing-track{height:4px}
</style><style>
.rect-track{height:18px}
</style><style>
.thread-track{flex-direction:column;display:flex;position:relative}
</style><style>
.process-track-header{flex:0 0 auto;background-image:-webkit-gradient(linear,0 0,100% 0,from(#E5E5E5),to(#D1D1D1));border-bottom:1px solid #8e8e8e;border-top:1px solid white;font-size:75%}.process-track-name:before{content:'\25B8';padding:0 5px}.process-track-base.expanded .process-track-name:before{content:'\25BE'}
</style><style>
.model-track {
flex-grow: 1;
}
</style><style>
.x-axis-track {
height: 12px;
}
.x-axis-track.tall-mode {
height: 30px;
}
</style><dom-module id="tr-ui-timeline-track-view">
<template>
<style>
:host {
flex-direction: column;
display: flex;
position: relative;
}
:host ::content * {
-webkit-user-select: none;
cursor: default;
}
#drag_box {
background-color: rgba(0, 0, 255, 0.25);
border: 1px solid rgb(0, 0, 96);
font-size: 75%;
position: fixed;
}
#hint_text {
position: absolute;
bottom: 6px;
right: 6px;
font-size: 8pt;
}
</style>
<content></content>
<div id="drag_box"></div>
<div id="hint_text"></div>
<tv-ui-b-hotkey-controller id="hotkey_controller">
</tv-ui-b-hotkey-controller>
</template>
</dom-module><dom-module id="tr-ui-find-control">
<template>
<style>
:host {
-webkit-user-select: none;
display: flex;
position: relative;
}
input {
-webkit-user-select: auto;
background-color: #f8f8f8;
border: 1px solid rgba(0, 0, 0, 0.5);
box-sizing: border-box;
margin: 0;
padding: 0;
width: 170px;
}
input:focus {
background-color: white;
}
tr-ui-b-toolbar-button {
border-left: none;
margin: 0;
}
#hitCount {
left: 0;
opacity: 0.25;
pointer-events: none;
position: absolute;
text-align: right;
top: 2px;
width: 167px;
z-index: 1;
}
#spinner {
visibility: hidden;
width: 8px;
height: 8px;
left: 154px;
pointer-events: none;
position: absolute;
top: 4px;
z-index: 1;
border: 2px solid transparent;
border-bottom: 2px solid rgba(0, 0, 0, 0.5);
border-right: 2px solid rgba(0, 0, 0, 0.5);
border-radius: 50%;
}
@keyframes spin { 100% { transform: rotate(360deg); } }
</style>
<input id="filter" on-blur="filterBlur" on-focus="filterFocus" on-input="filterTextChanged" on-keydown="filterKeyDown" on-mouseup="filterMouseUp" type="text"/>
<div id="spinner"></div>
<tr-ui-b-toolbar-button on-click="findPrevious">
←
</tr-ui-b-toolbar-button>
<tr-ui-b-toolbar-button on-click="findNext">
→
</tr-ui-b-toolbar-button>
<div id="hitCount">0 of 0</div>
</template>
</dom-module><dom-module id="tr-ui-scripting-control">
<template>
<style>
:host {
flex: 1 1 auto;
}
.root {
font-family: monospace;
cursor: text;
padding: 2px;
margin: 2px;
border: 1px solid rgba(0, 0, 0, 0.5);
background: white;
height: 100px;
overflow-y: auto;
transition-property: opacity, height, padding, margin;
transition-duration: .2s;
transition-timing-function: ease-out;
}
.hidden {
margin-top: 0px;
margin-bottom: 0px;
padding-top: 0px;
padding-bottom: 0px;
height: 0px;
opacity: 0;
}
.focused {
outline: auto 5px -webkit-focus-ring-color;
}
#history {
-webkit-user-select: text;
color: #777;
}
#promptContainer {
display: flex;
}
#promptMark {
width: 1em;
color: #468;
}
#prompt {
flex: 1;
width: 100%;
border: none !important;
background-color: inherit !important;
font: inherit !important;
text-overflow: clip !important;
text-decoration: none !important;
}
#prompt:focus {
outline: none;
}
</style>
<div class="root hidden" id="root" on-focus="onConsoleFocus" tabindex="0">
<div id="history"></div>
<div id="promptContainer">
<span id="promptMark">></span>
<input id="prompt" on-blur="onConsoleBlur" on-keydown="promptKeyDown" on-keypress="promptKeyPress" type="text"/>
</div>
</div>
</template>
</dom-module><dom-module id="tr-ui-side-panel-container">
<template>
<style>
:host {
align-items: stretch;
display: flex;
background-color: white;
}
:host([expanded]) > #side_panel_drag_handle,
:host([expanded]) > active-panel-container {
flex: 1 1 auto;
border-left: 1px solid black;
display: flex;
}
:host(:not([expanded])) > #side_panel_drag_handle,
:host(:not([expanded])) > active-panel-container {
display: none;
}
active-panel-container {
display: flex;
}
tab-strip {
flex: 0 0 auto;
flex-direction: column;
-webkit-user-select: none;
background-color: rgb(236, 236, 236);
border-left: 1px solid black;
cursor: default;
display: 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 {
flex-shrink: 0;
-webkit-writing-mode: vertical-rl;
white-space: nowrap;
display: inline;
margin-right: 1px;
min-height: 20px;
padding: 15px 3px 15px 1px;
}
tab-strip >
tab-strip-label:not([enabled]) {
color: rgb(128, 128, 128);
}
tab-strip > tab-strip-label[selected] {
background-color: white;
border: 1px solid rgb(163, 163, 163);
border-left: none;
padding: 14px 2px 14px 1px;
}
#active_panel_container {
overflow: auto;
}
</style>
<tr-ui-b-drag-handle id="side_panel_drag_handle"></tr-ui-b-drag-handle>
<active-panel-container id="active_panel_container">
</active-panel-container>
<tab-strip id="tab_strip"></tab-strip>
</template>
</dom-module><dom-module id="tr-ui-timeline-view-help-overlay">
<template>
<style>
:host {
flex: 1 1 auto;
flex-direction: row;
display: flex;
width: 700px;
}
.column {
width: 50%;
}
h2 {
font-size: 1.2em;
margin: 0;
margin-top: 5px;
text-align: center;
}
h3 {
margin: 0;
margin-left: 126px;
margin-top: 10px;
}
.pair {
flex: 1 1 auto;
flex-direction: row;
display: flex;
}
.command {
font-family: monospace;
margin-right: 5px;
text-align: right;
width: 150px;
}
.action {
font-size: 0.9em;
text-align: left;
width: 200px;
}
tr-ui-b-mouse-mode-icon {
border: 1px solid #888;
border-radius: 3px;
box-shadow: inset 0 0 2px rgba(0,0,0,0.3);
display: inline-block;
margin-right: 1px;
position: relative;
top: 4px;
}
.mouse-mode-icon.pan-mode {
background-position: -1px -11px;
}
.mouse-mode-icon.select-mode {
background-position: -1px -41px;
}
.mouse-mode-icon.zoom-mode {
background-position: -1px -71px;
}
.mouse-mode-icon.timing-mode {
background-position: -1px -101px;
}
</style>
<div class="column left">
<h2>Navigation</h2>
<div class="pair">
<div class="command">w/s</div>
<div class="action">Zoom in/out (+shift: faster)</div>
</div>
<div class="pair">
<div class="command">a/d</div>
<div class="action">Pan left/right (+shift: faster)</div>
</div>
<div class="pair">
<div class="command">→/shift-TAB</div>
<div class="action">Select previous event</div>
</div>
<div class="pair">
<div class="command">←/TAB</div>
<div class="action">Select next event</div>
</div>
<h2>Mouse Controls</h2>
<div class="pair">
<div class="command">click</div>
<div class="action">Select event</div>
</div>
<div class="pair">
<div class="command">alt-mousewheel</div>
<div class="action">Zoom in/out</div>
</div>
<h3>
<tr-ui-b-mouse-mode-icon mode-name="SELECTION"></tr-ui-b-mouse-mode-icon>
Select mode
</h3>
<div class="pair">
<div class="command">drag</div>
<div class="action">Box select</div>
</div>
<div class="pair">
<div class="command"><span class="mod"></span>-click/drag</div>
<div class="action">Add events to the current selection</div>
</div>
<div class="pair">
<div class="command">double click</div>
<div class="action">Select all events with same title</div>
</div>
<h3>
<tr-ui-b-mouse-mode-icon mode-name="PANSCAN"></tr-ui-b-mouse-mode-icon>
Pan mode
</h3>
<div class="pair">
<div class="command">drag</div>
<div class="action">Pan the view</div>
</div>
<h3>
<tr-ui-b-mouse-mode-icon mode-name="ZOOM"></tr-ui-b-mouse-mode-icon>
Zoom mode
</h3>
<div class="pair">
<div class="command">drag</div>
<div class="action">Zoom in/out by dragging up/down</div>
</div>
<h3>
<tr-ui-b-mouse-mode-icon mode-name="TIMING"></tr-ui-b-mouse-mode-icon>
Timing mode
</h3>
<div class="pair">
<div class="command">drag</div>
<div class="action">Create or move markers</div>
</div>
<div class="pair">
<div class="command">double click</div>
<div class="action">Set marker range to slice</div>
</div>
</div>
<div class="column right">
<h2>General</h2>
<div class="pair">
<div class="command">1-4</div>
<div class="action">Switch mouse mode</div>
</div>
<div class="pair">
<div class="command">shift</div>
<div class="action">Hold for temporary select</div>
</div>
<div class="pair">
<div class="command">space</div>
<div class="action">Hold for temporary pan</div>
</div>
<div class="pair">
<div class="command">/</div>
<div class="action">Search</div>
</div>
<div class="pair">
<div class="command">enter</div>
<div class="action">Step through search results</div>
</div>
<div class="pair">
<div class="command">f</div>
<div class="action">Zoom into selection</div>
</div>
<div class="pair">
<div class="command">z/0</div>
<div class="action">Reset zoom and pan</div>
</div>
<div class="pair">
<div class="command">g/G</div>
<div class="action">Toggle 60hz grid</div>
</div>
<div class="pair">
<div class="command">v</div>
<div class="action">Highlight VSync</div>
</div>
<div class="pair">
<div class="command">h</div>
<div class="action">Toggle low/high details</div>
</div>
<div class="pair">
<div class="command">m</div>
<div class="action">Mark current selection</div>
</div>
<div class="pair">
<div class="command">p</div>
<div class="action">Select power samples over current selection interval</div>
</div>
<div class="pair">
<div class="command">`</div>
<div class="action">Show or hide the scripting console</div>
</div>
<div class="pair">
<div class="command">?</div>
<div class="action">Show help</div>
</div>
</div>
</template>
</dom-module><dom-module id="tr-ui-timeline-view-metadata-overlay">
<template>
<style>
:host {
width: 700px;
overflow: auto;
}
</style>
<tr-ui-b-table id="table"></tr-ui-b-table>
</template>
</dom-module><dom-module id="tr-ui-timeline-view">
<template>
<style>
:host {
flex-direction: column;
cursor: default;
display: flex;
font-family: sans-serif;
padding: 0;
}
#control {
background-color: #e6e6e6;
background-image: -webkit-gradient(linear, 0 0, 0 100%,
from(#E5E5E5), to(#D1D1D1));
flex: 0 0 auto;
overflow-x: auto;
}
#control::-webkit-scrollbar { height: 0px; }
#control > #bar {
font-size: 12px;
display: flex;
flex-direction: row;
margin: 1px;
}
#control > #bar > #title {
display: flex;
align-items: center;
padding-left: 8px;
padding-right: 8px;
flex: 1 1 auto;
}
#control > #bar > #left_controls,
#control > #bar > #right_controls {
display: flex;
flex-direction: row;
align-items: stretch;
}
#control > #bar > #left_controls > * { margin-right: 2px; }
#control > #bar > #right_controls > * { margin-left: 2px; }
#control > #collapsing_controls { display: flex; }
middle-container {
flex: 1 1 auto;
flex-direction: row;
border-bottom: 1px solid #8e8e8e;
display: flex;
min-height: 0;
}
middle-container ::content track-view-container {
flex: 1 1 auto;
display: flex;
min-height: 0;
min-width: 0;
overflow-x: hidden;
}
middle-container ::content track-view-container > * { flex: 1 1 auto; }
middle-container > x-timeline-view-side-panel-container { flex: 0 0 auto; }
tr-ui-b-drag-handle { flex: 0 0 auto; }
tr-ui-a-analysis-view { flex: 0 0 auto; }
#view_options_dropdown {
--dropdown-button: {
-webkit-appearance: none;
align-items: normal;
background-color: rgb(248, 248, 248);
border: 1px solid rgba(0, 0, 0, 0.5);
box-sizing: content-box;
color: rgba(0, 0, 0, 0.8);
font-family: sans-serif;
font-size: 12px;
padding: 2px 5px;
}
}
</style>
<tv-ui-b-hotkey-controller id="hkc"></tv-ui-b-hotkey-controller>
<div id="control">
<div id="bar">
<div id="left_controls"></div>
<div id="title">^_^</div>
<div id="right_controls">
<tr-ui-b-toolbar-button id="view_metadata_button">
M
</tr-ui-b-toolbar-button>
<tr-ui-b-dropdown id="view_options_dropdown" label="View Options"></tr-ui-b-dropdown>
<tr-ui-find-control id="view_find_control"></tr-ui-find-control>
<tr-ui-b-toolbar-button id="view_console_button">
»
</tr-ui-b-toolbar-button>
<tr-ui-b-toolbar-button id="view_help_button">
?
</tr-ui-b-toolbar-button>
</div>
</div>
<div id="collapsing_controls"></div>
<tr-ui-b-info-bar-group id="import-warnings">
</tr-ui-b-info-bar-group>
</div>
<middle-container>
<content></content>
<tr-ui-side-panel-container id="side_panel_container">
</tr-ui-side-panel-container>
</middle-container>
<tr-ui-b-drag-handle id="drag_handle"></tr-ui-b-drag-handle>
<tr-ui-a-analysis-view id="analysis"></tr-ui-a-analysis-view>
<tr-v-ui-preferred-display-unit id="display_unit">
</tr-v-ui-preferred-display-unit>
</template>
</dom-module><dom-module id="tr-ui-b-grouping-table">
<template>
<style>
:host {
display: flex;
}
#table {
flex: 1 1 auto;
font-size: 12px;
}
</style>
<tr-ui-b-table id="table"></tr-ui-b-table>
</template>
</dom-module><dom-module id="tr-ui-b-grouping-table-groupby-picker">
<template>
<style>
#container {
display: flex;
}
#container *:not(:first-child) {
padding-left: 3px;
border-left: 1px solid black;
margin-left: 3px;
}
</style>
<div id="container"></div>
</template>
</dom-module><dom-module id="tr-ui-b-grouping-table-groupby-picker-group">
<template>
<style>
:host {
white-space: nowrap;
}
#left, #right {
user-select: none;
cursor: pointer;
}
</style>
<span id="left" on-click="moveLeft_">◀</span>
<input id="enabled" on-change="onEnableChanged_" type="checkbox"/>
<label for="enabled" id="label"></label>
<span id="right" on-click="moveRight_">▶</span>
</template>
</dom-module><dom-module id="tr-ui-sp-file-size-stats-side-panel">
<template>
<style>
:host {
display: flex;
flex-direction: column;
}
toolbar {
align-items: center;
background-color: rgb(236, 236, 236);
border-bottom: 1px solid #8e8e8e;
display: flex;
flex-direction: row;
flex-direction: row;
flex: 0 0 auto;
font-size: 12px;
padding: 0 10px 0 10px;
}
table-container {
display: flex;
min-height: 0px;
overflow-y: auto;
}
</style>
<toolbar>
<span><b>Group by:</b></span>
<tr-ui-b-grouping-table-groupby-picker id="picker">
</tr-ui-b-grouping-table-groupby-picker>
</toolbar>
<table-container>
<tr-ui-b-grouping-table id="table"></tr-ui-b-grouping-table>
</table-container>
</template>
</dom-module><dom-module id="tr-v-ui-histogram-set-controls-export">
<template>
<style>
:host {
display: grid;
grid-gap: 1em;
grid-template-rows: auto auto;
grid-template-columns: auto auto;
}
button {
-webkit-appearance: none;
border: 0;
font-size: initial;
padding: 5px;
}
</style>
<button on-tap="exportRawCsv_">raw CSV</button>
<button on-tap="exportRawJson_">raw JSON</button>
<button on-tap="exportMergedCsv_">merged CSV</button>
<button on-tap="exportMergedJson_">merged JSON</button>
</template>
</dom-module><dom-module id="tr-v-ui-histogram-set-controls">
<template>
<style>
:host {
display: block;
}
#help, #feedback {
display: none;
margin-left: 20px;
}
#search_container {
display: inline-flex;
margin-right: 20px;
padding-bottom: 1px;
border-bottom: 1px solid darkgrey;
}
#search {
border: 0;
max-width: 20em;
outline: none;
}
#clear_search {
visibility: hidden;
height: 1em;
stroke: black;
stroke-width: 16;
}
#controls {
white-space: nowrap;
}
#show_overview, #hide_overview {
height: 1em;
margin-right: 20px;
}
#show_overview {
stroke: blue;
stroke-width: 16;
}
#show_overview:hover {
background: blue;
stroke: white;
}
#hide_overview {
display: none;
stroke-width: 18;
stroke: black;
}
#hide_overview:hover {
background: black;
stroke: white;
}
#reference_display_label {
display: none;
margin-right: 20px;
}
#alpha, #alpha_slider_container {
display: none;
}
#alpha {
margin-right: 20px;
}
#alpha_slider_container {
background: white;
border: 1px solid black;
flex-direction: column;
padding: 0.5em;
position: absolute;
z-index: 10; /* scalar-span uses z-index :-( */
}
#alpha_slider {
-webkit-appearance: slider-vertical;
align-self: center;
height: 200px;
width: 30px;
}
#statistic {
display: none;
margin-right: 20px;
}
#export {
margin-right: 20px;
}
</style>
<div id="controls">
<span id="search_container">
<input id="search" placeholder="Find Histogram name" value="{{searchQuery::keyup}}"/>
<svg id="clear_search" on-tap="clearSearch_" viewBox="0 0 128 128">
<g>
<title>Clear search</title>
<line x1="28" x2="100" y1="28" y2="100"></line>
<line x1="28" x2="100" y1="100" y2="28"></line>
</g>
</svg>
</span>
<svg id="show_overview" on-tap="toggleOverviewLineCharts_" viewBox="0 0 128 128">
<g>
<title>Show overview charts</title>
<line x1="19" x2="49" y1="109" y2="49"></line>
<line x1="49" x2="79" y1="49" y2="79"></line>
<line x1="79" x2="109" y1="79" y2="19"></line>
</g>
</svg>
<svg id="hide_overview" on-tap="toggleOverviewLineCharts_" viewBox="0 0 128 128">
<g>
<title>Hide overview charts</title>
<line x1="28" x2="100" y1="28" y2="100"></line>
<line x1="28" x2="100" y1="100" y2="28"></line>
</g>
</svg>
<select id="reference_display_label" value="{{referenceDisplayLabel::change}}">
<option value="">Select a reference column</option>
</select>
<button id="alpha" on-tap="openAlphaSlider_">α=[[alphaString]]</button>
<div id="alpha_slider_container">
<input id="alpha_slider" max="18" min="0" on-blur="closeAlphaSlider_" on-input="updateAlpha_" type="range" value="{{alphaIndex::change}}"/>
</div>
<select id="statistic" value="{{displayStatisticName::change}}">
</select>
<tr-ui-b-dropdown label="Export">
<tr-v-ui-histogram-set-controls-export>
</tr-v-ui-histogram-set-controls-export>
</tr-ui-b-dropdown>
<input checked="{{showAll::change}}" id="show_all" title="When unchecked, less important histograms are hidden." type="checkbox"/>
<label for="show_all" title="When unchecked, less important histograms are hidden.">Show all</label>
<a id="help">Help</a>
<a id="feedback">Feedback</a>
</div>
<tr-ui-b-grouping-table-groupby-picker id="picker">
</tr-ui-b-grouping-table-groupby-picker>
</template>
</dom-module><dom-module id="tr-v-ui-histogram-set-table-cell">
<template>
<style>
#histogram_container {
display: flex;
flex-direction: row;
}
#missing, #empty, #unmergeable, #scalar {
flex-grow: 1;
}
#open_histogram, #close_histogram, #open_histogram svg, #close_histogram svg {
height: 1em;
}
#open_histogram svg {
margin-left: 4px;
stroke-width: 0;
stroke: blue;
fill: blue;
}
:host(:hover) #open_histogram svg {
background: blue;
stroke: white;
fill: white;
}
#scalar {
flex-grow: 1;
white-space: nowrap;
}
#histogram {
flex-grow: 1;
}
#close_histogram svg line {
stroke-width: 18;
stroke: black;
}
#close_histogram:hover svg {
background: black;
}
#close_histogram:hover svg line {
stroke: white;
}
#overview_container {
display: none;
}
</style>
<div id="histogram_container">
<span id="missing">(missing)</span>
<span id="empty">(empty)</span>
<span id="unmergeable">(unmergeable)</span>
<tr-v-ui-scalar-span id="scalar" on-click="openHistogram_"></tr-v-ui-scalar-span>
<span id="open_histogram" on-click="openHistogram_">
<svg viewBox="0 0 128 128">
<rect height="16" width="32" x="16" y="24"></rect>
<rect height="16" width="96" x="16" y="56"></rect>
<rect height="16" width="64" x="16" y="88"></rect>
</svg>
</span>
<span id="histogram"></span>
<span id="close_histogram" on-click="closeHistogram_">
<svg viewBox="0 0 128 128">
<line x1="28" x2="100" y1="28" y2="100"></line>
<line x1="28" x2="100" y1="100" y2="28"></line>
</svg>
</span>
</div>
<div id="overview_container">
</div>
</template>
</dom-module><dom-module id="tr-v-ui-histogram-set-table-name-cell">
<template>
<style>
#name_container {
display: flex;
}
#name {
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
#show_overview, #hide_overview, #show_overview svg, #hide_overview svg {
height: 1em;
margin-left: 5px;
}
#show_overview svg {
stroke: blue;
stroke-width: 16;
}
#show_overview:hover svg {
background: blue;
stroke: white;
}
#hide_overview {
display: none;
}
#hide_overview svg {
stroke-width: 18;
stroke: black;
}
#hide_overview:hover svg {
background: black;
stroke: white;
}
#open_histograms, #close_histograms, #open_histograms svg, #close_histograms svg {
height: 1em;
}
#close_histograms {
display: none;
}
#open_histograms svg {
margin-left: 4px;
stroke-width: 0;
stroke: blue;
fill: blue;
}
#open_histograms:hover svg {
background: blue;
stroke: white;
fill: white;
}
#close_histograms line {
stroke-width: 18;
stroke: black;
}
#close_histograms:hover {
background: black;
}
#close_histograms:hover line {
stroke: white;
}
#overview_container {
display: none;
}
</style>
<div id="name_container">
<span id="name"></span>
<span id="show_overview" on-click="showOverview_">
<svg viewBox="0 0 128 128">
<line x1="19" x2="49" y1="109" y2="49"></line>
<line x1="49" x2="79" y1="49" y2="79"></line>
<line x1="79" x2="109" y1="79" y2="19"></line>
</svg>
</span>
<span id="hide_overview" on-click="hideOverview_">
<svg viewBox="0 0 128 128">
<line x1="28" x2="100" y1="28" y2="100"></line>
<line x1="28" x2="100" y1="100" y2="28"></line>
</svg>
</span>
<span id="open_histograms" on-click="openHistograms_">
<svg viewBox="0 0 128 128">
<rect height="16" width="32" x="16" y="24"></rect>
<rect height="16" width="96" x="16" y="56"></rect>
<rect height="16" width="64" x="16" y="88"></rect>
</svg>
</span>
<span id="close_histograms" on-click="closeHistograms_">
<svg viewBox="0 0 128 128">
<line x1="28" x2="100" y1="28" y2="100"></line>
<line x1="28" x2="100" y1="100" y2="28"></line>
</svg>
</span>
</div>
<div id="overview_container">
</div>
</template>
</dom-module><dom-module id="tr-v-ui-histogram-set-table">
<template>
<style>
:host {
min-height: 0px;
overflow: auto;
}
#table {
margin-top: 5px;
}
</style>
<tr-ui-b-table id="table">
</tr-ui-b-table></template>
</dom-module><dom-module id="tr-v-ui-histogram-set-view">
<template>
<style>
:host {
font-family: sans-serif;
}
#zero {
color: red;
/* histogram-set-table is used by both metrics-side-panel and results.html.
* This font-size rule has no effect in results.html, but improves
* legibility in the metrics-side-panel, which sets font-size in order to
* make this table denser.
*/
font-size: initial;
}
#container {
display: none;
}
</style>
<div id="zero">zero Histograms</div>
<div id="container">
<tr-v-ui-histogram-set-controls id="controls">
</tr-v-ui-histogram-set-controls>
<tr-v-ui-histogram-set-table id="table"></tr-v-ui-histogram-set-table>
</div>
</template>
</dom-module><dom-module id="tr-ui-sp-metrics-side-panel">
<template>
<style>
:host {
display: flex;
flex-direction: column;
}
div#error {
color: red;
}
#results {
font-size: 12px;
}
</style>
<top-left-controls id="top_left_controls"></top-left-controls>
<tr-v-ui-histogram-set-view id="results"></tr-v-ui-histogram-set-view>
<div id="error"></div>
</template>
</dom-module><dom-module id="tr-ui-e-s-alerts-side-panel">
<template>
<style>
:host {
display: block;
width: 250px;
}
#content {
flex-direction: column;
display: flex;
}
tr-ui-b-table {
font-size: 12px;
}
</style>
<div id="content">
<toolbar id="toolbar"></toolbar>
<result-area id="result_area"></result-area>
</div>
</template>
</dom-module><script>
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
/* WARNING: This file is auto generated.
*
* Do not edit directly.
*/
'use strict';if(window.Polymer){throw new Error('Cannot proceed. Polymer already present.');}
window.Polymer={};window.Polymer.dom='shadow';(function(){function resolve(){document.body.removeAttribute('unresolved');}
if(window.WebComponents){addEventListener('WebComponentsReady',resolve);}else{if(document.readyState==='interactive'||document.readyState==='complete'){resolve();}else{addEventListener('DOMContentLoaded',resolve);}}}());window.Polymer={Settings:function(){var settings=window.Polymer||{};if(!settings.noUrlSettings){var parts=location.search.slice(1).split('&');for(var i=0,o;i<parts.length&&(o=parts[i]);i++){o=o.split('=');o[0]&&(settings[o[0]]=o[1]||true);}}
settings.wantShadow=settings.dom==='shadow';settings.hasShadow=Boolean(Element.prototype.createShadowRoot);settings.nativeShadow=settings.hasShadow&&!window.ShadowDOMPolyfill;settings.useShadow=settings.wantShadow&&settings.hasShadow;settings.hasNativeImports=Boolean('import'in document.createElement('link'));settings.useNativeImports=settings.hasNativeImports;settings.useNativeCustomElements=!window.CustomElements||window.CustomElements.useNative;settings.useNativeShadow=settings.useShadow&&settings.nativeShadow;settings.usePolyfillProto=!settings.useNativeCustomElements&&!Object.__proto__;settings.hasNativeCSSProperties=!navigator.userAgent.match(/AppleWebKit\/601|Edge\/15/)&&window.CSS&&CSS.supports&&CSS.supports('box-shadow','0 0 0 var(--foo)');settings.useNativeCSSProperties=settings.hasNativeCSSProperties&&settings.lazyRegister&&settings.useNativeCSSProperties;settings.isIE=navigator.userAgent.match('Trident');settings.passiveTouchGestures=settings.passiveTouchGestures||false;return settings;}()};(function(){var userPolymer=window.Polymer;window.Polymer=function(prototype){if(typeof prototype==='function'){prototype=prototype.prototype;}
if(!prototype){prototype={};}
prototype=desugar(prototype);var customCtor=prototype===prototype.constructor.prototype?prototype.constructor:null;var options={prototype:prototype};if(prototype.extends){options.extends=prototype.extends;}
Polymer.telemetry._registrate(prototype);var ctor=document.registerElement(prototype.is,options);return customCtor||ctor;};var desugar=function(prototype){var base=Polymer.Base;if(prototype.extends){base=Polymer.Base._getExtendedPrototype(prototype.extends);}
prototype=Polymer.Base.chainObject(prototype,base);prototype.registerCallback();return prototype;};if(userPolymer){for(var i in userPolymer){Polymer[i]=userPolymer[i];}}
Polymer.Class=function(prototype){if(!prototype.factoryImpl){prototype.factoryImpl=function(){};}
return desugar(prototype).constructor;};}());Polymer.telemetry={registrations:[],_regLog:function(prototype){console.log('['+prototype.is+']: registered');},_registrate:function(prototype){this.registrations.push(prototype);Polymer.log&&this._regLog(prototype);},dumpRegistrations:function(){this.registrations.forEach(this._regLog);}};Object.defineProperty(window,'currentImport',{enumerable:true,configurable:true,get:function(){return(document._currentScript||document.currentScript||{}).ownerDocument;}});Polymer.RenderStatus={_ready:false,_callbacks:[],whenReady:function(cb){if(this._ready){cb();}else{this._callbacks.push(cb);}},_makeReady:function(){this._ready=true;for(var i=0;i<this._callbacks.length;i++){this._callbacks[i]();}
this._callbacks=[];},_catchFirstRender:function(){requestAnimationFrame(function(){Polymer.RenderStatus._makeReady();});},_afterNextRenderQueue:[],_waitingNextRender:false,afterNextRender:function(element,fn,args){this._watchNextRender();this._afterNextRenderQueue.push([element,fn,args]);},hasRendered:function(){return this._ready;},_watchNextRender:function(){if(!this._waitingNextRender){this._waitingNextRender=true;var fn=function(){Polymer.RenderStatus._flushNextRender();};if(!this._ready){this.whenReady(fn);}else{requestAnimationFrame(fn);}}},_flushNextRender:function(){var self=this;setTimeout(function(){self._flushRenderCallbacks(self._afterNextRenderQueue);self._afterNextRenderQueue=[];self._waitingNextRender=false;});},_flushRenderCallbacks:function(callbacks){for(var i=0,h;i<callbacks.length;i++){h=callbacks[i];h[1].apply(h[0],h[2]||Polymer.nar);}}};if(window.HTMLImports){HTMLImports.whenReady(function(){Polymer.RenderStatus._catchFirstRender();});}else{Polymer.RenderStatus._catchFirstRender();}
Polymer.ImportStatus=Polymer.RenderStatus;Polymer.ImportStatus.whenLoaded=Polymer.ImportStatus.whenReady;(function(){'use strict';var settings=Polymer.Settings;Polymer.Base={__isPolymerInstance__:true,_addFeature:function(feature){this.mixin(this,feature);},registerCallback:function(){if(settings.lazyRegister==='max'){if(this.beforeRegister){this.beforeRegister();}}else{this._desugarBehaviors();for(var i=0,b;i<this.behaviors.length;i++){b=this.behaviors[i];if(b.beforeRegister){b.beforeRegister.call(this);}}
if(this.beforeRegister){this.beforeRegister();}}
this._registerFeatures();if(!settings.lazyRegister){this.ensureRegisterFinished();}},createdCallback:function(){if(settings.disableUpgradeEnabled){if(this.hasAttribute('disable-upgrade')){this._propertySetter=disableUpgradePropertySetter;this._configValue=null;this.__data__={};return;}else{this.__hasInitialized=true;}}
this.__initialize();},__initialize:function(){if(!this.__hasRegisterFinished){this._ensureRegisterFinished(this.__proto__);}
Polymer.telemetry.instanceCount++;this.root=this;for(var i=0,b;i<this.behaviors.length;i++){b=this.behaviors[i];if(b.created){b.created.call(this);}}
if(this.created){this.created();}
this._initFeatures();},ensureRegisterFinished:function(){this._ensureRegisterFinished(this);},_ensureRegisterFinished:function(proto){if(proto.__hasRegisterFinished!==proto.is||!proto.is){if(settings.lazyRegister==='max'){proto._desugarBehaviors();for(var i=0,b;i<proto.behaviors.length;i++){b=proto.behaviors[i];if(b.beforeRegister){b.beforeRegister.call(proto);}}}
proto.__hasRegisterFinished=proto.is;if(proto._finishRegisterFeatures){proto._finishRegisterFeatures();}
for(var j=0,pb;j<proto.behaviors.length;j++){pb=proto.behaviors[j];if(pb.registered){pb.registered.call(proto);}}
if(proto.registered){proto.registered();}
if(settings.usePolyfillProto&&proto!==this){proto.extend(this,proto);}}},attachedCallback:function(){var self=this;Polymer.RenderStatus.whenReady(function(){self.isAttached=true;for(var i=0,b;i<self.behaviors.length;i++){b=self.behaviors[i];if(b.attached){b.attached.call(self);}}
if(self.attached){self.attached();}});},detachedCallback:function(){var self=this;Polymer.RenderStatus.whenReady(function(){self.isAttached=false;for(var i=0,b;i<self.behaviors.length;i++){b=self.behaviors[i];if(b.detached){b.detached.call(self);}}
if(self.detached){self.detached();}});},attributeChangedCallback:function(name,oldValue,newValue){this._attributeChangedImpl(name);for(var i=0,b;i<this.behaviors.length;i++){b=this.behaviors[i];if(b.attributeChanged){b.attributeChanged.call(this,name,oldValue,newValue);}}
if(this.attributeChanged){this.attributeChanged(name,oldValue,newValue);}},_attributeChangedImpl:function(name){this._setAttributeToProperty(this,name);},extend:function(target,source){if(target&&source){var n$=Object.getOwnPropertyNames(source);for(var i=0,n;i<n$.length&&(n=n$[i]);i++){this.copyOwnProperty(n,source,target);}}
return target||source;},mixin:function(target,source){for(var i in source){target[i]=source[i];}
return target;},copyOwnProperty:function(name,source,target){var pd=Object.getOwnPropertyDescriptor(source,name);if(pd){Object.defineProperty(target,name,pd);}},_logger:function(level,args){if(args.length===1&&Array.isArray(args[0])){args=args[0];}
switch(level){case'log':case'warn':case'error':console[level].apply(console,args);break;}},_log:function(){var args=Array.prototype.slice.call(arguments,0);this._logger('log',args);},_warn:function(){var args=Array.prototype.slice.call(arguments,0);this._logger('warn',args);},_error:function(){var args=Array.prototype.slice.call(arguments,0);this._logger('error',args);},_logf:function(){return this._logPrefix.concat(this.is).concat(Array.prototype.slice.call(arguments,0));}};Polymer.Base._logPrefix=function(){var color=window.chrome&&!/edge/i.test(navigator.userAgent)||/firefox/i.test(navigator.userAgent);return color?['%c[%s::%s]:','font-weight: bold; background-color:#EEEE00;']:['[%s::%s]:'];}();Polymer.Base.chainObject=function(object,inherited){if(object&&inherited&&object!==inherited){if(!Object.__proto__){object=Polymer.Base.extend(Object.create(inherited),object);}
object.__proto__=inherited;}
return object;};Polymer.Base=Polymer.Base.chainObject(Polymer.Base,HTMLElement.prototype);Polymer.BaseDescriptors={};var disableUpgradePropertySetter;if(settings.disableUpgradeEnabled){disableUpgradePropertySetter=function(property,value){this.__data__[property]=value;};var origAttributeChangedCallback=Polymer.Base.attributeChangedCallback;Polymer.Base.attributeChangedCallback=function(name,oldValue,newValue){if(!this.__hasInitialized&&name==='disable-upgrade'){this.__hasInitialized=true;this._propertySetter=Polymer.Bind._modelApi._propertySetter;this._configValue=Polymer.Base._configValue;this.__initialize();}
origAttributeChangedCallback.call(this,name,oldValue,newValue);};}
if(window.CustomElements){Polymer.instanceof=CustomElements.instanceof;}else{Polymer.instanceof=function(obj,ctor){return obj instanceof ctor;};}
Polymer.isInstance=function(obj){return Boolean(obj&&obj.__isPolymerInstance__);};Polymer.telemetry.instanceCount=0;}());(function(){var modules={};var lcModules={};var findModule=function(id){return modules[id]||lcModules[id.toLowerCase()];};var DomModule=function(){return document.createElement('dom-module');};DomModule.prototype=Object.create(HTMLElement.prototype);Polymer.Base.mixin(DomModule.prototype,{createdCallback:function(){this.register();},register:function(id){id=id||this.id||this.getAttribute('name')||this.getAttribute('is');if(id){this.id=id;modules[id]=this;lcModules[id.toLowerCase()]=this;}},import:function(id,selector){if(id){var m=findModule(id);if(!m){forceDomModulesUpgrade();m=findModule(id);}
if(m&&selector){m=m.querySelector(selector);}
return m;}}});Object.defineProperty(DomModule.prototype,'constructor',{value:DomModule,configurable:true,writable:true});var cePolyfill=window.CustomElements&&!CustomElements.useNative;document.registerElement('dom-module',DomModule);function forceDomModulesUpgrade(){if(cePolyfill){var script=document._currentScript||document.currentScript;var doc=script&&script.ownerDocument||document;var modules=doc.querySelectorAll('dom-module');for(var i=modules.length-1,m;i>=0&&(m=modules[i]);i--){if(m.__upgraded__){return;}else{CustomElements.upgrade(m);}}}}}());Polymer.Base._addFeature({_prepIs:function(){if(!this.is){var module=(document._currentScript||document.currentScript).parentNode;if(module.localName==='dom-module'){var id=module.id||module.getAttribute('name')||module.getAttribute('is');this.is=id;}}
if(this.is){this.is=this.is.toLowerCase();}}});Polymer.Base._addFeature({behaviors:[],_desugarBehaviors:function(){if(this.behaviors.length){this.behaviors=this._desugarSomeBehaviors(this.behaviors);}},_desugarSomeBehaviors:function(behaviors){var behaviorSet=[];behaviors=this._flattenBehaviorsList(behaviors);for(var i=behaviors.length-1;i>=0;i--){var b=behaviors[i];if(behaviorSet.indexOf(b)===-1){this._mixinBehavior(b);behaviorSet.unshift(b);}}
return behaviorSet;},_flattenBehaviorsList:function(behaviors){var flat=[];for(var i=0;i<behaviors.length;i++){var b=behaviors[i];if(b instanceof Array){flat=flat.concat(this._flattenBehaviorsList(b));}else if(b){flat.push(b);}else{this._warn(this._logf('_flattenBehaviorsList','behavior is null, check for missing or 404 import'));}}
return flat;},_mixinBehavior:function(b){var n$=Object.getOwnPropertyNames(b);var useAssignment=b._noAccessors;for(var i=0,n;i<n$.length&&(n=n$[i]);i++){if(!Polymer.Base._behaviorProperties[n]&&!this.hasOwnProperty(n)){if(useAssignment){this[n]=b[n];}else{this.copyOwnProperty(n,b,this);}}}},_prepBehaviors:function(){this._prepFlattenedBehaviors(this.behaviors);},_prepFlattenedBehaviors:function(behaviors){for(var i=0,l=behaviors.length;i<l;i++){this._prepBehavior(behaviors[i]);}
this._prepBehavior(this);},_marshalBehaviors:function(){for(var i=0;i<this.behaviors.length;i++){this._marshalBehavior(this.behaviors[i]);}
this._marshalBehavior(this);}});Polymer.Base._behaviorProperties={hostAttributes:true,beforeRegister:true,registered:true,properties:true,observers:true,listeners:true,created:true,attached:true,detached:true,attributeChanged:true,ready:true,_noAccessors:true};Polymer.Base._addFeature({_getExtendedPrototype:function(tag){return this._getExtendedNativePrototype(tag);},_nativePrototypes:{},_getExtendedNativePrototype:function(tag){var p=this._nativePrototypes[tag];if(!p){p=Object.create(this.getNativePrototype(tag));var p$=Object.getOwnPropertyNames(Polymer.Base);for(var i=0,n;i<p$.length&&(n=p$[i]);i++){if(!Polymer.BaseDescriptors[n]){p[n]=Polymer.Base[n];}}
Object.defineProperties(p,Polymer.BaseDescriptors);this._nativePrototypes[tag]=p;}
return p;},getNativePrototype:function(tag){return Object.getPrototypeOf(document.createElement(tag));}});Polymer.Base._addFeature({_prepConstructor:function(){this._factoryArgs=this.extends?[this.extends,this.is]:[this.is];var ctor=function(){return this._factory(arguments);};if(this.hasOwnProperty('extends')){ctor.extends=this.extends;}
Object.defineProperty(this,'constructor',{value:ctor,writable:true,configurable:true});ctor.prototype=this;},_factory:function(args){var elt=document.createElement.apply(document,this._factoryArgs);if(this.factoryImpl){this.factoryImpl.apply(elt,args);}
return elt;}});Polymer.nob=Object.create(null);Polymer.Base._addFeature({getPropertyInfo:function(property){var info=this._getPropertyInfo(property,this.properties);if(!info){for(var i=0;i<this.behaviors.length;i++){info=this._getPropertyInfo(property,this.behaviors[i].properties);if(info){return info;}}}
return info||Polymer.nob;},_getPropertyInfo:function(property,properties){var p=properties&&properties[property];if(typeof p==='function'){p=properties[property]={type:p};}
if(p){p.defined=true;}
return p;},_prepPropertyInfo:function(){this._propertyInfo={};for(var i=0;i<this.behaviors.length;i++){this._addPropertyInfo(this._propertyInfo,this.behaviors[i].properties);}
this._addPropertyInfo(this._propertyInfo,this.properties);this._addPropertyInfo(this._propertyInfo,this._propertyEffects);},_addPropertyInfo:function(target,source){if(source){var t,s;for(var i in source){t=target[i];s=source[i];if(i[0]==='_'&&!s.readOnly){continue;}
if(!target[i]){target[i]={type:typeof s==='function'?s:s.type,readOnly:s.readOnly,attribute:Polymer.CaseMap.camelToDashCase(i)};}else{if(!t.type){t.type=s.type;}
if(!t.readOnly){t.readOnly=s.readOnly;}}}}}});(function(){var propertiesDesc={configurable:true,writable:true,enumerable:true,value:{}};Polymer.BaseDescriptors.properties=propertiesDesc;Object.defineProperty(Polymer.Base,'properties',propertiesDesc);}());Polymer.CaseMap={_caseMap:{},_rx:{dashToCamel:/-[a-z]/g,camelToDash:/([A-Z])/g},dashToCamelCase:function(dash){return this._caseMap[dash]||(this._caseMap[dash]=dash.indexOf('-')<0?dash:dash.replace(this._rx.dashToCamel,function(m){return m[1].toUpperCase();}));},camelToDashCase:function(camel){return this._caseMap[camel]||(this._caseMap[camel]=camel.replace(this._rx.camelToDash,'-$1').toLowerCase());}};Polymer.Base._addFeature({_addHostAttributes:function(attributes){if(!this._aggregatedAttributes){this._aggregatedAttributes={};}
if(attributes){this.mixin(this._aggregatedAttributes,attributes);}},_marshalHostAttributes:function(){if(this._aggregatedAttributes){this._applyAttributes(this,this._aggregatedAttributes);}},_applyAttributes:function(node,attr$){for(var n in attr$){if(!this.hasAttribute(n)&&n!=='class'){var v=attr$[n];this.serializeValueToAttribute(v,n,this);}}},_marshalAttributes:function(){this._takeAttributesToModel(this);},_takeAttributesToModel:function(model){if(this.hasAttributes()){for(var i in this._propertyInfo){var info=this._propertyInfo[i];if(this.hasAttribute(info.attribute)){this._setAttributeToProperty(model,info.attribute,i,info);}}}},_setAttributeToProperty:function(model,attribute,property,info){if(!this._serializing){property=property||Polymer.CaseMap.dashToCamelCase(attribute);info=info||this._propertyInfo&&this._propertyInfo[property];if(info&&!info.readOnly){var v=this.getAttribute(attribute);model[property]=this.deserialize(v,info.type);}}},_serializing:false,reflectPropertyToAttribute:function(property,attribute,value){this._serializing=true;value=value===undefined?this[property]:value;this.serializeValueToAttribute(value,attribute||Polymer.CaseMap.camelToDashCase(property));this._serializing=false;},serializeValueToAttribute:function(value,attribute,node){var str=this.serialize(value);node=node||this;if(str===undefined){node.removeAttribute(attribute);}else{node.setAttribute(attribute,str);}},deserialize:function(value,type){switch(type){case Number:value=Number(value);break;case Boolean:value=value!=null;break;case Object:try{value=JSON.parse(value);}catch(x){}
break;case Array:try{value=JSON.parse(value);}catch(x){value=null;console.warn('Polymer::Attributes: couldn`t decode Array as JSON');}
break;case Date:value=new Date(value);break;case String:default:break;}
return value;},serialize:function(value){switch(typeof value){case'boolean':return value?'':undefined;case'object':if(value instanceof Date){return value.toString();}else if(value){try{return JSON.stringify(value);}catch(x){return'';}}
default:return value!=null?value:undefined;}}});Polymer.version="1.10.1";Polymer.Base._addFeature({_registerFeatures:function(){this._prepIs();this._prepBehaviors();this._prepConstructor();this._prepPropertyInfo();},_prepBehavior:function(b){this._addHostAttributes(b.hostAttributes);},_marshalBehavior:function(b){},_initFeatures:function(){this._marshalHostAttributes();this._marshalBehaviors();}});(function(){function resolveCss(cssText,ownerDocument){return cssText.replace(CSS_URL_RX,function(m,pre,url,post){return pre+'\''+resolve(url.replace(/["']/g,''),ownerDocument)+'\''+post;});}
function resolveAttrs(element,ownerDocument){for(var name in URL_ATTRS){var a$=URL_ATTRS[name];for(var i=0,l=a$.length,a,at,v;i<l&&(a=a$[i]);i++){if(name==='*'||element.localName===name){at=element.attributes[a];v=at&&at.value;if(v&&v.search(BINDING_RX)<0){at.value=a==='style'?resolveCss(v,ownerDocument):resolve(v,ownerDocument);}}}}}
function resolve(url,ownerDocument){if(url&&ABS_URL.test(url)){return url;}
var resolver=getUrlResolver(ownerDocument);resolver.href=url;return resolver.href||url;}
var tempDoc;var tempDocBase;function resolveUrl(url,baseUri){if(!tempDoc){tempDoc=document.implementation.createHTMLDocument('temp');tempDocBase=tempDoc.createElement('base');tempDoc.head.appendChild(tempDocBase);}
tempDocBase.href=baseUri;return resolve(url,tempDoc);}
function getUrlResolver(ownerDocument){return ownerDocument.body.__urlResolver||(ownerDocument.body.__urlResolver=ownerDocument.createElement('a'));}
function pathFromUrl(url){return url.substring(0,url.lastIndexOf('/')+1);}
var CSS_URL_RX=/(url\()([^)]*)(\))/g;var URL_ATTRS={'*':['href','src','style','url'],form:['action']};var ABS_URL=/(^\/)|(^#)|(^[\w-\d]*:)/;var BINDING_RX=/\{\{|\[\[/;Polymer.ResolveUrl={resolveCss:resolveCss,resolveAttrs:resolveAttrs,resolveUrl:resolveUrl,pathFromUrl:pathFromUrl};Polymer.rootPath=Polymer.Settings.rootPath||pathFromUrl(document.baseURI||window.location.href);}());Polymer.Base._addFeature({_prepTemplate:function(){var module;if(this._template===undefined){module=Polymer.DomModule.import(this.is);this._template=module&&module.querySelector('template');}
if(module){var assetPath=module.getAttribute('assetpath')||'';var importURL=Polymer.ResolveUrl.resolveUrl(assetPath,module.ownerDocument.baseURI);this._importPath=Polymer.ResolveUrl.pathFromUrl(importURL);}else{this._importPath='';}
if(this._template&&this._template.hasAttribute('is')){this._warn(this._logf('_prepTemplate','top-level Polymer template '+'must not be a type-extension, found',this._template,'Move inside simple <template>.'));}
if(this._template&&!this._template.content&&window.HTMLTemplateElement&&HTMLTemplateElement.decorate){HTMLTemplateElement.decorate(this._template);}},_stampTemplate:function(){if(this._template){this.root=this.instanceTemplate(this._template);}},instanceTemplate:function(template){var dom=document.importNode(template._content||template.content,true);return dom;}});(function(){var baseAttachedCallback=Polymer.Base.attachedCallback;var baseDetachedCallback=Polymer.Base.detachedCallback;Polymer.Base._addFeature({_hostStack:[],ready:function(){},_registerHost:function(host){this.dataHost=host=host||Polymer.Base._hostStack[Polymer.Base._hostStack.length-1];if(host&&host._clients){host._clients.push(this);}
this._clients=null;this._clientsReadied=false;},_beginHosting:function(){Polymer.Base._hostStack.push(this);if(!this._clients){this._clients=[];}},_endHosting:function(){Polymer.Base._hostStack.pop();},_tryReady:function(){this._readied=false;if(this._canReady()){this._ready();}},_canReady:function(){return!this.dataHost||this.dataHost._clientsReadied;},_ready:function(){this._beforeClientsReady();if(this._template){this._setupRoot();this._readyClients();}
this._clientsReadied=true;this._clients=null;this._afterClientsReady();this._readySelf();},_readyClients:function(){this._beginDistribute();var c$=this._clients;if(c$){for(var i=0,l=c$.length,c;i<l&&(c=c$[i]);i++){c._ready();}}
this._finishDistribute();},_readySelf:function(){for(var i=0,b;i<this.behaviors.length;i++){b=this.behaviors[i];if(b.ready){b.ready.call(this);}}
if(this.ready){this.ready();}
this._readied=true;if(this._attachedPending){this._attachedPending=false;this.attachedCallback();}},_beforeClientsReady:function(){},_afterClientsReady:function(){},_beforeAttached:function(){},attachedCallback:function(){if(this._readied){this._beforeAttached();baseAttachedCallback.call(this);}else{this._attachedPending=true;}},detachedCallback:function(){if(this._readied){baseDetachedCallback.call(this);}else{this._attachedPending=false;}}});}());Polymer.ArraySplice=function(){function newSplice(index,removed,addedCount){return{index:index,removed:removed,addedCount:addedCount};}
var EDIT_LEAVE=0;var EDIT_UPDATE=1;var EDIT_ADD=2;var EDIT_DELETE=3;function ArraySplice(){}
ArraySplice.prototype={calcEditDistances:function(current,currentStart,currentEnd,old,oldStart,oldEnd){var rowCount=oldEnd-oldStart+1;var columnCount=currentEnd-currentStart+1;var distances=new Array(rowCount);for(var i=0;i<rowCount;i++){distances[i]=new Array(columnCount);distances[i][0]=i;}
for(var j=0;j<columnCount;j++)
distances[0][j]=j;for(i=1;i<rowCount;i++){for(j=1;j<columnCount;j++){if(this.equals(current[currentStart+j-1],old[oldStart+i-1]))
distances[i][j]=distances[i-1][j-1];else{var north=distances[i-1][j]+1;var west=distances[i][j-1]+1;distances[i][j]=north<west?north:west;}}}
return distances;},spliceOperationsFromEditDistances:function(distances){var i=distances.length-1;var j=distances[0].length-1;var current=distances[i][j];var edits=[];while(i>0||j>0){if(i==0){edits.push(EDIT_ADD);j--;continue;}
if(j==0){edits.push(EDIT_DELETE);i--;continue;}
var northWest=distances[i-1][j-1];var west=distances[i-1][j];var north=distances[i][j-1];var min;if(west<north)
min=west<northWest?west:northWest;else
min=north<northWest?north:northWest;if(min==northWest){if(northWest==current){edits.push(EDIT_LEAVE);}else{edits.push(EDIT_UPDATE);current=northWest;}
i--;j--;}else if(min==west){edits.push(EDIT_DELETE);i--;current=west;}else{edits.push(EDIT_ADD);j--;current=north;}}
edits.reverse();return edits;},calcSplices:function(current,currentStart,currentEnd,old,oldStart,oldEnd){var prefixCount=0;var suffixCount=0;var minLength=Math.min(currentEnd-currentStart,oldEnd-oldStart);if(currentStart==0&&oldStart==0)
prefixCount=this.sharedPrefix(current,old,minLength);if(currentEnd==current.length&&oldEnd==old.length)
suffixCount=this.sharedSuffix(current,old,minLength-prefixCount);currentStart+=prefixCount;oldStart+=prefixCount;currentEnd-=suffixCount;oldEnd-=suffixCount;if(currentEnd-currentStart==0&&oldEnd-oldStart==0)
return[];if(currentStart==currentEnd){var splice=newSplice(currentStart,[],0);while(oldStart<oldEnd)
splice.removed.push(old[oldStart++]);return[splice];}else if(oldStart==oldEnd)
return[newSplice(currentStart,[],currentEnd-currentStart)];var ops=this.spliceOperationsFromEditDistances(this.calcEditDistances(current,currentStart,currentEnd,old,oldStart,oldEnd));splice=undefined;var splices=[];var index=currentStart;var oldIndex=oldStart;for(var i=0;i<ops.length;i++){switch(ops[i]){case EDIT_LEAVE:if(splice){splices.push(splice);splice=undefined;}
index++;oldIndex++;break;case EDIT_UPDATE:if(!splice)
splice=newSplice(index,[],0);splice.addedCount++;index++;splice.removed.push(old[oldIndex]);oldIndex++;break;case EDIT_ADD:if(!splice)
splice=newSplice(index,[],0);splice.addedCount++;index++;break;case EDIT_DELETE:if(!splice)
splice=newSplice(index,[],0);splice.removed.push(old[oldIndex]);oldIndex++;break;}}
if(splice){splices.push(splice);}
return splices;},sharedPrefix:function(current,old,searchLength){for(var i=0;i<searchLength;i++)
if(!this.equals(current[i],old[i]))
return i;return searchLength;},sharedSuffix:function(current,old,searchLength){var index1=current.length;var index2=old.length;var count=0;while(count<searchLength&&this.equals(current[--index1],old[--index2]))
count++;return count;},calculateSplices:function(current,previous){return this.calcSplices(current,0,current.length,previous,0,previous.length);},equals:function(currentValue,previousValue){return currentValue===previousValue;}};return new ArraySplice();}();Polymer.domInnerHTML=function(){var escapeAttrRegExp=/[&\u00A0"]/g;var escapeDataRegExp=/[&\u00A0<>]/g;function escapeReplace(c){switch(c){case'&':return'&';case'<':return'<';case'>':return'>';case'"':return'"';case'\xA0':return' ';}}
function escapeAttr(s){return s.replace(escapeAttrRegExp,escapeReplace);}
function escapeData(s){return s.replace(escapeDataRegExp,escapeReplace);}
function makeSet(arr){var set={};for(var i=0;i<arr.length;i++){set[arr[i]]=true;}
return set;}
var voidElements=makeSet(['area','base','br','col','command','embed','hr','img','input','keygen','link','meta','param','source','track','wbr']);var plaintextParents=makeSet(['style','script','xmp','iframe','noembed','noframes','plaintext','noscript']);function getOuterHTML(node,parentNode,composed){switch(node.nodeType){case Node.ELEMENT_NODE:var tagName=node.localName;var s='<'+tagName;var attrs=node.attributes;for(var i=0,attr;attr=attrs[i];i++){s+=' '+attr.name+'="'+escapeAttr(attr.value)+'"';}
s+='>';if(voidElements[tagName]){return s;}
return s+getInnerHTML(node,composed)+'</'+tagName+'>';case Node.TEXT_NODE:var data=node.data;if(parentNode&&plaintextParents[parentNode.localName]){return data;}
return escapeData(data);case Node.COMMENT_NODE:return'<!--'+node.data+'-->';default:console.error(node);throw new Error('not implemented');}}
function getInnerHTML(node,composed){if(node instanceof HTMLTemplateElement)
node=node.content;var s='';var c$=Polymer.dom(node).childNodes;for(var i=0,l=c$.length,child;i<l&&(child=c$[i]);i++){s+=getOuterHTML(child,node,composed);}
return s;}
return{getInnerHTML:getInnerHTML};}();(function(){'use strict';var nativeInsertBefore=Element.prototype.insertBefore;var nativeAppendChild=Element.prototype.appendChild;var nativeRemoveChild=Element.prototype.removeChild;Polymer.TreeApi={arrayCopyChildNodes:function(parent){var copy=[],i=0;for(var n=parent.firstChild;n;n=n.nextSibling){copy[i++]=n;}
return copy;},arrayCopyChildren:function(parent){var copy=[],i=0;for(var n=parent.firstElementChild;n;n=n.nextElementSibling){copy[i++]=n;}
return copy;},arrayCopy:function(a$){var l=a$.length;var copy=new Array(l);for(var i=0;i<l;i++){copy[i]=a$[i];}
return copy;}};Polymer.TreeApi.Logical={hasParentNode:function(node){return Boolean(node.__dom&&node.__dom.parentNode);},hasChildNodes:function(node){return Boolean(node.__dom&&node.__dom.childNodes!==undefined);},getChildNodes:function(node){return this.hasChildNodes(node)?this._getChildNodes(node):node.childNodes;},_getChildNodes:function(node){if(!node.__dom.childNodes){node.__dom.childNodes=[];for(var n=node.__dom.firstChild;n;n=n.__dom.nextSibling){node.__dom.childNodes.push(n);}}
return node.__dom.childNodes;},getParentNode:function(node){return node.__dom&&node.__dom.parentNode!==undefined?node.__dom.parentNode:node.parentNode;},getFirstChild:function(node){return node.__dom&&node.__dom.firstChild!==undefined?node.__dom.firstChild:node.firstChild;},getLastChild:function(node){return node.__dom&&node.__dom.lastChild!==undefined?node.__dom.lastChild:node.lastChild;},getNextSibling:function(node){return node.__dom&&node.__dom.nextSibling!==undefined?node.__dom.nextSibling:node.nextSibling;},getPreviousSibling:function(node){return node.__dom&&node.__dom.previousSibling!==undefined?node.__dom.previousSibling:node.previousSibling;},getFirstElementChild:function(node){return node.__dom&&node.__dom.firstChild!==undefined?this._getFirstElementChild(node):node.firstElementChild;},_getFirstElementChild:function(node){var n=node.__dom.firstChild;while(n&&n.nodeType!==Node.ELEMENT_NODE){n=n.__dom.nextSibling;}
return n;},getLastElementChild:function(node){return node.__dom&&node.__dom.lastChild!==undefined?this._getLastElementChild(node):node.lastElementChild;},_getLastElementChild:function(node){var n=node.__dom.lastChild;while(n&&n.nodeType!==Node.ELEMENT_NODE){n=n.__dom.previousSibling;}
return n;},getNextElementSibling:function(node){return node.__dom&&node.__dom.nextSibling!==undefined?this._getNextElementSibling(node):node.nextElementSibling;},_getNextElementSibling:function(node){var n=node.__dom.nextSibling;while(n&&n.nodeType!==Node.ELEMENT_NODE){n=n.__dom.nextSibling;}
return n;},getPreviousElementSibling:function(node){return node.__dom&&node.__dom.previousSibling!==undefined?this._getPreviousElementSibling(node):node.previousElementSibling;},_getPreviousElementSibling:function(node){var n=node.__dom.previousSibling;while(n&&n.nodeType!==Node.ELEMENT_NODE){n=n.__dom.previousSibling;}
return n;},saveChildNodes:function(node){if(!this.hasChildNodes(node)){node.__dom=node.__dom||{};node.__dom.firstChild=node.firstChild;node.__dom.lastChild=node.lastChild;node.__dom.childNodes=[];for(var n=node.firstChild;n;n=n.nextSibling){n.__dom=n.__dom||{};n.__dom.parentNode=node;node.__dom.childNodes.push(n);n.__dom.nextSibling=n.nextSibling;n.__dom.previousSibling=n.previousSibling;}}},recordInsertBefore:function(node,container,ref_node){container.__dom.childNodes=null;if(node.nodeType===Node.DOCUMENT_FRAGMENT_NODE){for(var n=node.firstChild;n;n=n.nextSibling){this._linkNode(n,container,ref_node);}}else{this._linkNode(node,container,ref_node);}},_linkNode:function(node,container,ref_node){node.__dom=node.__dom||{};container.__dom=container.__dom||{};if(ref_node){ref_node.__dom=ref_node.__dom||{};}
node.__dom.previousSibling=ref_node?ref_node.__dom.previousSibling:container.__dom.lastChild;if(node.__dom.previousSibling){node.__dom.previousSibling.__dom.nextSibling=node;}
node.__dom.nextSibling=ref_node||null;if(node.__dom.nextSibling){node.__dom.nextSibling.__dom.previousSibling=node;}
node.__dom.parentNode=container;if(ref_node){if(ref_node===container.__dom.firstChild){container.__dom.firstChild=node;}}else{container.__dom.lastChild=node;if(!container.__dom.firstChild){container.__dom.firstChild=node;}}
container.__dom.childNodes=null;},recordRemoveChild:function(node,container){node.__dom=node.__dom||{};container.__dom=container.__dom||{};if(node===container.__dom.firstChild){container.__dom.firstChild=node.__dom.nextSibling;}
if(node===container.__dom.lastChild){container.__dom.lastChild=node.__dom.previousSibling;}
var p=node.__dom.previousSibling;var n=node.__dom.nextSibling;if(p){p.__dom.nextSibling=n;}
if(n){n.__dom.previousSibling=p;}
node.__dom.parentNode=node.__dom.previousSibling=node.__dom.nextSibling=undefined;container.__dom.childNodes=null;}};Polymer.TreeApi.Composed={getChildNodes:function(node){return Polymer.TreeApi.arrayCopyChildNodes(node);},getParentNode:function(node){return node.parentNode;},clearChildNodes:function(node){node.textContent='';},insertBefore:function(parentNode,newChild,refChild){return nativeInsertBefore.call(parentNode,newChild,refChild||null);},appendChild:function(parentNode,newChild){return nativeAppendChild.call(parentNode,newChild);},removeChild:function(parentNode,node){return nativeRemoveChild.call(parentNode,node);}};}());Polymer.DomApi=function(){'use strict';var Settings=Polymer.Settings;var TreeApi=Polymer.TreeApi;var DomApi=function(node){this.node=needsToWrap?DomApi.wrap(node):node;};var needsToWrap=Settings.hasShadow&&!Settings.nativeShadow;DomApi.wrap=window.wrap?window.wrap:function(node){return node;};DomApi.prototype={flush:function(){Polymer.dom.flush();},deepContains:function(node){if(this.node.contains(node)){return true;}
var n=node;var doc=node.ownerDocument;while(n&&n!==doc&&n!==this.node){n=Polymer.dom(n).parentNode||n.host;}
return n===this.node;},queryDistributedElements:function(selector){var c$=this.getEffectiveChildNodes();var list=[];for(var i=0,l=c$.length,c;i<l&&(c=c$[i]);i++){if(c.nodeType===Node.ELEMENT_NODE&&DomApi.matchesSelector.call(c,selector)){list.push(c);}}
return list;},getEffectiveChildNodes:function(){var list=[];var c$=this.childNodes;for(var i=0,l=c$.length,c;i<l&&(c=c$[i]);i++){if(c.localName===CONTENT){var d$=dom(c).getDistributedNodes();for(var j=0;j<d$.length;j++){list.push(d$[j]);}}else{list.push(c);}}
return list;},observeNodes:function(callback){if(callback){if(!this.observer){this.observer=this.node.localName===CONTENT?new DomApi.DistributedNodesObserver(this):new DomApi.EffectiveNodesObserver(this);}
return this.observer.addListener(callback);}},unobserveNodes:function(handle){if(this.observer){this.observer.removeListener(handle);}},notifyObserver:function(){if(this.observer){this.observer.notify();}},_query:function(matcher,node,halter){node=node||this.node;var list=[];this._queryElements(TreeApi.Logical.getChildNodes(node),matcher,halter,list);return list;},_queryElements:function(elements,matcher,halter,list){for(var i=0,l=elements.length,c;i<l&&(c=elements[i]);i++){if(c.nodeType===Node.ELEMENT_NODE){if(this._queryElement(c,matcher,halter,list)){return true;}}}},_queryElement:function(node,matcher,halter,list){var result=matcher(node);if(result){list.push(node);}
if(halter&&halter(result)){return result;}
this._queryElements(TreeApi.Logical.getChildNodes(node),matcher,halter,list);}};var CONTENT=DomApi.CONTENT='content';var dom=DomApi.factory=function(node){node=node||document;if(!node.__domApi){node.__domApi=new DomApi.ctor(node);}
return node.__domApi;};DomApi.hasApi=function(node){return Boolean(node.__domApi);};DomApi.ctor=DomApi;Polymer.dom=function(obj,patch){if(obj instanceof Event){return Polymer.EventApi.factory(obj);}else{return DomApi.factory(obj,patch);}};var p=Element.prototype;DomApi.matchesSelector=p.matches||p.matchesSelector||p.mozMatchesSelector||p.msMatchesSelector||p.oMatchesSelector||p.webkitMatchesSelector;return DomApi;}();(function(){'use strict';var Settings=Polymer.Settings;var DomApi=Polymer.DomApi;var dom=DomApi.factory;var TreeApi=Polymer.TreeApi;var getInnerHTML=Polymer.domInnerHTML.getInnerHTML;var CONTENT=DomApi.CONTENT;if(Settings.useShadow){return;}
var nativeCloneNode=Element.prototype.cloneNode;var nativeImportNode=Document.prototype.importNode;Polymer.Base.mixin(DomApi.prototype,{_lazyDistribute:function(host){if(host.shadyRoot&&host.shadyRoot._distributionClean){host.shadyRoot._distributionClean=false;Polymer.dom.addDebouncer(host.debounce('_distribute',host._distributeContent));}},appendChild:function(node){return this.insertBefore(node);},insertBefore:function(node,ref_node){if(ref_node&&TreeApi.Logical.getParentNode(ref_node)!==this.node){throw Error('The ref_node to be inserted before is not a child '+'of this node');}
if(node.nodeType!==Node.DOCUMENT_FRAGMENT_NODE){var parent=TreeApi.Logical.getParentNode(node);if(parent){if(DomApi.hasApi(parent)){dom(parent).notifyObserver();}
this._removeNode(node);}else{this._removeOwnerShadyRoot(node);}}
if(!this._addNode(node,ref_node)){if(ref_node){ref_node=ref_node.localName===CONTENT?this._firstComposedNode(ref_node):ref_node;}
var container=this.node._isShadyRoot?this.node.host:this.node;if(ref_node){TreeApi.Composed.insertBefore(container,node,ref_node);}else{TreeApi.Composed.appendChild(container,node);}}
this.notifyObserver();return node;},_addNode:function(node,ref_node){var root=this.getOwnerRoot();if(root){var ipAdded=this._maybeAddInsertionPoint(node,this.node);if(!root._invalidInsertionPoints){root._invalidInsertionPoints=ipAdded;}
this._addNodeToHost(root.host,node);}
if(TreeApi.Logical.hasChildNodes(this.node)){TreeApi.Logical.recordInsertBefore(node,this.node,ref_node);}
var handled=this._maybeDistribute(node)||this.node.shadyRoot;if(handled){if(node.nodeType===Node.DOCUMENT_FRAGMENT_NODE){while(node.firstChild){TreeApi.Composed.removeChild(node,node.firstChild);}}else{var parent=TreeApi.Composed.getParentNode(node);if(parent){TreeApi.Composed.removeChild(parent,node);}}}
return handled;},removeChild:function(node){if(TreeApi.Logical.getParentNode(node)!==this.node){throw Error('The node to be removed is not a child of this node: '+node);}
if(!this._removeNode(node)){var container=this.node._isShadyRoot?this.node.host:this.node;var parent=TreeApi.Composed.getParentNode(node);if(container===parent){TreeApi.Composed.removeChild(container,node);}}
this.notifyObserver();return node;},_removeNode:function(node){var logicalParent=TreeApi.Logical.hasParentNode(node)&&TreeApi.Logical.getParentNode(node);var distributed;var root=this._ownerShadyRootForNode(node);if(logicalParent){distributed=dom(node)._maybeDistributeParent();TreeApi.Logical.recordRemoveChild(node,logicalParent);if(root&&this._removeDistributedChildren(root,node)){root._invalidInsertionPoints=true;this._lazyDistribute(root.host);}}
this._removeOwnerShadyRoot(node);if(root){this._removeNodeFromHost(root.host,node);}
return distributed;},replaceChild:function(node,ref_node){this.insertBefore(node,ref_node);this.removeChild(ref_node);return node;},_hasCachedOwnerRoot:function(node){return Boolean(node._ownerShadyRoot!==undefined);},getOwnerRoot:function(){return this._ownerShadyRootForNode(this.node);},_ownerShadyRootForNode:function(node){if(!node){return;}
var root=node._ownerShadyRoot;if(root===undefined){if(node._isShadyRoot){root=node;}else{var parent=TreeApi.Logical.getParentNode(node);if(parent){root=parent._isShadyRoot?parent:this._ownerShadyRootForNode(parent);}else{root=null;}}
if(root||document.documentElement.contains(node)){node._ownerShadyRoot=root;}}
return root;},_maybeDistribute:function(node){var fragContent=node.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&!node.__noContent&&dom(node).querySelector(CONTENT);var wrappedContent=fragContent&&TreeApi.Logical.getParentNode(fragContent).nodeType!==Node.DOCUMENT_FRAGMENT_NODE;var hasContent=fragContent||node.localName===CONTENT;if(hasContent){var root=this.getOwnerRoot();if(root){this._lazyDistribute(root.host);}}
var needsDist=this._nodeNeedsDistribution(this.node);if(needsDist){this._lazyDistribute(this.node);}
return needsDist||hasContent&&!wrappedContent;},_maybeAddInsertionPoint:function(node,parent){var added;if(node.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&!node.__noContent){var c$=dom(node).querySelectorAll(CONTENT);for(var i=0,n,np,na;i<c$.length&&(n=c$[i]);i++){np=TreeApi.Logical.getParentNode(n);if(np===node){np=parent;}
na=this._maybeAddInsertionPoint(n,np);added=added||na;}}else if(node.localName===CONTENT){TreeApi.Logical.saveChildNodes(parent);TreeApi.Logical.saveChildNodes(node);added=true;}
return added;},_updateInsertionPoints:function(host){var i$=host.shadyRoot._insertionPoints=dom(host.shadyRoot).querySelectorAll(CONTENT);for(var i=0,c;i<i$.length;i++){c=i$[i];TreeApi.Logical.saveChildNodes(c);TreeApi.Logical.saveChildNodes(TreeApi.Logical.getParentNode(c));}},_nodeNeedsDistribution:function(node){return node&&node.shadyRoot&&DomApi.hasInsertionPoint(node.shadyRoot);},_addNodeToHost:function(host,node){if(host._elementAdd){host._elementAdd(node);}},_removeNodeFromHost:function(host,node){if(host._elementRemove){host._elementRemove(node);}},_removeDistributedChildren:function(root,container){var hostNeedsDist;var ip$=root._insertionPoints;for(var i=0;i<ip$.length;i++){var content=ip$[i];if(this._contains(container,content)){var dc$=dom(content).getDistributedNodes();for(var j=0;j<dc$.length;j++){hostNeedsDist=true;var node=dc$[j];var parent=TreeApi.Composed.getParentNode(node);if(parent){TreeApi.Composed.removeChild(parent,node);}}}}
return hostNeedsDist;},_contains:function(container,node){while(node){if(node==container){return true;}
node=TreeApi.Logical.getParentNode(node);}},_removeOwnerShadyRoot:function(node){if(this._hasCachedOwnerRoot(node)){var c$=TreeApi.Logical.getChildNodes(node);for(var i=0,l=c$.length,n;i<l&&(n=c$[i]);i++){this._removeOwnerShadyRoot(n);}}
node._ownerShadyRoot=undefined;},_firstComposedNode:function(content){var n$=dom(content).getDistributedNodes();for(var i=0,l=n$.length,n,p$;i<l&&(n=n$[i]);i++){p$=dom(n).getDestinationInsertionPoints();if(p$[p$.length-1]===content){return n;}}},querySelector:function(selector){var result=this._query(function(n){return DomApi.matchesSelector.call(n,selector);},this.node,function(n){return Boolean(n);})[0];return result||null;},querySelectorAll:function(selector){return this._query(function(n){return DomApi.matchesSelector.call(n,selector);},this.node);},getDestinationInsertionPoints:function(){return this.node._destinationInsertionPoints||[];},getDistributedNodes:function(){return this.node._distributedNodes||[];},_clear:function(){while(this.childNodes.length){this.removeChild(this.childNodes[0]);}},setAttribute:function(name,value){this.node.setAttribute(name,value);this._maybeDistributeParent();},removeAttribute:function(name){this.node.removeAttribute(name);this._maybeDistributeParent();},_maybeDistributeParent:function(){if(this._nodeNeedsDistribution(this.parentNode)){this._lazyDistribute(this.parentNode);return true;}},cloneNode:function(deep){var n=nativeCloneNode.call(this.node,false);if(deep){var c$=this.childNodes;var d=dom(n);for(var i=0,nc;i<c$.length;i++){nc=dom(c$[i]).cloneNode(true);d.appendChild(nc);}}
return n;},importNode:function(externalNode,deep){var doc=this.node instanceof Document?this.node:this.node.ownerDocument;var n=nativeImportNode.call(doc,externalNode,false);if(deep){var c$=TreeApi.Logical.getChildNodes(externalNode);var d=dom(n);for(var i=0,nc;i<c$.length;i++){nc=dom(doc).importNode(c$[i],true);d.appendChild(nc);}}
return n;},_getComposedInnerHTML:function(){return getInnerHTML(this.node,true);}});Object.defineProperties(DomApi.prototype,{activeElement:{get:function(){var active=document.activeElement;if(!active){return null;}
var isShadyRoot=!!this.node._isShadyRoot;if(this.node!==document){if(!isShadyRoot){return null;}
if(this.node.host===active||!this.node.host.contains(active)){return null;}}
var activeRoot=dom(active).getOwnerRoot();while(activeRoot&&activeRoot!==this.node){active=activeRoot.host;activeRoot=dom(active).getOwnerRoot();}
if(this.node===document){return activeRoot?null:active;}else{return activeRoot===this.node?active:null;}},configurable:true},childNodes:{get:function(){var c$=TreeApi.Logical.getChildNodes(this.node);return Array.isArray(c$)?c$:TreeApi.arrayCopyChildNodes(this.node);},configurable:true},children:{get:function(){if(TreeApi.Logical.hasChildNodes(this.node)){return Array.prototype.filter.call(this.childNodes,function(n){return n.nodeType===Node.ELEMENT_NODE;});}else{return TreeApi.arrayCopyChildren(this.node);}},configurable:true},parentNode:{get:function(){return TreeApi.Logical.getParentNode(this.node);},configurable:true},firstChild:{get:function(){return TreeApi.Logical.getFirstChild(this.node);},configurable:true},lastChild:{get:function(){return TreeApi.Logical.getLastChild(this.node);},configurable:true},nextSibling:{get:function(){return TreeApi.Logical.getNextSibling(this.node);},configurable:true},previousSibling:{get:function(){return TreeApi.Logical.getPreviousSibling(this.node);},configurable:true},firstElementChild:{get:function(){return TreeApi.Logical.getFirstElementChild(this.node);},configurable:true},lastElementChild:{get:function(){return TreeApi.Logical.getLastElementChild(this.node);},configurable:true},nextElementSibling:{get:function(){return TreeApi.Logical.getNextElementSibling(this.node);},configurable:true},previousElementSibling:{get:function(){return TreeApi.Logical.getPreviousElementSibling(this.node);},configurable:true},textContent:{get:function(){var nt=this.node.nodeType;if(nt===Node.TEXT_NODE||nt===Node.COMMENT_NODE){return this.node.textContent;}else{var tc=[];for(var i=0,cn=this.childNodes,c;c=cn[i];i++){if(c.nodeType!==Node.COMMENT_NODE){tc.push(c.textContent);}}
return tc.join('');}},set:function(text){var nt=this.node.nodeType;if(nt===Node.TEXT_NODE||nt===Node.COMMENT_NODE){this.node.textContent=text;}else{this._clear();if(text){this.appendChild(document.createTextNode(text));}}},configurable:true},innerHTML:{get:function(){var nt=this.node.nodeType;if(nt===Node.TEXT_NODE||nt===Node.COMMENT_NODE){return null;}else{return getInnerHTML(this.node);}},set:function(text){var nt=this.node.nodeType;if(nt!==Node.TEXT_NODE||nt!==Node.COMMENT_NODE){this._clear();var d=document.createElement('div');d.innerHTML=text;var c$=TreeApi.arrayCopyChildNodes(d);for(var i=0;i<c$.length;i++){this.appendChild(c$[i]);}}},configurable:true}});DomApi.hasInsertionPoint=function(root){return Boolean(root&&root._insertionPoints.length);};}());(function(){'use strict';var Settings=Polymer.Settings;var TreeApi=Polymer.TreeApi;var DomApi=Polymer.DomApi;if(!Settings.useShadow){return;}
Polymer.Base.mixin(DomApi.prototype,{querySelectorAll:function(selector){return TreeApi.arrayCopy(this.node.querySelectorAll(selector));},getOwnerRoot:function(){var n=this.node;while(n){if(n.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&n.host){return n;}
n=n.parentNode;}},importNode:function(externalNode,deep){var doc=this.node instanceof Document?this.node:this.node.ownerDocument;return doc.importNode(externalNode,deep);},getDestinationInsertionPoints:function(){var n$=this.node.getDestinationInsertionPoints&&this.node.getDestinationInsertionPoints();return n$?TreeApi.arrayCopy(n$):[];},getDistributedNodes:function(){var n$=this.node.getDistributedNodes&&this.node.getDistributedNodes();return n$?TreeApi.arrayCopy(n$):[];}});Object.defineProperties(DomApi.prototype,{activeElement:{get:function(){var node=DomApi.wrap(this.node);var activeElement=node.activeElement;return node.contains(activeElement)?activeElement:null;},configurable:true},childNodes:{get:function(){return TreeApi.arrayCopyChildNodes(this.node);},configurable:true},children:{get:function(){return TreeApi.arrayCopyChildren(this.node);},configurable:true},textContent:{get:function(){return this.node.textContent;},set:function(value){return this.node.textContent=value;},configurable:true},innerHTML:{get:function(){return this.node.innerHTML;},set:function(value){return this.node.innerHTML=value;},configurable:true}});var forwardMethods=function(m$){for(var i=0;i<m$.length;i++){forwardMethod(m$[i]);}};var forwardMethod=function(method){DomApi.prototype[method]=function(){return this.node[method].apply(this.node,arguments);};};forwardMethods(['cloneNode','appendChild','insertBefore','removeChild','replaceChild','setAttribute','removeAttribute','querySelector']);var forwardProperties=function(f$){for(var i=0;i<f$.length;i++){forwardProperty(f$[i]);}};var forwardProperty=function(name){Object.defineProperty(DomApi.prototype,name,{get:function(){return this.node[name];},configurable:true});};forwardProperties(['parentNode','firstChild','lastChild','nextSibling','previousSibling','firstElementChild','lastElementChild','nextElementSibling','previousElementSibling']);}());Polymer.Base.mixin(Polymer.dom,{_flushGuard:0,_FLUSH_MAX:100,_needsTakeRecords:!Polymer.Settings.useNativeCustomElements,_debouncers:[],_staticFlushList:[],_finishDebouncer:null,flush:function(){this._flushGuard=0;this._prepareFlush();while(this._debouncers.length&&this._flushGuard<this._FLUSH_MAX){while(this._debouncers.length){this._debouncers.shift().complete();}
if(this._finishDebouncer){this._finishDebouncer.complete();}
this._prepareFlush();this._flushGuard++;}
if(this._flushGuard>=this._FLUSH_MAX){console.warn('Polymer.dom.flush aborted. Flush may not be complete.');}},_prepareFlush:function(){if(this._needsTakeRecords){CustomElements.takeRecords();}
for(var i=0;i<this._staticFlushList.length;i++){this._staticFlushList[i]();}},addStaticFlush:function(fn){this._staticFlushList.push(fn);},removeStaticFlush:function(fn){var i=this._staticFlushList.indexOf(fn);if(i>=0){this._staticFlushList.splice(i,1);}},addDebouncer:function(debouncer){this._debouncers.push(debouncer);this._finishDebouncer=Polymer.Debounce(this._finishDebouncer,this._finishFlush);},_finishFlush:function(){Polymer.dom._debouncers=[];}});Polymer.EventApi=function(){'use strict';var DomApi=Polymer.DomApi.ctor;var Settings=Polymer.Settings;DomApi.Event=function(event){this.event=event;};if(Settings.useShadow){DomApi.Event.prototype={get rootTarget(){return this.event.path[0];},get localTarget(){return this.event.target;},get path(){var path=this.event.path;if(!Array.isArray(path)){path=Array.prototype.slice.call(path);}
return path;}};}else{DomApi.Event.prototype={get rootTarget(){return this.event.target;},get localTarget(){var current=this.event.currentTarget;var currentRoot=current&&Polymer.dom(current).getOwnerRoot();var p$=this.path;for(var i=0;i<p$.length;i++){if(Polymer.dom(p$[i]).getOwnerRoot()===currentRoot){return p$[i];}}},get path(){if(!this.event._path){var path=[];var current=this.rootTarget;while(current){path.push(current);var insertionPoints=Polymer.dom(current).getDestinationInsertionPoints();if(insertionPoints.length){for(var i=0;i<insertionPoints.length-1;i++){path.push(insertionPoints[i]);}
current=insertionPoints[insertionPoints.length-1];}else{current=Polymer.dom(current).parentNode||current.host;}}
path.push(window);this.event._path=path;}
return this.event._path;}};}
var factory=function(event){if(!event.__eventApi){event.__eventApi=new DomApi.Event(event);}
return event.__eventApi;};return{factory:factory};}();(function(){'use strict';var DomApi=Polymer.DomApi.ctor;var useShadow=Polymer.Settings.useShadow;Object.defineProperty(DomApi.prototype,'classList',{get:function(){if(!this._classList){this._classList=new DomApi.ClassList(this);}
return this._classList;},configurable:true});DomApi.ClassList=function(host){this.domApi=host;this.node=host.node;};DomApi.ClassList.prototype={add:function(){this.node.classList.add.apply(this.node.classList,arguments);this._distributeParent();},remove:function(){this.node.classList.remove.apply(this.node.classList,arguments);this._distributeParent();},toggle:function(){this.node.classList.toggle.apply(this.node.classList,arguments);this._distributeParent();},_distributeParent:function(){if(!useShadow){this.domApi._maybeDistributeParent();}},contains:function(){return this.node.classList.contains.apply(this.node.classList,arguments);}};}());(function(){'use strict';var DomApi=Polymer.DomApi.ctor;var Settings=Polymer.Settings;DomApi.EffectiveNodesObserver=function(domApi){this.domApi=domApi;this.node=this.domApi.node;this._listeners=[];};DomApi.EffectiveNodesObserver.prototype={addListener:function(callback){if(!this._isSetup){this._setup();this._isSetup=true;}
var listener={fn:callback,_nodes:[]};this._listeners.push(listener);this._scheduleNotify();return listener;},removeListener:function(handle){var i=this._listeners.indexOf(handle);if(i>=0){this._listeners.splice(i,1);handle._nodes=[];}
if(!this._hasListeners()){this._cleanup();this._isSetup=false;}},_setup:function(){this._observeContentElements(this.domApi.childNodes);},_cleanup:function(){this._unobserveContentElements(this.domApi.childNodes);},_hasListeners:function(){return Boolean(this._listeners.length);},_scheduleNotify:function(){if(this._debouncer){this._debouncer.stop();}
this._debouncer=Polymer.Debounce(this._debouncer,this._notify);this._debouncer.context=this;Polymer.dom.addDebouncer(this._debouncer);},notify:function(){if(this._hasListeners()){this._scheduleNotify();}},_notify:function(){this._beforeCallListeners();this._callListeners();},_beforeCallListeners:function(){this._updateContentElements();},_updateContentElements:function(){this._observeContentElements(this.domApi.childNodes);},_observeContentElements:function(elements){for(var i=0,n;i<elements.length&&(n=elements[i]);i++){if(this._isContent(n)){n.__observeNodesMap=n.__observeNodesMap||new WeakMap();if(!n.__observeNodesMap.has(this)){n.__observeNodesMap.set(this,this._observeContent(n));}}}},_observeContent:function(content){var self=this;var h=Polymer.dom(content).observeNodes(function(){self._scheduleNotify();});h._avoidChangeCalculation=true;return h;},_unobserveContentElements:function(elements){for(var i=0,n,h;i<elements.length&&(n=elements[i]);i++){if(this._isContent(n)){h=n.__observeNodesMap.get(this);if(h){Polymer.dom(n).unobserveNodes(h);n.__observeNodesMap.delete(this);}}}},_isContent:function(node){return node.localName==='content';},_callListeners:function(){var o$=this._listeners;var nodes=this._getEffectiveNodes();for(var i=0,o;i<o$.length&&(o=o$[i]);i++){var info=this._generateListenerInfo(o,nodes);if(info||o._alwaysNotify){this._callListener(o,info);}}},_getEffectiveNodes:function(){return this.domApi.getEffectiveChildNodes();},_generateListenerInfo:function(listener,newNodes){if(listener._avoidChangeCalculation){return true;}
var oldNodes=listener._nodes;var info={target:this.node,addedNodes:[],removedNodes:[]};var splices=Polymer.ArraySplice.calculateSplices(newNodes,oldNodes);for(var i=0,s;i<splices.length&&(s=splices[i]);i++){for(var j=0,n;j<s.removed.length&&(n=s.removed[j]);j++){info.removedNodes.push(n);}}
for(i=0,s;i<splices.length&&(s=splices[i]);i++){for(j=s.index;j<s.index+s.addedCount;j++){info.addedNodes.push(newNodes[j]);}}
listener._nodes=newNodes;if(info.addedNodes.length||info.removedNodes.length){return info;}},_callListener:function(listener,info){return listener.fn.call(this.node,info);},enableShadowAttributeTracking:function(){}};if(Settings.useShadow){var baseSetup=DomApi.EffectiveNodesObserver.prototype._setup;var baseCleanup=DomApi.EffectiveNodesObserver.prototype._cleanup;Polymer.Base.mixin(DomApi.EffectiveNodesObserver.prototype,{_setup:function(){if(!this._observer){var self=this;this._mutationHandler=function(mxns){if(mxns&&mxns.length){self._scheduleNotify();}};this._observer=new MutationObserver(this._mutationHandler);this._boundFlush=function(){self._flush();};Polymer.dom.addStaticFlush(this._boundFlush);this._observer.observe(this.node,{childList:true});}
baseSetup.call(this);},_cleanup:function(){this._observer.disconnect();this._observer=null;this._mutationHandler=null;Polymer.dom.removeStaticFlush(this._boundFlush);baseCleanup.call(this);},_flush:function(){if(this._observer){this._mutationHandler(this._observer.takeRecords());}},enableShadowAttributeTracking:function(){if(this._observer){this._makeContentListenersAlwaysNotify();this._observer.disconnect();this._observer.observe(this.node,{childList:true,attributes:true,subtree:true});var root=this.domApi.getOwnerRoot();var host=root&&root.host;if(host&&Polymer.dom(host).observer){Polymer.dom(host).observer.enableShadowAttributeTracking();}}},_makeContentListenersAlwaysNotify:function(){for(var i=0,h;i<this._listeners.length;i++){h=this._listeners[i];h._alwaysNotify=h._isContentListener;}}});}}());(function(){'use strict';var DomApi=Polymer.DomApi.ctor;var Settings=Polymer.Settings;DomApi.DistributedNodesObserver=function(domApi){DomApi.EffectiveNodesObserver.call(this,domApi);};DomApi.DistributedNodesObserver.prototype=Object.create(DomApi.EffectiveNodesObserver.prototype);Polymer.Base.mixin(DomApi.DistributedNodesObserver.prototype,{_setup:function(){},_cleanup:function(){},_beforeCallListeners:function(){},_getEffectiveNodes:function(){return this.domApi.getDistributedNodes();}});if(Settings.useShadow){Polymer.Base.mixin(DomApi.DistributedNodesObserver.prototype,{_setup:function(){if(!this._observer){var root=this.domApi.getOwnerRoot();var host=root&&root.host;if(host){var self=this;this._observer=Polymer.dom(host).observeNodes(function(){self._scheduleNotify();});this._observer._isContentListener=true;if(this._hasAttrSelect()){Polymer.dom(host).observer.enableShadowAttributeTracking();}}}},_hasAttrSelect:function(){var select=this.node.getAttribute('select');return select&&select.match(/[[.]+/);},_cleanup:function(){var root=this.domApi.getOwnerRoot();var host=root&&root.host;if(host){Polymer.dom(host).unobserveNodes(this._observer);}
this._observer=null;}});}}());(function(){var DomApi=Polymer.DomApi;var TreeApi=Polymer.TreeApi;Polymer.Base._addFeature({_prepShady:function(){this._useContent=this._useContent||Boolean(this._template);},_setupShady:function(){this.shadyRoot=null;if(!this.__domApi){this.__domApi=null;}
if(!this.__dom){this.__dom=null;}
if(!this._ownerShadyRoot){this._ownerShadyRoot=undefined;}},_poolContent:function(){if(this._useContent){TreeApi.Logical.saveChildNodes(this);}},_setupRoot:function(){if(this._useContent){this._createLocalRoot();if(!this.dataHost){upgradeLogicalChildren(TreeApi.Logical.getChildNodes(this));}}},_createLocalRoot:function(){this.shadyRoot=this.root;this.shadyRoot._distributionClean=false;this.shadyRoot._hasDistributed=false;this.shadyRoot._isShadyRoot=true;this.shadyRoot._dirtyRoots=[];var i$=this.shadyRoot._insertionPoints=!this._notes||this._notes._hasContent?this.shadyRoot.querySelectorAll('content'):[];TreeApi.Logical.saveChildNodes(this.shadyRoot);for(var i=0,c;i<i$.length;i++){c=i$[i];TreeApi.Logical.saveChildNodes(c);TreeApi.Logical.saveChildNodes(c.parentNode);}
this.shadyRoot.host=this;},distributeContent:function(updateInsertionPoints){if(this.shadyRoot){this.shadyRoot._invalidInsertionPoints=this.shadyRoot._invalidInsertionPoints||updateInsertionPoints;var host=getTopDistributingHost(this);Polymer.dom(this)._lazyDistribute(host);}},_distributeContent:function(){if(this._useContent&&!this.shadyRoot._distributionClean){if(this.shadyRoot._invalidInsertionPoints){Polymer.dom(this)._updateInsertionPoints(this);this.shadyRoot._invalidInsertionPoints=false;}
this._beginDistribute();this._distributeDirtyRoots();this._finishDistribute();}},_beginDistribute:function(){if(this._useContent&&DomApi.hasInsertionPoint(this.shadyRoot)){this._resetDistribution();this._distributePool(this.shadyRoot,this._collectPool());}},_distributeDirtyRoots:function(){var c$=this.shadyRoot._dirtyRoots;for(var i=0,l=c$.length,c;i<l&&(c=c$[i]);i++){c._distributeContent();}
this.shadyRoot._dirtyRoots=[];},_finishDistribute:function(){if(this._useContent){this.shadyRoot._distributionClean=true;if(DomApi.hasInsertionPoint(this.shadyRoot)){this._composeTree();notifyContentObservers(this.shadyRoot);}else{if(!this.shadyRoot._hasDistributed){TreeApi.Composed.clearChildNodes(this);this.appendChild(this.shadyRoot);}else{var children=this._composeNode(this);this._updateChildNodes(this,children);}}
if(!this.shadyRoot._hasDistributed){notifyInitialDistribution(this);}
this.shadyRoot._hasDistributed=true;}},elementMatches:function(selector,node){node=node||this;return DomApi.matchesSelector.call(node,selector);},_resetDistribution:function(){var children=TreeApi.Logical.getChildNodes(this);for(var i=0;i<children.length;i++){var child=children[i];if(child._destinationInsertionPoints){child._destinationInsertionPoints=undefined;}
if(isInsertionPoint(child)){clearDistributedDestinationInsertionPoints(child);}}
var root=this.shadyRoot;var p$=root._insertionPoints;for(var j=0;j<p$.length;j++){p$[j]._distributedNodes=[];}},_collectPool:function(){var pool=[];var children=TreeApi.Logical.getChildNodes(this);for(var i=0;i<children.length;i++){var child=children[i];if(isInsertionPoint(child)){pool.push.apply(pool,child._distributedNodes);}else{pool.push(child);}}
return pool;},_distributePool:function(node,pool){var p$=node._insertionPoints;for(var i=0,l=p$.length,p;i<l&&(p=p$[i]);i++){this._distributeInsertionPoint(p,pool);maybeRedistributeParent(p,this);}},_distributeInsertionPoint:function(content,pool){var anyDistributed=false;for(var i=0,l=pool.length,node;i<l;i++){node=pool[i];if(!node){continue;}
if(this._matchesContentSelect(node,content)){distributeNodeInto(node,content);pool[i]=undefined;anyDistributed=true;}}
if(!anyDistributed){var children=TreeApi.Logical.getChildNodes(content);for(var j=0;j<children.length;j++){distributeNodeInto(children[j],content);}}},_composeTree:function(){this._updateChildNodes(this,this._composeNode(this));var p$=this.shadyRoot._insertionPoints;for(var i=0,l=p$.length,p,parent;i<l&&(p=p$[i]);i++){parent=TreeApi.Logical.getParentNode(p);if(!parent._useContent&&parent!==this&&parent!==this.shadyRoot){this._updateChildNodes(parent,this._composeNode(parent));}}},_composeNode:function(node){var children=[];var c$=TreeApi.Logical.getChildNodes(node.shadyRoot||node);for(var i=0;i<c$.length;i++){var child=c$[i];if(isInsertionPoint(child)){var distributedNodes=child._distributedNodes;for(var j=0;j<distributedNodes.length;j++){var distributedNode=distributedNodes[j];if(isFinalDestination(child,distributedNode)){children.push(distributedNode);}}}else{children.push(child);}}
return children;},_updateChildNodes:function(container,children){var composed=TreeApi.Composed.getChildNodes(container);var splices=Polymer.ArraySplice.calculateSplices(children,composed);for(var i=0,d=0,s;i<splices.length&&(s=splices[i]);i++){for(var j=0,n;j<s.removed.length&&(n=s.removed[j]);j++){if(TreeApi.Composed.getParentNode(n)===container){TreeApi.Composed.removeChild(container,n);}
composed.splice(s.index+d,1);}
d-=s.addedCount;}
for(var i=0,s,next;i<splices.length&&(s=splices[i]);i++){next=composed[s.index];for(j=s.index,n;j<s.index+s.addedCount;j++){n=children[j];TreeApi.Composed.insertBefore(container,n,next);composed.splice(j,0,n);}}},_matchesContentSelect:function(node,contentElement){var select=contentElement.getAttribute('select');if(!select){return true;}
select=select.trim();if(!select){return true;}
if(!(node instanceof Element)){return false;}
var validSelectors=/^(:not\()?[*.#[a-zA-Z_|]/;if(!validSelectors.test(select)){return false;}
return this.elementMatches(select,node);},_elementAdd:function(){},_elementRemove:function(){}});var domHostDesc={get:function(){var root=Polymer.dom(this).getOwnerRoot();return root&&root.host;},configurable:true};Object.defineProperty(Polymer.Base,'domHost',domHostDesc);Polymer.BaseDescriptors.domHost=domHostDesc;function distributeNodeInto(child,insertionPoint){insertionPoint._distributedNodes.push(child);var points=child._destinationInsertionPoints;if(!points){child._destinationInsertionPoints=[insertionPoint];}else{points.push(insertionPoint);}}
function clearDistributedDestinationInsertionPoints(content){var e$=content._distributedNodes;if(e$){for(var i=0;i<e$.length;i++){var d=e$[i]._destinationInsertionPoints;if(d){d.splice(d.indexOf(content)+1,d.length);}}}}
function maybeRedistributeParent(content,host){var parent=TreeApi.Logical.getParentNode(content);if(parent&&parent.shadyRoot&&DomApi.hasInsertionPoint(parent.shadyRoot)&&parent.shadyRoot._distributionClean){parent.shadyRoot._distributionClean=false;host.shadyRoot._dirtyRoots.push(parent);}}
function isFinalDestination(insertionPoint,node){var points=node._destinationInsertionPoints;return points&&points[points.length-1]===insertionPoint;}
function isInsertionPoint(node){return node.localName=='content';}
function getTopDistributingHost(host){while(host&&hostNeedsRedistribution(host)){host=host.domHost;}
return host;}
function hostNeedsRedistribution(host){var c$=TreeApi.Logical.getChildNodes(host);for(var i=0,c;i<c$.length;i++){c=c$[i];if(c.localName&&c.localName==='content'){return host.domHost;}}}
function notifyContentObservers(root){for(var i=0,c;i<root._insertionPoints.length;i++){c=root._insertionPoints[i];if(DomApi.hasApi(c)){Polymer.dom(c).notifyObserver();}}}
function notifyInitialDistribution(host){if(DomApi.hasApi(host)){Polymer.dom(host).notifyObserver();}}
var needsUpgrade=window.CustomElements&&!CustomElements.useNative;function upgradeLogicalChildren(children){if(needsUpgrade&&children){for(var i=0;i<children.length;i++){CustomElements.upgrade(children[i]);}}}}());if(Polymer.Settings.useShadow){Polymer.Base._addFeature({_poolContent:function(){},_beginDistribute:function(){},distributeContent:function(){},_distributeContent:function(){},_finishDistribute:function(){},_createLocalRoot:function(){this.createShadowRoot();this.shadowRoot.appendChild(this.root);this.root=this.shadowRoot;}});}Polymer.Async={_currVal:0,_lastVal:0,_callbacks:[],_twiddleContent:0,_twiddle:document.createTextNode(''),run:function(callback,waitTime){if(waitTime>0){return~setTimeout(callback,waitTime);}else{this._twiddle.textContent=this._twiddleContent++;this._callbacks.push(callback);return this._currVal++;}},cancel:function(handle){if(handle<0){clearTimeout(~handle);}else{var idx=handle-this._lastVal;if(idx>=0){if(!this._callbacks[idx]){throw'invalid async handle: '+handle;}
this._callbacks[idx]=null;}}},_atEndOfMicrotask:function(){var len=this._callbacks.length;for(var i=0;i<len;i++){var cb=this._callbacks[i];if(cb){try{cb();}catch(e){i++;this._callbacks.splice(0,i);this._lastVal+=i;this._twiddle.textContent=this._twiddleContent++;throw e;}}}
this._callbacks.splice(0,len);this._lastVal+=len;}};new window.MutationObserver(function(){Polymer.Async._atEndOfMicrotask();}).observe(Polymer.Async._twiddle,{characterData:true});Polymer.Debounce=function(){var Async=Polymer.Async;var Debouncer=function(context){this.context=context;var self=this;this.boundComplete=function(){self.complete();};};Debouncer.prototype={go:function(callback,wait){var h;this.finish=function(){Async.cancel(h);};h=Async.run(this.boundComplete,wait);this.callback=callback;},stop:function(){if(this.finish){this.finish();this.finish=null;this.callback=null;}},complete:function(){if(this.finish){var callback=this.callback;this.stop();callback.call(this.context);}}};function debounce(debouncer,callback,wait){if(debouncer){debouncer.stop();}else{debouncer=new Debouncer(this);}
debouncer.go(callback,wait);return debouncer;}
return debounce;}();Polymer.Base._addFeature({_setupDebouncers:function(){this._debouncers={};},debounce:function(jobName,callback,wait){return this._debouncers[jobName]=Polymer.Debounce.call(this,this._debouncers[jobName],callback,wait);},isDebouncerActive:function(jobName){var debouncer=this._debouncers[jobName];return!!(debouncer&&debouncer.finish);},flushDebouncer:function(jobName){var debouncer=this._debouncers[jobName];if(debouncer){debouncer.complete();}},cancelDebouncer:function(jobName){var debouncer=this._debouncers[jobName];if(debouncer){debouncer.stop();}}});Polymer.DomModule=document.createElement('dom-module');Polymer.Base._addFeature({_registerFeatures:function(){this._prepIs();this._prepBehaviors();this._prepConstructor();this._prepTemplate();this._prepShady();this._prepPropertyInfo();},_prepBehavior:function(b){this._addHostAttributes(b.hostAttributes);},_initFeatures:function(){this._registerHost();if(this._template){this._poolContent();this._beginHosting();this._stampTemplate();this._endHosting();}
this._marshalHostAttributes();this._setupDebouncers();this._marshalBehaviors();this._tryReady();},_marshalBehavior:function(b){}});(function(){Polymer.nar=[];var disableUpgradeEnabled=Polymer.Settings.disableUpgradeEnabled;Polymer.Annotations={parseAnnotations:function(template,stripWhiteSpace){var list=[];var content=template._content||template.content;this._parseNodeAnnotations(content,list,stripWhiteSpace||template.hasAttribute('strip-whitespace'));return list;},_parseNodeAnnotations:function(node,list,stripWhiteSpace){return node.nodeType===Node.TEXT_NODE?this._parseTextNodeAnnotation(node,list):this._parseElementAnnotations(node,list,stripWhiteSpace);},_bindingRegex:function(){var IDENT='(?:'+'[a-zA-Z_$][\\w.:$\\-*]*'+')';var NUMBER='(?:'+'[-+]?[0-9]*\\.?[0-9]+(?:[eE][-+]?[0-9]+)?'+')';var SQUOTE_STRING='(?:'+'\'(?:[^\'\\\\]|\\\\.)*\''+')';var DQUOTE_STRING='(?:'+'"(?:[^"\\\\]|\\\\.)*"'+')';var STRING='(?:'+SQUOTE_STRING+'|'+DQUOTE_STRING+')';var ARGUMENT='(?:'+IDENT+'|'+NUMBER+'|'+STRING+'\\s*'+')';var ARGUMENTS='(?:'+ARGUMENT+'(?:,\\s*'+ARGUMENT+')*'+')';var ARGUMENT_LIST='(?:'+'\\(\\s*'+'(?:'+ARGUMENTS+'?'+')'+'\\)\\s*'+')';var BINDING='('+IDENT+'\\s*'+ARGUMENT_LIST+'?'+')';var OPEN_BRACKET='(\\[\\[|{{)'+'\\s*';var CLOSE_BRACKET='(?:]]|}})';var NEGATE='(?:(!)\\s*)?';var EXPRESSION=OPEN_BRACKET+NEGATE+BINDING+CLOSE_BRACKET;return new RegExp(EXPRESSION,'g');}(),_parseBindings:function(text){var re=this._bindingRegex;var parts=[];var lastIndex=0;var m;while((m=re.exec(text))!==null){if(m.index>lastIndex){parts.push({literal:text.slice(lastIndex,m.index)});}
var mode=m[1][0];var negate=Boolean(m[2]);var value=m[3].trim();var customEvent,notifyEvent,colon;if(mode=='{'&&(colon=value.indexOf('::'))>0){notifyEvent=value.substring(colon+2);value=value.substring(0,colon);customEvent=true;}
parts.push({compoundIndex:parts.length,value:value,mode:mode,negate:negate,event:notifyEvent,customEvent:customEvent});lastIndex=re.lastIndex;}
if(lastIndex&&lastIndex<text.length){var literal=text.substring(lastIndex);if(literal){parts.push({literal:literal});}}
if(parts.length){return parts;}},_literalFromParts:function(parts){var s='';for(var i=0;i<parts.length;i++){var literal=parts[i].literal;s+=literal||'';}
return s;},_parseTextNodeAnnotation:function(node,list){var parts=this._parseBindings(node.textContent);if(parts){node.textContent=this._literalFromParts(parts)||' ';var annote={bindings:[{kind:'text',name:'textContent',parts:parts,isCompound:parts.length!==1}]};list.push(annote);return annote;}},_parseElementAnnotations:function(element,list,stripWhiteSpace){var annote={bindings:[],events:[]};if(element.localName==='content'){list._hasContent=true;}
this._parseChildNodesAnnotations(element,annote,list,stripWhiteSpace);if(element.attributes){this._parseNodeAttributeAnnotations(element,annote,list);if(this.prepElement){this.prepElement(element);}}
if(annote.bindings.length||annote.events.length||annote.id){list.push(annote);}
return annote;},_parseChildNodesAnnotations:function(root,annote,list,stripWhiteSpace){if(root.firstChild){var node=root.firstChild;var i=0;while(node){var next=node.nextSibling;if(node.localName==='template'&&!node.hasAttribute('preserve-content')){this._parseTemplate(node,i,list,annote,stripWhiteSpace);}
if(node.localName=='slot'){node=this._replaceSlotWithContent(node);}
if(node.nodeType===Node.TEXT_NODE){var n=next;while(n&&n.nodeType===Node.TEXT_NODE){node.textContent+=n.textContent;next=n.nextSibling;root.removeChild(n);n=next;}
if(stripWhiteSpace&&!node.textContent.trim()){root.removeChild(node);i--;}}
if(node.parentNode){var childAnnotation=this._parseNodeAnnotations(node,list,stripWhiteSpace);if(childAnnotation){childAnnotation.parent=annote;childAnnotation.index=i;}}
node=next;i++;}}},_replaceSlotWithContent:function(slot){var content=slot.ownerDocument.createElement('content');while(slot.firstChild){content.appendChild(slot.firstChild);}
var attrs=slot.attributes;for(var i=0;i<attrs.length;i++){var attr=attrs[i];content.setAttribute(attr.name,attr.value);}
var name=slot.getAttribute('name');if(name){content.setAttribute('select','[slot=\''+name+'\']');}
slot.parentNode.replaceChild(content,slot);return content;},_parseTemplate:function(node,index,list,parent,stripWhiteSpace){var content=document.createDocumentFragment();content._notes=this.parseAnnotations(node,stripWhiteSpace);content.appendChild(node.content);list.push({bindings:Polymer.nar,events:Polymer.nar,templateContent:content,parent:parent,index:index});},_parseNodeAttributeAnnotations:function(node,annotation){var attrs=Array.prototype.slice.call(node.attributes);for(var i=attrs.length-1,a;a=attrs[i];i--){var n=a.name;var v=a.value;var b;if(n.slice(0,3)==='on-'){node.removeAttribute(n);annotation.events.push({name:n.slice(3),value:v});}else if(b=this._parseNodeAttributeAnnotation(node,n,v)){annotation.bindings.push(b);}else if(n==='id'){annotation.id=v;}}},_parseNodeAttributeAnnotation:function(node,name,value){var parts=this._parseBindings(value);if(parts){var origName=name;var kind='property';if(name[name.length-1]=='$'){name=name.slice(0,-1);kind='attribute';}
var literal=this._literalFromParts(parts);if(literal&&kind=='attribute'){node.setAttribute(name,literal);}
if(node.localName==='input'&&origName==='value'){node.setAttribute(origName,'');}
if(disableUpgradeEnabled&&origName==='disable-upgrade$'){node.setAttribute(name,'');}
node.removeAttribute(origName);var propertyName=Polymer.CaseMap.dashToCamelCase(name);if(kind==='property'){name=propertyName;}
return{kind:kind,name:name,propertyName:propertyName,parts:parts,literal:literal,isCompound:parts.length!==1};}},findAnnotatedNode:function(root,annote){var parent=annote.parent&&Polymer.Annotations.findAnnotatedNode(root,annote.parent);if(parent){for(var n=parent.firstChild,i=0;n;n=n.nextSibling){if(annote.index===i++){return n;}}}else{return root;}}};}());Polymer.Path={root:function(path){var dotIndex=path.indexOf('.');if(dotIndex===-1){return path;}
return path.slice(0,dotIndex);},isDeep:function(path){return path.indexOf('.')!==-1;},isAncestor:function(base,path){return base.indexOf(path+'.')===0;},isDescendant:function(base,path){return path.indexOf(base+'.')===0;},translate:function(base,newBase,path){return newBase+path.slice(base.length);},matches:function(base,wildcard,path){return base===path||this.isAncestor(base,path)||Boolean(wildcard)&&this.isDescendant(base,path);}};Polymer.Base._addFeature({_prepAnnotations:function(){if(!this._template){this._notes=[];}else{var self=this;Polymer.Annotations.prepElement=function(element){self._prepElement(element);};if(this._template._content&&this._template._content._notes){this._notes=this._template._content._notes;}else{this._notes=Polymer.Annotations.parseAnnotations(this._template);this._processAnnotations(this._notes);}
Polymer.Annotations.prepElement=null;}},_processAnnotations:function(notes){for(var i=0;i<notes.length;i++){var note=notes[i];for(var j=0;j<note.bindings.length;j++){var b=note.bindings[j];for(var k=0;k<b.parts.length;k++){var p=b.parts[k];if(!p.literal){var signature=this._parseMethod(p.value);if(signature){p.signature=signature;}else{p.model=Polymer.Path.root(p.value);}}}}
if(note.templateContent){this._processAnnotations(note.templateContent._notes);var pp=note.templateContent._parentProps=this._discoverTemplateParentProps(note.templateContent._notes);var bindings=[];for(var prop in pp){var name='_parent_'+prop;bindings.push({index:note.index,kind:'property',name:name,propertyName:name,parts:[{mode:'{',model:prop,value:prop}]});}
note.bindings=note.bindings.concat(bindings);}}},_discoverTemplateParentProps:function(notes){var pp={};for(var i=0,n;i<notes.length&&(n=notes[i]);i++){for(var j=0,b$=n.bindings,b;j<b$.length&&(b=b$[j]);j++){for(var k=0,p$=b.parts,p;k<p$.length&&(p=p$[k]);k++){if(p.signature){var args=p.signature.args;for(var kk=0;kk<args.length;kk++){var model=args[kk].model;if(model){pp[model]=true;}}
if(p.signature.dynamicFn){pp[p.signature.method]=true;}}else{if(p.model){pp[p.model]=true;}}}}
if(n.templateContent){var tpp=n.templateContent._parentProps;Polymer.Base.mixin(pp,tpp);}}
return pp;},_prepElement:function(element){Polymer.ResolveUrl.resolveAttrs(element,this._template.ownerDocument);},_findAnnotatedNode:Polymer.Annotations.findAnnotatedNode,_marshalAnnotationReferences:function(){if(this._template){this._marshalIdNodes();this._marshalAnnotatedNodes();this._marshalAnnotatedListeners();}},_configureAnnotationReferences:function(){var notes=this._notes;var nodes=this._nodes;for(var i=0;i<notes.length;i++){var note=notes[i];var node=nodes[i];this._configureTemplateContent(note,node);this._configureCompoundBindings(note,node);}},_configureTemplateContent:function(note,node){if(note.templateContent){node._content=note.templateContent;}},_configureCompoundBindings:function(note,node){var bindings=note.bindings;for(var i=0;i<bindings.length;i++){var binding=bindings[i];if(binding.isCompound){var storage=node.__compoundStorage__||(node.__compoundStorage__={});var parts=binding.parts;var literals=new Array(parts.length);for(var j=0;j<parts.length;j++){literals[j]=parts[j].literal;}
var name=binding.name;storage[name]=literals;if(binding.literal&&binding.kind=='property'){if(node._configValue){node._configValue(name,binding.literal);}else{node[name]=binding.literal;}}}}},_marshalIdNodes:function(){this.$={};for(var i=0,l=this._notes.length,a;i<l&&(a=this._notes[i]);i++){if(a.id){this.$[a.id]=this._findAnnotatedNode(this.root,a);}}},_marshalAnnotatedNodes:function(){if(this._notes&&this._notes.length){var r=new Array(this._notes.length);for(var i=0;i<this._notes.length;i++){r[i]=this._findAnnotatedNode(this.root,this._notes[i]);}
this._nodes=r;}},_marshalAnnotatedListeners:function(){for(var i=0,l=this._notes.length,a;i<l&&(a=this._notes[i]);i++){if(a.events&&a.events.length){var node=this._findAnnotatedNode(this.root,a);for(var j=0,e$=a.events,e;j<e$.length&&(e=e$[j]);j++){this.listen(node,e.name,e.value);}}}}});Polymer.Base._addFeature({listeners:{},_listenListeners:function(listeners){var node,name,eventName;for(eventName in listeners){if(eventName.indexOf('.')<0){node=this;name=eventName;}else{name=eventName.split('.');node=this.$[name[0]];name=name[1];}
this.listen(node,name,listeners[eventName]);}},listen:function(node,eventName,methodName){var handler=this._recallEventHandler(this,eventName,node,methodName);if(!handler){handler=this._createEventHandler(node,eventName,methodName);}
if(handler._listening){return;}
this._listen(node,eventName,handler);handler._listening=true;},_boundListenerKey:function(eventName,methodName){return eventName+':'+methodName;},_recordEventHandler:function(host,eventName,target,methodName,handler){var hbl=host.__boundListeners;if(!hbl){hbl=host.__boundListeners=new WeakMap();}
var bl=hbl.get(target);if(!bl){bl={};if(!Polymer.Settings.isIE||target!=window){hbl.set(target,bl);}}
var key=this._boundListenerKey(eventName,methodName);bl[key]=handler;},_recallEventHandler:function(host,eventName,target,methodName){var hbl=host.__boundListeners;if(!hbl){return;}
var bl=hbl.get(target);if(!bl){return;}
var key=this._boundListenerKey(eventName,methodName);return bl[key];},_createEventHandler:function(node,eventName,methodName){var host=this;var handler=function(e){if(host[methodName]){host[methodName](e,e.detail);}else{host._warn(host._logf('_createEventHandler','listener method `'+methodName+'` not defined'));}};handler._listening=false;this._recordEventHandler(host,eventName,node,methodName,handler);return handler;},unlisten:function(node,eventName,methodName){var handler=this._recallEventHandler(this,eventName,node,methodName);if(handler){this._unlisten(node,eventName,handler);handler._listening=false;}},_listen:function(node,eventName,handler){node.addEventListener(eventName,handler);},_unlisten:function(node,eventName,handler){node.removeEventListener(eventName,handler);}});(function(){'use strict';var wrap=Polymer.DomApi.wrap;var HAS_NATIVE_TA=typeof document.head.style.touchAction==='string';var GESTURE_KEY='__polymerGestures';var HANDLED_OBJ='__polymerGesturesHandled';var TOUCH_ACTION='__polymerGesturesTouchAction';var TAP_DISTANCE=25;var TRACK_DISTANCE=5;var TRACK_LENGTH=2;var MOUSE_TIMEOUT=2500;var MOUSE_EVENTS=['mousedown','mousemove','mouseup','click'];var MOUSE_WHICH_TO_BUTTONS=[0,1,4,2];var MOUSE_HAS_BUTTONS=function(){try{return new MouseEvent('test',{buttons:1}).buttons===1;}catch(e){return false;}}();function isMouseEvent(name){return MOUSE_EVENTS.indexOf(name)>-1;}
var SUPPORTS_PASSIVE=false;(function(){try{var opts=Object.defineProperty({},'passive',{get:function(){SUPPORTS_PASSIVE=true;}});window.addEventListener('test',null,opts);window.removeEventListener('test',null,opts);}catch(e){}}());function PASSIVE_TOUCH(){if(HAS_NATIVE_TA&&SUPPORTS_PASSIVE&&Polymer.Settings.passiveTouchGestures){return{passive:true};}}
var IS_TOUCH_ONLY=navigator.userAgent.match(/iP(?:[oa]d|hone)|Android/);var mouseCanceller=function(mouseEvent){var sc=mouseEvent.sourceCapabilities;if(sc&&!sc.firesTouchEvents){return;}
mouseEvent[HANDLED_OBJ]={skip:true};if(mouseEvent.type==='click'){var path=Polymer.dom(mouseEvent).path;for(var i=0;i<path.length;i++){if(path[i]===POINTERSTATE.mouse.target){return;}}
mouseEvent.preventDefault();mouseEvent.stopPropagation();}};function setupTeardownMouseCanceller(setup){var events=IS_TOUCH_ONLY?['click']:MOUSE_EVENTS;for(var i=0,en;i<events.length;i++){en=events[i];if(setup){document.addEventListener(en,mouseCanceller,true);}else{document.removeEventListener(en,mouseCanceller,true);}}}
function ignoreMouse(ev){if(!POINTERSTATE.mouse.mouseIgnoreJob){setupTeardownMouseCanceller(true);}
var unset=function(){setupTeardownMouseCanceller();POINTERSTATE.mouse.target=null;POINTERSTATE.mouse.mouseIgnoreJob=null;};POINTERSTATE.mouse.target=Polymer.dom(ev).rootTarget;POINTERSTATE.mouse.mouseIgnoreJob=Polymer.Debounce(POINTERSTATE.mouse.mouseIgnoreJob,unset,MOUSE_TIMEOUT);}
function hasLeftMouseButton(ev){var type=ev.type;if(!isMouseEvent(type)){return false;}
if(type==='mousemove'){var buttons=ev.buttons===undefined?1:ev.buttons;if(ev instanceof window.MouseEvent&&!MOUSE_HAS_BUTTONS){buttons=MOUSE_WHICH_TO_BUTTONS[ev.which]||0;}
return Boolean(buttons&1);}else{var button=ev.button===undefined?0:ev.button;return button===0;}}
function isSyntheticClick(ev){if(ev.type==='click'){if(ev.detail===0){return true;}
var t=Gestures.findOriginalTarget(ev);var bcr=t.getBoundingClientRect();var x=ev.pageX,y=ev.pageY;return!(x>=bcr.left&&x<=bcr.right&&(y>=bcr.top&&y<=bcr.bottom));}
return false;}
var POINTERSTATE={mouse:{target:null,mouseIgnoreJob:null},touch:{x:0,y:0,id:-1,scrollDecided:false}};function firstTouchAction(ev){var path=Polymer.dom(ev).path;var ta='auto';for(var i=0,n;i<path.length;i++){n=path[i];if(n[TOUCH_ACTION]){ta=n[TOUCH_ACTION];break;}}
return ta;}
function trackDocument(stateObj,movefn,upfn){stateObj.movefn=movefn;stateObj.upfn=upfn;document.addEventListener('mousemove',movefn);document.addEventListener('mouseup',upfn);}
function untrackDocument(stateObj){document.removeEventListener('mousemove',stateObj.movefn);document.removeEventListener('mouseup',stateObj.upfn);stateObj.movefn=null;stateObj.upfn=null;}
document.addEventListener('touchend',ignoreMouse,SUPPORTS_PASSIVE?{passive:true}:false);var Gestures={gestures:{},recognizers:[],deepTargetFind:function(x,y){var node=document.elementFromPoint(x,y);var next=node;while(next&&next.shadowRoot){next=next.shadowRoot.elementFromPoint(x,y);if(next){node=next;}}
return node;},findOriginalTarget:function(ev){if(ev.path){return ev.path[0];}
return ev.target;},handleNative:function(ev){var handled;var type=ev.type;var node=wrap(ev.currentTarget);var gobj=node[GESTURE_KEY];if(!gobj){return;}
var gs=gobj[type];if(!gs){return;}
if(!ev[HANDLED_OBJ]){ev[HANDLED_OBJ]={};if(type.slice(0,5)==='touch'){var t=ev.changedTouches[0];if(type==='touchstart'){if(ev.touches.length===1){POINTERSTATE.touch.id=t.identifier;}}
if(POINTERSTATE.touch.id!==t.identifier){return;}
if(!HAS_NATIVE_TA){if(type==='touchstart'||type==='touchmove'){Gestures.handleTouchAction(ev);}}}}
handled=ev[HANDLED_OBJ];if(handled.skip){return;}
var recognizers=Gestures.recognizers;for(var i=0,r;i<recognizers.length;i++){r=recognizers[i];if(gs[r.name]&&!handled[r.name]){if(r.flow&&r.flow.start.indexOf(ev.type)>-1&&r.reset){r.reset();}}}
for(i=0,r;i<recognizers.length;i++){r=recognizers[i];if(gs[r.name]&&!handled[r.name]){handled[r.name]=true;r[type](ev);}}},handleTouchAction:function(ev){var t=ev.changedTouches[0];var type=ev.type;if(type==='touchstart'){POINTERSTATE.touch.x=t.clientX;POINTERSTATE.touch.y=t.clientY;POINTERSTATE.touch.scrollDecided=false;}else if(type==='touchmove'){if(POINTERSTATE.touch.scrollDecided){return;}
POINTERSTATE.touch.scrollDecided=true;var ta=firstTouchAction(ev);var prevent=false;var dx=Math.abs(POINTERSTATE.touch.x-t.clientX);var dy=Math.abs(POINTERSTATE.touch.y-t.clientY);if(!ev.cancelable){}else if(ta==='none'){prevent=true;}else if(ta==='pan-x'){prevent=dy>dx;}else if(ta==='pan-y'){prevent=dx>dy;}
if(prevent){ev.preventDefault();}else{Gestures.prevent('track');}}},add:function(node,evType,handler){node=wrap(node);var recognizer=this.gestures[evType];var deps=recognizer.deps;var name=recognizer.name;var gobj=node[GESTURE_KEY];if(!gobj){node[GESTURE_KEY]=gobj={};}
for(var i=0,dep,gd;i<deps.length;i++){dep=deps[i];if(IS_TOUCH_ONLY&&isMouseEvent(dep)&&dep!=='click'){continue;}
gd=gobj[dep];if(!gd){gobj[dep]=gd={_count:0};}
if(gd._count===0){var options=!isMouseEvent(dep)&&PASSIVE_TOUCH();node.addEventListener(dep,this.handleNative,options);}
gd[name]=(gd[name]||0)+1;gd._count=(gd._count||0)+1;}
node.addEventListener(evType,handler);if(recognizer.touchAction){this.setTouchAction(node,recognizer.touchAction);}},remove:function(node,evType,handler){node=wrap(node);var recognizer=this.gestures[evType];var deps=recognizer.deps;var name=recognizer.name;var gobj=node[GESTURE_KEY];if(gobj){for(var i=0,dep,gd;i<deps.length;i++){dep=deps[i];gd=gobj[dep];if(gd&&gd[name]){gd[name]=(gd[name]||1)-1;gd._count=(gd._count||1)-1;if(gd._count===0){var options=!isMouseEvent(dep)&&PASSIVE_TOUCH();node.removeEventListener(dep,this.handleNative,options);}}}}
node.removeEventListener(evType,handler);},register:function(recog){this.recognizers.push(recog);for(var i=0;i<recog.emits.length;i++){this.gestures[recog.emits[i]]=recog;}},findRecognizerByEvent:function(evName){for(var i=0,r;i<this.recognizers.length;i++){r=this.recognizers[i];for(var j=0,n;j<r.emits.length;j++){n=r.emits[j];if(n===evName){return r;}}}
return null;},setTouchAction:function(node,value){if(HAS_NATIVE_TA){node.style.touchAction=value;}
node[TOUCH_ACTION]=value;},fire:function(target,type,detail){var ev=Polymer.Base.fire(type,detail,{node:target,bubbles:true,cancelable:true});if(ev.defaultPrevented){var preventer=detail.preventer||detail.sourceEvent;if(preventer&&preventer.preventDefault){preventer.preventDefault();}}},prevent:function(evName){var recognizer=this.findRecognizerByEvent(evName);if(recognizer.info){recognizer.info.prevent=true;}},resetMouseCanceller:function(){if(POINTERSTATE.mouse.mouseIgnoreJob){POINTERSTATE.mouse.mouseIgnoreJob.complete();}}};Gestures.register({name:'downup',deps:['mousedown','touchstart','touchend'],flow:{start:['mousedown','touchstart'],end:['mouseup','touchend']},emits:['down','up'],info:{movefn:null,upfn:null},reset:function(){untrackDocument(this.info);},mousedown:function(e){if(!hasLeftMouseButton(e)){return;}
var t=Gestures.findOriginalTarget(e);var self=this;var movefn=function movefn(e){if(!hasLeftMouseButton(e)){self.fire('up',t,e);untrackDocument(self.info);}};var upfn=function upfn(e){if(hasLeftMouseButton(e)){self.fire('up',t,e);}
untrackDocument(self.info);};trackDocument(this.info,movefn,upfn);this.fire('down',t,e);},touchstart:function(e){this.fire('down',Gestures.findOriginalTarget(e),e.changedTouches[0],e);},touchend:function(e){this.fire('up',Gestures.findOriginalTarget(e),e.changedTouches[0],e);},fire:function(type,target,event,preventer){Gestures.fire(target,type,{x:event.clientX,y:event.clientY,sourceEvent:event,preventer:preventer,prevent:function(e){return Gestures.prevent(e);}});}});Gestures.register({name:'track',touchAction:'none',deps:['mousedown','touchstart','touchmove','touchend'],flow:{start:['mousedown','touchstart'],end:['mouseup','touchend']},emits:['track'],info:{x:0,y:0,state:'start',started:false,moves:[],addMove:function(move){if(this.moves.length>TRACK_LENGTH){this.moves.shift();}
this.moves.push(move);},movefn:null,upfn:null,prevent:false},reset:function(){this.info.state='start';this.info.started=false;this.info.moves=[];this.info.x=0;this.info.y=0;this.info.prevent=false;untrackDocument(this.info);},hasMovedEnough:function(x,y){if(this.info.prevent){return false;}
if(this.info.started){return true;}
var dx=Math.abs(this.info.x-x);var dy=Math.abs(this.info.y-y);return dx>=TRACK_DISTANCE||dy>=TRACK_DISTANCE;},mousedown:function(e){if(!hasLeftMouseButton(e)){return;}
var t=Gestures.findOriginalTarget(e);var self=this;var movefn=function movefn(e){var x=e.clientX,y=e.clientY;if(self.hasMovedEnough(x,y)){self.info.state=self.info.started?e.type==='mouseup'?'end':'track':'start';if(self.info.state==='start'){Gestures.prevent('tap');}
self.info.addMove({x:x,y:y});if(!hasLeftMouseButton(e)){self.info.state='end';untrackDocument(self.info);}
self.fire(t,e);self.info.started=true;}};var upfn=function upfn(e){if(self.info.started){movefn(e);}
untrackDocument(self.info);};trackDocument(this.info,movefn,upfn);this.info.x=e.clientX;this.info.y=e.clientY;},touchstart:function(e){var ct=e.changedTouches[0];this.info.x=ct.clientX;this.info.y=ct.clientY;},touchmove:function(e){var t=Gestures.findOriginalTarget(e);var ct=e.changedTouches[0];var x=ct.clientX,y=ct.clientY;if(this.hasMovedEnough(x,y)){if(this.info.state==='start'){Gestures.prevent('tap');}
this.info.addMove({x:x,y:y});this.fire(t,ct);this.info.state='track';this.info.started=true;}},touchend:function(e){var t=Gestures.findOriginalTarget(e);var ct=e.changedTouches[0];if(this.info.started){this.info.state='end';this.info.addMove({x:ct.clientX,y:ct.clientY});this.fire(t,ct,e);}},fire:function(target,touch,preventer){var secondlast=this.info.moves[this.info.moves.length-2];var lastmove=this.info.moves[this.info.moves.length-1];var dx=lastmove.x-this.info.x;var dy=lastmove.y-this.info.y;var ddx,ddy=0;if(secondlast){ddx=lastmove.x-secondlast.x;ddy=lastmove.y-secondlast.y;}
return Gestures.fire(target,'track',{state:this.info.state,x:touch.clientX,y:touch.clientY,dx:dx,dy:dy,ddx:ddx,ddy:ddy,sourceEvent:touch,preventer:preventer,hover:function(){return Gestures.deepTargetFind(touch.clientX,touch.clientY);}});}});Gestures.register({name:'tap',deps:['mousedown','click','touchstart','touchend'],flow:{start:['mousedown','touchstart'],end:['click','touchend']},emits:['tap'],info:{x:NaN,y:NaN,prevent:false},reset:function(){this.info.x=NaN;this.info.y=NaN;this.info.prevent=false;},save:function(e){this.info.x=e.clientX;this.info.y=e.clientY;},mousedown:function(e){if(hasLeftMouseButton(e)){this.save(e);}},click:function(e){if(hasLeftMouseButton(e)){this.forward(e);}},touchstart:function(e){this.save(e.changedTouches[0],e);},touchend:function(e){this.forward(e.changedTouches[0],e);},forward:function(e,preventer){var dx=Math.abs(e.clientX-this.info.x);var dy=Math.abs(e.clientY-this.info.y);var t=Gestures.findOriginalTarget(e);if(isNaN(dx)||isNaN(dy)||dx<=TAP_DISTANCE&&dy<=TAP_DISTANCE||isSyntheticClick(e)){if(!this.info.prevent){Gestures.fire(t,'tap',{x:e.clientX,y:e.clientY,sourceEvent:e,preventer:preventer});}}}});var DIRECTION_MAP={x:'pan-x',y:'pan-y',none:'none',all:'auto'};Polymer.Base._addFeature({_setupGestures:function(){this.__polymerGestures=null;},_listen:function(node,eventName,handler){if(Gestures.gestures[eventName]){Gestures.add(node,eventName,handler);}else{node.addEventListener(eventName,handler);}},_unlisten:function(node,eventName,handler){if(Gestures.gestures[eventName]){Gestures.remove(node,eventName,handler);}else{node.removeEventListener(eventName,handler);}},setScrollDirection:function(direction,node){node=node||this;Gestures.setTouchAction(node,DIRECTION_MAP[direction]||'auto');}});Polymer.Gestures=Gestures;}());(function(){'use strict';Polymer.Base._addFeature({$$:function(slctr){return Polymer.dom(this.root).querySelector(slctr);},toggleClass:function(name,bool,node){node=node||this;if(arguments.length==1){bool=!node.classList.contains(name);}
if(bool){Polymer.dom(node).classList.add(name);}else{Polymer.dom(node).classList.remove(name);}},toggleAttribute:function(name,bool,node){node=node||this;if(arguments.length==1){bool=!node.hasAttribute(name);}
if(bool){Polymer.dom(node).setAttribute(name,'');}else{Polymer.dom(node).removeAttribute(name);}},classFollows:function(name,toElement,fromElement){if(fromElement){Polymer.dom(fromElement).classList.remove(name);}
if(toElement){Polymer.dom(toElement).classList.add(name);}},attributeFollows:function(name,toElement,fromElement){if(fromElement){Polymer.dom(fromElement).removeAttribute(name);}
if(toElement){Polymer.dom(toElement).setAttribute(name,'');}},getEffectiveChildNodes:function(){return Polymer.dom(this).getEffectiveChildNodes();},getEffectiveChildren:function(){var list=Polymer.dom(this).getEffectiveChildNodes();return list.filter(function(n){return n.nodeType===Node.ELEMENT_NODE;});},getEffectiveTextContent:function(){var cn=this.getEffectiveChildNodes();var tc=[];for(var i=0,c;c=cn[i];i++){if(c.nodeType!==Node.COMMENT_NODE){tc.push(Polymer.dom(c).textContent);}}
return tc.join('');},queryEffectiveChildren:function(slctr){var e$=Polymer.dom(this).queryDistributedElements(slctr);return e$&&e$[0];},queryAllEffectiveChildren:function(slctr){return Polymer.dom(this).queryDistributedElements(slctr);},getContentChildNodes:function(slctr){var content=Polymer.dom(this.root).querySelector(slctr||'content');return content?Polymer.dom(content).getDistributedNodes():[];},getContentChildren:function(slctr){return this.getContentChildNodes(slctr).filter(function(n){return n.nodeType===Node.ELEMENT_NODE;});},fire:function(type,detail,options){options=options||Polymer.nob;var node=options.node||this;detail=detail===null||detail===undefined?{}:detail;var bubbles=options.bubbles===undefined?true:options.bubbles;var cancelable=Boolean(options.cancelable);var useCache=options._useCache;var event=this._getEvent(type,bubbles,cancelable,useCache);event.detail=detail;if(useCache){this.__eventCache[type]=null;}
node.dispatchEvent(event);if(useCache){this.__eventCache[type]=event;}
return event;},__eventCache:{},_getEvent:function(type,bubbles,cancelable,useCache){var event=useCache&&this.__eventCache[type];if(!event||(event.bubbles!=bubbles||event.cancelable!=cancelable)){event=new Event(type,{bubbles:Boolean(bubbles),cancelable:cancelable});}
return event;},async:function(callback,waitTime){var self=this;return Polymer.Async.run(function(){callback.call(self);},waitTime);},cancelAsync:function(handle){Polymer.Async.cancel(handle);},arrayDelete:function(path,item){var index;if(Array.isArray(path)){index=path.indexOf(item);if(index>=0){return path.splice(index,1);}}else{var arr=this._get(path);index=arr.indexOf(item);if(index>=0){return this.splice(path,index,1);}}},transform:function(transform,node){node=node||this;node.style.webkitTransform=transform;node.style.transform=transform;},translate3d:function(x,y,z,node){node=node||this;this.transform('translate3d('+x+','+y+','+z+')',node);},importHref:function(href,onload,onerror,optAsync){var link=document.createElement('link');link.rel='import';link.href=href;var list=Polymer.Base.importHref.imported=Polymer.Base.importHref.imported||{};var cached=list[link.href];var imprt=cached||link;var self=this;var loadListener=function(e){e.target.__firedLoad=true;e.target.removeEventListener('load',loadListener);e.target.removeEventListener('error',errorListener);return onload.call(self,e);};var errorListener=function(e){e.target.__firedError=true;e.target.removeEventListener('load',loadListener);e.target.removeEventListener('error',errorListener);return onerror.call(self,e);};if(onload){imprt.addEventListener('load',loadListener);}
if(onerror){imprt.addEventListener('error',errorListener);}
if(cached){if(cached.__firedLoad){cached.dispatchEvent(new Event('load'));}
if(cached.__firedError){cached.dispatchEvent(new Event('error'));}}else{list[link.href]=link;optAsync=Boolean(optAsync);if(optAsync){link.setAttribute('async','');}
document.head.appendChild(link);}
return imprt;},create:function(tag,props){var elt=document.createElement(tag);if(props){for(var n in props){elt[n]=props[n];}}
return elt;},isLightDescendant:function(node){return this!==node&&this.contains(node)&&Polymer.dom(this).getOwnerRoot()===Polymer.dom(node).getOwnerRoot();},isLocalDescendant:function(node){return this.root===Polymer.dom(node).getOwnerRoot();}});if(!Polymer.Settings.useNativeCustomElements){var importHref=Polymer.Base.importHref;Polymer.Base.importHref=function(href,onload,onerror,optAsync){CustomElements.ready=false;var loadFn=function(e){CustomElements.upgradeDocumentTree(document);CustomElements.ready=true;if(onload){return onload.call(this,e);}};return importHref.call(this,href,loadFn,onerror,optAsync);};}}());Polymer.Bind={prepareModel:function(model){Polymer.Base.mixin(model,this._modelApi);},_modelApi:{_notifyChange:function(source,event,value){value=value===undefined?this[source]:value;event=event||Polymer.CaseMap.camelToDashCase(source)+'-changed';this.fire(event,{value:value},{bubbles:false,cancelable:false,_useCache:Polymer.Settings.eventDataCache||!Polymer.Settings.isIE});},_propertySetter:function(property,value,effects,fromAbove){var old=this.__data__[property];if(old!==value&&(old===old||value===value)){this.__data__[property]=value;if(typeof value=='object'){this._clearPath(property);}
if(this._propertyChanged){this._propertyChanged(property,value,old);}
if(effects){this._effectEffects(property,value,effects,old,fromAbove);}}
return old;},__setProperty:function(property,value,quiet,node){node=node||this;var effects=node._propertyEffects&&node._propertyEffects[property];if(effects){node._propertySetter(property,value,effects,quiet);}else if(node[property]!==value){node[property]=value;}},_effectEffects:function(property,value,effects,old,fromAbove){for(var i=0,l=effects.length,fx;i<l&&(fx=effects[i]);i++){fx.fn.call(this,property,this[property],fx.effect,old,fromAbove);}},_clearPath:function(path){for(var prop in this.__data__){if(Polymer.Path.isDescendant(path,prop)){this.__data__[prop]=undefined;}}}},ensurePropertyEffects:function(model,property){if(!model._propertyEffects){model._propertyEffects={};}
var fx=model._propertyEffects[property];if(!fx){fx=model._propertyEffects[property]=[];}
return fx;},addPropertyEffect:function(model,property,kind,effect){var fx=this.ensurePropertyEffects(model,property);var propEffect={kind:kind,effect:effect,fn:Polymer.Bind['_'+kind+'Effect']};fx.push(propEffect);return propEffect;},createBindings:function(model){var fx$=model._propertyEffects;if(fx$){for(var n in fx$){var fx=fx$[n];fx.sort(this._sortPropertyEffects);this._createAccessors(model,n,fx);}}},_sortPropertyEffects:function(){var EFFECT_ORDER={'compute':0,'annotation':1,'annotatedComputation':2,'reflect':3,'notify':4,'observer':5,'complexObserver':6,'function':7};return function(a,b){return EFFECT_ORDER[a.kind]-EFFECT_ORDER[b.kind];};}(),_createAccessors:function(model,property,effects){var defun={get:function(){return this.__data__[property];}};var setter=function(value){this._propertySetter(property,value,effects);};var info=model.getPropertyInfo&&model.getPropertyInfo(property);if(info&&info.readOnly){if(!info.computed){model['_set'+this.upper(property)]=setter;}}else{defun.set=setter;}
Object.defineProperty(model,property,defun);},upper:function(name){return name[0].toUpperCase()+name.substring(1);},_addAnnotatedListener:function(model,index,property,path,event,negated){if(!model._bindListeners){model._bindListeners=[];}
var fn=this._notedListenerFactory(property,path,Polymer.Path.isDeep(path),negated);var eventName=event||Polymer.CaseMap.camelToDashCase(property)+'-changed';model._bindListeners.push({index:index,property:property,path:path,changedFn:fn,event:eventName});},_isEventBogus:function(e,target){return e.path&&e.path[0]!==target;},_notedListenerFactory:function(property,path,isStructured,negated){return function(target,value,targetPath){if(targetPath){var newPath=Polymer.Path.translate(property,path,targetPath);this._notifyPath(newPath,value);}else{value=target[property];if(negated){value=!value;}
if(!isStructured){this[path]=value;}else{if(this.__data__[path]!=value){this.set(path,value);}}}};},prepareInstance:function(inst){inst.__data__=Object.create(null);},setupBindListeners:function(inst){var b$=inst._bindListeners;for(var i=0,l=b$.length,info;i<l&&(info=b$[i]);i++){var node=inst._nodes[info.index];this._addNotifyListener(node,inst,info.event,info.changedFn);}},_addNotifyListener:function(element,context,event,changedFn){element.addEventListener(event,function(e){return context._notifyListener(changedFn,e);});}};Polymer.Base.mixin(Polymer.Bind,{_shouldAddListener:function(effect){return effect.name&&effect.kind!='attribute'&&effect.kind!='text'&&!effect.isCompound&&effect.parts[0].mode==='{';},_annotationEffect:function(source,value,effect){if(source!=effect.value){value=this._get(effect.value);this.__data__[effect.value]=value;}
this._applyEffectValue(effect,value);},_reflectEffect:function(source,value,effect){this.reflectPropertyToAttribute(source,effect.attribute,value);},_notifyEffect:function(source,value,effect,old,fromAbove){if(!fromAbove){this._notifyChange(source,effect.event,value);}},_functionEffect:function(source,value,fn,old,fromAbove){fn.call(this,source,value,old,fromAbove);},_observerEffect:function(source,value,effect,old){var fn=this[effect.method];if(fn){fn.call(this,value,old);}else{this._warn(this._logf('_observerEffect','observer method `'+effect.method+'` not defined'));}},_complexObserverEffect:function(source,value,effect){var fn=this[effect.method];if(fn){var args=Polymer.Bind._marshalArgs(this.__data__,effect,source,value);if(args){fn.apply(this,args);}}else if(effect.dynamicFn){}else{this._warn(this._logf('_complexObserverEffect','observer method `'+effect.method+'` not defined'));}},_computeEffect:function(source,value,effect){var fn=this[effect.method];if(fn){var args=Polymer.Bind._marshalArgs(this.__data__,effect,source,value);if(args){var computedvalue=fn.apply(this,args);this.__setProperty(effect.name,computedvalue);}}else if(effect.dynamicFn){}else{this._warn(this._logf('_computeEffect','compute method `'+effect.method+'` not defined'));}},_annotatedComputationEffect:function(source,value,effect){var computedHost=this._rootDataHost||this;var fn=computedHost[effect.method];if(fn){var args=Polymer.Bind._marshalArgs(this.__data__,effect,source,value);if(args){var computedvalue=fn.apply(computedHost,args);this._applyEffectValue(effect,computedvalue);}}else if(effect.dynamicFn){}else{computedHost._warn(computedHost._logf('_annotatedComputationEffect','compute method `'+effect.method+'` not defined'));}},_marshalArgs:function(model,effect,path,value){var values=[];var args=effect.args;var bailoutEarly=args.length>1||effect.dynamicFn;for(var i=0,l=args.length;i<l;i++){var arg=args[i];var name=arg.name;var v;if(arg.literal){v=arg.value;}else if(path===name){v=value;}else{v=model[name];if(v===undefined&&arg.structured){v=Polymer.Base._get(name,model);}}
if(bailoutEarly&&v===undefined){return;}
if(arg.wildcard){var matches=Polymer.Path.isAncestor(path,name);values[i]={path:matches?path:name,value:matches?value:v,base:v};}else{values[i]=v;}}
return values;}});Polymer.Base._addFeature({_addPropertyEffect:function(property,kind,effect){var prop=Polymer.Bind.addPropertyEffect(this,property,kind,effect);prop.pathFn=this['_'+prop.kind+'PathEffect'];},_prepEffects:function(){Polymer.Bind.prepareModel(this);this._addAnnotationEffects(this._notes);},_prepBindings:function(){Polymer.Bind.createBindings(this);},_addPropertyEffects:function(properties){if(properties){for(var p in properties){var prop=properties[p];if(prop.observer){this._addObserverEffect(p,prop.observer);}
if(prop.computed){prop.readOnly=true;this._addComputedEffect(p,prop.computed);}
if(prop.notify){this._addPropertyEffect(p,'notify',{event:Polymer.CaseMap.camelToDashCase(p)+'-changed'});}
if(prop.reflectToAttribute){var attr=Polymer.CaseMap.camelToDashCase(p);if(attr[0]==='-'){this._warn(this._logf('_addPropertyEffects','Property '+p+' cannot be reflected to attribute '+attr+' because "-" is not a valid starting attribute name. Use a lowercase first letter for the property instead.'));}else{this._addPropertyEffect(p,'reflect',{attribute:attr});}}
if(prop.readOnly){Polymer.Bind.ensurePropertyEffects(this,p);}}}},_addComputedEffect:function(name,expression){var sig=this._parseMethod(expression);var dynamicFn=sig.dynamicFn;for(var i=0,arg;i<sig.args.length&&(arg=sig.args[i]);i++){this._addPropertyEffect(arg.model,'compute',{method:sig.method,args:sig.args,trigger:arg,name:name,dynamicFn:dynamicFn});}
if(dynamicFn){this._addPropertyEffect(sig.method,'compute',{method:sig.method,args:sig.args,trigger:null,name:name,dynamicFn:dynamicFn});}},_addObserverEffect:function(property,observer){this._addPropertyEffect(property,'observer',{method:observer,property:property});},_addComplexObserverEffects:function(observers){if(observers){for(var i=0,o;i<observers.length&&(o=observers[i]);i++){this._addComplexObserverEffect(o);}}},_addComplexObserverEffect:function(observer){var sig=this._parseMethod(observer);if(!sig){throw new Error('Malformed observer expression \''+observer+'\'');}
var dynamicFn=sig.dynamicFn;for(var i=0,arg;i<sig.args.length&&(arg=sig.args[i]);i++){this._addPropertyEffect(arg.model,'complexObserver',{method:sig.method,args:sig.args,trigger:arg,dynamicFn:dynamicFn});}
if(dynamicFn){this._addPropertyEffect(sig.method,'complexObserver',{method:sig.method,args:sig.args,trigger:null,dynamicFn:dynamicFn});}},_addAnnotationEffects:function(notes){for(var i=0,note;i<notes.length&&(note=notes[i]);i++){var b$=note.bindings;for(var j=0,binding;j<b$.length&&(binding=b$[j]);j++){this._addAnnotationEffect(binding,i);}}},_addAnnotationEffect:function(note,index){if(Polymer.Bind._shouldAddListener(note)){Polymer.Bind._addAnnotatedListener(this,index,note.name,note.parts[0].value,note.parts[0].event,note.parts[0].negate);}
for(var i=0;i<note.parts.length;i++){var part=note.parts[i];if(part.signature){this._addAnnotatedComputationEffect(note,part,index);}else if(!part.literal){if(note.kind==='attribute'&¬e.name[0]==='-'){this._warn(this._logf('_addAnnotationEffect','Cannot set attribute '+note.name+' because "-" is not a valid attribute starting character'));}else{this._addPropertyEffect(part.model,'annotation',{kind:note.kind,index:index,name:note.name,propertyName:note.propertyName,value:part.value,isCompound:note.isCompound,compoundIndex:part.compoundIndex,event:part.event,customEvent:part.customEvent,negate:part.negate});}}}},_addAnnotatedComputationEffect:function(note,part,index){var sig=part.signature;if(sig.static){this.__addAnnotatedComputationEffect('__static__',index,note,part,null);}else{for(var i=0,arg;i<sig.args.length&&(arg=sig.args[i]);i++){if(!arg.literal){this.__addAnnotatedComputationEffect(arg.model,index,note,part,arg);}}
if(sig.dynamicFn){this.__addAnnotatedComputationEffect(sig.method,index,note,part,null);}}},__addAnnotatedComputationEffect:function(property,index,note,part,trigger){this._addPropertyEffect(property,'annotatedComputation',{index:index,isCompound:note.isCompound,compoundIndex:part.compoundIndex,kind:note.kind,name:note.name,negate:part.negate,method:part.signature.method,args:part.signature.args,trigger:trigger,dynamicFn:part.signature.dynamicFn});},_parseMethod:function(expression){var m=expression.match(/([^\s]+?)\(([\s\S]*)\)/);if(m){var sig={method:m[1],static:true};if(this.getPropertyInfo(sig.method)!==Polymer.nob){sig.static=false;sig.dynamicFn=true;}
if(m[2].trim()){var args=m[2].replace(/\\,/g,',').split(',');return this._parseArgs(args,sig);}else{sig.args=Polymer.nar;return sig;}}},_parseArgs:function(argList,sig){sig.args=argList.map(function(rawArg){var arg=this._parseArg(rawArg);if(!arg.literal){sig.static=false;}
return arg;},this);return sig;},_parseArg:function(rawArg){var arg=rawArg.trim().replace(/,/g,',').replace(/\\(.)/g,'$1');var a={name:arg};var fc=arg[0];if(fc==='-'){fc=arg[1];}
if(fc>='0'&&fc<='9'){fc='#';}
switch(fc){case'\'':case'"':a.value=arg.slice(1,-1);a.literal=true;break;case'#':a.value=Number(arg);a.literal=true;break;}
if(!a.literal){a.model=Polymer.Path.root(arg);a.structured=Polymer.Path.isDeep(arg);if(a.structured){a.wildcard=arg.slice(-2)=='.*';if(a.wildcard){a.name=arg.slice(0,-2);}}}
return a;},_marshalInstanceEffects:function(){Polymer.Bind.prepareInstance(this);if(this._bindListeners){Polymer.Bind.setupBindListeners(this);}},_applyEffectValue:function(info,value){var node=this._nodes[info.index];var property=info.name;value=this._computeFinalAnnotationValue(node,property,value,info);if(info.kind=='attribute'){this.serializeValueToAttribute(value,property,node);}else{var pinfo=node._propertyInfo&&node._propertyInfo[property];if(pinfo&&pinfo.readOnly){return;}
this.__setProperty(property,value,Polymer.Settings.suppressBindingNotifications,node);}},_computeFinalAnnotationValue:function(node,property,value,info){if(info.negate){value=!value;}
if(info.isCompound){var storage=node.__compoundStorage__[property];storage[info.compoundIndex]=value;value=storage.join('');}
if(info.kind!=='attribute'){if(property==='className'){value=this._scopeElementClass(node,value);}
if(property==='textContent'||node.localName=='input'&&property=='value'){value=value==undefined?'':value;}}
return value;},_executeStaticEffects:function(){if(this._propertyEffects&&this._propertyEffects.__static__){this._effectEffects('__static__',null,this._propertyEffects.__static__);}}});(function(){var usePolyfillProto=Polymer.Settings.usePolyfillProto;var avoidInstanceProperties=Boolean(Object.getOwnPropertyDescriptor(document.documentElement,'properties'));Polymer.Base._addFeature({_setupConfigure:function(initialConfig){this._config={};this._handlers=[];this._aboveConfig=null;if(initialConfig){for(var i in initialConfig){if(initialConfig[i]!==undefined){this._config[i]=initialConfig[i];}}}},_marshalAttributes:function(){this._takeAttributesToModel(this._config);},_attributeChangedImpl:function(name){var model=this._clientsReadied?this:this._config;this._setAttributeToProperty(model,name);},_configValue:function(name,value){var info=this._propertyInfo[name];if(!info||!info.readOnly){this._config[name]=value;}},_beforeClientsReady:function(){this._configure();},_configure:function(){this._configureAnnotationReferences();this._configureInstanceProperties();this._aboveConfig=this.mixin({},this._config);var config={};for(var i=0;i<this.behaviors.length;i++){this._configureProperties(this.behaviors[i].properties,config);}
this._configureProperties(avoidInstanceProperties?this.__proto__.properties:this.properties,config);this.mixin(config,this._aboveConfig);this._config=config;if(this._clients&&this._clients.length){this._distributeConfig(this._config);}},_configureInstanceProperties:function(){for(var i in this._propertyEffects){if(!usePolyfillProto&&this.hasOwnProperty(i)){this._configValue(i,this[i]);delete this[i];}}},_configureProperties:function(properties,config){for(var i in properties){var c=properties[i];if(c.value!==undefined){var value=c.value;if(typeof value=='function'){value=value.call(this,this._config);}
config[i]=value;}}},_distributeConfig:function(config){var fx$=this._propertyEffects;if(fx$){for(var p in config){var fx=fx$[p];if(fx){for(var i=0,l=fx.length,x;i<l&&(x=fx[i]);i++){if(x.kind==='annotation'){var node=this._nodes[x.effect.index];var name=x.effect.propertyName;var isAttr=x.effect.kind=='attribute';var hasEffect=node._propertyEffects&&node._propertyEffects[name];if(node._configValue&&(hasEffect||!isAttr)){var value=p===x.effect.value?config[p]:this._get(x.effect.value,config);value=this._computeFinalAnnotationValue(node,name,value,x.effect);if(isAttr){value=node.deserialize(this.serialize(value),node._propertyInfo[name].type);}
node._configValue(name,value);}}}}}}},_afterClientsReady:function(){this.importPath=this._importPath;this.rootPath=Polymer.rootPath;this._executeStaticEffects();this._applyConfig(this._config,this._aboveConfig);this._flushHandlers();},_applyConfig:function(config,aboveConfig){for(var n in config){if(this[n]===undefined){this.__setProperty(n,config[n],n in aboveConfig);}}},_notifyListener:function(fn,e){if(!Polymer.Bind._isEventBogus(e,e.target)){var value,path;if(e.detail){value=e.detail.value;path=e.detail.path;}
if(!this._clientsReadied){this._queueHandler([fn,e.target,value,path]);}else{return fn.call(this,e.target,value,path);}}},_queueHandler:function(args){this._handlers.push(args);},_flushHandlers:function(){var h$=this._handlers;for(var i=0,l=h$.length,h;i<l&&(h=h$[i]);i++){h[0].call(this,h[1],h[2],h[3]);}
this._handlers=[];}});}());(function(){'use strict';var Path=Polymer.Path;Polymer.Base._addFeature({notifyPath:function(path,value,fromAbove){var info={};var v=this._get(path,this,info);if(arguments.length===1){value=v;}
if(info.path){this._notifyPath(info.path,value,fromAbove);}},_notifyPath:function(path,value,fromAbove){var old=this._propertySetter(path,value);if(old!==value&&(old===old||value===value)){this._pathEffector(path,value);if(!fromAbove){this._notifyPathUp(path,value);}
return true;}},_getPathParts:function(path){if(Array.isArray(path)){var parts=[];for(var i=0;i<path.length;i++){var args=path[i].toString().split('.');for(var j=0;j<args.length;j++){parts.push(args[j]);}}
return parts;}else{return path.toString().split('.');}},set:function(path,value,root){var prop=root||this;var parts=this._getPathParts(path);var array;var last=parts[parts.length-1];if(parts.length>1){for(var i=0;i<parts.length-1;i++){var part=parts[i];if(array&&part[0]=='#'){prop=Polymer.Collection.get(array).getItem(part);}else{prop=prop[part];if(array&&parseInt(part,10)==part){parts[i]=Polymer.Collection.get(array).getKey(prop);}}
if(!prop){return;}
array=Array.isArray(prop)?prop:null;}
if(array){var coll=Polymer.Collection.get(array);var old,key;if(last[0]=='#'){key=last;old=coll.getItem(key);last=array.indexOf(old);coll.setItem(key,value);}else if(parseInt(last,10)==last){old=prop[last];key=coll.getKey(old);parts[i]=key;coll.setItem(key,value);}}
prop[last]=value;if(!root){this._notifyPath(parts.join('.'),value);}}else{prop[path]=value;}},get:function(path,root){return this._get(path,root);},_get:function(path,root,info){var prop=root||this;var parts=this._getPathParts(path);var array;for(var i=0;i<parts.length;i++){if(!prop){return;}
var part=parts[i];if(array&&part[0]=='#'){prop=Polymer.Collection.get(array).getItem(part);}else{prop=prop[part];if(info&&array&&parseInt(part,10)==part){parts[i]=Polymer.Collection.get(array).getKey(prop);}}
array=Array.isArray(prop)?prop:null;}
if(info){info.path=parts.join('.');}
return prop;},_pathEffector:function(path,value){var model=Path.root(path);var fx$=this._propertyEffects&&this._propertyEffects[model];if(fx$){for(var i=0,fx;i<fx$.length&&(fx=fx$[i]);i++){var fxFn=fx.pathFn;if(fxFn){fxFn.call(this,path,value,fx.effect);}}}
if(this._boundPaths){this._notifyBoundPaths(path,value);}},_annotationPathEffect:function(path,value,effect){if(Path.matches(effect.value,false,path)){Polymer.Bind._annotationEffect.call(this,path,value,effect);}else if(!effect.negate&&Path.isDescendant(effect.value,path)){var node=this._nodes[effect.index];if(node&&node._notifyPath){var newPath=Path.translate(effect.value,effect.name,path);node._notifyPath(newPath,value,true);}}},_complexObserverPathEffect:function(path,value,effect){if(Path.matches(effect.trigger.name,effect.trigger.wildcard,path)){Polymer.Bind._complexObserverEffect.call(this,path,value,effect);}},_computePathEffect:function(path,value,effect){if(Path.matches(effect.trigger.name,effect.trigger.wildcard,path)){Polymer.Bind._computeEffect.call(this,path,value,effect);}},_annotatedComputationPathEffect:function(path,value,effect){if(Path.matches(effect.trigger.name,effect.trigger.wildcard,path)){Polymer.Bind._annotatedComputationEffect.call(this,path,value,effect);}},linkPaths:function(to,from){this._boundPaths=this._boundPaths||{};if(from){this._boundPaths[to]=from;}else{this.unlinkPaths(to);}},unlinkPaths:function(path){if(this._boundPaths){delete this._boundPaths[path];}},_notifyBoundPaths:function(path,value){for(var a in this._boundPaths){var b=this._boundPaths[a];if(Path.isDescendant(a,path)){this._notifyPath(Path.translate(a,b,path),value);}else if(Path.isDescendant(b,path)){this._notifyPath(Path.translate(b,a,path),value);}}},_notifyPathUp:function(path,value){var rootName=Path.root(path);var dashCaseName=Polymer.CaseMap.camelToDashCase(rootName);var eventName=dashCaseName+this._EVENT_CHANGED;this.fire(eventName,{path:path,value:value},{bubbles:false,_useCache:Polymer.Settings.eventDataCache||!Polymer.Settings.isIE});},_EVENT_CHANGED:'-changed',notifySplices:function(path,splices){var info={};var array=this._get(path,this,info);this._notifySplices(array,info.path,splices);},_notifySplices:function(array,path,splices){var change={keySplices:Polymer.Collection.applySplices(array,splices),indexSplices:splices};var splicesPath=path+'.splices';this._notifyPath(splicesPath,change);this._notifyPath(path+'.length',array.length);this.__data__[splicesPath]={keySplices:null,indexSplices:null};},_notifySplice:function(array,path,index,added,removed){this._notifySplices(array,path,[{index:index,addedCount:added,removed:removed,object:array,type:'splice'}]);},push:function(path){var info={};var array=this._get(path,this,info);var args=Array.prototype.slice.call(arguments,1);var len=array.length;var ret=array.push.apply(array,args);if(args.length){this._notifySplice(array,info.path,len,args.length,[]);}
return ret;},pop:function(path){var info={};var array=this._get(path,this,info);var hadLength=Boolean(array.length);var args=Array.prototype.slice.call(arguments,1);var ret=array.pop.apply(array,args);if(hadLength){this._notifySplice(array,info.path,array.length,0,[ret]);}
return ret;},splice:function(path,start){var info={};var array=this._get(path,this,info);if(start<0){start=array.length-Math.floor(-start);}else{start=Math.floor(start);}
if(!start){start=0;}
var args=Array.prototype.slice.call(arguments,1);var ret=array.splice.apply(array,args);var addedCount=Math.max(args.length-2,0);if(addedCount||ret.length){this._notifySplice(array,info.path,start,addedCount,ret);}
return ret;},shift:function(path){var info={};var array=this._get(path,this,info);var hadLength=Boolean(array.length);var args=Array.prototype.slice.call(arguments,1);var ret=array.shift.apply(array,args);if(hadLength){this._notifySplice(array,info.path,0,0,[ret]);}
return ret;},unshift:function(path){var info={};var array=this._get(path,this,info);var args=Array.prototype.slice.call(arguments,1);var ret=array.unshift.apply(array,args);if(args.length){this._notifySplice(array,info.path,0,args.length,[]);}
return ret;},prepareModelNotifyPath:function(model){this.mixin(model,{fire:Polymer.Base.fire,_getEvent:Polymer.Base._getEvent,__eventCache:Polymer.Base.__eventCache,notifyPath:Polymer.Base.notifyPath,_get:Polymer.Base._get,_EVENT_CHANGED:Polymer.Base._EVENT_CHANGED,_notifyPath:Polymer.Base._notifyPath,_notifyPathUp:Polymer.Base._notifyPathUp,_pathEffector:Polymer.Base._pathEffector,_annotationPathEffect:Polymer.Base._annotationPathEffect,_complexObserverPathEffect:Polymer.Base._complexObserverPathEffect,_annotatedComputationPathEffect:Polymer.Base._annotatedComputationPathEffect,_computePathEffect:Polymer.Base._computePathEffect,_notifyBoundPaths:Polymer.Base._notifyBoundPaths,_getPathParts:Polymer.Base._getPathParts});}});}());Polymer.Base._addFeature({resolveUrl:function(url){return Polymer.ResolveUrl.resolveUrl(url,this._importPath);}});Polymer.CssParse=function(){return{parse:function(text){text=this._clean(text);return this._parseCss(this._lex(text),text);},_clean:function(cssText){return cssText.replace(this._rx.comments,'').replace(this._rx.port,'');},_lex:function(text){var root={start:0,end:text.length};var n=root;for(var i=0,l=text.length;i<l;i++){switch(text[i]){case this.OPEN_BRACE:if(!n.rules){n.rules=[];}
var p=n;var previous=p.rules[p.rules.length-1];n={start:i+1,parent:p,previous:previous};p.rules.push(n);break;case this.CLOSE_BRACE:n.end=i+1;n=n.parent||root;break;}}
return root;},_parseCss:function(node,text){var t=text.substring(node.start,node.end-1);node.parsedCssText=node.cssText=t.trim();if(node.parent){var ss=node.previous?node.previous.end:node.parent.start;t=text.substring(ss,node.start-1);t=this._expandUnicodeEscapes(t);t=t.replace(this._rx.multipleSpaces,' ');t=t.substring(t.lastIndexOf(';')+1);var s=node.parsedSelector=node.selector=t.trim();node.atRule=s.indexOf(this.AT_START)===0;if(node.atRule){if(s.indexOf(this.MEDIA_START)===0){node.type=this.types.MEDIA_RULE;}else if(s.match(this._rx.keyframesRule)){node.type=this.types.KEYFRAMES_RULE;node.keyframesName=node.selector.split(this._rx.multipleSpaces).pop();}}else{if(s.indexOf(this.VAR_START)===0){node.type=this.types.MIXIN_RULE;}else{node.type=this.types.STYLE_RULE;}}}
var r$=node.rules;if(r$){for(var i=0,l=r$.length,r;i<l&&(r=r$[i]);i++){this._parseCss(r,text);}}
return node;},_expandUnicodeEscapes:function(s){return s.replace(/\\([0-9a-f]{1,6})\s/gi,function(){var code=arguments[1],repeat=6-code.length;while(repeat--){code='0'+code;}
return'\\'+code;});},stringify:function(node,preserveProperties,text){text=text||'';var cssText='';if(node.cssText||node.rules){var r$=node.rules;if(r$&&!this._hasMixinRules(r$)){for(var i=0,l=r$.length,r;i<l&&(r=r$[i]);i++){cssText=this.stringify(r,preserveProperties,cssText);}}else{cssText=preserveProperties?node.cssText:this.removeCustomProps(node.cssText);cssText=cssText.trim();if(cssText){cssText=' '+cssText+'\n';}}}
if(cssText){if(node.selector){text+=node.selector+' '+this.OPEN_BRACE+'\n';}
text+=cssText;if(node.selector){text+=this.CLOSE_BRACE+'\n\n';}}
return text;},_hasMixinRules:function(rules){return rules[0].selector.indexOf(this.VAR_START)===0;},removeCustomProps:function(cssText){cssText=this.removeCustomPropAssignment(cssText);return this.removeCustomPropApply(cssText);},removeCustomPropAssignment:function(cssText){return cssText.replace(this._rx.customProp,'').replace(this._rx.mixinProp,'');},removeCustomPropApply:function(cssText){return cssText.replace(this._rx.mixinApply,'').replace(this._rx.varApply,'');},types:{STYLE_RULE:1,KEYFRAMES_RULE:7,MEDIA_RULE:4,MIXIN_RULE:1000},OPEN_BRACE:'{',CLOSE_BRACE:'}',_rx:{comments:/\/\*[^*]*\*+([^\/*][^*]*\*+)*\//gim,port:/@import[^;]*;/gim,customProp:/(?:^[^;\-\s}]+)?--[^;{}]*?:[^{};]*?(?:[;\n]|$)/gim,mixinProp:/(?:^[^;\-\s}]+)?--[^;{}]*?:[^{};]*?{[^}]*?}(?:[;\n]|$)?/gim,mixinApply:/@apply\s*\(?[^);]*\)?\s*(?:[;\n]|$)?/gim,varApply:/[^;:]*?:[^;]*?var\([^;]*\)(?:[;\n]|$)?/gim,keyframesRule:/^@[^\s]*keyframes/,multipleSpaces:/\s+/g},VAR_START:'--',MEDIA_START:'@media',AT_START:'@'};}();Polymer.StyleUtil=function(){var settings=Polymer.Settings;return{NATIVE_VARIABLES:Polymer.Settings.useNativeCSSProperties,MODULE_STYLES_SELECTOR:'style, link[rel=import][type~=css], template',INCLUDE_ATTR:'include',toCssText:function(rules,callback){if(typeof rules==='string'){rules=this.parser.parse(rules);}
if(callback){this.forEachRule(rules,callback);}
return this.parser.stringify(rules,this.NATIVE_VARIABLES);},forRulesInStyles:function(styles,styleRuleCallback,keyframesRuleCallback){if(styles){for(var i=0,l=styles.length,s;i<l&&(s=styles[i]);i++){this.forEachRuleInStyle(s,styleRuleCallback,keyframesRuleCallback);}}},forActiveRulesInStyles:function(styles,styleRuleCallback,keyframesRuleCallback){if(styles){for(var i=0,l=styles.length,s;i<l&&(s=styles[i]);i++){this.forEachRuleInStyle(s,styleRuleCallback,keyframesRuleCallback,true);}}},rulesForStyle:function(style){if(!style.__cssRules&&style.textContent){style.__cssRules=this.parser.parse(style.textContent);}
return style.__cssRules;},isKeyframesSelector:function(rule){return rule.parent&&rule.parent.type===this.ruleTypes.KEYFRAMES_RULE;},forEachRuleInStyle:function(style,styleRuleCallback,keyframesRuleCallback,onlyActiveRules){var rules=this.rulesForStyle(style);var styleCallback,keyframeCallback;if(styleRuleCallback){styleCallback=function(rule){styleRuleCallback(rule,style);};}
if(keyframesRuleCallback){keyframeCallback=function(rule){keyframesRuleCallback(rule,style);};}
this.forEachRule(rules,styleCallback,keyframeCallback,onlyActiveRules);},forEachRule:function(node,styleRuleCallback,keyframesRuleCallback,onlyActiveRules){if(!node){return;}
var skipRules=false;if(onlyActiveRules){if(node.type===this.ruleTypes.MEDIA_RULE){var matchMedia=node.selector.match(this.rx.MEDIA_MATCH);if(matchMedia){if(!window.matchMedia(matchMedia[1]).matches){skipRules=true;}}}}
if(node.type===this.ruleTypes.STYLE_RULE){styleRuleCallback(node);}else if(keyframesRuleCallback&&node.type===this.ruleTypes.KEYFRAMES_RULE){keyframesRuleCallback(node);}else if(node.type===this.ruleTypes.MIXIN_RULE){skipRules=true;}
var r$=node.rules;if(r$&&!skipRules){for(var i=0,l=r$.length,r;i<l&&(r=r$[i]);i++){this.forEachRule(r,styleRuleCallback,keyframesRuleCallback,onlyActiveRules);}}},applyCss:function(cssText,moniker,target,contextNode){var style=this.createScopeStyle(cssText,moniker);return this.applyStyle(style,target,contextNode);},applyStyle:function(style,target,contextNode){target=target||document.head;var after=contextNode&&contextNode.nextSibling||target.firstChild;this.__lastHeadApplyNode=style;return target.insertBefore(style,after);},createScopeStyle:function(cssText,moniker){var style=document.createElement('style');if(moniker){style.setAttribute('scope',moniker);}
style.textContent=cssText;return style;},__lastHeadApplyNode:null,applyStylePlaceHolder:function(moniker){var placeHolder=document.createComment(' Shady DOM styles for '+moniker+' ');var after=this.__lastHeadApplyNode?this.__lastHeadApplyNode.nextSibling:null;var scope=document.head;scope.insertBefore(placeHolder,after||scope.firstChild);this.__lastHeadApplyNode=placeHolder;return placeHolder;},cssFromModules:function(moduleIds,warnIfNotFound){var modules=moduleIds.trim().split(' ');var cssText='';for(var i=0;i<modules.length;i++){cssText+=this.cssFromModule(modules[i],warnIfNotFound);}
return cssText;},cssFromModule:function(moduleId,warnIfNotFound){var m=Polymer.DomModule.import(moduleId);if(m&&!m._cssText){m._cssText=this.cssFromElement(m);}
if(!m&&warnIfNotFound){console.warn('Could not find style data in module named',moduleId);}
return m&&m._cssText||'';},cssFromElement:function(element){var cssText='';var content=element.content||element;var e$=Polymer.TreeApi.arrayCopy(content.querySelectorAll(this.MODULE_STYLES_SELECTOR));for(var i=0,e;i<e$.length;i++){e=e$[i];if(e.localName==='template'){if(!e.hasAttribute('preserve-content')){cssText+=this.cssFromElement(e);}}else{if(e.localName==='style'){var include=e.getAttribute(this.INCLUDE_ATTR);if(include){cssText+=this.cssFromModules(include,true);}
e=e.__appliedElement||e;e.parentNode.removeChild(e);cssText+=this.resolveCss(e.textContent,element.ownerDocument);}else if(e.import&&e.import.body){cssText+=this.resolveCss(e.import.body.textContent,e.import);}}}
return cssText;},styleIncludesToTemplate:function(targetTemplate){var styles=targetTemplate.content.querySelectorAll('style[include]');for(var i=0,s;i<styles.length;i++){s=styles[i];s.parentNode.insertBefore(this._includesToFragment(s.getAttribute('include')),s);}},_includesToFragment:function(styleIncludes){var includeArray=styleIncludes.trim().split(' ');var frag=document.createDocumentFragment();for(var i=0;i<includeArray.length;i++){var t=Polymer.DomModule.import(includeArray[i],'template');if(t){this._addStylesToFragment(frag,t.content);}}
return frag;},_addStylesToFragment:function(frag,source){var s$=source.querySelectorAll('style');for(var i=0,s;i<s$.length;i++){s=s$[i];var include=s.getAttribute('include');if(include){frag.appendChild(this._includesToFragment(include));}
if(s.textContent){frag.appendChild(s.cloneNode(true));}}},isTargetedBuild:function(buildType){return settings.useNativeShadow?buildType==='shadow':buildType==='shady';},cssBuildTypeForModule:function(module){var dm=Polymer.DomModule.import(module);if(dm){return this.getCssBuildType(dm);}},getCssBuildType:function(element){return element.getAttribute('css-build');},_findMatchingParen:function(text,start){var level=0;for(var i=start,l=text.length;i<l;i++){switch(text[i]){case'(':level++;break;case')':if(--level===0){return i;}
break;}}
return-1;},processVariableAndFallback:function(str,callback){var start=str.indexOf('var(');if(start===-1){return callback(str,'','','');}
var end=this._findMatchingParen(str,start+3);var inner=str.substring(start+4,end);var prefix=str.substring(0,start);var suffix=this.processVariableAndFallback(str.substring(end+1),callback);var comma=inner.indexOf(',');if(comma===-1){return callback(prefix,inner.trim(),'',suffix);}
var value=inner.substring(0,comma).trim();var fallback=inner.substring(comma+1).trim();return callback(prefix,value,fallback,suffix);},rx:{VAR_ASSIGN:/(?:^|[;\s{]\s*)(--[\w-]*?)\s*:\s*(?:([^;{]*)|{([^}]*)})(?:(?=[;\s}])|$)/gi,MIXIN_MATCH:/(?:^|\W+)@apply\s*\(?([^);\n]*)\)?/gi,VAR_CONSUMED:/(--[\w-]+)\s*([:,;)]|$)/gi,ANIMATION_MATCH:/(animation\s*:)|(animation-name\s*:)/,MEDIA_MATCH:/@media[^(]*(\([^)]*\))/,IS_VAR:/^--/,BRACKETED:/\{[^}]*\}/g,HOST_PREFIX:'(?:^|[^.#[:])',HOST_SUFFIX:'($|[.:[\\s>+~])'},resolveCss:Polymer.ResolveUrl.resolveCss,parser:Polymer.CssParse,ruleTypes:Polymer.CssParse.types};}();Polymer.StyleTransformer=function(){var styleUtil=Polymer.StyleUtil;var settings=Polymer.Settings;var api={dom:function(node,scope,useAttr,shouldRemoveScope){this._transformDom(node,scope||'',useAttr,shouldRemoveScope);},_transformDom:function(node,selector,useAttr,shouldRemoveScope){if(node.setAttribute){this.element(node,selector,useAttr,shouldRemoveScope);}
var c$=Polymer.dom(node).childNodes;for(var i=0;i<c$.length;i++){this._transformDom(c$[i],selector,useAttr,shouldRemoveScope);}},element:function(element,scope,useAttr,shouldRemoveScope){if(useAttr){if(shouldRemoveScope){element.removeAttribute(SCOPE_NAME);}else{element.setAttribute(SCOPE_NAME,scope);}}else{if(scope){if(element.classList){if(shouldRemoveScope){element.classList.remove(SCOPE_NAME);element.classList.remove(scope);}else{element.classList.add(SCOPE_NAME);element.classList.add(scope);}}else if(element.getAttribute){var c=element.getAttribute(CLASS);if(shouldRemoveScope){if(c){element.setAttribute(CLASS,c.replace(SCOPE_NAME,'').replace(scope,''));}}else{element.setAttribute(CLASS,(c?c+' ':'')+SCOPE_NAME+' '+scope);}}}}},elementStyles:function(element,callback){var styles=element._styles;var cssText='';var cssBuildType=element.__cssBuild;var passthrough=settings.useNativeShadow||cssBuildType==='shady';var cb;if(passthrough){var self=this;cb=function(rule){rule.selector=self._slottedToContent(rule.selector);rule.selector=rule.selector.replace(ROOT,':host > *');if(callback){callback(rule);}};}
for(var i=0,l=styles.length,s;i<l&&(s=styles[i]);i++){var rules=styleUtil.rulesForStyle(s);cssText+=passthrough?styleUtil.toCssText(rules,cb):this.css(rules,element.is,element.extends,callback,element._scopeCssViaAttr)+'\n\n';}
return cssText.trim();},css:function(rules,scope,ext,callback,useAttr){var hostScope=this._calcHostScope(scope,ext);scope=this._calcElementScope(scope,useAttr);var self=this;return styleUtil.toCssText(rules,function(rule){if(!rule.isScoped){self.rule(rule,scope,hostScope);rule.isScoped=true;}
if(callback){callback(rule,scope,hostScope);}});},_calcElementScope:function(scope,useAttr){if(scope){return useAttr?CSS_ATTR_PREFIX+scope+CSS_ATTR_SUFFIX:CSS_CLASS_PREFIX+scope;}else{return'';}},_calcHostScope:function(scope,ext){return ext?'[is='+scope+']':scope;},rule:function(rule,scope,hostScope){this._transformRule(rule,this._transformComplexSelector,scope,hostScope);},_transformRule:function(rule,transformer,scope,hostScope){rule.selector=rule.transformedSelector=this._transformRuleCss(rule,transformer,scope,hostScope);},_transformRuleCss:function(rule,transformer,scope,hostScope){var p$=rule.selector.split(COMPLEX_SELECTOR_SEP);if(!styleUtil.isKeyframesSelector(rule)){for(var i=0,l=p$.length,p;i<l&&(p=p$[i]);i++){p$[i]=transformer.call(this,p,scope,hostScope);}}
return p$.join(COMPLEX_SELECTOR_SEP);},_transformComplexSelector:function(selector,scope,hostScope){var stop=false;var hostContext=false;var self=this;selector=selector.trim();selector=this._slottedToContent(selector);selector=selector.replace(ROOT,':host > *');selector=selector.replace(CONTENT_START,HOST+' $1');selector=selector.replace(SIMPLE_SELECTOR_SEP,function(m,c,s){if(!stop){var info=self._transformCompoundSelector(s,c,scope,hostScope);stop=stop||info.stop;hostContext=hostContext||info.hostContext;c=info.combinator;s=info.value;}else{s=s.replace(SCOPE_JUMP,' ');}
return c+s;});if(hostContext){selector=selector.replace(HOST_CONTEXT_PAREN,function(m,pre,paren,post){return pre+paren+' '+hostScope+post+COMPLEX_SELECTOR_SEP+' '+pre+hostScope+paren+post;});}
return selector;},_transformCompoundSelector:function(selector,combinator,scope,hostScope){var jumpIndex=selector.search(SCOPE_JUMP);var hostContext=false;if(selector.indexOf(HOST_CONTEXT)>=0){hostContext=true;}else if(selector.indexOf(HOST)>=0){selector=this._transformHostSelector(selector,hostScope);}else if(jumpIndex!==0){selector=scope?this._transformSimpleSelector(selector,scope):selector;}
if(selector.indexOf(CONTENT)>=0){combinator='';}
var stop;if(jumpIndex>=0){selector=selector.replace(SCOPE_JUMP,' ');stop=true;}
return{value:selector,combinator:combinator,stop:stop,hostContext:hostContext};},_transformSimpleSelector:function(selector,scope){var p$=selector.split(PSEUDO_PREFIX);p$[0]+=scope;return p$.join(PSEUDO_PREFIX);},_transformHostSelector:function(selector,hostScope){var m=selector.match(HOST_PAREN);var paren=m&&m[2].trim()||'';if(paren){if(!paren[0].match(SIMPLE_SELECTOR_PREFIX)){var typeSelector=paren.split(SIMPLE_SELECTOR_PREFIX)[0];if(typeSelector===hostScope){return paren;}else{return SELECTOR_NO_MATCH;}}else{return selector.replace(HOST_PAREN,function(m,host,paren){return hostScope+paren;});}}else{return selector.replace(HOST,hostScope);}},documentRule:function(rule){rule.selector=rule.parsedSelector;this.normalizeRootSelector(rule);if(!settings.useNativeShadow){this._transformRule(rule,this._transformDocumentSelector);}},normalizeRootSelector:function(rule){rule.selector=rule.selector.replace(ROOT,'html');var parts=rule.selector.split(COMPLEX_SELECTOR_SEP);parts=parts.filter(function(part){return!part.match(HOST_OR_HOST_GT_STAR);});rule.selector=parts.join(COMPLEX_SELECTOR_SEP);},_transformDocumentSelector:function(selector){return selector.match(SCOPE_JUMP)?this._transformComplexSelector(selector,SCOPE_DOC_SELECTOR):this._transformSimpleSelector(selector.trim(),SCOPE_DOC_SELECTOR);},_slottedToContent:function(cssText){return cssText.replace(SLOTTED_PAREN,CONTENT+'> $1');},SCOPE_NAME:'style-scope'};var SCOPE_NAME=api.SCOPE_NAME;var SCOPE_DOC_SELECTOR=':not(['+SCOPE_NAME+'])'+':not(.'+SCOPE_NAME+')';var COMPLEX_SELECTOR_SEP=',';var SIMPLE_SELECTOR_SEP=/(^|[\s>+~]+)((?:\[.+?\]|[^\s>+~=\[])+)/g;var SIMPLE_SELECTOR_PREFIX=/[[.:#*]/;var HOST=':host';var ROOT=':root';var HOST_PAREN=/(:host)(?:\(((?:\([^)(]*\)|[^)(]*)+?)\))/;var HOST_CONTEXT=':host-context';var HOST_CONTEXT_PAREN=/(.*)(?::host-context)(?:\(((?:\([^)(]*\)|[^)(]*)+?)\))(.*)/;var CONTENT='::content';var SCOPE_JUMP=/::content|::shadow|\/deep\//;var CSS_CLASS_PREFIX='.';var CSS_ATTR_PREFIX='['+SCOPE_NAME+'~=';var CSS_ATTR_SUFFIX=']';var PSEUDO_PREFIX=':';var CLASS='class';var CONTENT_START=new RegExp('^('+CONTENT+')');var SELECTOR_NO_MATCH='should_not_match';var SLOTTED_PAREN=/(?:::slotted)(?:\(((?:\([^)(]*\)|[^)(]*)+?)\))/g;var HOST_OR_HOST_GT_STAR=/:host(?:\s*>\s*\*)?/;return api;}();Polymer.StyleExtends=function(){var styleUtil=Polymer.StyleUtil;return{hasExtends:function(cssText){return Boolean(cssText.match(this.rx.EXTEND));},transform:function(style){var rules=styleUtil.rulesForStyle(style);var self=this;styleUtil.forEachRule(rules,function(rule){self._mapRuleOntoParent(rule);if(rule.parent){var m;while(m=self.rx.EXTEND.exec(rule.cssText)){var extend=m[1];var extendor=self._findExtendor(extend,rule);if(extendor){self._extendRule(rule,extendor);}}}
rule.cssText=rule.cssText.replace(self.rx.EXTEND,'');});return styleUtil.toCssText(rules,function(rule){if(rule.selector.match(self.rx.STRIP)){rule.cssText='';}},true);},_mapRuleOntoParent:function(rule){if(rule.parent){var map=rule.parent.map||(rule.parent.map={});var parts=rule.selector.split(',');for(var i=0,p;i<parts.length;i++){p=parts[i];map[p.trim()]=rule;}
return map;}},_findExtendor:function(extend,rule){return rule.parent&&rule.parent.map&&rule.parent.map[extend]||this._findExtendor(extend,rule.parent);},_extendRule:function(target,source){if(target.parent!==source.parent){this._cloneAndAddRuleToParent(source,target.parent);}
target.extends=target.extends||[];target.extends.push(source);source.selector=source.selector.replace(this.rx.STRIP,'');source.selector=(source.selector&&source.selector+',\n')+target.selector;if(source.extends){source.extends.forEach(function(e){this._extendRule(target,e);},this);}},_cloneAndAddRuleToParent:function(rule,parent){rule=Object.create(rule);rule.parent=parent;if(rule.extends){rule.extends=rule.extends.slice();}
parent.rules.push(rule);},rx:{EXTEND:/@extends\(([^)]*)\)\s*?;/gim,STRIP:/%[^,]*$/}};}();Polymer.ApplyShim=function(){'use strict';var styleUtil=Polymer.StyleUtil;var MIXIN_MATCH=styleUtil.rx.MIXIN_MATCH;var VAR_ASSIGN=styleUtil.rx.VAR_ASSIGN;var BAD_VAR=/var\(\s*(--[^,]*),\s*(--[^)]*)\)/g;var APPLY_NAME_CLEAN=/;\s*/m;var INITIAL_INHERIT=/^\s*(initial)|(inherit)\s*$/;var MIXIN_VAR_SEP='_-_';var mixinMap={};function mapSet(name,props){name=name.trim();mixinMap[name]={properties:props,dependants:{}};}
function mapGet(name){name=name.trim();return mixinMap[name];}
function replaceInitialOrInherit(property,value){var match=INITIAL_INHERIT.exec(value);if(match){if(match[1]){value=ApplyShim._getInitialValueForProperty(property);}else{value='apply-shim-inherit';}}
return value;}
function cssTextToMap(text){var props=text.split(';');var property,value;var out={};for(var i=0,p,sp;i<props.length;i++){p=props[i];if(p){sp=p.split(':');if(sp.length>1){property=sp[0].trim();value=replaceInitialOrInherit(property,sp.slice(1).join(':'));out[property]=value;}}}
return out;}
function invalidateMixinEntry(mixinEntry){var currentProto=ApplyShim.__currentElementProto;var currentElementName=currentProto&¤tProto.is;for(var elementName in mixinEntry.dependants){if(elementName!==currentElementName){mixinEntry.dependants[elementName].__applyShimInvalid=true;}}}
function produceCssProperties(matchText,propertyName,valueProperty,valueMixin){if(valueProperty){styleUtil.processVariableAndFallback(valueProperty,function(prefix,value){if(value&&mapGet(value)){valueMixin='@apply '+value+';';}});}
if(!valueMixin){return matchText;}
var mixinAsProperties=consumeCssProperties(valueMixin);var prefix=matchText.slice(0,matchText.indexOf('--'));var mixinValues=cssTextToMap(mixinAsProperties);var combinedProps=mixinValues;var mixinEntry=mapGet(propertyName);var oldProps=mixinEntry&&mixinEntry.properties;if(oldProps){combinedProps=Object.create(oldProps);combinedProps=Polymer.Base.mixin(combinedProps,mixinValues);}else{mapSet(propertyName,combinedProps);}
var out=[];var p,v;var needToInvalidate=false;for(p in combinedProps){v=mixinValues[p];if(v===undefined){v='initial';}
if(oldProps&&!(p in oldProps)){needToInvalidate=true;}
out.push(propertyName+MIXIN_VAR_SEP+p+': '+v);}
if(needToInvalidate){invalidateMixinEntry(mixinEntry);}
if(mixinEntry){mixinEntry.properties=combinedProps;}
if(valueProperty){prefix=matchText+';'+prefix;}
return prefix+out.join('; ')+';';}
function fixVars(matchText,varA,varB){return'var('+varA+','+'var('+varB+'))';}
function atApplyToCssProperties(mixinName,fallbacks){mixinName=mixinName.replace(APPLY_NAME_CLEAN,'');var vars=[];var mixinEntry=mapGet(mixinName);if(!mixinEntry){mapSet(mixinName,{});mixinEntry=mapGet(mixinName);}
if(mixinEntry){var currentProto=ApplyShim.__currentElementProto;if(currentProto){mixinEntry.dependants[currentProto.is]=currentProto;}
var p,parts,f;for(p in mixinEntry.properties){f=fallbacks&&fallbacks[p];parts=[p,': var(',mixinName,MIXIN_VAR_SEP,p];if(f){parts.push(',',f);}
parts.push(')');vars.push(parts.join(''));}}
return vars.join('; ');}
function consumeCssProperties(text){var m;while(m=MIXIN_MATCH.exec(text)){var matchText=m[0];var mixinName=m[1];var idx=m.index;var applyPos=idx+matchText.indexOf('@apply');var afterApplyPos=idx+matchText.length;var textBeforeApply=text.slice(0,applyPos);var textAfterApply=text.slice(afterApplyPos);var defaults=cssTextToMap(textBeforeApply);var replacement=atApplyToCssProperties(mixinName,defaults);text=[textBeforeApply,replacement,textAfterApply].join('');MIXIN_MATCH.lastIndex=idx+replacement.length;}
return text;}
var ApplyShim={_measureElement:null,_map:mixinMap,_separator:MIXIN_VAR_SEP,transform:function(styles,elementProto){this.__currentElementProto=elementProto;styleUtil.forRulesInStyles(styles,this._boundFindDefinitions);styleUtil.forRulesInStyles(styles,this._boundFindApplications);if(elementProto){elementProto.__applyShimInvalid=false;}
this.__currentElementProto=null;},_findDefinitions:function(rule){var cssText=rule.parsedCssText;cssText=cssText.replace(BAD_VAR,fixVars);cssText=cssText.replace(VAR_ASSIGN,produceCssProperties);rule.cssText=cssText;if(rule.selector===':root'){rule.selector=':host > *';}},_findApplications:function(rule){rule.cssText=consumeCssProperties(rule.cssText);},transformRule:function(rule){this._findDefinitions(rule);this._findApplications(rule);},_getInitialValueForProperty:function(property){if(!this._measureElement){this._measureElement=document.createElement('meta');this._measureElement.style.all='initial';document.head.appendChild(this._measureElement);}
return window.getComputedStyle(this._measureElement).getPropertyValue(property);}};ApplyShim._boundTransformRule=ApplyShim.transformRule.bind(ApplyShim);ApplyShim._boundFindDefinitions=ApplyShim._findDefinitions.bind(ApplyShim);ApplyShim._boundFindApplications=ApplyShim._findApplications.bind(ApplyShim);return ApplyShim;}();(function(){var prepElement=Polymer.Base._prepElement;var nativeShadow=Polymer.Settings.useNativeShadow;var styleUtil=Polymer.StyleUtil;var styleTransformer=Polymer.StyleTransformer;var styleExtends=Polymer.StyleExtends;var applyShim=Polymer.ApplyShim;var settings=Polymer.Settings;Polymer.Base._addFeature({_prepElement:function(element){if(this._encapsulateStyle&&this.__cssBuild!=='shady'){styleTransformer.element(element,this.is,this._scopeCssViaAttr);}
prepElement.call(this,element);},_prepStyles:function(){if(this._encapsulateStyle===undefined){this._encapsulateStyle=!nativeShadow;}
if(!nativeShadow){this._scopeStyle=styleUtil.applyStylePlaceHolder(this.is);}
this.__cssBuild=styleUtil.cssBuildTypeForModule(this.is);},_prepShimStyles:function(){if(this._template){var hasTargetedCssBuild=styleUtil.isTargetedBuild(this.__cssBuild);if(settings.useNativeCSSProperties&&this.__cssBuild==='shadow'&&hasTargetedCssBuild){if(settings.preserveStyleIncludes){styleUtil.styleIncludesToTemplate(this._template);}
return;}
this._styles=this._styles||this._collectStyles();if(settings.useNativeCSSProperties&&!this.__cssBuild){applyShim.transform(this._styles,this);}
var cssText=settings.useNativeCSSProperties&&hasTargetedCssBuild?this._styles.length&&this._styles[0].textContent.trim():styleTransformer.elementStyles(this);this._prepStyleProperties();if(!this._needsStyleProperties()&&cssText){styleUtil.applyCss(cssText,this.is,nativeShadow?this._template.content:null,this._scopeStyle);}}else{this._styles=[];}},_collectStyles:function(){var styles=[];var cssText='',m$=this.styleModules;if(m$){for(var i=0,l=m$.length,m;i<l&&(m=m$[i]);i++){cssText+=styleUtil.cssFromModule(m);}}
cssText+=styleUtil.cssFromModule(this.is);var p=this._template&&this._template.parentNode;if(this._template&&(!p||p.id.toLowerCase()!==this.is)){cssText+=styleUtil.cssFromElement(this._template);}
if(cssText){var style=document.createElement('style');style.textContent=cssText;if(styleExtends.hasExtends(style.textContent)){cssText=styleExtends.transform(style);}
styles.push(style);}
return styles;},_elementAdd:function(node){if(this._encapsulateStyle){if(node.__styleScoped){node.__styleScoped=false;}else{styleTransformer.dom(node,this.is,this._scopeCssViaAttr);}}},_elementRemove:function(node){if(this._encapsulateStyle){styleTransformer.dom(node,this.is,this._scopeCssViaAttr,true);}},scopeSubtree:function(container,shouldObserve){if(nativeShadow){return;}
var self=this;var scopify=function(node){if(node.nodeType===Node.ELEMENT_NODE){var className=node.getAttribute('class');node.setAttribute('class',self._scopeElementClass(node,className));var n$=node.querySelectorAll('*');for(var i=0,n;i<n$.length&&(n=n$[i]);i++){className=n.getAttribute('class');n.setAttribute('class',self._scopeElementClass(n,className));}}};scopify(container);if(shouldObserve){var mo=new MutationObserver(function(mxns){for(var i=0,m;i<mxns.length&&(m=mxns[i]);i++){if(m.addedNodes){for(var j=0;j<m.addedNodes.length;j++){scopify(m.addedNodes[j]);}}}});mo.observe(container,{childList:true,subtree:true});return mo;}}});}());Polymer.StyleProperties=function(){'use strict';var matchesSelector=Polymer.DomApi.matchesSelector;var styleUtil=Polymer.StyleUtil;var styleTransformer=Polymer.StyleTransformer;var IS_IE=navigator.userAgent.match('Trident');var settings=Polymer.Settings;return{decorateStyles:function(styles,scope){var self=this,props={},keyframes=[],ruleIndex=0;var scopeSelector=styleTransformer._calcHostScope(scope.is,scope.extends);styleUtil.forRulesInStyles(styles,function(rule,style){self.decorateRule(rule);rule.index=ruleIndex++;self.whenHostOrRootRule(scope,rule,style,function(info){if(rule.parent.type===styleUtil.ruleTypes.MEDIA_RULE){scope.__notStyleScopeCacheable=true;}
if(info.isHost){var hostContextOrFunction=info.selector.split(' ').some(function(s){return s.indexOf(scopeSelector)===0&&s.length!==scopeSelector.length;});scope.__notStyleScopeCacheable=scope.__notStyleScopeCacheable||hostContextOrFunction;}});self.collectPropertiesInCssText(rule.propertyInfo.cssText,props);},function onKeyframesRule(rule){keyframes.push(rule);});styles._keyframes=keyframes;var names=[];for(var i in props){names.push(i);}
return names;},decorateRule:function(rule){if(rule.propertyInfo){return rule.propertyInfo;}
var info={},properties={};var hasProperties=this.collectProperties(rule,properties);if(hasProperties){info.properties=properties;rule.rules=null;}
info.cssText=this.collectCssText(rule);rule.propertyInfo=info;return info;},collectProperties:function(rule,properties){var info=rule.propertyInfo;if(info){if(info.properties){Polymer.Base.mixin(properties,info.properties);return true;}}else{var m,rx=this.rx.VAR_ASSIGN;var cssText=rule.parsedCssText;var value;var any;while(m=rx.exec(cssText)){value=(m[2]||m[3]).trim();if(value!=='inherit'){properties[m[1].trim()]=value;}
any=true;}
return any;}},collectCssText:function(rule){return this.collectConsumingCssText(rule.parsedCssText);},collectConsumingCssText:function(cssText){return cssText.replace(this.rx.BRACKETED,'').replace(this.rx.VAR_ASSIGN,'');},collectPropertiesInCssText:function(cssText,props){var m;while(m=this.rx.VAR_CONSUMED.exec(cssText)){var name=m[1];if(m[2]!==':'){props[name]=true;}}},reify:function(props){var names=Object.getOwnPropertyNames(props);for(var i=0,n;i<names.length;i++){n=names[i];props[n]=this.valueForProperty(props[n],props);}},valueForProperty:function(property,props){if(property){if(property.indexOf(';')>=0){property=this.valueForProperties(property,props);}else{var self=this;var fn=function(prefix,value,fallback,suffix){var propertyValue=self.valueForProperty(props[value],props);if(!propertyValue||propertyValue==='initial'){propertyValue=self.valueForProperty(props[fallback]||fallback,props)||fallback;}else if(propertyValue==='apply-shim-inherit'){propertyValue='inherit';}
return prefix+(propertyValue||'')+suffix;};property=styleUtil.processVariableAndFallback(property,fn);}}
return property&&property.trim()||'';},valueForProperties:function(property,props){var parts=property.split(';');for(var i=0,p,m;i<parts.length;i++){if(p=parts[i]){this.rx.MIXIN_MATCH.lastIndex=0;m=this.rx.MIXIN_MATCH.exec(p);if(m){p=this.valueForProperty(props[m[1]],props);}else{var colon=p.indexOf(':');if(colon!==-1){var pp=p.substring(colon);pp=pp.trim();pp=this.valueForProperty(pp,props)||pp;p=p.substring(0,colon)+pp;}}
parts[i]=p&&p.lastIndexOf(';')===p.length-1?p.slice(0,-1):p||'';}}
return parts.join(';');},applyProperties:function(rule,props){var output='';if(!rule.propertyInfo){this.decorateRule(rule);}
if(rule.propertyInfo.cssText){output=this.valueForProperties(rule.propertyInfo.cssText,props);}
rule.cssText=output;},applyKeyframeTransforms:function(rule,keyframeTransforms){var input=rule.cssText;var output=rule.cssText;if(rule.hasAnimations==null){rule.hasAnimations=this.rx.ANIMATION_MATCH.test(input);}
if(rule.hasAnimations){var transform;if(rule.keyframeNamesToTransform==null){rule.keyframeNamesToTransform=[];for(var keyframe in keyframeTransforms){transform=keyframeTransforms[keyframe];output=transform(input);if(input!==output){input=output;rule.keyframeNamesToTransform.push(keyframe);}}}else{for(var i=0;i<rule.keyframeNamesToTransform.length;++i){transform=keyframeTransforms[rule.keyframeNamesToTransform[i]];input=transform(input);}
output=input;}}
rule.cssText=output;},propertyDataFromStyles:function(styles,element){var props={},self=this;var o=[];styleUtil.forActiveRulesInStyles(styles,function(rule){if(!rule.propertyInfo){self.decorateRule(rule);}
var selectorToMatch=rule.transformedSelector||rule.parsedSelector;if(element&&rule.propertyInfo.properties&&selectorToMatch){if(matchesSelector.call(element,selectorToMatch)){self.collectProperties(rule,props);addToBitMask(rule.index,o);}}});return{properties:props,key:o};},_rootSelector:/:root|:host\s*>\s*\*/,_checkRoot:function(hostScope,selector){return Boolean(selector.match(this._rootSelector))||hostScope==='html'&&selector.indexOf('html')>-1;},whenHostOrRootRule:function(scope,rule,style,callback){if(!rule.propertyInfo){self.decorateRule(rule);}
if(!rule.propertyInfo.properties){return;}
var hostScope=scope.is?styleTransformer._calcHostScope(scope.is,scope.extends):'html';var parsedSelector=rule.parsedSelector;var isRoot=this._checkRoot(hostScope,parsedSelector);var isHost=!isRoot&&parsedSelector.indexOf(':host')===0;var cssBuild=scope.__cssBuild||style.__cssBuild;if(cssBuild==='shady'){isRoot=parsedSelector===hostScope+' > *.'+hostScope||parsedSelector.indexOf('html')>-1;isHost=!isRoot&&parsedSelector.indexOf(hostScope)===0;}
if(!isRoot&&!isHost){return;}
var selectorToMatch=hostScope;if(isHost){if(settings.useNativeShadow&&!rule.transformedSelector){rule.transformedSelector=styleTransformer._transformRuleCss(rule,styleTransformer._transformComplexSelector,scope.is,hostScope);}
selectorToMatch=rule.transformedSelector||rule.parsedSelector;}
if(isRoot&&hostScope==='html'){selectorToMatch=rule.transformedSelector||rule.parsedSelector;}
callback({selector:selectorToMatch,isHost:isHost,isRoot:isRoot});},hostAndRootPropertiesForScope:function(scope){var hostProps={},rootProps={},self=this;styleUtil.forActiveRulesInStyles(scope._styles,function(rule,style){self.whenHostOrRootRule(scope,rule,style,function(info){var element=scope._element||scope;if(matchesSelector.call(element,info.selector)){if(info.isHost){self.collectProperties(rule,hostProps);}else{self.collectProperties(rule,rootProps);}}});});return{rootProps:rootProps,hostProps:hostProps};},transformStyles:function(element,properties,scopeSelector){var self=this;var hostSelector=styleTransformer._calcHostScope(element.is,element.extends);var rxHostSelector=element.extends?'\\'+hostSelector.slice(0,-1)+'\\]':hostSelector;var hostRx=new RegExp(this.rx.HOST_PREFIX+rxHostSelector+this.rx.HOST_SUFFIX);var keyframeTransforms=this._elementKeyframeTransforms(element,scopeSelector);return styleTransformer.elementStyles(element,function(rule){self.applyProperties(rule,properties);if(!settings.useNativeShadow&&!Polymer.StyleUtil.isKeyframesSelector(rule)&&rule.cssText){self.applyKeyframeTransforms(rule,keyframeTransforms);self._scopeSelector(rule,hostRx,hostSelector,element._scopeCssViaAttr,scopeSelector);}});},_elementKeyframeTransforms:function(element,scopeSelector){var keyframesRules=element._styles._keyframes;var keyframeTransforms={};if(!settings.useNativeShadow&&keyframesRules){for(var i=0,keyframesRule=keyframesRules[i];i<keyframesRules.length;keyframesRule=keyframesRules[++i]){this._scopeKeyframes(keyframesRule,scopeSelector);keyframeTransforms[keyframesRule.keyframesName]=this._keyframesRuleTransformer(keyframesRule);}}
return keyframeTransforms;},_keyframesRuleTransformer:function(keyframesRule){return function(cssText){return cssText.replace(keyframesRule.keyframesNameRx,keyframesRule.transformedKeyframesName);};},_scopeKeyframes:function(rule,scopeId){rule.keyframesNameRx=new RegExp(rule.keyframesName,'g');rule.transformedKeyframesName=rule.keyframesName+'-'+scopeId;rule.transformedSelector=rule.transformedSelector||rule.selector;rule.selector=rule.transformedSelector.replace(rule.keyframesName,rule.transformedKeyframesName);},_scopeSelector:function(rule,hostRx,hostSelector,viaAttr,scopeId){rule.transformedSelector=rule.transformedSelector||rule.selector;var selector=rule.transformedSelector;var scope=viaAttr?'['+styleTransformer.SCOPE_NAME+'~='+scopeId+']':'.'+scopeId;var parts=selector.split(',');for(var i=0,l=parts.length,p;i<l&&(p=parts[i]);i++){parts[i]=p.match(hostRx)?p.replace(hostSelector,scope):scope+' '+p;}
rule.selector=parts.join(',');},applyElementScopeSelector:function(element,selector,old,viaAttr){var c=viaAttr?element.getAttribute(styleTransformer.SCOPE_NAME):element.getAttribute('class')||'';var v=old?c.replace(old,selector):(c?c+' ':'')+this.XSCOPE_NAME+' '+selector;if(c!==v){if(viaAttr){element.setAttribute(styleTransformer.SCOPE_NAME,v);}else{element.setAttribute('class',v);}}},applyElementStyle:function(element,properties,selector,style){var cssText=style?style.textContent||'':this.transformStyles(element,properties,selector);var s=element._customStyle;if(s&&!settings.useNativeShadow&&s!==style){s._useCount--;if(s._useCount<=0&&s.parentNode){s.parentNode.removeChild(s);}}
if(settings.useNativeShadow){if(element._customStyle){element._customStyle.textContent=cssText;style=element._customStyle;}else if(cssText){style=styleUtil.applyCss(cssText,selector,element.root,element._scopeStyle);}}else{if(!style){if(cssText){style=styleUtil.applyCss(cssText,selector,null,element._scopeStyle);}}else if(!style.parentNode){if(IS_IE&&cssText.indexOf('@media')>-1){style.textContent=cssText;}
styleUtil.applyStyle(style,null,element._scopeStyle);}}
if(style){style._useCount=style._useCount||0;if(element._customStyle!=style){style._useCount++;}
element._customStyle=style;}
return style;},mixinCustomStyle:function(props,customStyle){var v;for(var i in customStyle){v=customStyle[i];if(v||v===0){props[i]=v;}}},updateNativeStyleProperties:function(element,properties){var oldPropertyNames=element.__customStyleProperties;if(oldPropertyNames){for(var i=0;i<oldPropertyNames.length;i++){element.style.removeProperty(oldPropertyNames[i]);}}
var propertyNames=[];for(var p in properties){if(properties[p]!==null){element.style.setProperty(p,properties[p]);propertyNames.push(p);}}
element.__customStyleProperties=propertyNames;},rx:styleUtil.rx,XSCOPE_NAME:'x-scope'};function addToBitMask(n,bits){var o=parseInt(n/32);var v=1<<n%32;bits[o]=(bits[o]||0)|v;}}();(function(){Polymer.StyleCache=function(){this.cache={};};Polymer.StyleCache.prototype={MAX:100,store:function(is,data,keyValues,keyStyles){data.keyValues=keyValues;data.styles=keyStyles;var s$=this.cache[is]=this.cache[is]||[];s$.push(data);if(s$.length>this.MAX){s$.shift();}},retrieve:function(is,keyValues,keyStyles){var cache=this.cache[is];if(cache){for(var i=cache.length-1,data;i>=0;i--){data=cache[i];if(keyStyles===data.styles&&this._objectsEqual(keyValues,data.keyValues)){return data;}}}},clear:function(){this.cache={};},_objectsEqual:function(target,source){var t,s;for(var i in target){t=target[i],s=source[i];if(!(typeof t==='object'&&t?this._objectsStrictlyEqual(t,s):t===s)){return false;}}
if(Array.isArray(target)){return target.length===source.length;}
return true;},_objectsStrictlyEqual:function(target,source){return this._objectsEqual(target,source)&&this._objectsEqual(source,target);}};}());Polymer.StyleDefaults=function(){var styleProperties=Polymer.StyleProperties;var StyleCache=Polymer.StyleCache;var nativeVariables=Polymer.Settings.useNativeCSSProperties;var api={_styles:[],_properties:null,customStyle:{},_styleCache:new StyleCache(),_element:Polymer.DomApi.wrap(document.documentElement),addStyle:function(style){this._styles.push(style);this._properties=null;},get _styleProperties(){if(!this._properties){styleProperties.decorateStyles(this._styles,this);this._styles._scopeStyleProperties=null;this._properties=styleProperties.hostAndRootPropertiesForScope(this).rootProps;styleProperties.mixinCustomStyle(this._properties,this.customStyle);styleProperties.reify(this._properties);}
return this._properties;},hasStyleProperties:function(){return Boolean(this._properties);},_needsStyleProperties:function(){},_computeStyleProperties:function(){return this._styleProperties;},updateStyles:function(properties){this._properties=null;if(properties){Polymer.Base.mixin(this.customStyle,properties);}
this._styleCache.clear();for(var i=0,s;i<this._styles.length;i++){s=this._styles[i];s=s.__importElement||s;s._apply();}
if(nativeVariables){styleProperties.updateNativeStyleProperties(document.documentElement,this.customStyle);}}};return api;}();(function(){'use strict';var serializeValueToAttribute=Polymer.Base.serializeValueToAttribute;var propertyUtils=Polymer.StyleProperties;var styleTransformer=Polymer.StyleTransformer;var styleDefaults=Polymer.StyleDefaults;var nativeShadow=Polymer.Settings.useNativeShadow;var nativeVariables=Polymer.Settings.useNativeCSSProperties;Polymer.Base._addFeature({_prepStyleProperties:function(){if(!nativeVariables){this._ownStylePropertyNames=this._styles&&this._styles.length?propertyUtils.decorateStyles(this._styles,this):null;}},customStyle:null,getComputedStyleValue:function(property){if(!nativeVariables&&!this._styleProperties){this._computeStyleProperties();}
return!nativeVariables&&this._styleProperties&&this._styleProperties[property]||getComputedStyle(this).getPropertyValue(property);},_setupStyleProperties:function(){this.customStyle={};this._styleCache=null;this._styleProperties=null;this._scopeSelector=null;this._ownStyleProperties=null;this._customStyle=null;},_needsStyleProperties:function(){return Boolean(!nativeVariables&&this._ownStylePropertyNames&&this._ownStylePropertyNames.length);},_validateApplyShim:function(){if(this.__applyShimInvalid){Polymer.ApplyShim.transform(this._styles,this.__proto__);var cssText=styleTransformer.elementStyles(this);if(nativeShadow){var templateStyle=this._template.content.querySelector('style');if(templateStyle){templateStyle.textContent=cssText;}}else{var shadyStyle=this._scopeStyle&&this._scopeStyle.nextSibling;if(shadyStyle){shadyStyle.textContent=cssText;}}}},_beforeAttached:function(){if((!this._scopeSelector||this.__stylePropertiesInvalid)&&this._needsStyleProperties()){this.__stylePropertiesInvalid=false;this._updateStyleProperties();}},_findStyleHost:function(){var e=this,root;while(root=Polymer.dom(e).getOwnerRoot()){if(Polymer.isInstance(root.host)){return root.host;}
e=root.host;}
return styleDefaults;},_updateStyleProperties:function(){var info,scope=this._findStyleHost();if(!scope._styleProperties){scope._computeStyleProperties();}
if(!scope._styleCache){scope._styleCache=new Polymer.StyleCache();}
var scopeData=propertyUtils.propertyDataFromStyles(scope._styles,this);var scopeCacheable=!this.__notStyleScopeCacheable;if(scopeCacheable){scopeData.key.customStyle=this.customStyle;info=scope._styleCache.retrieve(this.is,scopeData.key,this._styles);}
var scopeCached=Boolean(info);if(scopeCached){this._styleProperties=info._styleProperties;}else{this._computeStyleProperties(scopeData.properties);}
this._computeOwnStyleProperties();if(!scopeCached){info=styleCache.retrieve(this.is,this._ownStyleProperties,this._styles);}
var globalCached=Boolean(info)&&!scopeCached;var style=this._applyStyleProperties(info);if(!scopeCached){style=style&&nativeShadow?style.cloneNode(true):style;info={style:style,_scopeSelector:this._scopeSelector,_styleProperties:this._styleProperties};if(scopeCacheable){scopeData.key.customStyle={};this.mixin(scopeData.key.customStyle,this.customStyle);scope._styleCache.store(this.is,info,scopeData.key,this._styles);}
if(!globalCached){styleCache.store(this.is,Object.create(info),this._ownStyleProperties,this._styles);}}},_computeStyleProperties:function(scopeProps){var scope=this._findStyleHost();if(!scope._styleProperties){scope._computeStyleProperties();}
var props=Object.create(scope._styleProperties);var hostAndRootProps=propertyUtils.hostAndRootPropertiesForScope(this);this.mixin(props,hostAndRootProps.hostProps);scopeProps=scopeProps||propertyUtils.propertyDataFromStyles(scope._styles,this).properties;this.mixin(props,scopeProps);this.mixin(props,hostAndRootProps.rootProps);propertyUtils.mixinCustomStyle(props,this.customStyle);propertyUtils.reify(props);this._styleProperties=props;},_computeOwnStyleProperties:function(){var props={};for(var i=0,n;i<this._ownStylePropertyNames.length;i++){n=this._ownStylePropertyNames[i];props[n]=this._styleProperties[n];}
this._ownStyleProperties=props;},_scopeCount:0,_applyStyleProperties:function(info){var oldScopeSelector=this._scopeSelector;this._scopeSelector=info?info._scopeSelector:this.is+'-'+this.__proto__._scopeCount++;var style=propertyUtils.applyElementStyle(this,this._styleProperties,this._scopeSelector,info&&info.style);if(!nativeShadow){propertyUtils.applyElementScopeSelector(this,this._scopeSelector,oldScopeSelector,this._scopeCssViaAttr);}
return style;},serializeValueToAttribute:function(value,attribute,node){node=node||this;if(attribute==='class'&&!nativeShadow){var host=node===this?this.domHost||this.dataHost:this;if(host){value=host._scopeElementClass(node,value);}}
node=this.shadyRoot&&this.shadyRoot._hasDistributed?Polymer.dom(node):node;serializeValueToAttribute.call(this,value,attribute,node);},_scopeElementClass:function(element,selector){if(!nativeShadow&&!this._scopeCssViaAttr){selector=(selector?selector+' ':'')+SCOPE_NAME+' '+this.is+(element._scopeSelector?' '+XSCOPE_NAME+' '+element._scopeSelector:'');}
return selector;},updateStyles:function(properties){if(properties){this.mixin(this.customStyle,properties);}
if(nativeVariables){propertyUtils.updateNativeStyleProperties(this,this.customStyle);}else{if(this.isAttached){if(this._needsStyleProperties()){this._updateStyleProperties();}else{this._styleProperties=null;}}else{this.__stylePropertiesInvalid=true;}
if(this._styleCache){this._styleCache.clear();}
this._updateRootStyles();}},_updateRootStyles:function(root){root=root||this.root;var c$=Polymer.dom(root)._query(function(e){return e.shadyRoot||e.shadowRoot;});for(var i=0,l=c$.length,c;i<l&&(c=c$[i]);i++){if(c.updateStyles){c.updateStyles();}}}});Polymer.updateStyles=function(properties){styleDefaults.updateStyles(properties);Polymer.Base._updateRootStyles(document);};var styleCache=new Polymer.StyleCache();Polymer.customStyleCache=styleCache;var SCOPE_NAME=styleTransformer.SCOPE_NAME;var XSCOPE_NAME=propertyUtils.XSCOPE_NAME;}());Polymer.Base._addFeature({_registerFeatures:function(){this._prepIs();if(this.factoryImpl){this._prepConstructor();}
this._prepStyles();},_finishRegisterFeatures:function(){this._prepTemplate();this._prepShimStyles();this._prepAnnotations();this._prepEffects();this._prepBehaviors();this._prepPropertyInfo();this._prepBindings();this._prepShady();},_prepBehavior:function(b){this._addPropertyEffects(b.properties);this._addComplexObserverEffects(b.observers);this._addHostAttributes(b.hostAttributes);},_initFeatures:function(){this._setupGestures();this._setupConfigure(this.__data__);this._setupStyleProperties();this._setupDebouncers();this._setupShady();this._registerHost();if(this._template){this._validateApplyShim();this._poolContent();this._beginHosting();this._stampTemplate();this._endHosting();this._marshalAnnotationReferences();}
this._marshalInstanceEffects();this._marshalBehaviors();this._marshalHostAttributes();this._marshalAttributes();this._tryReady();},_marshalBehavior:function(b){if(b.listeners){this._listenListeners(b.listeners);}}});(function(){var propertyUtils=Polymer.StyleProperties;var styleUtil=Polymer.StyleUtil;var cssParse=Polymer.CssParse;var styleDefaults=Polymer.StyleDefaults;var styleTransformer=Polymer.StyleTransformer;var applyShim=Polymer.ApplyShim;var debounce=Polymer.Debounce;var settings=Polymer.Settings;var updateDebouncer;Polymer({is:'custom-style',extends:'style',_template:null,properties:{include:String},ready:function(){this.__appliedElement=this.__appliedElement||this;this.__cssBuild=styleUtil.getCssBuildType(this);if(this.__appliedElement!==this){this.__appliedElement.__cssBuild=this.__cssBuild;}
if(this.ownerDocument!==window.document&&this.__appliedElement===this){document.head.appendChild(this);}
this._tryApply();},attached:function(){this._tryApply();},_tryApply:function(){if(!this._appliesToDocument){if(this.parentNode&&this.parentNode.localName!=='dom-module'){this._appliesToDocument=true;var e=this.__appliedElement;if(!settings.useNativeCSSProperties){this.__needsUpdateStyles=styleDefaults.hasStyleProperties();styleDefaults.addStyle(e);}
if(e.textContent||this.include){this._apply(true);}else{var self=this;var observer=new MutationObserver(function(){observer.disconnect();self._apply(true);});observer.observe(e,{childList:true});}}}},_updateStyles:function(){Polymer.updateStyles();},_apply:function(initialApply){var e=this.__appliedElement;if(this.include){e.textContent=styleUtil.cssFromModules(this.include,true)+e.textContent;}
if(!e.textContent){return;}
var buildType=this.__cssBuild;var targetedBuild=styleUtil.isTargetedBuild(buildType);if(settings.useNativeCSSProperties&&targetedBuild){return;}
var styleRules=styleUtil.rulesForStyle(e);if(!targetedBuild){styleUtil.forEachRule(styleRules,function(rule){styleTransformer.documentRule(rule);});if(settings.useNativeCSSProperties&&!buildType){applyShim.transform([e]);}}
if(settings.useNativeCSSProperties){e.textContent=styleUtil.toCssText(styleRules);}else{var self=this;var fn=function fn(){self._flushCustomProperties();};if(initialApply){Polymer.RenderStatus.whenReady(fn);}else{fn();}}},_flushCustomProperties:function(){if(this.__needsUpdateStyles){this.__needsUpdateStyles=false;updateDebouncer=debounce(updateDebouncer,this._updateStyles);}else{this._applyCustomProperties();}},_applyCustomProperties:function(){var element=this.__appliedElement;this._computeStyleProperties();var props=this._styleProperties;var rules=styleUtil.rulesForStyle(element);if(!rules){return;}
element.textContent=styleUtil.toCssText(rules,function(rule){var css=rule.cssText=rule.parsedCssText;if(rule.propertyInfo&&rule.propertyInfo.cssText){css=cssParse.removeCustomPropAssignment(css);rule.cssText=propertyUtils.valueForProperties(css,props);}});}});}());Polymer.Templatizer={properties:{__hideTemplateChildren__:{observer:'_showHideChildren'}},_instanceProps:Polymer.nob,_parentPropPrefix:'_parent_',templatize:function(template){this._templatized=template;if(!template._content){template._content=template.content;}
if(template._content._ctor){this.ctor=template._content._ctor;this._prepParentProperties(this.ctor.prototype,template);return;}
var archetype=Object.create(Polymer.Base);this._customPrepAnnotations(archetype,template);this._prepParentProperties(archetype,template);archetype._prepEffects();this._customPrepEffects(archetype);archetype._prepBehaviors();archetype._prepPropertyInfo();archetype._prepBindings();archetype._notifyPathUp=this._notifyPathUpImpl;archetype._scopeElementClass=this._scopeElementClassImpl;archetype.listen=this._listenImpl;archetype._showHideChildren=this._showHideChildrenImpl;archetype.__setPropertyOrig=this.__setProperty;archetype.__setProperty=this.__setPropertyImpl;var _constructor=this._constructorImpl;var ctor=function TemplateInstance(model,host){_constructor.call(this,model,host);};ctor.prototype=archetype;archetype.constructor=ctor;template._content._ctor=ctor;this.ctor=ctor;},_getRootDataHost:function(){return this.dataHost&&this.dataHost._rootDataHost||this.dataHost;},_showHideChildrenImpl:function(hide){var c=this._children;for(var i=0;i<c.length;i++){var n=c[i];if(Boolean(hide)!=Boolean(n.__hideTemplateChildren__)){if(n.nodeType===Node.TEXT_NODE){if(hide){n.__polymerTextContent__=n.textContent;n.textContent='';}else{n.textContent=n.__polymerTextContent__;}}else if(n.style){if(hide){n.__polymerDisplay__=n.style.display;n.style.display='none';}else{n.style.display=n.__polymerDisplay__;}}}
n.__hideTemplateChildren__=hide;}},__setPropertyImpl:function(property,value,fromAbove,node){if(node&&node.__hideTemplateChildren__&&property=='textContent'){property='__polymerTextContent__';}
this.__setPropertyOrig(property,value,fromAbove,node);},_debounceTemplate:function(fn){Polymer.dom.addDebouncer(this.debounce('_debounceTemplate',fn));},_flushTemplates:function(){Polymer.dom.flush();},_customPrepEffects:function(archetype){var parentProps=archetype._parentProps;for(var prop in parentProps){archetype._addPropertyEffect(prop,'function',this._createHostPropEffector(prop));}
for(prop in this._instanceProps){archetype._addPropertyEffect(prop,'function',this._createInstancePropEffector(prop));}},_customPrepAnnotations:function(archetype,template){archetype._template=template;var c=template._content;if(!c._notes){var rootDataHost=archetype._rootDataHost;if(rootDataHost){Polymer.Annotations.prepElement=function(){rootDataHost._prepElement();};}
c._notes=Polymer.Annotations.parseAnnotations(template);Polymer.Annotations.prepElement=null;this._processAnnotations(c._notes);}
archetype._notes=c._notes;archetype._parentProps=c._parentProps;},_prepParentProperties:function(archetype,template){var parentProps=this._parentProps=archetype._parentProps;if(this._forwardParentProp&&parentProps){var proto=archetype._parentPropProto;var prop;if(!proto){for(prop in this._instanceProps){delete parentProps[prop];}
proto=archetype._parentPropProto=Object.create(null);if(template!=this){Polymer.Bind.prepareModel(proto);Polymer.Base.prepareModelNotifyPath(proto);}
for(prop in parentProps){var parentProp=this._parentPropPrefix+prop;var effects=[{kind:'function',effect:this._createForwardPropEffector(prop),fn:Polymer.Bind._functionEffect},{kind:'notify',fn:Polymer.Bind._notifyEffect,effect:{event:Polymer.CaseMap.camelToDashCase(parentProp)+'-changed'}}];proto._propertyEffects=proto._propertyEffects||{};proto._propertyEffects[parentProp]=effects;Polymer.Bind._createAccessors(proto,parentProp,effects);}}
var self=this;if(template!=this){Polymer.Bind.prepareInstance(template);template._forwardParentProp=function(source,value){self._forwardParentProp(source,value);};}
this._extendTemplate(template,proto);template._pathEffector=function(path,value,fromAbove){return self._pathEffectorImpl(path,value,fromAbove);};}},_createForwardPropEffector:function(prop){return function(source,value){this._forwardParentProp(prop,value);};},_createHostPropEffector:function(prop){var prefix=this._parentPropPrefix;return function(source,value){this.dataHost._templatized[prefix+prop]=value;};},_createInstancePropEffector:function(prop){return function(source,value,old,fromAbove){if(!fromAbove){this.dataHost._forwardInstanceProp(this,prop,value);}};},_extendTemplate:function(template,proto){var n$=Object.getOwnPropertyNames(proto);if(proto._propertySetter){template._propertySetter=proto._propertySetter;}
for(var i=0,n;i<n$.length&&(n=n$[i]);i++){var val=template[n];if(val&&n=='_propertyEffects'){var pe=Polymer.Base.mixin({},val);template._propertyEffects=Polymer.Base.mixin(pe,proto._propertyEffects);}else{var pd=Object.getOwnPropertyDescriptor(proto,n);Object.defineProperty(template,n,pd);if(val!==undefined){template._propertySetter(n,val);}}}},_showHideChildren:function(hidden){},_forwardInstancePath:function(inst,path,value){},_forwardInstanceProp:function(inst,prop,value){},_notifyPathUpImpl:function(path,value){var dataHost=this.dataHost;var root=Polymer.Path.root(path);dataHost._forwardInstancePath.call(dataHost,this,path,value);if(root in dataHost._parentProps){dataHost._templatized._notifyPath(dataHost._parentPropPrefix+path,value);}},_pathEffectorImpl:function(path,value,fromAbove){if(this._forwardParentPath){if(path.indexOf(this._parentPropPrefix)===0){var subPath=path.substring(this._parentPropPrefix.length);var model=Polymer.Path.root(subPath);if(model in this._parentProps){this._forwardParentPath(subPath,value);}}}
Polymer.Base._pathEffector.call(this._templatized,path,value,fromAbove);},_constructorImpl:function(model,host){this._rootDataHost=host._getRootDataHost();this._setupConfigure(model);this._registerHost(host);this._beginHosting();this.root=this.instanceTemplate(this._template);this.root.__noContent=!this._notes._hasContent;this.root.__styleScoped=true;this._endHosting();this._marshalAnnotatedNodes();this._marshalInstanceEffects();this._marshalAnnotatedListeners();var children=[];for(var n=this.root.firstChild;n;n=n.nextSibling){children.push(n);n._templateInstance=this;}
this._children=children;if(host.__hideTemplateChildren__){this._showHideChildren(true);}
this._tryReady();},_listenImpl:function(node,eventName,methodName){var model=this;var host=this._rootDataHost;var handler=host._createEventHandler(node,eventName,methodName);var decorated=function(e){e.model=model;handler(e);};host._listen(node,eventName,decorated);},_scopeElementClassImpl:function(node,value){var host=this._rootDataHost;if(host){return host._scopeElementClass(node,value);}
return value;},stamp:function(model){model=model||{};if(this._parentProps){var templatized=this._templatized;for(var prop in this._parentProps){if(model[prop]===undefined){model[prop]=templatized[this._parentPropPrefix+prop];}}}
return new this.ctor(model,this);},modelForElement:function(el){var model;while(el){if(model=el._templateInstance){if(model.dataHost!=this){el=model.dataHost;}else{return model;}}else{el=el.parentNode;}}}};Polymer({is:'dom-template',extends:'template',_template:null,behaviors:[Polymer.Templatizer],ready:function(){this.templatize(this);}});Polymer._collections=new WeakMap();Polymer.Collection=function(userArray){Polymer._collections.set(userArray,this);this.userArray=userArray;this.store=userArray.slice();this.initMap();};Polymer.Collection.prototype={constructor:Polymer.Collection,initMap:function(){var omap=this.omap=new WeakMap();var pmap=this.pmap={};var s=this.store;for(var i=0;i<s.length;i++){var item=s[i];if(item&&typeof item=='object'){omap.set(item,i);}else{pmap[item]=i;}}},add:function(item){var key=this.store.push(item)-1;if(item&&typeof item=='object'){this.omap.set(item,key);}else{this.pmap[item]=key;}
return'#'+key;},removeKey:function(key){if(key=this._parseKey(key)){this._removeFromMap(this.store[key]);delete this.store[key];}},_removeFromMap:function(item){if(item&&typeof item=='object'){this.omap.delete(item);}else{delete this.pmap[item];}},remove:function(item){var key=this.getKey(item);this.removeKey(key);return key;},getKey:function(item){var key;if(item&&typeof item=='object'){key=this.omap.get(item);}else{key=this.pmap[item];}
if(key!=undefined){return'#'+key;}},getKeys:function(){return Object.keys(this.store).map(function(key){return'#'+key;});},_parseKey:function(key){if(key&&key[0]=='#'){return key.slice(1);}},setItem:function(key,item){if(key=this._parseKey(key)){var old=this.store[key];if(old){this._removeFromMap(old);}
if(item&&typeof item=='object'){this.omap.set(item,key);}else{this.pmap[item]=key;}
this.store[key]=item;}},getItem:function(key){if(key=this._parseKey(key)){return this.store[key];}},getItems:function(){var items=[],store=this.store;for(var key in store){items.push(store[key]);}
return items;},_applySplices:function(splices){var keyMap={},key;for(var i=0,s;i<splices.length&&(s=splices[i]);i++){s.addedKeys=[];for(var j=0;j<s.removed.length;j++){key=this.getKey(s.removed[j]);keyMap[key]=keyMap[key]?null:-1;}
for(j=0;j<s.addedCount;j++){var item=this.userArray[s.index+j];key=this.getKey(item);key=key===undefined?this.add(item):key;keyMap[key]=keyMap[key]?null:1;s.addedKeys.push(key);}}
var removed=[];var added=[];for(key in keyMap){if(keyMap[key]<0){this.removeKey(key);removed.push(key);}
if(keyMap[key]>0){added.push(key);}}
return[{removed:removed,added:added}];}};Polymer.Collection.get=function(userArray){return Polymer._collections.get(userArray)||new Polymer.Collection(userArray);};Polymer.Collection.applySplices=function(userArray,splices){var coll=Polymer._collections.get(userArray);return coll?coll._applySplices(splices):null;};Polymer({is:'dom-repeat',extends:'template',_template:null,properties:{items:{type:Array},as:{type:String,value:'item'},indexAs:{type:String,value:'index'},sort:{type:Function,observer:'_sortChanged'},filter:{type:Function,observer:'_filterChanged'},observe:{type:String,observer:'_observeChanged'},delay:Number,renderedItemCount:{type:Number,notify:!Polymer.Settings.suppressTemplateNotifications,readOnly:true},initialCount:{type:Number,observer:'_initializeChunking'},targetFramerate:{type:Number,value:20},notifyDomChange:{type:Boolean},_targetFrameTime:{type:Number,computed:'_computeFrameTime(targetFramerate)'}},behaviors:[Polymer.Templatizer],observers:['_itemsChanged(items.*)'],created:function(){this._instances=[];this._pool=[];this._limit=Infinity;var self=this;this._boundRenderChunk=function(){self._renderChunk();};},detached:function(){this.__isDetached=true;for(var i=0;i<this._instances.length;i++){this._detachInstance(i);}},attached:function(){if(this.__isDetached){this.__isDetached=false;var refNode;var parentNode=Polymer.dom(this).parentNode;if(parentNode.localName==this.is){refNode=parentNode;parentNode=Polymer.dom(parentNode).parentNode;}else{refNode=this;}
var parent=Polymer.dom(parentNode);for(var i=0;i<this._instances.length;i++){this._attachInstance(i,parent,refNode);}}},ready:function(){this._instanceProps={__key__:true};this._instanceProps[this.as]=true;this._instanceProps[this.indexAs]=true;if(!this.ctor){this.templatize(this);}},_sortChanged:function(sort){var dataHost=this._getRootDataHost();this._sortFn=sort&&(typeof sort=='function'?sort:function(){return dataHost[sort].apply(dataHost,arguments);});this._needFullRefresh=true;if(this.items){this._debounceTemplate(this._render);}},_filterChanged:function(filter){var dataHost=this._getRootDataHost();this._filterFn=filter&&(typeof filter=='function'?filter:function(){return dataHost[filter].apply(dataHost,arguments);});this._needFullRefresh=true;if(this.items){this._debounceTemplate(this._render);}},_computeFrameTime:function(rate){return Math.ceil(1000/rate);},_initializeChunking:function(){if(this.initialCount){this._limit=this.initialCount;this._chunkCount=this.initialCount;this._lastChunkTime=performance.now();}},_tryRenderChunk:function(){if(this.items&&this._limit<this.items.length){this.debounce('renderChunk',this._requestRenderChunk);}},_requestRenderChunk:function(){requestAnimationFrame(this._boundRenderChunk);},_renderChunk:function(){var currChunkTime=performance.now();var ratio=this._targetFrameTime/(currChunkTime-this._lastChunkTime);this._chunkCount=Math.round(this._chunkCount*ratio)||1;this._limit+=this._chunkCount;this._lastChunkTime=currChunkTime;this._debounceTemplate(this._render);},_observeChanged:function(){this._observePaths=this.observe&&this.observe.replace('.*','.').split(' ');},_itemsChanged:function(change){if(change.path=='items'){if(Array.isArray(this.items)){this.collection=Polymer.Collection.get(this.items);}else if(!this.items){this.collection=null;}else{this._error(this._logf('dom-repeat','expected array for `items`,'+' found',this.items));}
this._keySplices=[];this._indexSplices=[];this._needFullRefresh=true;this._initializeChunking();this._debounceTemplate(this._render);}else if(change.path=='items.splices'){this._keySplices=this._keySplices.concat(change.value.keySplices);this._indexSplices=this._indexSplices.concat(change.value.indexSplices);this._debounceTemplate(this._render);}else{var subpath=change.path.slice(6);this._forwardItemPath(subpath,change.value);this._checkObservedPaths(subpath);}},_checkObservedPaths:function(path){if(this._observePaths){path=path.substring(path.indexOf('.')+1);var paths=this._observePaths;for(var i=0;i<paths.length;i++){if(path.indexOf(paths[i])===0){this._needFullRefresh=true;if(this.delay){this.debounce('render',this._render,this.delay);}else{this._debounceTemplate(this._render);}
return;}}}},render:function(){this._needFullRefresh=true;this._debounceTemplate(this._render);this._flushTemplates();},_render:function(){if(this._needFullRefresh){this._applyFullRefresh();this._needFullRefresh=false;}else if(this._keySplices.length){if(this._sortFn){this._applySplicesUserSort(this._keySplices);}else{if(this._filterFn){this._applyFullRefresh();}else{this._applySplicesArrayOrder(this._indexSplices);}}}else{}
this._keySplices=[];this._indexSplices=[];var keyToIdx=this._keyToInstIdx={};for(var i=this._instances.length-1;i>=0;i--){var inst=this._instances[i];if(inst.isPlaceholder&&i<this._limit){inst=this._insertInstance(i,inst.__key__);}else if(!inst.isPlaceholder&&i>=this._limit){inst=this._downgradeInstance(i,inst.__key__);}
keyToIdx[inst.__key__]=i;if(!inst.isPlaceholder){inst.__setProperty(this.indexAs,i,true);}}
this._pool.length=0;this._setRenderedItemCount(this._instances.length);if(!Polymer.Settings.suppressTemplateNotifications||this.notifyDomChange){this.fire('dom-change');}
this._tryRenderChunk();},_applyFullRefresh:function(){var c=this.collection;var keys;if(this._sortFn){keys=c?c.getKeys():[];}else{keys=[];var items=this.items;if(items){for(var i=0;i<items.length;i++){keys.push(c.getKey(items[i]));}}}
var self=this;if(this._filterFn){keys=keys.filter(function(a){return self._filterFn(c.getItem(a));});}
if(this._sortFn){keys.sort(function(a,b){return self._sortFn(c.getItem(a),c.getItem(b));});}
for(i=0;i<keys.length;i++){var key=keys[i];var inst=this._instances[i];if(inst){inst.__key__=key;if(!inst.isPlaceholder&&i<this._limit){inst.__setProperty(this.as,c.getItem(key),true);}}else if(i<this._limit){this._insertInstance(i,key);}else{this._insertPlaceholder(i,key);}}
for(var j=this._instances.length-1;j>=i;j--){this._detachAndRemoveInstance(j);}},_numericSort:function(a,b){return a-b;},_applySplicesUserSort:function(splices){var c=this.collection;var keyMap={};var key;for(var i=0,s;i<splices.length&&(s=splices[i]);i++){for(var j=0;j<s.removed.length;j++){key=s.removed[j];keyMap[key]=keyMap[key]?null:-1;}
for(j=0;j<s.added.length;j++){key=s.added[j];keyMap[key]=keyMap[key]?null:1;}}
var removedIdxs=[];var addedKeys=[];for(key in keyMap){if(keyMap[key]===-1){removedIdxs.push(this._keyToInstIdx[key]);}
if(keyMap[key]===1){addedKeys.push(key);}}
if(removedIdxs.length){removedIdxs.sort(this._numericSort);for(i=removedIdxs.length-1;i>=0;i--){var idx=removedIdxs[i];if(idx!==undefined){this._detachAndRemoveInstance(idx);}}}
var self=this;if(addedKeys.length){if(this._filterFn){addedKeys=addedKeys.filter(function(a){return self._filterFn(c.getItem(a));});}
addedKeys.sort(function(a,b){return self._sortFn(c.getItem(a),c.getItem(b));});var start=0;for(i=0;i<addedKeys.length;i++){start=this._insertRowUserSort(start,addedKeys[i]);}}},_insertRowUserSort:function(start,key){var c=this.collection;var item=c.getItem(key);var end=this._instances.length-1;var idx=-1;while(start<=end){var mid=start+end>>1;var midKey=this._instances[mid].__key__;var cmp=this._sortFn(c.getItem(midKey),item);if(cmp<0){start=mid+1;}else if(cmp>0){end=mid-1;}else{idx=mid;break;}}
if(idx<0){idx=end+1;}
this._insertPlaceholder(idx,key);return idx;},_applySplicesArrayOrder:function(splices){for(var i=0,s;i<splices.length&&(s=splices[i]);i++){for(var j=0;j<s.removed.length;j++){this._detachAndRemoveInstance(s.index);}
for(j=0;j<s.addedKeys.length;j++){this._insertPlaceholder(s.index+j,s.addedKeys[j]);}}},_detachInstance:function(idx){var inst=this._instances[idx];if(!inst.isPlaceholder){for(var i=0;i<inst._children.length;i++){var el=inst._children[i];Polymer.dom(inst.root).appendChild(el);}
return inst;}},_attachInstance:function(idx,parent,refNode){var inst=this._instances[idx];if(!inst.isPlaceholder){parent.insertBefore(inst.root,refNode);}},_detachAndRemoveInstance:function(idx){var inst=this._detachInstance(idx);if(inst){this._pool.push(inst);}
this._instances.splice(idx,1);},_insertPlaceholder:function(idx,key){this._instances.splice(idx,0,{isPlaceholder:true,__key__:key});},_stampInstance:function(idx,key){var model={__key__:key};model[this.as]=this.collection.getItem(key);model[this.indexAs]=idx;return this.stamp(model);},_insertInstance:function(idx,key){var inst=this._pool.pop();if(inst){inst.__setProperty(this.as,this.collection.getItem(key),true);inst.__setProperty('__key__',key,true);}else{inst=this._stampInstance(idx,key);}
var beforeRow=this._instances[idx+1];var beforeNode=beforeRow&&!beforeRow.isPlaceholder?beforeRow._children[0]:this;var parentNode=Polymer.dom(this).parentNode;if(parentNode.localName==this.is){if(beforeNode==this){beforeNode=parentNode;}
parentNode=Polymer.dom(parentNode).parentNode;}
Polymer.dom(parentNode).insertBefore(inst.root,beforeNode);this._instances[idx]=inst;return inst;},_downgradeInstance:function(idx,key){var inst=this._detachInstance(idx);if(inst){this._pool.push(inst);}
inst={isPlaceholder:true,__key__:key};this._instances[idx]=inst;return inst;},_showHideChildren:function(hidden){for(var i=0;i<this._instances.length;i++){if(!this._instances[i].isPlaceholder)
this._instances[i]._showHideChildren(hidden);}},_forwardInstanceProp:function(inst,prop,value){if(prop==this.as){var idx;if(this._sortFn||this._filterFn){idx=this.items.indexOf(this.collection.getItem(inst.__key__));}else{idx=inst[this.indexAs];}
this.set('items.'+idx,value);}},_forwardInstancePath:function(inst,path,value){if(path.indexOf(this.as+'.')===0){this._notifyPath('items.'+inst.__key__+'.'+path.slice(this.as.length+1),value);}},_forwardParentProp:function(prop,value){var i$=this._instances;for(var i=0,inst;i<i$.length&&(inst=i$[i]);i++){if(!inst.isPlaceholder){inst.__setProperty(prop,value,true);}}},_forwardParentPath:function(path,value){var i$=this._instances;for(var i=0,inst;i<i$.length&&(inst=i$[i]);i++){if(!inst.isPlaceholder){inst._notifyPath(path,value,true);}}},_forwardItemPath:function(path,value){if(this._keyToInstIdx){var dot=path.indexOf('.');var key=path.substring(0,dot<0?path.length:dot);var idx=this._keyToInstIdx[key];var inst=this._instances[idx];if(inst&&!inst.isPlaceholder){if(dot>=0){path=this.as+'.'+path.substring(dot+1);inst._notifyPath(path,value,true);}else{inst.__setProperty(this.as,value,true);}}}},itemForElement:function(el){var instance=this.modelForElement(el);return instance&&instance[this.as];},keyForElement:function(el){var instance=this.modelForElement(el);return instance&&instance.__key__;},indexForElement:function(el){var instance=this.modelForElement(el);return instance&&instance[this.indexAs];}});Polymer({is:'array-selector',_template:null,properties:{items:{type:Array,observer:'clearSelection'},multi:{type:Boolean,value:false,observer:'clearSelection'},selected:{type:Object,notify:true},selectedItem:{type:Object,notify:true},toggle:{type:Boolean,value:false}},clearSelection:function(){if(Array.isArray(this.selected)){for(var i=0;i<this.selected.length;i++){this.unlinkPaths('selected.'+i);}}else{this.unlinkPaths('selected');this.unlinkPaths('selectedItem');}
if(this.multi){if(!this.selected||this.selected.length){this.selected=[];this._selectedColl=Polymer.Collection.get(this.selected);}}else{this.selected=null;this._selectedColl=null;}
this.selectedItem=null;},isSelected:function(item){if(this.multi){return this._selectedColl.getKey(item)!==undefined;}else{return this.selected==item;}},deselect:function(item){if(this.multi){if(this.isSelected(item)){var skey=this._selectedColl.getKey(item);this.arrayDelete('selected',item);this.unlinkPaths('selected.'+skey);}}else{this.selected=null;this.selectedItem=null;this.unlinkPaths('selected');this.unlinkPaths('selectedItem');}},select:function(item){var icol=Polymer.Collection.get(this.items);var key=icol.getKey(item);if(this.multi){if(this.isSelected(item)){if(this.toggle){this.deselect(item);}}else{this.push('selected',item);var skey=this._selectedColl.getKey(item);this.linkPaths('selected.'+skey,'items.'+key);}}else{if(this.toggle&&item==this.selected){this.deselect();}else{this.selected=item;this.selectedItem=item;this.linkPaths('selected','items.'+key);this.linkPaths('selectedItem','items.'+key);}}}});Polymer({is:'dom-if',extends:'template',_template:null,properties:{'if':{type:Boolean,value:false,observer:'_queueRender'},restamp:{type:Boolean,value:false,observer:'_queueRender'},notifyDomChange:{type:Boolean}},behaviors:[Polymer.Templatizer],_queueRender:function(){this._debounceTemplate(this._render);},detached:function(){var parentNode=this.parentNode;if(parentNode&&parentNode.localName==this.is){parentNode=Polymer.dom(parentNode).parentNode;}
if(!parentNode||parentNode.nodeType==Node.DOCUMENT_FRAGMENT_NODE&&(!Polymer.Settings.hasShadow||!(parentNode instanceof ShadowRoot))){this._teardownInstance();}},attached:function(){if(this.if&&this.ctor){this.async(this._ensureInstance);}},render:function(){this._flushTemplates();},_render:function(){if(this.if){if(!this.ctor){this.templatize(this);}
this._ensureInstance();this._showHideChildren();}else if(this.restamp){this._teardownInstance();}
if(!this.restamp&&this._instance){this._showHideChildren();}
if(this.if!=this._lastIf){if(!Polymer.Settings.suppressTemplateNotifications||this.notifyDomChange){this.fire('dom-change');}
this._lastIf=this.if;}},_ensureInstance:function(){var refNode;var parentNode=Polymer.dom(this).parentNode;if(parentNode&&parentNode.localName==this.is){refNode=parentNode;parentNode=Polymer.dom(parentNode).parentNode;}else{refNode=this;}
if(parentNode){if(!this._instance){this._instance=this.stamp();var root=this._instance.root;Polymer.dom(parentNode).insertBefore(root,refNode);}else{var c$=this._instance._children;if(c$&&c$.length){var lastChild=Polymer.dom(refNode).previousSibling;if(lastChild!==c$[c$.length-1]){for(var i=0,n;i<c$.length&&(n=c$[i]);i++){Polymer.dom(parentNode).insertBefore(n,refNode);}}}}}},_teardownInstance:function(){if(this._instance){var c$=this._instance._children;if(c$&&c$.length){var parent=Polymer.dom(Polymer.dom(c$[0]).parentNode);for(var i=0,n;i<c$.length&&(n=c$[i]);i++){parent.removeChild(n);}}
this._instance=null;}},_showHideChildren:function(){var hidden=this.__hideTemplateChildren__||!this.if;if(this._instance){this._instance._showHideChildren(hidden);}},_forwardParentProp:function(prop,value){if(this._instance){this._instance.__setProperty(prop,value,true);}},_forwardParentPath:function(path,value){if(this._instance){this._instance._notifyPath(path,value,true);}}});Polymer({is:'dom-bind',properties:{notifyDomChange:{type:Boolean}},extends:'template',_template:null,created:function(){var self=this;Polymer.RenderStatus.whenReady(function(){if(document.readyState=='loading'){document.addEventListener('DOMContentLoaded',function(){self._markImportsReady();});}else{self._markImportsReady();}});},_ensureReady:function(){if(!this._readied){this._readySelf();}},_markImportsReady:function(){this._importsReady=true;this._ensureReady();},_registerFeatures:function(){this._prepConstructor();},_insertChildren:function(){var refNode;var parentNode=Polymer.dom(this).parentNode;if(parentNode.localName==this.is){refNode=parentNode;parentNode=Polymer.dom(parentNode).parentNode;}else{refNode=this;}
Polymer.dom(parentNode).insertBefore(this.root,refNode);},_removeChildren:function(){if(this._children){for(var i=0;i<this._children.length;i++){this.root.appendChild(this._children[i]);}}},_initFeatures:function(){},_scopeElementClass:function(element,selector){if(this.dataHost){return this.dataHost._scopeElementClass(element,selector);}else{return selector;}},_configureInstanceProperties:function(){},_prepConfigure:function(){var config={};for(var prop in this._propertyEffects){config[prop]=this[prop];}
var setupConfigure=this._setupConfigure;this._setupConfigure=function(){setupConfigure.call(this,config);};},attached:function(){if(this._importsReady){this.render();}},detached:function(){this._removeChildren();},render:function(){this._ensureReady();if(!this._children){this._template=this;this._prepAnnotations();this._prepEffects();this._prepBehaviors();this._prepConfigure();this._prepBindings();this._prepPropertyInfo();Polymer.Base._initFeatures.call(this);this._children=Polymer.TreeApi.arrayCopyChildNodes(this.root);}
this._insertChildren();if(!Polymer.Settings.suppressTemplateNotifications||this.notifyDomChange){this.fire('dom-change');}}});'use strict';if(!Polymer.Settings.useNativeShadow){tr.showPanic('Polymer error','base only works in shadow mode');}'use strict';const global=this.window||this.global;this.tr=(function(){if(global.tr)return global.tr;function exportPath(name){const parts=name.split('.');let cur=global;for(let part;parts.length&&(part=parts.shift());){if(part in cur){cur=cur[part];}else{cur=cur[part]={};}}
return cur;}
function isExported(name){const parts=name.split('.');let cur=global;for(let part;parts.length&&(part=parts.shift());){if(part in cur){cur=cur[part];}else{return false;}}
return true;}
function isDefined(name){const parts=name.split('.');let curObject=global;for(let i=0;i<parts.length;i++){const partName=parts[i];const nextObject=curObject[partName];if(nextObject===undefined)return false;curObject=nextObject;}
return true;}
let panicElement=undefined;const rawPanicMessages=[];function showPanicElementIfNeeded(){if(panicElement)return;const panicOverlay=document.createElement('div');panicOverlay.style.backgroundColor='white';panicOverlay.style.border='3px solid red';panicOverlay.style.boxSizing='border-box';panicOverlay.style.color='black';panicOverlay.style.display='flex';panicOverlay.style.height='100%';panicOverlay.style.left=0;panicOverlay.style.padding='8px';panicOverlay.style.position='fixed';panicOverlay.style.top=0;panicOverlay.style.webkitFlexDirection='column';panicOverlay.style.width='100%';panicElement=document.createElement('div');panicElement.style.webkitFlex='1 1 auto';panicElement.style.overflow='auto';panicOverlay.appendChild(panicElement);if(!document.body){setTimeout(function(){document.body.appendChild(panicOverlay);},150);}else{document.body.appendChild(panicOverlay);}}
function showPanic(panicTitle,panicDetails){if(tr.isHeadless){if(panicDetails instanceof Error)throw panicDetails;throw new Error('Panic: '+panicTitle+':\n'+panicDetails);}
if(panicDetails instanceof Error){panicDetails=panicDetails.stack;}
showPanicElementIfNeeded();const panicMessageEl=document.createElement('div');panicMessageEl.innerHTML='<h2 id="message"></h2>'+'<pre id="details"></pre>';panicMessageEl.querySelector('#message').textContent=panicTitle;panicMessageEl.querySelector('#details').textContent=panicDetails;panicElement.appendChild(panicMessageEl);rawPanicMessages.push({title:panicTitle,details:panicDetails});}
function hasPanic(){return rawPanicMessages.length!==0;}
function getPanicText(){return rawPanicMessages.map(function(msg){return msg.title;}).join(', ');}
function exportTo(namespace,fn){const obj=exportPath(namespace);const exports=fn();for(const propertyName in exports){const propertyDescriptor=Object.getOwnPropertyDescriptor(exports,propertyName);if(propertyDescriptor){Object.defineProperty(obj,propertyName,propertyDescriptor);}}}
function initialize(){if(global.isVinn){tr.isVinn=true;}else if(global.process&&global.process.versions.node){tr.isNode=true;}else{tr.isVinn=false;tr.isNode=false;tr.doc=document;tr.isMac=/Mac/.test(navigator.platform);tr.isWindows=/Win/.test(navigator.platform);tr.isChromeOS=/CrOS/.test(navigator.userAgent);tr.isLinux=/Linux/.test(navigator.userAgent);}
tr.isHeadless=tr.isVinn||tr.isNode;}
return{initialize,exportTo,isExported,isDefined,showPanic,hasPanic,getPanicText,};})();tr.initialize();'use strict';tr.exportTo('tr.b',function(){function EventTarget(){}
EventTarget.decorate=function(target){for(const k in EventTarget.prototype){if(k==='decorate')continue;const v=EventTarget.prototype[k];if(typeof v!=='function')continue;target[k]=v;}};EventTarget.prototype={addEventListener(type,handler){if(!this.listeners_){this.listeners_=Object.create(null);}
if(!(type in this.listeners_)){this.listeners_[type]=[handler];}else{const handlers=this.listeners_[type];if(handlers.indexOf(handler)<0){handlers.push(handler);}}},removeEventListener(type,handler){if(!this.listeners_)return;if(type in this.listeners_){const handlers=this.listeners_[type];const index=handlers.indexOf(handler);if(index>=0){if(handlers.length===1){delete this.listeners_[type];}else{handlers.splice(index,1);}}}},dispatchEvent(event){if(!this.listeners_)return true;event.__defineGetter__('target',()=>this);const realPreventDefault=event.preventDefault;event.preventDefault=function(){realPreventDefault.call(this);this.rawReturnValue=false;};const type=event.type;let prevented=0;if(type in this.listeners_){const handlers=this.listeners_[type].concat();for(let i=0,handler;handler=handlers[i];i++){if(handler.handleEvent){prevented|=handler.handleEvent.call(handler,event)===false;}else{prevented|=handler.call(this,event)===false;}}}
return!prevented&&event.rawReturnValue;},async dispatchAsync(event){if(!this.listeners_)return true;const listeners=this.listeners_[event.type];if(listeners===undefined)return;await Promise.all(listeners.slice().map(listener=>{if(listener.handleEvent){return listener.handleEvent.call(listener,event);}
return listener.call(this,event);}));},hasEventListener(type){return(this.listeners_!==undefined&&this.listeners_[type]!==undefined);}};return{EventTarget,};});'use strict';tr.exportTo('tr.b',function(){function RegisteredTypeInfo(constructor,metadata){this.constructor=constructor;this.metadata=metadata;}
const BASIC_REGISTRY_MODE='BASIC_REGISTRY_MODE';const TYPE_BASED_REGISTRY_MODE='TYPE_BASED_REGISTRY_MODE';const ALL_MODES={BASIC_REGISTRY_MODE:true,TYPE_BASED_REGISTRY_MODE:true};function ExtensionRegistryOptions(mode){if(mode===undefined){throw new Error('Mode is required');}
if(!ALL_MODES[mode]){throw new Error('Not a mode.');}
this.mode_=mode;this.defaultMetadata_={};this.defaultConstructor_=undefined;this.defaultTypeInfo_=undefined;this.frozen_=false;}
ExtensionRegistryOptions.prototype={freeze(){if(this.frozen_){throw new Error('Frozen');}
this.frozen_=true;},get mode(){return this.mode_;},get defaultMetadata(){return this.defaultMetadata_;},set defaultMetadata(defaultMetadata){if(this.frozen_){throw new Error('Frozen');}
this.defaultMetadata_=defaultMetadata;this.defaultTypeInfo_=undefined;},get defaultConstructor(){return this.defaultConstructor_;},set defaultConstructor(defaultConstructor){if(this.frozen_){throw new Error('Frozen');}
this.defaultConstructor_=defaultConstructor;this.defaultTypeInfo_=undefined;},get defaultTypeInfo(){if(this.defaultTypeInfo_===undefined&&this.defaultConstructor_){this.defaultTypeInfo_=new RegisteredTypeInfo(this.defaultConstructor,this.defaultMetadata);}
return this.defaultTypeInfo_;},validateConstructor(constructor){if(!this.mandatoryBaseClass)return;let curProto=constructor.prototype.__proto__;let ok=false;while(curProto){if(curProto===this.mandatoryBaseClass.prototype){ok=true;break;}
curProto=curProto.__proto__;}
if(!ok){throw new Error(constructor+'must be subclass of '+registry);}}};return{BASIC_REGISTRY_MODE,TYPE_BASED_REGISTRY_MODE,ExtensionRegistryOptions,RegisteredTypeInfo,};});'use strict';tr.exportTo('tr.b',function(){let Event;if(tr.isHeadless){function HeadlessEvent(type,opt_bubbles,opt_preventable){this.type=type;this.bubbles=(opt_bubbles!==undefined?!!opt_bubbles:false);this.cancelable=(opt_preventable!==undefined?!!opt_preventable:false);this.defaultPrevented=false;this.cancelBubble=false;}
HeadlessEvent.prototype={preventDefault(){this.defaultPrevented=true;},stopPropagation(){this.cancelBubble=true;}};Event=HeadlessEvent;}else{function TrEvent(type,opt_bubbles,opt_preventable){const e=tr.doc.createEvent('Event');e.initEvent(type,!!opt_bubbles,!!opt_preventable);e.__proto__=global.Event.prototype;return e;}
TrEvent.prototype={__proto__:global.Event.prototype};Event=TrEvent;}
function dispatchSimpleEvent(target,type,opt_bubbles,opt_cancelable,opt_fields){const e=new tr.b.Event(type,opt_bubbles,opt_cancelable);Object.assign(e,opt_fields);return target.dispatchEvent(e);}
async function dispatchSimpleEventAsync(target,type,opt_fields){const e=new tr.b.Event(type,false,false);Object.assign(e,opt_fields);return await target.dispatchAsync(e);}
return{Event,dispatchSimpleEvent,dispatchSimpleEventAsync,};});'use strict';tr.exportTo('tr.b',function(){const RegisteredTypeInfo=tr.b.RegisteredTypeInfo;const ExtensionRegistryOptions=tr.b.ExtensionRegistryOptions;function decorateBasicExtensionRegistry(registry,extensionRegistryOptions){const savedStateStack=[];registry.registeredTypeInfos_=[];registry.register=function(constructor,opt_metadata){if(registry.findIndexOfRegisteredConstructor(constructor)!==undefined){throw new Error('Handler already registered for '+constructor);}
extensionRegistryOptions.validateConstructor(constructor);const metadata={};for(const k in extensionRegistryOptions.defaultMetadata){metadata[k]=extensionRegistryOptions.defaultMetadata[k];}
if(opt_metadata){for(const k in opt_metadata){metadata[k]=opt_metadata[k];}}
const typeInfo=new RegisteredTypeInfo(constructor,metadata);let e=new tr.b.Event('will-register');e.typeInfo=typeInfo;registry.dispatchEvent(e);registry.registeredTypeInfos_.push(typeInfo);e=new tr.b.Event('registry-changed');registry.dispatchEvent(e);};registry.pushCleanStateBeforeTest=function(){savedStateStack.push(registry.registeredTypeInfos_);registry.registeredTypeInfos_=[];const e=new tr.b.Event('registry-changed');registry.dispatchEvent(e);};registry.popCleanStateAfterTest=function(){registry.registeredTypeInfos_=savedStateStack[0];savedStateStack.splice(0,1);const e=new tr.b.Event('registry-changed');registry.dispatchEvent(e);};registry.findIndexOfRegisteredConstructor=function(constructor){for(let i=0;i<registry.registeredTypeInfos_.length;i++){if(registry.registeredTypeInfos_[i].constructor===constructor){return i;}}
return undefined;};registry.unregister=function(constructor){const foundIndex=registry.findIndexOfRegisteredConstructor(constructor);if(foundIndex===undefined){throw new Error(constructor+' not registered');}
registry.registeredTypeInfos_.splice(foundIndex,1);const e=new tr.b.Event('registry-changed');registry.dispatchEvent(e);};registry.getAllRegisteredTypeInfos=function(){return registry.registeredTypeInfos_;};registry.findTypeInfo=function(constructor){const foundIndex=this.findIndexOfRegisteredConstructor(constructor);if(foundIndex!==undefined){return this.registeredTypeInfos_[foundIndex];}
return undefined;};registry.findTypeInfoMatching=function(predicate,opt_this){opt_this=opt_this?opt_this:undefined;for(let i=0;i<registry.registeredTypeInfos_.length;++i){const typeInfo=registry.registeredTypeInfos_[i];if(predicate.call(opt_this,typeInfo)){return typeInfo;}}
return extensionRegistryOptions.defaultTypeInfo;};registry.findTypeInfoWithName=function(name){if(typeof(name)!=='string'){throw new Error('Name is not a string.');}
const typeInfo=registry.findTypeInfoMatching(function(ti){return ti.constructor.name===name;});if(typeInfo)return typeInfo;return undefined;};}
return{_decorateBasicExtensionRegistry:decorateBasicExtensionRegistry};});'use strict';tr.exportTo('tr.b',function(){const categoryPartsFor={};function getCategoryParts(category){let parts=categoryPartsFor[category];if(parts!==undefined)return parts;parts=category.split(',');categoryPartsFor[category]=parts;return parts;}
return{getCategoryParts,};});'use strict';tr.exportTo('tr.b',function(){const getCategoryParts=tr.b.getCategoryParts;const RegisteredTypeInfo=tr.b.RegisteredTypeInfo;const ExtensionRegistryOptions=tr.b.ExtensionRegistryOptions;function decorateTypeBasedExtensionRegistry(registry,extensionRegistryOptions){const savedStateStack=[];registry.registeredTypeInfos_=[];registry.categoryPartToTypeInfoMap_=new Map();registry.typeNameToTypeInfoMap_=new Map();registry.register=function(constructor,metadata){extensionRegistryOptions.validateConstructor(constructor);const typeInfo=new RegisteredTypeInfo(constructor,metadata||extensionRegistryOptions.defaultMetadata);typeInfo.typeNames=[];typeInfo.categoryParts=[];if(metadata&&metadata.typeName){typeInfo.typeNames.push(metadata.typeName);}
if(metadata&&metadata.typeNames){typeInfo.typeNames.push.apply(typeInfo.typeNames,metadata.typeNames);}
if(metadata&&metadata.categoryParts){typeInfo.categoryParts.push.apply(typeInfo.categoryParts,metadata.categoryParts);}
if(typeInfo.typeNames.length===0&&typeInfo.categoryParts.length===0){throw new Error('typeName or typeNames must be provided');}
typeInfo.typeNames.forEach(function(typeName){if(registry.typeNameToTypeInfoMap_.has(typeName)){throw new Error('typeName '+typeName+' already registered');}});typeInfo.categoryParts.forEach(function(categoryPart){if(registry.categoryPartToTypeInfoMap_.has(categoryPart)){throw new Error('categoryPart '+categoryPart+' already registered');}});let e=new tr.b.Event('will-register');e.typeInfo=typeInfo;registry.dispatchEvent(e);typeInfo.typeNames.forEach(function(typeName){registry.typeNameToTypeInfoMap_.set(typeName,typeInfo);});typeInfo.categoryParts.forEach(function(categoryPart){registry.categoryPartToTypeInfoMap_.set(categoryPart,typeInfo);});registry.registeredTypeInfos_.push(typeInfo);e=new tr.b.Event('registry-changed');registry.dispatchEvent(e);};registry.pushCleanStateBeforeTest=function(){savedStateStack.push({registeredTypeInfos:registry.registeredTypeInfos_,typeNameToTypeInfoMap:registry.typeNameToTypeInfoMap_,categoryPartToTypeInfoMap:registry.categoryPartToTypeInfoMap_});registry.registeredTypeInfos_=[];registry.typeNameToTypeInfoMap_=new Map();registry.categoryPartToTypeInfoMap_=new Map();const e=new tr.b.Event('registry-changed');registry.dispatchEvent(e);};registry.popCleanStateAfterTest=function(){const state=savedStateStack[0];savedStateStack.splice(0,1);registry.registeredTypeInfos_=state.registeredTypeInfos;registry.typeNameToTypeInfoMap_=state.typeNameToTypeInfoMap;registry.categoryPartToTypeInfoMap_=state.categoryPartToTypeInfoMap;const e=new tr.b.Event('registry-changed');registry.dispatchEvent(e);};registry.unregister=function(constructor){let typeInfoIndex=-1;for(let i=0;i<registry.registeredTypeInfos_.length;i++){if(registry.registeredTypeInfos_[i].constructor===constructor){typeInfoIndex=i;break;}}
if(typeInfoIndex===-1){throw new Error(constructor+' not registered');}
const typeInfo=registry.registeredTypeInfos_[typeInfoIndex];registry.registeredTypeInfos_.splice(typeInfoIndex,1);typeInfo.typeNames.forEach(function(typeName){registry.typeNameToTypeInfoMap_.delete(typeName);});typeInfo.categoryParts.forEach(function(categoryPart){registry.categoryPartToTypeInfoMap_.delete(categoryPart);});const e=new tr.b.Event('registry-changed');registry.dispatchEvent(e);};registry.getTypeInfo=function(category,typeName){if(category){const categoryParts=getCategoryParts(category);for(let i=0;i<categoryParts.length;i++){const categoryPart=categoryParts[i];const typeInfo=registry.categoryPartToTypeInfoMap_.get(categoryPart);if(typeInfo!==undefined)return typeInfo;}}
const typeInfo=registry.typeNameToTypeInfoMap_.get(typeName);if(typeInfo!==undefined)return typeInfo;return extensionRegistryOptions.defaultTypeInfo;};registry.getConstructor=function(category,typeName){const typeInfo=registry.getTypeInfo(category,typeName);if(typeInfo)return typeInfo.constructor;return undefined;};}
return{_decorateTypeBasedExtensionRegistry:decorateTypeBasedExtensionRegistry};});'use strict';tr.exportTo('tr.b',function(){const URL_REGEX=/^(https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b|file:\/\/)([-a-zA-Z0-9@:%_\+.~#?&//=]*)$/;function deepCopy(value){if(!(value instanceof Object)){if(value===undefined||value===null)return value;if(typeof value==='string')return value.substring();if(typeof value==='boolean')return value;if(typeof value==='number')return value;throw new Error('Unrecognized: '+typeof value);}
const object=value;if(object instanceof Array){const res=new Array(object.length);for(let i=0;i<object.length;i++){res[i]=deepCopy(object[i]);}
return res;}
if(object.__proto__!==Object.prototype){throw new Error('Can only clone simple types');}
const res={};for(const key in object){res[key]=deepCopy(object[key]);}
return res;}
function normalizeException(e){if(e===undefined||e===null){return{typeName:'UndefinedError',message:'Unknown: null or undefined exception',stack:'Unknown'};}
if(typeof(e)==='string'){return{typeName:'StringError',message:e,stack:[e]};}
let typeName;if(e.name){typeName=e.name;}else if(e.constructor){if(e.constructor.name){typeName=e.constructor.name;}else{typeName='AnonymousError';}}else{typeName='ErrorWithNoConstructor';}
const msg=e.message?e.message:'Unknown';return{typeName,message:msg,stack:e.stack?e.stack:[msg]};}
function stackTraceAsString(){return new Error().stack+'';}
function stackTrace(){let stack=stackTraceAsString();stack=stack.split('\n');return stack.slice(2);}
function getUsingPath(path,fromDict){const parts=path.split('.');let cur=fromDict;for(let part;parts.length&&(part=parts.shift());){if(!parts.length){return cur[part];}else if(part in cur){cur=cur[part];}else{return undefined;}}
return undefined;}
function formatDate(date){return date.toISOString().replace('T',' ').slice(0,19);}
function numberToJson(n){if(isNaN(n))return'NaN';if(n===Infinity)return'Infinity';if(n===-Infinity)return'-Infinity';return n;}
function numberFromJson(n){if(n==='NaN'||n===null)return NaN;if(n==='Infinity')return Infinity;if(n==='-Infinity')return-Infinity;return n;}
function runLengthEncoding(ary){const encodedArray=[];for(const element of ary){if(encodedArray.length===0||encodedArray[encodedArray.length-1].value!==element){encodedArray.push({value:element,count:1,});}else{encodedArray[encodedArray.length-1].count+=1;}}
return encodedArray;}
function isUrl(s){return typeof(s)==='string'&&s.match(URL_REGEX)!==null;}
function getOnlyElement(iterable){const iterator=iterable[Symbol.iterator]();const firstIteration=iterator.next();if(firstIteration.done){throw new Error('getOnlyElement was passed an empty iterable.');}
const secondIteration=iterator.next();if(!secondIteration.done){throw new Error('getOnlyElement was passed an iterable with multiple elements.');}
return firstIteration.value;}
function getFirstElement(iterable){const iterator=iterable[Symbol.iterator]();const result=iterator.next();if(result.done){throw new Error('getFirstElement was passed an empty iterable.');}
return result.value;}
function compareArrays(x,y,elementCmp){const minLength=Math.min(x.length,y.length);let i;for(i=0;i<minLength;i++){const tmp=elementCmp(x[i],y[i]);if(tmp)return tmp;}
if(x.length===y.length)return 0;if(x[i]===undefined)return-1;return 1;}
function groupIntoMap(ary,callback,opt_this,opt_arrayConstructor){const arrayConstructor=opt_arrayConstructor||Array;const results=new Map();for(const element of ary){const key=callback.call(opt_this,element);let items=results.get(key);if(items===undefined){items=new arrayConstructor();results.set(key,items);}
items.push(element);}
return results;}
function inPlaceFilter(array,predicate,opt_this){opt_this=opt_this||this;let nextPosition=0;for(let i=0;i<array.length;i++){if(!predicate.call(opt_this,array[i],i))continue;if(nextPosition<i){array[nextPosition]=array[i];}
nextPosition++;}
if(nextPosition<array.length){array.length=nextPosition;}}
function invertArrayOfDicts(array,opt_dictGetter,opt_this){opt_this=opt_this||this;const result={};for(let i=0;i<array.length;i++){const item=array[i];if(item===undefined)continue;const dict=opt_dictGetter?opt_dictGetter.call(opt_this,item):item;if(dict===undefined)continue;for(const key in dict){let valueList=result[key];if(valueList===undefined){result[key]=valueList=new Array(array.length);}
valueList[i]=dict[key];}}
return result;}
function setsEqual(a,b){if(!(a instanceof Set)||!(b instanceof Set))return false;if(a.size!==b.size)return false;for(const x of a){if(!b.has(x))return false;}
return true;}
function findLowIndexInSortedArray(ary,mapFn,loVal){if(ary.length===0)return 1;let low=0;let high=ary.length-1;let i;let comparison;let hitPos=-1;while(low<=high){i=Math.floor((low+high)/2);comparison=mapFn(ary[i])-loVal;if(comparison<0){low=i+1;continue;}else if(comparison>0){high=i-1;continue;}else{hitPos=i;high=i-1;}}
return hitPos!==-1?hitPos:low;}
function findIndexInSortedIntervals(ary,mapLoFn,mapWidthFn,loVal){const first=findLowIndexInSortedArray(ary,mapLoFn,loVal);if(first===0){if(loVal>=mapLoFn(ary[0])&&loVal<mapLoFn(ary[0])+mapWidthFn(ary[0],0)){return 0;}
return-1;}
if(first<ary.length){if(loVal>=mapLoFn(ary[first])&&loVal<mapLoFn(ary[first])+mapWidthFn(ary[first],first)){return first;}
if(loVal>=mapLoFn(ary[first-1])&&loVal<mapLoFn(ary[first-1])+
mapWidthFn(ary[first-1],first-1)){return first-1;}
return ary.length;}
if(first===ary.length){if(loVal>=mapLoFn(ary[first-1])&&loVal<mapLoFn(ary[first-1])+
mapWidthFn(ary[first-1],first-1)){return first-1;}
return ary.length;}
return ary.length;}
function findIndexInSortedClosedIntervals(ary,mapLoFn,mapHiFn,val){const i=findLowIndexInSortedArray(ary,mapLoFn,val);if(i===0){if(val>=mapLoFn(ary[0],0)&&val<=mapHiFn(ary[0],0)){return 0;}
return-1;}
if(i<ary.length){if(val>=mapLoFn(ary[i-1],i-1)&&val<=mapHiFn(ary[i-1],i-1)){return i-1;}
if(val>=mapLoFn(ary[i],i)&&val<=mapHiFn(ary[i],i)){return i;}
return ary.length;}
if(i===ary.length){if(val>=mapLoFn(ary[i-1],i-1)&&val<=mapHiFn(ary[i-1],i-1)){return i-1;}
return ary.length;}
return ary.length;}
function iterateOverIntersectingIntervals(ary,mapLoFn,mapWidthFn,loVal,hiVal,cb){if(ary.length===0)return;if(loVal>hiVsed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
al)return;let i=findLowIndexInSortedArray(ary,mapLoFn,loVal);if(i===-1){return;}
if(i>0){const hi=mapLoFn(ary[i-1])+mapWidthFn(ary[i-1],i-1);if(hi>=loVal){cb(ary[i-1],i-1);}}
if(i===ary.length){return;}
for(let n=ary.length;i<n;i++){const lo=mapLoFn(ary[i]);if(lo>=hiVal)break;cb(ary[i],i);}}
function findClosestElementInSortedArray(ary,mapFn,val,maxDiff){if(ary.length===0)return null;let aftIdx=findLowIndexInSortedArray(ary,mapFn,val);const befIdx=aftIdx>0?aftIdx-1:0;if(aftIdx===ary.length)aftIdx-=1;const befDiff=Math.abs(val-mapFn(ary[befIdx]));const aftDiff=Math.abs(val-mapFn(ary[aftIdx]));if(befDiff>maxDiff&&aftDiff>maxDiff)return null;const idx=befDiff<aftDiff?befIdx:aftIdx;return ary[idx];}
function findClosestIntervalInSortedIntervals(ary,mapLoFn,mapHiFn,val,maxDiff){if(ary.length===0)return null;let idx=findLowIndexInSortedArray(ary,mapLoFn,val);if(idx>0)idx-=1;const hiInt=ary[idx];let loInt=hiInt;if(val>mapHiFn(hiInt)&&idx+1<ary.length){loInt=ary[idx+1];}
const loDiff=Math.abs(val-mapLoFn(loInt));const hiDiff=Math.abs(val-mapHiFn(hiInt));if(loDiff>maxDiff&&hiDiff>maxDiff)return null;if(loDiff<hiDiff)return loInt;return hiInt;}
function findFirstTrueIndexInSortedArray(array,test){let i0=0;let i1=array.length;while(i0<i1){const i=Math.trunc((i0+i1)/2);if(test(array[i])){i1=i;}else{i0=i+1;}}
return i1;}
return{compareArrays,deepCopy,findClosestElementInSortedArray,findClosestIntervalInSortedIntervals,findFirstTrueIndexInSortedArray,findIndexInSortedClosedIntervals,findIndexInSortedIntervals,findLowIndexInSortedArray,formatDate,getFirstElement,getOnlyElement,getUsingPath,groupIntoMap,inPlaceFilter,invertArrayOfDicts,isUrl,iterateOverIntersectingIntervals,normalizeException,numberFromJson,numberToJson,runLengthEncoding,setsEqual,stackTrace,stackTraceAsString,};});'use strict';tr.exportTo('tr.b',function(){function decorateExtensionRegistry(registry,registryOptions){if(registry.register){throw new Error('Already has registry');}
registryOptions.freeze();if(registryOptions.mode===tr.b.BASIC_REGISTRY_MODE){tr.b._decorateBasicExtensionRegistry(registry,registryOptions);}else if(registryOptions.mode===tr.b.TYPE_BASED_REGISTRY_MODE){tr.b._decorateTypeBasedExtensionRegistry(registry,registryOptions);}else{throw new Error('Unrecognized mode');}
if(registry.addEventListener===undefined){tr.b.EventTarget.decorate(registry);}}
return{decorateExtensionRegistry,};});'use strict';tr.exportTo('tr.importer',function(){function Importer(){}
Importer.prototype={__proto__:Object.prototype,get importerName(){return'Importer';},isTraceDataContainer(){return false;},extractSubtraces(){return[];},importClockSyncMarkers(){},importEvents(){},importSampleData(){},finalizeImport(){}};const options=new tr.b.ExtensionRegistryOptions(tr.b.BASIC_REGISTRY_MODE);options.defaultMetadata={};options.mandatoryBaseClass=Importer;tr.b.decorateExtensionRegistry(Importer,options);Importer.findImporterFor=function(eventData){const typeInfo=Importer.findTypeInfoMatching(function(ti){return ti.constructor.canImport(eventData);});if(typeInfo){return typeInfo.constructor;}
return undefined;};return{Importer,};});'use strict';tr.exportTo('tr.e.importer.gcloud_trace',function(){function GcloudTraceImporter(model,eventData){this.importPriority=2;this.eventData_=eventData;}
GcloudTraceImporter.canImport=function(eventData){if(typeof(eventData)!=='string'&&!(eventData instanceof String)){return false;}
const normalizedEventData=eventData.slice(0,20).replace(/\s/g,'');if(normalizedEventData.length<14)return false;return normalizedEventData.slice(0,14)==='{"projectId":"';};GcloudTraceImporter.prototype={__proto__:tr.importer.Importer.prototype,get importerName(){return'GcloudTraceImporter';},extractSubtraces(){const traceEvents=this.createEventsForTrace();return traceEvents?[traceEvents]:[];},createEventsForTrace(){const events=[];const trace=JSON.parse(this.eventData_);const spanLength=trace.spans.length;for(let i=0;i<spanLength;i++){events.push(this.createEventForSpan(trace.traceId,trace.spans[i]));}
return{'traceEvents':events};},createEventForSpan(traceId,span){let newArgs={};if(span.labels){newArgs=JSON.parse(JSON.stringify(span.labels));}
newArgs['Span ID']=span.spanId;newArgs['Start Time']=span.startTime;newArgs['End Time']=span.endTime;if(span.parentSpanId){newArgs['Parent Span ID']=span.parentSpanId;}
return{name:span.name,args:newArgs,pid:traceId,ts:Date.parse(span.startTime)*1000,dur:(Date.parse(span.endTime)-Date.parse(span.startTime))*1000,cat:'tracespan',tid:traceId,ph:'X'};}};tr.importer.Importer.register(GcloudTraceImporter);return{GcloudTraceImporter,};});'use strict';tr.exportTo('tr.b.math',function(){function convertEventsToRanges(events){return events.map(function(event){return tr.b.math.Range.fromExplicitRange(event.start,event.end);});}
function mergeRanges(inRanges,mergeThreshold,mergeFunction){const remainingEvents=inRanges.slice();remainingEvents.sort(function(x,y){return x.min-y.min;});if(remainingEvents.length<=1){const merged=[];if(remainingEvents.length===1){merged.push(mergeFunction(remainingEvents));}
return merged;}
const mergedEvents=[];let currentMergeBuffer=[];let rightEdge;function beginMerging(){currentMergeBuffer.push(remainingEvents[0]);remainingEvents.splice(0,1);rightEdge=currentMergeBuffer[0].max;}
function flushCurrentMergeBuffer(){if(currentMergeBuffer.length===0)return;mergedEvents.push(mergeFunction(currentMergeBuffer));currentMergeBuffer=[];if(remainingEvents.length!==0)beginMerging();}
beginMerging();while(remainingEvents.length){const currentEvent=remainingEvents[0];const distanceFromRightEdge=currentEvent.min-rightEdge;if(distanceFromRightEdge<mergeThreshold){rightEdge=Math.max(rightEdge,currentEvent.max);remainingEvents.splice(0,1);currentMergeBuffer.push(currentEvent);continue;}
flushCurrentMergeBuffer();}
flushCurrentMergeBuffer();return mergedEvents;}
function findEmptyRangesBetweenRanges(inRanges,opt_totalRange){if(opt_totalRange&&opt_totalRange.isEmpty)opt_totalRange=undefined;const emptyRanges=[];if(!inRanges.length){if(opt_totalRange)emptyRanges.push(opt_totalRange);return emptyRanges;}
inRanges=inRanges.slice();inRanges.sort(function(x,y){return x.min-y.min;});if(opt_totalRange&&(opt_totalRange.min<inRanges[0].min)){emptyRanges.push(tr.b.math.Range.fromExplicitRange(opt_totalRange.min,inRanges[0].min));}
inRanges.forEach(function(range,index){for(let otherIndex=0;otherIndex<inRanges.length;++otherIndex){if(index===otherIndex)continue;const other=inRanges[otherIndex];if(other.min>range.max){emptyRanges.push(tr.b.math.Range.fromExplicitRange(range.max,other.min));return;}
if(other.max>range.max){return;}}
if(opt_totalRange&&(range.max<opt_totalRange.max)){emptyRanges.push(tr.b.math.Range.fromExplicitRange(range.max,opt_totalRange.max));}});return emptyRanges;}
return{convertEventsToRanges,findEmptyRangesBetweenRanges,mergeRanges,};});!function(t,n){if("object"==typeof exports&&"object"==typeof module)module.exports=n();else if("function"==typeof define&&define.amd)define(n);else{var r=n();for(var a in r)("object"==typeof exports?exports:t)[a]=r[a]}}(this,function(){return function(t){function n(a){if(r[a])return r[a].exports;var e=r[a]={exports:{},id:a,loaded:!1};return t[a].call(e.exports,e,e.exports,n),e.loaded=!0,e.exports}var r={};return n.m=t,n.c=r,n.p="",n(0)}([function(t,n,r){n.glMatrix=r(1),n.mat2=r(2),n.mat2d=r(3),n.mat3=r(4),n.mat4=r(5),n.quat=r(6),n.vec2=r(9),n.vec3=r(7),n.vec4=r(8)},function(t,n,r){var a={};a.EPSILON=1e-6,a.ARRAY_TYPE="undefined"!=typeof Float32Array?Float32Array:Array,a.RANDOM=Math.random,a.setMatrixArrayType=function(t){GLMAT_ARRAY_TYPE=t};var e=Math.PI/180;a.toRadian=function(t){return t*e},t.exports=a},function(t,n,r){var a=r(1),e={};e.create=function(){var t=new a.ARRAY_TYPE(4);return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t},e.clone=function(t){var n=new a.ARRAY_TYPE(4);return n[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=t[3],n},e.copy=function(t,n){return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t},e.identity=function(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t},e.transpose=function(t,n){if(t===n){var r=n[1];t[1]=n[2],t[2]=r}else t[0]=n[0],t[1]=n[2],t[2]=n[1],t[3]=n[3];return t},e.invert=function(t,n){var r=n[0],a=n[1],e=n[2],u=n[3],o=r*u-e*a;return o?(o=1/o,t[0]=u*o,t[1]=-a*o,t[2]=-e*o,t[3]=r*o,t):null},e.adjoint=function(t,n){var r=n[0];return t[0]=n[3],t[1]=-n[1],t[2]=-n[2],t[3]=r,t},e.determinant=function(t){return t[0]*t[3]-t[2]*t[1]},e.multiply=function(t,n,r){var a=n[0],e=n[1],u=n[2],o=n[3],i=r[0],c=r[1],f=r[2],s=r[3];return t[0]=a*i+u*c,t[1]=e*i+o*c,t[2]=a*f+u*s,t[3]=e*f+o*s,t},e.mul=e.multiply,e.rotate=function(t,n,r){var a=n[0],e=n[1],u=n[2],o=n[3],i=Math.sin(r),c=Math.cos(r);return t[0]=a*c+u*i,t[1]=e*c+o*i,t[2]=a*-i+u*c,t[3]=e*-i+o*c,t},e.scale=function(t,n,r){var a=n[0],e=n[1],u=n[2],o=n[3],i=r[0],c=r[1];return t[0]=a*i,t[1]=e*i,t[2]=u*c,t[3]=o*c,t},e.fromRotation=function(t,n){var r=Math.sin(n),a=Math.cos(n);return t[0]=a,t[1]=r,t[2]=-r,t[3]=a,t},e.fromScaling=function(t,n){return t[0]=n[0],t[1]=0,t[2]=0,t[3]=n[1],t},e.str=function(t){return"mat2("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+")"},e.frob=function(t){return Math.sqrt(Math.pow(t[0],2)+Math.pow(t[1],2)+Math.pow(t[2],2)+Math.pow(t[3],2))},e.LDU=function(t,n,r,a){return t[2]=a[2]/a[0],r[0]=a[0],r[1]=a[1],r[3]=a[3]-t[2]*r[1],[t,n,r]},t.exports=e},function(t,n,r){var a=r(1),e={};e.create=function(){var t=new a.ARRAY_TYPE(6);return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t[4]=0,t[5]=0,t},e.clone=function(t){var n=new a.ARRAY_TYPE(6);return n[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=t[3],n[4]=t[4],n[5]=t[5],n},e.copy=function(t,n){return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t[4]=n[4],t[5]=n[5],t},e.identity=function(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t[4]=0,t[5]=0,t},e.invert=function(t,n){var r=n[0],a=n[1],e=n[2],u=n[3],o=n[4],i=n[5],c=r*u-a*e;return c?(c=1/c,t[0]=u*c,t[1]=-a*c,t[2]=-e*c,t[3]=r*c,t[4]=(e*i-u*o)*c,t[5]=(a*o-r*i)*c,t):null},e.determinant=function(t){return t[0]*t[3]-t[1]*t[2]},e.multiply=function(t,n,r){var a=n[0],e=n[1],u=n[2],o=n[3],i=n[4],c=n[5],f=r[0],s=r[1],h=r[2],M=r[3],l=r[4],v=r[5];return t[0]=a*f+u*s,t[1]=e*f+o*s,t[2]=a*h+u*M,t[3]=e*h+o*M,t[4]=a*l+u*v+i,t[5]=e*l+o*v+c,t},e.mul=e.multiply,e.rotate=function(t,n,r){var a=n[0],e=n[1],u=n[2],o=n[3],i=n[4],c=n[5],f=Math.sin(r),s=Math.cos(r);return t[0]=a*s+u*f,t[1]=e*s+o*f,t[2]=a*-f+u*s,t[3]=e*-f+o*s,t[4]=i,t[5]=c,t},e.scale=function(t,n,r){var a=n[0],e=n[1],u=n[2],o=n[3],i=n[4],c=n[5],f=r[0],s=r[1];return t[0]=a*f,t[1]=e*f,t[2]=u*s,t[3]=o*s,t[4]=i,t[5]=c,t},e.translate=function(t,n,r){var a=n[0],e=n[1],u=n[2],o=n[3],i=n[4],c=n[5],f=r[0],s=r[1];return t[0]=a,t[1]=e,t[2]=u,t[3]=o,t[4]=a*f+u*s+i,t[5]=e*f+o*s+c,t},e.fromRotation=function(t,n){var r=Math.sin(n),a=Math.cos(n);return t[0]=a,t[1]=r,t[2]=-r,t[3]=a,t[4]=0,t[5]=0,t},e.fromScaling=function(t,n){return t[0]=n[0],t[1]=0,t[2]=0,t[3]=n[1],t[4]=0,t[5]=0,t},e.fromTranslation=function(t,n){return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t[4]=n[0],t[5]=n[1],t},e.str=function(t){return"mat2d("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+", "+t[4]+", "+t[5]+")"},e.frob=function(t){return Math.sqrt(Math.pow(t[0],2)+Math.pow(t[1],2)+Math.pow(t[2],2)+Math.pow(t[3],2)+Math.pow(t[4],2)+Math.pow(t[5],2)+1)},t.exports=e},function(t,n,r){var a=r(1),e={};e.create=function(){var t=new a.ARRAY_TYPE(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},e.fromMat4=function(t,n){return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[4],t[4]=n[5],t[5]=n[6],t[6]=n[8],t[7]=n[9],t[8]=n[10],t},e.clone=function(t){var n=new a.ARRAY_TYPE(9);return n[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=t[3],n[4]=t[4],n[5]=t[5],n[6]=t[6],n[7]=t[7],n[8]=t[8],n},e.copy=function(t,n){return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t[4]=n[4],t[5]=n[5],t[6]=n[6],t[7]=n[7],t[8]=n[8],t},e.identity=function(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},e.transpose=function(t,n){if(t===n){var r=n[1],a=n[2],e=n[5];t[1]=n[3],t[2]=n[6],t[3]=r,t[5]=n[7],t[6]=a,t[7]=e}else t[0]=n[0],t[1]=n[3],t[2]=n[6],t[3]=n[1],t[4]=n[4],t[5]=n[7],t[6]=n[2],t[7]=n[5],t[8]=n[8];return t},e.invert=function(t,n){var r=n[0],a=n[1],e=n[2],u=n[3],o=n[4],i=n[5],c=n[6],f=n[7],s=n[8],h=s*o-i*f,M=-s*u+i*c,l=f*u-o*c,v=r*h+a*M+e*l;return v?(v=1/v,t[0]=h*v,t[1]=(-s*a+e*f)*v,t[2]=(i*a-e*o)*v,t[3]=M*v,t[4]=(s*r-e*c)*v,t[5]=(-i*r+e*u)*v,t[6]=l*v,t[7]=(-f*r+a*c)*v,t[8]=(o*r-a*u)*v,t):null},e.adjoint=function(t,n){var r=n[0],a=n[1],e=n[2],u=n[3],o=n[4],i=n[5],c=n[6],f=n[7],s=n[8];return t[0]=o*s-i*f,t[1]=e*f-a*s,t[2]=a*i-e*o,t[3]=i*c-u*s,t[4]=r*s-e*c,t[5]=e*u-r*i,t[6]=u*f-o*c,t[7]=a*c-r*f,t[8]=r*o-a*u,t},e.determinant=function(t){var n=t[0],r=t[1],a=t[2],e=t[3],u=t[4],o=t[5],i=t[6],c=t[7],f=t[8];return n*(f*u-o*c)+r*(-f*e+o*i)+a*(c*e-u*i)},e.multiply=function(t,n,r){var a=n[0],e=n[1],u=n[2],o=n[3],i=n[4],c=n[5],f=n[6],s=n[7],h=n[8],M=r[0],l=r[1],v=r[2],m=r[3],p=r[4],d=r[5],A=r[6],R=r[7],w=r[8];return t[0]=M*a+l*o+v*f,t[1]=M*e+l*i+v*s,t[2]=M*u+l*c+v*h,t[3]=m*a+p*o+d*f,t[4]=m*e+p*i+d*s,t[5]=m*u+p*c+d*h,t[6]=A*a+R*o+w*f,t[7]=A*e+R*i+w*s,t[8]=A*u+R*c+w*h,t},e.mul=e.multiply,e.translate=function(t,n,r){var a=n[0],e=n[1],u=n[2],o=n[3],i=n[4],c=n[5],f=n[6],s=n[7],h=n[8],M=r[0],l=r[1];return t[0]=a,t[1]=e,t[2]=u,t[3]=o,t[4]=i,t[5]=c,t[6]=M*a+l*o+f,t[7]=M*e+l*i+s,t[8]=M*u+l*c+h,t},e.rotate=function(t,n,r){var a=n[0],e=n[1],u=n[2],o=n[3],i=n[4],c=n[5],f=n[6],s=n[7],h=n[8],M=Math.sin(r),l=Math.cos(r);return t[0]=l*a+M*o,t[1]=l*e+M*i,t[2]=l*u+M*c,t[3]=l*o-M*a,t[4]=l*i-M*e,t[5]=l*c-M*u,t[6]=f,t[7]=s,t[8]=h,t},e.scale=function(t,n,r){var a=r[0],e=r[1];return t[0]=a*n[0],t[1]=a*n[1],t[2]=a*n[2],t[3]=e*n[3],t[4]=e*n[4],t[5]=e*n[5],t[6]=n[6],t[7]=n[7],t[8]=n[8],t},e.fromTranslation=function(t,n){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=n[0],t[7]=n[1],t[8]=1,t},e.fromRotation=function(t,n){var r=Math.sin(n),a=Math.cos(n);return t[0]=a,t[1]=r,t[2]=0,t[3]=-r,t[4]=a,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},e.fromScaling=function(t,n){return t[0]=n[0],t[1]=0,t[2]=0,t[3]=0,t[4]=n[1],t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},e.fromMat2d=function(t,n){return t[0]=n[0],t[1]=n[1],t[2]=0,t[3]=n[2],t[4]=n[3],t[5]=0,t[6]=n[4],t[7]=n[5],t[8]=1,t},e.fromQuat=function(t,n){var r=n[0],a=n[1],e=n[2],u=n[3],o=r+r,i=a+a,c=e+e,f=r*o,s=a*o,h=a*i,M=e*o,l=e*i,v=e*c,m=u*o,p=u*i,d=u*c;return t[0]=1-h-v,t[3]=s-d,t[6]=M+p,t[1]=s+d,t[4]=1-f-v,t[7]=l-m,t[2]=M-p,t[5]=l+m,t[8]=1-f-h,t},e.normalFromMat4=function(t,n){var r=n[0],a=n[1],e=n[2],u=n[3],o=n[4],i=n[5],c=n[6],f=n[7],s=n[8],h=n[9],M=n[10],l=n[11],v=n[12],m=n[13],p=n[14],d=n[15],A=r*i-a*o,R=r*c-e*o,w=r*f-u*o,q=a*c-e*i,Y=a*f-u*i,g=e*f-u*c,y=s*m-h*v,x=s*p-M*v,P=s*d-l*v,E=h*p-M*m,T=h*d-l*m,b=M*d-l*p,D=A*b-R*T+w*E+q*P-Y*x+g*y;return D?(D=1/D,t[0]=(i*b-c*T+f*E)*D,t[1]=(c*P-o*b-f*x)*D,t[2]=(o*T-i*P+f*y)*D,t[3]=(e*T-a*b-u*E)*D,t[4]=(r*b-e*P+u*x)*D,t[5]=(a*P-r*T-u*y)*D,t[6]=(m*g-p*Y+d*q)*D,t[7]=(p*w-v*g-d*R)*D,t[8]=(v*Y-m*w+d*A)*D,t):null},e.str=function(t){return"mat3("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+", "+t[4]+", "+t[5]+", "+t[6]+", "+t[7]+", "+t[8]+")"},e.frob=function(t){return Math.sqrt(Mat
function clamp(x,lo,hi){return Math.min(Math.max(x,lo),hi);}
function lerp(percentage,lo,hi){const range=hi-lo;return lo+percentage*range;}
function normalize(value,lo,hi){return(value-lo)/(hi-lo);}
function deg2rad(deg){return(Math.PI*deg)/180.0;}
function erf(x){const sign=(x>=0)?1:-1;x=Math.abs(x);const a1=0.254829592;const a2=-0.284496736;const a3=1.421413741;const a4=-1.453152027;const a5=1.061405429;const p=0.3275911;const t=1.0/(1.0+p*x);const y=1.0-(((((a5*t+a4)*t)+a3)*t+a2)*t+a1)*t*Math.exp(-x*x);return sign*y;}
const tmpVec2=vec2.create();const tmpVec2b=vec2.create();const tmpVec4=vec4.create();const tmpMat2d=mat2d.create();vec2.createFromArray=function(arr){if(arr.length!==2)throw new Error('Should be length 2');const v=vec2.create();vec2.set(v,arr[0],arr[1]);return v;};vec2.createXY=function(x,y){const v=vec2.create();vec2.set(v,x,y);return v;};vec2.toString=function(a){return'['+a[0]+', '+a[1]+']';};vec2.addTwoScaledUnitVectors=function(out,u1,scale1,u2,scale2){vec2.scale(tmpVec2,u1,scale1);vec2.scale(tmpVec2b,u2,scale2);vec2.add(out,tmpVec2,tmpVec2b);};vec2.interpolatePiecewiseFunction=function(points,x){if(x<points[0][0])return points[0][1];for(let i=1;i<points.length;++i){if(x<points[i][0]){const percent=normalize(x,points[i-1][0],points[i][0]);return lerp(percent,points[i-1][1],points[i][1]);}}
return points[points.length-1][1];};vec3.createXYZ=function(x,y,z){const v=vec3.create();vec3.set(v,x,y,z);return v;};vec3.toString=function(a){return'vec3('+a[0]+', '+a[1]+', '+a[2]+')';};mat2d.translateXY=function(out,x,y){vec2.set(tmpVec2,x,y);mat2d.translate(out,out,tmpVec2);};mat2d.scaleXY=function(out,x,y){vec2.set(tmpVec2,x,y);mat2d.scale(out,out,tmpVec2);};vec4.unitize=function(out,a){out[0]=a[0]/a[3];out[1]=a[1]/a[3];out[2]=a[2]/a[3];out[3]=1;return out;};vec2.copyFromVec4=function(out,a){vec4.unitize(tmpVec4,a);vec2.copy(out,tmpVec4);};function logOrLog10(x,base){if(base===10)return Math.log10(x);return Math.log(x)/Math.log(base);}
function lesserPower(x,opt_base){const base=opt_base||10;return Math.pow(base,Math.floor(logOrLog10(x,base)));}
function greaterPower(x,opt_base){const base=opt_base||10;return Math.pow(base,Math.ceil(logOrLog10(x,base)));}
function lesserWholeNumber(x){if(x===0)return 0;const pow10=(x<0)?-lesserPower(-x):lesserPower(x);return pow10*Math.floor(x/pow10);}
function greaterWholeNumber(x){if(x===0)return 0;const pow10=(x<0)?-lesserPower(-x):lesserPower(x);return pow10*Math.ceil(x/pow10);}
function preferredNumberLargerThanMin(min){const absMin=Math.abs(min);const conservativeGuess=tr.b.math.lesserPower(absMin);let minPreferedNumber=undefined;for(const multiplier of PREFERRED_NUMBER_SERIES_MULTIPLIERS){const tightenedGuess=conservativeGuess*multiplier;if(tightenedGuess>=absMin){minPreferedNumber=tightenedGuess;break;}}
if(minPreferedNumber===undefined){throw new Error('Could not compute preferred number for '+min);}
if(min<0)minPreferedNumber*=-1;return minPreferedNumber;}
return{approximately,clamp,lerp,normalize,deg2rad,erf,lesserPower,greaterPower,lesserWholeNumber,greaterWholeNumber,preferredNumberLargerThanMin,};});'use strict';tr.exportTo('tr.b.math',function(){function Range(){this.isEmpty_=true;this.min_=undefined;this.max_=undefined;}
Range.prototype={__proto__:Object.prototype,clone(){if(this.isEmpty)return new Range();return Range.fromExplicitRange(this.min_,this.max_);},reset(){this.isEmpty_=true;this.min_=undefined;this.max_=undefined;},get isEmpty(){return this.isEmpty_;},addRange(range){if(range.isEmpty)return;this.addValue(range.min);this.addValue(range.max);},addValue(value){if(this.isEmpty_){this.max_=value;this.min_=value;this.isEmpty_=false;return;}
this.max_=Math.max(this.max_,value);this.min_=Math.min(this.min_,value);},set min(min){this.isEmpty_=false;this.min_=min;},get min(){if(this.isEmpty_)return undefined;return this.min_;},get max(){if(this.isEmpty_)return undefined;return this.max_;},set max(max){this.isEmpty_=false;this.max_=max;},get range(){if(this.isEmpty_)return undefined;return this.max_-this.min_;},get center(){return(this.min_+this.max_)*0.5;},get duration(){if(this.isEmpty_)return 0;return this.max_-this.min_;},enclosingPowers(opt_base){if(this.isEmpty)return new Range();return Range.fromExplicitRange(tr.b.math.lesserPower(this.min_,opt_base),tr.b.math.greaterPower(this.max_,opt_base));},normalize(x){return tr.b.math.normalize(x,this.min,this.max);},lerp(x){return tr.b.math.lerp(x,this.min,this.max);},clamp(x){return tr.b.math.clamp(x,this.min,this.max);},equals(that){if(this.isEmpty&&that.isEmpty)return true;if(this.isEmpty!==that.isEmpty)return false;return(tr.b.math.approximately(this.min,that.min)&&tr.b.math.approximately(this.max,that.max));},containsExplicitRangeInclusive(min,max){if(this.isEmpty)return false;return this.min_<=min&&max<=this.max_;},containsExplicitRangeExclusive(min,max){if(this.isEmpty)return false;return this.min_<min&&max<this.max_;},intersectsExplicitRangeInclusive(min,max){if(this.isEmpty)return false;return this.min_<=max&&min<=this.max_;},intersectsExplicitRangeExclusive(min,max){if(this.isEmpty)return false;return this.min_<max&&min<this.max_;},containsRangeInclusive(range){if(range.isEmpty)return false;return this.containsExplicitRangeInclusive(range.min_,range.max_);},containsRangeExclusive(range){if(range.isEmpty)return false;return this.containsExplicitRangeExclusive(range.min_,range.max_);},intersectsRangeInclusive(range){if(range.isEmpty)return false;return this.intersectsExplicitRangeInclusive(range.min_,range.max_);},intersectsRangeExclusive(range){if(range.isEmpty)return false;return this.intersectsExplicitRangeExclusive(range.min_,range.max_);},findExplicitIntersectionDuration(min,max){min=Math.max(this.min,min);max=Math.min(this.max,max);if(max<min)return 0;return max-min;},findIntersection(range){if(this.isEmpty||range.isEmpty)return new Range();const min=Math.max(this.min,range.min);const max=Math.min(this.max,range.max);if(max<min)return new Range();return Range.fromExplicitRange(min,max);},toJSON(){if(this.isEmpty_)return{isEmpty:true};return{isEmpty:false,max:this.max,min:this.min};},filterArray(sortedArray,opt_keyFunc,opt_this){if(this.isEmpty_)return[];const keyFunc=opt_keyFunc||(x=>x);function getValue(obj){return keyFunc.call(opt_this,obj);}
const first=tr.b.findFirstTrueIndexInSortedArray(sortedArray,obj=>this.min_===undefined||this.min_<=getValue(obj));const last=tr.b.findFirstTrueIndexInSortedArray(sortedArray,obj=>this.max_!==undefined&&this.max_<getValue(obj));return sortedArray.slice(first,last);}};Range.fromDict=function(d){if(d.isEmpty===true)return new Range();if(d.isEmpty===false){const range=new Range();range.min=d.min;range.max=d.max;return range;}
throw new Error('Not a range');};Range.fromExplicitRange=function(min,max){const range=new Range();range.min=min;range.max=max;return range;};Range.compareByMinTimes=function(a,b){if(!a.isEmpty&&!b.isEmpty)return a.min_-b.min_;if(a.isEmpty&&!b.isEmpty)return-1;if(!a.isEmpty&&b.isEmpty)return 1;return 0;};Range.findDifference=function(rangeA,rangeB){if(!rangeA||rangeA.duration<0||!rangeB||rangeB.duration<0){throw new Error(`Couldn't subtract ranges`);}
const resultRanges=[];if(rangeA.isEmpty)return resultRanges;if(rangeB.isEmpty)return[rangeA.clone()];const intersection=rangeA.findIntersection(rangeB);if(intersection.isEmpty){return[rangeA.clone()];}
if(rangeA.duration===0&&rangeB.duration===0){if(intersection.empty)return[rangeA.clone()];else if(intersection.duration===0)return resultRanges;throw new Error(`Two points' intersection can only be a point or empty`);}
const leftRange=tr.b.math.Range.fromExplicitRange(rangeA.min,intersection.min);if(leftRange.duration>0){resultRanges.push(leftRange);}
const rightRange=tr.b.math.Range.fromExplicitRange(intersection.max,rangeA.max);if(rightRange.duration>0){resultRanges.push(rightRange);}
return resultRanges;};Range.PERCENT_RANGE=Range.fromExplicitRange(0,1);Object.freeze(Range.PERCENT_RANGE);return{Range,};});'use strict';(function(exports){var rank={standard:function(array,key){array=array.sort(function(a,b){var x=a[key];var y=b[key];return((x<y)?-1:((x>y)?1:0));});for(var i=1;i<array.length+1;i++){array[i-1]['rank']=i;}
return array;},fractional:function(array,key){array=this.standard(array,key);var pos=0;while(pos<array.length){var sum=0;var i=0;for(i=0;array[pos+i+1]&&(array[pos+i][key]===array[pos+i+1][key]);i++){sum+=array[pos+i]['rank'];}
sum+=array[pos+i]['rank'];var endPos=pos+i+1;for(pos;pos<endPos;pos++){array[pos]['rank']=sum/(i+1);}
pos=endPos;}
return array;},rank:function(x,y){var nx=x.length,ny=y.length,combined=[],ranked;while(nx--){combined.push({set:'x',val:x[nx]});}
while(ny--){combined.push({set:'y',val:y[ny]});}
ranked=this.fractional(combined,'val');return ranked}};var erf=function erf(x){var cof=[-1.3026537197817094,6.4196979235649026e-1,1.9476473204185836e-2,-9.561514786808631e-3,-9.46595344482036e-4,3.66839497852761e-4,4.2523324806907e-5,-2.0278578112534e-5,-1.624290004647e-6,1.303655835580e-6,1.5626441722e-8,-8.5238095915e-8,6.529054439e-9,5.059343495e-9,-9.91364156e-10,-2.27365122e-10,9.6467911e-11,2.394038e-12,-6.886027e-12,8.94487e-13,3.13092e-13,-1.12708e-13,3.81e-16,7.106e-15,-1.523e-15,-9.4e-17,1.21e-16,-2.8e-17];var j=cof.length-1;var isneg=false;var d=0;var dd=0;var t,ty,tmp,res;if(x<0){x=-x;isneg=true;}
t=2/(2+x);ty=4*t-2;for(;j>0;j--){tmp=d;d=ty*d-dd+cof[j];dd=tmp;}
res=t*Math.exp(-x*x+0.5*(cof[0]+ty*d)-dd);return isneg?res-1:1-res;};var dnorm=function(x,mean,std){return 0.5*(1+erf((x-mean)/Math.sqrt(2*std*std)));}
var statistic=function(x,y){var ranked=rank.rank(x,y),nr=ranked.length,nx=x.length,ny=y.length,ranksums={x:0,y:0},i=0,t=0,nt=1,tcf,ux,uy;while(i<nr){if(i>0){if(ranked[i].val==ranked[i-1].val){nt++;}else{if(nt>1){t+=Math.pow(nt,3)-nt
nt=1;}}}
ranksums[ranked[i].set]+=ranked[i].rank
i++;}
tcf=1-(t/(Math.pow(nr,3)-nr))
ux=nx*ny+(nx*(nx+1)/2)-ranksums.x;uy=nx*ny-ux;return{tcf:tcf,ux:ux,uy:uy,big:Math.max(ux,uy),small:Math.min(ux,uy)}}
exports.test=function(x,y,alt,corr){alt=typeof alt!=='undefined'?alt:'two-sided';corr=typeof corr!=='undefined'?corr:true;var nx=x.length,ny=y.length,f=1,u,mu,std,z,p;u=statistic(x,y);if(corr){mu=(nx*ny/2)+0.5;}else{mu=nx*ny/2;}
std=Math.sqrt(u.tcf*nx*ny*(nx+ny+1)/12);if(alt=='less'){z=(u.ux-mu)/std;}else if(alt=='greater'){z=(u.uy-mu)/std;}else if(alt=='two-sided'){z=Math.abs((u.big-mu)/std);}else{console.log('Unknown alternative argument');}
if(alt=='two-sided'){f=2;}
p=dnorm(-z,0,1)*f;return{U:u.small,p:p};}})(typeof exports==='undefined'?this['mannwhitneyu']={}:exports);'use strict';(function(global){if(tr.isNode){const mwuAbsPath=HTMLImportsLoader.hrefToAbsolutePath('/mannwhitneyu.js');const mwuModule=require(mwuAbsPath);for(const exportName in mwuModule){global[exportName]=mwuModule[exportName];}}})(this);'use strict';tr.exportTo('tr.b.math',function(){const Statistics={};Statistics.divideIfPossibleOrZero=function(numerator,denominator){if(denominator===0)return 0;return numerator/denominator;};Statistics.sum=function(ary,opt_func,opt_this){const func=opt_func||(x=>x);let ret=0;let i=0;for(const elt of ary){ret+=func.call(opt_this,elt,i++);}
return ret;};Statistics.mean=function(ary,opt_func,opt_this){const func=opt_func||(x=>x);let sum=0;let i=0;for(const elt of ary){sum+=func.call(opt_this,elt,i++);}
if(i===0)return undefined;return sum/i;};Statistics.geometricMean=function(ary,opt_func,opt_this){const func=opt_func||(x=>x);let i=0;let logsum=0;for(const elt of ary){const x=func.call(opt_this,elt,i++);if(x<=0)return 0;logsum+=Math.log(Math.abs(x));}
if(i===0)return 1;return Math.exp(logsum/i);};Statistics.weightedMean=function(ary,weightCallback,opt_valueCallback,opt_this){const valueCallback=opt_valueCallback||(x=>x);let numerator=0;let denominator=0;let i=-1;for(const elt of ary){i++;const value=valueCallback.call(opt_this,elt,i);if(value===undefined)continue;const weight=weightCallback.call(opt_this,elt,i,value);numerator+=weight*value;denominator+=weight;}
if(denominator===0)return undefined;return numerator/denominator;};Statistics.variance=function(ary,opt_func,opt_this){if(ary.length===0)return undefined;if(ary.length===1)return 0;const func=opt_func||(x=>x);const mean=Statistics.mean(ary,func,opt_this);const sumOfSquaredDistances=Statistics.sum(ary,function(d,i){const v=func.call(this,d,i)-mean;return v*v;},opt_this);return sumOfSquaredDistances/(ary.length-1);};Statistics.stddev=function(ary,opt_func,opt_this){if(ary.length===0)return undefined;return Math.sqrt(Statistics.variance(ary,opt_func,opt_this));};Statistics.max=function(ary,opt_func,opt_this){const func=opt_func||(x=>x);let ret=-Infinity;let i=0;for(const elt of ary){ret=Math.max(ret,func.call(opt_this,elt,i++));}
return ret;};Statistics.min=function(ary,opt_func,opt_this){const func=opt_func||(x=>x);let ret=Infinity;let i=0;for(const elt of ary){ret=Math.min(ret,func.call(opt_this,elt,i++));}
return ret;};Statistics.range=function(ary,opt_func,opt_this){const func=opt_func||(x=>x);const ret=new tr.b.math.Range();let i=0;for(const elt of ary){ret.addValue(func.call(opt_this,elt,i++));}
return ret;};Statistics.percentile=function(ary,percent,opt_func,opt_this){if(!(percent>=0&&percent<=1)){throw new Error('percent must be [0,1]');}
const func=opt_func||(x=>x);const tmp=new Array(ary.length);let i=0;for(const elt of ary){tmp[i]=func.call(opt_this,elt,i++);}
tmp.sort((a,b)=>a-b);const idx=Math.floor((ary.length-1)*percent);return tmp[idx];};Statistics.normalizeSamples=function(samples){if(samples.length===0){return{normalized_samples:samples,scale:1.0};}
samples=samples.slice().sort(function(a,b){return a-b;});const low=Math.min.apply(null,samples);const high=Math.max.apply(null,samples);const newLow=0.5/samples.length;const newHigh=(samples.length-0.5)/samples.length;if(high-low===0.0){samples=Array.apply(null,new Array(samples.length)).map(function(){return 0.5;});return{normalized_samples:samples,scale:1.0};}
const scale=(newHigh-newLow)/(high-low);for(let i=0;i<samples.length;i++){samples[i]=(samples[i]-low)*scale+newLow;}
return{normalized_samples:samples,scale};};Statistics.discrepancy=function(samples,opt_locationCount){if(samples.length===0)return 0.0;let maxLocalDiscrepancy=0;const invSampleCount=1.0/samples.length;const locations=[];const countLess=[];const countLessEqual=[];if(opt_locationCount!==undefined){let sampleIndex=0;for(let i=0;i<opt_locationCount;i++){const location=i/(opt_locationCount-1);locations.push(location);while(sampleIndex<samples.length&&samples[sampleIndex]<location){sampleIndex+=1;}
countLess.push(sampleIndex);while(sampleIndex<samples.length&&samples[sampleIndex]<=location){sampleIndex+=1;}
countLessEqual.push(sampleIndex);}}else{if(samples[0]>0.0){locations.push(0.0);countLess.push(0);countLessEqual.push(0);}
for(let i=0;i<samples.length;i++){locations.push(samples[i]);countLess.push(i);countLessEqual.push(i+1);}
if(samples[-1]<1.0){locations.push(1.0);countLess.push(samples.length);countLessEqual.push(samples.length);}}
let maxDiff=0;let minDiff=0;for(let i=1;i<locations.length;i++){const length=locations[i]-locations[i-1];const countClosed=countLessEqual[i]-countLess[i-1];const countOpen=countLess[i]-countLessEqual[i-1];const countClosedIncrement=countLessEqual[i]-countLessEqual[i-1];const countOpenIncrement=countLess[i]-countLess[i-1];maxDiff=Math.max(countClosedIncrement*invSampleCount-length+maxDiff,countClosed*invSampleCount-length);minDiff=Math.min(countOpenIncrement*invSampleCount-length+minDiff,countOpen*invSampleCount-length);maxLocalDiscrepancy=Math.max(maxDiff,-minDiff,maxLocalDiscrepancy);}
return maxLocalDiscrepancy;};Statistics.timestampsDiscrepancy=function(timestamps,opt_absolute,opt_locationCount){if(timestamps.length===0)return 0.0;if(opt_absolute===undefined)opt_absolute=true;if(Array.isArray(timestamps[0])){const rangeDiscrepancies=timestamps.map(function(r){return Statistics.timestampsDiscrepancy(r);});return Math.max.apply(null,rangeDiscrepancies);}
const s=Statistics.normalizeSamples(timestamps);const samples=s.normalized_samples;const sampleScale=s.scale;let discrepancy=Statistics.discrepancy(samples,opt_locationCount);const invSampleCount=1.0/samples.length;if(opt_absolute===true){discrepancy/=sampleScale;}else{discrepancy=tr.b.math.clamp((discrepancy-invSampleCount)/(1.0-invSampleCount),0.0,1.0);}
return discrepancy;};Statistics.durationsDiscrepancy=function(durations,opt_absolute,opt_locationCount){if(durations.length===0)return 0.0;const timestamps=durations.reduce(function(prev,curr,index,array){prev.push(prev[prev.length-1]+curr);return prev;},[0]);return Statistics.timestampsDiscrepancy(timestamps,opt_absolute,opt_locationCount);};Statistics.uniformlySampleArray=function(samples,count){if(samples.length<=count){return samples;}
while(samples.length>count){const i=parseInt(Math.random()*samples.length);samples.splice(i,1);}
return samples;};Statistics.uniformlySampleStream=function(samples,streamLength,newElement,numSamples){if(streamLength<=numSamples){if(samples.length>=streamLength){samples[streamLength-1]=newElement;}else{samples.push(newElement);}
return;}
const probToKeep=numSamples/streamLength;if(Math.random()>probToKeep)return;const index=Math.floor(Math.random()*numSamples);samples[index]=newElement;};Statistics.mergeSampledStreams=function(samplesA,streamLengthA,samplesB,streamLengthB,numSamples){if(streamLengthB<numSamples){const nbElements=Math.min(streamLengthB,samplesB.length);for(let i=0;i<nbElements;++i){Statistics.uniformlySampleStream(samplesA,streamLengthA+i+1,samplesB[i],numSamples);}
return;}
if(streamLengthA<numSamples){const nbElements=Math.min(streamLengthA,samplesA.length);const tempSamples=samplesB.slice();for(let i=0;i<nbElements;++i){Statistics.uniformlySampleStream(tempSamples,streamLengthB+i+1,samplesA[i],numSamples);}
for(let i=0;i<tempSamples.length;++i){samplesA[i]=tempSamples[i];}
return;}
const nbElements=Math.min(numSamples,samplesB.length);const probOfSwapping=streamLengthB/(streamLengthA+streamLengthB);for(let i=0;i<nbElements;++i){if(Math.random()<probOfSwapping){samplesA[i]=samplesB[i];}}};function Distribution(){}
Distribution.prototype={computeDensity(x){throw Error('Not implemented');},computePercentile(x){throw Error('Not implemented');},computeComplementaryPercentile(x){return 1-this.computePercentile(x);},get mean(){throw Error('Not implemented');},get mode(){throw Error('Not implemented');},get median(){throw Error('Not implemented');},get standardDeviation(){throw Error('Not implemented');},get variance(){throw Error('Not implemented');}};Statistics.UniformDistribution=function(opt_range){if(!opt_range)opt_range=tr.b.math.Range.fromExplicitRange(0,1);this.range=opt_range;};Statistics.UniformDistribution.prototype={__proto__:Distribution.prototype,computeDensity(x){return 1/this.range.range;},computePercentile(x){return tr.b.math.normalize(x,this.range.min,this.range.max);},get mean(){return this.range.center;},get mode(){return undefined;},get median(){return this.mean;},get standardDeviation(){return Math.sqrt(this.variance);},get variance(){return Math.pow(this.range.range,2)/12;}};Statistics.NormalDistribution=function(opt_mean,opt_variance){this.mean_=opt_mean||0;this.variance_=opt_variance||1;this.standardDeviation_=Math.sqrt(this.variance_);};Statistics.NormalDistribution.prototype={__proto__:Distribution.prototype,computeDensity(x){const scale=(1.0/(this.standardDeviation*Math.sqrt(2.0*Math.PI)));const exponent=-Math.pow(x-this.mean,2)/(2.0*this.variance);return scale*Math.exp(exponent);},computePercentile(x){const standardizedX=((x-this.mean)/Math.sqrt(2.0*this.variance));return(1.0+tr.b.math.erf(standardizedX))/2.0;},get mean(){return this.mean_;},get median(){return this.mean;},get mode(){return this.mean;},get standardDeviation(){return this.standardDeviation_;},get variance(){return this.variance_;}};Statistics.LogNormalDistribution=function(opt_location,opt_shape){this.normalDistribution_=new Statistics.NormalDistribution(opt_location,Math.pow(opt_shape||1,2));};Statistics.LogNormalDistribution.prototype={__proto__:Statistics.NormalDistribution.prototype,computeDensity(x){return this.normalDistribution_.computeDensity(Math.log(x))/x;},computePercentile(x){return this.normalDistribution_.computePercentile(Math.log(x));},get mean(){return Math.exp(this.normalDistribution_.mean+
(this.normalDistribution_.variance/2));},get variance(){const nm=this.normalDistribution_.mean;const nv=this.normalDistribution_.variance;return(Math.exp(2*(nm+nv))-
Math.exp(2*nm+nv));},get standardDeviation(){return Math.sqrt(this.variance);},get median(){return Math.exp(this.normalDistribution_.mean);},get mode(){return Math.exp(this.normalDistribution_.mean-
this.normalDistribution_.variance);}};Statistics.LogNormalDistribution.fromMedianAndDiminishingReturns=function(median,diminishingReturns){diminishingReturns=Math.log(diminishingReturns/median);const shape=Math.sqrt(1-3*diminishingReturns-
Math.sqrt(Math.pow(diminishingReturns-3,2)-8))/2;const location=Math.log(median);return new Statistics.LogNormalDistribution(location,shape);};Statistics.DEFAULT_ALPHA=0.01;Statistics.MAX_SUGGESTED_SAMPLE_SIZE=20;Statistics.Significance={SIGNIFICANT:'REJECT',INSIGNIFICANT:'FAIL_TO_REJECT',NEED_MORE_DATA:'NEED_MORE_DATA',DONT_CARE:'DONT_CARE',};class HypothesisTestResult{constructor(p,u,needMoreData,opt_alpha){this.p_=p;this.u_=u;this.needMoreData_=needMoreData;this.compare(opt_alpha);}
get p(){return this.p_;}
get U(){return this.u_;}
get significance(){return this.significance_;}
compare(opt_alpha){const alpha=opt_alpha||Statistics.DEFAULT_ALPHA;if(this.p<alpha){this.significance_=Statistics.Significance.SIGNIFICANT;}else if(this.needMoreData_){this.significance_=Statistics.Significance.NEED_MORE_DATA;}else{this.significance_=Statistics.Significance.INSIGNIFICANT;}
return this.significance_;}
asDict(){return{p:this.p,U:this.U,significance:this.significance,};}}
Statistics.mwu=function(a,b,opt_alpha,opt_reqSampleSize){const result=mannwhitneyu.test(a,b);const needMoreData=opt_reqSampleSize&&Math.min(a.length,b.length)<opt_reqSampleSize;return new HypothesisTestResult(result.p,result.U,needMoreData,opt_alpha);};return{Statistics,};});'use strict';const GREEK_SMALL_LETTER_MU=String.fromCharCode(956);tr.exportTo('tr.b',function(){const SECONDS_IN_A_MINUTE=60;const SECONDS_IN_AN_HOUR=SECONDS_IN_A_MINUTE*60;const SECONDS_IN_A_DAY=SECONDS_IN_AN_HOUR*24;const SECONDS_IN_A_WEEK=SECONDS_IN_A_DAY*7;const SECONDS_IN_A_YEAR=SECONDS_IN_A_DAY*365.2422;const SECONDS_IN_A_MONTH=SECONDS_IN_A_YEAR/12;const UnitPrefixScale={};const UnitScale={};function defineUnitPrefixScale(name,prefixes){if(UnitPrefixScale[name]!==undefined){throw new Error('Unit prefix scale \''+name+'\' already exists');}
if(prefixes.AUTO!==undefined){throw new Error('The \'AUTO\' unit prefix is not supported for unit'+'prefix scales and cannot be added to scale \''+name+'\'');}
UnitPrefixScale[name]=prefixes;}
UnitScale.defineUnitScale=function(name,unitScale){if(UnitScale[name]!==undefined){throw new Error('Unit scale \''+name+'\' already exists');}
if(unitScale.AUTO!==undefined){throw new Error('\'AUTO\' unit scale will be added automatically '+'for unit scale \''+name+'\'');}
unitScale.AUTO=Object.values(unitScale);unitScale.AUTO.sort((a,b)=>a.value-b.value);if(name)UnitScale[name]=unitScale;return unitScale;};UnitScale.defineUnitScaleFromPrefixScale=function(baseSymbol,baseName,prefixScale,opt_scaleName){if(baseSymbol===undefined){throw new Error('Cannot create UnitScale with undefined baseSymbol.');}
if(!baseName){throw new Error('Cannot create UnitScale without a baseName.');}
if(!prefixScale){throw new Error('Cannot create UnitScale without a prefix scale.');}
const unitScale={};for(const curPrefix of Object.keys(prefixScale)){const curScale=prefixScale[curPrefix];if(curScale.symbol===undefined||!curScale.value){throw new Error(`Cannot convert PrefixScale with malformed prefix ${curScale}.`);}
const name=curPrefix==='NONE'?baseName:`${curPrefix}_${baseName}`;unitScale[name]={value:curScale.value,symbol:curScale.symbol+baseSymbol,baseSymbol};}
return UnitScale.defineUnitScale(opt_scaleName,unitScale);};function convertUnit(value,fromScale,toScale){if(value===undefined)return undefined;const fromScaleBase=fromScale.baseSymbol;const toScaleBase=toScale.baseSymbol;if(fromScaleBase!==undefined&&toScaleBase!==undefined&&fromScaleBase!==toScaleBase){throw new Error('Cannot convert between units with different base symbols.');}
return value*(fromScale.value/toScale.value);}
defineUnitPrefixScale('BINARY',{NONE:{value:Math.pow(1024,0),symbol:''},KIBI:{value:Math.pow(1024,1),symbol:'Ki'},MEBI:{value:Math.pow(1024,2),symbol:'Mi'},GIBI:{value:Math.pow(1024,3),symbol:'Gi'},TEBI:{value:Math.pow(1024,4),symbol:'Ti'}});defineUnitPrefixScale('METRIC',{NANO:{value:1e-9,symbol:'n'},MICRO:{value:1e-6,symbol:GREEK_SMALL_LETTER_MU},MILLI:{value:1e-3,symbol:'m'},NONE:{value:1,symbol:''},KILO:{value:1e3,symbol:'k'},MEGA:{value:1e6,symbol:'M'},GIGA:{value:1e9,symbol:'G'}});UnitScale.defineUnitScale('TIME',{NANO_SEC:{value:1e-9,symbol:'ns',baseSymbol:'s'},MICRO_SEC:{value:1e-6,symbol:GREEK_SMALL_LETTER_MU+'s',baseSymbol:'s'},MILLI_SEC:{value:1e-3,symbol:'ms',baseSymbol:'s'},SEC:{value:1,symbol:'s',baseSymbol:'s'},MINUTE:{value:SECONDS_IN_A_MINUTE,symbol:'min',baseSymbol:'s'},HOUR:{value:SECONDS_IN_AN_HOUR,symbol:'hr',baseSymbol:'s'},DAY:{value:SECONDS_IN_A_DAY,symbol:'days',baseSymbol:'s'},WEEK:{value:SECONDS_IN_A_WEEK,symbol:'weeks',baseSymbol:'s'},MONTH:{value:SECONDS_IN_A_MONTH,symbol:'months',baseSymbol:'s'},YEAR:{value:SECONDS_IN_A_YEAR,symbol:'years',baseSymbol:'s'}});UnitScale.defineUnitScaleFromPrefixScale('B','BYTE',UnitPrefixScale.BINARY,'MEMORY');return{UnitPrefixScale,UnitScale,convertUnit,};});'use strict';tr.exportTo('tr.b',function(){const msDisplayMode={scale:1e-3,suffix:'ms',roundedLess(a,b){return Math.round(a*1000)<Math.round(b*1000);},formatSpec:{unitScale:[tr.b.UnitScale.TIME.MILLI_SEC],minimumFractionDigits:3,}};const nsDisplayMode={scale:1e-9,suffix:'ns',roundedLess(a,b){return Math.round(a*1000000)<Math.round(b*1000000);},formatSpec:{unitScale:[tr.b.UnitScale.TIME.NANO_SEC],maximumFractionDigits:0}};const TimeDisplayModes={ns:nsDisplayMode,ms:msDisplayMode};return{TimeDisplayModes,};});'use strict';tr.exportTo('tr.ui.b',function(){function iterateElementDeeplyImpl(element,cb,thisArg,includeElement){if(includeElement&&cb.call(thisArg,element))return true;if(element.root&&element.root!==element&&iterateElementDeeplyImpl(element.root,cb,thisArg,false)){return true;}
const children=Polymer.dom(element).children;for(let i=0;i<children.length;i++){if(iterateElementDeeplyImpl(children[i],cb,thisArg,true)){return true;}}
return false;}
function iterateElementDeeply(element,cb,thisArg){iterateElementDeeplyImpl(element,cb,thisArg,false);}
function findDeepElementMatchingPredicate(element,predicate){let foundElement=undefined;function matches(element){const match=predicate(element);if(!match){return false;}
foundElement=element;return true;}
iterateElementDeeply(element,matches);return foundElement;}
function findDeepElementsMatchingPredicate(element,predicate){const foundElements=[];function matches(element){const match=predicate(element);if(match){foundElements.push(element);}
return false;}
iterateElementDeeply(element,matches);return foundElements;}
function findDeepElementMatching(element,selector){return findDeepElementMatchingPredicate(element,function(element){return element.matches(selector);});}
function findDeepElementsMatching(element,selector){return findDeepElementsMatchingPredicate(element,function(element){return element.matches(selector);});}
function findDeepElementWithTextContent(element,re){return findDeepElementMatchingPredicate(element,function(element){if(element.children.length!==0)return false;return re.test(Polymer.dom(element).textContent);});}
return{findDeepElementMatching,findDeepElementsMatching,findDeepElementMatchingPredicate,findDeepElementsMatchingPredicate,findDeepElementWithTextContent,};});'use strict';tr.exportTo('tr.b',function(){const TimeDisplayModes=tr.b.TimeDisplayModes;const PLUS_MINUS_SIGN=String.fromCharCode(177);const CACHED_FORMATTERS={};function getNumberFormatter(minSpec,maxSpec,minCtx,maxCtx){const key=minSpec+'-'+maxSpec+'-'+minCtx+'-'+maxCtx;let formatter=CACHED_FORMATTERS[key];if(formatter===undefined){let minimumFractionDigits=minCtx!==undefined?minCtx:minSpec;let maximumFractionDigits=maxCtx!==undefined?maxCtx:maxSpec;if(minimumFractionDigits>maximumFractionDigits){if(minCtx!==undefined&&maxCtx===undefined){maximumFractionDigits=minimumFractionDigits;}else if(minCtx===undefined&&maxCtx!==undefined){minimumFractionDigits=maximumFractionDigits;}}
formatter=new Intl.NumberFormat(undefined,{minimumFractionDigits,maximumFractionDigits,});CACHED_FORMATTERS[key]=formatter;}
return formatter;}
function max(a,b){if(a===undefined)return b;if(b===undefined)return a;return a.scale>b.scale?a:b;}
const ImprovementDirection={DONT_CARE:0,BIGGER_IS_BETTER:1,SMALLER_IS_BETTER:2};function Unit(unitName,jsonName,scaleBaseUnit,isDelta,improvementDirection,formatSpec){this.unitName=unitName;this.jsonName=jsonName;this.scaleBaseUnit=scaleBaseUnit;this.isDelta=isDelta;this.improvementDirection=improvementDirection;this.formatSpec_=formatSpec;this.baseUnit=undefined;this.correspondingDeltaUnit=undefined;}
Unit.prototype={asJSON(){return this.jsonName;},getUnitScale_(opt_context){let formatSpec=this.formatSpec_;let formatSpecWasFunction=false;if(typeof formatSpec==='function'){formatSpecWasFunction=true;formatSpec=formatSpec();}
const context=opt_context||{};let scale=undefined;if(context.unitScale){scale=context.unitScale;}else if(context.unitPrefix){const symbol=formatSpec.baseSymbol?formatSpec.baseSymbol:this.scaleBaseUnit.baseSymbol;scale=tr.b.UnitScale.defineUnitScaleFromPrefixScale(symbol,symbol,[context.unitPrefix]).AUTO;}else{scale=formatSpec.unitScale;if(!scale){scale=[{value:1,symbol:formatSpec.baseSymbol||'',baseSymbol:formatSpec.baseSymbol||''}];if(!formatSpecWasFunction)formatSpec.unitScale=scale;}}
if(!(scale instanceof Array)){throw new Error('Unit has a malformed unit scale.');}
return scale;},get unitString(){const scale=this.getUnitScale_();if(!scale){throw new Error('A UnitScale could not be found for Unit '+this.unitName);}
return scale[0].symbol;},format(value,opt_context){let signString='';if(value<0){signString='-';value=-value;}else if(this.isDelta){signString=value===0?PLUS_MINUS_SIGN:'+';}
const context=opt_context||{};const scale=this.getUnitScale_(context);let deltaValue=context.deltaValue===undefined?value:context.deltaValue;deltaValue=Math.abs(deltaValue)*this.scaleBaseUnit.value;let i=0;while(i<scale.length-1&&deltaValue/scale[i+1].value>=1){i++;}
const selectedSubUnit=scale[i];let formatSpec=this.formatSpec_;if(typeof formatSpec==='function')formatSpec=formatSpec();let unitString='';if(selectedSubUnit.symbol){if(!formatSpec.avoidSpacePrecedingUnit)unitString=' ';unitString+=selectedSubUnit.symbol;}
value=tr.b.convertUnit(value,this.scaleBaseUnit,selectedSubUnit);const numberString=getNumberFormatter(formatSpec.minimumFractionDigits,formatSpec.maximumFractionDigits,context.minimumFractionDigits,context.maximumFractionDigits).format(value);return signString+numberString+unitString;}};Unit.reset=function(){Unit.currentTimeDisplayMode=TimeDisplayModes.ms;};Unit.timestampFromUs=function(us){return tr.b.convertUnit(us,tr.b.UnitPrefixScale.METRIC.MICRO,tr.b.UnitPrefixScale.METRIC.MILLI);};Object.defineProperty(Unit,'currentTimeDisplayMode',{get(){return Unit.currentTimeDisplayMode_;},set(value){if(Unit.currentTimeDisplayMode_===value)return;Unit.currentTimeDisplayMode_=value;Unit.dispatchEvent(new tr.b.Event('display-mode-changed'));}});Unit.didPreferredTimeDisplayUnitChange=function(){let largest=undefined;const els=tr.ui.b.findDeepElementsMatching(document.body,'tr-v-ui-preferred-display-unit');els.forEach(function(el){largest=max(largest,el.preferredTimeDisplayMode);});Unit.currentTimeDisplayMode=largest===undefined?TimeDisplayModes.ms:largest;};Unit.byName={};Unit.byJSONName={};Unit.fromJSON=function(object){const u=Unit.byJSONName[object];if(u){return u;}
throw new Error(`Unrecognized unit "${object}"`);};Unit.define=function(params){const definedUnits=[];for(const improvementDirection of Object.values(ImprovementDirection)){const regularUnit=Unit.defineUnitVariant_(params,false,improvementDirection);const deltaUnit=Unit.defineUnitVariant_(params,true,improvementDirection);regularUnit.correspondingDeltaUnit=deltaUnit;deltaUnit.correspondingDeltaUnit=deltaUnit;definedUnits.push(regularUnit,deltaUnit);}
const baseUnit=Unit.byName[params.baseUnitName];definedUnits.forEach(u=>u.baseUnit=baseUnit);};Unit.nameSuffixForImprovementDirection=function(improvementDirection){switch(improvementDirection){case ImprovementDirection.DONT_CARE:return'';case ImprovementDirection.BIGGER_IS_BETTER:return'_biggerIsBetter';case ImprovementDirection.SMALLER_IS_BETTER:return'_smallerIsBetter';default:throw new Error('Unknown improvement direction: '+improvementDirection);}};Unit.defineUnitVariant_=function(params,isDelta,improvementDirection){let nameSuffix=isDelta?'Delta':'';nameSuffix+=Unit.nameSuffixForImprovementDirection(improvementDirection);const unitName=params.baseUnitName+nameSuffix;const jsonName=params.baseJsonName+nameSuffix;if(Unit.byName[unitName]!==undefined){throw new Error('Unit \''+unitName+'\' already exists');}
if(Unit.byJSONName[jsonName]!==undefined){throw new Error('JSON unit \''+jsonName+'\' alread exists');}
let scaleBaseUnit=params.scaleBaseUnit;if(!scaleBaseUnit){let formatSpec=params.formatSpec;if(typeof formatSpec==='function')formatSpec=formatSpec();const baseSymbol=formatSpec.unitScale?formatSpec.unitScale[0].baseSymbol:(formatSpec.baseSymbol||'');scaleBaseUnit={value:1,symbol:baseSymbol,baseSymbol};}
const unit=new Unit(unitName,jsonName,scaleBaseUnit,isDelta,improvementDirection,params.formatSpec);Unit.byName[unitName]=unit;Unit.byJSONName[jsonName]=unit;return unit;};tr.b.EventTarget.decorate(Unit);Unit.reset();Unit.define({baseUnitName:'timeInMsAutoFormat',baseJsonName:'msBestFitFormat',scaleBaseUnit:tr.b.UnitScale.TIME.MILLI_SEC,formatSpec:{unitScale:tr.b.UnitScale.TIME.AUTO,minimumFractionDigits:0,maximumFractionDigits:3}});Unit.define({baseUnitName:'timeDurationInMs',baseJsonName:'ms',scaleBaseUnit:tr.b.UnitScale.TIME.MILLI_SEC,formatSpec(){return Unit.currentTimeDisplayMode_.formatSpec;}});Unit.define({baseUnitName:'timeStampInMs',baseJsonName:'tsMs',scaleBaseUnit:tr.b.UnitScale.TIME.MILLI_SEC,formatSpec(){return Unit.currentTimeDisplayMode_.formatSpec;}});Unit.define({baseUnitName:'normalizedPercentage',baseJsonName:'n%',formatSpec:{unitScale:[{value:0.01,symbol:'%'}],avoidSpacePrecedingUnit:true,minimumFractionDigits:3,maximumFractionDigits:3}});Unit.define({baseUnitName:'sizeInBytes',baseJsonName:'sizeInBytes',formatSpec:{unitScale:tr.b.UnitScale.MEMORY.AUTO,minimumFractionDigits:1,maximumFractionDigits:1}});Unit.define({baseUnitName:'energyInJoules',baseJsonName:'J',formatSpec:{baseSymbol:'J',minimumFractionDigits:3}});Unit.define({baseUnitName:'powerInWatts',baseJsonName:'W',formatSpec:{baseSymbol:'W',minimumFractionDigits:3}});Unit.define({baseUnitName:'unitlessNumber',baseJsonName:'unitless',formatSpec:{minimumFractionDigits:3,maximumFractionDigits:3}});Unit.define({baseUnitName:'count',baseJsonName:'count',formatSpec:{minimumFractionDigits:0,maximumFractionDigits:0}});Unit.define({baseUnitName:'sigma',baseJsonName:'sigma',formatSpec:{baseSymbol:String.fromCharCode(963),minimumFractionDigits:1,maximumFractionDigits:1}});return{ImprovementDirection,Unit,};});'use strict';tr.exportTo('tr.b',function(){class Scalar{constructor(unit,value){if(!(unit instanceof tr.b.Unit)){throw new Error('Expected Unit');}
if(!(typeof(value)==='number')){throw new Error('Expected value to be number');}
this.unit=unit;this.value=value;}
asDict(){return{unit:this.unit.asJSON(),value:tr.b.numberToJson(this.value),};}
toString(){return this.unit.format(this.value);}
static fromDict(d){return new Scalar(tr.b.Unit.fromJSON(d.unit),tr.b.numberFromJson(d.value));}}
return{Scalar,};});'use strict';tr.exportTo('tr.c',function(){function Auditor(model){this.model_=model;}
Auditor.prototype={__proto__:Object.prototype,get model(){return this.model_;},runAnnotate(){},installUserFriendlyCategoryDriverIfNeeded(){},runAudit(){}};const options=new tr.b.ExtensionRegistryOptions(tr.b.BASIC_REGISTRY_MODE);options.defaultMetadata={};options.mandatoryBaseClass=Auditor;tr.b.decorateExtensionRegistry(Auditor,options);return{Auditor,};});'use strict';tr.exportTo('tr.b',function(){function clamp01(value){return Math.max(0,Math.min(1,value));}
function Color(opt_r,opt_g,opt_b,opt_a){this.r=Math.floor(opt_r)||0;this.g=Math.floor(opt_g)||0;this.b=Math.floor(opt_b)||0;this.a=opt_a;}
Color.fromString=function(str){let tmp;let values;if(str.substr(0,4)==='rgb('){tmp=str.substr(4,str.length-5);values=tmp.split(',').map(function(v){return v.replace(/^\s+/,'','g');});if(values.length!==3){throw new Error('Malformatted rgb-expression');}
return new Color(parseInt(values[0]),parseInt(values[1]),parseInt(values[2]));}
if(str.substr(0,5)==='rgba('){tmp=str.substr(5,str.length-6);values=tmp.split(',').map(function(v){return v.replace(/^\s+/,'','g');});if(values.length!==4){throw new Error('Malformatted rgb-expression');}
return new Color(parseInt(values[0]),parseInt(values[1]),parseInt(values[2]),parseFloat(values[3]));}
if(str[0]==='#'&&str.length===7){return new Color(parseInt(str.substr(1,2),16),parseInt(str.substr(3,2),16),parseInt(str.substr(5,2),16));}
throw new Error('Unrecognized string format.');};Color.lerp=function(a,b,percent){if(a.a!==undefined&&b.a!==undefined){return Color.lerpRGBA(a,b,percent);}
return Color.lerpRGB(a,b,percent);};Color.lerpRGB=function(a,b,percent){return new Color(((b.r-a.r)*percent)+a.r,((b.g-a.g)*percent)+a.g,((b.b-a.b)*percent)+a.b);};Color.lerpRGBA=function(a,b,percent){return new Color(((b.r-a.r)*percent)+a.r,((b.g-a.g)*percent)+a.g,((b.b-a.b)*percent)+a.b,((b.a-a.a)*percent)+a.a);};Color.fromDict=function(dict){return new Color(dict.r,dict.g,dict.b,dict.a);};Color.fromHSLExplicit=function(h,s,l,a){let r;let g;let b;function hue2rgb(p,q,t){if(t<0)t+=1;if(t>1)t-=1;if(t<1/6)return p+(q-p)*6*t;if(t<1/2)return q;if(t<2/3)return p+(q-p)*(2/3-t)*6;return p;}
if(s===0){r=g=b=l;}else{const q=l<0.5?l*(1+s):l+s-l*s;const p=2*l-q;r=hue2rgb(p,q,h+1/3);g=hue2rgb(p,q,h);b=hue2rgb(p,q,h-1/3);}
return new Color(Math.floor(r*255),Math.floor(g*255),Math.floor(b*255),a);};Color.fromHSL=function(hsl){return Color.fromHSLExplicit(hsl.h,hsl.s,hsl.l,hsl.a);};Color.prototype={clone(){const c=new Color();c.r=this.r;c.g=this.g;c.b=this.b;c.a=this.a;return c;},blendOver(bgColor){const oneMinusThisAlpha=1-this.a;const outA=this.a+bgColor.a*oneMinusThisAlpha;const bgBlend=(bgColor.a*oneMinusThisAlpha)/bgColor.a;return new Color(this.r*this.a+bgColor.r*bgBlend,this.g*this.a+bgColor.g*bgBlend,this.b*this.a+bgColor.b*bgBlend,outA);},brighten(opt_k){const k=opt_k||0.45;return new Color(Math.min(255,this.r+Math.floor(this.r*k)),Math.min(255,this.g+Math.floor(this.g*k)),Math.min(255,this.b+Math.floor(this.b*k)),this.a);},lighten(k,opt_maxL){const maxL=opt_maxL!==undefined?opt_maxL:1.0;const hsl=this.toHSL();hsl.l=Math.min(hsl.l+k,maxL);return Color.fromHSL(hsl);},darken(opt_k){let k;if(opt_k!==undefined){k=opt_k;}else{k=0.45;}
return new Color(Math.min(255,this.r-Math.floor(this.r*k)),Math.min(255,this.g-Math.floor(this.g*k)),Math.min(255,this.b-Math.floor(this.b*k)),this.a);},desaturate(opt_desaturateFactor){let desaturateFactor;if(opt_desaturateFactor!==undefined){desaturateFactor=opt_desaturateFactor;}else{desaturateFactor=1;}
const hsl=this.toHSL();hsl.s=clamp01(hsl.s*(1-desaturateFactor));return Color.fromHSL(hsl);},withAlpha(a){return new Color(this.r,this.g,this.b,a);},toString(){if(this.a!==undefined){return'rgba('+
this.r+','+this.g+','+
this.b+','+this.a+')';}
return'rgb('+this.r+','+this.g+','+this.b+')';},toHSL(){const r=this.r/255;const g=this.g/255;const b=this.b/255;const max=Math.max(r,g,b);const min=Math.min(r,g,b);let h;let s;const l=(max+min)/2;if(min===max){h=0;s=0;}else{const delta=max-min;if(l>0.5){s=delta/(2-max-min);}else{s=delta/(max+min);}
if(r===max){h=(g-b)/delta;if(g<b)h+=6;}else if(g===max){h=2+((b-r)/delta);}else{h=4+((r-g)/delta);}
h/=6;}
return{h,s,l,a:this.a};},toStringWithAlphaOverride(alpha){return'rgba('+
this.r+','+this.g+','+
this.b+','+alpha+')';}};return{Color,};});'use strict';tr.exportTo('tr.b',function(){function SinebowColorGenerator(opt_a,opt_brightness){this.a_=(opt_a===undefined)?1:opt_a;this.brightness_=(opt_brightness===undefined)?1:opt_brightness;this.colorIndex_=0;this.keyToColor={};}
SinebowColorGenerator.prototype={colorForKey(key){if(!this.keyToColor[key]){this.keyToColor[key]=this.nextColor();}
return this.keyToColor[key];},nextColor(){const components=SinebowColorGenerator.nthColor(this.colorIndex_++);return tr.b.Color.fromString(SinebowColorGenerator.calculateColor(components[0],components[1],components[2],this.a_,this.brightness_));}};SinebowColorGenerator.PHI=(1+Math.sqrt(5))/2;SinebowColorGenerator.sinebow_=function(h){h+=0.5;h=-h;let r=Math.sin(Math.PI*h);let g=Math.sin(Math.PI*(h+1/3));let b=Math.sin(Math.PI*(h+2/3));r*=r;g*=g;b*=b;const y=2*(0.2989*r+0.5870*g+0.1140*b);r/=y;g/=y;b/=y;return[256*r,256*g,256*b];};SinebowColorGenerator.nthColor=function(n){return SinebowColorGenerator.sinebow_(n*this.PHI);};SinebowColorGenerator.calculateColor=function(r,g,b,a,brightness){if(brightness<=1){r*=brightness;g*=brightness;b*=brightness;}else{r=tr.b.math.lerp(tr.b.math.normalize(brightness,1,2),r,255);g=tr.b.math.lerp(tr.b.math.normalize(brightness,1,2),g,255);b=tr.b.math.lerp(tr.b.math.normalize(brightness,1,2),b,255);}
r=Math.round(r);g=Math.round(g);b=Math.round(b);return'rgba('+r+','+g+','+b+', '+a+')';};return{SinebowColorGenerator,};});'use strict';tr.exportTo('tr.b',function(){const numGeneralPurposeColorIds=23;const generalPurposeColors=new Array(numGeneralPurposeColorIds);const sinebowAlpha=1.0;const sinebowBrightness=1.5;const sinebowColorGenerator=new tr.b.SinebowColorGenerator(sinebowAlpha,sinebowBrightness);for(let i=0;i<numGeneralPurposeColorIds;i++){generalPurposeColors[i]=sinebowColorGenerator.nextColor();}
const reservedColorsByName={thread_state_uninterruptible:new tr.b.Color(182,125,143),thread_state_iowait:new tr.b.Color(255,140,0),thread_state_running:new tr.b.Color(126,200,148),thread_state_runnable:new tr.b.Color(133,160,210),thread_state_sleeping:new tr.b.Color(240,240,240),thread_state_unknown:new tr.b.Color(199,155,125),background_memory_dump:new tr.b.Color(0,180,180),light_memory_dump:new tr.b.Color(0,0,180),detailed_memory_dump:new tr.b.Color(180,0,180),vsync_highlight_color:new tr.b.Color(0,0,255),generic_work:new tr.b.Color(125,125,125),good:new tr.b.Color(0,125,0),bad:new tr.b.Color(180,125,0),terrible:new tr.b.Color(180,0,0),black:new tr.b.Color(0,0,0),grey:new tr.b.Color(221,221,221),white:new tr.b.Color(255,255,255),yellow:new tr.b.Color(255,255,0),olive:new tr.b.Color(100,100,0),rail_response:new tr.b.Color(67,135,253),rail_animation:new tr.b.Color(244,74,63),rail_idle:new tr.b.Color(238,142,0),rail_load:new tr.b.Color(13,168,97),startup:new tr.b.Color(230,230,0),heap_dump_stack_frame:new tr.b.Color(128,128,128),heap_dump_object_type:new tr.b.Color(0,0,255),heap_dump_child_node_arrow:new tr.b.Color(204,102,0),cq_build_running:new tr.b.Color(255,255,119),cq_build_passed:new tr.b.Color(153,238,102),cq_build_failed:new tr.b.Color(238,136,136),cq_build_abandoned:new tr.b.Color(187,187,187),cq_build_attempt_runnig:new tr.b.Color(222,222,75),cq_build_attempt_passed:new tr.b.Color(103,218,35),cq_build_attempt_failed:new tr.b.Color(197,81,81)};const numReservedColorIds=Object.keys(reservedColorsByName).length;const numColorsPerVariant=numGeneralPurposeColorIds+numReservedColorIds;function ColorScheme(){}
const paletteBase=[];paletteBase.push.apply(paletteBase,generalPurposeColors);paletteBase.push.apply(paletteBase,Object.values(reservedColorsByName));ColorScheme.colors=[];ColorScheme.properties={};ColorScheme.properties={numColorsPerVariant,};function pushVariant(func){const variantColors=paletteBase.map(func);ColorScheme.colors.push.apply(ColorScheme.colors,variantColors);}
pushVariant(function(c){return c;});ColorScheme.properties.brightenedOffsets=[];ColorScheme.properties.brightenedOffsets.push(ColorScheme.colors.length);pushVariant(function(c){return c.lighten(0.3,0.8);});ColorScheme.properties.brightenedOffsets.push(ColorScheme.colors.length);pushVariant(function(c){return c.lighten(0.48,0.85);});ColorScheme.properties.brightenedOffsets.push(ColorScheme.colors.length);pushVariant(function(c){return c.lighten(0.65,0.9);});ColorScheme.properties.dimmedOffsets=[];ColorScheme.properties.dimmedOffsets.push(ColorScheme.colors.length);pushVariant(function(c){return c.desaturate();});ColorScheme.properties.dimmedOffsets.push(ColorScheme.colors.length);pushVariant(function(c){return c.desaturate(0.5);});ColorScheme.properties.dimmedOffsets.push(ColorScheme.colors.length);pushVariant(function(c){return c.desaturate(0.3);});ColorScheme.colorsAsStrings=ColorScheme.colors.map(function(c){return c.toString();});const reservedColorNameToIdMap=(function(){const m=new Map();let i=generalPurposeColors.length;for(const key of Object.keys(reservedColorsByName)){m.set(key,i++);}
return m;})();ColorScheme.getColorIdForReservedName=function(name){const id=reservedColorNameToIdMap.get(name);if(id===undefined){throw new Error('Unrecognized color '+name);}
return id;};ColorScheme.getColorForReservedNameAsString=function(reservedName){const id=ColorScheme.getColorIdForReservedName(reservedName);return ColorScheme.colorsAsStrings[id];};ColorScheme.getStringHash=function(name){let hash=0;for(let i=0;i<name.length;++i){hash=(hash+37*hash+11*name.charCodeAt(i))%0xFFFFFFFF;}
return hash;};const stringColorIdCache=new Map();ColorScheme.getColorIdForGeneralPurposeString=function(string){if(stringColorIdCache.get(string)===undefined){const hash=ColorScheme.getStringHash(string);stringColorIdCache.set(string,hash%numGeneralPurposeColorIds);}
return stringColorIdCache.get(string);};ColorScheme.getAnotherColorId=function(colorId,n){return(colorId+n)%numColorsPerVariant;};ColorScheme.getVariantColorId=function(colorId,offset){return colorId+offset;};return{ColorScheme,};});'use strict';tr.exportTo('tr.model',function(){const ColorScheme=tr.b.ColorScheme;function EventInfo(title,description,docLinks){this.title=title;this.description=description;this.docLinks=docLinks;this.colorId=ColorScheme.getColorIdForGeneralPurposeString(title);}
return{EventInfo,};});'use strict';tr.exportTo('tr.b',function(){let nextGUID=1;const UUID4_PATTERN='xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx';const GUID={allocateSimple(){return nextGUID++;},getLastSimpleGuid(){return nextGUID-1;},allocateUUID4(){return UUID4_PATTERN.replace(/[xy]/g,function(c){let r=parseInt(Math.random()*16);if(c==='y')r=(r&3)+8;return r.toString(16);});}};return{GUID,};});'use strict';tr.exportTo('tr.model',function(){function EventRegistry(){}
const options=new tr.b.ExtensionRegistryOptions(tr.b.BASIC_REGISTRY_MODE);tr.b.decorateExtensionRegistry(EventRegistry,options);EventRegistry.addEventListener('will-register',function(e){const metadata=e.typeInfo.metadata;if(metadata.name===undefined){throw new Error('Registered events must provide name metadata');}
if(metadata.pluralName===undefined){throw new Error('Registered events must provide pluralName metadata');}
if(metadata.subTypes===undefined){metadata.subTypes={};const options=new tr.b.ExtensionRegistryOptions(tr.b.TYPE_BASED_REGISTRY_MODE);options.mandatoryBaseClass=e.typeInfo.constructor;options.defaultConstructor=e.typeInfo.constructor;tr.b.decorateExtensionRegistry(metadata.subTypes,options);}else{if(!metadata.subTypes.register){throw new Error('metadata.subTypes must be an extension registry.');}}
e.typeInfo.constructor.subTypes=metadata.subTypes;});let eventsByTypeName=undefined;EventRegistry.getEventTypeInfoByTypeName=function(typeName){if(eventsByTypeName===undefined){eventsByTypeName={};EventRegistry.getAllRegisteredTypeInfos().forEach(function(typeInfo){eventsByTypeName[typeInfo.metadata.name]=typeInfo;});}
return eventsByTypeName[typeName];};EventRegistry.addEventListener('registry-changed',function(){eventsByTypeName=undefined;});function convertCamelCaseToTitleCase(name){let result=name.replace(/[A-Z]/g,' $&');result=result.charAt(0).toUpperCase()+result.slice(1);return result;}
EventRegistry.getUserFriendlySingularName=function(typeName){const typeInfo=EventRegistry.getEventTypeInfoByTypeName(typeName);const str=typeInfo.metadata.name;return convertCamelCaseToTitleCase(str);};EventRegistry.getUserFriendlyPluralName=function(typeName){const typeInfo=EventRegistry.getEventTypeInfoByTypeName(typeName);const str=typeInfo.metadata.pluralName;return convertCamelCaseToTitleCase(str);};return{EventRegistry,};});'use strict';tr.exportTo('tr.model',function(){const EventRegistry=tr.model.EventRegistry;const RequestSelectionChangeEvent=tr.b.Event.bind(undefined,'requestSelectionChange',true,false);function EventSet(opt_events){this.bounds_=new tr.b.math.Range();this.events_=new Set();this.guid_=tr.b.GUID.allocateSimple();if(opt_events){if(opt_events instanceof Array){for(const event of opt_events){this.push(event);}}else if(opt_events instanceof EventSet){this.addEventSet(opt_events);}else{this.push(opt_events);}}}
EventSet.prototype={__proto__:Object.prototype,get bounds(){return this.bounds_;},get duration(){if(this.bounds_.isEmpty)return 0;return this.bounds_.max-this.bounds_.min;},get length(){return this.events_.size;},get guid(){return this.guid_;},*[Symbol.iterator](){for(const event of this.events_){yield event;}},clear(){this.bounds_=new tr.b.math.Range();this.events_.clear();},push(...events){let numPushed;for(const event of events){if(event.guid===undefined){throw new Error('Event must have a GUID');}
if(!this.events_.has(event)){this.events_.add(event);if(event.addBoundsToRange){if(this.bounds_!==undefined){event.addBoundsToRange(this.bounds_);}}}
numPushed++;}
return numPushed;},contains(event){if(this.events_.has(event))return event;return undefined;},addEventSet(eventSet){for(const event of eventSet){this.push(event);}},intersectionIsEmpty(otherEventSet){return!this.some(event=>otherEventSet.contains(event));},equals(that){if(this.length!==that.length)return false;return this.every(event=>that.contains(event));},sortEvents(compare){const ary=this.toArray();ary.sort(compare);this.clear();for(const event of ary){this.push(event);}},getEventsOrganizedByBaseType(opt_pruneEmpty){const allTypeInfos=EventRegistry.getAllRegisteredTypeInfos();const events=this.getEventsOrganizedByCallback(function(event){let maxEventIndex=-1;let maxEventTypeInfo=undefined;allTypeInfos.forEach(function(eventTypeInfo,eventIndex){if(!(event instanceof eventTypeInfo.constructor))return;if(eventIndex>maxEventIndex){maxEventIndex=eventIndex;maxEventTypeInfo=eventTypeInfo;}});if(maxEventIndex===-1){throw new Error(`Unrecognized event type: ${event.constructor.name}`);}
return maxEventTypeInfo.metadata.name;});if(!opt_pruneEmpty){allTypeInfos.forEach(function(eventTypeInfo){if(events[eventTypeInfo.metadata.name]===undefined){events[eventTypeInfo.metadata.name]=new EventSet();}});}
return events;},getEventsOrganizedByTitle(){return this.getEventsOrganizedByCallback(function(event){if(event.title===undefined){throw new Error('An event didn\'t have a title!');}
return event.title;});},getEventsOrganizedByCallback(cb,opt_this){const groupedEvents=tr.b.groupIntoMap(this,cb,opt_this||this);const groupedEventsDict={};for(const[k,events]of groupedEvents){groupedEventsDict[k]=new EventSet(events);}
return groupedEventsDict;},enumEventsOfType(type,func){for(const event of this){if(event instanceof type){func(event);}}},get userFriendlyName(){if(this.length===0){throw new Error('Empty event set');}
const eventsByBaseType=this.getEventsOrganizedByBaseType(true);const eventTypeName=Object.keys(eventsByBaseType)[0];if(this.length===1){const tmp=EventRegistry.getUserFriendlySingularName(eventTypeName);return tr.b.getOnlyElement(this.events_).userFriendlyName;}
const numEventTypes=Object.keys(eventsByBaseType).length;if(numEventTypes!==1){return this.length+' events of various types';}
const tmp=EventRegistry.getUserFriendlyPluralName(eventTypeName);return this.length+' '+tmp;},filter(fn,opt_this){const res=new EventSet();for(const event of this){if(fn.call(opt_this,event)){res.push(event);}}
return res;},toArray(){const ary=[];for(const event of this){ary.push(event);}
return ary;},forEach(fn,opt_this){for(const event of this){fn.call(opt_this,event);}},map(fn,opt_this){const res=[];for(const event of this){res.push(fn.call(opt_this,event));}
return res;},every(fn,opt_this){for(const event of this){if(!fn.call(opt_this,event)){return false;}}
return true;},some(fn,opt_this){for(const event of this){if(fn.call(opt_this,event)){return true;}}
return false;},asDict(){const stableIds=[];for(const event of this){stableIds.push(event.stableId);}
return{'events':stableIds};},asSet(){return this.events_;}};EventSet.IMMUTABLE_EMPTY_SET=(function(){const s=new EventSet();s.push=function(){throw new Error('Cannot push to an immutable event set');};s.addEventSet=function(){throw new Error('Cannot add to an immutable event set');};Object.freeze(s);return s;})();return{EventSet,RequestSelectionChangeEvent,};});'use strict';tr.exportTo('tr.model',function(){const ColorScheme=tr.b.ColorScheme;const SelectionState={NONE:0,SELECTED:ColorScheme.properties.brightenedOffsets[0],HIGHLIGHTED:ColorScheme.properties.brightenedOffsets[1],DIMMED:ColorScheme.properties.dimmedOffsets[0],BRIGHTENED0:ColorScheme.properties.brightenedOffsets[0],BRIGHTENED1:ColorScheme.properties.brightenedOffsets[1],BRIGHTENED2:ColorScheme.properties.brightenedOffsets[2],DIMMED0:ColorScheme.properties.dimmedOffsets[0],DIMMED1:ColorScheme.properties.dimmedOffsets[1],DIMMED2:ColorScheme.properties.dimmedOffsets[2]};const brighteningLevels=[SelectionState.NONE,SelectionState.BRIGHTENED0,SelectionState.BRIGHTENED1,SelectionState.BRIGHTENED2];SelectionState.getFromBrighteningLevel=function(level){return brighteningLevels[level];};const dimmingLevels=[SelectionState.DIMMED0,SelectionState.DIMMED1,SelectionState.DIMMED2];SelectionState.getFromDimmingLevel=function(level){return dimmingLevels[level];};return{SelectionState,};});'use strict';tr.exportTo('tr.model',function(){const SelectionState=tr.model.SelectionState;function SelectableItem(modelItem){this.modelItem_=modelItem;}
SelectableItem.prototype={get modelItem(){return this.modelItem_;},get selected(){return this.selectionState===SelectionState.SELECTED;},addToSelection(selection){const modelItem=this.modelItem_;if(!modelItem)return;selection.push(modelItem);},addToTrackMap(eventToTrackMap,track){const modelItem=this.modelItem_;if(!modelItem)return;eventToTrackMap.addEvent(modelItem,track);}};return{SelectableItem,};});'use strict';tr.exportTo('tr.model',function(){const SelectableItem=tr.model.SelectableItem;const SelectionState=tr.model.SelectionState;const IMMUTABLE_EMPTY_SET=tr.model.EventSet.IMMUTABLE_EMPTY_SET;function Event(){SelectableItem.call(this,this);this.guid_=tr.b.GUID.allocateSimple();this.selectionState=SelectionState.NONE;this.info=undefined;}
Event.prototype={__proto__:SelectableItem.prototype,get guid(){return this.guid_;},get stableId(){return undefined;},get range(){const range=new tr.b.math.Range();this.addBoundsToRange(range);return range;},associatedAlerts:IMMUTABLE_EMPTY_SET,addAssociatedAlert(alert){if(this.associatedAlerts===IMMUTABLE_EMPTY_SET){this.associatedAlerts=new tr.model.EventSet();}
this.associatedAlerts.push(alert);},addBoundsToRange(range){}};return{Event,};});'use strict';tr.exportTo('tr.model',function(){function TimedEvent(start){tr.model.Event.call(this);this.start=start;this.duration=0;this.cpuStart=undefined;this.cpuDuration=undefined;this.contexts=Object.freeze([]);}
TimedEvent.prototype={__proto__:tr.model.Event.prototype,get end(){return this.start+this.duration;},get boundsRange(){return tr.b.math.Range.fromExplicitRange(this.start,this.end);},addBoundsToRange(range){range.addValue(this.start);range.addValue(this.end);},bounds(that,opt_precisionUnit){if(opt_precisionUnit===undefined){opt_precisionUnit=tr.b.TimeDisplayModes.ms;}
const startsBefore=opt_precisionUnit.roundedLess(that.start,this.start);const endsAfter=opt_precisionUnit.roundedLess(this.end,that.end);return!startsBefore&&!endsAfter;}};return{TimedEvent,};});'use strict';tr.exportTo('tr.model',function(){function Alert(info,start,opt_associatedEvents,opt_args){tr.model.TimedEvent.call(this,start);this.info=info;this.args=opt_args||{};this.associatedEvents=new tr.model.EventSet(opt_associatedEvents);this.associatedEvents.forEach(function(event){event.addAssociatedAlert(this);},this);}
Alert.prototype={__proto__:tr.model.TimedEvent.prototype,get title(){return this.info.title;},get colorId(){return this.info.colorId;},get userFriendlyName(){return'Alert '+this.title+' at '+
tr.b.Unit.byName.timeStampInMs.format(this.start);}};tr.model.EventRegistry.register(Alert,{name:'alert',pluralName:'alerts'});return{Alert,};});'use strict';tr.exportTo('tr.model',function(){const ColorScheme=tr.b.ColorScheme;const Statistics=tr.b.math.Statistics;const FRAME_PERF_CLASS={GOOD:'good',BAD:'bad',TERRIBLE:'terrible',NEUTRAL:'generic_work'};function Frame(associatedEvents,threadTimeRanges,opt_args){tr.model.Event.call(this);this.threadTimeRanges=threadTimeRanges;this.associatedEvents=new tr.model.EventSet(associatedEvents);this.args=opt_args||{};this.title='Frame';this.start=Statistics.min(threadTimeRanges,function(x){return x.start;});this.end=Statistics.max(threadTimeRanges,function(x){return x.end;});this.totalDuration=Statistics.sum(threadTimeRanges,function(x){return x.end-x.start;});this.perfClass=FRAME_PERF_CLASS.NEUTRAL;}
Frame.prototype={__proto__:tr.model.Event.prototype,set perfClass(perfClass){this.colorId=ColorScheme.getColorIdForReservedName(perfClass);this.perfClass_=perfClass;},get perfClass(){return this.perfClass_;},shiftTimestampsForward(amount){this.start+=amount;this.end+=amount;for(let i=0;i<this.threadTimeRanges.length;i++){this.threadTimeRanges[i].start+=amount;this.threadTimeRanges[i].end+=amount;}},addBoundsToRange(range){range.addValue(this.start);range.addValue(this.end);}};tr.model.EventRegistry.register(Frame,{name:'frame',pluralName:'frames'});return{Frame,FRAME_PERF_CLASS,};});'use strict';tr.exportTo('tr.model.helpers',function(){const Frame=tr.model.Frame;const Statistics=tr.b.math.Statistics;const UI_DRAW_TYPE={NONE:'none',LEGACY:'legacy',MARSHMALLOW:'marshmallow'};const UI_THREAD_DRAW_NAMES={'performTraversals':UI_DRAW_TYPE.LEGACY,'Choreographer#doFrame':UI_DRAW_TYPE.MARSHMALLOW};const RENDER_THREAD_DRAW_NAME='DrawFrame';const RENDER_THREAD_INDEP_DRAW_NAME='doFrame';const RENDER_THREAD_QUEUE_NAME='queueBuffer';const RENDER_THREAD_SWAP_NAME='eglSwapBuffers';const THREAD_SYNC_NAME='syncFrameState';function getSlicesForThreadTimeRanges(threadTimeRanges){const ret=[];threadTimeRanges.forEach(function(threadTimeRange){const slices=[];threadTimeRange.thread.sliceGroup.iterSlicesInTimeRange(function(slice){slices.push(slice);},threadTimeRange.start,threadTimeRange.end);ret.push.apply(ret,slices);});return ret;}
function makeFrame(threadTimeRanges,surfaceFlinger){const args={};if(surfaceFlinger&&surfaceFlinger.hasVsyncs){const start=Statistics.min(threadTimeRanges,function(threadTimeRanges){return threadTimeRanges.start;});args.deadline=surfaceFlinger.getFrameDeadline(start);args.frameKickoff=surfaceFlinger.getFrameKickoff(start);}
const events=getSlicesForThreadTimeRanges(threadTimeRanges);return new Frame(events,threadTimeRanges,args);}
function findOverlappingDrawFrame(renderThread,uiDrawSlice){if(!renderThread)return undefined;let overlappingDrawFrame;const slices=tr.b.iterateOverIntersectingIntervals(renderThread.sliceGroup.slices,function(range){return range.start;},function(range){return range.end;},uiDrawSlice.start,uiDrawSlice.end,function(rtDrawSlice){if(rtDrawSlice.title===RENDER_THREAD_DRAW_NAME){const rtSyncSlice=rtDrawSlice.findDescendentSlice(THREAD_SYNC_NAME);if(rtSyncSlice&&rtSyncSlice.start>=uiDrawSlice.start&&rtSyncSlice.end<=uiDrawSlice.end){overlappingDrawFrame=rtDrawSlice;}}});return overlappingDrawFrame;}
function getPreTraversalWorkRanges(uiThread){if(!uiThread)return[];const preFrameEvents=[];uiThread.sliceGroup.slices.forEach(function(slice){if(slice.title==='obtainView'||slice.title==='setupListItem'||slice.title==='deliverInputEvent'||slice.title==='RV Scroll'){preFrameEvents.push(slice);}});uiThread.asyncSliceGroup.slices.forEach(function(slice){if(slice.title==='deliverInputEvent'){preFrameEvents.push(slice);}});return tr.b.math.mergeRanges(tr.b.math.convertEventsToRanges(preFrameEvents),3,function(events){return{start:events[0].min,end:events[events.length-1].max};});}
function getFrameStartTime(traversalStart,preTraversalWorkRanges){const preTraversalWorkRange=tr.b.findClosestIntervalInSortedIntervals(preTraversalWorkRanges,function(range){return range.start;},function(range){return range.end;},traversalStart,3);if(preTraversalWorkRange){return preTraversalWorkRange.start;}
return traversalStart;}
function getRtFrameEndTime(rtDrawSlice){const rtQueueSlice=rtDrawSlice.findDescendentSlice(RENDER_THREAD_QUEUE_NAME);if(rtQueueSlice){return rtQueueSlice.end;}
const rtSwapSlice=rtDrawSlice.findDescendentSlice(RENDER_THREAD_SWAP_NAME);if(rtSwapSlice){return rtSwapSlice.end;}
return rtDrawSlice.end;}
function getUiThreadDrivenFrames(app){if(!app.uiThread)return[];let preTraversalWorkRanges=[];if(app.uiDrawType===UI_DRAW_TYPE.LEGACY){preTraversalWorkRanges=getPreTraversalWorkRanges(app.uiThread);}
const frames=[];app.uiThread.sliceGroup.slices.forEach(function(slice){if(!(slice.title in UI_THREAD_DRAW_NAMES)){return;}
const threadTimeRanges=[];const uiThreadTimeRange={thread:app.uiThread,start:getFrameStartTime(slice.start,preTraversalWorkRanges),end:slice.end};threadTimeRanges.push(uiThreadTimeRange);const rtDrawSlice=findOverlappingDrawFrame(app.renderThread,slice);if(rtDrawSlice){const rtSyncSlice=rtDrawSlice.findDescendentSlice(THREAD_SYNC_NAME);if(rtSyncSlice){uiThreadTimeRange.end=Math.min(uiThreadTimeRange.end,rtSyncSlice.start);}
threadTimeRanges.push({thread:app.renderThread,start:rtDrawSlice.start,end:getRtFrameEndTime(rtDrawSlice)});}
frames.push(makeFrame(threadTimeRanges,app.surfaceFlinger));});return frames;}
function getRenderThreadDrivenFrames(app){if(!app.renderThread)return[];const frames=[];app.renderThread.sliceGroup.getSlicesOfName(RENDER_THREAD_INDEP_DRAW_NAME).forEach(function(slice){const threadTimeRanges=[{thread:app.renderThread,start:slice.start,end:slice.end}];frames.push(makeFrame(threadTimeRanges,app.surfaceFlinger));});return frames;}
function getUiDrawType(uiThread){if(!uiThread){return UI_DRAW_TYPE.NONE;}
const slices=uiThread.sliceGroup.slices;for(let i=0;i<slices.length;i++){if(slices[i].title in UI_THREAD_DRAW_NAMES){return UI_THREAD_DRAW_NAMES[slices[i].title];}}
return UI_DRAW_TYPE.NONE;}
function getInputSamples(process){let samples=undefined;for(const counterName in process.counters){if(/^android\.aq\:pending/.test(counterName)&&process.counters[counterName].numSeries===1){samples=process.counters[counterName].series[0].samples;break;}}
if(!samples)return[];const inputSamples=[];let lastValue=0;samples.forEach(function(sample){if(sample.value>lastValue){inputSamples.push(sample);}
lastValue=sample.value;});return inputSamples;}
function getAnimationAsyncSlices(uiThread){if(!uiThread)return[];const slices=[];for(const slice of uiThread.asyncSliceGroup.getDescendantEvents()){if(/^animator\:/.test(slice.title)){slices.push(slice);}}
return slices;}
function AndroidApp(process,uiThread,renderThread,surfaceFlinger,uiDrawType){this.process=process;this.uiThread=uiThread;this.renderThread=renderThread;this.surfaceFlinger=surfaceFlinger;this.uiDrawType=uiDrawType;this.frames_=undefined;this.inputs_=undefined;}
AndroidApp.createForProcessIfPossible=function(process,surfaceFlinger){let uiThread=process.getThread(process.pid);const uiDrawType=getUiDrawType(uiThread);if(uiDrawType===UI_DRAW_TYPE.NONE){uiThread=undefined;}
const renderThreads=process.findAllThreadsNamed('RenderThread');const renderThread=(renderThreads.length===1?renderThreads[0]:undefined);if(uiThread||renderThread){return new AndroidApp(process,uiThread,renderThread,surfaceFlinger,uiDrawType);}};AndroidApp.prototype={getFrames(){if(!this.frames_){const uiFrames=getUiThreadDrivenFrames(this);const rtFrames=getRenderThreadDrivenFrames(this);this.frames_=uiFrames.concat(rtFrames);this.frames_.sort(function(a,b){a.end-b.end;});}
return this.frames_;},getInputSamples(){if(!this.inputs_){this.inputs_=getInputSamples(this.process);}
return this.inputs_;},getAnimationAsyncSlices(){if(!this.animations_){this.animations_=getAnimationAsyncSlices(this.uiThread);}
return this.animations_;}};return{AndroidApp,};});'use strict';tr.exportTo('tr.model.helpers',function(){const findLowIndexInSortedArray=tr.b.findLowIndexInSortedArray;const VSYNC_SF_NAME='android.VSYNC-sf';const VSYNC_APP_NAME='android.VSYNC-app';const VSYNC_FALLBACK_NAME='android.VSYNC';const TIMESTAMP_FUDGE_MS=0.01;function getVsyncTimestamps(process,counterName){let vsync=process.counters[counterName];if(!vsync){vsync=process.counters[VSYNC_FALLBACK_NAME];}
if(vsync&&vsync.numSeries===1&&vsync.numSamples>1){return vsync.series[0].timestamps;}
return undefined;}
function AndroidSurfaceFlinger(process,thread){this.process=process;this.thread=thread;this.appVsync_=undefined;this.sfVsync_=undefined;this.appVsyncTimestamps_=getVsyncTimestamps(process,VSYNC_APP_NAME);this.sfVsyncTimestamps_=getVsyncTimestamps(process,VSYNC_SF_NAME);this.deadlineDelayMs_=this.appVsyncTimestamps_!==this.sfVsyncTimestamps_?5:TIMESTAMP_FUDGE_MS;}
AndroidSurfaceFlinger.createForProcessIfPossible=function(process){const mainThread=process.getThread(process.pid);if(mainThread&&mainThread.name&&/surfaceflinger/.test(mainThread.name)){return new AndroidSurfaceFlinger(process,mainThread);}
const primaryThreads=process.findAllThreadsNamed('SurfaceFlinger');if(primaryThreads.length===1){return new AndroidSurfaceFlinger(process,primaryThreads[0]);}
return undefined;};AndroidSurfaceFlinger.prototype={get hasVsyncs(){return!!this.appVsyncTimestamps_&&!!this.sfVsyncTimestamps_;},getFrameKickoff(timestamp){if(!this.hasVsyncs){throw new Error('cannot query vsync info without vsyncs');}
const firstGreaterIndex=findLowIndexInSortedArray(this.appVsyncTimestamps_,function(x){return x;},timestamp+TIMESTAMP_FUDGE_MS);if(firstGreaterIndex<1)return undefined;return this.appVsyncTimestamps_[firstGreaterIndex-1];},getFrameDeadline(timestamp){if(!this.hasVsyncs){throw new Error('cannot query vsync info without vsyncs');}
const firstGreaterIndex=findLowIndexInSortedArray(this.sfVsyncTimestamps_,function(x){return x;},timestamp+this.deadlineDelayMs_);if(firstGreaterIndex>=this.sfVsyncTimestamps_.length){return undefined;}
return this.sfVsyncTimestamps_[firstGreaterIndex];}};return{AndroidSurfaceFlinger,};});'use strict';tr.exportTo('tr.model.helpers',function(){const AndroidApp=tr.model.helpers.AndroidApp;const AndroidSurfaceFlinger=tr.model.helpers.AndroidSurfaceFlinger;const IMPORTANT_SURFACE_FLINGER_SLICES={'doComposition':true,'updateTexImage':true,'postFramebuffer':true};const IMPORTANT_UI_THREAD_SLICES={'Choreographer#doFrame':true,'performTraversals':true,'deliverInputEvent':true};const IMPORTANT_RENDER_THREAD_SLICES={'doFrame':true};function iterateImportantThreadSlices(thread,important,callback){if(!thread)return;thread.sliceGroup.slices.forEach(function(slice){if(slice.title in important){callback(slice);}});}
function AndroidModelHelper(model){this.model=model;this.apps=[];this.surfaceFlinger=undefined;const processes=model.getAllProcesses();for(let i=0;i<processes.length&&!this.surfaceFlinger;i++){this.surfaceFlinger=AndroidSurfaceFlinger.createForProcessIfPossible(processes[i]);}
model.getAllProcesses().forEach(function(process){const app=AndroidApp.createForProcessIfPossible(process,this.surfaceFlinger);if(app){this.apps.push(app);}},this);}
AndroidModelHelper.guid=tr.b.GUID.allocateSimple();AndroidModelHelper.supportsModel=function(model){return true;};AndroidModelHelper.prototype={iterateImportantSlices(callback){if(this.surfaceFlinger){iterateImportantThreadSlices(this.surfaceFlinger.thread,IMPORTANT_SURFACE_FLINGER_SLICES,callback);}
this.apps.forEach(function(app){iterateImportantThreadSlices(app.uiThread,IMPORTANT_UI_THREAD_SLICES,callback);iterateImportantThreadSlices(app.renderThread,IMPORTANT_RENDER_THREAD_SLICES,callback);});}};return{AndroidModelHelper,};});'use strict';tr.exportTo('tr.model',function(){function Slice(category,title,colorId,start,args,opt_duration,opt_cpuStart,opt_cpuDuration,opt_argsStripped,opt_bindId){if(new.target){throw new Error('Can\'t instantiate pure virtual class Slice');}
tr.model.TimedEvent.call(this,start);this.category=category||'';this.title=title;this.colorId=colorId;this.args=args;this.startStackFrame=undefined;this.endStackFrame=undefined;this.didNotFinish=false;this.inFlowEvents=[];this.outFlowEvents=[];this.subSlices=[];this.selfTime=undefined;this.cpuSelfTime=undefined;this.important=false;this.parentContainer=undefined;this.argsStripped=false;this.bind_id_=opt_bindId;this.parentSlice=undefined;this.isTopLevel=false;if(opt_duration!==undefined){this.duration=opt_duration;}
if(opt_cpuStart!==undefined){this.cpuStart=opt_cpuStart;}
if(opt_cpuDuration!==undefined){this.cpuDuration=opt_cpuDuration;}
if(opt_argsStripped!==undefined){this.argsStripped=true;}}
Slice.prototype={__proto__:tr.model.TimedEvent.prototype,get analysisTypeName(){return this.title;},get userFriendlyName(){return'Slice '+this.title+' at '+
tr.b.Unit.byName.timeStampInMs.format(this.start);},get stableId(){const parentSliceGroup=this.parentContainer.sliceGroup;return parentSliceGroup.stableId+'.'+
parentSliceGroup.slices.indexOf(this);},get bindId(){return this.bind_id_;},findDescendentSlice(targetTitle){if(!this.subSlices){return undefined;}
for(let i=0;i<this.subSlices.length;i++){if(this.subSlices[i].title===targetTitle){return this.subSlices[i];}
const slice=this.subSlices[i].findDescendentSlice(targetTitle);if(slice)return slice;}
return undefined;},get mostTopLevelSlice(){if(!this.parentSlice)return this;return this.parentSlice.mostTopLevelSlice;},getProcess(){const thread=this.parentContainer;if(thread&&thread.getProcess){return thread.getProcess();}
return undefined;},get model(){const process=this.getProcess();if(process!==undefined){return this.getProcess().model;}
return undefined;},*findTopmostSlicesRelativeToThisSlice(eventPredicate){if(eventPredicate(this)){yield this;return;}
for(const s of this.subSlices){yield*s.findTopmostSlicesRelativeToThisSlice(eventPredicate);}},iterateAllSubsequentSlices(callback,opt_this){const parentStack=[];let started=false;const topmostSlice=this.mostTopLevelSlice;parentStack.push(topmostSlice);while(parentStack.length!==0){const curSlice=parentStack.pop();if(started){callback.call(opt_this,curSlice);}else{started=(curSlice.guid===this.guid);}
for(let i=curSlice.subSlices.length-1;i>=0;i--){parentStack.push(curSlice.subSlices[i]);}}},get subsequentSlices(){const res=[];this.iterateAllSubsequentSlices(function(subseqSlice){res.push(subseqSlice);});return res;},*enumerateAllAncestors(){let curSlice=this.parentSlice;while(curSlice){yield curSlice;curSlice=curSlice.parentSlice;}},get ancestorSlices(){return Array.from(this.enumerateAllAncestors());},iterateEntireHierarchy(callback,opt_this){const mostTopLevelSlice=this.mostTopLevelSlice;callback.call(opt_this,mostTopLevelSlice);mostTopLevelSlice.iterateAllSubsequentSlices(callback,opt_this);},get entireHierarchy(){const res=[];this.iterateEntireHierarchy(function(slice){res.push(slice);});return res;},get ancestorAndSubsequentSlices(){const res=[];res.push(this);for(const aSlice of this.enumerateAllAncestors()){res.push(aSlice);}
this.iterateAllSubsequentSlices(function(sSlice){res.push(sSlice);});return res;},*enumerateAllDescendents(){for(const slice of this.subSlices){yield slice;}
for(const slice of this.subSlices){yield*slice.enumerateAllDescendents();}},get descendentSlices(){const res=[];for(const slice of this.enumerateAllDescendents()){res.push(slice);}
return res;}};return{Slice,};});'use strict';tr.exportTo('tr.model',function(){const Slice=tr.model.Slice;const SCHEDULING_STATE={DEBUG:'Debug',EXIT_DEAD:'Exit Dead',RUNNABLE:'Runnable',RUNNING:'Running',SLEEPING:'Sleeping',STOPPED:'Stopped',TASK_DEAD:'Task Dead',UNINTR_SLEEP:'Uninterruptible Sleep',UNINTR_SLEEP_WAKE_KILL:'Uninterruptible Sleep | WakeKill',UNINTR_SLEEP_WAKING:'Uninterruptible Sleep | Waking',UNINTR_SLEEP_IO:'Uninterruptible Sleep - Block I/O',UNINTR_SLEEP_WAKE_KILL_IO:'Uninterruptible Sleep | WakeKill - Block I/O',UNINTR_SLEEP_WAKING_IO:'Uninterruptible Sleep | Waking - Block I/O',UNKNOWN:'UNKNOWN',WAKE_KILL:'Wakekill',WAKING:'Waking',ZOMBIE:'Zombie'};function ThreadTimeSlice(thread,schedulingState,cat,start,args,opt_duration){Slice.call(this,cat,schedulingState,this.getColorForState_(schedulingState),start,args,opt_duration);this.thread=thread;this.schedulingState=schedulingState;this.cpuOnWhichThreadWasRunning=undefined;}
ThreadTimeSlice.prototype={__proto__:Slice.prototype,getColorForState_(state){const getColorIdForReservedName=tr.b.ColorScheme.getColorIdForReservedName;switch(state){case SCHEDULING_STATE.RUNNABLE:return getColorIdForReservedName('thread_state_runnable');case SCHEDULING_STATE.RUNNING:return getColorIdForReservedName('thread_state_running');case SCHEDULING_STATE.SLEEPING:return getColorIdForReservedName('thread_state_sleeping');case SCHEDULING_STATE.DEBUG:case SCHEDULING_STATE.EXIT_DEAD:case SCHEDULING_STATE.STOPPED:case SCHEDULING_STATE.TASK_DEAD:case SCHEDULING_STATE.UNINTR_SLEEP:case SCHEDULING_STATE.UNINTR_SLEEP_WAKE_KILL:case SCHEDULING_STATE.UNINTR_SLEEP_WAKING:case SCHEDULING_STATE.UNKNOWN:case SCHEDULING_STATE.WAKE_KILL:case SCHEDULING_STATE.WAKING:case SCHEDULING_STATE.ZOMBIE:return getColorIdForReservedName('thread_state_uninterruptible');case SCHEDULING_STATE.UNINTR_SLEEP_IO:case SCHEDULING_STATE.UNINTR_SLEEP_WAKE_KILL_IO:case SCHEDULING_STATE.UNINTR_SLEEP_WAKING_IO:return getColorIdForReservedName('thread_state_iowait');default:return getColorIdForReservedName('thread_state_unknown');}},get analysisTypeName(){return'tr.ui.analysis.ThreadTimeSlice';},getAssociatedCpuSlice(){if(!this.cpuOnWhichThreadWasRunning)return undefined;const cpuSlices=this.cpuOnWhichThreadWasRunning.slices;for(let i=0;i<cpuSlices.length;i++){const cpuSlice=cpuSlices[i];if(cpuSlice.start!==this.start)continue;if(cpuSlice.duration!==this.duration)continue;return cpuSlice;}
return undefined;},getCpuSliceThatTookCpu(){if(this.cpuOnWhichThreadWasRunning)return undefined;let curIndex=this.thread.indexOfTimeSlice(this);let cpuSliceWhenLastRunning;while(curIndex>=0){const curSlice=this.thread.timeSlices[curIndex];if(!curSlice.cpuOnWhichThreadWasRunning){curIndex--;continue;}
cpuSliceWhenLastRunning=curSlice.getAssociatedCpuSlice();break;}
if(!cpuSliceWhenLastRunning)return undefined;const cpu=cpuSliceWhenLastRunning.cpu;const indexOfSliceOnCpuWhenLastRunning=cpu.indexOf(cpuSliceWhenLastRunning);const nextRunningSlice=cpu.slices[indexOfSliceOnCpuWhenLastRunning+1];if(!nextRunningSlice)return undefined;if(Math.abs(nextRunningSlice.start-cpuSliceWhenLastRunning.end)<0.00001){return nextRunningSlice;}
return undefined;}};tr.model.EventRegistry.register(ThreadTimeSlice,{name:'threadTimeSlice',pluralName:'threadTimeSlices'});return{ThreadTimeSlice,SCHEDULING_STATE,};});'use strict';tr.exportTo('tr.model',function(){const CompoundEventSelectionState={NOT_SELECTED:0,EVENT_SELECTED:0x1,SOME_ASSOCIATED_EVENTS_SELECTED:0x2,ALL_ASSOCIATED_EVENTS_SELECTED:0x4,EVENT_AND_SOME_ASSOCIATED_SELECTED:0x1|0x2,EVENT_AND_ALL_ASSOCIATED_SELECTED:0x1|0x4};return{CompoundEventSelectionState,};});'use strict';tr.exportTo('tr.model.um',function(){const CompoundEventSelectionState=tr.model.CompoundEventSelectionState;function UserExpectation(parentModel,initiatorType,start,duration){tr.model.TimedEvent.call(this,start);this.associatedEvents=new tr.model.EventSet();this.duration=duration;this.initiatorType_=initiatorType;this.parentModel=parentModel;this.typeInfo_=undefined;this.sourceEvents=new tr.model.EventSet();}
const INITIATOR_TYPE={KEYBOARD:'Keyboard',MOUSE:'Mouse',MOUSE_WHEEL:'MouseWheel',TAP:'Tap',PINCH:'Pinch',FLING:'Fling',TOUCH:'Touch',SCROLL:'Scroll',CSS:'CSS',WEBGL:'WebGL',VIDEO:'Video',VR:'VR',};UserExpectation.prototype={__proto__:tr.model.TimedEvent.prototype,computeCompoundEvenSelectionState(selection){let cess=CompoundEventSelectionState.NOT_SELECTED;if(selection.contains(this)){cess|=CompoundEventSelectionState.EVENT_SELECTED;}
if(this.associatedEvents.intersectionIsEmpty(selection)){return cess;}
const allContained=this.associatedEvents.every(function(event){return selection.contains(event);});if(allContained){cess|=CompoundEventSelectionState.ALL_ASSOCIATED_EVENTS_SELECTED;}else{cess|=CompoundEventSelectionState.SOME_ASSOCIATED_EVENTS_SELECTED;}
return cess;},get associatedSamples(){const samples=new tr.model.EventSet();this.associatedEvents.forEach(function(event){if(event instanceof tr.model.ThreadSlice){samples.addEventSet(event.overlappingSamples);}});return samples;},get userFriendlyName(){return this.title+' User Expectation at '+
tr.b.Unit.byName.timeStampInMs.format(this.start);},get stableId(){return('UserExpectation.'+this.guid);},get typeInfo(){if(!this.typeInfo_){this.typeInfo_=UserExpectation.subTypes.findTypeInfo(this.constructor);}
if(!this.typeInfo_){throw new Error('Unregistered UserExpectation');}
return this.typeInfo_;},get colorId(){return this.typeInfo.metadata.colorId;},get stageTitle(){return this.typeInfo.metadata.stageTitle;},get initiatorType(){return this.initiatorType_;},get title(){if(!this.initiatorType){return this.stageTitle;}
return this.initiatorType+' '+this.stageTitle;},get totalCpuMs(){let cpuMs=0;this.associatedEvents.forEach(function(event){if(event.cpuSelfTime){cpuMs+=event.cpuSelfTime;}});return cpuMs;}};const subTypes={};const options=new tr.b.ExtensionRegistryOptions(tr.b.BASIC_REGISTRY_MODE);tr.b.decorateExtensionRegistry(subTypes,options);subTypes.addEventListener('will-register',function(e){const metadata=e.typeInfo.metadata;if(metadata.stageTitle===undefined){throw new Error('Registered UserExpectations must provide '+'stageTitle');}
if(metadata.colorId===undefined){throw new Error('Registered UserExpectations must provide '+'colorId');}});tr.model.EventRegistry.register(UserExpectation,{name:'userExpectation',pluralName:'userExpectations',subTypes});return{UserExpectation,INITIATOR_TYPE,};});'use strict';tr.exportTo('tr.model.um',function(){function ResponseExpectation(parentModel,initiatorTitle,start,duration,opt_isAnimationBegin){tr.model.um.UserExpectation.call(this,parentModel,initiatorTitle,start,duration);this.isAnimationBegin=opt_isAnimationBegin||false;}
ResponseExpectation.prototype={__proto__:tr.model.um.UserExpectation.prototype,constructor:ResponseExpectation};tr.model.um.UserExpectation.subTypes.register(ResponseExpectation,{stageTitle:'Response',colorId:tr.b.ColorScheme.getColorIdForReservedName('rail_response')});return{ResponseExpectation,};});'use strict';tr.exportTo('tr.e.audits',function(){const SCHEDULING_STATE=tr.model.SCHEDULING_STATE;const Auditor=tr.c.Auditor;const AndroidModelHelper=tr.model.helpers.AndroidModelHelper;const ColorScheme=tr.b.ColorScheme;const Statistics=tr.b.math.Statistics;const FRAME_PERF_CLASS=tr.model.FRAME_PERF_CLASS;const Alert=tr.model.Alert;const EventInfo=tr.model.EventInfo;const Scalar=tr.b.Scalar;const timeDurationInMs=tr.b.Unit.byName.timeDurationInMs;const EXPECTED_FRAME_TIME_MS=16.67;function getStart(e){return e.start;}
function getDuration(e){return e.duration;}
function getCpuDuration(e){return(e.cpuDuration!==undefined)?e.cpuDuration:e.duration;}
function frameIsActivityStart(frame){return frame.associatedEvents.any(x=>x.title==='activityStart');}
function frameMissedDeadline(frame){return frame.args.deadline&&frame.args.deadline<frame.end;}
function DocLinkBuilder(){this.docLinks=[];}
DocLinkBuilder.prototype={addAppVideo(name,videoId){this.docLinks.push({label:'Video Link',textContent:('Android Performance Patterns: '+name),href:'https://www.youtube.com/watch?list=PLWz5rJ2EKKc9CBxr3BVjPTPoDPLdPIFCE&v='+videoId});return this;},addDacRef(name,link){this.docLinks.push({label:'Doc Link',textContent:(name+' documentation'),href:'https://developer.android.com/reference/'+link});return this;},build(){return this.docLinks;}};function AndroidAuditor(model){Auditor.call(this,model);const helper=model.getOrCreateHelper(AndroidModelHelper);if(helper.apps.length||helper.surfaceFlinger){this.helper=helper;}}
AndroidAuditor.viewAlphaAlertInfo_=new EventInfo('Inefficient View alpha usage','Setting an alpha between 0 and 1 has significant performance costs, if one of the fast alpha paths is not used.',new DocLinkBuilder().addAppVideo('Hidden Cost of Transparency','wIy8g8yNhNk').addDacRef('View#setAlpha()','android/view/View.html#setAlpha(float)').build());AndroidAuditor.saveLayerAlertInfo_=new EventInfo('Expensive rendering with Canvas#saveLayer()','Canvas#saveLayer() incurs extremely high rendering cost. They disrupt the rendering pipeline when drawn, forcing a flush of drawing content. Instead use View hardware layers, or static Bitmaps. This enables the offscreen buffers to be reused in between frames, and avoids the disruptive render target switch.',new DocLinkBuilder().addAppVideo('Hidden Cost of Transparency','wIy8g8yNhNk').addDacRef('Canvas#saveLayerAlpha()','android/graphics/Canvas.html#saveLayerAlpha(android.graphics.RectF, int, int)').build());AndroidAuditor.getSaveLayerAlerts_=function(frame){const badAlphaRegEx=/^(.+) alpha caused (unclipped )?saveLayer (\d+)x(\d+)$/;const saveLayerRegEx=/^(unclipped )?saveLayer (\d+)x(\d+)$/;const ret=[];const events=[];frame.associatedEvents.forEach(function(slice){const match=badAlphaRegEx.exec(slice.title);if(match){const args={'view name':match[1],'width':parseInt(match[3]),'height':parseInt(match[4])};ret.push(new Alert(AndroidAuditor.viewAlphaAlertInfo_,slice.start,[slice],args));}else if(saveLayerRegEx.test(slice.title)){events.push(slice);}},this);if(events.length>ret.length){const unclippedSeen=Statistics.sum(events,function(slice){return saveLayerRegEx.exec(slice.title)[1]?1:0;});const clippedSeen=events.length-unclippedSeen;const earliestStart=Statistics.min(events,function(slice){return slice.start;});const args={'Unclipped saveLayer count (especially bad!)':unclippedSeen,'Clipped saveLayer count':clippedSeen};events.push(frame);ret.push(new Alert(AndroidAuditor.saveLayerAlertInfo_,earliestStart,events,args));}
return ret;};AndroidAuditor.pathAlertInfo_=new EventInfo('Path texture churn','Paths are drawn with a mask texture, so when a path is modified / newly drawn, that texture must be generated and uploaded to the GPU. Ensure that you cache paths between frames and do not unnecessarily call Path#reset(). You can cut down on this cost by sharing Path object instances between drawables/views.');AndroidAuditor.getPathAlert_=function(frame){const uploadRegEx=/^Generate Path Texture$/;const events=frame.associatedEvents.filter(function(event){return event.title==='Generate Path Texture';});const start=Statistics.min(events,getStart);const duration=Statistics.sum(events,getDuration);if(duration<3)return undefined;events.push(frame);return new Alert(AndroidAuditor.pathAlertInfo_,start,events,{'Time spent':new Scalar(timeDurationInMs,duration)});};AndroidAuditor.uploadAlertInfo_=new EventInfo('Expensive Bitmap uploads','Bitmaps that have been modified / newly drawn must be uploaded to the GPU. Since this is expensive if the total number of pixels uploaded is large, reduce the amount of Bitmap churn in this animation/context, per frame.');AndroidAuditor.getUploadAlert_=function(frame){const uploadRegEx=/^Upload (\d+)x(\d+) Texture$/;const events=[];let start=Number.POSITIVE_INFINITY;let duration=0;let pixelsUploaded=0;frame.associatedEvents.forEach(function(event){const match=uploadRegEx.exec(event.title);if(match){events.push(event);start=Math.min(start,event.start);duration+=event.duration;pixelsUploaded+=parseInt(match[1])*parseInt(match[2]);}});if(events.length===0||duration<3)return undefined;const mPixels=(pixelsUploaded/1000000).toFixed(2)+' million';const args={'Pixels uploaded':mPixels,'Time spent':new Scalar(timeDurationInMs,duration)};events.push(frame);return new Alert(AndroidAuditor.uploadAlertInfo_,start,events,args);};AndroidAuditor.ListViewInflateAlertInfo_=new EventInfo('Inflation during ListView recycling','ListView item recycling involved inflating views. Ensure your Adapter#getView() recycles the incoming View, instead of constructing a new one.');AndroidAuditor.ListViewBindAlertInfo_=new EventInfo('Inefficient ListView recycling/rebinding','ListView recycling taking too much time per frame. Ensure your Adapter#getView() binds data efficiently.');AndroidAuditor.getListViewAlert_=function(frame){const events=frame.associatedEvents.filter(function(event){return event.title==='obtainView'||event.title==='setupListItem';});const duration=Statistics.sum(events,getCpuDuration);if(events.length===0||duration<3)return undefined;let hasInflation=false;for(const event of events){if(event.findDescendentSlice('inflate')){hasInflation=true;}}
const start=Statistics.min(events,getStart);const args={'Time spent':new Scalar(timeDurationInMs,duration)};args['ListView items '+(hasInflation?'inflated':'rebound')]=events.length/2;const eventInfo=hasInflation?AndroidAuditor.ListViewInflateAlertInfo_:AndroidAuditor.ListViewBindAlertInfo_;events.push(frame);return new Alert(eventInfo,start,events,args);};AndroidAuditor.measureLayoutAlertInfo_=new EventInfo('Expensive measure/layout pass','Measure/Layout took a significant time, contributing to jank. Avoid triggering layout during animations.',new DocLinkBuilder().addAppVideo('Invalidations, Layouts, and Performance','we6poP0kw6E').build());AndroidAuditor.getMeasureLayoutAlert_=function(frame){const events=frame.associatedEvents.filter(function(event){return event.title==='measure'||event.title==='layout';});const duration=Statistics.sum(events,getCpuDuration);if(events.length===0||duration<3)return undefined;const start=Statistics.min(events,getStart);events.push(frame);return new Alert(AndroidAuditor.measureLayoutAlertInfo_,start,events,{'Time spent':new Scalar(timeDurationInMs,duration)});};AndroidAuditor.viewDrawAlertInfo_=new EventInfo('Long View#draw()','Recording the drawing commands of invalidated Views took a long time. Avoid significant work in View or Drawable custom drawing, especially allocations or drawing to Bitmaps.',new DocLinkBuilder().addAppVideo('Invalidations, Layouts, and Performance','we6poP0kw6E').addAppVideo('Avoiding Allocations in onDraw()','HAK5acHQ53E').build());AndroidAuditor.getViewDrawAlert_=function(frame){let slice=undefined;for(const event of frame.associatedEvents){if(event.title==='getDisplayList'||event.title==='Record View#draw()'){slice=event;break;}}
if(!slice||getCpuDuration(slice)<3)return undefined;return new Alert(AndroidAuditor.viewDrawAlertInfo_,slice.start,[slice,frame],{'Time spent':new Scalar(timeDurationInMs,getCpuDuration(slice))});};AndroidAuditor.blockingGcAlertInfo_=new EventInfo('Blocking Garbage Collection','Blocking GCs are caused by object churn, and made worse by having large numbers of objects in the heap. Avoid allocating objects during animations/scrolling, and recycle Bitmaps to avoid triggering garbage collection.',new DocLinkBuilder().addAppVideo('Garbage Collection in Android','pzfzz50W5Uo').addAppVideo('Avoiding Allocations in onDraw()','HAK5acHQ53E').build());AndroidAuditor.getBlockingGcAlert_=function(frame){const events=frame.associatedEvents.filter(function(event){return event.title==='DVM Suspend'||event.title==='GC: Wait For Concurrent';});const blockedDuration=Statistics.sum(events,getDuration);if(blockedDuration<3)return undefined;const start=Statistics.min(events,getStart);events.push(frame);return new Alert(AndroidAuditor.blockingGcAlertInfo_,start,events,{'Blocked duration':new Scalar(timeDurationInMs,blockedDuration)});};AndroidAuditor.lockContentionAlertInfo_=new EventInfo('Lock contention','UI thread lock contention is caused when another thread holds a lock that the UI thread is trying to use. UI thread progress is blocked until the lock is released. Inspect locking done within the UI thread, and ensure critical sections are short.');AndroidAuditor.getLockContentionAlert_=function(frame){const events=frame.associatedEvents.filter(function(event){return/^Lock Contention on /.test(event.title);});const blockedDuration=Statistics.sum(events,getDuration);if(blockedDuration<1)return undefined;const start=Statistics.min(events,getStart);events.push(frame);return new Alert(AndroidAuditor.lockContentionAlertInfo_,start,events,{'Blocked duration':new Scalar(timeDurationInMs,blockedDuration)});};AndroidAuditor.schedulingAlertInfo_=new EventInfo('Scheduling delay','Work to produce this frame was descheduled for several milliseconds, contributing to jank. Ensure that code on the UI thread doesn\'t block on work being done on other threads, and that background threads (doing e.g. network or bitmap loading) are running at android.os.Process#THREAD_PRIORITY_BACKGROUND or lower so they are less likely to interrupt the UI thread. These background threads should show up with a priority number of 130 or higher in the scheduling section under the Kernel process.');AndroidAuditor.getSchedulingAlert_=function(frame){let totalDuration=0;const totalStats={};for(const ttr of frame.threadTimeRanges){const stats=ttr.thread.getSchedulingStatsForRange(ttr.start,ttr.end);for(const[key,value]of Object.entries(stats)){if(!(key in totalStats)){totalStats[key]=0;}
totalStats[key]+=value;totalDuration+=value;}}
if(!(SCHEDULING_STATE.RUNNING in totalStats)||totalDuration===0||totalDuration-totalStats[SCHEDULING_STATE.RUNNING]<3){return;}
const args={};for(const[key,value]of Object.entries(totalStats)){let newKey=key;if(key===SCHEDULING_STATE.RUNNABLE){newKey='Not scheduled, but runnable';}else if(key===SCHEDULING_STATE.UNINTR_SLEEP){newKey='Blocking I/O delay';}
args[newKey]=new Scalar(timeDurationInMs,value);}
return new Alert(AndroidAuditor.schedulingAlertInfo_,frame.start,[frame],args);};AndroidAuditor.prototype={__proto__:Auditor.prototype,renameAndSort_(){this.model.kernel.important=false;this.model.getAllProcesses().forEach(function(process){if(this.helper.surfaceFlinger&&process===this.helper.surfaceFlinger.process){if(!process.name){process.name='SurfaceFlinger';}
process.sortIndex=Number.NEGATIVE_INFINITY;process.important=false;return;}
const uiThread=process.getThread(process.pid);if(!process.name&&uiThread&&uiThread.name){if(/^ndroid\./.test(uiThread.name)){uiThread.name='a'+uiThread.name;}
process.name=uiThread.name;uiThread.name='UI Thread';}
process.sortIndex=0;for(const tid in process.threads){process.sortIndex-=process.threads[tid].sliceGroup.slices.length;}},this);this.model.getAllThreads().forEach(function(thread){if(thread.tid===thread.parent.pid){thread.sortIndex=-3;}
if(thread.name==='RenderThread'){thread.sortIndex=-2;}
if(/^hwuiTask/.test(thread.name)){thread.sortIndex=-1;}});},pushFramesAndJudgeJank_(){let badFramesObserved=0;let framesObserved=0;const surfaceFlinger=this.helper.surfaceFlinger;this.helper.apps.forEach(function(app){app.process.frames=app.getFrames();app.process.frames.forEach(function(frame){if(frame.totalDuration>EXPECTED_FRAME_TIME_MS*2){badFramesObserved+=2;frame.perfClass=FRAME_PERF_CLASS.TERRIBLE;}else if(frame.totalDuration>EXPECTED_FRAME_TIME_MS||frameMissedDeadline(frame)){badFramesObserved++;frame.perfClass=FRAME_PERF_CLASS.BAD;}else{frame.perfClass=FRAME_PERF_CLASS.GOOD;}});framesObserved+=app.process.frames.length;});if(framesObserved){const portionBad=badFramesObserved/framesObserved;if(portionBad>0.3){this.model.faviconHue='red';}else if(portionBad>0.05){this.model.faviconHue='yellow';}else{this.model.faviconHue='green';}}},pushEventInfo_(){const appAnnotator=new AppAnnotator();this.helper.apps.forEach(function(app){if(app.uiThread){appAnnotator.applyEventInfos(app.uiThread.sliceGroup);}
if(app.renderThread){appAnnotator.applyEventInfos(app.renderThread.sliceGroup);}});},runAnnotate(){if(!this.helper)return;this.renameAndSort_();this.pushFramesAndJudgeJank_();this.pushEventInfo_();this.helper.iterateImportantSlices(function(slice){slice.important=true;});},runAudit(){if(!this.helper)return;const alerts=this.model.alerts;this.helper.apps.forEach(function(app){app.getFrames().forEach(function(frame){alerts.push.apply(alerts,AndroidAuditor.getSaveLayerAlerts_(frame));if(frame.perfClass===FRAME_PERF_CLASS.NEUTRAL||frame.perfClass===FRAME_PERF_CLASS.GOOD){return;}
let alert=AndroidAuditor.getPathAlert_(frame);if(alert)alerts.push(alert);alert=AndroidAuditor.getUploadAlert_(frame);if(alert)alerts.push(alert);alert=AndroidAuditor.getListViewAlert_(frame);if(alert)alerts.push(alert);alert=AndroidAuditor.getMeasureLayoutAlert_(frame);if(alert)alerts.push(alert);alert=AndroidAuditor.getViewDrawAlert_(frame);if(alert)alerts.push(alert);alert=AndroidAuditor.getBlockingGcAlert_(frame);if(alert)alerts.push(alert);alert=AndroidAuditor.getLockContentionAlert_(frame);if(alert)alerts.push(alert);alert=AndroidAuditor.getSchedulingAlert_(frame);if(alert)alerts.push(alert);});},this);this.addRenderingInteractionRecords();this.addInputInteractionRecords();},addRenderingInteractionRecords(){const events=[];this.helper.apps.forEach(function(app){events.push.apply(events,app.getAnimationAsyncSlices());events.push.apply(events,app.getFrames());});const mergerFunction=function(events){const ir=new tr.model.um.ResponseExpectation(this.model,'Rendering',events[0].min,events[events.length-1].max-events[0].min);this.model.userModel.expectations.push(ir);}.bind(this);tr.b.math.mergeRanges(tr.b.math.convertEventsToRanges(events),30,mergerFunction);},addInputInteractionRecords(){const inputSamples=[];this.helper.apps.forEach(function(app){inputSamples.push.apply(inputSamples,app.getInputSamples());});const mergerFunction=function(events){const ir=new tr.model.um.ResponseExpectation(this.model,'Input',events[0].min,events[events.length-1].max-events[0].min);this.model.userModel.expectations.push(ir);}.bind(this);const inputRanges=inputSamples.map(function(sample){return tr.b.math.Range.fromExplicitRange(sample.timestamp,sample.timestamp);});tr.b.math.mergeRanges(inputRanges,30,mergerFunction);}};Auditor.register(AndroidAuditor);function AppAnnotator(){this.titleInfoLookup=new Map();this.titleParentLookup=new Map();this.build_();}
AppAnnotator.prototype={build_(){const registerEventInfo=function(dict){this.titleInfoLookup.set(dict.title,new EventInfo(dict.title,dict.description,dict.docLinks));if(dict.parents){this.titleParentLookup.set(dict.title,dict.parents);}}.bind(this);registerEventInfo({title:'inflate',description:'Constructing a View hierarchy from pre-processed XML via LayoutInflater#layout. This includes constructing all of the View objects in the hierarchy, and applying styled attributes.'});registerEventInfo({title:'obtainView',description:'Adapter#getView() called to bind content to a recycled View that is being presented.'});registerEventInfo({title:'setupListItem',description:'Attached a newly-bound, recycled View to its parent ListView.'});registerEventInfo({title:'setupGridItem',description:'Attached a newly-bound, recycled View to its parent GridView.'});const choreographerLinks=new DocLinkBuilder().addDacRef('Choreographer','android/view/Choreographer.html').build();registerEventInfo({title:'Choreographer#doFrame',docLinks:choreographerLinks,description:'Choreographer executes frame callbacks for inputs, animations, and rendering traversals. When this work is done, a frame will be presented to the user.'});registerEventInfo({title:'input',parents:['Choreographer#doFrame'],docLinks:choreographerLinks,description:'Input callbacks are processed. This generally encompasses dispatching input to Views, as well as any work the Views do to process this input/gesture.'});registerEventInfo({title:'animation',parents:['Choreographer#doFrame'],docLinks:choreographerLinks,description:'Animation callbacks are processed. This is generally minimal work, as animations determine progress for the frame, and push new state to animated objects (such as setting View properties).'});registerEventInfo({title:'traversals',parents:['Choreographer#doFrame'],docLinks:choreographerLinks,description:'Primary draw traversals. This is the primary traversal of the View hierarchy, including layout and draw passes.'});const traversalParents=['Choreographer#doFrame','performTraversals'];const layoutLinks=new DocLinkBuilder().addDacRef('View#Layout','android/view/View.html#Layout').build();registerEventInfo({title:'performTraversals',description:'A drawing traversal of the View hierarchy, comprised of all layout and drawing needed to produce the frame.'});registerEventInfo({title:'measure',parents:traversalParents,docLinks:layoutLinks,description:'First of two phases in view hierarchy layout. Views are asked to size themselves according to constraints supplied by their parent. Some ViewGroups may measure a child more than once to help satisfy their own constraints. Nesting ViewGroups that measure children more than once can lead to excessive and repeated work.'});registerEventInfo({title:'layout',parents:traversalParents,docLinks:layoutLinks,description:'Second of two phases in view hierarchy layout, repositioning content and child Views into their new locations.'});const drawString='Draw pass over the View hierarchy. Every invalidated View will have its drawing commands recorded. On Android versions prior to Lollipop, this would also include the issuing of draw commands to the GPU. Starting with Lollipop, it only includes the recording of commands, and syncing that information to the RenderThread.';registerEventInfo({title:'draw',parents:traversalParents,description:drawString});const recordString='Every invalidated View\'s drawing commands are recorded. Each will have View#draw() called, and is passed a Canvas that will record and store its drawing commands until it is next invalidated/rerecorded.';registerEventInfo({title:'getDisplayList',parents:['draw'],description:recordString});registerEventInfo({title:'Record View#draw()',parents:['draw'],description:recordString});registerEventInfo({title:'drawDisplayList',parents:['draw'],description:'Execution of recorded draw commands to generate a frame. This represents the actual formation and issuing of drawing commands to the GPU. On Android L and higher devices, this work is done on a dedicated RenderThread, instead of on the UI Thread.'});registerEventInfo({title:'DrawFrame',description:'RenderThread portion of the standard UI/RenderThread split frame. This represents the actual formation and issuing of drawing commands to the GPU.'});registerEventInfo({title:'doFrame',description:'RenderThread animation frame. Represents drawing work done by the RenderThread on a frame where the UI thread did not produce new drawing content.'});registerEventInfo({title:'syncFrameState',description:'Sync stage between the UI thread and the RenderThread, where the UI thread hands off a frame (including information about modified Views). Time in this method primarily consists of uploading modified Bitmaps to the GPU. After this sync is completed, the UI thread is unblocked, and the RenderThread starts to render the frame.'});registerEventInfo({title:'flush drawing commands',description:'Issuing the now complete drawing commands to the GPU.'});registerEventInfo({title:'eglSwapBuffers',description:'Complete GPU rendering of the frame.'});registerEventInfo({title:'RV Scroll',description:'RecyclerView is calculating a scroll. If there are too many of these in Systrace, some Views inside RecyclerView might be causing it. Try to avoid using EditText, focusable views or handle them with care.'});registerEventInfo({title:'RV OnLayout',description:'OnLayout has been called by the View system. If this shows up too many times in Systrace, make sure the children of RecyclerView do not update themselves directly. This will cause a full re-layout but when it happens via the Adapter notifyItemChanged, RecyclerView can avoid full layout calculation.'});registerEventInfo({title:'RV FullInvalidate',description:'NotifyDataSetChanged or equal has been called. If this is taking a long time, try sending granular notify adapter changes instead of just calling notifyDataSetChanged or setAdapter / swapAdapter. Adding stable ids to your adapter might help.'});registerEventInfo({title:'RV PartialInvalidate',description:'RecyclerView is rebinding a View. If this is taking a lot of time, consider optimizing your layout or make sure you are not doing extra operations in onBindViewHolder call.'});registerEventInfo({title:'RV OnBindView',description:'RecyclerView is rebinding a View. If this is taking a lot of time, consider optimizing your layout or make sure you are not doing extra operations in onBindViewHolder call.'});registerEventInfo({title:'RV CreateView',description:'RecyclerView is creating a new View. If too many of these are present: 1) There might be a problem in Recycling (e.g. custom Animations that set transient state and prevent recycling or ItemAnimator not implementing the contract properly. See Adapter#onFailedToRecycleView(ViewHolder). 2) There may be too many item view types. Try merging them. 3) There might be too many itemChange animations and not enough space in RecyclerPool. Try increasing your pool size and item cache size.'});registerEventInfo({title:'eglSwapBuffers',description:'The CPU has finished producing drawing commands, and is flushing drawing work to the GPU, and posting that buffer to the consumer (which is often SurfaceFlinger window composition). Once this is completed, the GPU can produce the frame content without any involvement from the CPU.'});},applyEventInfosRecursive_(parentNames,slice){const checkExpectedParentNames=function(expectedParentNames){if(!expectedParentNames)return true;return expectedParentNames.some(function(name){return parentNames.has(name);});};if(this.titleInfoLookup.has(slice.title)){if(checkExpectedParentNames(this.titleParentLookup.get(slice.title))){slice.info=this.titleInfoLookup.get(slice.title);}}
if(slice.subSlices.length>0){if(!parentNames.has(slice.title)){parentNames.set(slice.title,0);}
parentNames.set(slice.title,parentNames.get(slice.title)+1);slice.subSlices.forEach(function(subSlice){this.applyEventInfosRecursive_(parentNames,subSlice);},this);parentNames.set(slice.title,parentNames.get(slice.title)-1);if(parentNames.get(slice.title)===0){delete parentNames[slice.title];}}},applyEventInfos(sliceGroup){sliceGroup.topLevelSlices.forEach(function(slice){this.applyEventInfosRecursive_(new Map(),slice);},this);}};return{AndroidAuditor,};});'use strict';tr.exportTo('tr.model',function(){function ObjectSnapshot(objectInstance,ts,args){tr.model.Event.call(this);this.objectInstance=objectInstance;this.ts=ts;this.args=args;}
ObjectSnapshot.prototype={__proto__:tr.model.Event.prototype,preInitialize(){},initialize(){},referencedAt(item,object,field){},addBoundsToRange(range){range.addValue(this.ts);},get userFriendlyName(){return'Snapshot of '+this.objectInstance.userFriendlyName+' @ '+
tr.b.Unit.byName.timeStampInMs.format(this.ts);}};tr.model.EventRegistry.register(ObjectSnapshot,{name:'objectSnapshot',pluralName:'objectSnapshots'});return{ObjectSnapshot,};});'use strict';tr.exportTo('tr.model',function(){const ObjectSnapshot=tr.model.ObjectSnapshot;function ObjectInstance(parent,scopedId,category,name,creationTs,opt_baseTypeName){tr.model.Event.call(this);this.parent=parent;this.scopedId=scopedId;this.category=category;this.baseTypeName=opt_baseTypeName?opt_baseTypeName:name;this.name=name;this.creationTs=creationTs;this.creationTsWasExplicit=false;this.deletionTs=Number.MAX_VALUE;this.deletionTsWasExplicit=false;this.colorId=0;this.bounds=new tr.b.math.Range();this.snapshots=[];this.hasImplicitSnapshots=false;}
ObjectInstance.prototype={__proto__:tr.model.Event.prototype,get typeName(){return this.name;},addBoundsToRange(range){range.addRange(this.bounds);},addSnapshot(ts,args,opt_name,opt_baseTypeName){if(ts<this.creationTs){throw new Error('Snapshots must be >= instance.creationTs');}
if(ts>=this.deletionTs){throw new Error('Snapshots cannot be added after '+'an objects deletion timestamp.');}
let lastSnapshot;if(this.snapshots.length>0){lastSnapshot=this.snapshots[this.snapshots.length-1];if(lastSnapshot.ts===ts){throw new Error('Snapshots already exists at this time!');}
if(ts<lastSnapshot.ts){throw new Error('Snapshots must be added in increasing timestamp order');}}
if(opt_name&&(this.name!==opt_name)){if(!opt_baseTypeName){throw new Error('Must provide base type name for name update');}
if(this.baseTypeName!==opt_baseTypeName){throw new Error('Cannot update type name: base types dont match');}
this.name=opt_name;}
const snapshotConstructor=tr.model.ObjectSnapshot.subTypes.getConstructor(this.category,this.name);const snapshot=new snapshotConstructor(this,ts,args);this.snapshots.push(snapshot);return snapshot;},wasDeleted(ts){let lastSnapshot;if(this.snapshots.length>0){lastSnapshot=this.snapshots[this.snapshots.length-1];if(lastSnapshot.ts>ts){throw new Error('Instance cannot be deleted at ts='+
ts+'. A snapshot exists that is older.');}}
this.deletionTs=ts;this.deletionTsWasExplicit=true;},preInitialize(){for(let i=0;i<this.snapshots.length;i++){this.snapshots[i].preInitialize();}},initialize(){for(let i=0;i<this.snapshots.length;i++){this.snapshots[i].initialize();}},isAliveAt(ts){if(ts<this.creationTs&&this.creationTsWasExplicit){return false;}
if(ts>this.deletionTs){return false;}
return true;},getSnapshotAt(ts){if(ts<this.creationTs){if(this.creationTsWasExplicit){throw new Error('ts must be within lifetime of this instance');}
return this.snapshots[0];}
if(ts>this.deletionTs){throw new Error('ts must be within lifetime of this instance');}
const snapshots=this.snapshots;const i=tr.b.findIndexInSortedIntervals(snapshots,function(snapshot){return snapshot.ts;},function(snapshot,i){if(i===snapshots.length-1){return snapshots[i].objectInstance.deletionTs;}
return snapshots[i+1].ts-snapshots[i].ts;},ts);if(i<0){return this.snapshots[0];}
if(i>=this.snapshots.length){return this.snapshots[this.snapshots.length-1];}
return this.snapshots[i];},updateBounds(){this.bounds.reset();this.bounds.addValue(this.creationTs);if(this.deletionTs!==Number.MAX_VALUE){this.bounds.addValue(this.deletionTs);}else if(this.snapshots.length>0){this.bounds.addValue(this.snapshots[this.snapshots.length-1].ts);}},shiftTimestampsForward(amount){this.creationTs+=amount;if(this.deletionTs!==Number.MAX_VALUE){this.deletionTs+=amount;}
this.snapshots.forEach(function(snapshot){snapshot.ts+=amount;});},get userFriendlyName(){return this.typeName+' object '+this.scopedId;}};tr.model.EventRegistry.register(ObjectInstance,{name:'objectInstance',pluralName:'objectInstances'});return{ObjectInstance,};});'use strict';tr.exportTo('tr.e.chrome',function(){const ObjectSnapshot=tr.model.ObjectSnapshot;const ObjectInstance=tr.model.ObjectInstance;function BlameContextSnapshot(){ObjectSnapshot.apply(this,arguments);}
BlameContextSnapshot.prototype={__proto__:ObjectSnapshot.prototype,get parentContext(){if(this.args.parent instanceof BlameContextSnapshot){return this.args.parent;}
return undefined;},get userFriendlyName(){return'BlameContext';}};function BlameContextInstance(){ObjectInstance.apply(this,arguments);}
BlameContextInstance.prototype={__proto__:ObjectInstance.prototype,get blameContextType(){throw new Error('Not implemented');}};return{BlameContextSnapshot,BlameContextInstance,};});'use strict';tr.exportTo('tr.e.chrome',function(){const BlameContextSnapshot=tr.e.chrome.BlameContextSnapshot;const BlameContextInstance=tr.e.chrome.BlameContextInstance;function FrameTreeNodeSnapshot(){BlameContextSnapshot.apply(this,arguments);}
FrameTreeNodeSnapshot.prototype={__proto__:BlameContextSnapshot.prototype,get renderFrame(){if(this.args.renderFrame instanceof tr.e.chrome.RenderFrameSnapshot){return this.args.renderFrame;}
return undefined;},get url(){return this.args.url;},get userFriendlyName(){return'FrameTreeNode';}};tr.model.ObjectSnapshot.subTypes.register(FrameTreeNodeSnapshot,{typeName:'FrameTreeNode'});function FrameTreeNodeInstance(){BlameContextInstance.apply(this,arguments);}
FrameTreeNodeInstance.prototype={__proto__:BlameContextInstance.prototype,get blameContextType(){return'Frame';}};tr.model.ObjectInstance.subTypes.register(FrameTreeNodeInstance,{typeName:'FrameTreeNode'});return{FrameTreeNodeSnapshot,FrameTreeNodeInstance,};});'use strict';tr.exportTo('tr.e.chrome',function(){const BlameContextSnapshot=tr.e.chrome.BlameContextSnapshot;const BlameContextInstance=tr.e.chrome.BlameContextInstance;function RenderFrameSnapshot(){BlameContextSnapshot.apply(this,arguments);}
RenderFrameSnapshot.prototype={__proto__:BlameContextSnapshot.prototype,referencedAt(item,object,field){if(item instanceof tr.e.chrome.FrameTreeNodeSnapshot&&object===item.args&&field==='renderFrame'){this.args.frameTreeNode=item;}},get frameTreeNode(){if(this.args.frameTreeNode instanceof
tr.e.chrome.FrameTreeNodeSnapshot){return this.args.frameTreeNode;}
return undefined;},get url(){if(this.frameTreeNode){return this.frameTreeNode.url;}
return undefined;},get userFriendlyName(){return'RenderFrame';}};tr.model.ObjectSnapshot.subTypes.register(RenderFrameSnapshot,{typeName:'RenderFrame'});function RenderFrameInstance(){BlameContextInstance.apply(this,arguments);}
RenderFrameInstance.prototype={__proto__:BlameContextInstance.prototype,get blameContextType(){return'Frame';}};tr.model.ObjectInstance.subTypes.register(RenderFrameInstance,{typeName:'RenderFrame'});return{RenderFrameSnapshot,RenderFrameInstance,};});'use strict';tr.exportTo('tr.e.chrome',function(){const BlameContextSnapshot=tr.e.chrome.BlameContextSnapshot;const BlameContextInstance=tr.e.chrome.BlameContextInstance;function TopLevelSnapshot(){BlameContextSnapshot.apply(this,arguments);}
TopLevelSnapshot.prototype={__proto__:BlameContextSnapshot.prototype,get userFriendlyName(){return'TopLevel';}};tr.model.ObjectSnapshot.subTypes.register(TopLevelSnapshot,{typeName:'TopLevel'});function TopLevelInstance(){BlameContextInstance.apply(this,arguments);}
TopLevelInstance.prototype={__proto__:BlameContextInstance.prototype,get blameContextType(){return'TopLevel';}};tr.model.ObjectInstance.subTypes.register(TopLevelInstance,{typeName:'TopLevel'});return{TopLevelSnapshot,TopLevelInstance,};});'use strict';tr.exportTo('tr.model',function(){function AsyncSlice(category,title,colorId,start,args,duration,opt_isTopLevel,opt_cpuStart,opt_cpuDuration,opt_argsStripped){tr.model.TimedEvent.call(this,start);this.category=category||'';this.originalTitle=title;this.title=title;this.colorId=colorId;this.args=args;this.startStackFrame=undefined;this.endStackFrame=undefined;this.didNotFinish=false;this.important=false;this.subSlices=[];this.parentContainer_=undefined;this.id=undefined;this.startThread=undefined;this.endThread=undefined;this.cpuStart=undefined;this.cpuDuration=undefined;this.argsStripped=false;this.startStackFrame=undefined;this.endStackFrame=undefined;this.duration=duration;this.isTopLevel=(opt_isTopLevel===true);if(opt_cpuStart!==undefined){this.cpuStart=opt_cpuStart;}
if(opt_cpuDuration!==undefined){this.cpuDuration=opt_cpuDuration;}
if(opt_argsStripped!==undefined){this.argsStripped=opt_argsStripped;}}
AsyncSlice.prototype={__proto__:tr.model.TimedEvent.prototype,get analysisTypeName(){return this.title;},get parentContainer(){return this.parentContainer_;},set parentContainer(parentContainer){this.parentContainer_=parentContainer;for(let i=0;i<this.subSlices.length;i++){const subSlice=this.subSlices[i];if(subSlice.parentContainer===undefined){subSlice.parentContainer=parentContainer;}}},get viewSubGroupTitle(){return this.title;},get viewSubGroupGroupingKey(){return undefined;},get userFriendlyName(){return'Async slice '+this.title+' at '+
tr.b.Unit.byName.timeStampInMs.format(this.start);},get stableId(){const parentAsyncSliceGroup=this.parentContainer.asyncSliceGroup;return parentAsyncSliceGroup.stableId+'.'+
parentAsyncSliceGroup.slices.indexOf(this);},*findTopmostSlicesRelativeToThisSlice(eventPredicate,opt_this){if(eventPredicate(this)){yield this;return;}
for(const s of this.subSlices){yield*s.findTopmostSlicesRelativeToThisSlice(eventPredicate);}},findDescendentSlice(targetTitle){if(!this.subSlices)return undefined;for(let i=0;i<this.subSlices.length;i++){if(this.subSlices[i].title===targetTitle){return this.subSlices[i];}
const slice=this.subSlices[i].findDescendentSlice(targetTitle);if(slice)return slice;}
return undefined;},*enumerateAllDescendents(){for(const slice of this.subSlices){yield slice;}
for(const slice of this.subSlices){if(slice.enumerateAllDescendents!==undefined){yield*slice.enumerateAllDescendents();}}},compareTo(that){return this.title.localeCompare(that.title);}};tr.model.EventRegistry.register(AsyncSlice,{name:'asyncSlice',pluralName:'asyncSlices'});return{AsyncSlice,};});'use strict';tr.exportTo('tr.e.blink',function(){class BlinkSchedulerAsyncSlice extends tr.model.AsyncSlice{get viewSubGroupGroupingKey(){if(this.title.startsWith('FrameScheduler.')){return'Frame'+this.id;}
if(this.title.startsWith('WebFrameScheduler.')){return'WebFrame'+this.id;}
return undefined;}}
tr.model.AsyncSlice.subTypes.register(BlinkSchedulerAsyncSlice,{categoryParts:['renderer.scheduler','disabled-by-default-renderer.scheduler',]});return{BlinkSchedulerAsyncSlice,};});'use strict';tr.exportTo('tr.model.helpers',function(){const MAIN_FRAMETIME_TYPE='main_frametime_type';const IMPL_FRAMETIME_TYPE='impl_frametime_type';const MAIN_RENDERING_STATS='BenchmarkInstrumentation::MainThreadRenderingStats';const IMPL_RENDERING_STATS='BenchmarkInstrumentation::ImplThreadRenderingStats';function getSlicesIntersectingRange(rangeOfInterest,slices){const slicesInFilterRange=[];for(let i=0;i<slices.length;i++){const slice=slices[i];if(rangeOfInterest.intersectsExplicitRangeInclusive(slice.start,slice.end)){slicesInFilterRange.push(slice);}}
return slicesInFilterRange;}
function ChromeProcessHelper(modelHelper,process){this.modelHelper=modelHelper;this.process=process;this.telemetryInternalRanges_=undefined;}
ChromeProcessHelper.prototype={get pid(){return this.process.pid;},isTelemetryInternalEvent(slice){if(this.telemetryInternalRanges_===undefined){this.findTelemetryInternalRanges_();}
for(const range of this.telemetryInternalRanges_){if(range.containsExplicitRangeInclusive(slice.start,slice.end)){return true;}}
return false;},findTelemetryInternalRanges_(){this.telemetryInternalRanges_=[];let start=0;for(const thread of Object.values(this.process.threads)){for(const slice of thread.asyncSliceGroup.getDescendantEvents()){if(/^telemetry\.internal\..*\.start$/.test(slice.title)){start=slice.start;}else if(/^telemetry\.internal\..*\.end$/.test(slice.title)&&start!==undefined){this.telemetryInternalRanges_.push(tr.b.math.Range.fromExplicitRange(start,slice.end));start=undefined;}}}},getFrameEventsInRange(frametimeType,range){const titleToGet=(frametimeType===MAIN_FRAMETIME_TYPE?MAIN_RENDERING_STATS:IMPL_RENDERING_STATS);const frameEvents=[];for(const event of this.process.getDescendantEvents()){if(event.title===titleToGet){if(range.intersectsExplicitRangeInclusive(event.start,event.end)){frameEvents.push(event);}}}
frameEvents.sort(function(a,b){return a.start-b.start;});return frameEvents;}};function getFrametimeDataFromEvents(frameEvents){const frametimeData=[];for(let i=1;i<frameEvents.length;i++){const diff=frameEvents[i].start-frameEvents[i-1].start;frametimeData.push({'x':frameEvents[i].start,'frametime':diff});}
return frametimeData;}
return{ChromeProcessHelper,MAIN_FRAMETIME_TYPE,IMPL_FRAMETIME_TYPE,MAIN_RENDERING_STATS,IMPL_RENDERING_STATS,getSlicesIntersectingRange,getFrametimeDataFromEvents,};});'use strict';tr.exportTo('tr.model.helpers',function(){function ChromeBrowserHelper(modelHelper,process){tr.model.helpers.ChromeProcessHelper.call(this,modelHelper,process);this.mainThread_=process.findAtMostOneThreadNamed('CrBrowserMain');if(!process.name){process.name=ChromeBrowserHelper.PROCESS_NAME;}}
ChromeBrowserHelper.PROCESS_NAME='Browser';ChromeBrowserHelper.isBrowserProcess=function(process){return!!process.findAtMostOneThreadNamed('CrBrowserMain');};ChromeBrowserHelper.prototype={__proto__:tr.model.helpers.ChromeProcessHelper.prototype,get browserName(){const hasInProcessRendererThread=this.process.findAllThreadsNamed('Chrome_InProcRendererThread').length>0;return hasInProcessRendererThread?'webview':'chrome';},get mainThread(){return this.mainThread_;},get rendererHelpers(){return this.modelHelper.rendererHelpers;},getLoadingEventsInRange(rangeOfInterest){return this.getAllAsyncSlicesMatching(function(slice){return slice.title.indexOf('WebContentsImpl Loading')===0&&rangeOfInterest.intersectsExplicitRangeInclusive(slice.start,slice.end);});},getCommitProvisionalLoadEventsInRange(rangeOfInterest){return this.getAllAsyncSlicesMatching(function(slice){return slice.title==='RenderFrameImpl::didCommitProvisionalLoad'&&rangeOfInterest.intersectsExplicitRangeInclusive(slice.start,slice.end);});},get hasLatencyEvents(){let hasLatency=false;for(const thread of this.modelHelper.model.getAllThreads()){for(const event of thread.getDescendantEvents()){if(!event.isTopLevel)continue;if(!(event instanceof tr.e.cc.InputLatencyAsyncSlice)){continue;}
hasLatency=true;}}
return hasLatency;},getLatencyEventsInRange(rangeOfInterest){return this.getAllAsyncSlicesMatching(function(slice){return(slice.title.indexOf('InputLatency')===0)&&rangeOfInterest.intersectsExplicitRangeInclusive(slice.start,slice.end);});},getAllAsyncSlicesMatching(pred,opt_this){const events=[];this.iterAllThreads(function(thread){for(const slice of thread.getDescendantEvents()){if(pred.call(opt_this,slice)){events.push(slice);}}});return events;},iterAllThreads(func,opt_this){for(const thread of Object.values(this.process.threads)){func.call(opt_this,thread);}
for(const rendererHelper of Object.values(this.rendererHelpers)){const rendererProcess=rendererHelper.process;for(const thread of Object.values(rendererProcess.threads)){func.call(opt_this,thread);}}}};return{ChromeBrowserHelper,};});'use strict';tr.exportTo('tr.model.helpers',function(){function ChromeGpuHelper(modelHelper,process){tr.model.helpers.ChromeProcessHelper.call(this,modelHelper,process);if(!process.name){process.name=ChromeGpuHelper.PROCESS_NAME;}}
ChromeGpuHelper.PROCESS_NAME='GPU Process';ChromeGpuHelper.isGpuProcess=function(process){if(process.findAtMostOneThreadNamed('CrBrowserMain')||process.findAtMostOneThreadNamed('CrRendererMain')){return false;}
return process.findAllThreadsNamed('CrGpuMain').length>0;};ChromeGpuHelper.prototype={__proto__:tr.model.helpers.ChromeProcessHelper.prototype};return{ChromeGpuHelper,};});'use strict';tr.exportTo('tr.model.helpers',function(){const NET_CATEGORIES=new Set(['net','netlog','disabled-by-default-netlog','disabled-by-default-network']);class ChromeThreadHelper{constructor(thread){this.thread=thread;}
getNetworkEvents(){const networkEvents=[];for(const slice of this.thread.asyncSliceGroup.slices){const categories=tr.b.getCategoryParts(slice.category);const isNetEvent=category=>NET_CATEGORIES.has(category);if(categories.filter(isNetEvent).length===0)continue;networkEvents.push(slice);}
return networkEvents;}}
return{ChromeThreadHelper,};});'use strict';tr.exportTo('tr.model.helpers',function(){const ChromeThreadHelper=tr.model.helpers.ChromeThreadHelper;function ChromeRendererHelper(modelHelper,process){tr.model.helpers.ChromeProcessHelper.call(this,modelHelper,process);this.mainThread_=process.findAtMostOneThreadNamed('CrRendererMain')||process.findAtMostOneThreadNamed('Chrome_InProcRendererThread');this.compositorThread_=process.findAtMostOneThreadNamed('Compositor');this.rasterWorkerThreads_=process.findAllThreadsMatching(function(t){if(t.name===undefined)return false;if(t.name.indexOf('CompositorTileWorker')===0)return true;if(t.name.indexOf('CompositorRasterWorker')===0)return true;return false;});if(!process.name){process.name=ChromeRendererHelper.PROCESS_NAME;}}
ChromeRendererHelper.PROCESS_NAME='Renderer';ChromeRendererHelper.isRenderProcess=function(process){if(process.findAtMostOneThreadNamed('CrRendererMain'))return true;if(process.findAtMostOneThreadNamed('Compositor'))return true;return false;};ChromeRendererHelper.isTracingProcess=function(process){return process.labels!==undefined&&process.labels.length===1&&process.labels[0]==='chrome://tracing';};ChromeRendererHelper.prototype={__proto__:tr.model.helpers.ChromeProcessHelper.prototype,get mainThread(){return this.mainThread_;},get compositorThread(){return this.compositorThread_;},get rasterWorkerThreads(){return this.rasterWorkerThreads_;},get isChromeTracingUI(){return ChromeRendererHelper.isTracingProcess(this.process);},};return{ChromeRendererHelper,};});'use strict';tr.exportTo('tr.model.helpers',function(){function findChromeBrowserProcesses(model){return model.getAllProcesses(tr.model.helpers.ChromeBrowserHelper.isBrowserProcess);}
function findChromeRenderProcesses(model){return model.getAllProcesses(tr.model.helpers.ChromeRendererHelper.isRenderProcess);}
function findChromeGpuProcess(model){const gpuProcesses=model.getAllProcesses(tr.model.helpers.ChromeGpuHelper.isGpuProcess);if(gpuProcesses.length!==1)return undefined;return gpuProcesses[0];}
function ChromeModelHelper(model){this.model_=model;const browserProcesses=findChromeBrowserProcesses(model);this.browserHelpers_=browserProcesses.map(p=>new tr.model.helpers.ChromeBrowserHelper(this,p));const gpuProcess=findChromeGpuProcess(model);if(gpuProcess){this.gpuHelper_=new tr.model.helpers.ChromeGpuHelper(this,gpuProcess);}else{this.gpuHelper_=undefined;}
const rendererProcesses_=findChromeRenderProcesses(model);this.rendererHelpers_={};rendererProcesses_.forEach(function(renderProcess){const rendererHelper=new tr.model.helpers.ChromeRendererHelper(this,renderProcess);this.rendererHelpers_[rendererHelper.pid]=rendererHelper;},this);this.chromeBounds_=undefined;}
ChromeModelHelper.guid=tr.b.GUID.allocateSimple();ChromeModelHelper.supportsModel=function(model){if(findChromeBrowserProcesses(model).length)return true;if(findChromeRenderProcesses(model).length)return true;return false;};ChromeModelHelper.prototype={get pid(){throw new Error('woah');},get process(){throw new Error('woah');},get model(){return this.model_;},get browserProcess(){if(this.browserHelper===undefined)return undefined;return this.browserHelper.process;},get browserHelper(){return this.browserHelpers_[0];},get browserHelpers(){return this.browserHelpers_;},get gpuHelper(){return this.gpuHelper_;},get rendererHelpers(){return this.rendererHelpers_;},get rendererWithLargestPid(){let largestPid=-1;for(const pid in this.rendererHelpers){const rendererHelper=this.rendererHelpers[pid];if(rendererHelper.isChromeTracingUI)continue;if(pid>largestPid)largestPid=pid;}
if(largestPid===-1)return undefined;return this.rendererHelpers[largestPid];},get chromeBounds(){if(!this.chromeBounds_){this.chromeBounds_=new tr.b.math.Range();for(const browserHelper of Object.values(this.browserHelpers)){this.chromeBounds_.addRange(browserHelper.process.bounds);}
for(const rendererHelper of Object.values(this.rendererHelpers)){this.chromeBounds_.addRange(rendererHelper.process.bounds);}
if(this.gpuHelper){this.chromeBounds_.addRange(this.gpuHelper.process.bounds);}}
if(this.chromeBounds_.isEmpty){return undefined;}
return this.chromeBounds_;}};return{ChromeModelHelper,};});'use strict';tr.exportTo('tr.e.cc',function(){const AsyncSlice=tr.model.AsyncSlice;const EventSet=tr.model.EventSet;const UI_COMP_NAME='INPUT_EVENT_LATENCY_UI_COMPONENT';const ORIGINAL_COMP_NAME='INPUT_EVENT_LATENCY_ORIGINAL_COMPONENT';const BEGIN_COMP_NAME='INPUT_EVENT_LATENCY_BEGIN_RWH_COMPONENT';const END_COMP_NAME='INPUT_EVENT_LATENCY_TERMINATED_FRAME_SWAP_COMPONENT';const MAIN_RENDERER_THREAD_NAME='CrRendererMain';const COMPOSITOR_THREAD_NAME='Compositor';const POSTTASK_FLOW_EVENT='disabled-by-default-toplevel.flow';const IPC_FLOW_EVENT='disabled-by-default-ipc.flow';const INPUT_EVENT_TYPE_NAMES={CHAR:'Char',CLICK:'GestureClick',CONTEXT_MENU:'ContextMenu',FLING_CANCEL:'GestureFlingCancel',FLING_START:'GestureFlingStart',KEY_DOWN:'KeyDown',KEY_DOWN_RAW:'RawKeyDown',KEY_UP:'KeyUp',LATENCY_SCROLL_UPDATE:'ScrollUpdate',MOUSE_DOWN:'MouseDown',MOUSE_ENTER:'MouseEnter',MOUSE_LEAVE:'MouseLeave',MOUSE_MOVE:'MouseMove',MOUSE_UP:'MouseUp',MOUSE_WHEEL:'MouseWheel',PINCH_BEGIN:'GesturePinchBegin',PINCH_END:'GesturePinchEnd',PINCH_UPDATE:'GesturePinchUpdate',SCROLL_BEGIN:'GestureScrollBegin',SCROLL_END:'GestureScrollEnd',SCROLL_UPDATE:'GestureScrollUpdate',SCROLL_UPDATE_RENDERER:'ScrollUpdate',SHOW_PRESS:'GestureShowPress',TAP:'GestureTap',TAP_CANCEL:'GestureTapCancel',TAP_DOWN:'GestureTapDown',TOUCH_CANCEL:'TouchCancel',TOUCH_END:'TouchEnd',TOUCH_MOVE:'TouchMove',TOUCH_START:'TouchStart',UNKNOWN:'UNKNOWN'};function InputLatencyAsyncSlice(){AsyncSlice.apply(this,arguments);this.associatedEvents_=new EventSet();this.typeName_=undefined;if(!this.isLegacyEvent){this.determineModernTypeName_();}}
InputLatencyAsyncSlice.prototype={__proto__:AsyncSlice.prototype,get isLegacyEvent(){return this.title==='InputLatency';},get typeName(){if(!this.typeName_){this.determineLegacyTypeName_();}
return this.typeName_;},checkTypeName_(){if(!this.typeName_){throw new Error('Unable to determine typeName');}
let found=false;for(const typeName in INPUT_EVENT_TYPE_NAMES){if(this.typeName===INPUT_EVENT_TYPE_NAMES[typeName]){found=true;break;}}
if(!found){this.typeName_=INPUT_EVENT_TYPE_NAMES.UNKNOWN;}},determineModernTypeName_(){const lastColonIndex=this.title.lastIndexOf(':');if(lastColonIndex<0)return;const characterAfterLastColonIndex=lastColonIndex+1;this.typeName_=this.title.slice(characterAfterLastColonIndex);this.checkTypeName_();},determineLegacyTypeName_(){for(const subSlice of this.enumerateAllDescendents()){const subSliceIsAInputLatencyAsyncSlice=(subSlice instanceof InputLatencyAsyncSlice);if(!subSliceIsAInputLatencyAsyncSlice)continue;if(!subSlice.typeName)continue;if(this.typeName_&&subSlice.typeName_){const subSliceHasDifferentTypeName=(this.typeName_!==subSlice.typeName_);if(subSliceHasDifferentTypeName){throw new Error('InputLatencyAsyncSlice.determineLegacyTypeName_() '+' found multiple typeNames');}}
this.typeName_=subSlice.typeName_;}
if(!this.typeName_){throw new Error('InputLatencyAsyncSlice.determineLegacyTypeName_() failed');}
this.checkTypeName_();},getRendererHelper(sourceSlices){const traceModel=this.startThread.parent.model;const modelHelper=traceModel.getOrCreateHelper(tr.model.helpers.ChromeModelHelper);if(!modelHelper)return undefined;let mainThread=undefined;let compositorThread=undefined;for(const i in sourceSlices){if(sourceSlices[i].parentContainer.name===MAIN_RENDERER_THREAD_NAME){mainThread=sourceSlices[i].parentContainer;}else if(sourceSlices[i].parentContainer.name===COMPOSITOR_THREAD_NAME){compositorThread=sourceSlices[i].parentContainer;}
if(mainThread&&compositorThread)break;}
const rendererHelpers=modelHelper.rendererHelpers;const pids=Object.keys(rendererHelpers);for(let i=0;i<pids.length;i++){const pid=pids[i];const rendererHelper=rendererHelpers[pid];if(rendererHelper.mainThread===mainThread||rendererHelper.compositorThread===compositorThread){return rendererHelper;}}
return undefined;},addEntireSliceHierarchy(slice){this.associatedEvents_.push(slice);slice.iterateAllSubsequentSlices(function(subsequentSlice){this.associatedEvents_.push(subsequentSlice);},this);},addDirectlyAssociatedEvents(flowEvents){const slices=[];flowEvents.forEach(function(flowEvent){this.associatedEvents_.push(flowEvent);const newSource=flowEvent.startSlice.mostTopLevelSlice;if(slices.indexOf(newSource)===-1){slices.push(newSource);}},this);const lastFlowEvent=flowEvents[flowEvents.length-1];const lastSource=lastFlowEvent.endSlice.mostTopLevelSlice;if(slices.indexOf(lastSource)===-1){slices.push(lastSource);}
return slices;},addScrollUpdateEvents(rendererHelper){if(!rendererHelper||!rendererHelper.compositorThread){return;}
const compositorThread=rendererHelper.compositorThread;const gestureScrollUpdateStart=this.start;const gestureScrollUpdateEnd=this.end;const allCompositorAsyncSlices=compositorThread.asyncSliceGroup.slices;for(const i in allCompositorAsyncSlices){const slice=allCompositorAsyncSlices[i];if(slice.title!=='Latency::ScrollUpdate')continue;const parentId=slice.args.data.INPUT_EVENT_LATENCY_FORWARD_SCROLL_UPDATE_TO_MAIN_COMPONENT.sequence_number;if(parentId===undefined){if(slice.start<gestureScrollUpdateStart||slice.start>=gestureScrollUpdateEnd){continue;}}else{if(parseInt(parentId)!==parseInt(this.id)){continue;}}
slice.associatedEvents.forEach(function(event){this.associatedEvents_.push(event);},this);break;}},belongToOtherInputs(slice,flowEvents){let fromOtherInputs=false;slice.iterateEntireHierarchy(function(subsequentSlice){if(fromOtherInputs)return;subsequentSlice.inFlowEvents.forEach(function(inflow){if(fromOtherInputs)return;if(inflow.category.indexOf('input')>-1){if(flowEvents.indexOf(inflow)===-1){fromOtherInputs=true;}}},this);},this);return fromOtherInputs;},triggerOtherInputs(event,flowEvents){if(event.outFlowEvents===undefined||event.outFlowEvents.length===0){return false;}
const flow=event.outFlowEvents[0];if(flow.category!==POSTTASK_FLOW_EVENT||!flow.endSlice){return false;}
const endSlice=flow.endSlice;if(this.belongToOtherInputs(endSlice.mostTopLevelSlice,flowEvents)){return true;}
return false;},followSubsequentSlices(event,queue,visited,flowEvents){let stopFollowing=false;let inputAck=false;event.iterateAllSubsequentSlices(function(slice){if(stopFollowing)return;if(slice.title==='TaskQueueManager::RunTask')return;if(slice.title==='ThreadProxy::ScheduledActionSendBeginMainFrame'){return;}
if(slice.title==='Scheduler::ScheduleBeginImplFrameDeadline'){if(this.triggerOtherInputs(slice,flowEvents))return;}
if(slice.title==='CompositorImpl::PostComposite'){if(this.triggerOtherInputs(slice,flowEvents))return;}
if(slice.title==='InputRouterImpl::ProcessInputEventAck'){inputAck=true;}
if(inputAck&&slice.title==='InputRouterImpl::FilterAndSendWebInputEvent'){stopFollowing=true;}
this.followCurrentSlice(slice,queue,visited);},this);},followCurrentSlice(event,queue,visited){event.outFlowEvents.forEach(function(outflow){if((outflow.category===POSTTASK_FLOW_EVENT||outflow.category===IPC_FLOW_EVENT)&&outflow.endSlice){this.associatedEvents_.push(outflow);const nextEvent=outflow.endSlice.mostTopLevelSlice;if(!visited.contains(nextEvent)){visited.push(nextEvent);queue.push(nextEvent);}}},this);},backtraceFromDraw(beginImplFrame,visited){const pendingEventQueue=[];pendingEventQueue.push(beginImplFrame.mostTopLevelSlice);while(pendingEventQueue.length!==0){const event=pendingEventQueue.pop();this.addEntireSliceHierarchy(event);event.inFlowEvents.forEach(function(inflow){if(inflow.category===POSTTASK_FLOW_EVENT&&inflow.startSlice){const nextEvent=inflow.startSlice.mostTopLevelSlice;if(!visited.contains(nextEvent)){visited.push(nextEvent);pendingEventQueue.push(nextEvent);}}},this);}},sortRasterizerSlices(rasterWorkerThreads,sortedRasterizerSlices){rasterWorkerThreads.forEach(function(rasterizer){Array.prototype.push.apply(sortedRasterizerSlices,rasterizer.sliceGroup.slices);},this);sortedRasterizerSlices.sort(function(a,b){if(a.start!==b.start){return a.start-b.start;}
return a.guid-b.guid;});},addRasterizationEvents(prepareTiles,rendererHelper,visited,flowEvents,sortedRasterizerSlices){if(!prepareTiles.args.prepare_tiles_id)return;if(!rendererHelper||!rendererHelper.rasterWorkerThreads){return;}
const rasterWorkerThreads=rendererHelper.rasterWorkerThreads;const prepareTileId=prepareTiles.args.prepare_tiles_id;const pendingEventQueue=[];if(sortedRasterizerSlices.length===0){this.sortRasterizerSlices(rasterWorkerThreads,sortedRasterizerSlices);}
let numFinishedTasks=0;const RASTER_TASK_TITLE='RasterizerTaskImpl::RunOnWorkerThread';const IMAGEDECODE_TASK_TITLE='ImageDecodeTaskImpl::RunOnWorkerThread';const FINISHED_TASK_TITLE='TaskSetFinishedTaskImpl::RunOnWorkerThread';for(let i=0;i<sortedRasterizerSlices.length;i++){const task=sortedRasterizerSlices[i];if(task.title===RASTER_TASK_TITLE||task.title===IMAGEDECODE_TASK_TITLE){if(task.args.source_prepare_tiles_id===prepareTileId){this.addEntireSliceHierarchy(task.mostTopLevelSlice);}}else if(task.title===FINISHED_TASK_TITLE){if(task.start>prepareTiles.start){pendingEventQueue.push(task.mostTopLevelSlice);if(++numFinishedTasks===3)break;}}}
while(pendingEventQueue.length!==0){const event=pendingEventQueue.pop();this.addEntireSliceHierarchy(event);this.followSubsequentSlices(event,pendingEventQueue,visited,flowEvents);}},addOtherCausallyRelatedEvents(rendererHelper,sourceSlices,flowEvents,sortedRasterizerSlices){const pendingEventQueue=[];const visitedEvents=new EventSet();let beginImplFrame=undefined;let prepareTiles=undefined;sortedRasterizerSlices=[];sourceSlices.forEach(function(sourceSlice){if(!visitedEvents.contains(sourceSlice)){visitedEvents.push(sourceSlice);pendingEventQueue.push(sourceSlice);}},this);while(pendingEventQueue.length!==0){const event=pendingEventQueue.pop();this.addEntireSliceHierarchy(event);this.followCurrentSlice(event,pendingEventQueue,visitedEvents);this.followSubsequentSlices(event,pendingEventQueue,visitedEvents,flowEvents);const COMPOSITOR_PREPARE_TILES='TileManager::PrepareTiles';prepareTiles=event.findDescendentSlice(COMPOSITOR_PREPARE_TILES);if(prepareTiles){this.addRasterizationEvents(prepareTiles,rendererHelper,visitedEvents,flowEvents,sortedRasterizerSlices);}
const COMPOSITOR_ON_BIFD='Scheduler::OnBeginImplFrameDeadline';beginImplFrame=event.findDescendentSlice(COMPOSITOR_ON_BIFD);if(beginImplFrame){this.backtraceFromDraw(beginImplFrame,visitedEvents);}}
const INPUT_GSU='InputLatency::GestureScrollUpdate';if(this.title===INPUT_GSU){this.addScrollUpdateEvents(rendererHelper);}},get associatedEvents(){if(this.associatedEvents_.length!==0){return this.associatedEvents_;}
const modelIndices=this.startThread.parent.model.modelIndices;const flowEvents=modelIndices.getFlowEventsWithId(this.id);if(flowEvents.length===0){return this.associatedEvents_;}
const sourceSlices=this.addDirectlyAssociatedEvents(flowEvents);const rendererHelper=this.getRendererHelper(sourceSlices);this.addOtherCausallyRelatedEvents(rendererHelper,sourceSlices,flowEvents);return this.associatedEvents_;},get inputLatency(){if(!('data'in this.args))return undefined;const data=this.args.data;if(!(END_COMP_NAME in data))return undefined;let latency=0;const endTime=data[END_COMP_NAME].time;if(ORIGINAL_COMP_NAME in data){latency=endTime-data[ORIGINAL_COMP_NAME].time;}else if(UI_COMP_NAME in data){latency=endTime-data[UI_COMP_NAME].time;}else if(BEGIN_COMP_NAME in data){latency=endTime-data[BEGIN_COMP_NAME].time;}else{throw new Error('No valid begin latency component');}
return latency;}};const eventTypeNames=['Char','ContextMenu','GestureClick','GestureFlingCancel','GestureFlingStart','GestureScrollBegin','GestureScrollEnd','GestureScrollUpdate','GestureShowPress','GestureTap','GestureTapCancel','GestureTapDown','GesturePinchBegin','GesturePinchEnd','GesturePinchUpdate','KeyDown','KeyUp','MouseDown','MouseEnter','MouseLeave','MouseMove','MouseUp','MouseWheel','RawKeyDown','ScrollUpdate','TouchCancel','TouchEnd','TouchMove','TouchStart'];const allTypeNames=['InputLatency'];eventTypeNames.forEach(function(eventTypeName){allTypeNames.push('InputLatency:'+eventTypeName);allTypeNames.push('InputLatency::'+eventTypeName);});AsyncSlice.subTypes.register(InputLatencyAsyncSlice,{typeNames:allTypeNames,categoryParts:['latencyInfo']});return{InputLatencyAsyncSlice,INPUT_EVENT_TYPE_NAMES,};});'use strict';tr.exportTo('tr.e.chrome',function(){const SAME_AS_PARENT='same-as-parent';const TITLES_FOR_USER_FRIENDLY_CATEGORY={composite:['CompositingInputsUpdater::update','ThreadProxy::SetNeedsUpdateLayers','LayerTreeHost::UpdateLayers::CalcDrawProps','UpdateLayerTree',],gc:['minorGC','majorGC','MajorGC','MinorGC','V8.GCScavenger','V8.GCIncrementalMarking','V8.GCIdleNotification','V8.GCContext','V8.GCCompactor','V8GCController::traceDOMWrappers',],iframe_creation:['WebLocalFrameImpl::createChildframe',],imageDecode:['Decode Image','ImageFrameGenerator::decode','ImageFrameGenerator::decodeAndScale','ImageResourceContent::updateImage',],input:['HitTest','ScrollableArea::scrollPositionChanged','EventHandler::handleMouseMoveEvent',],layout:['DisplayItemList::Finalize','IntersectionObserverController::computeTrackedIntersectionObservations','LocalFrameView::invalidateTree','LocalFrameView::layout','LocalFrameView::performLayout','LocalFrameView::performPostLayoutTasks','LocalFrameView::performPreLayoutTasks','FrameView::invalidateTree','FrameView::layout','FrameView::performLayout','FrameView::performPostLayoutTasks','FrameView::performPreLayoutTasks','Layer::updateLayerPositionsAfterLayout','LayerTreeHostInProcess::UpdateLayers::BuildPropertyTrees','Layout','LayoutView::hitTest','PaintLayer::updateLayerPositionsAfterLayout','ResourceLoadPriorityOptimizer::updateAllImageResourcePriorities','WebViewImpl::layout',],parseHTML:['BackgroundHTMLParser::pumpTokenizer','BackgroundHTMLParser::sendTokensToMainThread','HTMLDocumentParser::didReceiveParsedChunkFromBackgroundParser','HTMLDocumentParser::documentElementAvailable','HTMLDocumentParser::notifyPendingTokenizedChunks','HTMLDocumentParser::processParsedChunkFromBackgroundParser','HTMLDocumentParser::processTokenizedChunkFromBackgroundParser','ParseHTML',],raster:['DisplayListRasterSource::PerformSolidColorAnalysis','Picture::Raster','RasterBufferImpl::Playback','RasterTask','RasterizerTaskImpl::RunOnWorkerThread','SkCanvas::drawImageRect()','SkCanvas::drawPicture()','SkCanvas::drawTextBlob()','TileTaskWorkerPool::PlaybackToMemory',],record:['Canvas2DLayerBridge::flushRecordingOnly','CompositingRequirementsUpdater::updateRecursive','ContentLayerDelegate::paintContents','DeprecatedPaintLayerCompositor::updateIfNeededRecursive','DeprecatedPaintLayerCompositor::updateLayerPositionsAfterLayout','LocalFrameView::paintTree','LocalFrameView::prePaint','Paint','PaintController::commitNewDisplayItems','PaintLayerCompositor::updateIfNeededRecursive','Picture::Record','PictureLayer::Update','RenderLayer::updateLayerPositionsAfterLayout',],style:['CSSParserImpl::parseStyleSheet.parse','CSSParserImpl::parseStyleSheet.tokenize','Document::rebuildLayoutTree','Document::recalcStyle','Document::updateActiveStyle','Document::updateStyle','Document::updateStyleInvalidationIfNeeded','LocalFrameView::updateStyleAndLayoutIfNeededRecursive','ParseAuthorStyleSheet','RuleSet::addRulesFromSheet','StyleElement::processStyleSheet','StyleEngine::createResolver','StyleEngine::updateActiveStyleSheets','StyleSheetContents::parseAuthorStyleSheet','UpdateLayoutTree',],script_parse_and_compile:['V8.CompileFullCode','V8.NewContext','V8.Parse','V8.ParseLazy','V8.RecompileSynchronous','V8.ScriptCompiler','v8.compile','v8.parseOnBackground',],script_execute:['EvaluateScript','FunctionCall','HTMLParserScriptRunner ExecuteScript','V8.Execute','V8.RunMicrotasks','V8.Task','WindowProxy::initialize','v8.callFunction','v8.run',],resource_loading:['RenderFrameImpl::didFinishDocumentLoad','RenderFrameImpl::didFinishLoad','Resource::appendData','ResourceDispatcher::OnReceivedData','ResourceDispatcher::OnReceivedResponse','ResourceDispatcher::OnRequestComplete','ResourceFetcher::requestResource','WebURLLoaderImpl::Context::Cancel','WebURLLoaderImpl::Context::OnCompletedRequest','WebURLLoaderImpl::Context::OnReceivedData','WebURLLoaderImpl::Context::OnReceivedRedirect','WebURLLoaderImpl::Context::OnReceivedResponse','WebURLLoaderImpl::Context::Start','WebURLLoaderImpl::loadAsynchronously','WebURLLoaderImpl::loadSynchronously','content::mojom::URLLoaderClient',],renderer_misc:['DecodeFont','ThreadState::completeSweep',],v8_runtime:[],[SAME_AS_PARENT]:['SyncChannel::Send',]};const COLOR_FOR_USER_FRIENDLY_CATEGORY=new tr.b.SinebowColorGenerator();const USER_FRIENDLY_CATEGORY_FOR_TITLE=new Map();for(const category in TITLES_FOR_USER_FRIENDLY_CATEGORY){TITLES_FOR_USER_FRIENDLY_CATEGORY[category].forEach(function(title){USER_FRIENDLY_CATEGORY_FOR_TITLE.set(title,category);});}
const USER_FRIENDLY_CATEGORY_FOR_EVENT_CATEGORY={netlog:'net',overhead:'overhead',startup:'startup',gpu:'gpu',};function ChromeUserFriendlyCategoryDriver(){}
ChromeUserFriendlyCategoryDriver.fromEvent=function(event){let userFriendlyCategory=USER_FRIENDLY_CATEGORY_FOR_TITLE.get(event.title);if(userFriendlyCategory){if(userFriendlyCategory===SAME_AS_PARENT){if(event.parentSlice){return ChromeUserFriendlyCategoryDriver.fromEvent(event.parentSlice);}}else{return userFriendlyCategory;}}
const eventCategoryParts=tr.b.getCategoryParts(event.category);for(let i=0;i<eventCategoryParts.length;++i){const eventCategory=eventCategoryParts[i];userFriendlyCategory=USER_FRIENDLY_CATEGORY_FOR_EVENT_CATEGORY[eventCategory];if(userFriendlyCategory){return userFriendlyCategory;}}
return'other';};ChromeUserFriendlyCategoryDriver.getColor=function(ufc){return COLOR_FOR_USER_FRIENDLY_CATEGORY.colorForKey(ufc);};ChromeUserFriendlyCategoryDriver.ALL_TITLES=['other'];for(const category in TITLES_FOR_USER_FRIENDLY_CATEGORY){if(category===SAME_AS_PARENT)continue;ChromeUserFriendlyCategoryDriver.ALL_TITLES.push(category);}
for(const category of Object.values(USER_FRIENDLY_CATEGORY_FOR_EVENT_CATEGORY)){ChromeUserFriendlyCategoryDriver.ALL_TITLES.push(category);}
ChromeUserFriendlyCategoryDriver.ALL_TITLES.sort();for(const category of ChromeUserFriendlyCategoryDriver.ALL_TITLES){ChromeUserFriendlyCategoryDriver.getColor(category);}
return{ChromeUserFriendlyCategoryDriver,};});'use strict';tr.exportTo('tr.model',function(){return{BROWSER_PROCESS_PID_REF:-1,OBJECT_DEFAULT_SCOPE:'ptr',LOCAL_ID_PHASES:new Set(['N','D','O','(',')'])};});'use strict';tr.exportTo('tr.e.audits',function(){const Auditor=tr.c.Auditor;function ChromeAuditor(model){Auditor.call(this,model);const modelHelper=this.model.getOrCreateHelper(tr.model.helpers.ChromeModelHelper);if(modelHelper&&modelHelper.browserHelper){this.modelHelper=modelHelper;}else{this.modelHelper=undefined;}}
ChromeAuditor.prototype={__proto__:Auditor.prototype,runAnnotate(){if(!this.modelHelper)return;for(const pid in this.modelHelper.rendererHelpers){const rendererHelper=this.modelHelper.rendererHelpers[pid];if(rendererHelper.isChromeTracingUI){rendererHelper.process.important=false;}}},installUserFriendlyCategoryDriverIfNeeded(){this.model.addUserFriendlyCategoryDriver(tr.e.chrome.ChromeUserFriendlyCategoryDriver);},runAudit(){if(!this.modelHelper)return;this.model.replacePIDRefsInPatchups(tr.model.BROWSER_PROCESS_PID_REF,this.modelHelper.browserProcess.pid);this.model.applyObjectRefPatchups();}};Auditor.register(ChromeAuditor);return{ChromeAuditor,};});'use strict';tr.exportTo('tr.e.chrome',function(){const KNOWN_PROPERTIES={absX:1,absY:1,address:1,anonymous:1,childNeeds:1,children:1,classNames:1,col:1,colSpan:1,float:1,height:1,htmlId:1,name:1,posChildNeeds:1,positioned:1,positionedMovement:1,relX:1,relY:1,relativePositioned:1,row:1,rowSpan:1,selfNeeds:1,stickyPositioned:1,tag:1,width:1};function LayoutObject(snapshot,args){this.snapshot_=snapshot;this.id_=args.address;this.name_=args.name;this.childLayoutObjects_=[];this.otherProperties_={};this.tag_=args.tag;this.relativeRect_=tr.b.math.Rect.fromXYWH(args.relX,args.relY,args.width,args.height);this.absoluteRect_=tr.b.math.Rect.fromXYWH(args.absX,args.absY,args.width,args.height);this.isFloat_=args.float;this.isStickyPositioned_=args.stickyPositioned;this.isPositioned_=args.positioned;this.isRelativePositioned_=args.relativePositioned;this.isAnonymous_=args.anonymous;this.htmlId_=args.htmlId;this.classNames_=args.classNames;this.needsLayoutReasons_=[];if(args.selfNeeds){this.needsLayoutReasons_.push('self');}
if(args.childNeeds){this.needsLayoutReasons_.push('child');}
if(args.posChildNeeds){this.needsLayoutReasons_.push('positionedChild');}
if(args.positionedMovement){this.needsLayoutReasons_.push('positionedMovement');}
this.tableRow_=args.row;this.tableCol_=args.col;this.tableRowSpan_=args.rowSpan;this.tableColSpan_=args.colSpan;if(args.children){args.children.forEach(function(child){this.childLayoutObjects_.push(new LayoutObject(snapshot,child));}.bind(this));}
for(const property in args){if(!KNOWN_PROPERTIES[property]){this.otherProperties_[property]=args[property];}}}
LayoutObject.prototype={get snapshot(){return this.snapshot_;},get id(){return this.id_;},get name(){return this.name_;},get tag(){return this.tag_;},get relativeRect(){return this.relativeRect_;},get absoluteRect(){return this.absoluteRect_;},get isPositioned(){return this.isPositioned_;},get isFloat(){return this.isFloat_;},get isStickyPositioned(){return this.isStickyPositioned_;},get isRelativePositioned(){return this.isRelativePositioned_;},get isAnonymous(){return this.isAnonymous_;},get tableRow(){return this.tableRow_;},get tableCol(){return this.tableCol_;},get tableRowSpan(){return this.tableRowSpan_;},get tableColSpan(){return this.tableColSpan_;},get htmlId(){return this.htmlId_;},get classNames(){return this.classNames_;},get needsLayoutReasons(){return this.needsLayoutReasons_;},get hasChildLayoutObjects(){return this.childLayoutObjects_.length>0;},get childLayoutObjects(){return this.childLayoutObjects_;},traverseTree(cb,opt_this){cb.call(opt_this,this);if(!this.hasChildLayoutObjects)return;this.childLayoutObjects.forEach(function(child){child.traverseTree(cb,opt_this);});},get otherPropertyNames(){const names=[];for(const name in this.otherProperties_){names.push(name);}
return names;},getProperty(name){return this.otherProperties_[name];},get previousSnapshotLayoutObject(){if(!this.snapshot.previousSnapshot)return undefined;return this.snapshot.previousSnapshot.getLayoutObjectById(this.id);},get nextSnapshotLayoutObject(){if(!this.snapshot.nextSnapshot)return undefined;return this.snapshot.nextSnapshot.getLayoutObjectById(this.id);}};return{LayoutObject,};});'use strict';tr.exportTo('tr.e.chrome',function(){const ObjectSnapshot=tr.model.ObjectSnapshot;const ObjectInstance=tr.model.ObjectInstance;function LayoutTreeInstance(){ObjectInstance.apply(this,arguments);}
LayoutTreeInstance.prototype={__proto__:ObjectInstance.prototype,};ObjectInstance.subTypes.register(LayoutTreeInstance,{typeName:'LayoutTree'});function LayoutTreeSnapshot(){ObjectSnapshot.apply(this,arguments);this.rootLayoutObject=new tr.e.chrome.LayoutObject(this,this.args);}
LayoutTreeSnapshot.prototype={__proto__:ObjectSnapshot.prototype,};ObjectSnapshot.subTypes.register(LayoutTreeSnapshot,{typeName:'LayoutTree'});return{LayoutTreeInstance,LayoutTreeSnapshot,};});'use strict';tr.exportTo('tr.model',function(){function EventContainer(){this.guid_=tr.b.GUID.allocateSimple();this.important=true;this.bounds_=new tr.b.math.Range();}
EventContainer.prototype={get guid(){return this.guid_;},get stableId(){throw new Error('Not implemented');},get bounds(){return this.bounds_;},updateBounds(){throw new Error('Not implemented');},shiftTimestampsForward(amount){throw new Error('Not implemented');},*childEvents(){},*getDescendantEvents(){yield*this.childEvents();for(const container of this.childEventContainers()){yield*container.getDescendantEvents();}},*childEventContainers(){},*getDescendantEventContainers(){yield this;for(const container of this.childEventContainers()){yield*container.getDescendantEventContainers();}},*findTopmostSlicesInThisContainer(eventPredicate,opt_this){},*findTopmostSlices(eventPredicate){for(const ec of this.getDescendantEventContainers()){yield*ec.findTopmostSlicesInThisContainer(eventPredicate);}},*findTopmostSlicesNamed(name){yield*this.findTopmostSlices(e=>e.title===name);}};return{EventContainer,};});'use strict';tr.exportTo('tr.model',function(){const Event=tr.model.Event;const EventRegistry=tr.model.EventRegistry;class ResourceUsageSample extends Event{constructor(series,start,usage){super();this.series_=series;this.start_=start;this.usage_=usage;}
get series(){return this.series_;}
get start(){return this.start_;}
set start(value){this.start_=value;}
get usage(){return this.usage_;}
set usage(value){this.usage_=value;}
addBoundsToRange(range){range.addValue(this.start);}}
EventRegistry.register(ResourceUsageSample,{name:'resourceUsageSample',pluralName:'resourceUsageSamples'});return{ResourceUsageSample,};});'use strict';tr.exportTo('tr.model',function(){const ResourceUsageSample=tr.model.ResourceUsageSample;class ResourceUsageSeries extends tr.model.EventContainer{constructor(device){super();this.device_=device;this.samples_=[];}
get device(){return this.device_;}
get samples(){return this.samples_;}
get stableId(){return this.device_.stableId+'.ResourceUsageSeries';}
addUsageSample(ts,val){const sample=new ResourceUsageSample(this,ts,val);this.samples_.push(sample);return sample;}
computeResourceTimeConsumedInMs(start,end){const measurementRange=tr.b.math.Range.fromExplicitRange(start,end);let resourceTimeInMs=0;let startIndex=tr.b.findLowIndexInSortedArray(this.samples,x=>x.start,start)-1;const endIndex=tr.b.findLowIndexInSortedArray(this.samples,x=>x.start,end);if(startIndex<0)startIndex=0;for(let i=startIndex;i<endIndex;i++){const sample=this.samples[i];const nextSample=this.samples[i+1];const sampleRange=new tr.b.math.Range();sampleRange.addValue(sample.start);sampleRange.addValue(nextSample?nextSample.start:sample.start);const intersectionRangeInMs=measurementRange.findIntersection(sampleRange);resourceTimeInMs+=intersectionRangeInMs.duration*sample.usage;}
return resourceTimeInMs;}
getSamplesWithinRange(start,end){const startIndex=tr.b.findLowIndexInSortedArray(this.samples,x=>x.start,start);const endIndex=tr.b.findLowIndexInSortedArray(this.samples,x=>x.start,end);return this.samples.slice(startIndex,endIndex);}
shiftTimestampsForward(amount){for(let i=0;i<this.samples_.length;++i){this.samples_[i].start+=amount;}}
updateBounds(){this.bounds.reset();if(this.samples_.length===0)return;this.bounds.addValue(this.samples_[0].start);this.bounds.addValue(this.samples_[this.samples_.length-1].start);}*childEvents(){yield*this.samples_;}}
return{ResourceUsageSeries,};});'use strict';tr.exportTo('tr.e.audits',function(){class CpuUsageAuditor extends tr.c.Auditor{constructor(model){super();this.model_=model;}
runAnnotate(){this.model_.device.cpuUsageSeries=this.computeCpuUsageSeries_(this.model_.bounds.min,this.model_.bounds.max,this.computeCpuUsage_());}
computeBinSize_(start,end){const MIN_BIN_SIZE_MS=1.0;const MAX_NUM_BINS=100000;const interval=end-start;let binSize=MIN_BIN_SIZE_MS;while(binSize*MAX_NUM_BINS<interval)binSize*=2;return binSize;}
computeCpuUsageSeries_(start,end,usageRecords){const series=new tr.model.ResourceUsageSeries();if(start===undefined||usageRecords.length===0)return series;const binSize=this.computeBinSize_(start,end);const numBins=Math.ceil((end-start)/binSize);const arr=new Array(numBins).fill(0);for(const record of usageRecords){const firstIndex=Math.ceil((record.start-start)/binSize);const lastIndex=Math.floor((record.end-start)/binSize);for(let i=firstIndex;i<=lastIndex;i++)arr[i]+=record.usage;}
for(let i=0;i<numBins;i++){series.addUsageSample(start+(i*binSize),arr[i]);}
return series;}
computeCpuUsage_(){const model=this.model_;const result=[];for(const pid in model.processes){for(const e of model.processes[pid].getDescendantEvents()){if(!(e instanceof tr.model.ThreadSlice)||e.duration===0||e.cpuDuration===undefined){continue;}
if(e.selfTime===0||e.selfTime===undefined||e.cpuSelfTime===undefined){continue;}
const usage=tr.b.math.clamp(e.cpuSelfTime/e.selfTime,0,1);let lastTime=e.start;for(const subslice of e.subSlices){result.push({usage,start:lastTime,end:subslice.start});lastTime=subslice.end;}
result.push({usage,start:lastTime,end:e.end});}}
return result;}}
tr.c.Auditor.register(CpuUsageAuditor);return{CpuUsageAuditor};});'use strict';tr.exportTo('tr.b',function(){function Base64(){}
function b64ToUint6(nChr){if(nChr>64&&nChr<91)return nChr-65;if(nChr>96&&nChr<123)return nChr-71;if(nChr>47&&nChr<58)return nChr+4;if(nChr===43)return 62;if(nChr===47)return 63;return 0;}
Base64.getDecodedBufferLength=function(input){let pad=0;if(input.substr(-2)==='=='){pad=2;}else if(input.substr(-1)==='='){pad=1;}
return((input.length*3+1)>>2)-pad;};Base64.EncodeArrayBufferToString=function(input){let binary='';const bytes=new Uint8Array(input);const len=bytes.byteLength;for(let i=0;i<len;i++){binary+=String.fromCharCode(bytes[i]);}
return btoa(binary);};Base64.DecodeToTypedArray=function(input,output){const nInLen=input.length;const nOutLen=Base64.getDecodedBufferLength(input);let nMod3=0;let nMod4=0;let nUint24=0;let nOutIdx=0;if(nOutLen>output.byteLength){throw new Error('Output buffer too small to decode.');}
for(let nInIdx=0;nInIdx<nInLen;nInIdx++){nMod4=nInIdx&3;nUint24|=b64ToUint6(input.charCodeAt(nInIdx))<<18-6*nMod4;if(nMod4===3||nInLen-nInIdx===1){for(nMod3=0;nMod3<3&&nOutIdx<nOutLen;nMod3++,nOutIdx++){output.setUint8(nOutIdx,nUint24>>>(16>>>nMod3&24)&255);}
nUint24=0;}}
return nOutLen;};Base64.btoa=function(input){return btoa(input);};Base64.atob=function(input){return atob(input);};return{Base64,};});'use strict';tr.exportTo('tr.e.importer.etw',function(){function Parser(importer){this.importer=importer;this.model=importer.model;}
Parser.prototype={__proto__:Object.prototype};const options=new tr.b.ExtensionRegistryOptions(tr.b.BASIC_REGISTRY_MODE);options.mandatoryBaseClass=Parser;tr.b.decorateExtensionRegistry(Parser,options);return{Parser,};});'use strict';tr.exportTo('tr.e.importer.etw',function(){const Parser=tr.e.importer.etw.Parser;const guid='68FDD900-4A3E-11D1-84F4-0000F80464E3';const kEventTraceHeaderOpcode=0;function EventTraceParser(importer){Parser.call(this,importer);importer.registerEventHandler(guid,kEventTraceHeaderOpcode,EventTraceParser.prototype.decodeHeader.bind(this));}
EventTraceParser.prototype={__proto__:Parser.prototype,decodeFields(header,decoder){if(header.version!==2){throw new Error('Incompatible EventTrace event version.');}
const bufferSize=decoder.decodeUInt32();const version=decoder.decodeUInt32();const providerVersion=decoder.decodeUInt32();const numberOfProcessors=decoder.decodeUInt32();const endTime=decoder.decodeUInt64ToString();const timerResolution=decoder.decodeUInt32();const maxFileSize=decoder.decodeUInt32();const logFileMode=decoder.decodeUInt32();const buffersWritten=decoder.decodeUInt32();const startBuffers=decoder.decodeUInt32();const pointerSize=decoder.decodeUInt32();const eventsLost=decoder.decodeUInt32();const cpuSpeed=decoder.decodeUInt32();const loggerName=decoder.decodeUInteger(header.is64);const logFileName=decoder.decodeUInteger(header.is64);const timeZoneInformation=decoder.decodeTimeZoneInformation();const padding=decoder.decodeUInt32();const bootTime=decoder.decodeUInt64ToString();const perfFreq=decoder.decodeUInt64ToString();const startTime=decoder.decodeUInt64ToString();const reservedFlags=decoder.decodeUInt32();const buffersLost=decoder.decodeUInt32();const sessionNameString=decoder.decodeW16String();const logFileNameString=decoder.decodeW16String();return{bufferSize,version,providerVersion,numberOfProcessors,endTime,timerResolution,maxFileSize,logFileMode,buffersWritten,startBuffers,pointerSize,eventsLost,cpuSpeed,loggerName,logFileName,timeZoneInformation,bootTime,perfFreq,startTime,reservedFlags,buffersLost,sessionNameString,logFileNameString};},decodeHeader(header,decoder){const fields=this.decodeFields(header,decoder);return true;}};Parser.register(EventTraceParser);return{EventTraceParser,};});'use strict';tr.exportTo('tr.e.importer.etw',function(){const Parser=tr.e.importer.etw.Parser;const guid='3D6FA8D0-FE05-11D0-9DDA-00C04FD7BA7C';const kProcessStartOpcode=1;const kProcessEndOpcode=2;const kProcessDCStartOpcode=3;const kProcessDCEndOpcode=4;const kProcessDefunctOpcode=39;function ProcessParser(importer){Parser.call(this,importer);importer.registerEventHandler(guid,kProcessStartOpcode,ProcessParser.prototype.decodeStart.bind(this));importer.registerEventHandler(guid,kProcessEndOpcode,ProcessParser.prototype.decodeEnd.bind(this));importer.registerEventHandler(guid,kProcessDCStartOpcode,ProcessParser.prototype.decodeDCStart.bind(this));importer.registerEventHandler(guid,kProcessDCEndOpcode,ProcessParser.prototype.decodeDCEnd.bind(this));importer.registerEventHandler(guid,kProcessDefunctOpcode,ProcessParser.prototype.decodeDefunct.bind(this));}
ProcessParser.prototype={__proto__:Parser.prototype,decodeFields(header,decoder){if(header.version>5){throw new Error('Incompatible Process event version.');}
let pageDirectoryBase;if(header.version===1){pageDirectoryBase=decoder.decodeUInteger(header.is64);}
let uniqueProcessKey;if(header.version>=2){uniqueProcessKey=decoder.decodeUInteger(header.is64);}
const processId=decoder.decodeUInt32();const parentId=decoder.decodeUInt32();let sessionId;let exitStatus;if(header.version>=1){sessionId=decoder.decodeUInt32();exitStatus=decoder.decodeInt32();}
let directoryTableBase;if(header.version>=3){directoryTableBase=decoder.decodeUInteger(header.is64);}
let flags;if(header.version>=4){flags=decoder.decodeUInt32();}
const userSID=decoder.decodeSID(header.is64);let imageFileName;if(header.version>=1){imageFileName=decoder.decodeString();}
let commandLine;if(header.version>=2){commandLine=decoder.decodeW16String();}
let packageFullName;let applicationId;if(header.version>=4){packageFullName=decoder.decodeW16String();applicationId=decoder.decodeW16String();}
let exitTime;if(header.version===5&&header.opcode===kProcessDefunctOpcode){exitTime=decoder.decodeUInt64ToString();}
return{pageDirectoryBase,uniqueProcessKey,processId,parentId,sessionId,exitStatus,directoryTableBase,flags,userSID,imageFileName,commandLine,packageFullName,applicationId,exitTime};},decodeStart(header,decoder){const fields=this.decodeFields(header,decoder);const process=this.model.getOrCreateProcess(fields.processId);if(process.hasOwnProperty('has_ended')){throw new Error('Process clash detected.');}
process.name=fields.imageFileName;return true;},decodeEnd(header,decoder){const fields=this.decodeFields(header,decoder);const process=this.model.getOrCreateProcess(fields.processId);process.has_ended=true;return true;},decodeDCStart(header,decoder){const fields=this.decodeFields(header,decoder);const process=this.model.getOrCreateProcess(fields.processId);if(process.hasOwnProperty('has_ended')){throw new Error('Process clash detected.');}
process.name=fields.imageFileName;return true;},decodeDCEnd(header,decoder){const fields=this.decodeFields(header,decoder);const process=this.model.getOrCreateProcess(fields.processId);process.has_ended=true;return true;},decodeDefunct(header,decoder){const fields=this.decodeFields(header,decoder);return true;}};Parser.register(ProcessParser);return{ProcessParser,};});'use strict';tr.exportTo('tr.e.importer.etw',function(){const Parser=tr.e.importer.etw.Parser;const guid='3D6FA8D1-FE05-11D0-9DDA-00C04FD7BA7C';const kThreadStartOpcode=1;const kThreadEndOpcode=2;const kThreadDCStartOpcode=3;const kThreadDCEndOpcode=4;const kThreadCSwitchOpcode=36;function ThreadParser(importer){Parser.call(this,importer);importer.registerEventHandler(guid,kThreadStartOpcode,ThreadParser.prototype.decodeStart.bind(this));importer.registerEventHandler(guid,kThreadEndOpcode,ThreadParser.prototype.decodeEnd.bind(this));importer.registerEventHandler(guid,kThreadDCStartOpcode,ThreadParser.prototype.decodeDCStart.bind(this));importer.registerEventHandler(guid,kThreadDCEndOpcode,ThreadParser.prototype.decodeDCEnd.bind(this));importer.registerEventHandler(guid,kThreadCSwitchOpcode,ThreadParser.prototype.decodeCSwitch.bind(this));}
ThreadParser.prototype={__proto__:Parser.prototype,decodeFields(header,decoder){if(header.version>3){throw new Error('Incompatible Thread event version.');}
const processId=decoder.decodeUInt32();const threadId=decoder.decodeUInt32();let stackBase;let stackLimit;let userStackBase;let userStackLimit;let affinity;let startAddr;let win32StartAddr;let tebBase;let subProcessTag;let basePriority;let pagePriority;let ioPriority;let threadFlags;let waitMode;if(header.version===1){if(header.opcode===kThreadStartOpcode||header.opcode===kThreadDCStartOpcode){stackBase=decoder.decodeUInteger(header.is64);stackLimit=decoder.decodeUInteger(header.is64);userStackBase=decoder.decodeUInteger(header.is64);userStackLimit=decoder.decodeUInteger(header.is64);startAddr=decoder.decodeUInteger(header.is64);win32StartAddr=decoder.decodeUInteger(header.is64);waitMode=decoder.decodeInt8();decoder.skip(3);}}else{stackBase=decoder.decodeUInteger(header.is64);stackLimit=decoder.decodeUInteger(header.is64);userStackBase=decoder.decodeUInteger(header.is64);userStackLimit=decoder.decodeUInteger(header.is64);if(header.version===2){startAddr=decoder.decodeUInteger(header.is64);}else{affinity=decoder.decodeUInteger(header.is64);}
win32StartAddr=decoder.decodeUInteger(header.is64);tebBase=decoder.decodeUInteger(header.is64);subProcessTag=decoder.decodeUInt32();if(header.version===3){basePriority=decoder.decodeUInt8();pagePriority=decoder.decodeUInt8();ioPriority=decoder.decodeUInt8();threadFlags=decoder.decodeUInt8();}}
return{processId,threadId,stackBase,stackLimit,userStackBase,userStackLimit,affinity,startAddr,win32StartAddr,tebBase,subProcessTag,waitMode,basePriority,pagePriority,ioPriority,threadFlags};},decodeCSwitchFields(header,decoder){if(header.version!==2){throw new Error('Incompatible Thread event version.');}
const newThreadId=decoder.decodeUInt32();const oldThreadId=decoder.decodeUInt32();const newThreadPriority=decoder.decodeInt8();const oldThreadPriority=decoder.decodeInt8();const previousCState=decoder.decodeUInt8();const spareByte=decoder.decodeInt8();const oldThreadWaitReason=decoder.decodeInt8();const oldThreadWaitMode=decoder.decodeInt8();const oldThreadState=decoder.decodeInt8();const oldThreadWaitIdealProcessor=decoder.decodeInt8();const newThreadWaitTime=decoder.decodeUInt32();const reserved=decoder.decodeUInt32();return{newThreadId,oldThreadId,newThreadPriority,oldThreadPriority,previousCState,spareByte,oldThreadWaitReason,oldThreadWaitMode,oldThreadState,oldThreadWaitIdealProcessor,newThreadWaitTime,reserved};},decodeStart(header,decoder){const fields=this.decodeFields(header,decoder);this.importer.createThreadIfNeeded(fields.processId,fields.threadId);return true;},decodeEnd(header,decoder){const fields=this.decodeFields(header,decoder);this.importer.removeThreadIfPresent(fields.threadId);return true;},decodeDCStart(header,decoder){const fields=this.decodeFields(header,decoder);this.importer.createThreadIfNeeded(fields.processId,fields.threadId);return true;},decodeDCEnd(header,decoder){const fields=this.decodeFields(header,decoder);this.importer.removeThreadIfPresent(fields.threadId);return true;},decodeCSwitch(header,decoder){const fields=this.decodeCSwitchFields(header,decoder);const cpu=this.importer.getOrCreateCpu(header.cpu);const newThread=this.importer.getThreadFromWindowsTid(fields.newThreadId);let newThreadName;if(newThread&&newThread.userFriendlyName){newThreadName=newThread.userFriendlyName;}else{const newProcessId=this.importer.getPidFromWindowsTid(fields.newThreadId);const newProcess=this.model.getProcess(newProcessId);let newProcessName;if(newProcess){newProcessName=newProcess.name;}else{newProcessName='Unknown process';}
newThreadName=newProcessName+' (tid '+fields.newThreadId+')';}
cpu.switchActiveThread(header.timestamp,{},fields.newThreadId,newThreadName,fields);return true;}};Parser.register(ThreadParser);return{ThreadParser,};});'use strict';tr.exportTo('tr.b',function(){function max(a,b){if(a===undefined)return b;if(b===undefined)return a;return Math.max(a,b);}
function IntervalTree(beginPositionCb,endPositionCb){this.beginPositionCb_=beginPositionCb;this.endPositionCb_=endPositionCb;this.root_=undefined;this.size_=0;}
IntervalTree.prototype={insert(datum){const startPosition=this.beginPositionCb_(datum);const endPosition=this.endPositionCb_(datum);const node=new IntervalTreeNode(datum,startPosition,endPosition);this.size_++;this.root_=this.insertNode_(this.root_,node);this.root_.colour=Colour.BLACK;return datum;},insertNode_(root,node){if(root===undefined)return node;if(root.leftNode&&root.leftNode.isRed&&root.rightNode&&root.rightNode.isRed){this.flipNodeColour_(root);}
if(node.key<root.key){root.leftNode=this.insertNode_(root.leftNode,node);}else if(node.key===root.key){root.merge(node);}else{root.rightNode=this.insertNode_(root.rightNode,node);}
if(root.rightNode&&root.rightNode.isRed&&(root.leftNode===undefined||!root.leftNode.isRed)){root=this.rotateLeft_(root);}
if(root.leftNode&&root.leftNode.isRed&&root.leftNode.leftNode&&root.leftNode.leftNode.isRed){root=this.rotateRight_(root);}
return root;},rotateRight_(node){const sibling=node.leftNode;node.leftNode=sibling.rightNode;sibling.rightNode=node;sibling.colour=node.colour;node.colour=Colour.RED;return sibling;},rotateLeft_(node){const sibling=node.rightNode;node.rightNode=sibling.leftNode;sibling.leftNode=node;sibling.colour=node.colour;node.colour=Colour.RED;return sibling;},flipNodeColour_(node){node.colour=this.flipColour_(node.colour);node.leftNode.colour=this.flipColour_(node.leftNode.colour);node.rightNode.colour=this.flipColour_(node.rightNode.colour);},flipColour_(colour){return colour===Colour.RED?Colour.BLACK:Colour.RED;},updateHighValues(){this.updateHighValues_(this.root_);},updateHighValues_(node){if(node===undefined)return undefined;node.maxHighLeft=this.updateHighValues_(node.leftNode);node.maxHighRight=this.updateHighValues_(node.rightNode);return max(max(node.maxHighLeft,node.highValue),node.maxHighRight);},validateFindArguments_(queryLow,queryHigh){if(queryLow===undefined||queryHigh===undefined){throw new Error('queryLow and queryHigh must be defined');}
if((typeof queryLow!=='number')||(typeof queryHigh!=='number')){throw new Error('queryLow and queryHigh must be numbers');}},findIntersection(queryLow,queryHigh){this.validateFindArguments_(queryLow,queryHigh);if(this.root_===undefined)return[];const ret=[];this.root_.appendIntersectionsInto_(ret,queryLow,queryHigh);return ret;},get size(){return this.size_;},get root(){return this.root_;},dump_(){if(this.root_===undefined)return[];return this.root_.dump();}};const Colour={RED:'red',BLACK:'black'};function IntervalTreeNode(datum,lowValue,highValue){this.lowValue_=lowValue;this.data_=[{datum,high:highValue,low:lowValue}];this.colour_=Colour.RED;this.parentNode_=undefined;this.leftNode_=undefined;this.rightNode_=undefined;this.maxHighLeft_=undefined;this.maxHighRight_=undefined;}
IntervalTreeNode.prototype={appendIntersectionsInto_(ret,queryLow,queryHigh){if(this.lowValue_>=queryHigh){if(!this.leftNode_)return;return this.leftNode_.appendIntersectionsInto_(ret,queryLow,queryHigh);}
if(this.maxHighLeft_>queryLow){this.leftNode_.appendIntersectionsInto_(ret,queryLow,queryHigh);}
if(this.highValue>queryLow){for(let i=(this.data.length-1);i>=0;--i){if(this.data[i].high<queryLow)break;ret.push(this.data[i].datum);}}
if(this.rightNode_){this.rightNode_.appendIntersectionsInto_(ret,queryLow,queryHigh);}},get colour(){return this.colour_;},set colour(colour){this.colour_=colour;},get key(){return this.lowValue_;},get lowValue(){return this.lowValue_;},get highValue(){return this.data_[this.data_.length-1].high;},set leftNode(left){this.leftNode_=left;},get leftNode(){return this.leftNode_;},get hasLeftNode(){return this.leftNode_!==undefined;},set rightNode(right){this.rightNode_=right;},get rightNode(){return this.rightNode_;},get hasRightNode(){return this.rightNode_!==undefined;},set parentNode(parent){this.parentNode_=parent;},get parentNode(){return this.parentNode_;},get isRootNode(){return this.parentNode_===undefined;},set maxHighLeft(high){this.maxHighLeft_=high;},get maxHighLeft(){return this.maxHighLeft_;},set maxHighRight(high){this.maxHighRight_=high;},get maxHighRight(){return this.maxHighRight_;},get data(){return this.data_;},get isRed(){return this.colour_===Colour.RED;},merge(node){for(let i=0;i<node.data.length;i++){this.data_.push(node.data[i]);}
this.data_.sort(function(a,b){return a.high-b.high;});},dump(){const ret={};if(this.leftNode_){ret.left=this.leftNode_.dump();}
ret.data=this.data_.map(function(d){return[d.low,d.high];});if(this.rightNode_){ret.right=this.rightNode_.dump();}
return ret;}};return{IntervalTree,};});'use strict';tr.exportTo('tr.b.math',function(){const tmpVec2s=[];for(let i=0;i<8;i++){tmpVec2s[i]=vec2.create();}
const tmpVec2a=vec4.create();const tmpVec4a=vec4.create();const tmpVec4b=vec4.create();const tmpMat4=mat4.create();const tmpMat4b=mat4.create();const p00=vec2.createXY(0,0);const p10=vec2.createXY(1,0);const p01=vec2.createXY(0,1);const p11=vec2.createXY(1,1);const lerpingVecA=vec2.create();const lerpingVecB=vec2.create();function lerpVec2(out,a,b,amt){vec2.scale(lerpingVecA,a,amt);vec2.scale(lerpingVecB,b,1-amt);vec2.add(out,lerpingVecA,lerpingVecB);vec2.normalize(out,out);return out;}
function Quad(){this.p1=vec2.create();this.p2=vec2.create();this.p3=vec2.create();this.p4=vec2.create();}
Quad.fromXYWH=function(x,y,w,h){const q=new Quad();vec2.set(q.p1,x,y);vec2.set(q.p2,x+w,y);vec2.set(q.p3,x+w,y+h);vec2.set(q.p4,x,y+h);return q;};Quad.fromRect=function(r){return new Quad.fromXYWH(r.x,r.y,r.width,r.height);};Quad.from4Vecs=function(p1,p2,p3,p4){const q=new Quad();vec2.set(q.p1,p1[0],p1[1]);vec2.set(q.p2,p2[0],p2[1]);vec2.set(q.p3,p3[0],p3[1]);vec2.set(q.p4,p4[0],p4[1]);return q;};Quad.from8Array=function(arr){if(arr.length!==8){throw new Error('Array must be 8 long');}
const q=new Quad();q.p1[0]=arr[0];q.p1[1]=arr[1];q.p2[0]=arr[2];q.p2[1]=arr[3];q.p3[0]=arr[4];q.p3[1]=arr[5];q.p4[0]=arr[6];q.p4[1]=arr[7];return q;};Quad.prototype={pointInside(point){return pointInImplicitQuad(point,this.p1,this.p2,this.p3,this.p4);},boundingRect(){const x0=Math.min(this.p1[0],this.p2[0],this.p3[0],this.p4[0]);const y0=Math.min(this.p1[1],this.p2[1],this.p3[1],this.p4[1]);const x1=Math.max(this.p1[0],this.p2[0],this.p3[0],this.p4[0]);const y1=Math.max(this.p1[1],this.p2[1],this.p3[1],this.p4[1]);return new tr.b.math.Rect.fromXYWH(x0,y0,x1-x0,y1-y0);},clone(){const q=new Quad();vec2.copy(q.p1,this.p1);vec2.copy(q.p2,this.p2);vec2.copy(q.p3,this.p3);vec2.copy(q.p4,this.p4);return q;},scale(s){const q=new Quad();this.scaleFast(q,s);return q;},scaleFast(dstQuad,s){vec2.copy(dstQuad.p1,this.p1,s);vec2.copy(dstQuad.p2,this.p2,s);vec2.copy(dstQuad.p3,this.p3,s);vec2.copy(dstQuad.p3,this.p3,s);},isRectangle(){const bounds=this.boundingRect();return(bounds.x===this.p1[0]&&bounds.y===this.p1[1]&&bounds.width===this.p2[0]-this.p1[0]&&bounds.y===this.p2[1]&&bounds.width===this.p3[0]-this.p1[0]&&bounds.height===this.p3[1]-this.p2[1]&&bounds.x===this.p4[0]&&bounds.height===this.p4[1]-this.p2[1]);},projectUnitRect(rect){const q=new Quad();this.projectUnitRectFast(q,rect);return q;},projectUnitRectFast(dstQuad,rect){const v12=tmpVec2s[0];const v14=tmpVec2s[1];const v23=tmpVec2s[2];const v43=tmpVec2s[3];vec2.sub(v12,this.p2,this.p1);const l12=vec2.length(v12);vec2.scale(v12,v12,1/l12);vec2.sub(v14,this.p4,this.p1);const l14=vec2.length(v14);vec2.scale(v14,v14,1/l14);vec2.sub(v23,this.p3,this.p2);const l23=vec2.length(v23);vec2.scale(v23,v23,1/l23);vec2.sub(v43,this.p3,this.p4);const l43=vec2.length(v43);vec2.scale(v43,v43,1/l43);const b12=tmpVec2s[0];const b14=tmpVec2s[1];const b23=tmpVec2s[2];const b43=tmpVec2s[3];lerpVec2(b12,v12,v43,rect.y);lerpVec2(b43,v12,v43,1-rect.bottom);lerpVec2(b14,v14,v23,rect.x);lerpVec2(b23,v14,v23,1-rect.right);vec2.addTwoScaledUnitVectors(tmpVec2a,b12,l12*rect.x,b14,l14*rect.y);vec2.add(dstQuad.p1,this.p1,tmpVec2a);vec2.addTwoScaledUnitVectors(tmpVec2a,b12,l12*-(1.0-rect.right),b23,l23*rect.y);vec2.add(dstQuad.p2,this.p2,tmpVec2a);vec2.addTwoScaledUnitVectors(tmpVec2a,b43,l43*-(1.0-rect.right),b23,l23*-(1.0-rect.bottom));vec2.add(dstQuad.p3,this.p3,tmpVec2a);vec2.addTwoScaledUnitVectors(tmpVec2a,b43,l43*rect.left,b14,l14*-(1.0-rect.bottom));vec2.add(dstQuad.p4,this.p4,tmpVec2a);},toString(){return'Quad('+
vec2.toString(this.p1)+', '+
vec2.toString(this.p2)+', '+
vec2.toString(this.p3)+', '+
vec2.toString(this.p4)+')';}};function sign(p1,p2,p3){return(p1[0]-p3[0])*(p2[1]-p3[1])-
(p2[0]-p3[0])*(p1[1]-p3[1]);}
function pointInTriangle2(pt,p1,p2,p3){const b1=sign(pt,p1,p2)<0.0;const b2=sign(pt,p2,p3)<0.0;const b3=sign(pt,p3,p1)<0.0;return((b1===b2)&&(b2===b3));}
function pointInImplicitQuad(point,p1,p2,p3,p4){return pointInTriangle2(point,p1,p2,p3)||pointInTriangle2(point,p1,p3,p4);}
return{pointInTriangle2,pointInImplicitQuad,Quad,};});'use strict';tr.exportTo('tr.b',function(){const ESTIMATED_IDLE_PERIOD_LENGTH_MILLISECONDS=10;const REQUEST_IDLE_CALLBACK_TIMEOUT_MILLISECONDS=100;const recordRAFStacks=false;let pendingPreAFs=[];let pendingRAFs=[];const pendingIdleCallbacks=[];let currentRAFDispatchList=undefined;let rafScheduled=false;let idleWorkScheduled=false;function scheduleRAF(){if(rafScheduled)return;rafScheduled=true;if(tr.isHeadless){Promise.resolve().then(function(){processRequests(false,0);},function(e){throw e;});}else{if(window.requestAnimationFrame){window.requestAnimationFrame(processRequests.bind(this,false));}else{const delta=Date.now()-window.performance.now();window.webkitRequestAnimationFrame(function(domTimeStamp){processRequests(false,domTimeStamp-delta);});}}}
function nativeRequestIdleCallbackSupported(){return!tr.isHeadless&&window.requestIdleCallback;}
function scheduleIdleWork(){if(idleWorkScheduled)return;if(!nativeRequestIdleCallbackSupported()){scheduleRAF();return;}
idleWorkScheduled=true;window.requestIdleCallback(function(deadline,didTimeout){processIdleWork(false,deadline);},{timeout:REQUEST_IDLE_CALLBACK_TIMEOUT_MILLISECONDS});}
function onAnimationFrameError(e,opt_stack){console.log(e.stack);if(tr.isHeadless)throw e;if(opt_stack)console.log(opt_stack);if(e.message){console.error(e.message,e.stack);}else{console.error(e);}}
function runTask(task,frameBeginTime){try{task.callback.call(task.context,frameBeginTime);}catch(e){tr.b.onAnimationFrameError(e,task.stack);}}
function processRequests(forceAllTasksToRun,frameBeginTime){rafScheduled=false;const currentPreAFs=pendingPreAFs;currentRAFDispatchList=pendingRAFs;pendingPreAFs=[];pendingRAFs=[];const hasRAFTasks=currentPreAFs.length||currentRAFDispatchList.length;for(let i=0;i<currentPreAFs.length;i++){runTask(currentPreAFs[i],frameBeginTime);}
while(currentRAFDispatchList.length>0){runTask(currentRAFDispatchList.shift(),frameBeginTime);}
currentRAFDispatchList=undefined;if((!hasRAFTasks&&!nativeRequestIdleCallbackSupported())||forceAllTasksToRun){const rafCompletionDeadline=frameBeginTime+ESTIMATED_IDLE_PERIOD_LENGTH_MILLISECONDS;processIdleWork(forceAllTasksToRun,{timeRemaining(){return rafCompletionDeadline-window.performance.now();}});}
if(pendingIdleCallbacks.length>0)scheduleIdleWork();}
function processIdleWork(forceAllTasksToRun,deadline){idleWorkScheduled=false;while(pendingIdleCallbacks.length>0){runTask(pendingIdleCallbacks.shift());if(!forceAllTasksToRun&&(tr.isHeadless||deadline.timeRemaining()<=0)){break;}}
if(pendingIdleCallbacks.length>0)scheduleIdleWork();}
function getStack_(){if(!recordRAFStacks)return'';const stackLines=tr.b.stackTrace();stackLines.shift();return stackLines.join('\n');}
function requestPreAnimationFrame(callback,opt_this){pendingPreAFs.push({callback,context:opt_this||global,stack:getStack_()});scheduleRAF();}
function requestAnimationFrameInThisFrameIfPossible(callback,opt_this){if(!currentRAFDispatchList){requestAnimationFrame(callback,opt_this);return;}
currentRAFDispatchList.push({callback,context:opt_this||global,stack:getStack_()});return;}
function requestAnimationFrame(callback,opt_this){pendingRAFs.push({callback,context:opt_this||global,stack:getStack_()});scheduleRAF();}
function animationFrame(){return new Promise(resolve=>requestAnimationFrame(resolve));}
function requestIdleCallback(callback,opt_this){pendingIdleCallbacks.push({callback,context:opt_this||global,stack:getStack_()});scheduleIdleWork();}
function forcePendingRAFTasksToRun(frameBeginTime){if(!rafScheduled)return;processRequests(false,frameBeginTime);}
function forceAllPendingTasksToRunForTest(){if(!rafScheduled&&!idleWorkScheduled)return;processRequests(true,0);}
function timeout(ms){return new Promise(resolve=>window.setTimeout(resolve,ms));}
function idle(){return new Promise(resolve=>requestIdleCallback(resolve));}
return{animationFrame,forceAllPendingTasksToRunForTest,forcePendingRAFTasksToRun,idle,onAnimationFrameError,requestAnimationFrame,requestAnimationFrameInThisFrameIfPossible,requestIdleCallback,requestPreAnimationFrame,timeout,};});'use strict';tr.exportTo('tr.b',function(){class Mark{constructor(groupName,functionName){if(tr.isHeadless)return;this.groupName_=groupName;this.functionName_=functionName;const guid=tr.b.GUID.allocateSimple();this.measureName_=`${groupName} ${functionName}`;this.startMarkName_=`${this.measureName} ${guid} start`;this.endMarkName_=`${this.measureName} ${guid} end`;window.performance.mark(this.startMarkName_);}
get groupName(){return this.groupName_;}
get functionName(){return this.functionName_;}
get measureName(){return this.measureName_;}
get startMark(){return tr.b.getOnlyElement(window.performance.getEntriesByName(this.startMarkName_));}
get endMark(){return tr.b.getOnlyElement(window.performance.getEntriesByName(this.endMarkName_));}
get durationMs(){return this.endMark.startTime-this.startMark.startTime;}
end(){if(tr.isHeadless)return;window.performance.mark(this.endMarkName_);window.performance.measure(this.measureName_,this.startMarkName_,this.endMarkName_);if(!(window.ga instanceof Function))return;ga('send',{hitType:'event',eventCategory:this.groupName,eventAction:this.functionName,eventValue:this.durationMs,});}}
class Timing{static mark(groupName,functionName){return new Mark(groupName,functionName);}
static instant(groupName,functionName,opt_value){const valueString=opt_value===undefined?'':' '+opt_value;if(console&&console.timeStamp){console.timeStamp(`${groupName} ${functionName}${valueString}`);}
if(window&&window.ga instanceof Function){ga('send',{hitType:'event',eventCategory:groupName,eventAction:functionName,eventValue:opt_value,});}}
static getCurrentTimeMs(){try{return performance.now();}catch(error){}
return 0;}}
return{Timing,};});'use strict';tr.exportTo('tr.b',function(){const Timing=tr.b.Timing;function Task(runCb,thisArg){if(runCb!==undefined&&thisArg===undefined&&runCb.prototype!==undefined){throw new Error('Almost certainly you meant to pass a bound callback '+'or thisArg.');}
this.runCb_=runCb;this.thisArg_=thisArg;this.afterTask_=undefined;this.subTasks_=[];this.updatesUi_=false;}
Task.prototype={get name(){return this.runCb_.name;},set updatesUi(value){this.updatesUi_=value;},subTask(cb,thisArg){if(cb instanceof Task){this.subTasks_.push(cb);}else{this.subTasks_.push(new Task(cb,thisArg));}
return this.subTasks_[this.subTasks_.length-1];},run(){if(this.runCb_!==undefined)this.runCb_.call(this.thisArg_,this);const subTasks=this.subTasks_;this.subTasks_=undefined;if(!subTasks.length)return this.afterTask_;for(let i=1;i<subTasks.length;i++){subTasks[i-1].afterTask_=subTasks[i];}
subTasks[subTasks.length-1].afterTask_=this.afterTask_;return subTasks[0];},after(cb,thisArg){if(this.afterTask_){throw new Error('Has an after task already');}
if(cb instanceof Task){this.afterTask_=cb;}else{this.afterTask_=new Task(cb,thisArg);}
return this.afterTask_;},enqueue(cb,thisArg){if(!this.afterTask_)return this.after(cb,thisArg);return this.afterTask_.enqueue(cb,thisArg);}};Task.RunSynchronously=function(task){let curTask=task;while(curTask){curTask=curTask.run();}};Task.RunWhenIdle=function(task){return new Promise(function(resolve,reject){let curTask=task;function runAnother(){try{curTask=curTask.run();}catch(e){reject(e);return;}
if(curTask){if(curTask.updatesUi_){tr.b.requestAnimationFrameInThisFrameIfPossible(runAnother);}else{tr.b.requestIdleCallback(runAnother);}
return;}
resolve();}
tr.b.requestIdleCallback(runAnother);});};return{Task,};});'use strict';tr.exportTo('tr.c',function(){function makeCaseInsensitiveRegex(pattern){pattern=pattern.replace(/[.*+?^${}()|[\]\\]/g,'\\$&');return new RegExp(pattern,'i');}
function Filter(){}
Filter.prototype={__proto__:Object.prototype,matchCounter(counter){return true;},matchCpu(cpu){return true;},matchProcess(process){return true;},matchSlice(slice){return true;},matchThread(thread){return true;}};function TitleOrCategoryFilter(text){Filter.call(this);this.regex_=makeCaseInsensitiveRegex(text);if(!text.length){throw new Error('Filter text is empty.');}}
TitleOrCategoryFilter.prototype={__proto__:Filter.prototype,matchSlice(slice){if(slice.title===undefined&&slice.category===undefined){return false;}
return this.regex_.test(slice.title)||(!!slice.category&&this.regex_.test(slice.category));}};function ExactTitleFilter(text){Filter.call(this);this.text_=text;if(!text.length){throw new Error('Filter text is empty.');}}
ExactTitleFilter.prototype={__proto__:Filter.prototype,matchSlice(slice){return slice.title===this.text_;}};function FullTextFilter(text){Filter.call(this);this.regex_=makeCaseInsensitiveRegex(text);this.titleOrCategoryFilter_=new TitleOrCategoryFilter(text);}
FullTextFilter.prototype={__proto__:Filter.prototype,matchObject_(obj){for(const key in obj){if(!obj.hasOwnProperty(key))continue;if(this.regex_.test(key))return true;if(this.regex_.test(obj[key]))return true;}
return false;},matchSlice(slice){if(this.titleOrCategoryFilter_.matchSlice(slice))return true;return this.matchObject_(slice.args);}};return{Filter,TitleOrCategoryFilter,ExactTitleFilter,FullTextFilter,};});'use strict';tr.exportTo('tr.model',function(){const ClockDomainId={BATTOR:'BATTOR',UNKNOWN_CHROME_LEGACY:'UNKNOWN_CHROME_LEGACY',LINUX_CLOCK_MONOTONIC:'LINUX_CLOCK_MONOTONIC',LINUX_FTRACE_GLOBAL:'LINUX_FTRACE_GLOBAL',MAC_MACH_ABSOLUTE_TIME:'MAC_MACH_ABSOLUTE_TIME',WIN_ROLLOVER_PROTECTED_TIME_GET_TIME:'WIN_ROLLOVER_PROTECTED_TIME_GET_TIME',WIN_QPC:'WIN_QPC',SYSTRACE:'SYSTRACE',TELEMETRY:'TELEMETRY'};const POSSIBLE_CHROME_CLOCK_DOMAINS=new Set([ClockDomainId.UNKNOWN_CHROME_LEGACY,ClockDomainId.LINUX_CLOCK_MONOTONIC,ClockDomainId.MAC_MACH_ABSOLUTE_TIME,ClockDomainId.WIN_ROLLOVER_PROTECTED_TIME_GET_TIME,ClockDomainId.WIN_QPC]);const BATTOR_FAST_SYNC_THRESHOLD_MS=3;function ClockSyncManager(){this.domainsSeen_=new Set();this.markersBySyncId_=new Map();this.transformerMapByDomainId_={};}
ClockSyncManager.prototype={addClockSyncMarker(domainId,syncId,startTs,opt_endTs){this.onDomainSeen_(domainId);if(Object.values(ClockDomainId).indexOf(domainId)<0){throw new Error('"'+domainId+'" is not in the list of known '+'clock domain IDs.');}
if(this.modelDomainId_){throw new Error('Cannot add new clock sync markers after getting '+'a model time transformer.');}
const marker=new ClockSyncMarker(domainId,startTs,opt_endTs);if(!this.markersBySyncId_.has(syncId)){this.markersBySyncId_.set(syncId,[marker]);return;}
const markers=this.markersBySyncId_.get(syncId);if(markers.length===2){throw new Error('Clock sync with ID "'+syncId+'" is already '+'complete - cannot add a third clock sync marker to it.');}
if(markers[0].domainId===domainId){throw new Error('A clock domain cannot sync with itself.');}
markers.push(marker);this.onSyncCompleted_(markers[0],marker);},get markersBySyncId(){return this.markersBySyncId_;},get domainsSeen(){return this.domainsSeen_;},getModelTimeTransformer(domainId){this.onDomainSeen_(domainId);if(!this.modelDomainId_){this.selectModelDomainId_();}
return this.getTimeTransformerRaw_(domainId,this.modelDomainId_).fn;},getTimeTransformerError(fromDomainId,toDomainId){this.onDomainSeen_(fromDomainId);this.onDomainSeen_(toDomainId);return this.getTimeTransformerRaw_(fromDomainId,toDomainId).error;},getTimeTransformerRaw_(fromDomainId,toDomainId){const transformer=this.getTransformerBetween_(fromDomainId,toDomainId);if(!transformer){throw new Error('No clock sync markers exist pairing clock domain "'+
fromDomainId+'" '+'with target clock domain "'+
toDomainId+'".');}
return transformer;},getTransformerBetween_(fromDomainId,toDomainId){const visitedDomainIds=new Set();const queue=[{domainId:fromDomainId,transformer:Transformer.IDENTITY}];while(queue.length>0){queue.sort((domain1,domain2)=>domain1.transformer.error-domain2.transformer.error);const current=queue.shift();if(current.domainId===toDomainId){return current.transformer;}
if(visitedDomainIds.has(current.domainId)){continue;}
visitedDomainIds.add(current.domainId);const outgoingTransformers=this.transformerMapByDomainId_[current.domainId];if(!outgoingTransformers)continue;for(const outgoingDomainId in outgoingTransformers){const toNextDomainTransformer=outgoingTransformers[outgoingDomainId];const toCurrentDomainTransformer=current.transformer;queue.push({domainId:outgoingDomainId,transformer:Transformer.compose(toNextDomainTransformer,toCurrentDomainTransformer)});}}
return undefined;},selectModelDomainId_(){this.ensureAllDomainsAreConnected_();for(const chromeDomainId of POSSIBLE_CHROME_CLOCK_DOMAINS){if(this.domainsSeen_.has(chromeDomainId)){this.modelDomainId_=chromeDomainId;return;}}
const domainsSeenArray=Array.from(this.domainsSeen_);domainsSeenArray.sort();this.modelDomainId_=domainsSeenArray[0];},ensureAllDomainsAreConnected_(){let firstDomainId=undefined;for(const domainId of this.domainsSeen_){if(!firstDomainId){firstDomainId=domainId;continue;}
if(!this.getTransformerBetween_(firstDomainId,domainId)){throw new Error('Unable to select a master clock domain because no '+'path can be found from "'+firstDomainId+'" to "'+domainId+'".');}}
return true;},onDomainSeen_(domainId){if(domainId===ClockDomainId.UNKNOWN_CHROME_LEGACY&&!this.domainsSeen_.has(ClockDomainId.UNKNOWN_CHROME_LEGACY)){for(const chromeDomainId of POSSIBLE_CHROME_CLOCK_DOMAINS){if(chromeDomainId===ClockDomainId.UNKNOWN_CHROME_LEGACY){continue;}
this.collapseDomains_(ClockDomainId.UNKNOWN_CHROME_LEGACY,chromeDomainId);}}
this.domainsSeen_.add(domainId);},onSyncCompleted_(marker1,marker2){const forwardTransformer=Transformer.fromMarkers(marker1,marker2);const backwardTransformer=Transformer.fromMarkers(marker2,marker1);const existingTransformer=this.getOrCreateTransformerMap_(marker1.domainId)[marker2.domainId];if(!existingTransformer||forwardTransformer.error<existingTransformer.error){this.getOrCreateTransformerMap_(marker1.domainId)[marker2.domainId]=forwardTransformer;this.getOrCreateTransformerMap_(marker2.domainId)[marker1.domainId]=backwardTransformer;}},collapseDomains_(domain1Id,domain2Id){this.getOrCreateTransformerMap_(domain1Id)[domain2Id]=this.getOrCreateTransformerMap_(domain2Id)[domain1Id]=Transformer.IDENTITY;},getOrCreateTransformerMap_(domainId){if(!this.transformerMapByDomainId_[domainId]){this.transformerMapByDomainId_[domainId]={};}
return this.transformerMapByDomainId_[domainId];},computeDotGraph(){let dotString='graph {\n';const domainsSeen=[...this.domainsSeen_].sort();for(const domainId of domainsSeen){dotString+=` ${domainId}[shape=box]\n`;}
const markersBySyncIdEntries=[...this.markersBySyncId_.entries()].sort(([syncId1,markers1],[syncId2,markers2])=>syncId1.localeCompare(syncId2));for(const[syncId,markers]of markersBySyncIdEntries){const sortedMarkers=markers.sort((a,b)=>a.domainId.localeCompare(b.domainId));for(const m of markers){dotString+=` "${syncId}" -- ${m.domainId} `;dotString+=`[label="[${m.startTs}, ${m.endTs}]"]\n`;}}
dotString+='}';return dotString;}};function ClockSyncMarker(domainId,startTs,opt_endTs){this.domainId=domainId;this.startTs=startTs;this.endTs=opt_endTs===undefined?startTs:opt_endTs;}
ClockSyncMarker.prototype={get duration(){return this.endTs-this.startTs;},get ts(){return this.startTs+this.duration/2;}};function Transformer(fn,error){this.fn=fn;this.error=error;}
Transformer.IDENTITY=new Transformer((x=>x),0);Transformer.compose=function(aToB,bToC){return new Transformer((ts)=>bToC.fn(aToB.fn(ts)),aToB.error+bToC.error);};Transformer.fromMarkers=function(fromMarker,toMarker){let fromTs=fromMarker.ts;let toTs=toMarker.ts;if(fromMarker.domainId===ClockDomainId.BATTOR&&toMarker.duration>BATTOR_FAST_SYNC_THRESHOLD_MS){toTs=toMarker.startTs;}else if(toMarker.domainId===ClockDomainId.BATTOR&&fromMarker.duration>BATTOR_FAST_SYNC_THRESHOLD_MS){fromTs=fromMarker.startTs;}
const tsShift=toTs-fromTs;return new Transformer((ts)=>ts+tsShift,fromMarker.duration+toMarker.duration);};return{ClockDomainId,ClockSyncManager,};});'use strict';tr.exportTo('tr.model',function(){function CounterSample(series,timestamp,value){tr.model.Event.call(this);this.series_=series;this.timestamp_=timestamp;this.value_=value;}
CounterSample.groupByTimestamp=function(samples){const samplesByTimestamp=tr.b.groupIntoMap(samples,s=>s.timestamp);const timestamps=Array.from(samplesByTimestamp.keys());timestamps.sort();const groups=[];for(const ts of timestamps){const group=samplesByTimestamp.get(ts);group.sort((x,y)=>x.series.seriesIndex-y.series.seriesIndex);groups.push(group);}
return groups;};CounterSample.prototype={__proto__:tr.model.Event.prototype,get series(){return this.series_;},get timestamp(){return this.timestamp_;},get value(){return this.value_;},set timestamp(timestamp){this.timestamp_=timestamp;},addBoundsToRange(range){range.addValue(this.timestamp);},getSampleIndex(){return tr.b.findLowIndexInSortedArray(this.series.timestamps,function(x){return x;},this.timestamp_);},get userFriendlyName(){return'Counter sample from '+this.series_.title+' at '+
tr.b.Unit.byName.timeStampInMs.format(this.timestamp);}};tr.model.EventRegistry.register(CounterSample,{name:'counterSample',pluralName:'counterSamples'});return{CounterSample,};});'use strict';tr.exportTo('tr.model',function(){const CounterSample=tr.model.CounterSample;function CounterSeries(name,color){tr.model.EventContainer.call(this);this.name_=name;this.color_=color;this.timestamps_=[];this.samples_=[];this.counter=undefined;this.seriesIndex=undefined;}
CounterSeries.prototype={__proto__:tr.model.EventContainer.prototype,get length(){return this.timestamps_.length;},get name(){return this.name_;},get color(){return this.color_;},get samples(){return this.samples_;},get timestamps(){return this.timestamps_;},getSample(idx){return this.samples_[idx];},getTimestamp(idx){return this.timestamps_[idx];},addCounterSample(ts,val){const sample=new CounterSample(this,ts,val);this.addSample(sample);return sample;},addSample(sample){this.timestamps_.push(sample.timestamp);this.samples_.push(sample);},getStatistics(sampleIndices){let sum=0;let min=Number.MAX_VALUE;let max=-Number.MAX_VALUE;for(let i=0;i<sampleIndices.length;++i){const sample=this.getSample(sampleIndices[i]).value;sum+=sample;min=Math.min(sample,min);max=Math.max(sample,max);}
return{min,max,avg:(sum/sampleIndices.length),start:this.getSample(sampleIndices[0]).value,end:this.getSample(sampleIndices.length-1).value};},shiftTimestampsForward(amount){for(let i=0;i<this.timestamps_.length;++i){this.timestamps_[i]+=amount;this.samples_[i].timestamp=this.timestamps_[i];}},*childEvents(){yield*this.samples_;},*childEventContainers(){}};return{CounterSeries,};});'use strict';tr.exportTo('tr.model',function(){function Counter(parent,id,category,name){tr.model.EventContainer.call(this);this.parent_=parent;this.id_=id;this.category_=category||'';this.name_=name;this.series_=[];this.totals=[];}
Counter.prototype={__proto__:tr.model.EventContainer.prototype,get parent(){return this.parent_;},get id(){return this.id_;},get category(){return this.category_;},get name(){return this.name_;},*childEvents(){},*childEventContainers(){yield*this.series;},set timestamps(arg){throw new Error('Bad counter API. No cookie.');},set seriesNames(arg){throw new Error('Bad counter API. No cookie.');},set seriesColors(arg){throw new Error('Bad counter API. No cookie.');},set samples(arg){throw new Error('Bad counter API. No cookie.');},addSeries(series){series.counter=this;series.seriesIndex=this.series_.length;this.series_.push(series);return series;},getSeries(idx){return this.series_[idx];},get series(){return this.series_;},get numSeries(){return this.series_.length;},get numSamples(){if(this.series_.length===0)return 0;return this.series_[0].length;},get timestamps(){if(this.series_.length===0)return[];return this.series_[0].timestamps;},getSampleStatistics(sampleIndices){sampleIndices.sort();const ret=[];this.series_.forEach(function(series){ret.push(series.getStatistics(sampleIndices));});return ret;},shiftTimestampsForward(amount){for(let i=0;i<this.series_.length;++i){this.series_[i].shiftTimestampsForward(amount);}},updateBounds(){this.totals=[];this.maxTotal=0;this.bounds.reset();if(this.series_.length===0)return;const firstSeries=this.series_[0];const lastSeries=this.series_[this.series_.length-1];this.bounds.addValue(firstSeries.getTimestamp(0));this.bounds.addValue(lastSeries.getTimestamp(lastSeries.length-1));const numSeries=this.numSeries;this.maxTotal=-Infinity;for(let i=0;i<firstSeries.length;++i){let total=0;this.series_.forEach(function(series){total+=series.getSample(i).value;this.totals.push(total);}.bind(this));this.maxTotal=Math.max(total,this.maxTotal);}}};Counter.compare=function(x,y){let tmp=x.parent.compareTo(y.parent);if(tmp!==0)return tmp;tmp=x.name.localeCompare(y.name);if(tmp===0)return x.tid-y.tid;return tmp;};return{Counter,};});'use strict';tr.exportTo('tr.model',function(){const Slice=tr.model.Slice;function CpuSlice(cat,title,colorId,start,args,opt_duration){Slice.apply(this,arguments);this.threadThatWasRunning=undefined;this.cpu=undefined;}
CpuSlice.prototype={__proto__:Slice.prototype,get analysisTypeName(){return'tr.ui.analysis.CpuSlice';},getAssociatedTimeslice(){if(!this.threadThatWasRunning){return undefined;}
const timeSlices=this.threadThatWasRunning.timeSlices;for(let i=0;i<timeSlices.length;i++){const timeSlice=timeSlices[i];if(timeSlice.start!==this.start){continue;}
if(timeSlice.duration!==this.duration){continue;}
return timeSlice;}
return undefined;}};tr.model.EventRegistry.register(CpuSlice,{name:'cpuSlice',pluralName:'cpuSlices'});return{CpuSlice,};});'use strict';tr.exportTo('tr.model',function(){function TimeToObjectInstanceMap(createObjectInstanceFunction,parent,scopedId){this.createObjectInstanceFunction_=createObjectInstanceFunction;this.parent=parent;this.scopedId=scopedId;this.instances=[];}
TimeToObjectInstanceMap.prototype={idWasCreated(category,name,ts){if(this.instances.length===0){this.instances.push(this.createObjectInstanceFunction_(this.parent,this.scopedId,category,name,ts));this.instances[0].creationTsWasExplicit=true;return this.instances[0];}
let lastInstance=this.instances[this.instances.length-1];if(ts<lastInstance.deletionTs){throw new Error('Mutation of the TimeToObjectInstanceMap must be '+'done in ascending timestamp order.');}
lastInstance=this.createObjectInstanceFunction_(this.parent,this.scopedId,category,name,ts);lastInstance.creationTsWasExplicit=true;this.instances.push(lastInstance);return lastInstance;},addSnapshot(category,name,ts,args,opt_baseTypeName){if(this.instances.length===0){this.instances.push(this.createObjectInstanceFunction_(this.parent,this.scopedId,category,name,ts,opt_baseTypeName));}
const i=tr.b.findIndexInSortedIntervals(this.instances,function(inst){return inst.creationTs;},function(inst){return inst.deletionTs-inst.creationTs;},ts);let instance;if(i<0){instance=this.instances[0];if(ts>instance.deletionTs||instance.creationTsWasExplicit){throw new Error('At the provided timestamp, no instance was still alive');}
if(instance.snapshots.length!==0){throw new Error('Cannot shift creationTs forward, '+'snapshots have been added. First snap was at ts='+
instance.snapshots[0].ts+' and creationTs was '+
instance.creationTs);}
instance.creationTs=ts;}else if(i>=this.instances.length){instance=this.instances[this.instances.length-1];if(ts>=instance.deletionTs){instance=this.createObjectInstanceFunction_(this.parent,this.scopedId,category,name,ts,opt_baseTypeName);this.instances.push(instance);}else{let lastValidIndex;for(let i=this.instances.length-1;i>=0;i--){const tmp=this.instances[i];if(ts>=tmp.deletionTs)break;if(tmp.creationTsWasExplicit===false&&tmp.snapshots.length===0){lastValidIndex=i;}}
if(lastValidIndex===undefined){throw new Error('Cannot add snapshot. No instance was alive that was mutable.');}
instance=this.instances[lastValidIndex];instance.creationTs=ts;}}else{instance=this.instances[i];}
return instance.addSnapshot(ts,args,name,opt_baseTypeName);},get lastInstance(){if(this.instances.length===0)return undefined;return this.instances[this.instances.length-1];},idWasDeleted(category,name,ts){if(this.instances.length===0){this.instances.push(this.createObjectInstanceFunction_(this.parent,this.scopedId,category,name,ts));}
let lastInstance=this.instances[this.instances.length-1];if(ts<lastInstance.creationTs){throw new Error('Cannot delete an id before it was created');}
if(lastInstance.deletionTs===Number.MAX_VALUE){lastInstance.wasDeleted(ts);return lastInstance;}
if(ts<lastInstance.deletionTs){throw new Error('id was already deleted earlier.');}
lastInstance=this.createObjectInstanceFunction_(this.parent,this.scopedId,category,name,ts);this.instances.push(lastInstance);lastInstance.wasDeleted(ts);return lastInstance;},getInstanceAt(ts){const i=tr.b.findIndexInSortedIntervals(this.instances,function(inst){return inst.creationTs;},function(inst){return inst.deletionTs-inst.creationTs;},ts);if(i<0){if(this.instances[0].creationTsWasExplicit){return undefined;}
return this.instances[0];}else if(i>=this.instances.length){return undefined;}
return this.instances[i];}};return{TimeToObjectInstanceMap,};});'use strict';tr.exportTo('tr.model',function(){const ObjectInstance=tr.model.ObjectInstance;const ObjectSnapshot=tr.model.ObjectSnapshot;function ObjectCollection(parent){tr.model.EventContainer.call(this);this.parent=parent;this.instanceMapsByScopedId_={};this.instancesByTypeName_={};this.createObjectInstance_=this.createObjectInstance_.bind(this);}
ObjectCollection.prototype={__proto__:tr.model.EventContainer.prototype,*childEvents(){for(const instance of this.getAllObjectInstances()){yield instance;yield*instance.snapshots;}},createObjectInstance_(parent,scopedId,category,name,creationTs,opt_baseTypeName){const constructor=tr.model.ObjectInstance.subTypes.getConstructor(category,name);const instance=new constructor(parent,scopedId,category,name,creationTs,opt_baseTypeName);const typeName=instance.typeName;let instancesOfTypeName=this.instancesByTypeName_[typeName];if(!instancesOfTypeName){instancesOfTypeName=[];this.instancesByTypeName_[typeName]=instancesOfTypeName;}
instancesOfTypeName.push(instance);return instance;},getOrCreateInstanceMap_(scopedId){let dict;if(scopedId.scope in this.instanceMapsByScopedId_){dict=this.instanceMapsByScopedId_[scopedId.scope];}else{dict={};this.instanceMapsByScopedId_[scopedId.scope]=dict;}
let instanceMap=dict[scopedId.id];if(instanceMap)return instanceMap;instanceMap=new tr.model.TimeToObjectInstanceMap(this.createObjectInstance_,this.parent,scopedId);dict[scopedId.id]=instanceMap;return instanceMap;},idWasCreated(scopedId,category,name,ts){const instanceMap=this.getOrCreateInstanceMap_(scopedId);return instanceMap.idWasCreated(category,name,ts);},addSnapshot(scopedId,category,name,ts,args,opt_baseTypeName){const instanceMap=this.getOrCreateInstanceMap_(scopedId);const snapshot=instanceMap.addSnapshot(category,name,ts,args,opt_baseTypeName);if(snapshot.objectInstance.category!==category){const msg='Added snapshot name='+name+' with cat='+category+' impossible. It instance was created/snapshotted with cat='+
snapshot.objectInstance.category+' name='+
snapshot.objectInstance.name;throw new Error(msg);}
if(opt_baseTypeName&&snapshot.objectInstance.baseTypeName!==opt_baseTypeName){throw new Error('Could not add snapshot with baseTypeName='+
opt_baseTypeName+'. It '+'was previously created with name='+
snapshot.objectInstance.baseTypeName);}
if(snapshot.objectInstance.name!==name){throw new Error('Could not add snapshot with name='+name+'. It '+'was previously created with name='+
snapshot.objectInstance.name);}
return snapshot;},idWasDeleted(scopedId,category,name,ts){const instanceMap=this.getOrCreateInstanceMap_(scopedId);const deletedInstance=instanceMap.idWasDeleted(category,name,ts);if(!deletedInstance)return;if(deletedInstance.category!==category){const msg='Deleting object '+deletedInstance.name+' with a different category '+'than when it was created. It previous had cat='+
deletedInstance.category+' but the delete command '+'had cat='+category;throw new Error(msg);}
if(deletedInstance.baseTypeName!==name){throw new Error('Deletion requested for name='+
name+' could not proceed: '+'An existing object with baseTypeName='+
deletedInstance.baseTypeName+' existed.');}},autoDeleteObjects(maxTimestamp){for(const imapById of Object.values(this.instanceMapsByScopedId_)){for(const i2imap of Object.values(imapById)){const lastInstance=i2imap.lastInstance;if(lastInstance.deletionTs!==Number.MAX_VALUE)continue;i2imap.idWasDeleted(lastInstance.category,lastInstance.name,maxTimestamp);lastInstance.deletionTsWasExplicit=false;}}},getObjectInstanceAt(scopedId,ts){let instanceMap;if(scopedId.scope in this.instanceMapsByScopedId_){instanceMap=this.instanceMapsByScopedId_[scopedId.scope][scopedId.id];}
if(!instanceMap)return undefined;return instanceMap.getInstanceAt(ts);},getSnapshotAt(scopedId,ts){const instance=this.getObjectInstanceAt(scopedId,ts);if(!instance)return undefined;return instance.getSnapshotAt(ts);},iterObjectInstances(iter,opt_this){opt_this=opt_this||this;for(const imapById of Object.values(this.instanceMapsByScopedId_)){for(const i2imap of Object.values(imapById)){i2imap.instances.forEach(iter,opt_this);}}},getAllObjectInstances(){const instances=[];this.iterObjectInstances(function(i){instances.push(i);});return instances;},getAllInstancesNamed(name){return this.instancesByTypeName_[name];},getAllInstancesByTypeName(){return this.instancesByTypeName_;},preInitializeAllObjects(){this.iterObjectInstances(function(instance){instance.preInitialize();});},initializeAllObjects(){this.iterObjectInstances(function(instance){instance.initialize();});},initializeInstances(){this.iterObjectInstances(function(instance){instance.initialize();});},updateBounds(){this.bounds.reset();this.iterObjectInstances(function(instance){instance.updateBounds();this.bounds.addRange(instance.bounds);},this);},shiftTimestampsForward(amount){this.iterObjectInstances(function(instance){instance.shiftTimestampsForward(amount);});},addCategoriesToDict(categoriesDict){this.iterObjectInstances(function(instance){categoriesDict[instance.category]=true;});}};return{ObjectCollection,};});'use strict';tr.exportTo('tr.model',function(){class AsyncSliceGroup extends tr.model.EventContainer{constructor(parentContainer,opt_name){super();this.parentContainer_=parentContainer;this.name_=opt_name;this.slices=[];this.viewSubGroups_=undefined;this.nestedLevel_=0;this.hasNestedSubGroups_=true;this.title_=undefined;}
get parentContainer(){return this.parentContainer_;}
get model(){return this.parentContainer_.parent.model;}
get stableId(){return this.parentContainer_.stableId+'.AsyncSliceGroup';}
get title(){if(this.nested_level_===0){return'<root>';}
return this.title_;}
getSettingsKey(){if(this.name_===undefined){return undefined;}
const parentKey=this.parentContainer_.getSettingsKey();if(parentKey===undefined){return undefined;}
return parentKey+'.'+this.name_;}
push(slice){if(this.viewSubGroups_!==undefined){throw new Error('No new slices are allowed when view sub-groups already formed.');}
slice.parentContainer=this.parentContainer;this.slices.push(slice);return slice;}
get length(){return this.slices.length;}
shiftTimestampsForward(amount){for(const slice of this.childEvents()){slice.start+=amount;}}
updateBounds(){this.bounds.reset();for(let i=0;i<this.slices.length;i++){this.bounds.addValue(this.slices[i].start);this.bounds.addValue(this.slices[i].end);}}
autoCloseOpenSlices(){const maxTimestamp=this.parentContainer_.parent.model.bounds.max;for(const slice of this.childEvents()){if(slice.didNotFinish){slice.duration=maxTimestamp-slice.start;}}}
get viewSubGroups(){if(!this.hasNestedSubGroups_||this.nestedLevel_===2){return[];}
if(this.viewSubGroups_!==undefined){return this.viewSubGroups_;}
const subGroupsByTitle=new Map();for(const slice of this.slices){let subGroupTitle=slice.viewSubGroupTitle;let hasNestedSubGroups=false;if(this.nestedLevel_===0&&slice.viewSubGroupGroupingKey!==undefined){subGroupTitle=slice.viewSubGroupGroupingKey;hasNestedSubGroups=true;}
let subGroup=subGroupsByTitle.get(subGroupTitle);if(subGroup===undefined){let name;if(this.name_!==undefined){name=this.name_+'.'+subGroupTitle;}else{name=subGroupTitle;}
subGroup=new AsyncSliceGroup(this.parentContainer_,name);subGroup.title_=subGroupTitle;subGroup.hasNestedSubGroups_=hasNestedSubGroups;subGroup.nestedLevel_=this.nestedLevel_+1;subGroupsByTitle.set(subGroupTitle,subGroup);}
subGroup.push(slice);}
this.viewSubGroups_=Array.from(subGroupsByTitle.values());this.viewSubGroups_.sort((a,b)=>a.title.localeCompare(b.title));return this.viewSubGroups_;}*findTopmostSlicesInThisContainer(eventPredicate,opt_this){for(const slice of this.slices){if(slice.isTopLevel){yield*slice.findTopmostSlicesRelativeToThisSlice(eventPredicate,opt_this);}}}*childEvents(){for(const slice of this.slices){yield slice;yield*slice.enumerateAllDescendents();}}*childEventContainers(){}}
return{AsyncSliceGroup,};});'use strict';tr.exportTo('tr.model',function(){const Slice=tr.model.Slice;function ThreadSlice(cat,title,colorId,start,args,opt_duration,opt_cpuStart,opt_cpuDuration,opt_argsStripped,opt_bindId){Slice.call(this,cat,title,colorId,start,args,opt_duration,opt_cpuStart,opt_cpuDuration,opt_argsStripped,opt_bindId);this.subSlices=[];}
ThreadSlice.prototype={__proto__:Slice.prototype,get overlappingSamples(){const samples=new tr.model.EventSet();if(!this.parentContainer||!this.parentContainer.samples){return samples;}
this.parentContainer.samples.forEach(function(sample){if(this.start<=sample.start&&sample.start<=this.end){samples.push(sample);}},this);return samples;}};tr.model.EventRegistry.register(ThreadSlice,{name:'slice',pluralName:'slices'});return{ThreadSlice,};});'use strict';tr.exportTo('tr.model',function(){const ColorScheme=tr.b.ColorScheme;const ThreadSlice=tr.model.ThreadSlice;function getSliceLo(s){return s.start;}
function getSliceHi(s){return s.end;}
function SliceGroup(parentContainer,opt_sliceConstructor,opt_name){tr.model.EventContainer.call(this);this.parentContainer_=parentContainer;const sliceConstructor=opt_sliceConstructor||ThreadSlice;this.sliceConstructor=sliceConstructor;this.sliceConstructorSubTypes=this.sliceConstructor.subTypes;if(!this.sliceConstructorSubTypes){throw new Error('opt_sliceConstructor must have a subtype registry.');}
this.openPartialSlices_=[];this.slices=[];this.topLevelSlices=[];this.haveTopLevelSlicesBeenBuilt=false;this.name_=opt_name;if(this.model===undefined){throw new Error('SliceGroup must have model defined.');}}
SliceGroup.prototype={__proto__:tr.model.EventContainer.prototype,get parentContainer(){return this.parentContainer_;},get model(){return this.parentContainer_.model;},get stableId(){return this.parentContainer_.stableId+'.SliceGroup';},getSettingsKey(){if(!this.name_)return undefined;const parentKey=this.parentContainer_.getSettingsKey();if(!parentKey)return undefined;return parentKey+'.'+this.name;},get length(){return this.slices.length;},pushSlice(slice){this.haveTopLevelSlicesBeenBuilt=false;slice.parentContainer=this.parentContainer_;this.slices.push(slice);return slice;},pushSlices(slices){this.haveTopLevelSlicesBeenBuilt=false;slices.forEach(function(slice){slice.parentContainer=this.parentContainer_;this.slices.push(slice);},this);},beginSlice(category,title,ts,opt_args,opt_tts,opt_argsStripped,opt_colorId){if(this.openPartialSlices_.length){const prevSlice=this.openPartialSlices_[this.openPartialSlices_.length-1];if(ts<prevSlice.start){throw new Error('Slices must be added in increasing timestamp order');}}
const colorId=opt_colorId||ColorScheme.getColorIdForGeneralPurposeString(title);const sliceConstructorSubTypes=this.sliceConstructorSubTypes;const sliceType=sliceConstructorSubTypes.getConstructor(category,title);const slice=new sliceType(category,title,colorId,ts,opt_args?opt_args:{},null,opt_tts,undefined,opt_argsStripped);this.openPartialSlices_.push(slice);slice.didNotFinish=true;this.pushSlice(slice);return slice;},isTimestampValidForBeginOrEnd(ts){if(!this.openPartialSlices_.length)return true;const top=this.openPartialSlices_[this.openPartialSlices_.length-1];return ts>=top.start;},get openSliceCount(){return this.openPartialSlices_.length;},get mostRecentlyOpenedPartialSlice(){if(!this.openPartialSlices_.length)return undefined;return this.openPartialSlices_[this.openPartialSlices_.length-1];},endSlice(ts,opt_tts,opt_colorId){if(!this.openSliceCount){throw new Error('endSlice called without an open slice');}
const slice=this.openPartialSlices_[this.openSliceCount-1];this.openPartialSlices_.splice(this.openSliceCount-1,1);if(ts<slice.start){throw new Error('Slice '+slice.title+' end time is before its start.');}
slice.duration=ts-slice.start;slice.didNotFinish=false;slice.colorId=opt_colorId||slice.colorId;if(opt_tts&&slice.cpuStart!==undefined){slice.cpuDuration=opt_tts-slice.cpuStart;}
return slice;},pushCompleteSlice(category,title,ts,duration,tts,cpuDuration,opt_args,opt_argsStripped,opt_colorId,opt_bindId){const colorId=opt_colorId||ColorScheme.getColorIdForGeneralPurposeString(title);const sliceConstructorSubTypes=this.sliceConstructorSubTypes;const sliceType=sliceConstructorSubTypes.getConstructor(category,title);const slice=new sliceType(category,title,colorId,ts,opt_args?opt_args:{},duration,tts,cpuDuration,opt_argsStripped,opt_bindId);if(duration===undefined){slice.didNotFinish=true;}
this.pushSlice(slice);return slice;},autoCloseOpenSlices(){this.updateBounds();const maxTimestamp=this.bounds.max;for(let sI=0;sI<this.slices.length;sI++){const slice=this.slices[sI];if(slice.didNotFinish){slice.duration=maxTimestamp-slice.start;}}
this.openPartialSlices_=[];},shiftTimestampsForward(amount){for(let sI=0;sI<this.slices.length;sI++){const slice=this.slices[sI];slice.start=(slice.start+amount);}},updateBounds(){this.bounds.reset();for(let i=0;i<this.slices.length;i++){this.bounds.addValue(this.slices[i].start);this.bounds.addValue(this.slices[i].end);}},copySlice(slice){const sliceConstructorSubTypes=this.sliceConstructorSubTypes;const sliceType=sliceConstructorSubTypes.getConstructor(slice.category,slice.title);const newSlice=new sliceType(slice.category,slice.title,slice.colorId,slice.start,slice.args,slice.duration,slice.cpuStart,slice.cpuDuration);newSlice.didNotFinish=slice.didNotFinish;return newSlice;},*findTopmostSlicesInThisContainer(eventPredicate,opt_this){if(!this.haveTopLevelSlicesBeenBuilt){throw new Error('Nope');}
for(const s of this.topLevelSlices){yield*s.findTopmostSlicesRelativeToThisSlice(eventPredicate);}},*childEvents(){yield*this.slices;},*childEventContainers(){},getSlicesOfName(title){const slices=[];for(let i=0;i<this.slices.length;i++){if(this.slices[i].title===title){slices.push(this.slices[i]);}}
return slices;},iterSlicesInTimeRange(callback,start,end){const ret=[];tr.b.iterateOverIntersectingIntervals(this.topLevelSlices,function(s){return s.start;},function(s){return s.duration;},start,end,function(topLevelSlice){callback(topLevelSlice);for(const slice of topLevelSlice.enumerateAllDescendents()){callback(slice);}});return ret;},findFirstSlice(){if(!this.haveTopLevelSlicesBeenBuilt){throw new Error('Nope');}
if(0===this.slices.length)return undefined;return this.slices[0];},findSliceAtTs(ts){if(!this.haveTopLevelSlicesBeenBuilt)throw new Error('Nope');let i=tr.b.findIndexInSortedClosedIntervals(this.topLevelSlices,getSliceLo,getSliceHi,ts);if(i===-1||i===this.topLevelSlices.length){return undefined;}
let curSlice=this.topLevelSlices[i];while(true){i=tr.b.findIndexInSortedClosedIntervals(curSlice.subSlices,getSliceLo,getSliceHi,ts);if(i===-1||i===curSlice.subSlices.length){return curSlice;}
curSlice=curSlice.subSlices[i];}},findNextSliceAfter(ts,refGuid){let i=tr.b.findLowIndexInSortedArray(this.slices,getSliceLo,ts);if(i===this.slices.length){return undefined;}
for(;i<this.slices.length;i++){const slice=this.slices[i];if(slice.start>ts)return slice;if(slice.guid<=refGuid)continue;return slice;}
return undefined;},hasCpuDuration_(){if(this.slices.some(function(slice){return slice.cpuDuration!==undefined;}))return true;return false;},createSubSlices(){this.haveTopLevelSlicesBeenBuilt=true;this.createSubSlicesImpl_();if(!this.hasCpuDuration_()&&this.parentContainer.timeSlices){this.addCpuTimeToSubslices_(this.parentContainer.timeSlices);}
this.slices.forEach(function(slice){let selfTime=slice.duration;for(let i=0;i<slice.subSlices.length;i++){selfTime-=slice.subSlices[i].duration;}
slice.selfTime=selfTime;if(slice.cpuDuration===undefined)return;let cpuSelfTime=slice.cpuDuration;for(let i=0;i<slice.subSlices.length;i++){if(slice.subSlices[i].cpuDuration!==undefined){cpuSelfTime-=slice.subSlices[i].cpuDuration;}}
slice.cpuSelfTime=cpuSelfTime;});},createSubSlicesImpl_(){const precisionUnit=this.model.intrinsicTimeUnit;function addSliceIfBounds(parent,child){if(parent.bounds(child,precisionUnit)){child.parentSlice=parent;if(parent.subSlices===undefined){parent.subSlices=[];}
parent.subSlices.push(child);return true;}
return false;}
if(!this.slices.length)return;const ops=[];for(let i=0;i<this.slices.length;i++){if(this.slices[i].subSlices){this.slices[i].subSlices.splice(0,this.slices[i].subSlices.length);}
ops.push(i);}
const originalSlices=this.slices;ops.sort(function(ix,iy){const x=originalSlices[ix];const y=originalSlices[iy];if(x.start!==y.start){return x.start-y.start;}
return ix-iy;});const slices=new Array(this.slices.length);for(let i=0;i<ops.length;i++){slices[i]=originalSlices[ops[i]];}
let rootSlice=slices[0];this.topLevelSlices=[];this.topLevelSlices.push(rootSlice);rootSlice.isTopLevel=true;for(let i=1;i<slices.length;i++){const slice=slices[i];while(rootSlice!==undefined&&(!addSliceIfBounds(rootSlice,slice))){rootSlice=rootSlice.parentSlice;}
if(rootSlice===undefined){this.topLevelSlices.push(slice);slice.isTopLevel=true;}
rootSlice=slice;}
this.slices=slices;},addCpuTimeToSubslices_(timeSlices){const SCHEDULING_STATE=tr.model.SCHEDULING_STATE;let sliceIdx=0;timeSlices.forEach(function(timeSlice){if(timeSlice.schedulingState===SCHEDULING_STATE.RUNNING){while(sliceIdx<this.topLevelSlices.length){if(this.addCpuTimeToSubslice_(this.topLevelSlices[sliceIdx],timeSlice)){sliceIdx++;}else{break;}}}},this);},addCpuTimeToSubslice_(slice,timeSlice){if(slice.start>timeSlice.end||slice.end<timeSlice.start){return slice.end<=timeSlice.end;}
let duration=timeSlice.duration;if(slice.start>timeSlice.start){duration-=slice.start-timeSlice.start;}
if(timeSlice.end>slice.end){duration-=timeSlice.end-slice.end;}
if(slice.cpuDuration){slice.cpuDuration+=duration;}else{slice.cpuDuration=duration;}
for(let i=0;i<slice.subSlices.length;i++){this.addCpuTimeToSubslice_(slice.subSlices[i],timeSlice);}
return slice.end<=timeSlice.end;}};SliceGroup.merge=function(groupA,groupB){if(groupA.openPartialSlices_.length>0){throw new Error('groupA has open partial slices');}
if(groupB.openPartialSlices_.length>0){throw new Error('groupB has open partial slices');}
if(groupA.parentContainer!==groupB.parentContainer){throw new Error('Different parent threads. Cannot merge');}
if(groupA.sliceConstructor!==groupB.sliceConstructor){throw new Error('Different slice constructors. Cannot merge');}
const result=new SliceGroup(groupA.parentContainer,groupA.sliceConstructor,groupA.name_);const slicesA=groupA.slices;const slicesB=groupB.slices;let idxA=0;let idxB=0;const openA=[];const openB=[];const splitOpenSlices=function(when){for(let i=0;i<openB.length;i++){const oldSlice=openB[i];const oldEnd=oldSlice.end;if(when<oldSlice.start||oldEnd<when){throw new Error('slice should not be split');}
const newSlice=result.copySlice(oldSlice);newSlice.start=when;newSlice.duration=oldEnd-when;if(newSlice.title.indexOf(' (cont.)')===-1){newSlice.title+=' (cont.)';}
oldSlice.duration=when-oldSlice.start;openB[i]=newSlice;result.pushSlice(newSlice);}};const closeOpenSlices=function(upTo){while(openA.length>0||openB.length>0){const nextA=openA[openA.length-1];const nextB=openB[openB.length-1];const endA=nextA&&nextA.end;const endB=nextB&&nextB.end;if((endA===undefined||endA>upTo)&&(endB===undefined||endB>upTo)){return;}
if(endB===undefined||endA<endB){splitOpenSlices(endA);openA.pop();}else{openB.pop();}}};while(idxA<slicesA.length||idxB<slicesB.length){const sA=slicesA[idxA];const sB=slicesB[idxB];let nextSlice;let isFromB;if(sA===undefined||(sB!==undefined&&sA.start>sB.start)){nextSlice=result.copySlice(sB);isFromB=true;idxB++;}else{nextSlice=result.copySlice(sA);isFromB=false;idxA++;}
closeOpenSlices(nextSlice.start);result.pushSlice(nextSlice);if(isFromB){openB.push(nextSlice);}else{splitOpenSlices(nextSlice.start);openA.push(nextSlice);}}
closeOpenSlices();return result;};return{SliceGroup,};});'use strict';tr.exportTo('tr.model',function(){const AsyncSlice=tr.model.AsyncSlice;const AsyncSliceGroup=tr.model.AsyncSliceGroup;const SliceGroup=tr.model.SliceGroup;const ThreadSlice=tr.model.ThreadSlice;const ThreadTimeSlice=tr.model.ThreadTimeSlice;function Thread(parent,tid){if(!parent){throw new Error('Parent must be provided.');}
tr.model.EventContainer.call(this);this.parent=parent;this.sortIndex=0;this.tid=tid;this.name=undefined;this.samples_=undefined;this.sliceGroup=new SliceGroup(this,ThreadSlice,'slices');this.timeSlices=undefined;this.kernelSliceGroup=new SliceGroup(this,ThreadSlice,'kernel-slices');this.asyncSliceGroup=new AsyncSliceGroup(this,'async-slices');}
Thread.prototype={__proto__:tr.model.EventContainer.prototype,get model(){return this.parent.model;},get stableId(){return this.parent.stableId+'.'+this.tid;},compareTo(that){return Thread.compare(this,that);},*childEventContainers(){if(this.sliceGroup.length){yield this.sliceGroup;}
if(this.kernelSliceGroup.length){yield this.kernelSliceGroup;}
if(this.asyncSliceGroup.length){yield this.asyncSliceGroup;}},*childEvents(){if(this.timeSlices){yield*this.timeSlices;}},iterateAllPersistableObjects(cb){cb(this);if(this.sliceGroup.length){cb(this.sliceGroup);}
this.asyncSliceGroup.viewSubGroups.forEach(cb);},shiftTimestampsForward(amount){this.sliceGroup.shiftTimestampsForward(amount);if(this.timeSlices){for(let i=0;i<this.timeSlices.length;i++){const slice=this.timeSlices[i];slice.start+=amount;}}
this.kernelSliceGroup.shiftTimestampsForward(amount);this.asyncSliceGroup.shiftTimestampsForward(amount);},get isEmpty(){if(this.sliceGroup.length)return false;if(this.sliceGroup.openSliceCount)return false;if(this.timeSlices&&this.timeSlices.length)return false;if(this.kernelSliceGroup.length)return false;if(this.asyncSliceGroup.length)return false;if(this.samples_.length)return false;return true;},updateBounds(){this.bounds.reset();this.sliceGroup.updateBounds();this.bounds.addRange(this.sliceGroup.bounds);this.kernelSliceGroup.updateBounds();this.bounds.addRange(this.kernelSliceGroup.bounds);this.asyncSliceGroup.updateBounds();this.bounds.addRange(this.asyncSliceGroup.bounds);if(this.timeSlices&&this.timeSlices.length){this.bounds.addValue(this.timeSlices[0].start);this.bounds.addValue(this.timeSlices[this.timeSlices.length-1].end);}
if(this.samples_&&this.samples_.length){this.bounds.addValue(this.samples_[0].start);this.bounds.addValue(this.samples_[this.samples_.length-1].end);}},addCategoriesToDict(categoriesDict){for(let i=0;i<this.sliceGroup.length;i++){categoriesDict[this.sliceGroup.slices[i].category]=true;}
for(let i=0;i<this.kernelSliceGroup.length;i++){categoriesDict[this.kernelSliceGroup.slices[i].category]=true;}
for(let i=0;i<this.asyncSliceGroup.length;i++){categoriesDict[this.asyncSliceGroup.slices[i].category]=true;}
if(this.samples_){for(let i=0;i<this.samples_.length;i++){categoriesDict[this.samples_[i].category]=true;}}},autoCloseOpenSlices(){this.sliceGroup.autoCloseOpenSlices();this.asyncSliceGroup.autoCloseOpenSlices();this.kernelSliceGroup.autoCloseOpenSlices();},mergeKernelWithUserland(){if(this.kernelSliceGroup.length>0){const newSlices=SliceGroup.merge(this.sliceGroup,this.kernelSliceGroup);this.sliceGroup.slices=newSlices.slices;this.kernelSliceGroup=new SliceGroup(this);this.updateBounds();}},createSubSlices(){this.sliceGroup.createSubSlices();this.samples_=this.parent.model.samples.filter(sample=>sample.thread===this);},get userFriendlyName(){return this.name||this.tid;},get userFriendlyDetails(){return'tid: '+this.tid+
(this.name?', name: '+this.name:'');},getSettingsKey(){if(!this.name)return undefined;const parentKey=this.parent.getSettingsKey();if(!parentKey)return undefined;return parentKey+'.'+this.name;},getProcess(){return this.parent;},indexOfTimeSlice(timeSlice){const i=tr.b.findLowIndexInSortedArray(this.timeSlices,function(slice){return slice.start;},timeSlice.start);if(this.timeSlices[i]!==timeSlice)return undefined;return i;},getCpuTimeForRange(range){let totalCpuTime=0;tr.b.iterateOverIntersectingIntervals(this.sliceGroup.topLevelSlices,slice=>slice.start,slice=>slice.end,range.min,range.max,slice=>{if(slice.duration===0)return;if(!slice.cpuDuration)return;const intersection=range.findIntersection(slice.range);const fractionOfSliceInsideRangeOfInterest=intersection.duration/slice.duration;totalCpuTime+=slice.cpuDuration*fractionOfSliceInsideRangeOfInterest;});return totalCpuTime;},getSchedulingStatsForRange(start,end){const stats={};if(!this.timeSlices)return stats;function addStatsForSlice(threadTimeSlice){const overlapStart=Math.max(threadTimeSlice.start,start);const overlapEnd=Math.min(threadTimeSlice.end,end);const schedulingState=threadTimeSlice.schedulingState;if(!(schedulingState in stats))stats[schedulingState]=0;stats[schedulingState]+=overlapEnd-overlapStart;}
tr.b.iterateOverIntersectingIntervals(this.timeSlices,function(x){return x.start;},function(x){return x.end;},start,end,addStatsForSlice);return stats;},get samples(){return this.samples_;},get type(){const re=/^[^0-9|\/]+/;const matches=re.exec(this.name);if(matches&&matches[0])return matches[0];throw new Error('Could not determine thread type for thread name '+
this.name);}};Thread.compare=function(x,y){let tmp=x.parent.compareTo(y.parent);if(tmp)return tmp;tmp=x.sortIndex-y.sortIndex;if(tmp)return tmp;if(x.name!==undefined){if(y.name!==undefined){tmp=x.name.localeCompare(y.name);}else{tmp=-1;}}else if(y.name!==undefined){tmp=1;}
if(tmp)return tmp;return x.tid-y.tid;};return{Thread,};});'use strict';tr.exportTo('tr.model',function(){const Thread=tr.model.Thread;const Counter=tr.model.Counter;function ProcessBase(model){if(!model){throw new Error('Must provide a model');}
tr.model.EventContainer.call(this);this.model=model;this.threads={};this.counters={};this.objects=new tr.model.ObjectCollection(this);this.sortIndex=0;}
ProcessBase.compare=function(x,y){return x.sortIndex-y.sortIndex;};ProcessBase.prototype={__proto__:tr.model.EventContainer.prototype,get stableId(){throw new Error('Not implemented');},*childEventContainers(){yield*Object.values(this.threads);yield*Object.values(this.counters);yield this.objects;},iterateAllPersistableObjects(cb){cb(this);for(const tid in this.threads){this.threads[tid].iterateAllPersistableObjects(cb);}},get numThreads(){let n=0;for(const p in this.threads){n++;}
return n;},shiftTimestampsForward(amount){for(const child of this.childEventContainers()){child.shiftTimestampsForward(amount);}},autoCloseOpenSlices(){for(const tid in this.threads){const thread=this.threads[tid];thread.autoCloseOpenSlices();}},autoDeleteObjects(maxTimestamp){this.objects.autoDeleteObjects(maxTimestamp);},preInitializeObjects(){this.objects.preInitializeAllObjects();},initializeObjects(){this.objects.initializeAllObjects();},mergeKernelWithUserland(){for(const tid in this.threads){const thread=this.threads[tid];thread.mergeKernelWithUserland();}},updateBounds(){this.bounds.reset();for(const tid in this.threads){this.threads[tid].updateBounds();this.bounds.addRange(this.threads[tid].bounds);}
for(const id in this.counters){this.counters[id].updateBounds();this.bounds.addRange(this.counters[id].bounds);}
this.objects.updateBounds();this.bounds.addRange(this.objects.bounds);},addCategoriesToDict(categoriesDict){for(const tid in this.threads){this.threads[tid].addCategoriesToDict(categoriesDict);}
for(const id in this.counters){categoriesDict[this.counters[id].category]=true;}
this.objects.addCategoriesToDict(categoriesDict);},findAllThreadsMatching(predicate,opt_this){const threads=[];for(const tid in this.threads){const thread=this.threads[tid];if(predicate.call(opt_this,thread)){threads.push(thread);}}
return threads;},findAllThreadsNamed(name){const threads=this.findAllThreadsMatching(function(thread){if(!thread.name)return false;return thread.name===name;});return threads;},findAtMostOneThreadNamed(name){const threads=this.findAllThreadsNamed(name);if(threads.length===0)return undefined;if(threads.length>1){throw new Error('Expected no more than one '+name);}
return threads[0];},pruneEmptyContainers(){const threadsToKeep={};for(const tid in this.threads){const thread=this.threads[tid];if(!thread.isEmpty){threadsToKeep[tid]=thread;}}
this.threads=threadsToKeep;},getThread(tid){return this.threads[tid];},getOrCreateThread(tid){if(!this.threads[tid]){this.threads[tid]=new Thread(this,tid);}
return this.threads[tid];},getOrCreateCounter(cat,name){const id=cat+'.'+name;if(!this.counters[id]){this.counters[id]=new Counter(this,id,cat,name);}
return this.counters[id];},getSettingsKey(){throw new Error('Not implemented');},createSubSlices(){for(const tid in this.threads){this.threads[tid].createSubSlices();}}};return{ProcessBase,};});'use strict';tr.exportTo('tr.model',function(){const ColorScheme=tr.b.ColorScheme;const Counter=tr.model.Counter;const CpuSlice=tr.model.CpuSlice;function Cpu(kernel,number){if(kernel===undefined||number===undefined){throw new Error('Missing arguments');}
this.kernel=kernel;this.cpuNumber=number;this.slices=[];this.counters={};this.bounds_=new tr.b.math.Range();this.samples_=undefined;this.lastActiveTimestamp_=undefined;this.lastActiveThread_=undefined;this.lastActiveName_=undefined;this.lastActiveArgs_=undefined;}
Cpu.prototype={__proto__:tr.model.EventContainer.prototype,get samples(){return this.samples_;},get userFriendlyName(){return'CPU '+this.cpuNumber;},*findTopmostSlicesInThisContainer(eventPredicate,opt_this){for(const s of this.slices){yield*s.findTopmostSlicesRelativeToThisSlice(eventPredicate,opt_this);}},*childEvents(){yield*this.slices;if(this.samples_){yield*this.samples_;}},*childEventContainers(){yield*Object.values(this.counters);},getOrCreateCounter(cat,name){const id=cat+'.'+name;if(!this.counters[id]){this.counters[id]=new Counter(this,id,cat,name);}
return this.counters[id];},getCounter(cat,name){const id=cat+'.'+name;if(!this.counters[id]){return undefined;}
return this.counters[id];},shiftTimestampsForward(amount){for(let sI=0;sI<this.slices.length;sI++){this.slices[sI].start=(this.slices[sI].start+amount);}
for(const id in this.counters){this.counters[id].shiftTimestampsForward(amount);}},updateBounds(){this.bounds_.reset();if(this.slices.length){this.bounds_.addValue(this.slices[0].start);this.bounds_.addValue(this.slices[this.slices.length-1].end);}
for(const id in this.counters){this.counters[id].updateBounds();this.bounds_.addRange(this.counters[id].bounds);}
if(this.samples_&&this.samples_.length){this.bounds_.addValue(this.samples_[0].start);this.bounds_.addValue(this.samples_[this.samples_.length-1].end);}},createSubSlices(){this.samples_=this.kernel.model.samples.filter(function(sample){return sample.cpu===this;},this);},addCategoriesToDict(categoriesDict){for(let i=0;i<this.slices.length;i++){categoriesDict[this.slices[i].category]=true;}
for(const id in this.counters){categoriesDict[this.counters[id].category]=true;}
for(let i=0;i<this.samples_.length;i++){categoriesDict[this.samples_[i].category]=true;}},indexOf(cpuSlice){const i=tr.b.findLowIndexInSortedArray(this.slices,function(slice){return slice.start;},cpuSlice.start);if(this.slices[i]!==cpuSlice)return undefined;return i;},closeActiveThread(endTimestamp,args){if(this.lastActiveThread_===undefined||this.lastActiveThread_===0){return;}
if(endTimestamp<this.lastActiveTimestamp_){throw new Error('The end timestamp of a thread running on CPU '+
this.cpuNumber+' is before its start timestamp.');}
for(const key in args){this.lastActiveArgs_[key]=args[key];}
const duration=endTimestamp-this.lastActiveTimestamp_;const slice=new tr.model.CpuSlice('',this.lastActiveName_,ColorScheme.getColorIdForGeneralPurposeString(this.lastActiveName_),this.lastActiveTimestamp_,this.lastActiveArgs_,duration);slice.cpu=this;this.slices.push(slice);this.lastActiveTimestamp_=undefined;this.lastActiveThread_=undefined;this.lastActiveName_=undefined;this.lastActiveArgs_=undefined;},switchActiveThread(timestamp,oldThreadArgs,newThreadId,newThreadName,newThreadArgs){this.closeActiveThread(timestamp,oldThreadArgs);this.lastActiveTimestamp_=timestamp;this.lastActiveThread_=newThreadId;this.lastActiveName_=newThreadName;this.lastActiveArgs_=newThreadArgs;},getFreqStatsForRange(range){const stats={};function addStatsForFreq(freqSample,index){const freqEnd=(index<freqSample.series_.length-1)?freqSample.series_.samples_[index+1].timestamp:range.max;const freqRange=tr.b.math.Range.fromExplicitRange(freqSample.timestamp,freqEnd);const intersection=freqRange.findIntersection(range);if(!(freqSample.value in stats)){stats[freqSample.value]=0;}
stats[freqSample.value]+=intersection.duration;}
const freqCounter=this.getCounter('','Clock Frequency');if(freqCounter!==undefined){const freqSeries=freqCounter.getSeries(0);if(!freqSeries)return;tr.b.iterateOverIntersectingIntervals(freqSeries.samples_,function(x){return x.timestamp;},function(x,index){if(index<freqSeries.length-1){return freqSeries.samples_[index+1].timestamp;}
return range.max;},range.min,range.max,addStatsForFreq);}
return stats;}};Cpu.compare=function(x,y){return x.cpuNumber-y.cpuNumber;};return{Cpu,};});'use strict';tr.exportTo('tr.model',function(){const Event=tr.model.Event;const EventRegistry=tr.model.EventRegistry;function PowerSample(series,start,powerInW){Event.call(this);this.series_=series;this.start_=parseFloat(start);this.powerInW_=parseFloat(powerInW);}
PowerSample.prototype={__proto__:Event.prototype,get series(){return this.series_;},get start(){return this.start_;},set start(value){this.start_=value;},get powerInW(){return this.powerInW_;},set powerInW(value){this.powerInW_=value;},addBoundsToRange(range){range.addValue(this.start);}};EventRegistry.register(PowerSample,{name:'powerSample',pluralName:'powerSamples'});return{PowerSample,};});'use strict';tr.exportTo('tr.model',function(){const PowerSample=tr.model.PowerSample;function PowerSeries(device){tr.model.EventContainer.call(this);this.device_=device;this.samples_=[];}
PowerSeries.prototype={__proto__:tr.model.EventContainer.prototype,get device(){return this.device_;},get samples(){return this.samples_;},get stableId(){return this.device_.stableId+'.PowerSeries';},addPowerSample(ts,val){const sample=new PowerSample(this,ts,val);this.samples_.push(sample);return sample;},getEnergyConsumedInJ(start,end){const measurementRange=tr.b.math.Range.fromExplicitRange(start,end);let energyConsumedInJ=0;let startIndex=tr.b.findLowIndexInSortedArray(this.samples,x=>x.start,start)-1;const endIndex=tr.b.findLowIndexInSortedArray(this.samples,x=>x.start,end);if(startIndex<0){startIndex=0;}
for(let i=startIndex;i<endIndex;i++){const sample=this.samples[i];const nextSample=this.samples[i+1];const sampleRange=new tr.b.math.Range();sampleRange.addValue(sample.start);sampleRange.addValue(nextSample?nextSample.start:sample.start);const intersectionRangeInMs=measurementRange.findIntersection(sampleRange);const durationInS=tr.b.convertUnit(intersectionRangeInMs.duration,tr.b.UnitPrefixScale.METRIC.MILLI,tr.b.UnitPrefixScale.METRIC.NONE);energyConsumedInJ+=durationInS*sample.powerInW;}
return energyConsumedInJ;},getSamplesWithinRange(start,end){const startIndex=tr.b.findLowIndexInSortedArray(this.samples,x=>x.start,start);const endIndex=tr.b.findLowIndexInSortedArray(this.samples,x=>x.start,end);return this.samples.slice(startIndex,endIndex);},shiftTimestampsForward(amount){for(let i=0;i<this.samples_.length;++i){this.samples_[i].start+=amount;}},updateBounds(){this.bounds.reset();if(this.samples_.length===0)return;this.bounds.addValue(this.samples_[0].start);this.bounds.addValue(this.samples_[this.samples_.length-1].start);},*childEvents(){yield*this.samples_;},};return{PowerSeries,};});'use strict';tr.exportTo('tr.model',function(){function Device(model){if(!model){throw new Error('Must provide a model.');}
tr.model.EventContainer.call(this);this.powerSeries_=undefined;this.cpuUsageSeries_=undefined;this.vSyncTimestamps_=[];}
Device.compare=function(x,y){return x.guid-y.guid;};Device.prototype={__proto__:tr.model.EventContainer.prototype,compareTo(that){return Device.compare(this,that);},get userFriendlyName(){return'Device';},get userFriendlyDetails(){return'Device';},get stableId(){return'Device';},getSettingsKey(){return'device';},get powerSeries(){return this.powerSeries_;},set powerSeries(powerSeries){this.powerSeries_=powerSeries;},get cpuUsageSeries(){return this.cpuUsageSeries_;},set cpuUsageSeries(cpuUsageSeries){this.cpuUsageSeries_=cpuUsageSeries;},get vSyncTimestamps(){return this.vSyncTimestamps_;},set vSyncTimestamps(value){this.vSyncTimestamps_=value;},updateBounds(){this.bounds.reset();for(const child of this.childEventContainers()){child.updateBounds();this.bounds.addRange(child.bounds);}},shiftTimestampsForward(amount){for(const child of this.childEventContainers()){child.shiftTimestampsForward(amount);}
for(let i=0;i<this.vSyncTimestamps_.length;i++){this.vSyncTimestamps_[i]+=amount;}},addCategoriesToDict(categoriesDict){},*childEventContainers(){if(this.powerSeries_){yield this.powerSeries_;}
if(this.cpuUsageSeries_){yield this.cpuUsageSeries_;}}};return{Device,};});'use strict';tr.exportTo('tr.model',function(){function FlowEvent(category,id,title,colorId,start,args,opt_duration){tr.model.TimedEvent.call(this,start);this.category=category||'';this.title=title;this.colorId=colorId;this.start=start;this.args=args;this.id=id;this.startSlice=undefined;this.endSlice=undefined;this.startStackFrame=undefined;this.endStackFrame=undefined;if(opt_duration!==undefined){this.duration=opt_duration;}}
FlowEvent.prototype={__proto__:tr.model.TimedEvent.prototype,get userFriendlyName(){return'Flow event named '+this.title+' at '+
tr.b.Unit.byName.timeStampInMs.format(this.timestamp);}};tr.model.EventRegistry.register(FlowEvent,{name:'flowEvent',pluralName:'flowEvents'});return{FlowEvent,};});'use strict';tr.exportTo('tr.model',function(){function ContainerMemoryDump(start){tr.model.TimedEvent.call(this,start);this.levelOfDetail=undefined;this.memoryAllocatorDumps_=undefined;this.memoryAllocatorDumpsByFullName_=undefined;}
ContainerMemoryDump.LevelOfDetail={BACKGROUND:0,LIGHT:1,DETAILED:2};ContainerMemoryDump.prototype={__proto__:tr.model.TimedEvent.prototype,shiftTimestampsForward(amount){this.start+=amount;},get memoryAllocatorDumps(){return this.memoryAllocatorDumps_;},set memoryAllocatorDumps(memoryAllocatorDumps){this.memoryAllocatorDumps_=memoryAllocatorDumps;this.forceRebuildingMemoryAllocatorDumpByFullNameIndex();},getMemoryAllocatorDumpByFullName(fullName){if(this.memoryAllocatorDumps_===undefined)return undefined;if(this.memoryAllocatorDumpsByFullName_===undefined){const index={};function addDumpsToIndex(dumps){dumps.forEach(function(dump){index[dump.fullName]=dump;addDumpsToIndex(dump.children);});}
addDumpsToIndex(this.memoryAllocatorDumps_);this.memoryAllocatorDumpsByFullName_=index;}
return this.memoryAllocatorDumpsByFullName_[fullName];},forceRebuildingMemoryAllocatorDumpByFullNameIndex(){this.memoryAllocatorDumpsByFullName_=undefined;},iterateRootAllocatorDumps(fn,opt_this){if(this.memoryAllocatorDumps===undefined)return;this.memoryAllocatorDumps.forEach(fn,opt_this||this);}};return{ContainerMemoryDump,};});'use strict';tr.exportTo('tr.model',function(){function MemoryAllocatorDump(containerMemoryDump,fullName,opt_guid){this.fullName=fullName;this.parent=undefined;this.children=[];this.numerics={};this.diagnostics={};this.containerMemoryDump=containerMemoryDump;this.owns=undefined;this.ownedBy=[];this.ownedBySiblingSizes=new Map();this.retains=[];this.retainedBy=[];this.weak=false;this.infos=[];this.guid=opt_guid;}
MemoryAllocatorDump.SIZE_NUMERIC_NAME='size';MemoryAllocatorDump.EFFECTIVE_SIZE_NUMERIC_NAME='effective_size';MemoryAllocatorDump.RESIDENT_SIZE_NUMERIC_NAME='resident_size';MemoryAllocatorDump.DISPLAYED_SIZE_NUMERIC_NAME=MemoryAllocatorDump.EFFECTIVE_SIZE_NUMERIC_NAME;MemoryAllocatorDump.prototype={get name(){return this.fullName.substring(this.fullName.lastIndexOf('/')+1);},get quantifiedName(){return'\''+this.fullName+'\' in '+
this.containerMemoryDump.containerName;},getDescendantDumpByFullName(fullName){return this.containerMemoryDump.getMemoryAllocatorDumpByFullName(this.fullName+'/'+fullName);},isDescendantOf(otherDump){if(this===otherDump)return true;if(this.parent===undefined)return false;return this.parent.isDescendantOf(otherDump);},addNumeric(name,numeric){if(!(numeric instanceof tr.b.Scalar)){throw new Error('Numeric value must be an instance of Scalar.');}
if(name in this.numerics){throw new Error('Duplicate numeric name: '+name+'.');}
this.numerics[name]=numeric;},addDiagnostic(name,text){if(typeof text!=='string'){throw new Error('Diagnostic text must be a string.');}
if(name in this.diagnostics){throw new Error('Duplicate diagnostic name: '+name+'.');}
this.diagnostics[name]=text;},aggregateNumericsRecursively(opt_model){const numericNames=new Set();this.children.forEach(function(child){child.aggregateNumericsRecursively(opt_model);for(const[item,value]of Object.entries(child.numerics)){numericNames.add(item,value);}},this);numericNames.forEach(function(numericName){if(numericName===MemoryAllocatorDump.SIZE_NUMERIC_NAME||numericName===MemoryAllocatorDump.EFFECTIVE_SIZE_NUMERIC_NAME||this.numerics[numericName]!==undefined){return;}
this.numerics[numericName]=MemoryAllocatorDump.aggregateNumerics(this.children.map(function(child){return child.numerics[numericName];}),opt_model);},this);}};MemoryAllocatorDump.aggregateNumerics=function(numerics,opt_model){let shouldLogWarning=!!opt_model;let aggregatedUnit=undefined;let aggregatedValue=0;numerics.forEach(function(numeric){if(numeric===undefined)return;const unit=numeric.unit;if(aggregatedUnit===undefined){aggregatedUnit=unit;}else if(aggregatedUnit!==unit){if(shouldLogWarning){opt_model.importWarning({type:'numeric_parse_error',message:'Multiple units provided for numeric: \''+
aggregatedUnit.unitName+'\' and \''+unit.unitName+'\'.'});shouldLogWarning=false;}
aggregatedUnit=tr.b.Unit.byName.unitlessNumber_smallerIsBetter;}
aggregatedValue+=numeric.value;},this);if(aggregatedUnit===undefined)return undefined;return new tr.b.Scalar(aggregatedUnit,aggregatedValue);};function MemoryAllocatorDumpLink(source,target,opt_importance){this.source=source;this.target=target;this.importance=opt_importance;this.size=undefined;}
const MemoryAllocatorDumpInfoType={PROVIDED_SIZE_LESS_THAN_AGGREGATED_CHILDREN:0,PROVIDED_SIZE_LESS_THAN_LARGEST_OWNER:1};return{MemoryAllocatorDump,MemoryAllocatorDumpLink,MemoryAllocatorDumpInfoType,};});'use strict';tr.exportTo('tr.model',function(){function GlobalMemoryDump(model,start){tr.model.ContainerMemoryDump.call(this,start);this.model=model;this.processMemoryDumps={};}
const SIZE_NUMERIC_NAME=tr.model.MemoryAllocatorDump.SIZE_NUMERIC_NAME;const EFFECTIVE_SIZE_NUMERIC_NAME=tr.model.MemoryAllocatorDump.EFFECTIVE_SIZE_NUMERIC_NAME;const MemoryAllocatorDumpInfoType=tr.model.MemoryAllocatorDumpInfoType;const PROVIDED_SIZE_LESS_THAN_AGGREGATED_CHILDREN=MemoryAllocatorDumpInfoType.PROVIDED_SIZE_LESS_THAN_AGGREGATED_CHILDREN;const PROVIDED_SIZE_LESS_THAN_LARGEST_OWNER=MemoryAllocatorDumpInfoType.PROVIDED_SIZE_LESS_THAN_LARGEST_OWNER;function getSize(dump){const numeric=dump.numerics[SIZE_NUMERIC_NAME];if(numeric===undefined)return 0;return numeric.value;}
function hasSize(dump){return dump.numerics[SIZE_NUMERIC_NAME]!==undefined;}
function optional(value,defaultValue){if(value===undefined)return defaultValue;return value;}
GlobalMemoryDump.prototype={__proto__:tr.model.ContainerMemoryDump.prototype,get userFriendlyName(){return'Global memory dump at '+
tr.b.Unit.byName.timeStampInMs.format(this.start);},get containerName(){return'global space';},finalizeGraph(){this.removeWeakDumps();this.setUpTracingOverheadOwnership();this.aggregateNumerics();this.calculateSizes();this.calculateEffectiveSizes();this.discountTracingOverheadFromVmRegions();this.forceRebuildingMemoryAllocatorDumpByFullNameIndices();},removeWeakDumps(){this.traverseAllocatorDumpsInDepthFirstPreOrder(function(dump){if(dump.weak)return;if((dump.owns!==undefined&&dump.owns.target.weak)||(dump.parent!==undefined&&dump.parent.weak)){dump.weak=true;}});function removeWeakDumpsFromListRecursively(dumps){tr.b.inPlaceFilter(dumps,function(dump){if(dump.weak){return false;}
removeWeakDumpsFromListRecursively(dump.children);tr.b.inPlaceFilter(dump.ownedBy,function(ownershipLink){return!ownershipLink.source.weak;});return true;});}
this.iterateContainerDumps(function(containerDump){const memoryAllocatorDumps=containerDump.memoryAllocatorDumps;if(memoryAllocatorDumps!==undefined){removeWeakDumpsFromListRecursively(memoryAllocatorDumps);}});},calculateSizes(){this.traverseAllocatorDumpsInDepthFirstPostOrder(this.calculateMemoryAllocatorDumpSize_.bind(this));},calculateMemoryAllocatorDumpSize_(dump){let shouldDefineSize=false;function getDependencySize(dependencyDump){const numeric=dependencyDump.numerics[SIZE_NUMERIC_NAME];if(numeric===undefined)return 0;shouldDefineSize=true;return numeric.value;}
const sizeNumeric=dump.numerics[SIZE_NUMERIC_NAME];let size=0;let checkDependencySizeIsConsistent=function(){};if(sizeNumeric!==undefined){size=sizeNumeric.value;shouldDefineSize=true;if(sizeNumeric.unit!==tr.b.Unit.byName.sizeInBytes_smallerIsBetter){this.model.importWarning({type:'memory_dump_parse_error',message:'Invalid unit of \'size\' numeric of memory allocator '+'dump '+dump.quantifiedName+': '+
sizeNumeric.unit.unitName+'.'});}
checkDependencySizeIsConsistent=function(dependencySize,dependencyInfoType,dependencyName){if(size>=dependencySize)return;this.model.importWarning({type:'memory_dump_parse_error',message:'Size provided by memory allocator dump \''+
dump.fullName+'\''+
tr.b.Unit.byName.sizeInBytes.format(size)+') is less than '+dependencyName+' ('+
tr.b.Unit.byName.sizeInBytes.format(dependencySize)+').'});dump.infos.push({type:dependencyInfoType,providedSize:size,dependencySize});}.bind(this);}
let aggregatedChildrenSize=0;const allOverlaps={};dump.children.forEach(function(childDump){function aggregateDescendantDump(descendantDump){const ownedDumpLink=descendantDump.owns;if(ownedDumpLink!==undefined&&ownedDumpLink.target.isDescendantOf(dump)){let ownedChildDump=ownedDumpLink.target;while(ownedChildDump.parent!==dump){ownedChildDump=ownedChildDump.parent;}
if(childDump!==ownedChildDump){const ownedBySiblingSize=getDependencySize(descendantDump);if(ownedBySiblingSize>0){const previousTotalOwnedBySiblingSize=ownedChildDump.ownedBySiblingSizes.get(childDump)||0;const updatedTotalOwnedBySiblingSize=previousTotalOwnedBySiblingSize+ownedBySiblingSize;ownedChildDump.ownedBySiblingSizes.set(childDump,updatedTotalOwnedBySiblingSize);}}
return;}
if(descendantDump.children.length===0){aggregatedChildrenSize+=getDependencySize(descendantDump);return;}
descendantDump.children.forEach(aggregateDescendantDump);}
aggregateDescendantDump(childDump);});checkDependencySizeIsConsistent(aggregatedChildrenSize,PROVIDED_SIZE_LESS_THAN_AGGREGATED_CHILDREN,'the aggregated size of its children');let largestOwnerSize=0;dump.ownedBy.forEach(function(ownershipLink){const owner=ownershipLink.source;const ownerSize=getDependencySize(owner);largestOwnerSize=Math.max(largestOwnerSize,ownerSize);});checkDependencySizeIsConsistent(largestOwnerSize,PROVIDED_SIZE_LESS_THAN_LARGEST_OWNER,'the size of its largest owner');if(!shouldDefineSize){delete dump.numerics[SIZE_NUMERIC_NAME];return;}
size=Math.max(size,aggregatedChildrenSize,largestOwnerSize);dump.numerics[SIZE_NUMERIC_NAME]=new tr.b.Scalar(tr.b.Unit.byName.sizeInBytes_smallerIsBetter,size);if(aggregatedChildrenSize<size&&dump.children!==undefined&&dump.children.length>0){const virtualChild=new tr.model.MemoryAllocatorDump(dump.containerMemoryDump,dump.fullName+'/<unspecified>');virtualChild.parent=dump;dump.children.unshift(virtualChild);virtualChild.numerics[SIZE_NUMERIC_NAME]=new tr.b.Scalar(tr.b.Unit.byName.sizeInBytes_smallerIsBetter,size-aggregatedChildrenSize);}},calculateEffectiveSizes(){this.traverseAllocatorDumpsInDepthFirstPostOrder(this.calculateDumpSubSizes_.bind(this));this.traverseAllocatorDumpsInDepthFirstPostOrder(this.calculateDumpOwnershipCoefficient_.bind(this));this.traverseAllocatorDumpsInDepthFirstPreOrder(this.calculateDumpCumulativeOwnershipCoefficient_.bind(this));this.traverseAllocatorDumpsInDepthFirstPostOrder(this.calculateDumpEffectiveSize_.bind(this));},calculateDumpSubSizes_(dump){if(!hasSize(dump))return;if(dump.children===undefined||dump.children.length===0){const size=getSize(dump);dump.notOwningSubSize_=size;dump.notOwnedSubSize_=size;return;}
let notOwningSubSize=0;dump.children.forEach(function(childDump){if(childDump.owns!==undefined)return;notOwningSubSize+=optional(childDump.notOwningSubSize_,0);});dump.notOwningSubSize_=notOwningSubSize;let notOwnedSubSize=0;dump.children.forEach(function(childDump){if(childDump.ownedBy.length===0){notOwnedSubSize+=optional(childDump.notOwnedSubSize_,0);return;}
let largestChildOwnerSize=0;childDump.ownedBy.forEach(function(ownershipLink){largestChildOwnerSize=Math.max(largestChildOwnerSize,getSize(ownershipLink.source));});notOwnedSubSize+=getSize(childDump)-largestChildOwnerSize;});dump.notOwnedSubSize_=notOwnedSubSize;},calculateDumpOwnershipCoefficient_(dump){if(!hasSize(dump))return;if(dump.ownedBy.length===0)return;const owners=dump.ownedBy.map(function(ownershipLink){return{dump:ownershipLink.source,importance:optional(ownershipLink.importance,0),notOwningSubSize:optional(ownershipLink.source.notOwningSubSize_,0)};});owners.sort(function(a,b){if(a.importance===b.importance){return a.notOwningSubSize-b.notOwningSubSize;}
return b.importance-a.importance;});let currentImportanceStartPos=0;let alreadyAttributedSubSize=0;while(currentImportanceStartPos<owners.length){const currentImportance=owners[currentImportanceStartPos].importance;let nextImportanceStartPos=currentImportanceStartPos+1;while(nextImportanceStartPos<owners.length&&owners[nextImportanceStartPos].importance===currentImportance){nextImportanceStartPos++;}
let attributedNotOwningSubSize=0;for(let pos=currentImportanceStartPos;pos<nextImportanceStartPos;pos++){const owner=owners[pos];const notOwningSubSize=owner.notOwningSubSize;if(notOwningSubSize>alreadyAttributedSubSize){attributedNotOwningSubSize+=(notOwningSubSize-alreadyAttributedSubSize)/(nextImportanceStartPos-pos);alreadyAttributedSubSize=notOwningSubSize;}
let owningCoefficient=0;if(notOwningSubSize!==0){owningCoefficient=attributedNotOwningSubSize/notOwningSubSize;}
owner.dump.owningCoefficient_=owningCoefficient;}
currentImportanceStartPos=nextImportanceStartPos;}
const notOwnedSubSize=optional(dump.notOwnedSubSize_,0);const remainderSubSize=notOwnedSubSize-alreadyAttributedSubSize;let ownedCoefficient=0;if(notOwnedSubSize!==0){ownedCoefficient=remainderSubSize/notOwnedSubSize;}
dump.ownedCoefficient_=ownedCoefficient;},calculateDumpCumulativeOwnershipCoefficient_(dump){if(!hasSize(dump))return;let cumulativeOwnedCoefficient=optional(dump.ownedCoefficient_,1);const parent=dump.parent;if(dump.parent!==undefined){cumulativeOwnedCoefficient*=dump.parent.cumulativeOwnedCoefficient_;}
dump.cumulativeOwnedCoefficient_=cumulativeOwnedCoefficient;let cumulativeOwningCoefficient;if(dump.owns!==undefined){cumulativeOwningCoefficient=dump.owningCoefficient_*dump.owns.target.cumulativeOwningCoefficient_;}else if(dump.parent!==undefined){cumulativeOwningCoefficient=dump.parent.cumulativeOwningCoefficient_;}else{cumulativeOwningCoefficient=1;}
dump.cumulativeOwningCoefficient_=cumulativeOwningCoefficient;},calculateDumpEffectiveSize_(dump){if(!hasSize(dump)){delete dump.numerics[EFFECTIVE_SIZE_NUMERIC_NAME];return;}
let effectiveSize;if(dump.children===undefined||dump.children.length===0){effectiveSize=getSize(dump)*dump.cumulativeOwningCoefficient_*dump.cumulativeOwnedCoefficient_;}else{effectiveSize=0;dump.children.forEach(function(childDump){if(!hasSize(childDump))return;effectiveSize+=childDump.numerics[EFFECTIVE_SIZE_NUMERIC_NAME].value;});}
dump.numerics[EFFECTIVE_SIZE_NUMERIC_NAME]=new tr.b.Scalar(tr.b.Unit.byName.sizeInBytes_smallerIsBetter,effectiveSize);},aggregateNumerics(){this.iterateRootAllocatorDumps(function(dump){dump.aggregateNumericsRecursively(this.model);});this.iterateRootAllocatorDumps(this.propagateNumericsAndDiagnosticsRecursively);for(const processMemoryDump of Object.values(this.processMemoryDumps)){processMemoryDump.iterateRootAllocatorDumps(function(dump){dump.aggregateNumericsRecursively(this.model);},this);}},propagateNumericsAndDiagnosticsRecursively(globalAllocatorDump){['numerics','diagnostics'].forEach(function(field){for(const[name,value]of
Object.entries(globalAllocatorDump[field])){globalAllocatorDump.ownedBy.forEach(function(ownershipLink){const processAllocatorDump=ownershipLink.source;if(processAllocatorDump[field][name]!==undefined){return;}
processAllocatorDump[field][name]=value;});}});globalAllocatorDump.children.forEach(this.propagateNumericsAndDiagnosticsRecursively,this);},setUpTracingOverheadOwnership(){for(const dump of Object.values(this.processMemoryDumps)){dump.setUpTracingOverheadOwnership(this.model);}},discountTracingOverheadFromVmRegions(){for(const dump of Object.values(this.processMemoryDumps)){dump.discountTracingOverheadFromVmRegions(this.model);}},forceRebuildingMemoryAllocatorDumpByFullNameIndices(){this.iterateContainerDumps(function(containerDump){containerDump.forceRebuildingMemoryAllocatorDumpByFullNameIndex();});},iterateContainerDumps(fn){fn.call(this,this);for(const processDump of Object.values(this.processMemoryDumps)){fn.call(this,processDump);}},iterateAllRootAllocatorDumps(fn){this.iterateContainerDumps(function(containerDump){containerDump.iterateRootAllocatorDumps(fn,this);});},traverseAllocatorDumpsInDepthFirstPostOrder(fn){const visitedDumps=new WeakSet();const openDumps=new WeakSet();function visit(dump){if(visitedDumps.has(dump))return;if(openDumps.has(dump)){throw new Error(dump.userFriendlyName+' contains a cycle');}
openDumps.add(dump);dump.ownedBy.forEach(function(ownershipLink){visit.call(this,ownershipLink.source);},this);dump.children.forEach(visit,this);fn.call(this,dump);visitedDumps.add(dump);openDumps.delete(dump);}
this.iterateAllRootAllocatorDumps(visit);},traverseAllocatorDumpsInDepthFirstPreOrder(fn){const visitedDumps=new WeakSet();function visit(dump){if(visitedDumps.has(dump))return;if(dump.owns!==undefined&&!visitedDumps.has(dump.owns.target)){return;}
if(dump.parent!==undefined&&!visitedDumps.has(dump.parent)){return;}
fn.call(this,dump);visitedDumps.add(dump);dump.ownedBy.forEach(function(ownershipLink){visit.call(this,ownershipLink.source);},this);dump.children.forEach(visit,this);}
this.iterateAllRootAllocatorDumps(visit);}};tr.model.EventRegistry.register(GlobalMemoryDump,{name:'globalMemoryDump',pluralName:'globalMemoryDumps'});return{GlobalMemoryDump,};});'use strict';tr.exportTo('tr.model',function(){const InstantEventType={GLOBAL:1,PROCESS:2};function InstantEvent(category,title,colorId,start,args){tr.model.TimedEvent.call(this,start);this.category=category||'';this.title=title;this.colorId=colorId;this.args=args;this.type=undefined;}
InstantEvent.prototype={__proto__:tr.model.TimedEvent.prototype};function GlobalInstantEvent(category,title,colorId,start,args){InstantEvent.apply(this,arguments);this.type=InstantEventType.GLOBAL;}
GlobalInstantEvent.prototype={__proto__:InstantEvent.prototype,get userFriendlyName(){return'Global instant event '+this.title+' @ '+
tr.b.Unit.byName.timeStampInMs.format(start);}};function ProcessInstantEvent(category,title,colorId,start,args){InstantEvent.apply(this,arguments);this.type=InstantEventType.PROCESS;}
ProcessInstantEvent.prototype={__proto__:InstantEvent.prototype,get userFriendlyName(){return'Process-level instant event '+this.title+' @ '+
tr.b.Unit.byName.timeStampInMs.format(start);}};tr.model.EventRegistry.register(InstantEvent,{name:'instantEvent',pluralName:'instantEvents'});return{GlobalInstantEvent,ProcessInstantEvent,InstantEventType,InstantEvent,};});'use strict';tr.exportTo('tr.model',function(){const Cpu=tr.model.Cpu;const ProcessBase=tr.model.ProcessBase;function Kernel(model){ProcessBase.call(this,model);this.cpus={};this.softwareMeasuredCpuCount_=undefined;}
Kernel.compare=function(x,y){return 0;};Kernel.prototype={__proto__:ProcessBase.prototype,compareTo(that){return Kernel.compare(this,that);},get userFriendlyName(){return'Kernel';},get userFriendlyDetails(){return'Kernel';},get stableId(){return'Kernel';},getOrCreateCpu(cpuNumber){if(!this.cpus[cpuNumber]){this.cpus[cpuNumber]=new Cpu(this,cpuNumber);}
return this.cpus[cpuNumber];},get softwareMeasuredCpuCount(){return this.softwareMeasuredCpuCount_;},set softwareMeasuredCpuCount(softwareMeasuredCpuCount){if(this.softwareMeasuredCpuCount_!==undefined&&this.softwareMeasuredCpuCount_!==softwareMeasuredCpuCount){throw new Error('Cannot change the softwareMeasuredCpuCount once it is set');}
this.softwareMeasuredCpuCount_=softwareMeasuredCpuCount;},get bestGuessAtCpuCount(){const realCpuCount=Object.keys(this.cpus).length;if(realCpuCount!==0){return realCpuCount;}
return this.softwareMeasuredCpuCount;},updateBounds(){ProcessBase.prototype.updateBounds.call(this);for(const cpuNumber in this.cpus){const cpu=this.cpus[cpuNumber];cpu.updateBounds();this.bounds.addRange(cpu.bounds);}},createSubSlices(){ProcessBase.prototype.createSubSlices.call(this);for(const cpuNumber in this.cpus){const cpu=this.cpus[cpuNumber];cpu.createSubSlices();}},addCategoriesToDict(categoriesDict){ProcessBase.prototype.addCategoriesToDict.call(this,categoriesDict);for(const cpuNumber in this.cpus){this.cpus[cpuNumber].addCategoriesToDict(categoriesDict);}},getSettingsKey(){return'kernel';},*childEventContainers(){yield*ProcessBase.prototype.childEventContainers.call(this);yield*Object.values(this.cpus);},};return{Kernel,};});'use strict';tr.exportTo('tr.model',function(){function ModelIndices(model){this.flowEventsById_={};model.flowEvents.forEach(function(fe){if(fe.id!==undefined){if(!this.flowEventsById_.hasOwnProperty(fe.id)){this.flowEventsById_[fe.id]=[];}
this.flowEventsById_[fe.id].push(fe);}},this);}
ModelIndices.prototype={addEventWithId(id,event){if(!this.flowEventsById_.hasOwnProperty(id)){this.flowEventsById_[id]=[];}
this.flowEventsById_[id].push(event);},getFlowEventsWithId(id){if(!this.flowEventsById_.hasOwnProperty(id)){return[];}
return this.flowEventsById_[id];}};return{ModelIndices,};});'use strict';tr.exportTo('tr.model',function(){function ModelStats(){this.traceEventCountsByKey_=new Map();this.allTraceEventStats_=[];this.traceEventStatsInTimeIntervals_=new Map();this.allTraceEventStatsInTimeIntervals_=[];this.hasEventSizesinBytes_=false;this.traceImportDurationMs_=undefined;}
ModelStats.prototype={TIME_INTERVAL_SIZE_IN_MS:100,willProcessBasicTraceEvent(phase,category,title,ts,opt_eventSizeinBytes){const key=phase+'/'+category+'/'+title;let eventStats=this.traceEventCountsByKey_.get(key);if(eventStats===undefined){eventStats={phase,category,title,numEvents:0,totalEventSizeinBytes:0};this.traceEventCountsByKey_.set(key,eventStats);this.allTraceEventStats_.push(eventStats);}
eventStats.numEvents++;const timeIntervalKey=Math.floor(tr.b.Unit.timestampFromUs(ts)/this.TIME_INTERVAL_SIZE_IN_MS);let eventStatsByTimeInverval=this.traceEventStatsInTimeIntervals_.get(timeIntervalKey);if(eventStatsByTimeInverval===undefined){eventStatsByTimeInverval={timeInterval:timeIntervalKey,numEvents:0,totalEventSizeinBytes:0};this.traceEventStatsInTimeIntervals_.set(timeIntervalKey,eventStatsByTimeInverval);this.allTraceEventStatsInTimeIntervals_.push(eventStatsByTimeInverval);}
eventStatsByTimeInverval.numEvents++;if(opt_eventSizeinBytes!==undefined){this.hasEventSizesinBytes_=true;eventStats.totalEventSizeinBytes+=opt_eventSizeinBytes;eventStatsByTimeInverval.totalEventSizeinBytes+=opt_eventSizeinBytes;}},get allTraceEventStats(){return this.allTraceEventStats_;},get allTraceEventStatsInTimeIntervals(){return this.allTraceEventStatsInTimeIntervals_;},get hasEventSizesinBytes(){return this.hasEventSizesinBytes_;},get traceImportDurationMs(){return this.traceImportDurationMs_;},set traceImportDurationMs(traceImportDurationMs){this.traceImportDurationMs_=traceImportDurationMs;}};return{ModelStats,};});'use strict';tr.exportTo('tr.model',function(){function VMRegion(startAddress,sizeInBytes,protectionFlags,mappedFile,byteStats){this.startAddress=startAddress;this.sizeInBytes=sizeInBytes;this.protectionFlags=protectionFlags;this.mappedFile=mappedFile||'';this.byteStats=byteStats||{};}
VMRegion.PROTECTION_FLAG_READ=4;VMRegion.PROTECTION_FLAG_WRITE=2;VMRegion.PROTECTION_FLAG_EXECUTE=1;VMRegion.PROTECTION_FLAG_MAYSHARE=128;VMRegion.prototype={get uniqueIdWithinProcess(){return this.mappedFile+'#'+this.startAddress;},get protectionFlagsToString(){if(this.protectionFlags===undefined)return undefined;return((this.protectionFlags&VMRegion.PROTECTION_FLAG_READ?'r':'-')+
(this.protectionFlags&VMRegion.PROTECTION_FLAG_WRITE?'w':'-')+
(this.protectionFlags&VMRegion.PROTECTION_FLAG_EXECUTE?'x':'-')+
(this.protectionFlags&VMRegion.PROTECTION_FLAG_MAYSHARE?'s':'p'));}};VMRegion.fromDict=function(dict){return new VMRegion(dict.startAddress,dict.sizeInBytes,dict.protectionFlags,dict.mappedFile,dict.byteStats);};function VMRegionClassificationNode(opt_rule){this.rule_=opt_rule||VMRegionClassificationNode.CLASSIFICATION_RULES;this.hasRegions=false;this.sizeInBytes=undefined;this.byteStats={};this.children_=undefined;this.regions_=[];}
VMRegionClassificationNode.CLASSIFICATION_RULES={name:'Total',children:[{name:'Android',file:/^\/dev\/ashmem(?!\/libc malloc)/,children:[{name:'Java runtime',file:/^\/dev\/ashmem\/dalvik-/,children:[{name:'Spaces',file:/\/dalvik-(alloc|main|large object|non moving|zygote) space/,children:[{name:'Normal',file:/\/dalvik-(alloc|main)/},{name:'Large',file:/\/dalvik-large object/},{name:'Zygote',file:/\/dalvik-zygote/},{name:'Non-moving',file:/\/dalvik-non moving/}]},{name:'Linear Alloc',file:/\/dalvik-LinearAlloc/},{name:'Indirect Reference Table',file:/\/dalvik-indirect.ref/},{name:'Cache',file:/\/dalvik-jit-code-cache/},{name:'Accounting'}]},{name:'Cursor',file:/\/CursorWindow/},{name:'Ashmem'}]},{name:'Native heap',file:/^((\[heap\])|(\[anon:)|(\/dev\/ashmem\/libc malloc)|(\[discounted tracing overhead\])|$)/},{name:'Stack',file:/^\[stack/},{name:'Files',file:/\.((((jar)|(apk)|(ttf)|(odex)|(oat)|(art))$)|(dex)|(so))/,children:[{name:'so',file:/\.so/},{name:'jar',file:/\.jar$/},{name:'apk',file:/\.apk$/},{name:'ttf',file:/\.ttf$/},{name:'dex',file:/\.((dex)|(odex$))/},{name:'oat',file:/\.oat$/},{name:'art',file:/\.art$/}]},{name:'Devices',file:/(^\/dev\/)|(anon_inode:dmabuf)/,children:[{name:'GPU',file:/\/((nv)|(mali)|(kgsl))/},{name:'DMA',file:/anon_inode:dmabuf/}]}]};VMRegionClassificationNode.OTHER_RULE={name:'Other'};VMRegionClassificationNode.fromRegions=function(regions,opt_rules){const tree=new VMRegionClassificationNode(opt_rules);tree.regions_=regions;for(let i=0;i<regions.length;i++){tree.addStatsFromRegion_(regions[i]);}
return tree;};VMRegionClassificationNode.prototype={get title(){return this.rule_.name;},get children(){if(this.isLeafNode){return undefined;}
if(this.children_===undefined){this.buildTree_();}
return this.children_;},get regions(){if(!this.isLeafNode){return undefined;}
return this.regions_;},get allRegionsForTesting(){if(this.regions_!==undefined){if(this.children_!==undefined){throw new Error('Internal error: a VM region classification node '+'cannot have both regions and children');}
return this.regions_;}
let regions=[];this.children_.forEach(function(childNode){regions=regions.concat(childNode.allRegionsForTesting);});return regions;},get isLeafNode(){const children=this.rule_.children;return children===undefined||children.length===0;},addRegion(region){this.addRegionRecursively_(region,true);},someRegion(fn,opt_this){if(this.regions_!==undefined){return this.regions_.some(fn,opt_this);}
return this.children_.some(function(childNode){return childNode.someRegion(fn,opt_this);});},addRegionRecursively_(region,addStatsToThisNode){if(addStatsToThisNode){this.addStatsFromRegion_(region);}
if(this.regions_!==undefined){if(this.children_!==undefined){throw new Error('Internal error: a VM region classification node '+'cannot have both regions and children');}
this.regions_.push(region);return;}
function regionRowMatchesChildNide(child){const fileRegExp=child.rule_.file;if(fileRegExp===undefined)return true;return fileRegExp.test(region.mappedFile);}
let matchedChild=this.children_.find(regionRowMatchesChildNide);if(matchedChild===undefined){if(this.children_.length!==this.rule_.children.length){throw new Error('Internal error');}
matchedChild=new VMRegionClassificationNode(VMRegionClassificationNode.OTHER_RULE);this.children_.push(matchedChild);}
matchedChild.addRegionRecursively_(region,true);},buildTree_(){const cachedRegions=this.regions_;this.regions_=undefined;this.buildChildNodesRecursively_();for(let i=0;i<cachedRegions.length;i++){this.addRegionRecursively_(cachedRegions[i],false);}},buildChildNodesRecursively_(){if(this.children_!==undefined){throw new Error('Internal error: Classification node already has children');}
if(this.regions_!==undefined&&this.regions_.length!==0){throw new Error('Internal error: Classification node should have no regions');}
if(this.isLeafNode){return;}
this.regions_=undefined;this.children_=this.rule_.children.map(function(childRule){const child=new VMRegionClassificationNode(childRule);child.buildChildNodesRecursively_();return child;});},addStatsFromRegion_(region){this.hasRegions=true;const regionSizeInBytes=region.sizeInBytes;if(regionSizeInBytes!==undefined){this.sizeInBytes=(this.sizeInBytes||0)+regionSizeInBytes;}
const thisByteStats=this.byteStats;const regionByteStats=region.byteStats;for(const byteStatName in regionByteStats){const regionByteStatValue=regionByteStats[byteStatName];if(regionByteStatValue===undefined)continue;thisByteStats[byteStatName]=(thisByteStats[byteStatName]||0)+regionByteStatValue;}}};return{VMRegion,VMRegionClassificationNode,};});'use strict';tr.exportTo('tr.model',function(){const DISCOUNTED_ALLOCATOR_NAMES=['winheap','malloc'];const TRACING_OVERHEAD_PATH=['allocated_objects','tracing_overhead'];const SIZE_NUMERIC_NAME=tr.model.MemoryAllocatorDump.SIZE_NUMERIC_NAME;const RESIDENT_SIZE_NUMERIC_NAME=tr.model.MemoryAllocatorDump.RESIDENT_SIZE_NUMERIC_NAME;function getSizeNumericValue(dump,sizeNumericName){const sizeNumeric=dump.numerics[sizeNumericName];if(sizeNumeric===undefined)return 0;return sizeNumeric.value;}
function ProcessMemoryDump(globalMemoryDump,process,start){tr.model.ContainerMemoryDump.call(this,start);this.process=process;this.globalMemoryDump=globalMemoryDump;this.totals=undefined;this.vmRegions=undefined;this.heapDumps=undefined;this.tracingOverheadOwnershipSetUp_=false;this.tracingOverheadDiscountedFromVmRegions_=false;}
ProcessMemoryDump.prototype={__proto__:tr.model.ContainerMemoryDump.prototype,get userFriendlyName(){return'Process memory dump at '+
tr.b.Unit.byName.timeStampInMs.format(this.start);},get containerName(){return this.process.userFriendlyName;},get processMemoryDumps(){const dumps={};dumps[this.process.pid]=this;return dumps;},get hasOwnVmRegions(){return this.vmRegions!==undefined;},setUpTracingOverheadOwnership(opt_model){if(this.tracingOverheadOwnershipSetUp_)return;this.tracingOverheadOwnershipSetUp_=true;const tracingDump=this.getMemoryAllocatorDumpByFullName('tracing');if(tracingDump===undefined||tracingDump.owns!==undefined){return;}
if(tracingDump.owns!==undefined)return;const hasDiscountedFromAllocatorDumps=DISCOUNTED_ALLOCATOR_NAMES.some(function(allocatorName){const allocatorDump=this.getMemoryAllocatorDumpByFullName(allocatorName);if(allocatorDump===undefined){return false;}
let nextPathIndex=0;let currentDump=allocatorDump;let currentFullName=allocatorName;for(;nextPathIndex<TRACING_OVERHEAD_PATH.length;nextPathIndex++){const childFullName=currentFullName+'/'+
TRACING_OVERHEAD_PATH[nextPathIndex];const childDump=this.getMemoryAllocatorDumpByFullName(childFullName);if(childDump===undefined)break;currentDump=childDump;currentFullName=childFullName;}
for(;nextPathIndex<TRACING_OVERHEAD_PATH.length;nextPathIndex++){const childFullName=currentFullName+'/'+
TRACING_OVERHEAD_PATH[nextPathIndex];const childDump=new tr.model.MemoryAllocatorDump(currentDump.containerMemoryDump,childFullName);childDump.parent=currentDump;currentDump.children.push(childDump);currentFullName=childFullName;currentDump=childDump;}
const ownershipLink=new tr.model.MemoryAllocatorDumpLink(tracingDump,currentDump);tracingDump.owns=ownershipLink;currentDump.ownedBy.push(ownershipLink);return true;},this);if(hasDiscountedFromAllocatorDumps){this.forceRebuildingMemoryAllocatorDumpByFullNameIndex();}},discountTracingOverheadFromVmRegions(opt_model){if(this.tracingOverheadDiscountedFromVmRegions_)return;this.tracingOverheadDiscountedFromVmRegions_=true;const tracingDump=this.getMemoryAllocatorDumpByFullName('tracing');if(tracingDump===undefined)return;const discountedSize=getSizeNumericValue(tracingDump,SIZE_NUMERIC_NAME);const discountedResidentSize=getSizeNumericValue(tracingDump,RESIDENT_SIZE_NUMERIC_NAME);if(discountedSize<=0&&discountedResidentSize<=0)return;if(this.totals!==undefined){if(this.totals.residentBytes!==undefined){this.totals.residentBytes-=discountedResidentSize;}
if(this.totals.peakResidentBytes!==undefined){this.totals.peakResidentBytes-=discountedResidentSize;}}
if(this.vmRegions!==undefined){const hasSizeInBytes=this.vmRegions.sizeInBytes!==undefined;const hasPrivateDirtyResident=this.vmRegions.byteStats.privateDirtyResident!==undefined;const hasProportionalResident=this.vmRegions.byteStats.proportionalResident!==undefined;if((hasSizeInBytes&&discountedSize>0)||((hasPrivateDirtyResident||hasProportionalResident)&&discountedResidentSize>0)){const byteStats={};if(hasPrivateDirtyResident){byteStats.privateDirtyResident=-discountedResidentSize;}
if(hasProportionalResident){byteStats.proportionalResident=-discountedResidentSize;}
this.vmRegions.addRegion(tr.model.VMRegion.fromDict({mappedFile:'[discounted tracing overhead]',sizeInBytes:hasSizeInBytes?-discountedSize:undefined,byteStats}));}}}};ProcessMemoryDump.hookUpMostRecentVmRegionsLinks=function(processDumps){let mostRecentVmRegions=undefined;processDumps.forEach(function(processDump){if(processDump.vmRegions!==undefined){mostRecentVmRegions=processDump.vmRegions;}
processDump.mostRecentVmRegions=mostRecentVmRegions;});};tr.model.EventRegistry.register(ProcessMemoryDump,{name:'processMemoryDump',pluralName:'processMemoryDumps'});return{ProcessMemoryDump,};});'use strict';tr.exportTo('tr.model',function(){const ProcessBase=tr.model.ProcessBase;const ProcessInstantEvent=tr.model.ProcessInstantEvent;const Frame=tr.model.Frame;const ProcessMemoryDump=tr.model.ProcessMemoryDump;function Process(model,pid){if(model===undefined){throw new Error('model must be provided');}
if(pid===undefined){throw new Error('pid must be provided');}
tr.model.ProcessBase.call(this,model);this.pid=pid;this.name=undefined;this.labels=[];this.uptime_seconds=0;this.instantEvents=[];this.memoryDumps=[];this.frames=[];this.activities=[];}
Process.compare=function(x,y){let tmp=tr.model.ProcessBase.compare(x,y);if(tmp)return tmp;if(x.name!==undefined){if(y.name!==undefined){tmp=x.name.localeCompare(y.name);}else{tmp=-1;}}else if(y.name!==undefined){tmp=1;}
if(tmp)return tmp;tmp=tr.b.compareArrays(x.labels,y.labels,function(x,y){return x.localeCompare(y);});if(tmp)return tmp;return x.pid-y.pid;};Process.prototype={__proto__:tr.model.ProcessBase.prototype,get stableId(){return this.pid;},compareTo(that){return Process.compare(this,that);},*childEvents(){yield*ProcessBase.prototype.childEvents.call(this);yield*this.instantEvents;yield*this.frames;yield*this.memoryDumps;},addLabelIfNeeded(labelName){for(let i=0;i<this.labels.length;i++){if(this.labels[i]===labelName)return;}
this.labels.push(labelName);},get userFriendlyName(){let res;if(this.name){res=this.name+' (pid '+this.pid+')';}else{res='Process '+this.pid;}
if(this.labels.length){res+=': '+this.labels.join(', ');}
if(this.uptime_seconds){res+=', uptime:'+this.uptime_seconds+'s';}
return res;},get userFriendlyDetails(){if(this.name){return this.name+' (pid '+this.pid+')';}
return'pid: '+this.pid;},getSettingsKey(){if(!this.name)return undefined;if(!this.labels.length)return'processes.'+this.name;return'processes.'+this.name+'.'+this.labels.join('.');},shiftTimestampsForward(amount){for(let i=0;i<this.instantEvents.length;i++){this.instantEvents[i].start+=amount;}
for(let i=0;i<this.frames.length;i++){this.frames[i].shiftTimestampsForward(amount);}
for(let i=0;i<this.memoryDumps.length;i++){this.memoryDumps[i].shiftTimestampsForward(amount);}
for(let i=0;i<this.activities.length;i++){this.activities[i].shiftTimestampsForward(amount);}
tr.model.ProcessBase.prototype.shiftTimestampsForward.apply(this,arguments);},updateBounds(){tr.model.ProcessBase.prototype.updateBounds.apply(this);for(let i=0;i<this.frames.length;i++){this.frames[i].addBoundsToRange(this.bounds);}
for(let i=0;i<this.memoryDumps.length;i++){this.memoryDumps[i].addBoundsToRange(this.bounds);}
for(let i=0;i<this.activities.length;i++){this.activities[i].addBoundsToRange(this.bounds);}},sortMemoryDumps(){this.memoryDumps.sort(function(x,y){return x.start-y.start;});tr.model.ProcessMemoryDump.hookUpMostRecentVmRegionsLinks(this.memoryDumps);}};return{Process,};});'use strict';tr.exportTo('tr.model',function(){function Sample(start,title,leafNode,thread,opt_cpu,opt_weight,opt_args){tr.model.TimedEvent.call(this,start);this.start_=start;this.title_=title;this.leafNode_=leafNode;this.thread_=thread;this.colorId_=leafNode.colorId;this.cpu_=opt_cpu;this.weight_=opt_weight;this.args=opt_args||{};}
Sample.prototype={__proto__:tr.model.TimedEvent.prototype,get title(){return this.title_;},get colorId(){return this.colorId_;},get thread(){return this.thread_;},get leafNode(){return this.leafNode_;},get userFriendlyName(){return'Sample at '+
tr.b.Unit.byName.timeStampInMs.format(this.start);},get userFriendlyStack(){return this.leafNode_.userFriendlyStack;},getNodesAsArray(){const nodes=[];let node=this.leafNode_;while(node!==undefined){nodes.push(node);node=node.parentNode;}
return nodes;},get cpu(){return this.cpu_;},get weight(){return this.weight_;},};tr.model.EventRegistry.register(Sample,{name:'Sample',pluralName:'Samples'});return{Sample,};});'use strict';tr.exportTo('tr.model',function(){function StackFrame(parentFrame,id,title,colorId,opt_sourceInfo){if(id===undefined){throw new Error('id must be given');}
this.parentFrame_=parentFrame;this.id=id;this.title_=title;this.colorId=colorId;this.children=[];this.sourceInfo_=opt_sourceInfo;if(this.parentFrame_){this.parentFrame_.addChild(this);}}
StackFrame.prototype={get parentFrame(){return this.parentFrame_;},get title(){if(this.sourceInfo_){const src=this.sourceInfo_.toString();return this.title_+(src===''?'':' '+src);}
return this.title_;},get domain(){let result='unknown';if(this.sourceInfo_&&this.sourceInfo_.domain){result=this.sourceInfo_.domain;}
if(result==='unknown'&&this.parentFrame){result=this.parentFrame.domain;}
return result;},get sourceInfo(){return this.sourceInfo_;},set parentFrame(parentFrame){if(this.parentFrame_){Polymer.dom(this.parentFrame_).removeChild(this);}
this.parentFrame_=parentFrame;if(this.parentFrame_){this.parentFrame_.addChild(this);}},addChild(child){this.children.push(child);},removeChild(child){const i=this.children.indexOf(child.id);if(i===-1){throw new Error('omg');}
this.children.splice(i,1);},removeAllChildren(){for(let i=0;i<this.children.length;i++){this.children[i].parentFrame_=undefined;}
this.children.splice(0,this.children.length);},get stackTrace(){const stack=[this];let cur=this.parentFrame;while(cur){stack.push(cur);cur=cur.parentFrame;}
return stack;},getUserFriendlyStackTrace(){return this.stackTrace.map(function(x){return x.title;});}};return{StackFrame,};});'use strict';tr.exportTo('tr.model.um',function(){class Segment extends tr.model.TimedEvent{constructor(start,duration){super(start);this.duration=duration;this.expectations_=[];}
get expectations(){return this.expectations_;}
clone(){const clone=new Segment(this.start,this.duration);clone.expectations.push(...this.expectations);return clone;}
addSegment(other){this.duration+=other.duration;this.expectations.push(...other.expectations);}}
return{Segment,};});'use strict';tr.exportTo('tr.model.um',function(){class UserModel extends tr.model.EventContainer{constructor(parentModel){super();this.parentModel_=parentModel;this.expectations_=new tr.model.EventSet();this.segments_=[];}
get stableId(){return'UserModel';}
get parentModel(){return this.parentModel_;}
sortExpectations(){this.expectations_.sortEvents((x,y)=>(x.start-y.start));}
get expectations(){return this.expectations_;}
shiftTimestampsForward(amount){}
addCategoriesToDict(categoriesDict){}
get segments(){return this.segments_;}*childEvents(){yield*this.expectations;}*childEventContainers(){}
updateBounds(){this.bounds.reset();for(const expectation of this.expectations){expectation.addBoundsToRange(this.bounds);}}
resegment(getKeyForSegment){const newSegments=[];let prevKey=undefined;let prevSegment=undefined;for(let i=0;i<this.segments.length;++i){const segment=this.segments[i];const key=getKeyForSegment(segment,i);if(prevSegment!==undefined&&key===prevKey){prevSegment.addSegment(segment);}else{prevSegment=segment.clone();newSegments.push(prevSegment);}
prevKey=key;}
return newSegments;}}
return{UserModel,};});'use strict';tr.exportTo('tr',function(){const Process=tr.model.Process;const Device=tr.model.Device;const Kernel=tr.model.Kernel;const GlobalMemoryDump=tr.model.GlobalMemoryDump;const GlobalInstantEvent=tr.model.GlobalInstantEvent;const FlowEvent=tr.model.FlowEvent;const Alert=tr.model.Alert;const Sample=tr.model.Sample;function Model(){tr.model.EventContainer.call(this);tr.b.EventTarget.decorate(this);this.timestampShiftToZeroAmount_=0;this.faviconHue='blue';this.device=new Device(this);this.kernel=new Kernel(this);this.processes={};this.metadata=[];this.categories=[];this.instantEvents=[];this.flowEvents=[];this.clockSyncManager=new tr.model.ClockSyncManager();this.intrinsicTimeUnit_=undefined;this.stackFrames={};this.samples=[];this.alerts=[];this.userModel=new tr.model.um.UserModel(this);this.flowIntervalTree=new tr.b.IntervalTree((f)=>f.start,(f)=>f.end);this.globalMemoryDumps=[];this.userFriendlyCategoryDrivers_=[];this.annotationsByGuid_={};this.modelIndices=undefined;this.stats=new tr.model.ModelStats();this.importWarnings_=[];this.reportedImportWarnings_={};this.isTimeHighResolution_=true;this.patchupsToApply_=[];this.doesHelperGUIDSupportThisModel_={};this.helpersByConstructorGUID_={};this.eventsByStableId_=undefined;}
Model.prototype={__proto__:tr.model.EventContainer.prototype,getEventByStableId(stableId){if(this.eventsByStableId_===undefined){this.eventsByStableId_={};for(const event of this.getDescendantEvents()){this.eventsByStableId_[event.stableId]=event;}}
return this.eventsByStableId_[stableId];},getOrCreateHelper(constructor){if(!constructor.guid){throw new Error('Helper constructors must have GUIDs');}
if(this.helpersByConstructorGUID_[constructor.guid]===undefined){if(this.doesHelperGUIDSupportThisModel_[constructor.guid]===undefined){this.doesHelperGUIDSupportThisModel_[constructor.guid]=constructor.supportsModel(this);}
if(!this.doesHelperGUIDSupportThisModel_[constructor.guid]){return undefined;}
this.helpersByConstructorGUID_[constructor.guid]=new constructor(this);}
return this.helpersByConstructorGUID_[constructor.guid];},*childEvents(){yield*this.globalMemoryDumps;yield*this.instantEvents;yield*this.flowEvents;yield*this.alerts;yield*this.samples;},*childEventContainers(){yield this.userModel;yield this.device;yield this.kernel;yield*Object.values(this.processes);},iterateAllPersistableObjects(callback){this.kernel.iterateAllPersistableObjects(callback);for(const pid in this.processes){this.processes[pid].iterateAllPersistableObjects(callback);}},updateBounds(){this.bounds.reset();const bounds=this.bounds;for(const ec of this.childEventContainers()){ec.updateBounds();bounds.addRange(ec.bounds);}
for(const event of this.childEvents()){event.addBoundsToRange(bounds);}},shiftWorldToZero(){const shiftAmount=-this.bounds.min;this.timestampShiftToZeroAmount_=shiftAmount;for(const ec of this.childEventContainers()){ec.shiftTimestampsForward(shiftAmount);}
for(const event of this.childEvents()){event.start+=shiftAmount;}
this.updateBounds();},convertTimestampToModelTime(sourceClockDomainName,ts){if(sourceClockDomainName!=='traceEventClock'){throw new Error('Only traceEventClock is supported.');}
return tr.b.Unit.timestampFromUs(ts)+
this.timestampShiftToZeroAmount_;},get numProcesses(){let n=0;for(const p in this.processes){n++;}
return n;},getProcess(pid){return this.processes[pid];},getOrCreateProcess(pid){if(!this.processes[pid]){this.processes[pid]=new Process(this,pid);}
return this.processes[pid];},addStackFrame(stackFrame){if(this.stackFrames[stackFrame.id]){throw new Error('Stack frame already exists');}
this.stackFrames[stackFrame.id]=stackFrame;return stackFrame;},updateCategories_(){const categoriesDict={};this.userModel.addCategoriesToDict(categoriesDict);this.device.addCategoriesToDict(categoriesDict);this.kernel.addCategoriesToDict(categoriesDict);for(const pid in this.processes){this.processes[pid].addCategoriesToDict(categoriesDict);}
this.categories=[];for(const category in categoriesDict){if(category!==''){this.categories.push(category);}}},getAllThreads(){const threads=[];for(const tid in this.kernel.threads){threads.push(process.threads[tid]);}
for(const pid in this.processes){const process=this.processes[pid];for(const tid in process.threads){threads.push(process.threads[tid]);}}
return threads;},getAllProcesses(opt_predicate){const processes=[];for(const pid in this.processes){const process=this.processes[pid];if(opt_predicate===undefined||opt_predicate(process)){processes.push(process);}}
return processes;},getAllCounters(){const counters=[];counters.push.apply(counters,Object.values(this.device.counters||{}));counters.push.apply(counters,Object.values(this.kernel.counters||{}));for(const pid in this.processes){const process=this.processes[pid];for(const tid in process.counters){counters.push(process.counters[tid]);}}
return counters;},getAnnotationByGUID(guid){return this.annotationsByGuid_[guid];},addAnnotation(annotation){if(!annotation.guid){throw new Error('Annotation with undefined guid given');}
this.annotationsByGuid_[annotation.guid]=annotation;tr.b.dispatchSimpleEvent(this,'annotationChange');},removeAnnotation(annotation){this.annotationsByGuid_[annotation.guid].onRemove();delete this.annotationsByGuid_[annotation.guid];tr.b.dispatchSimpleEvent(this,'annotationChange');},getAllAnnotations(){return Object.values(this.annotationsByGuid_);},addUserFriendlyCategoryDriver(ufcd){this.userFriendlyCategoryDrivers_.push(ufcd);},getUserFriendlyCategoryFromEvent(event){for(let i=0;i<this.userFriendlyCategoryDrivers_.length;i++){const ufc=this.userFriendlyCategoryDrivers_[i].fromEvent(event);if(ufc!==undefined)return ufc;}
return undefined;},findAllThreadsNamed(name){const namedThreads=[];namedThreads.push.apply(namedThreads,this.kernel.findAllThreadsNamed(name));for(const pid in this.processes){namedThreads.push.apply(namedThreads,this.processes[pid].findAllThreadsNamed(name));}
return namedThreads;},get importOptions(){return this.importOptions_;},set importOptions(options){this.importOptions_=options;},get intrinsicTimeUnit(){if(this.intrinsicTimeUnit_===undefined){return tr.b.TimeDisplayModes.ms;}
return this.intrinsicTimeUnit_;},set intrinsicTimeUnit(value){if(this.intrinsicTimeUnit_===value)return;if(this.intrinsicTimeUnit_!==undefined){throw new Error('Intrinsic time unit already set');}
this.intrinsicTimeUnit_=value;},get isTimeHighResolution(){return this.isTimeHighResolution_;},set isTimeHighResolution(value){this.isTimeHighResolution_=value;},get canonicalUrl(){return this.canonicalUrl_;},set canonicalUrl(value){if(this.canonicalUrl_===value)return;if(this.canonicalUrl_!==undefined){throw new Error('canonicalUrl already set');}
this.canonicalUrl_=value;},importWarning(data){data.showToUser=!!data.showToUser;this.importWarnings_.push(data);if(this.reportedImportWarnings_[data.type]===true)return;this.reportedImportWarnings_[data.type]=true;},get hasImportWarnings(){return(this.importWarnings_.length>0);},get importWarnings(){return this.importWarnings_;},get importWarningsThatShouldBeShownToUser(){return this.importWarnings_.filter(function(warning){return warning.showToUser;});},autoCloseOpenSlices(){this.samples.sort(function(x,y){return x.start-y.start;});this.updateBounds();this.kernel.autoCloseOpenSlices();for(const pid in this.processes){this.processes[pid].autoCloseOpenSlices();}},createSubSlices(){this.kernel.createSubSlices();for(const pid in this.processes){this.processes[pid].createSubSlices();}},preInitializeObjects(){for(const pid in this.processes){this.processes[pid].preInitializeObjects();}},initializeObjects(){for(const pid in this.processes){this.processes[pid].initializeObjects();}},pruneEmptyContainers(){this.kernel.pruneEmptyContainers();for(const pid in this.processes){this.processes[pid].pruneEmptyContainers();}},mergeKernelWithUserland(){for(const pid in this.processes){this.processes[pid].mergeKernelWithUserland();}},computeWorldBounds(shiftWorldToZero){this.updateBounds();this.updateCategories_();if(shiftWorldToZero){this.shiftWorldToZero();}},buildFlowEventIntervalTree(){for(let i=0;i<this.flowEvents.length;++i){const flowEvent=this.flowEvents[i];this.flowIntervalTree.insert(flowEvent);}
this.flowIntervalTree.updateHighValues();},cleanupUndeletedObjects(){for(const pid in this.processes){this.processes[pid].autoDeleteObjects(this.bounds.max);}},sortMemoryDumps(){this.globalMemoryDumps.sort(function(x,y){return x.start-y.start;});for(const pid in this.processes){this.processes[pid].sortMemoryDumps();}},finalizeMemoryGraphs(){this.globalMemoryDumps.forEach(function(dump){dump.finalizeGraph();});},buildEventIndices(){this.modelIndices=new tr.model.ModelIndices(this);},sortAlerts(){this.alerts.sort(function(x,y){return x.start-y.start;});},applyObjectRefPatchups(){const unresolved=[];this.patchupsToApply_.forEach(function(patchup){if(patchup.pidRef in this.processes){const snapshot=this.processes[patchup.pidRef].objects.getSnapshotAt(patchup.scopedId,patchup.ts);if(snapshot){patchup.object[patchup.field]=snapshot;snapshot.referencedAt(patchup.item,patchup.object,patchup.field);return;}}
unresolved.push(patchup);},this);this.patchupsToApply_=unresolved;},replacePIDRefsInPatchups(oldPidRef,newPidRef){this.patchupsToApply_.forEach(function(patchup){if(patchup.pidRef===oldPidRef){patchup.pidRef=newPidRef;}});},joinRefs(){this.joinObjectRefs_();this.applyObjectRefPatchups();},joinObjectRefs_(){for(const[pid,process]of Object.entries(this.processes)){this.joinObjectRefsForProcess_(pid,process);}},joinObjectRefsForProcess_(pid,process){for(const thread of Object.values(process.threads)){thread.asyncSliceGroup.slices.forEach(function(item){this.searchItemForIDRefs_(pid,'start',item);},this);thread.sliceGroup.slices.forEach(function(item){this.searchItemForIDRefs_(pid,'start',item);},this);}
process.objects.iterObjectInstances(function(instance){instance.snapshots.forEach(function(item){this.searchItemForIDRefs_(pid,'ts',item);},this);},this);},searchItemForIDRefs_(pid,itemTimestampField,item){if(!item.args&&!item.contexts)return;const patchupsToApply=this.patchupsToApply_;function handleField(object,fieldName,fieldValue){if(!fieldValue||(!fieldValue.id_ref&&!fieldValue.idRef)){return;}
const scope=fieldValue.scope||tr.model.OBJECT_DEFAULT_SCOPE;const idRef=fieldValue.id_ref||fieldValue.idRef;const scopedId=new tr.model.ScopedId(scope,idRef);const pidRef=fieldValue.pid_ref||fieldValue.pidRef||pid;const ts=item[itemTimestampField];patchupsToApply.push({item,object,field:fieldName,pidRef,scopedId,ts});}
function iterObjectFieldsRecursively(object){if(!(object instanceof Object))return;if((object instanceof tr.model.ObjectSnapshot)||(object instanceof Float32Array)||(object instanceof tr.b.math.Quad)){return;}
if(object instanceof Array){for(let i=0;i<object.length;i++){handleField(object,i,object[i]);iterObjectFieldsRecursively(object[i]);}
return;}
for(const key in object){const value=object[key];handleField(object,key,value);iterObjectFieldsRecursively(value);}}
iterObjectFieldsRecursively(item.args);iterObjectFieldsRecursively(item.contexts);}};return{Model,};});'use strict';tr.exportTo('tr.e.importer.etw',function(){const kThreadGuid='3D6FA8D1-FE05-11D0-9DDA-00C04FD7BA7C';const kThreadDCStartOpcode=3;function Decoder(){this.payload_=new DataView(new ArrayBuffer(256));}
Decoder.prototype={__proto__:Object.prototype,reset(base64Payload){const decodedSize=tr.b.Base64.getDecodedBufferLength(base64Payload);if(decodedSize>this.payload_.byteLength){this.payload_=new DataView(new ArrayBuffer(decodedSize));}
tr.b.Base64.DecodeToTypedArray(base64Payload,this.payload_);this.position_=0;},skip(length){this.position_+=length;},decodeUInt8(){const result=this.payload_.getUint8(this.position_,true);this.position_+=1;return result;},decodeUInt16(){const result=this.payload_.getUint16(this.position_,true);this.position_+=2;return result;},decodeUInt32(){const result=this.payload_.getUint32(this.position_,true);this.position_+=4;return result;},decodeUInt64ToString(){const low=this.decodeUInt32();const high=this.decodeUInt32();const lowStr=('0000000'+low.toString(16)).substr(-8);const highStr=('0000000'+high.toString(16)).substr(-8);const result=highStr+lowStr;return result;},decodeInt8(){const result=this.payload_.getInt8(this.position_,true);this.position_+=1;return result;},decodeInt16(){const result=this.payload_.getInt16(this.position_,true);this.position_+=2;return result;},decodeInt32(){const result=this.payload_.getInt32(this.position_,true);this.position_+=4;return result;},decodeInt64ToString(){return this.decodeUInt64ToString();},decodeUInteger(is64){if(is64){return this.decodeUInt64ToString();}
return this.decodeUInt32();},decodeString(){let str='';while(true){const c=this.decodeUInt8();if(!c)return str;str=str+String.fromCharCode(c);}},decodeW16String(){let str='';while(true){const c=this.decodeUInt16();if(!c)return str;str=str+String.fromCharCode(c);}},decodeFixedW16String(length){const oldPosition=this.position_;let str='';for(let i=0;i<length;i++){const c=this.decodeUInt16();if(!c)break;str=str+String.fromCharCode(c);}
this.position_=oldPosition+2*length;return str;},decodeBytes(length){const bytes=[];for(let i=0;i<length;++i){const c=this.decodeUInt8();bytes.push(c);}
return bytes;},decodeSID(is64){const pSid=this.decodeUInteger(is64);const attributes=this.decodeUInt32();if(is64){this.decodeUInt32();}
const revision=this.decodeUInt8();const subAuthorityCount=this.decodeUInt8();this.decodeUInt16();this.decodeUInt32();if(revision!==1){throw new Error('Invalid SID revision: could not decode the SID structure.');}
const sid=this.decodeBytes(4*subAuthorityCount);return{pSid,attributes,sid};},decodeSystemTime(){const wYear=this.decodeInt16();const wMonth=this.decodeInt16();const wDayOfWeek=this.decodeInt16();const wDay=this.decodeInt16();const wHour=this.decodeInt16();const wMinute=this.decodeInt16();const wSecond=this.decodeInt16();const wMilliseconds=this.decodeInt16();return{wYear,wMonth,wDayOfWeek,wDay,wHour,wMinute,wSecond,wMilliseconds};},decodeTimeZoneInformation(){const bias=this.decodeUInt32();const standardName=this.decodeFixedW16String(32);const standardDate=this.decodeSystemTime();const standardBias=this.decodeUInt32();const daylightName=this.decodeFixedW16String(32);const daylightDate=this.decodeSystemTime();const daylightBias=this.decodeUInt32();return{bias,standardName,standardDate,standardBias,daylightName,daylightDate,daylightBias};}};function EtwImporter(model,events){this.importPriority=3;this.model_=model;this.events_=events;this.handlers_={};this.decoder_=new Decoder();this.walltime_=undefined;this.ticks_=undefined;this.is64bit_=undefined;this.tidsToPid_={};const allTypeInfos=tr.e.importer.etw.Parser.getAllRegisteredTypeInfos();this.parsers_=allTypeInfos.map(function(typeInfo){return new typeInfo.constructor(this);},this);}
EtwImporter.canImport=function(events){if(!events.hasOwnProperty('name')||!events.hasOwnProperty('content')||events.name!=='ETW'){return false;}
return true;};EtwImporter.prototype={__proto__:tr.importer.Importer.prototype,get importerName(){return'EtwImporter';},get model(){return this.model_;},createThreadIfNeeded(pid,tid){this.tidsToPid_[tid]=pid;},removeThreadIfPresent(tid){this.tidsToPid_[tid]=undefined;},getPidFromWindowsTid(tid){if(tid===0)return 0;const pid=this.tidsToPid_[tid];if(pid===undefined){return 0;}
return pid;},getThreadFromWindowsTid(tid){const pid=this.getPidFromWindowsTid(tid);const process=this.model_.getProcess(pid);if(!process)return undefined;return process.getThread(tid);},getOrCreateCpu(cpuNumber){const cpu=this.model_.kernel.getOrCreateCpu(cpuNumber);return cpu;},importEvents(){this.events_.content.forEach(this.parseInfo.bind(this));if(this.walltime_===undefined||this.ticks_===undefined){throw Error('Cannot find clock sync information in the system trace.');}
if(this.is64bit_===undefined){throw Error('Cannot determine pointer size of the system trace.');}
this.events_.content.forEach(this.parseEvent.bind(this));},importTimestamp(timestamp){const ts=parseInt(timestamp,16);return(ts-this.walltime_+this.ticks_)/1000.;},parseInfo(event){if(event.hasOwnProperty('guid')&&event.hasOwnProperty('walltime')&&event.hasOwnProperty('tick')&&event.guid==='ClockSync'){this.walltime_=parseInt(event.walltime,16);this.ticks_=parseInt(event.tick,16);}
if(this.is64bit_===undefined&&event.hasOwnProperty('guid')&&event.hasOwnProperty('op')&&event.hasOwnProperty('ver')&&event.hasOwnProperty('payload')&&event.guid===kThreadGuid&&event.op===kThreadDCStartOpcode){const decodedSize=tr.b.Base64.getDecodedBufferLength(event.payload);if(event.ver===1){if(decodedSize>=52){this.is64bit_=true;}else{this.is64bit_=false;}}else if(event.ver===2){if(decodedSize>=64){this.is64bit_=true;}else{this.is64bit_=false;}}else if(event.ver===3){if(decodedSize>=60){this.is64bit_=true;}else{this.is64bit_=false;}}}
return true;},parseEvent(event){if(!event.hasOwnProperty('guid')||!event.hasOwnProperty('op')||!event.hasOwnProperty('ver')||!event.hasOwnProperty('cpu')||!event.hasOwnProperty('ts')||!event.hasOwnProperty('payload')){return false;}
const timestamp=this.imsed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed: Output line too long.
sed 768337: suicide: sys: trap: fault write addr=0x49000 pc=0x00002f96
|